Pacemaker ocf:heartbeat:IPaddr in verschiedenen Subnetzen

Pacemaker ocf:heartbeat:IPaddr in verschiedenen Subnetzen

Ich versuche, eine virtuelle Pacemaker-IP-Adresse hinzuzufügen; dazu das Gateway und die beiden VMs, die es in verschiedenen Subnetzen bedient. Ich habe das bisher nur mit allen IPs im selben Subnetz gemacht und brauche Hilfe.

Ich habe zwei VMs auf 200.xx.xxx.9 und 200.xx.xxx.10 mit dem Folgenden in/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

Und

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

Sie werden beide in Pacemaker angezeigt und die Kommunikation scheint einwandfrei zu sein. Die bindnetaddr-Parameter in den beiden /etc/corosync/corosync.confDateien lauten:

bindnetaddr: address 200.xx.xxx.9

Und

bindnetaddr: address 200.xx.xxx.10

jeweils.

Wenn sich alles im selben Subnetz befände, würde ich erwarten, die virtuelle IP etwa so hinzuzufügen:

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"

und obwohl dies als Ressource in crm_mon angezeigt wird, kann ich nicht über die virtuelle IP auf eine der VMs zugreifen. Da steckt eindeutig noch mehr dahinter, aber was?

Bearbeiten: Nach einem Hinweis auf der ClusterLabs-Mailingliste, dass es sich möglicherweise um ein zugrunde liegendes Netzwerkproblem handelt, bin ich nun zu folgendem Schluss gekommen:

Ich hoste ESXi bei online.net, die zusätzliche „Failover“-IPs bereitstellen, die meinen gehosteten VMs zugewiesen werden können. Ich habe drei: 200.xx.xxx.9 und 200.xx.xxx.10, die ich für die beiden aufgelisteten Ubuntu-VMs verwende, und die dritte, 200.zzz.z.162, die ich als ocf_heartbeat_IPaddr-Ressourcenagent verwenden möchte. Wichtig ist, dass online.net verlangt, dass Sie jeder IP eine MAC-Adresse zuweisen, die mit einer Schnittstelle auf einer VM übereinstimmt. Ich habe dies für die ersten beiden IPs getan (unter Verwendung unterschiedlicher MAC-Adressen), aber nicht für die dritte. Als ich versuchte, eine der vorhandenen MAC-Adressen mit der dritten IP zu verwenden, erhielt ich sofort eine Verbindung mit:

Jetzt habe ich also alle drei IPs und beide VM-Schnittstellen, die dieselbe MAC-Adresse teilen. Das kommt mir vor wie einwirklich schlechte Idee, aber es scheint tatsächlich zu funktionieren, ohne dass Paketfehler oder Probleme mit der Konnektivität oder dem HA-Cluster auftreten ... zumindest keine, die ich bisher entdeckt habe, außer dass der Martian-Verkehr protokolliert wird. Dies ist die ocf:heartbeat:IPaddr-Einstellung, die ich verwende:

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"

verwandte Informationen