Главная » Резервное копирование » Резервное копирование в ESXi бесплатной редакции

Резервное копирование в ESXi бесплатной редакции

Бесплатная редакция ESXi позволяет быстро развернуть удобный тестовый стенд или же выступить в роли хоста виртуализации для простых задач в небольшой инфраструктуре. Лицензионные ограничения накладываемые на этот продукт не позволяют его использовать для серьезных задач (речь именно о бесплатной редакции 🙂 ). Одними из наиболее неприятных ограничений, являются урезанные возможности таких средств управления, как PowerCli (фактически, режим работы read-only) или извечная проблема с резервным копированием. Этой проблеме, как раз и посвящена данная статья.

Как выяснилось, если очень захотеть, то можно и здесь найти решение. Недавно я наткнулся на скрипт, который позволяет выполнять резервное копирование виртуальных машин, а также удобный интерфейс управления к нему. Скрипт развивается сообществом VMware и познакомиться с ним можно здесь — http://communities.vmware.com/docs/DOC-8760 . Интерфейс управления называется mksbackup (http://www.magikmon.com/mksbackup/ghettovcb.en.html). Рассмотрим эту связку более подробно.

mksbackup работает по следующему принципу — он предоставляет централизованный интерфейс для резервного копирования, который выполняет заргузку скрипта и его конфигурации на ESXi, осуществляет его запуск, а также последующие действия с резервными копиями (например загрузку их на другую машину). Резервная копия выполняется с помощью создания снимка виртуальной машины. Отдельно стоит отметить, что те машины, которые уже имеют снимки будут пропущены при выполнении резервного копирования. Поэтому, в случае, если используются снимки, для тестирования вносимых изменений, при использовании этого механизма резервного копирования, необходимо будет более внимательно относиться к их использованию. Иными словами, после выполнения необходимых действий, снимки следует удалить, иначе, резервное копирование виртуальной машиы не выполнится. Также, следует обратить внимание, что для подключения к хосту виртуализации, используется SSH, поэтому для работы mksbackup, потребуется включить SSH.

Кстати, стоит отметить, что mksbackup это не только средство для резервного копирования ESXi. Он позволяет также использовать wbadmin/ntbackup или tar. Это дает возможность использовать его как единое решение для резервного копирования всей инфраструктуры. Естественно, не стоит рассматривать mksbackup как серьезное решение для большой инфраструктуры. Это скорее небольшое средство для маленьких предприятий, которое позволит выполнять базовые задачи резервного копирования.

Перейдем к делу. Загрузить дистрибутив можно по этой ссылке — http://www.magikmon.com/mksbackup/download.en.html

Распаковав zip-архив, найдем файл mksbackup.exe. Это, фактически, мастер установки, который выполняется в текстовом режиме. Он достаточно прост. Сначала будет запрос на установку:

esxibcp01

Далее на директорию установки:

esxibcp02После этого будет предложение автоматически зарузить последнюю версию скрипта резервного копирования:

esxibcp03Процесс создания дополнительных задач стоит пропустить, поскольку все равно удобнее будет все поправить сразу в ini-файле:

esxibcp04Последний этап с запросом пароля также является лишним, поскольку задачи также будут настраиваться вручную:

esxibcp05После нажатия Enter консоль закроется и можно приступать к настройке.

В первой секции задаются общие параметры. Здесь имеет смысл задать параметры рассылки почтовых сообщений.

Это smtp_host, smtp_login, smtp_password и т.д. Однако, в случае, если отсылка уведомлений не требуется, можно выставить опцию mail=no.

Дальше идут настройки заданий резервного копирования. Если используется только резервное копирование ESXi, то лишние задания стоит вообще убрать (или закомментировать). Разберем пример задания для резервного копирования:

[VMWARE]
program=ghettovcb
host=192.168.1.210
port=22
login=<user>
password=<password>
local=C:\magik\vmware
global_conf=ghettoVCB.conf
vm_list=debtest
destination=<move=fri-sat>C:\BCP\${vm}
scp_bin=»C:\BCP\pscp.exe» -scp -r

Первая строчка задает способ копирования (скрипт, который мы загрузили в процессе установки). Далее указываются параметры для подключения к хосту — адрес и учетная запись. Следующая строчка — локальная директория, в которой будет храниться скрипт и его конфигурация, которая будет загружена на хост в процессе резервного копирования (файл указанный в параметре global_conf является файлом настроек). Далее указываем список машин, которые необходимо бэкапить. В случае, если необходимо бэкапить все виртуальные машины,  параметр vm_list можно оставить пустым. Также, можно воспользоваться параметром vm_exclude, который позволит исключить машины из списка.

Последние две строчки отвечают за работу с резервными копиями. Параметр destination описывает действие, которое будет выполнено. Подробное описание синтаксиса есть здесь — http://www.magikmon.com/mksbackup/common.en.html#destination . Необходимо указать тип выполняемых действий (backup, copy, move и т.л.), время, когда эти действия можно выполнять, а также место назначения. Рассмотрим действия, которые можно указать:

backup — выполнить резервное копирование (здесь не требуется указание места назначения).

copy — выполнить резервное копирование и скопировать полученные файлы в место назначения.

move — выполнить резервное копирование и перенести полученные файлы в место назначения.

На мой взгляд, наиболее оптимальный вариант — move. В этом случае, мы выполняем резервное копирование локально, а уже потом переносим файлы.

Время выполнения показывает когда это действие будет выполнено. Иными словами, здесь используется концепция разделения времени выполнения задачи и времени выполнения действий. То есть можно настроить одно расписание в планировщике задач, но сама задача будет выполнять различные действия в зависимости от текущей даты.

Место назначения определяется просто путем. Тут есть разные варианты. Например, можно загружать файлы на ftp. А можно, загружать с помощью scp сразу на сервер, с которого осуществляется резервное копирование. В пути загрузки можно использовать переменные. В данном случае ${vm} указывает на имя виртуальной машины.

Последняя строчка в описании этого задания задает путь к утилите scp. Тут есть одна тонкость, необходимо дополнительно указать два параметра. Первый -scp, который указывает на использование протокола ысp вместо sftp, а второй -r, который указывает, что необходимо выполнять загрузку вместе с директориями (в строке, которая формаируется при выполнении, к сожалению параметр -r пропущен, поэтому загрузка завершится ошибкой).

Утилита scp доступна в комплекте putty http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Далее необходимо поправить файл ghettoVCB.conf, который находится в папке vmware. В частности, необходимо указать, куда будет осуществляться резервное копирование. За это отвечает строка VM_BACKUP_VOLUME. В моем случае это выглядит так:

VM_BACKUP_VOLUME=/vmfs/volumes/System/Backup

Также, я ограничил количество резервных копий, хранимых локально:

VM_BACKUP_ROTATION_COUNT=1

И закоментировал опции относящиеся к NFS и отсылке уведомлений, поскольку мне это не требуется.

Теперь осталось выполнить последний шаг, перед началом резервного копирования, а именно, с помощью утилиты plink выполнить какую-нибудь команду на удаленно хосте.

Например так:

plink.exe <user>@<ESXi host ip> ls /tmp

у меня это выглядело так — plink.exe root@192.168.1.210 ls /tmp

Это действие необходимо для того, чтобы сохранить ключ хоста в локальном кеше ssh.

Теперь можно выполнить резервное копирование:

esxibcp06Команда запуска такова:

C:\Magik\MKSBackup\mksbackup.exe -v -c C:\Magik\mksbackup.ini backup VMWARE

Ключ -v указывает на дополнительный вывод информации, ключ -c указывает файл настроек, команда backup указывает выполнить резервное копирование и в конце задается имя задачи, которое указывается в файле настроек.

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

Во-первых, в клиенте vSphere появятся события создания/удаления снапшота:

esxibcp07Во-вторых, в пути назначения появтся файлы виртуальной машины:

esxibcp08Теперь, когда резервное копирование протестированно, можно настроить его в планировщике задач. Единственное, на что следует обратить внимание, это учетная запись, от имени которой будет выполняться задача. Тут следует не забывать про выполнение команды plink, поскольку если учетная запись отличается от той, под которой выполнялся процесс тестирования, то в ее кеше не будет необходимого ключа. Чтобы решить эту проблему, достаточно будет проделать все действия запустив консоль для выполнения команды от имени этой учетной записи.

Недостатком данного метода является невысокая скорость загрузки резервных копий, а также тот факт, что, фактически, описанный метод является самодельным скриптовым решением, которое не имеет ни поддержки, ни каких либо гарантий. Поэтому, естественно, желательно использовать специализированные продукты, например Veeam. Однако если нет денег/времени/еще чего-нибудь, то такое решение тоже вполне сгодится 🙂

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s