Menggunakan disk di Templat Azure Resource Manager

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Dokumen ini menjelaskan perbedaan antara disk terkelola dan tidak terkelola saat menggunakan templat Azure Resource Manager untuk memprovisikan komputer virtual. Contoh-contoh dalam dokumen ini akan membantu Anda memperbarui templat yang ada yang menggunakan Disk tidak terkelola ke disk terkelola. Sebagai referensi, kami menggunakan templat vm-simple-windows sebagai panduan. Anda dapat melihat templat menggunakan Disk terkelola dan versi sebelumnya menggunakan disk tidak terkelola jika Anda ingin membandingkannya secara langsung.

Pemformatan templat Disk Tidak Terkelola

Untuk memulai, mari kita lihat cara disk yang tidak dikelola diterapkan. Saat membuat disk tidak terkelola, Anda memerlukan akun penyimpanan untuk menyimpan file VHD. Anda dapat membuat akun penyimpanan baru atau menggunakan akun yang sudah ada. Artikel ini menunjukkan kepada Anda cara membuat akun penyimpanan baru. Buat sumber daya akun penyimpanan di blok sumber daya seperti yang ditunjukkan di bawah ini.

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

Dalam objek komputer virtual, tambahkan dependensi pada akun penyimpanan untuk memastikan bahwa akun dibuat sebelum komputer virtual. Dalam bagian storageProfile tersebut, tentukan URI lengkap lokasi VHD, yang mereferensikan akun penyimpanan dan diperlukan untuk disk OS dan semua disk data.

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

Pemformatan templat disk terkelola

Dengan Disk Terkelola Azure, disk menjadi sumber daya tingkat teratas dan tidak lagi memerlukan akun penyimpanan untuk dibuat oleh pengguna. Disk terkelola pertama kali diekspos dalam versi API 2016-04-30-preview, tersedia di semua versi API berikutnya dan kini menjadi jenis disk default. Bagian berikut menjelaskan pengaturan default dan detail cara mengkustomisasi disk Anda lebih lanjut.

Catatan

Disarankan untuk menggunakan versi API yang lebih baru dari 2016-04-30-preview karena ada perubahan besar antara 2016-04-30-preview dan 2017-03-30.

Setelan disk terkelola default

Untuk membuat VM dengan disk terkelola, Anda tidak perlu lagi membuat sumber daya akun penyimpanan. Merujuk contoh templat di bawah ini, ada beberapa perbedaan dari contoh disk tidak terkelola sebelumnya untuk dicatat:

  • apiVersion adalah versi yang mendukung disk terkelola.
  • osDisk dan dataDisks tidak lagi merujuk ke URI tertentu untuk VHD.
  • Saat menyebarkan tanpa menentukan properti tambahan, disk akan menggunakan jenis penyimpanan berdasarkan ukuran VM. Misalnya, jika Anda menggunakan ukuran VM yang mendukung penyimpanan premium (ukuran dengan "s" dalam namanya seperti Standard_D2s_v3) maka disk premium akan dikonfigurasi secara default. Anda dapat mengubahnya dengan menggunakan pengaturan sku disk untuk menentukan jenis penyimpanan.
  • Jika tidak ada nama untuk disk yang ditentukan, disk mengambil format <VMName>_OsDisk_1_<randomstring> untuk disk OS dan <VMName>_disk<#>_<randomstring> untuk setiap disk data.
    • Jika VM sedang dibuat dari gambar kustom, maka pengaturan default untuk jenis akun penyimpanan dan nama disk diambil dari properti disk yang ditentukan dalam sumber daya gambar kustom. Sumber daya ini dapat ditimpa dengan menentukan nilai untuknya dalam templat.
  • Secara default, enkripsi disk Azure dinonaktifkan.
  • Secara default, penembolokan disk adalah Baca/Tulis untuk disk OS dan Tidak Ada untuk disk data.
  • Dalam contoh di bawah ini, masih ada dependensi akun penyimpanan, meskipun contoh ini hanya untuk penyimpanan diagnostik dan tidak diperlukan untuk penyimpanan disk.
{
    "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": {...}
    }
}

Menggunakan sumber daya disk terkelola tingkat atas

Sebagai alternatif untuk menentukan konfigurasi disk di objek komputer virtual, Anda dapat membuat sumber daya disk tingkat atas dan melampirkannya sebagai bagian dari pembuatan komputer virtual. Misalnya, Anda dapat membuat sumber daya disk sebagai berikut untuk digunakan sebagai disk data.

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

Di dalam objek VM, referensikan objek disk yang akan dilampirkan. Menentukan ID sumber daya dari disk terkelola yang dibuat di properti managedDisk memungkinkan lampiran disk saat VM dibuat. apiVersion untuk sumber daya VM diatur ke 2017-03-30. Dependensi pada sumber daya disk ditambahkan untuk memastikan sumber daya berhasil dibuat sebelum pembuatan VM.

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

Membuat set ketersediaan terkelola dengan VM menggunakan disk terkelola

Untuk membuat set ketersediaan terkelola dengan VM menggunakan disk terkelola, tambahkan objek sku ke sumber daya set ketersediaan dan atur properti name ke Aligned. Properti ini memastikan bahwa disk untuk setiap VM cukup terisolasi satu sama lain untuk menghindari satu titik kegagalan. Perhatikan juga bahwa apiVersion untuk sumber daya set ketersediaan diatur ke 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"
    }
}

Disk SSD standar

Di bawah ini adalah parameter yang diperlukan dalam templat Resource Manager untuk membuat Disk SSD Standar:

  • apiVersion untuk Microsoft.Compute harus diatur sebagai 2018-04-01 (atau yang lebih baru)
  • Tentukan managedDisk.storageAccountType sebagai StandardSSD_LRS

Contoh berikut menunjukkan bagian properties.storageProfile.osDisk untuk VM yang menggunakan Disk SSD Standar:

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

Untuk contoh templat lengkap tentang cara membuat disk SSD Standar dengan templat, lihat Membuat VM dari Gambar Windows dengan Disk Data SSD Standar.

Skenario dan kustomisasi tambahan

Untuk menemukan informasi lengkap tentang spesifikasi REST API, tinjau membuat dokumentasi REST API disk terkelola. Anda akan menemukan skenario tambahan serta nilai default dan dapat diterima, yang dapat dikirimkan ke API melalui penyebaran template.

Langkah berikutnya