3

我目前正在使用这个模板通过自定义图像创建一个 vm。对于操作系统磁盘部分:

"storageProfile": {
  "osDisk": {
    "name": "[concat(variables('vmName'),'-osDisk')]",
    "osType": "[parameters('osType')]",
    "caching": "ReadWrite",
    "createOption": "FromImage",
    "image": {
      "uri": "[variables('userImageName')]"
    },
    "vhd": {
      "uri": "[variables('osDiskVhdName')]"
    }
  }
}

图像和 vhd 字段是否可能存储在不同的存储帐户中?

更新

我尝试在同一个资源组中使用两个存储帐户。但是错误消息中仍然提到“源和目标存储帐户不同”

在此处输入图像描述

4

5 回答 5

3

这是我通过测试从 Azure ARM 自定义映像启动 VM 时发现的:

  1. 自定义映像可以位于 VM 以外的不同存储帐户中
  2. 自定义映像存储帐户需要与 VM 在同一订阅、同一区域和同一资源组中

我尝试从不同资源组和存储帐户(相同订阅,相同区域)的自定义映像启动 VM,但出现错误:“磁盘的源和目标存储帐户不同”但是如果我从不同存储帐户的自定义映像启动 VM,而资源组是一样的,我的虚拟机启动没有错误。

于 2015-10-20T17:59:08.873 回答
2

要求源映像和目标 vhd 驻留在同一存储帐户中,但要求存储帐户与 VM 位于同一资源组中。它必须位于同一区域/位置,但不必位于同一资源组中。

因此,您可以预先设置一个存储帐户,将您的源映像放在那里,而不必担心在部署期间复制它,这将自动发生。以下是我如何配置模板的片段:

"userImageName":"[concat('http://',parameters('userImageStorageAccountName'),'.blob.core.windows.net/',parameters('userImageStorageContainerName'),'/',parameters('userImageVhdName'))]",
"osDiskVhdContainer": "[concat('http://',parameters('userImageStorageAccountName'),'.blob.core.windows.net/',parameters('vmImageStorageContainerName'),'/')]"

相同的存储帐户,但图像和 vhd 的容器不同。

所以请确保:

  1. source 和 dest 在同一个 storageAccount
  2. 虚拟机和存储在同一个区域(例如东亚)
  3. 使用新的存储帐户(由 ARM 提供)而不是“经典”
于 2015-08-27T13:54:15.087 回答
1

我不知道其他答案是如何被赞成的。OP 帖子是正确的 - 自定义映像和 VM 操作系统磁盘需要在同一个存储帐户中,这是一个很大的限制。刚刚尝试使用API​​​​,我得到:

"MsRestAzure::AzureOperationError: ConflictingUserInput: Source and destination storage accounts for disk test-terminate are different."
于 2017-05-11T12:27:41.667 回答
1

对我来说,它就像这样工作:

先决条件 - 具有用户映像 VHD 的存储帐户应该是相同的,在同一组中。

然后,它奏效了。

于 2016-10-09T23:51:21.623 回答
0

如果different storage account您的意思是另一个订阅中的存储帐户,那么没有。存储帐户和虚拟机必须在同一个订阅中。

更新

在此处的模板描述页面中找到答案:https ://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-from-user-image

先决条件 - 具有用户映像 VHD 的存储帐户应已存在于同一资源组中。

因此,基于此,只要您的存储帐户在同一个 Azure 订阅中并且在同一个资源组中,即使存储帐户不同,您也应该没问题。

于 2015-08-26T04:52:08.470 回答