一 基礎準備
參考《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
默認狀況下,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 #全部節點均須要重啓一次該服務