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

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 aussi 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 managés de type HDD Standard, SSD Standard et SSD Premium. Il n’est pas encore pris en charge pour les disques Ultra.

Si vous fournissez une solution de sauvegarde pour les machines virtuelles IaaS dans Azure, nous vous recommandons d’utiliser le chargement direct afin de restaurer les sauvegardes des clients sur des disques managés. Si vous chargez un disque dur virtuel dans Azure depuis une machine externe, les vitesses dépendront de votre bande passante locale. Lors du chargement ou de la copie depuis une machine virtuelle Azure, votre bande passante est identique à celle des disques durs standard.

Prérequis

Prise en main

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

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.

Conseil

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

az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --for-upload --upload-size-bytes 34359738880 --sku standard_lrs

Si vous souhaitez charger un disque SSD Premium ou Standard, remplacez standard_LRS par premium_LRS ou standardssd_lrs. Les disques Ultra ne sont pas pris en charge pour le moment.

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

Télécharger un disque dur virtuel

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 de disque dur virtuel 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 effectuera 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 à az disk create.

sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>

sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)

az disk create -g $targetRG -n $targetDiskName -l $targetLocation --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 -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.