Dane są prawdopodobnie najważniejszym zasobem Twojej firmy. Kiedy projektujesz środowisko informatyczne oraz kopię zapasową, musisz uwzględnić różne możliwe scenariusze utraty zasobów firmy. Utrata może dotyczyć niewielkiej ilości, a nawet wszystkich danych wraz z serwerami.
Zdarzyć się może zwykła awaria serwera, która spowoduje brak dostępu do kluczowych informacji przez kilkanaście godzin czy kilka dni. Może dojść do pożaru lub innych sytuacji, które doszczętnie zniszczą serwery i wszelkie dane na nich przechowywane. Każda z tych sytuacji może spowodować, że firma nie będzie w stanie prowadzić działalności do czasu przywrócenia dostępu do usług.
Replikacja maszyn wirtualnych to mechanizm, który zapewnia ciągłość dostępu do danych na poziomie lokalizacji i pozwala zapewnić ciągłość biznesową przy całkowitej awarii środowiska produkcyjnego.
Co to jest replikacja maszyn wirtualnych?
Replikacja maszyn wirtualnych to proces polegający na ciągłym kopiowaniu dysku wirtualnego do innego środowiska wirtualnego, który znajduje się w trybie gotowości. Środowisko w trybie gotowości jest skonfigurowane według podobnej specyfiki sprzętowej co środowisko produkcyjne. W przypadku awarii środowiska produkcyjnego będzie ono przełączone w tryb offline, a lokalizacja zapasowa będzie mogła przejąć działanie lokalizacji produkcyjnej.
Jak działa Replikacja Hyper-V?
Replikacja Hyper-V jest częścią składową roli Hyper-V serwera Windows 2019 Server. Funkcja ta jest dostępna dopiero od wersji Windows 2012 Server. Replikacja to ciągłe kopiowanie zmian na dysku maszyny wirtualnej do maszyny wirtualnej w środowisku zapasowym.
Po włączeniu replikacji tworzona jest identyczna kopia serwera. Śledzenie zmian, funkcji Hyper-V Replica, tworzy i utrzymuje plik dziennika, który przechwytuje zmiany pliku VHD. Na podstawie dziennika na serwerze repliki odtwarzana jest kopia dysku. Replikacja może odbywać się za pośrednictwem protokołu HTTP lub HTTPS. Interwał replikacji możemy ustawić na 30 sekund, 5 lub 15 minut.
Hyper-V zapewnia również replikację rozszerzoną (łańcuchową), która umożliwia replikację maszyny wirtualnej z hosta podstawowego na hosta pomocniczego, a następnie replikację hosta pomocniczego na hosta trzeciego. W przypadku awarii lokalizacji podstawowej można ręcznie zainicjować testowe, planowane lub nieplanowane przełączenie awaryjne na hosty lokalizacji pomocniczej.
Wymagania wstępne
Aby uruchomić replikację serwerów Hyper-V należy posiadać:
- 2 serwery z oprogramowaniem w wersji minimum Windows 2012 Server o podobnym parametrach sprzętowych (procesor, dyski, RAM), tak aby serwer repliki był w stanie uruchomić serwery maszyn wirtualnych w przypadku awarii serwera głównego.
- Licencje Microsoft obejmujące zarówno serwery Hyper-V jak i maszyny wirtualne online i offline (na serwerze repliki). Więcej na Windows Server 2019 — licencjonowanie i cennik | Microsoft oraz Licensing datasheet.
- Łącze pomiędzy serwerami repliki, które zapewni przepustowość dla zaplanowanego interwału replikacji.
Uruchomienie replikacji maszyn wirtualnych
Przed uruchomieniem replikacji należy zdecydować jaki typ autoryzacji wybierzesz do połączeń między serwerami. W opisywanym przypadku serwery Hyper-V nie będą w środowisku Active Directory, nie będzie klastra serwerów, zatem autoryzacja nastąpi po https za pomocą certyfikatów. Jeśli Hyper-V dodane są do domeny Active Directory, wówczas można zastosować autoryzację kerberos (http).
Jakie są główne kroki, aby uruchomić replikację maszyn wirtualnych Hyper-V?
- Ustaw pełne nazwy DNS hostów
- Zainstaluj role Hyper-V na obu serwerach
- Ustaw reguły przychodzące dla ruchu https w zaporze Windows na obu serwerach
- Skonfiguruj certyfikaty na pierwszym serwerze i wyeksportuj/zaimportuj na drugi serwer
- Skonfiguruj replikację na drugim serwerze za pomocą certyfikatów
- Skonfiguruj replikację na pierwszym serwerze za pomocą certyfikatów
W środowisku testowym użyte będą dwie maszyny z zainstalowanymi rolami Hyper-V.
- Ustaw pełne nazwy DNS hostów
Korzystanie z w pełni kwalifikowanych nazw domen (FQDN) jest wymagane do korzystania z certyfikatów. W opisywanym przykładzie nazwy serwerów to:
HV01.test.local – serwer podstawowy (pierwszy serwer)
HV02.test.local – serwer replik (drugi serwer)
Zacznij od edycji nazw hostów. Skonfiguruj nazwy DNS dla serwera źródłowego (serwera podstawowego) i serwera repliki (drugi serwer lub serwer docelowy). Po zmianie nazw powinieneś dodać główny sufiks DNS na obu serwerach. Aby zmienić nazwę hosta, otwórz ustawienia systemu (wejdź do Control Panel i potem do System) i w sekcji Computer Name, domain and workgroup settings kliknij Settings. Na karcie Computer name kliknij Change.
Następnie w oknie Computer Name/Domain Changes wprowadź nazwę komputera, wybierz Workgroup (nie Domain), kliknij More i wprowadź podstawowy sufiks DNS komputera. Pełna nazwa z sufiksem DNS jest wymagana, aby hosty funkcji Hyper-V umożliwiały replikację przy użyciu certyfikatów.
W efekcie serwery mają w pełni kwalifikowaną nazwą DNS (FQDN):
Aby wyżej wymienione serwery rozpoznawały wzajemnie nazwy FQDN należy dodać poniższe linijki do pliku C:\Windows\System32\drivers\etc\HOSTS:
172.25.29.17 hv01.test.local
172.25.29.52 hv02.test.local
gdzie podane adresy IP odpowiadają IP serwerów.
2. Zainstaluj rolę Hyper-V
Najprościej zrobić to z poziomu Powershell. Uruchom poniższą komendę:
Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools -Restart
Rolę Hyper-V można też zainstalować używając kreatora w Server Manager.
3. Ustaw reguły przychodzące w zaporze Windows na obu serwerach
Domyślny port, na którym serwery komunikują się ze sobą to port 443 i dla niego należy skonfigurować reguły przychodzące na obu serwerach. Jeśli zmieniasz port w konfiguracji Hyper-V na inny, to w zaporze należy skonfigurować reguły dla tego portu TCP.
4. Skonfiguruj certyfikaty na pierwszym serwerze
Replikacja Hyper-V nie wymaga publicznie wydanych certyfikatów. Można użyć tych, własnoręcznie wygenerowanych (na przykład przy użyciu makecert). Proces jest opisany w artykule na portalu Technet.
Najlepiej skorzystać z nowszego podejścia, czyli polecenia powershell: New-SelfSignedCertificate.
Utwórz Certyfikat Root CA na serwerze HV01.test.local:
New-SelfSignedCertificate
-DnsName "HV Test Root CA"
-CertStoreLocation Cert:\LocalMachine\My
-KeyLength 4096
-Hash SHA256
-KeyFriendlyName "HV Test Root CA"
-FriendlyName "HV Test Root CA"
-NotAfter "2121-12-31 23:59:59"
-NotBefore "2021-01-01 00:00:00"
-KeyUsage CertSign,CRLSign,DigitalSignature
Potem stwórz certyfikaty dla serwerów HV01.test.local :
$RootCert = ( Get-ChildItem Cert:\LocalMachine\My | Where -Prop Subject -eq "CN=HV Test Root CA" )
New-SelfSignedCertificate
-DnsName "HV01.test.local","HV01"
-CertStoreLocation Cert:\LocalMachine\My
-KeyLength 4096
-Hash SHA256
-KeyFriendlyName "HV01.test.local"
-FriendlyName "HV01.test.local"
-NotAfter "2031-12-31 23:59:59"
-NotBefore "2021-01-01 00:00:00"
-Signer $RootCert
oraz HV02.test.local:
$RootCert = ( Get-ChildItem Cert:\LocalMachine\My | Where -Prop Subject -eq "CN=HV Test Root CA" )
New-SelfSignedCertificate
-DnsName "HV02.test.local","HV02"
-CertStoreLocation Cert:\LocalMachine\My
-KeyLength 4096
-Hash SHA256
-KeyFriendlyName "HV01.test.local"
-FriendlyName "HV01.test.local"
-NotAfter "2031-12-31 23:59:59"
-NotBefore "2021-01-01 00:00:00"
-Signer $RootCert
Na koniec wyeksportuj certyfikat z serwera HV01:
RootCA:
$HostCert = ( Get-ChildItem Cert:\LocalMachine\My | Where -Prop Subject -eq "CN=HV Test Root CA" )
$Password = Read-Host "Wprowadź hasło dla klucza prywatnego PFX" -AsSecureString
Export-PfxCertificate
-FilePath C:\Certificates\rootCA.pfx
-Cert $HostCert
-ChainOption BuildChain
-Password $Password
Certyfikat serwera:
$HostCert = ( Get-ChildItem Cert:\LocalMachine\My | Where -Prop Subject -eq "CN=HV02.test.local" )
$Password = Read-Host "Wprowadź hasło dla klucza prywatnego PFX" -AsSecureString
Export-PfxCertificate
-FilePath C:\Certificates\HV02.pfx
-Cert $HostCert
-ChainOption BuildChain
-Password $Password
Potem zaimportuj certyfikaty na HV02:
$Password = Read-Host "Wprowadź hasło dla klucza prywatnego PFX" -AsSecureString
Import-PfxCertificate
-FilePath C:\Certificates\RootCA.pfx
-CertStoreLocation "Cert:\LocalMachine\My"
-Password $Password
$Password = Read-Host "Wprowadź hasło dla klucza prywatnego PFX" -AsSecureString
Import-PfxCertificate
-FilePath C:\Certificates\HV02.pfx
-CertStoreLocation "Cert:\LocalMachine\My"
Na obu serwerach przenieś certyfikat RootCA z magazynu Personal do Trusted Root Certificate Authorities:
$RootCert = ( Get-ChildItem Cert:\LocalMachine\My | Where -Prop Subject -eq "CN=HV Test Root CA" )
Push-Location
Set-Location "Cert:\LocalMachine\My"
Move-Item $RootCert.Thumbprint "Cert:\LocalMachine\Root"
Pop-Location
Na koniec wyłącz Revocation Check, gdyż domyślnie Hyper-V sprawdza status odwołania certyfikatów. Sprawdzanie będzie skazane na niepowodzenie w przypadku certyfikatów „self”. Poniższe komendy wyłączają sprawdzanie statusu certyfikatów dla roli Hyper-V i nie ma to wpływu na działanie innych certyfikatów i usług.
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
Masz przygotowane certyfikaty, więc możesz przejść do kolejnego kroku.
5. Skonfiguruj replikację na serwerze repliki
Otwórz konsolę Hyper-V. We właściwościach Hyper-V przejdź na Replication Configuration. Włącz replikację, wybierz autoryzację w oparciu o certyfikaty i wybierz certyfikat. Wskaż ścieżkę na dysku, gdzie mają się replikować serwery:
- Skonfiguruj replikacje na serwerze głównym
Na serwerze głównym uruchom Hyper-V Manager, kliknij prawym przyciskiem myszki na maszynę wirtualną, której replikę chcesz uruchomić i wybierz Enable Replication.
Wpisz nazwę serwera repliki i kliknij „Next”:
Wskaż certyfikat i kliknij „Next”:
Wskaż, które dyski mają się replikować. Przykładowy serwer ma tylko jeden dysk. Gdyby miał więcej, można wykluczyć replikację niektórych dysków wirtualnych. Kliknij „Next”.
Wybierz częstotliwość replikacji. Serwery są w jednej sieci LAN, więc 30 sekund będzie dobrym wyborem. Jeśli nie potrzebujesz tak częstej replikacji możesz wybrać większe interwały.
W tym miejscu możesz wybrać, czy trzymać tylko ostatni punkt przywracania, czy też chcesz mieć więcej punktów przywracania, by móc uruchomić wersję serwera sprzed kilku godzin. Kliknij „Next”.
W kolejnym kroku możesz wybrać metodę zainicjowania replikacji. Opisywanie Serwery Hyper-V są spięte siecią LAN. Dane nie zajmują dużo miejsca, więc można wybrać wysłanie kopii dysków vhdx przez sieć. W przypadku bardzo dużych dysków vhdx lub wolnego połączenia między serwerami można zgrać kopię pliku vhdx na dysk zewnętrzny i podłączyć go do serwera repliki. Kliknij „Next”.
Zakończ konfigurację wybierając Finish.
Po zakończeniu kreatora serwer główny zaczyna wysyłać początkowy stan dysku wirtualnego przez sieć. Replikacja jest już uruchomiona i zmiany na dyskach są wysyłane na serwer repliki według ustawionej wcześniej częstotliwości replikacji.
Przełączanie awaryjne (failover)
Hyper-V oferuje trzy rodzaje przełączania awaryjnego:
- Planned Failover
- Test Failover
- Unplanned Failover
Planned failover
Ten scenariusz pozwala na zaplanowane przełączenie produkcyjnych maszyn wirtualnych na serwer repliki. Taka potrzeba może wystąpić podczas planowanej przerwy w dostawie prądu, wyłączenia serwera w celu jego konserwacji lub innych przypadkach, kiedy chcemy zatrzymać serwer główny.
Planowane przełączenie awaryjne polega na ręcznym przełączeniu serwera na replikę. Po zakończeniu prac na serwerze głównym zmiany zostaną zreplikowane z powrotem.
Warto skonfigurować wcześniej adresację serwera repliki. Wtedy po automatycznym przełączeniu serwer uruchomi się z zadaną konfiguracją sieci. Należy na serwerze repliki wybrać właściwości maszyny wirtualnej, która jest wyłączona i wypełnić poniższe ustawienia.
Aby uruchomić planowane przełączenie awaryjne w managerze Hyper-V serwera głównego, kliknij prawym przyciskiem myszki na wyłączoną maszynę wirtualną i wybierz Replication -> Planned Failover:
Domyślnie odwrotna replikacja nie jest włączona. Jeśli przeniesienie maszyny ma być czasowe i planujesz jej powrót na serwer główny, to zaznacz tę opcję. Pamiętaj, aby włączyć na serwerze głównym opcję serwera repliki, aby mógł przyjmować dane, które będą przesyłane podczas odwrotnej replikacji. Opis znajdziesz wyżej, w punkcie „Skonfiguruj replikację na serwerze repliki”.
Kliknij Fail Over.
Maszyna wirtualna automatycznie jest uruchamiana na serwerze repliki.
Test failover
Test failover służy do sprawdzania czy środowisko replikacji działa poprawnie. Można też wykorzystać tę funkcjonalność, aby przetestować coś na serwerze i nie robić tego na środowisku produkcyjnym. Na serwerze repliki we właściwościach maszyny wirtualnej można ustawić osobny interfejs sieciowy (np. inny odseparowany VLAN) i w ten sposób uruchomić środowisko testowe na sieci odseparowanej od sieci produkcyjnej.
Aby uruchomić Test failover w managerze Hyper-V serwera repliki, kliknij prawym przyciskiem myszy na wyłączonej maszynie wirtualnej, wybierz Replication -> Test failover.
Jeśli masz ustawione więcej punktów przywracania, to możesz wybrać taki punkt.
Po wciśnięciu Test failover tworzona jest kopia maszyny wirtualnej podłączonej do punktu przywracania maszyny, który również jest robiony. Maszynę można uruchomić niezależnie od środowiska produkcyjnego. Po skończonej pracy na maszynie testowej można zatrzymać test przełączenia awaryjnego. Należy z menu wybrać Replication -> Stop Test failover. Wówczas testowa maszyna oraz punkt przywracania na replice są usuwane.
Unplanned Failover
Jeżeli Twoje środowisko główne uległo awarii możesz uruchomić Unplanned failover. Pamiętaj, że uruchamiasz to w sytuacji krytycznej, kiedy środowisko główne nie funkcjonuje. W tym przypadku zostaną utracone dane od momentu ostatniej replikacji do momentu wystąpienia awarii. Aby uruchomić Unplanned failover, w managerze Hyper-V na serwerze repliki, kliknij prawym przyciskiem myszy na wyłączonej maszynie wirtualnej i wybierz Replication-> Failover:
Jedyne co masz do wyboru to punkt przywracania. Po kliknięciu Fail Over maszyna wirtualna uruchamia się ze wskazanego punktu przywracania.
Jeżeli serwer główny został naprawiony i chciałbyś przywrócić pierwotne ustawienie replikacji, należy przenieść stan maszyny z serwera repliki na serwer główny za pomocą live migration, a potem uruchomić replikację od początku.
Wnioski dotyczące replikacji maszyn wirtualnych
Replikacja maszyn wirtualnych działa całkiem dobrze i pozwala w prosty sposób zabezpieczyć środowisko produkcyjne na wypadek awarii. Dzięki temu możesz uniknąć kosztownych przestojów Twojej firmy. Poważne awarie się zdarzają, a ich usunięcie zajmuje czasem kilka dni. Jeśli nie chcesz dopuścić do takich sytuacji, zastanów się nad wdrożeniem takiego rozwiązania w swoim przedsiębiorstwie.
Aby dowiedzieć się więcej na temat replikacji Hyper-V zajrzyj tutaj.
Support Online to firma informatyczna, która od 2002 roku wspiera swoich klientów w zakresie kompleksowej opieki informatycznej. Oferujemy wsparcie techniczne dla użytkowników, outsourcing it, nowoczesne rozwiązania chmurowe a także administrację serwerami.
Oferowana przez nad usługa obsługi serwerów świadczona jest w trybie 24/7, dzięki czemu zapewniamy ciągłość działania systemów informatycznych. Nasza proaktywna postawa pozwala na natychmiastową reakcję i tym samym uniknięcie krytycznych awarii. W ramach opieki informatycznej dbamy również o kopię zapasową (backup danych). Aby jeszcze bardziej zadbać o bezpieczeństwo naszych klientów wdrożyliśmy normy bezpieczeństwa ISO/IEC 27001.
Zapraszamy do współpracy!
Marcin Pietrzak
Team Leader w Support Online