8.5.8. HA-SEA mit Failover

Der Vorteil der bisher gezeigten Netzwerk-Virtualisierung mit Shared Ethernet ist die extrem einfache Konfiguration. Nach Anlegen von Trunking-Adaptern auf einem Virtual-I/O-Server und Erzeugen des Shared Ethernet Adapters mit „vios mksea“ können Client-LPARs den Shared Ethernet Adapter über einfach anzulegende Virtual Ethernet Adapter nutzen. Ein großer Nachteil ist allerdings das die bisher gezeigten Shared Ethernet keine Redundanz besitzen. Fällt der Virtual-I/O-Server mit dem Shared Ethernet Adapter aus, oder hat der physikalische Ethernet Adapter des SEAs ein Problem, verlieren die Client-LPARs sofort die Anbindung an das externe Netzwerk.

Um dieses Problem zu beheben wurde der HA-Mode von Shared Ethernet Adaptern eingeführt. Dabei wird auf einem zweiten Virtual-I/O-Server ein zweiter Shared Ethernet Adapter mit der gleichen Konfiguration angelegt. Zu einem Zeitpunkt übernimmt immer nur einer der beiden SEAs die Anbindung an das externe Netzwerk, der andere SEA bleibt passiv und wartet auf einen Ausfall des gerade aktiven SEAs. Der aktive SEA ist der sogenannte Primary SEA, der passive SEA ist der sogenannte Backup SEA.

Bild 8.9 zeigt eine hochverfügbare Shared Ethernet Adapter Konfiguration mit einem Primary SEA auf dem linken Virtual-I/O-Server und einem Backup SEA auf dem rechten Virtual-I/O-Server. Die Trunking-Adapter auf beiden SEAs stimmen in ihrer VLAN-Konfiguration überein. Beide besitzen 2 Trunking-Adapter mit den PVIDs 1 und 2, sowie den zusätzlichen VLAN-IDs 100 und 1001, sowie 350, 399 und 512. Die beiden Trunking-Adapter des linken Virtual-I/O-Servers haben die trunk_priority 1, die beiden Trunking-Adapter des rechten Virtual-I/O-Servers die trunk_priority 2. Alle Trunking-Adapter eines Shared Ethernet Adapters müssen die gleiche Priorität haben! Je niedriger der Wert der trunk_priority, desto höher ist die Priorität (Werte zwischen 1 und 15 sind erlaubt). Das wichtigste SEA Attribut für eine HA Konfiguration ist das Attribut ha_mode mit den beiden möglichen Werten auto und standby für eine HA-Failover Konfiguration wir im Bild 8.9 gezeigt.

Hinweis: Die Gerätenamen der einzelnen Adapter müssen auf den beiden Virtual-I/O-Servern nicht übereinstimmen. Es macht die Administration etwas einfacher wenn die Namen auf beiden Seiten gleich sind, das ist aber nicht notwendig und lässt sich auch nicht immer erreichen.

High-availability configuration with primary and backup SEA.
Bild 8.9: High-Availability Konfiguration mit Primary und Backup SEA.

Da der linke SEA die höhere Trunking Priorität hat (niedriger Wert von trunk_priority), übernimmt der linke SEA das Weiterleiten von Ethernet Frames an das externe Netzwerk. Sollte der linke Virtual-I/O-Server ausfallen, der Link des physikalischen Adapters auf Down gehen, oder die Netzwerk-Karte ausfallen, dann über nimmt der rechte Virtual-I/O-Server das Weiterleiten von Ethernet Frames und wird zum neuen Primary SEA, wie in Bild 8.10 gezeigt. Für die Client-LPARs ist dies transparent und es gehen in der Regel nur einige wenige Ethernet Frames verloren. Da die meisten Applikationen TCP als unterliegendes Transport-Protokoll verwenden, werden einige Datenpakete einfach erneut übertragen.

Failure Scenario in an HA-SEA configuration.
Bild 8.10: Ausfallszenario bei einer HA-SEA-Konfiguration.

Damit jeder der beiden SEA immer den Status des anderen SEA kennt, müssen die beiden SEAs miteinander kommunizieren können. Dabei werden sogenannte Heartbeats untereinander ausgetauscht, die dem jeweils anderen SEA den aktuellen Zustand signalisieren. Im einfachsten Fall wird dazu einfach das VLAN 4095 über einen der Trunking-Adapter verwendet. Das VLAN 4095 ist reserviert und kann nicht durch den Administrator konfiguriert werden. Nachteil dieser einfachen Lösung:

    • Ist nicht auf allen Managed Systems unterstützt.
    • Kann nicht verwendet werden wenn der virtuelle Switch den VEPA-Modus benutzt.

Als Alternative kann ein separater Control-Channel konfiguriert werden. Das ist ein normaler virtueller Ethernet Adapter (kein Trunking-Adapter), der zusätzlich beim Erzeugen eines Shared Ethernet Adapter über das Attribut ctl_chan angegeben werden kann. Ein separater Control-Channel wird auf allen Managed Systems unterstützt.

Trunking-Adapter und Control-Channel müssen nicht an den gleichen internen virtuellen Switch angebunden werden. Soll der VEPA-Mode verwendet werden, dann müssen Trunking-Adapter und Control-Channel sogar an verschiedene Switches angebunden werden. Der virtuelle Switch an den ein Control-Channel angebunden ist, muß den VEB-Mode verwenden!

Wir empfehlen für Control-Channel einen eigenen virtuellen Switch zu verwenden, z.B. ETHCTRL:

$ ms addvswitch ms05 ETHCTRL
$