Ferramenta de failback do Azure Site Recovery

Em um ambiente conectado, você pode usar o Azure Site Recovery para proteger VMs (máquinas virtuais) em execução no Azure Stack Hub. Este artigo descreve como configurar o ambiente e como Site Recovery ajuda a contribuir para a estratégia geral de continuidade dos negócios e recuperação de desastres para essas cargas de trabalho.

Em caso de interrupção, o operador do Azure Stack Hub passa pelo procedimento de failover ; depois que o Azure Stack Hub estiver funcionando novamente, eles passarão por um processo de failback . O processo de failover é descrito neste artigo Site Recovery, mas o processo de failback envolve várias etapas manuais:

  1. Interrompa a VM em execução no Azure.
  2. Baixe os VHDs.
  3. Carregue os VHDs no Azure Stack Hub.
  4. Recrie as VMs.
  5. Por fim, inicie essa VM em execução no Azure Stack Hub.

Como esse processo pode ser propenso a erros e demorado, criamos scripts para ajudar a acelerar e automatizar esse processo.

Observação

A ferramenta de Site Recovery do Azure requer os módulos Az do Azure Stack Hub. Se você estiver executando os módulos do AzureRM do Azure Stack Hub, deverá atualizar sua estação de trabalho ou usar a ferramenta de failback do Azure Site Recovery em um ambiente isolado com os módulos Az. Para obter mais informações, consulte Instalar o módulo Az do PowerShell para o Azure Stack Hub.

Procedimento de failback

O processo de failback automatizado contém três main partes:

  • Copy-AzSiteRecoveryVmVHD:

    • Desliga a VM do Azure.
    • Prepara a exportação de disco.
    • Copia o disco por meio de AzCopy ou StorageBlobCopy.
    • Carrega o disco em uma conta de armazenamento do Azure Stack Hub.
  • Depois que o disco é copiado, há dois cenários cobertos por Prepare-AzSiteRecoveryVMFailBack:

    • O Azure Stack Hub original foi recuperado. A VM original ainda existe e você só precisa alterar seus VHDs.
    • No caso de um desastre, se as VMs originais forem perdidas, você deverá recompilar toda a VM.

    Esse procedimento aborda os dois cenários criando o modelo e o arquivo de parâmetro necessário.

  • A implantação real do modelo de Resource Manager do Azure usando o arquivo de parâmetro e implantar/criar a VM no Azure Stack Hub.

Pré-requisitos

Os seguintes pré-requisitos são necessários para executar o procedimento de failback:

Etapa 1: Copiar blob do Azure para o Azure Stack Hub

Chame o cmdlet do PowerShell Copy-AzSiteRecoveryVmVHD para interromper a VM do Azure, baixar os VHDs do Azure e carregá-los no Azure Stack Hub. Por exemplo:

$uris = Copy-AzSiteRecoveryVmVHD `
        -SourceVM $vmOnAzure `
        -TargetStorageAccountName "targetaccountName" `
        -TargetStorageEndpoint "redmond.ext-v.masd.stbtest.microsoft.com" `
        -TargetStorageAccountKey $accountKey `
        -AzCopyPath "C:\azcopy_v10\azcopy.exe" `
        -VhdLocalFolder "C:\tempfolder"

Observe as seguintes considerações:

  • Este exemplo usa $urispara manter o SourceDiskVhdUris valor usado na etapa 2.

  • O -SourceVM parâmetro é um objeto de VM recuperado por Get-AzVM.

    • Essa é a VM protegida do Azure Stack Hub que fez failover no Azure.
    • Não importa se a VM está em execução, pois o script desliga a VM. No entanto, é recomendável que você o desligue explicitamente e interrompa os serviços dentro da VM adequadamente.
  • Você pode fornecer uma chave de conta (usando TargetStorageAccountKey) ou o token SAS (usando TargetStorageAccountSasToken) da conta de armazenamento no lado do Azure Stack Hub. O token SAS deve ser criado no nível da conta de armazenamento, com pelo menos as seguintes permissões:

    Permissões de token SAS

  • Você pode fornecer o ponto de extremidade de armazenamento, que inclui a região e o FQDN; por exemplo, regionname.azurestack.microsoft.comou o nome do ambiente do Azure Stack Hub, como AzureStackTenant. Se o nome do ambiente for usado, ele deverá ser listado usando Get-AzEnvironment.

  • Você pode optar por usar o AzCopy ou o AzStorageBlobCopy para copiar o VHD do Azure para o Azure Stack Hub. O AzCopy é mais rápido, mas deve baixar arquivos VHD em uma pasta local primeiro:

    • Para usar o AzCopy, forneça os parâmetros -AzCopyPath e -VhdLocalFolder (o caminho em que os VHDs serão copiados).
    • Se não houver espaço suficiente localmente, você poderá optar por copiar o VHD diretamente, sem o AzCopy, omitindo os parâmetros -AzCopyPath e -VhdLocalFolder. Por padrão, esse comando usa AzStorageBlobCopy para copiar diretamente para a conta de armazenamento do Azure Stack Hub.

Etapa 2: Gerar modelos de Resource Manager

Depois que o disco for copiado, use o cmdlet Prepare-AzSiteRecoveryVMFailBack para criar o $templateFile e $parameterFile necessário para implantar a VM no Azure Stack Hub:

$templateFile, $parameterFile = Prepare-AzSiteRecoveryVMFailBack `
                                -SourceContextName "PublicAzure" `
                                -SourceVM $vmOnAzure `
                                -SourceDiskVhdUris $uris `
                                -TargetResourceLocation "redmond" `
                                -ArmTemplateDestinationPath "C:\ARMtemplates" `
                                -TargetVM $vmOnHub `
                                -TargetContextName "AzureStack"

Observe as seguintes considerações:

  • Este exemplo usa -SourceDiskVhdUris como um valor retornado da etapa 1 (usando $uris).

  • Esse cmdlet dá suporte a dois cenários:

    • Ao especificar -TargetVM, você assume que a VM está ativa no lado do Azure Stack Hub e deseja substituir seus discos pelos mais recentes copiados do Azure.
    • O script gera um modelo de Resource Manager para implantar essa VM e exclui a VM existente do Azure Stack Hub.

    Observação

    Excluir a VM do Azure Stack Hub em si não remove os outros objetos (como VNET, grupo de recursos, NSGs). Ele remove apenas o próprio recurso de VM e, em seguida, o modelo é implantado com o -incremental parâmetro .

    • Ao não fornecer o -TargetVM parâmetro , o script pressupõe que a VM não existe mais no lado do Azure Stack Hub, portanto, o script cria um modelo Resource Manager para implantar uma VM completamente nova.
  • Os arquivos de modelo de Resource Manager gerados são colocados em -ArmTemplateDestinationPathe o caminho completo do arquivo de modelo ou arquivo de parâmetro é retornado.

  • Se o -TargetVM parâmetro for fornecido, o cmdlet excluirá a VM, para que você possa continuar com as etapas a seguir.

Etapa 3: Implantar o modelo de Resource Manager

Neste ponto, o VHD é carregado no Azure Stack Hub e o modelo de Resource Manager e os respectivos arquivos de parâmetro são criados. Tudo o que resta é implantar a VM no Azure Stack Hub.

Em alguns cenários, talvez você queira editar esse modelo e adicionar, remover ou alterar alguns nomes ou recursos. Isso é permitido, pois você pode editar e ajustar o modelo conforme necessário.

Quando estiver pronto e depois de confirmar que os recursos no modelo Resource Manager são conforme o esperado, você pode chamar o cmdlet New-AzResourceGroupDeployment para implantar os recursos. Por exemplo:

New-AzResourceGroupDeployment `
  -Name "Failback" `
  -ResourceGroupName "failbackrg" `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile `
  -Mode Incremental

Observe as seguintes considerações:

  • O -ResourceGroupName parâmetro deve ser um grupo de recursos existente.
  • Os -TemplateFile parâmetros e -TemplateParameterFile vêm dos valores retornados na etapa 2.

Próximas etapas