Головна » як » Як резервне копіювання Citrix Xen віртуальних машин безкоштовно з Xen-pocalypse (Bash)

    Як резервне копіювання Citrix Xen віртуальних машин безкоштовно з Xen-pocalypse (Bash)

    Чи потрібно коли-небудь створювати резервні копії ваших віртуальних машин Citrix Xen (VM), але не хотіли б це зробити? HTG має тільки скрипт bash для вас з Xen-pocalypse.

    Зображення: h.koppdelaney, Stuck в Custom і Hotfortech.

    Одна з приємних речей у Citrix Xen полягає в тому, що багато її функцій є безкоштовно заряду. З урахуванням цього, якщо ви хочете "Автоматизована захист і відновлення віртуальних машин" функцію, ви повинні були б почати платити за "Advance" ліцензії. Навіть тоді ви платите лише за резервні копії на рівні диска, які не є достатніми для багатьох типів робочих навантажень, таких як Active Directory, Databases & Etc. Щоб подолати це, вам може знадобитися "Знімок оперативної пам'яті і повернення", який може зберегти весь стан машини, включаючи вміст оперативної пам'яті. Однак, ця функція є частиною випусків «Підприємство» і «Платинум», які ще дорожче. Це не те, що ми в HTG відкидаємо цінність справжнього програмного забезпечення для резервного копіювання, але якщо ви перебуваєте на обмеженому бюджеті і не заперечуєте про час простою для операції резервного копіювання, ви можете знайти Xen-pocalypse як абсолютно розумне рішення. перед виконанням бюджетного зобов'язання.

    Огляд

    "Випадок використання": у вас є кілька віртуальних машин, які потребують резервного копіювання. "Вимкнення віртуальної машини та експортування її як файлу" з "Xen Center" з використанням правих клацань працює нормально, але ви хочете, щоб цей процес відбувався автоматично і за розкладом. Цей сценарій Bash використовує команду "XE" для виконання своїх обов'язків. XE - це інтерфейс командного рядка Xen (CLI), автоматичний еквівалент для видачі "правих клацань" у "Xen Center". Ми будемо називати скрипт від Cron, який надасть частину "планування". У найпростішій формі резервний потік:

    • Вимкніть цільову віртуальну машину.
    • Експортуйте віртуальну машину у файл у резервне місце.
    • Якщо віртуальна машина була ввімкнена, перед тим, як буде створено резервну копію, вона буде знову включена.

    Дозволяє отримати тріщини :)

    Отримайте сценарій

    Xen-pocalypse можна вільно отримувати з github, використовуючи звичайні git методи. З урахуванням сказаного, якщо ви ще не розбираються в git, ви можете захопити zip-файл за допомогою цього посилання. Оскільки скрипт повинен запускатися на одному з серверів Xen, слід витягти його там, щоб дозволи на виконання зберігалися.

    wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
    розпакуйте майстер

    Хоча вищезазначене буде працювати, рекомендується використовувати метод GIT, щоб ви могли скористатися майбутніми оновленнями.

    Отримати пошту 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

    Зверніть увагу на місце розташування, до якого його було вилучено. Вам знадобиться файл налаштувань.

    Визначення тегів

    Citrix Xen дає можливість налаштувати "спеціальні поля" для фільтрування. Ми створимо поля, а потім заповнимо їх інформацією, що використовується Xen-pocalypse. Xen-pocalypse розпізнає 3 контрольні TAG, які позначають ім'я тега для резервного копіювання і родинні до дочірніх відносин. Якщо ви не збираєтеся використовувати метод введення файлу, ви ПОВИННІ створити принаймні поле імені резервної теги.

    Для цього відкрийте властивості сервера або навіть віртуальну машину. На панелі навігації виберіть "Спеціальні поля".

    Якщо ви вперше визначаєте зв'язок (як у прикладі вище), у вас не буде жодних полів для введення даних, тому їх потрібно створити. Для цього натисніть кнопку "Редагувати спеціальні поля" у діалоговому вікні, що з'явиться, натисніть "Додати ..."

    Створіть три (3) поля типу "Текст". Одна буде називатися “BackupTAG”, а інші “Батько” та “Діти”.

    Примітка: Назви користувацьких полів були "жорстко зашифровані" у сценарій, тому ви не повинні відхилятися від наведеного вище, якщо ви не зміните відповідний код, а також.

    Після створення всіх полів ви побачите:

    Закрийте вікно. Тепер ви повинні заповнити поля "BackupTAG", "Parent" і "Children", як на малюнку нижче.

    Тепер потрібно лише визначити, які віртуальні машини належать до того, що "BackupTAG".
    Наприклад, у компанії, де був розроблений сценарій, ми мали віртуальні машини, які мали бути підтримані щотижня в четвер і п'ятницю, графік для наших віртуальних машин Atlassian, а деякі - щомісяця. Тому наш огляд виглядав так:

    Де, наприклад, "week-fri" - це текст, який ми ввели в "BackupTAG" "Custom Field". Чистий? :)

    Батьки та діти (необов'язково)

    Справжньою красою цього сценарію є те, що він підтримує «батьківські» стосунки з «дитиною». Тобто, можна встановити список "дочірніх" віртуальних машин, які будуть вимкнуті та збережені перед батьком, і що ці діти будуть повернуті лише після того, як батько закінчить резервне копіювання і повернеться назад на. Це корисно в тих випадках, коли вимкнення батьківської віртуальної машини призведе до того, що служба дитини стане недоступною. Така річ означатиме, що послуга дитини VM буде недоступна двічі, один раз для процесу резервного копіювання дитини і один раз для батьківських. Створення цього відношення долає цю проблему.

    Наприклад, всі наші віртуальні машини Atlassian використовували одну VM бази даних (DB), яка також була створена для резервного копіювання. Отже, зауваживши, що віртуальна машина DB є "батьківським" для інших віртуальних машин, можна забезпечити належний порядок завершення роботи -> backup -> startup..

    На момент написання цієї функції ця функція містить кілька застережень:

    1. Імена віртуальних машин, які мають мати таку зв'язок, не можуть містити пробіли. Вам потрібно буде видалити пробіли з імен VM, оскільки вони будуть розділені простором, як у прикладі нижче.
    2. Може бути тільки один з батьків. Призначення більш ніж одного навіть не планується, не кажучи вже про тестування.

    Щоб створити цей зв'язок, перейдіть до властивостей VM. Якщо це «батько», напишіть, хто його діти, і якщо це «дитина», напишіть, хто його батько. Наприклад:

    Примітка. Якщо не називати батьків для дитини, це може призвести до запуску дочірньої програми, доки її батько не буде готовий, і може призвести до його резервного копіювання двічі.

    Метод FILE (необов'язково)

    З історичних причин, Xen-pocalypse також підтримує отримання списку віртуальних машин у вигляді текстового файлу. Хоча «код» все ще існує, функціональність суттєво поступається методу TAG, і тому не рекомендується. З урахуванням цього, якщо ви хочете використовувати метод списку з певних причин, застосовуються такі обмеження:

    1. Імена віртуальних машин не можуть містити пробілів або спеціальних символів.
    2. На рядок може бути лише одне ім'я VM.
    3. Порожні рядки не допускаються.

    Щоб створити список, скопіюйте ім'я VM з центру Xen, або виконайте на хості Xen:

    xe vm-list | grep name-label | awk 'print $ 4' | сортувати

    Скопіюйте список у звичайний текстовий файл.

    Місце резервного копіювання

    Хоча випадково тикати в 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-pocalypse поставляється в комплекті з шаблоном файлу "налаштування". Цей шаблон слід відредагувати, щоб відобразити налаштування та передано як перший аргумент сценарію. Файл налаштувань означає наступне:

    Спосіб для отримання віртуальних машин для резервного копіювання - метод за умовчанням - TAG. Ви можете змінити це на ФАЙЛ, але це не рекомендується.

    Розташування призначення резервного копіювання - якщо ви дотримувалися керівництва до цього пункту, вам потрібно замінити лише% UUID% на SR, як було отримано вище.

    Розташування SendEmail  - Якщо ви вирішили ввімкнути електронну пошту, вам потрібно ввести, де ви добули тут виконуваний файл perl.

    Деталі електронної пошти - Знову ж таки, якщо ви ввімкнули електронну пошту, вам потрібно визначити такі деталі, як: До, Від, Ім'я_сервену / ІР.

    Стиснення - За замовчуванням для цього параметра встановлено значення "Ні", оскільки при включенні цього файлу буде створено менший файл резервної копії, тому процедура резервного копіювання буде виконуватися значно довше..

    Перевірте наявність вільного місця на місці призначення - скрипт перевірятиме, що створення резервної копії віртуальної машини не призведе до падіння вільного місця резервного місцеположення під 10 Гб. Це робиться для того, щоб забезпечити резервне копіювання більшої кількості віртуальних машин замість однієї дуже великої віртуальної машини. Розрахунок здійснюється з використанням загального обсягу диска для всіх HD, пов'язаних з VM.

    Налагодження  - Типовим є вимкнення налагодження зі значенням "0" (нуль). Вам не потрібно вмикати цю функцію, але якщо ви це зробите, у сегменті усунення неполадок відзначено більше інформації.

    Виконання / планування

    У найпростішій формі, виклик Xen-pocalypse буде виглядати так:

    ./Xen-backup.sh settings.cfg тиждень-пт

    Де у вищезазначеному випадку ми знаходимося в каталозі, який містить скрипт і файл налаштувань. "Тег", який буде шукати скрипт, - це "щотижня".

    Як зазначено вище, ми будемо використовувати Cron для планування виконання. Перш ніж ми перейдемо до конфігурації, це так Настійно рекомендується налаштувати вже встановлений пакет SSMTP на сервері Xen. Хоча це додатковий крок, це дасть вам колектор зворотного промивання. Наявність такого "колектора зворотного промивання" може попередити вас про те, що сценарій не може.

    Введіть у редагування cron більше:

    crontab -e

    Якщо ви дотримувалися наведених вище інструкцій, і бажаєте додати заплановану резервну копію для п'ятниці о 18:01 (6:01 вечора), введіть нижче:

    01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg

    Вище наведено правильний випадок, якщо ваш сценарій і файл налаштувань знаходяться в розділі "/ root / Xen-pocalypse-master /".

    Вирішення проблем

    Хоча я доклав багато зусиль для того, щоб зробити цей сценарій простим у використанні і настільки ж надійним, наскільки це можливо, "Світ - це велика лабораторія". Наведена нижче інформація може допомогти вам з'ясувати, що є джерелом проблем.

    Прогрес

    Можливо, ви захочете скористатися цим лайнером, щоб швидко «спостерігати» за виконанням усіх завдань, щоб побачити, чи вони дійсно просуваються, або якщо вони насправді застрягли.

    while [-e / dev / null]; робити для VM в "$ (xe список завдань | grep uuid | awk 'print $ 5')"; do xe task-param-get param-name = прогрес uuid = $ VM; сплячий 1; зроблено; зроблено

    Щоб припинити перегляд, використовуйте Ctrl + C, щоб заблокувати "цикл while".

    Вхід

    Весь журнал збирається хостом Xen, який запускає скрипт у механізмі syslog. Це, звичайно, можна переглянути за допомогою:

    менше + F / var / log / messages

    Ви шукаєте ключове слово "Xen-pocalypse".

    Примітка: Citrix встановив два (2) дня політики збереження для системного журналу своїх серверів. Ви можете мати це на увазі для посмертних випадків.

    Налагодження

    Як зазначено в сегменті налаштувань, існує директива, що дозволяє ввімкнути налагодження. Увімкнення налагодження призведе до того, що скрипт виводить докладний журнал на консоль і каструє його від надсилання електронних листів і фактично виконує експорт, якщо не встановлено відповідні прапори. Можливі прапори позначені в шаблоні файлу налаштувань, і вони дозволяють детально визначити, що ви хочете відлагодити.

    Я сподіваюся, що ви не потребували ніякої налагодження, і ви пожинаєте плоди моєї праці :)


    Тяга, мій чоловік, ви збираєтеся стати першим децептоном ...