Live Migration

Jak usunąć maszynę bez usuwania plików konfiguracji

Posted on

Czasami zdarza się sytuacja, w której chcemy usunąć maszynę z Hyper-V, ale chcemy zachować plik XML z konfiguracją by móc ją później zaimportować.

Dopóki nie usuniemy maszyny z Hyper-V plik XML jest tylko dostępny jako Read-Only. Więc nie da się go nawet przenieść w inne miejsce czy też np. zmienić nazwę katalogu z maszyną wirtualną.

Oczywiście można to zrobić poprzez Export maszyny czy też skopiowanie plików XML do innego folderu. Jednakże jest tez opcja dużo prostsza…

  1. Sprawdzamy jaka jest nazwa pliku XML z konfiguracja mszyny (powinien być w folderze Virtual Machine)
  2. Lokalizujemy link do w/w pliku w folderze C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\. Uwaga folder jest ukryty więc trzeba doń „wejść” wpisując np. cały powyższy adres do Explorera Windows.
  3. Następnie kasujemy ten link.

Maszyna zniknie z Hyper-V, cała zawartość katalogu z maszyną zostanie nienaruszona.

Migracja z Windows 2008 do Windows 2012

Posted on Updated on

Znalazłem dość ciekawy scenariusz dotyczący migracji maszyn z klastra opartego na Windows 2008 do Windows 2012.

Wymóg:

Tool Migrate Clustered VMs Migrate Clustered VMs
from Windows Server 2008 R2 SP1
to Window Server 2012
Move Clustered VMs
from Windows Server 2008 SP2
to Windows Server 2012
Windows Server 2012 Failover Clustering Cluster Migration Wizard Yes Yes Yes
System Center Virtual Machine Manager 2012 (SCVMM 2012) Yes Yes No 

Więcej pod oryginalnym linkiem:
http://blogs.technet.com/b/hugofe/archive/2012/12/06/best-practices-for-migration-of-cluster-windows-2008-r2-2012-as-melhores-praticas-para-migrar-um-cluster-de-windows-2008-para-windows-2012.aspx

Postaram się go przetłumaczyć w wolnej chwili.

Linux w chmurze z replikacją, skalowaniem i failover prawie za darmo…

Posted on Updated on

Jako iż prócz zainteresowań związanych z wirtualizacją i systemami z rodziny Windows Server nie obce są mi również systemy Linux. Do niedawna wirtualizacja Linuxów wymagała nieco innych narzędzi. Administrator miał wybór, albo darmowe rozwiązanie KVM, QEMU – swoją drogą bardzo dobre – ale aby uzyskać wysoką dostępność serwerów i mieć dobre narzędzia do administracji – wymagało to dużych umiejętności programistycznych i wiedzy jak sam system działa.

Amazon EC2 jest takim przykładem profesjonalnego wdrożenia chmury opartej o XEN, tylko potęgą EC2 jest proces automatyzacji usług. Jeśli jakaś funkcjonalność wymaga realizacji więcej niż kilka razy – to tworzone są odpowiednie skrypty (np. w Perl), które dany proces zautomatyzują. Zbudowanie na własną rękę tak dużego systemu pociąga za sobą na tyle wysokie koszty – że taniej jest kupić gotowe rozwiązanie.

Tu było dotychczas miejsce na vmWare. Do większości przypadków wystarczał prosty ESXi, który zapewniał wysoką wydajność maszyn, proste mechanizmy współdzielenia zasobów i dość proste zarządzanie. Instalacja komercyjnego vSphere podnosiła funkcjonalność o mechanizmy migracji maszyn na żywo, klastry itp. Niestety było to dość drogie rozwiązanie i niosące czasami dość dziwne ograniczenia. Druga sprawa to to, ze ESX ma dość precyzyjne wymagania odnośnie hardware. W przypadku nowych serwerów markowych dostawców raczej nie powinniśmy się spodziewać problemów, ale warto zwrócić uwagę np. na kontroler dysków do którego podłączone są dyski systemowe. Standardowy kontroler na płycie może nie być wystarczający do utworzenia RAID1 widocznego przez system.

Ale dziś jest alternatywa… Co więcej alternatywa która może być za darmo lub prawie darmo…

Hyper-V Server

Hyper-V Server to system operacyjny Microsoft, który oparty jest o Windows Server ale jest ograniczony do minimum niezbędnego dla dostarczania wirtualizacji. Jedyną rolą jaką posiadamy jest rola Hyper-V, brak jest GUI – wszystkim zarządzamy poprzez PowerShell (ale o tym dalej). Do jego zalet (prócz tego, że jest za darmo) jest to iż jest oparty o ten sam kernel co Windows Server – co oznacza, ze używa tej samej bazy sterowników do urządzeń, innymi słowy – jest zdecydowanie bardziej kompatybilny ze sprzętem niż vmWare…

Korzyści ze zwirtualizowania Linuxów

  • wzrośnie nam możliwość skalowania systemów – dynamiczne dodawanie RAM, rozszerzanie dysków
  • serwery będą dostępne online nawet w przypadku awarii sprzętu (funkcje klastra i przenoszenia maszyn live)
  • będziemy mogli replikować nasze serwery do zapasowego centrum danych lub do chmury Azure – zwiększając tym samym dostępność do naszych usług.

Co możemy zrobić na darmowym Hyper-V

Oczywiście wirtualizować :). Sama usługa wirtualizacji w zasadzie niczym się nie różni od tej zastosowanej w Windows Server 2012, a więc mamy te same wartości związane ze skalowaniem maszyn, funkcje snapshotów, replikację maszyn, migrację maszyn bez współdzielenia zasobów, jak również funkcje failover jak tylko z naszych serwerów utworzymy klaster.

W zasadzie wymóg posiadania klastra jest jedynym przypadkiem w którym mogą pojawić się koszty – poprostu serwery trzeba wpiąć do jakiegoś kontrolera domen opartego o Windows Server. Oczywiście jeśli posiadamy już w firmie AD – to rozwiązanie będzie w 100% darmowe.

Zarządzanie maszynami

Zarządzanie naszymi wirtualnymi Linux-ami można realizować na kilka sposobów. Podstawowy model to zarządzanie poprzez PowerShell. Nie jest to przesadnie złożone, szczególnie dla administratorów Linux. Składnia języka owszem różni się od Perla, Bash czy choćby Pythona – ale można się przestawić, inna sprawa, że do większości podstawowych operacji służą pojedyńcze polecenia.

Drugim sposobem, który polecam bo jest wygodny i intuicyjny to zarządzanie z zewnętrznego komputera z systemem Windows 7/8 lub Windows Server. Wystarczy do komputera doinstalować narzędzia do zarządzania rolą Hyper-V. (Otwiertamy Panel Sterowania, zakładkę Programy i funkcje, klikamy po lewej na „Włącz lub wyłącz funkcje systemu Windows”, w nowym oknie rozwijamy Rolę Hyper-V i zaznaczamy opcję „Narzędzia do zarządzania funkcją Hyper-V” – obie opcje i PowerShell i GUI).

Ten drugi sposób umożliwia nam w zasadzie pełne zarządzanie hostami do wirtualizacji.

W przypadku posiadania klastra trzeba zainstalować narzędzia do zdalnej administracji – tu wymagany jest już Windows 8 lub 8.1

Narzędzia będą zawierać konsolę, która umożliwi nam pełne zarządzanie klastrem na serwerach Hyper-V. A więc funkcje migracji maszyn, replikację maszyn itp.

Co możemy jeszcze robić?

  • Udostępniać maszynie kartę graficzną w pełnym trybie. Dostęp do okna shell na Linux niczym się nie różni od tradycyjnego dostępu
  • Wsparcie dla dynamicznej alokacji pamięci RAM. Linux może analogicznie jak Windows Server dostawać dodatkową pamięć RAM w trybie Hot-Add i zwalniać ją wykorzystująch funkcję „balloning”.
  • Backup dysków maszyny w trybie Live – dotychczas backup maszyn opartych o Linux generował pewne problemy. Najbezpieczniej było robić backup w trybie Offline, bowiem często dyski wirtualne ulegały uszkodzeniom…
  • Dynamiczne rozszerzanie dysków podłączonych do serwera.
  • Kernel kdump/kexec, Wsparcie dla NMI czy MMIO

Jakie systemy Linux są wspierane?

Oficjalnie Microsoft wspiera te system co do których jest w stanie „zorganizować” certyfikowanego inżyniera – a więc formalnie jesteśmy ograniczeni do RedHat oraz Suse.

Podstawowe funkcje wirtualizacji otrzymamy w zasadzie na każdym Linuxie, który jest oparty o kernel 3.x.x. W przypadku wybranych systemów odpowiednie sterowniki trzeba dokompilować do kernela (Debian), w przypadku innych (Ubuntu) są one już dostępne.

W przypadku Ubuntu wystarczy posiadać wersję 12.x by móc korzystać ze sprzętowych sterowników np. dla karty sieciowej, zaś wersja 13.1 ma już pełne wsparcie dla wszystkich funkcji dostarczanych przez Hyper-V.

Migracja

Procedura migracji do Hyper-V to proces dość złożony. Są komercyjne rozwiązania które pozwalają na przeniesienie maszyny fizycznej do wirtualnej Hyper-V w trybie on-line – restart jest potrzebny tylko dla przeniesienia się na maszynę wirtualną. To produkty z rodziny System Center – a dokładniej Virtual Machine Manager.

Są też narzędzia które dokonają konwersji dysków np. z systemu ESXi (vmdk) do formatu Hyper-V (vhdx lub vhd), ale ich skuteczność jest różna.

Najlepszym rozwiązaniem jest migracja ręczna – polegająca na instalacji najświeższej wersji Linuxa (takiej która np. wspiera wszystkie funkcje Hyper-V) i przeniesienie nań usług.

jeśli jeszcze Was nie przekonałem – proponuję uruchomić funkcję Hyper-V na Waszych laptopach/komputerach. Jeśli posiadacie Windows 8 lub 8.1 i odpowiedni procesor to dodanie roli Hyper-V nie powinno być problemem. Najszybciej zacząć od Ubuntu – bardzo dobrze się on wirtualizuje, jedna z moich usług (mailgate.pl) jest oparta własnie o serwery Hyper-V…

Link do pobrania pełnej wersji systemu Hyper-V Server 2012 R2

Aktualizacja wirtualizacji z 2012 do 2012 R2 w trybie Live…

Posted on Updated on

Aktualizacja systemów do nowszej wersji to dość złożony proces. Dotychczas by tego dokonać czekało nas wiele operacji: przygotowanie nowych serwerów, migracja danych testowych, testy, migracja produkcji itp., to powodowało iż gdy zakończyliśmy proces migracji pojawiał się nowy system i zabawa zaczynała się od nowa 🙂

Niektóre systemy (np.  taki Ubuntu) mają wbudowane narzędzia, które podniosą wersję dystrybucji do nowej (do-release-upgrade), ale one także nie umożliwiają utrzymania środowiska online podczas całego procesu aktualizacji.

Tu należy się drobne wyjaśnienie – jako iż blog traktuje o wirtualizacji, to aktualizować będziemy infrastrukturę do wirtualizacji.

Microsoft przewidział dwa modele aktualizacji systemu Windows Server 2012.

  • Aktualizacja z wykorzystaniem upgrade
    Metoda, która była już dostępna w Windows 2008 R2 pozwala na wykonanie aktualizacji systemu z zachowaniem konfiguracji maszyny. W środowisko produkcyjnym nie jest to zalecane rozwiązanie, bowiem po zakończeniu procesu zostaje na dysku stara kopia systemu.
  • Aktualizacja poprzez proces migracji
    Metoda polegająca na instalacji nowego serwera, przeniesieniu nań ról i konfiguracji. Operacja nad którą mamy pełną kontrolę – ale zajmująca bardzo dużo czasu. Co istotne podczas procesu migracji większość usługi będzie zaliczało przerwę… Co oznacza, że proces trzeba przeprowadzać po godzinach, a tego administratorzy naprawdę nie lubią … wszak noc jest do spania.
    Tylko kilka usług dotychczas umożliwiało realizację operacji w ciągu dnia pracy – np. Active Directory, FIleServices (DFS), usługi wystawione za NLB.

Do grona usług, które nie muszą zostać zatrzymane na czas migracji doszła wirtualizacja. Jedną z kluczowych nowinek w Hyper-V jest Shared Nothing Live Migration, usługa, która umożliwia przenoszenie maszyny wirtualnej z jednego hosta/klastra na drugi host/klaster bez potrzeby współdzielenia zasobów (np. storage). Ta funkcja działa również pomiędzy Windows 2012 i Windows 2012 R2.

Uwaga! Migracja Live jest możliwa tylko w jedną stronę – tj. z Windows 2012 do Windows 2012 R2.

Procedura migracji (na przykładzie klastra)

  1. Na wybranym węźle uruchamiamy akcję „Pause / Drain Roles”, co przeniesie wszystkie role z danego węzła na pozostałe i zaznaczy ten węzeł jako zawieszony.
    Operację można też wykonać z PowerShell poleceniem:

    Suspend-ClusterNode Nazwa-wezla -Drain
  2. Jak role zostaną przeniesione to usuwamy dany węzeł z klastra (Evict)
    Remove-ClusterNode Nazwa-wezla
  3. Zachowujemy konfiguracje sieciowe serwera dla wszystkich kart sieciowych i inne konfiguracje. Zgrywamy również wszystkie dane jakie są na tym serwerze przechowywane lokalnie (zwłaszcza zawartość katalogów użytkowników administracyjnych…)
  4. Usuwamy serwer z domeny, wyłączamy go.
  5. Instalujemy na nim nowy Windows 2012 R2, po instalacji dodajemy go do domeny.
  6. Instalujemy na serwerze Rolę Hyper-V oraz Funkcje klastra
  7. Przywracamy ustawienia sieciowe
  8. Dodajemy serwer do klastra
    Get-Cluster Nazwa-klastra | Add-ClusterNode Nazwa-wezla
  9. Przywracamy połączenia sieciowe (dyski iSCSI, Fibre Channel, SAS).
  10. Możemy rozpocząć proces migracji maszyn wirtualnych – przenosimy za pomocą Live Migration wybrane maszyny z kolejnego węzła na nowo zainstalowany Windows 2012 R2. pamiętajmy, że w trybie Live możliwe jest tylko przenoszenie z Windows 2012 do 2012 R2 – nie da się tego zrobić w drugą stronę !!!
  11. Wracamy do punktu 1 dla kolejnego węzła

Procedura migracji (na przykładzie serwerów samodzielnych)

  1. Przenosimy maszyny z wybranego hosta na pozostałe – z wykorzystaniem mechanizmów Shared Nothing Live Migration.
  2. Zachowujemy konfiguracje sieciowe serwera dla wszystkich kart sieciowych i inne konfiguracje. Zgrywamy również wszystkie dane jakie są na tym serwerze przechowywane lokalnie (zwłaszcza zawartość katalogów użytkowników administracyjnych…)
  3. Usuwamy serwer z domeny (o ile jest w domenie), wyłączamy go.
  4. Instalujemy na nim nowy Windows 2012 R2, po instalacji dodajemy go do domeny (jeśli jest taka potrzeba).
  5. Instalujemy na serwerze Rolę Hyper-V.
  6. Przywracamy ustawienia sieciowe.
  7. Przywracamy połączenia sieciowe (dyski iSCSI, Fibre Channel, SAS).
  8. Przenosimy na ten serwera maszyny z kolejnego serwera. Tu też pamiętamy, że migracja Live działa w jedną stronę.
  9. Wracamy do punktu 1 dla kolejnego serwera.