Azure CLI - 如何更新附加到 Azure VM 的实时托管数据磁盘的缓存设置

Azure CLI - How to update cache setting of a live managed data disk attached to an Azure VM

需要一些帮助来确定 Azure CLI 命令和参数以更新连接到 Azure VM 的实时托管数据磁盘的缓存设置。

托管数据磁盘已创建并附加到我无法控制的 Azure VM。默认情况下,主机缓存设置为 Read-Only。出于某些性能原因,我想将附加数据磁盘的主机缓存设置为 None

我尝试了什么?

  1. 尝试使用以下命令
az vm update --subscription my-subscription --name my-vm-name --resource-group my-rgroup-name --disk-caching os=ReadWrite

此命令更新 OS 磁盘主机缓存设置。但是,无法更新托管磁盘设置。我尝试了不同的密钥,如托管、数据磁盘、附加等...而不是 os=ReadWrite 中的 os;没有任何效果,命令抛出 ValueError

ValueError: invalid literal for int() with base 10: 'data-disks'
  1. 探索了另一个命令 - az disk update。但是,它没有更新托管磁盘缓存设置的选项。

  2. 尝试分离并重新附加受管磁盘并将 --caching 设置为 None。有用。但是,这在我的情况下是不允许的。

az vm disk detach --subscription my-subscription -g my-rgroup-name --vm-name my-vm-name --name managed-disk-name

az vm disk attach --subscription my-subscription -g my-rgroup-name --vm-name my-vm-name --name managed-disk-name --caching none

自动化需要这个。因此,无法从 Azure 门户 UI 更改此设置。

非常感谢您的建议。

在不使用以下 cmdlet 将磁盘从虚拟机分离的情况下将托管磁盘缓存从 ReadWrite\ReadOnly 更改为 None

我们已经在我们的环境中测试了这个 cmdlet,方法是创建一个 VirtualMachine 并将数据磁盘连接到它,它工作正常。

这是 Cmdlet:

az vm update --resource-group <resource-group-name> --name <vmName> --disk-caching os=ReadWrite 0(LunNumberOfTheDisk)=None

这里是示例输出截图以供参考:

  1. 下面的屏幕截图显示了执行上述 cmdlet 之前磁盘缓存的当前状态。

  1. 在下面的屏幕截图中,您可以看到我们在没有停止或从虚拟机分离磁盘的情况下执行了 cmdlet,并且操作在没有任何中断的情况下成功。