最近因为工作需要,研究起了红帽redhat 6 的高可用,因为需要把两台红帽Linux虚机迁移到另外一个平台集群,版本不一样不能够直接开机迁移。而这两台机的业务又不能中断。刚好这两台机已经做了redhat HA ,做成一个cluster。
于是 ,我直接关掉其中一台机B,然后所有业务就自动转移到了另外一台机A。
于是,顺利迁移了B机。
然而问题来了!!!!
B开起来,AB都互相提示对方离线!!!!
这个不应该啊,都在同一个网段,IP也没有变更,相互ping也是通的。
唯一跟原来不一样的,就是中间有一个防火墙,但是策略也已经把这段IP 全部放通了
于是乎,我查阅各种资料(度娘),我是查阅了redhat cluster HA 的心跳机制
这是链接
看得有点头大,不过我看到了CMAN 还有 Corosync
然后我用pstree命令查看系统进程,果然发现了Corosync
然后继续用netstat 看看它网络怎么搞的
[root@xxxxxxx ~]# netstat -anlp | grep coro
udp 0 0 192.168.123.15:5404 0.0.0.0:* 2689/corosync
udp 0 0 192.168.123.15:5405 0.0.0.0:* 2689/corosync
udp 0 0 239.192.184.141:5405 0.0.0.0:* 2689/corosync
没有用我省掉了,
居然是udp协议。。。。。。。 但是防火墙也是开了呀。。。。
注意到一个神奇的IP 239.192.184.141
然后我抱着试试的心态,在防火墙放行这个IP,重启B机,于是,成了。。。。。。
再回头看那篇文章,提到一个就是multicast 组播多播反正都是它, 原来这个IP就是组播多播。。。。
然后,我发现,AB机的这个IP,都是一模一样的,这个就涉及到了组播的原理了
查到这个:
239.0.0.0—239.255.255.255:本地管理组地址,仅在本地管理域内有效
就是说,239.192.184.141 应该就是局部内部使用的组播地址,至少这个cluster都是用着组播IP。
到这里详细的原理可以继续看上面链接的那篇文章