如何更改多可用區集群中的 Cassandra 拓撲 + 告密者?
我在一個使用 SimpleSnitchStrategy 的可用區中有一個 9 節點 Cassandra v3.11 集群。
我想將 snitch 策略更改為 GossipingPropertyFileSnitch 並將拓撲更改為像這樣的多 AZ:
AZ-A 中的
3 個節點,AZ-B 中的
3 個節點,AZ-C 中的 3 個節點。
我應該如何進行遷移?
先移動節點再改變snitch策略還是先
改變snitch策略再移動節點?
作為一個額外的問題,我應該使用
JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address_first_boot=ip_address"
還是刪除節點並再次添加它們?
概述
如果是我,我會先將現有節點更新為 GPFS。這使得使用集群變得更加容易,因為 GPFS 非常靈活。
然後我會將新 AZ 中的新節點添加到集群中。假設所有 9 個現有節點都在區域 A 中。在區域 B 中添加 3 個節點,然後在區域 C 中添加 3 個節點,因此您暫時最終得到 15 個節點。
最後,停用區域 A 中的 6 個節點中的任何一個,這樣您就可以按計劃恢復到 9 個節點。我將在最後一步退役的原因是確保集群中有足夠的容量以最大程度地降低服務中斷的風險。
種子
作為一般規則,我們建議每個 DC 至少有兩個種子節點,最好這些節點來自不同的機架/可用區。如果您只有一個 DC,請從每個 AZ 中選擇一個節點作為種子節點。
一旦所有新節點都添加到集群並且舊節點退役,請更新
cassandra.yaml
所有節點上的所有節點,以使它們都具有相同的種子,但請注意,不必立即重新啟動,因為節點會定期從 yaml 重新載入種子。切換到 GPFS
將飛賊從 更改
SimpleSnitch
為GossipingPropertyFileSnitch
是很容易的部分。高級步驟是:
- 更新
cassandra-rackdc.properties
所有節點。endpoint_snitch
在cassandra.yaml
所有節點上更新。- 執行滾動重啟,一次一個節點。
有關詳細資訊,請參閱在 Cassandra 中切換 snitches。
退役節點
有關詳細資訊,請參閱移除 Cassandra 節點。乾杯!