Korzystanie z szablonów dysków zarządzanych maszyn wirtualnych
W tym artykule opisano różnice między dyskami zarządzanymi i niezarządzanych podczas używania szablonów usługi Azure Resource Manager do aprowizowania maszyn wirtualnych w usłudze Azure Stack Hub. Przykłady ułatwiają konwertowanie istniejących szablonów, które używają dysków niezarządzanych do dysków zarządzanych.
Formatowanie szablonu dysków niezarządzanych
Na początek przyjrzyjmy się sposobowi wdrażania dysków niezarządzanych. Podczas tworzenia dysków niezarządzanych potrzebne jest konto magazynu do przechowywania plików VHD. Możesz utworzyć nowe konto magazynu lub użyć konta, które już istnieje. Utwórz nowy zasób konta magazynu w bloku zasobów szablonu w następujący sposób:
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2017-10-01",
"name": "[variables('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
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óry odwołuje się do konta magazynu i jest potrzebny dla dysku systemu operacyjnego i wszystkich dysków danych. Poniższy przykład tworzy jeden dysk systemu operacyjnego na podstawie obrazu i jeden pusty dysk danych o rozmiarze 1023 GB:
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2017-12-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 szablonu dysków zarządzanych
W przypadku dysków zarządzanych platformy Azure 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 wprowadzone w wersji interfejsu 2017-03-30
API. W poniższych sekcjach przedstawiono ustawienia domyślne i wyjaśniono, jak dodatkowo dostosować dyski.
Domyślne ustawienia dysku zarządzanego
Aby utworzyć maszynę wirtualną z dyskami zarządzanymi, nie musisz już tworzyć zasobu konta magazynu. W poniższym przykładzie szablonu istnieją pewne różnice między poprzednimi przykładami dysków niezarządzanych:
- Jest
apiVersion
to wersja typu zasobu "virtualMachines", który obsługuje 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 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_DS2_v2), 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, domyślne ustawienia 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 w szablonie.
- Domyślnie buforowanie dysków jest odczytywane/zapisywane 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 magazyn diagnostyki i nie jest wymagany w przypadku magazynu dysków:
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2017-12-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. Pamiętaj, aby użyć 2017-03-30
jako wersji interfejsu disks
API zasobów. Na przykład można utworzyć zasób dysku w następujący sposób, aby użyć go jako dysku danych. W tym przykładzie vmName
użyto nazwy dysku:
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2017-03-30",
"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 jest ustawiona wartość 2017-12-01
. 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": "2017-12-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 za pomocą maszyn wirtualnych 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ść 2017-12-01
:
{
"type": "Microsoft.Compute/availabilitySets",
"apiVersion": "2017-12-01",
"location": "[resourceGroup().location]",
"name": "[variables('avSetName')]",
"properties": {
"PlatformUpdateDomainCount": 1,
"PlatformFaultDomainCount": 2
},
"sku": {
"name": "Aligned"
}
}
Następne kroki
- Zobacz Dyski zarządzane usługi Azure Stack Hub , aby dowiedzieć się więcej o dyskach zarządzanych.
- Zapoznaj się z dokumentacją referencyjną szablonu dotyczącą zasobów maszyn wirtualnych w dokumentacji szablonu Microsoft.Compute/virtualMachines.
- Zapoznaj się z dokumentacją referencyjną szablonu dotyczącą zasobów dysków w dokumencie referencyjnym szablonu Microsoft.Compute/disks .