Nowe Hyper-V v3 przynosi świetną funkcję Hyper-V Replica, która pozwoli na replikację maszyn wirtualnych na inny serwer bez potrzeby posiadania mechanizmów replikacji na poziomie macierzy. Funkcjonalność ta pozwoli nawet małym firmą wdrożyć prawie bez kosztowo Disaster Recovery(zakładam, że w następcy darmowego Hyper-V Server 2008R2 będzie dostępna Hyper-V Replica, w wersji Hyper-V Server 8 “Beta” znajduję się ona).

W skrócie replikacja działa na zasadzie wysyłania, co 5 minut paczki ze zmianami, jakie dotknęły replikowany dysk od ostatniej replikacji(replikacja asynchroniczna). Ważną informacją jest to, że Hyper-V Replica nie posiada automatycznego mechanizmu failover, czyli przełączenia maszyny.

W tym poście opisze jak skonfigurować Hyper-V Replica pomiędzy dwoma serwerami Windows Server 8 Datacenter Beta będącymi w workgrupie. Do autoryzacji pomiędzy serwerami wykorzystamy certyfikaty self-signed.
W labie, na którym zostało to przetestowane były dwa serwery:

  • HV1 – serwer podstawowym, z którego maszyna wirtualna będzie replikowana
  • HV2 – serwer drugi, który będzie odbierał repliki z serwera podstawowego HV1

Krokiem pierwszym jest instalacja Hyper-V na obu serwerach. Najprościej jest to zrobić poleceniem w powershellu na uprawnianiach Administratora:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -restart

Następnym korkiem jest wyłączenie sprawdzania CRL. Certyfikaty self-signed nie wspierają CRL, a takowe są sprawdzane przy użyciu autoryzacji nimi. Na szczęście wyłączmy sprawdzanie CRL tylko dla usługi replikacji Hyper-V. Z linii poleceń na uprawnianiach administratora wykonujemy polecenie:

Reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualizationReplication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

Teraz możemy przejść do przygotowania małego PKI na bazie certyfikatów self-signed. Do wygenerowania certyfikatów posłuż narzędzie makecert.exe dostępne w SDK do Windows 7. Aby nie pobierać całego SDK możecie je ściągnąć stąd – link.
Na początek na serwerze HV1 generujemy certyfikat, który posłuży za root naszego CA poleceniem:

makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryTestRootCA.cer"

Posiadając już główny certyfikat, możemy wygenerować certyfikaty dla naszych obu serwerów. Polecenie dla HV1 to:

makecert -pe -n "CN=HV1" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer

Dla HV2 to(również wykonujemy to polecenie na HV1):

makecert -pe -n "CN=HV2" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer

Jak widać nazwę serwera ustawiamy w parametrze –n "CN={FQDN}", gdzie FQDN to nazwa naszego serwera.
Eksportujemy certyfikat dla serwera HV2 oraz publiczny certyfikat naszego CA z magazynu certyfikatów na serwerze HV1 i importujemy je na HV2 do magazynu personalnego oraz certyfikat CA do Trusted Root Certification Authority.
Teraz na serwerze HV2 przystępujemy do uruchomienia usługi replikacji. W tym celu wchodzimy w ustawienia Hyper-V i ustawiamy jak na rysunku poniżej i klikamy OK. Pamiętamy o wybraniu w Select Certificate… naszego certyfikatu CA stworzonego wcześniej. Dodatkowo możemy zmienić ścieżkę domyślną w której są przetrzymywane zreplikowane pliki maszyn wirtualnych w ostatniej sekcji ustawień.

W ten prosty sposób serwer jest gotowy do odbierania replik.

Na serwerze HV1 tworzymy maszynę testową i klikamy na nią prawym przyciskiem myszy wybierając opcję Enable Replication…

Podajemy nazwę serwera, na który ma być replikowana maszyna i klikamy Next.

Podajemy port i wybieramy typ autoryzacji i klikamy Next. W przypadku naszego scenariusza to Certificate-based. Wybieramy w Select Certificate… nasz certyfikat CA stworzony wcześniej.

Wybieramy dyski maszyny wirtualnej do replikacji i klikamy Next.

Wybieramy ile punktów odtworzenia ma być trzymana na serwerze repliki. Wybieramy opcję Only the latest recovery points to save i klikamy Next. Działanie drugiej opcji postaram się opisać w następnych postach.

Wybieramy typ początkowej replikacji i klikamy Next.

Sprawdzamy podsumowanie i klikamy Finish.

W polu status w konsoli Hyper-V widzimy status mówiący o rozpoczęciu początkowej replikacji.

W następnych postach poruszę mechanizm przełączania, typy początkowej replikacji, "historię odtwarzania/replikacji", monitorowanie replikacji.