接上文基于ceph-deploy部署Ceph集群詳解
1. 資源池Pool管理
Pool是Ceph中存儲Object對象抽象概念。我們可以將其理解為Ceph存儲上劃分的邏輯分區(qū),Pool由多個(gè)PG組成;而PG通過CRUSH算法映射到不同的OSD上;同時(shí)Pool可以設(shè)置副本size大小,默認(rèn)副本數(shù)量為3。
Ceph客戶端向monitor請求集群的狀態(tài),并向Pool中寫入數(shù)據(jù),數(shù)據(jù)根據(jù)PGs的數(shù)量,通過CRUSH算法將其映射到不同的OSD節(jié)點(diǎn)上,實(shí)現(xiàn)數(shù)據(jù)的存儲。 這里我們可以把Pool理解為存儲Object數(shù)據(jù)的邏輯單元;當(dāng)然,當(dāng)前集群沒有資源池,因此需要進(jìn)行定義。
創(chuàng)建一個(gè)Pool資源池,其名字為mypool,PGs數(shù)量設(shè)置為64,設(shè)置PGs的同時(shí)還需要設(shè)置PGP(通常PGs和PGP的值是相同的):
PG (Placement Group),pg 是一個(gè)虛擬的概念,用于存放object,PGP(Placement Group for Placement purpose),相當(dāng)于是pg存放的一種osd排列組合.
cd /etc/ceph
ceph osd pool create mypool 64 64
1.1 查看Pool集群信息
ceph osd pool ls
rados lspools
ceph osd lspools
查看資源池副本的數(shù)量
ceph osd pool get mypool size
查看PG和PGP數(shù)量
ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num
修改pg_num和pgp_num的數(shù)量為128
ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128
ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num
修改Pool副本數(shù)量為2
ceph osd pool set mypool size 2
ceph osd pool get mypool size
修改默認(rèn)副本數(shù)為 2
vim /etc/ceph/ceph.conf
......
osd_pool_default_size = 2
ceph-deploy --overwrite-conf config push node01 node02 node03
1.2 刪除Pool資源池
(1)刪除存儲池命令存在數(shù)據(jù)丟失的風(fēng)險(xiǎn),Ceph默認(rèn)禁止此類操作,需要管理員先在ceph.conf配置文件中開啟支持刪除存儲池的操作
vim ceph.conf
......
[mon]
mon allow pool delete = true
(2)推送ceph.conf配置文件給所有mon節(jié)點(diǎn)
ceph-deploy --overwrite-conf config push node01 node02 node03
(3)所有mon節(jié)點(diǎn)重啟ceph-mon服務(wù)
systemctl restart ceph-mon.target
(4)執(zhí)行刪除Pool命令
ceph osd pool rm mypool mypool --yes-i-really-really-mean-it #mypool是集群中已有的資源池名稱
ceph osd pool ls
2. OSD故障模擬與恢復(fù)
(1)模擬OSD故障
如果ceph集群有上千個(gè)osd,每天壞2~3個(gè)太正常了,我們可以模擬down掉一個(gè)osd。
###如果osd守護(hù)進(jìn)程正常運(yùn)行,down的osd會很快自恢復(fù)正常,所以需要先關(guān)閉守護(hù)進(jìn)程
ssh root@node01 systemctl stop ceph-osd@0
#down掉osd
ceph osd down 0
ceph osd tree
(2)將壞掉的osd踢出集群
方法一:
#將 osd.0 移出集群,集群會開始自動同步數(shù)據(jù)
ceph osd out osd.0
#將 osd.0 移除 crushmap
ceph osd crush remove osd.0
#刪除守護(hù)進(jìn)程對應(yīng)的賬戶信息
ceph auth rm osd.0
ceph auth list
#刪掉 osd.0
ceph osd rm osd.0
ceph osd stat
ceph -s
方法二:
ceph osd out osd.2
#使用綜合步驟,刪除配置文件中針對壞掉的 osd 的配置
ceph osd purge osd.2 --yes-i-really-mean-it
(3)把原來壞掉的osd修復(fù)后重新加入集群
#在osd節(jié)點(diǎn)中創(chuàng)建osd,無需指定名,會按序號自動生成
cd /etc/ceph
ceph osd create
創(chuàng)建賬戶
ceph-authtool --create-keyring /etc/ceph/ceph.osd.0.keyring --gen-key -n osd.0 --cap mon 'allow profile osd' --cap mgr 'allow profile osd' --cap osd 'allow *'
導(dǎo)入新的賬戶秘鑰信息
ceph auth import -i /etc/ceph/ceph.osd.0.keyring
ceph auth list
在osd節(jié)點(diǎn)中,更新osd文件夾中對應(yīng)的密鑰環(huán)文件
ceph auth get-or-create osd.0 -o /var/lib/ceph/osd/ceph-0/keyring
在admin管理節(jié)點(diǎn)中,加入crushmap
ceph osd crush add osd.0 1.000 host=node01 #1.000 代表權(quán)重
在admin管理節(jié)點(diǎn)中,將新修復(fù)的osd節(jié)點(diǎn)加入集群
ceph osd in osd.0
ceph osd tree
在osd節(jié)點(diǎn)中重啟osd守護(hù)進(jìn)程
systemctl restart ceph-osd@0
ceph osd tree #稍等片刻后osd狀態(tài)為up
如果重啟失敗
報(bào)錯(cuò)如下:
文章來源:http://www.zghlxwxcb.cn/news/detail-598725.html
Job for ceph-osd@0.service failed because start of the service was attempted too often. See "systemctl status ceph-osd@0.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed ceph-osd@0.service" followed by "systemctl start ceph-osd@0.service" again.
在osd節(jié)點(diǎn)中運(yùn)行以下命令,重啟osd守護(hù)進(jìn)程文章來源地址http://www.zghlxwxcb.cn/news/detail-598725.html
systemctl reset-failed ceph-osd@0.service && systemctl restart ceph-osd@0.service
到了這里,關(guān)于【Ceph】Ceph集群應(yīng)用詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!