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 #1NIC #2FUNCTIONIP ADDRESS
XS-1XS-2
eth0eth3PMIeth0: 172.16.0.10/27eth0: 172.16.0.12/27
eth1eth4ExternalN/AN/A
eth2eth5Storageeth2: 172.16.0.35/28eth2: 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