我有一个使用
上传到Azure的VHDSet-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。
答案 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