使用ceph-deploy進行ceph安裝

ceph安裝包介紹:

  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服務的客戶端必須

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
相關文章
相關標籤/搜索