Reputation: 93754
I'm currently using this template to create a vm by custom image. For the OS Disk part:
"storageProfile": {
"osDisk": {
"name": "[concat(variables('vmName'),'-osDisk')]",
"osType": "[parameters('osType')]",
"caching": "ReadWrite",
"createOption": "FromImage",
"image": {
"uri": "[variables('userImageName')]"
},
"vhd": {
"uri": "[variables('osDiskVhdName')]"
}
}
}
Is it possible that image and vhd field stored in different storage account?
I try to use two storage account in the same resource group. But the error message still mentions that "source and destination storage accounts are different"
Upvotes: 3
Views: 6127
Reputation: 18584
I don't know how other answers are upvoted. OP post is correct - custom image and VM os disk needs to be in the same storage account which is a great limitation. Just tried that using the API and I'm getting:
"MsRestAzure::AzureOperationError: ConflictingUserInput: Source and destination storage accounts for disk test-terminate are different."
Upvotes: 1
Reputation: 1200
For me it has just worked like this:
Prerequisite - The Storage Account with the User Image VHD should BE THE SAME, in the SAME GROUP.
Then, it worked.
Upvotes: 1
Reputation: 31
Here is what I found from launching VM from Azure ARM custom image through my test:
I tried launching VM from custom image from different resource group and storage account(same subscription, same region) and got error: "Source and destination storage accounts for disk are different" But if I launch VM from custom image from different storage account while resource group is the same, I get my VM launched without error.
Upvotes: 3
Reputation: 8717
It is a requirement that the source image and the destination vhd reside in the same storage account, however it is not required that the storage account be in the same resource group as the VM. It must be in the same region/location, but does not have to be in the same resource group.
So you can set up a storage account beforehand, put your source image in there and not have to worry about copying it during deployment, that will happen automatically. Here's a snippet of how I configure my templates:
"userImageName":"[concat('http://',parameters('userImageStorageAccountName'),'.blob.core.windows.net/',parameters('userImageStorageContainerName'),'/',parameters('userImageVhdName'))]",
"osDiskVhdContainer": "[concat('http://',parameters('userImageStorageAccountName'),'.blob.core.windows.net/',parameters('vmImageStorageContainerName'),'/')]"
Same storage account but different containers for images and vhds.
So make sure:
Upvotes: 2
Reputation: 136136
If by different storage account
you mean a storage account in another subscription, then no. The storage account and virtual machine must be in the same subscription.
UPDATE
Found the answer in the template description page here: https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-from-user-image
Prerequisite - The Storage Account with the User Image VHD should already exist in the same resource group.
So based on this, as long as your storage accounts are in same Azure Subscriptions and are in same Resource Group, you should be fine even if the storage accounts are different.
Upvotes: 0