• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種面向RAID陣列的SSD設(shè)計優(yōu)化方法

      2014-08-03 00:53:00何晚輝
      計算機工程與科學 2014年7期
      關(guān)鍵詞:校驗次數(shù)控制器

      陳 博,肖 儂,劉 芳,歐 洋,何晚輝

      (國防科學技術(shù)大學高性能計算國家重點實驗室,湖南 長沙 410073)

      1 引言

      隨著大數(shù)據(jù)時代的到來,目前NAND Flash已經(jīng)不僅局限于嵌入式領(lǐng)域,基于NAND Flash的SSD(Solid State Disk)已經(jīng)在大型數(shù)據(jù)中心得到廣泛應用。越來越多的公司開始涉足SSD市場,不僅一些老牌磁盤廠商,例如希捷、西部數(shù)據(jù),開始生產(chǎn)SSD,華為公司也宣布其第一款PCIe SSD ES3000正式上市。然而,隨著NAND Flash單片容量的不斷增大,SSD的容量也不斷增加,源科公司的Kylin III MAX的單盤容量達到4.6 TB。

      相比機械磁盤,基于NAND Flash的SSD具有諸多優(yōu)勢,例如低延遲、無噪聲、抗震動等[1],但是SSD還沒有替代機械磁盤,一個很大的原因是SSD的價格遠高于機械磁盤。為了降低MYM/GB的價格,相繼出現(xiàn)MLC和TLC。但是,相比SLC的105的擦寫次數(shù),MLC和TLC的擦寫次數(shù)急劇下降,僅有104和103[2,3],并且數(shù)據(jù)的錯誤率也會增加[4]。

      為了保證數(shù)據(jù)的可靠性,傳統(tǒng)的方法是采用ECC校驗,在數(shù)據(jù)寫入Flash的每一頁時,相應的校驗信息寫入頁的Spare Area。但是,基于海明碼的ECC校驗僅能檢測兩位錯,糾正一位錯;而基于RS和BCH及LDPC的ECC校驗能糾正多位錯,但是硬件實現(xiàn)復雜,并且增加了數(shù)據(jù)訪問的延遲[5]。

      另外一種保證數(shù)據(jù)可靠性的方法是采用RAID技術(shù)。RAID技術(shù)可以用在SSD與SSD之間,SSD內(nèi)部的Flash芯片與芯片之間,提供不同層次的可靠性。當前的一些PCIe SSD產(chǎn)品中已經(jīng)使用RAID技術(shù)來保證數(shù)據(jù)的可靠性。例如,Violin Memory的閃存系統(tǒng)采用了ECC和獨有的RAID技術(shù)保證數(shù)據(jù)的可靠性,在有Flash芯片出現(xiàn)故障時不會造成數(shù)據(jù)的丟失,華為的ES3000也采用了Dynamic RAID技術(shù)保證數(shù)據(jù)的可靠性。但是, Skyera公司指出,使用最為廣泛的RAID5技術(shù)在用于SSD陣列時,會縮短SSD壽命。這是因為每一次更新數(shù)據(jù),都需要更新相應的校驗信息,使得校驗信息更新比較頻繁,從而產(chǎn)生較多的無效頁,增加SSD的擦除次數(shù),降低了整個SSD的性能且縮短了壽命。

      針對這個問題,本文提出了校驗信息感知的SSD控制器,稱為PA-SSD(Parity-Aware SSD)控制器。傳統(tǒng)的RAID5控制器向SSD控制器發(fā)送數(shù)據(jù)請求和校驗請求時,在SSD控制器看來都是數(shù)據(jù)請求,從而SSD控制器不能針對校驗信息做專門的處理。本文稍微修改RAID5控制器,使其在向SSD控制器發(fā)送校驗請求時,同時發(fā)送一個校驗標志,表示該請求是校驗請求。在SSD控制器層設(shè)置一個校驗緩存Pcache,更新校驗信息時,SSD控制器接收到校驗標志后,將校驗信息緩存在Pcache中;讀取校驗信息時,先在Pcache中查找該校驗,如果命中,則將校驗信息返回給RAID5控制器;否則,向SSD發(fā)送讀請求,這樣就減少了對SSD的讀寫操作。在將Pcache中的校驗信息寫回SSD時,寫入專門的一片空間。與數(shù)據(jù)相比,校驗信息相當于熱數(shù)據(jù),將熱點數(shù)據(jù)單獨存放可以減少整體的擦除次數(shù),從而提高SSD的性能和壽命。實驗表明,PA-SSD控制器能夠?qū)SD的壽命提升28%。

      2 相關(guān)工作

      Im S等人[5]提出了一種Delayed Partial Parity Update的RAID策略來構(gòu)造高性能高可靠性的SSD,在每次更新數(shù)據(jù)時,計算當前新數(shù)據(jù)的校驗信息,并將校驗信息緩存在RAID控制器的Cache中,在下次更新數(shù)據(jù)時,利用Cache中存在的校驗信息再一次更新校驗信息,這樣多次更新數(shù)據(jù)只需要更新一次校驗信息,但在Cache中保存的是部分校驗信息。這種延遲更新校驗信息的方法減少了校驗信息更新的開銷,但是這種策略是在RAID控制器層工作,不能利用SSD控制器針對校驗信息的特點做優(yōu)化。

      Lee Y等人[6]提出FRA(Flash-aware Redundancy Array)方法,將寫數(shù)據(jù)和寫校驗兩部分分開,當寫請求到達時,先將要寫入的數(shù)據(jù)寫入SSD,在系統(tǒng)空閑時再將校驗寫入SSD。這種方法將校驗信息和數(shù)據(jù)信息一起存放,頻繁地更新校驗信息使得塊中無效頁的數(shù)量增加很快,進而觸發(fā)垃圾回收,影響系統(tǒng)的性能。

      杜溢墨等人[7]提出MuLe-RAID(Multiple Level RAID)技術(shù),將RAID控制器分成兩層,即上層的RAID5控制器和下層的RAID0控制器,這種方法減輕了上層RAID5控制器的負載,提高了整個系統(tǒng)的性能,但是沒有解決校驗信息的更新對系統(tǒng)的影響。

      3 PA-SSD控制器

      傳統(tǒng)的SSD控制器不能感知校驗信息,因此不能針對校驗信息的特點做出相應的優(yōu)化,只能在其訪問頻繁時,當做普通的熱點數(shù)據(jù)處理。當前針對基于SSD的RAID系統(tǒng)的校驗信息的優(yōu)化都是在RAID控制器層或者文件系統(tǒng)層,沒有在SSD控制器層次做優(yōu)化的。而在RAID控制器層對校驗信息處理時,RAID控制器不知道底層SSD的數(shù)據(jù)布局。針對這一問題,我們提出PA-SSD控制器設(shè)計。

      3.1 體系結(jié)構(gòu)設(shè)計

      PA-SSD控制器的體系結(jié)構(gòu)圖如圖1所示。與傳統(tǒng)的RAID5控制器和SSD控制器不同的是,RAID5控制器將校驗信息請求發(fā)送給SSD控制器的同時,發(fā)送校驗標志信號,通知SSD控制器該請求是校驗信息。此外,在SSD控制器內(nèi)部增加一個緩存Pcache,將更新的校驗信息暫存在Pcache中,以減少對SSD的寫次數(shù)。同時,在SSD內(nèi)將存儲區(qū)間分為數(shù)據(jù)區(qū)和校驗區(qū),分別存放數(shù)據(jù)和校驗。

      Figure 1 PA-SSD controller architecture圖1 PA-SSD控制器體系結(jié)構(gòu)圖

      下面是PA-SSD控制器的訪問流程偽代碼:

      //lpn:請求的邏輯地址

      //ppn:lpn對應的物理地址

      /request:RAID5控制器發(fā)出的請求

      //parity_flag:RAID5控制器發(fā)出的校驗標志

      RAID5控制器發(fā)送request和parity_flay

      if(request==parity_request)

      if(request==read)

      parity=find(lpn,pache);

      if(parity不為空)

      將parity返回給RAID5控制器

      else

      ppn=map_table[lpn];

      ssd_read(ppn);

      endif

      else

      write_pcache(parity);

      endif

      else

      if(request==read)

      ppn=map_table[lpn];

      ssd_read(ppn);

      else

      ppn=alloc(lpn);

      write_ssd(ppn,data);

      endif

      endif

      RAID5控制器發(fā)出請求和校驗標志,PA-SSD控制器根據(jù)校驗標志判斷請求類型。如果是數(shù)據(jù)請求,則根據(jù)地址映射表訪問SSD,如果是校驗請求,則判斷讀寫類型,如果是寫請求,則寫入Pcache中,如果是讀請求,則根據(jù)邏輯地址在Pcache中查找校驗信息是否存在,如果存在,則將校驗信息返回RAID5控制器,如果不存在,則根據(jù)地址映射表訪問SSD。

      3.2 Pcache管理和地址分配

      根據(jù)程序的局部性原理,一個被訪問的地址在將來一段時間內(nèi)可能被再次訪問,在一段時間內(nèi),程序的訪問空間集中在某一片區(qū)域。因此,在更新某一個地址的數(shù)據(jù)后,在將來一段時間內(nèi),該地址以及它周圍的地址的數(shù)據(jù)可能被再次更新,如此,校驗信息的更新將會很頻繁。如果不加處理,每次更新校驗信息都對SSD執(zhí)行寫操作,同時將舊的校驗信息置為無效,則SSD中會有許多無效頁,進而觸發(fā)垃圾回收操作。為了減少校驗信息的更新對SSD的寫操作,在SSD內(nèi)部設(shè)置Pcache存放更新的校驗信息。更新校驗信息時,如果在Pcache中存在該校驗信息,則直接覆蓋舊的校驗信息,這樣就減少了校驗信息的更新對SSD的寫次數(shù)。

      由于Pcache中保存的是最近一段時間內(nèi)使用的校驗信息,根據(jù)程序的局部性原理,最久未被使用的校驗信息可能在將來也不會被使用,因此Pcache的替換策略采用LRU方式。

      校驗信息需要被頻繁地更新,與數(shù)據(jù)相比,校驗信息相當于熱點數(shù)據(jù)。如果將校驗信息與數(shù)據(jù)共同存放,則頻繁更新校驗數(shù)據(jù)會使得數(shù)據(jù)塊中無效頁的數(shù)量快速增加,在垃圾回收時需要擦除較多的數(shù)據(jù)塊,并且移動大量的有效數(shù)據(jù)頁,增加了垃圾回收的負擔。將數(shù)據(jù)和校驗信息分開存放,則校驗信息的頻繁更新不會影響到數(shù)據(jù)塊,數(shù)據(jù)塊的垃圾回收次數(shù)減少,校驗塊的垃圾回收移動的有效頁數(shù)量減少,減輕了垃圾回收的負擔。

      PA-SSD控制器將SSD的地址空間分為數(shù)據(jù)區(qū)和校驗區(qū),由圖1中的地址分配單元負責數(shù)據(jù)和校驗的地址分配。寫數(shù)據(jù)請求到達時,地址分配單元在數(shù)據(jù)區(qū)分配一個空閑頁給該請求,同時將地址映射表中與該邏輯地址對應的物理地址賦值。寫校驗信息時,控制器不給校驗信息分配物理地址,而是將校驗信息先寫入Pcache中。當Pcache需要替換時,地址分配單元給替換出的校驗信息在校驗區(qū)分配一個空閑頁。

      校驗區(qū)存放的校驗信息雖然由于Pcache的存在減少了校驗信息寫入SSD的次數(shù),但是由于校驗信息的更新比數(shù)據(jù)的更新更加頻繁,所以與數(shù)據(jù)區(qū)的塊相比,校驗區(qū)中塊的擦除次數(shù)更多,因此校驗區(qū)的塊更加容易磨損。針對這種情況,我們在控制器中維護兩個塊地址鏈表,一個是校驗區(qū)塊地址鏈表,另一個是數(shù)據(jù)區(qū)塊地址鏈表。對每個塊記錄擦除次數(shù),當校驗區(qū)的塊擦除次數(shù)超過一定閾值時,就與數(shù)據(jù)區(qū)中干凈的擦除次數(shù)最少的塊做交換,以此來延長整個SSD的壽命。

      Pcache使用RAM實現(xiàn),為了防止掉電時Pcache中的校驗信息丟失,造成數(shù)據(jù)的不可靠,在SSD陣列上增加一塊電池或者電容,在檢測到掉電時,由電池或者電容向Pcache供電,將其中的校驗信息寫入SSD中。

      4 實驗評估

      為了評估PA-SSD控制器的性能,我們實現(xiàn)了支持校驗標志傳送的RAID5模擬器和包含PA-SSD控制器的SSD模擬器,分別用來模擬RAID5的功能和對SSD的操作,記錄SSD運行的結(jié)果,并與傳統(tǒng)的RAID5模擬器和SSD模擬器的運行結(jié)果相比較。

      我們使用四個真實的磁盤IO trace作為測試用例,分別是prxy、usr、Exchange和Financial,這四個trace都是服務器trace,prxy和usr是Microsoft Research Cambridge在服務器上搜集的數(shù)據(jù)[8],是典型的企業(yè)數(shù)據(jù)中心的數(shù)據(jù);Exchange是從Microsoft Exchange Server上搜集的數(shù)據(jù)[8],包含61 000 000條請求,其中43%的請求是讀請求;Financial是一個OLTP應用程序trace[9]。

      我們比較了普通SSD控制器(regular SSD)和PA-SSD控制器的性能和壽命。普通SSD控制器沒有從RAID5控制器接收校驗信息標志,沒有使用Cache緩存校驗信息,也沒有在SSD內(nèi)部將校驗信息集中存放。Parity-aware SSD控制器使用不同大小的Cache測試其容量對性能的影響,Cache容量分別為SSD總?cè)萘康?.5/1000、1/1000、2/1000和4/1000。

      圖2表示regular SSD和Cache為不同大小的PA-SSD執(zhí)行各個trace的擦除次數(shù),以regular SSD的擦除次數(shù)為1。從圖2中可以看出,PA-SSD相比regular SSD減少了擦除次數(shù),在不同Cache大小的情況下,擦除次數(shù)平均減少23%~28%,最高可減少40%。在PA-SSD中,Cache越大,校驗信息在Cache中命中的幾率越高,從而寫回SSD的校驗信息越少,因此SSD的擦除次數(shù)越少。減少了SSD的擦除次數(shù),SSD的壽命就得到了提高。

      Figure 2 Comparision of erase count(normalized to regular SSD)圖2 擦除次數(shù)比較(歸一化到regular SSD)

      圖3表示regular SSD和Cache為不同大小的PA-SSD的垃圾回收時移動的頁數(shù),以regular SSD的頁移動次數(shù)為1。從圖3中可以看出,四個trace在PA-SSD下的頁移動次數(shù)相比regular SSD都有所減少,平均減少19%~27%,最高可減少37%。由圖2可知,在PA-SSD控制器中,擦除次數(shù)減少,結(jié)合圖2所示結(jié)果, PA-SSD控制器相比regular SSD控制器,在性能上有所提升。

      Figure 3 Comparision of page move count(normalized to regular SSD)圖3 頁移動次數(shù)比較(歸一化到regular SSD)

      綜合圖2和圖3的測試結(jié)果, PA-SSD控制器在減少擦除次數(shù)和降低垃圾回收時的頁移動次數(shù)方面都有很好的表現(xiàn),在Cache容量為SSD總?cè)萘康?/1000的情況下,擦除次數(shù)平均減少28%,頁移動次數(shù)平均降低27%。因此,相比普通的SSD控制器,采用PA-SSD控制器的RAID5系統(tǒng),延長了SSD的使用壽命,提升了整體的性能。

      5 結(jié)束語

      本文針對基于SSD的RAID5系統(tǒng)中校驗信息更新頻繁的特點,提出了PA-SSD控制器。RAID5控制器向SSD控制器發(fā)送請求的同時發(fā)送校驗標志,使得SSD控制器可以識別校驗信息。在SSD控制器內(nèi)部實現(xiàn)一個緩存Pcache,用于緩存更新的校驗信息,并且在將校驗信息寫入SSD時,與數(shù)據(jù)分開存放。這種方法有效地減少了校驗信息對SSD的寫操作,減少了SSD的擦除次數(shù),提高了系統(tǒng)的性能,且其開銷僅增加了一個小容量Cache。

      [1] Gupta A, Kim Y, Urgaonkar B. DFTL:A flash translation layer employing demand-based selective caching of page-level address mappings[C]∥Proc of ASPLOS, 2009:229-240.

      [2] You Byoung-sung,Park Jin-su,Lee Sang-don,et al. A high performance co-design of 26 nm 64 Gb MLC NAND flash memory using the dedicated NAND flash controller[J]. Journal of Semiconductor Technology and Science, 2011, 11(2):121-129.

      [3] Goldman M, Pangal K, Naso G, et al. 25nm 64Gb 130mm23bpc NAND flash memory[C]∥Proc of the 3rd IEEE International Memory Workshop, 2011:1-4.

      [4] Grupp L M, Davis J D, Swanson S. The bleak future of NAND flash memory[C]∥Proc of FAST’12,2012:2.

      [5] Im S, Shin D. Flash-aware RAID techniques for dependable and high-performance flash memory SSD[J]. IEEE Transactions on Computers, 2011, 60(1):80-92.

      [6] Lee Y, Jung S, Song Y Ho. FRA:A flash-aware redundancy array of flash storage devices[C]∥Proc of CODES+ISSS’09, 2009:163-172.

      [7] Du Yi-mo, Xiao Nong, Liu Fang, et al. MuLe-RAID:Constructing large scale and high-performance SSD with multiple level RAID architecture[J]. Journal of Computer Research and Development, 2012,49(z1):111-117.(in Chinese)

      [8] Narayanan D,Thereska E,Donnelly A,et al.Migrating server storage to SSDs:Analysis of tradeoffs[C]∥Proc of EuroSys’09, 2009:145-158.

      [9] Laboratory for Advanced System Software. UMass Trace Repository[EB/OL].[2009-10-16].http://www.traces.cs.umass.edu/.

      附中文參考文獻:

      [7] 杜溢墨,肖儂,劉芳,等. MuLe-RAID:面向大容量高性能SSD的層次化RAID[J].計算機研究與發(fā)展,2012,49(z1):111-117.

      猜你喜歡
      校驗次數(shù)控制器
      機場航站樓年雷擊次數(shù)計算
      2020年,我國汽車召回次數(shù)同比減少10.8%,召回數(shù)量同比增長3.9%
      商用汽車(2021年4期)2021-10-13 07:16:02
      一類無界算子的二次數(shù)值域和譜
      爐溫均勻性校驗在鑄鍛企業(yè)的應用
      依據(jù)“次數(shù)”求概率
      大型電動機高阻抗差動保護穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      鍋爐安全閥在線校驗不確定度評定
      模糊PID控制器設(shè)計及MATLAB仿真
      MOXA RTU控制器ioPAC 5542系列
      自動化博覽(2014年9期)2014-02-28 22:33:17
      南和县| 会泽县| 金乡县| 永丰县| 鹿泉市| 开鲁县| 临沧市| 清水县| 秭归县| 阳谷县| 登封市| 长垣县| 隆回县| 扎鲁特旗| 方山县| 乐亭县| 湟中县| 卓资县| 吉木萨尔县| 菏泽市| 敦化市| 清流县| 金乡县| 扶风县| 汉中市| 湟中县| 逊克县| 西丰县| 斗六市| 焉耆| 即墨市| 南溪县| 建平县| 喜德县| 江陵县| 长顺县| 普宁市| 沧源| 大方县| 汶上县| 滕州市|