Windows Server 2012 Hyper-V Replica.
Autor: Support Online Sp. z o.o., publikacja: 2013-04-16
Jednym z nowych rozwiązań, jakie oferuje Windows Server 2012 jest replikacja maszyn wirtualnych Hyper-V. Funkcjonalność ta oferuje replikację pracujących maszyn wirtualnych pomiędzy dwoma serwerami Windows Server 2012 z rolą Hyper-V. 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.
Opis funkcji replikacji znajduje się na stronie Microsoft i jest dostępny do ściągnięcia:
http://www.microsoft.com/en-us/download/details.aspx?id=29189
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.
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:
- Otworzyć Server manager.
- Przejść na Lokal Server i kliknąć na nazwie komputera.
- Klikamy Change.
- Potem More.
- 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.
- Po restarcie nasz serwer przedstawia się w pełni kwalifikowaną nazwą DNS: host1.przedsiebiorstow.local.
- 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 “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication” /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:
- Włączamy funkcję repliki.
- Wybieramy autoryzację opartą o certyfikat.
- Wybieramy certyfikat – powinien pojawić się automatycznie. Jeśli nie pojawił się oznacza to, że błędnie został wygenerowany certyfikat.
- 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.
- Poza zatwierdzeniu zmian pojawi się komunikat o włączeniu wyjątku dla ruchu przychodzącego w zaporze Windows.
- Przechodzimy z powrotem na serwer główny HOST1 i włączamy replikację serwera wirtualnego FS1.
- 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:\windows\system32\Drivers\etc na obu serwerach.
- Klikamy Next i wybieramy certyfikat dla replikacji.
- Zaznaczamy, które dyski serwera mają się replikować. Można niektóre dyski wykluczyć z replikacji.
- 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.
- Na koniec ustawiamy jak ma być wykonana replikacja początkowa oraz kiedy ma zostać uruchomiona.
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.
Na serwerze repliki HOST2 będzie widoczny postęp odbierania danych. Po zakończeniu maszyna wirtualna pozostanie w stanie wyłączonym.
Wówczas możemy podejrzeć stan replikacji wybierając z menu Replication „View Replication Health”.
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
- Opracowanie własne
- www.microsoft.com
Opracowano:
Marcin Pietrzak
Support Online Sp. z o. o.