Forum Discussion

alazanowski's avatar
14 years ago

RHEL 5 /Netbackup 7/Nic Bonding question and issue

Hi Everyone, We normally have windows media servers, but in order to support a large system with an infiniband connection, we bought some new media servers and loaded them with red hat linux. Each of these systems has 4 - 1gb connections as well. Now in windows, we team our nics using the hp utility and the performance is handled appropriately by the media server. However, when i try to bond the nics in redhat, i get a ton of issues with backup failures. So here is some background Each media server has the following: 2, 4-core CPUs 16GB of ram Raid 1+0 600GB useable SAS15k drives 2, 8-gb fiber cards (to attach to LTO-5 library) 2, infiniband cards (to attach to a large datawarehouse) 4, gigabit ports redhat enterprise linux version 5 Gigabit ports are divided into the following: port 0, uses Cisco router A with Cisco switch A port 1, uses Cisco router B with Cisco switch B port 2, uses Cisco router A with Cisco switch A port 3, uses Cisco router B with Cisco switch B Each router is connected to each other via ISL so each system should be able to reach each path. I've attempted bonding with mode 0, mode 5, and mode 6 with no avail. When i combine all 4 nics, backups simply start, start writing, and then puke. If i did this under windows i've had no problem with this. Has anyone had this situation, or know how to correct the issue? Am i just screwed and have to use only 1 nic?

  • bonding on Linux work really great. But there are some pits you need to avoid.
    • A bond must go to the same switch (eg. port 0 & 2). If you connect to two switches you need to create two bond's.
    • The switch must have a channel defined or else the switch do not know to load balance.
    • Use LACP as bonding protocol (mode 4)
    This link may be of help "How to configure network bonding in Linux"

    I will meanwhile dig up a config of my own - I have two Red Hat's running with bonding enabled.

    Update:
    As promised, this setup is a bit different as bond0 carries subnet configured as VLAN's  via 802.1q (VLAN tagging). Hope you can use the info anyway.

    # more ifcfg-eth4
    # Intel Corporation 82571EB Gigabit Ethernet Controller (Copper)
    #HWADDR=00:1f:29:60:af:b7
    DEVICE=eth4
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:1f:29:60:af:b7
    TYPE=Ethernet
    ETHTOOL_OPTS="speed 1000 duplex full autoneg off"
    SLAVE=yes
    MASTER=bond0
    USERCTL=no

    # more ifcfg-eth5
    # Intel Corporation 82571EB Gigabit Ethernet Controller (Copper)
    #HWADDR=00:1f:29:60:af:b6
    DEVICE=eth5
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:1f:29:60:af:b6
    TYPE=Ethernet
    USERCTL=no
    MASTER=bond0
    SLAVE=yes
    ETHTOOL_OPTS="speed 1000 duplex full autoneg off"

    more ifcfg-bond0
    # Bond0 - no IP address configured, subnet configured as VLAN's.
    DEVICE=bond0
    TYPE=Bonding
    ONBOOT=yes
    BOOTPROTO=none
    USERCTL=no
    MII_NOT_SUPPORTED=yes

    # more ifcfg-bond0.3144 (VLAN number)
    DEVICE=bond0.3144
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR={xxx.yyy.zzz.aaa}
    NETMASK=255.255.255.0
    USERCTL=no
    VLAN=yes








3 Replies


  • bonding on Linux work really great. But there are some pits you need to avoid.
    • A bond must go to the same switch (eg. port 0 & 2). If you connect to two switches you need to create two bond's.
    • The switch must have a channel defined or else the switch do not know to load balance.
    • Use LACP as bonding protocol (mode 4)
    This link may be of help "How to configure network bonding in Linux"

    I will meanwhile dig up a config of my own - I have two Red Hat's running with bonding enabled.

    Update:
    As promised, this setup is a bit different as bond0 carries subnet configured as VLAN's  via 802.1q (VLAN tagging). Hope you can use the info anyway.

    # more ifcfg-eth4
    # Intel Corporation 82571EB Gigabit Ethernet Controller (Copper)
    #HWADDR=00:1f:29:60:af:b7
    DEVICE=eth4
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:1f:29:60:af:b7
    TYPE=Ethernet
    ETHTOOL_OPTS="speed 1000 duplex full autoneg off"
    SLAVE=yes
    MASTER=bond0
    USERCTL=no

    # more ifcfg-eth5
    # Intel Corporation 82571EB Gigabit Ethernet Controller (Copper)
    #HWADDR=00:1f:29:60:af:b6
    DEVICE=eth5
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=00:1f:29:60:af:b6
    TYPE=Ethernet
    USERCTL=no
    MASTER=bond0
    SLAVE=yes
    ETHTOOL_OPTS="speed 1000 duplex full autoneg off"

    more ifcfg-bond0
    # Bond0 - no IP address configured, subnet configured as VLAN's.
    DEVICE=bond0
    TYPE=Bonding
    ONBOOT=yes
    BOOTPROTO=none
    USERCTL=no
    MII_NOT_SUPPORTED=yes

    # more ifcfg-bond0.3144 (VLAN number)
    DEVICE=bond0.3144
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR={xxx.yyy.zzz.aaa}
    NETMASK=255.255.255.0
    USERCTL=no
    VLAN=yes









  • I want to thank you for your time, since cutting my bond back to the same switch it seems to be working just fine. So heres some questions that I have that you may be able to answer:

    1) Can i configure multiple bonds? I.E. bond0 and bond1, both containing the 2 nics that are plugged into the same switch? (group A and group B that is).
    2) If i can configure multiple bonds, how do you get netbackup to use either bond for connecting for backups? Can you use the same IP on both bonds and then it chooses which path to stick with?

    You rock man! i'll make sure to mark you as the solution when this is done.

  • 1: Yes you can. However if both bond's connect to the same subnet , it really don't make sense since the internal routing table of the host will use the first bond it find. If you plan to use two different subnet, it really a great thing to do. Just make sure you get name resolution in place and the server list right on the clients (the DNS name of each bond must be listed on the Netbackup client's server list).

    2: No you can't use the same IP. Access to client are controlled by the host's routing table (you can see it by typing "netstat -rvn"). Whenever a session is initiated the host investigate if it has a NIC in that network, if yes the host send the traffic to that NIC. If not the traffic is send to the default gateway.  Hope this explain the question :-)