Configurar a recuperação após desastre de VMs do VMware para o Azure com o PowerShell

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planeje de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

Neste artigo, você verá como replicar e fazer failover de máquinas virtuais VMware para o Azure usando o Azure PowerShell.

Sabe como:

  • Crie um cofre dos Serviços de Recuperação e defina o contexto do cofre.
  • Valide o registro do servidor no vault.
  • Configure a replicação, incluindo uma política de replicação. Adicione seu servidor vCenter e descubra VMs.
  • Adicione um servidor vCenter e descubra
  • Crie contas de armazenamento para armazenar logs ou dados de replicação e replique as VMs.
  • Executar uma ativação pós-falha. Configure as configurações de failover, execute uma configuração para replicar máquinas virtuais.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Antes de começar:

Iniciar sessão no Azure

Faça logon em sua assinatura do Azure usando o cmdlet Connect-AzAccount:

Connect-AzAccount

Selecione a assinatura do Azure para a qual você deseja replicar suas máquinas virtuais VMware. Use o cmdlet Get-AzSubscription para obter a lista de assinaturas do Azure às quais você tem acesso. Selecione a assinatura do Azure com a qual trabalhar usando o cmdlet Select-AzSubscription.

Select-AzSubscription -SubscriptionName "ASR Test Subscription"

Configurar um cofre dos Serviços de Recuperação

  1. Crie um grupo de recursos no qual criar o cofre dos Serviços de Recuperação. No exemplo a seguir, o grupo de recursos é chamado VMwareDRtoAzurePS e é criado na região Ásia Oriental.

    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. Crie um cofre de serviços de recuperação. No exemplo a seguir, o cofre de serviços de recuperação é chamado VMwareDRToAzurePs e é criado na região Ásia Oriental e no grupo de recursos criado na etapa anterior.

    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. Transfira a chave de registo do cofre para o cofre. A chave de registro do vault é usada para registrar o Servidor de Configuração local nesse vault. O registro faz parte do processo de instalação do software Configuration Server.

    #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\"
    
    FilePath
    --------
    C:\Work\VMwareDRToAzurePs_2017-11-23T19-52-34.VaultCredentials
    
  4. Use a chave de registro do cofre baixada e siga as etapas a seguir nos artigos para concluir a instalação e o registro do Servidor de Configuração.

Definir o contexto do cofre

Defina o contexto do vault usando o cmdlet Set-ASRVaultContext. Uma vez definidas, as operações subsequentes do Azure Site Recovery na sessão do PowerShell são executadas no contexto do cofre selecionado.

Gorjeta

O módulo PowerShell do Azure Site Recovery (módulo Az.RecoveryServices) vem com aliases fáceis de usar para a maioria dos cmdlets. Os cmdlets no módulo assumem a forma Operation-AzRecoveryServicesAsr<> Object> e têm aliases equivalentes que assumem a forma <Operation-ASR>< Object.>< Você pode substituir os aliases de cmdlet para facilitar o uso.

No exemplo a seguir, os detalhes do vault da variável $vault são usados para especificar o contexto do vault para a sessão do PowerShell.

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

Como alternativa ao cmdlet Set-ASRVaultContext, também é possível usar o cmdlet Import-AzRecoveryServicesAsrVaultSettingsFile para definir o contexto do vault. Especifique o caminho no qual o arquivo de chave de registro do vault está localizado como o parâmetro -path para o cmdlet Import-AzRecoveryServicesAsrVaultSettingsFile. Por exemplo:

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

As seções subsequentes deste artigo pressupõem que o contexto do cofre para operações do Azure Site Recovery foi definido.

Validar o registo do cofre

Para este exemplo, temos os seguintes requisitos:

  • Um servidor de configuração (ConfigurationServer) foi registrado neste cofre.
  • Um servidor de processo extra (ScaleOut-ProcessServer) foi registrado no ConfigurationServer
  • Contas (vCenter_account, WindowsAccount, LinuxAccount) foram configuradas no servidor de configuração. Essas contas são usadas para adicionar o servidor vCenter, descobrir máquinas virtuais e instalar por push o software do serviço de mobilidade em servidores Windows e Linux que serão replicados.
  1. Os servidores de configuração registrados são representados por um objeto de malha no Site Recovery. Obtenha a lista de objetos de malha no vault e identifique o servidor de configuração.

    # Verify that the Configuration server is successfully registered to the vault
    $ASRFabrics = Get-AzRecoveryServicesAsrFabric
    $ASRFabrics.count
    
    1
    
    #Print details of the Configuration Server
    $ASRFabrics[0]
    
    Name                  : 2c33d710a5ee6af753413e97f01e314fc75938ea4e9ac7bafbf4a31f6804460d
    FriendlyName          : ConfigurationServer
    ID                    : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationFabrics
                            /2c33d710a5ee6af753413e97f01e314fc75938ea4e9ac7bafbf4a31f6804460d
    Type                  : Microsoft.RecoveryServices/vaults/replicationFabrics
    FabricType            : VMware
    SiteIdentifier        : ef7a1580-f356-4a00-aa30-7bf80f952510
    FabricSpecificDetails : Microsoft.Azure.Commands.RecoveryServices.SiteRecovery.ASRVMWareSpecificDetails
    
  2. Identifique os servidores de processo que podem ser usados para replicar máquinas.

    $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
    

    A partir da saída acima, $ProcessServers[0] corresponde a ScaleOut-ProcessServer e $ProcessServers[1] corresponde à função Process Server em ConfigurationServer

  3. Identifique as contas que foram configuradas no Servidor de Configuração.

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

    Da saída acima $AccountHandles[0] corresponde à conta vCenter_account, $AccountHandles[1] à conta WindowsAccount e $AccountHandles[2] à conta LinuxAccount

Criar uma política de replicação

Nesta etapa, duas políticas de replicação são criadas. Uma política para replicar máquinas virtuais VMware para o Azure e a outra para replicar máquinas virtuais com failover em execução no Azure de volta para o site VMware local.

Nota

A maioria das operações do Azure Site Recovery é executada de forma assíncrona. Quando você inicia uma operação, um trabalho do Azure Site Recovery é enviado e um objeto de controle de trabalho é retornado. Este objeto de rastreamento de trabalho pode ser usado para monitorar o status da operação.

  1. Crie uma política de replicação chamada ReplicationPolicy para replicar máquinas virtuais VMware para o Azure com as propriedades especificadas.

    $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
    $Job_PolicyCreate
    
    Name             : 8d18e2d9-479f-430d-b76b-6bc7eb2d0b3e
    ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/8d18e2d
                       9-479f-430d-b76b-6bc7eb2d0b3e
    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. Crie uma política de replicação para usar para failback do Azure para o site VMware local.

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

    Use os detalhes do trabalho em $Job_FailbackPolicyCreate para acompanhar a operação até a conclusão.

    • Crie um mapeamento de contêiner de proteção para mapear políticas de replicação com o Servidor de Configuração.
    #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
    }
    $Job_AssociatePolicy.State
    
    <# 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
       container
    #>
     $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
    }
    $Job_AssociateFailbackPolicy.State
    
    

Adicione um servidor vCenter e descubra VMs

Adicione um vCenter Server por endereço IP ou nome de host. O parâmetro -port especifica a porta no servidor vCenter à qual se conectar, o parâmetro -Name especifica um nome amigável a ser usado para o servidor vCenter e o parâmetro -Account especifica o identificador de conta no servidor de configuração a ser usado para descobrir máquinas virtuais gerenciadas pelo servidor vCenter.

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

$Job_AddvCenterServer = New-AzRecoveryServicesAsrvCenter -Fabric $ASRFabrics[0] -Name "MyvCenterServer" -IpOrHostName "10.150.24.63" -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
}
$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
                   7-f9cf-4e0e-bf27-10c9d1c252a4
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   : 10.150.24.63
TargetObjectType : VCenter
TargetObjectName : MyvCenterServer
AllowedActions   :
Tasks            : {Adding vCenter server}
Errors           : {}

Criar contas de armazenamento para replicação

Para gravar no disco gerenciado, use o módulo PowerShell Az.RecoveryServices 2.0.0 em diante. Requer apenas a criação de uma conta de armazenamento de log. Recomenda-se usar um tipo de conta padrão e redundância LRS, uma vez que é usado para armazenar apenas logs temporários. Verifique se a conta de armazenamento foi criada na mesma região do Azure que o cofre.

Se você estiver usando uma versão do módulo Az.RecoveryServices anterior à 2.0.0, use as etapas a seguir para criar contas de armazenamento. Essas contas de armazenamento são usadas posteriormente para replicar máquinas virtuais. Certifique-se de que as contas de armazenamento são criadas na mesma região do Azure que o cofre. Você pode ignorar esta etapa se planeja usar uma conta de armazenamento existente para replicação.

Nota

Ao replicar máquinas virtuais locais para uma conta de armazenamento premium, você precisa especificar uma conta de armazenamento padrão adicional (conta de armazenamento de log). A conta de armazenamento de logs mantém os logs de replicação como um armazenamento intermediário até que os logs possam ser aplicados no destino de armazenamento premium.


$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

Replicar VMs VMware

Leva cerca de 15 a 20 minutos para que as máquinas virtuais sejam descobertas a partir do servidor vCenter. Uma vez descoberto, um objeto de item protegível é criado no Azure Site Recovery para cada máquina virtual descoberta. Nesta etapa, três das máquinas virtuais descobertas são replicadas para as contas de Armazenamento do Azure criadas na etapa anterior.

Você precisará dos seguintes detalhes para proteger uma máquina virtual descoberta:

  • O item protegível a ser replicado.
  • A conta de armazenamento para a qual replicar a máquina virtual (somente se você estiver replicando para a conta de armazenamento).
  • Um armazenamento de log é necessário para proteger máquinas virtuais para uma conta de armazenamento premium ou para um disco gerenciado.
  • O Process Server a ser usado para replicação. A lista de servidores de processo disponíveis foi recuperada e salva nas variáveis $ProcessServers[0](ScaleOut-ProcessServer) e $ProcessServers[1](ConfigurationServer).
  • A conta a ser usada para instalar por push o software do serviço de mobilidade nas máquinas. A lista de contas disponíveis foi recuperada e armazenada na variável $AccountHandles.
  • O mapeamento de contêiner de proteção para a política de replicação a ser usada para replicação.
  • O grupo de recursos no qual as máquinas virtuais devem ser criadas no failover.
  • Opcionalmente, a rede virtual do Azure e a sub-rede à qual a máquina virtual com failover deve estar conectada.

Agora replique as seguintes máquinas virtuais usando as configurações especificadas nesta tabela:

Máquina virtual Servidor de processo Conta de Armazenamento Conta de armazenamento de logs Política Conta para instalação do serviço de mobilidade Grupo de recursos de destino Rede virtual de destino Sub-rede de destino
CentOSVM1 ConfigurationServer N/A logstorageaccount1 Política de replicação LinuxConta VMwareDRToAzurePs ASR-vnet Sub-rede-1
Ganhe 2K12VM1 ScaleOut-ProcessServer PremiumStorageAccount1 logstorageaccount1 Política de replicação WindowsAccount VMwareDRToAzurePs ASR-vnet Sub-rede-1
CentOSVM2 ConfigurationServer replicationstdstorageaccount1 N/A Política de replicação LinuxConta VMwareDRToAzurePs ASR-vnet Sub-rede-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"

Quando o trabalho de habilitação de replicação for concluído com êxito, a replicação inicial será iniciada para as máquinas virtuais. A replicação inicial pode demorar um pouco, dependendo da quantidade de dados a serem replicados e da largura de banda disponível para replicação. Após a conclusão da replicação inicial, a máquina virtual passa para um estado protegido. Quando a máquina virtual atingir um estado protegido, você poderá executar um failover de teste para a máquina virtual, adicioná-la aos planos de recuperação, etc.

Você pode verificar o estado de replicação e a integridade da replicação da máquina virtual com o cmdlet Get-ASRReplicationProtectedItem.

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

Definir configurações de failover

As configurações de failover para máquinas protegidas podem ser atualizadas usando o cmdlet Set-ASRReplicationProtectedItem. Algumas das configurações que podem ser atualizadas por meio desse cmdlet são:

  • Nome da máquina virtual a ser criada no failover
  • Tamanho da VM da máquina virtual a ser criada no failover
  • Rede virtual do Azure e sub-rede à qual as NICs da máquina virtual devem ser conectadas no failover
  • Failover para discos gerenciados
  • Aplicar o Benefício de Uso Híbrido do Azure
  • Atribua um endereço IP estático da rede virtual de destino a ser atribuído à máquina virtual no failover.

Neste exemplo, atualizamos o tamanho da VM da máquina virtual a ser criada no failover para a máquina virtual Win2K12VM1 e especificamos que a máquina virtual use discos gerenciados no 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
                   c-44a7-45b0-9de9-3d925b0e7db9
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           : {}

Executar uma ativação pós-falha de teste

  1. Execute um drill de recuperação de desastres (failover de teste) da seguinte maneira:

    #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. Quando o trabalho de failover de teste for concluído com êxito, você notará que uma máquina virtual sufixada com "-Test" (Win2K12VM1-Test neste caso) para seu nome é criada no Azure.

  3. Agora você pode se conectar à máquina virtual com failover de teste e validar o failover de teste.

  4. Limpe o failover de teste usando o cmdlet Start-ASRTestFailoverCleanupJob. Esta operação exclui a máquina virtual criada como parte da operação de failover de teste.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicatedVM1
    

Ativação pós-falha para o Azure

Nesta etapa, fazemos failover da máquina virtual Win2K12VM1 para um ponto de recuperação específico.

  1. Obtenha uma lista de pontos de recuperação disponíveis para usar no 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"))
    $Job_Failover.State
    
    Succeeded
    
  2. Após o failover bem-sucedido, você pode confirmar a operação de failover e configurar a replicação reversa do Azure de volta para o site VMware local.

Próximos passos

Saiba como automatizar mais tarefas usando a referência do PowerShell do Azure Site Recovery.