Руководство рассматривает создание виртуальной машины в среде OpenStack и установку на эту виртуальной машину операционной системы Windows Server 2012 с драйверами KVM стандартными средствами Windows Installer с образа ISO официального DVD.
После установки из диска виртуальной машины (инстанса) образ будет возможно использовать и на других виртуальных машинах.
По умолчанию, с использованием штатных средств OpenStack, Windows Installer не видит корневой диск или не определяет загрузочный раздел, что делает установку ОС Windows проблематичной процедурой.
В нашем облаке проблема решается использованием служебной виртуальной машины, которая создает отдельный инстанс в среде пользователя с Windows Installer и подключает к нему диск с необходимыми драйверами оборудования для последующей установки операционной системы.
Ниже приведена краткая инструкция для создания виртуальной машины и установки ОС Windows на нее:
Для создания инстанса потребуется:
- Официальный ISO образ Windows на основе официального диска Windows, приобрести и скачать можно с официального сайта https://www.microsoft.com/ru-ru/windows
- Образ ISO с драйверами KVM - https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
- CloudBase-Init - https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi
- Для загрузки образов через консольного клиента потребует "Python 2.7.x" http://python.org/downloads/windows/ и "Microsoft Visual C++ Compiler for Python 2.7" http://aka.ms/vcpython27
-
Реквизиты доступа к проекту.
Перед созданием инcтансов загрузите образы в среду OpenStack, либо воспользуйтесь уже загруженными образами в системе OpenStack. Публичный образ с драйверами KVM в нашей среде OpenStack:
"HT-Virtio-Win-Drivers-Stable"
.
Для загрузки образов в учетную запись необходимо выполнить следующие действия:
- Войдите в учетную запись OpenStack.
-
Перейдите в раздел
"Проект"
-"Образы"
и нажмите кнопку"Создать образ"
. -
В появившемся окне укажите:
- желаемое имя образа;
- описание (если нужно);
- выберите ISO образ установочного диска Windows с локального компьютера;
- формат образа:
"ISO - образ оптического диска"
; - минимальный размер диска: наименьшее значение в гигабайтах, но не меньше размера ISO образа, например 5;
- минимальная ОЗУ: укажите 2048 (2 гигабайта достаточно).
- Нажмите кнопку
"Создать образ"
.
Если загрузка образа диска завершилась ошибкой по причине таймаута соединения браузера, загрузите образ в учетную запись при помощи консольного клиента OpenStack (CLI).
Для установки CLI на Windows потребуется скачать Python версии 2.7.x http://python.org/downloads/windows/ , а также "Microsoft Visual C++ Compiler for Python 2.7" http://aka.ms/vcpython27. Далее установить "openstackclient" командой
C:\Python27\Scripts\pip.exe install python-openstackclient
в командной строке с правами Администратора.После установки клиента OpenStack загрузите образ ISO в учетную запись при помощи команды в командной строке Windows:
C:\Python27\Scripts\openstack.exe --os-user-domain-name=Default --os-auth-url=
--os-username=<Имя пользователя> image create --private --disk-format iso --container-format bare --file <Путь у образу ISO Windows> --min-disk 5 --min-ram 2048 "Желаемое имя образа в системе" Например:
C:\Python27\Scripts\openstack.exe --os-user-domain-name=Default --os-auth-url=https://eu-east.atlex.cloud:5000/v3 --os-username=demo-5932-user image create --private --disk-format iso --container-format bare --file D:\Distr\9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_RU-RU-IR3_SSS_X64FREE_RU-RU_DV9.ISO --min-disk 5 --min-ram 2048 "Windows 10 X86_64 Install DVD"
-
Таким же способом загрузите образ ISO с драйверами Windows VirtIO Drivers (
virtio-win-0.1.xxx.iso
) с параметрами:- Минимальный размер диска: 1 ГБ;
- Минимальная ОЗУ: 1024 МБ.
В итоге в загруженных образах появятся: "Windows 10 X96_64 Install DVD" и "Windows VirtIO Drivers".
- Если в аккаунте не создана виртуальная сеть, создайте. Руководство по созданию сети: https://www.atlex.ru/baza-znanij/rukovodstva/nachalo-raboty-s-virtualnym-data-tsentrom/
-
После загрузки образов создадим инстанс с подключенными к нему корневым целевым разделом, установочным образом и диском с драйверами устройств.
В случае использования CLI сделать это можно командой
C:\Python27\Scripts\nova.exe --os-project-id=
--os-auth-url= --os-username=<Имя пользователя> --os-password=<Пароль вашего пользователя> boot --flavor=HT-2C-4G --block-device dest=volume,device=/dev/vda,size=<Размер целевого диска в ГБ (не менее 15)>,bus=virtio,bootindex=1 --block-device source=image,id= ,dest=volume,bus=ide,device=/dev/hda,size=<Размер в ГБ (не менее размера образа ISO Windows)>,type=cdrom,bootindex=0 --block-device source=image,id= ,dest=volume,size=1,bus=ide,device=/dev/hdc,type=cdrom,bootindex=2 Windows-Setup-Instance "ID образа диска Windows" и "ID образа диска с драйверами" получаем по клику на имя необходимого образа:
Пример:
В разделе
"Проект"
-"Инстансы"
добавится инстанс с запущенной средой"Windows Installer"
:Для варианта без CLI подготовлен специальный образ для создания инстанса с Windows Installer. Выберите в списках Публичных образов образ "HT-Windows-Setup-Starter" и нажмите кнопку
"Запустить"
.В появившемся окне введите имя инстанса, тип. Выберите
"Создать новый диск"
размером 5 ГБ. Это временный инстанс, который выполняет команду запуска виртуальной машины с подключенными драйверами и установочным диском Windows. Подробности запуска инстанса находятся в руководстве: https://www.atlex.ru/baza-znanij/rukovodstva/nachalo-raboty-s-virtualnym-data-tsentrom/После запуска инстанса для удобства работы возможно подключить к нему "Назначаемый IP" для входа через SSH.
Для входа через SSH на ОС Windows потребуется SSH клиент, например Putty - https://www.chiark.greenend.org.uk/~sgtatham/putty/
Не забудьте в разделе
"Проект"
-"Доступ и безопасность"
-"Управление правилами группы безопасности"
добавить правило"SSH"
для подключения к инстансу из сети интернет.Имя пользователя для входа в консоль - windows
Пароль - installer
После входа в инстанс понадобится ответить на серию вопросов и ввести данные для подключения к облаку:
После ответа на все вопросы в проекте создастся отдельный иснтанс с именем
"Windows-Installer-Instance"
.Служебный инстанс для запуска исталятора больше не нужен.
-
Войдите в консоль VNC новосозданного инстанса
Следуйте инструкциям инсталятора Windows
-
На этапе выбора разделов для установки исталятор не обнаружит подключенные диски. Поможет подключенный диск с драйверами VirtIO.
Нажмите на ссылку
"Загрузить драйвер"
.Нажмите кнопку
"Обзор"
- Перейдите на диске"virtio-win"
- в каталог"viostor\<Ваша ОС>\<Ваша архитектура>"
Нажмите
"Далее"
В результате доступными к обнаружению станут два жестких диска, один из которых — служебный диск с метаданными OpenStack на 62 МБ.
Теперь можно продолжить установку штатными средствами Windows
-
После загрузки операционной системы продолжаем установку драйверов. Установка необходимых драйверов производится через командную строку Администратора с использованием следующих команд:
pnputil -i -a E:\<Путь к драйверу>\<Версия ОС>\amd64\*.INF
.Рекомендуем установить все драйверы находящиеся на подключенном диске с драйверами VirtIO. Подтвердите установку в запросе об установке программного обеспечения.
В примере установлены следующие драйверы:
pnputil -i -a E:\Balloon\2k12R2\amd64\*.inf
pnputil -i -a E:\NetKVM\2k12R2\amd64\*.inf
pnputil -i -a E:\pvpanic\2k12R2\amd64\*.inf
pnputil -i -a E:\qemupciseria\2k12R2\amd64\*.inf
pnputil -i -a E:\qxldod\2k12R2\amd64\*.inf
pnputil -i -a E:\vioinput\2k12R2\amd64\*.inf
pnputil -i -a E:\viorng\2k12R2\amd64\*.inf
pnputil -i -a E:\vioscsi\2k12R2\amd64\*.inf
pnputil -i -a E:\vioserial\2k12R2\amd64\*.inf
pnputil -i -a E:\viostor\2k12R2\amd64\*.inf
– здесь возможно возникновение ошибки, так как при установке ОС драйвер уже добавлялся на стадии установки.Теперь установим гостевой агент для QEMU для контроля работы виртуальной машины со стороны OpenStack.
Команда
E:\guest-agent\qemu-ga-x64.msi
Далее установим менеджер динамического распределения памяти balloon.
Для этого скопируйте содержимое каталога
E:\Balloon\<Ваша ОС>\Ваша архитектура
(напримерE:\Ballon\2k12R2\amd64
) на локальный диск, например в каталогC:\Program Files\Balloon
и выполните команду с правами администратораC:\Program Files\Balloon\blnsrv.exe -i
Таким образом будут установлены требуемые службы и драйверы для работы системы Windows в среде виртуализации OpenStack.
После установки драйверов инстанс выключаем и отключаем от инстанса ненужные диски.
-
Последним шагом установки, если требуется, установим средство интеграции со средой OpenStack — Cloudbase-Init.
Запустите инсталятор Cloudbase-Init: https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi внутри инстанса с установленной ОС Windows
В процессе установки укажите учетную запись Администратора системы (в примере это пользователь
"Администратор"
), установите галочки"Use metadata password"
и"Run Cloudbase-Init service as LocalSystem"
.Порт логирования (
Serial port for logging
) выберитеCOM1
При завершении установки, если необходимо подготовить образ для создания копии установленной системы на другие инстансы выберите
"Run Sysprep to create a generalized image. This is necessary if you plan to duplicate this instance, for example by creating a Glance image."
и"Shutdown when Sysprep terminates."
.После завершения работы Sysprep Инстанс выключится.
-
После выключения инстанса возможно на его основании создать образ для запуска копии системы на других инстансах. Для этого перейдите в раздел
"Вычислительные ресурсы"
-"Диски"
и в выпадающем меню напротив диска с Windows нажмите "Управление подключениями".В появившемся окне отключите диск от истанса. После отключения диска справа в выпадающем списке выберите пункт
"Загрузить образ".
В появившемся окне введите
"Название образа"
, выберите формат"QCOW2"
. Нажмите"Загрузить"
.После этого в разделе
"Вычислительные ресурсы"
-"Образы"
появится новый образ с установленной копией системы Windows.После сохранения образа служебный инстанс, а также созданные служебные диски, больше не нужны.
Образ с операционной системой Windows для запуска в среде OpenStack готов.