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
endataDisks
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
- Voor volledige sjablonen die gebruikmaken van beheerde schijven, gaat u naar de volgende azure-snelstartopslagplaatskoppelingen.
- Ga naar het overzichtsdocument van Azure Managed Disks voor meer informatie over beheerde schijven.
- Raadpleeg de sjabloonreferentiedocumentatie voor virtuele-machineresources in het sjabloonreferentiedocument Microsoft.Compute/virtualMachines .
- Raadpleeg de referentiedocumentatie voor de sjabloon voor schijfresources in het referentiedocument microsoft.Compute/disks .
- Ga naar het document Gegevensschijven gebruiken met schaalsets voor informatie over het gebruik van beheerde schijven in virtuele-machineschaalsets van Azure.