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

經典的Shared-Nothing架構與Shared-Everything的差異

Shared—Everything這個概念于2000年被國外的公司提出來,但是沒有進入國內市場,所以在國內聲音不是很大?,F在有些公司也發(fā)布了Shared—Everything分布式產品,把分布式存儲架構的歷史稍微總結一下:

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

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

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

 VastData認為Shared—Nothing最大的問題就是串擾,節(jié)點之間互相影響,為什么?什么東西都沒有共享,也就是說一個數據寫到某個節(jié)點,這個節(jié)點要復制到另外的節(jié)點上,它又訪問別的節(jié)點的盤,它要轉發(fā)給那個節(jié)點的CPU,那個CPU接受了這個東西之后才能處理,才能寫盤,這樣的Shared—Nothing架構的存儲超過了幾十個節(jié)點,大概五六十個節(jié)點以后,它的信息就做不到線性擴展了,這是vastdata認為這個架構主要的問題。

Shared—Everything:全NVMe時代的最佳存儲架構,AI存儲的最佳選擇

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

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

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

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

總結

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

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

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

Shared—Everything在未來AI這個時代會比較好,AI存儲可能有錢的客戶可以,一般客戶沒錢的喜歡用分布式存儲去做,但是客戶又需要有很好的性能,可以做得有點像高端存儲那種,時延比較低,調度做得比較均勻,解決很多分布式存儲可靠性或者性能線性擴展的問題。未來的AI存儲,我認為真正到了高性能的時代,很多廠商可能開始往這邊轉向Shared—Everything架構。在全閃時代,高端存儲和分布式存儲可能會做到架構的統(tǒng)一。

分享到

nina

相關推薦