Изображение от h.koppdelaney, Застряло в Custom и Hotfortech.
Одна из приятных вещей в Citrix Xen заключается в том, что многие из ее функций свободно заряда. С учетом сказанного, если вы хотите использовать функцию «Автоматическая защита и восстановление VM», вам придется начать оплачивать лицензию «Advance». Даже тогда вы платите только за резервные копии на уровне диска, которых недостаточно для многих типов рабочих нагрузок, таких как Active directory, Databases & Etc. Чтобы преодолеть это, вы можете захотеть «моментальный снимок Live Memory и вернуться», что может спасти весь состояние машины, включая содержимое ОЗУ. Однако эта функция является частью изданий «Предприятие» и «Платина», которые еще дороже. Дело не в том, что мы в HTG увольняем ценность подлинного программного обеспечения для резервного копирования, но если вы находитесь в ограниченном бюджете и не против некоторого времени простоя для операции резервного копирования, вы можете обнаружить, что Xen-pocalypse является вполне разумным решением прежде чем выполнять бюджетные обязательства.
обзор
«Вариант использования»: у вас есть несколько виртуальных машин, для которых требуется резервное копирование. «Отключение виртуальной машины и ее экспорт в виде файла» из «Xen Center» с использованием щелчков правой кнопкой мыши работает нормально, но вы хотите, чтобы этот процесс выполнялся автоматически и по расписанию. Этот сценарий Bash использует команду «XE» для выполнения своих обязанностей. XE - это интерфейс командной строки Xen (CLI), автоматический эквивалент для выдачи «правых кликов» в «Центре Xen». Мы будем называть скрипт из Cron, который будет поставлять часть «планирования». В своей простейшей форме резервный поток:
- Выключите целевую виртуальную машину.
- Экспортируйте виртуальную машину в файл в резервную папку.
- Если виртуальная машина была включена, перед началом резервного копирования она снова будет включена.
Позволяет растрескиваться:)
Получить скрипт
Xen-pocalypse можно свободно получить из github, используя обычные git-методы. С учетом сказанного, если вы еще не разбираетесь в git, вы можете захватить zip-файл этой ссылкой. Поскольку сценарий должен запускаться на одном из ваших серверов Xen, вы должны извлечь его там, чтобы разрешения на выполнение сохранялись.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip unzip master
Хотя выше будет работать, вам рекомендуется использовать метод GIT, чтобы вы могли получать выгоду от будущих обновлений.
Получить SendEmail (необязательно)
В прошлом мы писали о Perl-программе SendEmail, поэтому здесь не нужно повторять. Достаточно сказать, что он работает в Linux так же, как и в Windows.
Хотя включение электронной почты является необязательным, настоятельно рекомендуется, потому что тогда скрипт сможет:
- Сообщите вам, когда он начнется и закончит работу.
- Оповестите вас о любых ошибках, которые он смог обнаружить и обработать.
- Информирование о дисквалификации резервных копий из-за проблем с пространством. (Это поведение может быть отключено, если не требуется)
Загрузите его на сервер Xen и извлеките.
wget https://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar xvzhf sendEmail-v1.56.tar.gz
Обратите внимание на местоположение, в которое вы его извлекли. Для этого вам понадобится файл настроек.
Определение тегов
Citrix Xen дает вам возможность настраивать «настраиваемые поля» для возможностей фильтрации. Мы создадим поля, а затем заполним их информацией, используемой Xen-pocalypse. Xen-pocalypse распознает три контрольных TAG, которые обозначают имя тега для резервного копирования и отношения родителя к дочернему. Если вы не собираетесь использовать метод ввода файлов, вы ДОЛЖНЫ создать хотя бы поле имени тега резервного копирования.
Для этого откройте свойства сервера или даже VM. В навигационной панели выберите «Пользовательские поля».
Замечания: Имена пользовательских полей были «жестко закодированы» в сценарии, поэтому вы НЕ ДОЛЖНЫ отклоняться от написания выше, если вы не измените соответствующий код.
Когда все поля будут созданы, вы должны увидеть:
Теперь все, что вам нужно сделать, это указать, какие виртуальные машины принадлежат к тому, что «BackupTAG». Например, в компании, где вырос сценарий, у нас были виртуальные машины, которые должны были быть скопированы еженедельно в четверг и пятницу, расписание для наших Atlassian VM продуктов, а некоторые из них должны были быть скопированы только ежемесячно. Таким образом, наш обзор выглядел так:
Родители и дети (по желанию)
Настоящая красота этого скрипта заключается в том, что он поддерживает «родительские» отношения «ребенка». То есть, можно установить список «дочерних» виртуальных машин, которые будут отключены и скопированы перед родителем, и что эти дети будут возвращены только после того, как родитель закончит свою резервную копию и будет возвращен назад на.Это полезно в случаях, когда выключение родительской виртуальной машины приведет к тому, что служба у ребенка станет недоступной. Такая вещь означает, что служба на дочерней виртуальной машине будет недоступна дважды, один раз для процесса резервного копирования ребенка и один раз для родителя. Создание этой связи преодолевает эту проблему.
Например, все наши Atlassian VM использовали одну виртуальную машину DataBase (DB), которая также была настроена на резервное копирование. Таким образом, отметив, что VM VM является «родителем» для других виртуальных машин, может быть обеспечен правильный порядок остановки -> резервное копирование -> запуск.
На момент написания этой функции у этой функции есть несколько предостережений:
- Имена виртуальных машин, которые должны иметь такие отношения, не могут содержать пробелы. Вам нужно будет удалить пробелы из ваших имен виртуальных машин, поскольку они будут ограничены пробелом, как в приведенном ниже примере.
- Может быть только один родитель. Назначение более чем одного не запланировано, не говоря уже о проверке.
Чтобы создать эти отношения, перейдите в свойства виртуальной машины. Если это «родитель», напишите, кто его дети, и если это «ребенок», напишите, кто его родитель. Например:
Метод FILE (необязательно)
По историческим причинам Xen-pocalypse также поддерживает получение списка виртуальных машин для резервного копирования в виде текстового файла. Хотя «код» все еще присутствует, функциональность сильно уступает методу TAG, и поэтому он не рекомендуется. С учетом сказанного, если вы предпочитаете использовать метод списка по какой-либо причине, применяются следующие ограничения:
- Имена виртуальных машин не могут содержать пробелов или специальных символов.
- В строке может быть только одно имя виртуальной машины.
- Пустые строки не допускаются.
Чтобы создать список, скопируйте имя виртуальной машины из центра Xen или выполните на хосте Xen:
xe vm-list | grep name-label | awk
'{ print $4 }' | sort
Скопируйте список в обычный текстовый файл.
Место резервного копирования
В случайном порядке в Citrix Xen я обнаружил, что хранилища хранилищ (SR) доступны для использования в разделе «/ var / run / sr-mount /% UUID%», где UUID является уникальным идентификатором SR, который может быть полученных из графического интерфейса пользователя.
Это означает, что мы можем использовать обычный мастер «Next -> Next -> Finish», чтобы создать монтировку в нужное место для резервного копирования, а затем использовать сценарий для этого пути (поскольку это связано с запуском с помощью командной строки), но поэтому выходит за рамки настоящего руководства.
Чтобы создать новый «mount», щелкните правой кнопкой мыши имя сервера и выберите «Новый SR».
Получить UUID SR
Чтобы получить UUID SR, просто нажмите на его имя в Центре Xen и перейдите на вкладку «Общие».
Настройте файл настроек.
Проект Xen-pocalypse поставляется в комплекте с шаблоном файла настроек. Этот шаблон должен быть отредактирован для отражения вашей установки и передан в качестве первого аргумента скрипту. Файл настроек обозначает следующее:
Метод для получения резервных копий виртуальных машин. Метод по умолчанию - TAG. Вы можете изменить это на FILE, но это не рекомендуется.
Местонахождение пункта назначения резервного копирования. Если вы следовали руководству по этому вопросу, вам нужно только заменить% UUID% SR, как он был получен сверху.
Местоположение SendEmail - Если вы решили включить электронную почту, вам нужно указать, где вы извлекли исполняемый файл perl.
Детали электронной почты -Опять же, если вы включили электронную почту, вам нужно определить такие данные, как: «Кому», «От», «Имя сервера / IP и т. Д.».
компрессия - По умолчанию установлено значение «Нет», так как при его создании создается небольшой файл резервной копии, это также приведет к тому, что процедура резервного копирования будет выполняться в течение значительно более длительного времени.
Проверьте свободное место на месте назначения. У этого будет проверка подлинности скрипта, что резервное копирование виртуальной машины не приведет к тому, что свободное место на диске резервного копирования упадет ниже 10 ГБ. Это делается для обеспечения резервного копирования большого количества виртуальных машин вместо одной очень большой виртуальной машины. Вычисление производится с использованием общей общей размерности диска всех HD, связанных с виртуальной машиной.
отладка - По умолчанию используется отключение отладки со значением «0» (ноль). Вам не нужно включать это, но если вы это сделаете, в разделе устранения неполадок будет указано больше информации.
Выполнение / Планирование
В простейшей форме обращение к Xen-pocalypse будет выглядеть так:
./Xen-backup.sh settings.cfg weekly-fri
Где в приведенном выше случае мы находимся внутри каталога, в котором содержится скрипт и файл настроек. «Тег», который будет искать сценарий, - «еженедельно-fri».
Как отмечено выше, мы будем использовать Cron для планирования выполнения. Прежде чем мы войдем в конфигурацию, настоятельно рекомендуется что вы настроили уже установленный пакет SSMTP на вашем сервере Xen. Хотя это необязательный шаг, это даст вам коллектив обратной промывки. Наличие такого «коллектора обратной промывки» может предупредить вас о вещах, которые сценарий не способен.
Входите в редактирование cron больше, выпуская:
crontab -e
Если вы следуете приведенным выше инструкциям и хотите добавить запланированную резервную копию в пятницу в 18:01 (18:01), введите ниже:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri
Вышесказанное верно, если ваш сценарий и файл настроек находятся под «/ root / Xen-pocalypse-master /».
Поиск проблемы
Хотя я приложил много усилий, чтобы сделать скрипт простым в использовании и максимально надежным, «Мир - это более крупная лаборатория». Информация, приведенная ниже, может помочь вам выяснить, что является источником ваших проблем.
Прогресс
Вы можете использовать этот один лайнер, чтобы быстро «следить» за всеми выполняемыми задачами, видеть, действительно ли они вообще прогрессируют или если они фактически застряли.
while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done
Чтобы остановить просмотр, используйте Ctrl + C, чтобы заблокировать «цикл while».
логирование
Все «протоколирование» собираются хостом Xen, запускающим скрипт в механизме syslog. Это, конечно, можно рассматривать с помощью:
less +F /var/log/messages
Вы ищете ключевое слово «Xen-pocalypse».
Примечание. Citrix установил две (2) дневную политику хранения для syslog своих серверов. Вы можете иметь это в виду для postmortems.
отладка
Как отмечено в сегменте файла настроек, существует директива, позволяющая включить отладку. Включение отладки приведет к тому, что скрипт выведет подробное ведение журнала на консоль и закроет его от отправки писем и фактического выполнения экспорта, если не установлены соответствующие флаги. Возможные флаги отмечены в шаблоне файла настроек, и они позволяют вам детально определить, что вы хотите отлаживать.
Я надеюсь, что вам не нужна какая-либо отладка, и вы пожинаете плоды моего труда:)
Удар, мой человек, ты собираешься стать обманом номер один …