Міграція за допомогою Virt-V2V

Опис

У цій статті описано один зі способів самостійної міграції віртуальних машин до інфраструктури проєкту SIM-Cloud. У прикладі наведено послідовність міграції віртуальних серверів із гіпервізора ESXi версії 6.7.0 (збірка 8169922), а також встановлення драйверів virtio у Windows за допомогою спеціалізованої програми virt-v2v. Докладніше про неї дивіться в посібнику Red Hat V2V.

Самостійну міграцію гостьової машини можна виконати одним із двох способів:

  1. Використати підготовлений системний образ зі списку доступних образів SIM-Cloud.

  2. Самостійно встановити систему для перетворення дисків і подальшого імпорту до проєкту SIM-Cloud.

Для виконання інструкцій потрібні навички адміністрування Linux і Windows. Також передбачається, що користувач знайомий з основними можливостями панелі керування SIM-Cloud і прочитав такі статті:

Основна інформація

Для міграції віртуального сервера до SIM-Cloud потрібно скопіювати системний диск зі встановленою операційною системою та додаткові диски гостьової машини з наявної системи віртуалізації до хмарного проєкту клієнта.

Передумови для копіювання дисків до хмари:

  • видалити VMware Tools із гостьової системи;

  • перетворити образ диска у формат raw;

  • встановити драйвери virtio, необхідні для запуску інстансу на KVM.

NetKVM

мережевий драйвер virtio

Viostor

драйвер блокових пристроїв virtio

Vioscsi

драйвер virtio для інтерфейсу SCSI

Vioser

драйвер послідовного інтерфейсу virtio

Balloon

драйвер динамічного керування пам’яттю virtio

Докладніше про драйвери virtio дивіться на сайті розробника.

Після підготовки диски потрібно скопіювати до проєкту SIM-Cloud. Залежно від завдання для цього використовують команди Linux dd або cat. Дані підготовленого диска побайтово копіюються на блоковий пристрій — диск, підключений до наявного інстансу в хмарі.

Процедури міграції системного диска й диска даних відрізняються.

Міграція системного диска

Для системного диска потрібно:

  • видалити VMware Tools;

  • переконатися, що на диску достатньо вільного місця для встановлення драйверів;

  • перетворити диск у формат raw;

  • встановити додаткові драйвери virtio;

  • скопіювати готовий образ до проєкту SIM-Cloud.

Міграція додаткового диска даних

Для підготовки диска даних потрібно:

  • перетворити диск у формат raw;

  • скопіювати готовий образ до проєкту SIM-Cloud.

Під час підготовки образу диска даних додаткові драйвери встановлювати не потрібно. Диск буде підключено до інстансу, у якому вже є всі необхідні драйвери для правильного розпізнавання нового пристрою.

Міграція за допомогою підготовленого образу SIM-V2V

Використання підготовленого образу

Розглянемо варіант із використанням готового образу.

Команда SIM-Cloud підготувала системний образ для швидкого початку міграції віртуального сервера до проєкту SIM-Cloud.

Системний образ SIM-V2V створено на основі дистрибутива GNU Linux CentOS 7.4 [EN], який також є в загальнодоступному списку образів SIM-Cloud.

Параметри доступу до ОС:

  • користувач: root;

  • пароль: sim-v2v.

Примітка

З міркувань безпеки після першої успішної авторизації система вимагатиме змінити пароль.

Запуск інстансу SIM-V2V

  1. Запустіть інстанс із підготовленого образу SIM-V2V.

Процес створення інстансу описано в статті Швидкий старт.

Примітка

Для створення інстансу рекомендовано обрати тип із характеристиками не нижчими за SIM-A1 (2 vCPU і 4 ГБ RAM), а для системного диска — сховище типу gs1 обсягом 10 ГБ.

Підключення додаткового диска

  1. Підключіть до інстансу додатковий диск для зберігання вихідних і вже перетворених дисків гостьових машин.

Після розгортання інстансу з CentOS Linux 7 підключіть до нього додатковий диск типу gs1.

Обсяг додаткового диска має дорівнювати повному розміру образу, що мігрує, плюс щонайменше 150% цього розміру. Наприклад, для образу обсягом 200 ГБ підключіть диск приблизно на 500 ГБ (200 ГБ + 300 ГБ). Додаткове місце потрібне для підготовленого образу, який згодом буде перенесено на окремий блоковий пристрій для запуску інстансу. Процес підключення описано в окремій статті.

Підключення диска в ОС інстансу

  1. Підключіть новий додатковий диск в операційній системі інстансу.

Приклад підключення додаткового диска в Linux наведено в окремій статті.

Підключення до VMware та копіювання дисків гостьової машини

  1. Підключіть інстанс до гіпервізора VMware, щоб скопіювати диски гостьової машини.

На цьому етапі потрібно підключитися до сервера ESXi, скопіювати диски віртуальної машини та перетворити їх у формат raw. За замовчуванням служба v2v копіює всі диски, підключені до віртуальної машини. Спочатку перейдіть до каталогу, у який копіюватимуться диски:

cd /data

Примітка

Перед копіюванням образу з ESXi:

  1. Видаліть VMware Tools з ОС гостьової машини. Якщо компонента немає, пропустіть цей крок. Для видалення відкрийте StartControl PanelPrograms and Features, виберіть VMware Tools і натисніть Uninstall.

  2. Після видалення VMware Tools вимкніть віртуальну машину. Якщо вона працює, копіювання образу диска не розпочнеться.

Приклад підключення до віддаленого гіпервізора ESXi:

Увага

Після запуску команди копіювання гостьової машини із сервера ESXi служба кілька разів запросить пароль користувача, від імені якого виконується підключення: Enter host password for user 'user_esxi':.

virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net 2012_v2v
[   0,0] Fetching the remote libvirt XML metadata ...
2019-02-12 10:31:24.317+0000: 19144: info : libvirt version: 4.5.0, package: 10.el7_6.4 (CentOS BuildSystem <http://bugs.centos.org>, 2019-01-29-17:31:22, x86-01.bsys.centos.org)
2019-02-12 10:31:24.317+0000: 19144: info : hostname: v2v-prod
2019-02-12 10:31:24.317+0000: 19144: warning : esxConnectOpen:857 : Ignoring unexpected path '' for non-vpx scheme 'esx'
Enter user_esxi's password for esxi_n.sim-networks.net:
[   6,9] Parsing the remote libvirt XML metadata ...
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
[  29,6] Copying remote disk 1/2 to 2012_v2v-disk1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 40.0G  100 40.0G    0     0  86.9M      0  0:07:50  0:07:50 --:--:-- 87.8M
[ 500,5] Copying remote disk 2/2 to 2012_v2v-disk2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10.0G  100 10.0G    0     0  86.0M      0  0:01:59  0:01:59 --:--:-- 88.8M
[ 619,6] Writing libvirt XML metadata to 2012_v2v.xml ...
[ 619,6] Finishing off


"user_esxi" — ім'я користувача, якому дозволено віддалено підключатися
              до сервера ESXi через SSH.

"esxi_n.sim-networks.net" — FQDN віддаленого сервера ESXi.

"2012_v2v" — ім'я гостьової віртуальної машини.

"-v -x" — необов'язкові параметри для виведення налагоджувальної інформації.

Щоб вивести додаткову налагоджувальну інформацію, запустіть команду з
параметрами "-v -x".

Приклад: virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net 2012_v2v -v -x

Примітка

Якщо сервер ESXi використовує самопідписаний сертифікат, підключення може завершитися помилкою: «libvirt: ESX Driver error : internal error: curl_easy_perform() returned an error: Peer certificate cannot be authenticated with given CA certificates (60) : Peer’s certificate issuer has been marked as not trusted by the user».

Щоб її усунути, використовуйте адресу у форматі esx://example-esx.com/?no_verify=1.

Приклад: virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net/?no_verify=1 2012_v2v -v -x.

Примітка

Тривалість копіювання залежить від розміру диска та швидкості з’єднання із сервером ESXi. Під час операції служба v2v показує поточний стан і кількість дисків, вибраних для копіювання.

Перевірте скопійовані образи дисків.

Перегляньте наявність і розмір файлів командою ls -lh:

ls -lh /data
total 51G
-rw-r--r--. 1 root root  40G Feb 12 11:39 2012_v2v-disk1
-rw-r--r--. 1 root root  10G Feb 12 11:41 2012_v2v-disk2
-rw-r--r--. 1 root root 1,4K Feb 12 11:41 2012_v2v.xml
drwx------. 2 root root  16K Feb 12 10:56 lost+found

"2012_v2v-disk1" — системний диск, 40 ГБ.
"2012_v2v-disk2" — диск даних, 10 ГБ.

Перевірте формат файлів командою qemu-img info:

qemu-img info 2012_v2v-disk1
image: 2012_v2v-disk1
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 40G

qemu-img info 2012_v2v-disk2
image: 2012_v2v-disk2
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G

З виведення видно, що файли мають потрібний формат raw і правильний розмір.

Встановлення драйверів для системного диска

  1. Перетворіть системний диск і встановіть для нього драйвери.

На цьому етапі потрібно встановити драйвери virtio для системних дисків із Windows. Для системних дисків із Linux додаткове встановлення драйверів virtio не потрібне.

Програма virt-v2v автоматично визначає версію та тип Windows і встановлює потрібні драйвери virtio.

Приклад перетворення системного диска з Windows Server 2012 Standard:

virt-v2v  -i disk /data/2012_v2v-disk1 -o local -os /data
[   0,0] Opening the source -i disk /data/2012_v2v-disk1
[   0,0] Creating an overlay to protect the source from being modified
[   0,1] Initializing the target -o local -os /data
[   0,1] Opening the overlay
[  45,5] Inspecting the overlay
[  49,1] Checking for sufficient free disk space in the guest
[  49,1] Estimating space required on target for each disk
[  49,1] Converting Windows Server 2012 Standard Evaluation to run on KVM
virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing.
Firstboot scripts may conflict with PnP.
virt-v2v: warning: there is no QXL driver for this version of Windows (6.2
x86_64).  virt-v2v looks for this driver in
/usr/share/virtio-win/virtio-win.iso

The guest will be configured to use a basic VGA display driver.
virt-v2v: This guest has virtio drivers installed.
[  66,4] Mapping filesystem data to avoid copying unused and blank areas
[  67,2] Closing the overlay
[  67,5] Checking if the guest needs BIOS or UEFI to boot
[  67,5] Assigning disks to buses
[  67,5] Copying disk 1/1 to /data/2012_v2v-disk1-sda (raw)
    (100.00/100%)
[ 383,7] Creating output metadata
[ 383,7] Finishing off

Примітка

Під час встановлення драйверів служба v2v не знаходить відеодрайвери, тому система використовує стандартний драйвер VGA. Відеодрайвери вилучено навмисно: їх встановлення призводило до неправильного відображення графічного інтерфейсу гостьової машини. Не встановлюйте їх.

Після встановлення драйверів і перетворення диска перевірте наявність потрібного файлу:

ls -lh /data
total 59G
-rw-r--r--. 1 qemu qemu  40G Feb 12 11:39 2012_v2v-disk1
-rw-r--r--. 1 root root  40G Feb 12 12:41 2012_v2v-disk1-sda
-rw-r--r--. 1 root root 1,3K Feb 12 12:41 2012_v2v-disk1.xml
-rw-r--r--. 1 root root  10G Feb 12 11:41 2012_v2v-disk2
-rw-r--r--. 1 root root 1,4K Feb 12 11:41 2012_v2v.xml
drwx------. 2 root root  16K Feb 12 10:56 lost+found

"2012_v2v-disk1-sda" — підготовлений диск зі встановленими драйверами.

Перевірте формат файлу:

qemu-img info 2012_v2v-disk1-sda
image: 2012_v2v-disk1-sda
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 8.1G

Перетворення додаткових дисків

  1. Підготуйте додаткові диски даних.

Додаткові диски, скопійовані під час підключення до гіпервізора, не потребують додаткової обробки або перетворення: вони вже мають потрібний формат raw.

Створення та підключення завантажувального системного диска

  1. Підключіть додатковий диск для створення завантажувального системного диска.

Спочатку визначте потрібний обсяг нового диска, з якого запускатиметься інстанс або який використовуватиметься як додатковий. Якщо новий диск менший за диск, що імпортується, копіювання завершиться помилкою; надмірно великий диск нераціонально використовуватиме ресурси.

Щоб визначити потрібний обсяг, перегляньте розмір підготовленого диска командою ls -lh <ім'я_файлу>:

ls -lh 2012_v2v-disk1-sda
-rw-r--r--. 1 root root 40G Feb 12 12:41 2012_v2v-disk1-sda

У цьому прикладі файл 2012_v2v-disk1-sda із підготовленим системним диском має розмір 40 ГБ, тому новий диск також має бути обсягом 40 ГБ.

Процес створення диска описано в окремій статті. Створіть порожній диск і підключіть його до інстансу v2v, як описано вище.

Після додавання нового диска на 40 ГБ перевірте його наявність в ОС:

fdisk -l
Disk /dev/vdc: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Пристрій /dev/vdc доступний і готовий до використання.

Копіювання образу системного диска на новий диск

  1. Скопіюйте підготовлений образ системного диска на новий додатковий диск.

Оскільки всі диски підключено до одного інстансу з Linux, скопіюйте образ локально за допомогою утиліти dd.

Приклад копіювання образу на окремий пристрій /dev/vdc:

dd if=/data/2012_v2v-disk1-sda of=/dev/vdc bs=32M
1280+0 records in
1280+0 records out
42949672960 bytes (43 GB) copied, 172,71 s, 249 MB/s

Образ диска скопійовано на блоковий пристрій /dev/vdc.

Відключення диска з копією системного диска

  1. Відключіть додатковий диск, на який скопійовано системний диск.

Після успішного копіювання відключіть цільовий блоковий пристрій: надалі з цього диска буде запущено новий інстанс. У прикладі потрібно відключити /dev/vdc.

Процес відключення описано в статті Відключення диска.

Увімкнення параметра Boot для системного диска

  1. Змініть налаштування системного диска та увімкніть параметр Bootable.

Редагування диска

Для цього:

  • відкрийте меню Volumes і виберіть Volumes;

  • у стовпці Actions відкрийте список і виберіть Edit Volume;

  • у діалоговому вікні встановіть прапорець Bootable.

Підключення дисків для створення дисків даних

  1. Підключіть до інстансу додаткові диски для створення дисків даних.

Цей крок потрібен, якщо мігрують додаткові диски. Щоб скопіювати такий диск, скористайтеся рекомендаціями з кроку 7.

Копіювання підготовлених образів дисків даних

  1. Скопіюйте підготовлені образи дисків даних на нові додаткові диски.

Технічно копіювання образу додаткового диска не відрізняється від копіювання системного диска.

У прикладі копіюється додатковий диск 2012_v2v-disk2, отриманий на етапі підключення до гіпервізора (крок 4):

dd if=/data/2012_v2v-disk2 of=/dev/vdc bs=32M

320+0 records in
320+0 records out
10737418240 bytes (11 GB) copied, 79,7397 s, 135 MB/s

Диск даних успішно скопійовано.

Відключення додаткових дисків

  1. Відключіть додаткові диски, на які скопійовано диски даних.

Процес відключення описано в статті Відключення диска. У прикладі потрібно відключити пристрій /dev/vdc.

Запуск інстансу

  1. Запустіть інстанс із підготовленого завантажувального диска.

Виконавши попередні кроки, ви отримаєте копії дисків гостьової машини 2012_v2v із сервера esxi_n.sim-networks.net у хмарному проєкті.

Запустіть новий інстанс зі скопійованого системного диска. Після успішного запуску підключіть до нього додаткові диски.

Встановлення необхідних драйверів virtio та QEMU Guest Agent

  1. Завершіть встановлення необхідних драйверів virtio та QEMU Guest Agent qemu-ga-x64 у Windows.

Встановлення драйверів virtio та QEMU Guest Agent

Після успішного завантаження інстансу встановіть компоненти, потрібні для стабільної роботи віртуальної машини та керування нею засобами OpenStack:

  • Balloon

  • NetKVM

  • QEMU Guest Agent.

Інші драйвери встановлюйте за потреби.

Щоб установити драйвер, відкрийте диспетчер пристроїв Windows, натисніть правою кнопкою миші потрібний пристрій і виберіть Update driver. Спочатку виберіть Ethernet Controller:

../../_images/virtio_driver_1.png

У вікні оновлення драйвера Ethernet Controller виберіть Browse my computer for drivers.

../../_images/virtio_driver_2.png

У наступному вікні виберіть Let me pick from a list of available drivers on my computer і натисніть Next.

../../_images/virtio_driver_3.png

У вікні вибору типу пристрою залиште Show All Devices і натисніть Next.

../../_images/virtio_driver_4.png

У вікні вибору драйвера виберіть Red Hat VirtIO Ethernet Adapter і натисніть Next.

../../_images/virtio_driver_5.png

У вікні Windows Security установіть прапорець Always trust software from Red Hat, Inc. і натисніть Install.

../../_images/virtio_driver_6.png

Повідомлення про успішне оновлення підтверджує, що драйвер мережевого пристрою встановлено.

../../_images/virtio_driver_7.png

Повторіть ці кроки для PCI-пристрою, щоб установити VirtIO Balloon Driver.

../../_images/virtio_driver_8.png

Драйвер PCI-пристрою VirtIO Balloon Driver встановлено.

../../_images/virtio_driver_9.png

Після встановлення всіх драйверів у розділі Other devices не повинно бути пристроїв без драйверів.

../../_images/virtio_driver_10.png

Після встановлення драйверів установіть QEMU Guest Agent. Завантажте стабільний ISO-образ virtio-win за посиланням. У каталозі guest-agent запустіть інсталятор qemu-ga-x64.msi. Додаткові параметри встановлення не потрібні.

Підключення додаткових дисків даних до інстансу

  1. Підключіть додаткові диски даних до нового інстансу.

Скористайтеся інструкцією Підключення додаткового диска до інстансу.

Перевірка результатів міграції віртуальної машини

  1. Перевірте роботу служб, сервісів і ліцензій на мігрованому сервері. Також перевірте стан сервера та доступність ресурсів і внесіть зміни, пов’язані з новою IP-адресацією. Переконайтеся, що після міграції всі компоненти працюють належним чином.

Підготовка сервера до міграції

Розгортання системи

Для розгортання служби потрібно встановити кілька програмних пакетів і змінити ISO-образ із драйверами. У наведеному прикладі відеодрайвери вилучаються, після чого створюється новий ISO-образ без каталогів qxl і qxldod. Як зазначено вище, ці драйвери спричиняють неправильну роботу віртуального відеопристрою.

Перевірте наявність оновлень ОС:

yum check-update

Установіть доступні оновлення ОС:

yum update -y

Встановлення програмного забезпечення

Від імені користувача root установіть пакет virt-v2v:

yum install virt-v2v -y

Додайте репозиторій virtio-win.repo:

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win -y

Установіть пакет xorriso для створення ISO-образів:

yum install xorriso -y

Підключіть ISO-образ virtio-win-0.1.141.iso до точки монтування /mnt:

mount -o loop /usr/share/virtio-win/virtio-win-0.1.141.iso /mnt

Перевірте вміст підключеного образу:

ls -lh /mnt/
total 5,7M
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 Balloon
dr-xr-xr-x.  2 root root 2,0K Aug  4  2017 guest-agent
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 NetKVM
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 pvpanic
dr-xr-xr-x.  4 root root 2,0K Aug  4  2017 qemufwcfg
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 qemupciserial
dr-xr-xr-x.  5 root root 2,0K Aug  4  2017 qxl
dr-xr-xr-x.  8 root root 2,0K Aug  4  2017 qxldod
dr-xr-xr-x.  3 root root 2,0K Aug  4  2017 smbus
dr-xr-xr-x. 10 root root 2,0K Aug  4  2017 vioinput
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 viorng
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 vioscsi
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 vioserial
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 viostor
-r--r--r--.  1 root root 2,9M Aug  4  2017 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Aug  4  2017 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Aug  4  2017 virtio-win_license.txt

Створіть каталог iso, до якого буде скопійовано вміст образу virtio-win-0.1.141.iso:

mkdir /data/iso

Перейдіть до каталогу /mnt:

cd /mnt

Скопіюйте всі дані з образу virtio-win-0.1.141.iso до каталогу /data/iso/:

cp -r /mnt/. /data/iso/

Перевірте, що всі дані скопійовано:

ls -lh /data/iso/
total 5,7M
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 Balloon
dr-xr-xr-x.  2 root root 4,0K Feb  8 10:45 guest-agent
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 NetKVM
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 pvpanic
dr-xr-xr-x.  4 root root 4,0K Feb  8 10:45 qemufwcfg
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 qemupciserial
dr-xr-xr-x.  5 root root 4,0K Feb  8 10:45 qxl
dr-xr-xr-x.  8 root root 4,0K Feb  8 10:45 qxldod
dr-xr-xr-x.  3 root root 4,0K Feb  8 10:45 smbus
dr-xr-xr-x. 10 root root 4,0K Feb  8 10:45 vioinput
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 viorng
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 vioscsi
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 vioserial
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 viostor
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Feb  8 10:45 virtio-win_license.txt

Видаліть каталоги відеодрайверів qxl і qxldod із /data/iso/:

rm -rf /data/iso/qxl
rm -rf /data/iso/qxldod

Перевірте, що каталоги видалено:

ls -lh /data/iso/
total 5,7M
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 Balloon
dr-xr-xr-x.  2 root root 4,0K Feb  8 10:45 guest-agent
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 NetKVM
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 pvpanic
dr-xr-xr-x.  4 root root 4,0K Feb  8 10:45 qemufwcfg
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 qemupciserial
dr-xr-xr-x.  3 root root 4,0K Feb  8 10:45 smbus
dr-xr-xr-x. 10 root root 4,0K Feb  8 10:45 vioinput
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 viorng
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 vioscsi
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 vioserial
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 viostor
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Feb  8 10:45 virtio-win_license.txt

Створіть із файлів у каталозі /data/iso/ ISO-образ з ім’ям virtio-win-0.1.141.iso:

xorrisofs -r -J -o /data/virtio-win-0.1.141.iso /data/iso/

xorriso 1.5.0 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:/data/virtio-win-0.1.141.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  186g free
Added to ISO image: directory '/'='/data/iso'
xorriso : UPDATE :     990 files added in 1 seconds
xorriso : UPDATE :     990 files added in 1 seconds
xorriso : UPDATE :  8.61% done
ISO image produced: 278601 sectors
Written to medium : 278601 sectors at LBA 0
Writing to 'stdio:/data/virtio-win-0.1.141.iso' completed successfully.

Перевірте наявність створеного ISO-образу в каталозі /data:

ls -lh /data
total 545M
drwxr-xr-x. 14 root root 4,0K Feb  8 10:54 iso
drwx------.  2 root root  16K Feb  8 10:37 lost+found
-rw-r--r--.  1 root root 545M Feb  8 10:58 virtio-win-0.1.141.iso

Потрібний образ створено.

Замініть вихідний ISO-образ у каталозі /usr/share/virtio-win/ підготовленим образом без відеодрайверів. Для цього:

  • відключіть образ:

umount /mnt
  • перейдіть до каталогу /usr/share/virtio-win/ і видаліть ISO-образ virtio-win-0.1.141.iso:

cd /usr/share/virtio-win/
rm -f virtio-win-0.1.141.iso
  • скопіюйте підготовлений ISO-образ:

cp /data/virtio-win-0.1.141.iso .
  • видаліть ISO-файл із каталогу /data:

rm -f /data/virtio-win-0.1.141.iso
  • видаліть файли, з яких було створено ISO-образ:

rm -rf /data/iso/

Перетворення диска вручну

Програмне забезпечення образу SIM-V2V дає змогу вручну перетворювати віртуальні диски з формату .vmdk у raw з локального каталогу інстансу.

Цей спосіб застосовують, якщо:

  • неможливо підключитися до сервера ESXi;

  • потрібно одноразово перетворити диск даних або системний диск;

  • користувач має лише певний набір віртуальних дисків, які потрібно перенести до хмари.

Копіювання даних віртуального сервера

Приклад віддаленого підключення до сервера ESXi та рекурсивного копіювання каталогу з файлами віртуальної машини:

scp -r esxi_user@esxi_n.sim-networks.net:/vmfs/volumes/55343e73-583f862a-f32d-0cc47a13cce8/2012_v2v /data/
Password:
2012_v2v.vmx                    100% 3513     2.0MB/s   00:00
2012_v2v-flat.vmdk              100%   40GB  92.1MB/s   07:24
2012_v2v.vmdk                   100%  448   127.2KB/s   00:00
2012_v2v.vmsd                   100%    0     0.0KB/s   00:00
2012_v2v.nvram                  100% 8684     6.1MB/s   00:00
vmware-1.log                    100%  593KB  70.8MB/s   00:00
2012_v2v_1-flat.vmdk            100%   10GB  90.6MB/s   01:53
vmware-2.log                    100%  308KB  55.6MB/s   00:00
2012_v2v_1.vmdk                 100%  450   431.0KB/s   00:00
vmware.log                      100%  288KB  55.7MB/s   00:00

Усі файли віртуальної машини 2012_v2v скопійовано.

Перевірте скопійовані файли:

ls -lh /data/2012_v2v
total 51G
-rw-------. 1 root root  10G Feb 12 18:01 2012_v2v_1-flat.vmdk
-rw-------. 1 root root  450 Feb 12 18:01 2012_v2v_1.vmdk
-rw-------. 1 root root  40G Feb 12 17:59 2012_v2v-flat.vmdk
-rw-------. 1 root root 8,5K Feb 12 17:59 2012_v2v.nvram
-rw-------. 1 root root  448 Feb 12 17:59 2012_v2v.vmdk
-rw-r--r--. 1 root root    0 Feb 12 17:59 2012_v2v.vmsd
-rwxr-xr-x. 1 root root 3,5K Feb 12 17:52 2012_v2v.vmx
-rw-r--r--. 1 root root 593K Feb 12 17:59 vmware-1.log
-rw-r--r--. 1 root root 309K Feb 12 18:01 vmware-2.log
-rw-r--r--. 1 root root 289K Feb 12 18:01 vmware.log

Дані скопійовано повністю.

Перетворення системного диска

virt-v2v  -i disk  2012_v2v-flat.vmdk -o local -of raw -os  /data/2012_v2v/ -v -x
[   0,0] Opening the source -i disk 2012_v2v-flat.vmdk
[   0,0] Creating an overlay to protect the source from being modified
[   0,1] Initializing the target -o local -os /data/2012_v2v/
[   0,1] Opening the overlay
[   7,9] Inspecting the overlay
[  11,7] Checking for sufficient free disk space in the guest
[  11,7] Estimating space required on target for each disk
[  11,7] Converting Windows Server 2012 Standard Evaluation to run on KVM
virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing.
Firstboot scripts may conflict with PnP.
virt-v2v: warning: there is no QXL driver for this version of Windows (6.2
x86_64).  virt-v2v looks for this driver in
/usr/share/virtio-win/virtio-win.iso

The guest will be configured to use a basic VGA display driver.
virt-v2v: This guest has virtio drivers installed.
[  29,3] Mapping filesystem data to avoid copying unused and blank areas
[  30,1] Closing the overlay
[  30,4] Checking if the guest needs BIOS or UEFI to boot
[  30,4] Assigning disks to buses
[  30,4] Copying disk 1/1 to /data/2012_v2v/2012_v2v-flat-sda (raw)
    (100.00/100%)
[ 343,4] Creating output metadata
[ 343,4] Finishing off

Перевірте перетворений файл віртуального диска:

qemu-img info 2012_v2v-flat-sda
image: 2012_v2v-flat-sda
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 8.1G

Файл успішно перетворено в потрібний формат.

Перетворення диска даних

qemu-img convert -p -f vmdk -O raw 2012_v2v_1.vmdk disk.raw
(100.00/100%)

Перевірте дані:

qemu-img info disk.raw
image: disk.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 54M

Файл успішно перетворено в потрібний формат.

Утиліта qemu-img convert підтримує такі формати перетворення: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug

Докладнішу інформацію про утиліту QEMU можна отримати командою qemu-img --help.

Після підготовки дисків — перетворення в потрібний формат і встановлення драйверів virtio — скопіюйте їх на окремі диски та створіть із них інстанс. У новому інстансі завершіть встановлення драйверів virtio та QEMU Guest Agent. Порядок дій наведено в попередніх розділах цієї інструкції.