VM yönetilen disk şablonlarını kullanma
Bu makalede, Azure Stack Hub'da sanal makine sağlamak için Azure Resource Manager şablonları kullanılırken yönetilen ve yönetilmeyen diskler arasındaki farklar açıklanmaktadır. Örnekler, yönetilmeyen diskleri kullanan mevcut şablonları yönetilen disklere dönüştürmenize yardımcı olur.
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 hesap kullanabilirsiniz. Şablonun kaynaklar bloğunda aşağıdaki gibi yeni bir depolama hesabı kaynağı oluşturun:
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2017-10-01",
"name": "[variables('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
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 ile tüm veri diskleri için gereken VHD konumunun tam URI'sini belirtin. Aşağıdaki örnek bir görüntüden bir işletim sistemi diski ve 1023 GB boyutuna sahip boş bir veri diski oluşturur:
{
"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": {...}
}
}
Yönetilen diskler şablon biçimlendirmesi
Azure yönetilen diskleri 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 2017-03-30
. Aşağıdaki bölümlerde varsayılan ayarlara göz gezdirilir ve disklerinizi nasıl daha fazla özelleştirebileceğiniz açıklanır.
Varsayılan yönetilen disk ayarları
Yönetilen diskleri olan bir VM oluşturmak için artık depolama hesabı kaynağını oluşturmanız gerekmez. Aşağıdaki şablon örneğinde, önceki yönetilmeyen disk örneklerinden bazı farklar vardır:
- ,
apiVersion
yönetilen diskleri destekleyen bir "virtualMachines" kaynak türü için bir sürümdür. -
osDisk
vedataDisks
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_DS2_v2 gibi "s" bulunan boyutlar) premium diskler varsayılan olarak yapılandırılır. Depolama türünü belirtmek için diskin sku ayarını kullanarak bunu değiştirebilirsiniz.
- Disk için ad belirtilmezse, işletim sistemi diski ve
<VMName>_disk<#>_<randomstring>
her veri diski için biçimini<VMName>_OsDisk_1_<randomstring>
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, disk önbelleğe alma işletim sistemi diski için okuma/yazma , veri diskleri için yok şeklindedir.
- Aşağıdaki örnekte, yine de 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": "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": {...}
}
}
Ü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. Kaynak API sürümü olarak kullandığınızdan 2017-03-30
disks
emin olun. Örneğin, veri diski olarak kullanmak için aşağıdaki gibi bir disk kaynağı oluşturabilirsiniz. Bu örnekte, vmName
disk adının bir parçası olarak kullanılır:
{
"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
}
}
VM nesnesi içinde, eklenecek disk nesnesine başvurun. özelliğinde managedDisk
oluşturulan yönetilen diskin kaynak kimliğinin belirtilmesi, VM oluşturulurken diskin ekini sağlar.
apiVersion
VM kaynağı için olarak ayarlanır2017-12-01
. 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": "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": {...}
}
}
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 Aligned
ayarlayınname
. Bu özellik, tek hata noktalarından kaçınmak için her vm için disklerin birbirinden yeterince yalıtılmasını sağlar. Ayrıca kullanılabilirlik kümesi kaynağı için değerinin olarak ayarlandığını 2017-12-01
unutmayınapiVersion
:
{
"type": "Microsoft.Compute/availabilitySets",
"apiVersion": "2017-12-01",
"location": "[resourceGroup().location]",
"name": "[variables('avSetName')]",
"properties": {
"PlatformUpdateDomainCount": 1,
"PlatformFaultDomainCount": 2
},
"sku": {
"name": "Aligned"
}
}
Sonraki adımlar
- Yönetilen diskler hakkında daha fazla bilgi edinmek için bkz. Azure Stack Hub yönetilen diskleri.
- Microsoft.Compute/virtualMachines şablon başvurusunda sanal makine kaynakları için şablon başvurusu belgelerini gözden geçirin.
- Microsoft.Compute/disks şablon başvuru belgesinde disk kaynakları için şablon başvuru belgelerini gözden geçirin.