Good morning all, I'm rather new to this so please forgive my ignorance. I've searched official Oracle documentation, the oVirt administration guide, reddit, LLMs, and about every other source I could find but haven't seen anything that allows me set up a bond successfully.
For background, I'm currently using one server as management and another server as a local storage host. I'm not smart enough yet to do network storage. I've tried to create a bond in two ways: the recommended way (in the administration guide, Oracle documentation, etc.) of simply creating a bond within OLVM by dragging/dropping interfaces to form a bond. Also, I've created a bond manually on my management server and verified it was present in the hosts -> network interfaces screen. When I attempt to assign a logical network to the bond, I get some variation of the following in /var/log/vdsm/vdsm.log: from=::ffff:10.90.104.68,37286, flow_id=6d139ffe-d9dc-4993-b050-72baa9eca527 (api:35) 2025-02-10 09:53:11,257-0600 ERROR (jsonrpc/1) [jsonrpc.JsonRpcServer] Internal server error (__init__:343) Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/yajsonrpc/__init__.py", line 338, in _handle_request res = method(**params) File "/usr/lib/python3.6/site-packages/vdsm/rpc/Bridge.py", line 186, in _dynamicMethod result = fn(*methodArgs) File "<decorator-gen-508>", line 2, in setupNetworks File "/usr/lib/python3.6/site-packages/vdsm/common/api.py", line 33, in method ret = func(*args, **kwargs) File "/usr/lib/python3.6/site-packages/vdsm/API.py", line 1576, in setupNetworks supervdsm.getProxy().setupNetworks(networks, bondings, options) File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 38, in __call__ return callMethod() File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 36, in <lambda> **kwargs) File "<string>", line 2, in setupNetworks File "/usr/lib64/python3.6/multiprocessing/managers.py", line 772, in _callmethod raise convert_to_error(kind, result) libnmstate.error.NmstateVerificationError: desired ======= --- name: bond0 type: bond state: up ipv4: enabled: false ipv6: enabled: false link-aggregation: mode: 802.3ad options: xmit_hash_policy: layer2+3 port: - eno5 - eno6 current ======= --- name: bond0 type: bond state: up ipv4: enabled: false ipv6: enabled: false lldp: enabled: false difference ========== --- desired +++ current @@ -6,10 +6,5 @@ enabled: false ipv6: enabled: false -link-aggregation: - mode: 802.3ad - options: - xmit_hash_policy: layer2+3 - port: - - eno5 - - eno6 +lldp: + enabled: false After some research, it seemed like the solution was to take the "desired" state and use nmstatectl apply filename.yaml to apply the desired state. However, doing so produces the following in the same log: 2025-02-10 10:04:51,577 root DEBUG Interface ethernet.eno7 found. Merging the interface information. 2025-02-10 10:04:51,577 root DEBUG Interface ethernet.eno8 found. Merging the interface information. 2025-02-10 10:04:51,605 root DEBUG Async action: Rollback to checkpoint /org/freedesktop/NetworkManager/Checkpoint/31 started 2025-02-10 10:04:51,607 root DEBUG Checkpoint /org/freedesktop/NetworkManager/Checkpoint/31 rollback executed 2025-02-10 10:04:51,607 root DEBUG Interface eno3 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface lo rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno2 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno8 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno6 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno5 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno7 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno4 rollback succeeded 2025-02-10 10:04:51,607 root DEBUG Interface eno1 rollback succeeded 2025-02-10 10:04:51,608 root DEBUG Interface PLZ-NET rollback succeeded 2025-02-10 10:04:51,608 root DEBUG Async action: Rollback to checkpoint /org/freedesktop/NetworkManager/Checkpoint/31 finished Traceback (most recent call last): File "/usr/bin/nmstatectl", line 11, in <module> load_entry_point('nmstate==1.4.6', 'console_scripts', 'nmstatectl')() File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 74, in main return args.func(args) File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 355, in apply args.save_to_disk, File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 419, in apply_state save_to_disk=save_to_disk, File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 140, in apply plugins, net_state, verify_change, save_to_disk, verify_retry File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 190, in _apply_ifaces_state _verify_change(plugins, net_state) File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 197, in _verify_change net_state.verify(current_state) File "/usr/lib/python3.6/site-packages/libnmstate/net_state.py", line 126, in verify self._verify_other_global_info(current_state) File "/usr/lib/python3.6/site-packages/libnmstate/net_state.py", line 136, in _verify_other_global_info {key: cur_value}, libnmstate.error.NmstateVerificationError: desired ======= --- name: PLZ-NET current ======= --- name: null difference ========== --- desired +++ current @@ -1,2 +1,2 @@ --- -name: PLZ-NET +name: null I have no issues using a single interface. I drop the logical network (PLZ-NET) onto the interface (e.g. eno2) and everything works swimmingly but bonding just won't work. If anyone has guidance or can point me to a solution, I would greatly appreciate it. I've been banging my head against the wall for a week. _______________________________________________ Users mailing list -- users@ovirt.org To unsubscribe send an email to users-le...@ovirt.org Privacy Statement: https://www.ovirt.org/privacy-policy.html oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/ List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/24BZ56WGF463UPZDT5CMT6MR2ZUOS35J/