VM 관리 디스크 템플릿 사용
이 문서에서는 Azure Resource Manager 템플릿을 사용하여 Azure Stack Hub에서 가상 머신을 프로비전할 때 관리 디스크와 관리되지 않는 디스크 간의 차이점을 설명합니다. 이 예제는 관리되지 않는 디스크를 사용하는 기존 템플릿을 관리 디스크로 변환하는 데 도움이 됩니다.
관리되지 않는 디스크 템플릿 서식 지정
시작하려면 관리되지 않는 디스크가 배포되는 방법을 살펴보겠습니다. 관리되지 않는 디스크를 만들 때 VHD 파일을 저장할 스토리지 계정이 필요합니다. 새 스토리지 계정을 만들거나 이미 존재하는 계정을 사용할 수 있습니다. 다음과 같이 템플릿의 리소스 블록에 새 스토리지 계정 리소스를 만듭니다.
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2017-10-01",
"name": "[variables('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
가상 머신 개체 내에서 스토리지 계정에 대한 종속성을 추가하여 가상 머신 앞에 만들어지도록 합니다.
storageProfile
섹션에서 스토리지 계정을 참조하고 OS 디스크 및 데이터 디스크에 필요한 VHD 위치의 전체 URI를 지정합니다. 다음 예제에서는 이미지에서 OS 디스크 1개와 1023GB 크기의 빈 데이터 디스크 하나를 만듭니다.
{
"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": {...}
}
}
관리 디스크 템플릿 서식 지정
Azure 관리 디스크를 사용하면 디스크가 최상위 리소스가 되며 사용자가 더 이상 스토리지 계정을 만들 필요가 없습니다. 관리 디스크는 2017-03-30
API 버전에서 처음 도입되었습니다. 다음 섹션에서는 기본 설정을 안내하고 디스크를 추가로 사용자 지정하는 방법을 설명합니다.
기본 관리 디스크 설정
관리 디스크가 있는 VM을 만들려면 더 이상 스토리지 계정 리소스를 만들 필요가 없습니다. 아래 템플릿 예제에서는 이전의 관리되지 않는 디스크 예제와 몇 가지 차이점이 있습니다.
-
apiVersion
관리 디스크를 지원하는 "virtualMachines" 리소스 유형의 버전입니다. -
osDisk
및dataDisks
더 이상 VHD에 대한 특정 URI를 참조하지 않습니다. - 추가 속성을 지정하지 않고 배포할 때 디스크는 VM 크기에 따라 스토리지 유형을 사용합니다. 예를 들어 Premium Storage를 지원하는 VM 크기(Standard_DS2_v2 같은 이름에 "s"가 있는 크기)를 사용하는 경우 프리미엄 디스크는 기본적으로 구성됩니다. 디스크의 sku 설정을 사용하여 스토리지 유형을 지정하여 이를 변경할 수 있습니다.
- 디스크 이름을 지정하지 않으면 OS 디스크에 대한
<VMName>_OsDisk_1_<randomstring>
형식을 사용하고 각 데이터 디스크에 대해<VMName>_disk<#>_<randomstring>
.- 사용자 지정 이미지에서 VM을 만드는 경우 스토리지 계정 유형 및 디스크 이름에 대한 기본 설정은 사용자 지정 이미지 리소스에 정의된 디스크 속성에서 검색됩니다. 템플릿에서 이러한 값들을 지정하여 재정의할 수 있습니다.
- 기본적으로 디스크 캐싱은 OS 디스크에 대해 읽기/쓰기가 , 데이터 디스크의 경우 None이 입니다.
- 다음 예제에서는 여전히 스토리지 계정 종속성이 있지만 진단 스토리지에만 해당하며 디스크 스토리지에는 필요하지 않습니다.
{
"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": {...}
}
}
최상위 관리 디스크 리소스 사용
가상 머신 개체에서 디스크 구성을 지정하는 대신 최상위 디스크 리소스를 만들고 가상 머신 만들기의 일부로 연결할 수 있습니다. 반드시 2017-03-30
을 disks
리소스 API 버전으로 사용해야 합니다. 예를 들어 다음과 같이 디스크 리소스를 만들어 데이터 디스크로 사용할 수 있습니다. 이 예제에서는 vmName
디스크 이름의 일부로 사용됩니다.
{
"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 개체 내에서 연결할 디스크 개체를 참조합니다.
managedDisk
속성에서 만든 관리 디스크의 리소스 ID를 지정하면 VM을 만들 때 디스크를 첨부할 수 있습니다. VM 리소스의 apiVersion
가 2017-12-01
로 설정되었습니다. 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": {...}
}
}
관리 디스크를 사용하여 VM을 포함한 관리 가용성 집합 만들기
관리 디스크를 사용하여 VM으로 관리되는 가용성 집합을 만들려면 가용성 집합 리소스에 sku
개체를 추가하고 name
속성을 Aligned
설정합니다. 이 속성을 사용하면 각 VM의 디스크가 서로 충분히 격리되어 단일 실패 지점을 방지할 수 있습니다. 또한 가용성 집합 리소스의 apiVersion
가 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"
}
}
다음 단계
- 관리 디스크에 대한 자세한 내용은 Azure Stack Hub 관리 디스크 참조하세요.
- Microsoft.Compute/virtualMachines 템플릿 참조에서 가상 머신 리소스에 대한 템플릿 참조 설명서를 검토하세요.
- Microsoft.Compute/disks 템플릿 참조 문서에서 디스크 리소스에 대한 템플릿 참조 설명서를 검토합니다.