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