我有一个用例,通常需要将 blob(文件)从一个 Azure 区域复制到另一个。文件大小从 25 到 45GB 不等。不用说,这有时会非常缓慢,性能不一致。这可能需要长达两个小时,有时甚至更长时间。距离起作用,但它有所不同。即使在同一区域内复制也比我预期的要慢。我一直在尝试:
虽然我并没有真正期待不同的结果,因为它们都使用相同的后端方法。
有什么我缺少的方法吗?有什么方法可以加快这个过程,或者 Azure 中集成了任何类型的 blob 共享?VHD/磁盘共享也可以。
我有一个用例,通常需要将 blob(文件)从一个 Azure 区域复制到另一个。文件大小从 25 到 45GB 不等。不用说,这有时会非常缓慢,性能不一致。这可能需要长达两个小时,有时甚至更长时间。距离起作用,但它有所不同。即使在同一区域内复制也比我预期的要慢。我一直在尝试:
虽然我并没有真正期待不同的结果,因为它们都使用相同的后端方法。
有什么我缺少的方法吗?有什么方法可以加快这个过程,或者 Azure 中集成了任何类型的 blob 共享?VHD/磁盘共享也可以。
您可能想尝试AzCopy/SyncCopy
中的选项:
将 Blob 从一个存储帐户同步复制到另一个
默认情况下,AzCopy 在两个存储终结点之间异步复制数据。因此,复制操作使用没有 SLA 的备用带宽容量在后台运行,就 blob 的复制速度而言,AzCopy 会定期检查复制状态,直到复制完成或失败。
该
/SyncCopy
选项可确保复制操作获得一致的速度。AzCopy 通过将要复制的 Blob 从指定源下载到本地内存,然后将它们上传到 Blob 存储目标来执行同步复制。
AzCopy /Source:https://myaccount1.blob.core.windows.net/myContainer/ /Dest:https://myaccount2.blob.core.windows.net/myContainer/ /SourceKey:key1 /DestKey:key2 /Pattern:ab /SyncCopy
/SyncCopy
与异步复制相比,可能会产生额外的出口成本,建议的方法是在与源存储帐户位于同一区域的 Azure VM 中使用此选项,以避免出口成本。
在 linux 中,您可以尝试使用 --parallel-level 选项。尝试使用 azcopy --help 进行查找。此外,最大操作限制正式为 512。去疯狂!