Имали ли сте някога нужда да архивирате вашите виртуални машини (VM) Citrix Xen, но не сте искали да разбиете банката, правейки това? HTG има само bash скрипта за вас с Xen-pocalypse.



Изображение от h.koppdelaney , Заседнал в Custom и Hotfortech.

Едно от хубавите неща в Citrix Xen е, че много от неговите функции са Безплатно на такса. С това казано, ако искате функцията за автоматизирана защита и възстановяване на VM, ще трябва да започнете да плащате за лиценза Advance. Дори и тогава, вие плащате само за архивиране на ниво диск, което не е достатъчно за много видове натоварвания като Active Directory, бази данни и т.н. За да преодолеете това, може да искате моментна снимка на паметта на живо и връщане, което може да запази цялото състояние на машината , включително съдържанието на RAM. Тази функция обаче е част от изданията Enterprise и Platinum, които са дори по-скъпи. Не че ние от HTG отхвърляме стойността на истинския софтуер за архивиране, но ако имате ограничен бюджет и нямате нищо против престой за операцията по архивиране, може да откриете, че Xen-pocalypse е напълно разумно решение преди да поемете бюджетния ангажимент.

Общ преглед

Случай на употреба: Имате няколко виртуални машини, които изискват резервно копие. Изключването на VM и експортирането му като файл от Xen Center с помощта на десни щраквания работи добре, но искате този процес да се случва автоматично и по график. Този Bash скрипт използва XE командата, за да изпълнява своите задължения. XE е интерфейсът на командния ред на Xen (CLI), автоматичен еквивалент за издаване на десни щраквания в Xen Center. Ще извикаме скрипта от Cron който ще предостави частта за планиране. В най-простата си форма резервният поток е:

  • Изключете целевата VM.
  • Експортирайте VM като файл в местоположението за архивиране.
  • Ако виртуалната машина е била включена, преди да започне архивирането, тя ще бъде включена отново.

Хайде да се разчупим :)

Вземете скрипта

Ксен-покалипсис могат да бъдат получени свободно от github , използвайки обикновените git методи. С това казано, ако не сте запознат с git все пак можете да вземете zip файла с тази връзка . Тъй като скриптът трябва да се изпълнява на един от вашите Xen сървъри, трябва да го извлечете там, за да се запазят разрешенията за изпълнение.

wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
unzip master

Въпреки че горното би работило, препоръчваме ви да използвате метода GIT, за да можете да се възползвате от бъдещи актуализации.

Получаване на SendEmail (по избор)

Писали сме за програмата SendEmail perl в миналото , така че няма нужда да повтарям тук. Достатъчно е да се каже, че работи по същия начин в Linux, както и в Windows.

Реклама

Въпреки че активирането на имейл не е задължително, силно се препоръчва, защото тогава скриптът ще може:

  • Информираме ви кога е започнало и приключило да работи.
  • Предупреждава ви за всякакви грешки, които е успял да открие и обработи.
  • Информирайте за резервни дисквалификации поради проблеми с пространството. (Това поведение може да бъде деактивирано, ако не се желае)

Изтеглете го на сървъра на Xen и го извлечете.

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz

Забележете местоположението, където сте го извадили. Ще ви трябва за файла с настройки.

как да преглеждам време на Windows

Дефиниране на етикети

Citrix Xen ви дава възможност да конфигурирате персонализирани полета за възможности за филтриране. Ще създадем полетата и след това ще ги попълним с информацията, използвана от Xen-pocalypse. Xen-pocalypse разпознава 3 контролни TAG-а, които обозначават името на етикета за архивиране и връзките между родител и дете. Ако не възнамерявате да използвате метода за въвеждане на файл, ТРЯБВА да създадете поне полето за име на резервен маркер.

За да направите това, отворете свойствата на сървъра или дори на VM. В навигационния екран изберете Персонализирани полета.

Ако това е първият път, когато дефинирате връзка (както в примера по-горе), няма да имате полета за въвеждане на данни, така че трябва да ги създадете. За да направите това, щракнете върху Редактиране на персонализирани полета в диалоговия прозорец, който се появява, щракнете върху Добавяне...

Реклама

Създайте три (3) текстови полета. Единият ще се казва BackupTAG, а другият Родител и Деца.

Забележка: Имената на персонализираните полета са твърдо кодирани в скрипта, така че НЕ ТРЯБВА да се отклонявате от правописа по-горе, освен ако не промените и съответния код.

След като всички полета са създадени, трябва да видите:

Затворете прозореца. Сега трябва да имате полетата за резервно копие, родител и деца, които да попълните, както е на снимката по-долу.

Сега всичко, което трябва да направите, е да посочите кои виртуални машини принадлежат на какъв BackupTAG.
Например, в компанията, където беше разработен скриптът, имахме виртуални машини, които трябваше да се архивират всяка седмица в четвъртък и петък, график за нашите Atlassian продуктови виртуални машини и някои, които трябваше да се архивират само ежемесечно. Така нашият преглед изглеждаше така:

Където например седмично-пет беше текстът, който сме въвели в персонализираното поле на BackupTAG. Чисто, а? :)

Родители и деца (по избор)

Истинската красота на този скрипт е, че поддържа отношенията между родител и дете. Тоест, възможно е да се зададе списък с дъщерни виртуални машини, които ще бъдат изключени и архивирани преди родителския, и че тези деца ще бъдат включени отново само след като родителят завърши своето архивиране и бъде включен отново. Това е полезно в случаите, когато изключването на родителската виртуална машина ще доведе до недостъпност на услугата в детето. Такова нещо би означавало, че услугата на детската VM ще бъде недостъпна два пъти, веднъж за процеса на архивиране на детето и веднъж за родителския. Създаването на тази връзка преодолява този проблем.

Реклама

Например, всички наши виртуални машини на Atlassian използваха една VM на базата данни (DB), която също беше настроена да бъде архивирана. Така че като се отбележи, че DB VM е родител на другите VM, може да се осигури правилен ред на изключване -> архивиране -> стартиране.

По време на това писане тази функция има няколко предупреждения:

  1. Имената на виртуалните машини, които трябва да имат такава връзка, не могат да съдържат интервали. Ще трябва да премахнете интервали от имената на вашите VM, тъй като те ще бъдат разделени с интервал, както е в примера по-долу.
  2. Може да има само един родител. Определянето на повече от един дори не е планирано, да не говорим за тестване.

За да създадете тази връзка, отидете в свойствата на VM. Ако това е родител, напишете кои са неговите деца и ако това е дете, напишете кой е неговият родител. Например:

удължител срещу пренапрежение

Забележка: Неопределянето на родител за дете може да доведе до стартиране на детето преди неговия родител да е готов и може да доведе до архивиране на два пъти.

Методът FILE (По избор)

По исторически причини Xen-pocalypse също така поддържа архивирането на списъка с VM като текстов файл. Докато кодът все още е там, функционалността е сериозно нисък към метода TAGs и затова не се препоръчва. С това казано, ако предпочитате да използвате метода на списък по някаква причина, се прилагат следните ограничения:

  1. Имената на виртуалните машини не могат да съдържат никакви интервали или специални знаци.
  2. Може да има само едно име на VM на ред.
  3. Не се допускат празни редове.

За да генерирате списъка, или копирайте името на VM от Xen центъра, или изпълнете на Xen хост:

xe vm-list | grep name-label | awk '{ print }' | sort

Копирайте списъка по-горе в обикновен текстов файл.

Резервното място

Докато ровех на случаен принцип в Citrix Xen, открих, че Хранилища за съхранение (SR) са достъпни за използване под /var/run/sr-mount/%UUID%, където UUID е уникалният идентификатор на SR, който може да бъде получен от GUI.

Реклама

Това означава, че можем да използваме обикновения Next -> Next -> Finish wizard, за да създадем монтирането до желаното място за архивиране и след това да накараме скриптът да използва този път (за разлика от бъркането с монтирането от командния ред ), но това е извън обхвата на това ръководство.

За да създадете ново монтиране, щракнете с десния бутон върху името на сървъра и изберете New SR.

В този пример ще посочим Xen към a споделяне на windows , така че изберете Споделяне на файлове на Windows (CIFS):

Завършете Next -> Next -> Finish.

Вземете UUID на SR

За да получите UUID на SR, просто щракнете върху името му в Xen Center и отидете на раздела Общи.

За да копирате UUID, просто щракнете с десния бутон върху него и изберете копие.

Реклама

С тази информация под ръка, вие сте готови да редактирате файла с настройки.

Конфигурирайте файла с настройки.

Проектът Xen-pocalypse идва в комплект с шаблон за файл с настройки. Този шаблон трябва да бъде редактиран, за да отрази вашата настройка и да бъде предаден като първи аргумент на скрипта. Файлът с настройки обозначава следното:

Методът за получаване на VM за архивиране – Методът по подразбиране е TAGs. Можете да промените това на FILE, но това не се препоръчва.

Локацията на резервната дестинация – Ако сте следвали ръководството до този момент, трябва само да замените %UUID% със SR, както е получено от горе.

Местоположението на SendEmail – Ако сте избрали да активирате имейл, трябва да въведете къде сте извадили изпълнимия perl файл тук.

Подробности за имейл – Отново, ако сте активирали имейл, трябва да дефинирате подробности като: До, От, Име на сървъра/IP и т.н.

Реклама

Компресия – Това е зададено на Не по подразбиране, тъй като докато го активирате, ще създаде по-малък архивен файл, това също ще доведе до изпълнение на процедурата за архивиране за значително по-дълъг период от време.

Проверете за свободно място на местоназначението – това ще накара скрипта да провери дали архивирането на VM няма да доведе до падане на свободното пространство на местоположението за архивиране под 10 GB. Това се прави, за да се гарантира, че най-много виртуални машини са архивирани вместо само една много голяма виртуална машина. Изчислението се извършва с помощта на общия размер на диска на всички HD дискове, свързани с VM.

Отстраняване на грешки – По подразбиране отстраняването на грешки е изключено със стойност 0 (нула). Не трябва да включвате това, но ако го направите, повече информация ще бъде отбелязана в сегмента за отстраняване на неизправности.

Изтегляне на актуализация на windows 10 20h2

Изпълнение/планиране

В най-простата си форма извикването на Xen-pocalypse би изглеждало така:

./Xen-backup.sh settings.cfg weekly-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 }' )' ; 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) дни политика за задържане за системния журнал на своите сървъри. Може да искате да имате това предвид при аутопсиите.

колко дълго е мелодията

Отстраняване на грешки

Реклама

Както е отбелязано в сегмента на файла с настройки, има директива за разрешаване на отстраняване на грешки. Активирането на отстраняването на грешки ще накара скрипта да изведе подробен лог в конзолата и да го кастрира от изпращане на имейли и действително извършване на експортиране, освен ако съответните флагове също не са зададени. Възможните флагове са отбелязани в шаблона на файла с настройки и ви позволяват да дефинирате детайлно какво искате да отстраните.

Надявам се, че не сте имали нужда от отстраняване на грешки и берете плодовете на моя труд :)


Върви, човече мой, ти ще станеш номер едно десептикон...

ПРОЧЕТЕТЕ СЛЕДВАЩО
  • › Как да възстановите Citrix-Xen VM безплатно с Xen-Phoenix (Bash)
  • › Какво представлява MIL-SPEC защита от изпускане?
  • › Компютърната папка е 40: Как Xerox Star създаде работния плот
  • › Функции срещу формули в Microsoft Excel: Каква е разликата?
  • Кибер понеделник 2021: Най-добрите технологични сделки
  • › 5 уебсайта, които всеки потребител на Linux трябва да направи отметка
  • › Как да намерите своя Spotify Wrapped 2021