Перенесення linux-сервера в віртуальне середовище за допомогою acronis true image, блог dоктора dобрянского

Сьогодні закінчив цікавий експеримент - перенесення сервера під керуванням CentOS 5 з реального заліза, на віртуальне.

Оскільки віртуалізація і хмарні обчислення в наш час стають все більш і більш популярними, вважаю що даний спосіб перенесення фізичних машин у віртуальне середовище буде актуальним в деяких випадках.

Ситуація така: є сервер з працюючим і налаштованим CentOS на борту, нам потрібно між голим залізом і операционкой зробити прокладку у вигляді гипервизора ESXi / XenServer / Virtualbox і т.п. При цьому, у нас немає другого сервера, немає vCenter, відповідно, немає можливості використовувати «легальні» і підтримувані утиліти типу VMware Converter для P2V міграцій.

Власне, у мене і виникла необхідність перенесення Linux-сервера в такій ситуації. Але перш ніж робити все це на живому, що працює продакшн-сервері, я вирішив протестувати в, так би мовити, «лабораторних» умовах. І ось що вийшло.

План міграції такий:

- робимо образ диска за допомогою Acronis True Image на флешку або зовнішній вінчестер (в залежності від обсягу)

- форматіруем внутрішні гвинти сервера і встановлюємо гипервизор (в моєму випадку VMware ESXi 5.0)

- створюємо потрібних розмірів віртуальну машину

- розгортаємо образ диска на виртуалке

Даний спосіб хороший тим, що для міграції нам знадобиться тільки: Live CD з Acronis, установник ESXi, флешка або зовнішній вінчестер відповідних розмірів, консоль (ноутбук або ПК-шка в одній мережі з сервером).

Теоретично, план цілком робочий, але «можуть бути варіанти» :))

Загалом ближче до справи, по пунктах:

Створення образу працюючого сервера

1. Завантажуємося з Windows Live-CD на якому є Acronis (наприклад Alkid).

2. Підключаємо флешку або зовнішній вінчестер, вільного місця на якому буде досить для створення образу. Раджу брати пристрій, на якому є стільки вільного місця, скільки зайнятого простору на всіх розділах сервера разом узятих. Акроніс, звичайно, стискає дані в процесі створення образу, але краще брати з запасом.

3. За допомогою Acronis True Image створюємо файл образу всього вінчестера. Детально цей процес описувати не буду тому що Acronis - програма багатьом знайома і інтуїтивно зрозуміла. Єдине, на що потрібно звернути увагу, це що б стояли галочки на всіх розділах диска, включаючи MBR.

Форматування дисків і установка гипервизора

4. Після сзоданія способу працюючого сервера відключаємо зовнішній накопичувач, вставляємо інсталяційний диск з гіпервізором, в моєму випадку - VMware ESXi 5.o. і перезавантажуємо сервер.

5. Встановлюємо ESXi. який автоматично отформатирует вінчестер (або RAID-масив сервера), попередньо попередивши про це (докладно процес установки опишу окремою статтею).

6. Налаштовуємо мережу на ESXi і підключаємося за допомогою vSphere Client 5.0 (його можна завантажити на веб-інтерфейсі ESXi-сервера) з нашої «консолі» (ноутбук або пк-шка).

Якщо проблем з підключенням до сервера через vSphere Client не виникло (а їх не повинно виникнути), то можна приступити до наступного етапу - підготовки цільової віртуальної машини для сервера

7. У vSphere Client-е натискаємо правою на нашу хосту і вибираємо «New Virtual Machine» -> «Custom».

8. Дотримуючись майстру вибираємо «Version 8» -> задаємо параметри оперативної пам'яті і кількість процесорів, тип операційної системи і т.п ..

9. Коли доходимо до диска - вибираємо «Create New Disk» і задаємо розмір віртуального диска, який хочемо віддати виртуалке. Тут потрібно вказати розмір не менше ніж обсяг зайнятого простору на ВСІХ розділах нашого Linux-сервера, коли він ще був живий.

10. Що б прокинути USB-девайс в нашу виртуалку, знадобиться додати відповідний контролер в неї. Для цього натискаємо правою -> «Edit Settings» -> «Add» -> «USB controller».

Віртуальну машинку створили і підготували - можна приступати до розгортання образу в ній

11. Монтуємо iso-шку Live-CD в CD-привід нашої виртуалки і прокидаємо наш USB-накопичувач, завантажується.

12. Переконуємося, що наш зовнішній накопичувач підключений і розпізнається і приступаємо до розгортання образу за допомогою Acronis True Image.

Мені було цікаво, як акроніс відреагує на зміну розміру вінчестера при відновленні лінуксових розділів (в виртуалке вінчестер був в рази менше). Програма люб'язно запропонувала зробити автоматичний ресайз всіх розділів таким чином, що б поміститися в виділений простір. Мені ця ідея сподобалася і я вирішив ризикнути. У підсумку - програма відрізала у кожного розділу однаковий відсоток вільного простору (досить розумно).

13. Як було відмічено вище - на одному з етапів відновлення Acronis запропонував зробити автоматичний ресайз розділів, або ж можна зробити це вручну. Я вибрав автомат. Трохи забігаючи наперед, скажу що дана процедура пройшла вдало і Acronis не побив мої розділи, а все все файли залишилися в цілості й схоронності. У мене всі розділи були в старій добрій Ext3, про інші файлові системи не скажу.

14. Після завершення відновлення системи з образу - відключаємо iso-шку, usb-девайс і перезавантажуємо виртуалку спостерігаючи результати своєї праці.

І шо з того вийшло ...

Після перезавантаження, я був приємно здивований тим, що мій CentOS почав бадьоро грузиться. Спочатку Grub, потім ядро ​​... це означало що MBR в порядку і завантажувальний розділ теж. Але коли справа дійшла до монтування дисків, то вилізла бочина:

В результаті гугленія з'ясувалося що вирішенням цієї проблеми є створення нового файлу initrd. Про те, як це зробити, написано тут.

Після генерування нового файлу initrd мій CentOS завівся без проблем, чому я дуже зрадів.

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

Експеримент можна вважати вдалим, а даний спосіб міграції - працюючим. АЛЕ! результат даної процедури залежить від дистрибутива, стану операційної системи, файлових систем на розділах і т.п. тому завершення такої процедури може бути далеко не тривіальним.

Цього разу я переносив CentOS в лабораторних умовах, а найближчим часом буду переносити «бойовий» сервер Debian Squeeze.

Тому - далі буде ...;)

Поділитися посиланням: