Подготовка виртуальных машин с Windows к миграции в облако

Процесс миграции рассмотрим на примере виртуальных машин с ОС Windows на базе гипервизора VMware ESXI (для других систем виртуализации процедура практически не отличается).

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

1. Операционные системы:

  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 7
  • Windows 8
  • Windows 8.1
  • Windows XP

2. Наличие привилегии администратора ВМ.

Пошаговое руководство

Для начала в операционной системе Windows нам необходимо установить virtio драйвера (iso образ можно скачать по ссылке). Затем необходимо примонтировать загруженный образ к нашей ВМ.

10

Далее переходим в диспетчер устройств ОС Windows и, кликнув правой кнопкой мыши по корневому устройству, выбираем «Add legacy hardware».

1

Далее выбираем “Install the hardware that I manually select…”

2

Выбираем “Have Disk…” и указываем источник с драйверами virtio (ранее смонтированный образ).

4

Сперва переходим в каталог “Balloon” и далее, в зависимости от вашей ОС, подкаталог, в котором выбираем INF файл драйвера. В процессе установки может появиться диалоговое окно с предупреждением, вы должны согласится (отметить “Always trust software…”) и нажать “Install”.

5

Аналогичным образом установите драйвера из каталогов NetKVM, qemupciserial, viorng, vioscsi, vioserial, and viostor. Если в процесе установки драйвера qemupciserial возникнет ошибка, просто проигнорируйте ее.

Последним этапом является установка QEMU guest agent. В каталоге “guest-agent”  диска с драйверами, запустите  установщик в соответствии с архитектурой вашей системы (х64 или х32).

6

 

2.   Добавление информации о Virtio драйверах в системный реестр и удаление VMware Tools

Скопируйте текст:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00000000]
«Service»=»viostor»
«ClassGUID»=»{4D36E97B-E325-11CE-BFC1-08002BE10318}»

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00020000]
«Service»=»viostor»
«ClassGUID»=»{4D36E97B-E325-11CE-BFC1-08002BE10318}»

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00021af4]
«Service»=»viostor»
«ClassGUID»=»{4D36E97B-E325-11CE-BFC1-08002BE10318}»

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor]
«Type»=dword:00000001
«Start»=dword:00000000
«Group»=»SCSI miniport»
«ErrorControl»=dword:00000001
«ImagePath»=»system32\\drivers\\viostor.sys»
«Tag»=dword:00000021

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor\Parameters]
«BusType»=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor\Parameters\MaxTransferSize]
«ParamDesc»=»Maximum Transfer Size»
«type»=»enum»
«default»=»0»

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor\Parameters\MaxTransferSize\enum]
«0»=»64  KB»
«1»=»128 KB»
«2»=»256 KB»

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor\Parameters\PnpInterface]
«5»=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\viostor\Enum]
«0»=»PCI\\VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00\\3&13c0b0c5&0&20″
«Count»=dword:00000001
«NextInstance»=dword:00000001

И сохраните в файл с именем virtio.reg (важно чтобы расширение файла было .reg).

Далее в меню «Пуск – выполнить» наберите команду «regedit» и нажмите «Ок», после чего в меню “File” укажите для импорта сохраненный ранее файл «virtio.reg».

7

Следующим этапом необходимо удалить из ОС приложение VMware Tools. Если в вашей системе компонент отсутствует, просто пропустите этот шаг.

Перейдите по пути «Пуск – Панель управления – Программы и компоненты», выберите со списка VMware Tools и нажмите «Удалить».

9

 

3.    Загрузка диска в облако и создание инстанса

Последним этапом является перенос образа диска Виртуальной машины в облако и создание нового инстанса на базе перенесенного диска. Для начала одним из доступных вам способов скопируйте образ виртуального диска из гипервизора во временный каталог сервера cinder, например /tmp/migrate_instance/. Далее необходимо создать в облаке новый пустой загрузочный диск в разделе «Вычислительные ресурсы — диски».

11

12

Добавляем новый инстанс с использованием ранее созданного диска «new_volume», для этого из выпадающего списка напротив диска выбираем пункт «запустить как инстанс».

13

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

Последнее, что нам предстоит сделать – подменить образ виртуального диска, созданного инстанса, на загруженный ранее образ диска виртуальной машины, которую мы мигрируем в облако.

Для этого сперва узнаем ID текущего диска. Для этого нужно кликнуть по названию диска «new_volume». В открывшемся окне свойств мы увидим нужную информацию.

14

15

В нашем случае ID=b58704d0-2b7b-4ba7-9150-e0383245b080.

Далее по SSH идем на сервер cinder. Командой: rbd -p rbd-ssd list

На данный момент доступно два типа хранилищ rbd-sata и rbd-ssd.

Выводим список виртуальных дисков, находим нужный нам диск, его название в нашем случае volume-b58704d0-2b7b-4ba7-9150-e0383245b080, и удаляем его из хранилища rbd-ssd командой:

rbd -p rbd-ssd rm volume-b58704d0-2b7b-4ba7-9150-e0383245b080

Далее конвертируем в формат raw и копируем в хранилище новый диск, и в качестве его ID указываем номер удаленного.