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=auto 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
$