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 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, 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.
Chargements sécurisés avec Azure AD
Si vous utilisez Azure Active Directory (Azure AD) 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 Azure AD 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é Azure AD 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 Azure AD, 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 Azure AD.
Attribuer un rôle RBAC
Pour accéder aux disques managés sécurisés avec Azure AD, 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
- Téléchargez la dernière version d’AzCopy v10.
- Installer l’interface de ligne de commande Microsoft Azure.
- Si vous envisagez de charger un VHD à partir d’un emplacement local : Un VHD de taille fixe qui a été préparé pour Azure et stocké localement.
- Ou un disque managé dans Azure, si vous envisagez d’effectuer une action de copie.
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 <yourGeneration>
à az disk create
.
Si vous utilisez Azure AD pour sécuriser les chargements de disque, ajoutez -dataAccessAuthmode 'AzureActiveDirectory'
.
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 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.
(Facultatif) Accorder l’accès au disque
Si vous utilisez Azure AD 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"
}
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 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 -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.