Exportar/copiar instantâneos gerenciados como VHD para uma conta de armazenamento em outa região com o PowerShell
Esse script exporta um instantâneo gerenciado para uma conta de armazenamento em outra região. Primeiro, ele gera o URI de SAS do instantâneo e, em seguida, usa-o para copiá-lo para uma conta de armazenamento em outra região. Use esse script para manter o backup dos discos gerenciados em outra região para a recuperação de desastre.
Se necessário, instale o módulo do Azure PowerShell usando a instrução encontrada no guia do Azure PowerShell e, em seguida, execute Connect-AzAccount
para criar uma conexão com o Azure. Além disso, você precisará ter uma chave pública SSH chamada id_rsa.pub
no diretório .ssh do perfil do usuário.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Exemplo de script
#Provide the subscription Id of the subscription where snapshot is created
$subscriptionId = "yourSubscriptionId"
#Provide the name of your resource group where snapshot is created
$resourceGroupName ="yourResourceGroupName"
#Provide the snapshot name
$snapshotName = "yourSnapshotName"
#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/Az.Storage/storage-dotnet-shared-access-signature-part-1
$sasExpiryDuration = "3600"
#Provide storage account name where you want to copy the snapshot.
$storageAccountName = "yourstorageaccountName"
#Name of the storage container where the downloaded snapshot will be stored
$storageContainerName = "yourstoragecontainername"
#Provide the key of the storage account where you want to copy snapshot.
$storageAccountKey = 'yourStorageAccountKey'
#Provide the name of the VHD file to which snapshot will be copied.
$destinationVHDFileName = "yourvhdfilename"
# Set the context to the subscription Id where Snapshot is created
Select-AzSubscription -SubscriptionId $SubscriptionId
#Generate the SAS for the snapshot
$sas = Grant-AzSnapshotAccess -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName -DurationInSecond $sasExpiryDuration -Access Read
#Create the context for the storage account which will be used to copy snapshot to the storage account
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
#Copy the snapshot to the storage account
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
Explicação sobre o script
Esse script usa os comandos a seguir para gerar o URI de SAS para um instantâneo gerenciado e copia o instantâneo para uma conta de armazenamento usando o URI de SAS. Cada comando da tabela é vinculado à documentação específica do comando.
Comando | Observações |
---|---|
Grant-AzSnapshotAccess | Gera o URI de SAS para um instantâneo que é usado para copiá-lo para uma conta de armazenamento. |
New-AzureStorageContext | Cria um contexto de conta de armazenamento usando o nome da conta e a chave. Esse contexto pode ser usado para executar operações de leitura/gravação na conta de armazenamento. |
Start-AzureStorageBlobCopy | Copia o VHD subjacente de um instantâneo para uma conta de armazenamento |
Próximas etapas
Criar um disco gerenciado com base em um VHD
Criar uma máquina virtual com base em um disco gerenciado
Para obter mais informações sobre o módulo do Azure PowerShell, confira Documentação do Azure PowerShell.
Amostras de script do PowerShell da máquina virtual adicionais podem ser encontrados na documentação da VM Linux do Azure.