NetApp E540支持19.2TB或9.6TB配置,也就是24(滿配)或12個(半配)800GB SSD,本圖中的EF540樣機即半配,從露出的SSD開始向左是12個

區別在于,EF540支持多達24個2.5英寸SAS SSD——雖然它也保留了SAS擴展接口(連磁盤柜),但我認為,主要是留著比去掉更省事。因為至少到目前為止,EF540支持SSD的數量為12個(半配)或24個(滿配),不可擴充。E5424呢?支持的驅動器數量可達384個,高一個數量級還多,并能解釋兩者型號上一位數字之差,蠻科學的嘛。

EF540樣機的控制器,配備4個8Gb FC主機端口,6Gb SAS擴展端口純屬擺設

就一款中端磁盤陣列來看,E5400的架構很高效,實際輸出帶寬超過6GB/s,但在24個SSD面前,算不了什么,甚至24個高速的15K RPM SAS硬盤也能接近這一水平。

當然,堆疊數百個硬盤可以錄得更高的IOPS,但就E5400系列而言也很難超過10萬。至于EF540,官方數據是30萬IOPS,以我見到的SanDisk LB 806M(原屬Pilant)而言,單盤指標讀10萬IOPS,讀寫混合(數據庫典型七三開)亦在2萬以上,就是下降到1萬出頭,24個已經夠多的了。如果擴充SSD數量得到的只是容量,那不如再接點硬盤驅動器啦——那還能叫全閃存陣列么?

EF540采用的800GB Pilant Lightning系列6Gb/s SAS企業級SSD(現屬于SanDisk,型號仍為LB 806M),但也支持Intel等知名廠商的產品

硬件沒變化,軟件呢?EF540推出時采用的操作系統是SANtricity 10.84,與E5400系列的最新版本一樣。有何不同?NetApp公司產品市場高級總監Mark Welke在接受我們采訪時表示,EF540在四個方面對SSD進行了優化:

  1. 四倍于原來的隊列深度;
  2. 針對SSD優化雙活(Active-Active)控制器
  3. 為保證SSD的高可用性和可靠性做的針對性優化(如主動跟蹤SSD磨損壽命,在達到閾值時報警;背景介質掃描識別奇偶不一致,重寫可能非正常寫入的扇區;驅動器重建遭遇不可讀扇區仍能繼續進行的專利技術)——我們都知道閃存的不靠譜多與寫入有關
  4. 三年的SSD盤保障期限,磨損過度給予更換服務

前三個都屬于SANtricity操作系統的功能,算不算升級還不好說,因為E5424支持SSD Cache功能已有一段時間。I/O性能是SSD相對硬盤驅動器的最大優勢,支持更大的隊列深度實屬正常(單個SAS HDD在隊列深度超過64之后,I/O性能就很難提高了,256基本是個擺設);倒是EF540作為全閃存陣列,需要較長期的保留數據,對SSD的可用性和可靠性有很高的要求。

總之這些優化都可視為在陣列操作系統(固件)上打的“補丁”,往簡單里說,無論磁盤驅動器還是固態盤,EF540就提供一個版本的OS,如果判斷出用的是固態盤,開啟相應的設置就可以了。很多閃存相關的底層功能(如FTL等),由SAS/SATA SSD上的控制器實現,交給了Intel、SANdisk、Seagate、SMART Modular Technologies、STEC、Toshiba等SSD供應商。譬如質保方面,在EF540的SSD列表中的希捷Pulsar.2,就提供了5年的有限保障。

從這個角度來說,EF540與之前的HP P4900或EMC全閃存配置的VNX類似,是在傳統磁盤陣列的基礎上,為一種特殊的驅動器(SSD)做優化而已。這樣的所謂全閃存陣列,側重點在“陣列”上——整體而言,無論硬件架構,還是軟件功能,長期的積累都圍繞磁盤展開。雖然也對閃存不耐寫等特性加以調整,但能做的終歸有限……

那么,是不是從一開始就完全圍繞閃存設計,沒有考慮過磁盤的全閃存陣列,就可以說側重點在“全閃存”上呢?

傳統的存儲系統也被稱為“磁盤陣列”,眾所周知是因為RAID的緣故。與單個驅動器/模塊相比,RAID可以提高性能(并發訪問)和可用性(避免單點故障),這對閃存也是有價值的,所以能有“全閃存陣列”這個對應的概念。由于閃存與磁盤的特性非常不同,一款真正圍繞閃存設計的全閃存陣列,肯定不能簡單照搬基于磁盤的RAID技術,但是否完全與磁盤時代的積累(如SAS)“劃清界限”,就是正確的選擇呢?

Violin Memory的vRAID技術,RAID控制器與VIMM的組合,與常規的磁盤RAID類似,差異在于RAID算法和VIMM

我們不妨先來看看,全閃存陣列代表性廠商Violin Memory在介紹其專用的閃存RAID算法vRAID時,列舉了閃存解決方案在算法上面對的一些挑戰:

  1. 閃存寫比讀慢;
  2. 在一個閃存塊內(通常128-256KB),閃存寫入操作必須是連續的;
  3. 閃存塊大于用戶數據塊,因此需要一個映射系統;
  4. 閃存塊在被寫入前必須先擦除;
  5. 閃存擦除耗費時間較長(以毫秒計,快與硬盤驅動器的平均訪問時間一個量級了),且會阻塞同一芯片上的讀或寫操作;
  6. 閃存塊在物理磨損之前只能被擦除一定次數,且不能再被使用;
  7. 閃存錯誤隨著讀取次數而增長;
  8. 閃存經過一段時間會丟失數據,哪怕是沒被使用;
  9. 閃存會在塊、頁或模片級別退化,都要統計下來……

不難看出,這些算法不一定都要在RAID控制器層面解決,閃存控制器就可以做到。不過,那些不提供SAS/SATA SSD的廠商認為不應該引入這兩種協議,原因包括SAS/SATA接口最初也主要是為磁盤開發的,帶寬不夠給力(12Gb/s SAS綜合起來與PCIe 3.0有一拼,劣勢是剛開始產品化),更重要的是增加了(到PCIe)協議轉換的延遲。但是,考慮到要經過FTL(不管這層在哪兒實現)、各種接口(如PCIe)的控制器、RAID(不論磁盤RAID還是所謂vRAID)、主機端口(PCIe、InfiniBand、FC或iSCSI)等多個環節,SAS/SATA的這點延遲,貌似也算不了什么。舉例來說,Violin Memory的3000/6000系列全閃存陣列的延遲指標,使用SLC閃存的型號低于250微秒(μs),MLC閃存的型號低于500微秒,與NetApp EF540宣稱的“亞毫秒級”(ms,1000微秒)相比并無明顯優勢。

閃存芯片封裝后做在形似內存條的VIMM上,再形成vRAID組

在閃存模塊的層面上,Violin Memory全閃存陣列沒有選擇常見的SAS/SATA SSD,而是采用了專有的VIMM(Violin Intelligent Memory Module)。正如其名稱所顯示的,VIMM看起來很像內存條,但作用與SAS/SATA SSD相當,其組成部分包括高性能閃存控制器、管理處理器、DRAM(保存元數據)和NAND閃存芯片,完成閃存轉換層(Flash Translation Layer,FTL)的工作,充分利用每個閃存芯片并給予精心保護,其板載DRAM保存元數據的做法又降低了vRAID控制器模塊的負擔(源自Violin Memory的資料)。

Violin認為其vRAID相對基于磁盤的傳統RAID優勢明顯

基于硬件的閃存vRAID以4+1的方式使用VIMM,閃存的容量利用率能夠達到80%,據稱有類似RAID 6的數據丟失率(4+1像RAID 5,但RAID 6的數據保護更好)。按照Violin Memory的說法,vRAID通過兩種途徑降低4K塊讀取的延遲:

拋開這些技術細節不論,最終結果如何?Violin Memory宣稱其全閃存陣列可以在3U機架的空間內提供高達100萬的IOPS,而延遲低至100微秒。指標不錯,但與幾乎沒特別為閃存考慮的EF540相比,并沒有拉大到數量級的差距。如果將全閃存陣列分解為陣列控制器(負責RAID)和閃存模塊(提供內部接口、FTL和閃存存儲)兩個部分,那么所謂傳統的磁盤陣列硬件架構也完全可以針對閃存而改造:RAID算法充分為閃存優化,加寬內部傳輸通道,SAS/SATA SSD的控制器實現更好的FTL……除了SAS/SATA協議層不宜過分夸大的延遲,貌似沒有什么是無法逾越的。

Violin 6000的VIMM和RAID控制器

Violin Memory不會認同上述推斷,或許實際的性能表現也能證明他們仍然是對的。但是在現在這個時代,兩倍以內(超出幅度<100%)的硬件性能優勢,很容易被成本等方面的劣勢所消解——畢竟不計代價追求所謂“極致性能”的用戶是少數。不難想見的是,在沒有足夠用戶規模支撐的情況下,Violin Memory要維護其專有的VIMM,硬件成本會很高。

EMC認為,在(寫?)延遲的數量級上,PCIe閃存卡的優勢沒有傳說的那么明顯

構筑相對于SAS/SATA SSD“優越感”的另一種替代方案是采用PCIe閃存卡來搭建全閃存陣列,譬如EMC去年在推出其PCIe閃存卡VFCache(現已更名為XtremSF,SF代表Server Flash)的同時,也宣布了基于VFCache的全閃存陣列“Thunder項目”(Project Thunder)。

2012年2月EMC公布的“雷電項目”(Project Thunder)的設計概念,“低延遲、高帶寬硬件,輕量級軟件堆?!北砻鬟@是一款幾乎純硬件的產品

從VFCache到XtremSF,硬件主要都來自Micron(美光)。Micron的RealSSD P320h也是原生PCIe架構,不存在PCIe轉SAS/SATA的問題。如果你覺得傳統PCIe插卡的形式不夠popular、不易維護,P320h也有2.5英寸驅動器外形(接口還是PCIe)的型號。

可是,不管哪一種,在相對大量的SAS/SATA SSD面前,PCIe閃存卡/SSD目前仍屬小眾產品,成本很難降下來。如果你認同(至少)對全閃存陣列而言,在商品化的硬件上,通過軟件提供核心價值是發展方向——那么,在各種形式的PCIe閃存產品具有足夠的出貨量及成本競爭力之前,看不出全閃存陣列有非用其不可的必要。

有了上面的認識,就不難理解,EMC會收購采用“傳統”SAS SSD的XtremIO,并放棄Thunder項目是基于怎樣的考慮了。

EMC企業存儲產品部高級產品經理李君鵬對放棄Thunder項目的解釋,基本驗證了我的分析。至于XtremIO……

一年前EMC透露Thunder項目時,提到將為其配備“輕量級軟件堆?!?。如果你只看重硬件指標,或許會欣賞它的“簡潔”,可實際上,Thunder項目毀就毀在這了。不然,EMC隨后收購XtremIO干啥?

這個世界存在不少事后看起來很愚蠢的收購,但EMC絕對不傻。他們不是刻意想把全閃存陣列的軟件堆棧輕量化,而是缺乏必要的軟件積累。既然可以收購XtremIO,也就沒必要費力繼續開發Thunder這么一個幾乎純硬件的產品了。

從前面板不難看出,XtremIO用的是“傳統”SSD

硬件商品化意味著盡可能采用標準化、通用的硬件,在保證基本要求的前提下,標準越普及、通用性越好(譬如企業級SSD領域SAS就比PCIe門檻低,SATA又差點兒意思),則越受歡迎。體現價值的軟件呢?維持閃存產品正常運轉的底層軟件如FTL層,或者驅動程序當然有價值,但它們更傾向于作為必不可少的組成部分而劃歸硬件范疇。

EMC列出了XtremIO的重要軟件功能,包括線內重復數據刪除和自動精簡配置,沒有實時壓縮

在充分為閃存優化的陣列應該具備的上層軟件功能中,我認為自動精簡配置、實時壓縮和重復數據刪除是排在前三位的。

這三位不是新技術,乃磁盤陣列時代的成果,通過不同方式節省存儲空間。不過,對閃存來說,它們還有其他重要作用——延長壽命。譬如實時壓縮和線內重復數據刪除都可以減少閃存的寫入量,收到延長閃存壽命的效果。需要注意的是,必須是實時(或in-line)處理,有些磁盤備份產品采用后處理(post-process)的方式來去重,即先把數據寫入到磁盤上,然后再加以比對,刪去重復數據,這對閃存產品來說是不可接受的:非但起不到減少寫入量的作用,反而增加了大量擦除的工作。

我想了解一下……實時壓縮?

非實時壓縮和后處理方式的重復數據刪除,很大程度上是當時配置計算能力不夠的產物,因為壓縮和消重算法都需要大量的計算工作。完整的自動精簡配置功能也需要一定的計算資源,像EF540只具備有限的自動精簡配置能力,連NetApp自己的人,都認為那不能算自動精簡配置——運行Data ONTAP的FAS系列才夠格。

EF540的自動精簡配置受限于其以ASIC為主的控制器架構。ASIC和PCIe閃存卡中常見的FPGA為特定的簡單重復性工作(如搬運數據)而設計,速度快、效率高,缺點是計算能力差,難以勝任多種任務。廠商可以為特定的工作設計特定的電路,譬如3PAR獨有的ASIC可以加速自動精簡配置,但總不能每種功能都來一個ASIC或FPGA吧?那復雜性和成本就……

如果基于通用但有很強計算能力的商用硬件(如x86),在軟件堆棧中加入不同的軟件功能,就可以實現不同的用途。而這,不僅是軟件定義存儲,也是軟件定義數據中心(SDDC)的精髓。

從這個角度來說,EMC也可以在Thunder項目中采用x86硬件平臺,然后將Data Domain的重復數據刪除改造為適合全閃存陣列。不過這需要更多時間來開發,且結果未知,而XtreamIO的線內重復數據刪除顯然是專門針對閃存開發的,用錢換時間,可謂明智之舉。

Greenbytes、Pure Storage、Nimbus、SKyera、SolidFire、Violin Memory和Whiptail等初創多數全閃存陣列都用SSD,只有Violin是獨有閃存模塊(VIMM,見第二列)。不過,這些全閃存陣列并不都支持重復數據刪除,支持的也不全是In-line,但NetApp EF540幾乎是軟件功能最貧乏的(最右列)

再來看看NetApp計劃中的FlashRay都有哪些特性:

除了壓縮與去重,文件服務等功能現在也是以x86平臺為主流的。對軟件功能的需求促使全閃存陣列采用以x86為代表的所謂商用硬件,而x86的快速更新又方便加入更強大的軟件功能,形成了良性的互動。

EMC認為企業級閃存產品應該具備的軟件功能

需要說明的是,硬件商品化、通過軟件體現存儲價值,并非始自閃存的引入。在統一存儲等風潮推動下,這幾年新推出的磁盤陣列已經全面過渡到x86平臺,像自動精簡配置已經成為標配。正如前面提到的,一定程度上,全閃存陣列繼承了之前磁盤陣列發展的成果。但是,在磁盤陣列產品中,采用實時壓縮的很少(如IBM Storwize V7000),線內重復數據刪除就更沒有,部分原因是必要性不夠大。閃存則不然,算法對性能的要求可能進一步推進陣列控制器的服務器化,更緊的追趕x86處理器的換代步伐。

我們是不是可以說,既完全圍繞閃存設計(全閃存),又具備豐富陣列軟件功能,才是合格的“全閃存陣列”呢?

更高層次的輪回:仍混合陣列,以閃存之名

對NetApp來說,除了加緊開發FlashRay,還有一個戰略調整的問題需要妥善解決——如何建立一個有效的分級存儲體系?

與所謂自動分層存儲(可以把陣列內部叫分層,外部或之間叫分級,宏觀來說只是維度不同)相比,將閃存作為緩存,具有算法簡單、應用中立竿見影等好處。NetApp CEO Tom Georgens很早就宣稱分層存儲沒前途,而到目前為止與NetApp FAS/V系列相關的幾種閃存技術如Flash Cache、Flash Pool和Flash Accel,都是將閃存作為緩存(Cache)來使用。

NetApp會建立這么一個龐雜的體系么?

那么,EF540和未來的FlashRay呢?不可能整個陣列就用來給FAS家族做緩存吧?如果要將全閃存陣列納入整個產品體系而不是飄零在外,那么在全閃存陣列與傳統陣列之間建立一個有效的數據移動機制,是很有必要的。

全閃存陣列采用橫向擴展架構,更多的是解決性能問題。若縱向擴展的話,控制器很容易成為瓶頸(如EF540、VNX等傳統陣列)

在一些全閃存陣列的狂熱支持者看來,全閃存陣列很快就會取代磁盤陣列,所以不用考慮分級問題??蛇@不現實,至少在5年內這一幕不會出現。全閃存陣列如FlashRay、XtremIO都支持橫向擴展,能夠在一定程度上彌補閃存容量不足的問題,但比磁盤陣列還差得遠。成本更不容忽視,一則閃存盤的單位容量價格仍然比大容量SATA/NL SAS盤高很多,二則相當大比例的數據并不需要很高的I/O性能,用閃存未免浪費,保存在硬盤上經濟性更好。

在傳統企業應用中,需要高I/O的熱點數據,所占容量比例較低。而在互聯網行業中,大部分數據產生后,也會迅速變“冷”

既然閃存與磁盤混合存儲的局面仍將繼續維持相當長的時間,在前面提及的一干全閃存陣列初創企業被NetApp、EMC、IBM的強勢殺入掩蓋住光芒的同時,Nimble Storage、Tegile與Tintri等新一代混合存儲供應商又得到了業內人士的熱捧。之所以說是新一代,在于它們無論是像NetApp FAS系列一樣將閃存作為磁盤的緩存(Nimble Storage和Tegile),還是像EMC VNX/Symmetrix一樣可以在閃存與磁盤間自動分層存儲(Tintri),都是從一開始就充分圍繞閃存的特性設計,兼顧大容量的NL SAS磁盤(傳統混合存儲還是建立在磁盤基礎上,后加入閃存),并且也全部支持前面提到的實時壓縮和線內重復數據刪除,自動精簡配置更是不在話下。

面對多種閃存相關的產品/解決方案,根據具體應用選擇合適的

在混合陣列中,閃存是用作緩存,還是與磁盤分層,我認為不是非此即彼,而要看應用需求。緩存方案固然有相對簡單等優越性,但隨著閃存容量的不斷攀升(增長幅度明顯快于磁盤),不分青紅皂白地都用作緩存,未免過于浪費,也不符合人們對閃存比重逐漸提升的預期——只用作緩存,而非數據的永久存儲,能說足夠重視嗎?

閃存無處不在,硬盤仍是基石……市場很大,不可輕棄

Fusion-io本周宣布斥資1.19億美元收購混合存儲系統廠商NexGen Storage,可以作為上述觀點的注腳。我們知道,Fusion-io最初的宣傳,是強調以其插在服務器中的PCIe閃存卡ioDrive,取代外部的磁盤陣列。上市后不久收購了ioTurbine,以及推出的ioCache和directCache,都是將閃存用作緩存。去年推出的ION,則更像是把服務器變成一種閃存陣列。

NexGen的混合存儲方案是分層而非緩存,至于重復數據刪除……那是——必須的!

NexGen Storage的不同之處在于,采用僅把活動數據存在SSD上的“實時分層”(real-time tiering)技術。換言之,1月中旬其CEO David Flynn還在Open Compute峰會上鼓吹“全閃存數據中心”,僅僅3個月之后,Fusion-io就向現實低頭,以實際行動承認,不與磁盤更緊密的協作是不行的。收購消息一出,1月下旬開始便一路走低的Fusion-io股價,上漲幅度接近20%。

看起來,NexGen Storage的方案是在陣列控制器內部使用PCIe閃存卡(如Fusion-io的ioDrive),與控制器外接的大容量硬盤之間“實時分層”。在新興的混合陣列方案中,幾乎都是用閃存和低轉速大容量NL SAS/SATA磁盤結合,舍棄了10K/15K RPM高轉速磁盤,這也是與傳統混合陣列不同之處。2010年初Tom Georgens也持此觀點,但當時他否定了分層的價值

當然,NexGen的存儲架構中,使用的SSD是PCIe接口,并著力宣揚了較之于接在存儲控制器后面的SAS/SATA SSD的“巨大優勢”,而我也認為如果在存儲控制器中使用閃存,PCIe接口可能更為合適。但是,正如前面已經分析過的,如果控制器一開始就為閃存設計并輔以相應的算法,用SAS也差不到哪里去。NexGen的硬件架構集成ioDrive具備天然優勢固然是Fusion-io選擇它的重要因素之一,線內重復數據刪除和實時分層等軟件功能才是更值得關注的。

至于David Flynn在Fusion-io收購ID7之后說要提供開放的解決方案,和不直接銷售NexGen產品,而是“把NexGen作為技術平臺,允許第三方的集成商來構建系統”的表態,屬于商業模式的范疇,這里就不討論了。

從微觀的層面來看,優先圍繞閃存來設計陣列,是存儲行業已經發生的革命;而從宏觀的層面來看,在數據中心的規模上,閃存與磁盤更好的協同,則是更高水平的輪回……

未經允許不得轉載:存儲在線-存儲專業媒體 » 全閃存陣列:革命or回歸?
分享到

renxinbo

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走