Як відновити віртуальні машини Citrix-Xen безкоштовно за допомогою Xen-Phoenix (Bash)
Ви коли-небудь мали необхідність масового відновлення віртуальних машин Citrix-Xen для відновлення після аварії (DR), або просто для перевірки роботи резервних копій? HTG пояснює, як використовувати Xen-Phoenix, безкоштовний скрипт bash для відновлення віртуальної машини.
Фото: Ryan McCurdy через Compfight cc
Як ми вже згадували в розділі “Як безкоштовно резервувати віртуальні машини Citrix Xen з Xen-pocalypse”, однією з приємних речей у Citrix Xen є те, що багато її функцій безкоштовно заряду. З урахуванням цього, якщо ви хочете "Автоматизована захист і відновлення віртуальних машин" функцію, ви повинні були б почати платити за "Advance" ліцензії. Знову ж таки, це не те, що ми в HTG відкидаємо цінність справжнього рішення для резервного копіювання, але якщо у вас є обмежений бюджет, то вже отримали зображення VM з гіпервізора і потребують способу автоматизації вашого “ тестування відновлення ”/” Оновлення DR ”, ви можете виявити, що Xen-Phoenix буде цілком розумним рішенням перед тим, як зробити бюджетне зобов'язання.
Огляд
"Випадок використання": у вас є кілька віртуальних машин, які потребують відновлення. Імпортування в "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, я виявив, що сховища сховищ (SR) доступні для використання в розділі "/ var / run / sr-mount /% UUID%", де UUID є унікальним ідентифікатором SR, який може бути отримані з GUI.
Це означає, що ми можемо скористатися звичайним майстром "Далі -> Наступний -> Завершити", щоб створити "монтувати" до потрібного місця резервного копіювання, а потім запустити цей шлях до сценарію (так само, як і до керування мережею з командного рядка виходять за рамки цього посібника).
Щоб створити нове "mount", клацніть правою кнопкою миші ім'я сервера і виберіть New SR.
У цьому прикладі ми наведемо Xen на спільний доступ до Windows, тому виберіть "Спільний доступ до файлів Windows (CIFS)":
Виконайте наступне -> Next -> Finish.
Отримати UUID SR
Щоб отримати UUID SR, просто натисніть на його ім'я в Xen Center і перейдіть на вкладку "General".
Щоб скопіювати UUID, просто клацніть правою кнопкою миші та виберіть "копіювати".
Отримавши цю інформацію, ви готові редагувати файл налаштувань.
Налаштуйте файл налаштувань
Проект Xen-phoenix поставляється в комплекті з шаблоном файлу "налаштування". Цей шаблон слід відредагувати, щоб відобразити налаштування та передано як перший аргумент сценарію.
Файл налаштувань означає наступне:
- Розташування експортного джерела - якщо ви дотримувалися керівництва до цього пункту, вам потрібно замінити лише% UUID% на SR, як було отримано вище.
- Розташування SendEmail - якщо ви вирішили ввімкнути електронну пошту, потрібно ввести, де ви добули виконуваний файл perl.
- Верифікатор - керує процедурою перевірки відновлення публікацій. Цей параметр увімкнено за умовчанням, оскільки успішне "відновлення рівня файлу" не обов'язково означає функціональну віртуальну машину.
- Server_prep - керує попереднім відновленням видалення всіх віртуальних машин на сервері DR. Це за замовчуванням увімкнено, оскільки передбачається, що сервер DR є виділеним сервером для цієї мети. Якщо вам потрібна віртуальна машина, яка працює на цьому сервері, щоб не видалятися, налаштуйте її для виключення. Якщо така поведінка не підходить для вашої ситуації, просто повністю вимкніть її.
- Деталі електронної пошти - Знову ж таки, якщо ви ввімкнули електронну пошту, вам потрібно визначити такі деталі, як: До, Від, Ім'я_сервену / ІР.
- Налагодження - Типовим є вимкнення налагодження зі значенням "0" (нуль). Вам не потрібно вмикати цю функцію, але якщо ви це зробите, у сегменті усунення несправностей відзначається більше інформації.
Виконання
Цей скрипт приймає файл налаштувань як перший аргумент і будь-які інші аргументи, як “Шеврони” для пошуку (розділені пробілами). Шеврони - це "рядки", які підтримують регулярні вирази, що представляють принаймні частину потрібного ім'я файлу експорту VM.
Тобто, у найпростішій формі, виклик Xen-phoenix буде виглядати так:
./Xen-phoenix.sh settings.cfg DevTools
Де у випадку вище, ми знаходимося в каталозі, який містить скрипт & файл налаштувань і "Chevron" скрипт буде шукати це "DevTools". Це призведе до імпортування всіх файлів у каталозі export з рядком "DevTools" у їх імені.
Більш складний приклад може виглядати так:
./Xen-phoenix.sh Налаштування.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] DB [Bb] [iI] [Dd] ] ools
Вище вказано правильно, якщо сценарій і файл налаштувань вказані як "/ 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) і дає можливість гранулярно виключити VM з загальносистемного видалення за допомогою контрольної TAG. Для цього потрібно визначити нове "Спеціальне поле".
Для цього відкрийте властивості сервера або навіть віртуальну машину. На панелі навігації виберіть "Спеціальні поля".
Якщо ви вперше визначаєте "спеціальне поле" (як у прикладі вище), у вас не буде поля "Phoenix_keeper" для введення даних, тому вам потрібно створити його. Для цього натисніть кнопку "Редагувати спеціальні поля" у спливаючому діалоговому вікні, а потім натисніть "Додати ..."
Створити поле типу "Текст" з назвою "Phoenix_keeper".
Примітка: Ім'я спеціального поля було "жорстко зашифровано" у сценарій, тому ви не повинні відхилятися від наведеного вище, якщо ви не зміните відповідний код, а також.
Після створення поля ви побачите:
Закрити вікно. Тепер вам слід заповнити поле "Phoenix_keeper", як на малюнку нижче.
Тепер все, що вам потрібно зробити, це заповнити це поле із зауваженням (будь-яке зауваження буде), що призведе до того, що Xen-phoenix буде пропускати його під час видалення.
Вирішення проблем
Хоча я доклав багато зусиль для того, щоб зробити цей сценарій простим у використанні і як надійна, наскільки це можливо, "світ є більшою лабораторією". Наведена нижче інформація може допомогти вам з'ясувати, що є джерелом проблем.
Вхід
Весь журнал збирається хостом Xen, який запускає скрипт у механізмі syslog. Це, звичайно, можна переглянути за допомогою:
менше + F / var / log / messages
Ви шукаєте ключове слово "Xen-Phoenix".
Примітка: Citrix встановив два (2) дня політики збереження для системного журналу своїх серверів. Ви можете мати це на увазі для посмертних випадків.
Налагодження
Як зазначено в сегменті налаштувань, існує директива, що дозволяє ввімкнути налагодження. Увімкнення налагодження призведе до того, що скрипт виводить докладний журнал на консоль і каструє його від надсилання електронних листів і фактично виконує імпорт, якщо не встановлено відповідні прапори. Можливі прапори позначені в шаблоні файлу налаштувань, і вони дозволяють детально визначити, що ви хочете відлагодити.
Я сподіваюся, що ви не потребували ніякої налагодження, і ви пожинаєте плоди моєї праці :)
Подумайте про всю бідність, ненависть і брехню, і уявіть собі знищення всього, що ви зневажаєте. Повільно з попелу з'явиться фенікс ...