如何使用Azure CLI修改Azure虚拟机挂载的在用托管数据盘缓存设置
解决方案:Azure CLI在线修改已挂载托管数据盘的主机缓存设置
报错原因说明
你之前执行az vm update命令抛出ValueError的核心原因是:--disk-caching参数针对数据盘时,键必须传入数据盘对应的数字LUN号,而非data-disks这类字符串。OS盘固定使用os作为标识键,数据盘均使用LUN号标识,因此会触发整数类型转换失败的报错。
操作步骤
1. 查询目标数据盘对应的LUN号
执行以下命令,列出虚拟机所有挂载的数据盘信息,获取目标磁盘的LUN号:
az vm show --subscription <你的订阅ID/名称> \ --resource-group <资源组名称> \ --name <虚拟机名称> \ --query "storageProfile.dataDisks[*].{磁盘名称:name,LUN号:lun,当前缓存设置:caching}" \ -o table
执行后记录需要修改的磁盘对应的数字LUN号,例如查询结果中目标盘LUN号为2。
2. 在线修改缓存配置
直接执行以下命令完成设置调整,无需卸载磁盘、无需重启虚拟机,业务无中断,满足生产环境可用要求:
az vm update --subscription <你的订阅ID/名称> \ --resource-group <资源组名称> \ --name <虚拟机名称> \ --disk-caching 2=None
将命令中的2替换为你第一步查询到的实际LUN号即可。
如果需要同时修改多块数据盘的缓存,可在--disk-caching后传入多组键值对,示例:--disk-caching 0=None 1=ReadOnly os=ReadWrite。
3. 验证修改结果
重新执行第一步的az vm show命令,确认目标磁盘的当前缓存设置字段已变为None即可。
内容的提问来源于stack exchange,提问作者arunkvelu
相关产品推荐
相关产品推荐

