[CentOS] Re: Problem with Bonding Driver

Fri Jul 11 19:06:53 UTC 2008
Art Age Software <artagesw at gmail.com>

Tim,

That works! I did not realize that the Red Hat network scripts have
support for bonding options. (I did not find this documented
anywhere.) But sure enough, I am able to set up a different primary
interface for each bond using this method.

Thanks so much!

Sam

>Hi,
>
>I configure bonding interfaces a bit differently.
>
>I put only this line into /etc/modprobe.conf :
>
>alias bond0 bonding
>
>And use this in /etc/sysconfig/network-scripts/ifcfg-bondX :
>
>DEVICE=bond0
>BOOTPROTO=none
>IPADDR=192.168.100.1
>NETMASK=255.255.0.0
>ONBOOT=yes
>BONDING_OPTS="miimon=100 mode=1 primary=eth0"
>
>I've got setup running like this in mode 1 (failover) and in mode 4
>(LACP). Unfortunately I don't have any systems with more then 1 bond
>and I don't have anything spare to set this up. But you can try your
>setup using this way to configure it, maybe that helps.
>
>Regards,
>Tim

On Tue, Jul 8, 2008 at 3:06 PM, Art Age Software <artagesw at gmail.com> wrote:
> So, has anybody on this list gotten the bonding driver working with
> more than a single bond and **different options** on the bonds in
> CentOS 3/4/5 (I'm using 5.2)?
>
> I am starting to believe that this is in fact a problem with Red Hat
> kernels. But if so, I am surprised that it has persisted so long
> without being addressed.
>
> Should I file a bug with Red Hat? It is possible for CentOS to fix
> kernel problems? Or must they always be fixed upstream?
>
> On Mon, Jul 7, 2008 at 12:00 AM, Art Age Software <artagesw at gmail.com> wrote:
>>>>Does the second bonding interface have no primary interface, then? What
>>>>exactly happens?
>>
>> Yes, exactly. The second bond comes up with no primary interface:
>>
>> # cat /proc/net/bonding/bond0
>> Bonding Mode: fault-tolerance (active-backup)
>> Primary Slave: eth0
>> Currently Active Slave: eth0
>> MII Status: up
>> MII Polling Interval (ms): 100
>> Up Delay (ms): 0
>> Down Delay (ms): 0
>>
>> # cat /proc/net/bonding/bond1
>> Bonding Mode: fault-tolerance (active-backup)
>> Primary Slave: None
>> Currently Active Slave: eth2
>> MII Status: up
>> MII Polling Interval (ms): 100
>> Up Delay (ms): 0
>> Down Delay (ms): 0
>>
>>
>> On Sat, Jul 5, 2008 at 9:45 AM, Art Age Software <artagesw at gmail.com> wrote:
>>>>>Hi,
>>>>>
>>>>>could you describe in more detail?
>>>>>What exactly is ignored? The options do not look much different.
>>>
>>> As I said, I am trying to set a different primary interface for each
>>> bond: eth0 for bond0, and eth2 for bond1.
>>>
>>>>>Did you try without renaming? I do not use it, but it works nonetheless:
>>>>>alias bond0 bonding
>>>>>options bond0 mode=2
>>>>>alias bond1 bonding
>>>>>options bond1 mode=2
>>>
>>> You are setting identical options for both bonds. This masks the fact
>>> that your second options line is ignored and essentially does nothing.
>>> Try changing an option on bond1 (eg. set a different mode or a
>>> different miimon value), and I think you will see that it is ignored.
>>>
>>> On Fri, Jul 4, 2008 at 1:11 PM, Art Age Software <artagesw at gmail.com> wrote:
>>>> Hi,
>>>>
>>>> I've using linux bonding in active-backup mode to combine two pairs of
>>>> GigE NICs (eth0/eth1, eth2/eth3) into two logical bonds (bond0/bond1).
>>>> All is working fine. However, I would like to specify a primary
>>>> interface for each bond. This means I need to specify different
>>>> options to the bonding module for each bond. I have tried every
>>>> conceivable incantation of options and cannot get the kernel to
>>>> recognize the second set of options.
>>>>
>>>> Initially, my modprobe.conf looked like this:
>>>>
>>>> alias bond0 bonding
>>>> alias bond1 bonding
>>>> options bonding mode=active-backup miimon=100 max_bonds=2
>>>>
>>>> What I am trying to achieve should be possible by changing
>>>> modprobe.conf to this:
>>>>
>>>> alias bond0 bonding
>>>> options bond0 -o bond0 miimon=100 mode=active-backup primary=eth0
>>>> alias bond1 bonding
>>>> options bond1 -o bond1 miimon=100 mode=active-backup primary=eth2
>>>>
>>>> But this results in fatal errors while bringing up the bonding interfaces.
>>>>
>>>> Changing to this eliminates the errors, but bond1 ignores the different options:
>>>>
>>>> alias bond0 bonding
>>>> options bond0 -o bond0 miimon=100 mode=active-backup primary=eth0 max_bonds=1
>>>> alias bond1 bonding
>>>> options bond1 -o bond1 miimon=100 mode=active-backup primary=eth2 max_bonds=1
>>>>
>>>> I have tried many other combinations as well:
>>>>
>>>> install bond1 /sbin/modprobe --ignore-install bonding -o bond1
>>>> mode=active-backup primary=eth2
>>>>
>>>> Nothing works.
>>>>
>>>> I also came across this note in the bonding docs:
>>>>
>>>> "NOTE: It has been observed that some Red Hat supplied kernels are
>>>> apparently unable to rename modules at load time (the "-o bond1"
>>>> part). Attempts to pass that option to modprobe will produce an
>>>> "Operation not permitted" error. This has been reported on some Fedora
>>>> Core kernels, and has been seen on RHEL 4 as well. On kernels
>>>> exhibiting this problem, it will be impossible to configure multiple
>>>> bonds with differing parameters."
>>>>
>>>> I have seen that error as well with certain combinations of options in
>>>> my modprobe.conf.
>>>>
>>>> Am I simply out of luck here? Does anyone know of a solution?
>>>>
>>>> Thanks.
>>>>
>>>
>>
>