Replikowanie maszyn wirtualnych działających w publicznym mec platformy Azure do regionu platformy Azure
Ważne
Funkcja usługi Azure Site Recovery dla publicznej wersji MEC jest w stanie wersji zapoznawczej.
W tym artykule opisano sposób replikacji, trybu failover i powrotu po awarii maszyn wirtualnych platformy Azure działających w publicznym meC platformy Azure do nadrzędnego regionu świadczenia usługi Azure, w którym jest to rozszerzenie Azure Public MEC.
Odzyskiwanie po awarii w publicznej mec platformy Azure
Site Recovery zapewnia ciągłość działania dzięki zachowaniu obciążeń uruchomionych podczas awarii przez ciągłe replikowanie obciążenia z lokalizacji podstawowej do pomocniczej. Funkcja ASR dla usługi MEC jest dostępna w wersji zapoznawczej.
W tym miejscu lokalizacja podstawowa to publiczny serwer MEC platformy Azure, a lokalizacja pomocnicza to region nadrzędny, z którym połączono publiczną usługę Azure MEC.
Konfigurowanie odzyskiwania po awarii dla maszyn wirtualnych w publicznym meC platformy Azure przy użyciu programu PowerShell
Wymagania wstępne
Upewnij się, że moduł Az programu PowerShell platformy Azure 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 obsługi.
Replikowanie maszyn wirtualnych działających w publicznym meC platformy Azure do regionu świadczenia usługi Azure
Aby replikować maszyny wirtualne uruchomione w publicznym meC platformy Azure do regionu świadczenia usługi Azure, wykonaj następujące kroki:
Uwaga
W tym przykładzie lokalizacja podstawowa to publiczny interfejs MEC platformy Azure, a lokalizacja pomocnicza/odzyskiwania to region publicznej usługi Azure MEC.
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 "<EdgeZoneRegion>"
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ą podstawowej Site Recovery.
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” - 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, przesypij 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 sieci szkieletowej podstawowej).
$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 podstawowej ochrony 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 dla 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 '<EdgeZoneRegion>' -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 '<EdgeZoneRegion>' -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ć publiczną maszynę wirtualną platformy Azure MEC platformy Azure z dyskami zarządzanymi. Ukończenie tego kroku może potrwać około 20 minut.
Pobierz grupę zasobów, w ramach którą należy utworzyć maszynę wirtualną po przejściu w tryb failover.
$RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location " <EdgeZoneRegion>"
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óre muszą być replikowane (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
.Alternatywnie
$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 elementu chronionego przez replikację, 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 tworzy kopię 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ę trybu 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, aby uzyskać 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 przejść do testowania trybu failover.
Wykonaj, 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 trybu failover (nie połączono z siecią odzyskiwania po awarii).
$TFOVnet = New-AzVirtualNetwork -Name "TFOvnet" -ResourceGroupName "edgezonerecoveryrg" -Location '<EdgeZoneRegion>' -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 Site Recovery Zadania.
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 w trybie failover przeczyść kopię testową, uruchamiając operację testu pracy w trybie failover. Ta operacja usuwa kopię testową maszyny wirtualnej, która została utworzona przez test pracy w trybie failover. Sprawdź, czy wszystkie ustawienia docelowe znajdują się bezpośrednio na 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 posortować te elementy, 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
Gdy zadanie trybu failover zakończy się pomyślnie, możesz zatwierdzić tryb failover.
$CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem
Zaczekaj 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 elementu chronionego replikacją przy użyciu
Update-AzRecoveryServicesAsrProtectionDirection
polecenia cmdlet .Utwórz konto magazynu pamięci podręcznej dla dzienników replikacji w regionie odzyskiwania.
$EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" - ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -Kind Storage
Użyj kontenera ochrony odzyskiwania, nowego konta magazynu pamięci podręcznej w regionie publicznej usługi Azure MEC i grupy zasobów maszyny wirtualnej regionu źródłowego.
$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 zostanie przeniesiony z W toku do Pomyślne.
Wyłącz replikację.
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem
Wyczyść środowisko. Ten krok jest opcjonalny i może służyć do usunięcia grupy zasobów.
Remove-AzResourceGroup -Name $Name -Force