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

Для создания ВМ используется утилита virt-install.

Предварительные условия#

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

  • Виртуализация поддерживается на хосте.

  • ОС располагает достаточным количеством ресурсов для новой ВМ.

    К числу таких ресурсов относятся:

    • дисковое пространство;

    • оперативная память;

    • центральные процессоры.

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

  • Источник инсталляции гостевой операционной системы (далее – ОС) доступен локально или через сеть.

    Возможны следующие варианты:

    • ISO-образ на установочном носителе;

    • образ диска существующей ВМ.

    Внимание

    Инсталляция с использованием CD/DVD, установленного на хосте, не поддерживается. Если при установке гостевой ОС в качестве источника будет выбран CD/DVD, инсталляция завершится с ошибкой.

    Обратите внимание, что Platform V SberLinux OS Server поддерживает определенный набор гостевых ОС.

  • Необязательно: для ускорения и упрощения конфигурирования процесса инсталляции используйте Kickstart.

Примечание

Гостевая ОС – это ОС, установленная на ВМ.

Сценарии использования#

Чтобы создать ВМ и начать процесс установки гостевой ОС, используйте команду virt-install, применив следующие обязательные параметры:

  • --name – имя новой машины;

  • --memory – объем выделенной оперативной памяти;

  • --vcpus – число выделенных виртуальных процессоров;

  • --disk – тип и размер выделенного дискового хранилища;

  • --cdrom или --location – тип и размещение источника инсталляции гостевой ОС.

Примечание

В зависимости от выбранного метода инсталляции необходимые параметры и их значения могут различаться.

Ниже представлены сценарии создания ВМ в различных конфигурациях:

  • Сценарий 1: создание ВМ с именем <example-vm>, на которую инсталлируется ОС <os> с ISO-образа, хранящегося в локальном файле /home/username/Downloads/<os>.iso. ВМ в данном сценарии выделяется 2048 Мбайт оперативной памяти, 2 виртуальных процессора и виртуальный диск 80 Гбайт в формате qcow2, который будет автоматически сконфигурирован для ВМ:

    virt-install \
     --name <example-vm> --memory 2048 \
     --vcpus 2 --disk size=80 --os-variant <os-variant> \
     --cdrom /home/username/Downloads/<os>.iso
    

    Где <os-variant> - вариант оптимизации ОС из списка допустимых вариантов virt-install (например, rhel9.0, win10). Определяется автоматически, но автоматическое определение может быть отключено. В сценарии выше указывается вручную.

  • Сценарий 2: создание ВМ с именем <example-vm>, которая использует образ /home/username/Downloads/<os>.iso для запуска <os> с live CD. Данной ВМ дисковое пространство не назначено, поэтому изменения, внесенные во время сеанса, не будут сохранены. Также ВМ выделяется 4096 МБайт оперативной памяти и 4 виртуальных процессора:

    virt-install \
    --name <example-vm> --memory 4096 --vcpus 4 \
    --disk none --livecd --os-variant <os-variant> \
    --cdrom /home/username/Downloads/<os>.iso
    
  • Сценарий 3: создание ВМ <os> с именем <example-vm>, которая подключается к существующему образу диска, /home/username/backup/<disk>.qcow2. Сценарий схож с физическим перемещением жесткого диска между машинами, поэтому ОС и данные, доступные для <example-vm>, определяются тем, как образ обрабатывался ранее. ВМ выделяется 2048 МБайт оперативной памяти и 2 виртуальных процессора:

    virt-install \
    --name <example-vm> --memory 2048 --vcpus 2 \
    --os-variant <os-variant> --import \
    --disk /home/username/backup/<disk>.qcow2
    

    Внимание

    Обратите внимание, что опция --os-variant настоятельно рекомендуется при импорте образа диска. Если опция будет опущена, это негативно скажется на производительности созданной ВМ.

  • Сценарий 4: создание ВМ с именем <example-vm>, которая устанавливается с URL-адреса http:/<example-url>.ru/<OS-install>. Чтобы установка началась успешно, URL-адрес должен содержать рабочее дерево установки ОС. Кроме того, ОС автоматически настраивается с помощью kickstart-файла /home/<username>/ks.cfg. ВМ в этом сценарии выделяется 2048 МБайт оперативной памяти, 2 виртуальных процессора и виртуальный диск qcow2 на 160 ГБайт:

    virt-install \
    --name <example-vm> --memory 2048 --vcpus 2 --disk size=160 \
    --os-variant <os-variant> --location http:/<example-url>.ru/<OS-install> \
    --initrd-inject /home/<username>/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
    
  • Сценарий 5: создание ВМ с именем <example-vm>, которая устанавливается из файла образа <os>.iso в текстовом режиме без графики. Процесс подключает гостевую консоль к последовательной консоли. ВМ выделяется 16384 МБайт памяти, 16 виртуальных процессоров и диск 280 ГБайт:

    virt-install \
    --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \
    --os-variant <os-variant> --location <os>.iso \
    --graphics none --extra-args='console=ttyS0'
    

    Примечание

    Данный вид установки полезен при подключении к хосту при медленном сетевом соединении.

  • Сценарий 6: создание ВМ с именем <example-vm> и конфигурацией из сценария 5, но находящейся на удаленном хосте с адресом hh.hh.hh.hh:

    virt-install \
    --connect qemu+ssh://root@hh.hh.hh.hh/system --name <example-vm> --memory 16384 \
    --vcpus 16 --disk size=280 --os-variant <os-variant> --location <os>.iso \
    --graphics none --extra-args='console=ttyS0'
    
  • Сценарий 7: создание ВМ с именем <example-vm> и конфигурацией из сценария 5, но использующей для своего хранения устройство, поддерживающее DASD (Direct Access Storage Device - накопители на жестких магнитных дисках), <mdev_id> и присваивание этому устройству номер 1111.

    virt-install \
    --name <example-vm> --memory 16384 --vcpus 16 --disk size=280 \
    --os-variant <os-variant> --location <os>.iso --graphics none \
    --disk none --hostdev <mdev_id>,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \
    --extra-args 'rd.dasd=0.0.1111'
    

    Обратите внимание, что имя устройства доступного для установки, можно получить с помощью команды virsh nodedev-list --cap mdev.

Проверка#

Если ВМ создана успешно, открывается окно virt-viewer с графической консолью ВМ, и начинается установка гостевой ОС.

Решение возникших проблем#

Если выполнение команды virt-install завершится с ошибкой cannot find default network, то:

  • убедитесь, что установлен пакет libvirt-daemon-config-network:

    dnf info libvirt-daemon-config-network
    Installed Packages
    Name         : libvirt-daemon-config-network
    [...]
    
  • проверьте, что сеть, установленная по умолчанию для libvirt, активна и сконфигурирована так, чтобы запускаться автоматически:

    virsh net-list --all
    

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

    Name      State    Autostart   Persistent
    --------------------------------------------
     default   active   yes         yes
    

    Если сеть неактивна или сконфигурирована неверно, активируйте сеть по умолчанию и установите для нее автоматический запуск:

    virsh net-autostart default
    

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

    Network default marked as autostarted
    
    virsh net-start default
    

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

    Network default started
    
    • Если при активации сети по умолчанию появляются сообщения об ошибках вида:

      error: failed to get network 'default'
      error: Network not found: no network with matching name 'default'
      

      Переустановите libvirt-daemon-config-network:

      dnf reinstall libvirt-daemon-config-network
      
    • Если активация сети по умолчанию завершается с ошибками:

      error: Failed to start network default
      error: internal error: Network is already in use by interface ens2
      

      То существует конфликт между подсетью сети по умолчанию и существующим интерфейсом на хосте. Чтобы решить эту проблему, примените команду virsh net-edit default и измените значение адреса подсети в конфигурации на такое, которое не используется на хосте.