Virtuele machines die worden uitgevoerd in een openbare Azure MEC-regio repliceren naar Azure
Belangrijk
De Azure Site Recovery-functionaliteit voor openbare MEC bevindt zich in de preview-status.
In dit artikel wordt beschreven hoe u virtuele Azure-machines (VM's) die worden uitgevoerd op Azure Public MEC, repliceren, failover uitvoeren en failback uitvoeren naar de bovenliggende Azure-regio waar Azure Public MEC een extensie is.
Herstel na noodgeval in Azure Public MEC
Site Recovery zorgt voor bedrijfscontinuïteit door workloads actief te houden tijdens storingen door de workload continu te repliceren van de primaire naar de secundaire locatie. De ASR-functionaliteit voor MEC is in preview.
Hier is de primaire locatie een openbare Azure-MEC en de secundaire locatie de bovenliggende regio waarmee de openbare Azure MEC is verbonden.
Herstel na noodgevallen instellen voor VM's in een openbaar Azure MEC met behulp van PowerShell
Vereisten
Zorg ervoor dat de Azure Az PowerShell-module is geïnstalleerd. Zie De Azure Az PowerShell-module installeren voor meer informatie over het installeren.
De minimale Azure Az PowerShell-versie moet 4.1.0 zijn. Gebruik de volgende opdracht om de huidige versie te bekijken:
Get-InstalledModule -Name Az
Zorg ervoor dat de Linux-distributieversie en -kernel worden ondersteund door Azure Site Recovery. Zie de ondersteuningsmatrix voor meer informatie.
Virtuele machines die worden uitgevoerd in een openbare Azure MEC-regio repliceren naar Azure
Volg deze stappen om VM's die worden uitgevoerd in een openbare Azure MEC-regio te repliceren naar Azure:
Notitie
In dit voorbeeld is de primaire locatie een openbaar Azure-MEC en de secundaire/herstellocatie de regio van het openbare Azure MEC.
Meld u aan bij uw Azure-account.
Connect-AzAccount
Selecteer Juiste abonnement.
$subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" Set-AzContext $subscription.Id
Haal de details op van de virtuele machine die u wilt repliceren.
$VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" Write-Output $VM
Maak een resourcegroep voor de Recovery Services-kluis in de secundaire Azure-regio.
New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
Maak een nieuwe Recovery Services-kluis in de secundaire regio.
$vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" - ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>" Write-Output $vault
Stel de kluiscontext in.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Primaire Site Recovery fabric maken.
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” - Name "EdgeZoneFabric"
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
Als de taak niet is voltooid, wacht u 10 seconden voordat u de taakstatus opnieuw controleert.
sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Als de taak is voltooid, moet de taakstatus Geslaagd zijn.
Write-Output $TempASRJob.State $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
Gebruik de primaire infrastructuur om zowel primaire als herstelbeveiligingscontainers te maken.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $PrimaryFabric -Name "EdgeZoneProtectionContainer"
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob } Write-Output $TempASRJob.State
Zowel primaire als herstelbeveiligingscontainers worden gemaakt in de primaire regio (binnen de primaire infrastructuur).
$PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer" $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer-t"
Een replicatiebeleid maken.
$TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name "ReplicationPolicy" -RecoveryPointRetentionInHours 24 - ApplicationConsistentSnapshotFrequencyInHours 4
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Als de taak is voltooid, moet de taakstatus Geslaagd zijn.
Write-Output $TempASRJob.State $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
Maak een beveiligingscontainertoewijzing tussen de primaire en herstelbeveiligingscontainers met het replicatiebeleid.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer $PrimaryProtectionContainer -RecoveryProtectionContainer $RecoveryProtectionContainer
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Als de taak is voltooid, moet de taakstatus Geslaagd zijn.
Write-Output $TempASRJob.State $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
Maak een beveiligingscontainertoewijzing voor failback, tussen de herstel- en primaire beveiligingscontainers met het replicatiebeleid.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer $RecoveryProtectionContainer -RecoveryProtectionContainer $PrimaryProtectionContainer
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Als de taak is voltooid, moet de taakstatus Geslaagd zijn.
Write-Output $TempASRJob.State $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
Maak een cacheopslagaccount voor replicatielogboeken in de primaire regio. Het cacheopslagaccount wordt gemaakt in de primaire regio.
$CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS - Kind Storage
Zorg ervoor dat u een virtueel netwerk op de doellocatie maakt. Maak een herstelnetwerk in de herstelregio.
$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
Gebruik de volgende PowerShell-cmdlet voor het repliceren van een virtuele Azure-machine met een openbare MEC Azure-machine met beheerde schijven. Deze stap kan ongeveer 20 minuten duren.
Haal de resourcegroep op waarin de virtuele machine moet worden gemaakt wanneer er een failover wordt uitgevoerd.
$RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location " <EdgeZoneRegion>"
VM ophalen en inhoud weergeven.
$vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
Geef replicatie-eigenschappen op voor elke schijf van de VM die moet worden gerepliceerd (schijfreplicatieconfiguratie maken).
#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
Gegevensschijf
Als de VM een gegevensschijf heeft, gebruikt u de volgende opdracht om een schijfconfiguratie te maken. Zo niet, dan kunt u deze sectie overslaan. Van
$datadiskId
tot$DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id
.U kunt ook
$RecoveryReplicaDiskAccountType = "Premium_LRS" $RecoveryTargetDiskAccountType = "Premium_LRS" $RecoveryRGId = $RecoveryRG.ResourceId $DataDisk1ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $CacheStorageAccount.Id ` -DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRGId - RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType ` -RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
Maak een item met replicatiebeveiliging om de replicatie te starten. Gebruik een GUID voor de naam van het item met replicatiebeveiliging om ervoor te zorgen dat de naam uniek is. Als u niet herstelt naar een beschikbaarheidszone, geeft u de
-RecoveryAvailabilityZone
parameter niet op.$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping - AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig - RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” - RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
Houd de taakstatus bij om te controleren op voltooiing.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Controleer of de taak is voltooid. De bijgewerkte taakstatus van een voltooide taak moet Geslaagd zijn.
Write-Output $TempASRJob.State
Nadat de bewerking voor het starten van de replicatie is geslaagd, worden de gegevens van de virtuele machine gerepliceerd naar de herstelregio.
Wanneer het replicatieproces in eerste instantie wordt gestart, wordt er een kopie gemaakt van de replicerende schijven van de virtuele machine in de herstelregio. Deze fase wordt de initiële replicatiefase genoemd. Deze stap duurt ongeveer 20 minuten. Bekijk de status van de replicatie op de blade Kluis onder Gerepliceerde items.
Wanneer de replicatie is voltooid, worden de kluisreplicatie-items weergegeven als hieronder:
De virtuele machine is nu beveiligd en u kunt een testfailoverbewerking uitvoeren. De replicatiestatus van het gerepliceerde item dat de virtuele machine vertegenwoordigt, gaat naar de beveiligde status nadat de initiële replicatie is voltooid.
Bewaak de replicatiestatus en replicatiestatus voor de virtuele machine door details op te halen van het met replicatie beveiligde item dat hiermee overeenkomt:
$PE = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth $PE
Als u Protected ziet in de ProtectionState, kunt u doorgaan met de testfailover.
Een testfailover uitvoeren, valideren en opschonen. U kunt de testfailover overslaan. We raden u echter aan om een testfailover uit te voeren om ervoor te zorgen dat uw secundaire regio wordt weergegeven zoals verwacht.
Maak een afzonderlijk netwerk voor testfailover (niet verbonden met mijn DR-netwerk).
$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
Voer een testfailover uit.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
Wacht totdat de taak is voltooid.
while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq "NotStarted")){ sleep 10; $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob }
Wacht tot de testfailover is voltooid.
Get-AzRecoveryServicesAsrJob -Job $TFOJob
Notitie
U kunt de voortgang van de taak ook controleren door naar de portal te gaan, de kluis te selecteren en vervolgens de Site Recovery Taken te selecteren.
Nadat de testfailovertaak is voltooid, kunt u verbinding maken met de testfailover virtuele machine en de testfailover valideren. Zodra het testen is voltooid op de virtuele machine waarvoor een failover is uitgevoerd, schoont u de testkopie op door de failoverbewerking voor het opschonen te starten. Met deze bewerking verwijdert u de testkopie van de virtuele machine die is gemaakt door de testfailover. Controleer of alle doelinstellingen juist zijn in de testfailover-VM, inclusief locatie, netwerkinstelling, geen beschadigde gegevens en geen gegevens verloren gaan in de doel-VM. U kunt nu de testfailover verwijderen en de failover starten.
$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob - ReplicationProtectedItem $ReplicationProtectedItem Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
De volgende stap is het uitvoeren van een failover van de virtuele machine. Met deze stap wordt de VIRTUELE machine gemaakt met behulp van de gerepliceerde schijven in de herstelregio.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItem
De lijst met geretourneerde herstelpunten is mogelijk niet chronologisch gesorteerd. U moet deze eerst sorteren om de oudste of meest recente herstelpunten voor de virtuele machine te vinden.
"{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[- 1].RecoveryPointTime
Start de failovertaak.
$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
Wanneer de failovertaak is geslaagd, kunt u de failover doorvoeren.
$CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem
Wacht totdat de doorvoerfailovertaak is voltooid.
while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State -eq "NotStarted")){ sleep 10; $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob } Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
Wanneer u na een failover klaar bent om terug te gaan naar de oorspronkelijke regio, start u de omgekeerde replicatie voor het item met replicatiebeveiliging met behulp van de
Update-AzRecoveryServicesAsrProtectionDirection
cmdlet.Maak cacheopslagaccount voor replicatielogboeken in de herstelregio.
$EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" - ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -Kind Storage
Gebruik de herstelbeveiligingscontainer, het nieuwe cacheopslagaccount in de regio van Azure Public MEC en de bronregio-VM-resourcegroep.
$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
Deze stap duurt ongeveer 20 minuten en de status wordt verplaatst van In uitvoering naar Geslaagd.
Replicatie uitschakelen.
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem
Schoon het milieu op. Deze stap is optioneel en kan worden gebruikt om de resourcegroep te verwijderen.
Remove-AzResourceGroup -Name $Name -Force