Bonding Network Interfaces, Part II

Scenario #2, Tutorial #2, Part #2

In Tutorial #1, we joined the two hosts xs-1 & xs-2 in a resource pool and configured the Storage interfaces on each of the hosts. In this tutorial we are going to improve the resiliency of the Storage interface and the Primary Management Interface (PMI) by combining each of those two interfaces with an extra NIC to form active-standby NIC bonds. We will also create a resilient, high-performance network for guest traffic by bonding two interfaces together using active-active bonding mode.

To review: In Part #1 of this Tutorial we had described the physical infrastructure that we’d be working with and our design goal…

Our objective in this tutorial will be to improve the resiliency and the performance of networking within XenServer but we will not be concerned with isolation in this tutorial

Each of the XS hosts in the PXS Lab have six NIC’s. In our Scenario: These NIC’s will be combined into three bonds:

TABLE #1

NIC #1 NIC #2 FUNCTION IP ADDRESS
XS-1 XS-2
eth0 eth3 PMI eth0: 172.16.0.10/27 eth0: 172.16.0.12/27
eth1 eth4 External N/A N/A
eth2 eth5 Storage eth2: 172.16.0.35/28 eth2: 172.16.0.36/28

Practical XenServer: Bonding NIC Interfaces, Part I

In this part of the Tutorial we’ll be completing our design goal by combining each of the interfaces with an additional NIC to create bonded interfaces: the Primary Management Interface (PMI); the Storage interface, and; the guest interface.

First: We’ll begin by performing some validation (e.g., verifying that Open vSwitch [OVS] is configured as the network stack and that the installation process successfully identified and configured all six of the NIC’s). Then we’ll finish with the creation of the bonds themselves along with some new, additional, virtual infrastructure that will form a part of the new bonds (e.g., creating a new virtual switch for each of the new bonds).

Validation

Though this step isn’t completely necessary, it is a good opportunity to review the status of networking on the hosts before we make any changes:


Legend: GET | SEE | USE

[root@xs-1 ~]# xe network-list params=uuid,name-label,bridge | grep -B1 -A2 name-label
uuid ( RO) : d6d54a3d-27c0-8ebf-fd4d-1e465924c391
name-label ( RW): Pool-wide network associated with eth4
bridge ( RO): xenbr4


uuid ( RO) : 28644253-3734-7ccf-1046-bd10709457bf
name-label ( RW): Pool-wide network associated with eth1
bridge ( RO): xenbr1


uuid ( RO) : ce980e76-9eb8-c7c5-9f70-ffdda9b05adb
name-label ( RW): Pool-wide network associated with eth0
bridge ( RO): xenbr0


uuid ( RO) : 92823c10-28af-3ad1-89e7-36df6ed3d83b
name-label ( RW): Pool-wide network associated with eth5
bridge ( RO): xenbr5


uuid ( RO) : 45ea2b0f-cbf1-df35-010b-145b3e90b163
name-label ( RW): Pool-wide network associated with eth2
bridge ( RO): xenbr2


uuid ( RO) : 335e74ba-13ce-12a7-5d63-40d09c360d31
name-label ( RW): Host internal management network
bridge ( RO): xenapi


uuid ( RO) : 95af3ef3-5be2-5365-2375-59d0784a5449
name-label ( RW): Pool-wide network associated with eth3
bridge ( RO): xenbr3

[root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
uuid ( RO) : 8445b796-01b0-e2cf-ba17-9e7af7856925
device ( RO): eth0
network-name-label ( RO): Pool-wide network associated with eth0
IP ( RO): 172.16.0.10

uuid ( RO) : 767aac49-ba37-3be7-5bad-87ae26d97e02
device ( RO): eth2
network-name-label ( RO): Pool-wide network associated with eth2
IP ( RO): 172.16.0.35

[root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label

[root@xs-1 ~]# xe bond-list params=uuid,name-label,bridge

[root@xs-1 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
inet addr:172.16.0.10 Bcast:172.16.0.31 Mask:255.255.255.224

xenbr2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
inet addr:172.16.0.35 Bcast:172.16.0.47 Mask:255.255.255.240

[root@xs-1 ~]# ifconfig -a | grep -e xen -e xapi -e eth
eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
eth2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
eth3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
eth4 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8D
eth5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C
xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
xenbr1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
xenbr2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
xenbr3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
xenbr4 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8D
xenbr5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C

[root@xs-1 ~]# ovs-vsctl list-br
xenbr0
xenbr1
xenbr2
xenbr3
xenbr4
xenbr5

[root@xs-1 ~]# ovs-appctl bond/list
bond type slaves

There are three important things to notice this example:

  1. There has been a network created for every interface on each of the two hosts.

    During installation, XenServer also creates a separate network for each NIC it detects on the host.

    Chapter 2 of Citrix XenServer Design: Designing XenServer Network Configurations

  2. The networks that have been created for every interface are present on all hosts in the pool and they are identical. i.e., The networks are named identically and given identical UUID’s.
  3. The xe pif-list command allows the inspection of other hosts in the pool. But the xe network-list command does not (for the reason that we just mentioned, above). So we’ve had to perform these commands on each host, individually.

Next: We’ll verify that Open vSwitch (OVS) is configured as the network stack on each of the hosts in the resource pool; that the OVS daemon is running on each of the hosts, and that there are not already any existing bonds configured on either of the two hosts.

  1. Confirm that OVS is configured as the network stack on each of the hosts in the resource pool:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# xe-get-network-backend
    openvswitch

    [root@xs-1 ~]# xe host-list params=software-version | cut -d ‘;’ -f 16
    network_backend: openvswitch
    network_backend: openvswitch

  2. Confirm that the OVS daemon is running on each of the hosts:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# hostname
    xs-1

    [root@xs-1 ~]# service openvswitch status
    ovsdb-server is running with pid 2378
    ovs-vswitchd is running with pid 2400
    ovs-xapi-sync is running with pid 2407


    Legend: GET | SEE | USE

    [root@xs-2 ~]# hostname
    xs-2

    [root@xs-2 ~]# service openvswitch status
    ovsdb-server is running with pid 2414
    ovs-vswitchd is running with pid 2436
    ovs-xapi-sync is running with pid 2443

  3. Verify that that no other bonds exist on either of the two hosts:


    [root@xs-1 ~]# hostname
    xs-1

    [root@xs-1 ~]# xe bond-list

    [root@xs-1 ~]# ovs-appctl bond/list
    bond type slaves


    [root@xs-2 ~]# hostname
    xs-2

    [root@xs-2 ~]# xe bond-list

    [root@xs-2 ~]# ovs-appctl bond/list
    bond type slaves


    Notice that the xe bond-list command and the ovs-apptcl bond/list command both return a null list (i.e., an empty list) but the ovs-apptcl bond/list prepends the null list with column headers.

Creation

Bonds are created on the pool-master (PM) and then inherited by the other members of the pool.

Throughout each of these steps, notice how the IP addresses that we’ve already applied to individual interfaces in Tutorial #1 and during installation are inherited by the bonds that we create.

Creating a Network Bond for Storage Traffic

Per Citrix’s recommendation, we’ll be configuring an active-passive bond for the storage interface. The IP address that was applied to eth2 in Tutorial #1 will be inherited by the newly-created bond.

Begin by identifying the PM:


Legend: GET | SEE | USE

[root@xs-1 ~]# xe pool-list params=master,name-label,name-description
name-label ( RW) : PDX0
name-description ( RW): NA-US-OR-PDX-0
master ( RO): e28ef0a3-0738-4bc5-9146-cae1205d1e20

[root@xs-1 ~]# xe host-list uuid=e28ef0a3-0738-4bc5-9146-cae1205d1e20
uuid ( RO) : e28ef0a3-0738-4bc5-9146-cae1205d1e20
name-label ( RW): xs-1
name-description ( RW): Default install of XenServer

On the pool-master:

  1. Use a combination of Linux system commands and XAPI commands to review the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : 8445b796-01b0-e2cf-ba17-9e7af7856925
    device ( RO): eth0
    network-name-label ( RO): Pool-wide network associated with eth0
    IP ( RO): 172.16.0.10

    uuid ( RO) : 767aac49-ba37-3be7-5bad-87ae26d97e02
    device ( RO): eth2
    network-name-label ( RO): Pool-wide network associated with eth2
    IP ( RO): 172.16.0.35

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label

    [root@xs-1 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    inet addr:172.16.0.10 Bcast:172.16.0.31 Mask:255.255.255.224

    xenbr2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    inet addr:172.16.0.35 Bcast:172.16.0.47 Mask:255.255.255.240


    Notice the information returned by the xe pif-list command is actually very deceptive: i.e., The /sbin/ifconfig command reveals that two IP addresses that are configured on the PM are actually assigned to the networks that connect the host to the NIC’s – not to the NIC’s themselves! Also notice that there are no bonds currently configured on the PM.

    After we are finished creating the bonds we will review these values to see how they’ve changed.

  2. Create a network specifically for the storage traffic and store the network’s UUID in a shell variable for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# NAS_NET_UUID=$(xe network-create name-label=NAS)
    [root@xs-1 ~]# echo -e “Storage Network UUID: $NAS_NET_UUID\n”
    Storage Network UUID: 6d171093-c7e8-7412-a86e-aa6db02c13f8

  3. Identify the UUID’s of each of the NIC’s that we’ll be bonding and store them in shell variables for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# NAS_PIF2_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth2 params=uuid | awk ‘{ print $5 }’)
    [root@xs-1 ~]# NAS_PIF4_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth4 params=uuid | awk ‘{ print $5 }’)
    [root@xs-1 ~]# echo -e “Storage PIF UUID’s:\n PIF2: $NAS_PIF2_UUID\n PIF4: $NAS_PIF4_UUID\n”
    Storage PIF UUID’s:
    PIF2: 767aac49-ba37-3be7-5bad-87ae26d97e02
    PIF4: 4c7a225b-7dfe-4b7f-117f-a42ad3be4cae

  4. Create the bond and store the bond’s UUID in a shell variable for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# NAS_BOND_UUID=$(xe bond-create network-uuid=$NAS_NET_UUID pif-uuids=$NAS_PIF2_UUID,$NAS_PIF4_UUID mode=active-backup)
    [root@xs-1 ~]# NAS_MSTR_UUID=$(xe pif-list network-name-label=NAS host-uuid=$INSTALLATION_UUID | awk ‘{ print $5 }’)
    [root@xs-1 ~]# echo -e “NAS BOND UUID’s:\n BOND INTERFACE UUID: $NAS_BOND_UUID\n BOND MASTER UUID: $NAS_MSTR_UUID\n”
    Storage Bond UUID’s:
    BOND INTERFACE UUID: 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    BOND MASTER UUID: 08ca67a6-25d0-bd8d-d36a-c2563cae497b

  5. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP
    uuid ( RO) : 8445b796-01b0-e2cf-ba17-9e7af7856925
    device ( RO): eth0
    IP ( RO): 172.16.0.10

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP
    uuid ( RO) : 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    device ( RO): bond0
    IP ( RO): 172.16.0.35

    [root@xs-1 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    [root@xs-1 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    inet addr:172.16.0.35 Bcast:172.16.0.47 Mask:255.255.255.240

    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    inet addr:172.16.0.10 Bcast:172.16.0.31 Mask:255.255.255.224

    [root@xs-1 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
    eth2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    eth3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8D
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    xenbr1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
    xenbr5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C

    [root@xs-1 ~]# ovs-vsctl list-br
    xapi0
    xenbr0
    xenbr1
    xenbr3
    xenbr5

    [root@xs-1 ~]# ovs-appctl bond/list
    bond type slaves
    bond0 active-backup eth2, eth4

    There’s quite a lot going on here, so let’s break it down so that we can see it all:

    1. The xapi1 interface has replaced the xenbr1 interface and inherited its IP address. It’s important to note that this is from the perspective of the Dom0 operating system – not from the abstracted perspective of XAPI! (i.e., As we’ll see in a moment: xapi1 is actually a virtual network switch – not a NIC.)
    2. There’s a new, non-physical interface – bond0 – and it’s connected to the networked labeled ‘NAS’.
    3. The new bond has it’s own UUID plus a UUID for referencing the bond as a PIF.
    4. The new bond is composed of the two NIC’s eth2 & eth4 and is configured in active-backup mode.
    5. The two virtual switches that were associated with the NIC’s that have been combined (xenbr2 & xenbr4) no longer exist. (They’ve been replaced by the new virtual switch xapi1.)
    6. The new Storage network – xapi1 – is connected to the new interface – bond0.

    To summarize: The two NIC’s – eth2 & eth4 – have been combined into a network bond – bond0 – and connected to a new virtual switch – xapi1.

On the other hosts in the resource pool:

On each of the other hosts in the resource pool: Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM

  1. Begin by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : cd9d33bb-997e-5aec-c8d3-b0422e1e9cb5
    device ( RO): eth2
    network-name-label ( RO): Pool-wide network associated with eth2
    IP ( RO): 172.16.0.36

    uuid ( RO) : 7e171fca-dbbf-fb2b-dc27-b17dce481c02
    device ( RO): eth0
    network-name-label ( RO): Pool-wide network associated with eth0
    IP ( RO): 172.16.0.12

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label

    [root@xs-2 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

    xenbr2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

    [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    xenbr1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    xenbr2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    xenbr4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
    xenbr5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34

    [root@xs-2 ~]# ovs-vsctl list-br
    xenbr0
    xenbr1
    xenbr2
    xenbr3
    xenbr4
    xenbr5

    [root@xs-2 ~]# ovs-appctl bond/list
    bond type slaves

  2. Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM:


    [root@xs-2 ~]# service xapi restart && sleep 15
    Stopping xapi: .. [ OK ]
    Starting xapi: OK [ OK ]

  3. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : 7e171fca-dbbf-fb2b-dc27-b17dce481c02
    device ( RO): eth0
    network-name-label ( RO): Pool-wide network associated with eth0
    IP ( RO): 172.16.0.12

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : f5ff29df-4114-fb87-b6bc-4832f5e271dc
    device ( RO): bond0
    network-name-label ( RO): NAS
    IP ( RO): 172.16.0.36

    [root@xs-2 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
    master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
    mode ( RO): active-backup

    [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

    [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    xenbr1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    xenbr5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34

    [root@xs-2 ~]# ovs-vsctl list-br
    xapi0
    xenbr0
    xenbr1
    xenbr3
    xenbr5

    [root@xs-2 ~]# ovs-appctl bond/list
    bond type slaves
    bond0 active-backup eth2, eth4


    Notice that the two IP addresses that are configured on the PM are actually assigned to the networks that connect the host to the NIC’s – not to the NIC’s themselves!

Creating a Network Bond for the Guest Traffic

Per Citrix’s recommendation, we’ll be configuring an active-active bond for guest traffic. Neither NIC has an IP address configured and none will be configured for the newly-created bond.

This process in nearly identical to the process for creating the bonded Storage interface except that, when we create the bond; we’ll specify that the [bond] mode as ‘active-active‘ instead of ‘active-backup‘.

On the pool-master:

  1. Create a network specifically for guests to access the outside world (e.g., the Internet; your internal LAN; etc) and store the network’s UUID in a shell variable for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# PUB_NET_UUID=$(xe network-create name-label=PUB)
    [root@xs-1 ~]# echo -e “Guest network UUID: $PUB_NET_UUID\n”
    Guest Network UUID: 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca

  2. Identify the UUID’s of each of the NIC’s that we’ll be bonding and store them in shell variables for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# PUB_PIF1_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth1 params=uuid | awk ‘{ print $5 }’)
    [root@xs-1 ~]# PUB_PIF5_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth5 params=uuid | awk ‘{ print $5 }’)
    [root@xs-1 ~]# echo -e “Guest PIF UUID’s:\n PIF1: $PUB_PIF1_UUID\n PIF5: $PUB_PIF5_UUID\n”
    Guest PIF UUID’s:
    PIF1: 9593f408-9ed8-903a-479f-c7fcded4f92c
    PIF5: 20672f93-21e1-877c-9104-99d4b91d9fe4

  3. Create the bond and store the bond’s UUID in a shell variable for use later in this process:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# PUB_BOND_UUID=$(xe bond-create network-uuid=$PUB_NET_UUID pif-uuids=$PUB_PIF1_UUID,$PUB_PIF5_UUID mode=balance-slb)
    [root@xs-1 ~]# PUB_MSTR_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID network-uuid=$PUB_NET_UUID params=uuid | awk ‘{ print $5 }’)
    [root@xs-1 ~]# echo -e “Guest Bond UUID’s:\n $PUB_BOND_UUID\n BOND MASTER UUID: $PUB_MSTR_UUID\n”
    Guest Bond UUID’s:
    BOND INTERFACE UUID: b2f98aee-4b51-6906-b0f5-f429151ef738
    BOND MASTER UUID: 744c1640-9f36-d47a-4f0a-e4b9207948b1

  4. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-1 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
    name-label ( RW): PUB
    bridge ( RO): xapi1


    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP
    uuid ( RO) : 8445b796-01b0-e2cf-ba17-9e7af7856925
    device ( RO): eth0
    IP ( RO): 172.16.0.10

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP
    uuid ( RO) : 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    device ( RO): bond0
    IP ( RO): 172.16.0.35

    [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID IP-configuration-mode=None physical=false params=uuid,device,IP,network-name-label
    uuid ( RO) : 744c1640-9f36-d47a-4f0a-e4b9207948b1
    device ( RO): bond1
    network-name-label ( RO): PUB
    IP ( RO):

    [root@xs-1 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
    master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
    mode ( RO): balance-slb

    uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
    master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
    mode ( RO): active-backup

    [root@xs-1 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    inet addr:172.16.0.35 Bcast:172.16.0.47 Mask:255.255.255.240

    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    inet addr:172.16.0.10 Bcast:172.16.0.31 Mask:255.255.255.224

    [root@xs-1 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
    eth2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    eth3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8D
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
    xapi1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD

    [root@xs-1 ~]# ovs-vsctl list-br
    xapi0
    xapi1
    xenbr0
    xenbr3

    [root@xs-1 ~]# ovs-appctl bond/list
    bond type slaves
    bond0 active-backup eth2, eth4
    bond1 balance-slb eth1, eth5

On the other hosts in the resource pool:

On each of the other hosts in the resource pool: Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM

  1. Begin by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
    name-label ( RW): PUB
    bridge ( RO): xapi1


    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : 7e171fca-dbbf-fb2b-dc27-b17dce481c02
    device ( RO): eth0
    network-name-label ( RO): Pool-wide network associated with eth0
    IP ( RO): 172.16.0.12

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : f5ff29df-4114-fb87-b6bc-4832f5e271dc
    device ( RO): bond0
    network-name-label ( RO): NAS
    IP ( RO): 172.16.0.36

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=None params=uuid,device,IP,network-

    [root@xs-2 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
    master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
    mode ( RO): balance-slb

    uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
    master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
    mode ( RO): active-backup

    [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

    [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    xenbr1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    xenbr5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34

    [root@xs-2 ~]# ovs-vsctl list-br
    xapi0
    xenbr0
    xenbr1
    xenbr3
    xenbr5

    [root@xs-2 ~]# ovs-appctl bond/list
    bond type slaves
    bond0 active-backup eth2, eth4

  2. Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM:


    [root@xs-2 ~]# service xapi restart && sleep 15
    Stopping xapi: .. [ OK ]
    Starting xapi: OK [ OK ]

  3. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


    Legend: GET | SEE | USE

    [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
    uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
    name-label ( RW): PUB
    bridge ( RO): xapi1


    uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
    name-label ( RW): NAS
    bridge ( RO): xapi0

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : 7e171fca-dbbf-fb2b-dc27-b17dce481c02
    device ( RO): eth0
    network-name-label ( RO): Pool-wide network associated with eth0
    IP ( RO): 172.16.0.12

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label
    uuid ( RO) : f5ff29df-4114-fb87-b6bc-4832f5e271dc
    device ( RO): bond0
    network-name-label ( RO): NAS
    IP ( RO): 172.16.0.36

    [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=None params=uuid,device,IP,network-name-label
    uuid ( RO) : 236e2565-10d8-f42d-0695-b0bf7c6d2460
    device ( RO): bond1
    network-name-label ( RO): PUB
    IP ( RO):

    [root@xs-2 ~]# xe bond-list params=uuid,master,mode
    uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
    master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
    mode ( RO): active-backup

    uuid ( RO) : 607b025a-1bae-63b2-a973-e42b9ee1d125
    master ( RO): 236e2565-10d8-f42d-0695-b0bf7c6d2460
    mode ( RO): balance-slb

    uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
    master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
    mode ( RO): balance-slb

    uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
    master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
    mode ( RO): active-backup

    [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

    [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
    eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
    eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
    eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
    xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
    xapi1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
    xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
    xenbr3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51

    [root@xs-2 ~]# ovs-vsctl list-br
    xapi0
    xapi1
    xenbr0
    xenbr3

    [root@xs-2 ~]# ovs-appctl bond/list
    bond type slaves
    bond0 active-backup eth2, eth4
    bond1 balance-slb eth1, eth5

    Creating a Network Bond for the Primary Management Interface (PMI)

    Per Citrix’s recommendation, we’ll be configuring an active-passive bond for the PMI. The IP address that was configured for the PMI during installation will be inherited by the newly-created bond.

    On the pool-master:

    1. Create a network specifically for the management traffic and store the network’s UUID in a shell variable for use later in this process:


      Legend: GET | SEE | USE

      [root@xs-1 ~]# MGT_NET_UUID=$(xe network-create name-label=MGT)
      [root@xs-1 ~]# echo -e “Management Network UUID: $MGT_NET_UUID\n”
      Management Network UUID: e72b69cd-b387-b45e-fc2d-edef5bda176a

    2. Identify the UUID’s of each of the NIC’s that we’ll be bonding and store them in shell variables for use later in this process:


      Legend: GET | SEE | USE

      [root@xs-1 ~]# PMI_PIF_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID management=true params=uuid | awk ‘{ print $5 }’)
      [root@xs-1 ~]# MGT_PIF0_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth0 params=uuid | awk ‘{ print $5 }’)
      [root@xs-1 ~]# MGT_PIF3_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID device=eth3 params=uuid | awk ‘{ print $5 }’)
      [root@xs-1 ~]# echo -e “Management PIF UUID’s:\n PMI: $PMI_PIF_UUID\n PIF0: $MGT_PIF0_UUID\n PIF3: $MGT_PIF3_UUID\n”
      Management PIF UUID’s:
      PMI: 8445b796-01b0-e2cf-ba17-9e7af7856925
      PIF0: 8445b796-01b0-e2cf-ba17-9e7af7856925
      PIF3: a9ffe301-bec3-807f-c825-702517196ead

    3. Create the bond and store the bond’s UUID in a shell variable for use later in this process:


      Legend: GET | SEE | USE

      [root@xs-1 ~]# MGT_BOND_UUID=$(xe bond-create network-uuid=$MGT_NET_UUID pif-uuids=$PMI_PIF_UUID,$MGT_PIF3_UUID mode=active-backup)
      [root@xs-1 ~]# MGT_MSTR_UUID=$(xe pif-list host-uuid=$INSTALLATION_UUID network-uuid=$MGT_NET_UUID params=uuid | awk ‘{ print $5 }’)
      [root@xs-1 ~]# echo -e “Management Bond UUID’s:\n BOND INTERFACE UUID: $MGT_BOND_UUID\n BOND MASTER UUID: $MGT_MSTR_UUID\n”
      Management Bond UUID’s:
      BOND INTERFACE UUID: a30d40ff-f189-a0bc-db88-1878305585ef
      BOND MASTER UUID: b7baceac-a44a-b43b-16df-15cf85122827

    4. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


      Legend: GET | SEE | USE

      [root@xs-1 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
      uuid ( RO) : e72b69cd-b387-b45e-fc2d-edef5bda176a
      name-label ( RW): MGT
      bridge ( RO): xapi2


      uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
      name-label ( RW): PUB
      bridge ( RO): xapi1


      uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
      name-label ( RW): NAS
      bridge ( RO): xapi0

      [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP

      [root@xs-1 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP
      uuid ( RO) : 08ca67a6-25d0-bd8d-d36a-c2563cae497b
      device ( RO): bond0
      IP ( RO): 172.16.0.35

      uuid ( RO) : b7baceac-a44a-b43b-16df-15cf85122827
      device ( RO): bond2
      IP ( RO): 172.16.0.10

      [root@xs-1 ~]# xe bond-list params=uuid,master,mode
      uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
      master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
      mode ( RO): active-backup

      uuid ( RO) : 607b025a-1bae-63b2-a973-e42b9ee1d125
      master ( RO): 236e2565-10d8-f42d-0695-b0bf7c6d2460
      mode ( RO): balance-slb

      uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
      master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
      mode ( RO): balance-slb

      uuid ( RO) : a30d40ff-f189-a0bc-db88-1878305585ef
      master ( RO): b7baceac-a44a-b43b-16df-15cf85122827
      mode ( RO): active-backup

      uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
      master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
      mode ( RO): active-backup

      [root@xs-1 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
      inet addr:172.16.0.35 Bcast:172.16.0.47 Mask:255.255.255.240

      xapi2 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
      inet addr:172.16.0.10 Bcast:172.16.0.31 Mask:255.255.255.224

      [root@xs-1 ~]# ifconfig -a | grep -e xen -e xapi -e eth
      eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C
      eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
      eth2 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
      eth3 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CD
      eth4 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8D
      eth5 Link encap:Ethernet HWaddr 00:1B:78:5A:21:8C
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D1:E8:CC
      xapi1 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:3C
      xapi2 Link encap:Ethernet HWaddr 00:1F:29:C4:9F:5C

      [root@xs-1 ~]# ovs-vsctl list-br
      xapi0
      xapi1
      xapi2

      [root@xs-1 ~]# ovs-appctl bond/list
      bond type slaves
      bond0 active-backup eth2, eth4
      bond1 balance-slb eth1, eth5
      bond2 active-backup eth0, eth3

    On the other hosts in the resource pool:

    On each of the other hosts in the resource pool: Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM

    1. Begin by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


      Legend: GET | SEE | USE

      [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
      uuid ( RO) : e72b69cd-b387-b45e-fc2d-edef5bda176a
      name-label ( RW): MGT
      bridge ( RO): xapi2


      uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
      name-label ( RW): PUB
      bridge ( RO): xapi1


      uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
      name-label ( RW): NAS
      bridge ( RO): xapi0

      [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP,network-name-label
      uuid ( RO) : 7e171fca-dbbf-fb2b-dc27-b17dce481c02
      device ( RO): eth0
      network-name-label ( RO): Pool-wide network associated with eth0
      IP ( RO): 172.16.0.12

      [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP,network-name-label
      uuid ( RO) : f5ff29df-4114-fb87-b6bc-4832f5e271dc
      device ( RO): bond0
      network-name-label ( RO): NAS
      IP ( RO): 172.16.0.36

      [root@xs-2 ~]# xe bond-list params=uuid,master,mode
      uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
      master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
      mode ( RO): active-backup

      uuid ( RO) : 607b025a-1bae-63b2-a973-e42b9ee1d125
      master ( RO): 236e2565-10d8-f42d-0695-b0bf7c6d2460
      mode ( RO): balance-slb

      uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
      master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
      mode ( RO): balance-slb

      uuid ( RO) : a30d40ff-f189-a0bc-db88-1878305585ef
      master ( RO): b7baceac-a44a-b43b-16df-15cf85122827
      mode ( RO): active-backup

      uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
      master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
      mode ( RO): active-backup

      [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

      xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
      inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

      [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
      eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
      eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
      eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
      eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
      eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      xapi1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
      xenbr0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
      xenbr3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51

      [root@xs-2 ~]# ovs-vsctl list-br
      xapi0
      xapi1
      xenbr0
      xenbr3

      [root@xs-2 ~]# ovs-appctl bond/list
      bond type slaves
      bond0 active-backup eth2, eth4
      bond1 balance-slb eth1, eth5

    2. Restart the XAPI service to inherit the newly-created bonds and the newly-created networks from the PM:


      [root@xs-2 ~]# service xapi restart && sleep 15
      Stopping xapi: .. [ OK ]
      Starting xapi: OK [ OK ]

    3. Finish by reviewing the list of interfaces on the host and any IP addresses that may be configured on those interfaces:


      Legend: GET | SEE | USE

      [root@xs-2 ~]# xe network-list params=uuid,name-label,bridge | grep -v Pool | grep -v management | grep -B1 -A2 name-label
      uuid ( RO) : e72b69cd-b387-b45e-fc2d-edef5bda176a
      name-label ( RW): MGT
      bridge ( RO): xapi2


      uuid ( RO) : 8bf0c2e7-6885-e51f-ca10-b72cc56aa9ca
      name-label ( RW): PUB
      bridge ( RO): xapi1


      uuid ( RO) : 6d171093-c7e8-7412-a86e-aa6db02c13f8
      name-label ( RW): NAS
      bridge ( RO): xapi0

      [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=true IP-configuration-mode=Static params=uuid,device,IP

      [root@xs-2 ~]# xe pif-list host-uuid=$INSTALLATION_UUID physical=false IP-configuration-mode=Static params=uuid,device,IP
      uuid ( RO) : f5ff29df-4114-fb87-b6bc-4832f5e271dc
      device ( RO): bond0
      IP ( RO): 172.16.0.36

      uuid ( RO) : 8bf3923e-e150-5247-0a45-3c1c77abb433
      device ( RO): bond2
      IP ( RO): 172.16.0.12

      [root@xs-2 ~]# xe bond-list params=uuid,master,mode
      uuid ( RO) : 969813e9-f3eb-ec36-6b59-7075b2dd5a84
      master ( RO): 08ca67a6-25d0-bd8d-d36a-c2563cae497b
      mode ( RO): active-backup

      uuid ( RO) : d93f41db-1ed9-16a4-00ad-744969f739a8
      master ( RO): 8bf3923e-e150-5247-0a45-3c1c77abb433
      mode ( RO): active-backup

      uuid ( RO) : 607b025a-1bae-63b2-a973-e42b9ee1d125
      master ( RO): 236e2565-10d8-f42d-0695-b0bf7c6d2460
      mode ( RO): balance-slb

      uuid ( RO) : b2f98aee-4b51-6906-b0f5-f429151ef738
      master ( RO): 744c1640-9f36-d47a-4f0a-e4b9207948b1
      mode ( RO): balance-slb

      uuid ( RO) : a30d40ff-f189-a0bc-db88-1878305585ef
      master ( RO): b7baceac-a44a-b43b-16df-15cf85122827
      mode ( RO): active-backup

      uuid ( RO) : fc6b07cd-2fd7-7016-0881-f909798de166
      master ( RO): f5ff29df-4114-fb87-b6bc-4832f5e271dc
      mode ( RO): active-backup

      [root@xs-2 ~]# ifconfig | grep -v ‘127\.0\.0\.1’ | grep -B1 inet
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      inet addr:172.16.0.36 Bcast:172.16.0.47 Mask:255.255.255.240

      xapi2 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
      inet addr:172.16.0.12 Bcast:172.16.0.31 Mask:255.255.255.224

      [root@xs-2 ~]# ifconfig -a | grep -e xen -e xapi -e eth
      eth0 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA
      eth1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
      eth2 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      eth3 Link encap:Ethernet HWaddr 00:26:55:D2:EE:51
      eth4 Link encap:Ethernet HWaddr 00:1B:78:5C:74:35
      eth5 Link encap:Ethernet HWaddr 00:1B:78:5C:74:34
      xapi0 Link encap:Ethernet HWaddr 00:26:55:D2:EE:50
      xapi1 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:C2
      xapi2 Link encap:Ethernet HWaddr 00:1F:29:C4:9D:BA

      [root@xs-2 ~]# ovs-vsctl list-br
      xapi0
      xapi1
      xapi2

      [root@xs-2 ~]# ovs-appctl bond/list
      bond type slaves
      bond2 active-backup eth3, eth0
      bond0 active-backup eth2, eth4
      bond1 balance-slb eth1, eth5

    Conclusion

    Changelog: This tutorial was last modified 20-Jul-2017