HPC 缓存用户可以使用 flush_file.py 实用工具请求缓存按需将特定单个文件写入后端存储。 此实用工具是一个单独下载的软件包,可在 Linux 客户端计算机上安装和使用。
此功能适用于希望缓存文件上的更改尽快提供给未装载缓存的系统的情况。
例如,可以使用 Azure HPC 缓存在云中扩展计算作业的规模,同时将数据集永久保持在本地数据中心。 如果计算任务发生在依赖于使用 Azure HPC 缓存创建的更改的数据中心,则可以使用此实用工具将云任务生成的输出或更改“推送”回本地 NAS 存储。 这样,本地计算资源几乎可以立即使用新文件。
在自定义写回和刷新之间进行选择
可以强制使用内置于 Azure HPC 缓存的“存储目标刷新”选项来写回数据,但这种方法可能不适合所有情况。
将所有修改后的文件写回到存储系统可能需要几分钟甚至几个小时,具体取决于数据数量以及网络链接返回到本地系统的速度。 此外,不能仅选择已完成要写入的文件;此计算中将包含仍在积极修改的文件。
缓存可能会阻止在刷新过程中从该存储目标提供某些请求。 如果其他计算客户端使用驻留在同一存储目标上的文件,则可能会延迟处理。
触发此操作需要对 Azure 资源管理器具有贡献者访问权限,最终用户可能没有此权限。
例如,可以有多个并行(但不重叠)计算作业,这些作业使用驻留在同一 HPC 缓存存储目标上的数据。 一个作业完成后,需要立即将该作业的输出从缓存写入后端的长期存储。
有三个选项:
等待缓存文件从缓存中自动写回,但在完全写回之前,文件可能会在缓存中停留一个多小时。 时间取决于缓存使用模型的写回延迟,以及其他因素,例如网络链接性能和文件大小。 (阅读 了解缓存使用情况模型 ,了解有关写回延迟的详细信息。
立即 刷新整个存储目标的缓存文件 ,但这会中断其他也使用此存储目标数据的计算作业。
使用此自定义写回实用工具将特殊的 NFS 请求发送到缓存,以仅写回所需的特定文件。 此方案不会中断对其他客户端的访问,并且可以在计算任务中的任何时刻触发。
关于写回实用工具
写回实用工具具有一个脚本,可用于指定将从缓存写入到长期存储系统的各个文件。
该脚本接收要写入的文件输入流、存储目标导出的缓存命名空间路径,以及 HPC 缓存挂载的 IP 地址。
该脚本使用启用了特殊参数的 NFSv3“commit”调用。 Linux nfs 通用客户端无法适当传递这些参数,因此flush_file.py实用工具使用 Python 库中的 NFS 客户端模拟器与 HPC 缓存 NFS 服务通信。 该库包含所需的一切,从而绕过计算客户端基于 Linux 内核的 NFS 客户端中可能存在的任何限制。
若要使用此功能,需要执行以下操作:
在https://github.com/microsoft/hpc-cache-nfsv3-client从GitHub Microsoft HPC-Cache-NFSv3-client存储库安装
hpc-cache-nfsv3-client库。 在一个或多个计算机客户端上。 存储库的自述文件中包含先决条件信息和说明。使用包含的“flush_file.py”脚本告知缓存将所需的确切文件写回到长期存储系统。
详细了解如何在 GitHub 存储库中安装和使用 flush_file.py 脚本。