傳統(tǒng)的Shared-Nothing模型和Shared-Everything模型在資源共享和并行處理能力上各有特點(diǎn),下一代分布式全閃,則是以NVMe-oF技術(shù)來(lái)支撐端到端的NVMe架構(gòu),Shared-Everything(共享架構(gòu))成為未來(lái)存儲(chǔ)架構(gòu)的發(fā)展趨勢(shì)。西瓜哥生動(dòng)地講述了分布式存儲(chǔ)的前世今生、架構(gòu)演進(jìn)與未來(lái)趨勢(shì)。

經(jīng)典的Shared-Nothing架構(gòu)與Shared-Everything的差異

Shared—Everything這個(gè)概念于2000年被國(guó)外的公司提出來(lái),但是沒(méi)有進(jìn)入國(guó)內(nèi)市場(chǎng),所以在國(guó)內(nèi)聲音不是很大?,F(xiàn)在有些公司也發(fā)布了Shared—Everything分布式產(chǎn)品,把分布式存儲(chǔ)架構(gòu)的歷史稍微總結(jié)一下:

首先看一下這幾個(gè)術(shù)語(yǔ),名字都很好理解,Shared—Nothing節(jié)點(diǎn)之間什么都不共享,它的概念最初來(lái)自于1986年一個(gè)加州大學(xué)教授寫的一篇論文,分布式體系架構(gòu)里的一種架構(gòu),所謂節(jié)點(diǎn)之間可以橫向擴(kuò)展,但是是不共享資源的。1983年的時(shí)候Teradata發(fā)布了第一個(gè)基于Shared—Nothing架構(gòu)的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)里面Shared—Nothing和Shared—Everything哪個(gè)好已經(jīng)吵過(guò)一輪了,?Shared—Nothing基本上涉及到的是互聯(lián)網(wǎng)數(shù)據(jù)庫(kù),比如說(shuō)Mongo DB,所以我們看到數(shù)據(jù)庫(kù)領(lǐng)域這種架構(gòu)由于不同的場(chǎng)景,不同的應(yīng)用一直都有,他們各有各的優(yōu)勢(shì),各有各的應(yīng)用場(chǎng)景,并不是哪個(gè)架構(gòu)好,哪個(gè)架構(gòu)不好。

2003年谷歌發(fā)布文件系統(tǒng)白皮書,講述了用Shared—Nothing這種技術(shù)開發(fā)軟件系統(tǒng)的經(jīng)驗(yàn),很多創(chuàng)業(yè)公司做分布式存儲(chǔ)基本上都是Shared—Nothing架構(gòu),二十多年Shared—Nothing一直是分布式存儲(chǔ)里的主流架構(gòu)。每家都是這個(gè)架構(gòu),所以沒(méi)有什么爭(zhēng)論。但是最近,2000年左右vastdata提出新的觀點(diǎn),才重新炒作起架構(gòu)來(lái)。

我們看到業(yè)界變化很大,原來(lái)20年前都是基于谷歌軟件系統(tǒng),用硬盤當(dāng)時(shí)還沒(méi)有閃存,閃存在存儲(chǔ)里面是2008年,EMC高端存儲(chǔ)第一次引入到存儲(chǔ)里面,而且當(dāng)時(shí)閃存特別貴,也不舍得在上面存數(shù)據(jù)。Shared—Nothing架構(gòu)擴(kuò)展起來(lái)很方便,沒(méi)有單點(diǎn)故障,但是現(xiàn)在確實(shí)有一些變化。

 VastData認(rèn)為Shared—Nothing最大的問(wèn)題就是串?dāng)_,節(jié)點(diǎn)之間互相影響,為什么?什么東西都沒(méi)有共享,也就是說(shuō)一個(gè)數(shù)據(jù)寫到某個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)要復(fù)制到另外的節(jié)點(diǎn)上,它又訪問(wèn)別的節(jié)點(diǎn)的盤,它要轉(zhuǎn)發(fā)給那個(gè)節(jié)點(diǎn)的CPU,那個(gè)CPU接受了這個(gè)東西之后才能處理,才能寫盤,這樣的Shared—Nothing架構(gòu)的存儲(chǔ)超過(guò)了幾十個(gè)節(jié)點(diǎn),大概五六十個(gè)節(jié)點(diǎn)以后,它的信息就做不到線性擴(kuò)展了,這是vastdata認(rèn)為這個(gè)架構(gòu)主要的問(wèn)題。

Shared—Everything:全NVMe時(shí)代的最佳存儲(chǔ)架構(gòu),AI存儲(chǔ)的最佳選擇

現(xiàn)在NVMe技術(shù)發(fā)展很快,通過(guò)NVMe over Fabric技術(shù)訪問(wèn)另外一個(gè)節(jié)點(diǎn)的NVMe盤跟訪問(wèn)本地NVMe盤的差距是非常小的,可能就多個(gè)十微秒。我們?cè)谟脖P時(shí)代覺(jué)得Shared—Everything不太可能實(shí)現(xiàn),要跨節(jié)點(diǎn)訪問(wèn)別的盤,網(wǎng)太慢了,但是現(xiàn)在高速網(wǎng)絡(luò),100G網(wǎng)絡(luò),你會(huì)發(fā)現(xiàn)SCSI有很高的并發(fā)能力,時(shí)延或者協(xié)議上是非常優(yōu)化的,做得非常好,這個(gè)時(shí)候應(yīng)該重新考慮這個(gè)架構(gòu),而不是用Shared—Nothing做新一代全閃存的設(shè)計(jì)。

 VAST Data認(rèn)為Shared—Everything的好處,性能可以線性擴(kuò)展,獨(dú)立擴(kuò)展計(jì)算節(jié)點(diǎn),盤控分離的,所以容量不夠就擴(kuò)盤框,性能不夠就擴(kuò)計(jì)算節(jié)點(diǎn),這個(gè)架構(gòu)是比較有意思的,不用節(jié)點(diǎn)來(lái)做糾刪,可以做大比例EC。我們經(jīng)??吹秸嬲玫脑捠?00+4,你見過(guò)這么強(qiáng)的EC嗎?經(jīng)常做到幾百加幾的EC,得盤率就非常高,這么長(zhǎng)的條帶,校驗(yàn)碼占的比例就非常少了,所有盤都能看到,調(diào)度起來(lái)非常簡(jiǎn)單,可靠性也非常好,一般常出故障的是控制器,控制器故障的話基本上不用切換,因?yàn)楸P都在,所有節(jié)點(diǎn)都可以看到,出故障的話并不影響盤,有點(diǎn)像高端存儲(chǔ)那樣,所以可靠性非常好,而且它是QLC,成本可以壓得很低,如果到一定規(guī)模,它的成本會(huì)比硬盤還便宜,按每GB算,號(hào)稱比硬盤還便宜。但是小規(guī)模場(chǎng)景下可能成本會(huì)高一些,因?yàn)楸P控分離的架構(gòu)。

XSKY推出的星海架構(gòu),有前面VAST Data一些優(yōu)勢(shì),但和VAST Data的定位不太一樣。VAST Data做的是文件存儲(chǔ),主要是文件對(duì)象,星海主要是做的主存儲(chǔ),塊存儲(chǔ),以后也會(huì)有文件。它是Shared—Everything一個(gè)妥協(xié)的產(chǎn)品,實(shí)際上它并沒(méi)有做到盤控的分離,看物理上還是星飛9000產(chǎn)品,里面帶四塊盤,這個(gè)節(jié)點(diǎn)出故障的話這個(gè)盤就沒(méi)了,但并沒(méi)有做到盤控故障的隔離。

此外,國(guó)內(nèi)廠商目前沒(méi)有特別合適的硬件可以選擇,盤框分離的話就需要有全閃的框,目前在國(guó)內(nèi)買一個(gè)全閃的硬盤框,市場(chǎng)上好像沒(méi)有這么通用的產(chǎn)品,但是服務(wù)器可以買到,國(guó)外廠商有一些這樣的產(chǎn)品。雖然沒(méi)有充分發(fā)揮VAST Data那種盤控分離的優(yōu)勢(shì),但是成本會(huì)比較低,比如三節(jié)點(diǎn)起步,原來(lái)通用的軟件定義存儲(chǔ),從表面上看成本沒(méi)有增加太多,應(yīng)該是一樣的,是NVMe的盤,但是盤控分離的話,成本就高,三個(gè)節(jié)點(diǎn)的服務(wù)器不能帶盤,下面加兩三個(gè)框,上面有一些處理能力,而且不是特別通用的硬件,這個(gè)成本不見得便宜,所以可能基于國(guó)情的原因,這一塊目前盤控是設(shè)在一起的,理念上是按照Shared—Everything設(shè)計(jì)的。

總結(jié)

Shared—Nothing、Shared—Everything各有優(yōu)勢(shì),Shared—Everything目前目前在分布式存儲(chǔ)里共享的主要是盤,不像高端存儲(chǔ)還能共享內(nèi)存,因?yàn)楦叨舜鎯?chǔ)的內(nèi)存是有掉電保護(hù)的,有掉電保護(hù),共享才有意義。分布式存儲(chǔ)設(shè)備都是普通的服務(wù)器,沒(méi)有掉電保護(hù),共享也沒(méi)用,掉電了數(shù)據(jù)就沒(méi)了,所以共享盤就行了,一般不需要共享內(nèi)存。而且我們看到如果要做Shared—Everything這種架構(gòu)的話,必須要支持NVMe over Fabric,NVMe 的盤,對(duì)硬件的要求是比較高的。它的好處包括故障切換時(shí)間、重平衡、重構(gòu)時(shí)間都會(huì)有優(yōu)勢(shì),但是要做Shared—Everything架構(gòu)的話必須要NVMe over Fabric的網(wǎng)絡(luò),100G的網(wǎng)絡(luò),真正訪問(wèn)遠(yuǎn)端、本地起碼是起碼是一致的,是要差不多的。

Shared—Nothing架構(gòu)并不是不好,我認(rèn)為在混閃的時(shí)代,有些還是SATA SSD,Shared—Nothing還是非常好的架構(gòu),如今硬件、網(wǎng)絡(luò)已經(jīng)改變了,這時(shí)候我認(rèn)為Shared—Everything架構(gòu)的優(yōu)勢(shì)就會(huì)比Shared—Nothing更具優(yōu)勢(shì),這是我個(gè)人的觀點(diǎn),看你怎么去選擇。

高端存儲(chǔ)一直用Shared—Everything的架構(gòu),分布式現(xiàn)在開始推這個(gè)架構(gòu),沒(méi)什么特別的,沒(méi)什么新的東西,只是說(shuō)大家根深蒂固,都以為分布式,以為最經(jīng)典的三大架構(gòu)是最好的,這個(gè)跟我們?cè)瓉?lái)想的不太一樣。當(dāng)然Shared—Nothing架構(gòu)并不會(huì)淘汰,很多對(duì)象存儲(chǔ)、文件存儲(chǔ)更多是用硬盤的情況,上面有混閃,這種情況下Shared—Everything優(yōu)勢(shì)發(fā)揮不出來(lái),只能用Shared—Nothing架構(gòu)是最好的,所以我們不用太說(shuō)哪種架構(gòu)好,還是看你的需求是什么。

Shared—Everything在未來(lái)AI這個(gè)時(shí)代會(huì)比較好,AI存儲(chǔ)可能有錢的客戶可以,一般客戶沒(méi)錢的喜歡用分布式存儲(chǔ)去做,但是客戶又需要有很好的性能,可以做得有點(diǎn)像高端存儲(chǔ)那種,時(shí)延比較低,調(diào)度做得比較均勻,解決很多分布式存儲(chǔ)可靠性或者性能線性擴(kuò)展的問(wèn)題。未來(lái)的AI存儲(chǔ),我認(rèn)為真正到了高性能的時(shí)代,很多廠商可能開始往這邊轉(zhuǎn)向Shared—Everything架構(gòu)。在全閃時(shí)代,高端存儲(chǔ)和分布式存儲(chǔ)可能會(huì)做到架構(gòu)的統(tǒng)一。

分享到

nina

相關(guān)推薦