Charger un disque dur virtuel sur Azure ou copier un disque dans une autre région - Azure CLI

S’applique à : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles

Cet article explique comment charger un disque dur virtuel depuis votre machine locale vers un disque managé Azure ou copier un disque managé dans une autre région avec AzCopy. Ce processus, le chargement direct, vous permet de charger un disque dur virtuel d’une taille maximale de 32 Tio directement dans un disque managé. Actuellement, le chargement direct est pris en charge pour les Disques Ultra, SSD Premium v2, SSD Premium, SSD Standard et HDD Standard.

Si vous fournissez une solution de sauvegarde pour les machines virtuelles IaaS dans Azure, vous devez utiliser le chargement direct afin de restaurer les sauvegardes des clients sur des disques managés. Lorsque vous chargez un VHD à partir d’une source externe à Azure, la vitesse dépend de votre bande passante locale. Lorsque vous chargez ou copiez à partir d’une machine virtuelle Azure, votre bande passante est la même que celle des HDD standard.

Sécuriser les chargements avec Microsoft Entra ID

Si vous utilisez Microsoft Entra ID pour contrôler l’accès aux ressources, vous pouvez désormais l’utiliser pour restreindre le chargement de disques managés Azure. Cette fonctionnalité est disponible comme offre GA dans toutes les régions. Quand un utilisateur tente de charger un disque, Azure valide l’identité de l’utilisateur demandeur dans Microsoft Entra ID et confirme que l’utilisateur dispose des autorisations requises. À un niveau supérieur, un administrateur système peut définir une stratégie au niveau du compte ou de l’abonnement Azure pour s’assurer qu’une identité Microsoft Entra dispose des autorisations nécessaires pour le chargement avant d’autoriser le chargement d’un disque ou d’un instantané de disque. Si vous avez des questions sur la sécurisation des chargements avec Microsoft Entra ID, contactez cet e-mail : azuredisks@microsoft.com

Prérequis

Restrictions

  • Les disques durs virtuels ne peuvent pas être chargés dans des instantanés vides.
  • Sauvegarde Azure ne prend actuellement pas en charge les disques sécurisés avec Microsoft Entra ID.
  • Azure Site Recovery ne prend actuellement pas en charge les disques sécurisés avec Microsoft Entra ID.

Attribuer un rôle RBAC

Pour accéder aux disques managés sécurisés avec Microsoft Entra ID, l’utilisateur demandeur doit disposer du rôle Opérateur de données pour les disques managés ou d’un rôle personnalisé avec les autorisations suivantes :

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

Pour obtenir la procédure détaillée d’attribution d’un rôle, consultez Attribuer des rôles Azure avec Azure CLI. Pour créer ou mettre à jour un rôle personnalisé, consultez Créer ou mettre à jour des rôles personnalisés Azure avec Azure CLI.

Bien démarrer

Si vous préférez charger des disques via une interface graphique utilisateur, vous pouvez utiliser l’Explorateur Stockage Azure. Pour plus d’informations, consultez : Utiliser l’Explorateur Stockage Azure pour gérer des disques managés Azure

Prérequis

Pour charger votre disque dur virtuel sur Azure, vous devez créer un disque managé vide configuré pour ce processus de chargement. Avant de créer ce disque, vous devez prendre connaissance des informations ci-dessous.

Ce type de disque managé présente deux états uniques :

  • ReadToUpload, qui signifie que le disque est prêt à recevoir un chargement, mais qu'aucune signature d'accès partagé (SAS) n'a été générée.
  • ActiveUpload, qui signifie que le disque est prêt à recevoir un chargement et que la SAS a été générée.

Notes

Dans l'un ou l'autre de ces états, le disque managé est facturé au tarif HDD Standard, quel que soit le type de disque. Par exemple, un P10 est facturé comme un S10. Ceci s’applique jusqu’à ce que revoke-access soit appelé sur le disque managé, ce qui est nécessaire pour joindre le disque à une machine virtuelle.

Créer un disque managé vierge

Avant de pouvoir créer un disque HDD standard vierge pour le chargement, vous devez connaître la taille de fichier (en octets) du disque dur virtuel que vous souhaitez charger. Pour l’obtenir, vous pouvez utiliser wc -c <yourFileName>.vhd ou ls -al <yourFileName>.vhd. Cette valeur est utilisée lors de la spécification du paramètre --upload-size-bytes.

Créez un disque dur standard vierge pour le chargement en spécifiant les paramètres -–for-upload et --upload-size-bytes dans une applet de commande disk create :

Remplacez <yourdiskname>, <yourresourcegroupname>, <yourregion> par les valeurs de votre choix. Le paramètre --upload-size-bytes contient un exemple de valeur : 34359738880. Remplacez cet exemple par la valeur appropriée.

Important

Si vous créez un disque de système d’exploitation, ajoutez --hyper-v-generation <yourGeneration> à az disk create.

Si vous utilisez Microsoft Entra ID pour sécuriser les chargements, ajoutez -dataAccessAuthmode 'AzureActiveDirectory'. Lors du chargement sur un disque Ultra ou un disque SSD Premium v2, vous devez sélectionner la taille de secteur appropriée du disque cible. Si vous utilisez un fichier VHDX avec une taille de secteur logique de 4 Ko, le disque cible doit être défini sur 4 Ko. Si vous utilisez un fichier de disque dur virtuel avec une taille de secteur logique de 512, le disque cible doit être défini sur 512.

Les fichiers VHDX avec une taille de secteur logique de 512 Ko ne sont pas pris en charge.

##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 vous souhaitez charger un autre type de disque, remplacez standard_lrs par premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs ou ultrassd_lrs.

(Facultatif) Accorder l’accès au disque

Si vous utilisez Microsoft Entra ID pour sécuriser les chargements, vous devez attribuer des autorisations RBAC pour accorder l’accès au disque et générer une SAP accessible en écriture.

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

Générer une signature d’accès partagé accessible en écriture

Maintenant que vous avez créé un disque managé vierge configuré pour le processus de chargement, vous pouvez y charger un disque dur virtuel. Pour charger un disque dur virtuel sur le disque, il vous faut une signature d'accès partagé (SAP) accessible en écriture afin de pouvoir la référencer en tant que destination pour votre chargement.

Pour générer une SAP accessible en écriture de votre disque managé vierge, remplacez <yourdiskname> et <yourresourcegroupname>, puis utilisez la commande suivante :

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

Exemple de valeur renvoyée :

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

Charger un disque dur virtuel VHD ou VHDX

Maintenant que vous disposez d'une SAS pour votre disque managé vierge, vous pouvez l'utiliser pour définir votre disque managé en tant que destination de votre commande de chargement.

Utilisez AzCopy v10 pour charger votre fichier VHD ou VHDX local sur un disque managé en spécifiant l’URI de la SAS que vous avez générée.

Ce chargement présente le même débit que le disque HDD Standard correspondant. Par exemple, pour une taille correspondant à S4, vous aurez un débit allant jusqu'à 60 Mio/s. Mais pour une taille correspondant à S70, le débit ira jusqu’à 500 Mio/s.

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

Lorsque vous avez terminé le chargement et que vous n’avez plus rien à écrire sur le disque, révoquez la SAS. La révocation de la SAS changera l'état du disque managé et vous permettra de le joindre à une machine virtuelle.

Remplacez <yourdiskname>et <yourresourcegroupname>, puis utilisez la commande suivante pour rendre le disque utilisable :

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

Copier un disque managé

Le chargement direct simplifie également le processus de copie d’un disque managé. Vous pouvez effectuer une copie au sein d’une même région ou entre des régions différentes (vers une autre région).

Le script suivant effectue cette opération pour vous. Le processus est similaire aux étapes décrites précédemment, à quelques différences près puisque vous utilisez un disque existant.

Important

Vous devez ajouter un décalage de 512 quand vous fournissez la taille en octets d’un disque managé d’Azure. En effet, Azure omet le pied de page lors du retour de la taille du disque. Si vous ne le faites pas, la copie échouera. Le script suivant s’en charge pour vous.

Remplacez <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere> et <yourTargetLocationHere> (la valeur d’emplacement pourrait par exemple être uswest2) par vos valeurs, puis exécutez le script suivant afin de copier un disque managé.

Conseil

Si vous créez un disque de système d’exploitation, ajoutez --hyper-v-generation <yourGeneration> à 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

Étapes suivantes

Maintenant que vous avez réussi à charger un disque dur virtuel sur un disque managé, vous pouvez joindre le disque en tant que disque de données à une machine virtuelle existante ou joindre le disque à une machine virtuelle en tant que disque de système d'exploitation pour créer une nouvelle machine virtuelle.

Si vous avez d’autres questions, consultez la section Chargement d’un disque managé dans le FAQ.