Partager via


Exporter/copier le disque dur virtuel d’un disque managé vers un compte de stockage dans une région différente avec PowerShell (Windows)

Ce script permet d'exporter le disque dur virtuel d’un disque managé vers un compte de stockage situé dans une autre région. Il génère d’abord l’URI SAS du disque managé, puis l’utilise pour copier le disque dur virtuel sous-jacent vers un compte de stockage situé dans une autre région. Utilisez ce script pour copier des disques managés vers une autre région en vue d’une extension régionale.

Si nécessaire, installez le module Azure PowerShell à l’aide des instructions figurant dans le Guide Azure PowerShell, puis exécutez Connect-AzAccount pour créer une connexion avec Azure. En outre, vous devez disposer d’une clé publique SSH nommée id_rsa.pub dans le répertoire .ssh de votre profil utilisateur.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Exemple de script

#Provide the subscription Id of the subscription where managed disk is created
$subscriptionId = "yourSubscriptionId"

#Provide the name of your resource group where managed is created
$resourceGroupName ="yourResourceGroupName"

#Provide the managed disk name 
$diskName = "yourDiskName"

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/Az.Storage/storage-dotnet-shared-access-signature-part-1
$sasExpiryDuration = "3600"

#Provide storage account name where you want to copy the underlying VHD of the managed disk. 
$storageAccountName = "yourstorageaccountName"

#Name of the storage container where the downloaded VHD will be stored
$storageContainerName = "yourstoragecontainername"

#Provide the key of the storage account where you want to copy the VHD of the managed disk. 
$storageAccountKey = 'yourStorageAccountKey'

#Provide the name of the destination VHD file to which the VHD of the managed disk will be copied.
$destinationVHDFileName = "yourvhdfilename"

#Set the value to 1 to use AzCopy tool to download the data. This is the recommended option for faster copy.
#Download AzCopy v10 from the link here: https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10
#Ensure that AzCopy is downloaded in the same folder as this file
#If you set the value to 0 then Start-AzStorageBlobCopy will be used. Azure storage will asynchronously copy the data. 
$useAzCopy = 1 

# Set the context to the subscription Id where managed disk is created
Select-AzSubscription -SubscriptionId $SubscriptionId

#Generate the SAS for the managed disk 
$sas = Grant-AzDiskAccess -ResourceGroupName $ResourceGroupName -DiskName $diskName -DurationInSecond $sasExpiryDuration -Access Read 

#Create the context of the storage account where the underlying VHD of the managed disk will be copied
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

#Copy the VHD of the managed disk to the storage account
if($useAzCopy -eq 1)
{
    $containerSASURI = New-AzStorageContainerSASToken -Context $destinationContext -ExpiryTime(get-date).AddSeconds($sasExpiryDuration) -FullUri -Name $storageContainerName -Permission rw
    azcopy copy $sas.AccessSAS $containerSASURI

}else{

    Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
}

Explication du script

Ce script utilise les commandes suivantes afin de générer l’URI SAS d’un disque managé et copie le disque dur virtuel sous-jacent vers un compte de stockage à l’aide de l’URI SAS. Chaque commande du tableau renvoie à sa documentation spécifique.

Commande Notes
Grant-AzDiskAccess Génère l’URI SAS d’un disque managé qui est utilisé pour copier le disque dur virtuel sous-jacent vers un compte de stockage.
New-AzureStorageContext Crée un contexte de compte de stockage avec le nom de compte et la clé. Ce contexte peut être utilisé pour effectuer des opérations de lecture/écriture sur le compte de stockage.
Start-AzureStorageBlobCopy Copie le VHD sous-jacent d’une capture instantanée vers un compte de stockage

Étapes suivantes

Créer un disque managé à partir d’un VHD

Créer une machine virtuelle à partir d’un disque géré

Pour plus d’informations sur le module Azure PowerShell, consultez Documentation Azure PowerShell.

Vous trouverez des exemples supplémentaires de scripts PowerShell de machine virtuelle dans la documentation relative aux machines virtuelles Windows Azure.