存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明的一個例子的存儲系統(tǒng)取得包含于內(nèi)容并保存在介質(zhì)區(qū)域中的參照請求數(shù)據(jù)塊的參照請求。存儲系統(tǒng)決定包含參照請求數(shù)據(jù)塊在內(nèi)的在內(nèi)容內(nèi)連續(xù)的多個數(shù)據(jù)塊在介質(zhì)區(qū)域上的地址中的間隙數(shù)。存儲系統(tǒng)基于間隙數(shù),判斷基于多個數(shù)據(jù)塊的碎片整理是否有效。存儲系統(tǒng)在判斷為碎片整理有效的情況下,將從介質(zhì)區(qū)域讀出到存儲區(qū)域的多個數(shù)據(jù)塊寫出至介質(zhì)區(qū)域的連續(xù)地址區(qū)域。
【專利說明】
存儲系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種存儲系統(tǒng)的碎片整理。
【背景技術(shù)】
[0002]作為本技術(shù)領(lǐng)域的【背景技術(shù)】有專利文獻I。專利文獻I中披露的存儲裝置響應來自主機的參照請求而進行通常的參照處理,取得在內(nèi)容內(nèi)連續(xù)的數(shù)據(jù)(稱為邏輯上連續(xù)的數(shù)據(jù))。此時,在數(shù)據(jù)的物理位置非連續(xù)的情況下,存儲裝置在將這些數(shù)據(jù)寫出至下一張磁盤時,寫出至連續(xù)物理區(qū)域。進一步地,專利文獻I披露了如下的方法:在有主機更新請求時不僅將該寫數(shù)據(jù)讀出之后寫入磁盤,還將該寫數(shù)據(jù)的偏移量周圍的邏輯上連續(xù)的數(shù)據(jù)之后寫入磁盤。
[0003]現(xiàn)有技術(shù)文獻
[0004]專利文獻
[0005]專利文獻1:美國專利8359430號
【發(fā)明內(nèi)容】
[0006]專利文獻I的存儲裝置在有主機參照請求時,若讀出的數(shù)據(jù)塊數(shù)很少,則將它們寫出至磁盤的新建區(qū)域。因此,內(nèi)容整體上的隨機性增大,從磁盤讀出的性能變差。進一步地,在有主機更新請求時,由于專利文獻I的存儲裝置必定從磁盤讀出周圍數(shù)據(jù),所以因1/0(輸入/輸出)等待而導致主機請求響應性能變差。因此,希望既抑制主機I/O請求的處理性能的下降,又使碎片整理處理高速化。
[0007]本發(fā)明的一個實施方式是一種存儲系統(tǒng),該存儲系統(tǒng)具有:介質(zhì)區(qū)域,其由一個或者多個存儲設備提供,并保存內(nèi)容的數(shù)據(jù);以及控制器,其包含臨時保存所述介質(zhì)區(qū)域的數(shù)據(jù)的存儲區(qū)域。所述控制器取得包含于內(nèi)容并保存在所述介質(zhì)區(qū)域中的參照請求數(shù)據(jù)塊的參照請求。所述控制器決定包含所述參照請求數(shù)據(jù)塊在內(nèi)的在所述內(nèi)容內(nèi)連續(xù)的多個數(shù)據(jù)塊在所述介質(zhì)區(qū)域上的地址中的間隙數(shù)。所述控制器基于所述間隙數(shù),判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效。所述控制器在判斷為所述碎片整理有效的情況下,將從所述介質(zhì)區(qū)域讀出到所述存儲區(qū)域的所述多個數(shù)據(jù)塊寫出至所述介質(zhì)區(qū)域的連續(xù)地址區(qū)域。
[0008]發(fā)明效果
[0009]若采用本發(fā)明的一個實施方式,則既能夠抑制主機I/O請求的處理性能下降,又能夠使碎片整理處理高速化。
【附圖說明】
[0010]圖1是說明實施例1的概要的圖。
[0011]圖2A是示出文件存儲系統(tǒng)的結(jié)構(gòu)例的圖。
[0012]圖2B是示出文件存儲系統(tǒng)的結(jié)構(gòu)例的圖。
[0013]圖3是示出參照請求時碎片整理判斷表的結(jié)構(gòu)例的圖。
[0014]圖4是示出更新請求時碎片整理判斷表的結(jié)構(gòu)例的圖。
[0015]圖5是示出主機參照請求時的碎片整理方法的概要的圖。
[0016]圖6是主機參照請求時碎片整理處理的流程圖。
[0017]圖7是示出主機更新請求時的碎片整理方法的概要的圖。
[0018]圖8是主機更新請求時碎片整理處理的流程圖。
[0019]圖9是脫機(off line)碎片整理處理的流程圖。
[0020]圖10是示出實施例2的概要的圖。
[0021]圖11是頁面回收處理的流程圖。
[0022]圖12是示出實施例3的概要的圖。
[0023]圖13是釋放塊回收處理的流程圖。
【具體實施方式】
[0024]參照附圖來說明幾個實施例。此外,以下說明的實施例并不限定權(quán)利要求的范圍的發(fā)明,另外用實施例說明的各要素及其組合的全部并不一定是發(fā)明的解決方式所必須的。
[0025]此外,在以下的說明中,有時用“XX表”的表達方式來說明各種信息,但是各種信息也可以用除了表以外的數(shù)據(jù)結(jié)構(gòu)來表達。為了表示不取決于數(shù)據(jù)結(jié)構(gòu),可以將“XX表”稱為“XX信息”。
[0026]另外,在以下的說明中,有時以程序作為主語來說明處理,但通過利用硬件本身或者硬件所具有的處理器(例如,MP(Micro Processor,微處理器))來執(zhí)行程序,來一邊適當?shù)厥褂么鎯Y源(例如存儲器)和/或通信接口設備(例如端口)一邊進行決定了的處理,因此,也可以以硬件作為處理的主語。另外,程序來源也可以是例如程序分發(fā)服務器或者存儲介質(zhì)。
[0027]以下,披露了一種文件存儲系統(tǒng)的碎片整理技術(shù)。文件存儲系統(tǒng)具有一個以上存儲設備。以下,將一個以上存儲設備所賦予的存儲區(qū)域稱為介質(zhì)區(qū)域。
[0028]文件存儲系統(tǒng)中的介質(zhì)區(qū)域的輸入輸出性能受限于對所保存的數(shù)據(jù)進行隨機以及循序存取的模式。向介質(zhì)區(qū)域的訪問使用在介質(zhì)區(qū)域中定義的地址。在介質(zhì)區(qū)域中定義的地址例如是邏輯塊地址(LBA)。
[0029]隨機存取的性能比循序存取的性能低。因此,循序存取請求以盡量不進行隨機存取的方式配置數(shù)據(jù),這樣有助于提高存儲系統(tǒng)的輸入輸出性能。
[0030]文件存儲系統(tǒng)按照內(nèi)容來管理數(shù)據(jù),內(nèi)容是邏輯地歸納起來的數(shù)據(jù)。作為內(nèi)容,除了通常的文件以外,還有如存檔文件、備份文件、虛擬計算機的卷文件這樣的將通常的文件匯集而成的文件。內(nèi)容也可以是文件的一部分。
[0031]同樣地,數(shù)據(jù)的存取也是按照內(nèi)容而發(fā)生的。因此,構(gòu)成內(nèi)容的數(shù)據(jù)被要求保存于在介質(zhì)區(qū)域中連續(xù)的地址區(qū)域。但是,根據(jù)數(shù)據(jù)的更新請求(覆寫、追加、刪除),內(nèi)容的數(shù)據(jù)的介質(zhì)區(qū)域中的保存地址成為隨機的,輸入輸出性能變差。
[0032]作為對策而應用碎片整理。但是,碎片整理需要從介質(zhì)區(qū)域讀出(隨機存取)全部內(nèi)容并將該數(shù)據(jù)寫入介質(zhì)區(qū)域的新的地址區(qū)域,負荷很大,降低系統(tǒng)的性能。
[0033]以下說明的文件存儲系統(tǒng)執(zhí)行聯(lián)機(online)碎片整理。聯(lián)機碎片整理是來自主機的參照請求(主機參照請求)和/或更新請求(主機更新請求)的處理的碎片整理。
[0034]在一個例子中,文件存儲系統(tǒng)在有主機參照請求時,判斷利用被參照請求的數(shù)據(jù)和在內(nèi)容內(nèi)與被參照請求的數(shù)據(jù)連續(xù)的數(shù)據(jù)進行的碎片整理是否有效。文件存儲系統(tǒng)基于包含參照請求數(shù)據(jù)在內(nèi)的內(nèi)容內(nèi)的連續(xù)數(shù)據(jù)在介質(zhì)區(qū)域中所具有的間隙(gap)數(shù),來判斷碎片整理是否有效。
[0035]此處,根據(jù)偏移量來表示內(nèi)容內(nèi)的數(shù)據(jù)位置。在本次披露的發(fā)明中,有時將在內(nèi)容內(nèi)的數(shù)據(jù)位置稱為邏輯位置。同樣地,有時將在內(nèi)容內(nèi)偏移量連續(xù)的數(shù)據(jù)稱為邏輯上連續(xù)的數(shù)據(jù)。與此相對,有時將在介質(zhì)區(qū)域中保存于連續(xù)地址的數(shù)據(jù)稱為在物理上連續(xù)的數(shù)據(jù)。如上述,介質(zhì)區(qū)域中的地址例如是用LBA表示的。
[0036]內(nèi)容內(nèi)的連續(xù)數(shù)據(jù)分成多個數(shù)據(jù)塊地保存于介質(zhì)區(qū)域。文件存儲系統(tǒng)基于該多個數(shù)據(jù)塊(塊區(qū)域)的地址間的間隙數(shù),來判斷碎片整理是否有效。在地址是非連續(xù)的情況下,它們之間存在間隙。以下,將介質(zhì)區(qū)域中的數(shù)據(jù)保存單位區(qū)域簡稱為塊。
[0037]在判斷為碎片整理有效的情況下,文件存儲系統(tǒng)將上述多個數(shù)據(jù)塊寫出至介質(zhì)區(qū)域中的連續(xù)地址區(qū)域(由連續(xù)塊組成的區(qū)域)。省略基于間隙數(shù)判斷為不需要的碎片整理,由此減少因碎片整理導致負荷的增大。
[0038]在一個例子中,文件存儲系統(tǒng)僅對預先指定的內(nèi)容執(zhí)行有主機參照請求時的聯(lián)機碎片整理。文件存儲系統(tǒng)在有針對內(nèi)容的主機更新請求時,判斷是否需要對該內(nèi)容進行碎片整理。對判斷為需要進行碎片整理的內(nèi)容賦予表示需要進行碎片整理的標志。
[0039]文件存儲系統(tǒng)在有主機參照請求時,根據(jù)上述標志,判斷對象內(nèi)容是否需要進行聯(lián)機碎片整理。僅在標志表示需要進行聯(lián)機碎片整理的情況下,文件存儲系統(tǒng)才執(zhí)行聯(lián)機碎片整理。通過這樣,能夠進一步地省略不需要的碎片整理。
[0040]在一個例子中,文件存儲系統(tǒng)在主機更新請求下,執(zhí)行聯(lián)機碎片整理。在高速緩存有由主機發(fā)出更新請求的數(shù)據(jù)和在內(nèi)容內(nèi)連續(xù)的數(shù)據(jù)時,文件存儲系統(tǒng)將包含更新請求數(shù)據(jù)在內(nèi)的連續(xù)數(shù)據(jù)匯總并寫出至介質(zhì)區(qū)域中的連續(xù)地址區(qū)域。
[0041 ]在一個例子中,文件存儲系統(tǒng)與聯(lián)機碎片整理一起執(zhí)行脫機碎片整理。脫機碎片整理是與主機請求不同步的碎片整理。文件存儲系統(tǒng)在脫機碎片整理中選擇利用聯(lián)機碎片整理未完成碎片整理的內(nèi)容,應用碎片整理。由于聯(lián)機碎片整理使內(nèi)容內(nèi)隨機的數(shù)據(jù)配置減少,所以脫機碎片整理的處理負荷減輕,能夠抑制系統(tǒng)輸入輸出性能的下降。
[0042]實施例1
[0043]圖1示意地示出本實施例的計算機系統(tǒng)以及文件存儲系統(tǒng)的處理的概要。計算機系統(tǒng)具有文件存儲系統(tǒng)100、多個主機計算機14和管理計算機15。它們通過網(wǎng)絡2連接。
[0044]主機計算機14是存取文件存儲系統(tǒng)100的資源并執(zhí)行業(yè)務的計算機。網(wǎng)絡2是主機計算機14與文件存儲系統(tǒng)100之間的用戶數(shù)據(jù)以及管理計算機15與其他裝置之間的管理數(shù)據(jù)的通信用網(wǎng)絡,在一個例子中是IP網(wǎng)絡。
[0045]在圖1中,文件系統(tǒng)由文件存儲系統(tǒng)100構(gòu)成。文件存儲系統(tǒng)100包含文件系統(tǒng),并接受主機計算機14對所保持的文件的訪問。
[0046]文件存儲系統(tǒng)100的存儲區(qū)域103保存有碎片整理控制程序300。碎片整理控制程序300含有聯(lián)機碎片整理處理模塊301和脫機碎片整理處理模塊302。
[0047]聯(lián)機碎片整理處理模塊301在從主機計算機14接收到參照請求時,參照該參照請求的參照目的地內(nèi)容的內(nèi)容管理表200,檢查碎片整理執(zhí)行標志202是否被設定為有效。內(nèi)容管理表200保持有關(guān)于一個內(nèi)容的管理信息。
[0048]在碎片整理執(zhí)行標志202被設定為有效的情況下,聯(lián)機碎片整理處理模塊301執(zhí)行聯(lián)機碎片整理。通過這樣,能夠避免用于無用的聯(lián)機碎片整理進行處理。具體地,聯(lián)機碎片整理處理模塊301在從介質(zhì)區(qū)域104讀出參照請求數(shù)據(jù)的基礎上,還從介質(zhì)區(qū)域104讀出在內(nèi)容內(nèi)與參照請求數(shù)據(jù)連續(xù)的數(shù)據(jù)(邏輯上連續(xù)的數(shù)據(jù))。從介質(zhì)區(qū)域104讀出的數(shù)據(jù)塊數(shù)K是2以上的整數(shù)。K是固定值或者可變值。
[0049]在圖1的例子中,參照數(shù)據(jù)是內(nèi)容B中的BI,從介質(zhì)區(qū)域104讀出的數(shù)據(jù)塊數(shù)K是3。內(nèi)容B由數(shù)據(jù)塊BO、B1、B2、B3構(gòu)成,在內(nèi)容B中數(shù)據(jù)塊BO、B1、B2、B3按照該順序連續(xù)地配置。即,數(shù)據(jù)塊B0、B1、B2、B3的偏移量是連續(xù)的。介質(zhì)區(qū)域104保存內(nèi)容B的數(shù)據(jù),用粗線表示最新數(shù)據(jù)的數(shù)據(jù)塊。
[0050]對應于針對數(shù)據(jù)BI的參照請求,從介質(zhì)區(qū)域104讀出塊141、143、145的數(shù)據(jù)。塊141、143、145分別保存有數(shù)據(jù)塊BO、B1、B2。內(nèi)容中的邏輯上連續(xù)的數(shù)據(jù)的選擇方法取決于設計。例如,聯(lián)機碎片整理處理模塊301可以僅選擇參照數(shù)據(jù)之前的數(shù)據(jù),也可以僅選擇參照數(shù)據(jù)之后的數(shù)據(jù),也可以選擇前后雙方的數(shù)據(jù)。
[0051]聯(lián)機碎片整理處理模塊301對讀出了數(shù)據(jù)的數(shù)據(jù)塊的介質(zhì)區(qū)域104中的地址(物理的數(shù)據(jù)配置)的間隙數(shù)進行計數(shù)。在圖1的例子中,聯(lián)機碎片整理處理模塊301能夠參照將內(nèi)容內(nèi)偏移量與介質(zhì)區(qū)域內(nèi)地址相關(guān)聯(lián)起來的地址映射表260,根據(jù)內(nèi)容內(nèi)的偏移量來識別介質(zhì)區(qū)域104中的地址。聯(lián)機碎片整理處理模塊301參照參照請求時碎片整理判斷表220來判斷在該計數(shù)中碎片整理是否有效。
[0052]若判斷為碎片整理有效,則聯(lián)機碎片整理處理模塊301將數(shù)據(jù)寫出至介質(zhì)區(qū)域104的連續(xù)地址區(qū)域(物理上的連續(xù)塊)。通過這樣,利用物理上連續(xù)的數(shù)據(jù)塊構(gòu)成在邏輯上連續(xù)的數(shù)據(jù)。
[0053]在圖1的例子中,塊141、143、145(數(shù)據(jù)塊即、81、82)的間隙數(shù)是2。在塊141與塊143之間存在間隙142,在塊143與塊145之間存在間隙144。
[0054]在本例中,參照請求時碎片整理判斷表220示出碎片整理有效。聯(lián)機碎片整理處理模塊301將數(shù)據(jù)BO、B1、B3寫出至在介質(zhì)區(qū)域104中連續(xù)的塊146?147。內(nèi)容B的間隙數(shù)從2減少到I。
[0055]間隙數(shù)的計數(shù)以及對碎片整理是否有效的判斷也可以在從介質(zhì)區(qū)域104讀出數(shù)據(jù)之前。在判斷出了碎片整理無效的情況下,聯(lián)機碎片整理處理模塊301可以從介質(zhì)區(qū)域104僅讀出參照數(shù)據(jù),而不讀出其他連續(xù)周圍數(shù)據(jù)。
[0056]以下,說明與來自主機計算機14的更新請求對應的聯(lián)機碎片整理。聯(lián)機碎片整理處理模塊301在接收到更新請求時,在高速緩存有與更新數(shù)據(jù)在邏輯上連續(xù)的數(shù)據(jù)的情況下,將更新數(shù)據(jù)與高速緩存數(shù)據(jù)一起寫出至物理上連續(xù)的區(qū)域。
[0057 ]在圖1的例子中示出,主機更新請求對于內(nèi)容D,覆寫更新數(shù)據(jù)DI *。內(nèi)容D由數(shù)據(jù)塊DO,Dl、D2、D3構(gòu)成,在內(nèi)容B中數(shù)據(jù)塊DO、D1、D2、D3按照該順序連續(xù)地配置。主機更新請求指示利用數(shù)據(jù)塊Dl*覆寫數(shù)據(jù)塊D1。介質(zhì)區(qū)域104保存內(nèi)容D的數(shù)據(jù),用粗線表示最新數(shù)據(jù)的數(shù)據(jù)塊。
[0058]聯(lián)機碎片整理處理模塊301在接收到利用數(shù)據(jù)塊Dl*的主機更新請求時,參照高速緩存管理表240,判斷是否高速緩存有與數(shù)據(jù)塊Dl*在邏輯上連續(xù)的數(shù)據(jù)。在圖1的例子中,高速緩存有與數(shù)據(jù)塊Dl*在邏輯上連續(xù)的數(shù)據(jù)塊D0、D2。脫機碎片整理處理模塊302將數(shù)據(jù)塊D0、D1*、D2寫出至介質(zhì)區(qū)域104的連續(xù)的塊171?173。內(nèi)容D的間隙數(shù)從2減少到I。
[0059]聯(lián)機碎片整理處理模塊301還基于更新請求時碎片整理判斷表230來判斷更新后的內(nèi)容D是否有碎片,是否需要進行碎片整理。在判斷出了需要進行碎片整理的情況下,脫機碎片整理處理模塊302在內(nèi)容D的內(nèi)容管理表200中將碎片整理執(zhí)行標志202設定為有效。
[0060]以下,說明脫機碎片整理。脫機碎片整理處理模塊302參照脫機碎片整理管理表210,調(diào)查高速執(zhí)行標志212是否被設定為有效。在高速執(zhí)行標志212未被設定為有效的情況下,脫機碎片整理處理模塊302針對介質(zhì)區(qū)域104內(nèi)的全部內(nèi)容來執(zhí)行脫機碎片整理。
[0061]在設定有高速執(zhí)行標志212的情況下,脫機碎片整理處理模塊302選擇在內(nèi)容管理表200中設定有碎片整理執(zhí)行標志202的內(nèi)容,僅針對選擇出的內(nèi)容來執(zhí)行脫機碎片整理。
[0062]采用本結(jié)構(gòu),由于在聯(lián)機碎片整理處理中連續(xù)地改寫讀出的數(shù)據(jù)的物理配置,所以能夠提高讀出性能。進一步地,利用聯(lián)機碎片整理使物理上的數(shù)據(jù)配置為連續(xù)的數(shù)據(jù)增加,由此脫機碎片整理處理的負荷減輕。
[0063]基于數(shù)據(jù)塊的間隙數(shù)來判斷有無執(zhí)行聯(lián)機碎片整理,由此省略碎片整理的效果小或者碎片整理沒效果的聯(lián)機碎片整理處理,能夠減少聯(lián)機碎片整理處理對主機I/o請求的處理性能的影響。
[0064]圖2A示出本實施例的文件存儲裝置10的結(jié)構(gòu)例。文件存儲系統(tǒng)100由文件存儲裝置10構(gòu)成。文件存儲裝置10經(jīng)由網(wǎng)絡2與管理計算機15、多個主機計算機14連接。網(wǎng)絡2可以是例如WAN(Wide Area Network,廣域網(wǎng))、LAN(Local Area Network,局域網(wǎng))、互聯(lián)網(wǎng)、公共線路或者專用線路等。
[0065]文件存儲裝置10具有處理器102、存儲器107、存儲設備106以及網(wǎng)絡接口 105。它們經(jīng)由系統(tǒng)總線108連接。
[0066]處理器102按照存儲器107中保存的程序,使用存儲區(qū)域103中保存的信息來工作,由此作為文件存儲裝置10的各種各樣的功能部來工作。例如,處理器102作為碎片整理控制部以及空白塊管理部來工作。
[0067]存儲器107保存有程序組350以及管理信息250。程序組350含有碎片整理控制程序300、空白塊管理程序310。管理信息250包含程序組350所使用的信息。管理信息250包含內(nèi)容管理表200、脫機碎片整理管理表210、參照請求時碎片整理判斷表220、更新請求時碎片整理判斷表230、高速緩存管理表240和地址映射表260。
[0068]進一步地,存儲器107除了用于保存用于使文件存儲裝置10工作的信息以外,還用作臨時保存主機計算機14的用戶數(shù)據(jù)的高速緩存器,還用作處理器102的工作存儲器。存儲器107提供圖1中的存儲區(qū)域103。使用DRAM等易失性半導體存儲器或者快閃存儲器等非易失性半導體存儲器作為存儲器107,與介質(zhì)區(qū)域104相比能夠進行更高速的數(shù)據(jù)存取。
[0069]為了便于說明,程序組350以及管理信息250被示出在存儲區(qū)域103內(nèi),但是在通常情況下,程序組350以及管理信息250是從存儲設備106加載的。
[0070]存儲設備106除了保存為了實現(xiàn)規(guī)定的功能所需要的程序、管理信息和元數(shù)據(jù)以夕卜,在本例中還保存主機計算機14的用戶數(shù)據(jù)。存儲設備106提供介質(zhì)區(qū)域104。例如,存儲設備106也可以是具有非易失性的非臨時性存儲介質(zhì)的存儲設備,并經(jīng)由網(wǎng)絡連接。[0071 ] 如上述,碎片整理控制程序300含有在有主機I/O請求時執(zhí)行碎片整理的聯(lián)機碎片整理處理模塊301和與主機I/O請求不同步地執(zhí)行碎片整理的脫機碎片整理處理模塊302。
[0072]空白塊管理程序310管理作為保存用戶數(shù)據(jù)的介質(zhì)區(qū)域104(存儲設備106)的數(shù)據(jù)保存單位的塊的使用/未使用情況??瞻讐K管理程序310保持表示空白塊的介質(zhì)區(qū)域內(nèi)地址的空白塊管理信息,與介質(zhì)區(qū)域104中的數(shù)據(jù)更新對應地更新該管理信息。
[0073]碎片整理控制程序300與空白塊管理程序310協(xié)作,來決定從介質(zhì)區(qū)域讀出的內(nèi)容數(shù)據(jù)的物理連續(xù)區(qū)域的寫出目的地??瞻讐K管理程序310在應用碎片整理后,將保存有內(nèi)容數(shù)據(jù)的塊作為空白塊來進行管理。
[0074]圖2B示出文件存儲系統(tǒng)10的另一結(jié)構(gòu)例。在本例中,文件存儲系統(tǒng)10由文件服務器11和塊存儲裝置12構(gòu)成。圖2A的結(jié)構(gòu)中的除了存儲設備106以外的結(jié)構(gòu)要素包含于文件服務器11中。塊存儲裝置12與存儲設備106對應。
[0075]網(wǎng)絡4是將文件服務器11與塊存儲裝置12相互連接起來的網(wǎng)絡,例如是SAN(Storage Area Network,存儲區(qū)域網(wǎng))。文件服務器11經(jīng)由存儲接口 119與網(wǎng)絡4連接,塊存儲裝置12經(jīng)由存儲接口 129與網(wǎng)絡4連接。文件服務器11以及塊存儲裝置12為了更新以及參照用戶數(shù)據(jù),而經(jīng)由網(wǎng)絡4發(fā)送接收命令以及用戶數(shù)據(jù)。
[0076]塊存儲裝置12向文件服務器11提供用戶數(shù)據(jù)的保存目的地和存取以塊為單位的數(shù)據(jù)的存取I/F。塊存儲裝置12搭載用于與文件服務器11通信的存儲I/F129、執(zhí)行在存儲器123中保存的程序的處理器122、保存數(shù)據(jù)的存儲設備124以及保存程序或者數(shù)據(jù)的存儲器12 3,通過內(nèi)部的通信線路(例如總線)128來連接它們。
[0077]文件服務器11具有處理器112、存儲器113、網(wǎng)絡接口 115以及存儲接口 119,通過系統(tǒng)總線118來連接它們。處理器112、存儲器113、網(wǎng)絡接口 115與文件存儲裝置10中的對應要素是同樣的。存儲器113保存有程序組350以及管理信息250。
[0078]如圖1所示,文件存儲系統(tǒng)100具有內(nèi)容管理表200。內(nèi)容管理表200是按照每個內(nèi)容而創(chuàng)建的。內(nèi)容管理表200在未圖示的以往的管理信息的基礎上,還包含碎片整理執(zhí)行標志202。以往的管理信息是例如構(gòu)成inode的信息,并含有與內(nèi)容的長度、內(nèi)容所有用戶、內(nèi)容的更新等相關(guān)的信息。
[0079]在內(nèi)容需要進行碎片整理的情況下,碎片整理執(zhí)行標志202被設定為有效,在內(nèi)容不需要進行碎片整理的情況下,碎片整理執(zhí)行標志202被設定為無效。在構(gòu)成內(nèi)容的數(shù)據(jù)保存于在介質(zhì)區(qū)域104中連續(xù)的地址區(qū)域的情況下,碎片整理執(zhí)行標志202被設定為無效。
[0080]在本實施例中,聯(lián)機碎片整理處理模塊301在主機更新請求的處理中,基于更新請求時碎片整理判斷表230,判斷該內(nèi)容是否需要進行碎片整理。在判斷為需要進行碎片整理的情況下,聯(lián)機碎片整理處理模塊301將該內(nèi)容的碎片整理執(zhí)行標志202設定為有效。
[0081]進一步地,在根據(jù)主機參照請求時碎片整理判斷表220的判斷結(jié)果或者脫機碎片整理的應用,判斷出構(gòu)成內(nèi)容的數(shù)據(jù)配置于物理上連續(xù)的區(qū)域的情況下,聯(lián)機碎片整理處理模塊301將碎片整理執(zhí)行標志202設定為無效。
[0082]脫機碎片整理管理表210由高速執(zhí)行標志212構(gòu)成。高速執(zhí)行標志212是由管理計算機15設定的值。在高速執(zhí)行標志212有效時,將應用脫機碎片整理的內(nèi)容限制為碎片整理執(zhí)行標志202有效的內(nèi)容,來執(zhí)行高速的碎片整理。
[0083]在高速執(zhí)行標志212無效時,對全部的內(nèi)容應用碎片整理,對全部的內(nèi)容實現(xiàn)最佳的數(shù)據(jù)配置。系統(tǒng)管理者經(jīng)由管理計算機15設定這些控制。
[0084]圖3示出主機參照請求時碎片整理判斷表220的結(jié)構(gòu)例。主機參照請求時碎片整理判斷表220包括:列222,示出從介質(zhì)區(qū)域讀出的邏輯上連續(xù)的K個數(shù)據(jù)塊在內(nèi)容內(nèi)所占的范圍的種類;列223,示出K個數(shù)據(jù)塊的間隙數(shù);以及列224,示出碎片整理執(zhí)行判斷結(jié)果。
[0085]像這樣,主機參照請求時碎片整理判斷表220示出K個數(shù)據(jù)塊在內(nèi)容內(nèi)所占的范圍的種類以及K個數(shù)據(jù)塊的間隙數(shù)的組合與碎片整理執(zhí)行判斷結(jié)果之間的關(guān)系。
[0086]在內(nèi)容內(nèi)所占的范圍的種類有內(nèi)容整體、包含內(nèi)容的首部數(shù)據(jù)在內(nèi)的內(nèi)容的一部分、包含內(nèi)容的尾部數(shù)據(jù)在內(nèi)的內(nèi)容的一部分、僅由中間數(shù)據(jù)組成的內(nèi)容的一部分。僅由中間數(shù)據(jù)組成的內(nèi)容的一部分是由除了首部數(shù)據(jù)以及尾部數(shù)據(jù)以外的數(shù)據(jù)構(gòu)成的。
[0087]根據(jù)在內(nèi)容內(nèi)所占的范圍與間隙數(shù)的關(guān)系來進行碎片整理執(zhí)行判斷,由此能夠針對碎片整理效果進行更加適當?shù)呐袛唷T趫D3的例子中,在根據(jù)在內(nèi)容內(nèi)所占的范圍與間隙數(shù)的關(guān)系判斷出有沒有碎片整理效果的可能性的情況下,碎片整理判斷結(jié)果無效。此外,在參照請求時的聯(lián)機碎片整理執(zhí)行判斷結(jié)果也可以不取決于在內(nèi)容內(nèi)數(shù)據(jù)塊所占的范圍,而是僅由間隙數(shù)來決定。
[0088]圖4示出更新請求時碎片整理判斷表230的結(jié)構(gòu)例。更新請求時碎片整理判斷表230包含:列232,示出主機更新請求的種類;列233,示出介質(zhì)區(qū)域104內(nèi)可否進行連續(xù)塊分配;列234,示出是否需要進行碎片整理的判斷結(jié)果。
[0089]此處,說明如下的文件存儲系統(tǒng)中發(fā)生碎片整理的判斷方法,該文件存儲系統(tǒng)搭載了采用Log-structured File System(LFS,日志結(jié)構(gòu)文件系統(tǒng))的文件系統(tǒng)。此外,本實施例的碎片整理發(fā)生的判斷方法并不限定于LFS,也能夠適當變更地應用于搭載了其他文件系統(tǒng)的文件存儲系統(tǒng)。
[0090]LFS追蹤內(nèi)容的用戶數(shù)據(jù)以及管理信息這兩者的更新,并將更新數(shù)據(jù)記錄于文件系統(tǒng)的日志部分。將記錄的更新時間點稱為檢查點(check point)。LFS將從以前的檢查點中選擇出的一部分或者全部的檢查點的更新數(shù)據(jù)保存為快照(snapshot),由此能夠自動且連續(xù)地生成文件系統(tǒng)的快照。
[0091]LFS在更新文件時,不使更新數(shù)據(jù)覆寫與文件的更新位置對應的介質(zhì)區(qū)域104上的塊的數(shù)據(jù),而是將更新數(shù)據(jù)寫入到介質(zhì)區(qū)域104上的其他塊。通過這樣,能夠恢復任意檢查點的數(shù)據(jù)。在存儲區(qū)域103上,利用更新數(shù)據(jù)覆寫與文件的更新位置對應的塊的數(shù)據(jù)。
[0092]通過LFS的上述工作,在主機更新請求是已有內(nèi)容內(nèi)的數(shù)據(jù)的覆寫處理時,在該內(nèi)容中發(fā)生碎片化,需要進行碎片整理。在主機更新請求是新建內(nèi)容的追加請求或者向已有內(nèi)容追加數(shù)據(jù)的請求時,在無法將包含已有數(shù)據(jù)和新建追加數(shù)據(jù)在內(nèi)的全部數(shù)據(jù)都保存到介質(zhì)區(qū)域104內(nèi)的連續(xù)塊時,就會發(fā)生碎片化,需要進行碎片整理。在能夠?qū)⑷康臄?shù)據(jù)都保存到介質(zhì)區(qū)域104內(nèi)的連續(xù)塊的情況下,不需要進行碎片整理。
[0093]最后,在主機更新請求是數(shù)據(jù)的刪除請求時,不發(fā)生碎片整理。根據(jù)這些判斷結(jié)果,來判斷是否將內(nèi)容管理表200的碎片整理執(zhí)行標志202設置為有效。
[0094]此外,在向同一個塊覆寫更新數(shù)據(jù)的文件系統(tǒng)中,在主機更新請求是數(shù)據(jù)的刪除請求時發(fā)生碎片整理,在是數(shù)據(jù)的覆寫處理時不發(fā)生碎片整理。針對數(shù)據(jù)的追加也與LFS同樣。
[0095]圖5示出在有主機參照請求時的碎片整理方法的概要。內(nèi)容C(400)由數(shù)據(jù)塊CO、C1、C2、C3、C4、C5、C6、C6,C7構(gòu)成。內(nèi)容C的內(nèi)容管理表410的碎片整理執(zhí)行標志412有效。數(shù)據(jù)塊0)、(:1、02工3、04工5、06工6、07被保存于介質(zhì)區(qū)域104。在圖5中,介質(zhì)區(qū)域104的粗線的數(shù)據(jù)塊表示內(nèi)容C的最新的數(shù)據(jù)。
[0096]在圖5的例子中,發(fā)布了數(shù)據(jù)塊Cl的參照請求。例如,在數(shù)據(jù)塊Cl未高速緩存于存儲區(qū)域103中的情況下,需要從介質(zhì)區(qū)域104讀出數(shù)據(jù)塊Cl。高速緩存管理表240示出是否高速緩存有數(shù)據(jù)塊Cl。
[0097]由于碎片整理執(zhí)行標志412有效,所以聯(lián)機碎片整理處理模塊301從介質(zhì)區(qū)域104的塊401?403讀出包含參照請求數(shù)據(jù)塊Cl在內(nèi)的邏輯上連續(xù)的數(shù)據(jù)塊C0、C1、C2。此處,選擇數(shù)據(jù)塊Cl的前后的數(shù)據(jù)塊C0、C2來作為在內(nèi)容內(nèi)與數(shù)據(jù)塊Cl邏輯連續(xù)的周圍數(shù)據(jù)塊。聯(lián)機碎片整理處理模塊301使用OS所提供的功能,從介質(zhì)區(qū)域104讀出數(shù)據(jù)。
[0098]與此不同的是,也可以僅選擇數(shù)據(jù)塊Cl之前的數(shù)據(jù)塊或者僅選擇數(shù)據(jù)塊Cl之后的連續(xù)數(shù)據(jù)塊。數(shù)據(jù)塊Cl之前的數(shù)據(jù)塊數(shù)與之后的數(shù)據(jù)塊數(shù)也可以不同。另外,在本例中,選擇的數(shù)據(jù)塊數(shù)K是3,但是也可以是除此以外的數(shù)值。
[0099]以下,聯(lián)機碎片整理處理模塊301對介質(zhì)區(qū)域104中的數(shù)據(jù)塊CO、Cl、C2(塊401?403)的間隙數(shù)進行計數(shù)。聯(lián)機碎片整理處理模塊301能夠參照地址映射表260,獲知與數(shù)據(jù)塊CO、Cl、C2在內(nèi)容內(nèi)的偏移量對應的介質(zhì)區(qū)域內(nèi)地址。聯(lián)機碎片整理處理模塊301根據(jù)數(shù)據(jù)塊C0、C1、C2的介質(zhì)區(qū)域內(nèi)地址來對間隙數(shù)進行計數(shù)。此外,間隙數(shù)的計數(shù)也可以在讀出數(shù)據(jù)塊CO、Cl、C2之前執(zhí)行。
[0100]在參照圖5的例子時,在介質(zhì)區(qū)域104中,在數(shù)據(jù)塊CO(塊401)與數(shù)據(jù)塊CI (塊402)之間存在間隙404,在數(shù)據(jù)塊Cl (塊402)與數(shù)據(jù)塊C2 (塊403)之間存在間隙405。
[0101]因此,介質(zhì)區(qū)域104中的數(shù)據(jù)塊CO(塊401)、數(shù)據(jù)塊CI(塊402)與數(shù)據(jù)塊C2(塊403)的間隙數(shù)是2。
[0102]聯(lián)機碎片整理處理模塊301參照主機參照請求時碎片整理判斷表220,來判斷是否使用數(shù)據(jù)塊C0、C1、C2進行碎片整理。聯(lián)機碎片整理處理模塊301根據(jù)數(shù)據(jù)塊C0、C1、C2在內(nèi)容C(400)中所占的范圍和它們的間隙數(shù),來決定有無執(zhí)行碎片整理。
[0103]數(shù)據(jù)塊CO是內(nèi)容C(400)的首部數(shù)據(jù)。因此,數(shù)據(jù)塊C0、C1、C2包含內(nèi)容C(400)的首部數(shù)據(jù),是內(nèi)容c(400)的一部分。此外,通過數(shù)據(jù)塊的偏移量來表示數(shù)據(jù)塊在內(nèi)容內(nèi)的位置。
[0104]主機參照請求時碎片整理判斷表220示出,在數(shù)據(jù)塊在內(nèi)容內(nèi)所占的范圍是“包含內(nèi)容的首部數(shù)據(jù)的內(nèi)容的一部分”且該數(shù)據(jù)塊的間隙數(shù)是“2”的情況下,碎片整理執(zhí)行判斷是“有效”。因此,聯(lián)機碎片整理處理模塊301判斷為將數(shù)據(jù)塊C0、C1、C2寫出至物理上連續(xù)的區(qū)域,由此進行碎片整理。
[0105]聯(lián)機碎片整理處理模塊301在高速緩存管理表240中,將這些數(shù)據(jù)塊(的保存頁面)的高速緩存狀態(tài)設定為臟(dirty)。此外,取代表示臟狀態(tài)的高速緩存狀態(tài)或在該表示臟狀態(tài)的高速緩存狀態(tài)智商,還可以準備表示碎片整理用的處理的特別的寫出專用位(bit)。
[0106]然后,將數(shù)據(jù)塊C0、C1、C2寫出至介質(zhì)區(qū)域104的文件系統(tǒng)程序在寫出時,從空白塊管理程序310取得寫出目的地新建地址區(qū)域,將數(shù)據(jù)塊C0、C1、C2寫出至介質(zhì)區(qū)域104內(nèi)的新建地址區(qū)域。
[0107]新建地址區(qū)域是連續(xù)的空白塊,寫出至介質(zhì)區(qū)域104的文件系統(tǒng)程序能夠從空白塊管理程序310取得空白塊的信息。在圖5的例子中,數(shù)據(jù)塊C0、C1、C2分別被寫出至連續(xù)的塊401*、402*、403*。
[0108]此外,取代寫出至介質(zhì)區(qū)域104的文件系統(tǒng)程序,聯(lián)機碎片整理處理模塊301也可以在寫出時,從空白塊管理程序310取得寫出目的地地址,并將該寫出目的地地址設定于高速緩存管理表240。此時,寫出至介質(zhì)區(qū)域104的文件系統(tǒng)程序?qū)?shù)據(jù)塊寫出至在高速緩存管理表240中設定的寫出目的地地址。
[0109]空白塊管理程序310取得脫機碎片整理處理模塊302的處理結(jié)果,以塊401、402、403作為空白塊,并以塊401*、402*、403*作為非空白區(qū)域來進行管理。
[0110]以下,說明針對數(shù)據(jù)塊C5的參照請求的處理。與數(shù)據(jù)塊Cl同樣地,在數(shù)據(jù)塊C5未高速緩存于存儲區(qū)域103的情況下,需要從介質(zhì)區(qū)域104讀出數(shù)據(jù)塊C5。
[0111]聯(lián)機碎片整理處理模塊301除了參照數(shù)據(jù)塊C5以外,還從介質(zhì)區(qū)域104讀出參照數(shù)據(jù)塊C5的周圍連續(xù)數(shù)據(jù)塊。本例是從介質(zhì)區(qū)域104讀出參照數(shù)據(jù)塊C5的前后各一個數(shù)據(jù)塊C4、C6。
[0112]數(shù)據(jù)塊C4、C5、C6在介質(zhì)區(qū)域104中保存有塊406?408。在介質(zhì)區(qū)域104中,在數(shù)據(jù)塊C4 (塊406)與數(shù)據(jù)塊C5 (塊407)之間存在間隙409。
[0113]因此,在介質(zhì)區(qū)域104中的數(shù)據(jù)塊C4(塊406)、數(shù)據(jù)塊C5(塊407)與數(shù)據(jù)塊C6(塊408)的間隙數(shù)是I。進一步地,數(shù)據(jù)塊C4、C5、C6是內(nèi)容C(400)的一部分,并僅由中間數(shù)據(jù)組成。
[0114]主機參照請求時碎片整理判斷表220示出,在數(shù)據(jù)塊在內(nèi)容內(nèi)所占的范圍是“僅由中間數(shù)據(jù)組成的內(nèi)容的一部分”且該數(shù)據(jù)塊的間隙數(shù)是“I”的情況下,碎片整理執(zhí)行判斷是“無效”。因此,聯(lián)機碎片整理處理模塊301不必將高速緩存管理表240中的數(shù)據(jù)塊C4、C5、C6的高速緩存狀態(tài)設定為臟就結(jié)束處理。數(shù)據(jù)塊C4、C5、C6未被寫出至介質(zhì)區(qū)域104。
[0115]此外,間隙數(shù)的計數(shù)也可以在讀出數(shù)據(jù)塊C4、C5、C6之前執(zhí)行。如本例這樣,在判斷為不需要進行碎片整理的情況下,也可以不讀出參照數(shù)據(jù)的周圍連續(xù)數(shù)據(jù)。
[0116]如以上所述,聯(lián)機碎片整理處理模塊301僅在碎片整理有效時才執(zhí)行碎片整理,構(gòu)成內(nèi)容的數(shù)據(jù)在介質(zhì)區(qū)域104中是連續(xù)的。
[0117]圖6是在有主機參照請求時碎片整理處理的流程圖。未圖示的文件系統(tǒng)程序接受來自主機計算機14的參照請求或者因系統(tǒng)內(nèi)部的處理而產(chǎn)生的參照請求(S101)。請求處理模塊參照高速緩存管理表240,來判斷是否需要從介質(zhì)區(qū)域104讀出參照數(shù)據(jù)(S102)。
[0118]在存儲區(qū)域103上高速緩存有數(shù)據(jù),不需要從介質(zhì)區(qū)域104讀出參照數(shù)據(jù)的情況(S102:否)下,請求處理模塊向請求源應答存儲區(qū)域103上的高速緩存數(shù)據(jù)(SllO)。省略高速緩存命中時的聯(lián)機碎片整理,由此減少聯(lián)機碎片整理的負荷。
[0119]在需要從介質(zhì)區(qū)域104讀出參照數(shù)據(jù)的情況下(S102:是),聯(lián)機碎片整理處理模塊301參照參照目的地內(nèi)容的內(nèi)容管理表200,來判斷碎片整理執(zhí)行標志202是否有效(S103)。
[0120]在碎片整理執(zhí)行標志202無效的情況下(S103:否),聯(lián)機碎片整理處理模塊301使用OS內(nèi)的介質(zhì)區(qū)域I/O模塊,從介質(zhì)區(qū)域104讀出參照請求數(shù)據(jù),并將該參照請求數(shù)據(jù)保存于存儲區(qū)域103(S105)。請求處理模塊向請求源應答被寫出至存儲區(qū)域103的參照數(shù)據(jù)(SllO)0
[0121]在碎片整理執(zhí)行標志202有效的情況下(S103:是),聯(lián)機碎片整理處理模塊301根據(jù)地址映射表260取得讀出的K個數(shù)據(jù)塊在介質(zhì)區(qū)域104中的地址信息(物理的位置關(guān)系的信息)(S104)。
[0122]聯(lián)機碎片整理處理模塊301判斷是否應該執(zhí)行K個數(shù)據(jù)塊的聯(lián)機碎片整理(S106)。聯(lián)機碎片整理處理模塊301確定出K個數(shù)據(jù)塊在內(nèi)容內(nèi)所占的位置,進一步地,對該K個數(shù)據(jù)塊的間隙數(shù)進行計數(shù)。聯(lián)機碎片整理處理模塊301根據(jù)K個數(shù)據(jù)塊在內(nèi)容內(nèi)的偏移量值以及介質(zhì)區(qū)域104內(nèi)地址,來確定它們在內(nèi)容內(nèi)所占的位置以及間隙數(shù)。此外,聯(lián)機碎片整理處理模塊301也可以在讀出了 K個數(shù)據(jù)塊之后進行判斷S106。
[0123]聯(lián)機碎片整理處理模塊301使用介質(zhì)區(qū)域I/O模塊,從介質(zhì)區(qū)域104讀出包含請求數(shù)據(jù)塊在內(nèi)的的邏輯上連續(xù)的K個數(shù)據(jù)塊(SI 11)。
[0124]聯(lián)機碎片整理處理模塊301參照主機參照請求時碎片整理判斷表220,取得在上述內(nèi)容內(nèi)所占的位置以及間隙數(shù)的組所對應的碎片整理執(zhí)行判斷結(jié)果列204的值。在碎片整理執(zhí)行判斷結(jié)果是無效的情況下(S106:否),聯(lián)機碎片整理處理模塊301將從介質(zhì)區(qū)域104讀出的參照數(shù)據(jù)返回至主機計算機14,并結(jié)束處理。
[0125]在碎片整理執(zhí)行判斷結(jié)果是有效的情況下(S106:是),聯(lián)機碎片整理處理模塊301執(zhí)行聯(lián)機碎片整理。具體地,聯(lián)機碎片整理處理模塊301以存儲區(qū)域103的K個塊的數(shù)據(jù)在接著這些數(shù)據(jù)之后寫出時進行物理上連續(xù)的塊寫出的方式進行處理。
[0126]例如,聯(lián)機碎片整理處理模塊301將K個塊數(shù)據(jù)的高速緩存狀態(tài)設定為臟。針對這些臟頁面,介質(zhì)區(qū)域I/O模塊根據(jù)空白塊管理程序310來取得到新建地址區(qū)域,將臟狀態(tài)的K個塊數(shù)據(jù)寫出至指定的連續(xù)塊。
[0127]K個塊數(shù)據(jù)的寫出目的地也可以是由聯(lián)機碎片整理處理模塊301決定的。取代表示臟狀態(tài)的高速緩存狀態(tài)或在表示臟狀態(tài)的高速緩存狀態(tài)的基礎上,還可以準備表示碎片整理用的處理的特別的寫出專用位(bit)。也可以對寫出至連續(xù)塊的數(shù)據(jù)塊的數(shù)量定義最大值m。在K比最大值m大的情況下,將從K個數(shù)據(jù)塊中選擇出的m個連續(xù)數(shù)據(jù)塊寫出至連續(xù)地址。針對塊數(shù)據(jù)的寫出,與其他流程圖是同樣的。
[0128]聯(lián)機碎片整理處理模塊301更新地址映射表260。進一步地,聯(lián)機碎片整理處理模塊301參照地址映射表260,判斷在上述碎片整理后,內(nèi)容整體(內(nèi)容的全部數(shù)據(jù)塊)是否被配置于介質(zhì)區(qū)域104的連續(xù)地址塊(物理連續(xù)塊)(S108)。
[0129]在內(nèi)容被配置于物理連續(xù)塊的情況下(S108:是),聯(lián)機碎片整理處理模塊301將該內(nèi)容的碎片整理執(zhí)行標志202設定為無效(S109),將讀出到存儲區(qū)域103上的參照數(shù)據(jù)返回至主機計算機H(SllO),并結(jié)束處理。在內(nèi)容未被配置于物理連續(xù)塊的情況下(S108:否),跳過步驟S109。
[0130]圖7示出主機更新請求時的碎片整理方法的概要。此處,說明覆寫請求作為主機更新請求的例子和新建內(nèi)容追加請求作為主機更新請求的例子。覆寫請求的對象內(nèi)容是內(nèi)容D(420)。內(nèi)容D(420)由數(shù)據(jù)塊D0、D1、D2、D3構(gòu)成,并保存于介質(zhì)區(qū)域104。
[0131]主機更新請求是請求用數(shù)據(jù)塊Dl*覆寫數(shù)據(jù)塊D1。存儲區(qū)域103保存從主機計算機14接收到的數(shù)據(jù)塊D1*。文件系統(tǒng)程序在高速緩存管理表240中將數(shù)據(jù)塊Dl (的保存頁面)的高速緩存狀態(tài)設置為臟。
[0132]聯(lián)機碎片整理處理模塊301為了判斷是否需要進行碎片整理,而參照更新請求時碎片整理判斷表230。此處的主機更新請求是覆寫請求,更新請求時碎片整理判斷表230示出需要進行碎片整理。聯(lián)機碎片整理處理模塊301將內(nèi)容D管理表430的碎片整理執(zhí)行標志332設置為有效。
[0133]在作為數(shù)據(jù)塊Dl*的邏輯上連續(xù)的周圍數(shù)據(jù)的數(shù)據(jù)塊DO和數(shù)據(jù)塊D2已經(jīng)被高速緩存于存儲區(qū)域103上的情況下,聯(lián)機碎片整理處理模塊301以使數(shù)據(jù)塊D0、D1*、D2在下一次對這些數(shù)據(jù)塊進行寫出時寫出至連續(xù)塊的方式進行處理。
[0134]例如,聯(lián)機碎片整理處理模塊301在高速緩存管理表240中將數(shù)據(jù)塊D0、D1*、D2的(保存頁面的)高速緩存狀態(tài)設定為臟。介質(zhì)區(qū)域?qū)懗龀绦驈目瞻讐K管理程序310取得空白連續(xù)塊的地址來作為寫出目的地地址。介質(zhì)區(qū)域I/0模塊將數(shù)據(jù)塊DO、D1*、D2寫出至指定的連續(xù)塊。
[0135]取代介質(zhì)區(qū)域I/O模塊,聯(lián)機碎片整理處理模塊301也可以從空白塊管理程序310取得空白連續(xù)塊的地址。取代賦予數(shù)據(jù)塊DO、D2的臟狀態(tài)或者在賦予數(shù)據(jù)塊DO、D2的臟狀態(tài)的基礎上,還可以準備表示碎片整理用的處理的特別的寫出專用位(bit)。
[0136]在作為數(shù)據(jù)塊Dl*的邏輯上連續(xù)的周圍數(shù)據(jù)的數(shù)據(jù)塊DO或者數(shù)據(jù)塊D2未被高速緩存于存儲區(qū)域103上的情況下,不必從介質(zhì)區(qū)域104讀出該數(shù)據(jù)塊。僅將已經(jīng)被高速緩存的連續(xù)周圍數(shù)據(jù)塊與數(shù)據(jù)塊Dl*—起寫出。
[0137]在圖7的例子中,在主機更新請求之前,塊421、422、423、424保存有數(shù)據(jù)塊00、01、D2、D3。在碎片整理之后,塊421*、422*、423*、424保存有數(shù)據(jù)塊D0、D1*、D2、D3??瞻讐K管理程序310在碎片整理之后,將塊421、422、423作為空白塊來進行管理。
[0138]以下,使用內(nèi)容E440來說明主機更新請求為追加請求的例子的概要。內(nèi)容E440由數(shù)據(jù)塊EO、E1、E2構(gòu)成。在新建追加內(nèi)容E的情況下,將上述數(shù)據(jù)塊EO、E1、E2分別高速緩存于存儲區(qū)域103上,分別設置為臟。
[0139]主機更新請求是內(nèi)容新建追加請求,邏輯上連續(xù)的周圍數(shù)據(jù)不在文件存儲系統(tǒng)100內(nèi)。介質(zhì)區(qū)域I/O模塊將上述數(shù)據(jù)塊E0、E1、E2分別寫出至空白塊管理程序310所分配的物理上連續(xù)的區(qū)域。
[0140]在未寫到介質(zhì)區(qū)域104中連續(xù)的區(qū)域的情況下,聯(lián)機碎片整理處理模塊301將內(nèi)容E管理表450的碎片整理執(zhí)行標志設定為有效。在圖7的例子中,數(shù)據(jù)塊E0、E1、E2被寫出至物理上連續(xù)的區(qū)域,碎片整理執(zhí)行標志452仍為無效。
[0141]圖8示出主機更新請求時碎片整理處理的流程圖。請求處理模塊接受因來自主機計算機14的更新請求或者系統(tǒng)內(nèi)部的處理而產(chǎn)生的更新請求(S201)。請求處理模塊將更新數(shù)據(jù)高速緩存于存儲區(qū)域103,并在高速緩存管理表240中將這些數(shù)據(jù)塊(的保存頁面)的高速緩存狀態(tài)設定為臟(S202)。
[0142]聯(lián)機碎片整理處理模塊301參照更新請求時碎片整理判斷表230,根據(jù)主機更新請求的種類來判斷是否需要進行碎片整理(S203)。在判斷為不需要進行碎片整理的情況下(S203:否),聯(lián)機碎片整理處理模塊301進入步驟S205。
[0143]在判斷為需要進行碎片整理的情況下(S203:是),聯(lián)機碎片整理處理模塊301將該內(nèi)容的內(nèi)容管理表200的碎片整理執(zhí)行標志202設定為有效(S204)。
[0144]聯(lián)機碎片整理處理模塊301參照高速緩存管理表240,檢查在存儲區(qū)域103上是否存在與更新請求數(shù)據(jù)塊在邏輯上連續(xù)的已有數(shù)據(jù)塊(更新請求數(shù)據(jù)以外的數(shù)據(jù)塊)(S205)。
[0145]在存儲區(qū)域103上不存在邏輯上連續(xù)的周圍數(shù)據(jù)的情況下(S205:否),跳過步驟S207。在存儲區(qū)域103上存在邏輯上連續(xù)的周圍數(shù)據(jù)的情況下(S205:是),聯(lián)機碎片整理處理模塊301在高速緩存管理表240中將周圍數(shù)據(jù)(的保存頁面)的高速緩存狀態(tài)設定為臟(S207)。
[0146]介質(zhì)區(qū)域I/O模塊將臟數(shù)據(jù)寫出至空白塊管理程序310所分配的介質(zhì)區(qū)域104內(nèi)的空白塊(S208)。如上所述,由聯(lián)機碎片整理處理模塊301以及介質(zhì)區(qū)域I/O模塊中的任一者來取得更新請求數(shù)據(jù)以及周圍數(shù)據(jù)的寫出目的地空白塊的地址信息都可以。
[0147]聯(lián)機碎片整理處理模塊301參照映射表270,來判斷是否將包含主機更新請求數(shù)據(jù)在內(nèi)的寫出至介質(zhì)區(qū)域104的數(shù)據(jù)分配給了連續(xù)的塊(連續(xù)物理區(qū)域)(S209)。
[0148]在數(shù)據(jù)被分配給連續(xù)的塊的情況下(S209:否),聯(lián)機碎片整理處理模塊301將內(nèi)容管理表200的碎片整理執(zhí)行標志202設定為有效(S210),并結(jié)束處理。
[0149]在數(shù)據(jù)被分配給連續(xù)的塊的情況下(S209:是),聯(lián)機碎片整理處理模塊301參照映射表270,來判斷內(nèi)容整體是否被分配給連續(xù)的塊(S211)。
[0150]在內(nèi)容整體被分配給連續(xù)的塊的情況下(S211:是),聯(lián)機碎片整理處理模塊301將碎片整理執(zhí)行標志202設定為無效(S212),并結(jié)束處理。在內(nèi)容整體未被分配給連續(xù)的塊的情況下(S211:否),跳過步驟S212。
[0151]圖9示出脫機碎片整理處理的流程圖。脫機碎片整理處理模塊302根據(jù)內(nèi)容管理表200,來生成在介質(zhì)區(qū)域104中保存的內(nèi)容的列表(S301)。脫機碎片整理處理模塊302選擇內(nèi)容(S302),判斷脫機碎片整理管理表210的高速執(zhí)行標志212是否被設定為有效(S303)。高速執(zhí)行標志212可以由管理者通過管理計算機15來設定。
[0152]在高速執(zhí)行標志212有效的情況下(S303:是),脫機碎片整理處理模塊302判斷內(nèi)容管理表200的碎片整理執(zhí)行標志202是否有效(S304)。在高速執(zhí)行標志212無效的情況下(S303:否),跳過步驟S304。
[0153]在碎片整理執(zhí)行標志202無效的情況下(S304:否),脫機碎片整理處理模塊302進入步驟S308。在碎片整理執(zhí)行標志202有效的情況下,脫機碎片整理處理模塊302執(zhí)行該內(nèi)容的碎片整理(S305)。
[0154]脫機碎片整理處理模塊302在進行碎片整理后,參照映射表270來判斷是否已將內(nèi)容整體配置到了連續(xù)的塊(S306)。在內(nèi)容整體被配置到連續(xù)的塊的情況下(S306:是),脫機碎片整理處理模塊302將該內(nèi)容的碎片整理執(zhí)行標志202設定為無效(S307)。在內(nèi)容整體未被配置到連續(xù)的塊的情況下(S306:否),跳過步驟S307。
[0155]在步驟S308中,脫機碎片整理處理模塊302判斷是否存在下一個內(nèi)容。在存在下一個內(nèi)容的情況下(S308:是),脫機碎片整理處理模塊302返回到步驟S202。在不存在下一個內(nèi)容的情況下(S308:否),脫機碎片整理處理模塊302結(jié)束脫機碎片整理。
[0156]此外,存儲系統(tǒng)100也可以不執(zhí)行脫機碎片整理和/或更新請求時的聯(lián)機碎片整理。存儲系統(tǒng)100還可以不參照碎片整理執(zhí)行標志地執(zhí)行整個內(nèi)容的脫機碎片整理。存儲系統(tǒng)100也可以在參照請求的高速緩存命中(hit)時執(zhí)行聯(lián)機碎片整理。還可以不使用碎片整理執(zhí)行標志。
[0157]實施例2
[0158]本實施例說明與高速緩存擴展裝置協(xié)作的碎片整理方法。如圖10所示,相對于文件存儲裝置10以及服務器11連接高速緩存擴展裝置18,能夠擴展存儲區(qū)域103。利用高速緩存擴展裝置18所賦予的高速緩存擴展區(qū)域可以由以快閃存儲器為代表的Non VolatileMemory(NVM,非易失性存儲器)等存儲介質(zhì)構(gòu)成。另外,高速緩存擴展區(qū)域可以當作臨時保存存儲區(qū)域的數(shù)據(jù)的交換區(qū)域來使用,也可以直接當作存儲區(qū)域來使用。
[0159]在將高速緩存擴展區(qū)域看作與通常的存儲區(qū)域同樣的情況下,由于與實施例1相比沒有變更部分,故省略說明。以下,針對高速緩存擴展區(qū)域被當作二次高速緩存器區(qū)域或者交換(swap)區(qū)域使用的情況進行說明。
[0160]在圖10中,內(nèi)容B由數(shù)據(jù)塊B0、B1、B2、B3構(gòu)成。數(shù)據(jù)塊B0、B1、B2、B3在介質(zhì)區(qū)域104
中保存于非連續(xù)的塊。主機參照請求請求參照數(shù)據(jù)塊BI。
[0161]聯(lián)機碎片整理處理模塊301將數(shù)據(jù)塊BO和B2與數(shù)據(jù)塊BI—起讀出。由于存儲區(qū)域103是有限的,所以無法將全部的數(shù)據(jù)都保持在存儲器上。此時,若存儲器吃緊(不足)則OS的頁面回收處理模塊動作。例如,在邏輯上連續(xù)的數(shù)據(jù)塊B0、B1、B2中的某個成為恢復對象的情況下,以保持它們的連續(xù)性不變地在高速緩存擴展裝置18內(nèi)連續(xù)的方式配置數(shù)據(jù)塊80、81、82。通過這樣,從高速緩存擴展裝置讀出數(shù)據(jù)塊即、81、82的性能上升。
[0162]另外,在執(zhí)行碎片整理時,碎片整理控制程序300不從介質(zhì)區(qū)域104讀出在高速緩存擴展區(qū)域中保存的數(shù)據(jù),而將該數(shù)據(jù)寫出至介質(zhì)區(qū)域104內(nèi)的連續(xù)地址。通過這樣,不需要從介質(zhì)區(qū)域104讀出的I/O,能夠提高碎片整理性能。
[0163]以與存儲區(qū)域103中保存的數(shù)據(jù)同樣的方式處理高速緩存擴展區(qū)域中保存的數(shù)據(jù)。在由OS管理的存儲器管理信息中僅記錄數(shù)據(jù)的保存目的地。因此,與在實施例1中說明的聯(lián)機碎片整理處理以及脫機碎片整理處理沒有變化。
[0164]此處,針對頁面回收處理進行說明。頁面是存儲區(qū)域103中的數(shù)據(jù)保存單位。圖11示出本實施例中的存儲區(qū)域103上的頁面回收處理。頁面回收處理模塊參照對頁面的參照頻率進行管理的存儲器管理信息,選擇參照頻率低的頁面(S401)。頁面回收處理模塊判斷在選擇頁面所指向的內(nèi)容管理表200中碎片整理執(zhí)行標志202是否有效(S402)。
[0165]在碎片整理執(zhí)行標志202無效的情況下(S402:否),頁面回收處理部進行選擇頁面的回收處理(S403)。在碎片整理執(zhí)行標志202有效的情況下(S402:是),頁面回收處理部判斷在存儲器中是否存在選擇頁面周圍的邏輯上連續(xù)的數(shù)據(jù)(S404)。
[0166]在不存在邏輯上連續(xù)的數(shù)據(jù)的情況下(S404:否),頁面回收處理部將選擇頁面決定為向二次高速緩存器區(qū)域或者交換區(qū)域移動的移動對象(S405)。在存在邏輯上連續(xù)的數(shù)據(jù)的情況下(S404:是),頁面回收處理部將包含選擇頁面在內(nèi)的連續(xù)數(shù)據(jù)的頁面決定為移動對象(S406)。
[0167]頁面回收處理部移動移動對象頁面的數(shù)據(jù),并回收移動前的頁面(S407)。頁面回收處理部對存儲管理信息進行變更,以使存儲器管理信息被移動了的數(shù)據(jù)的參照目的地為參照頁面的移動目的地(S408),然后結(jié)束處理。通過以上的處理,能夠提高被移動了的頁面數(shù)據(jù)的訪問性能。
[0168]實施例3
[0169]為了使碎片整理處理高速化,需要向物理上連續(xù)的區(qū)域高速地寫入數(shù)據(jù)。特別地,在使用快閃存儲器的情況下,向曾經(jīng)寫入過數(shù)據(jù)的數(shù)據(jù)區(qū)域的覆寫的性能很低。
[0170]在創(chuàng)建存儲池并僅分配實際使用大小的存儲設備的物理區(qū)域的情況下,通過碎片整理而被移動了數(shù)據(jù)的區(qū)域在空白塊管理程序310中是空白區(qū)域,但是在未進行存儲池的釋放處理的情況下,在存儲池中是使用區(qū)域。即,通過應用碎片整理,使存儲池的使用區(qū)域增加,導致物理存儲區(qū)域的使用效率變差。本實施例解決了這些問題。
[0171]以下,說明搭載了采用LFS的文件系統(tǒng)的文件存儲系統(tǒng)的例子。以下說明的方法并不限定于LFS,在搭載了未采用LFS的文件系統(tǒng)的存儲系統(tǒng)中,能夠用于對已經(jīng)沒有在使用的塊的釋放(修整(Trim)處理)未被使用的塊。
[0172]LFS自動且連續(xù)地生成文件系統(tǒng)的快照。LFS在更新內(nèi)容時,不覆寫與內(nèi)容的更新位置對應的介質(zhì)區(qū)域104上的塊的數(shù)據(jù),而是將更新數(shù)據(jù)寫入至介質(zhì)區(qū)域104上的其他塊。通過這樣,能夠恢復以前的任意時間點的數(shù)據(jù)。在存儲區(qū)域103上,與內(nèi)容的更新位置對應的塊的數(shù)據(jù)被覆寫。將該任意時間點稱為檢查點(checkpoint)。
[0173]圖12示出實施例3的概要。向?qū)嵤├?的結(jié)構(gòu)追加了維持檢查點數(shù)管理表500和釋放塊列表510。管理者能夠通過管理計算機15來設定維持檢查點數(shù)管理表500中的維持檢查點數(shù)502。
[0174]在維持檢查點數(shù)管理表500中,維持檢查點數(shù)502示出維持了從現(xiàn)在處理的最新的檢查點起到多久以前的檢查點。維持檢查點數(shù)502不包含快照。一部分檢查點的數(shù)據(jù)被保存為快照。能夠通過管理計算機15指定被選擇為快照的檢查點。
[0175]維持從最新的檢查點到除了快照以外的維持檢查點數(shù)為止的數(shù)據(jù)。保存有更加以前的檢查點的數(shù)據(jù)的塊如后述那樣被釋放。
[0176]釋放塊列表510示出伴隨碎片整理或者增加檢查點而使在某個檢查點變?yōu)榱四軌蜥尫诺慕橘|(zhì)區(qū)域104的塊地址。在創(chuàng)建某個檢查點時,釋放塊回收處理模塊也可以將該釋放塊列表510與檢查點建立鏈接地保存于介質(zhì)區(qū)域104。在這種結(jié)構(gòu)中,針對每一個檢查點創(chuàng)建釋放塊列表510。
[0177]釋放塊回收處理模塊針對每一個檢查點讀出釋放塊列表510,直到(最新檢查點-維持檢查點數(shù)N)的檢查點為止進行包含了修整(Trim)處理等在內(nèi)的釋放處理。
[0178]在圖11中創(chuàng)建存儲池150。存儲池150的存儲區(qū)域由一個或者多個NVM等高速存儲裝置151的存儲區(qū)域以及一個或者多個HDD等低速存儲設備152的存儲區(qū)域構(gòu)成。
[0179]釋放塊回收處理模塊與主機請求處理同步或者不同步地工作。釋放塊回收處理模塊基于到維持檢查點數(shù)管理表500的維持檢查點數(shù)502為止被登記的釋放塊列表,對高速緩存擴展裝置18或者存儲池150中的塊進行釋放處理(修整(Trim)處理)。通過這樣,高速緩存擴展裝置18或者存儲池150能夠進行區(qū)域釋放處理。
[0180]圖13示出釋放塊回收處理模塊的流程圖。文件存儲系統(tǒng)100保持有將檢查點和塊地址建立關(guān)聯(lián)的未圖示的檢查點管理信息。釋放塊回收處理模塊在檢查點管理信息中搜索并選擇最早的檢查點(S501),判斷選擇檢查點是否是(最新檢查點-維持檢查點數(shù)N)以前的檢查點(S502)。如上述,從計數(shù)中減去快照。
[0181]在步驟S502的判斷結(jié)果為否定的情況下(S502:否),釋放塊回收處理模塊結(jié)束處理。在步驟S502的判斷結(jié)果為肯定的情況下(S502:是),釋放塊回收處理模塊讀出選擇檢查點的釋放塊列表510(S503)。
[0182]空白塊管理程序310將釋放塊列表510的釋放塊地址變更到空白塊(S504)。釋放塊回收處理模塊進行釋放塊的釋放處理(剪裁處理)(S505),并返回到步驟S501。通過以上的處理,能夠釋放不使用的塊來實現(xiàn)存儲區(qū)域的有效利用。
[0183]以上,針對維持來自主機裝置的I/O性能不變地使碎片整理處理高速化的本發(fā)明,按照實施例進行了說明,但是本發(fā)明并不限定于上述的實施例,而是包含各種各樣的變形例。例如,上述的實施例為了易于理解地說明本發(fā)明而進行了詳細的說明,并不限定于說明了的全部結(jié)構(gòu)。另外,能夠?qū)⒁粋€實施例的結(jié)構(gòu)的一部分替換成其他實施例的結(jié)構(gòu),另外,也能夠?qū)⒁粋€實施例的結(jié)構(gòu)加上其他實施例的結(jié)構(gòu)。另外,針對各實施例的結(jié)構(gòu)的一部分,能夠追加、刪除、替換其他結(jié)構(gòu)。
[0184]另外,上述各結(jié)構(gòu)、功能、處理部等的一部分或者全部例如也可以通過利用集成電路進行設計等由硬件來實現(xiàn)。另外,上述各結(jié)構(gòu)、功能等還可以通過由處理器對實現(xiàn)各個功能的程序進行解譯并執(zhí)行而由軟件來實現(xiàn)。實現(xiàn)各功能的程序、表、文件等的信息能夠容置于存儲器、硬磁盤、SSD(Solid State Drive,固態(tài)硬磁盤驅(qū)動器)等記錄裝置,或者IC卡、SD卡等記錄介質(zhì)中。
【主權(quán)項】
1.一種存儲系統(tǒng),其特征在于,具有: 介質(zhì)區(qū)域,其由一個或者多個存儲設備提供,并保存內(nèi)容的數(shù)據(jù),以及 控制器,其包括臨時保存所述介質(zhì)區(qū)域的數(shù)據(jù)的存儲區(qū)域, 所述控制器取得包含于內(nèi)容并保存在所述介質(zhì)區(qū)域中的參照請求數(shù)據(jù)塊的參照請求,決定包含所述參照請求數(shù)據(jù)塊在內(nèi)的在所述內(nèi)容內(nèi)連續(xù)的多個數(shù)據(jù)塊在所述介質(zhì)區(qū)域上的地址中的間隙數(shù), 基于所述間隙數(shù),判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效, 在判斷為所述碎片整理有效的情況下,將從所述介質(zhì)區(qū)域讀出到所述存儲區(qū)域的所述多個數(shù)據(jù)塊寫出至所述介質(zhì)區(qū)域的連續(xù)地址區(qū)域。2.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器在所述參照請求數(shù)據(jù)塊沒有高速緩存在所述存儲區(qū)域中的情況下,將包含所述參照請求數(shù)據(jù)塊在內(nèi)的所述多個數(shù)據(jù)塊從所述介質(zhì)區(qū)域讀出到所述存儲區(qū)域, 基于所述讀出的多個數(shù)據(jù)塊的間隙數(shù),判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效, 在所述參照請求數(shù)據(jù)塊高速緩存在所述存儲區(qū)域中的情況下,不從所述介質(zhì)區(qū)域讀出所述多個數(shù)據(jù)塊,返回被高速緩存的所述參照請求數(shù)據(jù)塊。3.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器在伴隨著更新請求數(shù)據(jù)塊的所述內(nèi)容的更新請求的處理中,在所述內(nèi)容內(nèi)連續(xù)且包含所述更新請求數(shù)據(jù)塊在內(nèi)的多個數(shù)據(jù)塊高速緩存在所述存儲區(qū)域中的情況下,將包含所述更新請求數(shù)據(jù)塊在內(nèi)的多個數(shù)據(jù)塊寫出至所述介質(zhì)區(qū)域的連續(xù)地址區(qū)域。4.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器基于所述多個數(shù)據(jù)塊在所述內(nèi)容內(nèi)所占的范圍,來判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效。5.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器包括對所述內(nèi)容的碎片整理的執(zhí)行進行控制的碎片整理執(zhí)行控制信息,在所述內(nèi)容內(nèi)的全部數(shù)據(jù)在所述介質(zhì)區(qū)域內(nèi)被保存于連續(xù)地址區(qū)域的情況下,將所述碎片整理執(zhí)行控制信息設定為碎片整理無效, 在所述碎片整理執(zhí)行控制信息表示碎片整理有效的情況下,基于所述間隙數(shù),判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效。6.如權(quán)利要求5所述的存儲系統(tǒng),其特征在于, 所述控制器基于所述內(nèi)容的更新請求的種類,判斷是否將所述碎片整理執(zhí)行控制信息設定為碎片整理無效。7.如權(quán)利要求5所述的存儲系統(tǒng),其特征在于, 所述控制器在所述碎片整理執(zhí)行控制信息表示碎片整理有效的情況下,對所述內(nèi)容執(zhí)行脫機碎片整理,在所述碎片整理執(zhí)行控制信息表示碎片整理無效的情況下,省略脫機碎片整理。8.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器包括存儲器擴展區(qū)域,所述存儲器擴展區(qū)域與所述存儲區(qū)域連接來擴展所述存儲區(qū)域, 將保存于所述存儲區(qū)域并在所述內(nèi)容內(nèi)連續(xù)的數(shù)據(jù)塊移動到所述存儲器擴展區(qū)域中的連續(xù)地址區(qū)域。9.如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 所述控制器保持釋放塊管理信息,所述釋放塊管理信息對在所述介質(zhì)區(qū)域中保存有以前的數(shù)據(jù)且應該釋放的塊進行管理, 在所述介質(zhì)區(qū)域中,執(zhí)行對所述釋放塊管理信息中登記的塊的釋放處理。10.一種存儲系統(tǒng)的控制方法,其中,所述存儲系統(tǒng)具有: 介質(zhì)區(qū)域,其由一個或者多個存儲設備提供,并保存內(nèi)容的數(shù)據(jù);以及 存儲區(qū)域,其臨時保存所述介質(zhì)區(qū)域的數(shù)據(jù); 所述控制方法的特征在于, 取得包含于內(nèi)容并保存在所述介質(zhì)區(qū)域中的參照請求數(shù)據(jù)塊的參照請求, 決定包含所述參照請求數(shù)據(jù)塊在內(nèi)的在所述內(nèi)容內(nèi)連續(xù)的多個數(shù)據(jù)塊在所述介質(zhì)區(qū)域上的地址中的間隙數(shù), 基于所述間隙數(shù),判斷基于所述多個數(shù)據(jù)塊的碎片整理是否有效, 在判斷為所述碎片整理有效的情況下,將保存于所述存儲區(qū)域的所述多個數(shù)據(jù)塊寫出至所述介質(zhì)區(qū)域的連續(xù)地址區(qū)域。
【文檔編號】G06F3/06GK106062703SQ201480076664
【公開日】2016年10月26日
【申請日】2014年3月27日
【發(fā)明人】早坂光雄, 野村賢, 松澤敬, 松澤敬一, 龜井仁志
【申請人】株式會社日立制作所