Carregar um VHD no Azure ou copiar um disco gerenciado para outra região – CLI do Azure
Aplica-se a: ✔️ VMs Linux ✔️ VMs Windows ✔️ Conjuntos de dimensionamento flexíveis
Este artigo explica como carregar um VHD de sua máquina local para um disco gerenciado do Azure ou copiar um disco gerenciado para outra região, usando o AzCopy. Esse processo, o upload direto, também permite que você carregue um VHD de até 32 TiB diretamente em um disco gerenciado. Atualmente, há suporte para upload direto nos Discos Ultra, SSD Premium v2, SSD Premium, SSD Standard e HDD Standard.
Se você estiver fornecendo uma solução de backup para VMs de IaaS no Azure, use o upload direto para restaurar os backups de clientes em discos gerenciados. Ao carregar um VHD de uma fonte externa no Azure, as velocidades dependem da largura de banda local. Ao carregar ou copiar de uma VM do Azure, a largura de banda seria a mesma que dos HDs Standard.
Uploads seguros com o Microsoft Entra ID
Se você estiver usando o Microsoft Entra ID para controlar o acesso a recursos, agora poderá usá-lo para restringir o upload de discos gerenciados do Azure. Esse recurso está disponível como uma oferta em GA em todas as regiões. Quando um usuário tenta carregar um disco, o Azure valida a identidade do usuário solicitante no Microsoft Entra ID e confirma que o usuário tem as permissões necessárias. Em um nível mais alto, um administrador do sistema pode definir uma política no nível de conta ou assinatura do Azure, para garantir que uma identidade do Microsoft Entra tenha as permissões necessárias para carregamento antes de permitir que um disco ou um instantâneo de disco seja carregado. Se você tiver alguma dúvida sobre como proteger carregamentos com o Microsoft Entra ID, entre em contato com este email: azuredisks@microsoft .com
Pré-requisitos
Restrições
- Os VHDs não podem ser carregados em instantâneos vazios.
- No momento, o Backup do Azure não dá suporte a discos protegidos com o Microsoft Entra ID.
- No momento, o Azure Site Recovery não dá suporte a discos protegidos com o Microsoft Entra ID.
Atribuir função RBAC
Para acessar discos gerenciados protegidos com o Microsoft Entra ID, o usuário solicitante precisa ter a função Operador de Dados para Discos Gerenciados ou uma função personalizada com as seguintes permissões:
- Microsoft.Compute/disks/download/action
- Microsoft.Compute/disks/upload/action
- Microsoft.Compute/snapshots/download/action
- Microsoft.Compute/snapshots/upload/action
Para ver as etapas detalhadas de como atribuir uma função, confira Atribuir funções do Azure usando a CLI do Azure. Para criar ou atualizar uma função personalizada, confira Criar ou atualizar funções personalizadas do Azure usando a CLI do Azure.
Introdução
Se preferir carregar discos por meio de uma GUI, faça isso usando o Gerenciador de Armazenamento do Azure. Para obter detalhes, confira: Usar o Gerenciador de Armazenamento do Azure para gerenciar discos gerenciados do Azure
Pré-requisitos
- Baixe a última versão do AzCopy v10.
- Instale a CLI do Azure.
- Se você pretende carregar um VHD do local: um VHD de tamanho fixo que foi preparado para o Azure, armazenado localmente.
- Ou, então, um disco gerenciado no Azure, se você pretende executar uma ação de cópia.
Para carregar o VHD no Azure, você precisará criar um disco gerenciado vazio que esteja configurado para esse processo de upload. Antes de criar um, há algumas informações adicionais que você deve saber sobre esses discos.
Esse tipo de disco gerenciado tem dois estados exclusivos:
- ReadToUpload, que significa que o disco está pronto para receber um upload, mas nenhuma SAS (assinatura de acesso seguro) foi gerada.
- ActiveUpload, o que significa que o disco está pronto para receber um upload e a SAS foi gerada.
Observação
Em qualquer um desses estados, o disco gerenciado será cobrado no preço HDD Standard, independentemente do tipo real de disco. Por exemplo, um P10 será cobrado como um S10. Isso será verdadeiro até que revoke-access
seja chamado no disco gerenciado, o que é necessário para anexar o disco a uma VM.
Criar um disco gerenciado vazio
Para criar um HDD Standard vazio para upload, você precisará do tamanho do arquivo do VHD que deseja carregar, em bytes. Para obtê-lo, use wc -c <yourFileName>.vhd
ou ls -al <yourFileName>.vhd
. Esse valor é usado na especificação do parâmetro --upload-size-bytes.
Crie um HDD Standard vazio para upload especificando o parâmetro -–for-upload e o parâmetro --upload-size-bytes em um cmdlet disk create:
Substitua <yourdiskname>
, <yourresourcegroupname>
e <yourregion>
por valores que você escolher. O parâmetro --upload-size-bytes
contém o valor de exemplo 34359738880
. Substitua-o por um valor apropriado para você.
Importante
Se você estiver criando um disco do sistema operacional, adicione --hyper-v-generation <yourGeneration>
a az disk create
.
Se você estiver usando o Microsoft Entra ID para proteger carregamentos de disco, adicione -dataAccessAuthmode 'AzureActiveDirectory'
.
Ao carregar em um Disco Ultra ou SSD Premium v2, você precisa selecionar o tamanho correto do setor do disco de destino. Se você estiver usando um arquivo VHDX com um tamanho de setor lógico de 4k, o disco de destino deverá ser definido como 4k. Se você estiver usando um arquivo VHD com um tamanho de setor lógico 512, o disco de destino deverá ser definido como 512.
Não há suporte para os arquivos VHDX com tamanho de setor lógico de 512k.
##For Ultra Disk or Premium SSD v2, add --logical-sector-size and specify either 512 or 4096, depending on if you're using a VHD or VHDX
az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs
Se você quiser carregar um tipo de disco diferente, substituastandard_lrs por premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs ou ultrassd_lrs.
(Opcional) Conceder acesso ao disco
Se você estiver usando o Microsoft Entra ID para proteger carregamentos, precisará atribuir permissões RBAC para conceder acesso ao disco e gerar uma SAS gravável.
az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"
Gerar um SAS gravável
Agora que você criou um disco gerenciado vazio que está configurado para o processo de upload, carregue um VHD nele. Para carregar um VHD no disco, você precisará de uma SAS gravável, para referenciá-la como o destino do upload.
Para gerar uma SAS gravável do disco gerenciado vazio, substitua <yourdiskname>
e <yourresourcegroupname>
e use o seguinte comando:
az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400
Exemplo de valor retornado:
{
"accessSas": "https://md-impexp-t0rdsfgsdfg4.blob.core.windows.net/w2c3mj0ksfgl/abcd?sv=2017-04-17&sr=b&si=600a9281-d39e-4cc3-91d2-923c4a696537&sig=xXaT6mFgf139ycT87CADyFxb%2BnPXBElYirYRlbnJZbs%3D"
}
Carregar um VHD ou VHDX
Agora que você tem uma SAS para o disco gerenciado vazio, use-a para definir o disco gerenciado como o destino para o comando de upload.
Use o AzCopy v10 para carregar seu arquivo VHD local em um disco gerenciado, especificando o URI da SAS que você gerou.
Esse upload tem a mesma taxa de transferência que o HDD Standard equivalente. Por exemplo, se você tiver um tamanho que seja igual a S4, terá uma taxa de transferência de até 60 MiB/s. Mas se você tiver um tamanho igual a S70, terá uma taxa de transferência de até 500 MiB/s.
AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob
Depois que o upload for concluído e você não precisar gravar mais dados no disco, revogue a SAS. A revogação da SAS vai alterar o estado do disco gerenciado e permitir que você anexe o disco a uma VM.
Substitua <yourdiskname>
e <yourresourcegroupname>
e use o seguinte comando para tornar o disco utilizável:
az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>
Copiar um disco gerenciado
O upload direto também simplifica o processo de cópia de um disco gerenciado. Você pode copiá-lo na mesma região ou entre regiões (para outra região).
Para isso, basta utilizar o script a seguir. O processo é semelhante às etapas já descritas, com algumas diferenças, pois você está trabalhando com um disco existente.
Importante
Você precisa adicionar um deslocamento de 512 quando estiver fornecendo o tamanho do disco em bytes de um disco gerenciado do Azure. Isso ocorre porque o Azure omite o rodapé ao retornar o tamanho do disco. A cópia falhará se você não fizer isso. O script a seguir já faz isso para você.
Substitua <sourceResourceGroupHere>
, <sourceDiskNameHere>
, <targetDiskNameHere>
, <targetResourceGroupHere>
e <yourTargetLocationHere>
(um exemplo de um valor de localização é uswest2) pelos seus valores e execute o script a seguir para copiar um disco gerenciado.
Dica
Se você estiver criando um disco do sistema operacional, adicione --hyper-v-generation <yourGeneration>
ao az disk create
.
sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>
#Expected value for OS is either "Windows" or "Linux"
targetOS=<yourOSTypeHere>
sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)
az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs
targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)
sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --duration-in-seconds 86400 --query [accessSas] -o tsv)
azcopy copy $sourceSASURI $targetSASURI --blob-type PageBlob
az disk revoke-access -n $sourceDiskName -g $sourceRG
az disk revoke-access -n $targetDiskName -g $targetRG
Próximas etapas
Agora que você carregou com êxito um VHD em um disco gerenciado, anexe o disco como um disco de dados a uma VM existente ou anexe o disco a uma VM como um disco do SO para criar uma VM.
Se você tiver perguntas adicionais, confira a seção como carregar um disco gerenciado nas perguntas frequentes.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de