Скопируйте VHD с azure диска в azure учетную запись хранения - PullRequest
0 голосов
/ 17 апреля 2020

У меня диск Azure системы Windows 10. Я хочу, чтобы этот диск был преобразован в VHD и должен быть доступен в учетной записи хранения azure.

Другими словами, я хочу, чтобы мой диск данных VM Azure присутствовал в BLOB-хранилище azure без загрузки VHD на мою базовую машину. Является ли это возможным. Если да, пожалуйста, направьте меня.

Может кто-нибудь, пожалуйста, помогите мне в этом.

Спасибо

1 Ответ

1 голос
/ 21 апреля 2020

Да, это возможно. Вы можете скопировать управляемый диск в файл VHD и сохранить его в хранилище. Вот пример кода через PowerShell:

#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
    $containername,$sastokenkey = $containerSASURI -split "\?"
    $containerSASURI = "$containername/$destinationVHDFileName`?$sastokenkey"
    azcopy copy $sas.AccessSAS $containerSASURI

}else{

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

Но в моем тесте что-то не так с файлом VHD при использовании команды azcopy. И команда Start-AzStorageBlobCopy работает хорошо. Поэтому я рекомендую команду Start-AzStorageBlobCopy для вас. Подробнее см. Экспорт / копирование виртуального жесткого диска управляемого диска в учетную запись хранения в другом регионе с помощью PowerShell .

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...