Diskmanagement

Cassandra 是否會在插入額外磁碟後重新平衡數據?

  • April 9, 2021

我正在執行一個有 5 個節點的 Cassandra 集群,每個節點有 10 個 1Tb 磁碟 (JBOD)。目前,其中一個節點處於有問題的情況下,由於單個磁碟上的磁碟空間不足,大型壓縮無法再成功完成。

我試圖弄清楚在 JBOD 配置中添加額外磁碟會產生什麼影響。

  1. 是否會自動重新分配現有數據以最佳利用新磁碟?
  2. 是否只會將新數據寫入新添加的磁碟?
  3. 我可以手動將 sstables 移動到不同的磁碟嗎?
  4. 拆分 sstables 是一種選擇嗎?

我在網上找到了不完全確定的來源:

新數據和壓縮期間將寫入新磁碟。實際邏輯取決於 Cassandra 版本,例如,較新版本將特定分區範圍放入特定磁碟。通常的建議是使用 RAID-0 來擁有一個大磁碟,這樣你就不會遇到大 SSTables 的問題。但是這種方法有一個缺點——如果失去了一個磁碟,您會失去所有數據並且需要重建所有內容。

從理論上講,您可以手動將一些 SSTables 移動到其他磁碟(假設該節點已停止),然後 Cassandra 將在壓縮期間重新分配數據,但我還沒有嘗試過這種配置。該操作還有另一個問題 - 如果您移動了一些 SSTables 並且它已刪除或更新了被另一個磁碟上的新數據遮蔽的數據,並且如果該磁碟崩潰,那麼您可以恢復已刪除/舊數據。

每個節點 PS 10Tb 太瘋狂了。想想如果伺服器壞了,重建一個節點需要多少時間。

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