我们有健康运行的 3 节点 cassandra 集群,但由于某些问题,我们需要交换所有 3 节点 IP 地址。
基本上,我们想要将旧的 cassandra 服务器 IP 地址交换为新的 cassandra 服务器 IP 地址。 我的问题是:-
1) 我们需要遵循什么特定程序来避免出现任何问题?
2) 或者只是修改 rpc_address、listen_address、seeds、peers 表等并启动 cassandra 节点?
请帮忙,谢谢
最佳答案
您已经确定了大部分要采取的步骤。另外,请确保一次执行一个节点的步骤:
- 在
cassandra.yaml
中更新 rpc_address、listen_address、seeds 以及对先前 IP 地址的任何引用。另外,请确保将auto_bootstrap
设置为 false(默认情况下省略该指令,默认值为 true)。 - 根据您的安装情况,另请查看
cassandra-topology.properties
和cassandra-rackdc.properties
- 停止 cassandra 服务
- 更改盒子的 IP 地址(即 ifconfig、添加新路由等)
- 在
cassandra-env.sh
中包含以下指令以及之前的 IP 地址:JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=previous_ip_address
- 在节点中启动 Cassandra 服务。等到
nodetool status
将其报告为UN
,您应该注意到报告了新的 IP 地址 - 如果您在
cassandra.yml
中添加了auto_bootstrap
指令,请将其删除\ - 从
cassandra-env.sh
中删除cassandra.replace_address
指令 - 在不同的节点中重复
关于cassandra - Cassandra 集群中的 IP 交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57452474/