祝 青,李小勇
大容量、低成本、高性能的存儲系統(tǒng)設計一直是存儲領(lǐng)域研究的熱點,而且隨著大數(shù)據(jù)云存儲時代的到來,人們對這樣的存儲系統(tǒng)的需求更加迫切。一方面,人類進入數(shù)字信息量呈爆炸性增長的時代,對存儲系統(tǒng)不斷提出更高要求,存儲系統(tǒng)既要在低成本前提下實現(xiàn)大容量存儲[1];另一方面,存儲和計算之間的性能差距不斷擴大[2],這就需要具有在海量數(shù)據(jù)規(guī)模下與計算性能相匹配的高性能數(shù)據(jù)訪問能力。
但與之矛盾的是,目前任何一種存儲介質(zhì)所構(gòu)成的存儲系統(tǒng)都不能同時滿足大容量、低成本、高性能等需求。如果將容量、成本、順序性能、隨機性能、壽命作為主要指標,那么對指標的覆蓋范圍就可以大致體現(xiàn)該存儲系統(tǒng)的綜合水平。如圖1所示:
圖1 幾種存儲介質(zhì)特性差異
體現(xiàn)了目前主流持久存儲介質(zhì),如磁盤(Hard Disk Drive, HDD)、固態(tài)盤(Solid State Disk, SSD)、非易失性隨機存儲器(Non-volatile Random Access Memory,NVRAM)在容量、成本、性能、壽命等方面存在的差異。從圖1中,可以看出,采用單一存儲介質(zhì)所能覆蓋的需求范圍是有限的。引入內(nèi)存作為緩存進行預讀寫或?qū)⒃O備組成RAID可以在一定程度上擴展系統(tǒng)的指標覆蓋范圍,但這種提高是有限的或是有代價的(可靠性的損失)。如果將多種存儲介質(zhì)集成在一起,構(gòu)成混合存儲系統(tǒng),發(fā)揮各自的優(yōu)勢,揚長避短,就可以顯著地擴大需求覆蓋范圍,從而較好地解決這個問題。
本文將從以下幾個方面展開:首先從混合存儲概念、存儲介質(zhì)的特性、以及混合存儲分類這3個方面進行介紹;接下來以目前主流的基于SSD和HDD的混合存儲為例,對混合存儲設計的關(guān)鍵技術(shù)進行分析;然后對當前混合存儲發(fā)展所存在的問題進行探討,最后對其未來發(fā)展進行展望。
混合存儲(hybrid storage)是一種數(shù)據(jù)存儲方法,它利用不同存儲設備的特性,根據(jù)數(shù)據(jù)訪問特點和系統(tǒng)負載情況,盡可能將數(shù)據(jù)請求交給最適合處理該請求的設備,進而提高整個系統(tǒng)的性價比、使用壽命、可靠性、容量等指標。
混合存儲系統(tǒng)之所以存在,從根本上講是由于存取速度與設備價格的正相關(guān)性所導致。雖然最理想的情況是將所有數(shù)據(jù)都存儲在高速設備上,但這對于很多用戶來說成本過高?;旌洗鎯ο到y(tǒng)將大部分的用戶數(shù)據(jù)都存放在低速設備上,由高速設備來接收或者響應數(shù)據(jù)請求。它的主要目標是使存儲的數(shù)據(jù)充分利用不同存儲介質(zhì)的特性,在保證存儲系統(tǒng)容量的同時盡可能地提高性價比?;旌洗鎯λ捎玫慕橘|(zhì)可以是NVRAM、不同轉(zhuǎn)速的磁盤(SAS、SATA)、SSD、磁帶等。
需要說明的是,這里所討論的混合存儲不同于傳統(tǒng)的基于磁帶和磁盤的分層存儲。雖然其思想來自于傳統(tǒng)的磁帶磁盤分層存儲,但本文所討論的混合存儲更側(cè)重于將異種存儲介質(zhì)整合成一個邏輯存儲設備,為用戶提供統(tǒng)一的接口,自動完成對上層應用程序透明的熱點數(shù)據(jù)識別、數(shù)據(jù)負載的自動緩存或遷移等操作,而不需要管理員手動完成。
磁盤是目前最常用的存儲介質(zhì)。它具有大容量、低成本、適合順序訪問的優(yōu)點,但其隨機訪問性能較差,這是由磁盤通過移動機械磁頭訪問數(shù)據(jù)的方式所決定的。隨著多種新技術(shù)和新工藝的應用,雖然磁盤的容量按照摩爾定律迅速增加[3],在過去的30年里增加了100,000倍;但由于磁頭移動速度的限制,磁盤的訪問延遲僅僅降低了2倍,且進一步提高磁盤轉(zhuǎn)速會帶來能源消耗和溫度等一系列問題[4]。磁盤容量與性能之間的矛盾日益突出。
近年來,固態(tài)盤的快速發(fā)展為提升存儲系統(tǒng)性能提供了新的機遇。針對 SSD的研究在閃存硬件原理[5]、內(nèi)部架構(gòu)[6]、性能[7]等方面都已經(jīng)積累了較多的成果。SSD 基于Flash介質(zhì)來存儲數(shù)據(jù),不存在機械設備的移動,具有訪問延遲低、體積小、質(zhì)量輕、無噪聲、低功耗等優(yōu)點。尤其在隨機訪問性能方面,SSD比磁盤高出一個數(shù)量級,因而可以較好地解決磁盤存儲系統(tǒng)的隨機訪問性能瓶頸。近年來,隨著制作工藝的進步, SSD的容量以每年翻一倍的速度遞增,其價格也以每年40%~50%的速度遞減,已開始進入大規(guī)模存儲領(lǐng)域,成為存儲系統(tǒng)突破性能瓶頸的重要手段。但目前SSD還存在價格偏高,容量較小,寫前需要進行擦除,擦除次數(shù)有限等問題,這就使得SSD并不能完全取代HDD來構(gòu)建存儲系統(tǒng)。
非易失性隨機存取存儲器是另一種高性能持久存儲設備,它不僅具有接近RAM的訪問速度,而且在系統(tǒng)掉電情況下不會像RAM那樣丟失數(shù)據(jù)。起初的NVRAM由RAM加電池構(gòu)成(Battery Backed-up RAM, BatRAM, 包括BBSRAM和BBDRAM);在最近的幾年中,新一代NVRAM如相變 RAM(phase-change RAM, PRAM),鐵電體 RAM(ferroelectric RAM, FeRAM),以及磁RAM (magnetic RAM,MRAM)等發(fā)展很快,這些新型NVRAM已經(jīng)不再需要電池。用NVRAM作為磁盤的寫緩存,可以避免SSD做緩存時所面臨的寫前擦除延遲和寫壽命限制,顯著提高存儲系統(tǒng)的寫性能和可靠性。但 NVRAM 價格較高,容量較小,一般在二級存儲系統(tǒng)中用來記錄日志或者在網(wǎng)絡存儲系統(tǒng)中用作client或server端的cache來改善系統(tǒng)性能,提高可靠性。
NVRAM、SSD和HDD三種存儲設備在性能、容量、價格等方面的差異,如表1所示:
表1 DRAM、SSD、HDD性能、容量、價格比較
這些差異決定了采用單一存儲設備建立的存儲系統(tǒng)不能夠同時滿足大容量、低成本、高性能等需求。而正因為存儲介質(zhì)之間的差異,采用不同存儲介質(zhì)搭建的混合存儲系統(tǒng)就具備同時滿足這些需求的潛力,因而具有較高的研究和應用價值。表1 DRAM、SSD、HDD性能、容量、價格比較。
根據(jù)所采用的存儲介質(zhì)種類來分,混合存儲有以下幾類:采用NVRAM和HDD的混合存儲系統(tǒng);利用不同轉(zhuǎn)速磁盤搭建的混合存儲系統(tǒng);以及基于SSD和HDD的混合存儲系統(tǒng)。
1.3.1 NVRAM與HDD的混合存儲
1)NVRAM作為數(shù)據(jù)緩存
基于RAM的Cache技術(shù)一直是提高存儲系統(tǒng)性能的重要手段[8],系統(tǒng)將經(jīng)常訪問的數(shù)據(jù)保存在RAM中,盡量避免訪問磁盤,從而實現(xiàn)以RAM的性能訪問數(shù)據(jù),目前這一技術(shù)的代表是CLOCK-Pro[9]和ARC[9]。但采用RAM作為cache只能提高系統(tǒng)的讀性能,對于寫性能的提高并不顯著:原因不在于緩存的大小不足,而是需要避免新寫入的數(shù)據(jù)(臟數(shù)據(jù))由于掉電而丟失。臟數(shù)據(jù)必須要從易失性存儲設備(RAM)寫入到非易失性存儲設備中來保證它的持久性,這就使得系統(tǒng)面臨降低寫負載與保護臟數(shù)據(jù)的可靠性的兩難選擇。臟數(shù)據(jù)在緩存中停留的時間越長,它被覆蓋寫或者刪除的可能性就越大,但與此同時它也更易受掉電丟失等侵害?;谶@個原因,UNIX和Sprite等系統(tǒng)都限制了臟數(shù)據(jù)在緩存中停留的時間。
NVRAM 由于其數(shù)據(jù)的非易失性,為通過緩存方式提升存儲系統(tǒng)的寫性能提供了可能。一種策略是將 NVRAM與RAM整合作為緩存,其整合方式可以有多種。比如可以將數(shù)據(jù)同時寫入RAM和NVRAM中。NVRAM只用來保護易失性緩存中臟數(shù)據(jù)的持久性,只有在系統(tǒng)宕機重啟后才會被訪問;或者將RAM和NVRAM結(jié)合組成一個單一的大緩存。一個獨立的塊有可能在任意一個存儲器中(而不同時存在),所有的臟數(shù)據(jù)塊都存放在NVRAM上[10]等。
較早的時候,由于NVRAM的容量較小,價格較高,所帶來的性能改進有限。近年來,NVRAM的容量也在不斷增大(目前BBDRAM的容量可達8GB),但目前存儲系統(tǒng)中HDD容量和NVRAM的容量比例仍在逐漸擴大,再加上大數(shù)據(jù)訪問呈現(xiàn)出的一次遍歷的特征,這使得基于NVRAM的Cache讀命中率不斷下降,系統(tǒng)讀性能提高的效果不斷減弱。
2)NVRAM記錄日志
基于 NVRAM 容量小、高隨機性能的特性,早期的NVRAM主要被用于存放OLTP系統(tǒng)中的日志數(shù)據(jù)[11]。比如NetApp的WAFL收集操作請求,這些作為日志數(shù)據(jù)首先寫入到NVRAM,當數(shù)據(jù)積累到一定量或者周期結(jié)束以后,再將其寫入到磁盤。期間如果發(fā)生斷電,系統(tǒng)重啟后仍然可以從 NVRAM 中讀出相關(guān)數(shù)據(jù),根據(jù)最近一致點和日志記錄將存儲系統(tǒng)恢復到一致的狀態(tài)。NVRAM記錄日志的方式提高了OLTP系統(tǒng)中事務處理的速度。
在最近的幾年中,NVRAM 技術(shù)發(fā)展很快,在增大容量、降低成本、采用新介質(zhì)等方面都有所突破。隨著新一代NVRAM技術(shù)的不斷成熟,未來有望在混合存儲系統(tǒng)中扮演重要的角色。
1.3.2 不同轉(zhuǎn)速磁盤的混合存儲
在20世紀90年代,利用不同規(guī)格、不同轉(zhuǎn)速的HDD來設計混合存儲系統(tǒng)曾成為產(chǎn)業(yè)界研究的熱點。其基本思想是根據(jù)數(shù)據(jù)的重要性、訪問頻率、保留時間、容量、性能等指標,將訪問頻繁的“熱”數(shù)據(jù)保存在轉(zhuǎn)速為10K/ 15K RPM的高速小容量FC或SAS磁盤中,而將較少訪問的“冷”數(shù)據(jù)保存在轉(zhuǎn)速為5.4K/ 7.2K RPM 的低速大容量IDE/SATA磁盤中。但由于磁盤本身機械部件的限制,不同存儲器件之間的性能并無顯著差距,這種方法對存儲系統(tǒng)的性能(尤其是隨機訪問性能)提升十分有限。
1.3.3 SSD與HDD的混合存儲
隨著近幾年SSD設備技術(shù)的日漸成熟,以及SSD和HDD良好的互補性為設計大容量、高性能、低成本的混合存儲系統(tǒng)提供了嶄新的機遇,基于SSD和HDD的混合存儲領(lǐng)域已成為存儲技術(shù)的重要發(fā)展方向和研究熱點,發(fā)展十分迅速,其中企業(yè)界的發(fā)展尤其引人注目。 Microsoft,HP,Intel,EMC,IBM,NetApp,Samsung等企業(yè)都對SSD及其應用表現(xiàn)出了濃厚的興趣。EMC[12],IBM[13],NetApp[14]等企業(yè)的一些產(chǎn)品已經(jīng)采用或支持基于SSD的混合存儲。下面將對目前流行的這種混合存儲技術(shù)做詳細地介紹。
總的來說,目前針對SSD與HDD的混合存儲系統(tǒng)的研究主要從系統(tǒng)架構(gòu)、映射策略、熱點數(shù)據(jù)識別、數(shù)據(jù)遷移策略、最優(yōu)化存儲介質(zhì)用量組合等幾個方面展開。
目前SSD與HDD實現(xiàn)混合存儲系統(tǒng)的架構(gòu)主要有兩種方式:一種是緩存分層架構(gòu),即將SSD作為HDD的緩存,以分層的方式搭建系統(tǒng);另一種是設備同層架構(gòu),即將SSD和HDD設備放在同一層,作為存儲系統(tǒng)的兩個相對獨立的存儲設備來搭建系統(tǒng)。
2.1.1 緩存分層架構(gòu)
緩存分層架構(gòu)將SSD完全作為磁盤的cache,SSD中的數(shù)據(jù)是HDD中數(shù)據(jù)的子集。混合存儲系統(tǒng)的邏輯地址與HDD設備的物理地址一一對應,而SSD設備中緩存了HDD中部分數(shù)據(jù)的拷貝。當上層有IO請求到達時,會先在SSD設備中查找該數(shù)據(jù)是否已被緩存,如果有,則訪問SSD設備;否則訪問HDD設備。
在緩存分層架構(gòu)下,因為SSD較RAM可以緩存更多的內(nèi)容,所以存儲系統(tǒng)的讀性能得到提高;而且SSD的隨機寫入性能也遠遠高于 HDD,所以可以用它來作為預寫,然后將寫入內(nèi)容批量寫入到磁盤中,進而提高寫性能。但緩存分層架構(gòu)也面臨一些問題,比如SSD和HDD數(shù)據(jù)一致性維護、SSD壽命損耗過快等。目前采用緩存分層架構(gòu)的混合存儲系統(tǒng)的代表是facebook的flashcache[9]。
2.1.2 設備同層架構(gòu)
設備同層架構(gòu)將SSD與HDD設備放在同一層,將SSD和HDD的物理地址統(tǒng)一編址,所以系統(tǒng)的邏輯地址范圍是SSD和HDD地址范圍之和。數(shù)據(jù)存放在SSD或者HDD上,兩種設備之間會根據(jù)數(shù)據(jù)的冷熱程度進行數(shù)據(jù)遷移。
設備同層架構(gòu)使得系統(tǒng)容量為SSD與HDD容量之和,提高了設備的空間利用率;同時它將經(jīng)常使用或最近訪問的數(shù)據(jù)被存放(或遷移)到SSD上,降低系統(tǒng)的訪問延遲;而且它還可以通過提高不同設備的并發(fā)性來提高存儲系統(tǒng)的吞吐量,進一步提高系統(tǒng)的性能。但設備同層架構(gòu)也存在一些問題,比如設計復雜度較高,設備之間數(shù)據(jù)遷移時會影響系統(tǒng)的性能等。目前采用設備同層架構(gòu)的混合存儲系統(tǒng)有HRO[10]、EDT[5]、HybridStore[15]等。
無論采用什么樣的架構(gòu),最終數(shù)據(jù)都是以block為單位存放在具體設備上的。這就需要考慮每一個block I/O請求應該映射到什么設備上,也就是從邏輯塊地址到物理塊地址的映射策略。它包括映射的粒度和映射的規(guī)則。
映射粒度指的是混合存儲系統(tǒng)所識別的 block所屬組織結(jié)構(gòu)的基本單位,它可以包含一個或多個block。一般映射粒度分為三類:數(shù)據(jù)塊級、文件級、Extent級等。映射規(guī)則是指與系統(tǒng)架構(gòu)和映射粒度配合的數(shù)據(jù)分配規(guī)則。不同的映射粒度和映射規(guī)則對系統(tǒng)的性能、熱點識別、數(shù)據(jù)遷移策略的選擇,以及系統(tǒng)設計和管理復雜度等都會產(chǎn)生不同的影響。
2.2.1 數(shù)據(jù)塊級映射
數(shù)據(jù)塊(block)級映射是粒度最細的映射,它將每一個4KB的block作為基本映射單位。所有的block請求根據(jù)其起始扇區(qū)號,按照特定的規(guī)則(比如取模運算、哈希運算等),映射到具體的存儲設備的塊進行處理。一般數(shù)據(jù)塊級映射采用的都是緩存分層架構(gòu),其映射規(guī)則與CPU寄存器與內(nèi)存之間的高速緩存的映射規(guī)則相似,可以采用直接映射、全相聯(lián)、組相聯(lián)3種方式。
以數(shù)據(jù)塊為粒度的映射較為簡單,而且可以在微觀層面以最細的粒度進行映射。但以數(shù)據(jù)塊為粒度會增大系統(tǒng)的內(nèi)存開銷。例如,對于100GB的SSD設備存儲空間,以一個block的元數(shù)據(jù)占20 bytes來計算,元數(shù)據(jù)所占用的內(nèi)存空間將達到 500MB,這對于大多數(shù)混合存儲系統(tǒng)是不可接受的。而且對于順序請求,系統(tǒng)有可能將其中的一些數(shù)據(jù)塊映射到在SSD上,另一些在HDD上,導致順序序列被隨機化,影響順序訪問的速度。另外,在緩存分層架構(gòu)中,必然存在多個block請求映射到SSD同一位置的情況,采用不同映射規(guī)則的系統(tǒng)性能也會存在差異。這些都是數(shù)據(jù)塊級映射需要考慮的問題。
2.2.2 文件級映射
文件級是以文件作為相關(guān)block的基本組織單位,block請求按所屬的文件進行分類,同一文件的所有block請求都會被映射到同一個設備上。熱點識別、緩存或遷移的基本單位也是文件,和這個文件關(guān)聯(lián)的多個塊請求共同決定該文件是否是熱點文件,以及是否需要進行遷移等。
文件級映射的好處在于,與數(shù)據(jù)塊級映射相比,它以文件為粒度可以有效地減少所管理的元數(shù)據(jù)的數(shù)量和系統(tǒng)開銷;但由于文件的大小不一,文件可能較大,這樣在選取遷移數(shù)據(jù)集的時候會面臨一些新的問題,這些問題將在數(shù)據(jù)遷移部分進行介紹。
2.2.3 Extent級映射
Extent粒度是以一個指定的大小,將該范圍內(nèi)的block捆綁在一起,作為一個映射的基本單位,同一個extent的所有block請求都會被映射到同一個設備上。它與文件粒度有相似之處:它們都是將多個block組織成一個較大的粒度;不同之處在于,文件將與該文件相關(guān)數(shù)據(jù)塊捆綁在一起,這些數(shù)據(jù)塊可能是不連續(xù)的,而extent一般都是由物理上連續(xù)的數(shù)據(jù)塊構(gòu)成。目前以 extent為粒度的系統(tǒng)有 EDT[6]、HybridStore[10]等。
由于 extent級和文件級粒度的相似性,它們都可以有效地減少元數(shù)據(jù)的數(shù)量,減少內(nèi)存消耗。而且extent的大小是一致的,在進行數(shù)據(jù)遷移的時候,數(shù)據(jù)集的選取就會簡便些。Extent的大小可以自由選擇,這也使得映射的粒度更加靈活,但extent的大小對系統(tǒng)也會產(chǎn)生影響:較小的extent具有更細的粒度,可以更有效地識別熱點,更輕量級地進行數(shù)據(jù)遷移,從而更高效地響應工作負載的變化,但這也會使得元數(shù)據(jù)所占用的計算和空間資源增大。
熱點數(shù)據(jù)識別是指將對設備的數(shù)據(jù)請求按冷熱程度進行劃分,從而實現(xiàn)對不同熱度的數(shù)據(jù)訪問分別處理。從本質(zhì)上講,它與存儲層次中的緩存策略的目的是一樣的,它們都是將經(jīng)常訪問的數(shù)據(jù)放在性能較高的存儲設備上,所以緩存算法也可以認為是熱點數(shù)據(jù)識別算法。熱點數(shù)據(jù)識別的準確率會直接影響到整個系統(tǒng)的性能。針對熱點數(shù)據(jù)的識別方法,已經(jīng)有較多的研究成果。根據(jù)映射粒度的不同,識別的效果以及內(nèi)存和計算資源的消耗也會有不同。下面將逐一進行介紹。
2.3.1 數(shù)據(jù)塊級熱點識別
數(shù)據(jù)塊(block)級的識別是粒度最小的熱點數(shù)據(jù)識別方法,它將一個數(shù)據(jù)塊作為冷熱程度計數(shù)的單位,統(tǒng)計數(shù)據(jù)塊的訪問頻度,將頻度高的數(shù)據(jù)塊標記為熱點。數(shù)據(jù)塊級別的熱點識別較多應用于SSD的內(nèi)部設計中,主要用于SSD的損耗均衡。而在混合存儲系統(tǒng)中,數(shù)據(jù)塊級的熱點識別也有應用。
數(shù)據(jù)塊級的識別的優(yōu)勢在于,它可以在微觀層面精確地識別出真正的熱點數(shù)據(jù)塊;但它沒有在宏觀上將I/O隨機性、系統(tǒng)帶寬等其它信息加入熱點程度計算中,導致系統(tǒng)的性能降低。例如,對于一組順序請求,系統(tǒng)就有可能將其中的一些數(shù)據(jù)塊放在SSD上,另一些在HDD上,導致數(shù)據(jù)塊被分散化,影響順序訪問的速度。
數(shù)據(jù)塊級的熱點識別算法很多,有經(jīng)典的FIFO、LRU等算法,也有最近幾年提出的 ARC、Clock-Pro、多哈希函數(shù)、多布隆過濾器、WDAC等算法。其中,F(xiàn)IFO和 LRU的實現(xiàn)簡單,計算負載低,而且不需要引入額外的內(nèi)存開銷;但其所識別熱點的命中率不高,而且順序遍歷I/O會將熱點信息全部覆蓋,影響系統(tǒng)訪問性能。ARC、多布隆過濾器等較新的算法都將數(shù)據(jù)訪問的新近性(recency)和頻度(frequency)引入作為判定熱點程度的標準。這些算法在引入一定額外開銷的條件下提高了熱點的命中率,而且可以抵抗順序遍歷型I/O對熱點信息的沖刷,因而具有良好的應用價值。
2.3.2 文件級和extent級熱點識別
以文件或extent為粒度是另一種判定熱點數(shù)據(jù)的方法。它以文件或extent作為熱度統(tǒng)計的基本單位,在其元數(shù)據(jù)信息中都會有保存熱點程度的域,所有的block訪問請求都會對其所屬的文件或extent的熱度值產(chǎn)生影響。在這個粒度的熱點識別中,不僅可以通過block請求的冷熱程度,還可以添加隨機程度,帶寬等多個指標來綜合判斷“熱點”文件或extent。目前大多數(shù)混合存儲系統(tǒng),如HRO、EDT、HybridStore等,都采用文件級或extent級的熱點數(shù)據(jù)識別。
文件級或 extent級熱點數(shù)據(jù)識別的好處在于,與數(shù)據(jù)塊級的識別相比,它以文件或extent為粒度可以有效地減少元數(shù)據(jù)的數(shù)量,進而減少熱點統(tǒng)計維護的數(shù)量,減少內(nèi)存和計算消耗,而且還可以將數(shù)據(jù)塊訪問的隨機性等因素引入熱點識別過程,更有效地利用了SSD的特性。
在混合存儲系統(tǒng)中,理想狀態(tài)是將熱點數(shù)據(jù)存放在速度較快的SSD設備上。但由于熱點數(shù)據(jù)會隨著時間而發(fā)生變化,而且SSD的容量也要遠小于HDD的容量,因此必須要解決數(shù)據(jù)的移動(緩存或遷移)問題,從而達到提高混合存儲系統(tǒng)的訪問速度,降低訪問延遲,延長SSD使用壽命等目標。
數(shù)據(jù)緩存主要用在緩存分層架構(gòu)中,用來決定將哪些數(shù)據(jù)緩存在SSD上;而數(shù)據(jù)遷移主要用在設備同層架構(gòu)中,用來交換SSD和HDD存儲介質(zhì)間的部分數(shù)據(jù),以便更加高效地處理訪問請求。但無論是緩存分層架構(gòu),還是設備同層架構(gòu),設備之間都存在數(shù)據(jù)的交換。在緩存分層架構(gòu)中一般稱作寫回(從SSD復制到HDD)或緩存(從HDD復制到SSD)。在這里設備之間的數(shù)據(jù)交換統(tǒng)稱為遷移。遷移策略要解決如下幾個問題:遷移哪些數(shù)據(jù),何時遷移,如何在保證系統(tǒng)性能的前提下進行遷移等。
2.4.1 遷移數(shù)據(jù)集合的生成
遷移數(shù)據(jù)集合指的是設備需要遷入和遷出的數(shù)據(jù)集,它是根據(jù)數(shù)據(jù)的熱點程度生成的。一旦熱點數(shù)據(jù)識別方法確定,通過計算就可以確定需要遷移的數(shù)據(jù)集合。但對于不同的映射粒度,數(shù)據(jù)遷移集合的生成會有所不同。
數(shù)據(jù)塊級的數(shù)據(jù)遷移,則直接以數(shù)據(jù)塊作為數(shù)據(jù)遷移的基本單位。在數(shù)據(jù)塊粒度下,所遷移的數(shù)據(jù)集合也就是一個數(shù)據(jù)塊。這樣的好處在于遷移粒度小,遷移周期短,遷移效率高。文件級的數(shù)據(jù)遷移以文件為組成遷移數(shù)據(jù)集的基本單位,但由于文件的大小不一,這樣在數(shù)據(jù)遷移時計算需要遷移的數(shù)據(jù)集就變得比較復雜,需要在保證系統(tǒng)性能的同時盡可能多地遷移熱點數(shù)據(jù);而且由于文件的粒度較大,遷移也會導致混合存儲系統(tǒng)性能的波動較大,所以要盡可能地在系統(tǒng)負載較輕的時候進行遷移。Extent級的數(shù)據(jù)遷移以extent構(gòu)成遷移數(shù)據(jù)集的基本單位,它較文件級遷移的不同之處在于,由于extent的大小是一致的,在遷移的時候,數(shù)據(jù)集的生成就會簡便些。
2.4.2 遷移周期的選擇
根據(jù)遷移周期的不同,遷移一般可以分為靜態(tài)/半靜態(tài)遷移和動態(tài)遷移。靜態(tài)/半靜態(tài)遷移是指以天/月為周期的遷移;而動態(tài)遷移是指以分鐘/小時為周期的遷移遷移。數(shù)據(jù)周期的選擇也面臨一些兩難處境:靜態(tài)/半靜態(tài)遷移因為遷移周期較長,且后臺遷移的時間一般選在前臺系統(tǒng)負載較輕的時候(比如午夜),所以對前臺系統(tǒng)正常使用時的性能影響較小,且遷移較為簡單,但它也存在不能及時響應系統(tǒng)負載的變化的問題;動態(tài)遷移的周期較短,可以及時響應系統(tǒng)負載的變化,但由于其遷移的周期較短,后臺遷移的次數(shù)過多,會對前臺系統(tǒng)正常使用時的性能造成影響。
2.4.3 預遷移
一種中和遷移周期所面臨的二難選擇的方法就是進行預遷移。預遷移的思想就是,在多進程系統(tǒng)中,在前一個進程導致的遷移完成之前,就啟動后一個進程所引發(fā)的數(shù)據(jù)。之所以可以這樣做,是因為在數(shù)據(jù)遷移完成之前的一段聚合階段,系統(tǒng)的遷移負載并不重,這個時候就可以將這部分空閑負載用來預先做下一個進程所引發(fā)的遷移。
實現(xiàn)最優(yōu)化的存儲介質(zhì)用量組合,在盡可能減小成本的同時達到系統(tǒng)的性能需求,也是混合存儲設計中需要考慮的問題。該最優(yōu)化工作較為復雜,受存儲設備類型、數(shù)據(jù)負載、存儲系統(tǒng)架構(gòu)、以及存儲容量、性能、可靠性、成本、能耗等多種因素的影響。根據(jù)用量組合能否動態(tài)改變劃分,可以將最優(yōu)化方法分為靜態(tài)配置方法和動態(tài)配置方法。
2.5.1 靜態(tài)配置
靜態(tài)配置是指在初始配置的時候就完成存儲介質(zhì)用量的組合。目前已知的最優(yōu)化用量組合方法都是靜態(tài)配置方法,但實現(xiàn)的方式各有不同,有的通過實踐模擬的方式,重放或模擬I/O trace,用模擬器計算出所有遷移周期下對不同設備的需求,從而給出最優(yōu)存儲介質(zhì)組合;有的則通過理論推導的方式,由用戶給出對系統(tǒng)的價格、性能等指標的需求,然后將這些需求作為參數(shù)構(gòu)成約束條件,通過混合整形線性規(guī)劃,求出系統(tǒng)設備組合的最優(yōu)解。
2.5.2 動態(tài)調(diào)整
由于混合存儲系統(tǒng)一般不支持對存儲設備進行熱插拔,所以靜態(tài)配置好的設備組合一般不能動態(tài)變化,這就使得靜態(tài)配置下給出的設備組合并不一定能適應用戶變化的需求?;蛟S對設備組合進行動態(tài)調(diào)整會成為混合存儲系統(tǒng)最優(yōu)化設備組合的一個新的研究點。
雖然目前混合存儲系統(tǒng)的研究已經(jīng)得到了學術(shù)界和產(chǎn)業(yè)界的廣泛重視,相關(guān)研究在各個方面已經(jīng)有了較好的進展。但另一方面,一些關(guān)鍵問題還未獲得突破,主要表現(xiàn)在:
1)在SSD和HDD的混合存儲系統(tǒng)中,SSD的寫前擦除和寫壽命限制對系統(tǒng)的寫操作性能影響較大。從目前所公開的資料中可以看出,由于本身固有的屬性限制,SSD存在不能就地更新(inplace updating),需寫前擦除,擦除壽命等問題,這就導致在混合存儲系統(tǒng)中,寫操作面臨兩難困境:對于數(shù)據(jù)的寫入策略,若頻繁寫入SSD則會影響SSD的使用壽命,但如果頻繁寫入HDD則會影響系統(tǒng)的寫性能。所以,基于SSD和HDD的混合存儲并沒有完全解決存儲系統(tǒng)設計所面臨的問題。
2)目前基于NVRAM和HDD的混合存儲解決了系統(tǒng)的可靠性問題,但由于NVRAM價格較高,HDD與NVRAM容量比例較大,數(shù)據(jù)訪問方式多樣等因素的限制,NVRAM在處理大數(shù)據(jù)負載時讀數(shù)據(jù)的命中率較低,讀性能的提高效果并不顯著。
3)混合存儲系統(tǒng)中需要解決的關(guān)鍵問題如高效的熱點數(shù)據(jù)及訪問模式識別、數(shù)據(jù)放置策略及遷移算法等關(guān)鍵技術(shù)問題目前還未有成熟、通用的方案。雖然目前國外已有一些SSD與HDD的混合存儲系統(tǒng)的產(chǎn)品,但是其技術(shù)細節(jié)并未公開,內(nèi)部實現(xiàn)機制和效果無從得知,也沒有對這些關(guān)鍵技術(shù)問題的對比分析。
雖然目前的混合存儲系統(tǒng)都存在一定的問題或局限性,但這也為開展新型混合存儲系統(tǒng)研究,實現(xiàn)存儲系統(tǒng)基礎(chǔ)理論創(chuàng)新、關(guān)鍵技術(shù)突破提供了良好的機會。
綜合采用NVRAM、SSD和HDD并進行一體化設計的混合存儲系統(tǒng),有可能成為混合存儲系統(tǒng)新的發(fā)展方向。NVRAM在處理寫請求時具備良好的性能,可以用來為寫請求加速,但其價格較高,容量較小,不足以為讀請求加速;SSD具備良好的隨機性,尤其是隨機讀性能,可以用來為隨機讀請求加速,但由于自身固有屬性的問題,不適合用來處理頻繁的寫入操作和大數(shù)據(jù)順序訪問操作;HDD的容量最大,每GB成本最低,但隨機讀寫性能較低,不適合處理隨機請求,但對順序請求有很好支持,可以用來處理大數(shù)據(jù)的順序訪問。將這3種存儲介質(zhì)有機地組合起來,設計一種新型的混合存儲系統(tǒng),具備3種設備的優(yōu)勢,避免各自設備的不足。這種新型的混合存儲系統(tǒng)可能在性能和可靠性方面將比現(xiàn)有系統(tǒng)有大幅提高,在大容量、低成本、高性能等方面滿足現(xiàn)有對存儲系統(tǒng)的需求。
綜上所述,面向存儲應用需求,針對基于不同特性存儲設備的新型混合存儲的新理論和新方法的研究,可以為高性能存儲系統(tǒng)的分析和設計提供新的理論和方法指導,并開辟新的思路。
[1]Nimrod Megiddo and Dharmendra S. Modha.ARC: A Self-Tuning, Low Overhead Replacement Cache. [C]Proceedings of the 2003 Conference on File and Storage Technologies, 2003.
[2]Wu X. and Reddy, A. L. N. “Exploiting concurrency to improve latency and throughput in a hybrid storage system,” in Proceedings of the 2010 [J]IEEE International Symposium on Modeling, Analysis and Simulation of Computer and Tele-communication Systems, 2010.
[3]NetApp FAS3100 System, [OL]http://www.netapp.com/us/products/storage-systems/fas3100/.
[4]Guerra, J. Pucha, H. Glider, J. Belluomini, W. and Ran-gaswami. R. [C]Cost effective storage using extent based dynamic tiering. FAST, 2011.
[5]CagdasDirik, Bruce Jacob, The Performance of PC Sol-id-State Disks (SSDs)as a Function of Bandwidth,Concurrency, Device Architecture, and System Organization. [C]In Proc. Of ISCA’09, 2009.
[6]NitinAgrawal, VijayanPrabhakaran, Ted Wobber, John D.Davis, Mark Manasse, and RinaPanigrahy. Design tradeoffs for SSD performance. [G]In USENIX Annual Technical Conference, pages 57–70, Boston, MA, June 2008.
[7]Song Jiang, Feng Chen, Xiaodong Zhang. [C]CLOCK-Pro: An Effective Improvement of the CLOCK Replacement. USENIX, 2005
[8]Gray, J. “What Next? A Dozen Information-Technology Research Goals,”[C]ACM Turing Award Lecture, June 1999, MS-TR-99-50
[9]T. Morris, R. J. Truskowski. B. J. The evolution of storage systems.IBM SYSTEMS JOURNAL, [J]VOL 42,NO 2, 2003
[10]Mary Baker, Satoshi Asami, Etienne Deprit, JohnOuster-hout, and Margo Seltzer. Non-volatile memory for fast,reliable file systems. In Proc. International Conference on Architectu-ralSupport for Programming Languages and OperatingSystems (ASPLOS), [C]pages 10–22, Boston, MA, October 1992.
[11]George Copeland, Tom Keller, Ravi Krishnamurthy and Marc Smith. The Case ForSafe RAM. [C]Proceedings of the Fif-teenth International Conference on Very Large Data Bases.Amsterdam, 1989.
[12]Laliberte. B. Automate and Optimize a Tiered Storage Environment FAST![C]ESG White Paper, 2009.
[13]Gurumurthi, S. Sivasubramaniam, A. and Natarajan. V. K.Disk drive roadmap from the thermal perspective: [G]A case for dynamic thermal management. ISCA, 2005.
[14]Lin Lin, Yifeng Zhu, JianhuiYue, Zhao Cai, Bruce Segee.Hot Random Off-loading: A Hybrid Storage System With Dy-namic Data Migration. [J]IEEE 19th International Symposium on Modeling, Analysis & Simulation of Computer and Telecom-munication Systems (MASCOTS), 2011.
[15]G. Zhang, L. Chiu, C. Dickey, L. Liu, P. Muench, and S.Seshadri. Automated Lookahead Data Migration in SSD-enabled Multi-tiered Storage Systems. [J]In IEEE MSST, 2010.