
从Maknee.github.io选择的May -set:AI字段中的Henry Zhu机器汇编,大型模型通常具有10亿或数十亿亿亿美元的参数。培训和认可过程对计算资源,存储系统和数据可访问效率的要求非常高。 2月28日,DeepSeek打开了文件系统(3FS)分发的高性能的来源,该系统正式表示其目的是解决人工智能培训和工作负载概念的挑战。作为一个并行文件系统,3FS可以在180节点群集上实现6.6 TIB/S骨料读取吞吐量,这有助于提高数据预处理数据的技能,数据集加载,检查点Savoint/ReloDaded,嵌入式矢量搜索以及DeepSeek V3和R1大型模型的KVCACHE查找。据信,DeepSeek通过开源3FS和SICKP等工具在AI基础架构领域设定了新的设计范式onds。它的价值不仅反映了技术实力,还可以推动基本基础架构的变化。 DeepSeek的文件系统如何提出,如何提高模型的效率?最近,Urbana-Champaign伊利诺伊大学的一名医生亨利·朱(Henry Zhu)发表了3FS解释。以下是原始博客:什么是3FS? 3FS(Fire-Flyer File System)是DeepSeek在开源发布周发布的共享文件系统,旨在利用现代固态驱动器(SSD)和远程直接内存访问(RDMA)网络的完整带宽,启用了千年,并驱动所有访问Data Seacteek平台的访问。本文将探讨什么是共享文件系统以及3FS的工作原理,并首先介绍一些背景知识。什么是共享文件系统?共享文件系统应用程序应用程序认为他们正在与常规的本地文件系统交谈。这个抽象非常强大:文件实际上散布在10个不同的机器上,看起来像一个简单的文件路径,例如/3fs/stage/notes.txt。共享文件系统的使用与使用本地文件系统没有什么不同。在上图中,我们通过运行MKDIR和CAT命令在本地和分布式文件系统中同时创建了文件夹和文件,并具有完全相同的命令。通过共享的文件系统,这些详细信息的lahat是-Abstract,用户只需要运行文件即可,而不必担心背景中涉及多少机器,有多少个网络调用或有多少个硬盘。与本地存储相比,共享文件系统的优点,共享文件系统具有两个主要的好处:它们可以处理大量数据(直至PB),并提供超出独立功能的高吞吐量。它对故障具有耐受性(即使机器下降,系统可以继续运行)和冗余功能(尽管一个节点中的数据损坏了,但OriginaL副本仍然可以从其他节点获得)。共享共享系统在许多实际应用中广泛使用:在概述(HDFS -nabled Spark)中的 - 通道处理中;带有数据加载器和检查点的机器学习管道; Google Colosus支持的内部大型代码/数据存储库;旅行等行业应用;照片存储服务和其他业务。关于3FS的深度学习,DeepSeek开源3FS如何工作?它的核心由四种主要节点组成:3FS中涉及的成分。这些组件的操作各不相同:1。Meta -MetaData管理:文件位置,特征,路径等; 2。MGMTD-服务器服务器控制群集的配置:其他节点处于活动状态的节点和复制共存的位置;它可以被视为路由器,它知道每个节点的地址,并将帮助节点互相找到。 (相同的相似性是NAT孔中使用的sentraaled服务器)3。存储 - 该节点将实际文件数据保存在物理磁盘上; 4。客户端 - 与所有其他节点交谈以查看和更改文件系统:请求mgmtd Discovery其他节点将请求Meta服务器执行文件操作(开放,无数,关闭,符号链接)和节点存储以移动数据,现在我们将更详细地了解每个组件。 MGMTDMGMTD寄存器MGMTD跟踪群集中的节点。存储节点和metanods在开始时注册,并发送心跳信号,以确认它们仍然活跃。它提供了系统的集中视图,可以立即确定哪些节点处于状态。管理请求节点不必维护与网络中所有其他节点的连接。相反,它可以通过要求管理节点来发现节点。随着它增加了额外的旅行以找到节点,因此可以降低复杂性,因为找不到静态节点。 MGMTD链。此外,MGMTD保持了不同的调整共享算法上的节点。具体而言,复制链(CRAQ是一种非常简短的算法,通过将节点视为链,可以实现强大的一致性和对断层的耐受性。),其节点被存储为对MGMTD的调整。一般METAMETA。元模比MGMTD稍复杂。客户正在通过RPC呼叫与之交谈。 Metaserver在Metastore中执行典型的文件系统操作(打开,创建,计数,UNLINK)。该文件的元数据位于Inode中,存储尺寸,权限,带有-Anower和Timestamp之类的功能。 Direntry地图已将路径放在了Inode中,并且一个文件可以具有很多Direntry(类似于符号链接)。 Inode和Directry都存储在基础Dbgitna中。有人可能想知道FoundationDB键是什么样的? inode:“ inod” + inode ID,dir条目:“ dent” + nodeid +路径,使用事务执行要求的操作。会话管理器监视打开文件,并存储文件会话在FoundationDB上。如果客户端已断开但未关闭文件,则会会话管理器将开始文件同步。删除文件请求与废物收集器一致,该废物收集器在删除目录条目和Inodes之前从存储节点中删除数据。总体-IMBA的存储-Storagekan。存储节点的主要功能是通过破坏块上的数据来管理物理存储的数据:Rust有一个旧的部分管理器,称为Chunkstore,写在C ++上。我真的不明白为什么要使用Rust,也许是因为使用很有趣,并且提供了可以监视磁盘存储块的更安全的保证。块表示物理磁盘,并监视其元数据(ID,大小,磁盘偏移,物理磁盘,检查,版本等)。这是所有其他结构用于监视数据块的最原始数据结构。块引擎不允许用户直接联系块,因为它增加了使用引擎的复杂性。发动机界面提供一些操作NS,为用户提供与引擎互动的严格而清晰的方式(查找,提供,制造,元数据等)。默认情况下,所有这些数据都存储在LevelDB中,前缀的字节表示操作类型(查询元数据),并且将块ID用作密钥。各种工人使用块引擎来维护物理存储,该存储提供了新的块来阻止发动机打孔器的回收块,这些块被过时的Aioreadworker持有请求,并在io_urning Pila中提出阅读请求,首先要等待完成并等待完成,我感到惊讶。块引擎不会在实际的物理磁盘上执行操作,它实际上只能管理元数据。这样做的原因之一是,精益的商品可以维持瘦身的实施,使其仅负责管理元数据的管理。必须存储节点将学习如何将写作操作传递给CRAQ链中的下一个目标。目前,您只需要知道写作操作离子需要传递给其他节点。该目标由几个块组成(可以将其视为包含不同块的逻辑存储)。链由许多目标组成(通常在多个节点中)。存储节点查询是用于其他节点链的MGMTD服务器,以及需要传递其链写操作的相应目标(节点)。 Craqcraq(带有查询共享的链复制)是一个强大的实现 - 具有相同协议的线性。这是确保数据块公差的主要机制。在这里,我们解释了CRAQ是如何工作的,并在3FS中显示了其实现。 craq写传播。写作的操作始于头部。在我们的示例中,我们在系统上写下名称=亨利。当写作操作移动链时,每个条目都标有一个版本号的“脏”。肮脏的条目是不安全的。当写作操作到达尾巴时,它会聚焦并标记为“干净”。 Craq写信。而应许消息已从尾部到头部的尾部进行了反向传播,写作操作将是干净的。每个节点都会提交入学并将其标记为干净。 craq Clean读取该过程很容易阅读:如果对象干净,则将立即将其返回给客户端。 Craq Dirty Read的挑战发生在肮脏的事物中。每个链条监视肮脏和干净的版本。由于尾巴始终包含最新的承诺数据,因此该副本在尾部中有尾巴以获得针对性的焦点,并确保强劲的需求。 CRAQ性能读写CRAQ性能根据工作负载而变化。写入吞吐量和延迟受链中最慢的节点的限制,因为应该处理写作以处理每个节点。例如,在Zipfian的工作负载中,经常访问数据是主导的,性能读数会受到影响,因为该对象可能很脏,请将查询强制到尾部节点。这会产生瓶颈,因为尾巴必须容纳大多数阅读请求。如何o在3FS中使用CRAQ存储是CRAQ正在运行的图纸。在此示例中,群集由5个节点组成,每个节点都有5个SSD。目标存储在3个节点中模仿,旨在防止叠加数据,从而防止了显着影响整体吞吐量的节点故障。考虑一个强烈的方案,其中所有链已经部署到节点1、2、3。如果节点1失败,则总吞吐量的1/3共享系统将消失,而不是1/5,如上图所示。给3FS设计笔记给出了一个示例,并更深入地解释了。 CRAQ在顶级,头部管理,中间和尾部节点上运行。 3FS使用强大的pare-相同的读取默认值。从头到尾写操作,然后从头到尾。吞吐量受到最慢的节点的限制,延迟由所有链节点的总延迟确定。比较不同复制协议的表。如上表所示,在标准情况下,CRAQ达到了测量的低晶格与其他协议和系统相比,以高延迟为代价来阅读。某些人目前可能会询问的其他共享文件系统:此体系结构和其他共享文件系统有什么区别?在高级别上,这些组件很常见,其中几乎每个共享系统中都出现在客户端概念,元数据,存储和管理节点。区别在于实际的可用性和实际实施:处理哪些灵活性的工作量很棒。 Expanding it is simple and easy to scale the throughput capabilities of service and keep the latency reliability within the SLO and the finer technical details that determine its existence: what bottlenecks exist how to manage bottlenecks that are locked (or do not use the method of loOck) uses a specific hardware data structure designed for which I would like to algorithm or erasure coding used in consideration of this, I would like to check on the performance of the relatively new resource由此文件分发。共享文件系统的开发具有挑战性,当前的基准相对有限,并且我们不将3F与单个节点系统和其他共享文件系统进行比较,因此很难评估其性能。有几个值得讨论的问题:一些Deptseek的说法是否有效,尤其是关于保险丝瓶颈的声明?我们可以以某种方式复制他们的性能图吗?在什么情况下会执行性能?什么是系统瓶颈(CPU/内存/磁盘/网络)?该文件系统的哪种类型的工作负载类型?如何与共享文件系统的其他人进行比较?它如何解决现有系统面临的问题?我可以在系统中做出一些改进吗?在本系列的其余部分中,那些设定的人将经历进行初始假设,测试它们并从差异中进行研究的过程,从而更深入地了解3FS的实际性能。参考原始TEXT:https://maknee.github.io/blog/2025/3fs-pherformance-jerny-1/