Міграція з Proxmox на VMmanager

Хостери, що вже виросли з домашнього сервера з 1-2 віртуальними серверами до декількох високопродуктивних серверів у ДЦ, замислюються про автоматизацію рутинних дій та адміністрування віртуальних серверів. Найпопулярнішим із безкоштовних менеджерів віртуалізації є Proxmox. При своїх плюсах (він безкоштовний, з відкритим вихідним кодом та спільнотою), він має і мінуси, які з лишком перекривають ці плюси:

  • Платні оновлення
  • Платна технічна підтримка
  • Відсутність офіційної українськомовної документації
  • Непрофесійна локалізація
  • Відносна складність установки
  • Усі додаткові можливості та інтеграції – платні
  • Багато компонентів створено сторонніми розробниками
міграція

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

Користуючись програмними продуктами ISPsystem, хостер може отримати повну автоматизацію всього процесу надання послуг своїм клієнтам.

У цій статті я розповім, як перенести віртуальні машини з Proxmox під керування VMmanager. VMmanager не підтримує імпорт або міграцію контейнерів та віртуальних серверів з інших менеджерів віртуалізації. Але це не складно зробити за допомогою API VMmanager. Розглянемо варіант міграції контейнерів із Proxmox на VMmanager-OVZ.

Міграція контейнерів з Proxmox на VMmanager-OVZ.

Міграція спрощуєтьсятим, що це можна зробити на одному сервері. VMmanager-OVZ без проблем встановлюється на тому ж сервері, де працює Proxmox без будь-якого втручання в роботу контейнерів.

Для цього слід завантажити та запустити файл-інсталятор — http://download.ispsystem.com/install.5.sh після чого відповісти на кілька питань для вибору потрібного програмного продукту та його версії. Так само автоматично підключиться офіційний репозитарії і почнеться встановлення панелі керування та супутнього ПЗ. Зверніть увагу, що налаштування openvz від proxmox без будь-яких проблем використовуються в VMmanager-OVZ. Єдине зауваження: після встановлення VMmanager-OVZ, необхідно вручну завантажити приклад конфігураційного файлу для openvz. Він потрібний для створення контейнера, і відсутній у дистрибутиві proxmox, тому в логах при спробі створити контейнер можна буде спостерігати таку помилку:

2014-12-03T10:39:28+0800 vzctl: CT 100: Sample config /etc/pve/openvz/ve-basic.conf-sample немає повідомлення: Немає такого файлу або directory 2014-12-03T10:39 :28+0800 vzctl: CT 100: Creation of container private area failed

Завантажуємо приклад конфігураційного файлу для openvz з офіційного репозиторію і поміщаємо до директорії, де він повинен бути:

Хочу звернути увагу на один момент при переносі. Існує можливість, що ідентифікаційні номери контейнерів можуть не збігтися. В обох випадках нумерація починається зі 100. Хоча в Proxmox можна вибрати довільний ID для створюваного контейнера, VMmanager цей лічильник починається зі 100 і не скидається, після видалення всіх контейнерів, нумерація продовжується з того числа, яке є наступним для віддалених. Щодо цього є одне рішення: потрібно видалити всі створені раніше віртуальнісервери та аварійно завершити процес vmmgr, тоді нумерація піде спочатку.

Налаштування параметрів у VMmanager-OVZ

vmmanager
Створення шаблону контейнера з параметрами за промовчанням.

Proxmox
Створення контейнера в Proxmox

vmmanager
Створення контейнера в VMmanager

Перенесення контейнерів утруднений тим, що обидва менеджери віртуальних серверів використовують різні методи зберігання інформації про ресурси керованих контейнерів. Proxmox використовує конфігураційні файли openvz, VMmanager - зберігає все в базі даних mysql, дублюючи налаштування у файли для openvz. Тому схема ускладнюється тим, що потрібно створити контейнери з VMmanager-OVZ і потім замінити контейнер на контейнер з Proxmox.

Після налаштувань маємо на сервері робочі екземпляри Proxmox і VMmanager-OVZ. В іншому процес міграції наводиться до кількох простих кроків:

  • Зупинка контейнера, створеного в Proxmox
  • Створення дампа контейнер.
  • Перейменування конфігураційного файлу контейнера
  • Видалення або перейменування файлів контейнера
  • Створення контейнера в VMmanager-OVZ з тими ж параметрами, що переноситься
  • Відновлення дампи в новий контейнер
  • Запуск нового контейнера

Щоб спростити цей процес, скористайтесь прикладом скрипта, який я прикладаю нижче.

Тепер перейдемо до варіанта міграції з Proxmox із віртуальними серверами на VMmanager-KVM.

Міграції віртуальних серверів з Proxmox на VMmanager-KVM.

На жаль, тут не все піде так само гладко, як у попередньому випадку. Встановити VMmanager-KVM в якості основного вузла на той же сервер, де працює Proxmox не вийде через проблеми із залежністю пакетів.Тому розглянемо міграцію із використанням другого сервера.

Виробляємо налаштування VMmanager-KVM, що не особливо відрізняється від тієї, що я описав вище для VMmanager-OVZ

І діємо за таким алгоритмом:

  • копіюємо з сервера Proxmox конфгураційний файл віртуальної машини
  • створюємо на vmmgr ідентичну віртуальну машину
  • зупиняємо
  • зупиняємо на сервері Proxmox
  • робимо копію файлу образу vm
  • переносимо з сервера Proxmox образ на сервер з VMmanager-KVM та підмінюємо старий образ
  • запускаємо vm у VMmanager-KVM

cat .ssh/id_rsa.pub ssh root@proxmox cat >> /root/.ssh/authorized_keys»

І далі вже все можна зробити за допомогою цього скрипту.