2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-29 09:13:08 +00:00

Merge pull request #2534 from gurevichmark/bonding_doc

Update bonding configuration instructions
This commit is contained in:
Victor Hu 2017-03-02 14:11:13 -05:00 committed by GitHub
commit 7f2044321d
4 changed files with 181 additions and 124 deletions

View File

@ -1,121 +1,10 @@
Advanced Networking Configuration
=================================
The ``confignetwork`` postscript can be used to configure the network interfaces on the compute nodes to support VLAN, BONDs, and BRIDGES. In order to use the ``confignetwork`` postscript, the following attributes must be configured for the node in the ``nics`` table:
* ``nicips``
* ``nictypes``
* ``nicnetworks``
* ``nicdevices`` - resolves the relationship among the physical network intereface devices
The following example set the xCAT properties for compute node ``cn1`` to achieve the following network configuration using the ``confignetwork`` postscript:
* Compute node ``cn1`` has two physical NICs: eth2 and eth3
* Bond eth2 and eth3 as ``bond0``
* From ``bond0``, create 2 VLANs: ``bond0.1`` and ``bond0.2``
* Make bridge ``br1`` using ``bond0.1`` with IP (10.0.0.1)
* Make bridge ``br2`` using ``bond0.2`` with IP (20.0.0.1)
Define attributes in the ``nics`` table
---------------------------------------
#. Using the ``mkdef`` or ``chdef`` commands
a. Compute node ``cn1`` has two physical NICs: ``eth2`` and ``eth3`` ::
chdef cn1 nictypes.eth2=ethernet nictypes.eth3=ethernet
b. Define ``bond0`` and bond ``eth2`` and ``eth3`` as ``bond0`` ::
chdef cn1 nictypes.bond0=bond \
nicdevices.bond0="eth2|eth3"
c. Fom ``bond0``, create 2 VLANs: ``bond0.1`` and ``bond0.2`` ::
chdef cn1 nictypes.bond0.1=vlan \
nictypes.bond0.2=vlan \
nicdevices.bond0.1=bond0 \
nicdevices.bond0.2=bond0
d. Create bridge ``br1`` using ``bond0.1`` with IP (10.0.0.1) ::
chdef cn1 nictypes.br1=bridge \
nicdevices.br1=bond0.1 \
nicips.br1=10.0.0.1 \
nicnetworks.br1="net10"
e. Create bridge ``br2`` using ``bond0.2`` with IP (20.0.0.1) ::
chdef cn1 nictypes.br2=bridge \
nicdevices.br2=bond0.2 \
nicips.br2=20.0.0.1 \
nicnetworks.br2="net20"
#. Using an xCAT stanza file
- Prepare a stanza file ``<filename>.stanza`` with content similiar to the following: ::
# <xCAT data object stanza file>
cn1:
objtype=node
arch=x86_64
groups=kvm,vm,all
nicdevices.br1=bond0.1
nicdevices.br2=bond0.2
nicdevices.bond0.1=bond0
nicdevices.bond0.2=bond0
nicdevices.bond0=eth2|eth3
nictypes.eth2=ethernet
nictypes.eth3=ethernet
nictypes.bond0=bond
nictypes.bond0.1=vlan
nictypes.bond0.2=vlan
nictypes.br1=bridge
nictypes.br2=bridge
nicips.br1=10.0.0.1
nicips.br2=20.0.0.1
nicnetworks.br1=net10
nicnetworks.br2=net20
- Using the ``mkdef -z`` option, define the stanza file to xCAT: ::
cat <filename>.stanza | mkdef -z
#. Using ``tabedit`` to edit the ``nics`` database table directly
The ``tabedit`` command opens the specified xCAT database table in a ``vi`` like editor and allows the user to edit any text and write the changes back to the database table.
After changing the content of the ``nics`` table, here is the result from ``tabdump nics`` ::
# tabdump nics
#node,nicips,nichostnamesuffixes,nichostnameprefixes,nictypes,niccustomscripts,nicnetworks,nicaliases,nicextraparams,nicdevices,comments,disable
"cn1","br1!10.0.0.1,br2!20.0.0.1",,,"br1!bridge,eth2!ethernet,eth3!ethernet,bond0.2!vlan,bond0!bond,br2!bridge,bond0.1!vlan",,"br1!net10,br2!net20",,,"br1!bond0.1,bond0!eth2|eth3,bond0.2!bond0,bond0.1!bond0,br2!bond0.2",,
Add network object into the networks table
------------------------------------------
The ``nicnetworks`` attribute only defines the nic that uses the IP address.
Other information about the network should be defined in the ``networks`` table.
Use the ``chdef`` command to add/modify the networks in the ``networks`` table ::
chdef -t network net10 net=10.0.0.0 mask=255.0.0.0 mgtifname=eth0
chdef -t network net20 net=20.0.0.0 mask=255.0.0.0 mgtifname=eth1
Add ``confignetwork`` into the node's postscripts list
------------------------------------------------------
Using below command to add ``confignetwork`` into the node's postscripts list ::
chdef cn1 -p postscripts=confignetwork
During OS deployment on compute node, ``confignetwork`` will be run in postscript.
If the compute node has OS, use ``updatenode`` command to run ``confignetwork`` ::
updatenode cn1 -P confignetwork
Advanced Networking Configuration - confignetwork
=================================================
**Note:** ``confignetwork`` postscript is only supported on RHEL releases.
.. toctree::
:maxdepth: 2
.. include:: ../../../common/deployment/cfg_network_vlan.rst
.. include:: ../../../common/deployment/cfg_network_bond.rst

View File

@ -0,0 +1,58 @@
Configure Two Bonded Adapters
-----------------------------
The following example set the xCAT properties for compute node ``cn1`` to create:
* Compute node ``cn1`` has two physical NICs: eth2 and eth3
* Bond eth2 and eth3 as ``bond0``
* Assign ip ``40.0.0.1`` to the bonded interface ``bond0``
Define attributes in the ``nics`` table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Using the ``mkdef`` or ``chdef`` commands
a. Compute node ``cn1`` has two physical NICs: ``eth2`` and ``eth3`` ::
chdef cn1 nictypes.eth2=ethernet nictypes.eth3=ethernet
b. Define ``bond0`` and bond ``eth2`` and ``eth3`` as ``bond0`` ::
chdef cn1 nictypes.bond0=bond nicdevices.bond0="eth2|eth3"
chdef cn1 nicips.bond0=40.0.0.1
Add network object into the networks table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use the ``chdef`` command to add/modify the networks in the ``networks`` table ::
chdef -t network net40 net=40.0.0.0 mask=255.0.0.0
chdef cn1 nicnetworks.bond0=net40
Add ``confignetwork`` into the node's postscripts list
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use command below to add ``confignetwork`` into the node's postscripts list ::
chdef cn1 -p postscripts=confignetwork
During OS deployment on compute node, ``confignetwork`` postscript will be executed.
If the compute node is already running, use ``updatenode`` command to run ``confignetwork`` postscript without rebooting the node::
updatenode cn1 -P confignetwork
Verify bonding mode
~~~~~~~~~~~~~~~~~~~
Login to compute node cn1 and check bonding options in ``/etc/sysconfig/network-scripts/ifcfg-bond0`` file ::
BONDING_OPTS="mode=802.3ad xmit_hash_policy=layer2+3"
* ``mode=802.3ad`` requires additional configuration on the switch.
* ``mode=2`` can be used for bonding without additional switch configuration.
If changes are made to ``/etc/sysconfig/network-scripts/ifcfg-bond0`` file, restart network service.

View File

@ -0,0 +1,109 @@
Configure BOND, VLAN and BRIDGES
--------------------------------
The ``confignetwork`` postscript can be used to configure the network interfaces on the compute nodes to support VLAN, BONDs, and BRIDGES. In order for the ``confignetwork`` postscript to run successfully, the following attributes must be configured for the node in the ``nics`` table:
* ``nicips``
* ``nictypes``
* ``nicnetworks``
* ``nicdevices`` - resolves the relationship among the physical network interface devices
The following example set the xCAT properties for compute node ``cn1`` to achieve the following network configuration using the ``confignetwork`` postscript:
* Compute node ``cn1`` has two physical NICs: ``eth2`` and ``eth3``
* Bond ``eth2`` and ``eth3`` as ``bond0``
* From ``bond0``, create 2 VLANs: ``bond0.1`` and ``bond0.2``
* Make bridge ``br1`` using ``bond0.1`` with IP (10.0.0.1)
* Make bridge ``br2`` using ``bond0.2`` with IP (20.0.0.1)
Define attributes in the ``nics`` table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chose one of two methods described below:
#. Using the ``mkdef`` or ``chdef`` commands
a. Compute node ``cn1`` has two physical NICs: ``eth2`` and ``eth3`` ::
chdef cn1 nictypes.eth2=ethernet nictypes.eth3=ethernet
b. Define ``bond0`` and bond ``eth2`` and ``eth3`` as ``bond0`` ::
chdef cn1 nictypes.bond0=bond \
nicdevices.bond0="eth2|eth3"
c. From ``bond0``, create 2 VLANs: ``bond0.1`` and ``bond0.2`` ::
chdef cn1 nictypes.bond0.1=vlan \
nictypes.bond0.2=vlan \
nicdevices.bond0.1=bond0 \
nicdevices.bond0.2=bond0
d. Create bridge ``br1`` using ``bond0.1`` with IP (10.0.0.1) ::
chdef cn1 nictypes.br1=bridge \
nicdevices.br1=bond0.1 \
nicips.br1=10.0.0.1 \
nicnetworks.br1="net10"
e. Create bridge ``br2`` using ``bond0.2`` with IP (20.0.0.1) ::
chdef cn1 nictypes.br2=bridge \
nicdevices.br2=bond0.2 \
nicips.br2=20.0.0.1 \
nicnetworks.br2="net20"
#. Using an xCAT stanza file
- Prepare a stanza file ``<filename>.stanza`` with content similiar to the following: ::
# <xCAT data object stanza file>
cn1:
objtype=node
arch=x86_64
groups=kvm,vm,all
nicdevices.br1=bond0.1
nicdevices.br2=bond0.2
nicdevices.bond0.1=bond0
nicdevices.bond0.2=bond0
nicdevices.bond0=eth2|eth3
nictypes.eth2=ethernet
nictypes.eth3=ethernet
nictypes.bond0=bond
nictypes.bond0.1=vlan
nictypes.bond0.2=vlan
nictypes.br1=bridge
nictypes.br2=bridge
nicips.br1=10.0.0.1
nicips.br2=20.0.0.1
nicnetworks.br1=net10
nicnetworks.br2=net20
- Using the ``mkdef -z`` option, define the stanza file to xCAT: ::
cat <filename>.stanza | mkdef -z
Define the additional networks to xCAT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If this is a new network being created on the compute nodes, an entry needs to be created into the xCAT database.
The ``nicnetworks`` attribute only defines the nic that uses the IP address.
Other information about the network should be defined in the ``networks`` table.
Use the ``chdef`` command to add/modify the networks in the ``networks`` table ::
chdef -t network net10 net=10.0.0.0 mask=255.0.0.0
chdef -t network net20 net=20.0.0.0 mask=255.0.0.0
Add ``confignetwork`` into the node's postscripts list
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use the following command to add ``confignetwork`` into postscript list to execute on reboot: ::
chdef cn1 -p postscripts=confignetwork
If the compute node is already running, use ``updatenode`` command to run ``confignetwork`` postscript without rebooting the node::
updatenode cn1 -P confignetwork

View File

@ -1,5 +1,5 @@
Configure Additional Network Interfaces
=======================================
Configure Additional Network Interfaces - confignics
====================================================
The **nics** table and the **confignics** postscript can be used to automatically configure additional network interfaces (mutltiple ethernets adapters, InfiniBand, etc) on the nodes as they are being deployed.
@ -47,7 +47,7 @@ There are 3 ways to complete this operation.
The ``tabedit`` command opens the specified xCAT database table in a vi like editor and allows the user to edit any text and write the changes back to the database table.
*WARNING* Using the ``tabedit`` command is not the recommended method because it is tedious and error prone.
*WARNING:* Using the ``tabedit`` command is not the recommended method because it is tedious and error prone.
After changing the content of the ``nics`` table, here is the result from ``tabdump nics`` ::
@ -70,7 +70,7 @@ After you have defined the configuration information in any of the ways above, r
Add confignics into the node's postscripts list
-----------------------------------------------
Using below command to add confignics into the node's postscripts list ::
Use command below to add confignics into the node's postscripts list ::
chdef cn1 -p postscripts=confignics
@ -78,7 +78,7 @@ By default, confignics does not configure the install nic. if need, using flag "
chdef cn1 -p prostscripts="confignics -s"
Option "-s" write the install nic's information into configuration file for persistance. All install nic's data defined in nics table will be written also.
Option "-s" writes the install nic's information into configuration file for persistance. All install nic's data defined in nics table will be written also.
Add network object into the networks table
@ -103,6 +103,7 @@ Option -r to remove the undefined NICS
If the compute node's nics were configured by ``confignics`` and the nics configuration changed in the nics table, user the ``confignics -r`` to remove the undefined nic.
For example, if on a compute node the ``eth0``, ``eth1``, and ``eth2`` nics were configured: ::
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:14:5e:d9:6c:e6
...
@ -114,7 +115,7 @@ For example, if on a compute node the ``eth0``, ``eth1``, and ``eth2`` nics were
Delete the eth2 definition in nics table using the ``chdef`` command.
Then run the following to remove the undefined ``eth2`` nic on the compute node: ::
# updatenode <noderange> -P "confignics -r"
updatenode <noderange> -P "confignics -r"
The result should have ``eth2`` disabled: ::