Używanie dysków w szablonach usługi Azure Resource Manager
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania
W tym dokumencie przedstawiono różnice między dyskami zarządzanymi i niezarządzanych podczas używania szablonów usługi Azure Resource Manager do aprowizowania maszyn wirtualnych. Przykłady ułatwiają aktualizowanie istniejących szablonów, które używają dysków niezarządzanych do dysków zarządzanych. Do celów referencyjnych używamy szablonu vm-simple-windows jako przewodnika. Szablon można zobaczyć przy użyciu dysków zarządzanych i wcześniejszej wersji przy użyciu dysków niezarządzanych, jeśli chcesz je porównać bezpośrednio.
Formatowanie szablonu Dyski niezarządzane
Na początek przyjrzyjmy się, jak są wdrażane dyski niezarządzane. Podczas tworzenia dysków niezarządzanych potrzebne jest konto magazynu do przechowywania plików VHD. Możesz utworzyć nowe konto magazynu lub użyć takiego, który już istnieje. W tym artykule pokazano, jak utworzyć nowe konto magazynu. Utwórz zasób konta magazynu w bloku zasobów, jak pokazano poniżej.
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2018-07-01",
"name": "[variables('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
W obiekcie maszyny wirtualnej dodaj zależność od konta magazynu, aby upewnić się, że została utworzona przed maszyną wirtualną. storageProfile
W sekcji określ pełny identyfikator URI lokalizacji dysku VHD, która odwołuje się do konta magazynu i jest wymagana dla dysku systemu operacyjnego i wszystkich dysków danych.
{
"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": {...}
}
}
Formatowanie szablonów dysków zarządzanych
W przypadku usługi Azure Dyski zarządzane dysk staje się zasobem najwyższego poziomu i nie wymaga już utworzenia konta magazynu przez użytkownika. Dyski zarządzane zostały po raz pierwszy uwidocznione w wersji interfejsu 2016-04-30-preview
API. Są one dostępne we wszystkich kolejnych wersjach interfejsu API i są teraz domyślnym typem dysku. W poniższych sekcjach opisano ustawienia domyślne i szczegółowe informacje na temat dalszego dostosowywania dysków.
Uwaga
Zaleca się użycie wersji interfejsu API później niż 2016-04-30-preview
w przypadku wystąpienia zmian powodujących niezgodność między 2016-04-30-preview
i 2017-03-30
.
Domyślne ustawienia dysku zarządzanego
Aby utworzyć maszynę wirtualną z dyskami zarządzanymi, nie musisz już tworzyć zasobu konta magazynu. Zapoznaj się z poniższym przykładem szablonu, istnieją pewne różnice między poprzednimi przykładami dysków niezarządzanych, które należy zwrócić uwagę:
- Jest
apiVersion
to wersja obsługującą dyski zarządzane. osDisk
idataDisks
nie odwołuje się już do określonego identyfikatora URI dysku VHD.- Podczas wdrażania bez określania dodatkowych właściwości dysk będzie używać typu magazynu na podstawie rozmiaru maszyny wirtualnej. Jeśli na przykład używasz rozmiaru maszyny wirtualnej, który obsługuje magazyn w warstwie Premium (rozmiary o nazwie "s", takie jak Standard_D2s_v3), dyski w warstwie Premium zostaną domyślnie skonfigurowane. Można to zmienić przy użyciu ustawienia jednostki SKU dysku, aby określić typ magazynu.
- Jeśli nie określono nazwy dysku, przyjmuje format
<VMName>_OsDisk_1_<randomstring>
dysku systemu operacyjnego i<VMName>_disk<#>_<randomstring>
dla każdego dysku danych.- Jeśli maszyna wirtualna jest tworzona na podstawie obrazu niestandardowego, ustawienia domyślne dla typu konta magazynu i nazwy dysku są pobierane z właściwości dysku zdefiniowanych w zasobie obrazu niestandardowego. Można je zastąpić, określając wartości dla tych elementów w szablonie.
- Domyślnie szyfrowanie dysków platformy Azure jest wyłączone.
- Domyślnie buforowanie dysku to Odczyt/Zapis dla dysku systemu operacyjnego i Brak dla dysków danych.
- W poniższym przykładzie nadal istnieje zależność konta magazynu, chociaż jest to tylko miejsce do przechowywania diagnostyki i nie jest wymagane w przypadku magazynu dyskowego.
{
"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": {...}
}
}
Korzystanie z zasobu dysku zarządzanego najwyższego poziomu
Alternatywą dla określenia konfiguracji dysku w obiekcie maszyny wirtualnej jest utworzenie zasobu dysku najwyższego poziomu i dołączenie go w ramach tworzenia maszyny wirtualnej. Na przykład możesz utworzyć zasób dysku w następujący sposób, aby użyć go jako dysku danych.
{
"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
}
}
W obiekcie maszyny wirtualnej odwołaj się do obiektu dysku, który ma zostać dołączony. Określenie identyfikatora zasobu dysku zarządzanego utworzonego we managedDisk
właściwości umożliwia załącznik dysku podczas tworzenia maszyny wirtualnej. Dla apiVersion
zasobu maszyny wirtualnej ustawiono wartość 2017-03-30
. Zostanie dodana zależność od zasobu dysku, aby upewnić się, że została pomyślnie utworzona przed utworzeniem maszyny wirtualnej.
{
"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": {...}
}
}
Tworzenie zarządzanych zestawów dostępności z maszynami wirtualnymi przy użyciu dysków zarządzanych
Aby utworzyć zarządzane zestawy dostępności z maszynami wirtualnymi przy użyciu dysków zarządzanych, dodaj sku
obiekt do zasobu zestawu dostępności i ustaw name
właściwość na Aligned
. Ta właściwość zapewnia, że dyski dla każdej maszyny wirtualnej są wystarczająco odizolowane od siebie, aby uniknąć pojedynczych punktów awarii. Należy również pamiętać, że apiVersion
dla zasobu zestawu dostępności ustawiono wartość 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"
}
}
Dyski SSD w warstwie Standardowa
Poniżej przedstawiono parametry wymagane w szablonie usługi Resource Manager w celu utworzenia dysków SSD w warstwie Standardowa:
- Parametr apiVersion dla usługi Microsoft.Compute musi być ustawiony jako
2018-04-01
(lub nowszy) - Określ wartość managedDisk.storageAccountType jako
StandardSSD_LRS
W poniższym przykładzie przedstawiono sekcję properties.storageProfile.osDisk dla maszyny wirtualnej korzystającej z dysków SSD w warstwie Standardowa:
"osDisk": {
"osType": "Windows",
"name": "myOsDisk",
"caching": "ReadWrite",
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "StandardSSD_LRS"
}
}
Kompletny przykładowy szablon tworzenia dysku SSD w warstwie Standardowa przy użyciu szablonu można znaleźć w temacie Create a VM from a Windows Image with Standard SSD Data Disks (Tworzenie maszyny wirtualnej na podstawie obrazu systemu Windows przy użyciu dysków SSD w warstwie Standardowa).
Dodatkowe scenariusze i dostosowania
Aby uzyskać pełne informacje na temat specyfikacji interfejsu API REST, zapoznaj się z dokumentacją dotyczącą tworzenia interfejsu API REST dysku zarządzanego. Znajdziesz dodatkowe scenariusze, a także domyślne i dopuszczalne wartości, które można przesłać do interfejsu API za pomocą wdrożeń szablonów.
Następne kroki
- Aby uzyskać pełne szablony korzystające z dysków zarządzanych, odwiedź następujące linki do repozytorium Szybki start platformy Azure.
- Odwiedź dokument Azure Dyski zarządzane Overview (Omówienie usługi Azure Dyski zarządzane), aby dowiedzieć się więcej o dyskach zarządzanych.
- Zapoznaj się z dokumentacją referencyjną szablonu dla zasobów maszyn wirtualnych, odwiedzając dokument referencyjny szablonu Microsoft.Compute/virtualMachines.
- Zapoznaj się z dokumentacją referencyjną szablonu dla zasobów dysków, odwiedzając dokument referencyjny szablonu Microsoft.Compute/disks.
- Aby uzyskać informacje na temat używania dysków zarządzanych w zestawach skalowania maszyn wirtualnych platformy Azure, zobacz dokument Używanie dysków danych z zestawami skalowania.