用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法和裝置制造方法
【專(zhuān)利摘要】根據(jù)本發(fā)明實(shí)施例的在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中訪問(wèn)數(shù)據(jù)的方法,所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和至少分為副本區(qū)和非副本區(qū)的SSD,該方法包括:接收針對(duì)數(shù)據(jù)的訪問(wèn)請(qǐng)求;判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD;如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本;如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);以及如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本。根據(jù)本發(fā)明實(shí)施例的方案提高了對(duì)SSD的使用效率。
【專(zhuān)利說(shuō)明】用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法和裝置
?
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù),更具體地說(shuō),涉及用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法和設(shè)備。
?
【背景技術(shù)】
[0002]在一些計(jì)算機(jī)系統(tǒng)中,需要頻繁地從數(shù)據(jù)存儲(chǔ)子系統(tǒng)讀取數(shù)據(jù),或者向數(shù)據(jù)存儲(chǔ)子系統(tǒng)寫(xiě)入數(shù)據(jù)。相應(yīng)地,數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)1速度是制約系統(tǒng)性能的主要瓶頸之一。典型的數(shù)據(jù)存儲(chǔ)子系統(tǒng)包含基于磁盤(pán)(magnetic disk)技術(shù)的硬盤(pán)驅(qū)動(dòng)器(Hard DiskDrive, HDD)。HDD能夠支持的數(shù)據(jù)1速度受到磁片旋轉(zhuǎn)和磁頭移動(dòng)等機(jī)械操作的速度的制約。
[0003]固態(tài)盤(pán)(Solid State Disk, SSD)是基于閃存技術(shù)的存儲(chǔ)介質(zhì)。由于避免了磁片旋轉(zhuǎn)和磁頭移動(dòng)等機(jī)械操作,SSD的數(shù)據(jù)1速度遠(yuǎn)遠(yuǎn)高于HDD的數(shù)據(jù)1速度。然而,SSD的成本也高于HDD。因此,SSD需要與磁盤(pán)結(jié)合起來(lái)形成數(shù)據(jù)存儲(chǔ)子系統(tǒng)。當(dāng)前使用SSD的方法主要為以下兩種。
[0004]第一種,將SSD作為獨(dú)立的存儲(chǔ)層級(jí)(tier)。典型的存儲(chǔ)層級(jí)包括高速緩存(cache)、內(nèi)存(memory)和HDD。本領(lǐng)域技術(shù)人員可以理解,CPU只能直接訪問(wèn)高速緩存。如果CPU要訪問(wèn)HDD上的數(shù)據(jù),則需要從HDD向內(nèi)存加載該數(shù)據(jù)的副本(copy),該副本稱(chēng)為內(nèi)存副本;然后從內(nèi)存向聞速緩存加載該數(shù)據(jù)的另一副本以便CPU訪問(wèn),所述另一副本可以稱(chēng)為高速緩存副本。可以將更靠近CPU的存儲(chǔ)層級(jí)稱(chēng)為高層級(jí),將更遠(yuǎn)離CPU的存儲(chǔ)層級(jí)稱(chēng)為低層級(jí)。由于數(shù)據(jù)1速度從高層級(jí)到低層級(jí)遞減,因此如果將數(shù)據(jù)副本保留在高層級(jí)中,則可以加快訪問(wèn)該數(shù)據(jù)的速度;但是,由于高層級(jí)的數(shù)據(jù)容量小于低層級(jí),因此在高層級(jí)中只能保留對(duì)應(yīng)于低層級(jí)中的一部分?jǐn)?shù)據(jù)的副本,這就需要在高層級(jí)中設(shè)置控制邏輯來(lái)確定保留哪些副本。
[0005]SSD的數(shù)據(jù)1速度高于磁盤(pán)而低于內(nèi)存,則可以作為存儲(chǔ)層級(jí)中介于內(nèi)存和HDD中間的一級(jí),則在SSD中創(chuàng)建對(duì)應(yīng)于HDD上的一部分?jǐn)?shù)據(jù)的SSD副本。對(duì)于在SSD中具有對(duì)應(yīng)的SSD副本的這一部分?jǐn)?shù)據(jù),由于SSD的數(shù)據(jù)1速度高于HDD,因此其被加載到內(nèi)存的速度得到了提高。但是,由于SSD的數(shù)據(jù)容量小于HDD,因此在SSD中只能保留對(duì)應(yīng)于HDD中的一部分?jǐn)?shù)據(jù)的SSD副本。但是,這種方法不適用于比較關(guān)鍵但使用頻率不高的數(shù)據(jù),例如初始化數(shù)據(jù)或?yàn)?zāi)備數(shù)據(jù)。
[0006]第二種,將SSD作為與磁盤(pán)并列的存儲(chǔ)層級(jí)。一部分?jǐn)?shù)據(jù)存儲(chǔ)在SSD中,并且可以直接從SSD加載到內(nèi)存;另一部分?jǐn)?shù)據(jù)存儲(chǔ)在磁盤(pán)中,并且也可以直接從磁盤(pán)加載到內(nèi)存。也就是說(shuō),SSD中存儲(chǔ)的數(shù)據(jù)并非磁盤(pán)中存儲(chǔ)的數(shù)據(jù)的副本,而是獨(dú)立的數(shù)據(jù)。本領(lǐng)域技術(shù)人員可以理解,存儲(chǔ)在SSD中的應(yīng)該是使用頻率較高的數(shù)據(jù),存儲(chǔ)在磁盤(pán)中的應(yīng)該是使用頻率較低的數(shù)據(jù),從而提高整個(gè)數(shù)據(jù)存儲(chǔ)子系統(tǒng)的性能。但是,如何確定將數(shù)據(jù)存儲(chǔ)在SSD還是HDD,需要系統(tǒng)管理人員根據(jù)經(jīng)驗(yàn)確定。另外,隨著數(shù)據(jù)使用頻率的變化,可以在磁盤(pán)和SSD之間進(jìn)行數(shù)據(jù)遷移,即將使用頻率較高的數(shù)據(jù)從磁盤(pán)遷移到SSD,將使用頻率較低的數(shù)據(jù)從SSD遷移到磁盤(pán)。這種方法面臨另一個(gè)兩難選擇:如果遷移間隔太短,則遷移本身所需要消耗的額外系統(tǒng)資源可能抵消了遷移所能帶來(lái)的數(shù)據(jù)1速度提高;如果遷移間隔太長(zhǎng),則可能無(wú)法及時(shí)反映數(shù)據(jù)使用頻率的變化。
[0007]因此,需要一種新的用于在SSD和HDD的數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)存儲(chǔ)的解決方案。
?
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提供了用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法和系統(tǒng)。
[0009]根據(jù)本發(fā)明實(shí)施例,所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和SSD,其中SSD至少包括副本區(qū)和非副本區(qū),其中所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本,所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的非副本數(shù)據(jù)。
[0010]根據(jù)本發(fā)明實(shí)施例的用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法包括:接收針對(duì)數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)的訪問(wèn)請(qǐng)求;判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD ;如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本;如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);以及如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本,以便基于所述新SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0011]根據(jù)本發(fā)明實(shí)施例的用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的設(shè)備包括:接收裝置,配置為接收針對(duì)數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)的訪問(wèn)請(qǐng)求;數(shù)據(jù)位置判斷裝置,配置為判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD ;非副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);副本判斷裝置,配置為如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本;副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng);以及副本創(chuàng)建裝置,配置為如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本,以便基于所述新SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0012]根據(jù)本發(fā)明實(shí)施例的方法提高了在HDD和SSD混合的數(shù)據(jù)存儲(chǔ)子系統(tǒng)中對(duì)SSD的利用效率。
?
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0013]通過(guò)結(jié)合附圖對(duì)本公開(kāi)示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開(kāi)的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開(kāi)示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
[0014]圖1是適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖;
[0015]圖2是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)層級(jí)結(jié)構(gòu);
[0016]圖3是根據(jù)本發(fā)明實(shí)施例的訪問(wèn)數(shù)據(jù)的方法的流程圖;
[0017]圖4是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)層級(jí)結(jié)構(gòu);
[0018]圖5是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)層級(jí)結(jié)構(gòu);
[0019]圖6是根據(jù)本發(fā)明實(shí)施例的訪問(wèn)數(shù)據(jù)的設(shè)備的方框圖。
?
【具體實(shí)施方式】
[0020]下面將參照附圖更詳細(xì)地描述本公開(kāi)的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開(kāi)的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開(kāi)更加透徹和完整,并且能夠?qū)⒈竟_(kāi)的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0022]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0023]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0024]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0025]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如”C”語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0026]下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0027]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruct1nmeans)的制造品(manufacture)。
[0028]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
[0029]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。
[0030]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0031]總線18表示幾類(lèi)總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、時(shí)頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0032]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0033]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫(xiě)不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱(chēng)為“硬盤(pán)驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如“軟盤(pán)”)讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(pán)(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0034]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0035]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤(pán)、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/o)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
[0036]下面結(jié)合圖2和圖3描述根據(jù)本發(fā)明實(shí)施例的用于數(shù)據(jù)存儲(chǔ)的方法。根據(jù)本發(fā)明實(shí)施例,數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和SSD,SSD被分為副本區(qū)和非副本區(qū)。所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本;所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的數(shù)據(jù)即非副本數(shù)據(jù)。這種層級(jí)結(jié)構(gòu)如圖2所示。圖2中的箭頭表示數(shù)據(jù)讀取的方向。本領(lǐng)域技術(shù)人員可以理解,數(shù)據(jù)寫(xiě)入的方向與數(shù)據(jù)讀取的方向相反。
[0037]在將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)子系統(tǒng)時(shí),可以選擇是存儲(chǔ)到非副本區(qū)還是HDD。例如,在安裝程序時(shí),可以通過(guò)例如指定安裝目錄而選擇將程序安裝到非副本區(qū)還是HDD。此后,也可以根據(jù)數(shù)據(jù)被使用的頻率,將數(shù)據(jù)從非副本區(qū)遷移到HDD,或者從HDD遷移到非副本區(qū)。如何在SSD和HDD之間進(jìn)行數(shù)據(jù)遷移是本領(lǐng)域的常用技術(shù),在此不再贅述。
[0038]步驟301,接收對(duì)所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)進(jìn)行訪問(wèn)的訪問(wèn)請(qǐng)求。
[0039]如前所述,CPU在需要訪問(wèn)數(shù)據(jù)時(shí),會(huì)先檢查高速緩存中是否存在該數(shù)據(jù)的高速緩存副本;如果沒(méi)有,則進(jìn)一步檢查內(nèi)存中是否存在該數(shù)據(jù)的內(nèi)存副本;如果還沒(méi)有,則向數(shù)據(jù)存儲(chǔ)子系統(tǒng)發(fā)出進(jìn)行數(shù)據(jù)訪問(wèn)的訪問(wèn)請(qǐng)求。
[0040]一般來(lái)說(shuō),采用數(shù)據(jù)地址來(lái)作為數(shù)據(jù)的標(biāo)識(shí)符。例如,數(shù)據(jù)存儲(chǔ)子系統(tǒng)常用的尋址方式是邏輯塊地址(Logic Block Address, LBA),即用數(shù)據(jù)存儲(chǔ)子系統(tǒng)中存儲(chǔ)某數(shù)據(jù)的存儲(chǔ)器地址來(lái)指代該數(shù)據(jù)。如果在高速緩存保留有該數(shù)據(jù)的高速緩存副本,則高速緩存記錄該數(shù)據(jù)的LBA;如果在內(nèi)存中保留有該數(shù)據(jù)的內(nèi)存副本,則內(nèi)存記錄該數(shù)據(jù)的LBA。當(dāng)CPU需要該數(shù)據(jù)時(shí),利用所述LBA作為關(guān)鍵詞檢索高速緩存或內(nèi)存,從而確定在告訴緩存或內(nèi)存中是否存在該數(shù)據(jù)的副本。如果高速緩存和內(nèi)存中均不存在該數(shù)據(jù)的副本,則將所述LBA包含在所述訪問(wèn)請(qǐng)求中發(fā)給數(shù)據(jù)存儲(chǔ)子系統(tǒng),以便數(shù)據(jù)存儲(chǔ)子系統(tǒng)根據(jù)所述LBA取出數(shù)據(jù)。
[0041 ] 本領(lǐng)域技術(shù)人員也可以采用其他方式來(lái)對(duì)數(shù)據(jù)進(jìn)行標(biāo)識(shí)。
[0042]步驟302,判斷所述數(shù)據(jù)位于非副本區(qū)還是位于HDD。
[0043]數(shù)據(jù)存儲(chǔ)子系統(tǒng)接收到所述訪問(wèn)請(qǐng)求后,提取數(shù)據(jù)的LBA,從而從數(shù)據(jù)的LBA確定該數(shù)據(jù)位于非副本區(qū)還是位于HDD。
[0044]步驟303,如果所述數(shù)據(jù)位于非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0045]數(shù)據(jù)存儲(chǔ)子系統(tǒng)對(duì)數(shù)據(jù)訪問(wèn)訪問(wèn)請(qǐng)求的響應(yīng)至少應(yīng)包括所述數(shù)據(jù)的內(nèi)容。因此,構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng),即為將數(shù)據(jù)的內(nèi)容包含在響應(yīng)中。如前所述,內(nèi)存根據(jù)該響應(yīng),在內(nèi)存中創(chuàng)建該數(shù)據(jù)的內(nèi)存副本,然后根據(jù)該副本構(gòu)造內(nèi)存對(duì)高速緩存的響應(yīng);高速緩存根據(jù)所述內(nèi)存對(duì)高速緩存的響應(yīng),在高速緩存中創(chuàng)建該數(shù)據(jù)的高速緩存副本,從而使得CPU可以訪問(wèn)該高速緩存副本。
[0046]根據(jù)本發(fā)明實(shí)施例,在數(shù)據(jù)位于非副本區(qū)的情況下,存儲(chǔ)層級(jí)自高至低為:高速緩存、內(nèi)存、和非副本區(qū)。
[0047]步驟304,如果所述數(shù)據(jù)位于HDD,判斷在副本區(qū)是否包括所述數(shù)據(jù)的副本。
[0048]根據(jù)本發(fā)明實(shí)施例,在數(shù)據(jù)位于HDD的情況下,存儲(chǔ)層級(jí)自高至低為:高速緩存、內(nèi)存、副本區(qū)、和HDD。這樣,HDD中的一部分?jǐn)?shù)據(jù)副本區(qū)中具有對(duì)應(yīng)的SSD副本,這一部分?jǐn)?shù)據(jù)的子集可能進(jìn)一步在內(nèi)存中具有對(duì)應(yīng)的內(nèi)存副本,更小的子集可能進(jìn)一步在聞速緩存中具有對(duì)應(yīng)的高速緩存副本。因此,對(duì)于HDD中的某些數(shù)據(jù)而言,可能存在SSD副本而不存在內(nèi)存副本和高速緩存副本。
[0049]類(lèi)似內(nèi)存和高速緩存,如果副本區(qū)中存在某數(shù)據(jù)的SSD副本,則副本區(qū)記錄該數(shù)據(jù)的LBA。這樣就可以快速地判斷副本區(qū)是否存在該數(shù)據(jù)的SSD副本。
[0050]步驟305,如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0051]在所述響應(yīng)中包含數(shù)據(jù)的內(nèi)容。內(nèi)存根據(jù)該響應(yīng),在內(nèi)存中創(chuàng)建該數(shù)據(jù)的內(nèi)存副本,然后根據(jù)該副本構(gòu)造內(nèi)存對(duì)高速緩存的響應(yīng);高速緩存根據(jù)所述內(nèi)存對(duì)高速緩存的響應(yīng),在高速緩存中創(chuàng)建該數(shù)據(jù)的高速緩存副本,從而使得CPU可以訪問(wèn)該高速緩存副本。
[0052]步驟306,如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建該數(shù)據(jù)的副本,以便基于所述副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0053]在副本區(qū)創(chuàng)建該數(shù)據(jù)的SSD副本,相應(yīng)地也在SSD中記錄該數(shù)據(jù)的標(biāo)識(shí),例如LBA。進(jìn)而,可以根據(jù)該SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。內(nèi)存根據(jù)該響應(yīng),在內(nèi)存中創(chuàng)建該數(shù)據(jù)的內(nèi)存副本,然后根據(jù)該副本構(gòu)造內(nèi)存對(duì)高速緩存的響應(yīng);高速緩存根據(jù)所述內(nèi)存對(duì)高速緩存的響應(yīng),在高速緩存中創(chuàng)建該數(shù)據(jù)的高速緩存副本,從而使得CPU可以訪問(wèn)該高速緩存副本。
[0054]本領(lǐng)域技術(shù)人員可以理解,如果數(shù)據(jù)位于HDD中,那么CPU要訪問(wèn)該數(shù)據(jù),通常會(huì)在副本區(qū)、內(nèi)存和高速緩存中均創(chuàng)建該數(shù)據(jù)的副本。如果該數(shù)據(jù)的使用頻率不夠高,那么其在高速緩存、內(nèi)存或副本區(qū)的副本可能被逐出;如果該數(shù)據(jù)的使用頻率足夠高,那么其在高速緩存、內(nèi)存或副本區(qū)的副本可能被保留。
[0055]根據(jù)圖3所示的方法,一部分SSD作為HDD和內(nèi)存之間的存儲(chǔ)層級(jí),另一部分SSD作為獨(dú)立的存儲(chǔ)空間。對(duì)于比較關(guān)鍵但使用頻率不高的數(shù)據(jù),可以在將該數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)子系統(tǒng)時(shí),通過(guò)例如指定存儲(chǔ)目錄而選擇將該數(shù)據(jù)存儲(chǔ)在非副本區(qū)。這樣,就不會(huì)因?yàn)樵摂?shù)據(jù)的使用頻率不高而被遷移到HDD。
[0056]圖3所示的方法也解決了關(guān)于遷移間隔的兩難選擇問(wèn)題。遷移間隔可以設(shè)置得較長(zhǎng),以避免遷移本身所需要消耗的額外系統(tǒng)資源抵消遷移所能帶來(lái)的數(shù)據(jù)1速度提高。在兩次數(shù)據(jù)遷移之間,對(duì)于被存儲(chǔ)到HDD之中的數(shù)據(jù),如果該數(shù)據(jù)被經(jīng)常使用,那么該數(shù)據(jù)的副本將會(huì)被保留在副本區(qū)中,從而CPU對(duì)該數(shù)據(jù)的存取速率也得到了提高。對(duì)于被存儲(chǔ)到HDD之中的數(shù)據(jù),如果該數(shù)據(jù)被經(jīng)常使用,那么該數(shù)據(jù)的副本將會(huì)被保留在副本區(qū)中,從而(PU對(duì)該數(shù)據(jù)的存取速率也得到了提高,從而克服了遷移間隔過(guò)長(zhǎng)帶來(lái)的無(wú)法及時(shí)反映數(shù)據(jù)使用頻率變化的問(wèn)題。
[0057]根據(jù)本發(fā)明實(shí)施例,將SSD存儲(chǔ)空間分配給副本區(qū)和非副本區(qū)的比例是固定的。如果副本區(qū)已經(jīng)全部被占用,那么在步驟306中,可能不存在足夠的副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建新的SSD副本。可以將副本區(qū)中已有的SSD副本進(jìn)行逐出,從而回收副本區(qū)的存儲(chǔ)空間以便創(chuàng)建新的SSD副本。例如,可以將最近不曾被CPU訪問(wèn)過(guò)的數(shù)據(jù)所對(duì)應(yīng)的SSD副本逐出副本區(qū);也可以將最早創(chuàng)建的SSD副本逐出副本區(qū)。如果非副本區(qū)已經(jīng)全部被占用,那么在需要向非副本區(qū)存儲(chǔ)新的數(shù)據(jù)時(shí),則需要將非副本區(qū)已有數(shù)據(jù)中的一部分遷移到HDD中。被遷移的數(shù)據(jù)可以例如是非副本區(qū)中使用頻率最低的數(shù)據(jù)。非副本區(qū)中的數(shù)據(jù),可能由于某些原因而被刪除,例如,卸載之前安裝在非副本區(qū)中的應(yīng)用程序,或者由于數(shù)據(jù)屬性變化而將之前存儲(chǔ)在非副本區(qū)的數(shù)據(jù)遷移到HDD中。那么根據(jù)本實(shí)施例,非副本區(qū)中的數(shù)據(jù)保持空閑狀態(tài),并且可以用于在非副本區(qū)中存儲(chǔ)新的數(shù)據(jù)。
[0058]一般來(lái)說(shuō),非副本區(qū)中的數(shù)據(jù)要么是比較關(guān)鍵的,要么是有較大概率需要經(jīng)常使用的。應(yīng)該盡可能保證非副本區(qū)對(duì)SSD存儲(chǔ)空間的使用。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,將SSD存儲(chǔ)空間分配給副本區(qū)和非副本區(qū)的比例是可變的,并且非副本區(qū)對(duì)SSD存儲(chǔ)空間的使用應(yīng)該比副本區(qū)對(duì)SSD存儲(chǔ)空間的使用具有更高的優(yōu)先級(jí)。
[0059]一方面,并不預(yù)先將一定容量的SSD存儲(chǔ)空間固定地分配給副本區(qū)或非副本區(qū);而是將實(shí)際存儲(chǔ)非副本數(shù)據(jù)的SSD存儲(chǔ)空間作為非副本區(qū),將未被非副本數(shù)據(jù)占用的SSD存儲(chǔ)空間均作為副本區(qū)。本領(lǐng)域技術(shù)人員可以理解,隨著CPU對(duì)位于HDD的數(shù)據(jù)的訪問(wèn),副本區(qū)會(huì)使用全部的未被非副本區(qū)占用的SSD存儲(chǔ)空間。這是因?yàn)?,在SSD中還存在空閑存儲(chǔ)空間時(shí),就會(huì)為CPU訪問(wèn)HDD上的數(shù)據(jù)而創(chuàng)建新的SSD副本,直到SSD中不存在空閑存儲(chǔ)空間來(lái)創(chuàng)建新的SSD副本。
[0060]非副本區(qū)中的數(shù)據(jù),可能由于某些原因而被刪除,例如,卸載之前安裝在非副本區(qū)中的應(yīng)用程序,或者由于數(shù)據(jù)屬性變化而將之前存儲(chǔ)在非副本區(qū)的數(shù)據(jù)遷移到HDD中。根據(jù)上述實(shí)施例,所釋放的SSD存儲(chǔ)空間被用來(lái)創(chuàng)建新的SSD副本。
[0061]另一方面,在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD時(shí),則將一部分之前分配給副本區(qū)的存儲(chǔ)空間重新分配給非副本區(qū)。如前所述,副本區(qū)會(huì)使用全部的未被非副本區(qū)占用的SSD存儲(chǔ)空間。因此,需要從所述副本區(qū)中逐出一部分SSD副本,從而回收副本區(qū)的存儲(chǔ)空間,以便實(shí)現(xiàn)所述重新分配。
[0062]根據(jù)本發(fā)明實(shí)施例,優(yōu)先使用來(lái)自比較穩(wěn)定的SSD塊的副本區(qū)來(lái)創(chuàng)建新的SSD副本。不同的SSD塊可能具有不同的穩(wěn)定性。這里的SSD塊指的是物理上或者邏輯上作為一個(gè)獨(dú)立單元的SSD存儲(chǔ)空間,而穩(wěn)定性指的是向該SSD塊增加新的非副本數(shù)據(jù),或者從該SSD塊減少非副本數(shù)據(jù)的頻率??梢岳斫?,如果頻繁地對(duì)某個(gè)SSD塊增減非副本數(shù)據(jù),則該SSD塊的穩(wěn)定性較低。
[0063]如果不斷有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD,那么按照上面的做法有可能耗盡副本區(qū)的存儲(chǔ)空間,從而使得無(wú)法為存儲(chǔ)在HDD中的數(shù)據(jù)在SSD中創(chuàng)建副本。這樣,如果高速緩存和內(nèi)存中均不存在存儲(chǔ)在HDD中的某數(shù)據(jù)的副本,就只能從HDD中讀取該數(shù)據(jù)。這樣,數(shù)據(jù)存儲(chǔ)子系統(tǒng)的整體性能就會(huì)降低。
[0064]圖4是根據(jù)本發(fā)明另一實(shí)施例的層級(jí)結(jié)構(gòu)。其中,數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和SSD,SSD被分為副本區(qū)和非副本區(qū)。所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本;所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的數(shù)據(jù)即非副本數(shù)據(jù)。與圖2所示的層級(jí)結(jié)構(gòu)相比,圖4所示的層級(jí)結(jié)構(gòu)中,副本區(qū)被進(jìn)一步劃分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū)。其中,專(zhuān)用副本區(qū)的存儲(chǔ)空間不能被重新分配給非副本區(qū),而動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間可以被重新分配給非副本區(qū)。
[0065]在非副本區(qū)對(duì)SSD存儲(chǔ)空間的使用比副本區(qū)對(duì)SSD存儲(chǔ)空間的使用具有更高的優(yōu)先級(jí)的情況下,如果有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD,例如在安裝新的應(yīng)用程序時(shí)指定安裝在非副本區(qū),或者將HDD上的經(jīng)常使用的數(shù)據(jù)遷移到非副本區(qū),那么首先判斷非副本區(qū)是否有足夠的空閑存儲(chǔ)空間來(lái)滿足所述安裝或者遷移的要求。
[0066]如果非副本區(qū)已經(jīng)全部被占用從而無(wú)法滿足所述安裝或者遷移的要求,則將一部分之前分配給副本區(qū)的存儲(chǔ)空間重新分配給非副本區(qū)。由于副本區(qū)進(jìn)一步分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū),并且只有動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間可以被重新分配給非副本區(qū),因此只判斷動(dòng)態(tài)副本區(qū)是否有空閑存儲(chǔ)空間來(lái)滿足所述重新分配的要求。
[0067]如果動(dòng)態(tài)副本區(qū)的空閑存儲(chǔ)空間不能滿足所述重新分配的要求,則從所述動(dòng)態(tài)副本區(qū)中逐出一部分SSD副本,從而回收動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間,以便實(shí)現(xiàn)所述重新分配。如果所回收的動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間依然不能滿足所述重新分配的要求,則發(fā)出消息指示SSD中沒(méi)有足夠的存儲(chǔ)空間存儲(chǔ)所述新的數(shù)據(jù)。在后續(xù)處理中,可以將非副本區(qū)中的一部分?jǐn)?shù)據(jù)遷移到HDD中,從而釋放非副本區(qū)中的存儲(chǔ)空間來(lái)存儲(chǔ)所述新的數(shù)據(jù);也可以放棄將所述新的非副本數(shù)據(jù)存儲(chǔ)到SSD。
[0068]根據(jù)本發(fā)明實(shí)施例,在副本區(qū)分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū)的情況下,當(dāng)所述訪問(wèn)請(qǐng)求所指示的數(shù)據(jù)位于HDD時(shí),首先使用專(zhuān)用副本區(qū)來(lái)創(chuàng)建所述SSD副本;當(dāng)專(zhuān)用副本區(qū)的存儲(chǔ)空間不足以創(chuàng)建新的SSD副本時(shí),才使用動(dòng)態(tài)副本區(qū)來(lái)創(chuàng)建所述SSD副本。
[0069]本領(lǐng)域技術(shù)人員可以理解,雖然只能從動(dòng)態(tài)副本區(qū)逐出SSD副本來(lái)重新分配給非副本區(qū),但是動(dòng)態(tài)副本區(qū)中的SSD副本可能比專(zhuān)用副本區(qū)中的SSD副本更需要保留在SSD中。換句話說(shuō),動(dòng)態(tài)副本區(qū)中的SSD副本可能比專(zhuān)用副本區(qū)中的SSD副本具有更低的逐出指數(shù)(measurement)。
[0070]如前所述,隨著CPU對(duì)位于HDD的數(shù)據(jù)的訪問(wèn),副本區(qū)會(huì)使用全部的未被非副本區(qū)占用的SSD存儲(chǔ)空間。此時(shí)如果CPU需要訪問(wèn)位于HDD的新數(shù)據(jù),則只能從副本區(qū)逐出舊SSD副本以便釋放空間來(lái)為所述新數(shù)據(jù)創(chuàng)建SSD副本。這個(gè)過(guò)程稱(chēng)為副本區(qū)更新。一般來(lái)說(shuō),將動(dòng)態(tài)副本區(qū)和專(zhuān)用副本區(qū)作為整體考慮來(lái)進(jìn)行副本區(qū)更新。根據(jù)本發(fā)明實(shí)施例,為了配合只能將動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間重新分配給非副本區(qū)的設(shè)置,可以在副本區(qū)更新時(shí),優(yōu)先對(duì)專(zhuān)用副本區(qū)的SSD副本進(jìn)行逐出。這樣,在對(duì)動(dòng)態(tài)副本區(qū)中的SSD副本進(jìn)行逐出以釋放存儲(chǔ)空間給非副本區(qū)時(shí),專(zhuān)用副本區(qū)中的SSD副本有較大的概率比動(dòng)態(tài)副本區(qū)中的SSD副本具有更低的逐出指數(shù),從而更需要保留在SSD中。相應(yīng)地,對(duì)動(dòng)態(tài)副本區(qū)中的SSD副本進(jìn)行逐出,就有比較大的概率將具有更高逐出指數(shù)的SSD副本逐出副本區(qū)。
[0071]例如,數(shù)據(jù)存儲(chǔ)子系統(tǒng)可以被配置為在副本區(qū)更新時(shí)將被CPU訪問(wèn)次數(shù)最少的數(shù)據(jù)所對(duì)應(yīng)的SSD副本逐出副本區(qū),即SSD副本的逐出指數(shù)與對(duì)應(yīng)的數(shù)據(jù)被CPU訪問(wèn)的次數(shù)成單調(diào)遞減函數(shù)。那么在計(jì)算動(dòng)態(tài)副本區(qū)中的SSD副本所對(duì)應(yīng)的數(shù)據(jù)的被訪問(wèn)次數(shù)時(shí),可以乘以一個(gè)大于I的權(quán)重。這樣,如果動(dòng)態(tài)副本區(qū)中的第一 SSD副本和專(zhuān)用副本區(qū)中的第二 SSD副本所分別對(duì)應(yīng)的數(shù)據(jù)被CPU訪問(wèn)的次數(shù)一樣多,則會(huì)逐出專(zhuān)用副本區(qū)中的第二 SSD副本。
[0072]又例如,數(shù)據(jù)存儲(chǔ)子系統(tǒng)也可以被配置為在副本區(qū)更新時(shí)將將最早創(chuàng)建的SSD副本逐出副本區(qū),即SSD副本的逐出指數(shù)與該SSD副本在副本區(qū)中的存在時(shí)間成單調(diào)遞增函數(shù)。那么在計(jì)算專(zhuān)用副本區(qū)中的SSD副本的存在時(shí)間時(shí),可以乘以一個(gè)大于I的權(quán)重。這樣,如果動(dòng)態(tài)副本區(qū)中的第三SSD副本和專(zhuān)用副本區(qū)中的第四SSD副本的存在時(shí)間一樣長(zhǎng),則會(huì)逐出專(zhuān)用副本區(qū)中的第四SSD副本。
[0073]根據(jù)本發(fā)明另一個(gè)實(shí)施例,在副本區(qū)更新時(shí),仍然將動(dòng)態(tài)副本區(qū)和專(zhuān)用副本區(qū)作為整體考慮,即在為了副本區(qū)更新而計(jì)算SSD副本的逐出指數(shù)時(shí),并不區(qū)分該SSD副本時(shí)位于動(dòng)態(tài)副本區(qū)還是專(zhuān)用副本區(qū)。在需要將動(dòng)態(tài)副本區(qū)的SSD副本逐出以釋放存儲(chǔ)空間給非副本區(qū)時(shí),首先選出動(dòng)態(tài)副本區(qū)中第一候選SSD副本,從專(zhuān)用副本區(qū)中選出第二候選SSD副本。其中第一候選SSD副本是動(dòng)態(tài)副本區(qū)的所有SSD副本中逐出指數(shù)最高的SSD副本,例如是對(duì)應(yīng)于CPU訪問(wèn)次數(shù)最少的SSD副本,或者是存在時(shí)間最長(zhǎng)的SSD副本;第二候選SSD副本是專(zhuān)用副本區(qū)的所有SSD副本中逐出指數(shù)最高的SSD副本。然后,比較第一候選SSD副本的逐出指數(shù)和第二候選SSD副本的逐出指數(shù)。如果第一候選SSD副本的逐出指數(shù)大于第二候選SSD副本的逐出指數(shù),則直接從動(dòng)態(tài)副本區(qū)中逐出第一候選SSD副本;如果第一候選SSD副本的逐出指數(shù)小于第二候選SSD副本的逐出指數(shù),則從專(zhuān)用副本區(qū)中逐出第二候選SSD副本,然后將第一候選SSD副本從動(dòng)態(tài)副本區(qū)遷移到專(zhuān)用副本區(qū)。
[0074]本領(lǐng)域技術(shù)人員根據(jù)上述描述,設(shè)計(jì)出其他的方案來(lái)使得在從動(dòng)態(tài)副本區(qū)中逐出SSD副本以釋放空間給非副本區(qū)時(shí),保留在副本區(qū)中的SSD副本有較大的概率具有較低的逐出指數(shù)。
[0075]圖5是根據(jù)本發(fā)明再一個(gè)實(shí)施例的層級(jí)結(jié)構(gòu)。其中,數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和SSD, SSD被分為副本區(qū)和非副本區(qū)。所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本;所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的數(shù)據(jù)即非副本數(shù)據(jù)。副本區(qū)被進(jìn)一步劃分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū)。其中,專(zhuān)用副本區(qū)的存儲(chǔ)空間不能被重新分配給非副本區(qū),而動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間可以被重新分配給非副本區(qū)。與圖4所示的層級(jí)結(jié)構(gòu)相比,圖5所示的層級(jí)結(jié)構(gòu)中進(jìn)一步設(shè)置有緩沖區(qū)。
[0076]如前所述,將SSD存儲(chǔ)空間分配給副本區(qū)和非副本區(qū)的比例是可變的,并且非副本區(qū)對(duì)SSD存儲(chǔ)空間的使用應(yīng)該比副本區(qū)對(duì)SSD存儲(chǔ)空間的使用具有更高的優(yōu)先級(jí)。一方面,副本區(qū)可以使用未被非副本區(qū)非副本區(qū)占用的SSD存儲(chǔ)空間,并且副本區(qū)實(shí)際上會(huì)使用全部的未被非副本區(qū)占用的SSD存儲(chǔ)空間。另一方面,在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD時(shí),則將一部分之前分配給副本區(qū)的存儲(chǔ)空間重新分配給非副本區(qū)。這樣,在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD時(shí),必須首先進(jìn)行所述重新分配的步驟,從而可能影響所述新的非副本數(shù)據(jù)的寫(xiě)入速度。
[0077]緩沖區(qū)實(shí)際上是為非副本區(qū)保留的SSD存儲(chǔ)空間,即副本區(qū)只能使用未被非副本區(qū)和緩沖區(qū)占用的SSD存儲(chǔ)空間。緩沖區(qū)與非副本區(qū)的區(qū)別是,非副本區(qū)中存儲(chǔ)有非副本數(shù)據(jù),而緩沖區(qū)是空閑的存儲(chǔ)空間。當(dāng)有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD時(shí),首先使用緩沖區(qū)的存儲(chǔ)空間而不是直接進(jìn)行所述重新分配的步驟。數(shù)據(jù)存儲(chǔ)子系統(tǒng)定期地檢查緩沖區(qū)的容量,如果所述容量低于緩沖區(qū)閾值,則將一部分之前分配給副本區(qū)的存儲(chǔ)空間重新分配給緩沖區(qū)。數(shù)據(jù)存儲(chǔ)子系統(tǒng)也可以響應(yīng)于特定事件,例如接收到檢查緩沖區(qū)容量的命令,而不定期地執(zhí)行所述檢查。這樣,在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD時(shí),不用首先進(jìn)行所述重新分配的步驟,從而避免了影響所述新的非副本數(shù)據(jù)的寫(xiě)入速度。本領(lǐng)域技術(shù)人員可以理解,雖然圖5中同時(shí)示出了非副本區(qū)、緩沖區(qū)、動(dòng)態(tài)副本區(qū)和專(zhuān)用副本區(qū),但是并不表示這些分區(qū)都需要同時(shí)被設(shè)置。例如,可以只設(shè)置非副本區(qū)、緩沖區(qū)和副本區(qū),而不再進(jìn)一步將副本區(qū)劃分為動(dòng)態(tài)副本區(qū)和專(zhuān)用副本區(qū)。
[0078]圖6示出了根據(jù)本發(fā)明實(shí)施例的用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的設(shè)備。所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括HDD和SSD,其中SSD至少包括副本區(qū)和非副本區(qū),其中所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本,所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的非副本數(shù)據(jù)。
[0079]根據(jù)本發(fā)明實(shí)施例的設(shè)備包括:
[0080]接收裝置,配置為接收針對(duì)數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)的訪問(wèn)請(qǐng)求,
[0081]數(shù)據(jù)位置判斷裝置,配置為判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD,
[0082]非副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng),
[0083]副本判斷裝置,配置為如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本,
[0084]副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng),以及
[0085]副本創(chuàng)建裝置,配置為如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本,以便基于所述新SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
[0086]其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),以及所述SSD中未被所述非副本區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
[0087]該設(shè)備進(jìn)一步包括:
[0088]副本區(qū)空間釋放裝置,配置為在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及
[0089]副本區(qū)空間重新分配裝置,配置為將所釋放的存儲(chǔ)空間重新分配給非副本區(qū)以存儲(chǔ)所述新的非副本數(shù)據(jù)。
[0090]其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),所述SSD中一部分空閑存儲(chǔ)空間作為所述緩沖區(qū),以及未被所述非副本區(qū)和所述緩沖區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
[0091]該設(shè)備進(jìn)一步包括:
[0092]緩沖區(qū)存儲(chǔ)裝置,配置為在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,使用所述緩沖區(qū)的存儲(chǔ)空間來(lái)存儲(chǔ)所述新的非副本數(shù)據(jù)。
[0093]所述設(shè)備進(jìn)一步包括:
[0094]緩沖區(qū)容量檢查裝置,配置為檢查緩沖區(qū)的容量,
[0095]副本區(qū)空間釋放裝置,配置為如果所述容量低于緩沖區(qū)閾值,則釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及
[0096]副本區(qū)空間重新分配裝置,配置為將所釋放的存儲(chǔ)空間重新分配給所述緩沖區(qū)。
[0097]其中所述副本區(qū)被進(jìn)一步劃分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū),并且其中副本區(qū)空間釋放裝置包括:
[0098]配置為僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間的裝置。
[0099]其中配置為僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間的裝置包括:
[0100]配置為從動(dòng)態(tài)副本區(qū)中逐出至少一部分SSD副本以釋放存儲(chǔ)空間的裝置,其中保留在所述副本區(qū)中的SSD副本具有較低的逐出指數(shù)。
[0101]其中所述副本創(chuàng)建裝置包括:
[0102]配置為優(yōu)先使用專(zhuān)用副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本的裝置,以及
[0103]配置為在專(zhuān)用副本區(qū)的存儲(chǔ)空間不足以創(chuàng)建所述新SSD副本的情況下,使用動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本的裝置。
[0104]其中所述副本創(chuàng)建裝置包括:
[0105]配置為優(yōu)先使用來(lái)自具有較高穩(wěn)定性的SSD塊的副本區(qū)來(lái)創(chuàng)建所述新SSD副本的裝置,其中所述穩(wěn)定性指的是向該SSD塊增減非副本數(shù)據(jù)的頻率。
[0106]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0107]以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的技術(shù)改進(jìn),或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。
【權(quán)利要求】
1.一種用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的方法,所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括硬盤(pán)驅(qū)動(dòng)器HDD和固態(tài)盤(pán)SSD,其中SSD至少包括副本區(qū)和非副本區(qū),其中所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本,所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的非副本數(shù)據(jù),該方法包括: 接收針對(duì)數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)的訪問(wèn)請(qǐng)求, 判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD, 如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng), 如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本, 如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng),以及 如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本,以便基于所述新SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
2.如權(quán)利要求1所述的方法,其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),以及所述SSD中未被所述非副本區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括: 在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及 將所釋放的存儲(chǔ)空間重新分配給非副本區(qū)以存儲(chǔ)所述新的非副本數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),所述SSD中一部分空閑存儲(chǔ)空間作為所述緩沖區(qū),以及未被所述非副本區(qū)和所述緩沖區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
5.如權(quán)利要求4所述的方法,進(jìn)一步包括: 在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,使用所述緩沖區(qū)的存儲(chǔ)空間來(lái)存儲(chǔ)所述新的非副本數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,進(jìn)一步包括: 檢查緩沖區(qū)的容量, 如果所述容量低于緩沖區(qū)閾值,則釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及 將所釋放的存儲(chǔ)空間重新分配給所述緩沖區(qū)。
7.如權(quán)利要求3或6所述的方法,其中所述副本區(qū)被進(jìn)一步劃分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū),并且其中釋放所述副本區(qū)的至少一部分存儲(chǔ)空間包括: 僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間。
8.如權(quán)利要求7所述的方法,其中僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間包括: 從動(dòng)態(tài)副本區(qū)中逐出至少一部分SSD副本以釋放存儲(chǔ)空間,其中保留在所述副本區(qū)中的SSD副本具有較低的逐出指數(shù)。
9.如權(quán)利要求7所述的方法,其中基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本包括: 優(yōu)先使用專(zhuān)用副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本,以及在專(zhuān)用副本區(qū)的存儲(chǔ)空間不足以創(chuàng)建所述新SSD副本的情況下,使用動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本。
10.如權(quán)利要求1到6中任意一項(xiàng)所述的方法,其中基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本包括: 優(yōu)先使用來(lái)自具有較高穩(wěn)定性的SSD塊的副本區(qū)來(lái)創(chuàng)建所述新SSD副本,其中所述穩(wěn)定性指的是向該SSD塊增減非副本數(shù)據(jù)的頻率。
11.一種用于在數(shù)據(jù)存儲(chǔ)子系統(tǒng)中進(jìn)行數(shù)據(jù)訪問(wèn)的設(shè)備,所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括硬盤(pán)驅(qū)動(dòng)器HDD和固態(tài)盤(pán)SSD,其中SSD至少包括副本區(qū)和非副本區(qū),其中所述副本區(qū)用于存儲(chǔ)HDD中的數(shù)據(jù)的SSD副本,所述非副本區(qū)用于存儲(chǔ)與HDD中的數(shù)據(jù)獨(dú)立的非副本數(shù)據(jù),該設(shè)備包括: 接收裝置,配置為接收針對(duì)數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)的訪問(wèn)請(qǐng)求, 數(shù)據(jù)位置判斷裝置,配置為判斷所述數(shù)據(jù)位于所述非副本區(qū)還是位于HDD, 非副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果所述數(shù)據(jù)位于所述非副本區(qū),基于所述數(shù)據(jù)構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng), 副本判斷裝置,配置為如果所述數(shù)據(jù)位于HDD,進(jìn)一步判斷在所述副本區(qū)是否包括所述數(shù)據(jù)的SSD副本, 副本區(qū)響應(yīng)構(gòu)造裝置,配置為如果在副本區(qū)包括所述數(shù)據(jù)的SSD副本,根據(jù)所述SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng),以及 副本創(chuàng)建裝置,配置為如果在副本區(qū)不包括所述數(shù)據(jù)的SSD副本,基于HDD中的所述數(shù)據(jù)在副本區(qū)創(chuàng)建新SSD副本,以便基于所述新SSD副本構(gòu)造對(duì)所述訪問(wèn)請(qǐng)求的響應(yīng)。
12.如權(quán)利要求11所述的設(shè)備,其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),以及所述SSD中未被所述非副本區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
13.如權(quán)利要求12所述的設(shè)備,該設(shè)備進(jìn)一步包括: 副本區(qū)空間釋放裝置,配置為在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及 副本區(qū)空間重新分配裝置,配置為將所釋放的存儲(chǔ)空間重新分配給非副本區(qū)以存儲(chǔ)所述新的非副本數(shù)據(jù)。
14.如權(quán)利要求11所述的設(shè)備,其中所述SSD中存儲(chǔ)非副本數(shù)據(jù)的存儲(chǔ)空間作為所述非副本區(qū),所述SSD中一部分空閑存儲(chǔ)空間作為所述緩沖區(qū),以及未被所述非副本區(qū)和所述緩沖區(qū)占用的SSD存儲(chǔ)空間作為所述副本區(qū)。
15.如權(quán)利要求14所述的設(shè)備,進(jìn)一步包括: 緩沖區(qū)存儲(chǔ)裝置,配置為在有新的非副本數(shù)據(jù)需要存儲(chǔ)到SSD的情況下,使用所述緩沖區(qū)的存儲(chǔ)空間來(lái)存儲(chǔ)所述新的非副本數(shù)據(jù)。
16.如權(quán)利要求15所述的設(shè)備,進(jìn)一步包括: 緩沖區(qū)容量檢查裝置,配置為檢查緩沖區(qū)的容量, 副本區(qū)空間釋放裝置,配置為如果所述容量低于緩沖區(qū)閾值,則釋放所述副本區(qū)的至少一部分存儲(chǔ)空間,以及 副本區(qū)空間重新分配裝置,配置為將所釋放的存儲(chǔ)空間重新分配給所述緩沖區(qū)。
17.如權(quán)利要求13或16所述的設(shè)備,其中所述副本區(qū)被進(jìn)一步劃分為專(zhuān)用副本區(qū)和動(dòng)態(tài)副本區(qū),并且其中副本區(qū)空間釋放裝置包括: 配置為僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間的裝置。
18.如權(quán)利要求17所述的設(shè)備,其中配置為僅釋放動(dòng)態(tài)副本區(qū)的至少一部分存儲(chǔ)空間的裝置包括: 配置為從動(dòng)態(tài)副本區(qū)中逐出至少一部分SSD副本以釋放存儲(chǔ)空間的裝置,其中保留在所述副本區(qū)中的SSD副本具有較低的逐出指數(shù)。
19.如權(quán)利要求17所述的設(shè)備,其中所述副本創(chuàng)建裝置包括: 配置為優(yōu)先使用專(zhuān)用副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本的裝置,以及配置為在專(zhuān)用副本區(qū)的存儲(chǔ)空間不足以創(chuàng)建所述新SSD副本的情況下,使用動(dòng)態(tài)副本區(qū)的存儲(chǔ)空間來(lái)創(chuàng)建所述新SSD副本的裝置。
20.如權(quán)利要求11到6中任意一項(xiàng)所述的設(shè)備,其中所述副本創(chuàng)建裝置包括: 配置為優(yōu)先使用來(lái)自具有較高穩(wěn)定性的SSD塊的副本區(qū)來(lái)創(chuàng)建所述新SSD副本的裝置,其中所述穩(wěn)定性指的是向該SSD塊增減非副本數(shù)據(jù)的頻率。
【文檔編號(hào)】G06F12/08GK104375961SQ201310357278
【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2013年8月16日 優(yōu)先權(quán)日:2013年8月16日
【發(fā)明者】余江, 蔣紫東, 曾曉華, 廖夢(mèng)澤, 王挺, 史戰(zhàn)偉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司