網易公司旗下云服務商網易數帆宣布開源一款名為Curve的高性能分布式存儲系統,官方稱其性能可達Ceph的 1.84 倍。
據官方介紹,Curve 的定位是提供一個高性能、低延遲的存儲底座,基于這個存儲底座,企業可以打造適用于不同應用場景的存儲系統,如塊存儲、對象存儲、云原生數據庫等。目前,網易數帆已經實現了高性能塊存儲系統。根據項目文檔介紹,Curve 主要具有三大特性:高性能、高可用和自治。
高性能:
Curve 團隊參考了業界一些高效的開源存儲系統,設計了一個新架構以實現高性能低延遲的核心能力。采用brpc保證網絡數據流的高性能和低延遲,基于braft實現多副本一致性下的低延遲,并對 braft 的快照實現進行了進一步的優化。磁盤 IO 方面,Curve 通過更細粒度的地址空間的 hash 減少 IO 碰撞,增加 IO 并發度,并采用 chunkfilepool 減小 IO 放大倍數,從而最大限度地發揮硬件的性能。
網易公布了 Curve 和 Ceph L 版本的測試數據對比,在單卷的場景下,核心的 4K 隨機讀/寫的IOPS 性能,Curve 分別是 Ceph 的 1.84 倍和 1.58 倍,同時延遲相比 Ceph 分別降低 48.39%和 37.50%。
圖:Curve與Ceph性能測試對比
高可用:
Curve 被設計為核心組件都能容忍部分實例失敗而不影響整個集群的可用性。網易介紹,無論是單臺存儲故障,還是系統擴容,Curve 的客戶端 IO 都不會受到影響,插拔硬盤、服務進程中斷這些常見異常,IO 抖動也很小。當然,故障恢復過程對上層 IO 也不會造成明顯影響。
自治:
Curve 可實現一鍵部署、一鍵升級,運維只要很少的人工干預,并基于 bvar、Promethues和Grafana等開源項目打造了全面的度量標準和告警體系。
目前,基于 Curve 的高性能塊存儲系統已經應用在網易的一些核心業務中,支持快照克隆和恢復, 支持 QEMU 虛擬機和物理機 NBD 設備兩種掛載方式。網易介紹,系統上線至今 400 多天,尚未出現數據不一致和丟數據的情況,也沒有發生過重大故障,具備相當的可靠性和成熟度。
網易透露,Curve 目前還有一些創新的性能優化工作尚未完成,如細粒度哈希、io_uring 落盤方案,項目團隊下一階段的主要任務就是解決這些問題,預計完成優化之后下個版本還會有 30% 的性能提升。
鑒于目前開源領域還沒有足夠高性能和低延遲的分布式存儲系統,網易數帆方面表示希望把 Curve 開源出來,回饋社區,讓業界一起來使用它,也希望大家一起參與把 Curve 打造得越來越好。