仅将磁盘附加到 azure 中的一个节点

问题描述

我正在使用 ARM 模板创建 4 个 SHARED 磁盘和 3 个虚拟机。有没有办法只将这些磁盘附加到一个节点上?

下面是我创建磁盘的代码

{
    "type": "Microsoft.Compute/disks","apiVersion": "2018-06-01","name": "[concat(variables('vmName'),'-datadisk1')]","location": "[resourceGroup().location]","sku": {
        "name": "Premium_lrs"
    },"properties": {
        "creationData": {
            "createOption": "Empty"
        },"diskSizeGB": 1024,"maxShares": 5
    }
}

下面是创建虚拟机的代码

{
    "type": "Microsoft.Compute/virtualMachines","apiVersion": "2018-10-01","name": "[variables('vmName')]","dependsOn": [
    "[resourceId('Microsoft.Storage/storageAccounts/',variables('storageAccountName'))]","[resourceId('Microsoft.Network/networkInterfaces/',variables('nicName'))]"
    "[resourceId('Microsoft.Compute/disks/',concat(variables('vmName'),'-datadisk1'))]"
    ],"properties": {
        "hardwareProfile": {...},"osProfile": {...},"storageProfile": {
            "imageReference": {...},"osdisk": {
                "name": "osdisk","vhd": {...},"caching": "ReadWrite","createOption": "FromImage"
            },},"networkProfile": {...},"diagnosticsProfile": {...}
    }
}

由于我要附加多个磁盘,因此将 datadisk 添加到 VM 资源中的属性会将磁盘并行附加到所有 VM,这将导致失败(共享磁盘不能并行附加到多个 VM)。

有没有办法实现仅将共享磁盘附加到一个 VM(通过 VM 资源)或在创建所有 VM 之后?

解决方法

我将通过添加 Powershell Deployment Script

在 ARM 中创建额外的步骤

但是您需要具有修改磁盘能力的服务主体。

,

在 Azure 模板中,似乎只能添加 li 块以将数据磁盘附加到一个 VM。如果您还想创建多个 VM,则需要将要附加多个数据磁盘的 VM 分离到单个资源中,并将数据磁盘添加到该 VM。还有一件事你需要注意。您需要检查 VM 大小以确保 VM 是否可以根据需要附加多个数据磁盘。 VM 大小限制了数据盘的数量。