Replikowanie maszyn wirtualnych działających w strefie rozszerzonej platformy Azure do regionu świadczenia usługi Azure
W tym artykule opisano sposób replikacji, trybu failover i powrotu po awarii maszyn wirtualnych platformy Azure działających w strefie rozszerzonej platformy Azure do nadrzędnego regionu świadczenia usługi Azure.
Ważne
Funkcja usługi Azure Site Recovery dla stref rozszerzonych jest w stanie wersji zapoznawczej.
Odzyskiwanie po awarii w strefie rozszerzonej platformy Azure
Usługa Site Recovery zapewnia ciągłość działania dzięki zachowaniu obciążeń uruchomionych podczas przestojów przez ciągłe replikowanie obciążenia z lokalizacji podstawowej do lokalizacji dodatkowej. Funkcje usługi ASR dla stref rozszerzonych są w wersji zapoznawczej.
W tym miejscu lokalizacja podstawowa to strefa rozszerzona platformy Azure, a lokalizacja pomocnicza to region nadrzędny, z którym jest połączona strefa rozszerzona platformy Azure.
Ważne
- Podczas tworzenia maszyny wirtualnej nie obsługujemy replikacji w strefie rozszerzonej. Można ją włączyć na maszynie wirtualnej lub na stronach magazynu po utworzeniu maszyny wirtualnej.
- W przypadku korzystania z konta magazynu strefy rozszerzonej jako konta magazynu pamięci podręcznej będą obsługiwane tylko konta usługi Block Blob Premium Storage.
- W przypadku korzystania z konta magazynu rozszerzonej strefy jako konta magazynu pamięci podręcznej obsługiwane jest tylko wysokie współczynniki zmian.
Jeśli konto magazynu w regionie świadczenia usługi Azure jest używane jako konto magazynu pamięci podręcznej, obsługiwane są zarówno normalne, jak i wysokie współczynniki zmian.
Konfigurowanie odzyskiwania po awarii dla maszyn wirtualnych w strefie rozszerzonej platformy Azure przy użyciu programu PowerShell
Poniżej przedstawiono wymagania wstępne dotyczące konfigurowania odzyskiwania po awarii dla maszyn wirtualnych w strefie rozszerzonej platformy Azure przy użyciu programu PowerShell:
Wymagania wstępne
Upewnij się, że moduł Azure Az programu PowerShell jest zainstalowany. Aby uzyskać informacje na temat sposobu instalowania, zobacz Instalowanie modułu Azure Az programu PowerShell.
Minimalna wersja programu Azure Az programu PowerShell musi być 4.1.0. Użyj następującego polecenia, aby wyświetlić bieżącą wersję:
Get-InstalledModule -Name Az
Upewnij się, że wersja dystrybucji systemu Linux i jądro są obsługiwane przez usługę Azure Site Recovery. Aby uzyskać więcej informacji, zobacz macierz pomocy technicznej.
Replikowanie maszyn wirtualnych działających w strefie rozszerzonej platformy Azure do regionu świadczenia usługi Azure
Aby replikować maszyny wirtualne uruchomione w strefie rozszerzonej platformy Azure do regionu świadczenia usługi Azure, wykonaj następujące kroki:
Uwaga
W tym przykładzie lokalizacja podstawowa to strefa rozszerzona platformy Azure, a lokalizacja pomocnicza/odzyskiwania to region strefy rozszerzonej platformy Azure.
Zaloguj się do konta platformy Azure.
Connect-AzAccount
Wybierz pozycję Właściwa subskrypcja.
$subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" Set-AzContext $subscription.Id
Uzyskaj szczegółowe informacje o maszynie wirtualnej, którą planujesz replikować.
$VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" Write-Output $VM
Utwórz grupę zasobów dla magazynu usługi Recovery Services w regionie pomocniczym platformy Azure.
New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<AzureRegion>"
Utwórz nowy magazyn usługi Recovery Services w regionie pomocniczym.
$vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" - ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>" Write-Output $vault
Ustaw kontekst magazynu.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Utwórz sieć szkieletową usługi Primary Site Recovery.
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<AzureRegion>” - Name "EdgeZoneFabric"
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
Jeśli zadanie nie zostało ukończone, spaj przez 10 sekund przed ponownym sprawdzeniem stanu zadania.
sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.
Write-Output $TempASRJob.State $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
Użyj podstawowej sieci szkieletowej, aby utworzyć zarówno podstawowe, jak i kontenery ochrony odzyskiwania.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $PrimaryFabric -Name "EdgeZoneProtectionContainer"
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob } Write-Output $TempASRJob.State
Kontenery ochrony podstawowej i odzyskiwania są tworzone w regionie podstawowym (w ramach podstawowej sieci szkieletowej).
$PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer" $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer-t"
Tworzenie zasad replikacji.
$TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name "ReplicationPolicy" -RecoveryPointRetentionInHours 24 - ApplicationConsistentSnapshotFrequencyInHours 4
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.
Write-Output $TempASRJob.State $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
Utwórz mapowanie kontenera ochrony między kontenerami ochrony podstawowej i odzyskiwania przy użyciu zasad replikacji.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer $PrimaryProtectionContainer -RecoveryProtectionContainer $RecoveryProtectionContainer
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.
Write-Output $TempASRJob.State $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
Utwórz mapowanie kontenera ochrony na potrzeby powrotu po awarii między kontenerami odzyskiwania i ochrony podstawowej przy użyciu zasad replikacji.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer $RecoveryProtectionContainer -RecoveryProtectionContainer $PrimaryProtectionContainer
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.
Write-Output $TempASRJob.State $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
Utwórz konto magazynu pamięci podręcznej na potrzeby dzienników replikacji w regionie podstawowym. Konto magazynu pamięci podręcznej jest tworzone w regionie podstawowym.
$CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName "<primary ResourceGroupName>" -Location '<AzureRegion>' -SkuName Standard_LRS - Kind Storage
Upewnij się, że sieć wirtualna zostanie utworzona w lokalizacji docelowej. Utwórz sieć odzyskiwania w regionie odzyskiwania.
$recoveryVnet = New-AzVirtualNetwork -Name "recoveryvnet" -ResourceGroupName "recoveryrg" -Location '<AzureRegion>' -AddressPrefix "10.0.0.0/16" Add-AzVirtualNetworkSubnetConfig -Name "defaultsubnetconf" -VirtualNetwork $recoveryVnet -AddressPrefix "10.0.0.0/24" | Set-AzVirtualNetwork $recoveryNetwork = $recoveryVnet.Id
Użyj następującego polecenia cmdlet programu PowerShell, aby replikować maszynę wirtualną strefy rozszerzonej platformy Azure z dyskami zarządzanymi. Wykonanie tego kroku może potrwać około 20 minut.
Pobierz grupę zasobów, w której musi zostać utworzona maszyna wirtualna po przejściu w tryb failover.
$RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location " <AzureRegion>"
Pobierz maszynę wirtualną i wyświetl zawartość.
$vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
Określ właściwości replikacji dla każdego dysku maszyny wirtualnej, który musi zostać zreplikowany (utwórz konfigurację replikacji dysku).
#OsDisk $OSdiskId = $vm.StorageProfile.OsDisk.ManagedDisk.Id $RecoveryOSDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType $RecoveryReplicaDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType $OSDiskReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig - ManagedDisk -LogStorageAccountId $CacheStorageAccount.Id ` -DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRG.ResourceId - RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType ` -RecoveryTargetDiskAccountType $RecoveryOSDiskAccountType
Dysk danych
Jeśli maszyna wirtualna ma dysk danych, użyj następującego polecenia, aby utworzyć konfigurację dysku. Jeśli nie, możesz pominąć tę sekcję. Od
$datadiskId
do$DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id
.Inna możliwość:
$RecoveryReplicaDiskAccountType = "Premium_LRS" $RecoveryTargetDiskAccountType = "Premium_LRS" $RecoveryRGId = $RecoveryRG.ResourceId $DataDisk1ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $CacheStorageAccount.Id ` -DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRGId - RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType ` -RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
Utwórz element chroniony przez replikację, aby rozpocząć replikację. Użyj identyfikatora GUID nazwy chronionego elementu replikacji, aby zapewnić unikatowość nazwy. Jeśli nie odzyskujesz danych do strefy dostępności, nie podaj parametru
-RecoveryAvailabilityZone
.$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping - AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig - RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” - RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
Śledzenie stanu zadania w celu sprawdzenia ukończenia.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Sprawdź, czy zadanie zostało ukończone pomyślnie. Zaktualizowany stan zadania zakończonego pomyślnie musi mieć wartość Powodzenie.
Write-Output $TempASRJob.State
Po pomyślnym zakończeniu operacji uruchamiania replikacji dane maszyny wirtualnej są replikowane do regionu odzyskiwania.
Początkowo po uruchomieniu procesu replikacji tworzona jest kopia replikujących dysków maszyny wirtualnej w regionie odzyskiwania. Ta faza jest nazywana fazą replikacji początkowej. Ten krok trwa około 20 minut. Zobacz stan replikacji w bloku Magazyn w obszarze Zreplikowane elementy.
Po zakończeniu replikacji elementy replikacji magazynu będą wyświetlane w następujący sposób:
Teraz maszyna wirtualna jest chroniona i można wykonać testową operację pracy w trybie failover. Stan replikacji replikowanego elementu, który reprezentuje maszynę wirtualną, przechodzi do stanu chronionego po zakończeniu replikacji początkowej.
Monitoruj stan replikacji i kondycję replikacji dla maszyny wirtualnej, uzyskując szczegółowe informacje o chronionym elemencie replikacji, który mu odpowiada:
$PE = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth $PE
Jeśli w obszarze ProtectionState jest widoczna wartość Chroniona, możesz przystąpić do testowania pracy w trybie failover.
Przeprowadź, zweryfikuj i wyczyść test pracy w trybie failover. Możesz pominąć test pracy w trybie failover. Zalecamy jednak wykonanie testu pracy w trybie failover, aby upewnić się, że region pomocniczy jest wyświetlany zgodnie z oczekiwaniami.
Utwórz oddzielną sieć do testowania pracy w trybie failover (nie połączono z siecią odzyskiwania po awarii).
$TFOVnet = New-AzVirtualNetwork -Name "TFOvnet" -ResourceGroupName "edgezonerecoveryrg" -Location '<AzureRegion>' -AddressPrefix "10.3.0.0/26" Add-AzVirtualNetworkSubnetConfig -Name "default" -VirtualNetwork $TFOVnet -AddressPrefix "10.3.0.0/26" | Set-AzVirtualNetwork $TFONetwork= $TFOVnet.Id
Przeprowadź test pracy w trybie failover.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
Poczekaj na zakończenie zadania.
while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq "NotStarted")){ sleep 10; $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob }
Poczekaj na ukończenie testu pracy w trybie failover.
Get-AzRecoveryServicesAsrJob -Job $TFOJob
Uwaga
Możesz również sprawdzić postęp zadania, przechodząc do portalu, wybierając magazyn, a następnie wybierając pozycję Zadania usługi Site Recovery.
Po pomyślnym zakończeniu testu pracy w trybie failover można nawiązać połączenie z testowym przełączonym w tryb failover maszyną wirtualną i zweryfikować test pracy w trybie failover. Po zakończeniu testowania na maszynie wirtualnej przełączonej w tryb failover testu wyczyść kopię testową, uruchamiając operację testowania pracy w trybie failover. Ta operacja usuwa testową kopię maszyny wirtualnej, która została utworzona przez test pracy w trybie failover. Sprawdź, czy wszystkie ustawienia docelowe znajdują się w testowej maszynie wirtualnej trybu failover, w tym lokalizacji, ustawieniu sieci, braku uszkodzenia danych i utracieniu danych na docelowej maszynie wirtualnej. Teraz możesz usunąć test pracy w trybie failover i uruchomić tryb failover.
$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob - ReplicationProtectedItem $ReplicationProtectedItem Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
Następnym krokiem będzie przełączenie maszyny wirtualnej w tryb failover. Ten krok spowoduje utworzenie maszyny wirtualnej przy użyciu replikowanych dysków w regionie odzyskiwania.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItem
Lista zwracanych punktów odzyskiwania może nie być sortowana chronologicznie. Najpierw należy je posortować, aby znaleźć najstarsze lub najnowsze punkty odzyskiwania dla maszyny wirtualnej.
"{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[- 1].RecoveryPointTime
Uruchom zadanie trybu failover.
$Job_Failover = Start-AzRecoveryServicesAsrUnplannedFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem -Direction PrimaryToRecovery - RecoveryPoint $RecoveryPoints[-1] do { $Job_Failover = Get-AzRecoveryServicesAsrJob -Job $Job_Failover; sleep 30; } while (($Job_Failover.State -eq "InProgress") -or ($JobFailover.State -eq "NotStarted")) $Job_Failover.State
Po pomyślnym zakończeniu zadania trybu failover możesz zatwierdzić tryb failover.
$CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem
Poczekaj na zakończenie zadania zatwierdzania trybu failover.
while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State -eq "NotStarted")){ sleep 10; $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob } Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
Po przejściu w tryb failover, gdy wszystko będzie gotowe do powrotu do oryginalnego regionu, uruchom replikację odwrotną dla chronionego elementu replikacji przy użyciu
Update-AzRecoveryServicesAsrProtectionDirection
polecenia cmdlet .Utwórz konto magazynu pamięci podręcznej na potrzeby dzienników replikacji w regionie odzyskiwania.
$EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" - ResourceGroupName "<ResourceGroupName>" -Location '<AzureRegion>' -SkuName Standard_LRS -Kind Storage
Użyj kontenera ochrony odzyskiwania, nowego konta magazynu pamięci podręcznej w regionie strefy rozszerzonej platformy Azure i grupy zasobów maszyny wirtualnej w regionie źródłowym.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName $vm.name -ProtectionContainer $PrimaryProtectionContainer $sourceVMResourcegroupId = $(Get-AzResourceGroup -Name $vm.ResourceGroupName). ResourceId Update-ASRProtectionDirection -ReplicationProtectedItem $ReplicationProtectedItem ` -AzureToAzure ` -ProtectionContainerMapping $AzureToEdgeZonePCMapping ` -LogStorageAccountId $EdgeZoneCacheStorageAccount.Id ` -RecoveryResourceGroupID $sourceVMResourcegroupId
Ten krok trwa ok. 20 minut, a stan zmieni się z W toku na Powodzenie.
Wyłącz replikację.
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem
Czyszczenie środowiska. Ten krok jest opcjonalny i może służyć do usunięcia grupy zasobów.
Remove-AzResourceGroup -Name $Name -Force