Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du se hur du konfigurerar och testar haveriberedskap för virtuella Azure-datorer med Hjälp av Azure PowerShell.
Du lär dig att:
- Skapa ett Recovery Services-valv.
- Ange valvkontexten för PowerShell-sessionen.
- Förbered valvet för att börja replikera virtuella Azure-datorer.
- Skapa nätverksmappningar.
- Skapa lagringskonton att replikera virtuella datorer till.
- Replikera Azure-virtuella datorer till en återställningsregion för katastrofåterställning.
- Utför ett redundanstest, validera och rensa redundanstest.
- Växla över till återställningsregionen.
Anmärkning
Alla scenariofunktioner som är tillgängliga via portalen kan inte vara tillgängliga via Azure PowerShell. Några av de scenariofunktioner som för närvarande inte stöds via Azure PowerShell är:
- Möjligheten att ange att alla diskar på en virtuell dator ska replikeras utan att uttryckligen behöva ange varje disk på den virtuella datorn.
Anmärkning
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.
Förutsättningar
Innan du börjar:
- Se till att du förstår scenarioarkitekturen och komponenterna.
- Granska kraven för stöd för alla komponenter.
- Du har Azure PowerShell-modulen Az. Om du behöver installera eller uppgradera Azure PowerShell följer du den här guiden för att installera och konfigurera Azure PowerShell.
Logga in på din Microsoft Azure-prenumeration
Logga in på din Azure-prenumeration med cmdleten Connect-AzAccount .
Connect-AzAccount
Välj din Azure-prenumeration. Använd cmdleten Get-AzSubscription för att hämta listan över Azure-prenumerationer som du har åtkomst till. Välj den Azure-prenumeration som du vill arbeta med med hjälp av cmdleten Set-AzContext .
Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Hämta information om den virtuella dator som ska replikeras
I den här artikeln replikeras en virtuell maskin i regionen Östra USA och återställs i regionen Västra USA 2. Den virtuella datorn som replikeras har en OS-disk och en enda datadisk. Namnet på den virtuella dator som används i exemplet är AzureDemoVM.
# Get details of the virtual machine
$VM = Get-AzVM -ResourceGroupName "A2AdemoRG" -Name "AzureDemoVM"
Write-Output $VM
ResourceGroupName  : A2AdemoRG
Id                 : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/A2AdemoRG/providers/Microsoft.Compute/virtualMachines/AzureDemoVM
VmId               : 1b864902-c7ea-499a-ad0f-65da2930b81b
Name               : AzureDemoVM
Type               : Microsoft.Compute/virtualMachines
Location           : eastus
Tags               : {}
DiagnosticsProfile : {BootDiagnostics}
HardwareProfile    : {VmSize}
NetworkProfile     : {NetworkInterfaces}
OSProfile          : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState  : Succeeded
StorageProfile     : {ImageReference, OsDisk, DataDisks}
Hämta diskinformation för den virtuella datorns diskar. Diskinformation används senare när replikeringen startas för den virtuella datorn.
$OSDiskVhdURI = $VM.StorageProfile.OsDisk.Vhd
$DataDisk1VhdURI = $VM.StorageProfile.DataDisks[0].Vhd
Skapa ett Recovery Services-valv
Skapa en resursgrupp där du ska skapa valvet för återställningstjänster.
Viktigt!
- Recovery Services-valvet och de virtuella datorer som skyddas måste finnas på olika Azure-platser.
- Resursgruppen för Recovery Services-valvet och de virtuella datorer som skyddas måste finnas på olika Azure-platser.
- Återställningstjänstens valv, och resursgruppen som det tillhör, kan finnas på samma Azure-plats.
I exemplet i den här artikeln beskyddas den virtuella maskinen som befinner sig i regionen Östra USA. Återhämtningsregionen som valts för katastrofåterställning är regionen West US 2. Återhämtningstjänsternas valv och resurspoolen för valvet finns båda i återhämtningsregionen, West US 2.
#Create a resource group for the recovery services vault in the recovery Azure region
New-AzResourceGroup -Name "a2ademorecoveryrg" -Location "West US 2"
ResourceGroupName : a2ademorecoveryrg
Location          : westus2
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/a2ademorecoveryrg
Skapa ett återställningstjänstvalv. I det här exemplet skapas en Återställningstjänster valv med namnet a2aDemoRecoveryVault i regionen Väst USA 2.
#Create a new Recovery services vault in the recovery region
$vault = New-AzRecoveryServicesVault -Name "a2aDemoRecoveryVault" -ResourceGroupName "a2ademorecoveryrg" -Location "West US 2"
Write-Output $vault
Name              : a2aDemoRecoveryVault
ID                : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/a2ademorecoveryrg/providers/Microsoft.RecoveryServices/vaults/a2aDemoRecoveryVault
Type              : Microsoft.RecoveryServices/vaults
Location          : westus2
ResourceGroupName : a2ademorecoveryrg
SubscriptionId    : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
Ange valvkontexten
Ange valvkontexten för användning i PowerShell-sessionen. När valvkontexten har angetts utförs Azure Site Recovery-åtgärder i PowerShell-sessionen i kontexten för det valda valvet.
#Setting the vault context.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
ResourceName         ResourceGroupName ResourceNamespace          ResourceType
------------         ----------------- -----------------          -----------
a2aDemoRecoveryVault a2ademorecoveryrg Microsoft.RecoveryServices Vaults
#Delete the downloaded vault settings file
Remove-Item -Path $Vaultsettingsfile.FilePath
För en Azure-till-Azure-migrering kan du ange valvkontexten till det nyligen skapade valvet:
#Set the vault context for the PowerShell session.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Förbereda valvet för att börja replikera virtuella Azure-datorer
Skapa ett Site Recovery-infrastrukturobjekt som representerar den primära regionen (källregionen)
Vävobjektet i valvet representerar en Azure-region. Det primära infrastrukturobjektet skapas för att representera den Azure-region som virtuella datorer som skyddas i valvet tillhör. I exemplet i den här artikeln beskyddas den virtuella maskinen som befinner sig i regionen Östra USA.
- Endast ett tygobjekt kan skapas per region.
- Om du tidigare har aktiverat Site Recovery-replikering för en virtuell dator i Azure-portalen skapar Site Recovery automatiskt ett infrastrukturobjekt. Om det finns ett tygobjekt för en region kan du inte skapa ett nytt.
Innan du börjar bör du förstå att Site Recovery-åtgärder körs asynkront. När du initierar en åtgärd skickas ett Azure Site Recovery-jobb och ett jobbspårningsobjekt returneras. Använd jobbspårningsobjektet för att hämta den senaste statusen för jobbet (Get-AzRecoveryServicesAsrJob) och för att övervaka åtgärdens status.
#Create Primary ASR fabric
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location 'East US'  -Name "A2Ademo-EastUS"
# Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "A2Ademo-EastUS"
Om virtuella datorer från flera Azure-regioner skyddas till samma valv skapar du ett infrastrukturobjekt för varje Azure-källregion.
Skapa ett Site Recovery-infrastrukturobjekt som representerar återställningsregionen
Återställningsinfrastrukturobjektet representerar återställningsplatsen för Azure. Om det sker en redundans replikeras och återställs virtuella datorer till återställningsregionen som representeras av återställningsinfrastrukturen. Återställningsregionen i Azure som används i det här exemplet är Västra USA 2.
#Create Recovery ASR fabric
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location 'West US 2'  -Name "A2Ademo-WestUS"
# Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$RecoveryFabric = Get-AzRecoveryServicesAsrFabric -Name "A2Ademo-WestUS"
Skapa en Site Recovery-skyddscontainer i den primära strukturen
Skyddsbehållaren är en behållare som används för att gruppera replikerade objekt i ett system.
#Create a Protection container in the primary Azure region (within the Primary fabric)
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $PrimaryFabric -Name "A2AEastUSProtectionContainer"
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
Write-Output $TempASRJob.State
$PrimaryProtContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $PrimaryFabric -Name "A2AEastUSProtectionContainer"
Skapa en Site Recovery-skyddscontainer i återställningsinfrastrukturen
#Create a Protection container in the recovery Azure region (within the Recovery fabric)
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $RecoveryFabric -Name "A2AWestUSProtectionContainer"
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$RecoveryProtContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $RecoveryFabric -Name "A2AWestUSProtectionContainer"
Skapa fabric och containrar när zon-till-zon-replikering aktiveras
När zon-till-zon-replikering aktiveras, skapas endast en nätverksstruktur. Men det kommer att finnas två containrar. Förutsatt att regionen är Västeuropa, använder du följande kommandon för att hämta de primära och skyddscontainrarna.
$primaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $fabric -Name "asr-a2a-default-westeurope-container"
$recoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $fabric -Name "asr-a2a-default-westeurope-t-container"
Skapa replikeringsprincip
#Create replication policy
$TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name "A2APolicy" -RecoveryPointRetentionInHours 24 -ApplicationConsistentSnapshotFrequencyInHours 4
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "A2APolicy"
Skapa en skyddscontainermappning mellan den primära containern och återställningsskyddscontainern
En skyddscontainermappning mappar den primära skyddscontainern med en återställningsskyddscontainer och en replikeringsprincip. Skapa en mappning för varje replikeringsprincip som du ska använda för att replikera virtuella datorer mellan ett skyddscontainerpar.
#Create Protection container mapping between the Primary and Recovery Protection Containers with the Replication policy
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "A2APrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer $PrimaryProtContainer -RecoveryProtectionContainer $RecoveryProtContainer
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$EusToWusPCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $PrimaryProtContainer -Name "A2APrimaryToRecovery"
Skapa skyddscontainermappning när zon-till-zon-replikering aktiveras
När du aktiverar zon-till-zon-replikering använder du kommandot nedan för att skapa skyddscontainermappning. Förutsatt att regionen är Västeuropa kommer kommandot att vara -
$protContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $PrimprotectionContainer -Name "westeurope-westeurope-24-hour-retention-policy-s"
Skapa en skyddscontainermappning för återställning efter fel (omvänd replikering efter en redundansväxling)
När du efter en failover är redo att ta tillbaka den övertagna virtuella datorn till den ursprungliga Azure-regionen gör du en återställning. Om du vill växla tillbaka replikeras den redundansväxlade virtuella datorn från den redundansväxlade regionen till den ursprungliga regionen. För omvänd replikering växlar rollerna för den ursprungliga regionen och återställningsregionen. Den ursprungliga regionen blir nu den nya återställningsregionen och det som ursprungligen var återställningsregionen blir nu den primära regionen. Skyddscontainerns mappning för omvänd replikering representerar de växlade rollerna för de ursprungliga regionerna och återställningsregionerna.
#Create Protection container mapping (for fail back) between the Recovery and Primary Protection Containers with the Replication policy
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "A2ARecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer $RecoveryProtContainer -RecoveryProtectionContainer $PrimaryProtContainer
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
$WusToEusPCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $RecoveryProtContainer -Name "A2ARecoveryToPrimary"
Skapa cachelagringskonto och mållagringskonto
Ett cachelagringskonto är ett standardlagringskonto i samma Azure-region som den virtuella maskin som replikeras. Kontoförvaring av cache används för att hålla replikationsändringar temporärt, innan ändringarna flyttas till återställningsregionen för Azure. Stöd för hög churn är också tillgängligt i Azure Site Recovery för att få högre churn-gränser. Om du vill använda den här funktionen skapar du en Premium Block Blob-typ av lagringskonton och använder den sedan som cachelagringskonto. Azure Site Recovery för Premium SSD v2/Ultra-diskar stöds endast med hög omsättning. Använd SkuName Premium_LRS och Kind BlockBlobStorage för att möjliggöra hög variation. Du kan välja att ange olika cachelagringskonton för de olika diskarna på en virtuell dator, men det är inte nödvändigt. Om du använder olika cachelagringskonton kontrollerar du att de är av samma typ (Standard- eller Premium-blockblobar). Mer information finns i Katastrofåterställning för virtuella Azure-datorer – stöd för hög förändringstakt.
#Create Cache storage account for replication logs in the primary region
$EastUSCacheStorageAccount = New-AzStorageAccount -Name "a2acachestorage" -ResourceGroupName "A2AdemoRG" -Location 'East US' -SkuName Standard_LRS -Kind Storage
För virtuella maskiner som inte använder hanterade diskar är målkontot för lagring det lagringskonto i återhämtningsregionen till vilket virtuella maskinens diskar replikeras. Målkontot för lagring kan antingen vara ett standardlagringskonto eller ett premiumlagringskonto. Välj vilken typ av lagringskonto som krävs baserat på dataändringstakten (IO skrivhastighet) för diskarna och de av Azure Site Recovery stödda gränserna för omsättning för lagringstypen.
#Create Target storage account in the recovery region. In this case a Standard Storage account
$WestUSTargetStorageAccount = New-AzStorageAccount -Name "a2atargetstorage" -ResourceGroupName "a2ademorecoveryrg" -Location 'West US 2' -SkuName Standard_LRS -Kind Storage
Skapa nätverkskopplingar
Ett nätverksmappning kopplar virtuella nätverk i den primära regionen till virtuella nätverk i återhämtningsregionen. Nätverksmappningen anger det virtuella Azure-nätverket i återställningsregionen, som en virtuell dator i det primära virtuella nätverket ska redundansväxla till. En Azure-virtuellt nätverk kan endast mappas till ett enda Azure-virtuellt nätverk i en återhämtningsregion.
- Skapa ett Azure-virtuellt nätverk i återställningsregionen att använda för failover: - #Create a Recovery Network in the recovery region $WestUSRecoveryVnet = New-AzVirtualNetwork -Name "a2arecoveryvnet" -ResourceGroupName "a2ademorecoveryrg" -Location 'West US 2' -AddressPrefix "10.0.0.0/16" Add-AzVirtualNetworkSubnetConfig -Name "default" -VirtualNetwork $WestUSRecoveryVnet -AddressPrefix "10.0.0.0/20" | Set-AzVirtualNetwork $WestUSRecoveryNetwork = $WestUSRecoveryVnet.Id
- Hämta det primära virtuella nätverket. Det virtuella nätverk som den virtuella datorn är ansluten till: - #Retrieve the virtual network that the virtual machine is connected to #Get first network interface card(nic) of the virtual machine $SplitNicArmId = $VM.NetworkProfile.NetworkInterfaces[0].Id.split("/") #Extract resource group name from the ResourceId of the nic $NICRG = $SplitNicArmId[4] #Extract resource name from the ResourceId of the nic $NICname = $SplitNicArmId[-1] #Get network interface details using the extracted resource group name and resource name $NIC = Get-AzNetworkInterface -ResourceGroupName $NICRG -Name $NICname #Get the subnet ID of the subnet that the nic is connected to $PrimarySubnet = $NIC.IpConfigurations[0].Subnet # Extract the resource ID of the Azure virtual network the nic is connected to from the subnet ID $EastUSPrimaryNetwork = (Split-Path(Split-Path($PrimarySubnet.Id))).Replace("\","/")
- Skapa nätverksmappning mellan det primära virtuella nätverket och det virtuella återställningsnätverket: - #Create an ASR network mapping between the primary Azure virtual network and the recovery Azure virtual network $TempASRJob = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name "A2AEusToWusNWMapping" -PrimaryFabric $PrimaryFabric -PrimaryAzureNetworkId $EastUSPrimaryNetwork -RecoveryFabric $RecoveryFabric -RecoveryAzureNetworkId $WestUSRecoveryNetwork #Track Job status to check for completion while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob } #Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded" Write-Output $TempASRJob.State
- Skapa nätverksmappning för omvänd riktning (återställning efter fel): - #Create an ASR network mapping for fail back between the recovery Azure virtual network and the primary Azure virtual network $TempASRJob = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name "A2AWusToEusNWMapping" -PrimaryFabric $RecoveryFabric -PrimaryAzureNetworkId $WestUSRecoveryNetwork -RecoveryFabric $PrimaryFabric -RecoveryAzureNetworkId $EastUSPrimaryNetwork #Track Job status to check for completion while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob } #Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded" Write-Output $TempASRJob.State
Replikera Azure virtuell dator
Replikera den virtuella Azure-datorn med hanterade diskar.
#Get the resource group that the virtual machine must be created in when failed over.
$RecoveryRG = Get-AzResourceGroup -Name "a2ademorecoveryrg" -Location "West US 2"
#Specify replication properties for each disk of the VM that is to be replicated (create disk replication configuration)
#OsDisk
$OSdiskId = $vm.StorageProfile.OsDisk.ManagedDisk.Id
$RecoveryOSDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType
$RecoveryReplicaDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType
$OSDiskReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $EastUSCacheStorageAccount.Id `
         -DiskId $OSdiskId -RecoveryResourceGroupId  $RecoveryRG.ResourceId -RecoveryReplicaDiskAccountType  $RecoveryReplicaDiskAccountType `
         -RecoveryTargetDiskAccountType $RecoveryOSDiskAccountType
# Data disk
$datadiskId1 = $vm.StorageProfile.DataDisks[0].ManagedDisk.Id
$RecoveryReplicaDiskAccountType = $vm.StorageProfile.DataDisks[0].ManagedDisk.StorageAccountType
if ($RecoveryReplicaDiskAccountType -in @("PremiumV2_LRS", "Ultra_LRS")) {
    $RecoveryReplicaDiskAccountType = "Premium_LRS"
}
$RecoveryTargetDiskAccountType = $vm.StorageProfile.DataDisks[0].ManagedDisk.StorageAccountType
$DataDisk1ReplicationConfig  = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $EastUSCacheStorageAccount.Id `
         -DiskId $datadiskId1 -RecoveryResourceGroupId $RecoveryRG.ResourceId -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
         -RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
#Create a list of disk replication configuration objects for the disks of the virtual machine that are to be replicated.
$diskconfigs = @()
$diskconfigs += $OSDiskReplicationConfig, $DataDisk1ReplicationConfig
#Start replication by creating replication protected item. Using a GUID for the name of the replication protected item to ensure uniqueness of name.
$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name (New-Guid).Guid -ProtectionContainerMapping $EusToWusPCMapping -AzureToAzureDiskReplicationConfiguration $diskconfigs -RecoveryResourceGroupId $RecoveryRG.ResourceId
Replikera den virtuella Azure-datorn med ohanterade diskar.
#Specify replication properties for each disk of the VM that is to be replicated (create disk replication configuration)
#Disk replication configuration for the OS disk
$OSDiskReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -VhdUri $OSDiskVhdURI.Uri -LogStorageAccountId $EastUSCacheStorageAccount.Id -RecoveryAzureStorageAccountId $WestUSTargetStorageAccount.Id
#Disk replication configuration for data disk
$DataDisk1ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -VhdUri $DataDisk1VhdURI.Uri -LogStorageAccountId $EastUSCacheStorageAccount.Id -RecoveryAzureStorageAccountId $WestUSTargetStorageAccount.Id
#Create a list of disk replication configuration objects for the disks of the virtual machine that are to be replicated.
$diskconfigs = @()
$diskconfigs += $OSDiskReplicationConfig, $DataDisk1ReplicationConfig
#Get the resource group that the virtual machine must be created in when failed over.
$RecoveryRG = Get-AzResourceGroup -Name "a2ademorecoveryrg" -Location "West US 2"
#Start replication by creating replication protected item. Using a GUID for the name of the replication protected item to ensure uniqueness of name.
$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name (New-Guid).Guid -ProtectionContainerMapping $EusToWusPCMapping -AzureToAzureDiskReplicationConfiguration $diskconfigs -RecoveryResourceGroupId $RecoveryRG.ResourceId
#Track Job status to check for completion
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
        sleep 10;
        $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded"
Write-Output $TempASRJob.State
När replikeringsåtgärden har startats replikeras data från virtuella datorer till återställningsregionen.
Replikeringsprocessen börjar med att först seeda en kopia av de replikerande diskarna för den virtuella datorn i återställningsregionen. Den här fasen kallas för den inledande replikeringsfasen.
När den inledande replikeringen är klar flyttas replikeringen till differentiell synkroniseringsfas. I det här läget skyddas den virtuella datorn och en redundansteståtgärd kan utföras på den. Replikeringstillståndet för det replikerade objektet som representerar den virtuella datorn går till det skyddade tillståndet när den inledande replikeringen har slutförts.
Övervaka replikeringstillståndet och replikeringshälsan för den virtuella datorn genom att hämta information om det replikeringsskyddade objekt som motsvarar det.
Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtContainer | Select FriendlyName, ProtectionState, ReplicationHealth
FriendlyName ProtectionState ReplicationHealth
------------ --------------- -----------------
AzureDemoVM  Protected       Normal
Gör ett redundanstest, verifiera och rensa redundanstest
När replikeringen för den virtuella datorn har nått ett skyddat tillstånd kan en redundansteståtgärd utföras på den virtuella datorn (på det replikeringsskyddade objektet på den virtuella datorn).
#Create a separate network for test failover (not connected to my DR network)
$TFOVnet = New-AzVirtualNetwork -Name "a2aTFOvnet" -ResourceGroupName "a2ademorecoveryrg" -Location 'West US 2' -AddressPrefix "10.3.0.0/16"
Add-AzVirtualNetworkSubnetConfig -Name "default" -VirtualNetwork $TFOVnet -AddressPrefix "10.3.0.0/20" | Set-AzVirtualNetwork
$TFONetwork= $TFOVnet.Id
Gör ett failover-test.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -FriendlyName "AzureDemoVM" -ProtectionContainer $PrimaryProtContainer
$TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
Vänta tills redundanstestet har slutförts.
Get-AzRecoveryServicesAsrJob -Job $TFOJob
Name             : 3dcb043e-3c6d-4e0e-a42e-8d4245668547
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/a2ademorecoveryrg/providers/Microsoft.RecoveryServices/vaults/a2aDemoR
                   ecoveryVault/replicationJobs/3dcb043e-3c6d-4e0e-a42e-8d4245668547
Type             : Microsoft.RecoveryServices/vaults/replicationJobs
JobType          : TestFailover
DisplayName      : Test failover
ClientRequestId  : 1ef8515b-b130-4452-a44d-91aaf071931c ActivityId: 907bb2bc-ebe6-4732-8b66-77d0546eaba8
State            : Succeeded
StateDescription : Completed
StartTime        : 4/25/2018 4:29:43 AM
EndTime          : 4/25/2018 4:33:06 AM
TargetObjectId   : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
TargetObjectType : ProtectionEntity
TargetObjectName : azuredemovm
AllowedActions   :
Tasks            : {Prerequisites check for test failover, Create test virtual machine, Preparing the virtual machine, Start the virtual machine}
Errors           : {}
När testöverväxlingsjobbet har slutförts framgångsrikt kan du ansluta till den testöverväxlade virtuella maskinen och verifiera testöverväxlingen.
När testningen har slutförts på den misslyckade redundansväxlade virtuella datorn, rensa testkopian genom att påbörja rengöringsprocessen för redundanstestet. Den här åtgärden tar bort testkopian av den virtuella datorn som skapades vid redundanstestet.
$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicationProtectedItem
Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
State
-----
Succeeded
Övergå till Azure
Växla över den virtuella datorn till en specifik återställningspunkt.
$RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItem
#The list of recovery points returned may not be sorted chronologically and will need to be sorted first, in order to be able to find the oldest or the latest recovery points for the virtual machine.
"{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-1].RecoveryPointTime
CrashConsistent 4/24/2018 11:10:25 PM
#Start the fail over job
$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
Succeeded
När redundansjobbet lyckas kan du genomföra redundansåtgärden.
$CommitFailoverJOb = Start-AzRecoveryServicesAsrCommitFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem
Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
Name             : 58afc2b7-5cfe-4da9-83b2-6df358c6e4ff
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/a2ademorecoveryrg/providers/Microsoft.RecoveryServices/vaults/a2aDemoR
                   ecoveryVault/replicationJobs/58afc2b7-5cfe-4da9-83b2-6df358c6e4ff
Type             : Microsoft.RecoveryServices/vaults/replicationJobs
JobType          : CommitFailover
DisplayName      : Commit
ClientRequestId  : 10a95d6c-359e-4603-b7d9-b7ee3317ce94 ActivityId: 8751ada4-fc42-4238-8de6-a82618408fcf
State            : Succeeded
StateDescription : Completed
StartTime        : 4/25/2018 4:50:58 AM
EndTime          : 4/25/2018 4:51:01 AM
TargetObjectId   : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
TargetObjectType : ProtectionEntity
TargetObjectName : azuredemovm
AllowedActions   :
Tasks            : {Prerequisite check, Commit}
Errors           : {}
Skydda igen och återgå till källregionen
När du är redo att gå tillbaka till den ursprungliga regionen efter en redundansväxling, starta omvänd replikering för det replikeringsskyddade objektet med hjälp av cmdlet-kommandot Update-AzRecoveryServicesAsrProtectionDirection.
#Create Cache storage account for replication logs in the primary region
$WestUSCacheStorageAccount = New-AzStorageAccount -Name "a2acachestoragewestus" -ResourceGroupName "A2AdemoRG" -Location 'West US' -SkuName Standard_LRS -Kind Storage
#Use the recovery protection container, new cache storage account in West US and the source region VM resource group
Update-AzRecoveryServicesAsrProtectionDirection -ReplicationProtectedItem $ReplicationProtectedItem -AzureToAzure
-ProtectionContainerMapping $WusToEusPCMapping -LogStorageAccountId $WestUSCacheStorageAccount.Id -RecoveryResourceGroupID $sourceVMResourcegroup.ResourceId
När återskyddet är klart kan du omdirigera i omvänd riktning, från Väst-USA till Öst-USA, och återgå till källregionen.
Stäng av replikering
Du kan inaktivera replikering med cmdleten Remove-AzRecoveryServicesAsrReplicationProtectedItem .
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem
Nästa steg
Visa Azure Site Recovery PowerShell-referensen för att lära dig hur du kan utföra andra uppgifter som att skapa återställningsplaner och testa failover av återställningsplaner med PowerShell.