我正在尝试添加一个Pacemaker虚拟IP地址; 与它,网关,和它在不同的子网上服务的两个虚拟机。 我以前只使用同一个子网上的所有IP,我需要一些帮助。
我在200.xx.xxx.9和200.xx.xxx.10上有两个虚拟机,下面是/etc/network/interfaces
auto eth0 iface eth0 inet static address 200.xx.xxx.9 gateway 200.xx.xxx.9 netmask 255.255.255.255 post-up route add yy.yyy.yyy.1 dev eth0 post-up route add default gw yy.yyy.yyy.1
和
auto eth0 iface eth0 inet static address 200.xx.xxx.10 gateway 200.xx.xxx.10 netmask 255.255.255.255 post-up route add yy.yyy.yyy.1 dev eth0 post-up route add default gw yy.yyy.yyy.1
他们都在Pacemaker中出现,看起来好像在沟通。 两个/etc/corosync/corosync.conf文件中的bindnetaddr参数是:
bindnetaddr: address 200.xx.xxx.9
和
bindnetaddr: address 200.xx.xxx.10
分别。
如果一切都在同一个子网上,我希望添加类似如下的虚拟IP:
sudo crm configure primitive eth0_virtual ocf:heartbeat:IPaddr params ip="200.zzz.z.162" nic="eth0" cidr_netmask="24" broadcast="200.zzz.z.255" op monitor interval="10s" timeout="20s"
虽然这在crm_mon中显示为资源,但它不允许我通过虚拟IP访问其中一个虚拟机。 显然还有更多,但什么?
编辑:在ClusterLabs邮件列表的build议之后,这可能是一个底层的networking问题,这里是我在哪里:
我正在使用online.net托pipeESXi,他们提供了可以分配给托pipe虚拟机的其他“故障转移”IP。 我有三个; 200.xx.xxx.9和200.xx.xxx.10,我用于列出的两个Ubuntu虚拟机,第三个是200.zzz.z.162,我试图用它作为ocf_heartbeat_IPaddr资源剂。 重要的是,online.net要求您匹配为每个IP分配与虚拟机上的接口相匹配的MAC地址。 我为前两个IP(使用不同的MAC地址)做了这个,但是没有做第三个。 当我尝试使用第三个IP的现有MAC地址之一,我立即与以下连接:
所以现在,我有三个IP和两个VM接口共享相同的MAC地址。 这实在是一个非常糟糕的主意 ,但实际上它似乎正在工作,没有创build任何数据包错误或连接问题或HA群集…至less目前为止我没有发现,除了火星通讯login。 这是我使用的ocf:heartbeat:IPaddr设置:
sudo crm configure primitive eth0_virtual ocf:heartbeat:IPaddr params ip="200.zzz.z.162" nic="eth0" cidr_netmask="32" broadcast="200.zzz.z.162" op monitor interval="10s" timeout="20s"