性能1.84倍於Ceph!網易數帆Curve分散式存儲開源
在上周剛結束的網易數字+大會上
網易數帆宣布:
開源一款名為Curve的高性能分散式存儲系統,
性能可達Ceph的1.84倍!
網易副總裁、網易杭州研究院執行院長兼網易數帆總經理汪源:
基礎軟體的能力對於數字化轉型非常關鍵,當前存儲領域需要一款性能更高、可用性/可靠性更好、自治能力更強的分散式存儲系統,Curve的開源不僅代表網易數帆在基礎軟體市場的堅持,也為軟體定義基礎設施生態的繁榮再添一把火。
採用先進架構設計 單卷性能1.84倍於Ceph
Curve的定位,是提供一個高性能、低延遲的存儲底座,基於這個存儲底座,企業可以打造適用於不同應用場景的存儲系統,如塊存儲、對象存儲、雲原生資料庫等。目前,網易數帆已經實現了高性能塊存儲系統。
汪源介紹,Curve主要具有三大設計特點:高性能、高可用和自治。
高性能源自先進架構。Curve參考了業界的存儲系統,採用先進、高效的開源技術,設計了一個新架構實現高性能低延遲的核心能力,採用高性能的RPC框架來保障網路數據流的高性能和低延遲,基於Raft協議實現多副本一致性下的低延遲,並針對Raft協議的快照實現進一步優化。磁碟IO方面,Curve通過更細粒度的地址空間的hash減少IO碰撞,增加IO並發度,並採用chunkfilepool減小IO放大倍數,從而最大限度地發揮硬體的性能。
汪源公布了Curve和CephL版本的測試數據對比,在單卷的場景下,核心的4K隨機讀/寫的IOPS性能,Curve分別是Ceph的1.84倍和1.58倍,同時延遲相比Ceph分別降低48.39%和37.50%。
他在採訪中透露,Curve還有一些創新的性能優化工作尚未完成,如細粒度哈希、io_uring落盤方案,預計完成優化之後下個版本還會有30%的性能提升。換句話說,Curve單卷性能將會達到Ceph的2倍以上。性能差異來自架構設計的不同選擇,分散式一致性Curve採用了Quorum機制,而Ceph實現強一致性,前者延遲優於後者,而且可以在不太影響IO性能的情況下能從故障中快速恢復。
Curve與Ceph性能測試對比
高可用方面,Curve被設計為核心組件都能容忍部分實例失敗而不影響整個集群的可用性。汪源介紹,無論是單台存儲故障,還是系統擴容,Curve的客戶端IO都不會受到絲毫的影響,插拔硬碟、服務進程中斷這些常見異常,IO抖動也很小。當然,故障恢復過程對上層IO也不會造成明顯影響。
此外,在自治方面,Curve實現了一鍵部署、一鍵升級,運維只要很少的人工干預,並基於Promethues和Grafana等開源技術打造了全面的度量標準和告警體系。
回饋開源 強化軟體定義基礎設施短板
基於Curve的高性能塊存儲系統已經作為應用在網易的一些核心業務中,支援快照克隆和恢復, 支援QEMU虛擬機和物理機NBD設備兩種掛載方式。
系統上線至今400多天,從未出現數據不一致和丟數據的情況,沒有發生過重大故障,數據可靠性達到100%,服務可用率達到4個9以上。線上環境的異常演練,也證實了異常對業務的影響如上文所述。但對於網易數帆來說,這個成績只是Curve征途的開始。
鑒於目前開源領域還沒有足夠高性能和低延遲的分散式存儲系統,汪源宣布,網易數帆把Curve開源出來,回饋社區,讓業界一起來使用它,也希望大家一起參與把Curve打造得越來越好。
Curve項目的最新穩定版本已經上傳到Github,並提供了部署文檔。作為生長於中國本土的項目,Curve首先提供中文文檔,希望降低中文用戶嘗鮮的門檻。對Curve感興趣的朋友,可以通過//opencurve.github.io獲取更多資訊啦。