GOAL: To allow the user to create a bonding to enslave two or more network interfaces together. Bonded interfaces can then be used for load balancing and fail-over. DESIGN CONSIDERATIONS: The two primary modes of operation are round-robin and failover. With round-robin you get a general load-balancing scheme between the enslaved interfaces. With failover, the primary interface is used until it fails, then the backup(s) are used. There also four other schemes that are more complex and not easily described. They include broadcasting all traffic on all interfaces (mode 4), or complex algorithms for load balancing, etc. We can either expose all of the modes with as simple a label as possible. Or we can expose just the primary feature name (Load Balanced, Failover, Broadcast) and then, at setup time, use modes 2, 1 and 3, respectively. Thoughts? -- Darryl L. Pierce, Sr. Software Engineer Red Hat, Inc. - http://www.redhat.com/ oVirt - Virtual Machine Management - http://www.ovirt.org/ "What do you care what other people think, Mr. Feynman?" -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 197 bytes Desc: not available URL: <http://listman.redhat.com/archives/ovirt-devel/attachments/20080904/ad352b96/attachment.sig>
Darryl L. Pierce wrote:> GOAL: > > To allow the user to create a bonding to enslave two or more network > interfaces together. Bonded interfaces can then be used for load balancing > and fail-over. > > DESIGN CONSIDERATIONS: > > The two primary modes of operation are round-robin and failover. With > round-robin you get a general load-balancing scheme between the enslaved > interfaces. With failover, the primary interface is used until it fails, then > the backup(s) are used.I think for now, if we concentrate on these two, that will cover the majority of cases, and we can add the more complex cases later. However, you have to be aware that there are multiple ways to set these up. I'm definitely not a bonding expert, but I do know that some types of setups (blades, for instance), cannot do the most efficient "ethtool" checking of path failover; they must use some kind of arp_interval ping to determine if the other path is still up. So you need to expose not only "Round-robin" and "failover", but you also need to expose which method the admin wants to use. Chris Lalancette
I would certainly suggest support for the Link Aggregation Control Protocal - LACP (which is mode 4 on the binding driver IIRC) for those cards and switches that support it. It makes the entire process completely automatic, very standard and link efficient. Only if that trunking fails (such as when there is no miimon or no LACP upstream switch) would I fall back to the more manual mechanisms. LACP is PXE for trunking and is supported on very cost effective switches. (HP 1800 8G for example). Regards Neil Wilson Brightbox systems