Запуск виртуальных машин#

Для запуска ВМ можно использовать интерфейс командной строки (CLI), также есть возможность настроить автостарт ВМ при запуске хоста.

Запуск виртуальной машины из командной строки#

Из командной строки можно запустить остановленную ВМ или восстановить ВМ, сохраненную ранее; запускать как локальные, так и удаленные ВМ.

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

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

  • известно имя этой ВМ;

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

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

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

Ниже представлены сценарии запуска локальных и удаленных ВМ из командной строки:

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

    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>
    

    Команда запускает ВМ <example-vm> на хосте с IP-адресом <IP_address>. После ввода команда запросит пароль для подключения:

    root@<IP_address>'s password:
    

    А после выведет информацию о запуске ВМ:

    Domain '<example-vm>' started
    

Примечание

Подробнее про команду virsh start см. в разделе «Команда virsh start».

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

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

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

Примеры сценариев настройки автоматического запуска:

  • Для настройки автоматического запуска ВМ, воспользуйтесь командой virsh autostart:

    virsh autostart <example-vm>
    

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

    Domain '<example-vm>' marked as autostarted
    
  • При использовании сетевого интерфейса, которым не управляет libvirt, внесите изменения в конфигурацию systemd:

    1. В /etc/systemd/system/ создайте каталог virtqemud.service.d, если он не существует:

      mkdir -p /etc/systemd/system/virtqemud.service.d/
      
    2. Создайте файл 10-network-online.conf для переопределения юнита systemd в ранее созданном каталоге:

      touch /etc/systemd/system/virtqemud.service.d/10-network-online.conf
      

      Содержимое этого файла переопределяет конфигурацию systemd по умолчанию для сервиса virtqemud.

    3. Добавьте следующие строки в файл 10-network-online.conf. Данное изменение конфигурации гарантирует, что systemd запустит службу virtqemud только после того, как сеть на хосте будет готова:

      [Unit]
      After=network-online.target
      

      Внимание

      Если не выполнить пункты выше, ВМ могут не запуститься.

      Примечание

      К интерфейсам, не управляемым libvirt, относятся, например:

      • устройства связи, созданные NetworkManager;

      • сети, настроенные на использование режима переадресации forward mode='bridge'/.

Проверка#

  • Проверьте конфигурацию ВМ с помощью команды:

    virsh dominfo <example-vm>
    

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

    Id:             2
    Name:           <example-vm>
    UUID:           e46bc81c-74e2-406e-bd7a-67042bae80d1
    OS Type:        hvm
    State:          running
    CPU(s):         2
    CPU time:       385.9s
    Max memory:     4194304 KiB
    Used memory:    4194304 KiB
    Persistent:     yes
    Autostart:      enable
    Managed save:   no
    Security model: selinux
    Security DOI:   0
    Security label: system_u:system_r:svirt_t:s0:c873,c919 (enforcing)
    

    В выводе команды должна содержаться информация о включении опции автоматического запуска.

  • Если вы используете сетевые интерфейсы, которыми не управляет libvirt, проверьте файл 10-network-online.conf:

    cat /etc/systemd/system/virtqemud.service.d/10-network-online.conf
    

    Убедитесь, что содержимое файла 10-network-online.conf соответствует следующей записи:

    [Unit]
    After=network-online.target
    

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