003.Ceph擴展集羣

一 基礎準備

參考《002.Ceph安裝部署》文檔部署一個基礎集羣。

二 擴展集羣

2.1 擴展架構

013
需求:添加Ceph元數據服務器node1。而後添加Ceph Monitor和Ceph Manager node2,node3以提升可靠性和可用性。

2.2 添加元數據(metadata)服務器

  1 [manager@deploy my-cluster]$ ceph-deploy mds create node1
提示:要使用CephFS,您至少須要一個元數據服務器。

2.3 添加監視(Monitor)服務器

  1 [manager@deploy my-cluster]$ ceph-deploy mon add node2
  2 [manager@deploy my-cluster]$ ceph-deploy mon add node3
  3 [root@node1 ~]# ceph quorum_status --format json-pretty		#查看仲裁(quorum)狀態信息
 
014
提示:若出現如圖所示報錯,須要在ceph.conf中添加Public_network,並從新推相關配置文件,操做以下:
  1 [manager@deploy my-cluster]$ vi ceph.conf
  2 [global]
  3 #……
  4 public_network = 172.24.8.0/24
  5 [manager@deploy my-cluster]$ ceph-deploy --overwrite-conf mon add node2
  6 [manager@deploy my-cluster]$ ceph-deploy --overwrite-conf mon add node3
 
015
提示:Ceph存儲集羣須要至少運行一個Ceph Monitor和Ceph Manager。爲了實現高可用性,Ceph存儲集羣一般運行多個Ceph監視器,所以單個Ceph監視器的故障不會致使Ceph存儲集羣崩潰。Ceph使用Paxos算法,該算法須要大多數監視器(即,大於N/2,其中N是監視器的數量)才能造成法定人數。雖然這不是必需的,但監視器的數量每每更好。

2.4 添加管理員

  1 [manager@deploy my-cluster]$ ceph-deploy mgr create node2 node3
  2 [manager@deploy my-cluster]$ ssh node1 sudo ceph -s		#查看驗證
 
016
提示:Ceph Manager守護進程以active/standby模式運行。部署其餘管理器守護程序可確保在一個守護程序或主機發生故障時,另外一個守護程序或主機能夠在不中斷服務的狀況下接管。

2.5 添加RGW

  1 [manager@deploy my-cluster]$ ceph-deploy rgw create node1
提示:要使用Ceph的Ceph對象網關組件,必須部署RGW實例;
默認狀況下,RGW實例將偵聽端口7480.能夠經過在運行RGW的節點上編輯ceph.conf來更改此設置。

三 客戶端存儲示例

3.1 建立pool

  1 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool create mytest 64
  2 [manager@deploy my-cluster]$ ssh node1 sudo rados lspools
  3 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd lspools
  4 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd dump | grep pool
 
提示:以上三種能夠查看已經存在的pool信息,第三種方式查看的結果最爲詳細。

3.2 客戶端模擬

  1 [root@node3 ~]# echo 'This is my test file!' >> test.txt	#建立模擬文件
  2 [root@node3 ~]# rados put test-object-1 test.txt --pool=mytest
 

3.3 查看確認

  1 [manager@deploy my-cluster]$ ssh node1 sudo rados -p mytest ls	#查看存儲的對
  2 test-object-1
 

3.4 定位對象

  1 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd map mytest test-object-1	#定位對象到相應的歸置組
  2 osdmap e30 pool 'mytest' (5) object 'test-object-1' -> pg 5.74dc35e2 (5.22) -> up ([2,1,0], p2) acting ([2,1,0], p2)
 
提示:Ceph 客戶端檢出最新集羣運行圖,用 CRUSH 算法計算出如何把對象映射到歸置組,而後動態地計算如何把歸置組分配到 OSD 。要定位對象,只須要對象名和存儲池名字便可。

3.5 刪除對象

  1 [manager@deploy my-cluster]$ ssh node1 sudo rados rm test-object-1 --pool=mytest

3.6 刪除pool

  1 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool delete mytest
  2 [manager@deploy my-cluster]$ ssh node1 sudo ceph osd pool delete mytest mytest --yes-i-really-really-mean-it
  3 pool 'mytest' removed
 
提示:若出現如下報錯:因爲刪除pool時,pool名字要輸入兩次同時要加入--yes-i-really-really-mean-it參數,且須要在ceph.conf配置中開啓容許刪除,操做以下:
017
  1 [manager@deploy my-cluster]$ vi ceph.conf
  2 [global]
  3 #……
  4 [mon]
  5 mon allow pool delete = true				                                #添加此行
  6 [manager@deploy my-cluster]$ ceph-deploy --overwrite-conf config push node1 node2 node3     #重推一次配置文件
  8 [root@node1 ~]# systemctl restart ceph-mon.target	#全部節點均須要重啓一次該服務
相關文章
相關標籤/搜索