Как бесплатно восстановить виртуальные машины Citrix-Xen с помощью Xen-Phoenix (Bash)
Вам когда-нибудь приходилось массово восстанавливать виртуальные машины Citrix-Xen для решения аварийного восстановления (DR) или просто для проверки работоспособности ваших резервных копий? HTG объясняет, как использовать бесплатный сценарий bash Xen-Phoenix для восстановления ВМ.
Кредит Фотографии: Райан МакКарди через Compfight cc
Как мы уже упоминали в «Как сделать резервную копию виртуальных машин Citrix Xen бесплатно с помощью Xen-pocalypse», одна из приятных сторон Citrix Xen состоит в том, что многие из ее функций свободно заряда. С учетом вышесказанного, если вам нужна функция «Автоматическая защита и восстановление виртуальной машины», вам придется начать платить за «Предварительную» лицензию. Опять же, дело не в том, что мы в HTG отказываемся от ценности настоящего решения для резервного копирования, но если у вас ограниченный бюджет, вы уже получили образы виртуальных машин из гипервизора и нуждаетесь в способе автоматизировать ваши « тестовое восстановление »/« DR refresh »процедуры, вы можете найти Xen-Phoenix, чтобы быть совершенно разумным решением, прежде чем принять бюджетное обязательство.
обзор
«Вариант использования»: у вас есть пара виртуальных машин, которые требуют восстановления. Импортирование в «Xen Center» с помощью щелчков правой кнопкой мыши работает нормально, но вы хотите, чтобы этот процесс происходил автоматически и по расписанию. Этот скрипт Bash использует команду «XE» для выполнения своих обязанностей. XE - это интерфейс командной строки Xen (CLI), автоматический эквивалент для «правых щелчков» в «Центре Xen». Мы будем вызывать скрипт из Cron, который предоставит часть «планирования». В простейшем виде поток восстановления:
- удалять все * ранее существующие виртуальные машины на сервере
- Импорт виртуальных машин из файлов в хранилище.
- Убедитесь, что все виртуальные машины работоспособны, активируя их одну за другой и следя за пульсом гостевых инструментов..
- Выключите виртуальные машины, если обнаружен пульс или истекло время ожидания.
* Поведение «Удалить все виртуальные машины» может быть полностью отключено и поддерживает исключения (см. Ниже)..
Давайте взломать :)
Получить сценарий
Ксен-феникс можно свободно получить из github, используя обычные методы git. С учетом сказанного, если вы еще не разбираетесь в git, вы можете получить zip-файл по этой ссылке. Поскольку скрипт должен запускаться на одном из ваших серверов Xen, вы должны извлечь его там, чтобы сохранить права на выполнение..
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
распаковать мастер
Хотя вышеперечисленное будет работать, вам рекомендуется использовать метод GIT, чтобы вы могли извлечь выгоду из будущих обновлений.
Место экспорта
Нам нужно настроить, где взять экспорт VM из.
Во время случайного поиска в Citrix Xen я обнаружил, что репозитории хранилищ (SR) доступны для использования в «/ var / run / sr-mount /% UUID%», где UUID - это уникальный идентификатор SR, который может быть полученный из GUI.
Это означает, что мы можем использовать обычный мастер «Далее -> Далее -> Готово», чтобы создать «монтирование» в нужное место резервного копирования, а затем заставить скрипт использовать этот путь (в отличие от манипулирования монтированием из командной строки, которая выходит за рамки данного руководства).
Чтобы создать новое «монтирование», щелкните правой кнопкой мыши имя сервера и выберите «Новый SR»..
В этом примере мы укажем Xen на общий ресурс Windows, поэтому выберите «Общий доступ к файлам Windows (CIFS)»:
Завершить следующее -> Далее -> Готово.
Получить UUID SR
Чтобы получить UUID SR, просто нажмите на его имя в Центре Xen и перейдите на вкладку «Общие».
Чтобы скопировать UUID, просто щелкните по нему правой кнопкой мыши и выберите «Копировать»..
Имея эту информацию под рукой, вы готовы редактировать файл настроек.
Настройте файл настроек
Проект Xen-phoenix поставляется в комплекте с шаблоном файла «settings». Этот шаблон должен быть отредактирован в соответствии с вашими настройками и передан в качестве первого аргумента скрипту.
Файл настроек обозначает следующее:
- Расположение источника экспорта - если вы следовали руководству до этого момента, вам нужно только заменить% UUID% на SR, как это было получено выше.
- Расположение SendEmail - если вы решили включить электронную почту, вам нужно указать, где вы извлекли исполняемый файл perl здесь.
- Verifier - контролирует процедуру проверки после восстановления. Это включено по умолчанию, так как успешное «восстановление на уровне файлов» не обязательно означает работающую виртуальную машину.
- Server_prep - контролирует предварительное восстановление удаление всех виртуальных машин на сервере DR. Это включено по умолчанию, поскольку предполагается, что сервер DR является выделенным сервером для этой цели. Если вам нужна виртуальная машина, работающая на этом сервере, чтобы она не удалялась, настройте ее для исключения. Если это поведение не подходит для вашей ситуации, просто отключите его полностью.
- Детали электронной почты - Опять же, если вы включили электронную почту, вам нужно определить такие детали, как: Кому, От, Имя сервера / IP и т. Д. '.
- отладка - По умолчанию отладка отключена со значением «0» (ноль). Вам не нужно его включать, но если вы это сделаете, в разделе устранения неполадок появится дополнительная информация..
выполнение
Этот скрипт принимает файл настроек в качестве первого аргумента и любые другие аргументы в качестве «шевронов» для поиска (разделенных пробелами). Шевроны - это «строки», которые поддерживают регулярные выражения, которые представляют хотя бы часть желаемого имени файла экспорта виртуальной машины..
То есть в простейшей форме вызов Xen-phoenix будет выглядеть так:
./Xen-phoenix.sh settings.cfg DevTools
Где в приведенном выше случае мы находимся в каталоге, в котором находится скрипт и файл настроек, и «Chevron», который будет искать скрипт, - это «DevTools». Это приведет к тому, что все файлы в каталоге экспорта со строкой «DevTools» в их имени будут импортированы.
Более сложный пример может выглядеть так:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Если в приведенном выше примере будут импортированы файлы, содержащие слово «devtools» с прописными буквами «D» и «T» или не заглавные, а также «AD» и «BI» с заглавными буквами или без них..
планирование
Как отмечалось выше, мы будем использовать Cron для планирования выполнения. Прежде чем мы перейдем к конфигурации, это настоятельно рекомендуется что вы настраиваете уже установленный пакет SSMTP на вашем сервере Xen. Хотя это необязательный шаг, это даст вам коллектор «обратной промывки». Наличие такого «коллектора обратной промывки» может предупредить вас о том, что сценарий не в состоянии.
Войдите в режим редактирования cron, введя:
crontab -e
Если вы выполнили приведенные выше инструкции и хотите добавить резервную копию по расписанию на воскресенье в 01:31 (1:31 AM), введите следующее:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] БД [Bb] [iI] [Dd] ev [Tt ] нструменты
Вышеприведенное правильно, если ваш сценарий и файл настроек находятся в папке «/ root / Xen-phoenix-master /»..
Получить SendEmail (необязательно)
Мы писали о Perl-программе SendEmail в прошлом, поэтому нет необходимости повторять здесь. Достаточно сказать, что в Linux он работает так же, как в Windows.
Хотя включение электронной почты не является обязательным, настоятельно рекомендуется, потому что тогда сценарий сможет:
- Сообщите, когда это началось и закончилось.
- Оповещать вас о любых ошибках, которые он смог обнаружить и обработать.
Загрузите его на сервер Xen и распакуйте.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Обратите внимание на место, где вы извлекли его. Он понадобится вам для файла настроек.
Определение тега «Удалить исключение» (необязательно)
Xen-Phoenix берет страницу от своего предка (Xen-Pocalypse) и дает вам возможность детально исключить виртуальную машину из системного удаления с помощью контрольной метки. Для этого вам нужно определить новое «Пользовательское поле».
Для этого откройте свойства сервера или даже виртуальной машины. На панели навигации выберите «Пользовательские поля»..
Если вы впервые определяете «настраиваемое поле» (как в примере выше), у вас не будет поля «Phoenix_keeper» для ввода данных, поэтому вам нужно его создать. Для этого нажмите «Изменить пользовательские поля» в появившемся диалоговом окне, затем нажмите «Добавить…»
Создайте поле типа «Текст» с именем «Phoenix_keeper».
Замечания: Имя настраиваемого поля было «жестко запрограммировано» в скрипте, поэтому вы НЕ ДОЛЖНЫ отклоняться от написанного выше, если только вы не измените соответствующий код..
Как только поле будет создано, вы должны увидеть:
Закройте окно. Теперь вы должны заполнить поле «Phoenix_keeper», как показано на рисунке ниже..
Теперь все, что вам нужно сделать, это заполнить это поле замечанием (любое замечание подойдет), что заставит Xen-phoenix пропустить его при удалении.
Поиск проблемы
Несмотря на то, что я приложил немало усилий, чтобы сделать сценарий максимально простым и надежным, «мир - большая лаборатория». Приведенная ниже информация может помочь вам выяснить источник ваших проблем..
логирование
Вся «регистрация» собирается хостом Xen, выполняющим скрипт в механизме системного журнала. Это, конечно, можно посмотреть с помощью:
меньше + F / var / log / messages
Вы ищете ключевое слово «Ксен-Феникс».
Примечание. Citrix установил двухдневную политику хранения для системного журнала своих серверов. Вы можете иметь это в виду для посмертных.
отладка
Как отмечено в сегменте файла настроек, есть директива для включения отладки. Включение отладки приведет к тому, что сценарий будет выводить подробное ведение журнала на консоль и кастрировать его из отправки электронных писем и фактического выполнения импорта, если только не установлены соответствующие флаги. Возможные флаги отмечены в шаблоне файла настроек, и они позволяют вам детально определить, что вы хотите отлаживать.
Я надеюсь, что вам не понадобилась отладка, и вы пожинаете плоды моего труда :)
Просто подумай обо всей бедности, ненависти и лжи, И представь себе разрушение всего, что ты презираешь. Медленно из пепла восстанет феникс ...