2015年8月5日,Greenliant亞太營銷副總裁李炫輝帶來了中國閃存峰會的壓軸戲,對構(gòu)建高可靠性對閃存產(chǎn)品進行了一番深入淺出的分析。
對于閃存產(chǎn)品,很多客戶甚至廠商只看到了其高IO性能的特性,而在其它方面延續(xù)了對磁盤系統(tǒng)的認識。但是閃存由于其物理特性與磁介質(zhì)完全不同,因此和磁盤相比還有很大的差別。例如閃存受到擦寫次數(shù)的限制,隨時間與數(shù)據(jù)擦寫量增長存在性能波動和衰減的情況,同時其壽命和性能也受到工作溫度影響,因此如何解決閃存設(shè)備的可靠性是閃存存儲產(chǎn)品能否大規(guī)模使用的關(guān)鍵。
閃存控制器是閃存系統(tǒng)的核心,閃存控制器是聯(lián)系主機和NAND Flash的橋梁,掌握了閃存控制器技術(shù)幾乎就可以掌握閃存產(chǎn)品的未來命運。那么閃存控制也需要具備幾個主要的閃存管理功能,如Error-correcting code (ECC校驗)、RAID保護機制、Wear leveling(磨損平衡)、Bad block mapping(壞塊管理)、Read/write disturb management(讀寫干擾管理)、Garbage collection(垃圾收集),同時需要具備閃存控制器其它定制化功能,如加密、安全擦除或自毀、壓縮或去重等。
綠芯半導(dǎo)體在閃存控制器方面有20多年的研發(fā)技術(shù)和經(jīng)驗,在閃存領(lǐng)域具有完全自主的技術(shù)能力,如NAND閃存的檢測、封裝技術(shù),自主研發(fā)的企業(yè)級閃存控制器以及Firmware,閃存存儲架構(gòu)設(shè)計,功耗管理,高級電路保護技術(shù),完善的QA控制以及量產(chǎn)質(zhì)量控制等等,在閃存技術(shù)方面有很多的專利。
閃存峰會展會現(xiàn)場,Greenliant李炫輝為現(xiàn)場用戶解答閃存熱點問題。
Greenliant G-card的高可靠性設(shè)計采用了獨特的分布式ECC 、自帶 RAID 以及掉電數(shù)據(jù)保護功能。
由于NAND Flash的工藝不能保證NAND的Memory Array在其生命周期中保持性能的可靠,因此在NAND的生產(chǎn)中及使用過程中會產(chǎn)生壞塊。為了檢測數(shù)據(jù)的可靠性,在應(yīng)用NAND Flash的系統(tǒng)中一般都會采用一定的壞區(qū)管理策略,而管理壞區(qū)的前提條件是能比較可靠的進行壞區(qū)檢測。但潛在的問題是性能衰減和可靠性下降如何避免?
當(dāng)Flash設(shè)備隨著使用時間和數(shù)據(jù)量的增長,壞塊會逐漸增加,會產(chǎn)生大量的ECC Error,這時設(shè)備性能和可靠性會大幅度下降,對應(yīng)用性能和數(shù)據(jù)安全帶來影響。

G-Card具有高可靠性的分布式ECC設(shè)計架構(gòu),源自于每個NANDrive組成元件內(nèi)置ECC引擎。這種創(chuàng)新架構(gòu)不僅提高了閃存卡容量的可擴展性,又保證了產(chǎn)品的生命周期內(nèi)持續(xù)的性能和可靠性。除了分布式ECC引擎,Greenliant G-card是業(yè)界第一款板載硬件RAID的閃存卡,單卡板載40顆 NANDrive,每5顆 NANDrive 組成一個RAID 組,共計8個 RAID 組。
Greenliant對產(chǎn)品進行長期擦寫以及性能測試。在疲勞測試環(huán)境中,每天全盤擦寫50次,超過18000次擦寫后(相當(dāng)于每天全盤擦寫10次,連續(xù)5年),性能衰減不超過10%。另外,采用先進的磨損平衡算法保證無“熱點”。
在Facebook閃存失效大規(guī)模研究中有兩個主要發(fā)現(xiàn):
(1) SSD失敗并不是單純地隨閃存芯片磨損增加;它們歷經(jīng)幾個明顯的時期,與失敗如何出現(xiàn)和隨后如何被檢測到相一致 (Figure 4)。
(2) 高溫會帶來高的失敗率,但是通過截流SSD操作看來可以極大地減少高溫帶來的可靠性負面影響,但是會帶來潛在的性能下降(Figure 10)
基于綠芯半導(dǎo)體對NAND閃存介質(zhì)的理解和經(jīng)驗,造成現(xiàn)象(1)(2)中的主要原因是由于在生產(chǎn)過程中沒有發(fā)現(xiàn)和標(biāo)示潛在的壞塊或臨界狀態(tài)的塊,造成在生產(chǎn)環(huán)境運行時故障率上升。同時長時間的高溫運行也會對閃存介質(zhì)的可靠性產(chǎn)生不利影響。
針對這種實際使用環(huán)境中閃存問題的存在,Greenliant在生產(chǎn)制造流程中專門設(shè)計了高溫環(huán)境下的檢測和質(zhì)量控制(見下圖),如對NAND顆粒進行二次測試,高溫測試(125℃),大溫度范圍測試(-55℃到125℃),高溫高濕度下壓力測試(125℃,85% RH)等等。保證了閃存產(chǎn)品在生產(chǎn)環(huán)境下的可靠性和穩(wěn)定性。
除了閃存介質(zhì)以外,板卡以及外圍組件的質(zhì)量也會對閃存產(chǎn)品的可靠性和穩(wěn)定性帶來影響,如前一段時間的電池門事件就是這種情況。對于板卡層面,Greenliant在設(shè)計和制造生產(chǎn)方面也制定了針對性的高標(biāo)準(zhǔn)測試流程。例如在電池組件方面,Greenliant選擇了較高成本的電容電池,利用自主地電路保護和控制技術(shù),保障電池組件在高溫以及長期使用過程中的可靠性。Greenliant板載電容電池在長達1年的高溫疲勞測試后,健康度仍然高達99%。
另外閃存的Firmware升級,其實也可能會對設(shè)備運行帶來不確定因素。如新的算法可能帶來組件功耗以及發(fā)熱量的升高,底層設(shè)備訪問的機制變化與其它代碼和接口的兼容性等等。
Greenliant每一次Firmware的更新,都會將整個可靠性測試重新完整運行一遍,并且同時在異地兩個實驗室同時做測試,只有兩個實驗室均通過測試后,才會發(fā)布新的Firmware版本。
作為最先推出NVMe協(xié)議閃存卡的領(lǐng)導(dǎo)廠商之一,Greenliant一直在推進相關(guān)技術(shù)和產(chǎn)品推廣,NVMe相比AHCI協(xié)議具備無鎖式IO并發(fā)、可橫向擴展也有更低的寫延遲。過去由于缺乏統(tǒng)一的標(biāo)準(zhǔn),不同廠商的閃存產(chǎn)品不能兼容和互操作,對于用戶的使用和運維管理帶來很大的復(fù)雜性。而NVMe標(biāo)準(zhǔn)的推出則解決了這個問題,同時NVMe協(xié)議還大大改善了閃存卡的訪問性能。
阿明與Greenliant李炫輝在展位現(xiàn)場合影,感謝Rachel友情拍照。
實際應(yīng)用中,在服務(wù)器中采用多張PCIe閃存卡,實現(xiàn)本地大容量高性能存儲,或搭建軟件定義存儲架構(gòu)(Server SAN),G-card 在性能和容量方面展示了優(yōu)異的可擴展性。在IOPS、延遲、功耗、尺寸、初始成本和總體擁有成本方面 顯著優(yōu)于其他的主存儲方案。G-card 集先進性、可靠性、穩(wěn)定性于一體,可以為數(shù)據(jù)中心提供高效能、高可靠性和高安全性的存儲解決方案。
經(jīng)過一番討論,大家對構(gòu)建高可靠性的閃存產(chǎn)品有了一定的認識,下一步,需要在分析閃存本身特性的同時,深入了解以閃存為中心的彈性計算平臺如何構(gòu)建?
作為Greenliant核心合作伙伴,達沃時代在閃存應(yīng)用方面有著自己獨特的理解, 這也是達沃時代目前發(fā)展的核心所在。
達沃時代技術(shù)總監(jiān)雷迎春博士閃存峰會主題演講
不過他總結(jié)了閃存存在的幾個關(guān)鍵問題:
一是,閃存不是高性能磁盤,需要以閃存為中心的存儲軟件來支撐。
二是,為充分發(fā)揮閃存性能,通常數(shù)據(jù)在閃存上的部署結(jié)構(gòu)采取日志結(jié)構(gòu),但是,僅采取日志結(jié)構(gòu)的設(shè)計,仍不足以高效地使用閃存。
三是,存儲軟件需要充分了解閃存的物理特性,適配工作,盡力最小化閃存內(nèi)部的額外開銷,存儲軟件不宜介入閃存的內(nèi)部工作,如實現(xiàn)應(yīng)用層FTL等,否則,會占用過多的主機CPU資源。
四是,除了系統(tǒng)設(shè)計外,高效的軟件實現(xiàn)也是充分發(fā)揮閃存特性的關(guān)鍵。
圍繞這幾個關(guān)鍵問題,達沃時代技術(shù)總監(jiān)雷迎春博士展開了“以閃存為中心的彈性計算平臺”的分析。
首先來一張圖,讓你先認清達沃的彈性計算平臺架構(gòu)。雷迎春博士分析,這是達沃時代針對第三平臺概念的一種實現(xiàn)。關(guān)鍵元素是融合存儲,其中,YeeStor針對單數(shù)據(jù)中心,WooStor面向多數(shù)據(jù)中心。YeeOS是達沃融合存儲的核心,提供多種API接口,對于文件、塊、對象等訪問都支持。幾乎所有應(yīng)用對存儲的訪問都可以表示為對文件和塊的訪問,文件訪問強調(diào)高帶寬和共享,塊訪問強調(diào)高IOPS和低延遲,很難用一套I/O棧同時高效支持文件和塊,所以,YeeStor在內(nèi)部又分解為YeeSAN和YeeFS,它們有相同的接口,但是,內(nèi)部實現(xiàn)完全不同,文件和塊分別走不同的I/O路徑和I/O處理邏輯。YeeSAN和YeeFS之間的關(guān)系是并行關(guān)系,而不是依賴關(guān)系。
所謂應(yīng)用定義存儲,達沃的理解是允許基于應(yīng)用的工作負載進行靈活配置。因此,YeeStor可以被配置為分布式文件系統(tǒng)、Hadoop HCFS、集群NAS、分布式塊存儲、分布式RESTful對象存儲等。
YeeStor是非對稱結(jié)構(gòu),達沃選擇這個結(jié)構(gòu)的原因是,如果在共享存儲池上支撐多種應(yīng)用的運行,那么,其上的工作負載一定是異質(zhì)的。有一些存儲系統(tǒng)采用對稱結(jié)構(gòu),由客戶端驅(qū)動I/O,如Ceph的塊服務(wù)和GlusterFS,這種結(jié)構(gòu)比較適合單一類型的工作負載。在對稱結(jié)構(gòu)中,靈活的資源調(diào)度和資源預(yù)留會比較難于實現(xiàn)。非對稱結(jié)構(gòu)被詬病的一個原因是元數(shù)據(jù)服務(wù)通常是主備式,可能是系統(tǒng)的瓶頸。YeeStor的元數(shù)據(jù)服務(wù)和數(shù)據(jù)服務(wù)一樣均是橫向擴展,而且是線性增長,解決了這個問題。
目前,大部分存儲系統(tǒng)的軟件都是以磁盤為中心的,包括某些全閃陣列。在這樣的系統(tǒng)中,閃存被用作高性能磁盤,另一方面,操作系統(tǒng)中的I/O棧也沒有為閃存的到來做好準(zhǔn)備。
SSD中的FTL讓閃存看起來像一個磁盤。閃存由多個塊組成,一個塊由多個頁組成。同時,設(shè)置了預(yù)留塊,用于替換不合適的塊。此外,閃存還有幾個關(guān)鍵特性:不支持覆蓋寫,只能以頁為單位進行讀寫,只能以塊為單位擦除。閃存的這些特性,對寫性能有顯著影響,主要表現(xiàn)為寫放大和可變的寫延時。
另外,SSD內(nèi)部存在4個層次的并行:通道、封裝、芯片、面。這意味著,一次合理的I/O,可以從多個芯片訪問到的多個塊,即集群塊(Clustered Block),類似于RAID系統(tǒng)中的條帶化(Striping)。換言之,SSD需要大粒度I/O。
SSD的I/O模式分析,操作系統(tǒng)或應(yīng)用的I/O粒度通常為4KB或8KB,情況如下:
隨機讀時,不能充分利用SSD的內(nèi)部并行機制,特別是當(dāng)兩個并發(fā)讀訪問恰好是同一個面(Plane)時,需要競爭訪問。
隨機寫時,不能充分利用SSD的內(nèi)部的并行機制。寫密集時,垃圾回收和寫入競爭,惡化寫放大和產(chǎn)生較長的寫延遲。特別地,擦除操作需要更?的延遲;當(dāng)兩個并發(fā)寫訪問恰好是同?個面時,需要競爭訪問;SSD控制器需要更多開銷,維護映射表,并且要求內(nèi)存中的映射表持久化;產(chǎn)生隨機的無效數(shù)據(jù),導(dǎo)致內(nèi)部碎片,而在垃圾回收時,需要大量的擦除操作,開銷更大。
順序讀時,不能充分利用SSD的內(nèi)部并?機制,但是,可以利?SSD中內(nèi)置的預(yù)讀優(yōu)化,當(dāng)然,并不是每個SSD都有這個特性;
順序?qū)憰r,沒有隨機寫的很多問題,但是,不能充分利用SSD的內(nèi)部并?機制。
如果I/O粒度為4MB或16MB,即SSD集群塊大小,情況就不一樣了,具體見下圖:
達沃把閃存看作特殊的非易失內(nèi)存,而不是硬盤。針對閃存的I/O特點,達沃在底層存儲部分設(shè)計了日志結(jié)構(gòu)的數(shù)據(jù)部署,LOS(Log-structured Object Storage)。LOS允許應(yīng)用使用傳統(tǒng)的I/O粒度,如4KB;LOS之下,面向SSD的I/O粒度是集群塊大小,如4MB。本質(zhì)上,LOS起著負載調(diào)峰的作用,把上層應(yīng)用的突發(fā)I/O調(diào)整為SSD上的均勻I/O;把上層應(yīng)用的小粒度I/O,調(diào)整為SSD上的大粒度I/O。LOS不僅對SSD友好,對HDD也友好。同時,LOS對SSD/HDD介質(zhì)的直接管理和訪問,繞過了操作系統(tǒng)的傳統(tǒng)I/O棧。
達沃存儲采用了MEANS 2.0結(jié)構(gòu),MEANS(a Micro-Engines Architecture for Network Servers)是雷迎春十多年前針對高性能服務(wù)器提出的一個面向多核環(huán)境,兼具線程和事件驅(qū)動的軟件結(jié)構(gòu)。達沃認為,存儲軟件要解決CPU、內(nèi)存、網(wǎng)絡(luò)、存儲資源的使用。對于CPU和內(nèi)存資源的使用,采用微線程,降低切換開銷;采用微引擎,充分使用多核CPU;采用數(shù)據(jù)區(qū)分,降低NUMA和鎖的開銷。對于網(wǎng)絡(luò)資源的使用,設(shè)計多核友好的網(wǎng)絡(luò)服務(wù)框架或采用RDMA。對于存儲資源的使用,使用用戶態(tài)LOS。
隨著閃存在企業(yè)環(huán)境的應(yīng)用越來越多,一個明顯的現(xiàn)象是,存儲軟件滯后于存儲硬件的發(fā)展。特別地,當(dāng)單節(jié)點的4KB隨機IOPS期望達到500K或1M時,軟件通常是瓶頸,必須精心設(shè)計,才能發(fā)揮下層存儲硬件的I/O能力。
他看到PCIe閃存卡有Host-base PCIe閃存卡和Device-based PCIe閃存卡的區(qū)分,Host-base PCIe更依賴主機來做以后的路恐怕會越來越窄,他更看好Device-based。NVMe廣泛應(yīng)用之后,閃存卡架構(gòu)可能會更傾向于Device-based。不過,以后軟件更好地跟上硬件的發(fā)展,給予更多優(yōu)化,閃存需要適配的存儲軟件,才能在一個系統(tǒng)里面發(fā)揮出閃存的效能。
另外,在考慮到閃存本身的特性情況下,如何提升可靠性成為未來的關(guān)鍵。(阿明)