azure - 409 尝试将页面 Blob 恢复到以前的快照时发生冲突

标签 azure azure-blob-storage

此问题仅发生在高级存储中(SSD 支持的存储)。这是在尝试将上次维护中损坏的 VHD 恢复到之前的快照时发生的情况。

这是正在发送的请求(方法StartCopyFromBlob):

PUT https://contoso.blob.core.windows.net/vhds/OS.vhd HTTP/1.1
User-Agent: WA-Storage/4.3.0 (.NET CLR 4.0.30319.34209; Win32NT 6.2.9200.0)
x-ms-version: 2014-02-14
x-ms-copy-source: https://contoso.blob.core.windows.net/vhds/OS.vhd?snapshot=2015-06-04T09%3A00%3A02.0048291Z
x-ms-client-request-id: d09e9c18-07c4-4295-a09e-e6bbe23ea543
x-ms-date: Wed, 10 Jun 2015 21:43:25 GMT
Authorization: XXXXXXXXXXXXXXXXXXXXXXXX
Host: contoso.blob.core.windows.net
Content-Length: 0

这是响应:

HTTP/1.1 409 This operation is not permitted because the blob has snapshots.
Content-Length: 246
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 88411d2c-001c-020d-00c6-a3ce5e000000
x-ms-version: 2014-02-14
Date: Wed, 10 Jun 2015 21:43:23 GMT

<?xml version="1.0" encoding="utf-8"?>
<Error><Code>SnapshotsPresent</Code><Message>This operation is not permitted because the blob has snapshots.
RequestId:88411d2c-001c-020d-00c6-a3ce5e000000
Time:2015-06-10T21:43:24.3527942Z</Message></Error>

起初,我认为它与具有关联租约的 blob 链接(因为它已与我已删除的磁盘关联),但似乎没有关联。

属性请求:

HEAD https://contoso.blob.core.windows.net/vhds/OS.vhd HTTP/1.1
User-Agent: WA-Storage/4.3.0 (.NET CLR 4.0.30319.34209; Win32NT 6.2.9200.0)
x-ms-version: 2014-02-14
x-ms-client-request-id: df75e42b-4733-4ec4-86fd-b073d7353d98
x-ms-date: Wed, 10 Jun 2015 21:47:53 GMT
Authorization: XXXXXXXXXXXXXXXXXXXXXXXX
Host: contoso.blob.core.windows.net

属性响应:

HTTP/1.1 200 OK
Content-Length: 136367309312
Content-Type: binary/octet-stream
Last-Modified: Mon, 08 Jun 2015 19:30:01 GMT
Accept-Ranges: bytes
ETag: "0x8D27038A5E2A5B0"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-copy-id: 79998710-3eeb-4323-be69-349ec9bf5b68
x-ms-copy-source: XXXXXXXXXXXXXXXXXXXXXXXX
x-ms-copy-progress: 136367309312/136367309312
x-ms-copy-status: success
x-ms-copy-completion-time: Thu, 05 Mar 2015 17:05:45 GMT
x-ms-meta-PIRTag: 1
x-ms-lease-state: available
x-ms-lease-status: unlocked
x-ms-blob-type: PageBlob
x-ms-blob-sequence-number: 101028
x-ms-request-id: 782ffea7-001c-02c3-00c7-a3a811000000
x-ms-version: 2014-02-14
Date: Wed, 10 Jun 2015 21:47:51 GMT

我通过将快照恢复到另一个 blob 名称(并将我的虚拟机恢复到与这个新位置关联的磁盘)来解决这个问题,但我仍然很好奇是否有人知道这个问题的解决方案。

最佳答案

此问题已得到解决。您现在可以将快照恢复到基本 Blob。变化完全发生在 Azure 服务端。您可以使用相同的 Azure 存储 SDK 来执行此操作(存储 REST API 版本 2014-02-14 或更高版本)。客户端无需进行任何更改。

关于azure - 409 尝试将页面 Blob 恢复到以前的快照时发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767953/

相关文章:

sql - 使用 SQL Azure Reporting Services 生成用户特定报告

azure - 通过 Azure CLI 向资源分配多个标签会在使用变量时产生一个大标签

azure - 删除当前在 Azure 中运行的备份

azure - Azure Sql Server 的用户分配托管标识

azure - 是否可以使用内置 blob 触发器为每个新 blob 触发逻辑应用程序?

azure - c.a.storage.common.Storage输入流: Stream is already closed

azure - Azure 表存储的 RowKey 列中出现 user;Unknown 条目是什么原因?

azure - 如何使用逻辑应用工作流创建的链接访问 blob 存储文件。通过路径 URL 创建 SAS URL 不起作用

dataframe - Azure Blob 存储 - 如何读取源字符串 : wasbs://training@dbtrainsouthcentralus. blob.core.windows.net

c# - 使用内存流从 URL 读取 Excel