01ExponTech為什么要做WiDE?

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

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

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

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

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

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

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

02 Astrapi極速I/O引擎催生一群強迫癥

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

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

重點講兩項技術(shù),一個是IO棧無鎖化設計,一個是內(nèi)存管理機制。

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

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

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

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

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

通過自研內(nèi)存管理機制,計算側(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)存拷貝,消除了線程切換帶來的上下文拷貝,也相應的消除了這些機制所依賴的中斷調(diào)用,每秒消除數(shù)百萬個類似開銷,可以較大幅度提升系統(tǒng)的IO處理效率,還能夠節(jié)省額外的CPU資源消耗。

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

03中國存儲的引領者再次引領中國存儲

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

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

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

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

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

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

分享到

xiesc

相關(guān)推薦