Tag Archives: klaster

Shared Nothing Live Migration w Windows Server 2012 + Demo

Shared Nothing Live Migration to nowa funkcjonalność Hyper-V w Windows Server 2012. Pozwala ona na dokonanie migracji na żywo na inny serwer Hyper-V bez żadnych współdzielonych zasobów. Nie jest wymagany żaden klaster z dyskiem typu CSV jak przy 2008R2!

Konfiguracja

Do testów wykorzystałem dwa laptopy z zainstalowanym Windows Server 2012 RC z rolą Hyper-V(HV1 i HV2). Obie maszyny przyłączone do domeny.

Pierwszą czynnością jest ustawienie delegacji kerberosa w Active Directory dla obydwu serwerów Hyper-V. Na obiekcie komputera HV1 ustawiamy delegację do HV2 i na HV2 do HV1. Aby tego dokonać uruchamiamy Active Directory Users and Computers wyszukujemy obiekt komputera i wchodzimy w jego właściwości. W zakładce Delegation zaznaczamy opcję jak poniżej i za pomocą Add dodajmy serwer, do którego ma zostać wykonana delegacja i wybieramy usługi: cifs, Microsoft Virtual System Migration Service.

Następny krokiem jest konfiguracja ustawień Live Migration na serwerach Hyper-V. Wychodzimy do ustawień serwera Hyper-V i przechodzimy do sekcji Live Migration. Zaznaczamy Enable incoming and outgoing live migrations oraz Use Kerberos. W sekcji Incoming live migrations ustawiamy uprawnienia dla przychodzących migracji. Są dwie opcje konfiguracji:

  • Use any available network for live migration – opcja ta zezwala na wszystkie przychodzące migracje
  • Use these IP addresses for live migration – opcja ta zezwala na przychodzące migracje z wskazanych adresów IP lub podsieci

Użycie Shared Nothing Live Migration

Po skonfigurowaniu obydwu serwerów można przejść do użycia tej funkcji. Klikamy prawym przyciskiem na maszynę wirtualną, którą chcemy przemigrować i wybieramy Move…. W kreatorze wybieramy Move the virtual machine i klikamy Next.

Podajemy nazwę serwera, na który chcemy przemigrować maszynę i klikamy Next.

Wybieramy gdzie chcemy umieści pliki maszyny wirtualnej i klikamy Next. W tym przypadku wybiorę opcję drugą. Jest ona ciekawa, ponieważ pozwala na wybranie gdzie mają zostać umieszczone piliki na serwerze, a w przypadku gdy nic nie wybierzemy, pliki maszyny zostaną umieszone zgodnie z ustawieniami Hyper-V. Opcja pierwsza – Move the virtual machine’s data to a single location powoduje umieszczenie wszystkich plików maszyny wirtualnej w jednej wskazanej lokalizacji. Opcja trzecia – Move only the virtual machine ma zastosowanie tylko wtedy, gdy pliki są umieszczone na zasobie sieciowym, do którego oba serwery Hyper-V mają dostęp.

Tak jak pisałem przy opisie poprzedniego kroku mamy okno z wyborem, w jaki sposób rozmieści pliki maszyny wirtualnej. Wybieramy opcję Move the virtual machine’s data automatically. Piliki zostaną rozmieszczone automatycznie zgodnie z ustawieniami Hyper-V. Klikamy Next.

Teraz już tylko sprawdzamy podsumowanie i klikamy Finish, aby rozpocząć migrację.

Przechodzenie przez kreator zajmuję chwilę czasu. Moim zdaniem jedną z najważniejszych rzeczy w Windows Server 2012 jest możliwość automatyzacji i zarządzania w prosty sposób z poziomu powershella. Migracje, która została przedstawiona powyżej można przeprowadzić jednym poleceniem za pomocą polecenia Move-VM:

Move-VM -Name 2008R2 -DestinationHost HV2 -IncludeStorage

Gdzie 2008R2 to nazwa maszyny wirtualnej, a HV2 nazwa serwera docelowego.

W trakcie testowych migracji na słabym sprzęcie(2x Dell D630) zauważyłem wypadniecie maksymalnie 3 pingów, co przy większości wykorzystywanych dziś sposób komunikacji sieciowej jest praktycznie niezauważalne. Sama migracja systemu z 1GB ramu oraz 10GB vhd trwała około 11 minut.

Demo

Poniżej krótkie demo migracji. Jest to pierwsze takie moje nagranie, więc proszę o komentarze, co poprawić 🙂

VMM, Hyper-V klaster i nowy nod w klastrze.

Po dodaniu nowego noda do klastra Hyper-V zarządzanego przez Virtual Machine Manager wypadało by dodać go do VMM. Podczas dodawania go poprzez funkcję Add Host w VMM dostaniemy komunikat błędu “Error 400. The server %ComputerName; is already associated with this Virtual Machine Manager server. ” gdzie %ComputerName; to nazwa naszego klastra.

Aby poprawnie dodać nowy nod w VMM należy najpierw odświeżyć klaster. Następnie po rozwinięciu gałęzi klastra pojawi się nasz nowy host w statusie pending. Klikamy na niego prawym przyciskiem i wybieramy funkcję Add Node To Cluster. Podajemy poświadczenia administracyjne i czekamy aż zainstaluję się agent vmm i gotowe :).

Przepis na prosty lab Hyper-V Failover Cluster z wykorzystaniem Hyper-V Server 2008R2 i Microsoft iSCSI Software Target 3.3

W tym wpisie przedstawię jak stworzyć prostą instalacje klastra Hyper-V z możliwością Live Migration na potrzeby testów. Lab ten potrzebny jest mi do artykułu na temat VMM2008R2.

Do stworzenia klastra zostały wykorzystane trzy laptopy Dell E5400 z 4GB RAMu i procesorem Core 2 Duo wspierającym wirtualizację oraz switch gigabitowy. Lab w całej okazałości:

Na 2 laptopach został zainstalowany Hyper-V Server 2008R2 SP1, a na trzecim został zainstalowany Windows Server 2008 R2 Standard SP1.

Schemat laba

Na serwerze DC została stworzona nowa domena o nazwie hvlab.local. Serwer HV1 i HV2 zostały dodane do nowo powstałej domeny hvlab.local.

Do zapewnienia wspólnego dysku dla klastra wykorzystamy darmowy target iscsi Microsoft iSCSI Software Target 3.3. Do pobrania z http://www.microsoft.com/download/en/confirmation.aspx?id=19867

Przygotowanie serwerów Hyper-V

Na obu serwerach został wykonane poniższe kroki.

Z poziomu sconfig.cmd:

  • wybieramy opcję 11 i włączamy Failover Clustering Feature
  • wybieramy opcję 4 i włączamy:
    • opcja 1 Allow MMC Remote Management
    • opcja 2 Enable Windows PowerShell
    • opcja 3 Allow Server Manager Remote Management

Na serwerze z poziomu CMD wykonujemy polecenie iscsicpl. Przy pierwszy uruchamieniu dostaniemy poniższy komunikat na który odpowiadamy Yes.

 Z zakładki Configuration kopiujemy sobie na bok Initiator Name. Będzie to potrzebne do konfiguracji iSCSI Target.

Z poziomu Hyper-V managera na obu serwerach tworzę wirtualną sieć zewnętrzna LAN. Ze względu na to, iż laptopy mają jedną kartę sieciową przy tworzeniu sieci zezwalam na zarządzanie systemem na  współdzielonej karcie sieciowej.

Konfiguracja dysków dla klastra

Na serwerze DC instalujmy Microsoft iSCSI Software Target 3.3 i uruchamiamy konsole Microsoft iSCSI Software Target.

Tworzymy nowe iSCSI Target dla HV1 i HV2:

  1. Z menu wybieramy Action -> Create iSCSI Target
  2. Podajmy nazwę dla naszego targetu. Dla mnie będzie to HV1 oraz HV2
  3. W polu IQN idnetifier podajmy wcześniej zapisane Initiator Name z serwerów HV1 i HV2
Tworzymy nowe dyski o rozmiarzez 1024MB na Qurum klastra oraz drugi dysk na pliki maszyn wirtualnych.
  • Klikamy prawym na Devices i wybieramy opcję Create Virtual Disk
  • Podajmy pełną ścieżkę do nowego pliku VHD który zostanie stworzony
  • Podajemy rozmiar dysku który ma zostać stworzony
  • Wybieramy nasze wcześniej stworzone targety HV1 i HV2
Na obu serwerach Hyper-V z konsoli iSCSI Initiator(polecenie iscsicpl) w zakładce Targets wpisujemy w polu Target nazwę naszego iSCSI i naciskamy Quick Connect…. W tym wypadku nazwa serwera to dc.hvlab.local.
Na zakładce Volumes and Devices klikamy na Auto Configure
Za pomocą konsoli Computer Management podłączamy się do jednego z Hyepr-V i formatujemy nowe dyski twarde i przypisujemy im litery.

Tworzenie klastra

Na serwerze DC instalujemy przystawkę Failover Cluster Manager. Uruchamiamy ją i wybieramy opcję Create a Cluster.

Dodajmy serwery HV1 i HV2

Wybieramy opcję bez walidacji klastra.

Podajmy IP i nazwę klastra.

Potwierdzamy utworzenie klastra i czekamy aż się stworzy. U mnie po około minucie pokazał się ekran z informacją o utworzeniu klastra.

W przystawce klikamy na klaster, wybieramy opcję Enable Cluster Shared Volumes… i ją włączamy.

Klikamy Cluster Shared Volumes, a następnie na Add storage i wybieramy nasz dysk przeznaczony na maszyny wirtualne i klikamy OK.

Tworzenie maszyny wirtualnej na klastrze

Z konsoli Failover Cluster Manager prawy na Services and Application… na klastrze i wybieramy opcję Virtual Machine -> New Virtual Machine -> i wybieramy jednego z dostępnych nodów klastra.

W trakcie tworzenia maszyny wirtualnej pamiętajmy aby zmienić ścieżkę umieszczenia maszyny wirtualnej na zasób dyskowy wspólny dla obu maszyn. W przypadku korzystania z CSV dyski dostępne są w ścieżce C:\ClusterStorage i są widoczne w postaci katalogów. Nasz dysk CSV znajduję się w ścieżce C:\ClusterStorage\volume1\ i tam wskazujemy lokalizację naszej maszyny wirtualnej.

I nasza utworzona maszyna wirtualna w klastrze:

Live migration

Aby utworzoną maszynę przenieść w trybie Live migration na innego noda klikamy na nią prawym w Failover Cluster Manager -> Services and Application… -> Tutaj nasz maszyna i klikamy na Live migrate virtual machine to another node i wybieramy serwer na których chcemy przenieść maszynę.

Maszyna w trakcie migracji:

Szybkie sprawdzenie powershellem rozmieszczenia maszyn na klastrze Hyper-V zarządzanym VMM

Uruchamiamy powershell i dodajmy przystawkę VMM poleceniem:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager

Ustawiamy nazwy serwer VMM oraz klastra Hyper-V który nas interesuje:

$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"

Poleceniem Get-VMHostCluster pobieramy informacje o interesującym nas klastrze:

$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName

Poniższym kodem przechodzimy po kolei przez każdy node klastra i listujemy maszyny wirtualne znajdujące się na nim:

foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Skrypt w całej okazałości:

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
$VMMServerName = "vmm.lab.local"
$HVClusterName = "hvcluster.lab.local"
$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName
foreach($HVNode in $HVCluster.Nodes)
{
 $HVNode.VMs | Select Name, VMHost
}

Tak wygląda przykładowy wynik skryptu:

Name       VMHost
----       ------
VM-HUB     hv1.lab.local
VM-TS-1-1  hv1.lab.local
VM-TS-1-2  hv1.lab.local
VM-TS-1-3  hv1.lab.local
VM-TS-1-4  hv2.lab.local
VM-TS-2-1  hv2.lab.local
VM-TS-2-2  hv2.lab.local
REMOTEAPP  hv2.lab.local

W przypadku usunięcia “-Name $HVClusterName” ze skryptu będą wylistowane wszystkie maszyny z klastrów zarządzanych przez VMM.

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar