练习 - 使用 Azure Site Recovery 进行故障转移和故障回复
可采用三种方式对受保护的资源进行故障转移:使用门户、使用 PowerShell,或使用 Azure 自动化 runbook 自动执行故障转移。
在所有资源都得到保护的情况下,可以运行患者记录 VM 的实际故障转移。 DR 演练完成后,需通过 PowerShell 和门户进行故障转移。 完成后,你可以更有把握地推荐公司应使用的方法。
本练习将使用 PowerShell 完成 VM 故障转移,并使用 Azure 门户对 VM 进行故障回复。
使用 PowerShell 将 VM 故障转移到次要区域
使用自己的凭据登录到 Azure 门户。
启动 Cloud Shell 并将其切换到 PowerShell。
运行以下命令:
$vault = Get-AzRecoveryServicesVault -Name "asr-vault" Set-AzRecoveryServicesAsrVaultContext -Vault $vault $PrimaryFabric = Get-AsrFabric -Name "asr-a2a-default-westus2" $PrimaryProtContainer = Get-ASRProtectionContainer -Fabric $PrimaryFabric $ReplicationProtectedItem = Get-ASRReplicationProtectedItem -ProtectionContainer $PrimaryProtContainer -FriendlyName "patient-records" $RecoveryPoints = Get-ASRRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItem $Job_Failover = Start-ASRUnplannedFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -Direction PrimaryToRecovery -RecoveryPoint $RecoveryPoints[-1] do { $Job_Failover = Get-ASRJob -Job $Job_Failover; sleep 30; } while (($Job_Failover.State -eq "InProgress") -or ($JobFailover.State -eq "NotStarted")) $Job_Failover.State $CommitFailoverJob = Start-ASRCommitFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem Get-ASRJob -Job $CommitFailoverJob
这些 PowerShell 命令执行以下操作:
- 将 Azure Site Recovery 保管库存储在变量中。
- 设置保管库会话的上下文。
- 存储来自保管库的受保护的患者记录。
- 获取所有恢复点的列表。
- 触发最新恢复点的故障转移。
- 显示故障转移结果。
故障转移可能需要几分钟的时间。 在脚本运行时,使 Cloud Shell 保持打开并转到 asr-vault。
在左侧菜单窗格上,在“监视”下选择“Site Recovery 作业”。
注意
你可以在运行脚本的同时查看故障转移作业的进度。
故障转移完成后,请从 Azure 主页选择“虚拟机”,检查是否已将患者记录 VM 故障转移到东海岸区域。
现在有三个 VM,其中两个名为“患者记录”。
使用 PowerShell 重新保护 VM
成功完成故障转移后,可以重新保护 VM。
运行以下命令:
$RecoveryFabric = Get-AsrFabric -Name "asr-a2a-default-eastus2" $RecoveryProtContainer = Get-ASRProtectionContainer -Fabric $RecoveryFabric $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $RecoveryProtContainer -Name eastus2-westus2-24-hour-retention-policy $StorageAccount = New-AzStorageAccount -ResourceGroupName "east-coast-rg" -AccountName "reprotectcache$(Get-Random)" -Location eastus2 -SkuName Standard_GRS $ResourceGroup = Get-AzResourceGroup -Name "west-coast-rg" $ReprotectJob = Update-AzRecoveryServicesAsrProtectionDirection -AzureToAzure -ProtectionContainerMapping $ProtectionContainerMapping -ReplicationProtectedItem $ReplicationProtectedItem -LogStorageAccountId $StorageAccount.ID -RecoveryResourceGroupId $ResourceGroup.ResourceId
这些 PowerShell 命令执行以下操作:
- 设置
Update-AzRecoveryServicesAsrProtectionDirection
命令将使用的变量。 - 需要存储帐户以存储重新保护的日志和数据。 此存储需要与受保护的 VM 位于同一区域。
- 使用最后一行启动重新保护作业,并存储对它的引用。
- 设置
使用 PowerShell 进行监视和测试
重新保护 VM 的作业可能需要大约 10 分钟才能完成。
可以运行此 PowerShell 命令来监视该作业:
Get-AzRecoveryServicesAsrJob -Job $ReprotectJob
此命令将返回作业的状态。 输出如下所示:
Name : 0993fa3c-6ac1-4d96-920d-df06830d49f2 ID : /Subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/east-coast-rg/providers/Microsoft.RecoveryServices/vaults/asr-vault/replicationJobs/0993fa3c-6ac1-4d96 -920d-df06830d49f2 Type : Microsoft.RecoveryServices/vaults/replicationJobs JobType : SwitchReplicationGroupProtection DisplayName : Reprotect ClientRequestId : State : Succeeded StateDescription : Completed StartTime : 7/22/19 10:25:49 AM EndTime : 7/22/19 10:35:07 AM TargetObjectId : 28542035-9d78-58c9-a3ec-0ad29b0a88d8 TargetObjectType : ProtectionEntity TargetObjectName : patient-records AllowedActions : Tasks : {} Errors : {}
注意
重新保护完成后,状态为“成功”,StateDescription 为“已完成”。
使用门户故障回复到美国西部区域
关闭 Cloud Shell 以更轻松地使用 Azure 门户。
在主页上,选择“所有资源”。
选择“asr-vault”。
在左侧菜单窗格中,在“受保护的项”下选择“复制的项”。
选择“患者记录”。
只有完成复制且 100% 完成同步之后,才能对 VM 进行故障回复。 同步过程可能需要几分钟才能完成。
同步完成后,选择“故障转移”。
对于恢复点,请选择“最新处理(低 RTO)”。
选择“确定”,开始故障回复。
监视故障回复
在主页上,选择“所有资源”。
选择“asr-vault”。
在左侧菜单窗格中,在“监视”下选择“Site Recovery 作业”。
选择正在进行的“故障转移”作业。