由中國計算機學(xué)會信息存儲技術(shù)專業(yè)委員會、中國教育部信息存儲系統(tǒng)重點實驗室和DOIT、存儲在線共同舉辦的2016中國閃存峰會在京召開,主題為“關(guān)鍵之年,讓閃存綻放”,來自產(chǎn)業(yè)界的眾多嘉賓圍繞閃存技術(shù)本身將如何演變與發(fā)展,以及閃存競爭的其它存儲芯片技術(shù),存儲系統(tǒng)將會怎樣發(fā)展這些熱點問題進(jìn)行了精彩的分享。

達(dá)沃時代副總裁雷迎春先生發(fā)表了名為“超融合與閃存”的主題演講。以下為此次演講實錄:

我是達(dá)沃時代的雷迎春,前面幾位主要講關(guān)于介質(zhì)方面的事情,我們從超融合的角度看看面臨的挑戰(zhàn),以及我們怎么使用閃存系統(tǒng)。

我在2000年左右的時候做存儲,我們的軟件06年的時候開始做,那個時候沒有特別多的開源系統(tǒng)可以借鑒。Yeeos是我們的核心,我們派生出了YeeStor和WooStor中心,西藏到北京,南邊是東莞的14個中心看成是一個操作系統(tǒng),我們做了這樣的事情。到目前為止,我們也是為數(shù)不多的提供運營者,我們的存儲有多種接口,可以跑在虛擬機,也可以跑在物理的環(huán)境下。因為我們是SDS的軟件,所以我們硬件上是使用標(biāo)準(zhǔn)的服務(wù)器,服務(wù)器也可以放在不同的數(shù)據(jù)中心里。

我們有原數(shù)據(jù),這是不同的設(shè)計體驗,但企業(yè)是有抑制的,有可能是高帶寬的,我們通過分布式的體驗,可以比較好的綜合使用不同的資源。我們可以看到IT結(jié)構(gòu),第二平臺到第三平臺的升級是一個非常大的概率事件,推動力可能就是數(shù)據(jù),我們現(xiàn)在產(chǎn)生的數(shù)據(jù)太廉價。隨著數(shù)據(jù)的增加,IT系統(tǒng)越來越復(fù)雜,規(guī)模越來越大,其實傳統(tǒng)的陣列可能會比較難受。并不是說陣列技術(shù)出了問題,而是可能在云結(jié)構(gòu)下面有一些場景適應(yīng)不了。第三平臺的應(yīng)用,現(xiàn)在主要就是超融合。今天講講我們在超融合開發(fā)過程中碰到的挑戰(zhàn)。

資源共享,傳統(tǒng)的陣列可以獨享CPU,可以盡可能的發(fā)揮硬件的特點,我們從編程來看可以利用多線程。如果發(fā)揮NVMe可能利用別的模式,但是在超融合不是這樣的,我們說不能使用超過20%的計算資源。我們在程序設(shè)計的時候,這不是簡單把軟件可以部署在一塊,絕對不是這樣的情況。超融合它的目標(biāo)定義來說,更強調(diào)是一種均衡的性能,而不是說莫名其妙地提供數(shù)據(jù),超融合看到應(yīng)用的運行流暢性和系統(tǒng)的可靠性,最大的特點就是由于共享資源帶來非常強的限制。

為什么細(xì)說這件事情,我們很典型的客戶在教育環(huán)境,它們幾乎不具備像傳統(tǒng)IT的管理能力,對它們來說每天干的事情,關(guān)機直接拉電閘。第一個傳統(tǒng)的陣列很少被關(guān),不敢動,我們現(xiàn)在的客戶直接關(guān)電,這個時候必須得考慮掉電保護(hù),傳統(tǒng)的UPS很難利用超融合,有幾個原因,有可能是成本的原因。如果說你要把這些布件移到超融合,這個產(chǎn)品定義會出問題的。我們對超融合的使用來說,我們是定位于小白用戶,或者說IT感受為0。Server SAN不會考慮掉電的情況,但是超融合不得不考慮掉電。

這個軟件很難受,我們會做很多的操作在里面,因為只能通過軟件的方式避免掉電的事情,所以我認(rèn)為超融合的故障電是大于Server SAN,虛擬機有各種應(yīng)用機。存儲本身是自由的,超融合有其它第三方的應(yīng)用。我們是通過軟件來應(yīng)對突發(fā)性的拉閘式的斷電行為,我認(rèn)為這是非常困難的事情。

我們傳統(tǒng)的陣列來說,它的硬盤相對固定,這個時候比較容易做一些數(shù)據(jù)的分布。超融合不太一樣,因為服務(wù)器和存儲介質(zhì)時刻都有可能不存在,所以我們程序里花了很大的時間來解決這樣的意識性問題,資源不存在的事情。超融合需要很復(fù)雜的分布式計算技術(shù),也需要很高效地適應(yīng)節(jié)點和資源。有強的一致性,而不是系統(tǒng)的一致性,亞馬遜論文說提供系統(tǒng)的一致性,只要系統(tǒng)一致就可以。我們目前需要存儲一致性,只要數(shù)據(jù)存儲,你就必須得保證數(shù)據(jù)一定要存在。無論資源怎么樣,只要少的部分資源丟失不影響數(shù)據(jù)的,我認(rèn)為考慮問題可能和做陣列廠商,或者說傳統(tǒng)存儲不太一樣。分布式為什么非常重要,節(jié)點失效是常態(tài)。

NFS基礎(chǔ)是RBC,你只會建一個鏈條,因為有限制。NFS可能沒有辦法用到帶寬,因為現(xiàn)在的網(wǎng)絡(luò)很快了。新的技術(shù)出現(xiàn),都是為了利用已有更好的帶寬資源做。如果標(biāo)準(zhǔn)的話,需要做很復(fù)雜的轉(zhuǎn)化,這會消耗CPU的資源,本身超融合CPU不富裕,不得不用傳統(tǒng)的方式來做。

超融合本身是需要統(tǒng)一存儲的,現(xiàn)在很多的初創(chuàng)企業(yè),或者說已有的超融合領(lǐng)先的企業(yè),包括美國企業(yè),很多的企業(yè)提供存儲。但是VM是什么?你有可能會裝數(shù)據(jù)庫,肯定里面有文件應(yīng)用會需要文件性的東西。超融合本身還是需要在存儲的池里面提供統(tǒng)一存儲的協(xié)議,而不是說僅僅簡單的只是用一個快存儲。超融合也好,Server SAN也好,傳統(tǒng)陣列的功能都得有,需要分布式的技術(shù)來實現(xiàn)。由于CPU的限制,可能無法開啟一些功能。比如說去重的問題,我們除了去重還有一些壓縮,但凡會引起到CPU的資源,我們都沒有辦法開這樣的功能。從用戶的場景來說,超融合本身主要就是小白用戶居多,陣列或者說是Server SAN是專業(yè)的維護(hù)人員,所以它場景是完全不一樣的。超融合不太適合性能。

為什么超融合需要閃存,傳統(tǒng)的情況下VM可以把IO順序化,但是多個VM在一塊會把數(shù)據(jù)變成一個隨機的IO。沒有閃存是不太可能的,我們曾經(jīng)在兩年前的時候做過一個全硬盤的超融合,但是這樣的情況下現(xiàn)在的閃存太便宜,而且很容易達(dá)到幾萬,所以后來逐漸地把這個方案放棄。但是超融合離開閃存就不需要提了。我們有兩種方式,混合存儲和全閃存,都是利用快速的存儲設(shè)備作為緩存。

現(xiàn)在在我們用戶的部署情況下,大部分的應(yīng)用還是混合存儲,因為超融合的定義和陣列的定義不一樣,陣列的定義是高性能,高可靠,對用戶的成本還是非常敏感的。我們現(xiàn)在更多的工作還是在混合存儲方面。我們設(shè)計了日志式的訪問結(jié)構(gòu)。這種方式很難用到超融合里面去。系統(tǒng)改變了IO的邏輯,由于虛擬化的存在可能會影響到存儲軟件對CPU的使用。傳統(tǒng)的做工作,他們沒有想過把數(shù)據(jù)寫在本地利用超融合,他們想數(shù)據(jù)怎么寫在外面的存儲,通過網(wǎng)絡(luò)。CPU好壞對效果有很大的差別,F(xiàn)TL本身讓閃存看起來像硬盤,閃存本身每次寫操作有可能只采取寫到另外的位置。

了解這件事情本身是我們怎么用好閃存的工作,閃存本身很多的便攜性,英特爾如果想利用好的話,內(nèi)部架構(gòu)本身是需要告知的,這些數(shù)據(jù)我們都是不斷地問它們的負(fù)責(zé)人。SSD是有內(nèi)部并行的,有通道、芯片、封裝,SSD本身的讀寫力度越大的話,效果是越好的,力度小的話,開銷會大一些。讀沒有問題,寫的話大塊的寫,不要小塊的寫,我們認(rèn)為這會影響到我們的系統(tǒng)設(shè)計。我們裸設(shè)備IO設(shè)計中,資源分配是由MDS管理,我們是把它分成段,我們基于裸設(shè)備的空閑回收。為了發(fā)揮SSD的特點,我們盡可能地順序?qū)懡鉀Q可靠性這件事情,一部分的寫緩存,另外做只讀緩存,為了加快訪問,我們在內(nèi)存里面建立了系統(tǒng),緩存做了大了,一旦宕機的話,不能秒級的恢復(fù)起來,還是需要掃描介質(zhì),然后把內(nèi)存的索引服務(wù)恢復(fù)起來,這是要加快的。

下面的分布式存儲可以解決可靠性和負(fù)載均衡,我們希望部署的方式更大塊的使用閃存和硬盤,這是我們這樣的東西。達(dá)沃當(dāng)前的選擇,讀寫緩存盡可能利用裸設(shè)備訪問,解決延遲IOPS的問題。持久化的問題可能是硬盤,也有可能會是閃存,所以這是一套軟件既可以支持全閃,也可以支持混合存儲。

我們自己說是閃存,不能是硬盤,不能采取硬盤的方式訪問,需要采用特殊的結(jié)構(gòu)來做。日志的結(jié)構(gòu)是隨大流,我們利用這樣的方式比較好的可以把閃存的特性發(fā)揮出來。但是它的代價本身就是內(nèi)存資源,規(guī)模其實是有限的,盡量減少CPU的消耗,這是我們現(xiàn)在使用的超融合。

超融合本身是一個中產(chǎn)規(guī)模,這是小白用戶,不太適合做高性能的事情。怎么讓一個應(yīng)用運行流暢,可能會是我們非常重要的考慮。開發(fā)難度上,超融合的難度是高于分布式存儲。我們最近有幾個月的時間解決存儲的問題,我們在問原廠的程序員,他們有沒有想過這個問題,所以很多的問題可能不得不自己解決,因為如果說不解決的話系統(tǒng)會出很大的事情,所以我認(rèn)為難度是要高于存儲的,因為存儲只需要考慮自身的事情,而超融合要考慮應(yīng)用,包括了操作系統(tǒng)本身的東西考慮的比較多。

閃存不是硬盤,需要一種合理的數(shù)據(jù)結(jié)構(gòu)才能把閃存給使用的比較高效率。雖然混合存儲居多,但是我們認(rèn)為閃存和硬盤來說還是會共存的,我們現(xiàn)在硬盤還是大量的使用。現(xiàn)在有的項目一天有幾億個對象,我們需要做千億級規(guī)模的存儲,它其實用戶就不想閃存,就是這樣的想法,在他們看來可能還是會用硬盤更加合適,硬盤會在相當(dāng)長的時間內(nèi)有生命力。

分享到

崔歡歡

相關(guān)推薦