Proxmox

Ceph:是否可以在活動池上設置較低的“大小”參數?

  • January 29, 2021

我有一個使用 Ceph 作為主要 VM 儲存後端的 5 節點 Proxmox 集群。Ceph 池目前配置size為 5(每個 OSD 每個節點 1 個數據副本)和min_size1。由於size設置較高,池中的大部分可用空間被用於儲存不必要的副本(Proxmox 5-node集群可以同時支持不超過 2 個節點故障),因此我的目標是size通過更改池本身的設置將參數減少到 3,從而增加可用池空間。

我瀏覽了 Proxmox 和 Ceph 文件,但找不到有關減少size實時池參數的資訊。我確實找到了設置size參數的命令,但不確定我可能遇到的任何潛在問題,或者是否可以減少size實時池上的參數。不幸的是,我也無法執行任何測試,因為該池正在生產中執行。

我已經考慮過簡單地創建一個具有適當參數的新池,但如果可以的話,我寧願節省將數據從一個池遷移到另一個池的時間。

提前致謝。

編輯:

root@node1:~# ceph osd pool ls detail
pool 4 'ceph-5' replicated size 5 min_size 1 crush_rule 0 object_hash rjenkins pg_num 512 pgp_num 512 autoscale_mode warn last_change 42673 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd

在糾刪碼池中,您無法減小池的大小,這僅適用於複製池。由於您提到 min_size 1 您可能有一個複制池。您可以通過添加ceph osd pool ls detail問題來確認嗎?如有必要,屏蔽任何敏感數據。

更改池的大小不應該太具有侵略性,但當然很大程度上取決於實際負載和性能,因為它會導致一些數據移動。順便說一句,不要使用 min_size 1 而是使用 2,即使 size 為 3。如果某些磁碟/伺服器發生故障並且您只剩下 1 個副本但客戶端仍然能夠寫入集群,則您可能會面臨數據失去的風險。當 min_size 為 2 時,只要只剩下 1 個副本,I/O 就會停止,直到您恢復。但數據失去的風險降低了。

引用自:https://serverfault.com/questions/1051573