8.5.15. Erzeugen von SEAs mit Load-Sharing
Um das Erzeugen SEAs mit Load-Sharing zu demonstrieren, wurden die folgenden Trunking-Adapter auf den beiden Virtual-I/O-Servern ms05-vio1 und ms05-vio2 angelegt:
$ lpar lseth ms05-vio*
LPAR_NAME SLOT REQ STATE TRUNK IEEE QOS MAC_ADDR PVID VSWITCH ADDL_VLAN_IDS
…
ms05-vio1 70 No 1 - 0 none A1B58A075A46 1 ETHCTRL -
ms05-vio1 71 No 1 1 1 none A1B58A075A47 1 ETHTEST3 11,12,13
ms05-vio1 72 No 1 1 1 none A1B58A075A48 2 ETHTEST3 14,15
ms05-vio1 73 No 1 1 1 none A1B58A075A49 3 ETHTEST3 17,18,19
ms05-vio1 74 No 1 1 1 none A1B58A075A4A 4 ETHTEST3 20,21,22
ms05-vio1 75 No 1 1 1 none A1B58A075A4B 5 ETHTEST3 23
…
ms05-vio2 70 No 1 - 0 none A1B58A070346 1 ETHCTRL -
ms05-vio2 71 No 1 2 1 none A1B58A070347 1 ETHTEST3 11,12,13
ms05-vio2 72 No 1 2 1 none A1B58A070348 2 ETHTEST3 14,15
ms05-vio2 73 No 1 2 1 none A1B58A070349 3 ETHTEST3 17,18,19
ms05-vio2 74 No 1 2 1 none A1B58A07034A 4 ETHTEST3 20,21,22
ms05-vio2 75 No 1 2 1 none A1B58A07034B 5 ETHTEST3 23
…
$
Wir haben jeweils 5 Trunking-Adapter angelegt (Slot 71 bis 75) und einen Control-Channel (Slot 70). Die Trunking-Adapter von Virtual-I/O-Server ms05-vio1 haben wieder die höhere Trunking-Priorität 1. Als virtuellen Switch haben wir den schon existierenden virtuellen Switch ETHTEST3 verwendet.
Wir starten wieder mit dem Primary SEA auf ms05-vio1 und lassen uns zunächst wieder die Kandidaten für einen SEA anzeigen:
$ vios lssea -c ms05-vio1
NAME STATUS PHYSLOC PARENT DESCRIPTION
ent3 Available U78AA.001.VYRGU0Q-P1-C7-T4 pci1 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent2 Available U78AA.001.VYRGU0Q-P1-C7-T3 pci1 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent39 Available U8205.E6C.05E4E5Q-V1-C70-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent41 Available U8205.E6C.05E4E5Q-V1-C71-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent42 Available U8205.E6C.05E4E5Q-V1-C72-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent43 Available U8205.E6C.05E4E5Q-V1-C73-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent44 Available U8205.E6C.05E4E5Q-V1-C74-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent45 Available U8205.E6C.05E4E5Q-V1-C75-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
$
Das Anlegen des SEAs geht wie gehabt mit dem Kommando „vios mksea“, wobei für das Attribut ha_mode der Wert sharing für Load-Sharing angegeben werden muss:
$ vios mksea ms05-vio1 ent3 ent41 ent42 ent43 ent44 ent45 ha_mode=sharing ctl_chan=ent39 jumbo_frames=yes
SEA ent46 created
$
Der neu angelegte SEA ist dabei noch im Zustand Primary, da der zweite SEA noch nicht angelegt wurde:
$ vios lssea ms05-vio1 ent46
TIMES TIMES TIMES BRIDGE
NAME HA_MODE PRIORITY STATE PRIMARY BACKUP FLIPFLOP MODE
ent46 Sharing 1 PRIMARY 1 0 0 All
$
Der Spalte HA_MODE kann man entnehmen das der SEA aber für Load-Sharing konfiguriert ist. Interessant ist auch die letzte Spalte BRIDGE_MODE: der Wert All gibt an das der SEA aktuell für alle Trunking-Adapter, und damit für alle unterstützten VLANs, die Weiterleitung übernimmt. Das bestätigt auch die Ausgabe von „vios lssea -V“:
$ vios lssea -V ms05-vio1 ent46
SEA LNAGG NAME TYPE VSWITCH MODE ACTIVE PRIORITY PVID VLAN_TAG_IDS
ent46 - ent3 real - - - - - -
ent46 - ent45 virtual ETHTEST3 VEB True 1 5 23
ent46 - ent44 virtual ETHTEST3 VEB True 1 4 20,21,22
ent46 - ent43 virtual ETHTEST3 VEB True 1 3 17,18,19
ent46 - ent42 virtual ETHTEST3 VEB True 1 2 14,15
ent46 - ent41 virtual ETHTEST3 VEB True 1 1 11,12,13
ent46 - ent39 control ETHCTRL - - - 1 None
$
Als nächstes listen wir auf dem zweiten Virtual-I/O-Server ms05-vio2 die potentiellen Kandidaten für einen SEA auf:
$ vios lssea -c ms05-vio2
NAME STATUS PHYSLOC PARENT DESCRIPTION
ent3 Available U78AA.001.VYRGU0Q-P1-C6-T2 pci3 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent4 Available U78AA.001.VYRGU0Q-P1-C6-T3 pci3 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent5 Available U78AA.001.VYRGU0Q-P1-C6-T4 pci3 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent38 Available U8205.E6C.05E4E5Q-V2-C70-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent39 Available U8205.E6C.05E4E5Q-V2-C71-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent40 Available U8205.E6C.05E4E5Q-V2-C72-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent41 Available U8205.E6C.05E4E5Q-V2-C73-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent42 Available U8205.E6C.05E4E5Q-V2-C74-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
ent43 Available U8205.E6C.05E4E5Q-V2-C75-T1 vio0 Virtual I/O Ethernet Adapter (l-lan)
$
Damit kann der zweite SEA angelegt werden:
$ vios mksea ms05-vio2 ent5 ent39 ent40 ent41 ent42 ent43 ha_mode=sharing ctl_chan=ent38 jumbo_frames=yes
SEA ent44 created
$
Der Status des neu angelegten SEAs ist BACKUP_SH:
$ vios lssea ms05-vio2 ent44
TIMES TIMES TIMES BRIDGE
NAME HA_MODE PRIORITY STATE PRIMARY BACKUP FLIPFLOP MODE
ent44 Sharing 2 BACKUP_SH 0 1 0 Partial
$
Die Endung „_SH“ soll dabei andeuten das der Adapter sich aktuell im Load-Sharing-Mode befindet!
Der Status des zuerst angelegten SEAs hat sich geändert, wie die Ausgabe von „vios lssea“ zeigt:
$ vios lssea ms05-vio1 ent46
TIMES TIMES TIMES BRIDGE
NAME HA_MODE PRIORITY STATE PRIMARY BACKUP FLIPFLOP MODE
ent46 Sharing 1 PRIMARY_SH 1 0 0 Partial
$
Der Zustand (Spalte STATE) hat sich von PRIMARY (kein Load-Sharing) auf PRIMARY_SH (Load-Sharing) geändert. Auch der Wert in der Spalte BRIDGE_MODE hat sich geändert und ist jetzt Partial. Dies bedeutet das der SEA für einige Trunking-Adapter der aktive SEA ist, für andere Trunking-Adapter nicht. Für welche VLANs ein SEA der aktive SEA ist, kann der Ausgabe von „vios lssea -V“ entnommen werden:
$ vios lssea -V ms05-vio1 ent46
SEA LNAGG NAME TYPE VSWITCH MODE ACTIVE PRIORITY PVID VLAN_TAG_IDS
ent46 - ent3 real - - - - - -
ent46 - ent45 virtual ETHTEST3 VEB False 1 5 23
ent46 - ent44 virtual ETHTEST3 VEB False 1 4 20,21,22
ent46 - ent43 virtual ETHTEST3 VEB True 1 3 17,18,19
ent46 - ent42 virtual ETHTEST3 VEB True 1 2 14,15
ent46 - ent41 virtual ETHTEST3 VEB True 1 1 11,12,13
ent46 - ent39 control ETHCTRL - - - 1 None
$
Die Ausgabe zeigt das die Trunking-Adapter ent41, ent42 und ent43 aktiv sind (Spalte ACTIVE ist True) und Trunking-Adapter ent44 und ent45 inaktiv sind (Spalte ACTIVE ist False). Da die Anzahl der Trunking-Adapter ungerade ist, bekommt der Primary SEA einen Trunking-Adapter mehr zugewiesen als der Backup SEA. Für den zweiten SEA sind die Rollen dann genau vertauscht:
$ vios lssea -V ms05-vio2 ent44
SEA LNAGG NAME TYPE VSWITCH MODE ACTIVE PRIORITY PVID VLAN_TAG_IDS
ent44 - ent5 real - - - - - -
ent44 - ent43 virtual ETHTEST3 VEB True 2 5 23
ent44 - ent42 virtual ETHTEST3 VEB True 2 4 20,21,22
ent44 - ent41 virtual ETHTEST3 VEB False 2 3 17,18,19
ent44 - ent40 virtual ETHTEST3 VEB False 2 2 14,15
ent44 - ent39 virtual ETHTEST3 VEB False 2 1 11,12,13
ent44 - ent38 control ETHCTRL - - - 1 None
$