13Jul

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

click fraud protection

Czy kiedykolwiek miałeś potrzebę przywracania dużych ilości 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.

Photo Credit: Ryan McCurdy przez Compfight cc

Jak wspomnieliśmy w artykule "Jak kopiować Citrix Xen VM za darmo za pomocą Xen-Pocalypse", jedną z fajnych rzeczy w Citrix Xen jest to, że wiele jego funkcji to za darmo zopłata. 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 DR", możesz znaleźć Xen-Phoenix jako całkowicie rozsądne rozwiązanie zanim podejmiesz zobowiązanie budżetowe.

instagram viewer

Omówienie

"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 wykorzystuje polecenie "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 formie, przywracanie to:

  • Usuń 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łączanie maszyn wirtualnych po wykryciu bicia serca lub przekroczeniu limitu czasu.

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

Pozwala się złamać:)

Uzyskaj skrypt

Xen-phoenix może być swobodnie uzyskany z github, używając zwykłych metod git. Mówiąc to, jeśli nie jesteś jeszcze 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
unzip master

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

Lokalizacja eksportu

Musimy skonfigurować skąd wziąć eksport VM.

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żna uzyskać zGUI.

Oznacza to, że możemy użyć zwykłego "Dalej - & gt;Dalej - & gt;Zakończ "kreator, aby utworzyć" mount "do żądanej lokalizacji kopii zapasowej, a następnie poproś, aby skrypt wykorzystywał tę ścieżkę( tak, jak ma to miejsce w przypadku instalacji z poziomu wiersza poleceń, który wykracza poza zakres tego podręcznika).

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)":

Ukończ następny - & gt;Dalej - & gt;Koniec.

Uzyskaj UUID SR

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

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

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

Skonfiguruj plik ustawień

Projekt Xen-phoenix jest dostarczany w pakiecie z szablonem plików "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, jakie uzyskano od góry.
  • Lokalizacja SendEmail - Jeśli zdecydowałeś się włączyć Email, musisz wprowadzić gdzie wypakowałeś plik wykonywalny perl tutaj.
  • Verifier - 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 - Kontroluje wstępne przywracanie wszystkich maszyn wirtualnych na serwerze DR.Jest to domyślnie włączone, ponieważ zakłada się, że serwer DR jest w tym celu serwerem dedykowanym. Jeśli nie chcesz, aby maszyna wirtualna uruchomiona na tym serwerze nie była usuwana, skonfiguruj ją tak, aby była wykluczona. Jeśli to zachowanie nie jest odpowiednie dla twojej sytuacji, po prostu wyłącz je całkowicie.
  • Szczegóły dotyczące poczty e-mail - Ponownie, jeśli włączyłeś pocztę e-mail, musisz zdefiniować szczegóły, takie jak: Do, Od, Nazwa / adres IP &itp'.
  • Debugowanie - Domyślnie debugowanie jest wyłączone z wartością "0"( zero).Nie trzeba go włączać, ale jeśli to zrobisz, w segmencie rozwiązywania problemów pojawi się więcej informacji.

Execution

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.

W najprostszej formie wyglądałoby wywołanie Xen-phoenix:

. /Xen-phoenix.sh settings.cfg DevTools

Gdzie w powyższym przykładzie znajdujemy się w katalogu, w którym znajduje się skrypt &plik ustawień i "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ć następująco:

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

Gdzie w powyższym przykładzie pliki, które zawierająsłowo "devtools" pisane dużymi literami "D" i "T" lub nie-kapitałowymi, jak również "AD" i"BI" z lub bez wielkich liter zostanie zaimportowane.

Planowanie

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

Wejdź w tryb edycji crona, wysyłając:

crontab -e

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

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

Powyższe informacje są prawidłowe, zakładająctwój skrypt i plik ustawień znajdują się w "/root/ Xen-phoenix-master /".

Uzyskaj SendEmail( 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 zalecana, ponieważ wtedy skrypt będzie mógł:

  • Poinformować Cię, kiedy to się zaczęło &skończony bieg.
  • Ostrzega o wszelkich błędach, które mógł wykryć i obsługiwać.

Pobierz go na serwer Xen i wypakuj.

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 został wyodrębniony. Będziesz potrzebował go do pliku ustawień.

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

Xen-Phoenix pobiera stronę ze swojego przodka( Xen-Pocalypse) i daje możliwość szczegółowego wykluczenia maszyny wirtualnej z usuwania w całym systemie przy użyciu kontrolki TAG.Aby to zrobić, musisz zdefiniować nowe "Pole niestandardowe".

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

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 MUSISZ 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 wszystko, co musisz zrobić, to wypełnić to pole uwagą( każda uwaga to zrobi), co spowoduje, że Xen-phoenix pominie go podczas usuwania.

Rozwiązywanie problemów

Podczas gdy włożyłem wiele wysiłku w uczynienie skryptu tak łatwym w użyciu i jak najbardziej niezawodnym, "świat jest większym laboratorium".Poniższe informacje mogą pomóc Ci ustalić, jakie jest źródło twoich problemów.

Rejestrowanie

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

mniej + F /var/log/ wiadomości

Szukacie kluczowego słowa "Xen-Phoenix".

Uwaga: Citrix ustanowiła politykę dwóch( 2) dni przechowywania dla syslog swoich serwerów. Możesz mieć to na uwadze w przypadku postmortems.

Debugowanie

Jak zauważono w segmencie plików ustawień, istnieje dyrektywa umożliwiająca włączenie debugowania. Włączenie debugowania spowoduje, że skrypt wypisze pełne logowanie do konsoli i odrzuci je od wysyłania e-maili 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 potrzebujesz żadnego debugowania i zbierasz owoce mojej pracy:)

Pomyśl o całej nędzy, nienawiści i kłamstwie, I wyobraź sobie zniszczenie wszystkiego, czym gardzisz. Powoli od popiołów powstanie feniks. ..