一 基礎準備 參考《002.Ceph安裝部署》文檔部署一個基礎集群。 二 擴展集群 2.1 擴展架構 需求:添加Ceph元數據伺服器node1。然後添加Ceph Monitor和Ceph Manager node2,node3以提高可靠性和可用性。 2.2 添加元數據(metadata)伺服器 提示 ...
一 基礎準備
參考《002.Ceph安裝部署》文檔部署一個基礎集群。二 擴展集群
2.1 擴展架構
需求:添加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)狀態信息提示:若出現如圖所示報錯,需要在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提示: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 #查看驗證提示: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配置中開啟允許刪除,操作如下:
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 #所有節點均需要重啟一次該服務