gpt4 book ai didi

powershell - 使用 PowerShell Azure 资源管理器 cmdlet 将现有 vhd 添加到 Azure VM

转载 作者:行者123 更新时间:2023-12-03 20:51:13 24 4
gpt4 key购买 nike

注意:这是 Azure ARM 问题 - 不是 Azure 服务管理问题。

我的存储帐户中有 2 个 vhd - machine-os.vhd 和 machine-data.vhd。我可以使用 PowerShell ARM cmdlet 创建具有现有操作系统 vhd 的虚拟机,但无法弄清楚如何附加现有数据 vhd。我找到的所有示例都会创建空数据磁盘 - 但我想将现有的 vhd 作为数据磁盘附加。

我尝试将 createOption Attach 开关与 Add-AzureVMDataDisk 一起使用,如下所示:

$vm = New-AzureVMConfig ...
$vm = Add-AzureVMDataDisk -VM $vm -VhdUri $existingDiskUri -Name“machine-data.vhd”-Caching ReadOnly -CreateOption Attach -DiskSizeInGB 200

但是,操作失败并显示:

Blob https://x.blob.core.windows.net/vhds/machine-data.vhd 已存在。请提供不同的 blob URI 以创建新的空白数据磁盘“machine-data.vhd”。

我必须指定 DiskSizeInGB 才能使 Add-AzureVMDataDisk 命令正常工作(这看起来很奇怪)。我尝试指定 SourceImageUriVhdUri 的不同名称,根据 documentation ,应将 vhd 从 sourceImageUri 复制到 vhdUri 并附加它。尝试 createOption fromImage 失败,因为“您无法使用源图像 uri 指定大小”。但是,cmdlet 的大小参数是强制性的,因此我不知道如何指定 sourceUri 而不是大小。

This SO question提出了类似的问题(尽管我没有得到相同的错误),但答案中的链接显示了一个带有空数据磁盘的模板,这没有帮助。

有趣的是,我尝试从 Azure 门户将磁盘添加到 VM - 您必须在其中指定名称和 URI,但操作总是失败,并出现一些奇怪的 json 解析错误。我似乎无法正确获取数据磁盘的 uri。

最佳答案

经过一番尝试后,我发现了一个技巧:

  1. 为现有磁盘指定一个新 URI,并将其设置为 vhdUri
  2. 使用现有磁盘的 URI 作为 sourceImageUri
  3. 使用 CreateOption fromImage 调用 Add-AzureVMDataDisk
  4. 将数据磁盘的大小设置为 null(这是 hack)
  5. 调用New-AzureVM时,现有磁盘将复制到新Uri
  6. 创建虚拟机后,我删除了原始 vhd

不幸的是,您必须向 Add-AzureVMDataDisk 命令提供 DiskSizeInGB 参数,因为它是强制性的。但是,我将其设置为 null,否则配置会失败(错误消息表明您不能同时指定 size 和 sourceImageUri)。

这是最终的代码:

$vm = New-AzureVMConfig ...
$vm = Add-AzureVMDataDisk -VM $vm `
-SourceImageUri $existingDataDiskUrl -VhdUri $newDataDiskUri `
-Name $newDataDiskName -CreateOption fromImage -Caching ReadOnly `
-DiskSizeInGB 200

# hack
$vm.StorageProfile.DataDisks[0].DiskSizeGB = $null

之后您可以调用: New-AzureVM -ResourceGroupName $rgName -Location $location -VM $vm

创建 VM 后,我调用 Remove-AzureStorageBlob 来删除原始磁盘。

也许有一种更干净的方法,但我找不到。至少这个方法最终有效。

关于powershell - 使用 PowerShell Azure 资源管理器 cmdlet 将现有 vhd 添加到 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com