我有一个用例,通常需要将一个Blob(文件)从一个Azure区域复制到另一个。文件大小范围为25到45GB。不用说,这有时会非常缓慢,并且性能会不一致。这可能需要两个小时,有时甚至更多。距离起一定作用,但有所不同。即使在同一区域内,复制也比我预期的要慢。我一直在尝试:
尽管我并没有真正期望得到不同的结果,因为它们都使用相同的后端方法。
我缺少任何方法吗?是否有任何方法可以加快此过程,或者在Azure中集成任何种类的Blob共享? VHD /磁盘共享也可以。
答案 0 :(得分:0)
您可能想尝试AzCopy中的/SyncCopy
选项:
将Blob从一个存储帐户同步复制到另一个存储帐户
AzCopy默认情况下在两个存储端点之间异步复制数据。因此,复制操作在后台使用备用带宽容量运行,而该带宽在复制Blob的速度方面没有SLA,并且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中使用此选项,以避免出口成本。
答案 1 :(得分:0)
在Linux中,您可以尝试使用--parallel-level选项。尝试使用azcopy --help查找它。同样,最大操作限制为512。疯了!