在资源管理器部署中排查存储删除错误

借助本文的疑难解答指南,用户可以了解在 Azure 资源管理器部署中尝试删除 Azure 存储帐户、容器或 blob 时,如何排查看到的下列错误之一。

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

无法删除 # 个容器(共 # 个):
vhds:目前容器上有租用,但请求中未指定任何租用 ID。

无法删除 # 个 blob (共 # 个):
BlobName.vhd:目前 blob 上有租用,但请求中未指定任何租用 ID。

Azure VM 中使用的虚拟硬盘是在 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 拆离操作。

Important

如果 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 服务”下,选择“容器”。

    门户屏幕截图,其中突出显示了存储帐户容器和值为“已租用”的“租用状态”

  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. 单击要删除的数据磁盘的拆离图标。

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

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

后续步骤

重试删除之前无法删除的存储对象。