Резервне копіювання віртуальних машин VMware ESXi

Невеликий тест: Локальна мережа - гігабіт. На локальне сховище (апаратний RAID 10 з 4 дисків 10К) - 8 секунд. На "linux" сховище (програмний RAID 0 з 3 дисків 7,5К) - "time dd if=/dev/zero of=/vmfs/volumes/linbackup/temp bs=1M count=1K" 12 секунд. На "windows" сховище (апаратний RAID 5 з 10 дисків 10К) - "time dd if=/dev/zero of=/vmfs/volumes/winbackup/temp bs=1M count=1K" 1 хвилина 44 секунди (сам в шоці).

Результати кажуть самі за себе. Так, на win-сховище RAID 5, але навряд він один винен у такому результаті.

Викачуємо останню версію скрипта. Можна піти "тру" шляхом зробити як написано на сторінці скрипту в секції "Setup:", але я вчинив простіше - розпакував архів у себе на комп'ютері, замість редагування конфігураційного файлу - відредагував сам скрипт, скопіював його на локальне сховище (через "Browse Datastore »).

Ось основні параметри:

VM_BACKUP_VOLUME - шлях до папки бекапів, в моєму випадку /vmfs/volumes/linbackup DISK_BACKUP_FORMAT - формат диска, thin для бекапів підходить найкраще VM_BACKUP_ROTATION_COUNT - кількість бекапів, що зберігаються (для кожної віртуальної машини>ADAPTER_FORMAT - тип адаптера, у мене lsilogic

Інші параметри можна й не правити, але якщо цікаво — на сторінці скрипту всі параметри докладно описані, правда англійською, ось тут майже всі параметри розписані українською.

Отже, скрипт скопійований на локальне сховище, підключаємося по ssh, переносимо скрипт кудись ближче до кореня, наприклад в /ghettovcb/ghettovcb.sh, якщо вам не потрібно бекапіті всі віртуальні машини - необхідно створити файл зі списком віртуалок, що бэкапируются: cd /ghettovcb vi vmlist тиснемо «a» вписуємо імена віртуалок, кожне на новому рядку, натискаємо «esc» і щоб зберегти зміни ":wq" або щоб вийти без збереження ":q"

Спробуємо запустити скрипт:

./ghettovcb.sh -f ./vmlist -l ./log.txt або якщо ви створили файл конфігурації ./ghettovcb.sh -f ./vmlist -g ./ghettovcb.conf -l ./ log.txt Скрипт відпрацьовує, видаючи багато інформації, якщо в кінці висновку бачимо "###### Final status: All VMs backed up OK! ######" означає все добре, інакше читаємо log. txt та розуміємо що зробили не так. Тепер треба створити розклад для бекапів. cd /var/spool/cron/crontabs chmod u+w root vi root тиснемо «a», пишемо розклад, тільки врахуйте - час вказується в UTC, тобто. для Москви це локальний час мінус три години 00 20 * * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -l /vmfs/volumes/linbackup/logs/`date +%F`.txt або якщо ви створили файл конфігурації 00 20 * * * /ghettovcb/ghettovcb.sh -f /ghettovcb/vmlist -g /ghettovcb/ghettovcb.conf -l `.txt тиснемо «esc» і зберігаємося ":wq" наприкінці chmod u-w root

Тепер щодня о 20:00 за UTC (о 23:00 за Москвою) запускатиметься скрипт, логи про його виконання зберігатимуться на сховищі в папці logs, окремий лог на кожен день.

По логах у мене на бекап йде приблизно 4 години, порахував швидкість - приблизно 4ГБ за хвилину, тобто. приблизно 70МБ в секунду, дуже добре. Сховища в 2,7ТБ вистачає на зберігання двох копій кожної віртуалки, цього цілком достатньо плюс залишається вільне місце, а воно потрібно, т.к. спочатку робиться третя резервна копія і тільки після її створення видаляється найстаріша копія. Ну і ще один камінь у город «windows» сховища — пробував робити бекапи скриптом на нього,storage просто відвалювався, та й власне скрипт завершувався з помилкою. Розумію, що вся справа в неправильному налаштуванні запису NFS, але налаштування були за замовчуванням і розбиратися в «тюнінгу» не дуже хотілося.

Експеримент пройшов вдало, можна закуповувати сервер із хорошими дисками, планується RAID 10 на 5ТБ, цього має із запасом вистачити і на майбутні віртуалки.