01ExponTech為什么要做WiDE?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

分享到

xiesc

相關(guān)推薦