----- Original Message ----- > From: "Mark Wu" <wu...@linux.vnet.ibm.com> > To: "Igor Lvovsky" <ilvov...@redhat.com> > Cc: "Antoni Segura Puimedon" <asegu...@redhat.com>, > vdsm-devel@lists.fedorahosted.org, "Dan Kenigsberg" > <dan...@redhat.com> > Sent: Wednesday, December 12, 2012 8:22:29 AM > Subject: Re: [vdsm] Fwd: Bonding, bridges and ifcfg > > On 12/12/2012 03:13 PM, Igor Lvovsky wrote: > > > > ----- Original Message ----- > >> From: "Antoni Segura Puimedon" <asegu...@redhat.com> > >> To: "Dan Kenigsberg" <dan...@redhat.com> > >> Cc: "Mark Wu" <wu...@linux.vnet.ibm.com>, > >> vdsm-devel@lists.fedorahosted.org, "Igor Lvovsky" > >> <ilvov...@redhat.com> > >> Sent: Wednesday, December 12, 2012 1:45:54 AM > >> Subject: Re: [vdsm] Fwd: Bonding, bridges and ifcfg > >> > >> > >> > >> ----- Original Message ----- > >>> From: "Dan Kenigsberg" <dan...@redhat.com> > >>> To: "Antoni Segura Puimedon" <asegu...@redhat.com> > >>> Cc: "Mark Wu" <wu...@linux.vnet.ibm.com>, > >>> vdsm-devel@lists.fedorahosted.org, "Igor Lvovsky" > >>> <ilvov...@redhat.com> > >>> Sent: Tuesday, December 11, 2012 10:38:45 PM > >>> Subject: Re: [vdsm] Fwd: Bonding, bridges and ifcfg > >>> > >>> On Tue, Dec 11, 2012 at 04:21:51PM -0500, Antoni Segura Puimedon > >>> wrote: > >>>> > >>>> ----- Original Message ----- > >>>>> From: "Dan Kenigsberg" <dan...@redhat.com> > >>>>> To: "Antoni Segura Puimedon" <asegu...@redhat.com>, "Igor > >>>>> Lvovsky" <ilvov...@redhat.com> > >>>>> Cc: "Mark Wu" <wu...@linux.vnet.ibm.com>, > >>>>> vdsm-devel@lists.fedorahosted.org > >>>>> Sent: Tuesday, December 11, 2012 7:44:05 PM > >>>>> Subject: Re: [vdsm] Fwd: Bonding, bridges and ifcfg > >>>>> > >>>>> On Tue, Dec 11, 2012 at 11:42:49AM -0500, Antoni Segura > >>>>> Puimedon > >>>>> wrote: > >>>>>> > >>>>>> ----- Original Message ----- > >>>>>>> From: "Mark Wu" <wu...@linux.vnet.ibm.com> > >>>>>>> To: "Antoni Segura Puimedon" <asegu...@redhat.com> > >>>>>>> Cc: vdsm-devel@lists.fedorahosted.org > >>>>>>> Sent: Tuesday, December 11, 2012 6:42:45 AM > >>>>>>> Subject: Re: [vdsm] Fwd: Bonding, bridges and ifcfg > >>>>>>> > >>>>>>> On 12/10/2012 08:24 PM, Antoni Segura Puimedon wrote: > >>>>>>>> Hello everybody, > >>>>>>>> > >>>>>>>> We found some unexpected behavior with bonds and we'd > >>>>>>>> like > >>>>>>>> to > >>>>>>>> discuss it. > >>>>>>>> Please, read the forwarded messages. > >>>>>>>> > >>>>>>>> Best, > >>>>>>>> > >>>>>>>> Toni > >>>>>>>> > >>>>>>>> ----- Forwarded Message ----- > >>>>>>>>> From: "Dan Kenigsberg" <dan...@redhat.com> > >>>>>>>>> To: "Antoni Segura Puimedon" <asegu...@redhat.com> > >>>>>>>>> Cc: "Livnat Peer" <lp...@redhat.com>, "Igor Lvovsky" > >>>>>>>>> <ilvov...@redhat.com> > >>>>>>>>> Sent: Monday, December 10, 2012 1:03:48 PM > >>>>>>>>> Subject: Re: Bonding, ifcfg and luck > >>>>>>>>> > >>>>>>>>> On Mon, Dec 10, 2012 at 06:47:58AM -0500, Antoni Segura > >>>>>>>>> Puimedon > >>>>>>>>> wrote: > >>>>>>>>>> Hi all, > >>>>>>>>>> > >>>>>>>>>> I discussed this briefly with Livnat over the phone and > >>>>>>>>>> mentioned > >>>>>>>>>> it to Dan. > >>>>>>>>>> The issue that we have is that, if I understand > >>>>>>>>>> correctly > >>>>>>>>>> our > >>>>>>>>>> current > >>>>>>>>>> configNetwork, it could very well be that it works by > >>>>>>>>>> means > >>>>>>>>>> of > >>>>>>>>>> good > >>>>>>>>>> design with > >>>>>>>>>> a side-dish of luck. > >>>>>>>>>> > >>>>>>>>>> I'll explain myself: > >>>>>>>>>> By design, as documented in > >>>>>>>>>> http://www.kernel.org/doc/Documentation/networking/bonding.txt: > >>>>>>>>>> "All slaves of bond0 have the same MAC address (HWaddr) > >>>>>>>>>> as > >>>>>>>>>> bond0 > >>>>>>>>>> for all modes > >>>>>>>>>> except TLB and ALB that require a unique MAC address > >>>>>>>>>> for > >>>>>>>>>> each > >>>>>>>>>> slave." > >>>>>>>>>> > >>>>>>>>>> Thus, all operations on the slave interfaces after they > >>>>>>>>>> are > >>>>>>>>>> added > >>>>>>>>>> to the bond > >>>>>>>>>> (except on TLB and ALB modes) that rely on ifcfg will > >>>>>>>>>> fail > >>>>>>>>>> with a > >>>>>>>>>> message like: > >>>>>>>>>> "Device eth3 has different MAC address than expected, > >>>>>>>>>> ignoring.", > >>>>>>>>>> and no > >>>>>>>>>> ifup/ifdown will be performed. > >>>>>>>>>> > >>>>>>>>>> Currently, we were not noticing this, because we were > >>>>>>>>>> ignoring > >>>>>>>>>> completely > >>>>>>>>>> errors in ifdown and ifup, but > >>>>>>>>>> http://gerrit.ovirt.org/#/c/8415/ > >>>>>>>>>> shed light on > >>>>>>>>>> the matter. As you can see in the following example > >>>>>>>>>> (bonding > >>>>>>>>>> mode > >>>>>>>>>> 4) the > >>>>>>>>>> behavior is just as documented: > >>>>>>>>>> > >>>>>>>>>> [root@rhel64 ~]# cat /sys/class/net/eth*/address > >>>>>>>>>> 52:54:00:a2:b4:50 > >>>>>>>>>> 52:54:00:3f:9b:28 > >>>>>>>>>> 52:54:00:51:50:49 > >>>>>>>>>> 52:54:00:ac:32:1b <----------------- > >>>>>>>>>> [root@rhel64 ~]# echo "+eth2" > > >>>>>>>>>> /sys/class/net/bond0/bonding/slaves > >>>>>>>>>> [root@rhel64 ~]# echo "+eth3" > > >>>>>>>>>> /sys/class/net/bond0/bonding/slaves > >>>>>>>>>> [root@rhel64 ~]# cat /sys/class/net/eth*/address > >>>>>>>>>> 52:54:00:a2:b4:50 > >>>>>>>>>> 52:54:00:3f:9b:28 > >>>>>>>>>> 52:54:00:51:50:49 > >>>>>>>>>> 52:54:00:51:50:49 <----------------- > >>>>>>>>>> [root@rhel64 ~]# echo "-eth3" > > >>>>>>>>>> /sys/class/net/bond0/bonding/slaves > >>>>>>>>>> [root@rhel64 ~]# cat /sys/class/net/eth*/address > >>>>>>>>>> 52:54:00:a2:b4:50 > >>>>>>>>>> 52:54:00:3f:9b:28 > >>>>>>>>>> 52:54:00:51:50:49 > >>>>>>>>>> 52:54:00:ac:32:1b <----------------- > >>>>>>>>>> > >>>>>>>>>> Obviously, this means that, for example, when we add a > >>>>>>>>>> bridge > >>>>>>>>>> on > >>>>>>>>>> top of a bond, > >>>>>>>>>> the ifdown, ifup of the bond slaves will be completely > >>>>>>>>>> fruitless > >>>>>>>>>> (although > >>>>>>>>>> luckily that doesn't prevent them from working). > >>>>>>>>> Sorry, thi is not obvious to me. > >>>>>>>>> When we change something in a nic, we first take it down > >>>>>>>>> (which > >>>>>>>>> break > >>>>>>>>> it > >>>>>>>>> away from the bond), change it, and then take it up > >>>>>>>>> again > >>>>>>>>> (and > >>>>>>>>> back > >>>>>>>>> to > >>>>>>>>> the bond). > >>>>>>>>> > >>>>>>>>> I did not understand which flow of configuration leads > >>>>>>>>> us > >>>>>>>>> to > >>>>>>>>> the > >>>>>>>>> "unexpected mac" error. I hope that we can circumvent > >>>>>>>>> it. > >>>>>>> I get the same question. The warning message should be > >>>>>>> only > >>>>>>> seen > >>>>>>> when > >>>>>>> you run ifup on bonding or its slave, which is already up, > >>>>>>> otherwise > >>>>>>> the slave nic's mac address should hold its own permanent > >>>>>>> mac > >>>>>>> address. > >>>>>>> If the bonding is down before, you shouldn't see this > >>>>>>> message > >>>>>>> because the nic is not enslaved. > >>>>>> It's easy enough to reproduce. To the current HEAD do: > >>>>>> > >>>>>> vdsClient 0 addNetwork bridge=kaboom bonding=bond0 > >>>>>> nics=eth1,eth2 > >>>>>> bridged=True > >>>>>> > >>>>>> Go to /var/log/vdsm/vdsm.log and you'll see that: > >>>>>> http://pastebin.com/09eRNzv6 > >>>>>> > >>>>>> On line 33 you'll see that the ifup of eth2 is FAILED. > >>>>> Ok, I think this is a bug in the sequence of our ifup'ing. > >>>>> Reviewing > >>>>> ifup-eth I see that in its "if bonding device" stanza there's > >>>>> > >>>>> if [ "$ISALIAS" = no ] && is_bonding_device ${DEVICE} ; then > >>>>> ... > >>>>> for device in $(LANG=C egrep -l > >>>>> "^[[:space:]]*MASTER=\"?${DEVICE}\"?[[:space:]]*$" > >>>>> /etc/sysconfig/network-scripts/ifcfg-*) ; do > >>>>> is_ignored_file "$device" && continue > >>>>> /sbin/ifup ${device##*/} > >>>>> ... > >>>>> > >>>>> meaning that if we prepare ifcfg-eth* files on time, the > >>>>> interfaces > >>>>> would be > >>>>> brought up by means of `ifup bond??`; and it seems that there > >>>>> is > >>>>> no > >>>>> need > >>>>> for a specific `ifup eth0` at all. > >>>> Yes this is the same conclusion I arrived when I looked at it > >>>> earlier, > >>>> Basically on bonding case we can just not do the ifups of the > >>>> underlying > >>>> devices. > >>> s/we can/we should/ . > >>> And it would also save us some wasted time. > >> Agreed! > > what about ifdown? Did you look at it? > > Is it redundant to ifdown NICs too if we ifdown bond? > Yes, the same as ifup: > > if is_bonding_device ${DEVICE} ; then > for device in $(LANG=C egrep -l > "^[[:space:]]*MASTER=\"?${DEVICE}\"?" > /etc/sysconfig/network-scripts/ifcfg-*) ; do > is_ignored_file "$device" && continue > /sbin/ifdown ${device##*/} > done > > > > >
I wonder if in F18 we are going to get bitten by NetworkManager with the mac address change. I will put on my TODO list to check that it doesn't regain control over the interface and if, submit a bug for it. _______________________________________________ vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel