如何为 Azure VM 部署临时 OS 磁盘
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集
本文演示如何通过门户、ARM 模板部署、CLI 和 PowerShell 创建包含临时 OS 磁盘的虚拟机或虚拟机规模集。
门户
在 Azure 门户中,可以通过打开“磁盘”选项卡的“高级”部分,在部署虚拟机或虚拟机规模集时选择使用临时磁盘。要选择临时 OS 磁盘的位置,请选择“OS 缓存位置”或“临时磁盘位置” 。
如果使用临时磁盘或 OS 缓存放置或临时磁盘放置的选项呈灰色显示,则你选择的 VM 大小可能没有大于 OS 映像的缓存/临时大小或不支持高级存储。 返回到“基本信息”页,尝试选择另一 VM 大小。
规模集模板部署
创建一个使用临时 OS 磁盘的规模集时,其过程很简单,就是将 diffDiskSettings
属性添加到模板中的 Microsoft.Compute/virtualMachineScaleSets/virtualMachineProfile
资源类型。 另外,对于临时 OS 磁盘,必须将缓存策略设置为 ReadOnly
。 对于 OS 缓存磁盘放置,可以将放置更改为 CacheDisk
。
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"location": "China North 2",
"apiVersion": "2019-12-01",
"sku": {
"name": "Standard_DS2_v2",
"capacity": "2"
},
"properties": {
"upgradePolicy": {
"mode": "Automatic"
},
"virtualMachineProfile": {
"storageProfile": {
"osDisk": {
"diffDiskSettings": {
"option": "Local" ,
"placement": "ResourceDisk"
},
"caching": "ReadOnly",
"createOption": "FromImage"
},
"imageReference": {
"publisher": "publisherName",
"offer": "offerName",
"sku": "skuName",
"version": "imageVersion"
}
},
"osProfile": {
"computerNamePrefix": "myvmss",
"adminUsername": "azureuser",
"adminPassword": "P@ssw0rd!"
}
}
}
}
注意
相应地替换所有其他值。
VM 模板部署
可以通过模板部署使用临时 OS 磁盘的 VM。 创建使用临时 OS 磁盘的 VM 的过程是将 diffDiskSettings
属性添加到模板中的 Microsoft.Compute/virtualMachines 资源类型。 另外,对于临时 OS 磁盘,必须将缓存策略设置为 ReadOnly
。 对于 OS 缓存磁盘放置,放置选项可以更改为 CacheDisk
。
{
"type": "Microsoft.Compute/virtualMachines",
"name": "myVirtualMachine",
"location": "China North 2",
"apiVersion": "2019-12-01",
"properties": {
"storageProfile": {
"osDisk": {
"diffDiskSettings": {
"option": "Local" ,
"placement": "ResourceDisk"
},
"caching": "ReadOnly",
"createOption": "FromImage"
},
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2016-Datacenter-smalldisk",
"version": "latest"
},
"hardwareProfile": {
"vmSize": "Standard_DS2_v2"
}
},
"osProfile": {
"computerNamePrefix": "myvirtualmachine",
"adminUsername": "azureuser",
"adminPassword": "P@ssw0rd!"
}
}
}
CLI
若要将临时磁盘用于 CLI VM 部署,请将 az vm create 中的 --ephemeral-os-disk
参数设置为 true
,将 --ephemeral-os-disk-placement
参数设置为 ResourceDisk
(对于临时磁盘放置)或 CacheDisk
(对于缓存磁盘放置),并将 --os-disk-caching
参数设置为 ReadOnly
。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image imageName \
--ephemeral-os-disk true \
--ephemeral-os-disk-placement ResourceDisk \
--os-disk-caching ReadOnly \
--admin-username azureuser \
--generate-ssh-keys
注意
相应地替换 myVM
、myResourceGroup
、imageName
和 azureuser
。
对于规模集,可对 az-vmss-create 使用相同的 --ephemeral-os-disk true
参数,并将 --os-disk-caching
参数设置为 ReadOnly
,将 --ephemeral-os-disk-placement
参数设置为 ResourceDisk
(对于临时磁盘放置)或 CacheDisk
(对于缓存磁盘放置)。
使用 REST 重置 VM 映像
可以按如下所述使用 REST API 对具有临时 OS 磁盘的虚拟机实例进行重置映像,并通过 Azure 门户转到 VM 的“概述”窗格。 对于规模集,已经可以通过 PowerShell、CLI 和门户进行重置映像。
POST https://management.chinacloudapi.cn/subscriptions/{sub-
id}/resourceGroups/{rgName}/providers/Microsoft.Compute/VirtualMachines/{vmName}/reimage?api-version=2019-12-01"
PowerShell
若要将临时磁盘用于 PowerShell VM 部署,请在 VM 配置中使用 Set-AzVMOSDisk。 将 -DiffDiskSetting
设为 Local
,-Caching
设为 ReadOnly
,-DiffDiskPlacement
设为 ResourceDisk
。
Set-AzVMOSDisk -DiffDiskSetting Local -DiffDiskPlacement ResourceDisk -Caching ReadOnly
若要将缓存磁盘上的临时磁盘用于 PowerShell VM 部署,请在 VM 配置中使用 Set-AzVMOSDisk。 将 -DiffDiskSetting
设为 Local
,-Caching
设为 ReadOnly
,-DiffDiskPlacement
设为 CacheDisk
。
Set-AzVMOSDisk -DiffDiskSetting Local -DiffDiskPlacement CacheDisk -Caching ReadOnly
对于规模集部署,请在配置中使用 Set-AzVmssStorageProfile cmdlet。 将 -DiffDiskSetting
设为 Local
,-Caching
设为 ReadOnly
,-DiffDiskPlacement
设为 ResourceDisk
或 CacheDisk
。
Set-AzVmssStorageProfile -DiffDiskSetting Local -DiffDiskPlacement ResourceDisk -OsDiskCaching ReadOnly
后续步骤
详细了解临时 OS 磁盘。