将本地上载的VHD附加到Classic Azure VM

时间:2017-02-02 21:54:56

标签: powershell azure azure-virtual-machine azure-powershell

我有一个使用

上传到Azure的VHD
Set-AzureStorageBlobContent 

并尝试使用 -

Add-AzureVhd

当我使用

Add-AzureDataDisk

在控制台中,当我使用
时,VHD似乎连接到VM上的LUN 0 Get-AzureVM我为MediaLocation参数使用了适当的URI,但是当我检查Classic Portal(Web Interface)或进入VM本身时,VHD仍然没有附加。

如果我手动执行此过程,VHD会附加所有精细和花花公子。下     VMs-> Instances-> Disks

如果我手动执行此过程,我可以看到已经上传的VHD,但是使用cmdlet,我似乎无法让VHD显示在"现有磁盘中#34;通过VM实例。

现在我已经检查了所有内容,我的存储帐户与我的VM实例位于同一区域。我在本地上传的VHD是固定的,并在blob中正确标记为" someVHD.vhd",当我尝试使用Add-AzureDataDisk时,在控制台中它返回磁盘已连接,奇怪的行为是,如果我在附加cmdlet参数期间标记了现有磁盘,磁盘仍未使用cmdlet附加。

这是我的确切脚本 -

    $createVHD = New-VHD -Path $($vhdInstallFullPath) -Fixed -SizeBytes 256MB -ComputerName $hostName

    Copy files to VHD and prepare them for upload to azure utilizing either Set-AzureStorageBlobContent or Add-AzureVHD, in this case I utilized Set-AzureStorageBlobContent, because the VHD is really small.

    $migrateVHD = Set-AzureStorageBlobContent -File $vhdInstallFullPath -Blob $VHDInstallName -Container $StorageContainerName -Context $($newAzureContext.Context) -BlobType Page -Confirm:$False

    $addAzureDataDisk = Add-AzureDataDisk -VM $azureVMInfo -ImportFrom -MediaLocation $azureInstallBlobURI -DiskLabel "InstallPackage" -LUN $azureDataDiskLUN 

现在我有很多变量,而且在我上传之前我还要做很多其他工作来获取存储上下文,Azure VM对象以及将文件复制到vhd,但是该脚本块应该给每个人我的要点

我的问题可能是在使用页面blob而不是块blob用于VHD之间吗?从文档中我了解到具有多个文件的VHD会想要成为页面blob。

1 个答案:

答案 0 :(得分:1)

也许您可以尝试使用以下cmdlet。

Get-AzureVM "stlcs01" -Name "shuitest1" | Add-AzureDataDisk -ImportFrom -MediaLocation  "https://t5portalvhdsx2463gvmvrz7.blob.core.windows.net/vhds/shui-shui-2017-02-02.vhd"   -DiskLabel "InstallPackage" -LUN 1 

我找到一篇关于你的问题的好文章,也许你可以查看这篇文章:Add, Import Data Disk to Azure Virtual Machine using Powershell

我在实验室里测试。

Add-AzureVhd -Destination “https://t5portalvhdsx2463gvmvrz7.blob.core.windows.net/vhds/shui.vhd” -LocalFilePath “D:\shui.vhd” -NumberOfUploaderThreads 32

Get-AzureVM -name shuitest -ServiceName shuitest | Add-AzureDataDisk -ImportFrom -MediaLocation “https://t5portalvhdsx2463gvmvrz7.blob.core.windows.net/vhds/shui.vhd” -DiskLabel “test” -LUN 1

Get-AzureVM -ServiceName shuitest -Name shuitest|Get-AzureDataDisk

enter image description here