Аварийное восстановление виртуальных машин

Если возникают проблемы с загрузкой ВМ, можно перевести ее в режим аварийного восстановления для доступа к загрузочному тому. Когда ВМ в состоянии «Запущена» переводится в режим аварийного восстановления, сначала выполняется мягкая остановка. После того как ВМ перейдет в режим аварийного восстановления, к ней можно подключиться через SSH или консоль. Предыдущий загрузочный диск ВМ теперь присоединен как вторичный. Можно подключить этот диск и исправить на нем ошибки.

Ограничения

  • В режиме аварийного восстановления ISO-образы могут использоваться для загрузки виртуальных машин как Linux, так и Windows, а образы (шаблоны) QCOW2 — для загрузки ВМ Linux. Для инструкций о создании шаблонов см. раздел Подготовка шаблонов.
  • ВМ можно перевести в режим аварийного восстановления, только если ее текущее состояние «Запущена» или «Выключена».
  • Для ВМ в режиме аварийного восстановления доступны только три действия: Консоль, Выйти из режима восстановления и Удалить.
  • Если в образе для аварийного восстановления установлен пакет cloud-init, то к ВМ, загруженной из образа, можно будет получить доступ с помощью того же SSH-ключа, который использовался для ее создания.

Предварительные требования

Чтобы перевести виртуальную машину в режим аварийного восстановления

Панель администратора

  1. Перейдите на Вычисления > Виртуальные машины > вкладка Виртуальные машины. На вкладке Виртуальные машины щелкните по нужной ВМ в списке.
  2. На правой панели ВМ нажмите кнопку с многоточием на панели инструментов. Затем нажмите Войти в режим восстановления.
  3. В окне Войти в режим восстановления выберите образ для восстановления ВМ. По умолчанию выбран образ, который использовался для создания ВМ. Нажмите Войти.

Статус машины изменится на «Восстановление».

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute server rescue [--image <image>] <server>
<server>
Идентификатор или имя виртуальной машины
--image <image>
Загрузка из образа с указанным идентификатором или именем

Напрмир, чтобы перевести виртуальную машину myvm в режим аварийного восстановления с использованием образа cirros, выполните:

# vinfra service compute server rescue myvm --image cirros

Чтобы вернуть виртуальную машину в режим нормальной работы

Панель администратора

  1. Перейдите на Вычисления > Виртуальные машины > вкладка Виртуальные машины. На вкладке Виртуальные машины щелкните по нужной ВМ в списке.
  2. На правой панели ВМ нажмите Выйти из режима восстановления.
  3. В окне Выйти из режима восстановления нажмите Выйти. ВМ автоматически перезагрузится.

Статус ВМ сменится на «Запущена», и ВМ загрузится с исходного корневого диска.

Если при выходе из режима аварийного восстановления статус ВМ изменится на «Ошибка», его можно сбросить с помощью действия Сбросить состояние. После этого ВМ должна вернуться в состояние «Восстановление».

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute server unrescue <server>
<server>
Идентификатор или имя виртуальной машины

Например, чтобы вернуть виртуальную машину myvm в нормальные режим работы, выполните:

# vinfra service compute server unrescue myvm

Выход из режима аварийного восстановления для виртуальных машин Windows

При выходе ВМ Windows из режима аварийного восстановления может возникать проблема. Если в этом режиме установить статус «в сети» для исходного системного диска, то его идентификатор становится таким же, как идентификатор диска аварийного восстановления. После этого при попытке выйти из режима аварийного восстановления загрузчик не может найти правильный загрузочный диск. Чтобы разрешить конфликт идентификаторов, выполните следующие действия.

  1. Когда ВМ находится в режиме аварийного восстановления, откройте окно Управление дисками и запомните номер исходного системного диска (не в сети) и диска аварийного восстановления (в сети). Установите для исходного системного диска статус В сети.

  2. Чтобы изменить конфигурацию загрузки, введите следующую команду в окне Командная строка:

    > bcdedit /store <the original system disk name>:\boot\bcd
    
  3. Просмотрите выходные данные и убедитесь, что диск аварийного восстановления является целевым для объектов (partition=<the rescue disk name>).

    Если объекты не указывают на диск C, исправьте это следующими командами:

    > bcdedit /store <the original system disk name>:\boot\bcd \
    /set {default} osdevice partition=<the rescue disk name>:
    > bcdedit /store <the original system disk name>:\boot\bcd \
    /set {default} device partition=<the rescue disk name>:
    > bcdedit /store <the original system disk name>:\boot\bcd \
    /set {bootmgr} device partition=<the rescue disk name>:
    > bcdedit /store <the original system disk name>:\boot\bcd \
    /set {memdiag} device partition=<the rescue disk name>:
    
  4. Чтобы просмотреть доступные диски, введите в командной строке следующие команды:

    > DISKPART
    > LIST DISK
    

    Сопоставьте номер и имя диска с указанными в окне Управление дисками.

  5. Чтобы получить идентификатор диска аварийного восстановления, выполните следующие команды:

    > SELECT DISK <the rescue disk number>
    > UNIQUEID DISK
    

    Запишите идентификатор диска, он понадобится позже.

  6. Измените этот идентификатор с помощью следующей команды:

    > UNIQUEID DISK id=<any hex value of 8 characters>
    

    Убедитесь, что значение изменилось, с помощью команды UNIQUEID DISK.

  7. Назначьте исходному системному диску записанный ранее идентификатор.

    > SELECT DISK <the original system disk number>
    > UNIQUEID DISK id=<the recorded disk ID>
    

    Убедитесь, что значение изменилось, с помощью команды UNIQUEID DISK.

Теперь можно будет выйти из режима аварийного восстановления.

Как добавить драйверы дисков в среду восстановления Windows (Windows Recovery Environment)

Для отображения дисков виртуальной машины в среде восстановления Windows необходимо, чтобы в WIM-образе, используемом для загрузки среды восстановления, присутствовали необходимые драйверы. Эти драйверы расположены на диске A:, который подключен по умолчанию к виртуальным машинам с операционной системой Windows.

Например, чтобы добавить необходимые драйверы в WIM-образ среды восстановления Windows на рабочей виртуальной машине, выполните следующие действия:

  1. Запустите интерпретатор командной строки от имени администратора.

  2. Создайте папку, к которой будет подключен WIM-образ среды восстановления. Например:

    md C:\mount
  3. Подключите WIM-образ среды восстановления к созданной папке. Например:

    ReAgentC.exe /mountre /path c:\mount
  4. Добавьте необходимые драйверы в подключенный WIM-образ. Например:

    Dism /Image:C:\mount /Add-Driver /Driver:"A:\Drivers\NetKVM\w10\amd64\netkvm.inf"
    Dism /Image:C:\mount /Add-Driver /Driver:"A:\Drivers\vioscsi\w10\amd64\vioscsi.inf"
    Dism /Image:C:\mount /Add-Driver /Driver:"A:\Drivers\viostor\w10\amd64\viostor.inf"
  5. Сохраните изменения и отключите WIM-образ от папки. Например:

    ReAgentC.exe /unmountre /path c:\mount /commit

После загрузки среды восстановления Windows, использующей обновленный WIM-образ, будут отображаться диски виртуальной машины.