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

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

Принцип работы функции сохранения и восстановления виртуальных машин#

При сохранении ВМ система записывает ее содержимое памяти и состояние на диске хоста и немедленно останавливает процесс работы ВМ. Можно сохранить ВМ, которая находится в запущенном или в приостановленном состоянии, и после восстановления она вернется в то же состояние.

Данный процесс освобождает ресурсы оперативной памяти и ЦП системы хоста в обмен на дисковое пространство, что может улучшить производительность системы. При восстановлении ВМ снижается время запуска, поскольку гостевая ОС не нуждается в загрузке.

Сохранить и восстановить ВМ можно с помощью интерфейса командной строки (см. раздел «Сохранение виртуальных машин через интерфейс командной строки»).

Сохранение виртуальных машин через интерфейс командной строки#

ВМ и ее текущее состояние можно сохранить на диске хоста. Например, когда необходимо использовать ресурсы хоста для каких-либо других задач. Затем сохраненную ВМ можно восстановить до ее предыдущего рабочего состояния.

Чтобы сохранить ВМ с помощью командной строки, выполните приведенный ниже сценарий с использованием команды virsh managedsave.

Перед остановкой ВМ убедитесь, что:

  • на диске достаточно места для сохранения ВМ и ее конфигурации.

    Примечание

    Пространство, занимаемое ВМ, зависит от выделенного ей объема оперативной памяти.

  • ВМ существует на хосте.

Опционально. При необходимости создайте резервную копию данных ВМ.

Для остановки ВМ и сохранения ее конфигурации используйте команду:

virsh managedsave <example-vm>

Где <example-vm> - имя ВМ.

В выводе команды будет содержаться информация, что данная ВМ сохранена:

Domain '<example-vm>' saved by libvirt

Сохраненный файл ВМ по умолчанию будет размещен в каталоге /var/lib/libvirt/qemu/save как <example-vm>.save. При следующем запуске ВМ автоматически восстановит сохраненное состояние из этого файла.

Для проверки выполните следующие шаги:

  1. Выведите список ВМ и их статусов с помощью команды:

    virsh list --managed-save --all
    
  2. Убедитесь, что в выводе команды сохраненная ранее ВМ отмечена как saved.

Пример возможного вывода команды virsh list --managed-save --all:

Id    Name                           State
----------------------------------------------------
-     <example-vm>                   saved
-     <example-vm-1>                 shut off

В примере выше ВМ <example-vm> находится в состоянии saved. Для ВМ, отмеченных в списке как saved, включено управляемое сохранение.

Примечание

Для вывода списка сохраненных ВМ, которые находятся в выключенном состоянии, используйте в команде опции --all или --inactive.

Устранение ошибок#

Для получения списка ВМ, содержащих управляемый образ для сохранения, используйте команду:

virsh list --with-managed-save --all

Пример вывода команды:

Id    Name                           State
----------------------------------------------------
-     <example-vm>                   shut off

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

Дополнительная информация может быть получена с помощью команды virsh managedsave --help.

Запуск виртуальных машин с помощью интерфейса командной строки#

С помощью командной строки можно как запустить выключенную ВМ, так и восстановить ее сохраненную. Существует возможность запускать и восстанавливать локальные и удаленные ВМ. Для запуска локальных и удаленных ВМ используется команда virsh start.

Перед запуском ВМ убедитесь, что:

  • существует созданная ранее неактивная ВМ.

  • известно ее имя.

  • для удаленной ВМ:

    • известен IP-адрес хоста, где расположена ВМ;

    • на хосте доступны полномочия администратора (например, root).

Для запуска ВМ можно использовать сценарии, приведенные ниже:

  • Для запуска локальной ВМ введите команду:

    virsh start <example-vm>
    

    Где <example-vm> - имя локальной ВМ.

    В выводе команды будет содержаться информация, что данная ВМ запущена:

    Domain '<example-vm>' started
    
  • Для запуска ВМ, расположенной на удаленном хосте, используйте команду virsh start вместе с подключением QEMU+SSH к хосту:

    virsh -c qemu+ssh://root@<IP_address>/system start <example-vm>
    

    Где <IP_address> - IP-адрес удаленного хоста.

    После ввода пароля и подключения к хосту в выводе команды будет содержаться информация о запуске ВМ:

    Domain '<example-vm>' started
    

Дополнительную информацию можно получить, выполнив команду virsh start --help.