稿定科技:多云架構下的 AI 存儲挑戰與 JuiceFS 實踐
稿定科技(gaoding.com)是一家專注于為企業和個人提供視覺內容創新方案的科技公司,致力于打造全新的設計方式,幫助更多用戶輕松掌控設計,創造價值。
隨著 AI 技術的加速發展,數據存儲和管理成為支撐公司創新與發展的關鍵基礎設施。最初,“稿定”的 AI 訓練數據主要依賴公有云廠商提供的對象存儲和 NAS 服務。但隨著業務快速發展,單一云廠商的 GPU 資源已無法滿足需求,“稿定”逐步轉向多云架構,以獲取更靈活的計算資源。但這也帶來了新的技術難題:如何在多個云環境中統一管理訓練數據,實現高效、低成本的跨云讀寫訪問。
JuiceFS 正是在這一背景下被引入,其出色的多云兼容性、靈活的掛載機制與完善的工具支持,幫助“稿定”快速打通了不同云環境間的數據訪問通路。目前,JuiceFS 管理了其訓練數據和模型庫,極大簡化了模型數據在多云環境下的管理流程,高效的緩存機制顯著加快了訓練過程中的數據加載,同時加速了模型推理階段的掛載響應,為業務帶來了實質性的性能與效率提升。
01 訓練場景的存儲挑戰:數據規模、性能與多云難題
隨著人工智能業務的迅速發展,稿定運維體系面臨諸多新挑戰,其中存儲無疑是最為關鍵的環節之一。AI 模型訓練通常包含五個主要步驟,而每個環節幾乎都離不開數據存儲的支持。
- 數據處理: 根據需求從各種渠道收集并存儲原始數據。
- 數據清洗與加工: 對收集到的數據進行清洗、裁剪和預處理。
- 模型訓練: 基于處理好的數據和算法模型進行訓練。
- 模型產出與驗證: 訓練完成后生成模型,并對其進行基本的性能和質量驗證。
- 推理服務: 模型驗證無誤后,部署上線提供推理服務。
在這一過程中,模型訓練環節面臨的存儲挑戰最大,呈現出下三大特點:
數據規模龐大: 相較于常規工作中常見的幾十 GB 甚至一兩 TB 的數據,AI 訓練數據往往體量巨大,小則幾十 GB,大則可達幾十 TB 甚至上百 TB。
數據讀取性能要求極高: 模型訓練離不開昂貴的 GPU 資源。如果數據讀取性能不佳,導致 GPU 使用率低下,將造成巨大的資源浪費。
熱數據管理需求: 模型訓練通常會對同一批數據進行多次迭代使用。這意味著當前使用的數據很可能在不久的將來會被再次訪問,因此希望能夠將這些數據緩存起來,以提高后續讀取速度。
若采用常規存儲方案作為訓練數據存儲,將面臨諸多問題:對于本地磁盤,采購和維護大容量磁盤成本較高,且單塊磁盤容量有限,需多個磁盤支持大規模數據存儲。此外,數據與計算緊密綁定,任務必須調度到數據所在的服務器,缺乏調度靈活性。
對象存儲的最大優勢是低廉的存儲成本,并且公有云廠商提供的 CSI(容器存儲接口)使得掛載更加便捷。然而,盡管成本低,讀寫性能較差,無法滿足大規模數據訓練對高性能存儲的需求。
公有云 NAS 是許多訓練數據存儲的常見解決方案,但存在幾個問題:操作效率較低,尤其在數據刪除和拷貝時速度較慢;權限管理功能不夠細?;?,權限控制存在不足;數據統計困難,難以準確計算目錄下的數據量。雖然像阿里云 CPFS 等高級 NAS 服務能夠提升性能,但其成本明顯增加。
除了上述存儲方案的局限性,我們還面臨更大的挑戰:單一公有云廠商已無法提供足夠的 GPU 資源。由于全球芯片供應緊張,獲取高性能 GPU 越發困難,這迫使我們考慮采用多云策略。然而,多云環境帶來了新的存儲難題:如何在不同云廠商之間共享訓練數據?每家云廠商的 NAS 服務差異較大,若要自行解決數據共享和同步問題,將是一個復雜且耗時的工程。
因此,我們不得不重新審視和規劃所需的存儲架構,以期能夠滿足在多云環境下進行 AI 訓練的嚴苛需求。
02 為什么選擇 JuiceFS?
經過一系列選型,我們最終選擇了 JuiceFS 作為存儲解決方案,主要基于以下考量:
-
多云架構支持: JuiceFS 能夠無縫對接大多數公有云平臺。通過其數據跨區域復制或鏡像文件系統功能,我們能便捷地實現多云或多區域之間的數據共享,解決了跨區域數據管理和同步的復雜性。
-
卓越的數據讀取能力: 借助 JuiceFS 獨特的分布式多級緩存機制,它能夠提供極其出色的數據讀取性能,這對于對 IOPS 和吞吐量要求極高的 AI 訓練場景至關重要。
-
核心數據管理能力:
- 權限控制: 盡管 JuiceFS 的權限控制是基于 Token 級別的,但已完全能夠滿足我們的日常業務需求。
- 回收站功能: 提供了回收站機制,當數據被誤刪除時,能夠快速進行恢復,有效保障了數據安全。
-
完善的工具鏈: JuiceFS 提供了一套相對完整的工具鏈,極大便利了我們的運維與管理
- CSI 支持: 對我們而言,CSI 至關重要,它使得 JuiceFS 在 Kubernetes 環境下的部署和使用變得非常簡便。
- 監控體系: JuiceFS 提供了豐富的監控信息,使我們能夠方便快捷地排查問題。
- 命令行工具:JuiceFS 的命令行工具功能強大且易于使用,特別是其中的克隆功能。數據處理前,通常需要進行備份,而傳統的拷貝方式速度較慢。相比之下,JuiceFS 的克隆功能能夠在秒級完成大數據量(如 1TB 或 2TB)的處理,顯著提高了工作效率。

以下是我們在選型過程中對 JuiceFS 和某 NAS 方案進行的性能比較測試,主要模擬日常 AI 訓練中常見的圖片數據。我們使用了隨機生成的 1 萬個文件,大小從 200KB 到 3MB 不等,總計 10K 數據。

測試結果顯示:
- 有數據緩存的情況下,JuiceFS 的讀取性能遙遙領先。
- 沒有緩存的情況下,其性能可能會略低于 NAS。
但在實際 AI 訓練任務中,所用的數據通常是預知的,我們可以在訓練任務開始前進行數據預熱,從而確保數據已建立緩存。在這種情況下,JuiceFS 的讀取性能優勢將得以充分發揮。在多點并行寫入場景下,JuiceFS 的性能也優于 NAS。
03 多云模型數據存儲實踐
多云需求是我們架構中的關鍵問題之一,因此在此我們對其進行詳細介紹。最初,我們的模型數據存儲方案主要包括兩種方式:
第一種是將模型上傳至對象存儲。在打包鏡像時:一是將模型直接打包進鏡像。由于部分模型體積較大,可能達到十幾 GB,這會導致鏡像體積增加至 20 多GB,進而造成鏡像拉取緩慢,甚至超時。二是在服務容器啟動時通過鏈接獲取模型。如果服務有多個實例,下載時間將大幅增加,可能導致效率低下。我們曾有一個服務采用此方式,十幾個實例的滾動更新需超過一個小時。無論采用哪種方式,都會在K8s集群中存儲多份模型數據,造成存儲資源的浪費。
第二種方案是將模型存儲到 NAS,服務容器掛載 NAS 使用。此方案存在兩個問題:其一,由于業務部署在國內外多個區域及不同云廠商,需要手動管理多個區域的模型數據同步;其二, NAS 的模型加載性能一般,容易導致業務請求超時。實際測試表明,每次加載模型所需時間大致相同。
引入 JuiceFS 后,我們使用其鏡像文件系統功能來建設多地域模型存儲架構。如下圖所示,該架構中,左側是源文件系統,右側對應多個鏡像文件系統。我們只需將模型導入到源文件系統,其他區域的鏡像文件系統便會自動同步這些模型數據。即使模型數據尚未完全同步過來,業務訪問時也會自動回源讀取。整個數據管理流程大為簡化,且緩存后的模型數據加載速度提高,JuiceFS 的加載性能約為傳統 NAS 的三倍。

通過引入 JuiceFS,我們有效簡化了跨云數據共享的復雜性,減輕了多云環境中的存儲壓力。此外,JuiceFS 提升了數據讀取性能,顯著提高了 GPU 利用率,從而優化了整體訓練過程。通過優化存儲架構并充分利用閑置資源,我們降低了存儲成本和人工管理成本,提升了運維效率。希望我們的實踐經驗能為社區用戶在多云存儲架構優化方面提供一些參考。

浙公網安備 33010602011771號