PowerVM

SEA (Shared Ethernet Adapter) Load Sharing

By Christina Morel posted Thu June 11, 2020 02:57 PM

  
SEA load sharing provides a method to maximize resource usage while still taking advantage of the SEA fail-over capabilities. The bridged workload is shared between the primary and backup SEA. This post will explain how the workload is divided between the primary and backup SEA. With this knowledge, the user will understand how to configure each SEA to handle certain VLANs.

SEA divides traffic up by trunk adapter, not by VLAN. When a SEA is created using the VIOS command ‘mkvdev’, the order of the list of virtual adapters provided is key in determining which adapters on that SEA are actively bridging traffic. 

Load sharing is initiated on the backup SEA. Because of this, ha_mode must be set to sharing on the primary SEA first. If ha_mode is set to sharing on the backup SEA when it is not yet set on the primary SEA, then the sharing negotiation will fail and the SEA states will remain primary and backup, respectively. Once ha_mode has been set to sharing on first the primary SEA and then the backup SEA, and the primary and backup SEA are identical in the number of trunk adapters and VLANs associated with each trunk adapter, load sharing can commence. The number of trunk adapters on the SEA is divided in half. The last half of trunk adapters listed in the ‘mkvdev’ command are assigned as active on the backup SEA. The first half of trunk adapters listed in the ‘mkvdev’ command are assigned as active on the primary SEA. If there is an odd number of trunk adapters, the primary SEA gets the extra adapter. At this point, any traffic on VLANs assigned to the adapters that are now active on the backup SEA will be bridged by the backup SEA. Any traffic on VLANs assigned to the adapters that are now active on the primary SEA will be bridged by the primary SEA.

The following two-part examples illustrate various load sharing scenarios. Part A of each example shows an initial setup and the VLANs bridged by each SEA. Part B describes a desired bridging scenario and the changes to the ‘mkvdev’ command necessary for the new configuration. It is the order in which the adapters are passed to ‘mkvdev -vadapter’ that affects the bridging configuration. Please note that the virtual adapters underneath the SEA can’t be changed on the fly. The SEA device must be removed and then recreated with the virtual adapters provided in a different order.

Example 1A:

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                              VIOS 2 (Backup)

active: ent1 PVID 1                                                      inactive: ent1 PVID 1
inactive: ent2 PVID 222, VLAN ID 102, 202           active:ent2 PVID 222, VLAN ID 102, 202

VIOS1 VIDs shared: 1                                                   VIOS2 VIDs shared: 222,102,202
SEA Figure 1
Example 1B:

Desired outcome: Primary SEA bridges VIDs 222, 102, 202.

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2
command to make SEA: mkvdev -sea ent0 -vadapter ent2,ent1-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2
command to make SEA: mkvdev -sea ent0 -vadapter ent2,ent1-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                          VIOS 2 (Backup)
active: ent2 PVID 222, VLAN ID 102, 202          inactive: ent2 PVID 222, VLAN ID 102, 202
inactive: ent1 PVID 1                                                   active: ent1 PVID 1

VIOS1 VIDs shared: 222, 102, 202                         VIOS2 VIDs shared: 1
SEA Figure 2
Example 2A:

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3 -default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                                    VIOS 2 (Backup)

active: ent1 PVID 1 inactive: ent1 PVID 1
active: ent2 PVID 222, VLAN ID 102,202                    inactive: ent2 PVID 222, VLAN ID 102, 202
inactive: ent3 PVID 333, VLAN ID 103, 203,                 active: ent3 PVID 333, VLAN ID 103,203 303,403 303,403

VIOS1 VIDs shared: 1, 222, 102, 202                             VIOS2 VIDs shared: 333, 103, 203, 303, 403
SEA Figure 3

Example 2B:

Desired outcome: Backup SEA bridges VIDs 222, 102, and 202.

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent3,ent2-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent3,ent2 -default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                                          VIOS 2 (Backup)

active: ent1 PVID 1                                                                    inactive: ent1 PVID 1
active: ent3 PVID 333, VLAN ID 103, 203                         inactive: ent3 PVID 333, VLAN ID 103,203 303,403 303,40
inactive: ent2 PVID 222, VLAN ID 102,202                         active: ent2 PVID 222, VLAN ID 102, 202

VIOS1 VIDs shared: 1, 333, 103,203,303,403                   VIOS2 VIDs shared: 222, 102, 202
SEA Figure 4

Example 3A:

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3,ent4 -default ent1 -defaultid 1 -attr ha_mode=sharing
 
VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3,ent4-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                                           VIOS 2 (Backup)

active: ent1 PVID 1                                                                     inactive: ent1 PVID 1
active: ent2 PVID 222, VLAN ID 102,202                           inactive: ent2 PVID 222, VLAN ID 102, 202
inactive: ent3 PVID 333, VLAN ID 103, 203,                        active: ent3 PVID 333, VLAN ID 103,203 303,403 303,403
inactive: ent4 PVID 444, VLAN ID 104, 204,304,404        active: ent4 PVID 444, VLAN ID 104, 204, 304, 404

VIOS1 VIDs shared: 1, 222, 102, 202                                 VIOS2 VIDs shared: 333, 444, 103, 203, 303, 403, 104, 204, 304, 404
SEA Figure 5
Example 3B:

Desired outcome: Primary SEA bridges about the same number of VIDs as the backup SEA.
 
VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent3,ent2,ent4-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent3,ent2,ent4 -default ent1 -defaultid 1 -attr ha_mode=sharing

 
VIOS 1 (Primary)                                                                                 VIOS 2 (Backup)

active: ent1 PVID 1                                                                            inactive: ent1 PVID 1
active: ent3 PVID 333, VLAN ID 103, 203                                  inactive: ent3 PVID 333, VLAN ID 103,203 303,403 303,403
inactive: ent2 PVID 222, VLAN ID 102,202                                   active: ent2 PVID 222, VLAN ID 102, 202
inactive: ent4 PVID 444, VLAN ID 104, 204,304,404                active: ent4 PVID 444, VLAN ID 104, 204, 304, 404

VIOS1 VIDs shared: 1, 333, 103,203,303,403                             VIOS2 VIDs shared: 222, 444, 102, 202, 104, 204, 304,404
SEA Figure 6
Example 4A:

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4, ent5
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3,ent4,ent5-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4, ent5
command to make SEA: mkvdev -sea ent0 -vadapter ent1,ent2,ent3,ent4,ent5-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                                                                          VIOS 2 (Backup)

active: ent1 PVID 1                                                                                                    inactive: ent1 PVID 1
active: ent2 PVID 222, VLAN ID 102,202                                                           inactive: ent2 PVID 222, VLAN ID 102, 202
active: ent3 PVID 333, VLAN ID 103, 203                                                          inactive: ent3 PVID 333, VLAN ID 103,203 303,403 303,403
inactive: ent4 PVID 444, VLAN ID 104, 204,304,404                                        active: ent4 PVID 444, VLAN ID 104, 204, 304, 404
inactive: ent5 PVID 555, VLAN ID 105, 205, 305                                                active: ent5 PVID 555, VLAN ID 105, 205, 305


VIOS1 VIDs shared: 1, 222, 333, 102, 202, 103, 203, 303, 403                     VIOS2 VIDs shared: 444, 555, 104, 204, 304,404, 105, 205, 305
SEA Figure 6
Example 4B:

Desired Outcome: Only VIDs 1, 102, and 202 actively bridging on VIOS2.

VIOS1:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4, ent5
command to make SEA: mkvdev -sea ent0 -vadapter ent3,ent4,ent5,ent1,ent2-default ent1 -defaultid 1 -attr ha_mode=sharing

VIOS2:
real adapter: ent0
virtual adapters: ent1, ent2, ent3, ent4, ent5
command to make SEA: mkvdev -sea ent0 -vadapter ent3,ent4,ent5,ent1,ent2-default ent1 -defaultid 1 -attr ha_mode=sharing


VIOS 1 (Primary)                                                                                                     VIOS 2 (Backup)

active: ent3 PVID 333, VLAN ID 103, 203,303,403                                  inactive: ent3 PVID 333, VLAN ID 103,203, 303,403
active: ent4 PVID 444, VLAN ID 104, 204,304,404                                  inactive: ent4 PVID 444, VLAN ID 104, 204, 304, 404
active: ent5 PVID 555, VLAN ID 105, 205, 305                                          inactive: ent5 PVID 555, VLAN ID 105, 205,305
inactive: ent1 PVID 1                                                                                             active: ent1 PVID 1
inactive: ent2 PVID 222, VLAN ID 102,202                                                     active: ent2 PVID 222, VLAN ID 102, 202

 
VIOS1 VIDs shared: 333, 444, 555, 103, 203, 303, 403, 104,204,304,404, 105, 205, 305                          VIOS2 VIDs shared: 1, 222, 102, 202
SEA Figure 8

Contacting the PowerVM Team

Have questions for the PowerVM team or want to learn more?  Follow our discussion group on LinkedIn IBM PowerVM or IBM Community Discussions
#powervmblog
#powervm
0 comments
47 views

Permalink