使用ceph-deploy進行ceph安裝


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

 


  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM