Безкоштовні утиліти для бекапа з безкоштовного esxi Хабрахабр

Якось з'явилося у мене кілька персональних проектів, які вимагали відносно багато дискового простору - близько 2TB. Відповідних VPS не знайшлося (мало хто пропонує багато HDD місця), тому я взяв виділений сервер у OVH, поставив там ESXI 5.5 з безкоштовною ліцензією і все працювало.

Через деякий час, з развитем проектів, я став налаштовувати адмінських фішки - моніторинг, бекап, і з'ясував, що виявляється сервер, в якому мені обіцяли Soft RAID, і на який хостер (OVH) накотив свій образ ESXI - без RAID! Тобто просто 2 диска. Ну да, тепер ось я знаю, що ESXI не підтримує Soft RAID, тільки Hard. Стало незатишно. Та й 2TB стало не вистачати. Загалом взяв я собі сервер побільше, з апаратним RAID і поставив туди ESXI 6.0.

І виникло два завдання, вирішення яких я тут опишу:

  1. Перенести віртуальні машини (деякі з яких близько 1TB) з одного сервера на інший з мінімальним офлайні # 13;
  2. Робити регулярні бекапи # 13;
Скажу відразу, що обидві ці завдання легко вирішуються, якщо є хоча б мінімальна платна ліцензія ESXI. Справа в тому, що «рідний» Backup API в безкоштовній версії ESXI вимкнений. Тому доводиться знаходити інші шляхи.

З платній ліцензією є варіант міграції через vCenter. Ще є безкоштовна версія Veeam Backup. яка дозволяє робити бекапи і переносити віртуальні машини з однієї системи на іншу і при цьому не потрібно їх зупиняти. Але з безкоштовною ліцензією ESXI, поточна версія - Veeam 9 - не працює взагалі. # 13; Ще є рішення від HP - VM Explorer. у якого є безкоштовний Free Edition.

VM Explorer 6.2 вміє працювати з free ESXI, але:

  • При створенні бекапа - з сервера копіюється повний розмір образу, навіть якщо диск там тонкий (thin). Тобто якщо диск у віртуальної машини на 500GB, а записано там тільки 50GB, то копіюватися будуть 500GB. І так - кожен раз. Режим інкрементального бекапа (тільки на локальний комп'ютер) є в платній версії, я його не тестував - на знаю, наскільки воно ефективно. # 13;
  • Безкоштовна ліцензія дозволяє робити бекап тільки на локальні диски. Тобто, щоб копіювати на інший ESXI хост потрібна вже платна ліцензія. # 13;
  • У безкоштовної версії немає планувальника, тобто запускати бекапи потрібно вручну. # 13;
Інший популярний рішення - це open source проект ghettoVCB. але мені він здався дещо складним для використання, та й документація виглядає трохи застарілою. Про цей проект вже писали тут на Хабре.

Тут можна просто згадати:

Я в кінцевому підсумку вирішив використовувати 2 інструменти:

У безкоштовної версії:

  • «Гарячі» бекапи, без зупинки віртуальних машин. Робиться це за допомогою снепшот (snapshot) # 13;
  • Конфігурація крона (cron) в ESXI # 13;
  • Звіти по email # 13;
  • ротація бекапов # 13;
  • Бекап на інший ESXI хост. У безкоштовної версії - за допомогою rsync, заточеного під ESXI. У платній версії ще є інкрементальні бекапи (OneDiff) через створення проміжних снепшот (як на мене - щось не дуже вдале рішення) і дедуплікація за допомогою їх NAS (XSINAS) # 13;

Інструкція установки Xsibackup

Ця ж інструкція англійською - 33hops.com/blog_xsibackup-quickstart.html

secretKey у вас буде свой.Еслі datastore у вас називається по іншому - то треба прописати свій шлях.

Побачивши wget, хтось може похитати головою, і сказати, що ставити чужий софт на ESXI хост - це несекьюрно і т.д. Однак при будь-якому бекапе, ви будете віддавати root пароль програмі для бекапа, тобто комусь довіряти ви будете в будь-якому випадку. При локальному копіюванні Xsibackup використовує тільки shell скрипти, які можна подивитися і перевірити ...

Потім створюєте папку, куди будемо складати бекапи - локально, або на іншому сервері:

Якщо копіювати бекапи буде між хостами, то ділимося SSH ключами: Якщо хочемо, щоб був бекапи запускалися через крон, то: Тестуємо, що все працює локально: Щоб протестувати роботу між хостами, міняємо: Якщо SMTP вимагає TLS, то підтримується --smtp- sec = TLS

»Повний список опцій (англійською)

Локально, тобто на одному хості, все працює відмінно: бекапи робляться за допомогою нативной утиліти ESXI - vmkfstools. Все швидко, і тонкі диски залишаються тонкими. З жорсткими дисками, у мене вийшла швидкість близько 60MB / s

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

У моєму випадку, хостер гарантує швидкість мережі в 250Mb / s (

31MB / s), але реально між двома хостами в одному датацентрі бекап у мене працював на 10-20MB / s. Не знаю в чому тут справа, - гальмує це мережа, rsync або що ще, - але процес розтягується дуже надовго.

Update. знайшов статтю. - по їх бенчмарк виходить, що справа в зупинитися SSH (поверх якого працює rsync), по NFS було б швидше.

Радує, що в результаті диски таки залишаються тонкими.

Процес перенесення і бекапа VMs

Процес перенесення VMs між хостами виглядає у мене так: Таким же чином поки виглядає і бекап VM від хостера до себе додому. Для цього у мене вдома крутиться ESXI - щоб ovftool міг по мережі передавати тільки корисне навантаження.

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

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

Поки я це все роблю вручну з консолі - переношу на інший хост, роблю перший бекап, але з часом думаю все налаштувати через крон. Може пізніше допишу тут пару параграфів про те, як налаштовувати крон. Оригінальні інструкції ось тут: 33hops.com/xsibackup-cron-how-to.html

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

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

Повне керівництво англійською тут. там же можна і скачати. Ovftool можна ставити до себе на будь-який комп'ютер, і управляти гіпервізором з нього. А можна і поставити прямо на ESXI хост, хоча це і не підтримувана можливість.

Інсталяція Ovftool на ESXI

Загалом, процес такий: спочатку Ovftool ставиться на Linux x64 (я робив на Ubuntu 16), а потім файли переносяться на ESXI хост.

Ovftool не вміє копіювати VM в гарячому режимі, тобто вимагає, щоб віртуальна машина була вимкнена. Тому - необхідність в Xsibackup вище.

Кілька особливостей роботи Ovftool: