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.
- Actualmente, Azure Backup no admite 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 los discos administrados protegidos con Microsoft Entra ID, el usuario que realiza la solicitud debe tener el rol de Operador de datos para discos administrados o un rol personalizado con los siguientes permisos:
- 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
- Descargue la versión más reciente de AzCopy, v10.
- Instalación de la CLI de Azure.
- Si tiene previsto cargar un disco duro virtual desde el entorno local: Un disco duro virtual de tamaño fijo que se ha preparado para Azure, almacenado localmente.
- O bien, un disco administrado en Azure, si desea realizar una acción de copia.
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.
Importante
El 15 de febrero de 2025, el tiempo de acceso de firma de acceso compartido (SAS) para discos e instantáneas se limitará a un máximo de 60 días. Si se intenta generar una SAS con una expiración de más de 60 días, se producirá un error. Cualquier SAS de disco o instantánea existente creada con una expiración superior a 60 días puede dejar de funcionar 60 días después de la fecha de creación y producirá un Error 403 durante la autorización.
Si la expiración de un disco administrado o una SAS de instantánea es superior a 60 días, revoque su acceso y genere una nueva SAS que solicite acceso durante 60 días (5 184 000 segundos) o menos. Mejore la seguridad general mediante SAS con fechas de expiración más cortas. Realice estos cambios antes del 15 de febrero de 2025 para evitar la interrupción del servicio. Los vínculos siguientes se pueden usar para buscar, revocar y solicitar una nueva SAS.
- Para comprobar si un disco tiene una SAS activa, puede usar la API de REST, la CLI de Azure o el módulo de Azure PowerShell y examinar la propiedad DiskState.
- Para revocar una SAS, puede usar la API de REST, la CLI de Azure o el módulo Azure PowerShell.
- Para crear una SAS, puede usar la API de REST, la CLI de Azure o el módulo de Azure PowerShell y establecer la duración del acceso en 5 184 000 segundos o menos.
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 siguiente script 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.