Ceph基礎運維命令大全
叢集管理
每次用命令啟動、重啟、停止Ceph守護程序(或整個叢集)時,必須指定至少一個選項和一個命令,還可能要指定守護程序型別或具體例程。
**命令格式如
{commandline} [options] [commands] [daemons]
常用的commandline為"ceph",對應的options如下表:
選項 | 簡寫 | 描述 |
---|---|---|
--verbose | -v | 詳細的日誌 |
--valgrind | N/A | (只適合開發者和質檢人員)用 Valgrind 除錯 |
--allhosts | -a | 會在叢集配置檔案裡配置的所有主機上執行相應命令,預設叢集配置檔案為ceph.conf |
--restart | N/A | 核心轉儲後自動重啟 |
--norestart | N/A | 核心轉儲後不自動重啟 |
--conf | -c | 使用另外一個叢集配置檔案 |
對應的commands如下表:
命令 | 描述 |
---|---|
start | 啟動守護程序 |
stop | 停止守護程序 |
forcestop | 暴力停止守護程序,等價於 kill -9 |
killall | 殺死某一類守護程序 |
cleanlogs | 清理掉日誌目錄 |
cleanalllogs | 清理掉日誌目錄內的所有檔案 |
能指定的daemons(守護程序)型別包括mon,osd及mds。
通過SysVinit機制執行ceph:
在 CentOS、Redhat、Fedora和SUSE發行版上可以通過傳統的SysVinit執行Ceph,Debian/Ubuntu的較老的版本也可以用此方法。
使用SysVinit管理Ceph守護程序的語法如下:
[[email protected] ~] sudo /etc/init.d/ceph [options] [start|restart] [daemonType|daemonID]
1. 管理Ceph叢集內所有型別的守護程序:
通過預設[daemonType|daemonID],並新增"-a" options,就可以達到同時對叢集內所有型別的守護程序進行啟動、關閉、重啟等操作目的。
- 啟動預設叢集(ceph)所有守護程序:
[[email protected] ~] sudo /etc/init.d/ceph -a start
- 停止預設叢集(ceph)所有守護程序:
[[email protected] ~] sudo /etc/init.d/ceph -a stop
- 如果未使用"-a"選項,以上命令只會對當前節點內的守護程序生效。
2. 管理Ceph叢集內指定型別的守護程序:
根據命令語法,要啟動當前節點上某一類的守護程序,只需指定對應型別及ID即可。
- 啟動程序,以OSD程序為例:
#啟動當前節點內所有OSD程序
[[email protected] ~] sudo /etc/init.d/ceph start osd
#啟動當前節點內某一個OSD程序,以osd.0為例
[[email protected] ~] sudo /etc/init.d/ceph start osd.0
- 重啟及關閉程序,以OSD程序為例:
#關閉當前節點內所有OSD程序
[[email protected] ~] sudo /etc/init.d/ceph stop osd
#關閉當前節點內某一個OSD程序,以osd.0為例
[[email protected] ~] sudo /etc/init.d/ceph stop osd.0
#重啟當前節點內所有OSD程序
[[email protected] ~] sudo /etc/init.d/ceph restart osd
#重啟當前節點內某一個OSD程序,以osd.0為例
[[email protected] ~] sudo /etc/init.d/ceph restart osd.0
叢集狀態監控
1. 檢查叢集健康狀況
- 檢查Ceph叢集狀態
[[email protected] ~] ceph health [detail]
如果叢集處於健康狀態,會輸出HEALTH_OK,如果輸出HEALTH_WARN甚至HEALTH_ERR,表明Ceph處於一個不正常狀態,可以加上"detail"選項幫助排查問題。
- 快速瞭解Ceph叢集概況:
[[email protected] ~] sudo ceph -s
#輸出的內容大致如下:
cluster b370a29d-xxxx-xxxx-xxxx-3d824f65e339
health HEALTH_OK
monmap e1: 1 mons at {ceph1=10.x.x.8:6789/0}, election epoch 2, quorum 0 ceph1
osdmap e63: 2 osds: 2 up, 2 in
pgmap v41338: 952 pgs, 20 pools, 17130 MB data, 2199 objects
115 GB used, 167 GB / 297 GB avail
952 active+clean
通過以上命令,可以快速瞭解Ceph叢集的clusterID,health狀況,以及monitor、OSD、PG的map概況。
如果需要實時觀察Ceph叢集狀態變化,可使用如下命令:
[[email protected] ~] sudo ceph -w
2. 檢查叢集容量使用情況
[[email protected] ~] sudo ceph df
#輸出的內容大致如下
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
1356G 1284G 73943M 5.32
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
images 1 24983M 1.80 421G 3158
volumes 2 32768k 0 421G 20
vms 3 3251M 0.23 421G 434
輸出的GLOBAL段顯示了資料所佔用叢集儲存空間概況。
- SIZE: 叢集的總容量
- AVAIL: 叢集的總空閒容量
- RAW USED: 已用儲存空間總量
- %RAW USED: 已用儲存空間百分比
輸出的POOLS段展示了儲存池列表及各儲存池的大致使用率。本段沒有展示副本、克隆品和快照佔用情況。 例如,把1MB的資料儲存為物件,理論使用量將是1MB,但考慮到副本數、克隆數、和快照數,實際使用量可能是2MB或更多。
- NAME: 儲存池名
- ID: 儲存池唯一識別符號
- USED: 使用量,單位可為KB、MB或GB,以輸出結果為準
- %USED: 儲存池的使用率
- MAX AVAIL: 儲存池的最大可用空間
- OBJECTS: 儲存池內的object個數
注:POOLS 段內的數字是理論值,它們不包含副本、快照或克隆。因此,它與USED和%USED數量之和不會達到GLOBAL段中的RAW USED和 %RAW USED數量。
PG管理操作
PG(歸置組)是多個object的邏輯儲存集合,每個PG會根據副本級別而被複制多份。一個POOL的PG個數可以在建立時指定,也可以在之後進行擴大,但是需要注意的是,目前Ceph尚不支援減少POOL中的PG個數。
1. 預定義PG個數
Ceph對於叢集內PG的總個數有如下公式:
(OSD個數\*100)/ 副本數 = PGs
以上公式計算得出結果後,再取一個與之較大的2的冪的值,便可作為叢集的總PG數。例如,一個配置了200個OSD且副本數為3的叢集,計算過程如下:
(200\*100)/3 = 6667. Nearest power of 2 : 8192
得到8192後,可以根據叢集內所需建立的POOL的個數及用途等要素,進行PG劃分。具體劃分細則請參考官 方計算工具 PGcalc: http://ceph.com/pgcalc/
2. 設定PG數量
要設定某個POOL的PG數量(pg_num),必須在建立POOL時便指定,命令如下:
[[email protected] ~] sudo ceph osd pool create "pool-name" pg_num [pgp_num]
[[email protected] ~] sudo ceph osd pool create image 256 256
需要注意的是,在後續增加PG數量時,還必須增加用於歸置PG的PGP數量(pgp_num),PGP的數量應該與PG的數量相等。但在新增POOL時可以不指定pgp_num,預設會與pg_num保持一致。
新增PG數量:
[[email protected] ~] sudo ceph osd pool set "pool-name" pg_num [pgp_num]
[[email protected] ~] sudo ceph osd pool set image 512 512
3. 檢視PG資訊
若需要獲取某個POOL的PG數量或PGP數量,可以使用如下命令:
[[email protected] ~] sudo ceph osd pool get "pool-name" pg_num/pgp_num
[[email protected] ~] sudo ceph osd pool get image pg_num
pg_num : 512
[[email protected] ~] sudo ceph osd pool get image pgp_num
pgp_num : 512
若要獲取叢集裡PG的統計資訊,可以使用如下命令,並指定輸出格式:
#不指定輸出格式的情況下,會輸出純文字內容,可指定格式為json
[[email protected] ~] sudo ceph pg dump [--format json]
若要獲取狀態不正常的PG的狀態,可以使用如下命令:
[[email protected] ~] sudo ceph pg dump_stuck inactive|unclean|stale|undersized|degraded [--format <format>]
4. PG狀態概述
一個PG在它的生命週期的不同時刻可能會處於以下幾種狀態中:
-
Creating(建立中)
在建立POOL時,需要指定PG的數量,此時PG的狀態便處於creating,意思是Ceph正在建立PG。 -
Peering(互聯中)
peering的作用主要是在PG及其副本所在的OSD之間建立互聯,並使得OSD之間就這些PG中的object及其元資料達成一致。
- Active(活躍的)
處於該狀態意味著資料已經完好的儲存到了主PG及副本PG中,並且Ceph已經完成了peering工作。
- Clean(整潔的)
當某個PG處於clean狀態時,則說明對應的主OSD及副本OSD已經成功互聯,並且沒有偏離的PG。也意味著Ceph已經將該PG中的物件按照規定的副本數進行了複製操作。
-
Degraded(降級的)
當某個PG的副本數未達到規定個數時,該PG便處於degraded狀態,例如:在客戶端向主OSD寫入object的過程,object的副本是由主OSD負責向副本OSD寫入的,直到副本OSD在建立object副本完成,並向主OSD發出完成資訊前,該PG的狀態都會一直處於degraded狀態。
又或者是某個OSD的狀態變成了down,那麼該OSD上的所有PG都會被標記為degraded。
當Ceph因為某些原因無法找到某個PG內的一個或多個object時,該PG也會被標記為degraded狀態。此時客戶端不能讀寫找不到的物件,但是仍然能訪問位於該PG內的其他object。
- Recovering(恢復中)
當某個OSD因為某些原因down了,該OSD內PG的object會落後於它所對應的PG副本。而在該OSD重新up之後,該OSD中的內容必須更新到當前狀態,處於此過程中的PG狀態便是recovering。
- Backfilling(回填)
當有新的OSD加入叢集時,CRUSH會把現有叢集內的部分PG分配給它。這些被重新分配到新OSD的PG狀態便處於backfilling。
- Remapped(重對映)
當負責維護某個PG的acting set變更時,PG需要從原來的acting set遷移至新的acting set。這個過程需要一段時間,所以在此期間,相關PG的狀態便會標記為remapped。
- Stale(陳舊的)
預設情況下,OSD守護程序每半秒鐘便會向Monitor報告其PG等相關狀態,如果某個PG的主OSD所在acting set沒能向Monitor傳送報告,或者其他的Monitor已經報告該OSD為down時,該PG便會被標記為stale。
Monitor管理操作
1. 檢查叢集內Monitor狀態
如果你有多個監視器(很可能),你啟動集群后、讀寫資料前應該檢查監視器法定人數狀態。執行著多個監視器時必須形成法定人數,最好週期性地檢查監視器狀態來確定它們在執行。
要檢視monmap,可以執行如下命令:
[[email protected] ~] sudo ceph mon stat
#輸出內容大致如下:
e3: 3 mons at {controller-21=172.x.x.21:6789/0,controller-22=172.x.x.22:6789/0,
controller-23=172.x.x.23:6789/0}, election epoch 48710,
quorum 0,1,2 controller-21,controller-22,controller-23
通過以上資訊可以瞭解到叢集內monmap版本為3,共有3個Monitor守護程序,分別處於哪些主機( 主機名、IP地址、埠號)上,當前的Monitor選舉版本為48710,Monitor叢集內的法定監視器共有3個(顯示的qourumID個數總和),以及它們的MonitorID。
如果希望進一步瞭解monmap,可以通過如下命令檢視:
[[email protected] ~] sudo ceph mon dump
#輸出內容大致如下:
dumped monmap epoch 3
epoch 3
fsid 86673d4c-xxxx-xxxx-xxxx-b61e6681305d
last_changed 2016-09-02 16:05:02.120629
created 2016-09-02 16:03:39.311083
0: 172.16.130.21:6789/0 mon.controller-21
1: 172.16.130.22:6789/0 mon.controller-22
2: 172.16.130.23:6789/0 mon.controller-23
通過以上資訊可以額外瞭解到monmap建立時間及最近一次修改時間。
要獲知Ceph叢集內Monitor叢集法定監視器的情況,可以使用如下命令檢視:
[[email protected] ~] sudo ceph quorum_status
#輸出內容大致如下:
{"election_epoch":48710,"quorum":[0,1,2],
"quorum_names":["controller-21","controller-22","controller-23"],
"quorum_leader_name":"controller-22",
"monmap":{"epoch":3,
"fsid":"86673d4c-xxx-xxxx-xxxxx-b61e6681305d",
"modified":"2016-09-02 16:05:02.120629",
"created":"2016-09-0216:03:39.311083",
"mons":[{"rank":0,"name":"controller-21","addr":"172.16.130.21:6789\ / 0"},
{"rank":1,"name":"controller-22","addr":"172.16.130.22:6789\/0"},
{"rank":2,"name":"controller-23","addr":"172.16.130.23:6789\/0"}]}}
通過以上資訊,可以瞭解到Monitor叢集法定監視器的個數,以及監視器leader。
2. 實際業務場景
場景一、使用ceph-deploy新增mon節點
需求:產品標準部署完成時,ceph mon一般會部署在某些OSD節點上,需要將mon拆到其他節點上。
操作步驟:
-
使用ceph-deploy新建mon
[[email protected] ~]#ceph-deploy mon create {host-name [host-name]...} [[email protected] ~]#ceph-deploy mon create newhostname
注意事項:
1、使用ceph-deploy命令的節點上必須有相應許可權,可以使用ceph-deploy gatherkeys命令分配許可權
2、使用ceph-deploy新增的monitor預設會使用ceph public網路
-
停止原本在計算節點上的mon程序,驗證叢集是否正常,如果正常則進行下一步。
[[email protected] ~]# /etc/init.d/ceph stop mon
-
刪除原本在計算節點上的monitor。
[[email protected] ~]# ceph-deploy mon destroy {host-name [host-name]...} [[email protected] ~]# ceph-deploy mon destroy oldhostname
-
修改配置檔案中關於mon的配置,不要使用主機名,應直接使用IP(public網路),之後同步到所有ceph節點上並重啟所有mon程序。
注意事項:
由於預設情況下,主機名和IP的對應關係是使用的管理網路,而使用ceph-deploy新增的monitor預設會使用ceph public網路所以需要修改配置檔案中"mon_intial_members"及"mon_host"中的主機名為ip地址。
場景二、從一個monitor狀態異常的Ceph叢集中獲取monmap
需求:當一個Ceph叢集的monitor叢集狀態出現異常時,叢集的基本命令都無法使用,這個時候可以嘗試提取出monmap,幫助排查問題。
操作步驟:
1, 匯出叢集monmap
[[email protected] ~]# ceph-mon -i mon-host-name --extract-monmap /tmp/monmap-file
注意:以上命令在mon狀態正常的節點上無法使用。會報如下錯誤:
IO error: lock /var/lib/ceph/mon/ceph-cont01/store.db/LOCK: Resource temporarily unavailable
2, 使用monmaptool檢視
[[email protected] ~]# monmaptool --print /tmp/monmap-file
monmaptool: monmap file /tmp/monmap
epoch 3
fsid 86673d4c-xxxx-xxxx-xxxx-b61e6681305d
last_changed 2016-10-13 16:17:33.590245
created 2016-10-13 16:16:33.801453
0: 172.16.50.136:6789/0 mon.cont01
1: 172.16.50.137:6789/0 mon.cont02
2: 172.16.50.138:6789/0 mon.cont03
OSD管理操作
1. OSD狀態
單個OSD有兩組狀態需要關注,其中一組使用in/out標記該OSD是否在叢集內,另一組使用up/down標記該OSD是否處於執行中狀態。兩組狀態之間並不互斥,換句話說,當一個OSD處於“in”狀態時,它仍然可以處於up或down的狀態。
- OSD狀態為in且up
這是一個OSD正常的狀態,說明該OSD處於叢集內,並且執行正常。
- OSD狀態為in且down
此時該OSD尚處於叢集中,但是守護程序狀態已經不正常,預設在300秒後會被踢出叢集,狀態進而變為out且down,之後處於該OSD上的PG會遷移至其它OSD。
- OSD狀態為out且up
這種狀態一般會出現在新增OSD時,意味著該OSD守護程序正常,但是尚未加入叢集。
- OSD狀態為out且down
在該狀態下的OSD不在叢集內,並且守護程序執行不正常,CRUSH不會再分配PG到該OSD上。
2. 檢查OSD狀態
在執行ceph health、ceph -s或ceph -w等命令時,也許會發現叢集並未處於HEALTH狀態,就OSD而言,應該關注它是否處於叢集內,以及是否處於執行中狀態。我們可以通過以下命令檢視叢集內所有OSD的狀態:
[[email protected] ~] sudo ceph osd stat
#輸出內容大致如下:
osdmap e3921: 5 osds: 5 up, 5 in;
命令的結果顯示,當前osdmap的版本號為e3921,叢集內共有5個OSD,其中處於“up”狀態的OSD為5個,處於“in”狀態的OSD也為5個。這說明叢集中OSD的狀態處於正常情況。
如果要啟動一個OSD守護程序,請參考前文"叢集管理操作"內容
3. 檢視叢集OSD配置
要了解叢集OSD的配置情況,可以使用下列命令進行檢視。
-
檢視OSD容量的使用情況
[[email protected] ~] sudo ceph osd df #輸出內容大致如下: ID WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR 0 0.25999 1.00000 269G 21378M 248G 7.75 1.38 3 0.25999 1.00000 269G 19027M 250G 6.90 1.23 4 0.25999 1.00000 269G 14207M 255G 5.15 0.92 1 0.53999 1.00000 548G 23328M 525G 4.15 0.74 TOTAL 1356G 77942M 1280G 5.61 MIN/MAX VAR: 0/1.38 STDDEV: 1.47
從輸出結果可以看到每個OSD的總容量、當前使用量以及可用容量等資訊。
-
檢視OSD在叢集佈局中的設計分佈
[[email protected] ~] sudo ceph osd tree #輸出內容大致如下: ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.08995 root default -2 0.02998 host ceph01 0 0.00999 osd.0 up 1.00000 1.00000 1 0.00999 osd.1 up 1.00000 1.00000 2 0.00999 osd.2 up 1.00000 1.00000 -3 0.02998 host ceph02 3 0.00999 osd.3 up 1.00000 1.00000 4 0.00999 osd.4 up 1.00000 1.00000 5 0.00999 osd.5 up 1.00000 1.00000 -4 0.02998 host ceph03 6 0.00999 osd.6 up 1.00000 1.00000 7 0.00999 osd.7 up 1.00000 1.00000 8 0.00999 osd.8 up 1.00000 1.00000
從輸出結果可以看到每個OSD的位置分佈情況,預設的CRUSHMAP中,OSD按照所在的主機節點分佈,可以通過修改CRUSHMAP進行定製化分佈設計。同時可以看到每個OSD的WEIGHT值,WEIGHT值與OSD的容量相關,1TB容量換算WEIGHT值為1.0。
-
檢視OSD的dump概況
[[email protected] ~] sudo ceph osd dump
OSD dump輸出的條目較多,基本可以分為三個部分:
輸出OSDmap資訊,包括版本號、叢集ID以及map相關的時間;
POOL的相關資訊,包括POOL ID、POOL名稱、副本數、最小副本數、ruleset ID等資訊;
列出所有OSD的狀態等資訊,包括OSD ID、狀態、狀態版本記錄以及被監聽的IP地址及埠等資訊。
4. 實際業務場景
場景一、使用ceph-deploy新增OSD節點
需求:由於某些原因無法使用salt進行擴容Ceph叢集時,可以考慮使用ceph-deploy工具擴容Ceph叢集。
操作步驟:
-
任選一個monitor節點,安裝ceph-deploy。
[[email protected] ~]# yum install ceph-deploy
-
切換至Ceph叢集配置檔案所在目錄,如使用預設名稱ceph,則切換至如下目錄。
[[email protected] ~]# cd /etc/ceph
-
編輯/etc/hosts目錄,將新增節點的主機名及IP加入該檔案中。
[[email protected] ~]# vim /etc/hosts
-
在新增節點上安裝ceph軟體,並解決依賴關係,也許需要安裝redhat-lsb。
[[email protected] ~]# yum install ceph [[email protected] ~]# yum install redhat-lsb
-
推送相關金鑰及配置檔案至新增節點。
[[email protected] ceph]# ceph-deploy admin new-node
-
建立叢集關係key。
[[email protected] ceph]# ceph-deploy gatherkeys 當前節點 [[email protected] ceph]# ceph-deploy gatherkeys new-node
-
檢查新增OSD節點的磁碟。
[[email protected] ceph]# ceph-deploy disk list new-node
-
建立所要新增OSD節點上的osd。
[[email protected] ceph]# ceph-deploy osd create new-node:new-disk
-
少數情況下,需要手動啟用新增的osd後,叢集才能正常識別新增的osd。
[[email protected] ~]# ceph-disk activate-all
場景二、完全刪除osd
需求:需要刪除Ceph叢集中一個或多個osd時,可以參考以下做法實現。
操作步驟:
-
停止需要刪除的osd程序。
[[email protected] ~]# /etc/init.d/ceph stop osd.x
-
將該osd的叢集標記為out。
[[email protected] ~]# ceph osd out osd.x
-
將該osd從Ceph crush中移除。
[[email protected] ~]# ceph osd crush remove osd.x
-
從叢集中完全刪除該osd的記錄。
[[email protected] ~]# ceph osd rm osd.x
-
刪除該osd的認證資訊,否則該osd的編號不會釋放。
[[email protected] ~]# ceph auth del osd.x
POOL管理操作
1. 獲取POOL概況
在部署一個Ceph叢集時,會建立一個預設名為rbd的POOL,使用以下命令,可以獲取叢集內所有POOL的概況資訊。
[[email protected] ~] sudo ceph osd pool ls detail
使用該命令你可以瞭解到叢集內POOL的個數、對應的POOL id、POOL名稱、副本數、最小副本數,ruleset及POOL snap等資訊。
2. 建立POOL
在建立一個新的POOL前,可先檢視配置檔案中是否有關於POOL的預設引數,同時瞭解叢集內CRUSHMAP的設計,之後再新建POOL。
例如,配置檔案中有關於pg_num,pgp_num等預設引數,那麼在使用ceph-deploy自動化部署工具,便會以此引數建立指定POOL。
要手動建立一個POOL的命令語法如下:
#建立一個副本型別的POOL
[[email protected] ~] sudo ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
[ruleset]
#建立一個糾刪碼型別的POOL
[[email protected] ~] sudo ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \
[erasure-code-profile] [ruleset]
在{}內的引數為必選項,[]內的引數均設有預設值,如果沒有更改設計,可以不新增。
引數的含義如下:
- pool-name: POOL的名字;必須新增。
- pg-num: POOL擁有的PG總數;必須新增。具體內容可參考前文:PG管理操作
- pgp-num: POOL擁有的PGP總數;非必須新增。預設與pg-num相同。
- replicated|erasure: POOL型別;非必須新增。如不指定為erasure,則預設為replicated型別。
- ruleset: POOL所用的CRUSH規則ID。非必須新增。預設為0,若需指定其他ruleset,需確保ruleset必須存在。
- erasure-code-profile: 僅用於糾刪碼型別的POOL。指定糾刪碼配置框架,此配置必須已由osd erasure-code-profile set 定義
3. 重新命名POOL
如果需要重新命名儲存池,可以使用以下命令:
[[email protected] ~] sudo ceph osd pool rename {current-pool-name} {new-pool-name}
需要注意的是,在POOL被重新命名後,需要用新的POOL名更新對應的認證使用者許可權。此部分內容請參考:使用者管理操作
4. 刪除POOL
刪除儲存池,可以使用以下命令:
[[email protected] ~] sudo ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
如果有某個認證使用者擁有該池的某些許可權,那麼你應該確認該認證使用者是否還有其他作用,確認完畢後,或更 新,或將該使用者刪除。
此部分內容請參考:使用者管理操作
5. 設定POOL的配置
可以為每個POOL進行配額,可以設定最大位元組數及最大object數,命令如下:
[[email protected] ~] sudo ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]
例如:
[[email protected] ~] sudo ceph osd pool set-quota data max_objects 10000
[[email protected] ~] sudo ceph osd pool set-quota data max_bytes 10240
如果要取消配額,只需要將值設定為0即可。
6. 檢視POOL的統計資訊
檢視叢集內POOL的使用情況,可以使用以下命令:
[[email protected] ~] sudo rados df
7. POOL快照操作
要拍下某個POOL的快照,可以使用以下命令:
[[email protected] ~] sudo ceph osd pool mksnap {pool-name} {snap-name}
例如:
[[email protected] ~] sudo ceph osd pool mksnap snappool snap1
要刪除某個POOL的快照,可以使用以下命令:
[[email protected] ~] sudo ceph osd pool rmsnap {pool-name} {snap-name}
例如:
[[email protected] ~] sudo ceph osd pool rmsnap snappool snap1
要檢視叢集中POOL的快照資訊,暫時未提供ls-snap相關的命令,但可以藉助前文提到的命令檢視:
[[email protected] ~] sudo ceph osd pool ls detail
8. 設定object副本數量
要設定副本型別POOL的物件副本數,可以使用以下命令:
[[email protected] ~] sudo ceph osd pool set {pool-name} size {num-replicas}
例如:
[[email protected] ~] sudo ceph osd pool set replpool size 3
當一個object的副本數小於規定值時,仍然可以接受I/O請求。為了保證I/O正常,可以為POOL設定最低副本數,如:
[[email protected] ~] sudo ceph osd pool set replpool min_size 3
這確保了該POOL內任何副本數小於min_size的物件都不會再進行I/O。
待續。。。
作者:Arteezy_Xie
連結:https://www.jianshu.com/p/a104d156f120
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。