ceph安裝包介紹:
1.ceph-deploy:
ceph的部署軟件,通過該軟件可以簡便部署,這個軟件並非整個ceph集群系統中必須的
2.ceph:
ceph整個服務集群中的每個節點必須的軟件。提供分布式的存儲與文件系統服務 (osd,mon守護進程)
3.ceph-mds:
元數據服務端 (mds 守護進程)
4.libcephfs:
客戶端的編程接口(c語言)
5.python-cephfs:
客戶端的編程接口(python)
6.ceph-common,ceph-fs-common 客戶端:
使用ceph服務的客戶端必須
ceph的配置
ceph的進程:
這三種進程分布於集群中的服務器上,服務器中可以只運行一種,也可以多個同時運行,推薦為一個服務器運行一種,使得負載均衡
osd 守護進程:即為存儲守護進程
mon 守護進程:監視器守護進程
mds 守護進程:元數據守護進程
啟動本機上所有進程:啟動ceph在本機上配置的所有守護進程
$service ceph start
$service ceph stop
查看本機上運行那些ceph進程
$ps aux |grep ceph
ceph的文件:
可以在配置文件中修改位置
配置文件:默認 /etc/ceph/ceph.conf
日志文件:默認 /var/log/ceph
運行時文件:默認 /var/run/ceph
每個進程的管理套接字位置:/var/run/ceph/$cluster-$name.asok
使用管理套接字查看osd.0的運行時配置信息:
$ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less
配置文件ceph.conf
集群啟動后,每個守護進程從配置文件 /etc/ceph/ceph.conf中查看配置信息。(/etc/ceph/ceph.conf 或者 ~/.ceph/config 或者 ./ceph.conf)
ceph.conf的格式
[ global ] #該配置下設置應用於所有ceph守護進程 [ osd ] #該配置下設置應用於所有osd守護進程 #或者重寫global配置 [ osd.0 ] #該配置設置應用於osd 0進程,或者重寫前面配置 [ mon ] #該配置應用於所有監視器進程 [ mds ] #該配置應用於所有元數據服務進程
配置集群無密碼互聯:
整個集群機器一般在一個局域網的內網里,ceph-deploy一般只安裝在一台機器上,但可以對集群內任意機器進行安裝配置等操作,且該操作是需要具有root權限的。因此可以如下配置無密碼操作網內其他機器。
1.在每台機器上建立root權限用戶,名稱例如 ceph;
2.為每台機器設置ssh服務;
在cesh-deploy上安裝ssh服務器
$apt-get install openssh-server
使用ssh-keygen生成私鑰,公鑰
$ssh-keygen
然后將生成的公鑰復制到每台機器,使得ceph-deploy能夠訪問每台機器
$ssh-copy-id xxx.xxx.xxx.xxx
修改~/.ssh/config文件,配置訪問ip,以及用戶ceph
使用ceph-deploy進行安裝:
使用ceph-deploy進行卸載:
對集群中某個節點ceph-node卸載其上的服務
$stop ceph-all # 停止所有ceph進程 $ceph-deploy uninstall [{ceph-node}] # 卸載所有ceph程序 $ceph-deploy purge [[ceph-node} [{ceph-node}] #刪除ceph相關的包 $ceph-deploy purgedata {ceph-node} [{ceph-node}] # 刪除ceph相關的包 $ceph-deploy forgetkeys #刪除key
錯誤:
安裝好之后,查看一下pool,默認只有rbd
$ ceph osd pool ls
這時查看狀態
$ceph -s
有時候會出現HEALTH_WARN,先查看一下rbd的大小,如果osd數目小於這個數字,就會出錯,所以需要手動將數量設置為與目前osd個數相同。
$ceph osd pool get rbd size $ceph osd pool set rbd size 1 $ceph osd pool set rbd min_size 1
問題1:ceph-deploy部署的方式。就算我3個osd裝在兩台機器上,osd pool default size還是要設置為2,才行,不然還是會提示 degraded; pgs stuck unclean
答案1:因為ceph deploy 默認吧osd 設置在同一個bucket下面,而ceph算法規則默認將不同的備份數分發到不同的不同的bucket下,所以ceph認為你的bucket少於你的備份 數從而報這個錯。要避免這個問題可以手動部署ceph不用cephdeploy,或者手動去修改
由於做試驗的時候,使用的機器台數不同,以及osd數量不同,會出現,HEALTH_WARN pgs degraded,undersized 等警告,這個時候需要調整池子的大小,size,min_size.
特別是單機安裝的時候,容易出現這種錯誤。
安裝的時候某個osd總是down狀態,后來重啟機器就好了。
優化:
PG Number
PG和PGP數量一定要根據OSD的數量進行調整,計算公式如下,但是最后算出的結果一定要接近或者等於一個2的指數。
Total PGs = (Total_number_of_OSD * 100) / max_replication_count
例如15個OSD,副本數為3的情況下,根據公式計算的結果應該為500,最接近512,所以需要設定該pool(volumes)的pg_num和pgp_num都為512.
ceph osd pool set volumes pg_num 512 ceph osd pool set volumes pgp_num 512
