<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 全面解析閃存技術(shù)大餐 架構/顆粒/接口/可靠性

全面解析閃存技術(shù)大餐 架構/顆粒/接口/可靠性

作者: 時(shí)間:2018-08-01 來(lái)源:網(wǎng)絡(luò ) 收藏

閃存最明顯特點(diǎn)就是穩定性能,低時(shí)延和高隨機IOPS。對于閃存,在評估性能時(shí),我們一般主要關(guān)注90% IO落入規定的時(shí)延范圍(性能是一個(gè)線(xiàn)性范圍,而不是某一個(gè)點(diǎn))。數據保護等追求所有軟件特性都基于Inline實(shí)現,如Inline重刪、壓縮、Thin-Provisioning(尤其是重刪,一方面SSD價(jià)格還是偏高,重刪壓縮可以節約投入成本;另一方面也減少了IO下盤(pán)次數提高SSD壽命)。但對于閃存,我們所關(guān)注的特性和技術(shù)指標遠遠不止這些。

本文引用地址:http://dyxdggzs.com/article/201808/384905.htm

閃存

閃存的Scale out能力:橫向擴展能力是應對并發(fā)訪(fǎng)問(wèn)和提升性能容量的最基本特性,所以閃存是必須具備的功能。目前XtremIO支持16控,solidfire已經(jīng)支持但100個(gè)控制器節點(diǎn)。

控制器對稱(chēng)A/A 能力:閃存的主要應用場(chǎng)景如OLTP等,傳統的A/P、ALUA陣列在主控制器故障切換時(shí)都需要時(shí)間切換,并導致IO歸零;并且在閃存陣列下,一般系統CPU是瓶頸,所以只有無(wú)歸屬、性能均衡的A/A對稱(chēng)才能更好應對。目前傳統存儲(如EMC VMAX/VNX,HP 3PAR, HDS USP/VSP)都已經(jīng)支持,但是閃存陣列還沒(méi)看見(jiàn)宣傳;好多閃存產(chǎn)品,如 PureStorage還是 A/P模式。

元數據管理

閃存的設計主要是考慮如何發(fā)揮出SSD的隨機訪(fǎng)問(wèn)性能,不像HDD那樣,需要通過(guò)預取、IO聚合技術(shù)來(lái)提高下盤(pán)的順序性,減少對機械盤(pán)的操作來(lái)提升性能。所以閃存在設計上要考慮如何優(yōu)化元數據(系統元數據、重刪壓縮指紋、FTL映射等)管理,IO調度策略,垃圾回收和磨損均衡等設計。

兩層元數據管理是實(shí)現元數據管理的趨勢,其基本思想是元數據映射基于LBA->塊ID->Block位置的Map形式,卷的數據LBA映射到塊ID,而不是磁盤(pán)上的物理Block地址;數據變化后只需改變對應塊ID映射關(guān)系,塊ID就可以映射到新的物理空間,這樣相比單層方式就簡(jiǎn)化重刪壓縮實(shí)現和效率。

SolidFire采用兩層元數據管理架構實(shí)現元數管理,元數據管理采用Key-Value方式;元數據映射基于LBA->塊ID->位置的Map形式,卷的數據LBA對應塊ID,而不是磁盤(pán)上的物理地址;所以數據變化后計算指紋只需改變對應塊ID映射關(guān)系,天然就支持重刪。在垃圾回收時(shí),是采用塊標記法實(shí)現對未使用塊的清除。

GFTL功能

GFTL稱(chēng)作Global FTL,閃存陣列可以配合SSD控制器(需要SSD開(kāi)放內部給陣列),通過(guò)陣列完成一些如ROW寫(xiě)滿(mǎn)條帶下盤(pán),全局負載均衡,整塊對齊擦除、垃圾回收等高級優(yōu)化功能。另外,GFLT也可記錄重刪壓縮數據庫,指紋元數據管理,實(shí)現RAID功能,進(jìn)行IO聚合,通過(guò)元數據記錄實(shí)現RAID滿(mǎn)條帶下盤(pán),從而規避讀、修改、寫(xiě)放大操作,解決Write-Hole問(wèn)題等。

SSD自身的FTL只能完成數據LAB/重刪后數據塊、到真實(shí)顆粒塊(block)的影射,只能實(shí)現簡(jiǎn)單的垃圾回收和ROW數據寫(xiě),內部把不同Block組織在一起組成RAID。很多外購S(chǎng)SD磁盤(pán)的閃存廠(chǎng)商都還不支持GFTL技術(shù),但是該技術(shù)是提高閃存效率和競爭力的有力武器。

重刪特性

重刪是閃存最基本特性之一,分為Inline和Postline,但對閃存Inline才能體現真正價(jià)值。重刪一般分為HASH指紋算法(以SHA-1為例說(shuō)明,存在碰撞問(wèn)題)和按字節對比法兩種,逐字節對比高,但會(huì )嚴重影響閃存性能,所以很少使用,只在數據一致性要求非常嚴格的場(chǎng)景下使用。

SHA-1算法會(huì )有Hash沖突的概率,Hash輸出長(cháng)度一般為160字節的數字,對不同數據塊(大小可設置)其輸出是隨機的,在0-2^(160-1)間分布,不同數據產(chǎn)生相同Hash值的概率2^(-160),只有數據量(固定數據塊大小)超過(guò)這些數字能表示的值時(shí),才會(huì )發(fā)生Hash沖突,但到目前位置,所有產(chǎn)生的數據量總和都不至于產(chǎn)生Hash沖突。

所以Hash方式在產(chǎn)品中最為常見(jiàn)。場(chǎng)見(jiàn)的強Hash算法有SHA-1, SHA-256等;常見(jiàn)的弱Hash算法有Murmur3, CRC, MD5等;強Hash發(fā)生沖突的概率低。

但是在某些場(chǎng)景,如在8K業(yè)務(wù)數據塊大小的數據庫場(chǎng)景下,Key值基本上是唯一的,如果重刪粒度也是8K則根本起不到重刪的效果,可以讓客戶(hù)選擇關(guān)閉該功能(XtremIO的Inline重刪功能是無(wú)法關(guān)閉的),只開(kāi)啟壓縮。

IO基本流程

數據從主機下發(fā)到閃存陣列控制器,對于非A/A架構的閃存來(lái)說(shuō),首先盤(pán)判斷IO對應LUN的歸屬,如果LUN歸屬在在本地控制器,IO就寫(xiě)到到對應Cache并鏡像,否則轉發(fā)給LUN歸屬控制器處理。Cache到水位時(shí)再切分塊LBA為相應大小后,交給增值模塊(如重刪壓縮模塊)處理,計算出指紋后,將指紋和數據(重復數據只保留指紋)交給歸屬控制器來(lái)完成下盤(pán),相關(guān)模塊下盤(pán)時(shí)分配分條,湊滿(mǎn)條帶后順序寫(xiě)入磁盤(pán),記錄真實(shí)地址和指紋關(guān)系,保存指紋到指紋數據庫。

Block磨損均衡

Block磨損均衡是為了讓數據均勻分布在SSD的所有Block中,從而能達到冷熱點(diǎn)均勻分布提高SSD壽命的目的。閃存必須提供磨損均衡來(lái)實(shí)現,磨損均衡分為動(dòng)態(tài)磨損均衡和靜態(tài)磨損均衡;動(dòng)態(tài)磨損均衡是由主機更新數據觸發(fā)的,通過(guò)主機讀寫(xiě)保證數據的擦寫(xiě)平均分布到所有的Block上,因為每種應用都有冷熱數據,所以靜態(tài)磨損均衡并不能保證冷熱度均勻分布。

靜態(tài)磨損均衡是由SSD內部機制實(shí)現,將冷Block上的數據進(jìn)行轉移(不同于垃圾回收),擦寫(xiě)冷Block上面的數據來(lái)接受經(jīng)常變化的熱點(diǎn)數據,使冷Block有機會(huì )成為熱Block,從而使SSD中所有Block的冷熱度達到平衡。

SSD掉電保護

為了防止SSD磁盤(pán)中緩存數據由于掉電丟失,SSD還需要提供掉電保護功能。一般SSD會(huì )設計電壓檢測模塊來(lái)實(shí)時(shí)檢測電壓值,當電壓低于設置閾值時(shí),SSD電壓檢測模塊會(huì )通知SSD控制器進(jìn)入掉電數據刷寫(xiě)流程,此時(shí)會(huì )有超級電容作為備電源供電,把磁盤(pán)緩存數據刷到Flash顆粒中,防止數據丟失。

另一方面,閃存陣列也應該提供一種機制,當陣列主動(dòng)下電或升級維護時(shí),下發(fā)命令給SSD,讓SSD進(jìn)入掉電緩存數據刷新流程,保證數據一致性。

閃存(Flash)是相對于HDD而言的一種非易失性存儲器,Flash分為NOR Flash和NANDFlash,NOR Flash可以當作內存使用直接執行程序,相比DDR 、 SDRAM 或者 RDRAM具有掉電數據不丟失等特點(diǎn),所以在嵌入式設備(ARM/MIPS等體系架構)中,一般采用NOR Flash存儲BootLoader和OS程序。但今天我們的重點(diǎn)是NAND Flash。

Flash顆粒解析

學(xué)習過(guò)模擬電路的同學(xué)都知道,在模電原理里三極管分兩種,一種是雙極性三極管,主要基于載流子用來(lái)做電流放大,另一種叫做CMOS場(chǎng)效應三極管,通過(guò)電場(chǎng)控制的金屬氧化物半導體。NAND Flash就是基于場(chǎng)效應P/N溝道和漏極、柵極技術(shù)通過(guò)浮柵Mosfet對柵極充電實(shí)現數非易失據儲存的。一個(gè)晶體單元稱(chēng)作一個(gè)Cell,向Cell中充電就是編程或寫(xiě)入數據,通過(guò)電平的高低來(lái)判斷數據是0還是1。在SLC顆粒類(lèi)型的Flash中,沖入電荷讀取到閾值電平為高電平,一般表示數據0。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>