Azure Resource Manager Şablonlarında diskleri kullanma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri

Bu belgede, sanal makineleri sağlamak için Azure Resource Manager şablonları kullanılırken yönetilen ve yönetilmeyen diskler arasındaki farklar gösterilmektedir. Örnekler, yönetilmeyen Diskler kullanan mevcut şablonları yönetilen disklere güncelleştirmenize yardımcı olur. Başvuru için vm-simple-windows şablonunu kılavuz olarak kullanıyoruz. Doğrudan karşılaştırmak isterseniz, şablonu hem yönetilen Diskleri hem de yönetilmeyen diskleri kullanan önceki bir sürümü kullanarak görebilirsiniz.

Yönetilmeyen Diskler şablon biçimlendirmesi

Başlamak için yönetilmeyen disklerin nasıl dağıtıldığına göz atalım. Yönetilmeyen diskler oluştururken, VHD dosyalarını tutmak için bir depolama hesabına ihtiyacınız vardır. Yeni bir depolama hesabı oluşturabilir veya zaten var olan bir depolama hesabı kullanabilirsiniz. Bu makalede yeni bir depolama hesabının nasıl oluşturulacağı gösterilmektedir. Aşağıda gösterildiği gibi kaynaklar bloğunda bir depolama hesabı kaynağı oluşturun.

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

Sanal makine nesnesi içinde, sanal makineden önce oluşturulduğundan emin olmak için depolama hesabına bir bağımlılık ekleyin. storageProfile bölümünde, depolama hesabına başvuran ve işletim sistemi diski ve tüm veri diskleri için gereken VHD konumunun tam URI'sini belirtin.

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

Yönetilen diskler şablonu biçimlendirmesi

Azure Yönetilen Diskler ile disk en üst düzey bir kaynak haline gelir ve artık kullanıcı tarafından bir depolama hesabı oluşturulmasını gerektirmez. Yönetilen diskler ilk olarak API sürümünde kullanıma sunulmuştur 2016-04-30-preview , sonraki tüm API sürümlerinde kullanılabilir ve artık varsayılan disk türüdür. Aşağıdaki bölümlerde varsayılan ayarlara göz atın ve disklerinizi nasıl daha fazla özelleştirebileceğinizi ayrıntılı olarak öğrenin.

Not

ile 2017-03-30arasında 2016-04-30-preview hataya neden olan değişiklikler olduğundan daha 2016-04-30-preview sonraki bir API sürümünü kullanmanız önerilir.

Varsayılan yönetilen disk ayarları

Yönetilen disklerle vm oluşturmak için artık depolama hesabı kaynağını oluşturmanız gerekmez. Aşağıdaki şablon örneğine başvurarak, önceki yönetilmeyen disk örneklerinden dikkate alınan bazı farklar vardır:

  • apiVersion, yönetilen diskleri destekleyen bir sürümdür.
  • osDisk ve dataDisks artık VHD için belirli bir URI'ye başvurmaz.
  • Ek özellikler belirtmeden dağıtım yaparken, disk VM'nin boyutuna göre bir depolama türü kullanır. Örneğin, premium depolamayı destekleyen bir VM boyutu kullanıyorsanız (adlarında Standard_D2s_v3 gibi "s" olan boyutlar) premium diskler varsayılan olarak yapılandırılır. Depolama türü belirtmek için diskin sku ayarını kullanarak bunu değiştirebilirsiniz.
  • Disk için ad belirtilmezse, işletim sistemi diskinin ve <VMName>_disk<#>_<randomstring> her veri diskinin <VMName>_OsDisk_1_<randomstring> biçimini alır.
    • Özel bir görüntüden vm oluşturuluyorsa depolama hesabı türü ve disk adı için varsayılan ayarlar, özel görüntü kaynağında tanımlanan disk özelliklerinden alınır. Bunlar şablonda bunlar için değerler belirtilerek geçersiz kılınabilir.
  • Varsayılan olarak, Azure disk şifrelemesi devre dışıdır.
  • Varsayılan olarak, disk önbelleğe alma işletim sistemi diski için Okuma/Yazma ve veri diskleri için Hiçbiri'dir.
  • Aşağıdaki örnekte hala bir depolama hesabı bağımlılığı vardır, ancak bu yalnızca tanılamanın depolanması içindir ve disk depolama için gerekli değildir.
{
    "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": {...}
    }
}

Üst düzey yönetilen disk kaynağı kullanma

Sanal makine nesnesinde disk yapılandırmasını belirtmeye alternatif olarak, bir üst düzey disk kaynağı oluşturabilir ve sanal makine oluşturma işleminin bir parçası olarak ekleyebilirsiniz. Örneğin, veri diski olarak kullanmak için aşağıdaki gibi bir disk kaynağı oluşturabilirsiniz.

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

VM nesnesi içinde, eklenecek disk nesnesine başvurun. özelliğinde oluşturulan yönetilen diskin kaynak kimliğinin managedDisk belirtilmesi, VM oluşturulurken diskin ekini sağlar. apiVersion VM kaynağı için olarak ayarlanır2017-03-30. VM oluşturmadan önce başarıyla oluşturulduğundan emin olmak için disk kaynağına bir bağımlılık eklenir.

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

Yönetilen diskleri kullanarak VM'lerle yönetilen kullanılabilirlik kümeleri oluşturma

Yönetilen diskleri kullanarak VM'lerle yönetilen kullanılabilirlik kümeleri oluşturmak için, nesnesini kullanılabilirlik kümesi kaynağına ekleyin sku ve özelliğini olarak Alignedayarlayınname. Bu özellik, tek hata noktalarını önlemek için her vm için disklerin birbirinden yeterince yalıtılmasını sağlar. Ayrıca, kullanılabilirlik kümesi kaynağı için öğesinin olarak 2018-10-01ayarlandığını unutmayınapiVersion.

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

Standart SSD diskler

Standart SSD Diskleri oluşturmak için Resource Manager şablonunda gereken parametreler aşağıdadır:

  • Microsoft.Compute için apiVersion , (veya üzeri) olarak 2018-04-01 ayarlanmalıdır
  • managedDisk.storageAccountType değerini olarak belirtin StandardSSD_LRS

Aşağıdaki örnekte, Standart SSD Diskleri kullanan bir VM için properties.storageProfile.osDisk bölümü gösterilmektedir:

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

Şablonla Standart SSD disk oluşturma işleminin eksiksiz bir şablon örneği için bkz . Standart SSD Veri Diskleri ile Windows Görüntüsünden VM oluşturma.

Ek senaryolar ve özelleştirmeler

REST API belirtimleri hakkında tam bilgi edinmek için yönetilen disk REST API'sini oluşturma belgelerini gözden geçirin. Ek senaryoların yanı sıra şablon dağıtımları aracılığıyla API'ye gönderilebilen varsayılan ve kabul edilebilir değerler bulacaksınız.

Sonraki adımlar