本發(fā)明涉及存儲技術領域,特別是涉及一種混合介質的存儲系統(tǒng)的存儲控制方法及裝置。
背景技術:
近年來固態(tài)硬盤(ssd)已經成為固態(tài)存儲技術中的領先技術,相對傳統(tǒng)的機械硬盤(hdd),它有著低功耗、低噪音、讀寫速度快、抗振動等諸多優(yōu)點。但是最常見的ssd都是基于nand閃存芯片設計的,由于閃存介質具有寫前擦除的特點,即閃存芯片不能原位更新,且每塊閃存芯片的擦除次數(shù)是有限的,所以閃存的寫次數(shù)決定了閃存的壽命,對于需要頻繁更新的業(yè)務,必然帶來過多的擦除操作,從而大大降低了ssd的使用壽命。另一方面,盡管ssd發(fā)展迅速,但是相比傳統(tǒng)的磁盤,單位價格仍然很高,單個ssd存儲空間相對較小,對于現(xiàn)今信息爆炸的大數(shù)據(jù)難以大規(guī)模的使用。所以,盡管hdd的性能比ssd差不少,但是它在價格和存儲空間上具有明顯的優(yōu)勢,目前主流的存儲系統(tǒng)仍然是以基于hdd為主,以ssd為輔。
由于各自性能上的優(yōu)缺點,因此在具體實施中,數(shù)據(jù)如何合理存儲在混合存儲系統(tǒng)中是非常重要的問題?,F(xiàn)有技術中,通常是根據(jù)數(shù)據(jù)的熱度狀態(tài)(訪問的頻率)確定數(shù)據(jù)是存儲在ssd中還是hdd中。
因此,單一的判斷標準不僅導致無法合理利用ssd和hdd的優(yōu)點,而且更重要的是,當數(shù)據(jù)的熱度狀態(tài)為熱狀態(tài)時,被存儲在ssd中,但是該數(shù)據(jù)的訪問操作為寫操作,造成ssd的壽命減少。另外,單一的判斷標準還有可能造成數(shù)據(jù)頻繁的遷移。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種混合介質的存儲系統(tǒng)的存儲控制方法及裝置,用于合理利用存儲系統(tǒng)中的ssd和hdd,不僅能夠提高ssd的利用率和延長壽命,而且能夠充分發(fā)揮hdd成本的優(yōu)勢。
為解決上述技術問題,本發(fā)明提供一種混合介質的存儲系統(tǒng)的存儲控制方法,包括:
當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄所述頁面的初始熱度狀態(tài)和初始訪問時間;
實時統(tǒng)計所述頁面在所述緩沖區(qū)的i/o訪問操作類型和更新所述頁面的熱度狀態(tài);
判斷所述頁面是否需要置換出所述緩沖區(qū);
如果是,則根據(jù)所述i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定所述頁面的存儲位置;
其中,所述存儲位置為ssd或hdd。
優(yōu)選地,所述根據(jù)所述i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定所述頁面的存儲位置具體包括:
根據(jù)所述i/o訪問操作類型的統(tǒng)計結果判斷所述頁面的存儲傾向是否為讀傾向;
如果不是讀傾向,則確定所述頁面的存儲位置為所述hdd;
如果是讀傾向,則判斷更新后的熱度狀態(tài)是否為熱狀態(tài);
如果是熱狀態(tài),則確定所述頁面的存儲位置為所述ssd;
如果不是熱狀態(tài),則確定所述頁面的存儲位置為所述hdd。
優(yōu)選地,所述根據(jù)所述i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定所述頁面的存儲位置具體包括:
判斷更新后的熱度狀態(tài)是否為熱狀態(tài);
如果不是熱狀態(tài),則確定所述頁面的存儲位置為所述hdd;
如果是熱狀態(tài),則根據(jù)所述i/o訪問操作類型的統(tǒng)計結果判斷所述頁面的存儲傾向是否為讀傾向;
如果是讀傾向,則確定所述頁面的存儲位置為所述ssd;
如果不是讀傾向,則確定所述頁面的存儲位置為所述hdd。
優(yōu)選地,還包括:將所述頁面按照lru算法在所述緩沖區(qū)進行排列。
優(yōu)選地,所述判斷所述頁面是否需要置換出所述緩沖區(qū)具體包括:
判斷所述頁面是否位于所述緩沖區(qū)的隊尾;
如果是,則當檢測到新的讀操作請求時,確定所述頁面需要置換出所述緩沖區(qū)。
優(yōu)選地,所述更新所述頁面的熱度狀態(tài)具體包括:
獲取所述頁面在所述緩沖區(qū)中的各i/o訪問操作的時間間隔;
判斷所述初始熱度狀態(tài)是否為熱狀態(tài);
如果是熱狀態(tài),則判斷所述時間間隔是否滿足連續(xù)兩次均大于閾值;
如果是,則將所述頁面的熱度狀態(tài)更新為冷狀態(tài);否則,保持所述頁面的熱度狀態(tài)為熱狀態(tài);
如果不是熱狀態(tài),則判斷所述時間間隔是否滿足連續(xù)兩次均小于閾值;
如果是,則將所述頁面的熱度狀態(tài)更新為熱狀態(tài);否則,保持所述頁面的熱度狀態(tài)為冷狀態(tài)。
優(yōu)選地,還包括:將所述ssd中的各數(shù)據(jù)塊按照lru算法進行排列;
當所述ssd存滿時,按照排列順序將排列在隊尾的數(shù)據(jù)塊遷移至所述hdd。
優(yōu)選地,還包括:建立所述ssd和所述hdd中的各頁面的索引,其中所述索引包括頁面名稱和頁面地址。
優(yōu)選地,還包括:當所述ssd或所述hdd中存在頁面遷移時,更新各自索引中的頁面地址。
為解決上述技術問題,本發(fā)明還提供一種混合介質的存儲系統(tǒng)的存儲控制裝置,包括:
熱度狀態(tài)記錄模塊,用于當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄所述頁面的初始熱度狀態(tài)和初始訪問時間;
統(tǒng)計模塊,用于實時統(tǒng)計所述頁面在所述緩沖區(qū)的i/o訪問操作類型和更新所述頁面的熱度狀態(tài);
判斷模塊,用于判斷所述頁面是否需要置換出所述緩沖區(qū),如果是,則觸發(fā)確定模塊;
所述確定模塊,用于根據(jù)所述i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定所述頁面的存儲位置;
其中,所述存儲位置為ssd或hdd。
本發(fā)明所提供的混合介質的存儲系統(tǒng)的存儲控制方法,包括:當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄頁面的初始熱度狀態(tài)和初始訪問時間;實時統(tǒng)計頁面在緩沖區(qū)的i/o訪問操作類型和更新頁面的熱度狀態(tài);判斷頁面是否需要置換出緩沖區(qū);如果是,則根據(jù)i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置。由此可見,頁面進入緩沖區(qū)后,實時統(tǒng)計i/o訪問操作類型,并更新頁面的熱度狀態(tài),從而精確的掌握對頁面的操作,當頁面從緩沖區(qū)置換出時,再根據(jù)統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置,因此,本方法能夠合理利用存儲系統(tǒng)中的ssd和hdd,不僅能夠提高ssd的利用率和延長壽命,而且能夠充分發(fā)揮hdd成本的優(yōu)勢。此外,本發(fā)明所提供的混合介質的存儲系統(tǒng)的存儲控制裝置,亦具有上述效果。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種混合介質的存儲系統(tǒng)的存儲控制方法的流程圖;
圖2為本發(fā)明實施例提供的一種混合介質的存儲系統(tǒng)的存儲示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實施例,都屬于本發(fā)明保護范圍。
本發(fā)明的核心是提供一種混合介質的存儲系統(tǒng)的存儲控制方法及裝置。
為了使本技術領域的人員更好地理解本發(fā)明方案,下面結合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例提供的一種混合介質的存儲系統(tǒng)的存儲控制方法的流程圖。如圖1所示,混合介質的存儲系統(tǒng)的存儲控制方法包括:
s10:當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄頁面的初始熱度狀態(tài)和初始訪問時間。
s11:實時統(tǒng)計頁面在緩沖區(qū)的i/o訪問操作類型和更新頁面的熱度狀態(tài)。
s12:判斷頁面是否需要置換出緩沖區(qū),如果是,則進入步驟s13。
s13:根據(jù)i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置。其中,存儲位置為ssd或hdd。
圖2為本發(fā)明實施例提供的一種混合介質的存儲系統(tǒng)的存儲示意圖。其中虛線框中為本發(fā)明提供的一種混合介質的存儲系統(tǒng)的存儲控制裝置結構圖。混合介質的存儲系統(tǒng)的存儲控制裝置包括熱度狀態(tài)記錄模塊10、統(tǒng)計模塊11、判斷模塊12和確定模塊13。
需要說明的是,本發(fā)明中的頁面其實也是一種數(shù)據(jù),屬于存儲數(shù)據(jù)的小單元。圖2中的箭頭方向為頁面的流向,小正方形代表頁面,較小長方形為數(shù)據(jù)塊(block),根據(jù)閃存的物理結構,將64個頁面組成一個數(shù)據(jù)塊。在緩沖區(qū)中,各頁面按照一定順序排列,例如各頁面以lru算法進行排列,剛進入緩沖區(qū)的頁面置于lru的隊頭,排在隊尾的頁面則即將被置換出。
可以理解的是,頁面可以是從ssd中被讀取到緩沖區(qū),也可能是從hdd中被讀取到緩沖區(qū)。當一個頁面被讀取到緩沖區(qū)時,熱度狀態(tài)記錄模塊10首先記錄該頁面的初始熱度狀態(tài)和初始訪問時間。
在頁面進入緩沖區(qū)后會被i/o訪問操作,而統(tǒng)計模塊11需要實時統(tǒng)計每次操作的類型,即i/o訪問操作類型。需要說明的是,i/o訪問操作類型為讀操作或寫操作。由于頁面進入緩沖區(qū)后會不定時的被訪問,因此,還需要不斷更新頁面的熱度狀態(tài)。這里的熱度狀態(tài)包含熱狀態(tài)和冷狀態(tài),是衡量一個頁面被訪問的頻率。熱度狀態(tài)與i/o訪問操作類型沒有關系,但是與i/o訪問操作的頻率或次數(shù)有關系。
由于緩沖區(qū)不是只有這一個頁面,而是有多個頁面,并且隨著讀操作請求的不斷產生,緩沖區(qū)中的頁面會不斷增加,當增加到緩沖區(qū)的最大容量時,則就會有頁面需要置換出來,而置換出來的頁面就會面臨一個存儲位置選擇的問題。
當一個頁面從緩沖區(qū)置換出來時,判斷模塊12會跟據(jù)統(tǒng)計結果和更新后的熱度狀態(tài)兩個參數(shù)確定這個頁面的存儲位置??梢岳斫獾氖?,如果一個頁面更新后的熱度狀態(tài)為熱狀態(tài),但是對應的i/o訪問操作類型均為寫操作的話,則按照現(xiàn)有技術那么的確定方法,這個頁面就會被放入ssd中,很顯然,此方法容易造成ssd壽命減少。而通過本方法的話,不僅要考慮熱度狀態(tài),而且還需要考慮i/o訪問操作類型的統(tǒng)計結果??梢岳斫獾氖牵y(tǒng)計結果中會包含兩個對象,一個寫操作的次數(shù),另一個是讀操作的次數(shù),如果寫操縱次數(shù)大于讀操作次數(shù),則說明這個頁面的存儲傾向就是寫傾向,相反,則為讀傾向。同時考慮上述兩個參數(shù)可以更好的利用價格較高的ssd,能夠充分發(fā)揮ssd的優(yōu)勢。
本實施例提供的混合介質的存儲系統(tǒng)的存儲控制方法,包括:當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄頁面的初始熱度狀態(tài)和初始訪問時間;實時統(tǒng)計頁面在緩沖區(qū)的i/o訪問操作類型和更新頁面的熱度狀態(tài);判斷頁面是否需要置換出緩沖區(qū);如果是,則根據(jù)i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置。由此可見,頁面進入緩沖區(qū)后,實時統(tǒng)計i/o訪問操作類型,并更新頁面的熱度狀態(tài),從而精確的掌握對頁面的操作,當頁面從緩沖區(qū)置換出時,再根據(jù)統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置,因此,本方法能夠合理利用存儲系統(tǒng)中的ssd和hdd,不僅能夠提高ssd的利用率和延長壽命,而且能夠充分發(fā)揮hdd成本的優(yōu)勢。
在上述實施例中,以所述i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置有兩種不同的方式,可以是先進行存儲傾向的判斷,再進行熱度狀態(tài)的判斷;或者先進行熱度狀態(tài)的判斷,在進行存儲傾向的判斷。
1)作為優(yōu)選地實施方式,步驟s13具體包括:
根據(jù)i/o訪問操作類型的統(tǒng)計結果判斷頁面的存儲傾向是否為讀傾向;
如果不是讀傾向,則確定頁面的存儲位置為hdd;
如果是讀傾向,則判斷更新后的熱度狀態(tài)是否為熱狀態(tài);
如果是熱狀態(tài),則確定頁面的存儲位置為ssd;
如果不是熱狀態(tài),則確定頁面的存儲位置為hdd。
2)作為優(yōu)選地實施方式,根據(jù)i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置具體包括:
判斷更新后的熱度狀態(tài)是否為熱狀態(tài);
如果不是熱狀態(tài),則確定頁面的存儲位置為hdd;
如果是熱狀態(tài),則根據(jù)i/o訪問操作類型的統(tǒng)計結果判斷頁面的存儲傾向是否為讀傾向;
如果是讀傾向,則確定頁面的存儲位置為ssd;
如果不是讀傾向,則確定頁面的存儲位置為hdd。
通過上述兩種方法都能夠將熱狀態(tài)且讀傾向的頁面存儲至ssd,而將冷狀態(tài)或寫傾向的頁面存儲至hdd。
在上述實施例的基礎上,還包括:將頁面按照lru算法在緩沖區(qū)進行排列。
如果不對緩存區(qū)的頁面進行排序的話,則當緩沖區(qū)存滿時,可能會將剛讀入的頁面被置換出來。為了避免這種情況的發(fā)生,本實施例中,采用lru算法,即最近最少使用算法進行排列,當緩沖區(qū)占滿后,則排在對尾的頁面會被置換出來。
在上述實施例的基礎上,判斷頁面是否需要置換出緩沖區(qū)具體包括:
判斷頁面是否位于緩沖區(qū)的隊尾;
如果是,則當檢測到新的讀操作請求時,確定頁面需要置換出緩沖區(qū)。
可以理解的是,頁面進入緩沖區(qū)后,可能1分鐘就會被置換出來,或者1小時才會被置換出來,所以這個時間是無法預知的。由于通過lru算法進行頁面的排序,因此頁面只有被排在對尾且有新的頁面加入到緩沖區(qū)時,這個頁面才會需要置換出。需要說明的是,上述兩個步驟執(zhí)行的前提是緩沖區(qū)已經占滿,否則也不需要將頁面置換出。
在上述實施例的基礎上,作為優(yōu)選的實施方式,更新頁面的熱度狀態(tài)具體包括:
獲取頁面在緩沖區(qū)中的各i/o訪問操作的時間間隔;
判斷初始熱度狀態(tài)是否為熱狀態(tài);
如果是熱狀態(tài),則判斷時間間隔是否滿足連續(xù)兩次均大于閾值;
如果是,則將頁面的熱度狀態(tài)更新為冷狀態(tài);否則,保持頁面的熱度狀態(tài)為熱狀態(tài);
如果不是熱狀態(tài),則判斷時間間隔是否滿足連續(xù)兩次均小于閾值;
如果是,則將頁面的熱度狀態(tài)更新為熱狀態(tài);否則,保持頁面的熱度狀態(tài)為冷狀態(tài)。
在具體實施中,熱度狀態(tài)對于頁面的存儲位置有很大影響,如果熱度狀態(tài)不能合理確定,則會影響頁面的存儲位置,進而影響ssd的利用率。如果偶爾的一次訪問就決定頁面的熱度狀態(tài)的話,則需要頻繁的更改,且會對結果造成誤判。為了避免這種偶然性,本實施例中,以初始熱度狀態(tài)作為參考,只有時間間隔滿足條件才會更新熱度狀態(tài)。這個條件就是:時間間隔連續(xù)兩次均大于閾值。例如一個頁面的i/o訪問操作共4次,閾值為3秒,初始熱度狀態(tài)為熱狀態(tài),第一次的時間間隔為2秒,第二次的時間間隔為2秒,第三次的時間間隔為5秒,第四次的時間間隔為8秒,則對于這個頁面來說,時間間隔滿足連續(xù)兩次均大于閾值(連續(xù)的兩次為第三次和第四次),因此這個頁面的熱度狀態(tài)就會更新為冷狀態(tài),即這個頁面不經常被訪問。需要說明的是,本發(fā)明中,默認從ssd讀出的頁面的初始熱度狀態(tài)為熱狀態(tài),而從hdd讀出的頁面的初始熱度狀態(tài)為冷狀態(tài)。對于頁面由冷狀態(tài)更新為熱狀態(tài)的過程,與上述過程類似,這里不再贅述。
在具體實施中,也可以設置一個中間過渡的狀態(tài),即如果頁面的初始熱度狀態(tài)為熱狀態(tài),第一次的時間間隔大于閾值,則就將該頁面的熱狀態(tài)修改為中間狀態(tài),如果下一次的時間間隔大于閾值,則將中間狀態(tài)修改為冷狀態(tài),即更新后的熱度狀態(tài)為冷狀態(tài);如果下一次的時間間隔不大于閾值,則將中間狀態(tài)更換回上次的熱狀態(tài)??梢岳斫獾氖牵鄬?,對于再下一次的時間間隔來說,初始熱度狀態(tài)分別為冷狀態(tài)或熱狀態(tài)。
在上述實施例的基礎上,作為優(yōu)選的實施方式,還包括:將ssd中的各數(shù)據(jù)塊按照lru算法進行排列;
當ssd存滿時,按照排列順序將排列在隊尾的數(shù)據(jù)塊遷移至hdd。
由于ssd的價格較高,存儲空間是有限的,因此,如果ssd中大量存儲了不經常被讀取的數(shù)據(jù)的話,則容易造成ssd讀取速度快的優(yōu)點不能更好的發(fā)揮出來,浪費ssd的寶貴空間。ssd中包含多個數(shù)據(jù)塊,每個數(shù)據(jù)塊由多個頁面構成,在進行遷移時,以數(shù)據(jù)塊為整體遷移。本實施例中,通過lru算法將ssd中的各數(shù)據(jù)塊進行排列,當ssd存滿時,將排在對尾的數(shù)據(jù)塊遷移至hdd。
在上述實施例的基礎上,作為優(yōu)選的實施方式,還包括:建立ssd和hdd中的各頁面的索引,其中索引包括頁面名稱和頁面地址。
為提高查詢效率,本實施例中為ssd和hdd上的頁面建立索引,當查詢一個頁面時,可以通過索引查找。另外,因ssd上的頁面遠少于hdd,且ssd的讀速度較快,因此在查詢時,可以優(yōu)先查詢ssd對應的索引,如查不到,再到hdd對應的索引上查找。
在上述實施例的基礎上,作為優(yōu)選的實施方式,還包括:當ssd或hdd中存在頁面遷移時,更新各自索引中的頁面地址。
在具體實施中,存在頁面在ssd和hdd之間遷移,當ssd中存在頁面遷移時,刪除ssd對應的索引中的地址,并更新hdd對應的索引中的頁面地址;當hdd中存在頁面遷移時,刪除hdd對應的索引中的地址,并更新ssd對應的索引中的頁面地址。
在上述實施例中,詳細描述了混合介質的存儲系統(tǒng)的存儲控制方法,由于裝置部分的實施例與方法部分的實施例相互對應,因此裝置部分的實施例請參見方法部分的實施例的描述,這里暫不贅述。如圖2所示,混合介質的存儲系統(tǒng)的存儲控制裝置,包括:
熱度狀態(tài)記錄模塊10,用于當檢測到將頁面讀取至緩沖區(qū)的讀操作請求時,記錄頁面的初始熱度狀態(tài)和初始訪問時間;
統(tǒng)計模塊11,用于實時統(tǒng)計頁面在緩沖區(qū)的i/o訪問操作類型和更新頁面的熱度狀態(tài);
判斷模塊12,用于判斷頁面是否需要置換出緩沖區(qū),如果是,則觸發(fā)確定模塊13;
確定模塊13,用于根據(jù)i/o訪問操作類型的統(tǒng)計結果和更新后的熱度狀態(tài)確定頁面的存儲位置;
其中,存儲位置為ssd或hdd。
以上對本發(fā)明所提供的混合介質的存儲系統(tǒng)的存儲控制方法及裝置進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權利要求的保護范圍內。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。