Menggunakan templat disk terkelola VM
Artikel ini menjelaskan perbedaan antara disk terkelola dan tidak terkelola saat menggunakan templat Azure Resource Manager untuk menyediakan mesin virtual di Azure Stack Hub. Contoh tersebut membantu Anda mengonversi templat yang ada yang menggunakan disk tidak terkelola ke disk terkelola.
Pemformatan templat disk yang 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. Buat sumber daya akun penyimpanan baru di blok sumber daya templat, sebagai berikut:
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2017-10-01",
"name": "[variables('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
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. Contoh berikut membuat satu disk OS dari gambar, dan satu disk data kosong dengan ukuran 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": {...}
}
}
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 diperkenalkan dalam versi API 2017-03-30
. Bagian berikut menjelaskan pengaturan default dan menjelaskan cara menyesuaikan disk Anda lebih lanjut.
Setelan disk terkelola default
Untuk membuat VM dengan disk terkelola, Anda tidak perlu lagi membuat sumber daya akun penyimpanan. Dalam contoh templat di bawah ini, ada beberapa perbedaan dari contoh disk yang tidak terkelola sebelumnya:
-
apiVersion
adalah versi untuk jenis sumber daya "virtualMachines" yang mendukung disk terkelola. -
osDisk
dandataDisks
tidak lagi merujuk ke URI tertentu untuk VHD. - Saat menyebarkan tanpa menentukan properti tambahan, disk menggunakan jenis penyimpanan berdasarkan ukuran VM. Misalnya, jika Anda menggunakan ukuran VM yang mendukung penyimpanan premium (ukuran dengan "s" dalam namanya seperti Standard_DS2_v2), 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, 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, penembolokan disk adalah baca/tulis untuk disk OS dan Tidak Ada untuk disk data.
- Dalam contoh berikut, masih ada dependensi akun penyimpanan, meskipun ini hanya untuk penyimpanan diagnostik dan tidak diperlukan untuk penyimpanan disk:
{
"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": {...}
}
}
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. Pastikan untuk menggunakan 2017-03-30
sebagai disks
versi API sumber daya. Misalnya, Anda dapat membuat sumber daya disk sebagai berikut untuk digunakan sebagai disk data. Dalam contoh ini, vmName
digunakan sebagai bagian dari nama disk:
{
"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
}
}
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-12-01
. Dependensi pada sumber daya disk ditambahkan untuk memastikan sumber daya berhasil dibuat sebelum pembuatan VM:
{
"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": {...}
}
}
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 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"
}
}
Langkah berikutnya
- Lihat disk terkelola Azure Stack Hub untuk mempelajari selengkapnya tentang disk terkelola.
- Tinjau dokumentasi referensi templat untuk sumber daya mesin virtual di referensi templat Microsoft.Compute/virtualMachines.
- Tinjau dokumentasi referensi templat untuk sumber daya disk di dokumen referensi templat Microsoft.Compute/disks.