Вычислительный узел не добавлен (привязан?) в ячейку 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
                                                                                                                                     
Модули с известными проблемами патча monkey eventlet были импортированы до патча monkey 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
Модули с известными проблемами патча monkey eventlet были импортированы до патча monkey 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 rows in set (0.00 sec)

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, необходимо рассмотреть несколько ключевых аспектов работы OpenStack Nova и порядок диагностики.

Ситуация

Ваша ситуация возникла после удаления сервиса nova-compute с помощью команды:

openstack compute service delete a04910ef-1441-4949-8ffb-6393c22141b2

После этого, при перезапуске службы nova-compute, узел не появился в списке гипервизоров командой openstack hypervisor list.

Анализ

1. Проверка статуса службы

В первую очередь стоит убедиться, что служба nova-compute на узле os-compute03.maas действительно запущена. Используйте следующую команду для проверки статуса:

sudo systemctl status nova-compute

Если служба не работает, это может быть причиной отсутствия узла в списках.

2. Логи службы

Изучите логи службы nova-compute, чтобы найти сообщения об ошибках или предупреждениях, которые могут указывать на проблему. Логи обычно находятся в /var/log/nova/. Ищите такие файлы, как nova-compute.log.

3. Проверка конфигурации

Убедитесь, что файл конфигурации nova.conf на узле содержит правильные параметры, включая:

  • transport_url: Настройка подключения к message broker (например, RabbitMQ).
  • my_ip: IP-адрес узла.
  • enabled_apis: Убедитесь, что API, которые вы собираетесь использовать, включены.

Пример:

[DEFAULT]
my_ip = 10.0.1.3
transport_url = rabbit://openstack:password@controller

4. Обнаружение и регистрация узлов

Почему узел os-compute03.maas не отображается в списке nova_api.host_mappings? Это происходит, когда nova-compute не может зарегистрировать свой узел. За это отвечает команда nova-manage cell_v2 discover_hosts. Вы уже запускали эту команду, однако она не нашла незарегистрированных хостов.

Попробуйте вызвать обнаружение хостов по следующей команде для принудительного добавления узлов:

sudo nova-manage cell_v2 discover_hosts --verbose --all

5. Проблемы с базой данных

Вы отметили, что в таблице nova.compute_nodes все еще присутствует запись для os-compute03.maas. Это может быть связано с тем, что записи в базе данных не обновляются:

  • Убедитесь, что таблицы в базе данных не повреждены.
  • Проверьте, есть ли в nova_api.host_mappings запись для os-compute03.maas. Если ее нет, то необходимо будет добавить ее вручную или попытаться перезапустить сервисы, чтобы они обнаружили узел.

Рекомендации

  1. Перезапустите все сервисы Nova:

    sudo systemctl restart nova-scheduler
    sudo systemctl restart nova-conductor
  2. Запустите процесс откат-проверки для всех гипервизоров:
    Рассмотрите возможность отключения и повторного включения nova-compute на проблемном узле:

    sudo systemctl stop nova-compute
    sudo systemctl start nova-compute
  3. Проверьте состояние всех связанных сервисов с помощью:

    openstack service list

Заключение

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

Это поможет вам поддерживать работоспособность вашего облачного решения и убедиться, что все узлы правильно зарегистрированы и функционируют.

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

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