Description of problem: According to https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.2/html/administration_guide/sect-hosts_and_networking#Bonding_Logic_in_Red_Hat_Enterprise_Virtualization we are supporting configuration based on bonds over: NIC + NIC NIC + Bond Bond + Bond But trying to deploy an host bond over bond+bond configuration: MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond0({'nics': ['bond1', 'bond2'], 'switch': 'legacy', 'options': 'miimon=100 mode=1'}) MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond1({'nics': ['p2p1', 'p2p2', 'p2p3', 'p2p4'], 'switch': 'legacy', 'options': 'miimon=100 mode=4'}) MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond2({'nics': ['p3p1', 'p3p2', 'p3p3', 'p3p4'], 'switch': 'legacy', 'options': 'miimon=100 mode=4'}) validate_network_setup in legacy_switch.py fails since no one of bond0 slaves ('bond1', 'bond2') are in set(netinfo_nics.nics()), the error is: MainProcess|jsonrpc/0::ERROR::2018-10-04 21:51:30,428::supervdsm_server::100::SuperVdsm.ServerCallback::(wrapper) Error in setupNetworks Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/vdsm/supervdsm_server.py", line 98, in wrapper res = func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/vdsm/network/api.py", line 210, in setupNetworks validator.validate(networks, bondings) File "/usr/lib/python2.7/site-packages/vdsm/network/validator.py", line 29, in validate netswitch.configurator.validate(networks, bondings) File "/usr/lib/python2.7/site-packages/vdsm/network/netswitch/configurator.py", line 127, in validate legacy_switch.validate_network_setup(legacy_nets, legacy_bonds) File "/usr/lib/python2.7/site-packages/vdsm/network/legacy_switch.py", line 598, in validate_network_setup 'Unknown nics in: %r' % list(nics)) ConfigNetworkError: (23, "Unknown nics in: ['bond1', 'bond2']") See: https://github.com/oVirt/vdsm/blob/ovirt-4.2/lib/vdsm/network/legacy_switch.py#L596 Please note that this piece of code is already different on the master branch: https://github.com/oVirt/vdsm/blob/master/lib/vdsm/network/legacy_switch.py#L578 Version-Release number of selected component (if applicable): 4.2.7 How reproducible: 100% Steps to Reproduce: 1. try deploy from the engine an host with a mode 1 bond over two mode 4 bonds. 2. 3. Actual results: MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond0({'nics': ['bond1', 'bond2'], 'switch': 'legacy', 'options': 'miimon=100 mode=1'}) MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond1({'nics': ['p2p1', 'p2p2', 'p2p3', 'p2p4'], 'switch': 'legacy', 'options': 'miimon=100 mode=4'}) MainProcess|jsonrpc/0::INFO::2018-10-04 21:51:30,291::netconfpersistence::68::root::(setBonding) Adding bond2({'nics': ['p3p1', 'p3p2', 'p3p3', 'p3p4'], 'switch': 'legacy', 'options': 'miimon=100 mode=4'}) ... MainProcess|jsonrpc/0::ERROR::2018-10-04 21:51:30,428::supervdsm_server::100::SuperVdsm.ServerCallback::(wrapper) Error in setupNetworks Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/vdsm/supervdsm_server.py", line 98, in wrapper res = func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/vdsm/network/api.py", line 210, in setupNetworks validator.validate(networks, bondings) File "/usr/lib/python2.7/site-packages/vdsm/network/validator.py", line 29, in validate netswitch.configurator.validate(networks, bondings) File "/usr/lib/python2.7/site-packages/vdsm/network/netswitch/configurator.py", line 127, in validate legacy_switch.validate_network_setup(legacy_nets, legacy_bonds) File "/usr/lib/python2.7/site-packages/vdsm/network/legacy_switch.py", line 598, in validate_network_setup 'Unknown nics in: %r' % list(nics)) ConfigNetworkError: (23, "Unknown nics in: ['bond1', 'bond2']") Expected results: Successful host deployment Additional info:
Bond + nic is probably going to fail as well.
We do not support and do not want to support (and there is no reason to support) bond over two bonds. The documentation refers only to the UI. The documentation should be clear about it. Please rename Table 6.6. Bonding Scenarios and Their Results to Bonding UI creation method
We're also hitting into this issue with a bond interface over vlan subinterfaces (which works fine otherwise). 2018-12-19 01:59:06,121Z ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.HostSetupNetworksVDSCommand] (EE-ManagedThreadFactory-engine-Thread-1) [77aa5e34] Error: VDSGenericException: VDSErrorException: Failed to HostSetupNetworksVDS, error = Unknown nics in: ['enp1s0f0.12', 'enp2s0.12'], code = 23 enp1s0f0.12 and enp2s0.12 are both enslaved to bond12, which is mode active-backup. It is set up this way as other vlans are using different bonding options.
(In reply to starfall from comment #5) > We're also hitting into this issue with a bond interface over vlan > subinterfaces (which works fine otherwise). > > > 2018-12-19 01:59:06,121Z ERROR > [org.ovirt.engine.core.vdsbroker.vdsbroker.HostSetupNetworksVDSCommand] > (EE-ManagedThreadFactory-engine-Thread-1) [77aa5e34] Error: > VDSGenericException: VDSErrorException: Failed to HostSetupNetworksVDS, > error = Unknown nics in: ['enp1s0f0.12', 'enp2s0.12'], code = 23 > > enp1s0f0.12 and enp2s0.12 are both enslaved to bond12, which is mode > active-backup. > > It is set up this way as other vlans are using different bonding options. Please note that this setup is not supported, but the hidden_vlans described in https://bugzilla.redhat.com/show_bug.cgi?id=1650650#c28 might help in your scenario.
Thanks for the pointers, but adding the vlan subinterfaces to hidden_vlans didn't help. VDSM is checking whether the interfaces enslaved to the bond are returned in nics(). The vlan subinterfaces are not returned in nics() whether they are added in hidden_vlans or not.
Published documents: https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3-beta/html-single/administration_guide/#sect-Network_Bonding https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3-beta/html-single/planning_and_prerequisites_guide/#networking-recommendations