1
头图

系列文章目录

3FS系列(一):存储新纪元的开篇——3FS编译调优与部署的工程实践
3FS系列(二):3FS元数据性能深度拆解:那些在技术文档中找不到的实现细节

作为一家深耕高性能计算领域的AI科技公司,九章云极对 DeepSeek 开源的 3FS 分布式文件系统始终保持高度关注。在完成前篇所述的 3FS 编译与部署教学后,我们决定对3FS的元数据子系统展开深度评测。尽管 3FS 并不以元数据为最大卖点,但为使大家更好的了解 3FS ,我们基于 OPS (每秒操作数)、横向扩展性两个核心指标,结合 POSIX 接口完整性和元数据一致性验证,构建了多维度的评估体系,本文将详细阐述 3FS 的元数据性能测试过程及结论。

测试环境

部署方式

我们使用 3 台机器部署了一个 FoundationDB 集群,每台机器部署一个 FoundationDB 实例,其数据存储在一块 NVMe 盘上:

示意图中我们省略了 storage 集群和管理集群等其他服务。

机器硬件

部署服务的机器都拥有相同的硬件配置:

  • CPU:INTEL(R) XEON(R) PLATINUM 8558
  • NVMe:Dell DC NVMe ISE 7450 RI U.2 3.84TB
  • NIC:Mellanox CX7(400G IB)

测试软件

  • pjdtest: master
  • mdtest: v4.0.0

测试结果

1. POSIX 接口完善度

$ cd /mnt/3fs
$ prove -v /path/to/pjdfstest
接口操作测试结果(成功数/总数)
chflags14/14
chmod10/13
chown7/11
ftruncate15/15
granular7/7
link15/18
mkdir10/13
mkfifo6/13
mknod4/12
open20/26
posix_fallocate1/1
rename16/25
rmdir13/16
symlink11/13
truncate15/15
unlink13/15
utimensat8/10
总数185/237

2. 元数据性能

2.1 目录深度小、单目录文件多
# 在根目录下创建 2 层目录,在每层目录下创建 3 个子目录,每个子目录下有 1 万个文件,总共 13 万个文件(分别测试 1、4、8、16、32 并发)
for i in 1 4 8 16 32; do mpirun --allow-run-as-root -np $i mdtest -z 2 -b 3 -I 10000 -d /mnt/3fs -u; done
进程数Directory creationDirectory statDirectory renameDirectory removalFile creationFile statFile readFile removalTree creationTree removal
1380.7481824.665272.056340.216370.8601829.680511.458347.070380.79776.858
41381.6706953.521966.9181171.9641246.4486786.2231638.7061164.522305.84863.135
82261.38212465.7251676.6792004.0642254.26513131.5683025.9301926.433193.34032.531
163820.93922851.1522822.0073074.2383372.55622338.2854749.6452698.09892.80016.526
326080.78934035.7243911.6644503.7794218.09931594.2115394.3483702.02165.3539.037
2.2 目录深度大、单目录文件少
# 在根目录下创建 10 层目录,在每层目录下创建 2 个子目录,每个目录有 100 个文件,总共 204700 个文件(分别测试 1、4、8、16、32 并发)
for i in 1 4 8 16 32; do mpirun --allow-run-as-root -np $i mdtest -z 10 -b 2 -I 100  -d /mnt/3fs -u; done
进程数Directory creationDirectory statDirectory renameDirectory removalFile creationFile statFile readFile removalTree creationTree removal
1319.7211618.960201.003328.875370.1621736.513475.476333.668284.263338.576
41347.4976710.544790.9061139.5781241.2166534.4941645.2651098.005358.543277.418
82392.11112583.6661364.3691971.8152229.93112535.2512900.8331833.398301.977222.741
163987.11021620.2442159.4953093.0483251.72019826.1214418.4112709.684243.149152.085
325697.49331619.1253041.4924256.9703869.26431431.7035747.3553517.754167.18884.271

3. 元数据一致性

我们将在 2 台机器 A、B 上挂载同一个文件系统,并顺序执行一些操作来验证元数据的一致性。
以下操作都在 3FS 的挂载点的根目录上执行。特别需要注意的是,由于测试用例比较多,我们只挑选了 2 个导致不一致且有代表性的测试用例:

3.1 文件删除

A:

$ touch f1

B:

$ rm f1

A:

$ stat f1
  File: f1
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 100028h/1048616d        Inode: 41346824    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-03-18 10:34:47.000000000 +0800
Modify: 2025-03-18 10:34:47.000000000 +0800
Change: 2025-03-18 10:34:47.000000000 +0800
 Birth: -

在节点 B 上删除文件 f1 后,节点 A 依旧能 stat 到文件,不符合预期。

3.2 文件读写

A:

$ echo 1 >> f1
$ cat f1
1

B:

$ echo 2 >> f1
$ cat f1
1
2

A:

$ echo 3 >> f1
$ cat f1
1
3

节点 A、B 轮流往文件 f1 写入一个数字,最后一次节点 A 写入数字 3 后,再次读取应该获得 1 2 3,而目前获得的是 1 3,不符合预期。

结论

基于系统性测试与分析,3FS在当前版本中展现出以下技术特性:

  • 3FSPOSIX 接口并不是很完善,并不能 100% 通过 pjdtest
  • 元数据性能并不是很强,但是其具有一定的扩展性
  • 元数据的一致性目前来看是比较弱的,主要依赖内核的缓存超时(受 attr_timeoutentry_timeout配置项控制)。如果用户想在其他场景使用,可能需要调整缓存时长,牺牲一定的性能来换取一致性。

虽然 3FS可能在元数据方面并不是很突出,但其通过一些措施(FFRecord 数据格式)在 AI 训练推理这样的场景下依旧获得很出色的性能。

此外,我们也可以得知在这样的场景下对 POSIX 接口完善度和元数据的一致性要求并不是很高。

(注:本评估严格基于实测数据,未引入推测性技术指标)

本次分享到此结束,若文中有细节描述不清晰或纰漏,欢迎随时关注九章云极公众号与我们探讨。每一条留言、每一次讨论,都在为技术的未来形态增添可能性。

文末彩蛋

最后,为大家呈现另一款通用性更高、成本更低的存储系统—— DataCanvas DingoFS分布式存储系统,该系统由北京九章云极科技有限公司开发,于2024年11月20日首次发表,并于2025年1月14日登记。DingoFS 因其高效的数据存储和管理、支持大规模数据的分布式存储、高可用性和可扩展性在业界独树一帜,更加适用于需要处理大量数据和要求高可靠性的应用场景。DingoFS 即将推出的新版将具备更佳的元数据性能。

DingoFS 核心特性如下:

• POSIX兼容性
提供与本地文件系统一致的操作体验,实现无缝系统集成
• AI原生架构
深度优化大语言模型工作流,高效管理海量训练数据集与检查点工作负载
• S3协议兼容
支持标准S3接口协议,实现对文件系统命名空间的便捷访问
• 全分布式架构
元数据服务(MDS)、数据存储层、缓存系统及客户端组件均支持线性扩展
• 卓越性能表现
兼具本地SSD级低延迟响应与对象存储级弹性吞吐能力
• 智能缓存加速体系
构建内存/本地SSD/分布式集群三级缓存拓扑,为AI场景提供高吞吐、低时延的智能I/0加速

我们是谁

提供本次实操教学的为九章云极研发人员。九章云极,全称北京九章云极科技有限公司,2013年成立,致力于人工智能基础软件的规模化应用,融合了世界前沿的人工智能技术,以自主创新的“算力包”产品和智算操作系统为载体,为广大用户提供“算力+算法”一体化AI服务。

长按二维码,关注公众号领取免费算力包!
图片

Alaya NeW算力云:让DeepSeek部署更简单!

借助 Alaya NeW算力云服务 提供的强大GPU资源,您可以轻松实现DeepSeek模型在云端的推理服务部署,并根据实际需求灵活使用算力,为技术创新与科研探索提供高效支持!

三步搞定一键部署,快速上手DeepSeek!

不想被复杂的配置流程困扰?别担心!只需三步,您就能轻松完成DeepSeek大语言模型的一键部署。立即行动起来吧!体验地址:

免费体验25度算力包,一键部署DeepSeek!

写在最后

  • 作为分布式存储领域的实践者,我们在深度测试3FS后既感受到技术突破的惊喜,也窥见了工程化落地的挑战。这种复杂的技术观感,或许正是开源项目从实验室走向生产环境的必经之路。
  • 若您在实践中有更精妙的参数调优方案,或是想深入探讨分布式存储的架构哲学,欢迎移步评论区 —— 或许下次我们就会一起探讨您提出的精彩观点。

下篇方向预告

400G 网络性能实测3FS


DataCanvas
15 声望11 粉丝

北京九章云极科技有限公司(九章云极DataCanvas)成立于2013年,以“创造智能,探索未知”为使命,以“助力全球企业智能升级”为愿景,致力于推动国际领先人工智能技术在智算产业的创新应用,是中国人工智能基础设施...