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守護進程的語法如下:

[root@ceph ~] sudo /etc/init.d/ceph [options] [start|restart] [daemonType|daemonID]

1. 管理Ceph集群內所有類型的守護進程:

通過缺省[daemonType|daemonID],并添加"-a" options,就可以達到同時對集群內所有類型的守護進程進行啟動、關閉、重啟等操作目的。

  • 啟動默認集群(ceph)所有守護進程:
[root@ceph ~] sudo /etc/init.d/ceph -a start
  • 停止默認集群(ceph)所有守護進程:
[root@ceph ~] sudo /etc/init.d/ceph -a stop
  • 如果未使用"-a"選項,以上命令只會對當前節點內的守護進程生效。

2. 管理Ceph集群內指定類型的守護進程:

根據命令語法,要啟動當前節點上某一類的守護進程,只需指定對應類型及ID即可。

  • 啟動進程,以OSD進程為例:
#啟動當前節點內所有OSD進程
[root@ceph ~] sudo /etc/init.d/ceph start osd
#啟動當前節點內某一個OSD進程,以osd.0為例
[root@ceph ~] sudo /etc/init.d/ceph start osd.0  
  • 重啟及關閉進程,以OSD進程為例:
#關閉當前節點內所有OSD進程
[root@ceph ~] sudo /etc/init.d/ceph stop osd
#關閉當前節點內某一個OSD進程,以osd.0為例
[root@ceph ~] sudo /etc/init.d/ceph stop osd.0
#重啟當前節點內所有OSD進程
[root@ceph ~] sudo /etc/init.d/ceph restart osd
#重啟當前節點內某一個OSD進程,以osd.0為例
[root@ceph ~] sudo /etc/init.d/ceph restart osd.0

集群狀態監控

1. 檢查集群健康狀況

  • 檢查Ceph集群狀態
[root@ceph ~] ceph health [detail]

如果集群處于健康狀態,會輸出HEALTH_OK,如果輸出HEALTH_WARN甚至HEALTH_ERR,表明Ceph處于一個不正常狀態,可以加上"detail"選項幫助排查問題。

  • 快速了解Ceph集群概況:
[root@ceph ~] 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集群狀態變化,可使用如下命令:

[root@ceph ~] sudo ceph -w 

2. 檢查集群容量使用情況

[root@ceph ~] 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時便指定,命令如下:

[root@ceph ~] sudo ceph osd pool create "pool-name" pg_num [pgp_num]
[root@ceph ~] sudo ceph osd pool create image 256 256

需要注意的是,在后續增加PG數量時,還必須增加用于歸置PG的PGP數量(pgp_num),PGP的數量應該與PG的數量相等。但在新增POOL時可以不指定pgp_num,默認會與pg_num保持一致。
新增PG數量:

[root@ceph ~] sudo ceph osd pool set "pool-name" pg_num [pgp_num]
[root@ceph ~] sudo ceph osd pool set image 512 512

3. 查看PG信息

若需要獲取某個POOL的PG數量或PGP數量,可以使用如下命令:

[root@ceph ~] sudo ceph osd pool get "pool-name" pg_num/pgp_num
[root@ceph ~] sudo ceph osd pool get image pg_num
pg_num : 512
[root@ceph ~] sudo ceph osd pool get image pgp_num
pgp_num : 512

若要獲取集群里PG的統計信息,可以使用如下命令,并指定輸出格式:

#不指定輸出格式的情況下,會輸出純文本內容,可指定格式為json
[root@ceph ~] sudo ceph pg dump [--format json]

若要獲取狀態不正常的PG的狀態,可以使用如下命令:

[root@ceph ~] 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,可以執行如下命令:

[root@ceph ~] 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,可以通過如下命令查看:

[root@ceph ~] 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集群法定監視器的情況,可以使用如下命令查看:

[root@ceph ~] 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拆到其他節點上。

操作步驟:

  1. 使用ceph-deploy新建mon

    [root@host-name ~]#ceph-deploy mon create {host-name [host-name]...}
    [root@host-name ~]#ceph-deploy mon create newhostname
    

注意事項:

1、使用ceph-deploy命令的節點上必須有相應權限,可以使用ceph-deploy gatherkeys命令分配權限

2、使用ceph-deploy新增的monitor默認會使用ceph public網絡

  1. 停止原本在計算節點上的mon進程,驗證集群是否正常,如果正常則進行下一步。

    [root@host-name ~]# /etc/init.d/ceph stop mon
    
  2. 刪除原本在計算節點上的monitor。

    [root@host-name ~]# ceph-deploy mon destroy {host-name [host-name]...}
    [root@host-name ~]# ceph-deploy mon destroy oldhostname
    
  3. 修改配置文件中關于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

[root@host-name ~]# 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查看

[root@host-name ~]# 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的狀態:

[root@ceph ~] 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容量的使用情況

    [root@ceph ~] 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在集群布局中的設計分布

    [root@ceph ~] 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概況

    [root@ceph ~] 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集群。

操作步驟:

  1. 任選一個monitor節點,安裝ceph-deploy。

    [root@host-name ~]# yum install ceph-deploy
    
  2. 切換至Ceph集群配置文件所在目錄,如使用默認名稱ceph,則切換至如下目錄。

    [root@host-name ~]# cd /etc/ceph
    
  3. 編輯/etc/hosts目錄,將新增節點的主機名及IP加入該文件中。

    [root@host-name ~]# vim /etc/hosts
    
  4. 在新增節點上安裝ceph軟件,并解決依賴關系,也許需要安裝redhat-lsb。

    [root@new-node ~]# yum install ceph
    [root@new-node ~]# yum install redhat-lsb
    
  5. 推送相關密鑰及配置文件至新增節點。

    [root@host-name ceph]# ceph-deploy admin new-node
    
  6. 創建集群關系key。

    [root@host-name ceph]# ceph-deploy gatherkeys 當前節點
    [root@host-name ceph]# ceph-deploy gatherkeys new-node
    
  7. 檢查新增OSD節點的磁盤。

    [root@host-name ceph]# ceph-deploy disk list new-node
    
  8. 創建所要新增OSD節點上的osd。

    [root@host-name ceph]# ceph-deploy osd create new-node:new-disk
    
  9. 少數情況下,需要手動激活新增的osd后,集群才能正常識別新增的osd。

    [root@new-node ~]# ceph-disk activate-all
    

場景二、完全刪除osd

需求:需要刪除Ceph集群中一個或多個osd時,可以參考以下做法實現。

操作步驟:

  1. 停止需要刪除的osd進程。

    [root@host-name ~]# /etc/init.d/ceph stop osd.x
    
  2. 將該osd的集群標記為out。

    [root@host-name ~]# ceph osd out osd.x
    
  3. 將該osd從Ceph crush中移除。

    [root@host-name ~]# ceph osd crush remove osd.x
    
  4. 從集群中完全刪除該osd的記錄。

    [root@host-name ~]# ceph osd rm osd.x
    
  5. 刪除該osd的認證信息,否則該osd的編號不會釋放。

    [root@host-name ~]# ceph auth del osd.x
    

POOL管理操作

1. 獲取POOL概況

在部署一個Ceph集群時,會創建一個默認名為rbd的POOL,使用以下命令,可以獲取集群內所有POOL的概況信息。

[root@ceph ~] 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
[root@ceph ~] sudo ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
              [ruleset]
#創建一個糾刪碼類型的POOL
[root@ceph ~] 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

如果需要重命名存儲池,可以使用以下命令:

[root@ceph ~] sudo ceph osd pool rename {current-pool-name}    {new-pool-name}

需要注意的是,在POOL被重命名后,需要用新的POOL名更新對應的認證用戶權限。此部分內容請參考:用戶管理操作

4. 刪除POOL

刪除存儲池,可以使用以下命令:

[root@ceph ~] sudo ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]

如果有某個認證用戶擁有該池的某些權限,那么你應該確認該認證用戶是否還有其他作用,確認完畢后,或更 新,或將該用戶刪除。
此部分內容請參考:用戶管理操作

5. 設置POOL的配置

可以為每個POOL進行配額,可以設置最大字節數及最大object數,命令如下:

[root@ceph ~] sudo ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]

例如:
[root@ceph ~] sudo ceph osd pool set-quota data max_objects 10000
[root@ceph ~] sudo ceph osd pool set-quota data max_bytes 10240

如果要取消配額,只需要將值設置為0即可。

6. 查看POOL的統計信息

查看集群內POOL的使用情況,可以使用以下命令:

[root@ceph ~] sudo rados df

7. POOL快照操作

要拍下某個POOL的快照,可以使用以下命令:

[root@ceph ~] sudo ceph osd pool mksnap {pool-name} {snap-name}

例如:
[root@ceph ~] sudo ceph osd pool mksnap snappool snap1

要刪除某個POOL的快照,可以使用以下命令:

[root@ceph ~] sudo ceph osd pool rmsnap {pool-name} {snap-name}

例如:
[root@ceph ~] sudo ceph osd pool rmsnap snappool snap1

要查看集群中POOL的快照信息,暫時未提供ls-snap相關的命令,但可以借助前文提到的命令查看:

 [root@ceph ~] sudo ceph osd pool ls detail

8. 設置object副本數量

要設置副本類型POOL的對象副本數,可以使用以下命令:

[root@ceph ~] sudo ceph osd pool set {pool-name} size {num-replicas}

例如:
[root@ceph ~] sudo ceph osd pool set replpool size 3

當一個object的副本數小于規定值時,仍然可以接受I/O請求。為了保證I/O正常,可以為POOL設置最低副本數,如:

[root@ceph ~] sudo ceph osd pool set replpool min_size 3

這確保了該POOL內任何副本數小于min_size的對象都不會再進行I/O。


待續。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 系統環境: centos73.10.0-514.26.2.el7.x86_64 機器數量:五臺 硬盤:四塊一塊為系...
    think_lonely閱讀 4,741評論 0 5
  • ceph簡介 Ceph是一個分布式存儲系統,誕生于2004年,是最早致力于開發下一代高性能分布式文件系統的項目。隨...
    愛吃土豆的程序猿閱讀 6,076評論 0 21
  • CRUSH(Controlled Replication Under Scalable Hashing...
    Cindy_lina閱讀 1,869評論 0 6
  • 朱 榮澤| 2013.09.09 https://www.ustack.com/blog/ceph_infra/ ...
    守望者_1065閱讀 2,530評論 0 1
  • 一、概述 Ceph是一個分布式存儲系統,誕生于2004年,最早致力于開發下一代高性能分布式文件系統的項目。隨著云計...
    魏鎮坪閱讀 49,544評論 3 54