Monthly Archives: December 2011

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:

Lokalne rezpozytoruim plików iso w XenServer 6

Logujemy się do konsoli XenServer i wykonujemy poniższe polecenia:

cd /
mkdir isos
xe sr-create name-label="Local ISO Repo" type=iso device-config:location=/isos device-config:legacy_mode=true content-type=iso

Wykonując te komendy utworzymy katalog /isos i zamontujemy go jako bibliotekę iso o nazwie Local ISO Repo.
Aby wgrać pliki należy się podłączyć np. przez WinSCP do serwera i przegrać pliki ISO do ścieżki /isos na serwerze.
Z dedykacja dla Solemo.

Faktyczna ilość pamięci alokowanej dla maszyny wirtualnej w Hyper-V R2

Szukając w sieci dokumentów na temat optymalizacji Hyper-V trafiłem na dokument na MSDN. Dokument ten dotyczy ten poprzedniej wersji Hyper-V. Zainteresował mnie ten akapit, mówiący o zużyciu pamięci:

300 MB for the Hypervisor
plus 32 MB for the first GB of RAM allocated to each virtual machine
plus another 8 MB for every additional GB of RAM allocated to each virtual machine
plus 512 MB for the host operating system running on the root partition

Czyli w przypadku maszyny z przydzielonym 2GB ramu hypervisor zużyje:

  • 300 MB na hypervisor
  • 2048 MB na maszynę wirtualną
  • 40 MB na obsługę maszyny wirtualnej(32 MB na pierwszy GB ramu i 8 MB na kolejny)
Postanowiłem sprawdzić jak to się ma do aktualnej wersji Hyper-V przy użyciu narzędzia RAMMap.Testy odbyły się na serwerze bl460c G7 z 32GB ramu na pokładzie. Zainstalowany system to Windows Server 2008 R2 SP1 Enterprise. Poniżej zrzut okna RAMMapa przed instalacją Hyper-V:
Przed instalacją Hyper-V
Po instalacji Hyper-V:
Hyper-V po instalacji
Porównując powyższe wartości zużycia pamięci widzimy, że Drive Locked zwiększył wartość w przybliżeniu o 202M. Jest to wartość użyta przez hypervisor.
Zrzut ekranu po uruchomieniu maszyny wirtualnej z przydzielonymi 2GB ramu:
Uruchomienie VM
Tutaj widzimy, że wartość Driver Locked zwiększyła się w przybliżeniu o 2065MB ramu, czyli 2048MB przydzielone dla maszyny i 17MB na obsługę maszyny.
Idą dalej sprawdziłem zużycie pamięci dla maszyn z 1GB ,4GB ,8GB, 16GB ramu.
Ilość RAMU dla VM Ilość pamięci zużytej na obsługę maszyny
1GB 15MB
2GB 17MB
4GB 21MB
8GB 29MB
16GB 45MB
Analizując powyższe dane dla wersji Hyepr-V R2 zużycie pamięci wychodzi następująco:
  • Hypervisor około 200MB
  • Pierwsze 1GB ramu dla maszyny wirtualnej zużywa 15MB
  • Każdy kolejny gigabajt ramu zużywa 2MB.
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar