排查存储资源删除错误

适用于:✔️ Linux VM ✔️ Windows VM

在某些情况下,在 Azure 资源管理器部署中尝试删除 Azure 存储帐户、容器或 blob 时,可能会遇到下列错误之一:

未能删除存储帐户 "StorageAccountName"。 错误:正在使用存储帐户的项目,因此无法删除该存储帐户。

未能删除 # out of # container(s):
vhds:容器当前存在租约,请求中未指定租约 ID。

未能删除 # out of # blob:
BlobName.vhd:Blob 当前存在租约,请求中未指定租约 ID。

Azure VM 中使用的 VHD 是在 Azure 的标准或高级存储帐户中作为页 Blob 存储的 .vhd 文件。 有关 Azure 磁盘的详细信息,请参阅托管磁盘简介

Azure 阻止删除附加到 VM 的磁盘,以防发生损坏。 它还会阻止删除包含附加到 VM 的页 blob 的容器和存储帐户。

如果收到上述错误之一,请遵循以下过程,删除存储帐户、容器或 blob:

  1. 发现附加到 VM 的 blob
  2. 删除附加有 OS 磁盘的 VM
  3. 将所有数据磁盘与剩余 VM 拆离

完成上述步骤后,重试删除存储帐户、容器或 blob。

第 1 步:发现附加到 VM 的 blob

方案 1:删除 blob - 发现附加 blob 的 VM

  1. 登录到 Azure 门户

  2. 在“中心”菜单上,选择“所有资源”。 转到存储帐户,在“Blob 服务”下,选择“容器”,并导航到要删除的 blob。

  3. 如果 blob 的“租用状态”为“已租用”,则右键单击并选择“编辑元数据”,打开“blob 元数据”窗格。

    包含存储帐户 Blob 的门户屏幕截图。“编辑元数据”突出显示。

  4. 在“blob 元数据”窗格中,查看并记录 MicrosoftAzureCompute_VMName 的值。 此值是 VHD 附加到的 VM 名称。 (如果看不到此字段,请参阅“重要提示”

  5. 在“blob 元数据”窗格中,查看并记录 MicrosoftAzureCompute_DiskType 的值。 此值确定了附加磁盘是 OS 磁盘,还是数据磁盘(如果此字段不存在,请参阅“重要提示”)。

    门户的屏幕截图,其中打开了“存储 Blob 元数据”窗格。

  6. 如果 blob 磁盘类型为 OSDisk,请按照第 2 步:删除 VM 以拆离 OS 磁盘操作。 否则,如果 blob 磁盘类型为 DataDisk,请按照第 3 步:将数据磁盘与 VM 拆离操作。

重要

如果 blob 元数据中没有 MicrosoftAzureCompute_VMName 和 MicrosoftAzureCompute_DiskType,表明 blob 为显式租用,未附加到 VM。 必须先中断租用,然后才能删除租用的 blob。 若要中断租用,请右键单击 blob 并选择“中断租用”。 如果租用的 blob 未附加到 VM,则会阻止删除 blob,但不会阻止删除容器或存储帐户。

方案 2:删除容器 - 发现容器内附加到 VM 的所有 blob

  1. 登录到 Azure 门户

  2. 在“中心”菜单上,选择“所有资源”。 转到存储帐户,在“Blob 服务”下,选择“容器”,并找到要删除的容器。

  3. 单击打开容器,列出容器内的 blob。 在列表中发现“blob 类型”为“页 blob”且“租用状态”为“已租用”的所有 blob。 按照方案 1 操作,发现与其中每个 blob 相关联的 VM。

    包含存储帐户 Blob 的门户屏幕截图。突出显示已租用的租约状态。

  4. 按照第 2 步第 3 步操作,删除附加有 OSDisk 的 VM,并拆离 DataDisk

方案 3:删除存储帐户 - 发现存储帐户内附加到 VM 的所有 blob

  1. 登录到 Azure 门户
  2. 在“中心”菜单上,选择“所有资源”。 转到存储帐户,在“blob 服务”下,选择“Blob”
  3. 在“容器”窗格中,找到“租用状态”为“已租用”的所有容器,并按照方案 2 对每个状态为“已租用”的容器执行操作。
  4. 按照第 2 步第 3 步操作,删除附加有 OSDisk 的 VM,并拆离 DataDisk

第 2 步:删除 VM 以拆离 OS 磁盘

如果 VHD 为 OS 磁盘,必须先删除 VM,然后才能删除附加的 VHD。 完成以下步骤后,无需对附加到同一 VM 的数据磁盘执行其他任何操作:

  1. 登录到 Azure 门户
  2. 在“中心”菜单上,选择“虚拟机”
  3. 选择 VHD 附加到的 VM。
  4. 确保没有任何对象正主动使用该虚拟机,并确保不再需要该虚拟机。
  5. 在“虚拟机详细信息”窗格顶部,选择“删除”,再单击“是”进行确认。
  6. 应删除 VM,但可以保留 VHD。 不过,VHD 不得再附加到 VM,也不得再有租用。 可能需要几分钟才能释放租约。 若要验证租用是否已解除,请转到 blob 位置,再检查“blob 属性”窗格中的“租用状态”是否为“可租用”

第 3 步:将数据磁盘与 VM 拆离

如果 VHD 是数据磁盘,请从 VM 分离 VHD 以删除租约:

  1. 登录到 Azure 门户

  2. 在“中心”菜单上,选择“虚拟机”

  3. 选择 VHD 附加到的 VM。

  4. 在“虚拟机详细信息”窗格中,选择“磁盘”

  5. 选择 VHD 附加到的要删除的数据磁盘。 可以检查 VHD 的 URL,从而确定磁盘中附加的 blob。

  6. 可以单击磁盘来检查“VHD URI”字段中的路径,从而验证 blob 位置。

  7. 选择“磁盘”窗格顶部的“编辑”

  8. 单击要删除的数据磁盘的拆离图标

    磁盘门户的屏幕截图,其中突出显示了要删除的数据磁盘的分离图标。

  9. 选择“保存”。 此时该磁盘将与 VM 分离,并且 VHD 将不再租用。 可能需要几分钟才能释放租约。 若要验证租用是否已解除,请转到 blob 位置,再检查“blob 属性”窗格中的“租用状态”值是否为“已解锁”或“可租用”

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区