Бесплатное резервное копирование виртуальных машин на базе VMware ESXi

VMware-ESXi-2

Для VMware ESXi вопрос резервного копирования виртуальных машин стоит особо остро. Дополнительное бесплатное ПО неудобно в использовании из-за ограниченного функционала. Поэтому наш backup будет основан на бесплатном скрипте – ghettoVCB. Это самый лучший вариант существующих скриптов, хотя у него такое забавное название и всего проекта в целом – www.virtuallyghetto.com, автор William Lam. Его алгоритм – создание снапшота и клонирование VM.

Для настройки полноценной схемы резервного копирования нам потребуется:

  • NFS сервер для хранения файлов;
  • подключение по SSH к ESXi;
  • скрипт ghettoVCB.sh добавляется на сервер ESXi (в корень или папку будущего бекапа). Это делается через SFTP любым удобным для вас способом, например, FileZilla;
  • даем права на выполнение скопированного скрипта;

Теперь более подробно остановимся на каждом из пунктов. Для повышения быстродействия и отказоустойчивости файлового сервера/сервера резервного копирования лучше использовать RAID10. Предпочтительны в данном случае являются ОС Linux (Debian, Ubuntu, “удобная вам”) и файловая система XFS, т.к. в такой конфигурации скорость записи (основной приоритет для быстрого бекапа) будет выше.

Инструкция по настройке протокола SSH для подключения к ESXi уже имеется у нас, но также можно все выполнить и в vSphere client: Configuration > Software > Security Profile > Properties… > Remote Tech Support (SSH) > Options… > Start или Stop.

Переходим к конфигурации скрипта ghettoVCB.sh, основные параметры, которые нам понадобятся:

VM_BACKUP_VOLUME — путь к папке бэкапов, в моём случае /vmfs/volumes/datastore1/backup
DISK_BACKUP_FORMAT — формат диска, thin для бэкапов подходит лучше всего
VM_BACKUP_ROTATION_COUNT — количество хранимых бэкапов (для каждой виртуальной машины), у меня 3
ADAPTER_FORMAT — тип адаптера, в моем случае – lsilogic

Остальные параметры отвечают за копирование файлов по сети и e-mail уведомления. Подробнее параметры конфигурации описаны на сайте разработчика. Описание на русском языке будет добавлено на сайт gotoADM.ru в скором времени – подписывайтесь на обновления!

Если необходимо копировать не все виртуальные машины, то создается файл со списком VM, включенных в бекап. Создаем такой файл в vi:

  • переходим в папку со скриптом – cd /ghettovcb или backup
  • vi vmlist
  • нажимаем «a» вписываем имена VM (каждое имя на новой строке)
  • нажимаем «esc» и чтобы сохранить изменения  – “:wq” (без сохранения “:q”)

Запускаем скрипт:

  • ./ghettovcb.sh -а -l ./log.txt – запуск копирования всех машин, запись логфайла в той же директории
  • ./ghettovcb.sh -f ./vmlist -l ./log.txt – запуск копирования машин, указанных в файле vmlist, логи сохраняются в той же директории
  • ./ghettovcb.sh -f ./vmlist -g ./ghettovcb.conf -l ./log.txt – аналогочно, только с использованием .conf файла

О корректном выполнении скрипта будет сигнализировать строка с надписью: “###### Final status: All VMs backed up OK! ######”. Если такого нет – проверяйте логи, синтаксис команд и путей к файлам.

Далее необходимо установить/настроить автоматический запуск данного скрипта.  Согласно KB Article: 1033346 cron работы с планировщиком ведутся здесь – /usr/spool/cron/crontabs или /var/spool/cron/crontabs.

Для того, чтобы добавить строку на запуск по расписанию (в cron), необходимо выполнить правку файла “/etc/rc.local.d/local.sh” , выполнив следующее:

  • перейти в каталог /etc/rc.local.d/local.sh
  • chmod u+w local.sh
  • открыть файл редактором – vi local.sh
  • включить редактирование клавищей “i” или “insert”
  • дописать перед строкой exit0 следующее:

/bin/kill $(cat /var/run/crond.pid)
/bin/echo 0 20 * * * /vmfs/volumes/datastore/script/ghettoVCB.sh -a -l /vmfs/volumes/backup/log/log.txt >> /var/spool/cron/crontabs/root
/bin/crond

  • при этом указываем расписание (время указывается в UTC, т.е. для MSK -3 часа), т.е. “00 20 * * * “
  • нажимаем «esc» и сохраняемся –  “Shift+:” и “wq”
  • в конце выполняем chmod u-w local.sh

Таким образом, в 23:00 по МСК будет выполняться резервное копирование файлов виртуальных машин. В нашем случае будет оставаться 3 копии.

Настройка backup для ESXi через ghettoVCB.sh завершена.

blank

Занимаюсь IT с 2007 года. Всё началось с увлечения — разгона компьютерного оборудования. Много воды и азота утекло с тех пор... Сейчас уже более 3х лет со своей командой оказываю комплексную поддержку и продвижение бизнеса: SEO, Яндекс.Директ, рассылки и удалённое обслуживание серверов. Буду рад помочь, обращайтесь!

Оцените автора
IT для специалистов и бизнеса
Добавить комментарий

  1. blank
    Andrew Yunisov

    Полезный контент по бэкапу vmware есть с помощью Bacula

    Ответить
  2. blank
    Геннадий Уткин

    Добрый день!
    Спасибо за полезную статью.
    Пара замечаний:
    1) vi не закроется по “:q” если в файле есть несохраненные изменения. Нужно “:q!” чтобы от них отказаться и выйти
    2) cron берет не время по UTC, а время с учетом таймзоны установленной для учетной записи, от которой сам cron и работает, либо для всей системы (это уж как настраивали). То есть, если вы в 2:15 ночи это запускать решили, то так и пишите 15 2 * * *, при условии, что таймзона установлена местная. Ну, а если таймзона не настроена, то можно и с UTC развлекаться, при условии, что вы указали “использовать время UTC” при установке системы.

    Ответить