Вопрос или проблема
Я не знаю, как еще устранить эту проблему. Надеюсь, я смогу найти помощь.
Когда я удаляю вычислительный сервис с помощью: 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).
Шаги для диагностики и устранения проблемы
-
Проверка состояния службы
nova-compute
:- Убедитесь, что служба
nova-compute
работает правильно на узлеos-compute03.maas
. Вы можете сделать это с помощью команды:sudo systemctl status nova-compute
- Убедитесь, что служба
-
Логи:
- Ознакомьтесь с логами
nova-compute
, которые обычно находятся в/var/log/nova/
. Проверьте на наличие ошибок или предупреждений, связанных с регистрацией узла, например:sudo cat /var/log/nova/nova-compute.log
- Ознакомьтесь с логами
-
Проверка конфигурации Nova:
- Убедитесь, что в файле конфигурации Nova (
/etc/nova/nova.conf
) правильно указаны параметры дляcell_svcs
и другие настройки, связанные с ячейками. Обратите внимание на правильность значений, таких какtransport_url
,rpc_backend
, и пр.
- Убедитесь, что в файле конфигурации Nova (
-
Обновление маппинга узла:
- Узел, который не отображается в списке гипервизоров, может не быть корректно сопоставлен в базе данных. Для обновления сопоставлений используйте следующие команды:
sudo nova-manage cell_v2 discover_hosts --verbose sudo nova-manage cell_v2 list_hosts
- Если узел не будет обнаружен, выполните команду для принудительного добавления узла:
sudo nova-manage cell_v2 discover_hosts --expand
- Узел, который не отображается в списке гипервизоров, может не быть корректно сопоставлен в базе данных. Для обновления сопоставлений используйте следующие команды:
-
Проверка базы данных:
- Убедитесь, что таблицы
nova_api.host_mappings
иnova.compute_nodes
правильно обновлены. Ваша командаSELECT
уже подтвердила отсутствиеos-compute03.maas
вnova_api.host_mappings
. В такой ситуации узел действительно не будет отслеживаться системой.
- Убедитесь, что таблицы
-
Добавление узла вручную (при необходимости):
- Если узел по-прежнему отсутствует, вы можете попробовать добавить его вручную в таблицу
nova_api.host_mappings
, при правильном указанииcell_id
. Однако, будьте осторожны, поскольку это может вызвать другие проблемы, если автоматическое сопоставление не будет работать правильно.INSERT INTO nova_api.host_mappings (host, cell_id) VALUES ('os-compute03.maas', 'cell1_id');
- Если узел по-прежнему отсутствует, вы можете попробовать добавить его вручную в таблицу
-
Перезапуск компонентов Nova:
- Перезапустите компоненты Nova, чтобы гарантировать, что все изменения вступили в силу:
sudo systemctl restart nova-scheduler sudo systemctl restart nova-conductor sudo systemctl restart nova-compute
- Перезапустите компоненты Nova, чтобы гарантировать, что все изменения вступили в силу:
Заключение
Эти шаги должны помочь в устранении проблемы с узлом os-compute03.maas
и его отображением в списке гипервизоров. Если после выполнения всех действий проблема не будет решена, вам может потребоваться глубокий анализ логов и конфигураций. Возможные проблемы также могут быть связаны с правами доступа или параметрами сетевого соединения, которые следует внимательно проверить.