将数据移动到云存储中可能会给所有行业的组织带来许多挑战。 其中一些挑战包括找到可以简化流程的工具以及可以尽快将数据移动到云中的解决方案。 本博客将介绍用于将文件传输到Microsoft的两种方法 Azure Blob存储:使用微软的工具 AzCopy 和使用 FileCatalyst Direct.

对于测试,我在Azure中使用了多个价格适中的VM。 我还选择了地理位置分散的区域,以在源计算机和存储位置之间创建延迟。 以下是我如何设置它:

客户/源机器托管在西欧地区。 该机器是运行Windows Server 4 Datacenter的标准D3s v4(16 vcpus,每个2016GB内存)。 请参阅下图中的完整规格:

因为它充当发送/上传机器,为了确保读取速度足以满足多Gbps速度,我定义了一个高速存储并将其附加到VM:

然后,我在美国西部地区配置了Azure Blob存储容器:

我禁用了Blob存储的“需要安全传输”功能,因为使用HTTPS会消耗更多的CPU能力。 显然,如果您需要安全传输,则不建议这样做。 只需知道,如果使用HTTPS,发送机将使用更多的CPU资源。 最后,我创建了一个名为“ testcontainer”的容器,该容器将接收文件。

要使用FileCatalyst Direct传输文件,我需要一个托管在与Blob存储容器相同区域中的VM。 因此,我创建了一个具有两倍内核作为发送机的VM,因为它将完成两倍的工作。 VM必须接收FileCatalyst加速的UDP流,然后以相同的速率将该数据发送到Blob存储。 我使用了标准DS4 v2(8个vCPU,28 GB内存),以下是完整规格:

由于FileCatalyst Direct将数据直接写入Bob存储,因此我不需要为West US VM定义任何快速存储。 文件数据直接传输到Blob存储中。

请注意,对于所有涉及的VM,我必须启用 加速网络以获得高于1 Gbps的速度.

将您的Azure Blob存储帐户添加到FileCatalyst服务器是一个简单的过程。 只需转到“文件系统”选项卡,然后单击“新建”,选择“ Azure Blob”,然后输入您的帐户名,帐户密钥和端点。 见下文:

现在,我已将Azure Blob存储帐户添加到FileCatalyst服务器,我可以定义一个指向您的容器的用户帐户。 见下文:

要上传文件,FileCatalyst HotFolder已安装在West Europe机器上。 此时,我已准备好测试并将AzCopy与FileCatalyst Direct进行比较。

我进行了3测试:

  1. 将单个5GB文件从西欧的本地存储转移到美国西部的远程Azure Blob容器
  2. 将10个500MB文件从西欧的本地存储转移到美国西部的远程Azure Blob容器
  3. 将一千个500KB文件从西欧的本地存储转移到美国西部的远程Azure Blob容器

对于FileCatalyst和AzCopy,所有测试都运行了十次。 对结果进行平均和比较。

以下是AzCopy的屏幕截图,其中将西欧的单个5GB文件上传到美国西部的Blob存储。 您可以看到传输速度超过1 Gbps。

这是FileCatalyst HotFolder的屏幕快照,该文件将相同的文件从西欧上传到美国西部的Blob存储。 您可以看到FileCatalyst Hotfolder在测试过程中保持了2 Gbps的速度。

以下是测试结果的完整细分:

AzCopy在这些测试的启动时间方面表现优异。 但是,FileCatalyst Hotfolder的峰值速率几乎翻了一番。 在大多数情况下,FileCatalyst Hotfolder的CPU使用率也要低得多。

FileCatalyst可以为数据迁移到Azure提供以下好处:

  • 当带宽超过500 Gbps(RTT> 1.5ms时)或80 Gbps(> 1.0ms RTT)时,大文件(> 150MB)的传输速度更快
  • 减少客户端计算机上的CPU占用率-轻松扩展到更高的速度
  • FileCatalyst使用每个文件的单个UDP流而不是多个TCP流=对其他流量更友好
  • 应用程序级功能,包括自动化和Web上传器
  • 当基础设施允许时,可以扩展到超过2 Gbps。 它不受RTT的限制,不需要更多的流来扩展。
  • 非常容忍丢包(wifi和移动网络)和抖动(绑定和多路径链路)

显然,我选择使用Windows进行测试(Afterall,它是Windows Azure)。 这些测试可以很容易地使用Linux重新运行,因为AzCopy和FileCatalyst Direct都在Linux上运行。

你怎么能得到这些结果

为了在使用AzCopy将文件从您自己的基础结构传输到Azure Blob存储中时获得这些结果,除了使用其他工具或虚拟机外,您无需使用 AzCopy.

如果要使用FileCatalyst达到更快的速度,则应在与Azure Blob存储容器相同的区域内启动VM。 如果需要3 Gbps以上的速度,则应选择F16实例。 如果您不需要那么快的速度,则可以相应地缩小大小。

您需要获得FileCatalyst许可证(请求免费试用)并在运行在与Blob存储相同的区域中的VM上安装FileCatalyst Server。 安装FileCatalyst Server后,您可以在基础架构中安装FileCatalyst客户端(我们使用过 的hotfolder 在我们的测试中)。

就是这样! 只需遵循FileCatalyst软件随附的《入门指南》,您将立即转移到Azure Blob存储!

进一步结果

在编译了所有这些结果几周后,通过将实例大小增加到F3,我能够通过FileCatalyst获得高达16 Gbps的速度。 我还验证了我们的Azure Blob驱动程序实际上可以在一次传输7文件时实际从与存储相同的区域(大约5 Gbps)写入。 当带宽可用时,FileCatalyst没有理由受到CPU瓶颈以外的任何限制。 我怀疑当你接近6-7 Gbps时,你需要使用Jumbo帧来加快速度。 但是,在Azure中运行VM时带宽的决定因素是实例大小。 请参阅以下链接,了解每个实例大小的预期带宽。

參考資料

我发现很难找到我以前在Azure基础架构中获得最佳速度的所有教育文档,所以这里有一些我用来开始的链接:

每个实例的大小和预期的带宽– https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes-compute

优化实例上的带宽– https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-optimize-network-bandwidth

测试实例之间或本地基础结构与Azure VM之间的速度– https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-bandwidth-testing

如何在Azure实例上启用加速网络– https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-vm-accelerated-networking