專利名稱:壓縮和存儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)和存儲(chǔ)控制方法
技術(shù)領(lǐng)域:
本發(fā)明總地涉及壓縮和存儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)控制。
背景技術(shù):
例如,專利引用1中揭示的存儲(chǔ)系統(tǒng)已知是壓縮和存儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)。專利引用1 日本延遲公開專利公開2006-259962。
發(fā)明內(nèi)容
技術(shù)問題存儲(chǔ)系統(tǒng)通常包括控制器和一組存儲(chǔ)設(shè)備。數(shù)據(jù)元素由控制器壓縮,并且壓縮的數(shù)據(jù)元素存儲(chǔ)在存儲(chǔ)空間中,存儲(chǔ)空間基于一組存儲(chǔ)設(shè)備。通常,如果壓縮方法不同,數(shù)據(jù)元素被壓縮后的長(zhǎng)度是不同的,或者即使壓縮方法相同,根據(jù)壓縮前數(shù)據(jù)元素的內(nèi)容,數(shù)據(jù)元素被壓縮后的長(zhǎng)度也是不同的。因此,提供給控制器的存儲(chǔ)器中存儲(chǔ)的管理信息量會(huì)變大。原因是,在該管理信息中,例如,需要包括指定存儲(chǔ)空間中的空存儲(chǔ)區(qū)域的位置和長(zhǎng)度的信息元素,并且當(dāng)空存儲(chǔ)區(qū)域的數(shù)目變大時(shí)這些信息元素的數(shù)目增加。另外,在該管理信息中,例如,需要包括指定已經(jīng)被壓縮的數(shù)據(jù)元素的存儲(chǔ)位置和長(zhǎng)度的信息元素,并且當(dāng)被壓縮的數(shù)據(jù)元素的數(shù)目變大時(shí),這些信息元素的數(shù)目也增加。作為減小管理信息量變大的可能性的一個(gè)方法,考慮了一種方法,將存儲(chǔ)空間劃分為固定長(zhǎng)度的存儲(chǔ)區(qū)域(下文中稱為固定大小區(qū)域),并且存儲(chǔ)已經(jīng)被壓縮在一個(gè)固定大小區(qū)域中的一個(gè)數(shù)據(jù)元素;換句話說,以這些固定大小區(qū)域?yàn)閱挝粓?zhí)行管理。然而,根據(jù)該方法,如果固定大小區(qū)域的長(zhǎng)度長(zhǎng),在一個(gè)固定大小區(qū)域中可能存在長(zhǎng)的空區(qū)域(即除了由壓縮的數(shù)據(jù)元素占據(jù)的區(qū)域之外的區(qū)域),并且結(jié)果容量效率將變差。另一方面,如果固定大小區(qū)域的長(zhǎng)度短,盡管在一個(gè)固定大小區(qū)域內(nèi)存在的空區(qū)域的長(zhǎng)度變短,必須被管理的固定大小區(qū)域的數(shù)目變大。由此,如果對(duì)于管理信息量存在限制,如果固定大小區(qū)域的長(zhǎng)度短,能夠被管理的一組固定大小區(qū)域的總長(zhǎng)度短,并且結(jié)果是能夠存儲(chǔ)在存儲(chǔ)空間中的數(shù)據(jù)長(zhǎng)度(即被壓縮數(shù)據(jù)元素的總長(zhǎng)度)也短。換句話說,容量可擴(kuò)展性可能惡化。因而,本發(fā)明的目的是提供其中壓縮了數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)中的高容量效率,同時(shí)確保容量可擴(kuò)展性不下降。技術(shù)方案基于包括在存儲(chǔ)系統(tǒng)中的多個(gè)存儲(chǔ)設(shè)備提供了池。該池由多個(gè)真實(shí)頁(物理存儲(chǔ)區(qū)域)組成。不同長(zhǎng)度的真實(shí)頁包括在該多個(gè)真實(shí)頁中??刂破靼▔嚎s部、池管理部和I/O處理部。壓縮部對(duì)虛擬卷中包括的多個(gè)虛擬頁(虛擬存儲(chǔ)區(qū)域)中的寫目的地虛擬頁壓縮寫數(shù)據(jù)元素。
池管理部選擇滿足以下描述的(條件A)和(條件B)的真實(shí)頁,并將所選擇的真實(shí)頁分配給所述寫目的地虛擬頁(條件A)所述真實(shí)頁的真實(shí)頁長(zhǎng)度是基于具有壓縮后的寫數(shù)據(jù)元素的數(shù)據(jù)單元的長(zhǎng)度;(條件B)所述真實(shí)頁未被分配給任何虛擬頁。I/O處理部在已選擇的真實(shí)頁中存儲(chǔ)所述數(shù)據(jù)單元。數(shù)據(jù)單元由所述壓縮后的寫數(shù)據(jù)元素自身組成,或由特定信息和所述壓縮后的寫數(shù)據(jù)元素組成。該特定信息可以是例如數(shù)據(jù)整體性碼(例如ECC(錯(cuò)誤校正碼))。這里,“數(shù)據(jù)元素”(例如,寫數(shù)據(jù)元素)是用于一個(gè)虛擬頁的元素,并且可以具有例如與虛擬頁長(zhǎng)度相同的長(zhǎng)度。通過使得數(shù)據(jù)元素被壓縮,成為比虛擬頁長(zhǎng)度短的數(shù)據(jù)元素(有時(shí)由于數(shù)據(jù)元素的內(nèi)容等,不會(huì)發(fā)生這種情況)。壓縮部、池管理部和I/O處理部中的至少一個(gè)可以由硬件、計(jì)算機(jī)程序或其組合 (例如,一個(gè)部分可以由計(jì)算機(jī)程序?qū)嵤┒溆嗖糠挚梢杂捎布?shí)施)組成。
圖1是根據(jù)本發(fā)明第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖;圖2是示出管理終端102的結(jié)構(gòu)的圖;圖3是各種表的結(jié)構(gòu)圖;圖4示出了在本發(fā)明第一實(shí)施例中的池管理屏幕401的示例;圖5是出了虛擬LU管理屏幕501的示例;圖6是寫處理的流程圖;圖7是本發(fā)明第一實(shí)施例中的真實(shí)頁讀處理的流程圖;圖8是本發(fā)明第一實(shí)施例中的真實(shí)頁寫處理的流程圖;圖9是缺省長(zhǎng)度真實(shí)頁選擇處理的流程圖;圖10是真實(shí)頁選擇處理的流程圖;圖11是本發(fā)明第一實(shí)施例中的讀取處理的流程圖;圖12示出了本發(fā)明第二實(shí)施例的非易失性存儲(chǔ)器130中保存的程序和表;圖13是本發(fā)明第二實(shí)施例中的表1300、1310、1320和1330的結(jié)構(gòu)圖;圖14示出了本發(fā)明第二實(shí)施例中的池管理屏幕1401的示例;圖15示出了真實(shí)頁長(zhǎng)度管理屏幕1501的示例;圖16是本發(fā)明第二實(shí)施例中缺省長(zhǎng)度真實(shí)頁選擇處理的流程圖;圖17是本發(fā)明第二實(shí)施例中的真實(shí)頁選擇處理的流程圖;圖18是大塊無用數(shù)據(jù)(chunk garbage)收集處理的流程圖;圖19是本發(fā)明第三實(shí)施例中的虛擬頁表1900的結(jié)構(gòu)圖;圖20是本發(fā)明第三實(shí)施例中的真實(shí)頁選擇處理的流程圖;圖21是本發(fā)明第四實(shí)施例中的虛擬頁表2137的結(jié)構(gòu)圖;圖22是本發(fā)明第四實(shí)施例中的真實(shí)頁讀處理的流程圖;圖23是臨時(shí)真實(shí)頁寫處理的流程圖;圖M是本發(fā)明第四實(shí)施例中的讀處理的流程圖25是異步壓縮處理的流程圖;圖沈是出了本發(fā)明第一實(shí)施例的概括;圖27示出了實(shí)施例的概括,其中在本發(fā)明第一至第三實(shí)施例的組合中,虛擬LU是次級(jí)LU ;圖2名k是本發(fā)明第四實(shí)施例的變型中的虛擬頁表2137的結(jié)構(gòu)圖;圖28B示出了在本發(fā)明第四實(shí)施例的變型中存儲(chǔ)在非易失性存儲(chǔ)器130中的訪問
頻率管理程序;圖^C示出了在本發(fā)明第四實(shí)施例的變型中改變異步壓縮處理的位置;圖29A示出了如同在本發(fā)明第二實(shí)施例的第二變型例中執(zhí)行的在池子區(qū)域之間復(fù)制數(shù)據(jù)單元;圖29B示出了在本發(fā)明第二實(shí)施例的第二變型例中作為復(fù)制源的真實(shí)頁的狀態(tài)已經(jīng)被從“已使用,,更新為“未使用,,;以及圖^C示出了作為復(fù)制源的池子區(qū)域的狀態(tài)已經(jīng)被從“已使用”更新為“未使用”。附圖標(biāo)記說明110:存儲(chǔ)系統(tǒng)
具體實(shí)施例方式將參考
本發(fā)明的幾個(gè)實(shí)施例。應(yīng)當(dāng)理解在下文中當(dāng)相同類型的元素沒有被特別區(qū)分時(shí),只使用相同的基本數(shù)字,但是,當(dāng)要區(qū)分相同類型的元素時(shí),將使用基本數(shù)字和附帶附圖標(biāo)記的組合。發(fā)明方式1圖沈示出了本發(fā)明第一實(shí)施例的概括。存儲(chǔ)系統(tǒng)110包括控制器120和池2601。池沈01由多個(gè)池子區(qū)域沈03 (例如三個(gè)池子區(qū)域2603A至組成。每個(gè)池子區(qū)域沈03包括多個(gè)真實(shí)頁沈07。這些真實(shí)頁沈07的長(zhǎng)度(即真實(shí)頁長(zhǎng)度)對(duì)于每個(gè)池子區(qū)域沈03定義。例如,池子區(qū)域中的真實(shí)頁的長(zhǎng)度可以長(zhǎng)于池區(qū)域2603A 中的真實(shí)頁2607A的長(zhǎng)度,并且池子區(qū)域中的真實(shí)頁的長(zhǎng)度可以長(zhǎng)于真實(shí)頁
的長(zhǎng)度。一個(gè)池子區(qū)域沈03中的所有的真實(shí)頁是相同長(zhǎng)度。池沈01是基于多個(gè) HDD (硬盤驅(qū)動(dòng))的物理存儲(chǔ)空間,并且因此,每個(gè)真實(shí)頁沈07是物理存儲(chǔ)區(qū)域。控制器120將虛擬LU (邏輯單元)2605提供給主機(jī)。每個(gè)虛擬LU沈05由多個(gè)虛擬頁沈09組成。虛擬L似605是虛擬邏輯卷(即不基于HDD的卷)。因此,每個(gè)虛擬頁沈09 是虛擬存儲(chǔ)區(qū)域。一個(gè)虛擬LU沈05中的所有虛擬頁沈09是相同長(zhǎng)度。真實(shí)頁沈07的最大長(zhǎng)度可以例如與虛擬頁2609的長(zhǎng)度相同。下面,將說明第一實(shí)施例中執(zhí)行的處理的概括。在從主機(jī)接收到寫請(qǐng)求時(shí),控制器120對(duì)于每個(gè)寫數(shù)據(jù)元素(出于說明方便,在圖中簡(jiǎn)寫為“WDE”)(換種方式,對(duì)于屬于由該寫請(qǐng)求指定的寫范圍的每個(gè)虛擬頁)執(zhí)行下述處理。即,控制器120壓縮寫數(shù)據(jù)元素。接下來,控制器120選擇真實(shí)頁沈07,該真實(shí)頁 2607的長(zhǎng)度基于該壓縮的寫數(shù)據(jù)元素(出于說明方便,在圖中簡(jiǎn)寫為“CWDE”)中包括的數(shù)據(jù)單元的長(zhǎng)度,并且是沒有被分配給任何虛擬頁沈09的真實(shí)頁沈07 (換句話說,未使用的真實(shí)頁)。以更加具體的方式,例如,控制器120選擇長(zhǎng)度滿足下面兩個(gè)條件(a)和(b)的真實(shí)頁2607 (a)大于或等于數(shù)據(jù)單元的長(zhǎng)度;(b)與該數(shù)據(jù)單元的長(zhǎng)度的差異最小。根據(jù)圖沈中的示例,由于數(shù)據(jù)單元的長(zhǎng)度與真實(shí)頁的長(zhǎng)度相同,相應(yīng)地選擇真實(shí)頁2607B。并且控制器120將該數(shù)據(jù)單元存儲(chǔ)在已經(jīng)被選擇的真實(shí)頁中。數(shù)據(jù)單元可以是壓縮的寫數(shù)據(jù)元素本身,或者可以由具有附加的數(shù)據(jù)整體性碼(例如ECC(錯(cuò)誤校正碼))的壓縮的寫數(shù)據(jù)元素組成。通過將數(shù)據(jù)整體性碼附加到壓縮的寫數(shù)據(jù)元素,可以防止壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)錯(cuò)誤。下面,將詳細(xì)說明本發(fā)明的第一實(shí)施例。應(yīng)當(dāng)理解,下面出于說明方便,假設(shè)數(shù)據(jù)單元是壓縮的數(shù)據(jù)元素本身。圖1是根據(jù)本發(fā)明第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖。多個(gè)主機(jī)101以及存儲(chǔ)系統(tǒng)110連接到第一通信網(wǎng)絡(luò)103,第一通信網(wǎng)絡(luò)103例如是SAN(存儲(chǔ)區(qū)域網(wǎng)絡(luò))。另外,管理終端102和存儲(chǔ)系統(tǒng)110連接至第二通信網(wǎng)絡(luò),第二通信網(wǎng)絡(luò)例如是管理網(wǎng)絡(luò)104(例如可以是LAN(局域網(wǎng)))。主機(jī)101是向存儲(chǔ)系統(tǒng)110發(fā)出I/O請(qǐng)求(寫請(qǐng)求或讀請(qǐng)求)的計(jì)算機(jī)。管理終端102是用于管理存儲(chǔ)系統(tǒng)110的終端。存儲(chǔ)系統(tǒng)110包括控制器120和一組存儲(chǔ)設(shè)備114。存儲(chǔ)設(shè)備組114包括多個(gè)HDD 111。應(yīng)當(dāng)理解,替代HDD 111,也可以利用其它類型的物理存儲(chǔ)設(shè)備,例如閃存設(shè)備等??刂破?20接收從主機(jī)100發(fā)出的I/O請(qǐng)求,并且在處理該I/O請(qǐng)求時(shí)訪問一個(gè)或多個(gè)HDD 111。該控制器120包括多個(gè)主機(jī)IF 121,管理IF 122,CPU123,主存儲(chǔ)器 (MAIN) 124,高速緩存存儲(chǔ)器(CM) 125,壓縮和擴(kuò)展電路(C/E電路)1 ,非易失性存儲(chǔ)器130 以及 HDD IF 127。主機(jī)IF 121是用于與外部設(shè)備(例如主機(jī)101等)通信的接口電路。管理IF 122是用于經(jīng)由管理網(wǎng)絡(luò)104與例如管理終端102的外部設(shè)備通信的接口電路。HDD IF 127是用于與HDD 111通信的接口電路。高速緩存存儲(chǔ)器125可以是例如易失性存儲(chǔ)器。根據(jù)已經(jīng)從主機(jī)101接收的寫請(qǐng)求而寫入的數(shù)據(jù)以及根據(jù)已經(jīng)從主機(jī)101接收的請(qǐng)求而讀取的數(shù)據(jù)被臨時(shí)存儲(chǔ)在該存儲(chǔ)器125中。壓縮和擴(kuò)展電路1 是硬件電路,并且壓縮或擴(kuò)展已經(jīng)被輸入的數(shù)據(jù)元素,然后輸出該數(shù)據(jù)元素。代替由硬件電路執(zhí)行,該壓縮和擴(kuò)展中的至少一個(gè)也能由執(zhí)行計(jì)算機(jī)程序的CPU 123執(zhí)行。管理終端通信程序131、池管理程序132、I/O處理程序133、真實(shí)LU表134、池表 135、真實(shí)頁表136、虛擬頁表137以及虛擬LU表138存儲(chǔ)在非易失性存儲(chǔ)器130中。存儲(chǔ)在非易失性存儲(chǔ)器130中的這些計(jì)算機(jī)程序被載入主存儲(chǔ)器124,然后由CPU 123執(zhí)行。管理終端通信程序131是用于與管理終端102(更具體地,與下面將會(huì)描述的存儲(chǔ)通信程序 149)通信的程序。池管理程序132是用于執(zhí)行與池管理(例如真實(shí)頁的選擇等)相關(guān)的處理的程序。I/O處理程序133是用于執(zhí)行與1/0(例如向真實(shí)頁存儲(chǔ)壓縮數(shù)據(jù)等)相關(guān)的處理的程序。這些各種程序和表將在下面詳細(xì)描述。在下面的說明中,被描述作為由計(jì)算機(jī)程序執(zhí)行的處理實(shí)際上由執(zhí)行這些計(jì)算機(jī)程序的CPU執(zhí)行。圖2是示出管理終端102的結(jié)構(gòu)的圖。該管理終端102是計(jì)算機(jī)并且例如包括輸入設(shè)備142、輸出設(shè)備143、CPU144、主存儲(chǔ)器145、管理IF 146以及HDD 147。每個(gè)都連接到內(nèi)部總線150。該輸入設(shè)備142是點(diǎn)擊設(shè)備(例如鼠標(biāo))和/或鍵盤。輸出設(shè)備143是例如顯示設(shè)備。用戶接口控制程序(下文中稱為“UI控制程序”)148以及存儲(chǔ)通信程序149存儲(chǔ)在HDD 147中(一些其它類型的存儲(chǔ)設(shè)備也可用)。這些計(jì)算機(jī)程序被載入主存儲(chǔ)器 145,并且一旦被載入,由CPU 144執(zhí)行。管理IF 146是用于經(jīng)由管理網(wǎng)絡(luò)104與外部設(shè)備 (例如存儲(chǔ)系統(tǒng)110等)通信的接口電路。UI控制程序148是用于在輸出設(shè)備143上顯示 GUI (圖形用戶接口)的程序。存儲(chǔ)通信程序149是用于與存儲(chǔ)系統(tǒng)110通信的計(jì)算機(jī)程序。UI控制程序148以及存儲(chǔ)通信程序149將在下面詳細(xì)描述。圖3是示出各種表的結(jié)構(gòu)圖。真實(shí)LU表143是用于管理與真實(shí)LU相關(guān)的信息的表。具體地,對(duì)于每個(gè)真實(shí)LU, 該真實(shí)LU表134具有例如其中記錄了真實(shí)LU ID的域301以及其中記錄容量信息的域302。 用一個(gè)真實(shí)LU作為例子(在該段中,在下文中,被稱為“目標(biāo)真實(shí)LU”),各種類型的信息記錄在該表134中,如下所述。真實(shí)LU ID是表示用于目標(biāo)真實(shí)LU的識(shí)別符的信息。容量信息是表示目標(biāo)真實(shí)LU的存儲(chǔ)容量的信息。這里,“真實(shí)LU”是基于HDDlll的邏輯卷,并且該方面不同于虛擬LU。池表135是用于管理與池相關(guān)的信息的表。具體地,對(duì)于組成池的每個(gè)真實(shí)LU,該池表135可以具有例如其中記錄了真實(shí)LU ID的域311,其中記錄了其真實(shí)頁長(zhǎng)度的域312 以及其中記錄了第一真實(shí)頁ID的域313。用組成池沈01的真實(shí)LU的其中一個(gè)作為例子 (在該段中,在下文中,被稱為“目標(biāo)真實(shí)LU”),在該表135中記錄各種類型的信息,如下所述。真實(shí)LU ID是表示目標(biāo)真實(shí)LU的識(shí)別符的信息。真實(shí)頁長(zhǎng)度信息是表示組成目標(biāo)真實(shí)LU的真實(shí)頁的長(zhǎng)度的信息。第一真實(shí)頁ID是表示作為目標(biāo)真實(shí)LU的第一個(gè)的真實(shí)頁的識(shí)別符的信息。根據(jù)下面說明,在該第一實(shí)施例中,已經(jīng)參考圖沈說明的池子區(qū)域沈03 是真實(shí)LU。原因是對(duì)于每個(gè)真實(shí)LU定義了真實(shí)頁長(zhǎng)度。因此,能夠基于目標(biāo)真實(shí)LU的容量以及目標(biāo)真實(shí)LU的真實(shí)頁的真實(shí)頁長(zhǎng)度來計(jì)算組成目標(biāo)真實(shí)LU的真實(shí)頁數(shù)目。真實(shí)頁表136是用于管理與真實(shí)頁相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)真實(shí)頁,真實(shí)頁表136可以具有其中記錄了真實(shí)頁ID的域321、其中記錄了其真實(shí)LU ID的域 322以及其中記錄了其狀態(tài)信息的域323。用一個(gè)真實(shí)頁作為例子(在該段中,在下文中, 被稱為“目標(biāo)真實(shí)頁”),在該表136中記錄各種類型的信息,如下所述。真實(shí)頁ID是表示該目標(biāo)真實(shí)頁的識(shí)別符的信息。并且真實(shí)LU ID是表示包含該目標(biāo)真實(shí)頁的真實(shí)LU的識(shí)別符的信息。另外,狀態(tài)信息是表示該目標(biāo)真實(shí)頁的狀態(tài)的信息。例如,如果該目標(biāo)真實(shí)頁被分配給某虛擬頁,其狀態(tài)信息的值是“已使用”,而如果該目標(biāo)真實(shí)頁沒有被分配給任何虛擬頁,其狀態(tài)信息的值是“未使用”。應(yīng)當(dāng)理解,盡管表示真實(shí)頁的長(zhǎng)度的信息沒有記錄在該表136中,使用與該真實(shí)頁對(duì)應(yīng)的真實(shí)LU ID作為關(guān)鍵字,通過參考池表135,可以指定真實(shí)頁的長(zhǎng)度。原因是與真實(shí)LU ID對(duì)應(yīng)的真實(shí)頁長(zhǎng)度信息記錄在池表135中。
虛擬頁表137是用于管理與虛擬頁相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)虛擬頁,虛擬頁表137可以具有其中記錄了虛擬頁ID的域331、其中記錄了其真實(shí)頁ID的域 332以及其中記錄了其壓縮的數(shù)據(jù)長(zhǎng)度信息的域333。用一個(gè)虛擬頁作為例子(在該段中, 在下文中,被稱為“目標(biāo)虛擬頁”),在該表137中記錄各種類型的信息,如下所述。虛擬頁 ID是表示該目標(biāo)虛擬頁的識(shí)別符的信息。并且真實(shí)頁ID是表示分配給該目標(biāo)虛擬頁的真實(shí)頁的識(shí)別符的信息。應(yīng)當(dāng)理解,如果沒有真實(shí)頁被分配給目標(biāo)虛擬頁,該真實(shí)頁ID的值是例如“N/A” (沒有指派)。另外,壓縮數(shù)據(jù)長(zhǎng)度信息是表示存儲(chǔ)在分配給目標(biāo)虛擬頁的真實(shí)頁中的壓縮后的數(shù)據(jù)元素的長(zhǎng)度。如果沒有真實(shí)頁被分配給目標(biāo)虛擬頁,則該壓縮數(shù)據(jù)長(zhǎng)度信息的值是例如“N/A”。壓縮的數(shù)據(jù)長(zhǎng)度信息是例如在后述的真實(shí)頁讀處理和寫處理中,用于指定應(yīng)當(dāng)向哪個(gè)已經(jīng)被讀取的數(shù)據(jù)元素部分施加擴(kuò)展處理。例如,當(dāng)已經(jīng)從被分配給目標(biāo)虛擬頁的真實(shí)頁讀取的數(shù)據(jù)元素的長(zhǎng)度可以是512kB并且與目標(biāo)虛擬頁對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值可以表示346kB,可以發(fā)現(xiàn)擴(kuò)展處理應(yīng)當(dāng)被施加到512kB的數(shù)據(jù)元素的346kB的數(shù)據(jù)元素部分。虛擬LU表138是用于管理與虛擬LU相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)虛擬頁,虛擬LU表138可以具有其中記錄了虛擬LU ID的域341、其中記錄了容量信息的域 342、其中記錄了第一虛擬頁ID的域343以及其中記錄了壓縮信息的域344。用一個(gè)虛擬 LU作為例子(在該段中,在下文中,被稱為“目標(biāo)虛擬LU”),在該表138中記錄各種類型的信息,如下所述。虛擬LU ID是表示該目標(biāo)虛擬LU的識(shí)別符的信息。容量信息是表示對(duì)于目標(biāo)虛擬LU定義的容量的信息,換句話說,表示目標(biāo)虛擬LU的容量的信息。第一虛擬頁ID 是表示作為目標(biāo)虛擬LU的第一個(gè)的虛擬頁的識(shí)別符的信息。壓縮信息是表示是否壓縮了存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù)的信息。具體地,如果例如壓縮了存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù),則該壓縮信息的值是“開”,但是如果沒有壓縮存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù),則該壓縮信息的值是“關(guān)”?,F(xiàn)在,池沈01中的真實(shí)LU的真實(shí)頁的長(zhǎng)度可以例如由管理終端102的用戶通過使用圖4所示的池管理屏幕401來設(shè)置。另外,設(shè)置虛擬LU的容量,并且存儲(chǔ)在這些虛擬 LU中的數(shù)據(jù)元素是否被壓縮可以例如由管理終端102的用戶通過使用圖5所示的虛擬LU
管理屏幕501來設(shè)置。圖4示出了該池管理屏幕401的例子。該池管理屏幕401是由UI控制程序149顯示的⑶I。在該池管理屏幕401上,設(shè)置了用于要被添加到池2601中的真實(shí)LU的ID的輸入域402、以及用于輸入要被添加的該真實(shí)LU的真實(shí)頁的長(zhǎng)度的輸入域403。使用圖2所示的輸入設(shè)備142,用戶向真實(shí)LU ID 輸入域402輸入要被添加的真實(shí)LU的ID,并且也將該真實(shí)LU的真實(shí)頁的長(zhǎng)度輸入到真實(shí)頁大小輸入域403。輸入的真實(shí)LU ID可以例如是已經(jīng)記錄到真實(shí)LU表301中的多個(gè)真實(shí)LU ID之一。當(dāng)用戶按下“確認(rèn)”按鈕時(shí),存儲(chǔ)通信程序149通知存儲(chǔ)系統(tǒng)110表示已經(jīng)輸入到輸入域402的真實(shí)LU ID的信息和已經(jīng)輸入到輸入域403的真實(shí)頁長(zhǎng)度。并且在由存儲(chǔ)系統(tǒng)110中的管理終端通信程序131接收到該信息時(shí),池管理程序132執(zhí)行下述處理。 即,池管理程序132向池表135添加下述記錄其中記錄了表示由管理終端通信程序131接收的(換句話說,由用戶輸入的)真實(shí)LU ID和真實(shí)頁長(zhǎng)度信息的信息。另外,池管理程序 132向真實(shí)頁表136添加與所有真實(shí)頁對(duì)應(yīng)的記錄,這些真實(shí)頁組成已經(jīng)被添加池沈01的真實(shí)LU (即,包括它們的真實(shí)頁ID和它們的真實(shí)LU ID的記錄)。圖5示出了虛擬LU管理屏幕501的例子。虛擬LU管理屏幕501是由UI控制程序149顯示的⑶I。在該虛擬LU管理屏幕 501上,設(shè)置了用于虛擬LU的輸入域502、用于輸入該虛擬LU的容量的輸入域503以及用于選擇是否壓縮該虛擬LU中存儲(chǔ)的數(shù)據(jù)的選擇按鈕504。使用圖2所示的輸入設(shè)備142, 用戶向域502輸入虛擬LU的期望ID,并且還向輸入域503輸入該虛擬LU的容量。另外,用戶使用選擇按鈕504指定“壓縮開”或“壓縮關(guān)”。當(dāng)用戶按下“確認(rèn)”按鈕時(shí),存儲(chǔ)通信程序149通知存儲(chǔ)系統(tǒng)110表示已經(jīng)輸入到輸入域502的虛擬LU ID和已經(jīng)輸入到輸入域503的容量的信息以及與已經(jīng)被指定的選擇按鈕504對(duì)應(yīng)的信息(即“壓縮開”或“壓縮關(guān)”)。并且在由管理終端通信程序131接收到該信息時(shí),池管理程序132執(zhí)行下述處理。S卩,池管理程序132向虛擬LU表138添加下述記錄其中記錄了由管理終端通信程序131接收的(換句話說,由用戶輸入的)的信息。下面,將說明第一實(shí)施例中執(zhí)行的處理。圖6是用于寫處理的流程圖。該寫處理是下述處理如果由從主機(jī)101接收的寫請(qǐng)求指定的LU是虛擬LU,并且如果與該虛擬LU對(duì)應(yīng)的壓縮信息的值是“開”,則執(zhí)行的處理。具體地,在接收到寫請(qǐng)求時(shí), 池管理程序132決定從該接收到的寫請(qǐng)求指定的LUN中識(shí)別的LU是否是虛擬LU,并且與該虛擬LU對(duì)應(yīng)的壓縮信息的值(即記錄在虛擬LU表138中的值)是否是“開”。如果該決定結(jié)果是肯定的,則開始圖6所示的寫處理。池管理程序132指定與寫請(qǐng)求指定的寫范圍(例如與LBA和寫數(shù)據(jù)的長(zhǎng)度)對(duì)應(yīng)的一個(gè)或多個(gè)虛擬頁(步驟S601)。接下來,在步驟S601已經(jīng)指定的一個(gè)或多個(gè)虛擬頁中,池管理程序132將第一虛擬頁作為(步驟seo》下述處理(換句話說,步驟S603至S605)的目標(biāo)。接下來,池管理程序132在作為處理目標(biāo)的虛擬頁上執(zhí)行真實(shí)頁讀處理(步驟
5603)。下面將參考圖7描述該真實(shí)頁讀處理。接下來,池管理程序132在作為處理目標(biāo)的虛擬頁上執(zhí)行真實(shí)頁寫處理(步驟
5604)。下面將參考圖8描述該真實(shí)頁寫處理。接下來,池管理程序132決定是否完成了與步驟S601中指定的寫范圍對(duì)應(yīng)的所有虛擬頁的處理(步驟S605)。如果在步驟S605的該決定結(jié)果是否定的(步驟S605,否),則池管理程序132將沒有被處理的虛擬頁中的下一個(gè)虛擬頁作為后續(xù)處理(換句話說,由步驟S603至S605處理)的目標(biāo)(步驟S606),并對(duì)作為處理目標(biāo)的該虛擬頁執(zhí)行步驟S603。 另一方面,如果步驟S605中的決定結(jié)果是肯定的(步驟S605,是),則該寫處理終止。圖7是真實(shí)頁讀處理的流程圖。該真實(shí)頁讀處理是在圖6的步驟S603中執(zhí)行的處理。池管理程序132然后指定與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的真實(shí)頁(在圖7和圖8 中,縮寫為目標(biāo)真實(shí)頁“TRP”)(步驟S701)。如果池管理程序132在步驟S701的真實(shí)頁指定中成功(步驟S702,是),則執(zhí)行步驟S705以及后續(xù)步驟的處理,另一方面,如果在真實(shí)頁的指定中失敗(步驟S702,否),則執(zhí)行步驟S703和S704的處理。如果在步驟S702中在真實(shí)頁的指定中有失敗(步驟S702,否),池管理程序132決定這是第一次寫(步驟S703),在將數(shù)據(jù)元素(高速緩沖存儲(chǔ)器125中的數(shù)據(jù)元素)寫到作為處理目標(biāo)的虛擬頁之前和/或之后,在需要的時(shí)候添加一個(gè)或多個(gè)“0”,并且將添加0的該數(shù)據(jù)元素作為(步驟S704)后續(xù)處理的目標(biāo)(寫數(shù)據(jù)元素)。換句話說,如果將被寫到作為處理目標(biāo)的虛擬頁的數(shù)據(jù)元素比虛擬頁長(zhǎng)度短,通過在步驟S704中的該數(shù)據(jù)元素前和/ 或后添加具有沒有含義(例如0等)的數(shù)據(jù)(具體地,指定“0”的位數(shù)據(jù)),通過將該數(shù)據(jù)元素的整個(gè)長(zhǎng)度作為與虛擬頁的長(zhǎng)度相同來執(zhí)行處理。另一方面,如果在步驟S702的真實(shí)頁的指定已經(jīng)成功(步驟S702,是),則池管理程序132決定在作為處理目標(biāo)的虛擬頁上寫的數(shù)據(jù)元素的長(zhǎng)度是否與虛擬頁長(zhǎng)度相同(步驟S705)。如果該步驟S705中的決定的結(jié)果是否定的(步驟S705,否),則執(zhí)行步驟S706 和后續(xù)步驟的處理。另一方面,如果該步驟S705的決定的結(jié)果是肯定的(步驟S705,是), 則池管理程序132將寫到作為處理目標(biāo)的虛擬頁上的數(shù)據(jù)元素本身作為后續(xù)處理目標(biāo)(即寫數(shù)據(jù)元素)(步驟S710),并且然后該處理序列終止。如果在該步驟S705的決定結(jié)果是否定的(步驟S705,否),則I/O處理程序133讀取存儲(chǔ)在步驟S701中發(fā)現(xiàn)的真實(shí)頁上的數(shù)據(jù)元素(步驟S706)。接下來,池管理程序132 輸入已經(jīng)被讀到壓縮和擴(kuò)展電路1 的該數(shù)據(jù)元素,并且壓縮和擴(kuò)展電路1 對(duì)該壓縮的數(shù)據(jù)元素(換句話說,已經(jīng)被讀取的數(shù)據(jù)元素)執(zhí)行擴(kuò)展(步驟S707)。并且I/O處理程序133使用已經(jīng)被擴(kuò)展的該數(shù)據(jù)元素來蓋寫作為處理目標(biāo)的虛擬頁上寫的數(shù)據(jù)元素(步驟 S708)。另外,池管理程序132將步驟S708中被蓋寫的數(shù)據(jù)元素作為用于后續(xù)處理的目標(biāo) (即寫數(shù)據(jù)元素)(步驟S709)。下面,在圖8至圖10的說明中,從步驟S704、S709和S710得到的數(shù)據(jù)將被稱為 “寫數(shù)據(jù)元素”。從步驟S704得到的該寫數(shù)據(jù)元素或者是本身被寫到作為處理目標(biāo)的虛擬頁上的數(shù)據(jù)元素(換句話說,原始數(shù)據(jù)元素),或者是由該數(shù)據(jù)元素和在該數(shù)據(jù)元素前和/ 或后添加的0組成的數(shù)據(jù)元素。并且從步驟S709得到的寫數(shù)據(jù)元素是下述數(shù)據(jù)其中使用已從步驟S701中指定的真實(shí)頁讀取的并且擴(kuò)展的數(shù)據(jù)元素蓋寫在作為處理目標(biāo)的虛擬頁上寫的數(shù)據(jù)元素(換句話說,原始數(shù)據(jù)元素)。另外,作為步驟S710的處理結(jié)果的寫數(shù)據(jù)元素是寫在作為處理目標(biāo)的虛擬頁上的寫數(shù)據(jù)元素本身(換句話說,原始數(shù)據(jù)元素)。圖8是真實(shí)頁寫處理的流程圖。該真實(shí)頁寫處理是在圖6的步驟S604中執(zhí)行的處理。池管理程序132向壓縮和擴(kuò)展電路1 輸入寫數(shù)據(jù)元素(WDE),并且壓縮和擴(kuò)展電路1 壓縮寫數(shù)據(jù)元素(步驟S801)。結(jié)果,例如,輸入到電路126的寫數(shù)據(jù)元素(壓縮前的寫數(shù)據(jù)元素(在圖中簡(jiǎn)寫為“UWDE”))和已經(jīng)由電路1 壓縮的寫數(shù)據(jù)元素(在圖中簡(jiǎn)寫為“CWDE”)存在于高速緩存存儲(chǔ)器125中。接下來,池管理程序132決定在步驟S801壓縮的寫數(shù)據(jù)元素的長(zhǎng)度是否大于或等于虛擬頁長(zhǎng)度(步驟S802)。如果步驟S802的決定的結(jié)果是否定的(步驟S802,否),則池管理程序132將壓縮的寫數(shù)據(jù)元素作為寫目標(biāo)(步驟S803)。接下來,池管理程序132執(zhí)行圖10所示的真實(shí)頁選擇處理(在圖中簡(jiǎn)寫為“RP選擇處理”)(步驟S804)。換句話說,池管理程序132參考池表135的域312,并且在長(zhǎng)度大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁長(zhǎng)度中指定最短的真實(shí)頁長(zhǎng)度。(步驟S1001)。接下來,池管理程序132參考真實(shí)頁表136,并且選擇作為由指定的真實(shí)頁長(zhǎng)度的真實(shí)頁構(gòu)成的真實(shí)LU中的真實(shí)頁的真實(shí)頁,并且其狀態(tài)信息值是“未使用”(步驟S1002)。另一方面,如果在步驟S802的決定的結(jié)果是肯定的(步驟S802,是),則池管理程序132將壓縮前的寫數(shù)據(jù)元素作為寫目標(biāo)(步驟S811)。原因是如下的事實(shí)在步驟S802 的決定的結(jié)果是肯定的表示壓縮基本上沒有意義,因?yàn)椋词箟嚎s寫數(shù)據(jù)元素,它并不變得更短。接下來,池管理程序132執(zhí)行圖9所示的缺省長(zhǎng)度真實(shí)頁選擇處理(在圖中簡(jiǎn)寫為 “DLRP選擇處理”)(步驟S8U)。換句話說,池管理程序132參考池表135和真實(shí)頁表136,并且在真實(shí)頁長(zhǎng)度與虛擬頁長(zhǎng)度相同且狀態(tài)信息值是“未使用”的真實(shí)頁中選擇真實(shí)頁(步驟 S901)。在步驟S804或步驟S812之后,執(zhí)行步驟S805和后續(xù)步驟。換句話說,池管理程序132決定在步驟S804或步驟S812中,真實(shí)頁的選擇是否成功(步驟S805)。如果在步驟S805的決定的結(jié)果是否定的(步驟S805,否),則池管理程序 132向主機(jī)101響應(yīng)錯(cuò)誤(步驟S813)。如果在步驟S805的決定的結(jié)果是肯定的(步驟S805,是),則執(zhí)行步驟S806和后續(xù)步驟的處理。換句話說,池管理程序132參考真實(shí)頁表136,并且將與步驟S804或步驟S812中選擇的真實(shí)頁對(duì)應(yīng)的狀態(tài)信息的值改變?yōu)椤耙咽褂谩?步驟S806)。接下來,池管理程序132 參考虛擬頁表137,并且更新與作為處理目標(biāo)的虛擬頁相關(guān)的信息(步驟S807)。具體地, 池管理程序132將與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的真實(shí)頁ID的值更新為在步驟S804或步驟S812中選擇的真實(shí)頁的真實(shí)頁ID,并且另外將與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值更新表示壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)長(zhǎng)度的值。應(yīng)當(dāng)理解,如果在步驟S802 的決定的結(jié)果是肯定的,則池管理程序132將壓縮數(shù)據(jù)長(zhǎng)度信息的值更新為與虛擬頁的長(zhǎng)度的值相同的值。接下來,I/O處理程序133參考虛擬頁表137,并且將作為寫目標(biāo)的數(shù)據(jù)元素寫入分配給作為處理目標(biāo)的虛擬頁的真實(shí)頁中(換句話說,寫入在步驟S804或步驟 S812中選擇的真實(shí)頁中)(步驟S808)。此時(shí),如果寫目標(biāo)數(shù)據(jù)元素比作為寫目的地的真實(shí)頁短,在寫目的地真實(shí)頁上的區(qū)域上而不是在存在寫目標(biāo)數(shù)據(jù)元素的其它區(qū)域上寫入無意義數(shù)據(jù)(例如0)。接下來,池管理程序132決定該次寫入是否是第一次(步驟S809),并且如果該決定的結(jié)果是否定的(步驟S809,否),換句話說,如果圖7的步驟S703不被執(zhí)行, 則將與在步驟S701選擇的真實(shí)頁(TRP)對(duì)應(yīng)的狀態(tài)信息的值(即真實(shí)頁表323的值)改變?yōu)椤拔词褂谩?步驟S810)。圖11是讀處理的流程圖。該讀處理是如下處理如果由從主機(jī)101接收到的讀請(qǐng)求指定的LU是虛擬LU,并且如果與該虛擬LU對(duì)應(yīng)的壓縮信息的值是“開”,而執(zhí)行的處理。具體地,在接收到讀請(qǐng)求時(shí),池管理程序132決定從接收到的該讀請(qǐng)求指定的LUN中識(shí)別的LU是否是虛擬LU,并且與該虛擬LU對(duì)應(yīng)的壓縮信息的值(S卩,記錄在虛擬LU表138中的值)是否是“開”。如果該決定的結(jié)果是肯定的,則開始圖11所示的讀處理。池管理程序132指定與讀請(qǐng)求指定的讀范圍(例如與LBA和讀目標(biāo)數(shù)據(jù)的長(zhǎng)度) 對(duì)應(yīng)的一個(gè)或多個(gè)虛擬頁(步驟Sl 101)。接下來,在步驟SllOl中指定的一個(gè)或多個(gè)虛擬頁中,池管理程序132將第一虛擬頁作為(步驟S1102)后續(xù)處理(換句話說,步驟S1103至S1107)的目標(biāo)。接下來,池管理程序132指定與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的真實(shí)頁(TRP)(步驟 S1103)。接下來,I/O處理程序133讀取在步驟S1103中指定的真實(shí)頁中存儲(chǔ)的數(shù)據(jù)元素 (步驟 Sl 104)。接下來,池管理程序132將已經(jīng)被讀至壓縮和擴(kuò)展電路126的該數(shù)據(jù)元素輸入, 并且壓縮和擴(kuò)展電路1 對(duì)被壓縮的該數(shù)據(jù)元素(換句話說,對(duì)已經(jīng)被讀入的數(shù)據(jù)元素) 執(zhí)行擴(kuò)展(步驟Sll(^)。然而,如果作為處理目標(biāo)的虛擬頁的壓縮數(shù)據(jù)長(zhǎng)度(寫入虛擬頁表137中的值所表示的)與虛擬頁的長(zhǎng)度相同,則不執(zhí)行該擴(kuò)展處理(換句話說,跳過步驟 S1105),因?yàn)樵诓襟ES1104讀取的數(shù)據(jù)元素是未壓縮的數(shù)據(jù)元素。接下來,池管理程序132決定是否完成了與步驟SllOl中指定的讀范圍對(duì)應(yīng)的所有虛擬頁的處理(步驟Sl 106)。如果步驟Sl 106的決定的結(jié)果是否定的(步驟Sl 106,否), 則池管理程序132將還沒有被處理的那些虛擬頁中的下一個(gè)虛擬頁作為后續(xù)處理(換句話說,由步驟Sl 103至Sl 105處理)的目標(biāo)(步驟Sl 108),并對(duì)作為處理目標(biāo)的虛擬頁執(zhí)行步驟S1103。另一方面,如果步驟S1106的決定的結(jié)果是肯定的(步驟S1106,是),則池管理程序132執(zhí)行步驟S1107。換句話說,池管理程序132將存在于高速緩沖存儲(chǔ)器125中的所有被擴(kuò)展的數(shù)據(jù)元素合并到一起(換句話說,根據(jù)從主機(jī)101接收的讀請(qǐng)求創(chuàng)建讀數(shù)據(jù)), 并且將因而生成的讀數(shù)據(jù)發(fā)送到主機(jī)101。上述完成了對(duì)第一實(shí)施例的說明。根據(jù)該第一實(shí)施例,在池沈01中將多個(gè)不同的真實(shí)頁長(zhǎng)度的真實(shí)頁混合到一起, 并且以真實(shí)頁單元執(zhí)行管理。與當(dāng)所有真實(shí)頁的長(zhǎng)度短的情況(例如,當(dāng)所有的真實(shí)頁長(zhǎng)度小于虛擬頁長(zhǎng)度)相比,必須被管理的真實(shí)頁數(shù)目更小。因此,可以抑制容量擴(kuò)展的降低。另外,根據(jù)該第一實(shí)施例,在真實(shí)頁長(zhǎng)度大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度中指定最短的真實(shí)頁長(zhǎng)度,并且將壓縮的寫數(shù)據(jù)元素存儲(chǔ)到指定的真實(shí)頁長(zhǎng)度的真實(shí)頁中。 因此,可以實(shí)現(xiàn)高容量效率。發(fā)明方式2下面,將說明本發(fā)明的第二實(shí)施例。在該說明中,重點(diǎn)是與第一實(shí)施例的不同之處,并且將省略或簡(jiǎn)單描述與第一實(shí)施例共同的特征(在后述第三和第四實(shí)施例的情況中也是如此)。在該第二實(shí)施例中,沒有對(duì)未使用池子區(qū)域沈03定義真實(shí)頁長(zhǎng)度,并且結(jié)果在那些未使用池子區(qū)域2603中沒有真實(shí)頁。在寫處理中,如果控制器120還不能從任何池子區(qū)域沈03(作為用于壓縮的寫數(shù)據(jù)元素的存儲(chǔ)目的地而使用)指定適當(dāng)?shù)恼鎸?shí)頁,則定義對(duì)于未使用池子區(qū)域2603的真實(shí)頁長(zhǎng)度。由此,在該未使用池子區(qū)域沈03中定義了該真實(shí)頁長(zhǎng)度的真實(shí)頁??刂破?20從該未使用池子區(qū)域沈03選擇一個(gè)真實(shí)頁,并且將該真實(shí)頁分配到寫目的地虛擬頁。另外,在該第二實(shí)施例中,組成池沈01的每個(gè)真實(shí)LU由多個(gè)大塊 (真實(shí)LU的子存儲(chǔ)區(qū)域)組成,并且對(duì)于每個(gè)大塊定義真實(shí)頁長(zhǎng)度。因此,在該第二實(shí)施例中,大塊是池子區(qū)域沈03。在該第二實(shí)施例中,大塊是固定長(zhǎng)度并且所有的大塊是相同的長(zhǎng)度。
下面,將詳細(xì)說明本發(fā)明的該第二實(shí)施例。圖12示出了在本發(fā)明的該第二實(shí)施例中的非易失性存儲(chǔ)器130中保存的程序和表。在該第二實(shí)施例中,添加了真實(shí)頁長(zhǎng)度表1300和大塊表1320。另外,池表1310和真實(shí)頁表1330的內(nèi)容與池表135和真實(shí)頁表136的內(nèi)容分別不同。圖13是該第二實(shí)施例中先前描述的表1300、1310、1320和1330的結(jié)構(gòu)圖。真實(shí)頁長(zhǎng)度表1300是其中能夠定義真實(shí)頁長(zhǎng)度的列表。根據(jù)該表1300,最大真實(shí)頁長(zhǎng)度是1 ? MB (兆字節(jié)),并且這與虛擬頁長(zhǎng)度相同。代替圖3所示的域312和313,池表1310包含用于組成池的每個(gè)真實(shí)LU的域 1312。第一大塊ID記錄在這些域1312中。第一大塊ID是表示作為該真實(shí)LU的第一個(gè)的大塊的識(shí)別符。根據(jù)該表1310,應(yīng)當(dāng)理解,具有真實(shí)LU ID “RLO”的真實(shí)LU由十個(gè)大塊 “CH0”到“CH9”組成。因此,與該真實(shí)LU對(duì)應(yīng)的第一大塊ID是“CH0”。大塊表1320是用于管理與大塊相關(guān)的信息的表。具體地,對(duì)于每個(gè)大塊,該大塊表1320可以具有例如其中記錄了大塊ID的域1321,其中記錄了真實(shí)頁長(zhǎng)度的域1322,其中記錄了狀態(tài)信息的域1323以及其中記錄了第一真實(shí)頁ID的域1324。用一個(gè)大塊作為例子(下文中,在該段中,這被稱為“目標(biāo)大塊”),下面描述在該表1320中記錄的各種信息。 大塊ID是表示目標(biāo)大塊的識(shí)別符的信息。狀態(tài)信息是表示目標(biāo)大塊的使用狀態(tài)的信息。例如,如果對(duì)于目標(biāo)大塊定義了真實(shí)頁長(zhǎng)度,其狀態(tài)信息的值是“已使用”,但是如果沒有對(duì)目標(biāo)大塊定義真實(shí)頁長(zhǎng)度,則其狀態(tài)信息的值是“未使用”。第一真實(shí)頁ID是表示作為目標(biāo)大塊的第一個(gè)的真實(shí)頁的識(shí)別符。真實(shí)頁表1330具有對(duì)于每個(gè)真實(shí)頁的域1332,代替圖3所示的域332。大塊ID 記錄在該域1332中。該大塊ID是表示具有與該域1332對(duì)應(yīng)的真實(shí)頁的大塊的識(shí)別符。圖14示出了該第二實(shí)施例中的池管理屏幕1401的例子。在該池管理屏幕1401上設(shè)置了真實(shí)頁長(zhǎng)度輸入域,并且在該特征上不同于圖4所示的池管理屏幕401。當(dāng)用戶按下“確認(rèn)”按鈕時(shí),如已經(jīng)描述的,向池表1310添加記錄,在該池表1310 中記錄了已經(jīng)從用戶輸入的真實(shí)LU ID。記錄在該記錄中的第一大塊ID被作為池沈01中最后一個(gè)大塊的ID之后的下一個(gè)ID。另外,基于與已經(jīng)添加到池沈01的真實(shí)LU對(duì)應(yīng)的容量,池管理程序132指定組成已經(jīng)被添加的該真實(shí)LU的大塊數(shù)目,并且將與已經(jīng)指定的該大塊數(shù)目相同的數(shù)目的記錄添加到大塊表1320中。由于在因而已經(jīng)被添加的每個(gè)記錄中記錄了大塊ID,真實(shí)頁長(zhǎng)度值、狀態(tài)信息以及第一真實(shí)頁ID是“N/A”。圖15示出了真實(shí)頁長(zhǎng)度管理屏幕1501的例子。⑶I由UI控制程序148顯示在該真實(shí)頁長(zhǎng)度管理屏幕1501上。用于輸入要被添加的真實(shí)頁長(zhǎng)度的輸入域1502被設(shè)置在該真實(shí)頁長(zhǎng)度管理屏幕1501上。使用輸入設(shè)備 142,用戶將要被添加的真實(shí)頁長(zhǎng)度輸入到該添加的真實(shí)頁長(zhǎng)度輸入域1502中。當(dāng)用戶按下“確認(rèn)”按鈕時(shí),存儲(chǔ)通信程序149向存儲(chǔ)系統(tǒng)110通知已經(jīng)輸入到輸入域1502的真實(shí)頁長(zhǎng)度。存儲(chǔ)系統(tǒng)110中的管理終端通信程序131接收該信息,并且池管理程序132執(zhí)行下述處理。換句話說,池管理程序132將記錄添加到真實(shí)頁長(zhǎng)度表1300中, 其中記錄了已經(jīng)由管理終端通信程序131接收的(即已經(jīng)從用戶輸入的)真實(shí)頁長(zhǎng)度。
也可以在運(yùn)輸產(chǎn)品時(shí)提前安排將多種類型的真實(shí)頁長(zhǎng)度記錄在真實(shí)頁長(zhǎng)度表 1300中,以使得不能編輯表1300。圖16是本發(fā)明第二實(shí)施例中的缺省長(zhǎng)度真實(shí)頁選擇處理的流程圖。該缺省長(zhǎng)度真實(shí)頁選擇處理是在圖8的步驟S812中執(zhí)行的處理。池管理程序132參考大塊表1320的域1322,并且從長(zhǎng)度與虛擬頁長(zhǎng)度相同的那些真實(shí)頁中選擇狀態(tài)信息值是“未使用”的真實(shí)頁。池管理程序132然后決定在步驟S1601中真實(shí)頁的選擇是否成功(步驟S1602)。 如果在該步驟S1602的決定的結(jié)果是肯定的(步驟S1602,是),則該選擇處理的序列終止。另一方面,如果在步驟S1602的決定結(jié)果是否定的(步驟S1602,否),由于例如, 對(duì)于使用中的大塊不存在長(zhǎng)度與虛擬頁長(zhǎng)度相同的任何未使用的真實(shí)頁,相應(yīng)地,對(duì)于某未使用的大塊,定義了與虛擬頁長(zhǎng)度相同的真實(shí)頁長(zhǎng)度。具體地,池管理程序132參考大塊表1320,并且指定狀態(tài)是“未使用”的某大塊(步驟 S1603)。接下來,池管理程序132決定步驟S1603中大塊的指定是否成功(步驟S1604)。如果在步驟S1604的該決定結(jié)果是否定的(步驟S1604,否),該選擇處理的序列終止。另一方面,如果在步驟S1604的該決定結(jié)果是肯定的(步驟S1604,是)則池管理程序132將與步驟S1603中指定的大塊對(duì)應(yīng)的大塊表1320中的狀態(tài)信息值更新為“已使用”(步驟S1605)。 在該步驟中,例如,與在步驟S1603中指定的大塊對(duì)應(yīng)的第一真實(shí)頁ID的值由池管理程序 132從“N/A”更新為有效值。接下來,池管理程序132將步驟S1603中指定的大塊劃分為與虛擬頁的長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(步驟S1606)。具體地,池管理程序132可以,例如將與步驟S1603中指定的大塊對(duì)應(yīng)的真實(shí)頁長(zhǎng)度的大塊表1320中的值更新為表示虛擬頁長(zhǎng)度的值(即更新為真實(shí)頁長(zhǎng)度表1300中描述的與虛擬頁長(zhǎng)度相同的真實(shí)頁長(zhǎng)度)。另外,池管理程序132可以,例如通過用大塊的容量(例如1 ? GB(十億字節(jié)))除以虛擬頁長(zhǎng)度來計(jì)算組成在步驟S1603 中指定的大塊的真實(shí)頁數(shù)目,并且可以添加與該數(shù)目相同數(shù)目的記錄。在因而添加的每個(gè)記錄中,真實(shí)頁ID是被自動(dòng)分配的值(例如序列中的數(shù)目),大塊ID是指定大塊的識(shí)別符并且狀態(tài)是“未使用”。接下來,在步驟S1603中指定的大塊被劃分為的那些真實(shí)頁中,池管理程序132選擇第一真實(shí)頁(步驟S1607)。圖17是該第二實(shí)施例中的真實(shí)頁選擇處理的流程圖。真實(shí)頁選擇處理是圖8的步驟S804中執(zhí)行的處理。池管理程序132參考大塊表1320的域1322,并且在大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁長(zhǎng)度中指定最短真實(shí)頁長(zhǎng)度(步驟S1701)。接下來,池管理程序132參考真實(shí)頁表136,并且選擇一真實(shí)頁,該真實(shí)頁是在由指定的真實(shí)頁長(zhǎng)度的真實(shí)頁構(gòu)成的大塊中的真實(shí)頁并且狀態(tài)信息值是“未使用”(步驟S1702)。池管理程序132然后決定在步驟S1702中的選擇是否成功(步驟S1703)。如果該步驟S1703中的決定的結(jié)果是肯定的(步驟S1703,是),則該選擇處理的序列終止。另一方面,如果該步驟S1703中的決定的結(jié)果是否定的(步驟S1703,否),因?yàn)槔纾瑢?duì)于使用中的大塊不存在長(zhǎng)度是步驟S1701中指定的長(zhǎng)度的任何未使用的真實(shí)頁,相
18應(yīng)地,從真實(shí)頁長(zhǎng)度表1300中選擇大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁長(zhǎng)度中的最短真實(shí)頁長(zhǎng)度,并且對(duì)某未使用塊定義所選的真實(shí)頁長(zhǎng)度。具體地,在步驟S1702之后,執(zhí)行步驟S1703至S1708。除了步驟S1707之外,步驟 S1703至S1708中的處理分別與上述參考圖16說明的除了步驟S1606之外的步驟S1602至 S1607的處理相同。在步驟S1707中,池管理程序132從真實(shí)頁長(zhǎng)度表1300中選擇大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁長(zhǎng)度中的最短真實(shí)頁長(zhǎng)度,并且將指定的大塊劃分為該所選真實(shí)頁長(zhǎng)度的真實(shí)頁。具體地,例如,池管理程序132可以將與步驟S1704中指定的大塊對(duì)應(yīng)的大塊表1302中的真實(shí)頁長(zhǎng)度的值更新為表示上述指定的真實(shí)頁長(zhǎng)度的值。另外,例如通過將大塊的容量除以如上所述已經(jīng)選擇的真實(shí)頁長(zhǎng)度來進(jìn)行劃分,池管理程序132計(jì)算組成步驟S1704中指定的大塊的真實(shí)頁數(shù)目,并且在真實(shí)頁表1330中添加與該數(shù)目相同數(shù)目的記錄。在添加的每個(gè)記錄中,真實(shí)頁ID是被自動(dòng)添加的值,大塊ID是步驟S1704中指定的大塊的識(shí)別符并且狀態(tài)是“未使用”。圖18是大塊無用數(shù)據(jù)收集處理的流程圖。該大塊無用數(shù)據(jù)收集處理是用于增加未使用的大塊的數(shù)目的處理。具體地,是如下的處理如果組成狀態(tài)是“已使用”的大塊的所有真實(shí)頁的狀態(tài)是“未使用”,將該大塊的狀態(tài)從“已使用”更新為“未使用”。例如,在下述情況(16-1)至(16-4)的每一個(gè),開始該大塊無用數(shù)據(jù)收集處理。(16-1) CPU 123處于低負(fù)載(例如CPU 123上的負(fù)載低于某預(yù)定負(fù)載);(16-2)周期地;(16-3)已經(jīng)從管理終端102的用戶接收到命令;(16-4)已使用大塊的比率已經(jīng)降低到某預(yù)定閾值之下(例如在參考大塊表1320 時(shí),池管理程序132已經(jīng)檢測(cè)到狀態(tài)信息的“已使用”值的數(shù)目已經(jīng)小于某預(yù)定數(shù))。池管理程序132參考大塊表1320,并且將其第一大塊ID作為下述處理的目標(biāo)(步驟 S1801)。接下來,池管理程序132參考真實(shí)頁表1330,并且決定作為處理目標(biāo)的大塊的所有真實(shí)頁的狀態(tài)是否都是“未使用”(步驟S1802)。如果在步驟S1802的該決定結(jié)果是否定的(步驟S1802,否),控制流進(jìn)行到步驟S1805。另一方面,如果在步驟S1802的決定結(jié)果是肯定的(步驟S1802,是),則池管理程序132從真實(shí)頁表1330刪除與作為處理目標(biāo)的大塊對(duì)應(yīng)的所有真實(shí)頁的條目(即狀態(tài)信息是“未使用”的條目)(步驟S1803)。接下來,池管理程序132參考大塊表1320,并且將作為處理目標(biāo)的大塊的狀態(tài)信息改變?yōu)椤拔词褂谩?步驟S1804)。接下來,池管理程序132決定對(duì)于所有的大塊是否完成了處理(步驟S1805)。如果在步驟S1805的該決定的結(jié)果是肯定的(步驟S1805,是),則該處理序列終止。另一方面,如果在步驟S1805的該決定的結(jié)果是否定的(步驟S1805,否),則池管理程序132將所有大塊中的下一個(gè)大塊作為(步驟S1806)作為后續(xù)處理(換句話說步驟S1802至S1805 的處理)的目標(biāo),然后對(duì)于作為處理目標(biāo)的該大塊執(zhí)行步驟S1802。上述完成了本發(fā)明第二實(shí)施例的說明。根據(jù)該第二實(shí)施例,動(dòng)態(tài)地定義和動(dòng)態(tài)地改變池子區(qū)域沈03中的真實(shí)頁的長(zhǎng)度。因此,可以預(yù)期,與預(yù)先定義和設(shè)置所有池子區(qū)域 2603中的真實(shí)頁的長(zhǎng)度的情況相比,將更加適當(dāng)?shù)囟x真實(shí)頁長(zhǎng)度。另外,在該第二實(shí)施例中,池子區(qū)域沈03是容量小于真實(shí)LU的容量的大塊。因此, 即使例如對(duì)于某大塊已經(jīng)臨時(shí)定義了真實(shí)頁長(zhǎng)度之后,不在該大塊中存儲(chǔ)許多壓縮數(shù)據(jù)元素,與真實(shí)LU是池子區(qū)域的情況相比,仍然可以使用較少量的空區(qū)域來管理。應(yīng)當(dāng)理解,根據(jù)該第二實(shí)施例,可以考慮下述的變型實(shí)施例。在第一變型實(shí)施例中,控制器120具有自動(dòng)學(xué)習(xí)真實(shí)數(shù)據(jù)長(zhǎng)度的功能。具體地,例如,在步驟S1707中,池管理程序132與定義未使用的大塊中在步驟S1701中指定的真實(shí)頁長(zhǎng)度一起,還將該真實(shí)頁長(zhǎng)度添加到真實(shí)頁長(zhǎng)度表1301。在步驟S1701指定的真實(shí)頁長(zhǎng)度例如可以是大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度并且是多個(gè)預(yù)定長(zhǎng)度倍數(shù)中的最短倍數(shù)的長(zhǎng)度(例如64KB)。在第二變型實(shí)施例中,控制器120具有下述功能將數(shù)據(jù)單元從在某池子區(qū)域中使用的所有真實(shí)頁復(fù)制到一個(gè)或多個(gè)其它池子區(qū)域中的未使用的真實(shí)頁,并且將作為該復(fù)制源的所有真實(shí)頁的狀態(tài)從“已使用”更新為“未使用”。例如,如圖29A所示,池管理程序 132指定兩個(gè)或更多個(gè)子區(qū)域,對(duì)該兩個(gè)或更多個(gè)子區(qū)域定義的真實(shí)頁長(zhǎng)度相同(例如,兩個(gè)大塊^OlA和^OlB)。另外,在已經(jīng)指定的兩個(gè)或更多個(gè)池子區(qū)域中,池管理程序132指定其中使用中的真實(shí)頁數(shù)目是最少的池子區(qū)域。并且I/O處理程序133將數(shù)據(jù)單元從該指定的池子區(qū)域(例如大塊^K)1A)中的使用中的所有的真實(shí)頁(即從圖29A中陰影所示的那些真實(shí)頁)復(fù)制到上述一個(gè)或多個(gè)其它池子區(qū)域(例如大塊^K)1B)中的未使用的真實(shí)頁。 并且,如圖29B所示,池管理程序132將已經(jīng)稱為復(fù)制源的所有的真實(shí)頁的狀態(tài)從“已使用” 更新為“未使用”。由此,當(dāng)已經(jīng)執(zhí)行了圖18所示的大塊無用數(shù)據(jù)收集處理時(shí),如圖29C所示,包括作為復(fù)制源的真實(shí)頁的池子區(qū)域(即大塊四01幻的狀態(tài)被從“已使用”更新為“未使用”。相應(yīng)地,根據(jù)該第二變型實(shí)施例,可以增加未使用池子區(qū)域的數(shù)目。應(yīng)當(dāng)理解,通過將復(fù)制源作為其中使用中的真實(shí)頁的數(shù)目最小的池子區(qū)域,可以將執(zhí)行復(fù)制的次數(shù)抑制到最小極限??梢詫⒁呀?jīng)作為復(fù)制源或正被復(fù)制的真實(shí)頁的狀態(tài)的更新包括到該大塊無用信息收集處理;或也可以構(gòu)成與該處理分離的處理。另外,例如,上述情況(16-1)至(16-4) 中的任一個(gè)可以用于開始處理,用于確定將作為復(fù)制源的池子區(qū)域。發(fā)明方式3在第三實(shí)施例中,有時(shí)將多個(gè)真實(shí)頁分配到一個(gè)虛擬頁。因此,例如,在真實(shí)頁讀處理的步驟S701和S706中(圖7)或者在真實(shí)頁寫處理的步驟S810中(圖8),TRP的數(shù)目(分配到作為處理目標(biāo)的虛擬頁的真實(shí)頁)有時(shí)是1,有時(shí)是2或更多。以類似的方式, 在讀處理(圖11)的步驟S1103中指定的真實(shí)頁的數(shù)目有時(shí)是1,有時(shí)是2或更多圖19是本發(fā)明第三實(shí)施例中的虛擬頁表1900的結(jié)構(gòu)圖。該表1900具有域1902,代替域332。有時(shí)在該域1902中記錄多個(gè)真實(shí)頁ID,而不是僅一個(gè)真實(shí)頁ID。這是因?yàn)?,如上所述,有時(shí)多個(gè)真實(shí)頁被分配給一個(gè)虛擬頁。圖20是本發(fā)明第三實(shí)施例中的真實(shí)頁選擇處理的流程圖。池管理程序132參考圖3所示的池表135的域312,并且在大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁長(zhǎng)度中指定真實(shí)頁長(zhǎng)度的一個(gè)或多個(gè)組合,其中一個(gè)或多個(gè)真實(shí)頁長(zhǎng)度的總值長(zhǎng)于壓縮寫數(shù)據(jù)元素的長(zhǎng)度(步驟S2001)。
接下來,池管理程序132參考真實(shí)頁表136,并且在已經(jīng)被指定的真實(shí)頁長(zhǎng)度的組合中指定總值最小的組合(步驟S2002)。接下來,池管理程序132參考真實(shí)頁表136,并且在具有該長(zhǎng)度的真實(shí)頁中,為組成在步驟S2002中指定的組合的每個(gè)真實(shí)頁長(zhǎng)度選擇狀態(tài)信息值是“未使用的”的真實(shí)頁 (步驟 S2003)。上述完成了本發(fā)明第三實(shí)施例的說明。根據(jù)該第三實(shí)施例,可以預(yù)期將容量效率提高到更高的水平。發(fā)明方式4在本發(fā)明第四實(shí)施例中,在接收到來自主機(jī)101的寫請(qǐng)求時(shí),在當(dāng)接收到該寫請(qǐng)求時(shí)執(zhí)行的寫處理中,控制器120并不暫時(shí)壓縮寫入作為處理目標(biāo)的虛擬頁中的數(shù)據(jù)元素,而是將其存儲(chǔ)在具有與虛擬頁長(zhǎng)度相同長(zhǎng)度的真實(shí)頁中。然后,與寫處理異步地,控制器120從與虛擬頁長(zhǎng)度相同的長(zhǎng)度的該真實(shí)頁中讀取數(shù)據(jù)元素,并且對(duì)已經(jīng)讀取的數(shù)據(jù)元素執(zhí)行上述已經(jīng)參考圖8說明的真實(shí)頁寫處理。下面,將詳細(xì)說明本發(fā)明的第四實(shí)施例。圖21是本發(fā)明第四實(shí)施例中的虛擬頁表2137的結(jié)構(gòu)圖。在該虛擬頁表2137中,對(duì)于每個(gè)虛擬頁,除了域331至333之外,還設(shè)置了域334, 其中記錄了狀態(tài)信息。該狀態(tài)信息是表示是否壓縮存儲(chǔ)在分配給與該狀態(tài)信息對(duì)應(yīng)的虛擬頁的真實(shí)頁(在下文,在該段中,稱為目標(biāo)真實(shí)頁)中的數(shù)據(jù)元素。例如,如果壓縮存儲(chǔ)在目標(biāo)真實(shí)頁中的數(shù)據(jù)元素,則該狀態(tài)信息的值是“已壓縮”,但是,如果存儲(chǔ)在目標(biāo)真實(shí)頁中的數(shù)據(jù)元素是未壓縮,該狀態(tài)信息的值是“未壓縮”。如果沒有真實(shí)頁被分配給虛擬頁,則與該虛擬頁對(duì)應(yīng)的狀態(tài)信息可以是例如“N/A”。圖22是本發(fā)明第四實(shí)施例中的真實(shí)頁讀處理的流程圖。在該第四實(shí)施例中的真實(shí)頁讀處理的步驟S2201至S2210分別對(duì)應(yīng)于第一實(shí)施例中的真實(shí)頁讀處理的步驟S701至S710。步驟S2207不同于步驟S707,并且相應(yīng)地,步驟 S2208不同于步驟S708。除了步驟S2207和S2208之外的步驟S2201至S2210分別與除了步驟S707和S708之外的步驟S701至S710相同。在步驟S2207中,池管理程序132參考虛擬頁表2137,并且如果與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息的值是“已壓縮”,將步驟S2206中讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路126,從而壓縮和擴(kuò)展電路1 擴(kuò)展該數(shù)據(jù)元素。另一方面,如果該狀態(tài)信息的值不是“已壓縮”,則池管理程序132不將已經(jīng)讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路126。因此,在步驟S2208中,I/O處理程序133用該擴(kuò)展的數(shù)據(jù)元素或自身已經(jīng)讀取的數(shù)據(jù)元素來蓋寫寫入到作為處理目標(biāo)的虛擬頁上的數(shù)據(jù)元素。圖23是臨時(shí)真實(shí)頁寫處理的流程圖。該臨時(shí)真實(shí)頁寫處理是代替圖6所示的寫處理的步驟S604中的真實(shí)頁寫處理而執(zhí)行的處理。如同已經(jīng)詳細(xì)說明的,并且如同之后會(huì)詳細(xì)說明的,該真實(shí)頁寫處理與寫處理異步地執(zhí)行。池管理程序132執(zhí)行參考圖9說明的缺省長(zhǎng)度真實(shí)頁選擇處理(在圖中簡(jiǎn)寫為 "DLRP選擇處理”)(步驟S2301)。接下來,池管理程序132決定在步驟S2301中的真實(shí)頁的選擇是否成功(步驟S2302)。如果在步驟S2302的決定的結(jié)果是否定的(步驟S2302,否),則池管理程序132 向主機(jī)101響應(yīng)錯(cuò)誤(步驟S2308)。另一方面,如果在步驟S2302的決定的結(jié)果是肯定的(步驟S2302,是),則執(zhí)行步驟S2303和后續(xù)步驟的處理。換句話說,池管理程序132參考真實(shí)頁表136,并且將與步驟S2301中選擇的真實(shí)頁對(duì)應(yīng)的狀態(tài)信息的值改變?yōu)椤耙咽褂谩?步驟S230;3)。接下來,池管理程序132參考虛擬頁表2137,并且更新與作為處理目標(biāo)的虛擬頁相關(guān)的信息(步驟S2304)。具體地,池管理程序132將與作為處理對(duì)象的虛擬頁對(duì)應(yīng)的真實(shí)頁ID的值更新為在步驟S2301中選擇的真實(shí)頁的真實(shí)頁ID,將與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值更新為表示壓縮寫數(shù)據(jù)元素的數(shù)據(jù)長(zhǎng)度的值,并且另外將與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息更新為“未壓縮”。接下來,I/O處理程序133參考虛擬頁表2137,并且將作為寫目標(biāo)的數(shù)據(jù)元素寫入分配給作為處理目標(biāo)的虛擬頁的真實(shí)頁(步驟S23(^)。此時(shí),如果寫目標(biāo)數(shù)據(jù)元素比作為寫目的地的真實(shí)頁短,將無意義數(shù)據(jù)(例如0)寫入寫目的地真實(shí)頁的區(qū)域而不是存在寫目標(biāo)數(shù)據(jù)元素的區(qū)域。接下來,池管理程序132決定這次寫入是否是第一次(步驟 S2306),并且如果該決定的結(jié)果是否定的(步驟S2306,否),換句話說,如果圖22的步驟 S2203不執(zhí)行,則將與在步驟S2201中選擇的真實(shí)頁(TRP)對(duì)應(yīng)的狀態(tài)信息的值(即真實(shí)頁表223中的值)改變?yōu)椤拔词褂谩?步驟S2307)。圖M是本發(fā)明第四實(shí)施例中的讀處理的流程圖。在該第四實(shí)施例中的讀處理的步驟S2401至S2408分別對(duì)應(yīng)于第一實(shí)施例中的真實(shí)頁讀處理的步驟SllOl至S1108。步驟S2405不同于步驟S1105,但是除了步驟S2405之外的步驟S2401至S2408分別與除了步驟S1105之外的步驟SllOl至S1108相同。在步驟S2405,池管理程序132參考虛擬頁表2137,并且,如果與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息的值是“已壓縮”,將步驟S2404中讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路,從而壓縮和擴(kuò)展電路1 擴(kuò)展該數(shù)據(jù)元素。圖25是異步壓縮處理的流程圖。在下述情況Q5-1)至Q5-4)的每一個(gè)時(shí),可以開始該異步壓縮處理。(25-1) CPU 123處于低負(fù)載(例如CPU 123上的負(fù)載低于某預(yù)定負(fù)載);Q5-2)周期地;(25-3)已經(jīng)從管理終端102的用戶接收到命令;(25-4)與“已壓縮”對(duì)應(yīng)的虛擬頁的比例已經(jīng)降低到某預(yù)定閾值之下(例如在參考虛擬頁表2137時(shí),池管理程序132已經(jīng)檢測(cè)到狀態(tài)信息的“已壓縮”值的數(shù)目小于某預(yù)定數(shù))。池管理程序132將虛擬LU的第一虛擬頁作為后續(xù)處理(步驟S2502至S2506)的目標(biāo)(步驟S25Ol)。然后池管理程序132決定與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息的值是否是 “未壓縮”(步驟S2502)。如果在步驟S2502的決定結(jié)果是肯定的(步驟S2502,是),則池管理程序132指定與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的真實(shí)頁(步驟S25(X3)。并且I/O處理程序133從已經(jīng)被指定的真實(shí)頁中讀取數(shù)據(jù)元素(步驟S2504)。然后,執(zhí)行圖8所示的真實(shí)頁寫處理(步驟S2505)。并且,如果真實(shí)頁寫處理成功,則池管理程序132將與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息的值從“未壓縮”改變?yōu)椤耙褖嚎s”(步驟S2506)。如果在步驟S2502的決定的結(jié)果是否定的(步驟S2502,否),或者在步驟S2506 之后,池管理程序132決定是否對(duì)虛擬LU的所有虛擬頁完成了處理(步驟S2507)。如果該決定的結(jié)果是否定的(步驟S2507,否),則池管理程序132將下一個(gè)虛擬頁作為后續(xù)處理目標(biāo)(步驟S2508),并且執(zhí)行步驟S2502。另一方面,如果在步驟S2507的該決定的結(jié)果是肯定的(步驟S2507,是),該異步壓縮處理終止。上述完成了本發(fā)明第四實(shí)施例的說明。因?yàn)?,根?jù)該第四實(shí)施例,在寫處理中不執(zhí)行壓縮/擴(kuò)展,相應(yīng)地可以降低CPU 123在寫處理中的負(fù)載,并且另外可以預(yù)期寫處理的處理速度的提高。應(yīng)當(dāng)理解對(duì)于該第四實(shí)施例,考慮下述變型實(shí)施例。例如,如圖28A所示,在虛擬頁表2137’中,對(duì)于每個(gè)虛擬頁,可以設(shè)置域335,其中記錄了訪問頻率(以I0PS,“每秒I/ 0”的縮寫)。另外,如圖28B所示,可以在非易失性存儲(chǔ)器130中提供由CPU 123執(zhí)行的訪問頻率管理程序0801)。該訪問頻率管理程序觀01監(jiān)視對(duì)每個(gè)虛擬頁的訪問頻率,并且以及時(shí)的方式更新與虛擬頁對(duì)應(yīng)的訪問頻率(即圖^A的域2105中的值)。在該變型實(shí)施例中,在異步壓縮處理中,即使與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的狀態(tài)信息的值是“未壓縮”(步驟S2502,是),仍然有時(shí)不執(zhí)行步驟S2503和后續(xù)步驟,如圖28C所示。具體地,在步驟S2502中“是”的情況下,參考虛擬頁表2137’,指定與作為處理目標(biāo)的虛擬頁對(duì)應(yīng)的訪問頻率,并且如果訪問頻率高于某預(yù)定閾值(步驟S2801,是)則不執(zhí)行步驟S2503。由此, 在對(duì)于訪問頻率高的虛擬頁的寫處理/讀處理中,可以預(yù)期由于沒有執(zhí)行壓縮/非壓縮,處理速度會(huì)提高。盡管在上文中,例如對(duì)于第二到第四實(shí)施例,主要說明了與第一實(shí)施例的不同點(diǎn), 也可以實(shí)施任何兩個(gè)或更多個(gè)實(shí)施例(在第一至第四實(shí)施例中)的組合。另外,代替由來自主機(jī)101的寫請(qǐng)求指定的LU或者除了由來自主機(jī)101的寫請(qǐng)求指定的LU之外,作為寫目的地的虛擬LU還可以是構(gòu)成用于復(fù)制初級(jí)LU中存儲(chǔ)的數(shù)據(jù)的目的地的次級(jí)LU。一個(gè)例子在圖27中示出。換句話說,從初級(jí)LU(真實(shí)LU或虛擬LU)向次級(jí)LU(虛擬LU)復(fù)制數(shù)據(jù)元素,初級(jí)LU是從外部設(shè)備(例如主機(jī)等)用虛擬頁為單位可以訪問的LU,次級(jí)LU是與初級(jí)LU成對(duì)的LU。此時(shí),壓縮作為復(fù)制目標(biāo)的數(shù)據(jù)元素,基于這些壓縮的數(shù)據(jù)元素中包括的數(shù)據(jù)單元的長(zhǎng)度選擇一個(gè)或多個(gè)真實(shí)頁,因此而選擇的真實(shí)頁被分配給作為復(fù)制目的地的虛擬頁,并且包括這些壓縮的數(shù)據(jù)元素的數(shù)據(jù)單元存儲(chǔ)在自己的真實(shí)頁中。如果包括這些壓縮的數(shù)據(jù)元素的數(shù)據(jù)單元的長(zhǎng)度大于或等于虛擬頁長(zhǎng)度,則包括壓縮前的數(shù)據(jù)元素的數(shù)據(jù)單元被存儲(chǔ)在與虛擬頁長(zhǎng)度相同長(zhǎng)度的真實(shí)頁中。盡管已經(jīng)說明了本發(fā)明的特定優(yōu)選實(shí)施例,并不意味著認(rèn)為本發(fā)明限于這些特定實(shí)施例,在不偏離本發(fā)明主旨的前提下能夠進(jìn)行各種改變。例如,在第一、第三和第四實(shí)施例的真實(shí)頁選擇處理中,如果沒有發(fā)現(xiàn)滿足條件的真實(shí)頁,也可以選擇更長(zhǎng)一級(jí)的真實(shí)頁。例如,假設(shè)壓縮寫數(shù)據(jù)元素的長(zhǎng)度是511kB,然后盡管與條件符合(即大于或等于壓縮寫數(shù)據(jù)元素的真實(shí)頁長(zhǎng)度中的最短真實(shí)頁長(zhǎng)度)的真實(shí)頁長(zhǎng)度是512kB,如果由于所有的512kB長(zhǎng)度的真實(shí)頁都在使用中而不能選擇這種類型的真實(shí)頁,可以選擇更長(zhǎng)一級(jí)的真實(shí)頁,例如具有與虛擬頁長(zhǎng)度相同長(zhǎng)度的真實(shí)頁。
另外,例如,如果不僅壓縮寫數(shù)據(jù)元素,其它類型的信息(例如數(shù)據(jù)整體性碼)也添加到數(shù)據(jù)單元,與虛擬頁長(zhǎng)度或真實(shí)頁長(zhǎng)度相比(例如在圖8的步驟S802,圖10的步驟 S1001,圖17的步驟S1701以及圖20的步驟S2001中),將數(shù)據(jù)單元的整個(gè)長(zhǎng)度作為比較目標(biāo)。另外,如果例如作為數(shù)據(jù)單元的長(zhǎng)度大于或等于虛擬頁長(zhǎng)度的結(jié)果,將壓縮前的寫數(shù)據(jù)元素寫入具有與虛擬頁長(zhǎng)度相同長(zhǎng)度的真實(shí)頁中,如果壓縮前的寫數(shù)據(jù)元素的長(zhǎng)度符合虛擬頁長(zhǎng)度,則不添加其它類型的該信息(例如數(shù)據(jù)整體性碼等),而是僅將壓縮前的寫數(shù)據(jù)元素寫入真實(shí)頁。在這種情況下,通過使用包括在壓縮前的寫數(shù)據(jù)元素中的數(shù)據(jù)整體性碼,保證了壓縮前的寫數(shù)據(jù)元素的可靠性(例如,8字節(jié)數(shù)據(jù)整體性碼可以被添加到512字節(jié)的數(shù)據(jù)中)。
權(quán)利要求
1.一種存儲(chǔ)系統(tǒng),包括基于池Q601)的多個(gè)存儲(chǔ)設(shè)備(111);以及控制器(120); 并且其中所述池由多個(gè)真實(shí)頁O607)組成; 不同長(zhǎng)度的真實(shí)頁包含在所述多個(gè)真實(shí)頁中; 所述控制器包括壓縮部(1沈),用于對(duì)虛擬卷060 中的多個(gè)虛擬頁中的寫目的地虛擬頁壓縮寫數(shù)據(jù)元素;池管理部(132),用于選擇滿足以下描述的(條件A)和(條件B)的真實(shí)頁,并將所選擇的真實(shí)頁分配給所述寫目的地虛擬頁;(條件A)所述真實(shí)頁的真實(shí)頁長(zhǎng)度是基于壓縮后的寫數(shù)據(jù)元素中包含的數(shù)據(jù)單元的數(shù)據(jù)長(zhǎng)度的真實(shí)頁長(zhǎng)度;(條件B)所述真實(shí)頁是未被分配給任何虛擬頁的真實(shí)頁;以及,I/O處理部(133),用于在已選擇的真實(shí)頁中存儲(chǔ)所述數(shù)據(jù)單元;每個(gè)虛擬頁是虛擬存儲(chǔ)區(qū)域;每個(gè)真實(shí)頁是物理存儲(chǔ)區(qū)域;且所述數(shù)據(jù)單元由所述壓縮后的寫數(shù)據(jù)元素自身組成,或由特定信息和所述壓縮后的寫數(shù)據(jù)元素組成。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中所述控制器包括擴(kuò)展部(1 ),所述擴(kuò)展部擴(kuò)展壓縮后的數(shù)據(jù)元素;所述池由多個(gè)池子區(qū)域060;3)組成;對(duì)每個(gè)池子區(qū)域定義真實(shí)頁長(zhǎng)度;多個(gè)真實(shí)頁長(zhǎng)度中的最大真實(shí)頁長(zhǎng)度與虛擬頁長(zhǎng)度相同;真實(shí)頁讀處理和真實(shí)頁寫處理包含在所述寫目的地虛擬頁的寫處理中,且所述真實(shí)頁寫處理在所述真實(shí)頁讀處理之后被執(zhí)行; 在所述真實(shí)頁讀處理中(Al)所述池管理部判定真實(shí)頁是否已被分配給所述寫目的地虛擬頁; (A2)如果上述判定(Al)的結(jié)果是肯定的,則所述池管理部判定用于所述寫目的地虛擬頁的數(shù)據(jù)元素的長(zhǎng)度是否與所述虛擬頁長(zhǎng)度相同;以及(A3)如果上述判定(A2)中的結(jié)果是否定的,則所述I/O處理部從分配給所述寫目的地虛擬頁的真實(shí)頁讀取數(shù)據(jù)單元,所述擴(kuò)展部擴(kuò)展已讀取的所述數(shù)據(jù)單元中包含的壓縮后的數(shù)據(jù)元素,并且所述池管理部以擴(kuò)展后的數(shù)據(jù)元素蓋寫用于所述寫目的地虛擬頁的數(shù)據(jù)元素;如果上述(A2)中的判定的結(jié)果是否定的,則所述真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是蓋寫后的數(shù)據(jù)元素,然而,如果上述(A2)中的判定的結(jié)果是肯定的,則所述真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是用于寫目的地虛擬頁的數(shù)據(jù)元素本身; 在所述真實(shí)頁寫處理中 (Bi)所述壓縮部壓縮所述寫數(shù)據(jù)元素;(B2)所述池管理部判定壓縮后的寫數(shù)據(jù)元素中包含的數(shù)據(jù)單元的長(zhǎng)度是否大于或等于所述虛擬頁的長(zhǎng)度;(B3)如果上述(B2)中的判定的結(jié)果是肯定的,則上述(條件A)是真實(shí)頁長(zhǎng)度與虛擬頁長(zhǎng)度相同;并且所述I/O處理部不將所述數(shù)據(jù)單元而將包含壓縮前的所述寫數(shù)據(jù)元素的其他數(shù)據(jù)單元存儲(chǔ)在已選擇的所述真實(shí)頁中;以及(B4)如果在上述(B2)中的判定的結(jié)果是否定的,則上述(條件A)是真實(shí)頁長(zhǎng)度是所述多個(gè)真實(shí)頁長(zhǎng)度中的、大于或等于所述數(shù)據(jù)單元的長(zhǎng)度且與所述數(shù)據(jù)單元的長(zhǎng)度的差別最小的真實(shí)頁長(zhǎng)度;并且,所述I/O處理部將所述數(shù)據(jù)存儲(chǔ)在已選擇的所述真實(shí)頁中;并且所述其他數(shù)據(jù)單元是壓縮前的寫數(shù)據(jù)元素本身,或由特定信息和壓縮前的所述寫數(shù)據(jù)元素組成。
3.根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng),其中真實(shí)頁長(zhǎng)度不是對(duì)所述多個(gè)池子區(qū)域中的未使用的池子區(qū)域定義的;并且在所述真實(shí)頁寫處理中,如果沒有發(fā)現(xiàn)滿足上述(條件A)和(條件B)的真實(shí)頁,則所述池管理部對(duì)滿足上述(條件A)的一些未使用的池子區(qū)域定義真實(shí)頁長(zhǎng)度,并從已被定義了滿足所述(條件A)的所述真實(shí)頁長(zhǎng)度的所述池子區(qū)域中選擇已被定義真實(shí)頁長(zhǎng)度的真實(shí)頁。
4.根據(jù)權(quán)利要求2或3所述的存儲(chǔ)系統(tǒng),其中,在上述(B4)中,滿足所述(條件A)和所述(條件B)的真實(shí)頁是未被分配給任何虛擬頁的兩個(gè)或更多的真實(shí)頁,并且這兩個(gè)或更多真實(shí)頁的總真實(shí)頁長(zhǎng)度是所述多個(gè)總真實(shí)頁長(zhǎng)度中的、大于或等于所述數(shù)據(jù)單元的長(zhǎng)度且與所述數(shù)據(jù)單元的長(zhǎng)度的差別最小的那個(gè)總真實(shí)頁長(zhǎng)度。
5.根據(jù)權(quán)利要求2至4中任一項(xiàng)所述的存儲(chǔ)系統(tǒng),其中臨時(shí)真實(shí)頁寫處理被包含在所述寫處理中以代替所述真實(shí)頁寫處理; 所述控制器在與所述寫處理不同的定時(shí)執(zhí)行異步壓縮處理; 所述真實(shí)頁寫處理被包含在所述異步壓縮處理中; 在所述臨時(shí)真實(shí)頁寫處理中(Cl)所述池管理部選擇具有與虛擬頁長(zhǎng)度相同的真實(shí)頁長(zhǎng)度的未分配真實(shí)頁,并好似所述寫目的地虛擬頁的狀態(tài)未被壓縮那樣來對(duì)選擇的未分配真實(shí)頁進(jìn)行管理,并將已選擇的所述真實(shí)頁分配給所述寫目的地虛擬頁;以及(C2)所述I/O處理部將包含所述寫數(shù)據(jù)元素的數(shù)據(jù)單元存儲(chǔ)在已選擇的所述真實(shí)頁中;如果上述(B2)中的判定的結(jié)果是否定的,則所述臨時(shí)真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是已被蓋寫的數(shù)據(jù)元素,然而,如果上述(B2)中的判定的結(jié)果是肯定的,則所述臨時(shí)真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是用于所述寫目的地虛擬頁的數(shù)據(jù)元素本身; 在所述異步壓縮處理中(Dl)所述池管理部判定作為處理對(duì)象的虛擬頁的狀態(tài)是否是未壓縮;以及 (D2)如果上述(Dl)中的判定的結(jié)果是肯定的,則所述池管理部指定分配給作為處理對(duì)象的虛擬頁的真實(shí)頁;所述I/O處理部從已指定的所述真實(shí)頁讀取數(shù)據(jù)單元;所述真實(shí)頁寫處理被執(zhí)行;并且之后,所述池管理部好似作為管理對(duì)象的所述虛擬頁的狀態(tài)已被壓縮那樣來對(duì)所指定的真實(shí)頁進(jìn)行管理;在上述(擬)的所述真實(shí)頁寫處理中,所述寫處理數(shù)據(jù)元素是在上述(擬)中讀取的數(shù)據(jù)單元中包含的數(shù)據(jù)元素;并且在所述真實(shí)頁讀處理的上述(??; )中,所述池管理部判定所述寫目的地虛擬頁的狀態(tài)是否是未壓縮,如果判定的結(jié)果是否定的,則所述擴(kuò)展部對(duì)已讀取的所述數(shù)據(jù)單元中包含的壓縮后的數(shù)據(jù)進(jìn)行擴(kuò)展。
6.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中真實(shí)頁寫處理被包含在對(duì)于所述寫目的地虛擬頁的寫處理中;在所述真實(shí)頁寫處理中(Fl)所述壓縮部壓縮寫數(shù)據(jù)元素;(F2)所述池管理部判定壓縮后的寫數(shù)據(jù)元素中包含的數(shù)據(jù)單元的長(zhǎng)度是否大于或等于虛擬頁的長(zhǎng)度;(F3)如果上述判定(F2)的結(jié)果是肯定的,則上述條件(A)是真實(shí)頁長(zhǎng)度與虛擬頁長(zhǎng)度相同;并且所述I/O處理部不將所述數(shù)據(jù)單元而將包含壓縮前的所述寫數(shù)據(jù)元素的其他數(shù)據(jù)單元存儲(chǔ)在已選擇的所述真實(shí)頁中;以及(F4)如果上述判定(F2)中的結(jié)果是否定的,則上述(條件A)是真實(shí)頁長(zhǎng)度是所述多個(gè)真實(shí)頁長(zhǎng)度中的、大于或等于所述數(shù)據(jù)單元的長(zhǎng)度且與所述數(shù)據(jù)單元的長(zhǎng)度的差別最小的真實(shí)頁長(zhǎng)度;并且,所述I/O處理部將所述數(shù)據(jù)存儲(chǔ)在已選擇的所述真實(shí)頁中;并且所述其他數(shù)據(jù)單元是壓縮前的寫數(shù)據(jù)元素本身,或由特定信息和所述壓縮前的寫數(shù)據(jù)元素組成。
7.根據(jù)權(quán)利要求6所述的存儲(chǔ)系統(tǒng),其中所述控制器包括擴(kuò)展部(1 ),所述擴(kuò)展部擴(kuò)展壓縮后的數(shù)據(jù)元素; 真實(shí)頁讀處理包含在所述寫處理中,且所述真實(shí)頁讀處理在所述真實(shí)頁寫處理之前進(jìn)行;在所述真實(shí)頁讀處理中(Gl)所述池管理部判定真實(shí)頁是否已被分配給所述寫目的地虛擬頁; (G2)如果上述判定(Gl)的結(jié)果是肯定的,則所述池管理部判定用于所述寫目的地虛擬頁的數(shù)據(jù)元素的長(zhǎng)度是否與虛擬頁長(zhǎng)度相同;以及(G3)如果上述判定(G2)的結(jié)果是否定的,則所述I/O處理部從分配給所述寫目的地虛擬頁的真實(shí)頁讀取數(shù)據(jù)單元,所述擴(kuò)展部對(duì)已讀取的所述數(shù)據(jù)單元中包含的壓縮后的數(shù)據(jù)元素進(jìn)行擴(kuò)展,并且所述池管理部以擴(kuò)展后的數(shù)據(jù)元素蓋寫用于所述寫目的地虛擬頁的數(shù)據(jù)元素;并且如果上述(G2)中的判定的結(jié)果是否定的,則所述真實(shí)頁寫處理中的寫數(shù)據(jù)元素是蓋寫后的數(shù)據(jù)元素,然而,如果上述(G2)中的判定的結(jié)果是肯定的,則所述真實(shí)頁寫處理中的寫數(shù)據(jù)元素是用于所述寫目的地虛擬頁的數(shù)據(jù)元素本身;
8.根據(jù)權(quán)利要求1、6或7中任一項(xiàng)所述的存儲(chǔ)系統(tǒng),其中 所述池由多個(gè)池子區(qū)域060;3)組成;對(duì)每個(gè)池子區(qū)域定義真實(shí)頁長(zhǎng)度;不對(duì)所述多個(gè)池子區(qū)域中的未使用的池子區(qū)域定義真實(shí)頁長(zhǎng)度;并且在所述真實(shí)頁寫處理中,所述池管理部基于包含壓縮后的寫數(shù)據(jù)元素的數(shù)據(jù)單元的數(shù)據(jù)長(zhǎng)度來定義真實(shí)頁長(zhǎng)度,并從已被定義真實(shí)頁長(zhǎng)度的池子區(qū)域選擇已被定義真實(shí)頁長(zhǎng)度的真實(shí)頁
9.根據(jù)權(quán)利要求3或8所述的存儲(chǔ)系統(tǒng),其中 所述池由多個(gè)真實(shí)卷組成;所述真實(shí)卷是基于一個(gè)或更多存儲(chǔ)設(shè)備的邏輯卷; 每個(gè)真實(shí)卷由多個(gè)大塊組成;且所述池子區(qū)域是大塊。
10.根據(jù)權(quán)利要求8或9所述的存儲(chǔ)系統(tǒng),其中,所述池管理部判定組成使用中的某一池子區(qū)域的所有真實(shí)頁是否未被分配,并且,如果該判定的結(jié)果是肯定的,則將使用中的該池子區(qū)域的狀態(tài)從“使用中,,改變?yōu)椤拔词褂谩薄?br>
11.根據(jù)權(quán)利要求1和6至10中任一項(xiàng)所述的存儲(chǔ)系統(tǒng),其中,滿足所述(條件A)和所述(條件B)的真實(shí)頁是未分配給任何虛擬頁的兩個(gè)或更多真實(shí)頁,并且這兩個(gè)或更多真實(shí)頁的總真實(shí)頁長(zhǎng)度是所述多個(gè)總真實(shí)頁長(zhǎng)度中的、大于或等于所述單元的長(zhǎng)度且與所述數(shù)據(jù)單元的長(zhǎng)度的差別最小的那個(gè)總真實(shí)頁長(zhǎng)度。
12.根據(jù)權(quán)利要求6至11中任一項(xiàng)所述的存儲(chǔ)系統(tǒng),其中臨時(shí)真實(shí)頁寫處理被包含在用于所述寫目的地虛擬頁的所述寫處理中以代替所述真實(shí)頁寫處理;所述控制器在與所述寫處理不同的定時(shí)執(zhí)行異步壓縮處理; 所述真實(shí)頁寫處理被包含在所述異步壓縮處理中; 在所述臨時(shí)真實(shí)頁寫處理中(Hl)所述池管理部選擇具有與虛擬頁長(zhǎng)度相同的真實(shí)頁長(zhǎng)度的未分配真實(shí)頁,并好似所述寫目的地虛擬頁的狀態(tài)未被壓縮那樣來對(duì)選擇的未分配真實(shí)頁進(jìn)行管理,并將已選擇的所述真實(shí)頁分配給所述寫目的地虛擬頁;以及(H2)所述I/O處理部將包含所述寫數(shù)據(jù)元素的數(shù)據(jù)單元存儲(chǔ)在已選擇的所述真實(shí)頁中;如果上述(F2)中的判定的結(jié)果是否定的,則所述臨時(shí)真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是已被蓋寫的數(shù)據(jù)元素,然而,如果上述(F2)中的判定的結(jié)果是肯定的,則所述臨時(shí)真實(shí)頁寫處理中的所述寫數(shù)據(jù)元素是用于所述寫目的地虛擬頁的數(shù)據(jù)元素本身; 在所述異步壓縮處理中(11)所述池管理部判定作為處理對(duì)象的虛擬頁的狀態(tài)是否是未壓縮;以及(12)如果上述判定(Il)的結(jié)果是肯定的,則所述池管理部指定分配給作為處理對(duì)象的虛擬頁的真實(shí)頁;所述I/O處理部從已指定的所述真實(shí)頁讀取數(shù)據(jù)單元;所述真實(shí)頁寫處理被執(zhí)行;并且之后,所述池管理部好似作為管理對(duì)象的所述虛擬頁的狀態(tài)已被壓縮那樣來對(duì)所指定的真實(shí)頁進(jìn)行管理;并且在上述(1 的所述真實(shí)頁寫處理中,所述寫處理數(shù)據(jù)元素是在上述(1 中讀取的數(shù)據(jù)單元中包含的數(shù)據(jù)元素。
13.根據(jù)權(quán)利要求6或12所述的存儲(chǔ)系統(tǒng),其中所述控制器進(jìn)一步包括訪問頻率管理部(觀01),所述訪問頻率管理部管理對(duì)每個(gè)虛擬頁的訪問的頻率;并且如果對(duì)作為讀取源的所述真實(shí)頁的訪問頻率高于某一特定訪問頻率,則即使在上述 (Il)中的判定的結(jié)果是肯定的也不執(zhí)行上述(12)。
14.根據(jù)權(quán)利要求3和8至10中任一項(xiàng)所述的存儲(chǔ)系統(tǒng),其中所述池管理部指定兩個(gè)或更多池子區(qū)域,對(duì)于所述兩個(gè)或更多池子區(qū)域,所定義的真實(shí)頁長(zhǎng)度是相同的;所述I/O處理部將數(shù)據(jù)單元從所述兩個(gè)或更多池子區(qū)域中的一個(gè)池子區(qū)域內(nèi)的已分配的真實(shí)頁拷貝到所述兩個(gè)或更多池子區(qū)域中的某個(gè)其他池子區(qū)域內(nèi)的未分配的真實(shí)頁; 并且所述池管理部撤銷作為拷貝源的真實(shí)頁對(duì)其虛擬頁的分配,將作為拷貝目的地的真實(shí)頁分配給該虛擬頁,并將所指定的池子區(qū)域的狀態(tài)更新為未使用狀態(tài)。
15. 一種存儲(chǔ)控制方法,其中對(duì)用于構(gòu)成虛擬卷的多個(gè)虛擬頁中的寫目的地虛擬頁的寫數(shù)據(jù)元素進(jìn)行壓縮 (S801);從池O601)選擇滿足如下所述的(條件A)和(條件B)的真實(shí)頁(S804,S812);(條件A)所述真實(shí)頁長(zhǎng)度是基于具有壓縮后的寫數(shù)據(jù)元素的數(shù)據(jù)單元的數(shù)據(jù)長(zhǎng)度的真實(shí)頁長(zhǎng)度;(條件B)所述真實(shí)頁是未被分配給任何虛擬頁的真實(shí)頁;將所選擇的真實(shí)頁分配給所述寫目的地虛擬頁(S806,S807);將已選擇的真實(shí)頁存儲(chǔ)在所述數(shù)據(jù)單元中(S808);所述池O601)由多個(gè)真實(shí)頁O607)組成,多個(gè)存儲(chǔ)設(shè)備(111)構(gòu)成所述多個(gè)真實(shí)頁的基礎(chǔ);不同長(zhǎng)度的真實(shí)頁包含在所述多個(gè)真實(shí)頁中;每個(gè)虛擬頁是虛擬存儲(chǔ)區(qū)域;每個(gè)真實(shí)頁是物理存儲(chǔ)區(qū)域;以及所述數(shù)據(jù)單元由所述壓縮后的寫數(shù)據(jù)元素本身組成,或由特定信息和所述壓縮后的寫數(shù)據(jù)元素組成。
全文摘要
基于多個(gè)存儲(chǔ)設(shè)備形成池。該池由多個(gè)真實(shí)頁構(gòu)成。不同長(zhǎng)度的真實(shí)頁包括在該多個(gè)真實(shí)頁中。在組成虛擬卷的多個(gè)虛擬頁中,控制器壓縮寫數(shù)據(jù)元素用于寫目的地虛擬頁,基于包括壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)單元的數(shù)據(jù)長(zhǎng)度選擇真實(shí)頁長(zhǎng)度的真實(shí)頁,并且將選擇的真實(shí)頁分配到寫目的地虛擬頁。
文檔編號(hào)G06F3/06GK102209953SQ20098014486
公開日2011年10月5日 申請(qǐng)日期2009年1月30日 優(yōu)先權(quán)日2009年1月30日
發(fā)明者志賀賢太 申請(qǐng)人:株式會(huì)社日立制作所