Cassandra

Cassandra 節點移除,最合適的策略?

  • September 15, 2022

由於磁碟使用不足,我正在考慮將 Cassandra 集群(v 3.11.13)的大小從 12 個節點減少到 9 個節點(每個機架從 4 個節點減少到 3 個節點)。因此,集群分佈在 3 個機架上,並具有一個 RF=3 的“大”鍵空間。

我打算

  1. 擴展節點以處理未來的新工作負載,假設縮減後負載仍將適當平衡
  2. nodetool decommission在每個機架上的一個節點上執行
  3. 重新平衡數據?在這裡我有點困惑,因為我使用的是 Vnodes,我以為我不需要處理數據重新平衡,但是,在 decommission 的文件中,它指出數據被傳遞到環中的下一個節點,並沒有被所有剩餘的節點共享,我想澄清一下。
  4. 之後我讀到 anodetool cleanup是必需的,這真的有用嗎?
  5. 刪除節點(在我的例子中是 Kubernetes pod)

謝謝你的幫助

它表明數據被傳遞到環中的下一個節點

是的,我不認為這是正確的(現在?)。這種說法可能是從 Cassandra 節點只負責一個令牌範圍的日子開始的。

退役時發生的情況是,集群令牌範圍會根據集群的新(更小)大小重新計算。 nodetool decommission然後將數據流式傳輸到現在負責其令牌範圍的節點。

之後我讀到 anodetool cleanup是必需的,這真的有用嗎?

所以nodetool cleanup本質上檢查節點以確保它只有與其令牌範圍匹配的數據。如果它發現它不負責的數據,它將刪除它。我不確定退役後這是否非常必要。在這種情況下,執行它不應該有任何傷害

基本上,在此nodetool decommission過程中,偶爾執行一個nodetool netstats(在退役節點上)。您將看到數據流前往它們的新節點。新節點是要密切注意磁碟使用率的任何異常或突然增加的節點。

引用自:https://dba.stackexchange.com/questions/316883