Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Ошибка перемещения хоста с отключенным IPv6 в кластер SDN

1. Описание проблемы

Если хост ранее был добавлен в кластер с типом коммутатора Мост (Linux Bridge) и в дальнейшем перемещен в кластер с типом коммутатора Open vSwitch, то может возникнуть ошибка синхронизации сетей хоста Failed to sync all host HostName networks, вместе с этой ошибкой регистрируется ошибка типа VDSM HostName command HostSetupNetworksVDS failed: Internal JSON-RPC error: {'reason': 'None'}.

В логе хоста /var/log/vdsm/vdsm.log возникают следующие ошибки:

ERROR (jsonrpc/31) [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 182, in _dynamicMethod
    result = fn(*methodArgs)
  File "</usr/lib/python3.6/site-packages/decorator.py:decorator-gen-506>", 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)
KeyError: None

В логе хоста /var/log/vdsm/supervdsm.log возникают следующие ошибки:

MainProcess|jsonrpc/31::ERROR::2025-01-13 16:20:02,436::supervdsm_server::82::SuperVdsm.ServerCallback::(wrapper) Error in setupNetworks
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/vdsm/supervdsm_server.py", line 80, in wrapper
    res = func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 191, in setupNetworks
    _change_switch_type(networks, bondings, options, running_config)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 231, in _change_switch_type
    _remove_nets_and_bonds(networks, bondings, in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 262, in _remove_nets_and_bonds
    nets_removal, bonds_removal, {'connectivityCheck': False}, in_rollback
  File "/usr/lib/python3.6/site-packages/vdsm/network/netswitch/configurator.py", line 53, in setup
    _setup_nmstate(networks, bondings, options, in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/netswitch/configurator.py", line 84, in _setup_nmstate
    nmstate.setup(desired_state, verify_change=not in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/nmstate/api.py", line 29, in setup
    state_apply(desired_state, verify_change=verify_change)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 87, in apply
    desired_state, ignored_ifnames, current_state, save_to_disk
  File "/usr/lib/python3.6/site-packages/libnmstate/net_state.py", line 72, in __init__
    self._ifaces.gen_dns_metadata(self._dns, self._route)
  File "/usr/lib/python3.6/site-packages/libnmstate/ifaces/ifaces.py", line 812, in gen_dns_metadata
    self._kernel_ifaces[iface_name].store_dns_metadata(dns_metadata)
KeyError: None

Данные ошибки приводят к невозможности модификации сетей хоста.

2. Причина проблемы

Проблема возникает в случае, если ранее для интерфейса ovirtmgmt был отключен IPv6.

3. Решение проблемы

Необходимо активировать IPv6 для интерфейса ovirtmgmt и заново синхронизировать сети:

  1. На хосте в командной строке выполнить команду:

    nmcli connection modify ovirtmgmt ipv6.method auto
  2. В интерфейсе Менеджера управления перейти в окно интерфейсов хоста (Ресурсы → Хосты → Имя хоста → Сетевые интерфейсы).

  3. Нажать кнопку Синхронизировать все сети.