Ferramenta de failback de Azure Site RecoveryAzure Site Recovery failback tool

Em um ambiente conectado, você pode usar Azure Site Recovery para proteger máquinas virtuais (VMs) em execução no Hub Azure Stack.In a connected environment, you can use Azure Site Recovery to protect virtual machines (VMs) running on 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.This article describes how to set up the environment, and how Site Recovery helps contribute to the overall business continuity and disaster recovery strategy for these workloads.

No caso de uma interrupção, o operador Hub Azure Stack passa pelo procedimento de failover ; Quando Azure Stack Hub estiver funcionando novamente, ele passará por um processo de failback .In the event of an outage, the Azure Stack Hub operator goes through the failover procedure; once Azure Stack Hub is up and running again, they go through a failback process. O processo de failover é descrito neste site Recovery artigo, mas o processo de failback envolve várias etapas manuais:The failover process is described in this Site Recovery article, but the failback process involves several manual steps:

  1. Pare a VM em execução no Azure.Stop the VM running in Azure.
  2. Baixe os VHDs.Download the VHDs.
  3. Carregue os VHDs para Azure Stack Hub.Upload the VHDs to Azure Stack Hub.
  4. Recrie as VMs.Recreate the VMs.
  5. Por fim, inicie essa VM em execução no Hub Azure Stack.Finally, start that VM running on Azure Stack Hub.

Como esse processo pode ser propenso a erros e demorado, criamos scripts para ajudar a acelerar e automatizar esse processo.As this process can be error prone and time consuming, we've built scripts to help accelerate and automate this process.

Observação

A ferramenta de Azure Site Recovery requer os módulos AZ Hub Azure Stack.The Azure Site Recovery tool requires the Azure Stack Hub Az modules. Se você estiver executando os módulos de AzureRM do hub de Azure Stack, será necessário atualizar sua estação de trabalho ou usar a ferramenta de failback de Azure Site Recovery em um ambiente isolado com os módulos AZ.If you are running the Azure Stack Hub AzureRM modules, you will need to upgrade your workstation or use the Azure Site Recovery failback tool in an isolated environment with the Az modules. Para obter mais informações, consulte instalar o PowerShell AZ Module para Azure Stack Hub.For more information see Install PowerShell Az module for Azure Stack Hub.

Procedimento de failbackFailback procedure

O processo de failback automático contém três partes principais:The automated failback process contains three main parts:

  • Copy-AzSiteRecoveryVmVHD:Copy-AzSiteRecoveryVmVHD:

    • Desliga a VM do Azure.Shuts down the Azure VM.
    • Prepara a exportação de disco.Prepares the disk export.
    • Copia o disco por meio de AzCopy ou StorageBlobCopy.Copies the disk either through AzCopy or StorageBlobCopy.
    • Carrega o disco para uma conta de armazenamento de Hub Azure Stack.Uploads the disk to an Azure Stack Hub storage account.
  • Depois que o disco é copiado, há dois cenários cobertos por Prepare-AzSiteRecoveryVMFailBack:Once the disk is copied, there are two scenarios covered through Prepare-AzSiteRecoveryVMFailBack:

    • O Hub de Azure Stack original foi recuperado.The original Azure Stack Hub has recovered. A VM original ainda existe e você só precisa alterar seus VHDs.The original VM still exists, and you only need to change its VHDs.
    • No caso de um desastre, se as VMs originais forem perdidas, você deverá recompilar toda a VM.In the case of a disaster, if the original VMs are lost, you must rebuild the entire VM.

    Esse procedimento aborda os dois cenários criando o modelo e o arquivo de parâmetro necessário.This procedure covers both scenarios by creating the template and the parameter file required.

  • A implantação real do modelo de Azure Resource Manager usando o arquivo de parâmetro e implanta/cria a VM no Hub Azure Stack.The actual deployment of the Azure Resource Manager template using the parameter file, and deploy/create the VM on Azure Stack Hub.

Pré-requisitosPrerequisites

Os seguintes pré-requisitos são necessários para executar o procedimento de failback:The following prerequisites are required to perform the failback procedure:

Etapa 1: copiar o blob do Azure para o Hub Azure StackStep 1: Copy blob from Azure to 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 Hub Azure Stack.Call the Copy-AzSiteRecoveryVmVHD PowerShell cmdlet to stop the Azure VM, download the VHDs from Azure, and upload them to Azure Stack Hub. Por exemplo: For example:

$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:Note the following considerations:

  • Este exemplo usa $uris para manter o SourceDiskVhdUris valor usado na etapa 2.This example uses $uristo hold the SourceDiskVhdUris value used in step 2.

  • O -SourceVM parâmetro é um objeto de VM recuperado pelo Get-AzVM .The -SourceVM parameter is a VM object retrieved by Get-AzVM.

    • Esta é a VM protegida do hub de Azure Stack que passou por failover no Azure.This is the protected VM from Azure Stack Hub that was failed over on Azure.
    • Não importa se a VM está em execução, pois o script desliga a VM.It doesn't matter if the VM is running, as the script shuts down the VM. No entanto, é recomendável desativá-lo explicitamente e parar os serviços dentro da VM adequadamente.However, it is recommended that you explicitly shut it down and stop the services inside the VM accordingly.
  • Você pode fornecer uma chave de conta (usando TargetStorageAccountKey ) ou o token SAS (usando TargetStorageAccountSasToken ) da conta de armazenamento no lado do Hub Azure Stack.You can provide either an account key (using TargetStorageAccountKey) or the SAS token (using TargetStorageAccountSasToken) of the storage account on the Azure Stack Hub side. O token SAS deve ser criado no nível da conta de armazenamento, com pelo menos as seguintes permissões:The SAS token must be created at the storage account level, with at least the following permissions:

    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.com , ou o nome do ambiente do hub de Azure Stack, como AzureStackTenant .You can provide either the storage endpoint, which includes the region and FQDN; for example, regionname.azurestack.microsoft.com, or the environment name of the Azure Stack Hub, such as AzureStackTenant. Se o nome do ambiente for usado, ele deverá ser listado usando Get-AzEnvironment.If the environment name is used, it should be listed using Get-AzEnvironment.

  • Você pode optar por usar AzCopy ou AzStorageBlobCopy para copiar o VHD do Azure para Azure Stack Hub.You can choose to use AzCopy or AzStorageBlobCopy to copy the VHD from Azure to Azure Stack Hub. O AzCopy é mais rápido, mas ele deve baixar arquivos VHD em uma pasta local primeiro:AzCopy is faster, but it must download VHD files to a local folder first:

    • Para usar o AzCopy, forneça os parâmetros -AzCopyPath e -VhdLocalFolder (o caminho onde os VHDs serão copiados).To use AzCopy, provide the parameters -AzCopyPath and -VhdLocalFolder (the path where the VHDs will be copied).
    • Se não houver espaço suficiente localmente, você poderá optar por copiar o VHD diretamente, sem AzCopy, omitindo os parâmetros -AzCopyPath e -VhdLocalFolder .If there is not enough space locally, you can choose to copy the VHD directly, without AzCopy, by omitting the parameters -AzCopyPath and -VhdLocalFolder. Por padrão, esse comando usa AzStorageBlobCopy para copiar diretamente para a conta de armazenamento de Hub de Azure Stack.By default, this command uses AzStorageBlobCopy to copy directly to the Azure Stack Hub storage account.

Etapa 2: gerar modelos do Resource ManagerStep 2: Generate Resource Manager templates

Depois que o disco for copiado, use o cmdlet Prepare-AzSiteRecoveryVMFailBack para criar o $templateFile e $parameterFile necessário para implantar a VM no Hub de Azure Stack:After the disk is copied, use the Prepare-AzSiteRecoveryVMFailBack cmdlet to create the $templateFile and $parameterFile required to deploy the VM on 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:Note the following considerations:

  • Este exemplo usa -SourceDiskVhdUris como um valor de retorno da etapa 1 (usando $uris ).This example uses -SourceDiskVhdUris as a return value from step 1 (using $uris).

  • Este cmdlet dá suporte a dois cenários:This cmdlet supports two scenarios:

    • Ao especificar -TargetVM , você assume que a VM está ativa no lado do Hub Azure Stack e deseja substituir seus discos pelos mais recentes copiados do Azure.By specifying -TargetVM, you assume that the VM is active on the Azure Stack Hub side, and you want to replace its disks with the latest ones copied from Azure.
    • O script gera um modelo do Resource Manager para implantar essa VM e exclui a VM existente do Hub Azure Stack.The script generates a Resource Manager template to deploy this VM, and deletes the existing VM from Azure Stack Hub.

    Observação

    Excluir a própria VM do hub de Azure Stack não remove os outros objetos (como VNET, grupo de recursos, NSGs).Deleting the Azure Stack Hub VM itself doesn’t remove the other objects (such as VNET, resource group, NSGs). Ele apenas remove o recurso da VM e, em seguida, o modelo é implantado com o -incremental parâmetro.It only removes the VM resource itself, and then the template is deployed with the -incremental parameter.

    • Ao não fornecer o -TargetVM parâmetro, o script supõe que a VM não existe mais no lado do Hub Azure Stack, portanto, o script cria um modelo do Resource Manager para implantar uma VM totalmente nova.By not providing the -TargetVM parameter, the script assumes that the VM no longer exists on the Azure Stack Hub side, so the script creates a Resource Manager template to deploy a completely new VM.
  • Os arquivos de modelo gerados do Resource Manager são colocados em -ArmTemplateDestinationPath e o caminho completo do arquivo de modelo ou arquivo de parâmetro é retornado.The generated Resource Manager template files are placed under -ArmTemplateDestinationPath, and the full path of the template file or parameter file is returned.

  • Se o -TargetVM parâmetro for fornecido, o cmdlet excluirá a VM, para que você possa continuar com as etapas a seguir.If the -TargetVM parameter is provided, the cmdlet deletes the VM, so you can continue with the following steps.

Etapa 3: implantar o modelo do Resource ManagerStep 3: Deploy the Resource Manager template

Neste ponto, o VHD é carregado para Azure Stack Hub e o modelo do Resource Manager e os respectivos arquivos de parâmetro são criados.At this point, the VHD is uploaded to Azure Stack Hub, and the Resource Manager template and respective parameter files are created. Tudo o que resta é implantar a VM no Hub Azure Stack.All that's left is to deploy the VM on Azure Stack Hub.

Em alguns cenários, talvez você queira editar esse modelo e adicionar, remover ou alterar alguns nomes ou recursos.In some scenarios, you might want to edit this template and add, remove, or change some names or resources. Isso é permitido, pois você pode editar e ajustar o modelo conforme necessário.This is permitted, as you can edit and adjust the template as needed.

Quando estiver pronto, e depois de confirmar os recursos no modelo do Resource Manager forem os esperados, você poderá chamar o cmdlet New-AzResourceGroupDeployment para implantar os recursos.When ready, and after confirming the resources in the Resource Manager template are as expected, you can call the New-AzResourceGroupDeployment cmdlet to deploy the resources. Por exemplo: For example:

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

Observe as seguintes considerações:Note the following considerations:

  • O -ResourceGroupName parâmetro deve ser um grupo de recursos existente.The -ResourceGroupName parameter should be an existing resource group.
  • Os -TemplateFile -TemplateParameterFile parâmetros e são provenientes dos valores retornados na etapa 2.The -TemplateFile and -TemplateParameterFile parameters come from the return values in step 2.

Próximas etapasNext steps