Dual-pool算法是比較經(jīng)典的磨損平衡算法,目的是為了延長(zhǎng)閃存的使用壽命。它實(shí)現(xiàn)了兩方面解決:第一是存儲(chǔ)冷數(shù)據(jù)來防止塊被磨損,因?yàn)轭l繁更新的熱數(shù)據(jù)會(huì)是磨損增加;第二是直到磨損平衡生效時(shí),先不要去管這些被處理的塊。
基本原則:
閃存塊的磨損不均勻是由于workload的空間局部性導(dǎo)致的。把page分為三類:free page,表示可以寫入數(shù)據(jù)的頁(yè),live page 表示有效頁(yè),dead page 表示無效頁(yè)。因?yàn)槔鋽?shù)據(jù)能夠較穩(wěn)定的保存在塊中的有效頁(yè)上,而熱數(shù)據(jù)更新的快,不斷地更新會(huì)使原位的有效頁(yè)變?yōu)闊o效頁(yè),就是會(huì)留下很多的 dead pages在塊中,在做垃圾回收的時(shí)候傾向于回收這些dead page多的塊,所以總是從那些存儲(chǔ)熱數(shù)據(jù)較多的塊中回收free page。寫入熱數(shù)據(jù)比寫入冷數(shù)據(jù)發(fā)生的頻率高,所以把這些熱數(shù)據(jù)存在特定的塊里面。但是這樣的現(xiàn)象會(huì)逐漸使得磨損的塊出現(xiàn)失衡。
Young block & Old block:前者是擦除次數(shù)少的年輕的塊,后者是擦除次數(shù)多的年老的塊,雙池算法核心實(shí)現(xiàn)下面的操作:
Cold-data migration:把冷數(shù)據(jù)從young blocks 遷移到old blocks
Hot-cold regulation:發(fā)生冷數(shù)據(jù)遷移后,涉及到的塊,要防止老的塊被擦除,還要開始擦除年輕的塊。
從邏輯上把閃存塊分為兩組:熱池(hot pool)專門來存儲(chǔ)熱數(shù)據(jù)的塊和冷池(cold pool)專門來存儲(chǔ)冷數(shù)據(jù)的塊。在熱池中設(shè)置隊(duì)列
Dirty Swap(DS)操作實(shí)現(xiàn)了上述的Cold-data migration和Hot-cold regulation,每次完成一個(gè)寫入操作的時(shí)候,要做一步檢查,是否該熱池的熱數(shù)據(jù)塊和冷池中的冷數(shù)據(jù)塊的擦除周期差異大于閾值,過程如下:
如果滿足以上條件,執(zhí)行如下步驟:
Adaptive Pool Resizing:這部分是處理空間局部性的動(dòng)態(tài)變化,對(duì)上面的基礎(chǔ)概念進(jìn)行擴(kuò)充。如果訪問模式一直不變化,上面的執(zhí)行結(jié)果會(huì)帶來很好的效果。但是在實(shí)際的workload中,很難實(shí)現(xiàn)。冷熱數(shù)據(jù)的訪問不是一成不變的,僅僅使用DS是不行的??紤]到一個(gè)塊剛剛從冷池中遷移到熱池中,并不再存儲(chǔ)冷數(shù)據(jù),假設(shè)塊中的熱數(shù)據(jù)恰巧變冷,隨著這個(gè)塊不再被擦除磨損,這個(gè)塊就在熱池中變得“沉默”,因?yàn)榇鎯?chǔ)冷數(shù)據(jù)使它的擦除周期變得相對(duì)較小,這個(gè)塊又開始不再被磨損擦除。所以,為了改進(jìn),定義了一種新的操作在熱池中:
考慮到有DS遷移至冷池中的塊,這個(gè)塊具有大的擦除周期,而有效擦除周期為0,DS把冷數(shù)據(jù)放置在塊里停止它被磨損擦除。一方面,如果冷數(shù)據(jù)一直保持,那么這個(gè)塊的有效擦除周期值就會(huì)維持在低值。另一方面,如果這個(gè)塊不再存儲(chǔ)冷數(shù)據(jù),那么有效擦除周期就會(huì)增長(zhǎng)的很快。通過引入的有效擦除周期的檢驗(yàn),這兩種情況能被明顯區(qū)分。
所以在完成一次寫入操作時(shí),先進(jìn)行DS操作,然后執(zhí)行CPR,最后執(zhí)行HPR。
對(duì)于超大規(guī)模閃存存儲(chǔ)系統(tǒng)而言, 這一提出的算法為磨損均衡問題提供了非常有力的解決。
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4314瀏覽量
85846 -
固態(tài)硬盤
+關(guān)注
關(guān)注
12文章
1463瀏覽量
57365
原文標(biāo)題:一文看懂固態(tài)硬盤使用壽命問題
文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論