Použití šablon spravovaných disků virtuálního počítače

Tento článek popisuje rozdíly mezi spravovanými a nespravovanými disky při použití šablon Azure Resource Manager ke zřizování virtuálních počítačů ve službě Azure Stack Hub. Příklady vám pomůžou převést existující šablony, které používají nespravované disky, na spravované disky.

Formátování šablon nespravovaných disků

Nejprve se podíváme na to, jak se nasazují nespravované disky. Při vytváření nespravovaných disků potřebujete účet úložiště pro uložení souborů VHD. Můžete vytvořit nový účet úložiště nebo použít účet, který už existuje. V bloku prostředků šablony vytvořte nový prostředek účtu úložiště následujícím způsobem:

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

V rámci objektu virtuálního počítače přidejte závislost na účtu úložiště, abyste zajistili, že se vytvoří před virtuálním počítačem. storageProfile V části zadejte úplný identifikátor URI umístění virtuálního pevného disku, který odkazuje na účet úložiště a který je potřebný pro disk s operačním systémem a všechny datové disky. Následující příklad vytvoří jeden disk s operačním systémem z image a jeden prázdný datový disk o velikosti 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": {...}
    }
}

Formátování šablon spravovaných disků

Se spravovanými disky Azure se disk stane prostředkem nejvyšší úrovně a už nevyžaduje, aby uživatel vytvořil účet úložiště. Spravované disky byly poprvé představeny ve 2017-03-30 verzi rozhraní API. Následující části vás provedou výchozím nastavením a vysvětlují, jak disky dále přizpůsobit.

Výchozí nastavení spravovaného disku

Pokud chcete vytvořit virtuální počítač se spravovanými disky, nemusíte už vytvářet prostředek účtu úložiště. V následujícím příkladu šablony jsou některé rozdíly oproti předchozím příkladům nespravovaných disků:

  • Je apiVersion verze pro typ prostředku "virtualMachines", který podporuje spravované disky.
  • osDisk a dataDisks už se nebude odkazovat na konkrétní identifikátor URI virtuálního pevného disku.
  • Při nasazení bez zadání dalších vlastností použije disk typ úložiště na základě velikosti virtuálního počítače. Pokud například používáte velikost virtuálního počítače, která podporuje službu Premium Storage (velikosti, které mají v názvu "s", například Standard_DS2_v2), budou ve výchozím nastavení nakonfigurované disky Premium. Toto nastavení můžete změnit pomocí nastavení skladové položky disku a určením typu úložiště.
  • Pokud není pro disk zadaný žádný název, použije <VMName>_OsDisk_1_<randomstring> formát pro disk s operačním systémem a <VMName>_disk<#>_<randomstring> pro každý datový disk.
    • Pokud se virtuální počítač vytváří z vlastní image, výchozí nastavení pro typ účtu úložiště a název disku se načtou z vlastností disku definovaných v prostředku vlastní image. Tyto hodnoty je možné přepsat zadáním jejich hodnot v šabloně.
  • Ve výchozím nastavení je ukládání do mezipaměti disku čtení/zápis pro disk s operačním systémem a žádné pro datové disky.
  • V následujícím příkladu stále existuje závislost účtu úložiště, i když se jedná pouze o úložiště diagnostiky a pro diskové úložiště se nevyžaduje:
{
    "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": {...}
    }
}

Použití prostředku spravovaného disku nejvyšší úrovně

Jako alternativu k zadání konfigurace disku v objektu virtuálního počítače můžete vytvořit prostředek disku nejvyšší úrovně a připojit ho jako součást vytváření virtuálního počítače. Jako verzi rozhraní API prostředku nezapomeňte použít 2017-03-30disks . Můžete například následujícím způsobem vytvořit prostředek disku, který se použije jako datový disk. V tomto příkladu vmName se používá jako součást názvu disku:

{
    "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
    }
}

V objektu virtuálního počítače odkažte na objekt disku, který chcete připojit. Zadáním ID prostředku spravovaného disku vytvořeného ve managedDisk vlastnosti umožníte při vytváření virtuálního počítače přílohu disku. Vlastnost apiVersion pro prostředek virtuálního počítače je nastavená na 2017-12-01. Přidá se závislost na prostředku disku, aby se zajistilo, že se před vytvořením virtuálního počítače úspěšně vytvoří:

{
    "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": {...}
    }
}

Vytváření spravovaných skupin dostupnosti s virtuálními počítači s využitím spravovaných disků

Pokud chcete vytvořit spravované skupiny dostupnosti s virtuálními počítači pomocí spravovaných disků, přidejte sku objekt do prostředku skupiny dostupnosti a nastavte name vlastnost na Aligned. Tato vlastnost zajišťuje, že disky jednotlivých virtuálních počítačů jsou dostatečně izolované, aby se zabránilo kritickým bodům způsobujícím selhání. Všimněte si také, že apiVersion pro prostředek skupiny dostupnosti je nastavená hodnota 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"
    }
}

Další kroky