Openstack: вычислительный узел не добавлен (сопоставлен?) в ячейку nova (не указан как гипервизор)

Вопрос или проблема

Я не знаю, как еще устранить эту проблему. Надеюсь, я смогу найти помощь.

Когда я удаляю вычислительный сервис с помощью: openstack compute service delete a04910ef-1441-4949-8ffb-6393c22141b2, я могу перезапустить nova-compute на машине с помощью sudo systemctl restart nova-compute, чтобы вернуть сервис в openstack.

Однако, узел больше не отображается в openstack hypervisor list (os-compute03.maas в моем случае):

$ openstack compute service list --service nova-compute
+--------------------------------------+--------------+-------------------+------+----------+-------+----------------------------+
| ID                                   | Binary       | Host              | Zone | Status   | State | Updated At                 |
+--------------------------------------+--------------+-------------------+------+----------+-------+----------------------------+
| d1fadd40-6035-4f76-b8c1-5b981d003832 | nova-compute | os-compute08.maas | nova | disabled | down  | 2024-09-25T14:02:55.000000 |
| 7e02a0bd-0e53-45bc-9680-99a33d98c05b | nova-compute | os-compute04.maas | nova | enabled  | up    | 2024-10-18T11:43:12.000000 |
| 7f47d65e-b041-44dc-927e-085effdf0ec9 | nova-compute | os-compute09.maas | nova | enabled  | up    | 2024-10-18T11:43:07.000000 |
| 3a7527b3-3664-4ae1-ac90-ac04e835ee5b | nova-compute | os-compute03.maas | nova | enabled  | up    | 2024-10-18T11:43:13.000000 |
+--------------------------------------+--------------+-------------------+------+----------+-------+----------------------------+

$ openstack hypervisor list
+----+---------------------+-----------------+----------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP  | State |
+----+---------------------+-----------------+----------+-------+
|  1 | os-compute08.maas   | QEMU            | 10.0.1.8 | down  |
|  2 | os-compute04.maas   | QEMU            | 10.0.1.4 | up    |
|  3 | os-compute09.maas   | QEMU            | 10.0.1.9 | up    |
+----+---------------------+-----------------+----------+-------+

^ нет os-compute03.maas


$ sudo nova-manage cell_v2 list_hosts
                                                                                                                                     
Модули с известными проблемами патчинга eventlet были импортированы до патчинга eventlet: urllib3. Это предупреждение обычно можно игнорировать, если вызывающий только импортирует, а не выполняет код nova.
Устарело: Опция "logdir" из группы "DEFAULT" устарела. Используйте опцию "log-dir" из группы "DEFAULT".
+-----------+--------------------------------------+-------------------+
| Cell Name |              Cell UUID               |      Hostname     |
+-----------+--------------------------------------+-------------------+
|   cell1   | d3dfd353-b4ee-4293-b362-1e0175ebe337 | os-compute04.maas |
|   cell1   | d3dfd353-b4ee-4293-b362-1e0175ebe337 | os-compute08.maas |
|   cell1   | d3dfd353-b4ee-4293-b362-1e0175ebe337 | os-compute09.maas |
+-----------+--------------------------------------+-------------------+
$ sudo nova-manage cell_v2 discover_hosts --verbose
Модули с известными проблемами патчинга eventlet были импортированы до патчинга eventlet: urllib3. Это предупреждение обычно можно игнорировать, если вызывающий только импортирует, а не выполняет код nova.
Устарело: Опция "logdir" из группы "DEFAULT" устарела. Используйте опцию "log-dir" из группы "DEFAULT".
Найдено 2 отображения ячеек.
Пропускаем cell0, так как он не содержит узлов.
Получаем вычислительные узлы из ячейки 'cell1': d3dfd353-b4ee-4293-b362-1e0175ebe337
Найдено 0 неотображенных вычислительных узлов в ячейке: d3dfd353-b4ee-4293-b362-1e0175ebe337

Я также пытался перезапустить контроллер nova:

$ sudo systemctl restart nova-scheduler
$ sudo systemctl restart nova-conductor

При перезапуске контроллера nova журналы говорят следующее:

2024-10-18 11:53:44.939 630048 INFO nova.scheduler.host_manager [None req-eb8c8117-136c-4a13-ac57-d32d4099388a - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute09.maas'. Пересоздан его InstanceList.
2024-10-18 11:53:44.939 630046 INFO nova.scheduler.host_manager [None req-eb8c8117-136c-4a13-ac57-d32d4099388a - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute09.maas'. Пересоздан его InstanceList.
2024-10-18 11:53:44.940 630045 INFO nova.scheduler.host_manager [None req-eb8c8117-136c-4a13-ac57-d32d4099388a - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute09.maas'. Пересоздан его InstanceList.
2024-10-18 11:53:44.968 630047 INFO nova.scheduler.host_manager [None req-eb8c8117-136c-4a13-ac57-d32d4099388a - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute09.maas'. Пересоздан его InstanceList.
2024-10-18 11:54:02.539 630048 INFO nova.scheduler.host_manager [None req-ad410200-f99f-4dc7-896d-637dd9620568 - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute04.maas'. Пересоздан его InstanceList.
2024-10-18 11:54:02.541 630047 INFO nova.scheduler.host_manager [None req-ad410200-f99f-4dc7-896d-637dd9620568 - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute04.maas'. Пересоздан его InstanceList.
2024-10-18 11:54:02.542 630046 INFO nova.scheduler.host_manager [None req-ad410200-f99f-4dc7-896d-637dd9620568 - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute04.maas'. Пересоздан его InstanceList.
2024-10-18 11:54:02.543 630045 INFO nova.scheduler.host_manager [None req-ad410200-f99f-4dc7-896d-637dd9620568 - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute04.maas'. Пересоздан его InstanceList.
2024-10-18 11:55:06.432 630048 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Отображение узла не найдено для узла os-compute03.maas. Информация о экземплярах для этого узла не отслеживается.
2024-10-18 11:55:06.432 630048 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute03.maas'. Пересоздан его InstanceList.
2024-10-18 11:55:06.435 630047 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Отображение узла не найдено для узла os-compute03.maas. Информация о экземплярах для этого узла не отслеживается.
2024-10-18 11:55:06.435 630046 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Отображение узла не найдено для узла os-compute03.maas. Информация о экземплярах для этого узла не отслеживается.
2024-10-18 11:55:06.436 630045 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Отображение узла не найдено для узла os-compute03.maas. Информация о экземплярах для этого узла не отслеживается.
2024-10-18 11:55:06.436 630047 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute03.maas'. Пересоздан его InstanceList.
2024-10-18 11:55:06.437 630045 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute03.maas'. Пересоздан его InstanceList.
2024-10-18 11:55:06.436 630046 INFO nova.scheduler.host_manager [None req-53ac9845-afb5-48ec-b24f-344d2afcfc3f - - - - - -] Получен запрос синхронизации от неизвестного узла 'os-compute03.maas'. Пересоздан его InstanceList.

И в частности: Отображение узла не найдено для узла os-compute03.maas. Информация о экземплярах для этого узла не отслеживается. Я полагаю, что именно в этот момент узел должен быть добавлен в nova cell_v2? А этого действительно не происходит.


Я думаю, что следующие записи в базе данных касаются вычислительных узлов:

mysql> SELECT hypervisor_hostname, host_ip FROM nova.compute_nodes;
+---------------------+----------+
| hypervisor_hostname | host_ip  |
+---------------------+----------+
| os-compute08.maas   | 10.0.1.8 |
| os-compute04.maas   | 10.0.1.4 |
| os-compute09.maas   | 10.0.1.9 |
| os-compute03.maas   | 10.0.1.3 |
+---------------------+----------+
4 строки в наборе (0.00 сек)

os-compute03.maas на самом деле не отображается в таблице nova_api.host_mappings:

SELECT * FROM nova_api.host_mappings;
+---------------------+------------+----+---------+-------------------+
| created_at          | updated_at | id | cell_id | host              |
+---------------------+------------+----+---------+-------------------+
| 2024-07-02 21:23:10 | NULL       |  1 |       2 | os-compute08.maas |
| 2024-07-02 21:23:11 | NULL       |  2 |       2 | os-compute04.maas |
| 2024-07-02 21:23:11 | NULL       |  3 |       2 | os-compute09.maas |
+---------------------+------------+----+---------+-------------------+

Я не пытался вручную добавить узел в эту таблицу. Предполагаю, что это должно происходить автоматически, но когда? Что я упустил?

Как мы можем дальше отладить эту ситуацию?

Ответ или решение

Решение проблемы: Компьютерный узел не добавлен в ячейку Nova и не отображается в списке гипервизоров

В данной ситуации вы сталкиваетесь с проблемой, когда компьютерный узел (os-compute03.maas) не отображается в выводе команды openstack hypervisor list, даже несмотря на то, что он присутствует в таблице nova.compute_nodes. Это указывает на проблему с сопоставлением узла в системе OpenStack, чаще всего связанной с настройками ячеек (cells).

Шаги для диагностики и устранения проблемы

  1. Проверка состояния службы nova-compute:

    • Убедитесь, что служба nova-compute работает правильно на узле os-compute03.maas. Вы можете сделать это с помощью команды:
      sudo systemctl status nova-compute
  2. Логи:

    • Ознакомьтесь с логами nova-compute, которые обычно находятся в /var/log/nova/. Проверьте на наличие ошибок или предупреждений, связанных с регистрацией узла, например:
      sudo cat /var/log/nova/nova-compute.log
  3. Проверка конфигурации Nova:

    • Убедитесь, что в файле конфигурации Nova (/etc/nova/nova.conf) правильно указаны параметры для cell_svcs и другие настройки, связанные с ячейками. Обратите внимание на правильность значений, таких как transport_url, rpc_backend, и пр.
  4. Обновление маппинга узла:

    • Узел, который не отображается в списке гипервизоров, может не быть корректно сопоставлен в базе данных. Для обновления сопоставлений используйте следующие команды:
      sudo nova-manage cell_v2 discover_hosts --verbose
      sudo nova-manage cell_v2 list_hosts
    • Если узел не будет обнаружен, выполните команду для принудительного добавления узла:
      sudo nova-manage cell_v2 discover_hosts --expand
  5. Проверка базы данных:

    • Убедитесь, что таблицы nova_api.host_mappings и nova.compute_nodes правильно обновлены. Ваша команда SELECT уже подтвердила отсутствие os-compute03.maas в nova_api.host_mappings. В такой ситуации узел действительно не будет отслеживаться системой.
  6. Добавление узла вручную (при необходимости):

    • Если узел по-прежнему отсутствует, вы можете попробовать добавить его вручную в таблицу nova_api.host_mappings, при правильном указании cell_id. Однако, будьте осторожны, поскольку это может вызвать другие проблемы, если автоматическое сопоставление не будет работать правильно.
      INSERT INTO nova_api.host_mappings (host, cell_id) VALUES ('os-compute03.maas', 'cell1_id');
  7. Перезапуск компонентов Nova:

    • Перезапустите компоненты Nova, чтобы гарантировать, что все изменения вступили в силу:
      sudo systemctl restart nova-scheduler
      sudo systemctl restart nova-conductor
      sudo systemctl restart nova-compute

Заключение

Эти шаги должны помочь в устранении проблемы с узлом os-compute03.maas и его отображением в списке гипервизоров. Если после выполнения всех действий проблема не будет решена, вам может потребоваться глубокий анализ логов и конфигураций. Возможные проблемы также могут быть связаны с правами доступа или параметрами сетевого соединения, которые следует внимательно проверить.

Оцените материал
Добавить комментарий

Капча загружается...