DeepSeek 開源 3FS,一個文件系統而已,有啥值得吹的?
有人說,deepseek一個搞AI的公司,不干正事,開源一個文件系統,有啥值得吹的。今天來簡單聊聊3FS,包懂。
1. 3FS是什么?
3FS,Fire-Flyer File System,是一個用C++寫的高性能分布式文件系統。
畫外音:幻方官網給出的翻譯是“螢火”。
2. deepseek為什么要重寫分布式文件系統?
主要兩個原因。
其一,技術已經全面升級。
- 傳統的分布式文件系統設計之初基本,大部分基本基于HDD與NFS TCP/IP;
- 而AI訓練與推理大范圍使用SSD與RDMA;
畫外音:RDMA,Remote Direct Memory Access ,遠程直接內存訪問,最新高性能網絡通訊技術。
其二,AI訓練與推理的業務需求傳統分布式文件系統已經難以滿足。
- 海量數據順序讀(語料輸入);
- 檢查點(分步驟重算);
- 順序寫(模型參數保存);
- 隨機讀(特征查詢);
任何脫離業務的架構設計都是耍流氓。Deepseek說,已有的分布式文件系統無法滿足我的需求時,我就自己重寫一個。
3. 如何重寫一個分布式文件系統?
核心架構選型,基本是兩條路。
其一,重寫Linux內核的文件管理模塊。
這條路似乎走不通:
- 不能使用C++ STL等成熟庫;
- 不能使用用戶態下的編譯,調試工具(例如:Valgrind);
畫外音:額,最煩用Valgrind查內存泄露。
- 要考慮大量的兼容性;
- 編譯,測試周期長;
- 容易導致系統崩潰;
- …
還有很重要的一點,deepseek沒有搞Linux內核編程的人。
其二,正好Linux提供了FUSE機制,允許用戶在不修改內核代碼的情況下,在用戶空間實現自己的文件系統。
畫外音:FUSE,Filesystem in Userspace,允許用戶通過接口與Linux虛擬文件系統VFS對接。
這樣的話,deepseek就能用高效的語言,高效的工具,高效的開發適配自己業務的分布式系統了。
這里,除了說一聲deepseek流弊,也讓我們大聲喊出:Linux流弊!
4. 作為一個分布式文件系統,3FS有哪些特點?
(1) 高性能:所有組件都采用RDMA網絡連接,零拷貝。
(2) 低耦合:元數據與存儲分離。
額,分布式文件系統一般都這么搞,不值得吹。
(3) 一致性:基于FoundationDB不同場景支持不同的一致性模型:
- 常規寫入:強一致,鏈式復制;
- 文件更新:最終一致,定期同步;
很少有文件系統這么搞,這是一個一致性與性能的折衷。
(4) 均衡性:智能數據分片;
(5) 可靠性:多副本。
額,分布式文件系統一般都這么搞。
(6) 靈活性:物理塊大小分級,從64K到64M,適配不同AI訓練與推理場景。
減少了碎片,提高了SSD效率,但需要維護更多層級的資源池,分配復雜度提升。這是一個存儲效率與存儲復雜度的折衷。
(7) 快速恢復:全量替換。
額,這是一個偷懶的設計,不用復雜的回放恢復,簡化了恢復流程,數據恢復期間比較占流量。往好的方面吹,只能說恢復速度快了=_=。或者這么說,文件損壞是小概率事件,不值得因此把整體設計搞復雜,這是一個概率與復雜性的折衷。
總的來說,針對AI訓練與推理的場景,3FS做了非常多針對性的優化。
畫外音:代碼還在看,看完再和大家細致交流。
5. 最終3FS達到了什么效果?
上面是3FS官網git給出的數據,并附上了實驗復現步驟。
幻方官網,最顯著的位置,說明了3FS是他們最大的三大核心競爭力之一。
畫外音:還有算子庫+分布式訓練通訊框架。
- 讀:8T/s
- 寫:500G/s
- IO響應:18億次/s
- 集群使用率:96%
- GPU使用率:85%
看到這里,你還會說,“一個文件系統而已”了嗎?
補充閱讀材料:
- https://github.com/deepseek-ai/3FS
- https://www.high-flyer.cn/blog/3fs/
來自官方git與官方blog,可參考。