1.ceph-deploy:node
ceph的部署軟件,經過該軟件能夠簡便部署,這個軟件並不是整個ceph集羣系統中必須的python
2.ceph:算法
ceph整個服務集羣中的每一個節點必須的軟件。提供分佈式的存儲與文件系統服務 (osd,mon守護進程)sql
3.ceph-mds:編程
元數據服務端 (mds 守護進程)服務器
4.libcephfs:負載均衡
客戶端的編程接口(c語言)less
5.python-cephfs:ssh
客戶端的編程接口(python)分佈式
6.ceph-common,ceph-fs-common 客戶端:
使用ceph服務的客戶端必須
這三種進程分佈於集羣中的服務器上,服務器中能夠只運行一種,也能夠多個同時運行,推薦爲一個服務器運行一種,使得負載均衡
osd 守護進程:即爲存儲守護進程
mon 守護進程:監視器守護進程
mds 守護進程:元數據守護進程
啓動本機上全部進程:啓動ceph在本機上配置的全部守護進程
$service ceph start
$service ceph stop
查看本機上運行那些ceph進程
$ps aux |grep 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
集羣啓動後,每一個守護進程從配置文件 /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-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和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