演習 - Azure Site Recovery を使用したフェールオーバーとフェールバック

完了

保護対象のリソースをフェールオーバーするには、3 つの方法があります。ポータルを使用する、PowerShell を使用する、または Azure Automation Runbook を使用してフェールオーバーを自動化する方法です。

すべてのリソースが保護されている状態で、patient-records VM のフェールオーバーを実際に実行できます。 DR 訓練が完了したので、PowerShell とポータルを使用してフェールオーバーを実行します。 完了すると、会社で使用すべき方法をより適切にお勧めできるようになります。

この演習では、PowerShell を使用して VM のフェールオーバーを完了し、その VM を Azure portal を使用してフェールバックします。

PowerShell を使用して VM をセカンダリ リージョンにフェールオーバーする

  1. ご自身の資格情報を使用して Azure portal にサインインします。

  2. Cloud Shell を開始して PowerShell に切り替えます。

  3. 次のコマンドを実行します。

        $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 を格納する。
    • すべての復旧ポイントの一覧を取得する。
    • 最新の復旧ポイントに対してフェールオーバーをトリガーする。
    • フェールオーバーの結果を表示する。
  4. フェールオーバーには数分かかることがあります。 スクリプトの実行中に、Cloud Shell を開いたままにして、asr-vault に移動します。

  5. 左側のメニュー ウィンドウの [監視] の下で、[Site Recovery ジョブ] を選択します。

    Note

    フェールオーバー ジョブの進行状況は、スクリプトの実行と同時に表示できます。

  6. フェールオーバーが完了したら、Azure ホーム ページで [仮想マシン] を選択し、patient-record VM が東海岸リージョンにフェールオーバーされたことを確認します。

  7. 現在、VM は 3 つあり、2 つには patient-records という名前が付いています。

PowerShell を使用して VM を再保護する

  1. フェールオーバーが正常に完了したら、VM を再保護することができます。

  2. 次のコマンドを実行します。

    $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 分かかる場合があります。

  1. 次の PowerShell コマンドを実行すれば、ジョブを監視できます。

    Get-AzRecoveryServicesAsrJob -Job $ReprotectJob
    
  2. このコマンドにより、ジョブの状態が返されます。 出力は次のようになります。

    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 になります。

ポータルを使用して米国西部リージョンにフェールバックする

  1. Cloud Shell を閉じて、Azure portal をより簡単に使用できるようにします。

  2. ホーム ページで、[すべてのリソース] を選択します。

  3. [asr-vault] を選択します。

  4. 左側のメニュー ウィンドウの [保護された項目] で、[レプリケートされた項目] を選択します。

  5. patient-records を選択します。

    レプリケーションが完了し、同期が 100% 完了するまで、VM をフェールバックすることはできません。 同期プロセスが完了するまでに数分かかる場合があります。

  6. 同期が完了したら、[フェールオーバー] を選択します。

  7. 復旧ポイントに対して [最後に処理があった時点 (低 RTO)] を選択します。

  8. フェールバックを開始するには、[OK] を選択します。

フェールバックを監視する

  1. ホーム ページで、[すべてのリソース] を選択します。

  2. [asr-vault] を選択します。

  3. 左側のメニュー ウィンドウの [監視] の下で、[Site Recovery ジョブ] を選択します。

  4. 進行中の フェールオーバー ジョブを選択します。