Я пытаюсь добавить виртуальный IP-адрес Pacemaker; с ним шлюз и две виртуальные машины, которые он обслуживает в разных подсетях. Я делал это только со всеми 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 и, по-видимому, взаимодействуют нормально. Параметры bindnetaddr в двух /etc/corosync/corosync.conf
файлах следующие:
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 о том, что это может быть проблема с сетью, вот что я имею в виду:
Я размещаю ESXi с помощью online.net, который предоставляет дополнительные IP-адреса «отказоустойчивости», которые могут быть назначены моим размещенным виртуальным машинам. У меня их три: 200.xx.xxx.9 и 200.xx.xxx.10, которые я использую для двух перечисленных виртуальных машин Ubuntu, и третий, 200.zzz.z.162, который я пытаюсь использовать как ресурсный агент ocf_heartbeat_IPaddr. Что особенно важно, online.net требует, чтобы вы назначали каждому IP-адресу MAC-адрес, который соответствует интерфейсу на виртуальной машине. Я сделал это для первых двух IP-адресов (используя разные MAC-адреса), но не для третьего. Когда я попытался использовать один из существующих MAC-адресов с третьим IP-адресом, я сразу же получил подключение с помощью:
Итак, теперь у меня все три IP и оба интерфейса VM используют один и тот же MAC-адрес. Это кажется мнеочень плохая идея, но, похоже, это действительно работает, не создавая никаких ошибок пакетов или проблем с подключением или кластером HA... по крайней мере, я пока ничего не заметил, кроме регистрации марсианского трафика. Это настройка 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"