用于為磁盤(pán)陣列分配緩存的設(shè)備和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及磁盤(pán)陣列的技術(shù)領(lǐng)域,更具體地,涉及一種用于為磁盤(pán)陣列分配緩存 的設(shè)備和方法。
【背景技術(shù)】
[0002] 目前,存儲(chǔ)系統(tǒng)主要使用磁盤(pán)陣列,送些磁盤(pán)陣列中的每個(gè)磁盤(pán)陣列由多個(gè)磁盤(pán) 組成。根據(jù)傳統(tǒng)技術(shù),在對(duì)進(jìn)行讀寫(xiě)(I/O)操作的磁盤(pán)陣列分配用于讀寫(xiě)操作的高速緩沖 存儲(chǔ)器(W下簡(jiǎn)稱(chēng)為"緩存")時(shí),通常是基于靜態(tài)的方法,即在某個(gè)時(shí)間段為某個(gè)磁盤(pán)陣列 分配固定大小的緩存。
[000引近來(lái),由基于NAND閃存的固態(tài)硬盤(pán)(SSD)作為磁盤(pán)來(lái)構(gòu)成磁盤(pán)陣列是一個(gè)重要的 趨勢(shì)。在NAND閃存中,存膽單元被分成頁(yè),由頁(yè)組成塊。NAND型存膽單元的讀、寫(xiě)是W塊和 /或頁(yè)為單位來(lái)進(jìn)行的,并且在將數(shù)據(jù)寫(xiě)入到頁(yè)之前,必須先擦除該頁(yè)中的內(nèi)容。由于送種 特性的存在,導(dǎo)致了傳統(tǒng)的緩存分配技術(shù)對(duì)基于NAND閃存的磁盤(pán)陣列的系統(tǒng)性能產(chǎn)生了 較大影響。
【發(fā)明內(nèi)容】
[0004] 在基于NAND閃存的磁盤(pán)中,在將數(shù)據(jù)寫(xiě)入到頁(yè)之前,必須先擦除該頁(yè)中的內(nèi)容, 送個(gè)過(guò)程稱(chēng)為垃圾回收??紤]到磁盤(pán)進(jìn)行垃圾回收對(duì)該磁盤(pán)的讀寫(xiě)(I/O)操作的性能的影 響,本發(fā)明提出了一種新的分配緩存的機(jī)制,即根據(jù)磁盤(pán)陣列的I/O分布W及磁盤(pán)的垃圾 回收狀態(tài)來(lái)為磁盤(pán)陣列分配緩存。
[0005] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于為磁盤(pán)陣列分配緩存的方法,該方法包 括:監(jiān)視所述磁盤(pán)陣列在預(yù)定時(shí)間周期的I/O分布;確定所述磁盤(pán)陣列的垃圾回收狀態(tài),所 述垃圾回收狀態(tài)包括允許所述磁盤(pán)陣列進(jìn)行垃圾回收W及不允許所述磁盤(pán)陣列進(jìn)行垃圾 回收;根據(jù)所述I/O分布和所述垃圾回收狀態(tài)決定所述緩存的分配。
[0006] 根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于為磁盤(pán)陣列分配緩存的設(shè)備,該設(shè)備 包括;1/0分布監(jiān)視器,被配置為監(jiān)視所述磁盤(pán)陣列在預(yù)定時(shí)間周期的I/O分布;垃圾回收 狀態(tài)判定器,被配置為確定所述磁盤(pán)陣列的垃圾回收狀態(tài),所述垃圾回收狀態(tài)包括允許所 述磁盤(pán)陣列進(jìn)行垃圾回收W及不允許所述磁盤(pán)陣列進(jìn)行垃圾回收;緩存分配控制器,被配 置為根據(jù)所述I/O分布和所述垃圾回收狀態(tài)決定所述緩存的分配。
[0007] 根據(jù)本發(fā)明的再一方面,提供了一種用于為磁盤(pán)陣列分配緩存的計(jì)算機(jī)程序產(chǎn) 品,所述計(jì)算機(jī)程序產(chǎn)品包括可由計(jì)算機(jī)讀取并存儲(chǔ)指令的存儲(chǔ)介質(zhì),所述指令由所述計(jì) 算機(jī)執(zhí)行,W執(zhí)行根據(jù)本發(fā)明的上述方面提供的為磁盤(pán)陣列分配緩存的方法的各步驟。
[0008] 根據(jù)本發(fā)明的設(shè)備和方法,能夠平衡磁盤(pán)陣列忙時(shí)和閑時(shí)的緩存總量,并使得垃 圾回收對(duì)磁盤(pán)I/O的影響最小化。
【附圖說(shuō)明】
[0009] 通過(guò)結(jié)合附圖對(duì)本公開(kāi)示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開(kāi)的上述W及其 它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開(kāi)示例性實(shí)施方式中,相同的參考標(biāo)號(hào) 通常代表相同部件。
[0010] 圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框 圖。
[0011] 圖2是示出根據(jù)本發(fā)明實(shí)施例的用于為磁盤(pán)陣列分配緩存的設(shè)備的示意性方框 圖。
[0012] 圖3是示出根據(jù)本發(fā)明實(shí)施例的垃圾回收狀態(tài)判定器判定垃圾回收狀態(tài)的操作 示例圖。
[0013] 圖4是示出根據(jù)本發(fā)明另一個(gè)實(shí)施例的基于垃圾回收級(jí)別確定垃圾回收狀態(tài)的 示意圖。
[0014] 圖5示出根據(jù)本發(fā)明實(shí)施例的多個(gè)磁盤(pán)陣列在一段時(shí)間內(nèi)的10分布W及垃圾回 收狀態(tài)的示例圖。
[0015] 圖6是示出根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于為磁盤(pán)陣列分配緩存的設(shè)備的示意 性方框圖。
[0016] 圖7是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的垃圾回收控制器和緩存分配控制器之間進(jìn) 行垃圾回收和緩存分配的操作時(shí)序圖。
[0017] 圖8是示出根據(jù)本發(fā)明另一個(gè)實(shí)施例的垃圾回收控制器和緩存分配控制器之間 進(jìn)行垃圾回收和緩存分配的操作時(shí)序圖。
[0018] 圖9是示出根據(jù)本發(fā)明再一個(gè)實(shí)施例的垃圾回收控制器和緩存分配控制器的操 作的圖示。
[0019] 圖10是示出根據(jù)本發(fā)明實(shí)施例的用于為磁盤(pán)陣列分配緩存的方法的流程圖。
【具體實(shí)施方式】
[0020] 下面將參照附圖更詳細(xì)地描述本公開(kāi)的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開(kāi) 的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可W W各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被送里闡述的實(shí)施方 式所限制。相反,提供送些實(shí)施方式是為了使本公開(kāi)更加透徹和完整,并且能夠?qū)⒈竟_(kāi)的 范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021] 圖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)任何限制。
[0022] 如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12 W通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng) /服務(wù)器12的組件可W包括但不限于;一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0023] 總線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總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線W及外圍組件互連(PCI)總線。
[0024] 計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。送些介質(zhì)可W是 任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng) 的和不可移動(dòng)的介質(zhì)。
[00巧]系統(tǒng)存儲(chǔ)器28可W包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存 取存儲(chǔ)器(RAM) 30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可W進(jìn)一步包括其 它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34 可W用于讀寫(xiě)不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱(chēng)為"硬盤(pán)驅(qū)動(dòng)器")。盡管 圖1中未示出,可W提供用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如"軟盤(pán)")讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器, W及對(duì)可移動(dòng)非易失性光盤(pán)(例如CD-ROM, DVD-ROM或者其它光介質(zhì))讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器。 在送些情況下,每個(gè)驅(qū)動(dòng)器可W通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28 可W包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,送些程序模 塊被配置W執(zhí)行本發(fā)明各實(shí)施例的功能。
[0026] 具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可W存儲(chǔ)在例如存儲(chǔ)器 28中,送樣的程序模塊42包括一但不限于一操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它 程序模塊W及程序數(shù)據(jù),送些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程 序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0027] 計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可W與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤(pán)、指向設(shè)備、 顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶(hù)能與該計(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)器等等)通信。送種通信可W通過(guò)輸入/輸出(I/O)接 口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可W通過(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)明白,盡管圖中未示 出,可W結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于;微代 碼、設(shè)備驅(qū)動(dòng)器、兀余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器W及數(shù)據(jù)備份存 儲(chǔ)系統(tǒng)等。
[002引根據(jù)本發(fā)明的實(shí)施例,在存儲(chǔ)系統(tǒng)的磁盤(pán)陣列中,緩存的分配可W基于I/O密度 分布模型W及磁盤(pán)陣列的垃圾回收狀態(tài)進(jìn)行動(dòng)態(tài)調(diào)整??傮w來(lái)說(shuō),本發(fā)明的緩存分配遵循 W下Η個(gè)方面:
[0029] 1、磁盤(pán)陣列達(dá)到的I/O密度越高,需要給此磁盤(pán)陣列分配的緩存越多;
[0030] 2、一旦允許磁盤(pán)陣列進(jìn)行垃圾回收,需要增加此磁盤(pán)陣列的緩存分配;
[0031] 3、基于每個(gè)磁盤(pán)陣列的