01ExponTech為什么要做WiDE?

簡(jiǎn)單說(shuō),當(dāng)前的存儲(chǔ)技術(shù)和時(shí)代、用戶(hù)需求有些脫節(jié)了。

存儲(chǔ)技術(shù)發(fā)展至今歷經(jīng)多代,大家最為熟悉的兩個(gè)階段,一個(gè)是2010年以前的傳統(tǒng)存儲(chǔ)技術(shù),標(biāo)志是硬件綁定,廠家生產(chǎn)什么,用戶(hù)買(mǎi)什么,如今的高端存儲(chǔ)市場(chǎng),傳統(tǒng)存儲(chǔ)依舊占據(jù)主流。

另一個(gè)是分布式存儲(chǔ)技術(shù)的出現(xiàn),標(biāo)志是軟件定義,對(duì)存儲(chǔ)硬件不再?gòu)?qiáng)求,可以是專(zhuān)用存儲(chǔ),也可以是通用服務(wù)器,現(xiàn)在主要應(yīng)用于中低端數(shù)據(jù)存儲(chǔ)場(chǎng)景。

一個(gè)高高在上,放不下身段,傳統(tǒng)高端存儲(chǔ)技術(shù)性能好,但價(jià)格昂貴,承載冷數(shù)據(jù)或者溫?cái)?shù)據(jù)是殺雞用牛刀;一個(gè)苦苦掙扎,卻難以突破,分布式存儲(chǔ)由于誕生的時(shí)代早,2010年主存以HDD機(jī)械硬盤(pán)為主,SSD技術(shù)還處于早期,甚至網(wǎng)絡(luò)還是以TCP/IP為主,所以軟件棧設(shè)計(jì)有很大的局限性,這直接導(dǎo)致分布式存儲(chǔ)軟件技術(shù)與硬件發(fā)展形成了斷檔。

傳統(tǒng)高端存儲(chǔ)無(wú)法飛入尋常百姓家,分布式存儲(chǔ)1.0又難以扛起高端存儲(chǔ)的大旗,在數(shù)據(jù)驅(qū)動(dòng)發(fā)展的今天,給時(shí)代、用戶(hù)帶來(lái)諸多困擾。

正是出于這樣的考量,ExponTech決心開(kāi)發(fā)一款全新的產(chǎn)品來(lái)彌合傳統(tǒng)高端存儲(chǔ)與分布式存儲(chǔ)之間的鴻溝,于是有了WiDE。

伴隨WiDE的發(fā)布,其既具備SDS 1.0靈活的擴(kuò)展性和軟硬解耦的純軟產(chǎn)品結(jié)構(gòu),又具備當(dāng)前定制硬件高端存儲(chǔ)產(chǎn)品的所有特性,并且還擁有適應(yīng)未來(lái)數(shù)據(jù)平臺(tái)基礎(chǔ)設(shè)施的全新能力,一石激起千層浪,對(duì)WiDE核心技術(shù)的討論,對(duì)ExponTech開(kāi)發(fā)團(tuán)隊(duì)的探討不絕于耳。

02 Astrapi極速I(mǎi)/O引擎催生一群強(qiáng)迫癥

WiDE作為整個(gè)軟件定義存儲(chǔ)的引擎,它的問(wèn)世宣告著SDS 2.0時(shí)代的到來(lái)。Astrapi極速I(mǎi)O引擎作為WiDE最核心的技術(shù)之一,意味著IO引擎的再一次突破,代表著IO引擎創(chuàng)新大門(mén)的再次開(kāi)啟,宣告著新時(shí)代新硬件能力真正有了用武之地。

之所以這么說(shuō),是因?yàn)锳strapi極速I(mǎi)/O引擎擁有很多核心技術(shù)能力,比如全無(wú)鎖的IO棧設(shè)計(jì)、全預(yù)分配內(nèi)存管理、端到端實(shí)現(xiàn)全棧零拷貝的能力,對(duì)于CPU充分并且精準(zhǔn)利用的能力等,每一種技術(shù)的實(shí)現(xiàn)都體現(xiàn)了整個(gè)團(tuán)隊(duì)對(duì)技術(shù)的極致追求。

重點(diǎn)講兩項(xiàng)技術(shù),一個(gè)是IO棧無(wú)鎖化設(shè)計(jì),一個(gè)是內(nèi)存管理機(jī)制。

上圖是Astrapi IO流一個(gè)比較形象的示意圖,由上到下是存儲(chǔ)服務(wù)層及協(xié)議層、網(wǎng)絡(luò)層和數(shù)據(jù)持久化層。Astrapi相當(dāng)于修建了貫穿三層的許多條數(shù)據(jù)管道,每一條管道都會(huì)綁定自己專(zhuān)屬的CPU核,從協(xié)議層開(kāi)始,IO就會(huì)按照一定的Sharding機(jī)制,分配到某一個(gè)數(shù)據(jù)管道上,而每一條數(shù)據(jù)管道對(duì)進(jìn)入管道的IO端到端負(fù)責(zé)到底,這些數(shù)據(jù)管道就像一條條高速真空隧道,許多的IO在里面穿梭,里面沒(méi)有紅綠燈,沒(méi)有檢查站,沒(méi)有阻力,沿途也沒(méi)有站需要停靠,也就是說(shuō)每一個(gè)IO都可以沒(méi)有任何等待和減速的過(guò)程,直接全速?zèng)_向目的地。

用專(zhuān)業(yè)的術(shù)語(yǔ),這樣的機(jī)制被稱(chēng)之為RTC, Run to completion,以及無(wú)鎖數(shù)據(jù)通道。傳統(tǒng)的IO管理方式之所以慢,是因?yàn)闄C(jī)制上是層層轉(zhuǎn)發(fā)傳遞IO,依賴(lài)于操作系統(tǒng)內(nèi)核調(diào)度和資源分配,依賴(lài)于鎖機(jī)制實(shí)現(xiàn)資源的協(xié)同共享,依賴(lài)于中斷機(jī)制實(shí)現(xiàn)層與層之間的異步消息傳遞。IO轉(zhuǎn)發(fā),線程上下文切換,IO中斷,鎖機(jī)制等都是需要消耗系統(tǒng)資源的,也就是增加了油耗。

Astrapi使用端到端無(wú)鎖數(shù)據(jù)管道以及IO Sharding, 徹底改變了這一傳統(tǒng)模式,讓每個(gè)IO跑得快一些,再快一些的同時(shí),消耗的資源也越來(lái)越少,完成了既讓馬兒跑的快,又讓馬兒少吃草的任務(wù)。

再看Astrapi極速I(mǎi)/O引擎中自研的內(nèi)存管理機(jī)制。內(nèi)存是計(jì)算機(jī)系統(tǒng)中僅次于CPU和CPU Cache的高速設(shè)備,所以很多人認(rèn)為讀寫(xiě)和拷貝幾次內(nèi)存,時(shí)間消耗可以忽略不計(jì)。中斷是傳統(tǒng)IO流程中必不可少的機(jī)制,用于協(xié)調(diào)高速的CPU對(duì)慢速的各種系統(tǒng)外部事件的處理,通常情況下中斷開(kāi)銷(xiāo)占整個(gè)I/O時(shí)間很小的比例,但是釋放了更多的CPU時(shí)間,因此中斷給系統(tǒng)帶來(lái)了效率提升。

但是,在一個(gè)極高速的IO處理系統(tǒng)中,每秒要處理幾百萬(wàn)個(gè)IO, 每一個(gè)IO處理過(guò)程中所引入的內(nèi)存拷貝及中斷,其開(kāi)銷(xiāo)已經(jīng)成為整個(gè)I/O處理時(shí)間中不可忽視的部分。

通過(guò)自研內(nèi)存管理機(jī)制,計(jì)算側(cè):從協(xié)議側(cè)IO接收,申請(qǐng)內(nèi)存,IO處理,再到網(wǎng)卡發(fā)送,存儲(chǔ)側(cè):網(wǎng)卡接收到IO,再到IO下盤(pán),全路徑?jīng)]有任何內(nèi)存拷貝,消除了用戶(hù)態(tài)與內(nèi)核態(tài)之間的內(nèi)存拷貝,網(wǎng)卡緩存與系統(tǒng)內(nèi)存之間的內(nèi)存拷貝,消除了線程切換帶來(lái)的上下文拷貝,也相應(yīng)的消除了這些機(jī)制所依賴(lài)的中斷調(diào)用,每秒消除數(shù)百萬(wàn)個(gè)類(lèi)似開(kāi)銷(xiāo),可以較大幅度提升系統(tǒng)的IO處理效率,還能夠節(jié)省額外的CPU資源消耗。

極致效率,極致代碼,一行都不能多余。近乎完美的要求,幾乎把開(kāi)發(fā)團(tuán)隊(duì)逼出了強(qiáng)迫癥、代碼潔癖。正是這樣的精神,奠定了WiDE引擎高性能的基礎(chǔ)。舉個(gè)例子,WiDE單卷峰值IOPS能夠輕松超過(guò)100w,而并發(fā)時(shí)延只有不到500 μs,要知道這是很多高端存儲(chǔ)都達(dá)不到的能力。Astrapi極速I(mǎi)/O引擎在WiDE中的價(jià)值,可想而知。

03中國(guó)存儲(chǔ)的引領(lǐng)者再次引領(lǐng)中國(guó)存儲(chǔ)

事實(shí)上,ExponTech的高端專(zhuān)家團(tuán)隊(duì)都具有著存儲(chǔ)或分布式存儲(chǔ)行業(yè)10年以上的經(jīng)驗(yàn),他們可以說(shuō)是中國(guó)存儲(chǔ)行業(yè)的引領(lǐng)者和見(jiàn)證者,深知整個(gè)存儲(chǔ)行業(yè)到了技術(shù)和產(chǎn)品的拐點(diǎn),而現(xiàn)在他們正在再次引領(lǐng)中國(guó)存儲(chǔ)行業(yè)。

聽(tīng)起來(lái),這樣的目標(biāo)令人興奮、血脈賁張,但整個(gè)過(guò)程面臨的挑戰(zhàn)、困難,恐怕也只有他們知道。試想一個(gè)名不見(jiàn)經(jīng)傳的手機(jī)公司上來(lái)就說(shuō)要挑戰(zhàn)蘋(píng)果,其它人會(huì)怎么想?瘋子、碰瓷、看笑話。

ExponTech面臨著同樣的問(wèn)題,這其中最大的挑戰(zhàn)有兩個(gè),一是行業(yè)的質(zhì)疑,二是時(shí)間不等人。拿什么擊碎行業(yè)的質(zhì)疑?憑什么短時(shí)間內(nèi)攻克即便大廠都需要更長(zhǎng)時(shí)間才能攻下的難題?靠打嘴仗?沒(méi)戲。兩大法寶,一是經(jīng)驗(yàn)積累,二是熱情。

只要產(chǎn)品出來(lái)了,一切質(zhì)疑就煙消云散了,這其中凝聚了ExponTech整個(gè)研發(fā)團(tuán)隊(duì)的經(jīng)驗(yàn)、熱情和汗水。

ExponTech研發(fā)團(tuán)隊(duì)的很多人都完成過(guò)行業(yè)多款明星存儲(chǔ)產(chǎn)品的全產(chǎn)品化,對(duì)包括產(chǎn)品調(diào)研、原型開(kāi)發(fā)、產(chǎn)品開(kāi)發(fā),質(zhì)量測(cè)試全流程周期熟稔于心,對(duì)于很多行業(yè)的前沿架構(gòu)和設(shè)計(jì)信手拈來(lái),每一個(gè)架構(gòu)設(shè)計(jì)和技術(shù)點(diǎn),每個(gè)人都曾經(jīng)在自己的腦子里推演過(guò)無(wú)數(shù)次,再加上大家都想做技術(shù)革命者的心態(tài),這才使得整個(gè)開(kāi)發(fā)時(shí)間極大縮短,只用一年就完成了其它團(tuán)隊(duì)2年,甚至3、5年才能完成的任務(wù)。

每一次突破背后都有很多故事,對(duì)于ExponTech這樣的初創(chuàng)團(tuán)隊(duì)尤是,汗水、淚水交織,關(guān)于Astrapi極速I(mǎi)/O引擎的故事,就先講到這里。

分享到

xiesc

相關(guān)推薦