Не загружается ВМ из-за проблем с файловой системой или загрузчиком
На виртуальной машине произошел сбой файловой системы или загрузчика, из-за чего не получается загрузить операционную систему и восстановить доступ к виртуальной машине обычными средствами.
Для решения таких проблем в OpenStack предусмотрен механизм rescue: ВМ временно загружается с дополнительного ISO-образа, при этом ее исходный root-диск остается подключенным, но не используется для загрузки. Это похоже на восстановление операционной системы на физическом сервере через загрузку с внешнего носителя.
После загрузки ВМ в rescue-режиме можно подключиться к ее консоли, выполнить восстановительные работы, а затем вернуть ВМ в обычный режим работы, после чего она снова загрузится с исходного root-диска.
-
Убедитесь, что ISO-образ для восстановления содержит драйверы VirtIO.
-
Добавьте ISO-образ в проект:
$ openstack image create --file <ФАЙЛ_ОБРАЗА>.iso --disk-format iso --container-format bare --min-ram 800 --property hw_rescue_device=cdrom <ИМЯ_ОБРАЗА>Здесь:
<ФАЙЛ_ОБРАЗА>— путь к загрузочному live-образу, например образу Ubuntu Server;<ИМЯ_ОБРАЗА>— имя, под которым образ будет добавлен в проект.
Пример команды:
$ openstack image create --file ubuntu-20.04.4-live-server-amd64.iso --disk-format iso --container-format bare --min-ram 800 --property hw_rescue_device=cdrom ubuntu-20.04.4-live-server-privateПример вывода:
+------------------+---------------------------------------------------------------+| Field | Value |+------------------+---------------------------------------------------------------+| container_format | bare || disk_format | iso || id | 81a6dd5a-ca84-4ab7-989d-8c36925584ef || min_ram | 800 || name | ubuntu-20.04.4-live-server-private || properties | hw_rescue_device='cdrom' || status | queued || visibility | shared |+------------------+---------------------------------------------------------------+ -
Загрузите ВМ в rescue-режиме с добавленного ISO-образа:
$ openstack server rescue --image <ИМЯ_ИЛИ_ID_ОБРАЗА> <ИМЯ_ИЛИ_ID_ВМ> -
Убедитесь, что ВМ перешла в rescue-режим:
$ openstack server show <ИМЯ_ИЛИ_ID_ВМ>В выводе команды параметр
OS-EXT-STS:vm_stateдолжен иметь значениеrescued, а параметрstatus— значениеRESCUE. -
Получите ссылку на консоль ВМ:
$ openstack console url show <ИМЯ_ИЛИ_ID_ВМ>Пример вывода:
+----------+--------------+| Field | Value |+----------+--------------+| protocol | vnc || type | novnc || url | <URL> |+----------+--------------+Также консоль ВМ доступна в личном кабинете.
-
Перейдите по полученной ссылке или откройте консоль ВМ в личном кабинете и выполните восстановительные работы.
-
Верните ВМ в обычный режим работы:
$ openstack server unrescue <ИМЯ_ИЛИ_ID_ВМ>ВМ перезапустится и снова загрузится с исходного root-диска.
-
Убедитесь, что ВМ вернулась в рабочее состояние:
$ openstack server show <ИМЯ_ИЛИ_ID_ВМ>В выводе команды параметр
statusдолжен иметь значениеACTIVE. После этого можно подключиться к ВМ по SSH. -
Если загрузочный ISO-образ больше не нужен, удалите его:
$ openstack image delete <ИМЯ_ИЛИ_ID_ОБРАЗА>