Використання ghettoVCB для резервного копіювання віртуальних машин VMware ESX / ESXi
Копіювати руками машину кожен раз, коли потрібно впровадити якесь обладнання, або просто для збереження даних, це шалено незручно. Ось для цього і була придумана технологія автоматизованого бекапа, написана ентузіастами на скриптах perl: ghettoVCB.
Нижче викладений гайд по установці скриптів, а також наведені конфіги збереження скриптів як локально, так і на віддаленому сервері з використанням сховища мережевої файлової системи (NFS).
sgtatham / putty / download.html), а також сам скрипт (скачати скрипт).
Для початку, викладаємо файл ghettoVCB.tar.gz на Datastore, після чого заходимо в Putty, коннектимся до сервера ESX і проробляємо наступні дії:
# Cd vmfs / volumes /<имя datastore>
vmfs / volumes /<имя datastore> # Сp ghettoVCB.tar.gz /
vmfs / volumes /<имя datastore> # Cd /
# Tar -zxvf ghettoVCB.tar.gz
ghettoVCB /
ghettoVCB / ghettoVCB.conf
ghettoVCB / ghettoVCB.sh
ghettoVCB / ghettoVCB-vm_backup_configuration_template
# Cd ghettoVCB
ghettoVCB # vi vmlist
Відкриється файлик (поки ще не створений) зі списком тих машин, які потрібно забекапіть (поки ще порожній :). Для введення і редагування інформації тиснемо "a", щоб застосувати настройки Esc. Щоб вийти з збереженнями: wq щоб без: q!
Вводимо імена машин, далі вводимо vi log і, нічого не змінюючи в порожньому файлі, тиснемо: wq. Далі слід отконфігуріть файл ghettoVCB.conf. Зайшовши в неко командою vi (vi ghettoVCB.conf), ми побачимо наступне:
Не варто лякатися великої кількості параметрів, всі вони легко налаштовуються і мають особливу важливість. Отже, по порядку:
Параметр, що визначає директорію створення резервних копій. У моєму випадку, я вказав: / vmfs / volumes / Datastore.
Визначає кількість резервних копій на одну машину (кожний наступний буде віддалятися скриптом). Якщо, наприклад, скрипт (розповідається нижче) буде бекапіть машини кожну годину, то при вказівці числа 24, ми отримаємо бекапи щогодини протягом одного дня.
Визначає, чи буде машина вимикатися перед бекапом (enabled = 1 disabled = 0) (скрипт підтримує бекап при включеній машині).
Відключення дисків на час бекапа (enabled = 1 disabled = 0).
При включеному попередньому параметрі, визначає кількість часу (1 одиниця = 60 секунд), перш ніж скрипт виконає примусове відключення диска.
При включеному параметрі POWER_VM_DOWN_BEFORE_BACKUP, визначає кількість часу (1 одиниця = 60 секунд), перш ніж скрипт виконає жорстке вимикання (без використання ShutDown Guest).
Параметр, при включенні якого забекапленние файли будуть міститися в архіві (enabled = 1 disabled = 0) (Увага: це тестовий параметр для даної версії скрипта, моя порада його відключати, тому що є ризик втрати не тільки файлів бекапа, але і файлів машини) .
Формат диска машини (можливі: buslogic, lsilogic).
Параметри, що відповідають за знімки пам'яті, і якщо перший параметр "1", то чи буде переведена машина на цей період в режим очікування.
Всі ці параметри потрібні, якщо ми плануємо створити директорію з резервних копій на віддаленому сервері. Цими параметрами ми налаштовуємо доступ до NFS сховища (його місцезнаходження, директорія на локально сервері і т.д.) Якщо створюємо директорію бекапа на тому ж DataStore, проіґноруймо ці параметри.
Даний параметр відображає, скільки хвилин буде дано час на створення снапшотов працюючої машини, після чого скрипт буде відключений (якщо погодинної, то тільки цей бекап не буде створена, далі все піде в штатному режимі). Даний параметр необхідний, якщо з якихось причин машина не зробила знімок, перш ніж переходити в режим очікування, для того, щоб не втратити дані машини в режимі роботи.
Моя порада - не морочитися.
Далі я привожу два види настройки цих параметрів без особливих поглиблень (1 - локально, 2 - через сервер NFS)
Щоб перевірити даний скрипт можемо запустити його разово. Для цього ознайомимося з параметрами запуску скрипта:
Запустимо, наприклад, все це з наступними параметрами:
В логах, при правильно налаштованому конфіге ми побачимо приблизно наступне:
Найголовніше: це останні 3-4 рядки: ###### Final status: All VMs backed up OK! ######
Якщо бачимо таке, бекап пройшов успішно. Якщо бачимо крики про помилки, читаємо, де накосячілі.
Основні типи помилок:
- ВМ, які потрібно бекапіть, НЕ ПОВИННІ містити снапшотов (див. Тут. Чому снапшоти - це погано).
- Кривий шлях до сховищ.
- При включеному NFS режимі крива настройка запису даних на NFS.
Після всього цього необхідно налаштувати режим створення резервних копій за часом. Для цього необхідно скористатися параметрами CronTab. Для цього проробляємо наступне:
Відкриється погодинної запуск скриптів. На новій сходинці впишемо наступне:
Файл crontab складається з рядків, що містять шість полів. Поля розділяються пробілами або табуляцією. Перші п'ять полів - цілочисельні шаблони, які визначають:
- хвилину (0-59),
- годину (0-23),
- день місяця (1-31),
- місяць року (1-12),
- день тижня (0-6, причому 0 = неділя).
Шосте поле в рядку файлу crontab - рядок, що виконується командним інтерпретатором в зазначені моменти часу. Символ% (відсоток) в цьому полі, якщо він не замаскований \ (зворотної косої), перетворюється в символ нового рядка.
Наприклад, якщо ми хочемо, щоб бекапи відбувалися, кожен день по буднях о 2 годині 15 хвилин, наша рядок повинен виглядати наступним чином: