《蘇銳-擁抱 AI我們需要什么樣的存儲系統?.pdf》由會員分享,可在線閱讀,更多相關《蘇銳-擁抱 AI我們需要什么樣的存儲系統?.pdf(40頁珍藏版)》請在三個皮匠報告上搜索。
1、擁抱擁抱 AIAI,我們需要什么樣的存儲系統?我們需要什么樣的存儲系統?演講人:蘇銳自我介紹 蘇銳 2017 參與創辦 Juicedata,負責商業化與社區發展工作 之前做過 Startup founder,PM,Tech Lead 等角色 目錄目錄 用戶視角下,存儲系統選型的挑戰有哪些?存儲系統選型中的幾個難題 性能、價格的取舍與平衡 一個 LLM 案例分享什么是 JuiceFS?為云設計的分布式文件系統2017 年創立;開源版開源版:易部署,好維護。2021年發布,10.7K stars,最大文件系統超過 70B 文件 100PB 容量;企業版企業版:2019 年開始服務 AI 領域。Ge
2、nAI、自動駕駛、量化交易、生物科技、搜廣推等業務廣泛使用。01 01 用戶視角下,存儲系統選型的挑戰有哪些?描述存儲系統時,需要精確量化的形容詞我們經常用到下面這些詞 描述存儲系統:大規模 大量,海量 大文件 小文件 高性能 快,慢 描述存儲系統時,需要精確量化的形容詞我們習慣于參照過往經驗選擇形容詞,但我們需要更精確的定義。大規模:什么規模,容量,還是文件數量?大量,海量:有人說我們有大量數據,已經超過 50TB;有人說我們數據不多,只有 12PB。大文件:1MB,1GB,或者?小文件:10MB,1MB,1MB,越大越好)更需要存儲系統的吞吐能力,小文件(1MB,目前很多時候在 128KB
3、 上下)更需要 IOPS 能力 性能:主要關注吞吐(20GB/s)和 IOPS(100K QPS),要關注擴展性天花板影響性能的因素調整的難易度一個容量規劃例子 預期 500TB 容量;5 億文件規模;大文件是 GB 量級,小文件是 100KB 左右;讀吞吐預估 20GB/s,峰值 40GB/s;寫吞吐峰值 10GB/s;100K IOPS;業務可能快速增長,在容量、文件規模、性能維度都需要容易擴展。數據快速增長帶來的挑戰CV 領域MNIST,70K imgs,50MBImageNet,1.5M imgs,150GBOpenImages,9M imgs,500GBLLM 領域GPT,參數 11
4、0M,文本 5.7GGPT-2,參數1.5B,文本 40GGPT-3,參數 175B,文本 45TBGPT-4,參數 1800B,文本 1PB數據集越來越大,模型和 Checkpoint 也越來越大。單機存儲必須轉為分布式存儲,單機訓練也必須轉為分布式訓練。復雜的數據工作流Structured dataSemi-structured dataUnstructured dataParquet,Avro,ORC,Lance Log,CSV,JSON Image,Video,Audio,PCD,PDF,Fastq,XYZ,Bag,FFRecord ingestionclean,convertexpe
5、riment,feature engineeringpre-trainingpost-traininginferenceMegatron-LMMegatron-LMJuiceFS Unified Storage100PB100B10PB110B100TB1PB100M1B110TB10M100M10100TB10K10M如何測試存儲系統?功能測試基準性能測試業務負載測試,層層遞進。如何測試存儲系統?兼容性是容易被忽視的,pjdfstest 和 LTP test 是兩個 POSIX 兼容性權威測試集;2022 年測試結果用 S3FS 行不行?S3 LIST API 性能比文件系統慢10 x100
6、 x 倍;沒有原子 RENAME 支持;沒有追加寫;沒有 FILE LOCK。功能測試 基準性能測試 業務負載測試,層層遞進。如何測試存儲系統?功能測試 基準性能測試 業務負載測試,層層遞進。juicefs bench#最簡單的基準測試,適用于所有文件系統如何測試存儲系統?同樣是 JuiceFS 為什么性能不同?請在自己的環境上測試性能功能測試 基準性能測試 業務負載測試,層層遞進。juicefs bench#最簡單的基準測試,適用于所有文件系統如何測試存儲系統?要識別業務系統的 I/O 模式:同步 I/O 舉例:有算法工程師喜歡用 LMDB 保存數據,它的讀取是同步 I/O 模式,Page
7、Size 4KB,所以我們讀取的數據會被拆分成一連串 4KB 的請求,在網絡存儲中就會引入更多的網絡開銷。異步 I/O 舉例:FFRecord 是 Deepseek 開源的一個數據格式,它提供的 SDK 使用 libaio 讀取數據,可以通過提高并發獲得更高的 IOPS 與吞吐。隨機 I/O 舉例:Hugging Face 提供的 Safetensor SDK 使用 mmap 方式讀取數據,它會把一個大文件映射到內存地址空間后隨機讀取。功能測試 基準性能測試 業務負載測試,層層遞進。如何測試存儲系統?功能測試 基準性能測試 業務負載測試,層層遞進。02 02 存儲系統選型中的幾個難題集中式架構
8、與分布式架構怎么選?集中式存儲架構:優勢:1.簡化管理:所有數據都存儲在一個位置,便于集中管理和監控。2.性能:可以部署高性能的硬件來優化讀寫速度,如使用高速的存儲設備和優化的文件系統。3.成本效益:對于小規模數據,集中式存儲可能更經濟,因為它不需要在多個節點上復制數據。4.數據一致性:由于數據存儲在單一位置,更容易保證數據的一致性。劣勢:1.單點故障:如果存儲設備發生故障,整個系統可能會癱瘓。2.擴展性限制:隨著數據量的增長,集中式存儲可能會遇到擴展性瓶頸。3.性能瓶頸:在高負載情況下,單一存儲設備可能會成為性能瓶頸。4.數據遷移困難:在需要遷移到新系統時,可能會因為數據量大而變得復雜和耗時
9、。分布式存儲架構:優勢:1.高可用性:數據分布在多個節點上,即使某個節點失敗,系統仍然可以繼續運行。2.可擴展性:可以通過增加更多的節點來擴展存儲容量和處理能力。3.容錯能力:分布式系統通常設計有數據冗余,可以容忍一定數量的節點故障。4.負載均衡:請求可以分散到多個節點,減少單個節點的負載。劣勢:1.復雜性:需要復雜的管理工具和協議來協調多個節點。2.數據一致性:在分布式系統中保持數據一致性是一個挑戰。3.成本:需要更多的硬件和網絡資源,可能會增加總體成本。4.性能問題:網絡延遲和數據同步可能會影響性能。集中式架構與分布式架構怎么選?集中式存儲架構:優勢:1.簡化管理:所有數據都存儲在一個位置
10、,便于集中管理和監控。2.性能:可以部署高性能的硬件來優化讀寫速度,如使用高速的存儲設備和優化的文件系統。3.成本效益:對于小規模數據,集中式存儲可能更經濟,因為它不需要在多個節點上復制數據。4.數據一致性:由于數據存儲在單一位置,更容易保證數據的一致性。劣勢:1.單點故障:如果存儲設備發生故障,整個系統可能會癱瘓。2.擴展性限制:隨著數據量的增長,集中式存儲可能會遇到擴展性瓶頸。3.性能瓶頸:在高負載情況下,單一存儲設備可能會成為性能瓶頸。4.數據遷移困難:在需要遷移到新系統時,可能會因為數據量大而變得復雜和耗時。分布式存儲架構:優勢:1.高可用性:數據分布在多個節點上,即使某個節點失敗,系
11、統仍然可以繼續運行。2.可擴展性:可以通過增加更多的節點來擴展存儲容量和處理能力。3.容錯能力:分布式系統通常設計有數據冗余,可以容忍一定數量的節點故障。4.負載均衡:請求可以分散到多個節點,減少單個節點的負載。劣勢:1.復雜性:需要復雜的管理工具和協議來協調多個節點。2.數據一致性:在分布式系統中保持數據一致性是一個挑戰。3.成本:需要更多的硬件和網絡資源,可能會增加總體成本。4.性能問題:網絡延遲和數據同步可能會影響性能。不適合數據量快速增長的 AI 業務,比如持續進行預訓練、微調、對齊等;僅支持推理業務在規模上沒問題,但要注意多區域數據管理需求。集中式架構與分布式架構怎么選?集中式存儲架
12、構:優勢:1.簡化管理:所有數據都存儲在一個位置,便于集中管理和監控。2.性能:可以部署高性能的硬件來優化讀寫速度,如使用高速的存儲設備和優化的文件系統。3.成本效益:對于小規模數據,集中式存儲可能更經濟,因為它不需要在多個節點上復制數據。4.數據一致性:由于數據存儲在單一位置,更容易保證數據的一致性。劣勢:1.單點故障:如果存儲設備發生故障,整個系統可能會癱瘓。2.擴展性限制:隨著數據量的增長,集中式存儲可能會遇到擴展性瓶頸。3.性能瓶頸:在高負載情況下,單一存儲設備可能會成為性能瓶頸。4.數據遷移困難:在需要遷移到新系統時,可能會因為數據量大而變得復雜和耗時。分布式存儲架構:優勢:1.高可
13、用性:數據分布在多個節點上,即使某個節點失敗,系統仍然可以繼續運行。2.可擴展性:可以通過增加更多的節點來擴展存儲容量和處理能力。3.容錯能力:分布式系統通常設計有數據冗余,可以容忍一定數量的節點故障。4.負載均衡:請求可以分散到多個節點,減少單個節點的負載。劣勢:1.復雜性:需要復雜的管理工具和協議來協調多個節點。2.數據一致性:在分布式系統中保持數據一致性是一個挑戰。3.成本:需要更多的硬件和網絡資源,可能會增加總體成本。4.性能問題:網絡延遲和數據同步可能會影響性能。GlusterFS:隨集群規模上升,元數據性能下降。會遇到數據一致性問題。MinIO:只提供 S3 API。Ceph:RG
14、W 是 S3 API,CephFS 建議只用 Single-MDS,Multi-MDS 運維難。Lustre:需要有數據副本機制的塊存儲系統配合使用。GPFS:整體反饋不錯,單集群 10PB 以上穩定性下降。JuiceFS:適合云環境,尤其多云。用戶態與內核態客戶端怎么選?用戶態與內核態客戶端怎么選?內核客戶端更節省系統資源,省去內核態向用戶態拷貝的開銷,性能更高。用戶態與內核態客戶端怎么選?內核客戶端更節省系統資源,省去內核態向用戶態拷貝的開銷,性能更高。但用戶態客戶端:-不用編譯內核模塊,維護和升級更簡單;-有更好的隔離性,不會導致宿主機崩潰;-目前的計算范式中,算力瓶頸更明顯,對存儲系統
15、的期待更多是穩定和易擴展的性能,而不是極致的性能。用戶態與內核態客戶端怎么選?需要 InfiniBand 網絡么?IB 網絡目前多用于 GPU 間通信,但較少用于訪問存儲系統的網絡;IB 組網沒有 IP 方便,網卡、交換機價格顯著高于 IP 設備,且供應商集中,訂貨周期也是影響系統可擴展性的重要因素;存儲集群內部有使用 IB 網絡,但我推薦采用更加通用的硬件做存儲系統;需要 RDMA 通信么?RDMA 可以優化時延,但是對大文件順序讀寫的吞吐優化幫助不大;RDMA 需要內核模塊支持,增加了運維成本;也需要專用的編程接口,提高了開發難度,普適性還不及 TCP;RoCE 在 GPU 環境中正在快速
16、部署,普遍使用 v2;目前 Transformer 和 Stable Diffusion 等常見模型架構中,高帶寬網卡使用 TCP 通信也可以很好支持訓練需求;存儲系統也會被大量 CPU 節點使用,所以網絡普適性很重要的,能支持數千數萬客戶端訪問是重要的;公有云的虛擬化環境中 RDMA 支持還不普遍。訓練中使用 TCP/IP 網絡的 JuiceFS訓練中使用 TCP/IP 網絡的 JuiceFS應用不夠快,是因為存儲慢么?僅靠吞吐、時延、QPS 等指標可以得到存儲系統性能,但是無法知道原因 需要繼續觀測更詳細的 I/O 行為表現,判斷上層應用的數據訪問特征。應用不夠快,是因為存儲慢么?僅靠吞吐
17、、時延、QPS 等指標可以得到存儲系統性能,但是無法知道原因 需要繼續觀測更詳細的 I/O 行為表現,判斷上層應用的數據訪問特征。0 03 3 性能、價格的取舍與平衡上一代文件存儲系統:集群擴容,才能得到更大吞吐為物理機設計的分布式存儲方案:增加更多的磁盤,才能提供更大的吞吐。AWS FSx for Lustre PERSISTENT-1000吞吐 10000 MBps/TiB 存儲容量,IOPS 數萬/TiB 存儲容量$0.6/GB/month(US-East Ohio)性能、價格的取舍與平衡容量由對象存儲提供,性能由緩存提供,兩者獨立彈性伸縮兩者獨立彈性伸縮多級緩存多級緩存:Page ca
18、che,local cache,remote cache$0.04/GiB/mo(JuiceFS+S3)案例分享:一個支持 LLM 預訓練的 JuiceFS 集群數據量 12PiB文件數 2.1億億客戶端 1100+讀吞吐峰值 186 GB/s寫吞吐峰值 20 GB/s案例分享:一個支持 LLM 預訓練的 JuiceFS 集群數據量 12PiB文件數 2.1億億客戶端 1100+讀吞吐峰值 186 GB/s寫吞吐峰值 20 GB/s業務初始,不能確定使用方法,甚至連業務內容都不確定。此時,JuiceFS 的幾個特性提供了便利:通用:完整的 POSIX 兼容很重要;彈性:包括容量與吞吐聚合能力;
19、成熟的 CSI 驅動,在 Kubernetes 中使用穩定、靈活;多云,快速在不同云平臺部署。數據鏡像能力,減少了人工管理數據調度、一致性的痛苦。后期也在機房中結合 Ceph 使用??偨Y從 LLM 開始,AI 進入一個快速發展的階段,計算范式在快速變化,在這樣的時期里的幾條存儲系統選型建議:通用性、彈性、高性價比是需要優先考慮的;性能是重要指標,但不要忘記上一條觀測業務代碼中的 I/O 行為,才會有清晰的優化方向;多考慮使用云,快捷和靈活是當下 AI 入局最重要的。#JuiceFS 蘇銳THANKS大模型正在重新定義軟件Large Language Model Is Redefining The Software官網:https:/Github:https:/