CentOS8安裝與配置Ceph Octopus版
1. Ceph介紹
https://www.cnblogs.com/kevingrace/p/8387999.html
1.1 為什么要用Ceph
Ceph是當(dāng)前非常流行的開(kāi)源分布式存儲(chǔ)系統(tǒng),具有高擴(kuò)展性、高性能珍坊、高可靠性等優(yōu)點(diǎn)预侯,同時(shí)提供塊存儲(chǔ)服務(wù)(rbd)虹蒋、對(duì)象存儲(chǔ)服務(wù)(rgw)以及文件系統(tǒng)存儲(chǔ)服務(wù)(cephfs)徐绑,Ceph在存儲(chǔ)的時(shí)候充分利用存儲(chǔ)節(jié)點(diǎn)的計(jì)算能力,在存儲(chǔ)每一個(gè)數(shù)據(jù)時(shí)都會(huì)通過(guò)計(jì)算得出該數(shù)據(jù)的位置草巡,盡量的分布均衡郁竟。。目前也是OpenStack的主流后端存儲(chǔ),隨著OpenStack在云計(jì)算領(lǐng)域的廣泛使用低零,ceph也變得更加炙手可熱雄妥。國(guó)內(nèi)目前使用ceph搭建分布式存儲(chǔ)系統(tǒng)較為成功的企業(yè)有x-sky,深圳元核云,上海UCloud等三家企業(yè)淀弹。
分布式存儲(chǔ) | Ceph | GFS | HDFS | Swift | Lustre |
---|---|---|---|---|---|
平臺(tái)屬性 | 開(kāi)源 | 閉源 | 開(kāi)源 | 開(kāi)源 | 開(kāi)源 |
系統(tǒng)架構(gòu) | 去中心化架構(gòu) | 中心化架構(gòu) | 中心化架構(gòu) | 去中心化架構(gòu) | 中心化架構(gòu) |
數(shù)據(jù)存儲(chǔ)方式 | 塊琉用、文件對(duì)象 | 文件 | 文件 | 對(duì)象 | 文件 |
元數(shù)據(jù)節(jié)點(diǎn)數(shù)量 | 多個(gè) | 1個(gè) | 1個(gè)(主備) | 多個(gè) | 1個(gè) |
數(shù)據(jù)冗余 | 多副本/糾刪碼 | 多副本/糾刪碼 | 多副本/糾刪碼 | 多副本/糾刪碼 | 無(wú) |
數(shù)據(jù)一致性 | 強(qiáng)一致性 | 最終一致性 | 過(guò)程一致性 | 弱一致性 | 無(wú) |
分塊大小 | 4MB | 64MB | 128MB | 視對(duì)象大小 | 1MB |
適用場(chǎng)景 | 頻繁讀寫場(chǎng)景/IaaS | 大文件連續(xù)讀寫 | 大數(shù)據(jù)場(chǎng)景 | 云的對(duì)象存儲(chǔ) | 大型集群/超算 |
1.2 Ceph架構(gòu)介紹
Ceph使用RADOS提供對(duì)象存儲(chǔ),通過(guò)librados封裝庫(kù)提供多種存儲(chǔ)方式的文件和對(duì)象轉(zhuǎn)換铜靶。外層通過(guò)RGW(Object,有原生的API蹬碧,而且也兼容Swift和S3的API飒筑,適合單客戶端使用)片吊、RBD(Block,支持精簡(jiǎn)配置协屡、快照俏脊、克隆,適合多客戶端有目錄結(jié)構(gòu))肤晓、CephFS(File爷贫,Posix接口,支持快照补憾,社會(huì)和更新變動(dòng)少的數(shù)據(jù)漫萄,沒(méi)有目錄結(jié)構(gòu)不能直接打開(kāi))將數(shù)據(jù)寫入存儲(chǔ)。
- 高性能
a. 摒棄了傳統(tǒng)的集中式存儲(chǔ)元數(shù)據(jù)尋址的方案盈匾,采用CRUSH算法腾务,數(shù)據(jù)分布均衡,并行度高
b.考慮了容災(zāi)域的隔離削饵,能夠?qū)崿F(xiàn)各類負(fù)載的副本放置規(guī)則岩瘦,例如跨機(jī)房未巫、機(jī)架感知等
c. 能夠支持上千個(gè)存儲(chǔ)節(jié)點(diǎn)的規(guī)模,支持TB到PB級(jí)的數(shù)據(jù)- 高可擴(kuò)展性
a. 去中心化
b. 擴(kuò)展靈活
c. 隨著節(jié)點(diǎn)增加而線性增長(zhǎng)- 特性豐富
a. 支持三種存儲(chǔ)接口:塊存儲(chǔ)启昧、文件存儲(chǔ)叙凡、對(duì)象存儲(chǔ)
b. 支持自定義接口,支持多種語(yǔ)言驅(qū)動(dòng)
目前來(lái)說(shuō)密末,ceph在開(kāi)源社區(qū)還是比較熱門的握爷,但是更多的是應(yīng)用于云計(jì)算的后端存儲(chǔ)。官方推薦使用ceph的對(duì)象式存儲(chǔ)严里,速度和效率都比較高新啼,而cephfs官方并不推薦直接在生產(chǎn)中使用。以上介紹的只是ceph的滄海一粟刹碾,ceph遠(yuǎn)比上面介紹的要復(fù)雜师抄,而且支持很多特性,比如使用糾刪碼就行尋址教硫,所以大多數(shù)在生產(chǎn)環(huán)境中使用ceph的公司都會(huì)有專門的團(tuán)隊(duì)對(duì)ceph進(jìn)行二次開(kāi)發(fā)叨吮,ceph的運(yùn)維難度也比較大。但是經(jīng)過(guò)合理的優(yōu)化之后瞬矩,ceph的性能和穩(wěn)定性都是值得期待的茶鉴。
1.3 Ceph核心概念
==RADOS==
全稱Reliable Autonomic Distributed Object Store
,即可靠的景用、自動(dòng)化的涵叮、分布式對(duì)象存儲(chǔ)系統(tǒng)。RADOS是Ceph集群的精華伞插,用戶實(shí)現(xiàn)數(shù)據(jù)分配割粮、Failover等集群操作。
==Librados==
Rados提供庫(kù)媚污,因?yàn)镽ADOS是協(xié)議很難直接訪問(wèn)舀瓢,因此上層的RBD、RGW和CephFS都是通過(guò)librados訪問(wèn)的耗美,目前提供PHP京髓、Ruby、Java商架、Python堰怨、C和C++支持。
==Crush==
Crush算法是Ceph的兩大創(chuàng)新之一蛇摸,通過(guò)Crush算法的尋址操作备图,Ceph得以摒棄了傳統(tǒng)的集中式存儲(chǔ)元數(shù)據(jù)尋址方案。而Crush算法在一致性哈希基礎(chǔ)上很好的考慮了容災(zāi)域的隔離揽涮,使得Ceph能夠?qū)崿F(xiàn)各類負(fù)載的副本放置規(guī)則砸烦,例如跨機(jī)房、機(jī)架感知等绞吁。同時(shí),Crush算法有相當(dāng)強(qiáng)大的擴(kuò)展性唬格,理論上可以支持?jǐn)?shù)千個(gè)存儲(chǔ)節(jié)點(diǎn)家破,這為Ceph在大規(guī)模云環(huán)境中的應(yīng)用提供了先天的便利。
==Pool==
Pool是存儲(chǔ)對(duì)象的邏輯分區(qū)购岗,它規(guī)定了數(shù)據(jù)冗余的類型和對(duì)應(yīng)的副本分布策略汰聋,默認(rèn)存儲(chǔ)3份副本;支持兩種類型:副本(replicated)和 糾刪碼( Erasure Code)喊积;
==PG==
PG( placement group)是一個(gè)放置策略組烹困,它是對(duì)象的集合,該集合里的所有對(duì)象都具有相同的放置策略乾吻,簡(jiǎn)單點(diǎn)說(shuō)就是相同PG內(nèi)的對(duì)象都會(huì)放到相同的硬盤上髓梅,PG是 ceph的邏輯概念,服務(wù)端數(shù)據(jù)均衡和恢復(fù)的最小粒度就是PG绎签,一個(gè)PG包含多個(gè)OSD枯饿。引入PG這一層其實(shí)是為了更好的分配數(shù)據(jù)和定位數(shù)據(jù);
==Object==
簡(jiǎn)單來(lái)說(shuō)塊存儲(chǔ)讀寫快诡必,不利于共享奢方,文件存儲(chǔ)讀寫慢,利于共享爸舒。能否弄一個(gè)讀寫快蟋字,利于共享的出來(lái)呢。于是就有了對(duì)象存儲(chǔ)扭勉。最底層的存儲(chǔ)單元鹊奖,包含元數(shù)據(jù)和原始數(shù)據(jù)。
1.4 Ceph核心組件
OSD
是負(fù)責(zé)物理存儲(chǔ)的進(jìn)程涂炎,一般配置成和磁盤一一對(duì)應(yīng)嫉入,一塊磁盤啟動(dòng)一個(gè)OSD進(jìn)程。主要功能是存儲(chǔ)數(shù)據(jù)璧尸、復(fù)制數(shù)據(jù)咒林、平衡數(shù)據(jù)、恢復(fù)數(shù)據(jù)爷光,以及與其它OSD間進(jìn)行心跳檢查垫竞,負(fù)責(zé)響應(yīng)客戶端請(qǐng)求返回具體數(shù)據(jù)的進(jìn)程等;
Pool、PG和OSD的關(guān)系:
- 一個(gè)Pool里有很多PG欢瞪;
- 一個(gè)PG里包含一堆對(duì)象活烙,一個(gè)對(duì)象只能屬于一個(gè)PG;
- PG有主從之分遣鼓,一個(gè)PG分布在不同的OSD上(針對(duì)三副本類型);
Monitor
一個(gè)Ceph集群需要多個(gè)Monitor組成的小集群啸盏,它們通過(guò)Paxos同步數(shù)據(jù),用來(lái)保存OSD的元數(shù)據(jù)骑祟。負(fù)責(zé)監(jiān)視整個(gè)Ceph集群運(yùn)行的Map視圖(如OSD Map回懦、Monitor Map、PG Map和CRUSH Map)次企,維護(hù)集群的健康狀態(tài)怯晕,維護(hù)展示集群狀態(tài)的各種圖表,管理集群客戶端認(rèn)證與授權(quán)缸棵;生產(chǎn)中建議最少要用3個(gè)Monitor舟茶,基數(shù)個(gè)的Monitor組成組件來(lái)做高可用。
MDS
MDS全稱Ceph Metadata Server堵第,是CephFS
服務(wù)依賴的元數(shù)據(jù)服務(wù)吧凉。負(fù)責(zé)保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結(jié)構(gòu)踏志。對(duì)象存儲(chǔ)和塊設(shè)備存儲(chǔ)不需要元數(shù)據(jù)服務(wù)客燕;
Mgr
ceph 官方開(kāi)發(fā)了 ceph-mgr,主要目標(biāo)實(shí)現(xiàn) ceph 集群的管理狰贯,為外界提供統(tǒng)一的入口也搓。例如cephmetrics、zabbix涵紊、calamari傍妒、promethus
RGW
RGW全稱RADOS gateway,是Ceph對(duì)外提供的對(duì)象存儲(chǔ)服務(wù)摸柄,接口與S3和Swift兼容颤练。
Admin
Ceph常用管理接口通常都是命令行工具,如rados驱负、ceph嗦玖、rbd等命令,另外Ceph還有可以有一個(gè)專用的管理節(jié)點(diǎn)跃脊,在此節(jié)點(diǎn)上面部署專用的管理工具來(lái)實(shí)現(xiàn)近乎集群的一些管理工作宇挫,如集群部署,集群組件管理等酪术。
1.5 Ceph三種存儲(chǔ)類型
塊存儲(chǔ)(RBD)
優(yōu)點(diǎn):
- 通過(guò)Raid與LVM等手段器瘪,對(duì)數(shù)據(jù)提供了保護(hù)翠储;
- 多塊廉價(jià)的硬盤組合起來(lái),提高容量橡疼;
- 多塊磁盤組合出來(lái)的邏輯盤援所,提升讀寫效率;
缺點(diǎn):
- 采用SAN架構(gòu)組網(wǎng)時(shí)欣除,光纖交換機(jī)住拭,造價(jià)成本高;
- 主機(jī)之間無(wú)法共享數(shù)據(jù)历帚;
使用場(chǎng)景
- docker容器滔岳、虛擬機(jī)磁盤存儲(chǔ)分配;
- 日志存儲(chǔ)抹缕;
- 文件存儲(chǔ);
如果滿足以下所有條件墨辛,則認(rèn)為存儲(chǔ)設(shè)備可用
- 硬盤設(shè)備必須沒(méi)有分區(qū)卓研。
- 設(shè)備不得具有任何LVM狀態(tài)。
- 不得安裝設(shè)備奏赘。
- 該設(shè)備不得包含文件系統(tǒng)。
- 該設(shè)備不得包含Ceph BlueStore OSD太惠。
- 設(shè)備必須大于5 GB。
注意:Ceph拒絕在不可用的設(shè)備上配置OSD堵幽;也就是說(shuō)配置OSD時(shí),要保證掛載的硬盤設(shè)備是沒(méi)有分區(qū)過(guò)的空盤
文件存儲(chǔ)(CephFS)
優(yōu)點(diǎn):
- 造價(jià)低羔沙,隨便一臺(tái)機(jī)器就可以了碟绑;
- 方便文件共享;
缺點(diǎn):
- 讀寫速率低;
- 傳輸速率慢我碟;
使用場(chǎng)景
- 日志存儲(chǔ)放案;
- FTP、NFS矫俺;
- 其它有目錄結(jié)構(gòu)的文件存儲(chǔ)
對(duì)象存儲(chǔ)(Object)
適合更新變動(dòng)較少的數(shù)據(jù)
優(yōu)點(diǎn):
- 具備塊存儲(chǔ)的讀寫高速吱殉;
- 具備文件存儲(chǔ)的共享等特性掸冤;
使用場(chǎng)景
- 圖片存儲(chǔ);
- 視頻存儲(chǔ)友雳;
2. 安裝與配置
2.1 環(huán)境介紹
IP地址 | 配置 | 主機(jī)名 | Ceph版本 |
---|---|---|---|
10.15.253.161 | c2m8h300 | cephnode01 | Octopus 15.2.4 |
10.15.253.193 | c2m8h300 | cephnode02 | Octopus 15.2.4 |
10.15.253.225 | c2m8h300 | cephnode03 | Octopus 15.2.4 |
#Linux系統(tǒng)版本
[root@cephnode01 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@cephnode01 ~]# uname -r
4.18.0-193.14.2.el8_2.x86_64
#網(wǎng)絡(luò)設(shè)計(jì):建議各網(wǎng)絡(luò)單獨(dú)分開(kāi)
10.15.253.0/24 #Public Network 公共網(wǎng)絡(luò)
172.31.253.0/24 #Cluster Network 集群網(wǎng)絡(luò)
#每臺(tái)ceph節(jié)點(diǎn)下除系統(tǒng)盤外稿湿,最少掛載兩塊相同的大容量硬盤,不需要進(jìn)行分區(qū)
[root@cephnode01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18.8G 0 part /
sdb 8:16 0 20G 0 disk
2.1.1 Ceph安裝與版本選擇
https://docs.ceph.com/docs/master/install/
ceph-deploy
是用于快速部署群集的工具押赊;社區(qū)不再積極維護(hù)ceph-deploy饺藤。僅支持Nautilus版之前的Ceph版本上進(jìn)行。它不支持RHEL8流礁,CentOS 8或更新的操作系統(tǒng)涕俗。
這里的系統(tǒng)環(huán)境是centos8系統(tǒng),所以需要使用cephadm部署工具部署octopus版的ceph
2.1.2 基礎(chǔ)環(huán)境準(zhǔn)備
全部Ceph節(jié)點(diǎn)上操作神帅;以cephnode01節(jié)點(diǎn)為例再姑;
#(1)關(guān)閉防火墻:
systemctl stop firewalld
systemctl disable firewalld
#(2)關(guān)閉selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
#(3)在cephnode01上配置免密登錄到cephnode02、cephnode03
dnf install sshpass -y
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
for ip in 161 193 225 ;do sshpass -pZxzn@2020 ssh-copy-id -o StrictHostKeyChecking=no 10.15.253.$ip ;done
#(4)在cephnode01上添加主機(jī)名:已經(jīng)配置過(guò)則不需要再次添加
cat >>/etc/hosts <<EOF
10.15.253.161 cephnode01
10.15.253.193 cephnode02
10.15.253.225 cephnode03
EOF
for ip in 193 225 ;do scp -rp /etc/hosts root@10.15.253.$ip:/etc/hosts ;done
#(5)設(shè)置文件連接數(shù)最大值
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
#(6)內(nèi)核參數(shù)優(yōu)化
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
echo 'kernel.pid_max = 4194303' >>/etc/sysctl.conf
#內(nèi)存不足時(shí)低于此值找御,使用交換空間
echo "vm.swappiness = 0" >>/etc/sysctl.conf
sysctl -p
#(7)同步網(wǎng)絡(luò)時(shí)間和修改時(shí)區(qū)元镀;已經(jīng)添加不需要配置
安裝chrony時(shí)間同步 同步cephnode01節(jié)點(diǎn)
yum install chrony -y
vim /etc/chrony.conf
server cephnode01 iburst
---
systemctl restart chronyd.service
systemctl enable chronyd.service
chronyc sources
#(8)read_ahead,通過(guò)數(shù)據(jù)預(yù)讀并且記載到隨機(jī)訪問(wèn)內(nèi)存方式提高磁盤讀操作
echo "8192" > /sys/block/sda/queue/read_ahead_kb
#(9) I/O Scheduler,SSD要用noop(電梯式調(diào)度程序)萎坷,SATA/SAS使用deadline(截止時(shí)間調(diào)度程序)
#https://blog.csdn.net/shipeng1022/article/details/78604910
echo "deadline" >/sys/block/sda/queue/scheduler
echo "deadline" >/sys/block/sdb/queue/scheduler
#echo "noop" >/sys/block/sd[x]/queue/scheduler
3. 添加Octopus版yum源
cat >>/etc/yum.repos.d/ceph.repo <<EOF
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/$basearch
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/noarch
enabled=1
gpgcheck=0
type=rpm-md
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-octopus/el8/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
EOF
yum clean all && yum makecache
#安裝基礎(chǔ)軟件
yum install net-tools wget vim bash-completion lrzsz unzip zip -y
4. cephadm工具部署
https://docs.ceph.com/docs/master/cephadm/install/
- 在15版本凹联,支持使用cephadm工具部署沐兰,ceph-deploy在14版本前都支持
4.1 拉取最新的cephadm并賦權(quán)
在cephnode01節(jié)點(diǎn)配置哆档;
[root@cephnode01 ~]# curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
[root@cephnode01 ~]# chmod +x cephadm
[root@cephnode01 ~]#ll
-rwxr-xr-x. 1 root root 184653 Sep 10 12:01 cephadm
4.2 使用cephadm獲取octopus最新版本并安裝
已手動(dòng)配置為國(guó)內(nèi)yum源,不需要按官方文檔的步驟再進(jìn)行添加yum源
#全部ceph節(jié)點(diǎn)安裝
[root@cephnode01 ~]# dnf install python3 podman -y
[root@cephnode01 ~]# ./cephadm install
...
[root@cephnode01 ~]# which cephadm
/usr/sbin/cephadm
5. 創(chuàng)建ceph新集群
5.1 指定管理節(jié)點(diǎn)
創(chuàng)建一個(gè)可以被任何訪問(wèn)Ceph集群的主機(jī)訪問(wèn)的網(wǎng)絡(luò)住闯,指定mon-ip瓜浸,并將生成的配置文件寫進(jìn)/etc/ceph目錄里
[root@cephnode01 ~]# mkdir -p /etc/ceph
[root@cephnode01 ~]# cephadm bootstrap --mon-ip 10.15.253.161
...
URL: https://cephnode01:8443/
User: admin
Password: 9wttzehse1
...
可登陸URL: https://cephnode01:8443/,首次登陸要修改密碼比原,進(jìn)行驗(yàn)證
5.2 將ceph命令映射到本地
- Cephadm不需要在主機(jī)上安裝任何Ceph包插佛。但是,建議啟用對(duì)ceph命令的簡(jiǎn)單訪問(wèn)量窘。
- cephadm shell命令在安裝了所有Ceph包的容器中啟動(dòng)一個(gè)bash shell雇寇。默認(rèn)情況下,如果在主機(jī)上的/etc/ceph中找到配置和keyring文件蚌铜,它們將被傳遞到容器環(huán)境中锨侯,這樣就可以完全正常工作了。
[root@cephnode01 ~]# cephadm shell
[root@cephnode01 ~]# alias ceph='cephadm shell -- ceph'
[root@cephnode01 ~]# exit
#安裝ceph-common包冬殃;包括ceph囚痴,rbd,mount.ceph的命令
[root@cephnode01 ~]# cephadm install ceph-common
#查看版本
[root@cephnode01 ~]# ceph -v
ceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)
查看狀態(tài)
[root@cephnode01 ~]# ceph status
cluster:
id: 5579576a-f41b-11ea-b2da-000c296e8d32
health: HEALTH_WARN
Reduced data availability: 1 pg inactive
OSD count 0 < osd_pool_default_size 3
services:
mon: 1 daemons, quorum cephnode01 (age 11m)
mgr: cephnode01.doawzr(active, since 10m)
osd: 0 osds: 0 up, 0 in
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs: 100.000% pgs unknown
1 unknown
5.3 添加新節(jié)點(diǎn)進(jìn)ceph集群
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode02
[root@cephnode01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@cephnode03
[root@cephnode01 ~]# ceph orch host add cephnode02
Added host 'cephnode02'
[root@cephnode01 ~]# ceph orch host add cephnode03
Added host 'cephnode03'
5.4 部署添加 monitor
選擇需要設(shè)置mon的節(jié)點(diǎn)审葬,全選
[root@cephnode01 ~]# ceph orch host label add cephnode01 mon
Added label mon to host cephnode01
[root@cephnode01 ~]# ceph orch host label add cephnode02 mon
Added label mon to host cephnode02
[root@cephnode01 ~]# ceph orch host label add cephnode03 mon
Added label mon to host cephnode03
[root@cephnode01 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
cephnode01 cephnode01 mon
cephnode02 cephnode02 mon
cephnode03 cephnode03 mon
告訴cephadm根據(jù)標(biāo)簽部署mon深滚,這步需要等待各節(jié)點(diǎn)拉取images并啟動(dòng)容器
[root@cephnode01 ~]# ceph orch apply mon label:mon
具體驗(yàn)證是否安裝完成奕谭,其他兩臺(tái)節(jié)點(diǎn)可查看下
[root@cephnode02 ~]# podman ps -a
...
[root@cephnode02 ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ceph/ceph v15 852b28cb10de 3 weeks ago 1 GB
docker.io/prom/node-exporter v0.18.1 e5a616e4b9cf 15 months ago 24.3 MB
6. 部署OSD
6.1 查看可使用的硬盤
[root@cephnode01 ~]# ceph orch device ls
HOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS
ceph01 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
ceph01 /dev/sdb hdd 20.0G True
ceph02 /dev/sda hdd 20.0G False Insufficient space (<5GB) on vgs, LVM detected, locked
ceph02 /dev/sdb hdd 20.0G True
ceph03 /dev/sda hdd 20.0G False locked, Insufficient space (<5GB) on vgs, LVM detected
ceph03 /dev/sdb hdd 20.0G True
6.2 使用所有可用硬盤
[root@cephnode01 ~]# ceph orch apply osd --all-available-devices
添加單塊盤的方式
[root@cephnode01 ~]# ceph orch daemon add osd cephnode02:/dev/sdc
6.3 驗(yàn)證部署情況
[root@cephnode01 ~]# ceph osd df
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
0 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up
1 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up
2 hdd 0.01949 1.00000 20 GiB 1.0 GiB 3.8 MiB 1 KiB 1024 MiB 19 GiB 5.02 1.00 1 up
TOTAL 60 GiB 3.0 GiB 11 MiB 4.2 KiB 3.0 GiB 57 GiB 5.02
MIN/MAX VAR: 1.00/1.00 STDDEV: 0
7. 存儲(chǔ)部署
7.1 CephFS部署
部署cephfs的mds服務(wù),指定集群名及mds的數(shù)量
[root@cephnode01 ~]# ceph orch apply mds fs-cluster --placement=3
[root@cephnode01 ~]# ceph -s
cluster:
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a
health: HEALTH_OK
services:
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
mds: 3 up:standby
osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 57 GiB / 60 GiB avail
pgs: 1 active+clean
7.2 部署RGW
創(chuàng)建一個(gè)領(lǐng)域
[root@cephnode01 ~]# radosgw-admin realm create --rgw-realm=rgw-org --default
{
"id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
"name": "rgw-org",
"current_period": "ea3dd54c-2dfe-4180-bf11-4415be6ccafd",
"epoch": 1
}
創(chuàng)建一個(gè)zonegroup區(qū)域組
[root@cephnode01 ~]# radosgw-admin zonegroup create --rgw-zonegroup=rgwgroup --master --default
{
"id": "1878ecaa-216b-4c99-ad4e-b72f4fa9193f",
"name": "rgwgroup",
"api_name": "rgwgroup",
"is_master": "true",
"endpoints": [],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "",
"zones": [],
"placement_targets": [],
"default_placement": "",
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00",
"sync_policy": {
"groups": []
}
}
創(chuàng)建一個(gè)區(qū)域
[root@cephnode01 ~]# radosgw-admin zone create --rgw-zonegroup=rgwgroup --rgw-zone=zone-dc1 --master --default
{
"id": "fbdc5f83-9022-4675-b98e-39738920bb57",
"name": "zone-dc1",
"domain_root": "zone-dc1.rgw.meta:root",
"control_pool": "zone-dc1.rgw.control",
"gc_pool": "zone-dc1.rgw.log:gc",
"lc_pool": "zone-dc1.rgw.log:lc",
"log_pool": "zone-dc1.rgw.log",
"intent_log_pool": "zone-dc1.rgw.log:intent",
"usage_log_pool": "zone-dc1.rgw.log:usage",
"roles_pool": "zone-dc1.rgw.meta:roles",
"reshard_pool": "zone-dc1.rgw.log:reshard",
"user_keys_pool": "zone-dc1.rgw.meta:users.keys",
"user_email_pool": "zone-dc1.rgw.meta:users.email",
"user_swift_pool": "zone-dc1.rgw.meta:users.swift",
"user_uid_pool": "zone-dc1.rgw.meta:users.uid",
"otp_pool": "zone-dc1.rgw.otp",
"system_key": {
"access_key": "",
"secret_key": ""
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "zone-dc1.rgw.buckets.index",
"storage_classes": {
"STANDARD": {
"data_pool": "zone-dc1.rgw.buckets.data"
}
},
"data_extra_pool": "zone-dc1.rgw.buckets.non-ec",
"index_type": 0
}
}
],
"realm_id": "43dc34c0-6b5b-411c-9e23-687a29c8bd00"
}
為特定領(lǐng)域和區(qū)域部署一組radosgw守護(hù)進(jìn)程痴荐,這里只指定了兩個(gè)節(jié)點(diǎn)開(kāi)啟rgw
[root@cephnode01 ~]# ceph orch apply rgw rgw-org zone-dc1 --placement="2 cephnode02 cephnode03"
驗(yàn)證
[root@cephnode01 ~]# ceph -s
cluster:
id: 8a4fdb4e-f31c-11ea-be33-000c29358c7a
health: HEALTH_OK
services:
mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 1m)
mgr: cephnode01.oesega(active, since 49m), standbys: cephnode02.lphrtb, cephnode03.wkthtb
mds: 3 up:standby
osd: 3 osds: 3 up (since 51m), 3 in (since 30m)
rgw: 2 daemons active (rgw-org.zone-dc1.cephnode02.cdgjsi, rgw-org.zone-dc1.cephnode03.nmbbsz)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 57 GiB / 60 GiB avail
pgs: 1 active+clean
為RGW開(kāi)啟dashborad
#創(chuàng)建rgw的管理用戶
[root@cephnode01 ~]# radosgw-admin user create --uid=admin --display-name=admin --system
{
"user_id": "admin",
"display_name": "admin",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"subusers": [],
"keys": [
{
"user": "admin",
"access_key": "WG9W5O9O11TGGOLU6OD2",
"secret_key": "h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"system": "true",
"default_placement": "",
"default_storage_class": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": []
}
設(shè)置dashboard憑證
[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key WG9W5O9O11TGGOLU6OD2
Option RGW_API_ACCESS_KEY updated
[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key h2DfrWvlS4NMkdgGin4g6OB6Z50F1VNmhRCRQo3W
Option RGW_API_SECRET_KEY updated
設(shè)置禁用證書驗(yàn)證血柳、http訪問(wèn)方式及使用admin賬號(hào)
ceph dashboard set-rgw-api-ssl-verify False
ceph dashboard set-rgw-api-scheme http
ceph dashboard set-rgw-api-host 10.15.253.225
ceph dashboard set-rgw-api-port 80
ceph dashboard set-rgw-api-user-id admin
重啟RGW
[root@cephnode01 ~]# ceph orch restart rgw
restart rgw.rgw-org.zone-dc1.cephnode02.ubzrtp from host 'cephnode02'
restart rgw.rgw-org.zone-dc1.cephnode03.mlcbmr from host 'cephnode03'
3. ceph的監(jiān)控
1. 安裝grafana
部署到cephnode03上;生產(chǎn)環(huán)境建議單獨(dú)分離
1蹬昌、清華源下載
wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.7.4-1.x86_64.rpm
2.安裝grafana
rpm -ivh grafana-6.7.4-1.x86_64.rpm
或
yum localinstall grafana-6.7.4-1.x86_64.rpm
3.啟動(dòng)grafana并設(shè)為開(kāi)機(jī)自啟
systemctl restart grafana-server.service
systemctl enable grafana-server.service
systemctl status grafana-server.service
4.grafana的默認(rèn)端口為3000
netstat -lntup|grep 3000
2. 安裝prometheus
#1混驰、下載安裝包,下載地址
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/prometheus/LatestRelease/prometheus-2.21.0.linux-amd64.tar.gz
#2皂贩、解壓壓縮包
tar xf prometheus-2.21.0.linux-amd64.tar.gz
#3栖榨、將解壓后的目錄改名
mv prometheus-2.21.0.linux-amd64 /opt/prometheus
#4、查看prometheus版本
cd /opt/prometheus/
./prometheus --version
prometheus, version 2.21.0
#5明刷、配置系統(tǒng)服務(wù)啟動(dòng)
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/opt/prometheus/prometheus \
--config.file /opt/prometheus/prometheus.yml \
--web.listen-address=:9090
[Install]
WantedBy=multi-user.target
#6婴栽、加載系統(tǒng)服務(wù)
systemctl daemon-reload
#7、啟動(dòng)服務(wù)和添加開(kāi)機(jī)自啟動(dòng)
systemctl restart prometheus
systemctl enable prometheus
systemctl status prometheus
#8辈末、訪問(wèn)
curl http://10.15.253.225:9090
3. mgr愚争、prometheus插件配置
在cephnode01上配置;
#啟動(dòng)prometheus模塊
ceph mgr module enable prometheus
#檢查端口
netstat -nltp | grep mgr
ceph -s (mgr在cephnode01上)
#測(cè)試返回值
curl 10.15.253.225:9283/metrics
#訪問(wèn)
http://10.15.253.225:9283/metrics
4. 配置prometheus
4.1 在scrape_configs:
配置項(xiàng)下添加
#每個(gè)job_name要分開(kāi)
[root@cephnode03 prometheus]# vim prometheus.yml
- job_name: 'ceph_cluster'
honor_labels: true
scrape_interval: 5s
static_configs:
- targets: ['10.15.253.161:9283']
labels:
instance: ceph
4.2 重啟prometheus服務(wù)
systemctl restart prometheus
4.3 檢查prometheus服務(wù)器中是否添加成功
瀏覽器訪問(wèn)-》 http://10.15.253.225:9090 -》status -》Targets
5. 配置grafana監(jiān)控ceph集群
5.1 瀏覽器登錄 grafana 管理界面
http://10.15.253.225:3000/ 登陸admin/admin
5.2 添加Data Sources
點(diǎn)擊configuration
--》data sources
添加prometheus
設(shè)置prometheus的訪問(wèn)地址
5.3 添加ceph監(jiān)控模板
添加dashboard
挤聘,點(diǎn)擊HOME
--》find dashboard on grafana.com
搜索ceph的dashboard模板
點(diǎn)擊HOME
--》Import dashboard
, 選擇合適的dashboard
轰枝,記錄編號(hào)
檢測(cè)成功