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:
- Interrompa a VM em execução no Azure.
- Baixe os VHDs.
- Carregue os VHDs no Azure Stack Hub.
- Recrie as VMs.
- 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:
Importe o módulo FailbackTool.psm1 no PowerShell.
Siga o procedimento neste artigo para instalar o módulo Az para o Azure Stack Hub.
(opcional) Baixe o AzCopy versão 10.
- Copiar o blob usando o AzCopy é mais rápido, mas requer espaço extra em disco local para armazenar temporariamente o arquivo de blob.
- Se o AzCopy não for usado, a cópia do VHD será feita usando AzStorageBlobCopy. Isso significa que nenhum armazenamento local é necessário, mas o processo leva mais tempo.
Acesso aos recursos no portal do Azure e acesso para criar esses recursos no Azure Stack Hub.
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
$uris
para manter oSourceDiskVhdUris
valor usado na etapa 2.O
-SourceVM
parâmetro é um objeto de VM recuperado porGet-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 (usandoTargetStorageAccountSasToken
) 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: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 Azure Stack Hub, comoAzureStackTenant
. 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.
- Para usar o AzCopy, forneça os parâmetros
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.
- Ao especificar
Os arquivos de modelo de Resource Manager gerados são colocados em
-ArmTemplateDestinationPath
e 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.