Fluid 使用 Lustre Runtime 以及性能测试
内容提要
本文介绍了使用Fluid的ThinRuntime将Lustre存储接入到AWS FSx for Lustre的方法。通过创建Dataset、Runtime和Pod,实现Lustre在Fluid中的管理。性能测试结果表明,使用Fluid的ThinRuntime对接Lustre不会损失太多性能。
延伸解读
ThinRuntime 接入 Lustre 的关键步骤
文章展示了通过 ThinRuntime 将 Lustre 接入 Fluid 的完整流程:首先创建 Dataset 指定 Lustre 挂载点,然后定义 ThinRuntimeProfile 和 ThinRuntime 资源,最后创建 Pod 使用 PVC。其中 ThinRuntimeProfile 需要指定自定义的 Fuse 镜像和启动命令,该镜像基于 AWS FSx CSI 驱动构建,并包含解析配置和挂载 Lustre 的脚本。
性能测试结果与影响因素
性能测试对比了主机直接挂载和 Pod 中通过 Fluid PVC 的顺序读性能。在相同 fio 参数下,主机直接挂载带宽为 347MiB/s,Pod 中为 315MiB/s,差距约 10%。文章特别指出,测试结果受 blocksize 和文件大小影响显著:读取 1GB 数据时带宽可达 500+ MB/s,而 blocksize 为 128k 时仅 100+ MB/s,因此需根据实际场景调整参数以准确评估。
实践背景与适用场景
该实践源于国内模型推理服务需在海外部署,选择 AWS FSx for Lustre 作为存储后端,为保持业务层存储逻辑一致而对接 Fluid。由于主要存储推理模型等大文件,性能测试仅关注顺序读。文章总结,在所选规格下 PVC 中顺序读速度可达 300+ MB/s,满足大文件读取需求。
Q&A
如何将Lustre存储接入AWS FSx for Lustre?
可以通过使用Fluid的ThinRuntime创建Dataset、Runtime和Pod来实现Lustre存储接入AWS FSx for Lustre。
Fluid的ThinRuntime对接Lustre的性能如何?
性能测试结果表明,使用Fluid的ThinRuntime对接Lustre不会损失太多性能,PVC性能与主机直接挂载的性能相近。
在Fluid中如何创建Dataset和Runtime?
可以使用kubectl命令创建Dataset和Runtime,具体命令包括定义apiVersion、kind、metadata和spec等信息。
Fluid如何挂载NFS存储?
Fluid通过Fuse Pod配置和启动脚本来挂载NFS存储,具体过程包括解析配置文件并生成挂载脚本。
如何打包Fluid Lustre Runtime镜像?
打包Fluid Lustre Runtime镜像需要创建启动脚本和Dockerfile,并使用docker build命令进行编译和推送。
在Pod中进行性能测试的步骤是什么?
在Pod中进行性能测试的步骤包括进入Pod、切换到数据目录,并执行fio命令进行顺序读测试。