Wiadomości

Windows Server 2012 Hyper-V Replica.

2 854

W przypadku awarii głównego serwera, replikowane maszyny wirtualne można błyskawicznie uruchomić na serwerze repliki. Proces replikacji uruchamia się co 5 minut. Oznacza to, że wszystkie zmiany na maszynach wirtualnych są wysyłane z serwera głównego na serwer zapasowy w takim odstępie czasu i jest to maksymalny czas utraty danych w przypadku awarii serwera głównego.

Poniższy diagram przestawia sytuację replikacji dowolnej ilości maszyn wirtualnych znajdujących się na serwerach Windows Server 2012 między dwoma lokalizacjami wykorzystując łącze LAN/WAN.


Windows Server 2012 Hyper-V Replica.


Aby uruchomić takie środowisko należy zapewnić:

  • dwa dowolne serwery z systemami Windows Server 2012 z uruchomionymi rolami Hyper-V w środowisku bez domeny w grupie roboczej. Jeden z nich będzie głównym serwerem produkcyjnym, drugi może znajdować się w tej samej lokalizacji bądź w innej, np. oddział lub centrum kolokacyjne. Oba serwery muszą mieć zbliżone parametry jeśli chodzi o pamięć operacyjną, przestrzeń dyskową oraz ilość rdzeni lecz nie muszą być identyczne ani wyprodukowane przez tego samego producenta.
  • Certyfikat SSL dla każdego serwera Hyper-V. Nie będzie używany mechanizm autoryzacji kerberos gdyż jest on dostępny tylko dla środowiska, w którym serwery Hyper-V są członkami domeny Active Directory. W naszym przypadku całe środowisko produkcyjne uruchamiamy wyłącznie na maszynach wirtualnych w związku z tym, serwerów HOST z rolą Hyper-V nie dodajemy do domeny, która będzie obsługiwana przez serwer uruchomiony na maszynie wirtualnej. Gdy kontrolery domeny zainstalowane na maszynach wirtualnych nie są uruchomione, nie są w stanie autoryzować mechanizmu replikacji opartej o kerberos. Dlatego też proces autoryzacji replikacji będzie opierał się o certyfikaty SSL.

Po zainstalowaniu na dwóch serwerach Windows Server 2012 oraz roli Hyper-V przystępujemy do zdefiniowania ich nazw. Muszą one być w pełni kwalifikowanymi nazwami DNS aby można było dla nich wygenerować certyfikaty.
Zmiana sufiksu DNS nie wpływa na dostęp do serwera a jedynie zmienia jego nazwę aby była zgodna z nazwą zawartą w certyfikacie SSL. Będzie zrealizowane to poprzez dodanie sufiksu DNS do nazwy serwera. Trzeba wykonać poniższe kroki:


1. Otworzyć Server manager
2. Przejść na Lokal Server i kliknąć na nazwie komputera:

Windows Server 2012 Hyper-V Replica.


3. Klikamy Change

Windows Server 2012 Hyper-V Replica.


4. Potem More

Windows Server 2012 Hyper-V Replica.



5. W polu primary DNS suffix wpisujemy nazwę domeny DNS. Jeśli zamierzamy zakupić certyfikaty publiczne należy wpisać tu nazwę naszej domeny publicznej typu przedsiębiorstwo.com. W moim przypadku ograniczam koszty związane z zakupem certyfikatu. Użyję certyfikatów samodzielnie wygenerowanych. Dlatego też używam domeny intranetowej przedsiębiorstwo.local.

Windows Server 2012 Hyper-V Replica.


6. Po restarcie nasz serwer przedstawia się w pełni kwalifikowaną nazwą DNS: host1.przedsiebiorstow.local.

Windows Server 2012 Hyper-V Replica.


7. Punkty 1-6 powtarzamy dla drugiego serwera, który nazwiemy HOST2.przedsiebiorstwo.local.
Kolejnym krokiem jest wygenerowanie certyfikatów SSL. Jeśli zakupimy certyfikaty publiczne wystarczy je zaimportować na komputerach. Poniżej artykuł opisujący import certyfikatów:
http://blog.powerbiz.net.au/server-2012/importing-a-pfx-certificate-into-windows-server-2012/

W naszym środowisku używamy dwóch samodzielnie podpisanych certyfikatów. Do wygenerowania certyfikatów użyjemy narzędzia makecert.exe dostępnego w pakiecie Windows SDK dostępnego na stronie Microsoft: http://go.microsoft.com/fwlink/?linkid=84091.
Kopiujemy plik makecert.exe na oba serwery HOST1 oraz HOST2.
Na serwerze HOST1 wykonujemy polecenie, które utworzy nam główny certyfikat centrum certyfikacji: makecert -pe -n "CN=PrimaryRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryRootCA.cer"
Następnie generujemy certyfikat dla serwera podpisany przez wyżej wygenerowany certyfikat główny: makecert -pe -n "CN=host1.przedsiebiorstwo.local" -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 "PrimaryRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 host1Cert.cer
Generowanie certyfikatów powtarzamy na serwerze HOST2.
Certyfikat główny: makecert -pe -n "CN=SecondaryRootCA" -ss root -sr LocalMachine -sky signature -r "SecondaryRootCA.cer"
Następnie certyfikat dla serwera HOST2: makecert -pe -n "CN=host2.przedsiebiorstwo.local" -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 "SecondaryRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 host2Cert.cer Plik PrimaryRootCA.cer kopiujemy na serwer HOST2 i importujemy go poleceniem: certutil -addstore -f Root “PrimaryRootCA.cer” Plik SecondaryRootCA.cer kopiujemy na serwer HOST1 i importujemy go poleceniem: certutil -addstore -f Root “SecondaryRootCA.cer”
Standardowo Windows Server 2012 sprawdza czy certyfikat nie został unieważniony. Dla certyfikatów podpisanych samodzielnie ten mechanizm nie jest w stanie tego zweryfikować. Dlatego też należy go wyłączyć na obu serwerach modyfikując rejestr poleceniem: reg add “HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualizationReplication” /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
Po zakończeniu wyżej wymienionych kroków przechodzimy do konfiguracji replikacji.
W moim środowisku na serwerze HOST1 uruchomione są 2 serwery wirtualne FS1 oraz PS1. Na serwerze repliki HOST2 włączamy replikacje uruchamiając Hyper-V Manager i wybierając z głównego menu Hyper-V Settings. Przechodzimy na zakładkę Replication Configuration i wykonujemy poniższe kroki:

1. Włączamy funkcję repliki

2. Wybieramy autoryzację opartą o certyfikat.

3. Wybieramy certyfikat – powinien pojawić się automatycznie. Jeśli nie pojawił się oznacza to, że błędnie został wygenerowany certyfikat.

4. Pozwalamy, aby replikacja była możliwa z każdego serwera oraz definiujemy gdzie mają się zapisywać pliki na serwerze repliki. Możemy zwiększyć bezpieczeństwo i zezwolić na replikację tylko ze zdefiniowanym serwerem.

Windows Server 2012 Hyper-V Replica.

5. Poza zatwierdzeniu zmian pojawi się komunikat o włączeniu wyjątku dla ruchu przychodzącego w zaporze Windows. Włączamy go zatem jak na rysunku poniżej.

Windows Server 2012 Hyper-V Replica.

Windows Server 2012 Hyper-V Replica.


Przechodzimy z powrotem na serwer główny HOST1 i włączamy replikację serwera wirtualnego FS1 klikając ja na poniższym rysunku:

Windows Server 2012 Hyper-V Replica.


Pojawi się kreator. Wpisujemy nazwę hosta host2.przedsiebiorstwo.local. Oczywiście jeśli nasz DNS nie obsługuje domeny przedsiebiorstwo.local to musimy dopisać odpowiednie rekordy do pliku hosts w katalogu: C:windowssystem32Driversetc na obu serwerach.

Windows Server 2012 Hyper-V Replica.


Klikamy Next i wybieramy certyfikat dla replikacji.

Windows Server 2012 Hyper-V Replica.


Zaznaczamy, które dyski serwera mają się replikować. Można niektóre dyski wykluczyć z replikacji.

Windows Server 2012 Hyper-V Replica.


Możemy ustawić jak wiele punktów przywracania ma zachowywać nasz serwer repliki. Należy pamiętać, że pochłania to odpowiednio więcej przestrzeni na dysku. Możemy też zmienić harmonogram wykonywania kopi VSS.

Windows Server 2012 Hyper-V Replica.


Na koniec ustawiamy jak ma być wykonana replikacja początkowa oraz kiedy ma zostać uruchomiona.

Windows Server 2012 Hyper-V Replica.


Po kliknięciu Finish natychmiast rozpoczyna się replikacja początkowa, jeśli nie została ustawiona na start w innym terminie. Postęp jest widoczny w Hyper-V Manager.

Windows Server 2012 Hyper-V Replica.

Windows Server 2012 Hyper-V Replica.


Wszystkie powyższe czynności powtarzamy dla kolejnych serwerów wirtualnych.
Ostatni etap to sprawdzenie poprawności działania naszej infrastruktury za pomocą wbudowanych mechanizmów failover: test failover oraz planned failover. Ale to już temat na osobny artykuł.

Źródła:
1. Opracowanie własne
2. www.microsoft.com
Artykuł opracował Marcin Pietrzak,
Support Online Sp. z o. o.

Support Online Sp. z o.o.