乾象投資:基于JuiceFS 構建云上量化投研平臺( 三 )


云廠商會提供一些方案,比如像阿里云的 NAS , AWS EFS 之類;另外一類是像阿里云的 CPFS 方案,AWS 的 FSx 方案 。這兩類文件系統的吞吐是與容量強綁定的,當容量越大的時候,吞吐會越大,跟 NAS 的存儲性質是直接相關的 。這樣的方案 , 在面對小量的熱數據的時候不太友好,需要額外的優化才能達到比較好的表現 。另外 CPFS 或者阿里云上的極速型 NAS,對低延時的讀取很友好,但缺點是成本比較高 。
就各自官網展示的價格,我們做了個對比 。各類高性能 NAS 產品的成本大概是 1500-2000元/TB/月,JuiceFS 整體的成本會低很多 , 因為 JuiceFS 的底層存儲是對象存儲。JuiceFS 的成本分成這樣幾個部分:對象存儲的存儲費用;JuiceFS 云服務的費用;以及SSD 緩存產生的成本 。綜合來看,JuiceFS 的整體成本遠低于 NAS 和其他方案的成本 。
在吞吐方面,早期做了一些測試,當節點數量比較少的時候,直接用 CPFS 跟做 JuiceF 對比,同時讀取性能不會有很大的差異 。但是當節點數變大之后,因為 NAS 類文件系統有帶寬限制,讀取時間整體都拉長了 , 而 JuiceFS 只要做好緩存集群的部署 , 可以非常輕松的支撐下來,并且沒有太大的開銷,下圖場景是部署了總帶寬約為 300Gb 左右的集群 。

乾象投資:基于JuiceFS 構建云上量化投研平臺

文章插圖
除了成本和吞吐以外,在技術選型時,JuiceFS 對上文提到的功能 Full POSIX、權限控制、Qos、Kubernetes 都能夠比較好的支持;
值得一提的是JuiceFS 的緩存集群能力,它能夠實現靈活的緩存加速 。最開始時,我們使用計算節點做本地緩存,這是一個挺常見的做法 。存算分離之后,希望計算節點有一些數據可以本地化,JuiceFS 這方面功能的支持是比較完善的,對于空間的占用、百分比的限制等都做得很完善 。我們部署了獨立的緩存集群去服務一些熱數據,只要在使用之前去做緩存預熱就可以了 。在使用過程中,我們發現不同的計算集群資源的利用率差別很大,集群中有一些大帶寬的機器,大部分時候都是用來做單節點的計算 , 這也就意味著機器的網絡的資源基本上是沒有怎么用到,而且還有一些閑置的磁盤,因此就在這些機器上去部署了緩存節點,把閑置的網絡帶寬給利用了起來 。最終使得我們在同一個集群中 , 實現了一個帶寬非常大的緩存集群 。
目前,JuiceFS 被用在了以下生產場景:
  • 計算任務數據文件系統,被應用于熱數據輸入;
  • 日志/ artifact 輸出;
  • Pipeline 數據中轉:數據特征生成之后,需要中轉到模型訓練中,訓練過程中也會有數據中轉的需求,Fluid 和 JuiceFS 作為中間的緩存集群來使用 。
未來,我們將繼續探索云原生、AI技術,用以進行更高效、安全的工具鏈研發和基礎技術平臺建設 。
如有幫助的話歡迎關注我們項目 Juicedata/JuiceFS 喲! (0?0?)

推薦閱讀