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