如果工作流包括将数据移动到 Azure Blob 存储,请确保使用高效的策略。 应创建缓存,将 Blob 容器添加为存储目标,然后使用 Azure HPC 缓存复制数据。
本文介绍将数据移动到 Blob 存储以用于 Azure HPC 缓存的最佳方法。
Tip
本文不适用于装载 NFS 的 Blob 存储(ADLS-NFS 存储目标)。 可以使用任何基于 NFS 的方法在添加到 HPC 缓存之前或之后填充 ADLS-NFS blob 容器。 阅读 使用 NFS 协议预加载数据 以了解详细信息。
请记住以下事实:
Azure HPC 缓存使用专用存储格式来组织 Blob 存储中的数据。 这就是为什么 Blob 存储目标必须是新的、空的容器或以前用于 Azure HPC 缓存数据的 Blob 容器。
使用多个客户端和并行操作时,通过 Azure HPC 缓存将数据复制到后端存储目标会更高效。 一个客户端的简单复制命令将会慢慢地移动数据。
本文中概述的策略适用于填充空 Blob 容器或将文件添加到以前使用的存储目标。
通过 Azure HPC 缓存复制数据
Azure HPC 缓存旨在同时为多个客户端提供服务,因此,若要通过缓存复制数据,应使用来自多个客户端的并行写入。
cp或copy命令通常用于将数据从一个存储系统传输到另一个存储系统,它们是一次只复制一个文件的单线程进程。 这意味着文件服务器一次只引入一个文件,这浪费了缓存的资源。
本部分介绍使用 Azure HPC 缓存创建多客户端多线程文件复制系统以将数据移动到 Blob 存储的策略。 它介绍文件传输概念和决策点,这些概念和决策点可用于使用多个客户端和简单的复制命令高效复制数据。
它还介绍了一些可以帮助的实用程序。 该 msrsync 实用工具可用于部分自动执行将数据集划分为存储桶和使用 rsync 命令的过程。 该 parallelcp 脚本是另一个实用工具,用于读取源目录并自动发出复制命令。
战略规划
构建并行复制数据的策略时,应了解文件大小、文件计数和目录深度的权衡。
- 当文件较小时,感兴趣的指标是每秒文件数。
- 当文件较大(10MiBi 或更高版本)时,感兴趣的指标是每秒字节数。
每个复制过程都有一个吞吐量速率和文件传输速率,可以通过计时复制命令的长度以及考虑文件大小和文件计数来测量。 说明如何度量速率超出了本文档的范围,但必须了解是处理小型文件还是大型文件。
使用 Azure HPC 缓存引入并行数据的策略包括:
手动复制 - 可以通过在后台针对预定义的文件或路径集一次性运行多个复制命令,在客户端上手动创建多线程副本。 阅读Azure HPC 缓存数据引入的手动复制方法以获取详细信息。
使用
msrsync-msrsync的部分自动化复制是运行多个并行rsync进程的包装实用工具。 有关详细信息,请阅读 Azure HPC 缓存数据引入 - msrsync 方法。使用
parallelcp脚本复制 - 了解如何在 Azure HPC 缓存数据引入 - 并行复制脚本方法中创建和运行并行复制脚本。
后续步骤
设置存储后,了解客户端如何装载缓存。