Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
bekap_virtualnyx_mashin_esxi [2015/02/19 11:35]
ansealk
bekap_virtualnyx_mashin_esxi [2015/02/19 11:36] (текущий)
ansealk
Строка 1: Строка 1:
 +====== Бекап виртуальных машин ESXi ======
 +
 +**Задача:​** Необходимо забекапить виртуальные машины ESXi. Бекап производить без отключения виртуальных машин.
 +
 +**Инструментарий:​** Для бекапа будем скрипт ghettoVCB([[https://​github.com/​lamw/​ghettoVCB/​|ссылка на github]]) и используем внешнее сетевое хранилище,​ доступное по NFS, либо локальный диск. В случае NFS подмонтируем его к ESXi-серверу. ​
 +
 +**Замечание:​**В принципе,​ на данный момент уже можно обойтись без монтирования - в используемом нами скрипте появилась возможность кидать бекап напрямую на NSF-шару,​ но на момент написания такой возможности не было. Да и сами настройки проводятся крайне просто,​ так что в описании они подробно не рассматриваются.
 +**Замечание 2:** GhettoVCB не умеет бекапить машины,​ для которых есть снапшоты.
 +
 +===== Установка ghettoVCB =====
 +  - Загружаем //​ghettoVCB//​ с [[https://​github.com/​lamw/​ghettoVCB/​|github]]
 +  - Распаковывем архив и переносим файлы на сервер esxi <code bash>tar -xvfz GhettoVCB-master.tgz</​code>​
 +  - Даем файлу //​ghettoVCB.sh//​ права на выполнение <code bash>​chmod +x ghettoVCB.sh</​code>​
 +  - Правим коныигурационный файл //​ghettoVCB.conf//<​code bash>
 +# Каталог,​ в которой будут храниться резервные копии. ​
 +# Это может быть как раз наш модмонтированный NSF-диск или локальный
 +VM_BACKUP_VOLUME=/​vmfs/​volumes/​backup
 +
 +# формат диска резервной копии
 +# zeroedthick,​ eagerzeroedthick,​ thin или 2gbsparse
 +# Для наиболее быстрого бекапа используем thin
 +DISK_BACKUP_FORMAT=thin
 +
 +# Количество резервных копий одной машины,​ кторые будут хранится на диске
 +VM_BACKUP_ROTATION_COUNT=3
 +
 +# Определяет,​ нужно ли выключать машину перед бекапом.
 +# 0 - не надо. Сначала система делает снапшот,​ бекапит его, затем удаляет. ​
 +#     ​Прерывания доступа к машине не производится
 +# 1 - Останавливать машину для бекапа,​ затем запускать заново. ​
 +#     В этом случае снапшот не делается,​ но виртуальная машина будет недоступна до окончания бекапа
 +POWER_VM_DOWN_BEFORE_BACKUP=0
 +
 +# В случае,​ если остановка машины не удалась выключать ли ее жестко. ​
 +# Если 0 - не выключать
 +# Если 1 - то выключение происходит после того, количества итераций (каждая по 60 сек),
 +#          указанных в параметере POWER_DOWN_TIMEOUT
 +ENABLE_HARD_POWER_OFF=0
 +POWER_DOWN_TIMEOUT=5
 +
 +# Разешить сжатие данных при передаче. Замедляет бекап и восстановление. ​
 +# Используем только в тех случаях,​ когда не хватает места на бекапном диске
 +ENABLE_COMPRESSION=0
 +
 +# Сколько итераций (каждая по 60 сек) ожидать создания снапшота
 +SNAPSHOT_TIMEOUT=15
 +
 +# Далее следуют параметры для подмнотирования NSF на лету
 +#​ENABLE_NON_PERSISTENT_NFS=0
 +#​UNMOUNT_NFS=0
 +#​NFS_SERVER=172.16.0.210
 +#​NFS_VERSION=nfs
 +#​NFS_MOUNT=/​mnt/​backup/​vm-backup/​esxi.asealk.ru
 +#​NFS_LOCAL_NAME=nfs_storage_backup
 +#​NFS_VM_BACKUP_DIR=
 +
 +# Настройка почтовых уведомлений о бекапе
 +#​EMAIL_LOG=0
 +#​EMAIL_SERVER=auroa.primp-industries.com
 +#​EMAIL_SERVER_PORT=25
 +#​EMAIL_DELAY_INTERVAL=1
 +#​EMAIL_TO=auroa@primp-industries.com
 +#​EMAIL_FROM=root@ghettoVCB
 +</​code>​
 +
 +===== Запуск бекапа =====
 +
 +Тут все довольно просто. Если мы хотим забекапить одну машину,​ пишем:
 +<code bash>​./​ghettoVCB.sh -m ИМЯ_МАШИНЫ -g ghettoVCB.conf</​code>​
 +Если все, то:
 +<code bash>​./​ghettoVCB.sh -a -g ghettoVCB.conf</​code>​
 +Как заметно,​ можно использовать несколько профилей бекапа просто создав различные конфиг-файлы
 +
 +===== Конфигурирование Cron (для автоматического запуска скрипта) =====
 +
 +  - Дать разрешение на запись в файл <code bash> chmod +w /​var/​spool/​cron/​crontabs/​root</​code>​
 +  - Добавляем через vi строку в /​var/​spool/​cron/​crontabs/​root <code bash>10 2 */2 * * /​ПУТЬ/​К/​ghettoVCB.sh -m ИМЯ_МАШИНЫ -g /​ПУТЬ/​К/​ghettoVCB.conf</​code>​ Запуск в 02:10 ночи каждые два дня. ​
 +  - Теперь нужно выполнить две команды,​ чтобы перезапустить cron<​code bash> kill $(cat /​var/​run/​crond.pid)
 +crond</​code>​
 +  - Добавить с помощью vi 3 строки в самый конец файла /​etc/​rc.local.Это нужно, потому что после перезагрузки сервера содержимое файла из 2го пункта с запуском нашего скрипта будет восстановлено до предыдущего состояния,​ поэтому в rc.local указываем,​ что после перезагрузки нужно выполнить следующие команды – остановка cron, добавление строки для автоматического запуска скрипта и запуск cron.<​code bash>
 +/bin/kill $(cat /​var/​run/​crond.pid)
 +/bin/echo “10 2 */2 * * /​ПУТЬ/​К/​ghettoVCB.sh -m ИМЯ_МАШИНЫ -g /​ПУТЬ/​К/​ghettoVCB.conf” >> /​var/​spool/​cron/​crontabs/​root
 +crond
 +</​code>​
 +  - Теперь выполним выполнить команду <code bash>/​sbin/​auto-backup.sh</​code>,​ чтобы удостовериться,​ что все наши изменения сохранились.
 +
  
bekap_virtualnyx_mashin_esxi.txt · Последние изменения: 2015/02/19 11:36 — ansealk
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика