本發(fā)明屬于存儲控制技術(shù)領(lǐng)域,更具體地,涉及一種基于失效概率的固態(tài)存儲分級管理方法及系統(tǒng)。
背景技術(shù):
近年來,基于nandflash的固態(tài)硬盤由于性能高、功耗低、抗震性好等諸多優(yōu)點獲得廣泛的應(yīng)用。由于nand閃存異地更新的特點,寫更新產(chǎn)生的無效頁需經(jīng)由垃圾回收操作重新成為可用頁,這會造成嚴(yán)重的寫放大,對ssd的讀寫性能和壽命都有很大的影響。減少ssd垃圾產(chǎn)生、垃圾回收時選擇無效頁最多的塊、冷熱數(shù)據(jù)分離等可以有效減少寫入數(shù)據(jù)的放大系數(shù);考慮各塊磨損情況的頁面分配則能延長ssd的使用壽命。最直接的辦法是減少寫入到ssd中的數(shù)據(jù),這樣可以有效提高ssd的性能和壽命。
研究人員分析了多種存儲系統(tǒng),發(fā)現(xiàn)其中廣泛存在重復(fù)數(shù)據(jù)。例如,微軟的研究人員發(fā)現(xiàn)個人電腦普遍存在40%左右的重復(fù)數(shù)據(jù);emc的研究者發(fā)現(xiàn)備份存儲系統(tǒng)的重復(fù)數(shù)據(jù)高達(dá)90%;德國研究者發(fā)現(xiàn)數(shù)據(jù)中心存在15-30%的重復(fù)數(shù)據(jù)。這些重復(fù)數(shù)據(jù)不僅增加了存儲成本,且占用了存儲設(shè)備的寫入帶寬,因此通過減少重復(fù)數(shù)據(jù)可以有效提高存儲設(shè)備的利用率。特別對于ssd而言,減少重復(fù)數(shù)據(jù)還能提高ssd使用壽命。
因此數(shù)據(jù)去重技術(shù)正逐步應(yīng)用于ssd設(shè)備及其組建的系統(tǒng)中,如caftl算法、△ftl算法、nf-dedup策略等。但是數(shù)據(jù)去重在減少冗余數(shù)據(jù)同時,也帶來了一個新的問題:經(jīng)過去重處理的部分?jǐn)?shù)據(jù)會被多次索引(多被引數(shù)據(jù)),和單次索引數(shù)據(jù)相比,這些數(shù)據(jù)更不容易失效,可能經(jīng)歷多次不必要的遷移。如圖1所示,數(shù)據(jù)頁a,b,e多次作為有效數(shù)據(jù)被遷移到新的數(shù)據(jù)塊,所涉及的數(shù)據(jù)頁讀和寫操作帶來了不可忽視的開銷。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于失效概率的固態(tài)存儲分級管理方法及系統(tǒng),其目的在于在數(shù)據(jù)冷熱分離的基礎(chǔ)上,結(jié)合物理頁索引次數(shù),提出物理頁失效概率這一概念,將失效概率相近的頁聚集一起,進(jìn)行分級管理,由此減少垃圾回收對性能的影響和減少寫放大。
為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于失效概率的固態(tài)存儲分級管理方法,該方法包括:
(1)評估失效概率:根據(jù)垃圾回收中將遷移物理頁的索引次數(shù)和該物理頁對應(yīng)邏輯頁的冷熱程度綜合評估該物理頁的失效概率;
(2)數(shù)據(jù)分級管理:按失效概率的大小將物理頁遷移到相應(yīng)級別的數(shù)據(jù)塊中;數(shù)據(jù)塊的級別按預(yù)定的失效概率劃分;
(3)管理元數(shù)據(jù):當(dāng)數(shù)據(jù)頁寫入、數(shù)據(jù)頁更新或垃圾回收時更改數(shù)據(jù)所在物理頁的索引次數(shù)和索引信息。
進(jìn)一步地,所述物理頁失效概率具體計算公式為:
其中,tem_lpn為邏輯頁的溫度;luc為最近寫訪問次數(shù);ct為系統(tǒng)的當(dāng)前時間;lts為最近訪問時間戳;δu為最近訪問的時間間隔門限,預(yù)設(shè)值;fp_ppn為物理頁的失效概率;n為物理頁的索引次數(shù);α為系數(shù),預(yù)設(shè)值。
進(jìn)一步地,所述步驟(3)具體包括:
(31)判斷:判斷若是數(shù)據(jù)頁寫入進(jìn)入步驟(32),若是數(shù)據(jù)頁更新時進(jìn)入步驟(33),若是垃圾回收操作進(jìn)入步驟(34);
(32)寫入數(shù)據(jù)頁:通過去重寫技術(shù),判斷寫入數(shù)據(jù)是否已存在,若不存在,則新建邏輯頁條目和物理頁條目,邏輯頁條目包括新分配的物理頁地址和標(biāo)為有效的狀態(tài),邏輯地址對應(yīng)到新建的邏輯頁條目,邏輯頁條目通過其中的物理頁地址對應(yīng)一個物理頁條目,物理頁條目包括數(shù)據(jù)指紋、置為1的物理頁索引次數(shù)和映射的邏輯地址集合;若存在,則建立邏輯地址到已存在物理頁地址所在邏輯頁條目的對應(yīng)關(guān)系,并將該邏輯地址添加到對應(yīng)物理頁條目的邏輯地址集合中,物理頁索引次數(shù)加1,結(jié)束;
(33)更新數(shù)據(jù)頁:將邏輯地址對應(yīng)的邏輯頁條目中狀態(tài)置為無效,并判斷對應(yīng)物理頁條目中物理頁索引用次數(shù)是否為1,若是則將該物理頁條目刪除;否則將邏輯地址從對應(yīng)物理頁條目中邏輯地址集合中刪除,并且物理頁索引次數(shù)減1;進(jìn)入步驟(32);
(34)數(shù)據(jù)塊刪除:判斷該數(shù)據(jù)塊中各物理頁是否為有效頁,若是有效頁,則通過物理頁條目中映射的邏輯地址集合,找到對應(yīng)的邏輯地址條目,將它們依次重新對應(yīng)到新遷移后的物理頁地址,再刪除原物理頁條目,并新建遷移后的物理頁條目,直至完成該塊中所有有效頁的遷移操作,再擦除數(shù)據(jù)塊,成為一個空閑塊;否則直接擦除數(shù)據(jù)塊。
按照本發(fā)明的另一方面,提供了一種基于失效概率的固態(tài)存儲分級管理系統(tǒng),該系統(tǒng)包括:
失效概率評估模塊,用于根據(jù)垃圾回收中將遷移物理頁的索引次數(shù)和該物理頁對應(yīng)邏輯頁的冷熱程度綜合評估該物理頁的失效概率;
數(shù)據(jù)分級管理模塊,用于按失效概率的大小將物理頁遷移到相應(yīng)級別的數(shù)據(jù)塊中;數(shù)據(jù)塊的級別按預(yù)定的失效概率劃分;
元數(shù)據(jù)管理模塊,用于當(dāng)數(shù)據(jù)頁寫入、數(shù)據(jù)頁更新或垃圾回收時更改數(shù)據(jù)所在物理頁的索引次數(shù)和索引信息。
進(jìn)一步地,所述物理頁失效概率具體計算公式為:
其中,tem_lpn為邏輯頁的溫度;luc為最近寫訪問次數(shù);ct為系統(tǒng)的當(dāng)前時間;lts為最近訪問時間戳;δu為最近訪問的時間間隔門限,預(yù)設(shè)值;fp_ppn為物理頁的失效概率;n為物理頁的索引次數(shù);α為系數(shù),預(yù)設(shè)值。
進(jìn)一步地,所述元數(shù)據(jù)管理模塊具體包括:
判斷單元,用于判斷若是數(shù)據(jù)頁寫入進(jìn)入數(shù)據(jù)頁寫入單元,若是數(shù)據(jù)頁更新時進(jìn)入數(shù)據(jù)頁更新單元,若是垃圾回收操作進(jìn)入數(shù)據(jù)塊刪除單元;
數(shù)據(jù)頁寫入單元,用于通過去重寫技術(shù),判斷寫入數(shù)據(jù)是否已存在,若不存在,則新建邏輯頁條目和物理頁條目,邏輯頁條目包括新分配的物理頁地址和標(biāo)為有效的狀態(tài),邏輯地址對應(yīng)到新建的邏輯頁條目,邏輯頁條目通過其中的物理頁地址對應(yīng)一個物理頁條目,物理頁條目包括數(shù)據(jù)指紋、置為1的物理頁索引次數(shù)和映射的邏輯地址集合;若存在,則建立邏輯地址到已存在物理頁地址所在邏輯頁條目的對應(yīng)關(guān)系,并將該邏輯地址添加到對應(yīng)物理頁條目的邏輯地址集合中,物理頁索引次數(shù)加1,結(jié)束;
數(shù)據(jù)頁更新單元,用于將邏輯地址對應(yīng)的邏輯頁條目狀態(tài)置為無效,并判斷對應(yīng)物理頁條目中物理頁索引用次數(shù)是否為1,若是則將該物理頁條目刪除;否則將邏輯地址從對應(yīng)物理頁條目中邏輯地址集合中刪除,并且物理頁索引次數(shù)減1;進(jìn)入數(shù)據(jù)頁寫入單元;
數(shù)據(jù)塊刪除單元,用于判斷該數(shù)據(jù)塊中各物理頁是否為有效頁,若是有效頁,則通過物理頁條目中映射的邏輯地址集合,找到對應(yīng)的邏輯地址條目,將它們依次重新對應(yīng)到新遷移后的物理頁地址,再刪除原物理頁條目,并新建遷移后的物理頁條目,直至完成該塊中所有有效頁的遷移操作,再擦除,成為一個空閑塊。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)特征及有益效果:
本發(fā)明針對現(xiàn)有固態(tài)存儲系統(tǒng)存儲多被引數(shù)據(jù)帶來的有效數(shù)據(jù)被反復(fù)無效的遷移這一問題,提出一種基于失效概率的固態(tài)存儲分級管理技術(shù),本技術(shù)方案提出物理頁的失效概率這一概念,并在垃圾回收的有效數(shù)據(jù)遷移時,根據(jù)該物理頁被索引次數(shù)和所對應(yīng)邏輯頁的冷熱程度來綜合計算得出其失效概率,進(jìn)行合理的數(shù)據(jù)分級管理,減少后續(xù)垃圾回收的反復(fù)遷移數(shù)據(jù),進(jìn)而提高響應(yīng)性能和使用壽命。
附圖說明
圖1是現(xiàn)有固態(tài)存儲系統(tǒng)垃圾回收的數(shù)據(jù)遷移情況示意圖;
圖2是本發(fā)明方法的整體流程圖;
圖3是本發(fā)明實施例中的數(shù)據(jù)分級管理示意圖;
圖4是數(shù)據(jù)分級管理過程的流程圖;
圖5是本發(fā)明實施例中元數(shù)據(jù)結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖2所示,本發(fā)明方法實施例包括以下主要步驟:
(1)評估失效概率:根據(jù)垃圾回收中將遷移物理頁的索引次數(shù)和該物理頁對應(yīng)邏輯頁的冷熱程度綜合評估該物理頁的失效概率;
所述物理頁失效概率具體計算公式為:
其中,tem_lpn為邏輯頁的溫度;luc為最近寫訪問次數(shù),取實際值;ct為系統(tǒng)的當(dāng)前時間,取實際值;lts為最近訪問時間戳,取實際值;δu為最近訪問的時間間隔門限,優(yōu)選預(yù)設(shè)1小時;fp_ppn為物理頁的失效概率;n為物理頁的索引次數(shù),取實際值;α為系數(shù),優(yōu)選預(yù)設(shè)0.9。
本步驟除了考慮冷數(shù)據(jù)較熱數(shù)據(jù)不易失效,更考慮到去重后數(shù)據(jù)特性發(fā)生了改變,即被多次引用的物理頁相對于單次引用的物理頁更不易失效。通過對數(shù)據(jù)特性的分析,根據(jù)物理頁索引次數(shù),綜合冷熱程度,在垃圾回收時計算待遷移有效頁的失效概率。
(2)數(shù)據(jù)分級管理:按失效概率的大小將物理頁遷移到相應(yīng)級別的數(shù)據(jù)塊中;數(shù)據(jù)塊的級別按預(yù)定的失效概率劃分;
為了減少垃圾回收操作造成的多被引有效數(shù)據(jù)反復(fù)被遷移和提升回收效率,本發(fā)明采用數(shù)據(jù)分級管理方式,級別越高的塊越不易失效。在固態(tài)盤剛開始使用時,所有新到來的數(shù)據(jù)頁的級別均默認(rèn)為最低級,存放到一級的物理塊上,數(shù)據(jù)的級別只有在垃圾回收遷移時發(fā)生重新計算;
如圖3所示,本實施例中以閃存塊為基本單元進(jìn)行3級管理;一級和二級的分界閾值tfp,推薦取值0.8,二級和三級的分界閾值hfp,推薦取值0.3;垃圾回收時先根據(jù)物理頁的失效概率fp確定其所處級別,再將其遷移到相應(yīng)級別的物理塊上。如圖4所示,實施例中本步驟具體包括以下子步驟:
(21)讀取數(shù)據(jù)塊中物理頁,判斷物理頁是否為有效頁,若不是則遷移該物理頁到待刪除數(shù)據(jù)塊;若是則進(jìn)入步驟(22);
(22)判斷該物理頁fp屬于[tfp,∞]、[hfp,tfp]或[0,hfp]哪一區(qū)間,并將該物理頁遷移到所屬區(qū)間對應(yīng)的數(shù)據(jù)塊隊列中,若數(shù)據(jù)塊隊列中沒有空閑空間,則從空閑池中獲取一塊空閑數(shù)據(jù)塊掛在在隊列上,再將該物理頁遷移到空閑數(shù)據(jù)塊中;否則直接將該物理頁遷移到空閑數(shù)據(jù)塊中。
(3)管理元數(shù)據(jù):當(dāng)數(shù)據(jù)頁寫入、數(shù)據(jù)頁更新或垃圾回收時更改數(shù)據(jù)所在物理頁的索引次數(shù)和索引信息。
由于固態(tài)存儲設(shè)備的物理特性,文件系統(tǒng)的邏輯地址不能直接計算得到物理地址,需要元數(shù)據(jù)管理模塊對其映射關(guān)系進(jìn)行管理。元數(shù)據(jù)管理模塊包括指紋庫和映射表,以及針對它們的增、刪、查、改操作,如圖5所示為元數(shù)據(jù)的映射表結(jié)構(gòu),邏輯地址通過映射對應(yīng)到一個邏輯頁地址條目,該邏輯頁地址條目包括對應(yīng)的物理頁地址以及狀態(tài);再通過物理頁地址查找到一個物理頁條目,物理頁條目包括指紋、索引次數(shù)和對應(yīng)的邏輯頁地址集合。映射信息等元數(shù)據(jù)管理主要分為添加信息和刪除信息時的操作,具體包括以下步驟:
(31)判斷:判斷若是數(shù)據(jù)頁寫入進(jìn)入步驟(32),若是數(shù)據(jù)頁更新時進(jìn)入步驟(33),若是垃圾回收操作進(jìn)入步驟(34);
(32)寫入數(shù)據(jù)頁:通過去重寫技術(shù),判斷寫入數(shù)據(jù)是否已存在,若不存在,則新建邏輯頁條目和物理頁條目,邏輯頁條目包括新分配的物理頁地址和標(biāo)為有效的狀態(tài),邏輯地址對應(yīng)到新建的邏輯頁條目,邏輯頁條目通過其中的物理頁地址對應(yīng)一個物理頁條目,物理頁條目包括數(shù)據(jù)指紋、置為1的物理頁索引次數(shù)和映射的邏輯地址集合;若存在,則建立邏輯地址到已存在物理頁地址所在邏輯頁條目的對應(yīng)關(guān)系,并將該邏輯地址添加到對應(yīng)物理頁條目的邏輯地址集合中,物理頁索引次數(shù)加1,結(jié)束;
(33)更新數(shù)據(jù)頁:將邏輯地址對應(yīng)的邏輯頁條目狀態(tài)置為無效,并判斷對應(yīng)物理頁條目中物理頁索引用次數(shù)是否為1,若是則將該物理頁條目刪除;否則將邏輯地址從對應(yīng)物理頁條目中邏輯地址集合中刪除,并且物理頁索引次數(shù)減1;進(jìn)入步驟(32);
(34)數(shù)據(jù)塊管理:判斷該數(shù)據(jù)塊中各物理頁是否為有效頁,若是有效頁,則通過物理頁條目中映射的邏輯地址集合,找到對應(yīng)的邏輯地址條目,將它們依次重新對應(yīng)到新遷移后的物理頁地址,再刪除原物理頁條目,并新建遷移后的物理頁條目,直至完成該塊中所有有效頁的遷移操作,再擦除,成為一個空閑塊。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。