Как да възстановите Citrix-Xen VMs безплатно с Xen-Phoenix (Bash)
Били ли сте някога необходимостта от масово възстановяване на вашите Citrix-Xen VM за решение за възстановяване след бедствие (DR) или просто за да проверите дали резервните ви копия работят? HTG обяснява как да се използва Xen-Phoenix, свободен bash скрипт, за възстановяване на VM.
Снимка: Райън Маккърди чрез Compfight cc
Както споменахме в „Как да архивираме Citrix Xen VMs безплатно с Xen-pocalypse“, едно от хубавите неща в Citrix Xen е, че много от неговите функции са Безплатно на такса. С това казано, ако искате функцията "Автоматизирана защита и възстановяване на виртуални машини", ще трябва да започнете да плащате за "Адванс" лиценз. Отново не е, че ние в HTG отхвърляме стойността на едно истинско решение за бекъп, но ако сте на ограничен бюджет, вече сте извадили VM изображенията от хипервайзора и се нуждаете от начин за автоматизиране на вашите “. тест за възстановяване ”/” Опресняване на DR ”, може да откриете, че Xen-Phoenix е напълно разумно решение, преди да поемете бюджетния ангажимент.
Преглед
“Case use”: Имате няколко виртуални машини, които изискват възстановяване. Импортирането в „Xen Center“, използвайки десните кликвания, работи добре, но искате този процес да се случи автоматично и по график. Този Bash скрипт използва командата "XE" за изпълнение на задълженията си. XE е интерфейсът на командния ред на Xen (CLI), автоматичен еквивалент за издаване на "правилните кликвания" в "Xen Center". Ще извикваме скрипта от Cron, който ще предостави частта за "планиране". В най-простата си форма възстановителният поток е:
- Изтрий всички * предишни съществуващи виртуални машини на сървъра
- Импортирайте виртуални машини от файлове в резервното местоположение.
- Уверете се, че всички виртуални машини могат да се задействат, като ги активирате един по един и търсят сърцебиенето на инструментите за гости.
- Изключете виртуалните машини, когато е открито сърцебиене или е достигнато време за изчакване.
* Поведението при изтриване на всички виртуални машини може да бъде напълно деактивирано и поддържа изключения (вж. По-долу).
Да получим крекинг :)
Получете скрипта
Xen-phoenix може да се получи свободно от github, като се използват обичайните git методи. С това каза, ако все още не сте запознати с git, можете да вземете zip файла с тази връзка. Тъй като скриптът трябва да се изпълнява на един от сървърите на Xen, трябва да го извлечете там, за да се запазят разрешенията за изпълнение.
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
разархивирайте капитана
Въпреки че по-горе ще работи, препоръчваме ви да използвате метода GIT, така че да имате полза от бъдещи актуализации.
Местоположението за износ
Трябва да конфигурираме откъде да вземем износа на VM.
Докато случайно блъскаше в Citrix Xen, открих, че хранилищата за съхранение (SRs) са достъпни за използване в „/ var / run / sr-mount /% UUID%“, където UUID е уникалният идентификатор на SR, който може да бъде получени от GUI.
Това означава, че можем да използваме обичайния съветник "Следващ -> Следващ -> Завърши", за да създадем "монтиране" към желаното място за архивиране и след това да използваме този път (както е свързано с качването с монтирането от командния ред, който е извън обхвата на това ръководство).
За да създадете нов “mount”, щракнете с десния бутон върху името на сървъра и изберете New SR.
В този пример ще насочим Xen към дял на Windows, затова изберете „Windows File Sharing (CIFS)“:
Завършете следващия -> Следващ -> Край.
Получете UUID на SR
За да получите UUID на SR, просто кликнете върху неговото име в Xen Center и отидете в раздела „Общи“.
За да копирате UUID, просто кликнете с десния бутон върху него и изберете „копиране“.
Когато тази информация е налице, вие сте готови да редактирате файла с настройки.
Конфигурирайте файла Настройки
Проектът Xen-phoenix е снабден с шаблон за „настройки“. Този шаблон трябва да се редактира, за да отразява настройката ви и да се предава като първи аргумент на скрипта.
Файлът с настройки означава следното:
- Местоположението на износа на източника - Ако сте следвали ръководството до тази точка, трябва само да замените% UUID% със SR, както е получен от по-горе.
- Местоположението на SendEmail - Ако сте избрали да активирате електронната поща, трябва да въведете къде сте извлекли изпълнимия файл на perl тук.
- Верификатор - Това контролира процедурата за потвърждаване след възстановяване. Това е разрешено по подразбиране, тъй като успешното „възстановяване на файлово ниво“ не изисква функционална виртуална машина.
- Server_prep - Това контролира предварителното възстановяване заличаване на всички виртуални машини на DR сървъра. Това е разрешено по подразбиране, защото се приема, че DR сървърът е специален сървър за тази цел. Ако се нуждаете от виртуална машина, която се изпълнява на този сървър, за да не се изтрива, конфигурирайте я да бъде изключена. Ако това поведение не е подходящо за вашата ситуация, просто го изключете напълно.
- Данни за имейла - Отново, ако сте активирали електронната поща, трябва да дефинирате подробности като: До, От, Име на сървъра / IP и т.н..
- Отстраняване на грешки - По подразбиране е изключено отстраняването на грешки със стойността "0" (нула). Не е необходимо да включвате това, но ако го направите, повече информация се отбелязва в сегмента за отстраняване на неизправности..
Екзекуция
Този скрипт извлича настройките като първи аргумент и всякакви други аргументи като “Шеврони” за търсене (разделени с интервали). Шевроните са "низове", които поддържат регулярни изрази, които представляват поне част от желаното име на файла на износа на ВМ.
Тоест, в най-простата си форма, извикването на Ксен-феникс ще изглежда така:
./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 -е
Ако сте изпълнили горепосочените указания и искате да добавите планирано архивиране за неделя в 01:31 (1:31 AM), въведете следното:
31 01 * * sun / root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ] ools
Посоченото по-горе е правилно, ако приемем, че вашият скрипт и файлът с настройки са в „/ root / Xen-phoenix-master /“.
Получаване на SendEmail (по избор)
В миналото сме писали за програмата SendLmail perl, така че няма нужда да се повтаря тук. Достатъчно е да се каже, че работи по същия начин в 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) и ви дава възможност да изключите подробно VM от изтриването на цялата система, използвайки контролен TAG. За да направите това, трябва да определите ново „поле по избор“.
За да направите това, отворете свойствата на сървъра или дори на VM. В навигационния екран изберете „Персонализирани полета“.
Ако това е първият път, когато дефинирате „потребителско поле“ (както в примера по-горе), няма да имате поле „Phoenix_keeper“ за въвеждане на данни, така че трябва да го създадете. За да направите това, кликнете върху „Редактиране на потребителски полета“ в диалоговия прозорец, който се появява, след което кликнете върху „Добавяне…“
Създайте поле „Текст“ с името „Phoenix_keeper“.
Забележка: Името на персонализираното поле е „закодирано“ в скрипта, така че НЕ ТРЯБВА да се отклонявате от изписването по-горе, освен ако не промените и съответния код, както и.
След като полето бъде създадено, трябва да видите:
Затваряне на прозореца. Сега трябва да попълните полето „Phoenix_keeper“, както е показано на картинката по-долу.
Сега всичко, което трябва да направите, е да попълните това поле със забележка (всяка забележка ще направи), което ще накара Xen-phoenix да я пропусне при изтриване.
Отстраняване на проблеми
Докато полагах много усилия, за да направим скрипта толкова лесен за използване и колкото е възможно по-сигурен, „светът е по-голяма лаборатория“. Информацията по-долу може да ви помогне да установите кой е източникът на вашите проблеми.
Влизане
Всички “logging” се събират от хоста Xen, който изпълнява скрипта в syslog механизма. Това, разбира се, може да се види с:
по-малко + F / var / log / messages
Търсите ключовата дума „Xen-Phoenix“.
Забележка: Citrix е задала две (2) дневни правила за запазване на syslog на своите сървъри. Може да искате да имате предвид това след смъртта.
Отстраняване на грешки
Както е отбелязано в сегмента с файлове с настройки, има директива, която позволява разрешаване на грешки. Разрешаването на отстраняването на грешки ще накара скрипта да изведе подробен запис в конзолата и да го кастрира от изпращане на имейли и действително да извърши вноса, освен ако съответните флагове също не са зададени. Възможните флагове се отбелязват в шаблона на файла с настройки и ви дават възможност да дефинирате подробно какво искате да отстраните грешки.
Надявам се, че не се нуждаете от отстраняване на грешки и пожънете плодовете на моя труд :)
Помислете само за цялата бедност, омразата и лъжите и си представете унищожаването на всичко, което презирате. Бавно от пепелта, фениксът ще се появи…