Как получить VHD управляемого диска Azure?

Я создал виртуальную машину с управляемым диском. Управляемые диски больше не хранятся в хранилище BLOB-объектов по умолчанию. Проблема в том, что теперь мне нужен vhd-файл osdisk, но я не могу найти подходящий способ его получить.

Единственный метод, который я нашел, - это открыть диск на портале Azure и нажать «Экспорт», чтобы создать ссылку для загрузки на файл VHD. Этот метод нежелателен.


person SaphuA    schedule 22.02.2017    source источник
comment
нужен vhd файл на осдиске? Вы имеете в виду, что хотите создать еще одну виртуальную машину с этим образом?   -  person Jason Ye    schedule 23.02.2017


Ответы (3)


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

#Connect to Azure and set your azure subscription

#Declare Variables
$resourceGroupName = 'xxxxx-rg'
$snapshotName = 'xxxxxx.md'
$resourceGroupNameStorageAccount = 'xxxx-rg'
$storageAccountName = 'xxxx-storage'
$storageContainerName = 'xxxxx'
$destinationVHDFileName = 'xxxxxx.vhd'

#Get the Storage Account Key of the Destination Storage Account
$storageAccountKey = Get-AzStorageAccountKey -resourceGroupName $resourceGroupNameStorageAccount -AccountName $storageAccountName

#Generate the SAS for the snapshot
$sas = Grant-AzSnapshotAccess -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -DurationInSecond 3600 -Access Read

#Create the context of the destination storage account for the snapshot
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey ($storageAccountKey).Value[0]

#Copy the snapshot to the destination Storage Account
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
person DevUser    schedule 11.09.2019

Убедитесь, что ваш модуль PowerShell для AzureRM обновлен:

Install-Module AzureRM -allowclobber -force

Теперь ваша команда Set-AzureRMVMOSDisk должна иметь -ManagedDiskID. Просто введите идентификатор ресурса для управляемого диска, и он должен работать.

Пример

$NewVM = New-AzureRMVMConfig -VMName VMName - VMSize "Standard_A1_V2"
Set-AzureRMVMOSDisk -VM $NewVM -Name "DiskName" -CreateOption Attach -Caching ReadWrite -Windows -ManagedDiskID "ManagedDiskResourceID"
New-AzureRmVM -ResourceGroupName "ResourceGroupName" -VM $NewVM -Location CanadaEast
person Jon    schedule 18.05.2017

Для управляемых дисков вы не используете vhd. Скорее, для раздела диска вы используете такой шаблон

"osDisk": {
    "osType": "Linux",
    "name": "[parameters('VMName')]",
    "createOption": "FromImage",
    "caching": "ReadWrite",
    "managedDisk": {
        "id": "ManagedDiskID"
    }
}

Вы ссылаетесь на диск по идентификатору управляемого диска, а не по URI

person Michael C    schedule 12.04.2017