Sdílet prostřednictvím


Nastavení zotavení po havárii pro virtuální počítače Azure pomocí Azure PowerShellu

V tomto článku se dozvíte, jak nastavit a otestovat zotavení po havárii pro virtuální počítače Azure pomocí Azure PowerShellu.

Naučíte se:

  • Vytvořte úložiště služeb Recovery Services.
  • Nastavte kontext trezoru pro relaci PowerShell.
  • Připravte trezor na spuštění replikace virtuálních počítačů Azure.
  • Vytvoření mapování sítě
  • Vytvářejte účty úložiště, kam se budou replikovat virtuální počítače.
  • Replikace virtuálních počítačů Azure do oblasti zotavení po havárii
  • Proveďte testovací převzetí služeb při selhání, ověřte a vyčistěte testovací převzetí služeb při selhání.
  • Přepněte na oblast obnovení

Poznámka:

Ne všechny možnosti scénářů dostupné prostřednictvím portálu můžou být dostupné prostřednictvím Azure PowerShellu. Mezi možnosti scénáře, které azure PowerShell v současné době nepodporuje, patří:

  • Možnost určit, že všechny disky ve virtuálním počítači by se měly replikovat, aniž by bylo nutné explicitně zadat každý disk virtuálního počítače.

Poznámka:

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavky

Než začnete, potřebujete:

Přihlášení k předplatnému Microsoft Azure

Přihlaste se ke svému předplatnému Azure pomocí rutiny Connect-AzAccount .

Connect-AzAccount

Vyberte své předplatné Azure. Pomocí rutiny Get-AzSubscription získáte seznam předplatných Azure, ke kterým máte přístup. Vyberte předplatné Azure, se kterým chcete pracovat pomocí rutiny Set-AzContext .

Set-AzContext -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Získání podrobností o virtuálním počítači, který se má replikovat

V tomto článku je virtuální počítač z oblasti východ USA replikován a obnoven v oblasti západ 2 USA. Replikovaný virtuální počítač má disk s operačním systémem a jeden datový disk. Název virtuálního počítače použitého v příkladu je 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}

Získejte podrobnosti o discích virtuálního počítače. Podrobnosti o disku se použijí později při spuštění replikace virtuálního počítače.

$OSDiskVhdURI = $VM.StorageProfile.OsDisk.Vhd
$DataDisk1VhdURI = $VM.StorageProfile.DataDisks[0].Vhd

Vytvoření úložiště pro služby obnovení

Vytvořte skupinu prostředků pro vytvoření trezoru služby Recovery Services.

Důležité

  • Úložiště služby Recovery Services a chráněné virtuální počítače musí být v různých umístěních Azure.
  • Skupina prostředků úložiště služeb pro obnovení a chráněné virtuální počítače musí se nacházet v různých lokalitách Azure.
  • Úložiště služeb obnovení a skupina prostředků, do které patří, mohou být ve stejném umístění Azure.

V příkladu v tomto článku je chráněný virtuální počítač v oblasti USA – východ. Oblast obnovení vybraná pro zotavení po havárii je oblast USA – západ 2. Trezor úložiště obnovy služeb a skupina prostředků trezoru se nachází v regionu obnovy Západ USA 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

Vytvořte trezor služby Recovery Services. V tomto příkladu se vytvoří trezor služby Recovery Services s názvem a2aDemoRecoveryVault v regionu West US 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

Nastavte kontext trezoru

Nastavte kontext trezoru pro relaci PowerShellu. Po nastavení kontextu úložiště se operace Azure Site Recovery v PowerShell session provádějí v kontextu vybraného úložiště.

#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

Pro migraci z Azure do Azure můžete nastavit kontext trezoru na nově vytvořený trezor:

#Set the vault context for the PowerShell session.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Připravte trezor na zahájení replikace virtuálních počítačů Azure

Vytvoření objektu infrastruktury Site Recovery pro reprezentaci primární (zdrojové) oblasti

Objekt infrastruktury v trezoru představuje oblast Azure. Vytvoří se primární objekt infrastruktury, který představuje oblast Azure, do které patří virtuální počítače chráněné do trezoru. V příkladu v tomto článku je chráněný virtuální počítač v oblasti USA – východ.

  • Pro každou oblast je možné vytvořit pouze jeden objekt typu fabric.
  • Pokud jste dříve povolili replikaci Site Recovery pro virtuální počítač na webu Azure Portal, Site Recovery automaticky vytvoří objekt infrastruktury. Pokud existuje textilní objekt pro oblast, nemůžete vytvořit nový.

Než začnete, uvědomte si, že se operace Site Recovery spouští asynchronně. Při zahájení operace se odešle úloha Azure Site Recovery a vrátí se objekt sledování úloh. Pomocí objektu sledování úloh získejte nejnovější stav úlohy (Get-AzRecoveryServicesAsrJob) a monitorujte stav operace.

#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"

Pokud jsou virtuální počítače z více oblastí Azure chráněné do stejného trezoru, vytvořte jeden objekt infrastruktury pro každou zdrojovou oblast Azure.

Vytvoření objektu infrastruktury Site Recovery, který představuje oblast obnovení

Objekt obnovy představuje umístění Azure pro obnovení. Pokud dojde k převzetí služeb při selhání, virtuální počítače se replikují a obnoví do regionu obnovení reprezentovaného obnovenou infrastrukturou. Oblast Azure pro obnovení použitá v tomto příkladu je USA – západ 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"

Vytvořte ochranný kontejner pro Site Recovery v primární vrstvě.

Kontejner ochrany slouží k seskupení replikovaných položek v infrastruktuře.

#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"

Vytvořit kontejner ochrany Site Recovery v fabricu pro obnovení

#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"

Vytváření prostředků infrastruktury a kontejneru při povolování replikace mezi zónami

Po povolení replikace zóna na zónu se vytvoří pouze jedna fabrika. Ale budou tam dva kontejnery. Za předpokladu, že je oblast Západní Evropa, pomocí následujících příkazů získejte primární kontejnery a kontejnery ochrany –

$primaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $fabric -Name "asr-a2a-default-westeurope-container"
$recoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $fabric -Name "asr-a2a-default-westeurope-t-container"

Vytvoření zásady replikace

#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"

Vytvořit mapování mezi primárním kontejnerem ochrany a kontejnerem pro obnovení.

Mapování ochranného kontejneru propojuje primární ochranný kontejner s kontejnerem pro obnovu ochrany a politikou replikace. Vytvořte jedno mapování pro každou zásadu replikace, kterou použijete k replikaci virtuálních počítačů mezi párem kontejneru ochrany.

#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"

Vytvoření mapování kontejnerů ochrany při aktivaci replikace zóny na zónu

Když povolíte replikaci mezi zónami, použijte následující příkaz pro vytvoření mapování ochranného kontejneru. Za předpokladu, že je oblast Západní Evropa, bude příkaz -

$protContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $PrimprotectionContainer -Name "westeurope-westeurope-24-hour-retention-policy-s"

Vytvořit mapování ochranného kontejneru pro reverzní replikaci po selhání.

Po převzetí služeb při selhání, když jste připraveni vrátit virtuální počítač s převzetím služeb zpět do původní oblasti Azure, provedete zpětné převzetí služeb při selhání. Pro obnovení provozu se virtuální počítač, který selhal, replikuje zpětně z oblasti selhání do původní oblasti. Pro zpětnou replikaci se role původní oblasti a oblasti obnovení vymění. Původní oblast se teď stane novou oblastí obnovení a tím, co byla původně oblast obnovení, se teď stane primární oblastí. Mapování kontejneru ochrany pro zpětnou replikaci představuje přepínané role původních oblastí a oblastí obnovení.

#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"

Vytvoření účtu úložiště mezipaměti a cílového účtu úložiště

Účet úložiště mezipaměti je účet úložiště úrovně Standard ve stejné oblasti Azure jako replikovaný virtuální počítač. Účet úložiště mezipaměti slouží k dočasnému uložení změn replikace před přesunem změn do oblasti Azure pro obnovení. K dispozici je také podpora vysoké četnosti změn ve službě Azure Site Recovery, abyste získali vyšší limity četnosti změn. Pokud chcete tuto funkci použít, vytvořte účet úložiště typu Premium Block Blob a pak ho použijte jako účet úložiště mezipaměti. Azure Site Recovery pro disky Premium SSD v2 je podporováno pouze při vysoké zátěži. K povolení vysoké četnosti změn použijte SkuName Premium_LRS a Kind BlockBlobStorage . Můžete se rozhodnout, ale není nutné zadat různé účty úložiště mezipaměti pro různé disky virtuálního počítače. Pokud používáte různé účty úložiště mezipaměti, ujistěte se, že jsou stejného typu (bloby bloku úrovně Standard nebo Premium). Další informace najdete v tématu Zotavení po havárii virtuálního počítače Azure – podpora pro vysoké zatížení.

#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

Pro virtuální počítače , které nepoužívají spravované disky, je cílovým účtem úložiště účet úložiště v oblasti obnovení, do které se disky virtuálního počítače replikují. Cílovým účtem úložiště může být účet úložiště úrovně Standard nebo účet služby Premium Storage. Vyberte typ požadovaného účtu úložiště na základě rychlosti změny dat (rychlost zápisu vstupně-výstupních operací) pro disky a limity četnosti změn podporované pro typ úložiště v Azure Site Recovery.

#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

Vytvoření mapování sítě

Mapování sítě mapuje virtuální sítě v primární oblasti na virtuální sítě v oblasti obnovení. Mapování sítě určuje virtuální síť Azure v oblasti obnovení, do které by měl převzít služby při selhání virtuální počítač v primární virtuální síti. Jednu virtuální síť Azure je možné mapovat pouze na jednu virtuální síť Azure v oblasti obnovení.

  • Vytvořte virtuální síť Azure v oblasti obnovení, která převezme služby při selhání:

      #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
    
  • Načtěte primární virtuální síť. Virtuální síť, ke které je virtuální počítač připojený:

      #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("\","/")
    
  • Vytvořte mapování sítě mezi primární virtuální sítí a virtuální sítí pro obnovení:

      #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
    
  • Vytvořit mapování sítě pro opačný směr (failback):

    #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
    

Replikace virtuálního počítače Azure

Replikujte virtuální počítač Azure se spravovanými disky.

#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

Replikujte virtuální počítač Azure s nespravovanými disky.

#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

Po úspěšném spuštění operace replikace se data virtuálního počítače replikují do oblasti obnovení.

Proces replikace začíná počátečním nasazením kopie replikujících disků virtuálního počítače v oblasti obnovení. Tato fáze se nazývá počáteční fáze replikace.

Po dokončení počáteční replikace se replikace přesune do fáze rozdílové synchronizace. V tomto okamžiku je virtuální počítač chráněný a na něm lze provést operaci testovacího převzetí služeb při selhání. Po dokončení počáteční replikace přejde stav replikace replikované položky představující virtuální počítač do chráněného stavu.

Sledujte stav a zdraví replikace virtuálního počítače získáním podrobností o chráněné položce replikace, která mu odpovídá.

Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtContainer | Select FriendlyName, ProtectionState, ReplicationHealth
FriendlyName ProtectionState ReplicationHealth
------------ --------------- -----------------
AzureDemoVM  Protected       Normal

Proveďte testovací převzetí služeb při selhání, ověřte a vyčistěte testovací převzetí.

Poté, co replikace virtuálního počítače dosáhne chráněného stavu, je možné provést operaci testovacího převzetí služeb při selhání na virtuálním počítači (v rámci replikací chráněné položky virtuálního počítače).

#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

Proveďte testování převzetí služeb (failover).

$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -FriendlyName "AzureDemoVM" -ProtectionContainer $PrimaryProtContainer

$TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery

Počkejte, až bude dokončena operace testovacího převzetí služeb při selhání.

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           : {}

Po úspěšném dokončení úlohy testovacího převzetí služeb při selhání se můžete připojit k testovacímu virtuálnímu počítači, který převzal služby při selhání, a ověřit testovací převzetí služeb při selhání.

Po dokončení testování virtuálního počítače, který sloužil jako simulační převzetí služeb při selhání, zahajte operaci úklidu testovacího převzetí služeb při selhání a tím vyčistěte testovací kopii. Tato operace odstraní testovací kopii virtuálního počítače, která byla vytvořena zkušebním převzetím.

$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicationProtectedItem

Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
State
-----
Succeeded

Přepnutí při selhání do Azure

Proveďte převod virtuálního počítače na konkrétní bod obnovení.

$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

Pokud je úloha převzetí služeb při selhání úspěšná, můžete operaci převzetí služeb při selhání potvrdit.

$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           : {}

Znovuochránit a návrat do zdrojové oblasti

Po převzetí služeb při selhání, až budete připraveni se vrátit k původní oblasti, spusťte zpětnou replikaci položky chráněné replikací pomocí rutiny 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

Po dokončení opětovné ochrany můžete provést převzetí služeb při selhání opačným směrem, z oblasti západ USA na východ USA, a poté obnovit služby do původní zdrojové oblasti.

Zákaz replikace

Replikaci můžete zakázat pomocí rutiny Remove-AzRecoveryServicesAsrReplicationProtectedItem .

Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem

Další kroky

Projděte si referenční příručku k Azure Site Recovery PowerShellu a zjistěte, jak provádět další úlohy, jako je vytváření plánů obnovení a testování přepnutí plánů obnovení pomocí PowerShellu.