一種存儲裝置及存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,特別是指一種能夠提升高速存儲介質(zhì)使用效率的存儲裝置及存儲方法。
【背景技術(shù)】
[0002]大量虛擬機(jī)同時(shí)啟動(dòng)會(huì)給后端存儲帶來巨大I/O (Input/Output,輸入/輸出)壓力,啟動(dòng)過程響應(yīng)極慢,一些數(shù)據(jù)庫業(yè)務(wù)也存在同樣類似的問題,如12306、淘寶網(wǎng)等網(wǎng)站在目標(biāo)時(shí)間點(diǎn),I/O的訪問量會(huì)出現(xiàn)海量增加,大幅增加網(wǎng)頁的響應(yīng)時(shí)間,甚至引起服務(wù)器崩潰。解決上述問題的方法主要是通過SSD(Solid State Drives,固態(tài)硬盤)等高速存儲介質(zhì)作為緩存來加速熱點(diǎn)數(shù)據(jù),即經(jīng)過一段時(shí)間的訪問,對原本存儲在SAS硬盤(SerialAttached SCSI,串行連接SCSI)等低速存儲介質(zhì)中的“冷數(shù)據(jù)”進(jìn)行預(yù)熱,通過記錄全部冷數(shù)據(jù)的被引用次數(shù),將被引用次數(shù)達(dá)到額度的冷數(shù)據(jù)從SAS等低速存儲介質(zhì)中提升至SSD等高速存儲介質(zhì)中,形成“熱數(shù)據(jù)”供I/O訪問,降低后端低速存儲介質(zhì)的I/O壓力,從而對后續(xù)虛擬機(jī)的啟動(dòng)進(jìn)行加速。
[0003]然而,現(xiàn)有技術(shù)對于冷數(shù)據(jù)預(yù)熱需要一定的時(shí)間,其間有業(yè)務(wù)I/O訪問,整體的I/O性能提升較慢;尤其是對于在可預(yù)期的特定時(shí)間點(diǎn),爆炸式出現(xiàn)的大量I/O訪問,如果采用現(xiàn)有技術(shù),則迫于服務(wù)器壓力,無法及時(shí)將預(yù)熱完畢的冷數(shù)據(jù)提升至SSD中,仍然會(huì)造成虛擬機(jī)啟動(dòng)緩慢,影響用戶體驗(yàn)。同時(shí),現(xiàn)有技術(shù)通常僅通過判斷高速存儲介質(zhì)的剩余存儲容量較低時(shí),才會(huì)對其容納的數(shù)據(jù)進(jìn)行降級處理,降低了高速存儲介質(zhì)的使用效率和I/O處理能力。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提出一種能夠提高高速存儲介質(zhì)的使用效率和I/O處理能力的存儲裝置及存儲方法。
[0005]基于上述目的本發(fā)明提供的一種存儲裝置,包括相互連接的高速存儲模塊、低速存儲模塊和緩存處理模塊;所述低速存儲模塊用于存儲冷數(shù)據(jù),所述高速存儲模塊用于存儲熱數(shù)據(jù)。
[0006]所述緩存處理模塊根據(jù)數(shù)據(jù)提升命令,控制所述低速存儲模塊將目標(biāo)冷數(shù)據(jù)發(fā)送到所述高速存儲模塊,提升為目標(biāo)熱數(shù)據(jù),并啟動(dòng)所述目標(biāo)熱數(shù)據(jù)對應(yīng)的老化定時(shí)器;在所述老化定時(shí)器到期后,所述緩存處理模塊獲取所述高速存儲模塊中其他全部熱數(shù)據(jù)的平均引用次數(shù),若所述目標(biāo)熱數(shù)據(jù)的被引用次數(shù)低于所述平均引用次數(shù),則將所述目標(biāo)熱數(shù)據(jù)移出所述高速存儲模塊。
[0007]可選的,所述緩存處理模塊將被移出所述高速存儲模塊的所述目標(biāo)熱數(shù)據(jù),和與其對應(yīng)的目標(biāo)冷數(shù)據(jù)對比,若二者內(nèi)容完全一致,則所述高速存儲模塊刪除被移出的所述目標(biāo)熱數(shù)據(jù),若二者內(nèi)容不同,則所述緩存處理模塊用被移出的所述目標(biāo)熱數(shù)據(jù)替換原本與其對應(yīng)的所述目標(biāo)冷數(shù)據(jù),生成新的冷數(shù)據(jù)并存儲于所述低速存儲模塊中。
[0008]可選的,所述高速存儲模塊為固態(tài)硬盤或使用固態(tài)硬盤組成的存儲陣列;所述低速存儲模塊為普通的硬盤驅(qū)動(dòng)器或使用硬盤驅(qū)動(dòng)器組成的存儲陣列。
[0009]可選的,所述數(shù)據(jù)提升命令包括:
[0010]數(shù)據(jù)原始路徑,其為目標(biāo)冷數(shù)據(jù)所在低速存儲模塊的名稱;數(shù)據(jù)目標(biāo)路徑,其為冷數(shù)據(jù)待提升至的高速存儲模塊的名稱;數(shù)據(jù)起始扇區(qū),其為冷數(shù)據(jù)在低速存儲模塊中的起始位置;數(shù)據(jù)結(jié)束扇區(qū),其為冷數(shù)據(jù)在低速存儲模塊中的結(jié)束位置;數(shù)據(jù)老化時(shí)間,其為所述老化定時(shí)器的到期時(shí)間。
[0011]基于上述目的本發(fā)明提供的一種存儲方法,包括以下步驟:
[0012]緩存處理模塊獲取數(shù)據(jù)提升命令,所述數(shù)據(jù)提升命令包括數(shù)據(jù)老化時(shí)間;
[0013]緩存處理模塊根據(jù)數(shù)據(jù)提升命令,控制低速存儲模塊將目標(biāo)冷數(shù)據(jù)發(fā)送到高速存儲模塊,提升為目標(biāo)熱數(shù)據(jù);
[0014]緩存處理模塊啟動(dòng)所述熱數(shù)據(jù)對應(yīng)的老化定時(shí)器;
[0015]所述老化定時(shí)器經(jīng)歷所述數(shù)據(jù)老化時(shí)間后到期,所述老化定時(shí)器到期后,所述緩存處理模塊判斷所述目標(biāo)熱數(shù)據(jù)的被引用數(shù),若所述目標(biāo)熱數(shù)據(jù)的被引用數(shù)低于其他全部熱數(shù)據(jù)被引用數(shù)的平均值,則將所述熱數(shù)據(jù)移出所述高速存儲模塊。
[0016]可選的,所述數(shù)據(jù)提升命令還包括:
[0017]數(shù)據(jù)原始路徑,冷數(shù)據(jù)所在低速存儲模塊的名稱;數(shù)據(jù)目標(biāo)路徑,冷數(shù)據(jù)待提升至的高速存儲模塊的名稱;數(shù)據(jù)起始扇區(qū),冷數(shù)據(jù)在低速存儲模塊中的起始位置;數(shù)據(jù)結(jié)束扇區(qū),冷數(shù)據(jù)在低速存儲模塊中的結(jié)束位置。
[0018]可選的,所述緩存處理模塊將被移出所述高速存儲模塊的所述目標(biāo)熱數(shù)據(jù),和與其對應(yīng)的所述目標(biāo)冷數(shù)據(jù)對比,若二者內(nèi)容完全一致,則所述高速存儲模塊刪除被移出的所述目標(biāo)熱數(shù)據(jù),若二者內(nèi)容不同,則所述高速存儲模塊用被移出的所述目標(biāo)熱數(shù)據(jù)替換原本與其對應(yīng)的所述目標(biāo)冷數(shù)據(jù),生成新的冷數(shù)據(jù)并存儲于所述低速存儲模塊中。
[0019]可選的,當(dāng)高速存儲模塊中的數(shù)據(jù)總量大于或等于容量閾值時(shí),高速存儲模塊對其容納的全部熱數(shù)據(jù)按照被引用數(shù)升序進(jìn)行排序,并將老化計(jì)時(shí)器已經(jīng)到期的、被引用數(shù)最少的且總?cè)萘坎坏陀诔C正閾值的一個(gè)或多個(gè)熱數(shù)據(jù)移出高速存儲模塊。
[0020]可選的,所述容量閾值為所述高速存儲模塊總?cè)萘康?0%至90%,所述矯正閾值為所述高速存儲模塊總?cè)萘康?0%至20%。
[0021]可選的,還包括以下步驟:
[0022]緩存處理模塊獲取低速存儲模塊中的冷數(shù)據(jù)的被引用次數(shù),將被引用次數(shù)達(dá)到預(yù)設(shè)閾值的冷數(shù)據(jù)發(fā)送至高速存儲模塊,提升為熱數(shù)據(jù)。
[0023]從上面所述可以看出,本發(fā)明提供的一種存儲裝置及存儲方法有效地提高了現(xiàn)有高速存儲介質(zhì)的使用效率和I/o處理能力。
【附圖說明】
[0024]圖1為本發(fā)明提供的一種存儲裝置的實(shí)施例的整體示意圖;
[0025]圖2為本發(fā)明提供的一種存儲方法的實(shí)施例的流程示意圖。
【具體實(shí)施方式】
[0026]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
[0027]首先介紹本發(fā)明提供的一種存儲裝置。
[0028]圖1為本發(fā)明提供的一種存儲裝置的實(shí)施例的整體示意圖。如圖所示,本發(fā)明提供的一種存儲裝置包括相互連接的高速存儲模塊1、低速存儲模塊2和緩存處理模塊3 ;所述低速存儲模塊2用于存儲冷數(shù)據(jù),所述高速存儲模塊I用于存儲熱數(shù)據(jù);
[0029]所述緩存處理模塊3根據(jù)數(shù)據(jù)提升命令,控制所述低速存儲模塊2將目標(biāo)冷數(shù)據(jù)發(fā)送到所述高速存儲模塊1,提升為目標(biāo)熱數(shù)據(jù),并啟動(dòng)所述目標(biāo)熱數(shù)據(jù)對應(yīng)的老化定時(shí)器;在所述老化定時(shí)器到期后,所述緩存處理模塊3獲取所述高速存儲模塊I中其他全部熱數(shù)據(jù)的平均引用次數(shù),若所述目標(biāo)熱數(shù)據(jù)的被引用次數(shù)低于所述平均引用次數(shù),則將所述目標(biāo)熱數(shù)據(jù)移出所述高速存儲模塊I。
[0030]可選的,所述緩存處理模塊3將被移出所述高速存儲模塊I的所述目標(biāo)熱數(shù)據(jù),和與其對應(yīng)的目標(biāo)冷數(shù)據(jù)對比,若二者內(nèi)容完全一致,則所述高速存儲模塊I刪除被移出的所述目標(biāo)熱數(shù)據(jù),若二者內(nèi)容不同,則所述緩存處理模塊3用被移出的所述目標(biāo)熱數(shù)據(jù)替換原本與其對應(yīng)的所述目標(biāo)冷數(shù)據(jù),生成新的冷數(shù)據(jù)并存儲于所述低速存儲模塊2中。
[0031]可選的,所述高速存儲模塊I為固態(tài)硬盤或使用固態(tài)硬盤組成的存儲陣列;所述低速存儲模塊2為普通的硬盤驅(qū)動(dòng)器(HDD,如SAS/SATA硬盤等)或使用硬盤驅(qū)動(dòng)器組成的存儲陣列。
[0032]需要說明,在本申請文件中,“被引用次數(shù)” “平均被引用次數(shù)”等均表示一定時(shí)間內(nèi)的被引用