演習 - Azure Site Recovery を使用したフェールオーバーとフェールバック
保護対象のリソースをフェールオーバーするには、3 つの方法があります。ポータルを使用する、PowerShell を使用する、または Azure Automation Runbook を使用してフェールオーバーを自動化する方法です。
すべてのリソースが保護されている状態で、patient-records VM のフェールオーバーを実際に実行できます。 DR 訓練が完了したので、PowerShell とポータルを使用してフェールオーバーを実行します。 完了すると、会社で使用すべき方法をより適切にお勧めできるようになります。
この演習では、PowerShell を使用して VM のフェールオーバーを完了し、その VM を Azure portal を使用してフェールバックします。
PowerShell を使用して VM をセカンダリ リージョンにフェールオーバーする
ご自身の資格情報を使用して Azure portal にサインインします。
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 コンテナーを変数に格納する。
- セッションのコンテキストをコンテナーに設定する。
- コンテナーから保護対象の parent-records を格納する。
- すべての復旧ポイントの一覧を取得する。
- 最新の復旧ポイントに対してフェールオーバーをトリガーする。
- フェールオーバーの結果を表示する。
フェールオーバーには数分かかることがあります。 スクリプトの実行中に、Cloud Shell を開いたままにして、asr-vault に移動します。
左側のメニュー ウィンドウの [監視] の下で、[Site Recovery ジョブ] を選択します。
Note
フェールオーバー ジョブの進行状況は、スクリプトの実行と同時に表示できます。
フェールオーバーが完了したら、Azure ホーム ページで [仮想マシン] を選択し、patient-record VM が東海岸リージョンにフェールオーバーされたことを確認します。
現在、VM は 3 つあり、2 つには patient-records という名前が付いています。
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/3dd370ad-858c-49f0-8f7a-ee6cc0d841de/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 : {}
Note
再保護が完了すると、State は Succeeded、StateDescription は Completed になります。
ポータルを使用して米国西部リージョンにフェールバックする
Cloud Shell を閉じて、Azure portal をより簡単に使用できるようにします。
ホーム ページで、[すべてのリソース] を選択します。
[asr-vault] を選択します。
左側のメニュー ウィンドウの [保護された項目] で、[レプリケートされた項目] を選択します。
patient-records を選択します。
レプリケーションが完了し、同期が 100% 完了するまで、VM をフェールバックすることはできません。 同期プロセスが完了するまでに数分かかる場合があります。
同期が完了したら、[フェールオーバー] を選択します。
復旧ポイントに対して [最後に処理があった時点 (低 RTO)] を選択します。
フェールバックを開始するには、[OK] を選択します。
フェールバックを監視する
ホーム ページで、[すべてのリソース] を選択します。
[asr-vault] を選択します。
左側のメニュー ウィンドウの [監視] の下で、[Site Recovery ジョブ] を選択します。
進行中の フェールオーバー ジョブを選択します。