Carga de un VHD en Azure o copia de un disco administrado en otra región: CLI de Azure

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles

En este artículo se explica cómo cargar un disco duro virtual de la máquina local a un disco administrado de Azure o copiar un disco administrado a otra región mediante AzCopy. Este proceso, la carga directa, permite cargar un disco duro virtual de hasta 32 TiB directamente en un disco administrado. Actualmente, la carga directa es compatible con discos Ultra, SSD prémium v2, SSD prémium, SSD estándar y HDD estándar.

Si va a proporcionar una solución de copia de seguridad para las máquinas virtuales de IaaS en Azure, debería usar la carga directa para restaurar las copias de seguridad de clientes en discos administrados. Al cargar un disco duro virtual desde un origen externo en Azure, las velocidades dependen del ancho de banda local. Al cargar o copiar desde una máquina virtual de Azure, el ancho de banda sería el mismo que el de los HDD estándar.

Protección de cargas con Microsoft Entra ID

Si usa Microsoft Entra ID para controlar el acceso a los recursos, ahora puede usarlo para restringir la carga de discos administrados de Azure. Esta característica está disponible como una oferta de disponibilidad general en todas las regiones. Cuando un usuario intenta cargar un disco, Azure valida la identidad del usuario solicitante en Microsoft Entra ID y confirma que tiene los permisos necesarios. En un nivel superior, un administrador del sistema podría establecer una directiva a nivel de cuenta o suscripción de Azure para asegurarse de que una identidad de Microsoft Entra tenga los permisos necesarios antes de permitir que cargue un disco o una instantánea de disco. Si tiene alguna pregunta sobre la protección de las cargas con Microsoft Entra ID, póngase en contacto con este correo electrónico: azuredisks@microsoft.com

Requisitos previos

Restricciones

  • Los discos duros virtuales no se pueden cargar en instantáneas vacías.
  • Azure Backup no admite actualmente discos protegidos con Microsoft Entra ID.
  • Azure Site Recovery no admite actualmente discos protegidos con Microsoft Entra ID.

Asignación del rol RBAC

Para acceder a discos administrados protegidos con Microsoft Entra ID, el usuario solicitante debe tener el rol Operador de datos para discos administrados o un rol personalizado con los permisos siguientes:

  • Microsoft.Compute/disks/download/action
  • Microsoft.Compute/disks/upload/action
  • Microsoft.Compute/snapshots/download/action
  • Microsoft.Compute/snapshots/upload/action

Para los pasos detallados sobre cómo asignar un rol, consulte Asignación de roles de Azure mediante la CLI de Azure. Para crear o actualizar un rol personalizado, consulte Creación o actualización de roles personalizados de Azure mediante la CLI de Azure.

Introducción

Si prefiere cargar discos a través de una interfaz gráfica de usuario, puede hacerlo mediante el Explorador de Azure Storage. Para obtener más detalles, consulte: Uso del Explorador de Azure Storage para administrar discos administrados de Azure

Requisitos previos

Para cargar un disco duro virtual en Azure, deberá crear un disco administrado vacío que esté configurado para este proceso de carga. Antes de crearlo, hay información adicional que debe saber acerca de estos discos.

Este tipo de disco administrado tiene dos estados únicos:

  • ReadToUpload, que significa que el disco está listo para recibir una carga pero no se ha generado ninguna firma de acceso seguro.
  • ActiveUpload, que significa que el disco está listo para recibir una carga y se ha generado la SAS.

Nota

Mientras esté en cualquiera de estos estados, el disco administrado se facturará al precio de un HDD estándar, independientemente del tipo real de disco. Por ejemplo, un P10 se facturará como un S10. Esto sucederá hasta que se llame a revoke-access en el disco administrado, que es necesario para conectar el disco a una máquina virtual.

Creación de un disco administrado vacío

Antes de que pueda crear un HDD estándar vacío para cargar, necesitará el tamaño de archivo del VHD que quiere cargar, en bytes. Para ello, puede usar wc -c <yourFileName>.vhd o ls -al <yourFileName>.vhd. Este valor se usa al especificar el parámetro - upload-size-bytes.

Cree un HDD estándar vacío para la carga mediante la especificación tanto del parámetro -–for-upload como del parámetro --upload-size-bytes en un cmdlet disk create:

Reemplace <yourdiskname>, <yourresourcegroupname>, <yourregion> por los valores de su elección. El parámetro --upload-size-bytes contiene un valor de ejemplo de 34359738880, reemplácelo por un valor adecuado.

Importante

Si va a crear un disco del sistema operativo, agregue --hyper-v-generation <yourGeneration> a az disk create.

Si usa Microsoft Entra ID para proteger las cargas, agregue -dataAccessAuthmode 'AzureActiveDirectory'. Al cargar en un disco Ultra o SSD prémium v2, debe seleccionar el tamaño de sector correcto del disco de destino. Si usa un archivo VHDX con un tamaño de sector lógico de 4k, el disco de destino debe establecerse en 4k. Si usa un archivo VHD con un tamaño de sector lógico de 512, el disco de destino debe establecerse en 512.

No se admiten archivos VHDX con tamaño de sector 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

Si desea cargar otro tipo de disco, reemplace standard_lrs con premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs o ultrassd_lrs.

(Opcional) Concesión de acceso al disco

Si usa Microsoft Entra ID para proteger las cargas, deberá asignar permisos RBAC para conceder acceso al disco y generar una firma de acceso compartido grabable.

az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"

Generación de SAS grabables

Ahora que ha creado un disco administrado vacío que está configurado para el proceso de carga, puede cargar en él un VHD. Para cargar un disco duro virtual en ese disco, necesitará una SAS grabable, con el fin de que pueda hacer referencia a ella como el destino de la carga.

Para generar una SAS grabable de un disco administrado vacío, reemplace <yourdiskname> y <yourresourcegroupname>; después, use el siguiente comando:

az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400

Valor devuelto de ejemplo:

{
  "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"
}

Carga de un VHD o VHDX

Ahora que tiene una SAS para el disco administrado vacío, puede usarla para establecer el disco administrado como destino del comando de carga.

Use AzCopy V10 para cargar el archivo VHD local en un disco administrado, para lo que se especifica el identificador URI de SAS que ha generado.

Esta carga tiene el mismo rendimiento que el HDD estándar equivalente. Por ejemplo, si tiene un tamaño que equivale a S4, tendrá un rendimiento de hasta 60 MiB/s. Pero si tiene un tamaño que equivale a S70, tendrá un rendimiento de hasta 500 MiB/s.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob

Cuando finalice la carga y ya no necesite escribir más datos en el disco, revoque la SAS. Al revocar la SAS, cambiará el estado del disco administrado y podrá conectar el disco a una máquina virtual.

Reemplace <yourdiskname> y <yourresourcegroupname> y, a continuación, use el siguiente comando para que se pueda usar el disco:

az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>

Copia de un disco administrado

La carga directa también simplifica el proceso de copia de un disco administrado. Puede copiar dentro de la misma región o entre regiones (a otra región).

El script siguiente lo hace automáticamente; el proceso es similar a los pasos descritos anteriormente, con algunas diferencias, ya que está trabajando con un disco existente.

Importante

Debe agregar un desplazamiento de 512 cuando proporcione el tamaño de disco en bytes de un disco administrado de Azure. Esto se debe a que Azure omite el pie de página al devolver el tamaño del disco. Si no lo hace, se producirá un error en la copia. El siguiente script ya lo hace automáticamente.

Reemplace los <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere> y <yourTargetLocationHere> (un ejemplo de un valor de ubicación sería uswest2) con sus valores y, a continuación, ejecute el siguiente script para copiar un disco administrado.

Sugerencia

Si va a crear un disco del sistema operativo, agregue --hyper-v-generation <yourGeneration> a 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

Pasos siguientes

Ahora que ha cargado correctamente un disco duro virtual en un disco administrado, puede conectar el disco como disco de datos a una máquina virtual ya existente o conectarlo como disco del sistema operativo para crear una nueva máquina virtual.

Si tiene preguntas adicionales, consulte la sección cargar un disco administrado en las preguntas más frecuentes.