使用Terraform创建Azure RHEL Linux VM出现256GB磁盘MaxShares无效报错
问题根因
该报错由当前订阅/部署区域的Azure API校验规则和azurerm Terraform provider的隐性默认参数不匹配导致:
- 256GB Premium SSD LRS磁盘本身支持共享磁盘特性,部分区域的新版Azure API会要求单实例挂载的磁盘显式指定
max_shares = 1,而非provider默认传入的0,其他环境因为区域规则未更新、或者Azure API版本较低不会触发该校验 - Azure门户创建磁盘时会自动根据挂载场景填充正确的
max_shares参数值,因此不会出现报错
修复方案
直接修改磁盘配置,新增显式参数
在你的磁盘配置块中新增max_shares = 1即可解决问题,修改后配置参考:
"disks": [ { "name": "usrtest-disk", "disk_size": 256, "number_of_disks": 1, "storage_account_type": "Premium_LRS", "write_accelerator_enabled": false, "caching": "ReadWrite", "max_shares": 1 } ]
如果你是直接调用azurerm_managed_disk原生资源创建磁盘,在资源块内添加同样的max_shares = 1参数即可
兜底校验项
如果修改参数后仍然报错,可按以下顺序排查:
- 确认当前使用的azurerm provider版本≥3.0,低于该版本存在
max_shares参数默认值处理异常的已知bug - 确认当前订阅没有配置自定义磁盘创建限制规则,可在订阅的资源提供者设置中重置
Microsoft.Compute资源提供者配置
内容的提问来源于stack exchange,提问作者Sudhir Goswami
相关产品推荐
相关产品推荐

