Про бекапи в Proxmox VE

Про бекапи в Proxmox VE
У статті «Магія віртуалізації: вступний курс у Proxmox VE» ми успішно встановили на сервер гіпервізор, підключили до нього сховище, подбали про елементарну безпеку та навіть створили першу віртуальну машину. Тепер розберемо як реалізувати базові завдання, які доводиться виконувати, щоб завжди мати можливість відновити роботу сервісів у разі збою.

Штатні інструменти Proxmox дозволяють не тільки виконувати резервне копіювання даних, але й створювати набори попередньо настроєних образів операційних систем для швидкого розгортання. Це не тільки допомагає за необхідності створити новий сервер для будь-якого сервісу за кілька секунд, але також зменшує час простою до мінімального.

Розповідати про необхідність створення бекапів ми не будемо, оскільки це очевидно і вже давно є аксіомою. Зупинимося на деяких неочевидних речах та особливостях.

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

Алгоритми резервного копіювання

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

Розберемо спочатку механізми стиснення:

  1. Стиснення LZO. Алгоритм стиснення даних без втрат, придуманий ще середині 90-х. Код було написано Маркусом Оберхеймером (реалізується в Proxmox утилітою lzop). Основною особливістю цього алгоритму є дуже швидкісна розпакування. Отже, будь-яка резервна копія, створена за допомогою цього алгоритму, може бути за потреби розгорнута за мінімальний час.
  2. Стиснення GZIP. При використанні цього алгоритму резервна копія «на льоту» стискатиметься утилітою GNU Zip, яка використовує потужний алгоритм Deflate, створений Філом Кацем. Основний упор робиться на максимальне стискування даних, що дозволяє скоротити місце на диску, що займається резервними копіями. Головною відмінністю від LZO є те, що процедури компресії/декомпресії займають досить багато часу.

Режими архівування

Proxmox пропонує на вибір системному адміністратору три методи резервного копіювання. За допомогою них можна вирішити необхідне завдання, визначивши пріоритет між необхідністю простою та надійністю зробленої резервної копії:

  1. Режим Snapshot (Знімок). Цей режим можна назвати як Live backup, оскільки для його використання не потрібно зупиняти роботу віртуальної машини. Використання цього механізму не перериває роботу VM, але має дві дуже серйозні недоліки - можуть виникати проблеми через блокування файлів операційною системою і найнижча швидкість створення. Резервні копії, створені цим методом, треба завжди перевіряти у тестовому середовищі. В іншому випадку є ризик, що при необхідності екстреного відновлення вони можуть дати збій.
  2. Режим Suspend (Припинення). Віртуальна машина тимчасово заморожує свій стан, до закінчення процесу резервного копіювання. Вміст оперативної пам'яті не стирається, що дозволяє продовжити роботу рівно з тієї точки, де робота була припинена. Зрозуміло, це викликає простий сервер на час копіювання інформації, зате немає необхідності вимикання/вмикання віртуальної машини, що досить критично для деяких сервісів. Особливо якщо запуск частини сервісів не є автоматичним. Проте такі резервні копії також слід розгортати у тестовому середовищі для перевірки.
  3. Режим Stop (Зупинка). Найнадійніший спосіб резервного копіювання, але вимагає повного вимкнення віртуальної машини. Надсилається команда на штатне вимкнення, після зупинки виконується резервне копіювання і потім віддається команда на увімкнення віртуальної машини. Кількість помилок за такого підходу мінімально і найчастіше зводиться до нуля. Резервні копії, створені в такий спосіб, практично завжди розгортаються коректно.

Виконання процедури резервування

Для створення резервної копії:

  1. Переходимо на потрібну віртуальну машину.
  2. вибираємо пункт Резервування.
  3. натискаємо кнопку Резервувати зараз. Відкриється вікно, де можна буде вибрати параметри майбутньої резервної копії.

    Про бекапи в Proxmox VE

  4. Як сховище вказуємо те, що ми підключали у попередній частині.
  5. Після вибору параметрів натискаємо кнопку Резервування і чекаємо, доки резервну копію буде створено. Про це говоритиме напис TASK OK.

    Про бекапи в Proxmox VE

Тепер створені архіви з резервними копіями віртуальних машин будуть доступні для завантаження з сервера. Найпростішим і найбанальнішим способом копіювання є SFTP. Для цього скористайтесь популярним кросплатформним FTP-клієнтом FileZilla, який вміє працювати за SFTP-протоколом.

  1. В полі хост вводимо IP-адресу нашого сервера віртуалізації, у полі Ім'я користувача вводимо root, у поле Пароль - той, який був обраний під час встановлення, а в полі порт вказуємо «22» (чи будь-який інший порт, який було встановлено для SSH-подключений).
  2. натискаємо кнопку Швидке з'єднання і, якщо всі дані були введені правильно, в активній панелі Ви побачите всі файли, розташовані на сервері.
  3. Переходимо до директорії /mnt/storage. Всі резервні копії, що створюються, лежатимуть у піддиректорії «dump». Вони матимуть вигляд:
    • vzdump-qemu-номер_машини-дата-час.vma.gz у разі вибору методу GZIP;
    • vzdump-qemu-номер_машини-дата-час.vma.lzo у разі вибору методу LZO.

Резервні копії рекомендується одразу завантажувати з сервера та зберігати в надійному місці, наприклад, у нашому хмарному сховищі. Якщо розпакувати файл із роздільною здатністю vma, однойменною утилітою, що йде в комплекті з Proxmox, то всередині будуть файли з розширеннями сировина, конф и fw. У цих файлах міститься таке:

  • сировина - образ диску;
  • конф - Конфігурація VM;
  • fw - Налаштування фаєрвола.

Відновлення із резервної копії

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

  1. Відкриваємо сховище, де лежить резервна копія.
  2. Переходимо на вкладку вміст.
  3. Вибираємо потрібну копію та натискаємо кнопку Відновлення.

    Про бекапи в Proxmox VE

  4. Вказуємо цільове сховище та ID, який буде надано машині, після завершення процесу.
  5. натискаємо кнопку Відновлення.

Як тільки відновлення завершиться, VM з'явиться у списку доступних.

Клонування віртуальної машини

Наприклад, припустимо, що у компанії потрібно внести зміни у будь-який критичний сервіс. Така зміна реалізується через внесення множини правок конфігураційні файли. Результат при цьому непередбачуваний, і будь-яка помилка здатна викликати збій сервісу. Щоб подібний експеримент не торкнувся працюючого сервера, рекомендується виконати клонування віртуальної машини.

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

Розкажемо, як уникнути такої ситуації. Безпосередньо перед виконанням клонування слід внести зміни до конфігурації мережі. Для цього необхідно тимчасово змінити IP-адресу, але не перезапускати мережевий сервіс. Після виконання клонування на основній машині слід повернути налаштування назад, а на клонованій машині встановити будь-яку іншу IP-адресу. Тим самим ми отримаємо дві копії одного сервера на різних адресах. Це дозволить швидко ввести новий сервіс у роботу.

Якщо цим сервісом є веб-сервер, достатньо лише змінити А-запис у Вашого DNS-провайдера, після чого запити клієнтів по цьому домену будуть надсилатися вже на адресу клонованої віртуальної машини.

До речі, Selectel надає всім своїм клієнтам послугу розміщення будь-якої кількості доменів на серверах NS безкоштовно. Управління записами здійснюється як за допомогою нашої панелі керування, так і за допомогою спеціального API. Докладніше про це читайте у нашій базі знань.

Клонування VM у Proxmox є дуже простим завданням. Для її виконання необхідно виконати такі дії:

  1. Перейти на потрібну машину.
  2. Вибрати з меню більше пункт Клон.
  3. У вікні заповнити параметр Ім'я.

    Про бекапи в Proxmox VE

  4. Виконати клонування натисканням кнопки Клон.

Цей інструмент дозволяє зробити копію віртуальної машини не лише на локальному сервері. Якщо кілька серверів віртуалізації об'єднати в кластер, за допомогою цього інструменту можна відразу перемістити створену копію на потрібний фізичний сервер. Корисною функцією є вибір дискового сховища (параметр Цільове сховище), що дуже зручно при переміщенні віртуальної машини з одного фізичного носія на інший.

Формати віртуальних накопичувачів

Розповімо докладніше про формати накопичувачів, що використовуються в Proxmox:

  1. RAW. Найзрозуміліший і найпростіший формат. Це файл із даними жорсткого диска "байт в байт" без стиснення або оптимізації. Це дуже зручний формат, оскільки його легко змонтувати стандартною командою mount у будь-якій linux-системі. Більше того, це найшвидший «тип» накопичувача, оскільки гіпервізору не потрібно його ніяк обробляти.

    Серйозним недоліком цього формату є те, що скільки ви виділили місця для віртуальної машини, рівно стільки місця на жорсткому диску і займатиме файл у форматі RAW (незалежно від реально зайнятого місця всередині віртуальної машини).

  2. QEMU image format (qcow2). Мабуть, найуніверсальніший формат для виконання будь-яких завдань. Його перевага в тому, що файл з даними міститиме лише реально зайняте місце всередині віртуальної машини. Наприклад, якщо було виділено 40 Гб місця, а реально було зайнято лише 2 Гб, все інше місце буде доступно для інших VM. Це дуже актуально за умов економії дискового простору.

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

    Слід пам'ятати, що всі операції введення-виводу при використанні цього формату програмно обробляються, що тягне за собою уповільнення активної роботи з дисковою підсистемою. Якщо стоїть завдання розгорнути базу даних на сервері, то краще вибрати формат RAW.

  3. VMware image format (vmdk). Цей формат є "рідним" для гіпервізора VMware vSphere і був включений до Proxmox для сумісності. Він дозволяє виконати міграцію віртуальної машини VMware до інфраструктури Proxmox.

    Використання vmdk на постійній основі не рекомендується, цей формат найповільніший у Proxmox, тому він годиться лише для виконання міграції, не більше. Ймовірно, в найближчому майбутньому цей недолік буде усунений.

Робота з образами дисків

У комплекті з Proxmox є дуже зручна утиліта під назвою qemu-img. Однією з її функцій є конвертування образів віртуальних дисків. Щоб скористатися ним, достатньо відкрити консоль гіпервізора та виконати команду у форматі:

qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2

У наведеному прикладі vmdk-образ віртуального накопичувача VMware під назвою тест буде перетворено на формат qcow2. Це дуже корисна команда, коли потрібно виправити помилку під час початкового вибору формату.

Завдяки цій команді можна примусово створити потрібний образ, використовуючи аргумент створювати:

qemu-img create -f raw test.raw 40G

Така команда створить образ test у форматі RAW, Розміром 40 Гб. Тепер він підходить для підключення до будь-якої з віртуальних машин.

Зміна розміру віртуального диска

І насамкінець покажемо як збільшити розмір образу диска, якщо з якихось причин місця на ньому перестало вистачати. Для цього скористаємося аргументом resize:

qemu-img resize -f raw test.raw 80G

Тепер наш образ став розміром 80 Гб. Переглянути детальну інформацію про образ можна за допомогою аргументу інформація:

qemu-img info test.raw

Не варто забувати, що саме розширення образу не збільшить розмір розділу автоматично - просто додасть доступний вільний простір. Для збільшення розділу скористайтесь командою:

resize2fs /dev/sda1

де / dev / sda1 - Потрібний розділ.

Автоматизація створення резервних копій

Використання ручного способу створення резервних копій – завдання дуже трудомістке і займає багато часу. Тому Proxmox VE містить у собі засіб для автоматичного резервного копіювання за розкладом. Розглянемо, як це зробити:

  1. Використовуючи веб-інтерфейс гіпервізора, відкриваємо пункт Дата центр.
  2. вибираємо пункт Резервування.
  3. натискаємо кнопку Добавить.
  4. Задаємо параметри для планувальника.

    Про бекапи в Proxmox VE

  5. Відзначаємо галочкою пункт Включити.
  6. Зберігаємо зміни, використовуючи кнопку Створити.

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

Висновок

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

Звісно, ​​це єдиний можливий спосіб збереження важливих даних. Існує безліч інструментів, наприклад, Лукавість, за допомогою яких можна створювати повні та інкрементні копії вмісту віртуальних серверів на базі Linux.

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

Джерело: habr.com

Додати коментар або відгук