Share via


Schijven gebruiken in Azure Resource Manager-sjablonen

Van toepassing op: ✔️ Linux-VM's ✔️ Windows-VM's ✔️ Flexibele schaalsets ✔️ Uniforme schaalsets

In dit document worden de verschillen beschreven tussen beheerde en onbeheerde schijven bij het gebruik van Azure Resource Manager-sjablonen voor het inrichten van virtuele machines. De voorbeelden helpen u bij het bijwerken van bestaande sjablonen die gebruikmaken van niet-beheerde schijven naar beheerde schijven. Ter referentie gebruiken we de sjabloon vm-simple-windows als richtlijn. U kunt zien dat de sjabloon zowel beheerde schijven als een eerdere versie gebruikt met onbeheerde schijven als u deze rechtstreeks wilt vergelijken.

Sjabloonopmaak voor onbeheerde schijven

Laten we eerst eens kijken hoe onbeheerde schijven worden geïmplementeerd. Wanneer u niet-beheerde schijven maakt, hebt u een opslagaccount nodig om de VHD-bestanden op te slaan. U kunt een nieuw opslagaccount maken of een bestaand opslagaccount gebruiken. In dit artikel wordt beschreven hoe u een nieuw opslagaccount maakt. Maak een opslagaccountresource in het resourceblok, zoals hieronder wordt weergegeven.

{
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2018-07-01",
    "name": "[variables('storageAccountName')]",
    "location": "[resourceGroup().location]",
    "sku": {
        "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {}
}

Voeg binnen het virtuele-machineobject een afhankelijkheid toe van het opslagaccount om ervoor te zorgen dat het wordt gemaakt vóór de virtuele machine. Geef in de storageProfile sectie de volledige URI van de VHD-locatie op, die verwijst naar het opslagaccount en die nodig is voor de besturingssysteemschijf en eventuele gegevensschijven.

{
    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2018-10-01",
    "name": "[variables('vmName')]",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
    ],
    "properties": {
        "hardwareProfile": {...},
        "osProfile": {...},
        "storageProfile": {
            "imageReference": {
                "publisher": "MicrosoftWindowsServer",
                "offer": "WindowsServer",
                "sku": "[parameters('windowsOSVersion')]",
                "version": "latest"
            },
            "osDisk": {
                "name": "osdisk",
                "vhd": {
                    "uri": "[concat(reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, 'vhds/osdisk.vhd')]"
                },
                "caching": "ReadWrite",
                "createOption": "FromImage"
            },
            "dataDisks": [
                {
                    "name": "datadisk1",
                    "diskSizeGB": 1023,
                    "lun": 0,
                    "vhd": {
                        "uri": "[concat(reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, 'vhds/datadisk1.vhd')]"
                    },
                    "createOption": "Empty"
                }
            ]
        },
        "networkProfile": {...},
        "diagnosticsProfile": {...}
    }
}

Sjabloonopmaak voor beheerde schijven

Met Azure Managed Disks wordt de schijf een resource op het hoogste niveau en hoeft er geen opslagaccount meer te worden gemaakt door de gebruiker. Beheerde schijven werden voor het eerst weergegeven in de 2016-04-30-preview API-versie. Ze zijn beschikbaar in alle volgende API-versies en zijn nu het standaardschijftype. In de volgende secties worden de standaardinstellingen beschreven en wordt beschreven hoe u uw schijven verder kunt aanpassen.

Notitie

Het wordt aanbevolen om een API-versie te gebruiken die later is dan 2016-04-30-preview omdat er wijzigingen zijn die fouten veroorzaken tussen 2016-04-30-preview en 2017-03-30.

Standaardinstellingen voor beheerde schijven

Als u een virtuele machine met beheerde schijven wilt maken, hoeft u de opslagaccountresource niet meer te maken. Als u naar het onderstaande sjabloonvoorbeeld verwijst, zijn er enkele verschillen met de vorige niet-beheerde schijfvoorbeelden om op te merken:

  • De apiVersion is een versie die ondersteuning biedt voor beheerde schijven.
  • osDisk en dataDisks niet meer verwijzen naar een specifieke URI voor de VHD.
  • Wanneer u implementeert zonder aanvullende eigenschappen op te geven, gebruikt de schijf een opslagtype op basis van de grootte van de virtuele machine. Als u bijvoorbeeld een VM-grootte gebruikt die premium-opslag ondersteunt (grootten met 's' in de naam, zoals Standard_D2s_v3), worden premium-schijven standaard geconfigureerd. U kunt dit wijzigen met behulp van de SKU-instelling van de schijf om een opslagtype op te geven.
  • Als er geen naam voor de schijf is opgegeven, heeft deze de indeling van <VMName>_OsDisk_1_<randomstring> voor de besturingssysteemschijf en <VMName>_disk<#>_<randomstring> voor elke gegevensschijf.
    • Als een VM wordt gemaakt op basis van een aangepaste installatiekopieën, worden de standaardinstellingen voor het type opslagaccount en de schijfnaam opgehaald uit de schijfeigenschappen die zijn gedefinieerd in de resource van de aangepaste installatiekopieën. Deze kunnen worden overschreven door waarden hiervoor op te geven in de sjabloon.
  • Azure-schijfversleuteling is standaard uitgeschakeld.
  • Schijfcaching is standaard Lezen/schrijven voor de besturingssysteemschijf en Geen voor gegevensschijven.
  • In het onderstaande voorbeeld is er nog steeds een opslagaccountafhankelijkheid, maar dit is alleen voor de opslag van diagnostische gegevens en is niet nodig voor schijfopslag.
{
    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2018-10-01",
    "name": "[variables('vmName')]",
    "location": "[resourceGroup().location]",
    "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
        "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
    ],
    "properties": {
        "hardwareProfile": {...},
        "osProfile": {...},
        "storageProfile": {
            "imageReference": {
                "publisher": "MicrosoftWindowsServer",
                "offer": "WindowsServer",
                "sku": "[parameters('windowsOSVersion')]",
                "version": "latest"
            },
            "osDisk": {
                "createOption": "FromImage"
            },
            "dataDisks": [
                {
                    "diskSizeGB": 1023,
                    "lun": 0,
                    "createOption": "Empty"
                }
            ]
        },
        "networkProfile": {...},
        "diagnosticsProfile": {...}
    }
}

Een beheerde schijfresource op het hoogste niveau gebruiken

Als alternatief voor het opgeven van de schijfconfiguratie in het object van de virtuele machine, kunt u een schijfresource op het hoogste niveau maken en deze koppelen als onderdeel van het maken van de virtuele machine. U kunt bijvoorbeeld als volgt een schijfresource maken om als gegevensschijf te gebruiken.

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

In het VM-object verwijst u naar het schijfobject dat moet worden gekoppeld. Als u de resource-id opgeeft van de beheerde schijf die in de managedDisk eigenschap is gemaakt, kan de schijf worden gekoppeld terwijl de VM wordt gemaakt. De apiVersion voor de VM-resource is ingesteld op 2017-03-30. Er wordt een afhankelijkheid van de schijfresource toegevoegd om ervoor te zorgen dat deze is gemaakt voordat de VM wordt gemaakt.

{
    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2018-10-01",
    "name": "[variables('vmName')]",
    "location": "[resourceGroup().location]",
    "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": {
                "publisher": "MicrosoftWindowsServer",
                "offer": "WindowsServer",
                "sku": "[parameters('windowsOSVersion')]",
                "version": "latest"
            },
            "osDisk": {
                "createOption": "FromImage"
            },
            "dataDisks": [
                {
                    "lun": 0,
                    "name": "[concat(variables('vmName'),'-datadisk1')]",
                    "createOption": "attach",
                    "managedDisk": {
                        "id": "[resourceId('Microsoft.Compute/disks/', concat(variables('vmName'),'-datadisk1'))]"
                    }
                }
            ]
        },
        "networkProfile": {...},
        "diagnosticsProfile": {...}
    }
}

Beheerde beschikbaarheidssets maken met VM's met behulp van beheerde schijven

Als u beheerde beschikbaarheidssets wilt maken met VM's met behulp van beheerde schijven, voegt u het sku -object toe aan de resource van de beschikbaarheidsset en stelt u de name eigenschap in op Aligned. Deze eigenschap zorgt ervoor dat de schijven voor elke VM voldoende van elkaar zijn geïsoleerd om Single Points of Failure te voorkomen. Houd er ook rekening mee dat de apiVersion voor de resource van de beschikbaarheidsset is ingesteld op 2018-10-01.

{
    "type": "Microsoft.Compute/availabilitySets",
    "apiVersion": "2018-10-01",
    "location": "[resourceGroup().location]",
    "name": "[variables('avSetName')]",
    "properties": {
        "PlatformUpdateDomainCount": 3,
        "PlatformFaultDomainCount": 2
    },
    "sku": {
        "name": "Aligned"
    }
}

Standard SSD-schijven

Hieronder ziet u de parameters die nodig zijn in de sjabloon Resource Manager om Standard SSD-schijven te maken:

  • apiVersion voor Microsoft.Compute moet zijn ingesteld als 2018-04-01 (of hoger)
  • Geef managedDisk.storageAccountType op als StandardSSD_LRS

In het volgende voorbeeld ziet u de sectie properties.storageProfile.osDisk voor een VM die gebruikmaakt van Standard SSD-schijven:

"osDisk": {
    "osType": "Windows",
    "name": "myOsDisk",
    "caching": "ReadWrite",
    "createOption": "FromImage",
    "managedDisk": {
        "storageAccountType": "StandardSSD_LRS"
    }
}

Zie Een VM maken op basis van een Windows-installatiekopieën met Standard SSD-gegevensschijven voor een volledig voorbeeld van een sjabloon van het maken van een standard SSD-schijf met een sjabloon.

Aanvullende scenario's en aanpassingen

Raadpleeg de documentatie een REST API voor beheerde schijven maken voor volledige informatie over de REST API-specificaties. U vindt aanvullende scenario's, evenals standaardwaarden en acceptabele waarden die via sjabloonimplementaties naar de API kunnen worden verzonden.

Volgende stappen