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
dandataDisks
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
- Untuk templat lengkap yang menggunakan disk terkelola, kunjungi tautan Repo Azure Quickstart berikut ini.
- Kunjungi dokumen Ringkasan Disk Terkelola Azure untuk mempelajari selengkapnya tentang disk terkelola.
- Tinjau dokumentasi referensi templat untuk sumber daya komputer virtual dengan mengunjungi dokumen referensi templat Microsoft.Compute/virtualMachines.
- Tinjau dokumentasi referensi templat untuk sumber daya disk dengan mengunjungi dokumen referensi templat Microsoft.Compute/disks.
- Untuk informasi tentang cara menggunakan disk terkelola di Azure virtual machine scale sets, kunjungi dokumen Menggunakan disk data dengan scale sets.