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

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

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

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

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

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

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

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

Чтобы сохранить ВМ с помощью командной строки, выполните приведенный ниже сценарий с использованием команды 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@hh.hh.hh.hh/system start <example-vm>
    

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

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

    Domain '<example-vm>' started
    

Дополнительная информация#

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