Ceph 存儲集群 - 存儲池


 

一、存儲池介紹

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

如果你開始部署集群時沒有創建存儲池, Ceph 會用默認存儲池 rbd 存數據。存儲池提供的功能:

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

要把數據組織到存儲池里,你可以列出、創建、刪除存儲池,也可以查看每個存儲池的利用率。

 

二、存儲池命令

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 。

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. 設置對象副本數

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

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

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

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

ceph osd pool set data min_size 2

12. 獲取對象副本數

ceph osd dump | grep 'replicated size'

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM