Główna » jak » Jak przywrócić VM Citrix-Xen za darmo za pomocą Xen-Phoenix (Bash)

    Jak przywrócić VM Citrix-Xen za darmo za pomocą Xen-Phoenix (Bash)

    Czy kiedykolwiek potrzebowałeś masowego przywracania maszyn wirtualnych Citrix-Xen do rozwiązania odzyskiwania po awarii (DR) lub po prostu do sprawdzenia, czy kopie zapasowe działają? HTG wyjaśnia, jak używać Xen-Phoenix, darmowego skryptu bash, do przywracania VM.

    Źródło: Ryan McCurdy przez Compfight cc

    Jak wspominaliśmy w artykule "Jak tworzyć kopie zapasowe Citrix Xen VM za darmo za pomocą Xen-Pocalypse", jedną z fajnych rzeczy w Citrix Xen jest to, że wiele z jego cech to: wolny opłaty. W związku z tym, jeśli chcesz skorzystać z funkcji "Automatyczna ochrona i odzyskiwanie maszyn wirtualnych", musisz zacząć płacić za licencję "Advance". Ponownie, nie jest tak, że my w HTG odrzucamy wartość prawdziwego rozwiązania do tworzenia kopii zapasowych, ale jeśli masz napięty budżet, już dostałeś obrazy VM z hiperwizora i potrzebujesz sposobu na zautomatyzowanie swojego " procedury "przywracania odświeżenia DR", możesz uznać Xen-Phoenix za całkowicie rozsądne rozwiązanie przed podjęciem zobowiązania budżetowego.

    Przegląd

    "Przypadek użycia": masz kilka maszyn wirtualnych, które wymagają przywrócenia. Importowanie w "Centrum Xen" za pomocą kliknięć prawym przyciskiem działa dobrze, ale chcesz, aby proces ten przebiegał automatycznie i zgodnie z harmonogramem. Ten skrypt Bash używa polecenia "XE" do wykonywania swoich obowiązków. XE to interfejs linii poleceń Xen (CLI), automatyczny odpowiednik dla wydawania "kliknięć prawym przyciskiem" w "Centrum Xen". Będziemy wywoływać skrypt z Cron, który dostarczy część "planowania". W najprostszej postaci przepływ przywracania to:

    • Kasować wszystkie * poprzednio istniejące maszyny wirtualne na serwerze
    • Importuj maszyny wirtualne z plików w lokalizacji kopii zapasowej.
    • Sprawdź, czy wszystkie maszyny wirtualne działają, uruchamiając je jeden po drugim i szukając pulsu narzędzia guest.
    • Wyłącz mechanizmy wirtualne, gdy zostanie wykryte bicie serca lub przekroczony zostanie limit czasu.

    * Usunięcie wszystkich zachowań maszyn wirtualnych można całkowicie wyłączyć i obsługuje wyjątki (patrz poniżej).

    Do roboty :)

    Uzyskaj skrypt

    Xen-phoenix można swobodnie uzyskiwać z github, używając zwykłych metod git. Mówiąc to, jeśli jeszcze nie jesteś zaznajomiony z git, możesz pobrać plik zip za pomocą tego linku. Ponieważ skrypt musi działać na jednym z twoich serwerów Xen, powinieneś go tam wydobyć, aby zachować uprawnienia do wykonywania.

    wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
    rozpakuj master

    Chociaż powyższe zadziała, zaleca się użycie metody GIT, aby móc korzystać z przyszłych aktualizacji.

    Lokalizacja eksportu

    Musimy określić, skąd wziąć eksportowanie maszyn wirtualnych.

    Podczas losowego przeglądania w Citrix Xen odkryłem, że repozytorium pamięci masowej (SR) jest dostępne do użycia w "/ var / run / sr-mount /% UUID%", gdzie UUID jest unikalnym identyfikatorem SR, który może być uzyskane z GUI.

    Oznacza to, że możemy użyć zwykłego kreatora "Next -> Next -> Finish", aby utworzyć "mount" do żądanej lokalizacji kopii zapasowej, a następnie poprosić skrypt o użycie tej ścieżki (w taki sposób, aby aplikacja działała z instalacją z wiersza poleceń, który jest poza zakresem tego przewodnika).

    Aby utworzyć nowy "mount", kliknij prawym przyciskiem myszy nazwę serwera i wybierz Nowy SR.

    W tym przykładzie wskażemy Xen na udział Windows, więc wybierz "Udostępnianie plików Windows (CIFS)":

    Wypełnij Next -> Next -> Finish.

    Uzyskaj identyfikator UUID SR

    Aby uzyskać identyfikator UUID SR, po prostu kliknij jego nazwę w Centrum Xen i przejdź do zakładki "Ogólne".

    Aby skopiować UUID, po prostu kliknij prawym przyciskiem myszy i wybierz "Kopiuj".

    Dzięki tym informacjom jesteś gotowy do edycji pliku ustawień.

    Skonfiguruj plik ustawień

    Projekt Xen-phoenix jest dostarczany z szablonem pliku "ustawienia". Ten szablon powinien być edytowany w celu odzwierciedlenia konfiguracji i przekazany jako pierwszy argument skryptu.

    Plik ustawień określa:

    • Lokalizacja eksportu źródeł - Jeśli postępowałeś zgodnie ze wskazówkami do tego punktu, musisz tylko zastąpić% UUID% SR, jak to zostało uzyskane z góry.
    • Lokalizacja SendEmail - Jeśli zdecydowałeś się włączyć Email, musisz podać gdzie wypakowałeś plik wykonywalny Perla tutaj.
    • Weryfikator - kontroluje procedurę weryfikacji po przywróceniu. Jest to domyślnie włączone, ponieważ pomyślne "przywrócenie poziomu pliku" nie musi oznaczać funkcjonalnej maszyny wirtualnej.
    • Server_prep - To steruje odtwarzaniem wstępnym usunięcie wszystkich maszyn wirtualnych na serwerze DR. Jest to domyślnie włączone, ponieważ zakłada się, że serwer DR jest serwerem dedykowanym do tego celu. Jeśli nie chcesz, aby maszyna wirtualna uruchomiona na tym serwerze nie była usuwana, skonfiguruj ją, aby była wykluczona. Jeśli to zachowanie nie jest odpowiednie w twojej sytuacji, po prostu całkowicie je wyłącz.
    • Szczegóły poczty e-mail - Ponownie, jeśli masz włączone wiadomości e-mail, musisz zdefiniować szczegóły, takie jak: Do, Od, Nazwa / adres IP itp. ".
    • Debugowanie  - Wartością domyślną jest wyłączenie debugowania z wartością "0" (zero). Nie powinieneś tego włączać, ale jeśli to zrobisz, więcej informacji zostanie odnotowanych w segmencie rozwiązywania problemów.

    Wykonanie

    Ten skrypt przyjmuje plik ustawień jako swój pierwszy argument i inne argumenty jako "Chevrons" do wyszukiwania (oddzielone spacjami). Chevrons, są "łańcuchami", które obsługują wyrażenia regularne, które reprezentują przynajmniej część pożądanej nazwy pliku eksportu VM.

    Oznacza to, że w swojej najprostszej postaci będzie wyglądać inwokacja Xen-feniks:

    ./Xen-phoenix.sh settings.cfg DevTools

    Gdzie w powyższym przypadku znajdujemy się w katalogu, w którym znajduje się skrypt i plik ustawień, a "Chevron", którego będzie szukać skrypt, to "DevTools". Spowoduje to, że wszystkie pliki w katalogu eksportu będą importowane z nazwą "DevTools".

    Bardziej złożony przykład może wyglądać tak:

    ./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools

    Gdzie w powyższym przykładzie zostaną zaimportowane pliki zawierające słowo "devtools" napisane literami "D" i "T" lub nie-kapitałowymi, a także "AD" i "BI" z lub bez wielkich liter.

    Planowanie

    Jak wspomniano powyżej, użyjemy Crona do zaplanowania wykonania. Zanim przejdziemy do konfiguracji, jest wysoce rekomendowane skonfigurować już zainstalowany pakiet SSMTP na swoim serwerze Xen. Chociaż jest to opcjonalny krok, spowoduje to zbieranie "backwash". Posiadanie takiego "zbieracza wstecznego" może ostrzegać o rzeczach, których skrypt nie jest w stanie.

    Wejdź w tryb edycji crona, wydając:

    crontab -e

    Jeśli postępujesz zgodnie z powyższymi instrukcjami i chcesz dodać zaplanowaną kopię zapasową do niedzieli o 01:31 (1:31 rano), wpisz poniżej:

    31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] ools

    Powyższe jest poprawne, zakładając, że twój skrypt i plik ustawień znajdują się w katalogu "/ root / Xen-phoenix-master /".

    Uzyskaj Send Send (opcjonalnie)

    Pisaliśmy o programie perl SendEmail w przeszłości, więc nie ma potrzeby powtarzania tutaj. Wystarczy powiedzieć, że działa tak samo na Linuksie, jak w systemie Windows.

    Podczas włączania poczty e-mail jest opcjonalna, jest wysoce zalecane, ponieważ wtedy skrypt będzie w stanie:

    • Poinformuj Cię, kiedy to się zaczęło i skończyło działać.
    • Ostrzegaj o wszelkich błędach, które był w stanie wykryć i obsłużyć.

    Pobierz go na serwer Xen i wyodrębnij.

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

    Zanotuj lokalizację, do której ją wyodrębniono. Będziesz potrzebował go do pliku ustawień.

    Definiowanie znacznika "Usuń wyjątek" (opcjonalnie)

    Xen-Phoenix pobiera stronę od swojego przodka (Xen-Pocalypse) i daje możliwość szczegółowego wykluczenia maszyny wirtualnej z delokalizacji całego systemu za pomocą kontrolnego TAG. Aby to zrobić, musisz zdefiniować nowe "Pole niestandardowe".

    Aby to zrobić, otwórz właściwości serwera lub nawet maszyny wirtualnej. W panelu nawigacji wybierz "Pola niestandardowe".

    Jeśli po raz pierwszy zdefiniujesz "pole niestandardowe" (jak w powyższym przykładzie), nie będziesz mieć pola "Phoenix_keeper" do wprowadzania danych, więc musisz je utworzyć. Aby to zrobić, kliknij "Edytuj pola niestandardowe" w wyświetlonym oknie dialogowym, a następnie kliknij "Dodaj ..."

    Utwórz pole typu "Tekst" o nazwie "Phoenix_keeper".

    Uwaga: Nazwa niestandardowego pola została "zakodowana" w skrypcie, więc NIE MOŻESZ odbiegać od powyższej pisowni, chyba że zmienisz również odpowiedni kod.

    Po utworzeniu pola powinieneś zobaczyć:

    Zamknij okno. Powinieneś teraz wypełnić pole "Phoenix_keeper", jak na poniższym obrazku.

    Teraz wystarczy, że wypełnisz to pole uwagą (każda uwaga to zrobi), co spowoduje, że Xen-phoenix pominie go podczas usuwania.

    Rozwiązywanie problemów

    Chociaż starałem się, aby skrypt był łatwy w użyciu i jak najbardziej odporny na błędy, "świat jest większym laboratorium". Poniższe informacje mogą pomóc Ci ustalić, jakie jest źródło Twoich problemów.

    Wycięcie lasu

    Całe "logowanie" jest gromadzone przez host Xen uruchamiający skrypt w mechanizmie syslog. Można to oczywiście zobaczyć za pomocą:

    mniej + F / var / log / messages

    Szukasz słowa kluczowego "Xen-Phoenix".

    Uwaga: Citrix ma ustawioną politykę dwóch (2) dni przechowywania dla syslog swoich serwerów. Być może zechcesz o tym pamiętać w przypadku postmortems.

    Debugowanie

    Jak zauważono w segmencie plików ustawień, istnieje dyrektywa, aby włączyć debugowanie. Włączenie debugowania spowoduje, że skrypt wypisze pełne dane logowania do konsoli i odrzuci je od wysyłania wiadomości e-mail i faktycznego wykonywania importu, chyba że odpowiednie flagi zostaną również ustawione. Możliwe flagi są odnotowane w szablonie pliku ustawień i umożliwiają szczegółowe zdefiniowanie tego, co chcesz debugować.

    Mam nadzieję, że nie potrzebowałeś debugowania i zbierasz owoce mojej pracy :)


    Wystarczy pomyśleć o całej nędzy, nienawiści i kłamstwach, i wyobraź sobie zniszczenie wszystkiego, czym gardzisz. Powoli z popiołów powstanie feniks ...