[CentOS] Re: Problem with Bonding Driver

Mon Jul 7 07:00:13 UTC 2008
Art Age Software <artagesw at gmail.com>

>>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.
>>
>