我一直在尝试使用 Pacemaker 和 Corosync 进行 HA 设置。我将其安装在两个 Ubuntu 14.04 Linode 上,在反复查看过时的配置示例和教程后,终于成功启动并运行。这主要是因为我必须将其设置为使用 UDP 单播才能使其工作(多播和广播在 Linode 网络上不起作用)
两个节点都能够互相看到,并且当另一个节点发生故障时,它们能够检测到。太棒了!
现在我想在集群运行时尝试添加第三个节点,所以我开始寻找一些命令来执行此操作... 不行... 不行... 据我所知,这个看似重要而简单的操作无法通过简单的命令实现。
要添加节点,您必须将其添加到每个节点的配置中,然后关闭集群,重新加载并重新启动它。 高可用性就此消失。
我能找到的唯一动态添加节点的方法是使用 cmap_keys(8)。
我必须先运行命令来查找下一个空闲节点 ID。然后,对于集群中当前的每个节点,手动将其添加到 nodelist.node.x.ringy_addr,依此类推。即使经过所有这些操作,它也无法在重新启动后继续存在,我还必须手动更新每个配置文件。然后我必须将新配置文件复制到新节点,然后启动它。
可以连接到集群中的任何节点,发出命令更改现有节点并添加资源,这些将在所有节点之间同步。但我不能以同样的方式简单地添加一个新节点吗?
请告诉我,我只是不擅长谷歌搜索信息,并且有一个简单的命令可以在实时运行的 HA 集群中添加新节点。我是否忽略了某些工具或方法?
感谢您的时间!
答案1
如果使用多播,您可以快速轻松地将新节点添加到集群。因此,我怀疑开发人员可能从未看到需要允许通过 UDP 单播动态添加节点。至少就我自己所知,不存在“干净”的方法。
但是,您应该能够重新加载 Corosync 并应用新编辑的配置文件,而无需中断服务,只需先将 Pacemaker 置于维护模式即可。在维护模式下,当您停止并重新启动 Corosync 和 Pacemaker 时,当前正在运行的服务都不会停止。