PowerShell を使用して VMware VM の Azure へのディザスター リカバリーを設定するSet up disaster recovery of VMware VMs to Azure with PowerShell

この記事では、Azure PowerShell を使って VMware の仮想マシンを Azure にレプリケートおよびフェールオーバーする方法を説明します。In this article, you see how to replicate and failover VMware virtual machines to Azure using Azure PowerShell.

学習内容は次のとおりです。You learn how to:

  • Recovery Services のコンテナーを作成し、コンテナーのコンテキストを設定する。Create a Recovery Services vault and set the vault context.
  • コンテナー内のサーバー登録を検証する。Validate server registration in the vault.
  • レプリケーション ポリシーなど、レプリケーションを設定する。Set up replication, including a replication policy. vCenter サーバーを追加して VM を検出する。Add your vCenter server and discover VMs.
  • vCenter サーバーを追加して検出するAdd a vCenter server and discover
  • レプリケーション ログまたはデータを保持するストレージ アカウントを作成し、VM をレプリケートする。Create storage accounts to hold replication logs or data, and replicate the VMs.
  • フェールオーバーを実行する。Perform a failover. 仮想マシンをレプリケートするためのフェールオーバーの設定を構成し、設定を実行する。Configure failover settings, perform a settings for replicating virtual machines.


この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.


開始する前に次の操作を実行してください。Before you start:

Azure にログインするLog into Azure

Connect-AzAccount コマンドレットを使用して、Azure サブスクリプションにログインします。Log into your Azure subscription using the Connect-AzAccount cmdlet:


VMware 仮想マシンをレプリケートする先の Azure サブスクリプションを選びます。Select the Azure subscription you want to replicate your VMware virtual machines to. Get-AzSubscription コマンドレットを使って、アクセスできる Azure サブスクリプションの一覧を取得します。Use the Get-AzSubscription cmdlet to get the list of Azure subscriptions you have access to. Select-AzSubscription コマンドレットを使って、利用する Azure サブスクリプションを選びます。Select the Azure subscription to work with using the Select-AzSubscription cmdlet.

Select-AzSubscription -SubscriptionName "ASR Test Subscription"

Recovery Services コンテナーの設定Set up a Recovery Services vault

  1. Recovery Services コンテナーを作成するリソース グループを作成します。Create a resource group in which to create the Recovery Services vault. 次の例では、VMwareDRtoAzurePS という名前のリソース グループを東アジア リージョンに作成しています。In the example below, the resource group is named VMwareDRtoAzurePS and is created in the East Asia region.

    New-AzResourceGroup -Name "VMwareDRtoAzurePS" -Location "East Asia"
    ResourceGroupName : VMwareDRtoAzurePS
    Location          : eastasia
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRtoAzurePS
  2. Recovery Services コンテナーを作成します。Create a Recovery services vault. 次の例では、VMwareDRToAzurePs という名前の Recovery Services コンテナーを、前のステップで作成した東アジア リージョンのリソース グループに作成します。In the example below, the Recovery services vault is named VMwareDRToAzurePs, and is created in the East Asia region and in the resource group created in the previous step.

    New-AzRecoveryServicesVault -Name "VMwareDRToAzurePs" -Location "East Asia" -ResourceGroupName "VMwareDRToAzurePs"
    Name              : VMwareDRToAzurePs
    ID                : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs
    Type              : Microsoft.RecoveryServices/vaults
    Location          : eastasia
    ResourceGroupName : VMwareDRToAzurePs
    SubscriptionId    : xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
  3. コンテナーの登録キーをダウンロードします。Download the vault registration key for the vault. コンテナー登録キーを使って、このコンテナーにオンプレミスの構成サーバーを登録します。The vault registration key is used to register the on-premises Configuration Server to this vault. 登録は、構成サーバーのソフトウェア インストール プロセスの一部です。Registration is part of the Configuration Server software installation process.

    #Get the vault object by name and resource group and save it to the $vault PowerShell variable 
    $vault = Get-AzRecoveryServicesVault -Name "VMwareDRToAzurePS" -ResourceGroupName "VMwareDRToAzurePS"
    #Download vault registration key to the path C:\Work
    Get-AzRecoveryServicesVaultSettingsFile -SiteRecovery -Vault $Vault -Path "C:\Work\"
  4. ダウンロードしたコンテナー登録キーを使い、以下の記事の手順に従って、構成サーバーのインストールと登録を行います。Use the downloaded vault registration key and follow the steps in the articles given below to complete installation and registration of the Configuration Server.

コンテナーのコンテキストを設定するSet the vault context

Set-ASRVaultContext コマンドレットを使って、コンテナーのコンテキストを設定します。Set the vault context using the Set-ASRVaultContext cmdlet. コンテキストを設定した後、PowerShell セッションでのそれ以降の Azure Site Recovery 操作は、選んだコンテナーのコンテキストで実行されます。Once set, subsequent Azure Site Recovery operations in the PowerShell session are performed in the context of the selected vault.


Azure Site Recovery PowerShell モジュール (Az.RecoveryServices モジュール) のほとんどのコマンドレットには、使いやすいエイリアスがあります。The Azure Site Recovery PowerShell module (Az.RecoveryServices module) comes with easy to use aliases for most cmdlets. このモジュールのコマンドレットの形式は <Operation>-AzRecoveryServicesAsr<Object> であり、これに対応するエイリアスの形式は <Operation>-ASR<Object> です。The cmdlets in the module take the form <Operation>-AzRecoveryServicesAsr<Object> and have equivalent aliases that take the form <Operation>-ASR<Object>. 使いやすくするために、コマンドレットのエイリアスを置き換えることができます。You can replace the cmdlet aliases for ease of use.

次の例では、$vault 変数に設定されているコンテナーの詳細を使って、PowerShell セッションに対するコンテナーのコンテキストを指定しています。In the example below, the vault details from the $vault variable is used to specify the vault context for the PowerShell session.

Set-ASRVaultContext -Vault $vault
ResourceName      ResourceGroupName ResourceNamespace          ResourceType
------------      ----------------- -----------------          -----------
VMwareDRToAzurePs VMwareDRToAzurePs Microsoft.RecoveryServices vaults

Set-ASRVaultContext コマンドレットの代替として、Import-AzRecoveryServicesAsrVaultSettingsFile コマンドレットを使用してコンテナー コンテキストを設定することもできます。As an alternative to the Set-ASRVaultContext cmdlet, one can also use the Import-AzRecoveryServicesAsrVaultSettingsFile cmdlet to set the vault context. コンテナー登録キー ファイルが -path パラメーターとして置かれているパスを Import-AzRecoveryServicesAsrVaultSettingsFile コマンドレットに指定します。Specify the path at which the vault registration key file is located as the -path parameter to the Import-AzRecoveryServicesAsrVaultSettingsFile cmdlet. 次に例を示します。For example:

Get-AzRecoveryServicesVaultSettingsFile -SiteRecovery -Vault $Vault -Path "C:\Work\"
Import-AzRecoveryServicesAsrVaultSettingsFile -Path "C:\Work\VMwareDRToAzurePs_2017-11-23T19-52-34.VaultCredentials"

この記事の以降のセクションでは、Azure Site Recovery 操作のコンテナーのコンテキストは既に設定されているものとします。Subsequent sections of this article assume that the vault context for Azure Site Recovery operations has been set.

コンテナーの登録を検証するValidate vault registration

この例の状態は次のとおりです。For this example, we have the following:

  • 構成サーバー (ConfigurationServer) が、このコンテナーに登録されています。A configuration server (ConfigurationServer) has been registered to this vault.
  • 追加のプロセス サーバー (ScaleOut-ProcessServer) が、ConfigurationServer に登録されています。An additional process server (ScaleOut-ProcessServer) has been registered to ConfigurationServer
  • アカウント (vCenter_accountWindowsAccountLinuxAccount) が構成サーバーに設定されています。Accounts (vCenter_account, WindowsAccount, LinuxAccount) have been set up on the Configuration server. これらのアカウントを使って、仮想マシンを検出するための vCenter サーバーを追加し、レプリケートされる Windows サーバーと Linux サーバーにモビリティ サービス ソフトウェアをプッシュ インストールします。These accounts are used to add the vCenter server, to discover virtual machines, and to push-install the mobility service software on Windows and Linux servers that are to be replicated.
  1. 登録された構成サーバーは、Site Recovery ではファブリック オブジェクトによって表されます。Registered configuration servers are represented by a fabric object in Site Recovery. コンテナー内のファブリック オブジェクトのリストを取得して、構成サーバーを識別します。Get the list of fabric objects in the vault and identify the configuration server.

    # Verify that the Configuration server is successfully registered to the vault
    $ASRFabrics = Get-AzRecoveryServicesAsrFabric
    #Print details of the Configuration Server
    Name                  : 2c33d710a5ee6af753413e97f01e314fc75938ea4e9ac7bafbf4a31f6804460d
    FriendlyName          : ConfigurationServer
    ID                    : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationFabrics
    Type                  : Microsoft.RecoveryServices/vaults/replicationFabrics
    FabricType            : VMware
    SiteIdentifier        : ef7a1580-f356-4a00-aa30-7bf80f952510
    FabricSpecificDetails : Microsoft.Azure.Commands.RecoveryServices.SiteRecovery.ASRVMWareSpecificDetails
  2. マシンのレプリケートに使うことができるプロセス サーバーを識別します。Identify the process servers that can be used to replicate machines.

    $ProcessServers = $ASRFabrics[0].FabricSpecificDetails.ProcessServers
    for($i=0; $i -lt $ProcessServers.count; $i++) {
     "{0,-5} {1}" -f $i, $ProcessServers[$i].FriendlyName
    0     ScaleOut-ProcessServer
    1     ConfigurationServer

    上の出力で、$ProcessServers[0]ScaleOut-ProcessServer に対応し、$ProcessServers[1]ConfigurationServer 上のプロセス サーバーの役割に対応しますFrom the output above $ProcessServers[0] corresponds to ScaleOut-ProcessServer and $ProcessServers[1] corresponds to the Process Server role on ConfigurationServer

  3. 構成サーバーで設定されているアカウントを識別します。Identify accounts that have been set up on the Configuration Server.

    $AccountHandles = $ASRFabrics[0].FabricSpecificDetails.RunAsAccounts
    #Print the account details
    AccountId AccountName
    --------- -----------
    1         vCenter_account
    2         WindowsAccount
    3         LinuxAccount

    上の出力で、$AccountHandles[0] はアカウント vCenter_account に、$AccountHandles[1] はアカウント WindowsAccount に、$AccountHandles[2] はアカウント LinuxAccount にそれぞれ対応しますFrom the output above $AccountHandles[0] corresponds to the account vCenter_account, $AccountHandles[1] to account WindowsAccount, and $AccountHandles[2] to account LinuxAccount

レプリケーション ポリシーを作成するCreate a replication policy

このステップでは、2 つのレプリケーション ポリシーを作成します。In this step, two replication policies are created. 1 つのポリシーは VMware 仮想マシンを Azure にレプリケートするためのものであり、もう 1 つは Azure で実行しているフェールオーバーされた仮想マシンをオンプレミスの VMware サイトにレプリケートして戻すためのものです。One policy to replicate VMware virtual machines to Azure, and the other to replicate failed over virtual machines running in Azure back to the on-premises VMware site.


Azure Site Recovery のほとんどの操作は非同期に実行されます。Most Azure Site Recovery operations are executed asynchronously. 操作を開始すると、Azure Site Recovery ジョブが送信されて、ジョブ追跡オブジェクトが返されます。When you initiate an operation, an Azure Site Recovery job is submitted and a job tracking object is returned. このジョブ追跡オブジェクトを使って、操作の状態を監視できます。This job tracking object can be used to monitor the status of the operation.

  1. 指定したプロパティを持つ Azure に VMware 仮想マシンをレプリケートするための、ReplicationPolicy という名前のレプリケーション ポリシーを作成します。Create a replication policy named ReplicationPolicy to replicate VMware virtual machines to Azure with the specified properties.

    $Job_PolicyCreate = New-AzRecoveryServicesAsrPolicy -VMwareToAzure -Name "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -ApplicationConsistentSnapshotFrequencyInHours 4 -RPOWarningThresholdInMinutes 60
    # Track Job status to check for completion
    while (($Job_PolicyCreate.State -eq "InProgress") -or ($Job_PolicyCreate.State -eq "NotStarted")){
            sleep 10;
            $Job_PolicyCreate = Get-ASRJob -Job $Job_PolicyCreate
    #Display job status
    Name             : 8d18e2d9-479f-430d-b76b-6bc7eb2d0b3e
    ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/8d18e2d
    Type             :
    JobType          : AddProtectionProfile
    DisplayName      : Create replication policy
    ClientRequestId  : a162b233-55d7-4852-abac-3d595a1faac2 ActivityId: 9895234a-90ea-4c1a-83b5-1f2c6586252a
    State            : Succeeded
    StateDescription : Completed
    StartTime        : 11/24/2017 2:49:24 AM
    EndTime          : 11/24/2017 2:49:23 AM
    TargetObjectId   : ab31026e-4866-5440-969a-8ebcb13a372f
    TargetObjectType : ProtectionProfile
    TargetObjectName : ReplicationPolicy
    AllowedActions   :
    Tasks            : {Prerequisites check for creating the replication policy, Creating the replication policy}
    Errors           : {}
  2. Azure からオンプレミスの VMware サイトへのフェールバックに使うレプリケーション ポリシーを作成します。Create a replication policy to use for failback from Azure to the on-premises VMware site.

    $Job_FailbackPolicyCreate = New-AzRecoveryServicesAsrPolicy -AzureToVMware -Name "ReplicationPolicy-Failback" -RecoveryPointRetentionInHours 24 -ApplicationConsistentSnapshotFrequencyInHours 4 -RPOWarningThresholdInMinutes 60

    $Job_FailbackPolicyCreate のジョブの詳細を使って、操作の完了を追跡します。Use the job details in $Job_FailbackPolicyCreate to track the operation to completion.

    • レプリケーション ポリシーを構成サーバーとマップするための保護コンテナー マッピングを作成します。Create a protection container mapping to map replication policies with the Configuration Server.
    #Get the protection container corresponding to the Configuration Server
    $ProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $ASRFabrics[0]
    #Get the replication policies to map by name.
    $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
    $FailbackReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy-Failback"
    # Associate the replication policies to the protection container corresponding to the Configuration Server.
    $Job_AssociatePolicy = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PolicyAssociation1" -PrimaryProtectionContainer $ProtectionContainer -Policy $ReplicationPolicy
    # Check the job status
    while (($Job_AssociatePolicy.State -eq "InProgress") -or ($Job_AssociatePolicy.State -eq "NotStarted")){
            sleep 10;
            $Job_AssociatePolicy = Get-ASRJob -Job $Job_AssociatePolicy
    <# In the protection container mapping used for failback (replicating failed over virtual machines
       running in Azure, to the primary VMware site.) the protection container corresponding to the
       Configuration server acts as both the Primary protection container and the recovery protection
     $Job_AssociateFailbackPolicy = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "FailbackPolicyAssociation" -PrimaryProtectionContainer $ProtectionContainer -RecoveryProtectionContainer $ProtectionContainer -Policy $FailbackReplicationPolicy
    # Check the job status
    while (($Job_AssociateFailbackPolicy.State -eq "InProgress") -or ($Job_AssociateFailbackPolicy.State -eq "NotStarted")){
            sleep 10;
            $Job_AssociateFailbackPolicy = Get-ASRJob -Job $Job_AssociateFailbackPolicy

vCenter サーバーを追加して VM を検出するAdd a vCenter server and discover VMs

IP アドレスまたはホスト名で vCenter サーバーを追加します。Add a vCenter Server by IP address or hostname. -port パラメーターは vCenter サーバー上の接続先ポート、 -Name パラメーターは vCenter サーバーに使用するフレンドリ名、 -Account パラメーターは vCenter サーバーによって管理される仮想マシンの検出に使う構成サーバー上のアカウント ハンドルを指定します。The -port parameter specifies the port on the vCenter server to connect to, -Name parameter specifies a friendly name to use for the vCenter server, and the -Account parameter specifies the account handle on the Configuration server to use to discover virtual machines managed by the vCenter server.

# The $AccountHandles[0] variable holds details of vCenter_account

$Job_AddvCenterServer = New-AzRecoveryServicesAsrvCenter -Fabric $ASRFabrics[0] -Name "MyvCenterServer" -IpOrHostName "" -Account $AccountHandles[0] -Port 443

#Wait for the job to complete and ensure it completed successfully

while (($Job_AddvCenterServer.State -eq "InProgress") -or ($Job_AddvCenterServer.State -eq "NotStarted")) {
        sleep 30;
        $Job_AddvCenterServer = Get-ASRJob -Job $Job_AddvCenterServer
Name             : 0f76f937-f9cf-4e0e-bf27-10c9d1c252a4
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/0f76f93
Type             :
JobType          : DiscoverVCenter
DisplayName      : Add vCenter server
ClientRequestId  : a2af8892-5686-4d64-a528-10445bc2f698 ActivityId: 7ec05aad-002e-4da0-991f-95d0de7a9f3a
State            : Succeeded
StateDescription : Completed
StartTime        : 11/24/2017 2:41:47 AM
EndTime          : 11/24/2017 2:44:37 AM
TargetObjectId   :
TargetObjectType : VCenter
TargetObjectName : MyvCenterServer
AllowedActions   :
Tasks            : {Adding vCenter server}
Errors           : {}

レプリケーションのストレージ アカウントを作成するCreate storage accounts for replication

マネージド ディスクに書き込むには、Powershell Az.RecoveryServices モジュール 2.0.0 以降を使用します。To write to managed disk, use Powershell Az.RecoveryServices module 2.0.0 onwards. 必要なのは、ログ ストレージ アカウントの作成のみです。It only requires creation of a log storage account. このアカウントは、一時ログの格納にのみ使用されるため、標準のアカウントの種類と LRS 冗長性を使用することを推奨します。It is recommended to use a standard account type and LRS redundancy since it is used to store only temporary logs. コンテナーと同じ Azure リージョンにストレージ アカウントが作成されることを確認します。Ensure that the storage account is created in the same Azure region as the vault.

2.0.0 より以前のバージョンの Az.RecoveryServices モジュールを使用する場合は、次の手順を使用してストレージ アカウントを作成します。If you are using a version of Az.RecoveryServices module older than 2.0.0, use the following steps to create storage accounts. これらのストレージ アカウントは、後で仮想マシンのレプリケートに使われます。These storage accounts are used later to replicate virtual machines. コンテナーと同じ Azure リージョンにストレージ アカウントが作成されることを確認します。Ensure that the storage accounts are created in the same Azure region as the vault. 既存のストレージ アカウントをレプリケーションに使う場合は、このステップを省略できます。You can skip this step if you plan to use an existing storage account for replication.


オンプレミスの仮想マシンを Premium Storage アカウントにレプリケートするときは、追加の Standard Storage アカウント (ログ ストレージ アカウント) を指定する必要があります。While replicating on-premises virtual machines to a premium storage account, you need to specify an additional standard storage account (log storage account). ログ ストレージ アカウントは、Premium Storage ターゲットでログを適用できるようになるまでの中間ストアとして、レプリケーション ログを保持します。The log storage account holds replication logs as an intermediate store until the logs can be applied on the premium storage target.

$PremiumStorageAccount = New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "premiumstorageaccount1" -Location "East Asia" -SkuName Premium_LRS

$LogStorageAccount = New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "logstorageaccount1" -Location "East Asia" -SkuName Standard_LRS

$ReplicationStdStorageAccount= New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "replicationstdstorageaccount1" -Location "East Asia" -SkuName Standard_LRS

VMware VM をレプリケートするReplicate VMware VMs

仮想マシンが vCenter サーバーから検出されるまでに約 15 - 20 分かかります。It takes about 15-20 minutes for virtual machines to be discovered from the vCenter server. 検出が済むと、検出された仮想マシンごとに保護可能項目オブジェクトが Azure Site Recovery に作成されます。Once discovered, a protectable item object is created in Azure Site Recovery for each discovered virtual machine. このステップでは、検出された 3 つの仮想マシンが、前のステップで作成された Azure ストレージ アカウントにレプリケートされます。In this step, three of the discovered virtual machines are replicated to the Azure Storage accounts created in the previous step.

検出された仮想マシンを保護するには、以下の詳細が必要です。You will need the following details to protect a discovered virtual machine:

  • レプリケートする保護可能項目。The protectable item to be replicated.
  • 仮想マシンをレプリケートするストレージ アカウント (ストレージ アカウントにレプリケートする場合のみ)。The storage account to replicate the virtual machine to (only if you are replicating to storage account).
  • Premium ストレージ アカウントまたはマネージド ディスクに仮想マシンを保護するには、ログ ストレージが必要です。A log storage is needed to protect virtual machines to a premium storage account or to a managed disk.
  • レプリケーションに使われるプロセス サーバー。The Process Server to be used for replication. 利用可能なプロセス サーバーの一覧が取得されて、$ProcessServers[0] (ScaleOut-ProcessServer) 変数および $ProcessServers[1] (ConfigurationServer) 変数に格納されています。The list of available process servers has been retrieved and saved in the $ProcessServers[0] (ScaleOut-ProcessServer) and $ProcessServers[1] (ConfigurationServer) variables.
  • マシンにモビリティ サービス ソフトウェアをプッシュ インストールするために使うアカウント。The account to use to push-install the Mobility service software onto the machines. 利用可能なアカウントの一覧が取得されて、$AccountHandles 変数に格納されています。The list of available accounts has been retrieved and stored in the $AccountHandles variable.
  • レプリケーションに使われるレプリケーション ポリシーの保護コンテナー マッピング。The protection container mapping for the replication policy to be used for replication.
  • フェールオーバー時に仮想マシンを作成する必要があるリソース グループ。The resource group in which virtual machines must be created on failover.
  • 必要に応じて、フェールオーバーされた仮想マシンを接続する必要がある Azure 仮想ネットワークとサブネット。Optionally, the Azure virtual network and subnet to which the failed over virtual machine should be connected.

それでは、次の表で指定されている設定を使って、以下の仮想マシンをレプリケートしますNow replicate the following virtual machines using the settings specified in this table

仮想マシンVirtual machine プロセス サーバーProcess Server ストレージ アカウントStorage Account ログ ストレージ アカウントLog Storage account ポリシーPolicy モビリティ サービス インストール用アカウントAccount for Mobility service installation ターゲット リソース グループTarget resource group ターゲット仮想ネットワークTarget virtual network ターゲット サブネットTarget subnet
CentOSVM1CentOSVM1 ConfigurationServerConfigurationServer 該当なしN/A logstorageaccount1logstorageaccount1 ReplicationPolicyReplicationPolicy LinuxAccountLinuxAccount VMwareDRToAzurePsVMwareDRToAzurePs ASR-vnetASR-vnet Subnet-1Subnet-1
Win2K12VM1Win2K12VM1 ScaleOut-ProcessServerScaleOut-ProcessServer premiumstorageaccount1premiumstorageaccount1 logstorageaccount1logstorageaccount1 ReplicationPolicyReplicationPolicy WindowsAccountWindowsAccount VMwareDRToAzurePsVMwareDRToAzurePs ASR-vnetASR-vnet Subnet-1Subnet-1
CentOSVM2CentOSVM2 ConfigurationServerConfigurationServer replicationstdstorageaccount1replicationstdstorageaccount1 該当なしN/A ReplicationPolicyReplicationPolicy LinuxAccountLinuxAccount VMwareDRToAzurePsVMwareDRToAzurePs ASR-vnetASR-vnet Subnet-1Subnet-1

#Get the target resource group to be used
$ResourceGroup = Get-AzResourceGroup -Name "VMwareToAzureDrPs"

#Get the target virtual network to be used
$RecoveryVnet = Get-AzVirtualNetwork -Name "ASR-vnet" -ResourceGroupName "asrrg" 

#Get the protection container mapping for replication policy named ReplicationPolicy
$PolicyMap  = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $ProtectionContainer | where PolicyFriendlyName -eq "ReplicationPolicy"

#Get the protectable item corresponding to the virtual machine CentOSVM1
$VM1 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "CentOSVM1"

# Enable replication for virtual machine CentOSVM1 using the Az.RecoveryServices module 2.0.0 onwards to replicate to managed disks
# The name specified for the replicated item needs to be unique within the protection container. Using a random GUID to ensure uniqueness
$Job_EnableReplication1 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM1 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -logStorageAccountId $LogStorageAccount.Id -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

# Alternatively, if the virtual machine CentOSVM1 has CMK enabled disks, enable replication using Az module 3.3.0 onwards as below
# $diskID is the Disk Encryption Set ID to be used for all replica managed disks and target managed disks in the target region
$Job_EnableReplication1 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM1 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -logStorageAccountId -DiskEncryptionSetId $diskId $LogStorageAccount.Id -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

#Get the protectable item corresponding to the virtual machine Win2K12VM1
$VM2 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "Win2K12VM1"

# Enable replication for virtual machine Win2K12VM1
$Job_EnableReplication2 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM2 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -RecoveryAzureStorageAccountId $PremiumStorageAccount.Id -LogStorageAccountId $LogStorageAccount.Id -ProcessServer $ProcessServers[0] -Account $AccountHandles[1] -RecoveryResourceGroupId $ResourceGroup.ResourceId -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

#Get the protectable item corresponding to the virtual machine CentOSVM2
$VM3 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "CentOSVM2"

# Enable replication for virtual machine CentOSVM2
$Job_EnableReplication3 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM3 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -RecoveryAzureStorageAccountId $ReplicationStdStorageAccount.Id  -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

レプリケーション有効化ジョブが正常に完了すると、仮想マシンの初期レプリケーションが開始されます。Once the enable replication job completes successfully, initial replication is started for the virtual machines. レプリケートされるデータの量およびレプリケーションに利用可能な帯域幅によっては、初期レプリケーションにしばらく時間がかかる可能性があります。Initial replication may take a while depending on the amount of data to be replicated and the bandwidth available for replication. 初期レプリケーションが完了した後、仮想マシンは保護された状態に移行します。After initial replication completes, the virtual machine moves to a protected state. 仮想マシンが保護された状態に達した後は、仮想マシンのテスト フェールオーバーを実行したり、復旧計画に仮想マシンを追加したりできます。Once the virtual machine reaches a protected state you can perform a test failover for the virtual machine, add it to recovery plans etc.

Get-ASRReplicationProtectedItem コマンドレットを使って、仮想マシンのレプリケーションの状態と正常性を確認することができます。You can check the replication state and replication health of the virtual machine with the Get-ASRReplicationProtectedItem cmdlet.

Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $ProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth
FriendlyName ProtectionState                 ReplicationHealth
------------ ---------------                 -----------------
CentOSVM1    Protected                       Normal
CentOSVM2    InitialReplicationInProgress    Normal
Win2K12VM1   Protected                       Normal

フェールオーバー設定を構成するConfigure failover settings

保護されたマシンのフェールオーバーの設定は、Set-ASRReplicationProtectedItem コマンドレットを使って更新できます。Failover settings for protected machines can be updated using the Set-ASRReplicationProtectedItem cmdlet. このコマンドレットでは次のような設定を更新できます。Some of the settings that can be updated through this cmdlet are:

  • フェールオーバー時に作成される仮想マシンの名前Name of the virtual machine to be created on failover
  • フェールオーバー時に作成される仮想マシンの VM サイズVM size of the virtual machine to be created on failover
  • フェールオーバー時に仮想マシンの NIC を接続する必要がある Azure 仮想ネットワークとサブネットAzure virtual network and subnet that the NICs of the virtual machine should be connected to on failover
  • マネージド ディスクへのフェールオーバーFailover to managed disks
  • Azure Hybrid Use Benefit の適用Apply Azure Hybrid Use Benefit
  • フェールオーバー時に仮想マシンに割り当てられるターゲット仮想ネットワークからの静的 IP アドレスの割り当て。Assign a static IP address from the target virtual network to be assigned to the virtual machine on failover.

この例では、フェールオーバー時に仮想マシン Win2K12VM1 に対して作成される仮想マシンの VM サイズを更新し、フェールオーバー時に仮想マシンがマネージド ディスクを使うことを指定します。In this example, we update the VM size of the virtual machine to be created on failover for the virtual machine Win2K12VM1 and specify that the virtual machine use managed disks on failover.

$ReplicatedVM1 = Get-AzRecoveryServicesAsrReplicationProtectedItem -FriendlyName "Win2K12VM1" -ProtectionContainer $ProtectionContainer

Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $ReplicatedVM1 -Size "Standard_DS11" -UseManagedDisk True
Name             : cafa459c-44a7-45b0-9de9-3d925b0e7db9
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/cafa459
Type             :
JobType          : UpdateVmProperties
DisplayName      : Update the virtual machine
ClientRequestId  : b0b51b2a-f151-4e9a-a98e-064a5b5131f3 ActivityId: ac2ba316-be7b-4c94-a053-5363f683d38f
State            : InProgress
StateDescription : InProgress
StartTime        : 11/24/2017 2:04:26 PM
EndTime          :
TargetObjectId   : 88bc391e-d091-11e7-9484-000c2955bb50
TargetObjectType : ProtectionEntity
TargetObjectName : Win2K12VM1
AllowedActions   :
Tasks            : {Update the virtual machine properties}
Errors           : {}

テスト フェールオーバーの実行Run a test failover

  1. 次のように DR ドリル (テスト フェールオーバー) を実行します。Run a DR drill (test failover) as follows:

    #Test failover of Win2K12VM1 to the test virtual network "V2TestNetwork"
    #Get details of the test failover virtual network to be used
    TestFailovervnet = Get-AzVirtualNetwork -Name "V2TestNetwork" -ResourceGroupName "asrrg" 
    #Start the test failover operation
    $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicatedVM1 -AzureVMNetworkId $TestFailovervnet.Id -Direction PrimaryToRecovery
  2. テスト フェールオーバー ジョブが正常に完了すると、名前に " -Test" というサフィックスが付いた仮想マシン (この例では Win2K12VM1-Test) が、Azure に作成されます。Once the test failover job completes successfully, you will notice that a virtual machine suffixed with "-Test" (Win2K12VM1-Test in this case) to its name is created in Azure.

  3. テスト フェールオーバーが行われた仮想マシンに接続して、テスト フェールオーバーを検証できるようになります。You can now connect to the test failed over virtual machine, and validate the test failover.

  4. Start-ASRTestFailoverCleanupJob コマンドレットを使って、テスト フェールオーバーをクリーンアップします。Clean up the test failover using the Start-ASRTestFailoverCleanupJob cmdlet. この操作により、テスト フェールオーバー操作の一部として作成された仮想マシンが削除されます。This operation deletes the virtual machine created as part of the test failover operation.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicatedVM1

Azure にフェールオーバーするFail over to Azure

このステップでは、仮想マシン Win2K12VM1 を特定の復旧ポイントにフェールオーバーします。In this step, we fail over the virtual machine Win2K12VM1 to a specific recovery point.

  1. フェールオーバーに使用することができる復旧ポイントの一覧を取得します。Get a list of available recovery points to use for the failover:

    # Get the list of available recovery points for Win2K12VM1
    $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicatedVM1
    "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[0].RecoveryPointTime
    CrashConsistent 11/24/2017 5:28:25 PM
    #Start the failover job
    $Job_Failover = Start-AzRecoveryServicesAsrUnplannedFailoverJob -ReplicationProtectedItem $ReplicatedVM1 -Direction PrimaryToRecovery -RecoveryPoint $RecoveryPoints[0]
    do {
            $Job_Failover = Get-ASRJob -Job $Job_Failover;
            sleep 60;
    } while (($Job_Failover.State -eq "InProgress") -or ($JobFailover.State -eq "NotStarted"))
  2. フェールオーバーが正常に完了すると、フェールオーバー操作をコミットし、Azure からオンプレミスの VMware サイトへのレプリケーションの反転を設定できます。Once failed over successfully, you can commit the failover operation, and set up reverse replication from Azure back to the on-premises VMware site.

次のステップNext steps

Azure Site Recovery PowerShell リファレンスを使用して、他のタスクを自動化する方法について学びます。Learn how to automate more tasks using the Azure Site Recovery PowerShell reference.