4.3. Подготовка виртуальной машины

Все действия по созданию и настройке ВМ, а также настройка гостевой ОС (Раздел 4.3.3) осуществляются в среде виртуализации libvirt.

4.3.1. Создание ВМ

По завершении предыдущего (подготовительного) этапа имеем исходный файл образа диска, пригодный для подготовки к интеграции в облачную инфраструктуру «TIONIX»:

файл <целевой_образ>_qcow2.img
или
файл <целевой_образ>.qcow2.

В целевой среде виртуализации должно быть установлено ПО гипервизора (libvirt/KVM), а на АРМ администратора запущено приложение virt-manager и установлено подключение к гипервизору.

../_images/08-MIG.png

Рис. 4.8 Подключение к удаленному гипервизору (QEMU/KVM)

Libvirt URI (Рис. 4.8) – основная настройка соединения с (удаленным) гипервизором.

Примечания.

Потребуется предварительно настроенный гипервизор (KVM), способный запускать виртуальные машины в процессорной архитектуре x86-64.

Рекомендуется при создании ВМ для работы с гостевой ОС использовать чипсет q35 (семейство параметров pc-q35), содержащей конфигурацию ЭВМ с шиной PCIe.

Используемое ПО (libvirt) должно иметь встроенную поддержку образа ВМ с гостевой ОС Windows 10 (допускается использование шаблонных параметров для Windows 8.1).

После того, как выполнены все оргмероприятия, предоставляющие доступ к удаленному гипервизору, в virt-manager выполняются следующие действия (по шагам):

  • выбирается метод установки (гостевой) операционной системы;
  • указывается подготовленный заранее образ виртуального диска;
  • настраивается использование вычислительных ресурсов, выделяемых для ВМ;
  • контрольные действия (перед созданием ВМ).

Представленное ниже описание приведено для гостевой ОС Windows. Для гостевых ОС Linux инструкции к выполнению необходимых действий вынесены в Приложения (Раздел 4.7, Раздел 4.8).

4.3.1.1. ШАГ 1

Выбрать метод установки операционной системы – «Импорт образа диска» (Рис. 4.9).

../_images/09-MIG.png

Рис. 4.9 Выбор метода установки ОС (импорт образа диска)

Если мастер создания ВМ предлагает выбрать процессорную архитектуру (Architecture options), то следует указать х86_64, как показано на Рис. 4.10.

../_images/10-MIG.png

Рис. 4.10 Выбор процессорной архитектуры гостевой ОС

4.3.1.2. ШАГ 2

Указать подготовленный заранее образ (виртуального диска).

Внимание. Образ диска после конвертации должен быть представлен в сжатом формате (qcow2).

Тип и версия ОС (Windows, Linux) должны быть максимально близкими или точно соответствовать исходной гостевой ОС, которая хранится в образе.

Подробные инструкции по подготовке гостевой ОС CentOS 7 Linux к загрузке в libvirt, а также по подготовке гостевой ОС Ubuntu 16.04 вынесены в Приложения (см. в конце документа).

Между этими дистрибутивами – CentOS и Ubuntu – существуют различия в использовании версий ядра Linux (3.x и 4.x) и способе загрузки служб (инициализации системы). Кроме того, имеются и концептуальные различия в организации графического интерфейса пользователя Рабочего стола.

4.3.1.3. ШАГ 3

Настроить объем памяти (ОЗУ) и количество процессоров для ВМ. Настройка должна быть выполнена в соответствии с параметрами, зафиксированными перед сохранением (выгрузкой) образов ВМ исходной инфраструктуры (VMware или HyperV).

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

4.3.1.4. ШАГ 4

Выполнить контрольные действия в Мастере создания ВМ (Рис. 4.11):

  1. Указать название ВМ;
  2. Включить флаг «Проверить конфигурацию перед установкой»;
  3. Выбрать сеть (NAT).
../_images/11-MIG.png

Рис. 4.11 Создание виртуальной машины и выбор сети

Далее потребуется замена стандартных драйверов, настроенных для ВМ и обеспечивающих первичную загрузку и функционирование гостевой ОС, на паравиртуализированные драйверы virtio-win (так называемая VirtIO-поддержка для Windows).

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

Рекомендуется сохранить локальную резервную копию образа диска.

По умолчанию образы дисков виртуальных машин сохраняются в директории /var/lib/libvirt/images того хоста виртуализации (вычислительной ноды), в котором функционирует гипервизор.

Фактическую настройку пула (default), используемого для хранения (расположение), можно уточнить из virt-manager (Рис. 4.12):

../_images/12-MIG.png

Рис. 4.12 Настройка пула default

4.3.2. Настройка ВМ для работы с VirtIO-поддержкой

Внимание. Из гостевой ОС должна быть удалена поддержка исходной системы виртуализации пакет ПО VMWare Tools (см. Приложение 1).

Для настройки VirtIO-поддержки созданной ВМ потребуются драйверы паравиртуализации для гостевых ОС Windows VirtIO Win. Эти драйверы могут быть скачаны в виде единого носителя (в формате ISO). Для скачивания стабильной версии следует перейти по ссылке.

4.3.2.1. Драйверы паравиртуализации

В составе единого носителя доступны: блочный драйвер, дисковый драйвер, драйвер балунинга (контроллера памяти), драйвер последовательного порта, сетевой драйвер (для NIC-устройства), имеющие собственные названия:

  • Virtio-SCSI – блочный драйвер для KVM;
  • Viostor – дисковый драйвер Virtio;
  • Balloon – драйвер балунинга (PCI standard RAM Controller);
  • Vioserial – драйвер последовательного порта (PCI Simple Communication Controller);
  • NetKVM – сетевой драйвер Virtio.

Установка каждого из вышеперечисленных драйверов выполняется в гостевой ОС, из Диспетчера устройств (Windows Device Manager).

Обычно требуется указание пути к папке с драйвером, либо полного пути к inf-файлу. Однако, большинство современных настольных ОС Windows позволяют отыскать подходящие файлы автоматически.

ВАЖНО! Рекомендуется удалить сетевой интерфейс (NAT), чтобы гостевая ОС (Windows) не производила автоматическое обновление системы, до окончания установки VirtIO-драйверов.

4.3.2.2. Перечень INF-файлов, содержащих сведения об установке

  • Virtio-SCSI<virtio-win-version>\vioscsi\<WinVer>\<arch>\vioscsi.inf;
  • Viostor<virtio-win-version>\viostor\<WinVer>\<arch>\viostor.inf;
  • Vioserial<virtio-win-version>\vioser\<WinVer>\<arch>\vioser.inf;
  • Balloon<virtio-win-version>\Balloon\<WinVer>\<arch>\balloon.inf;
  • NetKVM<virtio-win-version>\NetKVM\<WinVer>\<arch>\netkvm.inf.

Условные обозначения:

<virtio-win-version> – полный путь к директории с драйверами поддержки устройства, содержащий логическое имя диска с подключенным ISO-носителем (D:);

<arch> – процессорная архитектура, в которой может выполняться машинный код драйвера (x86 = 32-bit Intel, amd64 = 64-bit Intel; некоторые имеют ARM64-исполнение);

<WinVer> – версия операционной системы (w10 = Windows 10 и т.п.).

4.3.2.3. Подготовка виртуальных устройств

Произвести настройку VirtIO-драйверов для устройств хранения (диска), системных устройств (serial, balloon).

  1. Подключить к ВМ (IDE-/SATA-) диск с подключенным образом диска в формате qcow2 и проверить возможность загрузки ОС в текущей конфигурации (Рис. 4.13).
../_images/13-MIG.png

Рис. 4.13 Параметры загрузки ОС

  1. Подключить устройство CDROM к IDE-/SATA- шине и выбрать носитель, содержащий скачанное ПО поддержки VirtIO (virtio-win-drivers).
  2. Установить использование контроллера VirtIO-SCSI для фиктивного (SCSI-) диска.

Если в конце списка оборудования (слева) отсутствует контроллер VirtIO-SCSI, то его следует добавить, указав тип SCSI и модель VirtIO SCSI (Рис. 4.14).

../_images/14-MIG.png

Рис. 4.14 Указание типа и модели контроллера

Примечание. Если к ВМ уже подключен сетевой интерфейс (NIC), то для
него следует указать модель устройства -- VirtIO.

4.3.3. Настройка гостевой ОС

Включить созданную ВМ и убедиться, что гостевая ОС (Windows) успешно запускается.

Штатным способом (Windows) открыть Диспетчер устройств и установить драйверы VirtIO для неизвестных устройств, определенных как Other devices (Другие устройства). Принцип установки – следующий:

  1. На рабочем столе (Windows) щелкнуть по значку «Пуск» в левом нижнем углу экрана для открытия меню.
  2. На знаке «Проводник» щелкнуть правой кнопкой мыши, далее на знаке «Этот компьютер», в выпадающем меню выбрать «Свойства» и нажать на «Диспетчер устройств» (Device Manager).
ВАЖНО. INF-файлы, содержащие необходимую информацию о системных файлах драйверов устройств, должны соответствовать версии гостевой ОС (Windows 8/8.1/10). Рекомендуется использование стандартного механизма поиска (Update driver) с указанием логического диска, содержащего драйверы VirtIO.

По окончании установки драйверов паравиртуализации следует завершить работу ВМ, добавить сетевой интерфейсный адаптер (NIC), подключенный к шине VirtIO, и повторить запуск гостевой ОС с обновлением драйвера сетевого интерфейсного адаптера (через Диспетчер устройств).

4.3.3.1. Установка драйвера VirtIO SCSI

Щелкнуть правой кнопкой мыши по устройству (Рис. 4.15), для которого нужно установить драйвер (SCSI Controller). В выпадающем меню выбрать действие «Установить драйвер» (Update Driver).

../_images/15-MIG.png

Рис. 4.15 Выбор устройства для установки драйвера

Откроется окно Мастера обновления драйвера (Update Drivers – SCSI Controller).

В ответ на запрос подсистемы защиты (Windows Security) следует ответить, что впредь следует доверять подписному источнику – Publisher: Red Hat, Inc (Рис. 4.16):

../_images/17-MIG.png

Рис. 4.16 Флаг «Всегда доверять источнику…»

По завершении поиска и установки драйвера для контроллера (VirtIO SCSI) в Windows 10 должно открыться информационное окно (Рис. 4.17):

../_images/18-MIG.png

Рис. 4.17 Диспетчер устройств Windows 10 (контроллер VirtIO SCSI)

После установки драйверов (VirtIO) следует перезагрузить гостевую ОС и убедиться, что изменения вступили в силу (применены новые драйверы), т.е. в Диспетчере устройств присутствуют следующие устройства: Disk Drivers, Storage Controllers (Рис. 4.18, Рис. 4.19):

../_images/19-MIG.png

Рис. 4.18 QEMU QEMU HARDDISK SCSI Disk Device

../_images/20-MIG.png

Рис. 4.19 Проверка наличия устройств Disk Drivers, Storage Controllers

Аналогично вышеописанному, следует выполнить установку драйверов для остальных устройств и, в последнюю очередь, выполнить установку драйвера сетевого адаптера.

Примечания.

Виртуальный накопитель CD-ROM следует отключить и удалить, если далее в гостевой ОС не будет устанавливаться дополнительное ПО (необходимое для работы VDI-машины, пользователя Рабочего стола).

После завершения установки VirtIO-драйверов следует выключить ВМ, корректно завершив работу гостевой ОС и удалить фиктивный диск из её настроек (virt-manager), оставив только VirtIO-диск с гостевой ОС, подключенный к SCSI-шине.

4.3.3.2. Установка драйвера и службы балунинга (Ballon Driver/Service)

Ниже показаны действия, которые необходимо выполнить для установки драйвера системного устройства Balloon (контроллера оперативной памяти) в гостевой ОС (Windows).

  1. Из среды Рабочего стола виртуальной машины (гостевой ОС) открыть Диспетчер устройств.
  2. Выбрать для обновления системное устройство PCI standars RAM Controller.
  3. Определить местонахождение драйвера с помощью Мастера обновления (Update Driver Software) (Рис. 4.20).
../_images/21-MIG.png

Рис. 4.20 Мастер обновления драйвера.

  1. Выбрать драйвер для установки:
  • Открыть файловой браузер;
  • Нажать на кнопку «Browse» (Просмотр).

Для каждого варианта/комбинации ОС и архитектуры предусмотрен отдельный драйвер, описываемый inf-файлом. Драйверы расположены иерархически, в зависимости от типа драйвера, операционной системы и архитектуры, на которой они будут установлены.

Например, для операционной системы Windows 10 с архитектурой x64, драйвер (VirtIO Balloon Driver) находится в каталоге driver_type\os\arch\Balloon\w10\x64.

  1. Выбрать размещение ПО драйвера и нажать «OK».
  2. Нажать на кнопку «Next» (Далее).
В окне с заголовком «Update Driver Software - …» отобразится строка процесса установки драйвера (Installing driver software).
  1. Дождаться нормального завершения установки драйвера.

По окончании процесса установки отобразится окно с диагностическим сообщением об успешной установке (Рис. 4.21).

../_images/22-MIG.png

Рис. 4.21 Завершение установки драйвера (VirtIO Balloon).

Нажатием на кнопку «Close» (Закрыть) следует закрыть окно мастера установки/обновления (драйвера).

По завершении установки (обновления) драйвера в Диспетчере устройств должна отображаться надпись: VirtIO Balloon Driver.

Установка службы балунинга осуществляется сразу после установки драйвера. Потребуется выполнить следующие действия:

  1. Перейти в раздел «Управление компьютером», открыть «Службы».
  2. Проверить наличие сервиса balloon; если служба не установлена, перейти в каталог Balloon\<os version>\<architectrure>.
Например – D:\Balloon\w10\amd64. Скопировать файлы, относящиеся к сервису balloon, и поместить их в выбранную папку. В примере – папка amd64 на рабочем столе.
  1. Переименовать папку amd64 balloon и переместить ее с системную папку Windows.

  2. Открыть консоль и от имени администратора в командной строке выполнить команду:

    C: \Windows\balloon>. \blnsvr .exe i
    

Листинг с примером выполнения команды изображен на Рис. 4.22.

../_images/23-MIG.png

Рис. 4.22 Листинг. Установка службы Balloon (управление памятью)

4.3.3.3. Установка драйвера последовательного устройства (VirtIO/Serial)

Драйвер устройства последовательного ввода-вывода необходим для получения гипервизором обратной связи от гостевой ОС. Данный драйвер устанавливается аналогично установке драйвера балунинга.

По завершении установки (обновления) драйвера в Диспетчере устройств рядом с драйвером Baloon отображается драйвер VirtIO Serial Driver.

4.3.3.4. Установка драйвера сетевого адаптера (VirtIO/Ethernet)

Если ранее сетевой адаптер удалялся, то перед установкой драйвера сетевого адаптера необходимо в настройках виртуальной машины добавить виртуальную сеть (default) и выбрать модель устройства (NIC с определенным MAC-адресом) virtio (Рис. 4.23).

../_images/24-MIG.png

Рис. 4.23 Добавление виртуальной сети

Для применения настроек ВМ потребуется её выключение (перезагрузка гостевой ОС).

После загрузки гостевой ОС необходимо выполнить следующие действия:

  1. В Диспетчере устройств отыскать драйвер (неопознанного) сетевого устройства.
  2. Навести курсор на устройство и щелкнуть правой кнопкой мыши. В выпадающем меню выбрать опцию «Обновить драйвер».
Откроется окно (Рис. 4.24).
  1. В строке «Поиск драйверов на этом компьютере» выбрать нужный драйвер и нажать на кнопку «Далее».
../_images/25-MIG.png

Рис. 4.24 Окно «Поиск драйверов на этом компьютере» (NetKVM)

  1. Дождаться сообщения об успешном обновлении драйвера адаптера сети и нажать на кнопку «Закрыть».

В ОС Windows 10 по завершении поиска и установки драйвера (VirtIO Ethernet) будет открыто информационное окно с заголовком «Update Drivers Red Hat VirtIO Ethernet Adapter» и надписью: Windows has successfully updated your drivers.

Расположение сетевого адаптера в иерархии Диспетчера устройств: Сетевые адаптеры. Название устройства (после установки драйвера): Red Hat VirtIO Ethernet Adapter (Рис. 4.25).

../_images/26-MIG.png

Рис. 4.25 Расположение сетевого адаптера VirtIO (в диспетчере устройств)

4.3.3.5. Установка драйвера поддержки видео (QXL)

Может понадобиться, чтобы виртуальная машина впоследствии (после переноса образа в облачную платформу) обладала нормальной производительностью видеоподсистемы, а также позволяла менять разрешение (масштабировать) экран в консоли «ТIONIX», используемой для VDI-доступа.

В таком случае потребуется в гостевой ОС заменить используемый (по умолчанию) драйвер Microsoft Basic Display Adapter (Рис. 4.26).

../_images/33-MIG.png

Рис. 4.26 Замена драйвера Microsoft Basic Display Adapter

Драйвер находится на CD-носителе (virtio-win). Местоположение системного файла драйвера определено в INF-файле. Системный файл драйвера копируется в системную папку гостевой ОС: Windows\System32\DRIVERS\qxldod.sys.

После обновления драйвера в системе вместо прежнего (дисплейного) адаптера появится новое устройство QXL controller. Данное устройство обслуживается ядром гостевой ОС.

Драйвер (контроллер видео QXL) связывается с видео-устройством KVM (устройству «Видео QXL» в свойствах виртуальной машины) и начинает немедленно функционировать.

Перезагрузка гостевой ОС не требуется.

Если потребуется установка определенной или наиболее крайней версии драйвера (для архитектуры x86-64), то его следует скачать из сетевого ресурса, доступного по ссылке:

Для скачивания может быть использован штатный веб-браузер гостевой ОС (Windows IE) (Рис. 4.27):

../_images/34-MIG.png

Рис. 4.27 Интерфейс штатного веб-браузер гостевой ОС (Windows IE)

Примечания.

При скачивании в гостевой ОС должен быть активен сетевой интерфейсный
адаптер (Ethernet).

В случае недоступности виртуальной сети для обмена может быть подключен
и использован USB-носитель.

После скачивания архива двойным кликом на ссылке (в области Downloads)
открыть zip-архив (сжатую папку) и распаковать в произвольную (временную)
папку его содержимое -- файлы установщика (spice-qxl-wddm-dod-*.msi)
для 32-/64- разрядных процессорных архитектур.

После запуска (двойным кликом) на выбранном msi-пакете cистема защиты Windows 10 (UAC) потребует подтверждения установки ПО, подписанного публичным сертификатом (Red Hat, Inc). Дополнительных действий не потребуется, установщик отработает и завершит работу автоматически.

Рекомендуется убедиться (через Диспетчер устройств), что стандартный драйвер поддержки VGA-дисплеев сменился на драйвер Red Hat QXL Controller. Также рекомендуется поменять разрешение экрана и проверить текущие настройки (Рис. 4.28) из Панели управления:

../_images/35-MIG.png

Рис. 4.28 Проверка текущих настроек (Windows Settings)

Примечание. Подробности окончательной настройки виртуальной машины,
подготовленной для эксплуатации в облачной инфраструктуре «ТIONIX»,
вынесены в отдельное приложение (см. Приложение 2).

После того как выполнены все действия по установке драйверов, гостевого агента и cloudbase-init, необходимо корректно завершить работу гостевой ОС и виртуальной машины. Из virt-manager по команде «Выключить виртуальную машину» в гостевую ОС отправляется соответствующий сигнал «мягкого» завершения работы (shutdown).

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

4.3.3.6. Установка ПО гостевого агента

4.3.3.6.1. Linux

Для гостевых ОС Debian и Ubuntu гостевые дополнения (Qemu Guest Additions) распространяются через сетевой репозиторий и устанавливаются (с правами суперпользователя) одной командой:

apt-get install qemu-guest-agent

Для гостевой ОС CentOS (настольной RHEL) гостевые дополнения также распространяются через (сетевой) репозиторий и могут быть установлены командой:

yum install qemu-guest-agent

4.3.3.6.2. Windows

В гостевой ОС Windows запуск пакета установщика осуществляется с подключенного к ВМ CD-дисковода (логического диска D:), кликом мыши на файле qemu-ga-x86_64 (Рис. 4.29).

../_images/27-MIG.png

Рис. 4.29 Установка ПО гостевого агента (QEMU Guest Agent)

Далее следовать инструкциям Мастера установки ПО. После установки ПО гостевого агента следует убедиться, что сервис QEMU/Guest Agent установлен:

../_images/28-MIG.png

Рис. 4.30 Список служб сервис QEMU/Guest Agent

4.3.3.7. Установка ПО инициализации инстанса (OpenStack Cloud-init)

Чтобы успешно осуществить инициализацию гостевой ОС при создании инстанции OpenStack (экземпляра виртуальной машины инстанса), необходимо ознакомиться с дополнительными инструкциями, выполняемыми при подготовке образа диска для ВМ с гостевой ОС (Windows).

Полное руководство по подготовке образа диска виртуальной машины (Image requirements), интегрируемой в инфраструктуру, управляемую с помощью OpenStack, можно скачать по ссылке.

Согласно описания, на последнем этапе подготовки требуется установка ПО инициализации Cloudbase-Init, которому посвящен отдельный веб-ресурс ( https://cloudbase.it/cloudbase-init ), содержащий сведения о поддерживаемых гостевых ОС (Supported Windows Versions).

ПО инициализации виртуальных машин, предназначенных для эксплуатации в виртуальной среде облачной инфраструктуры (OpenStack-based), может также упоминается с сокращением cloud-init, подробное описание которого публично доступно в сети Интернет по ссылке.

Для скачивания ПО следует перейти по адресу:

Скачивание и установка данного ПО могут быть произведены непосредственно на этапе завершения подготовки виртуальной машины в среде гипервизора (KVM), после установки драйверов паравиртуализации (VirtIO) (Рис. 4.31).

../_images/29-MIG.png

Рис. 4.31 ПО инициализации инстанса OpenStack (Cloudbase-Init)

Примечания.

При первом посещении указанного (для скачивания) веб-ресурса может
потребоваться регистрация. Для скачивания (без регистрации) следует
перейти по ссылке:
https://github.com/cloudbase/cloudbase-init.

После выбора стабильной версии (Stable) для процессорной архитектуры,
соответствующей процессорной архитектуре гостевой ОС, в штатном веб-браузере (IE)
потребуется подтверждение (Windows 8/10).

Запуск скачанного ПО на установку осуществляется двойным кликом мыши на файле пакета CloudbaseInitSetup_<версия_ПО>.msi (Рис. 4.32).

../_images/30-MIG.png

Рис. 4.32 Установка ПО инициализации (Cloudbase-Init Setup)

Далее необходимо следовать инструкциям Мастера установки ПО (Cloudbase-Init Setup Wizard). Потребуется:

  1. Принять условия лицензионного соглашения.
  2. Согласиться с предложенным расположением ПО в файловой системе гостевой ОС.
  3. Принять или изменить настройку конфигурации (имя пользователя Admin).
Чтобы сразу настроить выполнение автоматического запуска службы при старте гостевой ОС, необходимо поставить галочку для опции [V] Run Cloudbase-Init service as LocalSystem.
  1. Кликнуть кнопку [Install] для выполнения установки ПО в гостевой ОС.
  2. Подтвердить развертывание прочих msi-пакетов, по запросам системы (User Account Control).
  3. Дождаться завершения процесса установки и завершить работу кликнуть [Finish].

После завершения работы Мастера следует установить галочки для выполнения пост-установочных действий [V] Sysprep и [V] Shutdown (завершение работы системы по окончании выполнения операции Sysprep).

Перед завершением работы гостевой ОС рекомендуется убедиться, что системная служба cloudbase-init выполняется и настроен её автоматический запуск (Рис. 4.33):

../_images/32-MIG.png

Рис. 4.33 Проверка выполнения и автоматического запуска службы Cloudbase-Init

Если служба (cloudbase-init) выполняется, то можно выключить виртуальную машину и приступить к загрузке образа на платформу TIONIX.