Ceph 存儲集羣 - 存儲池

 

1、存儲池介紹

http://docs.ceph.org.cn/rados/operations/pools/編碼

若是你開始部署集羣時沒有建立存儲池, Ceph 會用默認存儲池 rbd 存數據。存儲池提供的功能:code

  • 自恢復力: 你能夠設置在不丟數據的前提下容許多少 OSD 失效,對多副本存儲池來講,此值是一對象應達到的副本數。典型配置存儲一個對象和它的一個副本(即 size = 2 ),但你能夠更改副本數;對糾刪編碼的存儲池來講,此值是編碼塊數(即糾刪碼配置裏的 m=2 )。
  • 歸置組: 你能夠設置一個存儲池的歸置組數量。典型配置給每一個 OSD 分配大約 100 個歸置組,這樣,不用過多計算資源就能獲得較優的均衡。配置了多個存儲池時,要考慮到這些存儲池和整個集羣的歸置組數量要合理。
  • CRUSH 規則: 當你在存儲池裏存數據的時候,與此存儲池相關聯的 CRUSH 規則集可控制 CRUSH 算法,並以此操縱集羣內對象及其副本的複製(或糾刪碼編碼的存儲池裏的數據塊)。你能夠自定義存儲池的 CRUSH 規則。
  • 快照: 用 ceph osd pool mksnap 建立快照的時候,實際上建立了某一特定存儲池的快照。
  • 設置全部者: 你能夠設置一個用戶 ID 爲一個存儲池的全部者。

要把數據組織到存儲池裏,你能夠列出、建立、刪除存儲池,也能夠查看每一個存儲池的利用率。對象

 

2、存儲池命令

1. 列出存儲池

$ rados lspools
rbd
libvirt-pool

$ ceph osd lspools
0 rbd,2 libvirt-pool

在新安裝好的集羣上,只有一個 rbd 存儲池。資源

2. 建立存儲池

ceph osd pool create {pool-name} {pg-num}

pool-name : 存儲池名稱,必須惟一。
pg-num : 存儲池擁有的歸置組總數。部署

  • 少於 5 個 OSD 時可把 pg_num 設置爲 128
  • OSD 數量在 5 到 10 個時,可把 pg_num 設置爲 512
  • OSD 數量在 10 到 50 個時,可把 pg_num 設置爲 4096

3. 設置存儲池配額

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

要取消配額,設置爲 0 。get

4. 刪除存儲池

ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]

5. 重命名存儲池

ceph osd pool rename {current-pool-name} {new-pool-name}

6. 查看存儲池統計信息

rados df

7. 生成存儲池快照

ceph osd pool mksnap {pool-name} {snap-name}

8. 刪除存儲池快照

ceph osd pool rmsnap {pool-name} {snap-name}

9. 調整存儲池選項值

ceph osd pool set {pool-name} {key} {value}

10. 獲取存儲池選項值

ceph osd pool get {pool-name} {key}

11. 設置對象副本數

設置多副本存儲池的對象副本數:it

ceph osd pool set {poolname} size {num-replicas}

Important:{num-replicas} 包括對象自身,若是你想要對象自身及其兩份拷貝共計三份,指定 3 。io

確保數據存儲池裏任何副本數小於 min_size 的對象都不會收到 I/O :class

ceph osd pool set data min_size 2

12. 獲取對象副本數

ceph osd dump | grep 'replicated size'

Ceph 會列出存儲池,且高亮 replicated size 屬性。默認狀況下, Ceph 會建立一對象的兩個副本(一共三個副本,或 size 值爲 3 )。

相關文章
相關標籤/搜索