|
|
|
|
|
 |
project |
|
![]() |
![]() |
|
![]() |
![]() |
![]() |
| downloads |
![]() |
![]() |
|
![]() |
![]() |
![]() |
| documentation |
![]() |
![]() |
|
![]() |
![]() |
![]() |
| work items |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
 |
![]() |
 | |
|
hide sidebar Network Bonding in OpenSSI.
-----------------------------
This document describes the current status of support for network
bonding in OpenSSI. It describes the steps required to get bonding
working. This process is currently manual requiring changes to the
ramdisk so that the bonding interface is associated with ICS.
More information on Network Bonding is available in the linux
source tree at:
Documentation/networking/bonding.txt
Note:
All steps outlined below need to hand-crafted right now. This is
a temporary solution before bonding is neatly integrated with SSI.
PART I: HAND-CODED SETUP
-------------------------
Steps 2-4 refer to changes inside the linuxrc. Following the instructions,
you will find a snipet of an example linuxrc. Have a look at it and make the
corresponding changes in your linuxrc.
1. Copy over bonding module and the ifenslave binary into the ramdisk
bonding.o
/sbin/ifenslave
2. Install the bonding module with the desired mode
For e.g.
insmod /lib/bonding.o mode=1 miimon=100
Possible values for mode are [from the bonding-howto]:
0 Round-robin policy: Transmit in a sequential order from the
first available slave through the last. This mode provides
load balancing and fault tolerance.
1 Active-backup policy: Only one slave in the bond is active. A
different slave becomes active if, and only if, the active slave
fails. The bond's MAC address is externally visible on only
one port (network adapter) to avoid confusing the switch.
This mode provides fault tolerance.
2 XOR policy: Transmit based on [(source MAC address XOR'd with
destination MAC address) modula slave count]. This selects the
same slave for each destination MAC address. This mode provides
load balancing and fault tolerance.
3 Broadcast policy: transmits everything on all slave interfaces.
This mode provides fault tolerance.
3. Configure the bonding interface using ifconfig.
4. Use ifenslave to enslave desired interfaces to the bonding interface.
Following is the relevant portion of an example linuxrc that has the
changes described above:
---<<snip>>>-------------------------------------------------------------------
for iface in `ifconfig -a | grep HWaddr|
sed 's/\(eth[0-9]*\).*HWaddr \(.*\)/\1-\2/'|sed 's/\(bond[0-9]*\).*HWaddr \(.*\)/\1-\2/'`
do
ifdev=`echo $iface | cut -f 1 -d -`
ifaddr=`echo $iface | cut -f 2 -d -`
echo
rec=`tail +2 /etc/boottab | grep $ifaddr`
if [ $? -eq 0 ]; then
ifdev=bond0
ifaddr=`echo $rec | cut -f 3 -d / | cut -f 1 -d:`
ifmask=`echo $rec | cut -f 3 -d / | cut -f 2 -d:`
echo "Configuring $ifdev: $ifaddr/$ifmask"
ifconfig $ifdev $ifaddr netmask $ifmask
nodenum=`echo $rec | cut -f 1 -d /`
if [ $nodenum -gt 0 ]
then
# set variables used for cluster IP address
dev=$ifdev
addr=$ifaddr:$ifmask
node=$nodenum
nicfound=1
fi
fi
done
/bin/ifenslave bond0 eth1
/bin/ifenslave bond0 eth2
-----<<snip>>-------------------------------------------------------------------
|