Cassandra 集群中的 IP 交换
Posted
技术标签:
【中文标题】Cassandra 集群中的 IP 交换【英文标题】:IP swapping in Cassandra cluster 【发布时间】:2019-12-18 12:27:05 【问题描述】:我们有运行良好的 3 个节点的 cassandra 集群,但由于某些问题,我们需要交换所有 3 个节点的 IP 地址。
所以基本上,我们想将旧的 cassandra 服务器 IP 地址交换为新的 cassandra 服务器 IP 地址。 我的问题是:-
1) 我们需要遵循什么特定程序来避免任何问题吗?
2) 或者只是修改 rpc_address、listen_address、seeds、peers 表等并启动 cassandra 节点?
请帮忙,谢谢
【问题讨论】:
【参考方案1】:您已经确定了要采取的大部分步骤。此外,请确保一次执行一个节点的步骤:
-
在
cassandra.yaml
中更新 rpc_address、listen_address、种子和对先前 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
指令
在不同的节点重复
【讨论】:
感谢@Carlos,但如果我没记错的话,您似乎在谈论节点替换。我的问题是节点相同,只需更改它们的 IP 地址。根据您的观点 1. 以前 IP 地址的任何引用。我们如何识别? 其实这个过程类似于更换一个下线的节点。我刚刚用 IP 地址何时更改的信息编辑了答案 但是以前的IP地址现在不存在了,那么我们如何在cassandra-env.sh中引用呢? IP地址变更已经发生了?集群在运行吗?你有什么错误吗? 尚未更改。我们计划在我的启动和运行的 cassandra 节点中分配新的 IP 地址。这就是为什么我要问正确的程序。如果我们将分配一个新的 IP 地址,那么旧的将不存在?那我们怎么参考呢?希望你能理解我的担忧。以上是关于Cassandra 集群中的 IP 交换的主要内容,如果未能解决你的问题,请参考以下文章
cassandra.yaml中的群集配置问题,用于多节点群集,其中只有1个公共IP