尝试使用Hetzner作为托pipe提供程序来实现双节点故障转移群集时,遇到以下问题。
我的corosync.conf如下:
# Please read the corosync.conf.5 manual page compatibility: whitetank totem { version: 2 secauth: off interface { member { memberaddr: 144.76.91.XXX } member { memberaddr: 5.9.121.XXX } ringnumber: 0 bindnetaddr: 5.9.121.0 mcastport: 5405 ttl: 1 } transport: udpu } logging { fileline: off to_logfile: yes to_syslog: yes debug: on logfile: /var/log/cluster/corosync.log debug: off timestamp: on logger_subsys { subsys: AMF debug: off } }
问题是5.9.121.XXX正确绑定(并且出现在crm_mon下面成为集群的一部分)
udp 0 0 5.9.121.XXX:5405 0.0.0.0:8 8281 / corosync
但144.76.91.XXX失败,并绑定到本地主机。
udp 0 0 127.0.0.1:5405 0.0.0.0:* 7889 / corosync
对tcpdump日志的分析表明,144.76.91.XXX使用ICMPtypes3(目标不可达),代码3(端口不可达)来回复5.9.121.XXX。
corosync -f输出将重复打印:
Jun 24 12:53:28 corosync [TOTEM]由于操作系统或networking故障,Totem无法形成群集。 此消息最常见的原因是本地防火墙configuration不正确。
在两台主机之间启用了UDPstream量,目前没有防火墙,我正在使用Debian(因此没有SELinux)。
任何想法在这个问题之间解决? 是否有可能在两个不同的子网上创build两台机器,还是需要在同一个子网中定购服务器? 在此先感谢您的答复。
从邮件列表(这解决了我的问题),丹·弗里斯库礼貌:
“你不应该在这两个地方使用相同的bindnetaddr,它只与UDPU(在你的用例中)的节点级别有关。在你有144. *地址的节点上,使用bindnetaddr。
希望这对某人有用。