国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      存儲(chǔ)系統(tǒng)的制作方法

      文檔序號(hào):6542412閱讀:198來(lái)源:國(guó)知局
      存儲(chǔ)系統(tǒng)的制作方法
      【專利摘要】本發(fā)明公開了存儲(chǔ)系統(tǒng)?;诙鄠€(gè)存儲(chǔ)設(shè)備形成池。該池由多個(gè)真實(shí)頁(yè)構(gòu)成。不同長(zhǎng)度的真實(shí)頁(yè)包括在該多個(gè)真實(shí)頁(yè)中。在組成虛擬卷的多個(gè)虛擬頁(yè)中,控制器壓縮寫數(shù)據(jù)元素用于寫目的地虛擬頁(yè),基于包括壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)單元的數(shù)據(jù)長(zhǎng)度選擇真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè),并且將選擇的真實(shí)頁(yè)分配到寫目的地虛擬頁(yè)。
      【專利說(shuō)明】存儲(chǔ)系統(tǒng)
      [0001]本申請(qǐng)是2009年I月30日提出的、申請(qǐng)?zhí)枮?00980144865.2、名稱為“壓縮和存
      儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)和存儲(chǔ)控制方法”的發(fā)明申請(qǐng)的分案申請(qǐng)。
      【技術(shù)領(lǐng)域】
      [0002]本發(fā)明總地涉及壓縮和存儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)控制。
      【背景技術(shù)】
      [0003]例如,專利引用I中揭示的存儲(chǔ)系統(tǒng)已知是壓縮和存儲(chǔ)數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)。
      [0004]專利引用1:日本延遲公開專利公開2006-259962。

      【發(fā)明內(nèi)容】

      [0005]技術(shù)問(wèn)題
      [0006]存儲(chǔ)系統(tǒng)通常包括控制器和一組存儲(chǔ)設(shè)備。數(shù)據(jù)元素由控制器壓縮,并且壓縮的數(shù)據(jù)元素存儲(chǔ)在存儲(chǔ)空間中,存儲(chǔ)空間基于一組存儲(chǔ)設(shè)備。
      [0007]通常,如果壓縮方法不同,數(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ù)目也增加。
      [0008]作為減小管理信息量變大的可能性的一個(gè)方法,考慮了一種方法,將存儲(chǔ)空間劃分為固定長(zhǎng)度的存儲(chǔ)區(qū)域(下文中稱為固定大小區(qū)域),并且存儲(chǔ)已經(jīng)被壓縮在一個(gè)固定大小區(qū)域中的一個(gè)數(shù)據(jù)元素;換句話說(shuō),以這些固定大小區(qū)域?yàn)閱挝粓?zhí)行管理。
      [0009]然而,根據(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)度)也短。換句話說(shuō),容量可擴(kuò)展性可能惡化。
      [0010]因而,本發(fā)明的目的是提供其中壓縮了數(shù)據(jù)元素的存儲(chǔ)系統(tǒng)中的高容量效率,同時(shí)確保容量可擴(kuò)展性不下降。
      [0011]技術(shù)方案
      [0012]基于包括在存儲(chǔ)系統(tǒng)中的多個(gè)存儲(chǔ)設(shè)備提供了池。該池由多個(gè)真實(shí)頁(yè)(物理存儲(chǔ)區(qū)域)組成。不同長(zhǎng)度的真實(shí)頁(yè)包括在該多個(gè)真實(shí)頁(yè)中。[0013]控制器包括:壓縮部、池管理部和I/O處理部。
      [0014]壓縮部對(duì)虛擬卷中包括的多個(gè)虛擬頁(yè)(虛擬存儲(chǔ)區(qū)域)中的寫目的地虛擬頁(yè)壓縮寫數(shù)據(jù)元素。
      [0015]池管理部選擇滿足以下描述的(條件A)和(條件B)的真實(shí)頁(yè),并將所選擇的真實(shí)頁(yè)分配給所述寫目的地虛擬頁(yè):
      [0016](條件A):所述真實(shí)頁(yè)的真實(shí)頁(yè)長(zhǎng)度是基于具有壓縮后的寫數(shù)據(jù)元素的數(shù)據(jù)單元的長(zhǎng)度;
      [0017](條件B):所述真實(shí)頁(yè)未被分配給任何虛擬頁(yè)。
      [0018]I/O處理部在已選擇的真實(shí)頁(yè)中存儲(chǔ)所述數(shù)據(jù)單元。
      [0019]數(shù)據(jù)單元由所述壓縮后的寫數(shù)據(jù)元素自身組成,或由特定信息和所述壓縮后的寫數(shù)據(jù)元素組成。該特定信息可以是例如數(shù)據(jù)整體性碼(例如ECC (錯(cuò)誤校正碼))。
      [0020]這里,“數(shù)據(jù)元素”(例如,寫數(shù)據(jù)元素)是用于一個(gè)虛擬頁(yè)的元素,并且可以具有例如與虛擬頁(yè)長(zhǎng)度相同的長(zhǎng)度。通過(guò)使得數(shù)據(jù)元素被壓縮,成為比虛擬頁(yè)長(zhǎng)度短的數(shù)據(jù)元素(有時(shí)由于數(shù)據(jù)元素的內(nèi)容等,不會(huì)發(fā)生這種情況)。
      [0021]壓縮部、池管理部和I/O處理部中的至少一個(gè)可以由硬件、計(jì)算機(jī)程序或其組合(例如,一個(gè)部分可以由計(jì)算機(jī)程序?qū)嵤┒溆嗖糠挚梢杂捎布?shí)施)組成。
      【專利附圖】

      【附圖說(shuō)明】
      [0022]圖1是根據(jù)本發(fā)明第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖;
      [0023]圖2是示出管理終端102的結(jié)構(gòu)的圖;
      [0024]圖3是各種表的結(jié)構(gòu)圖;
      [0025]圖4示出了在本發(fā)明第一實(shí)施例中的池管理屏幕401的示例;
      [0026]圖5是出了虛擬LU管理屏幕501的示例;
      [0027]圖6是寫處理的流程圖;
      [0028]圖7是本發(fā)明第一實(shí)施例中的真實(shí)頁(yè)讀處理的流程圖;
      [0029]圖8是本發(fā)明第一實(shí)施例中的真實(shí)頁(yè)寫處理的流程圖;
      [0030]圖9是缺省長(zhǎng)度真實(shí)頁(yè)選擇處理的流程圖;
      [0031]圖10是真實(shí)頁(yè)選擇處理的流程圖;
      [0032]圖11是本發(fā)明第一實(shí)施例中的讀取處理的流程圖;
      [0033]圖12示出了本發(fā)明第二實(shí)施例的非易失性存儲(chǔ)器130中保存的程序和表;
      [0034]圖13是本發(fā)明第二實(shí)施例中的表1300、1310、1320和1330的結(jié)構(gòu)圖;
      [0035]圖14示出了本發(fā)明第二實(shí)施例中的池管理屏幕1401的示例;
      [0036]圖15示出了真實(shí)頁(yè)長(zhǎng)度管理屏幕1501的示例;
      [0037]圖16是本發(fā)明第二實(shí)施例中缺省長(zhǎng)度真實(shí)頁(yè)選擇處理的流程圖;
      [0038]圖17是本發(fā)明第二實(shí)施例中的真實(shí)頁(yè)選擇處理的流程圖;
      [0039]圖18是大塊無(wú)用數(shù)據(jù)(chunk garbage)收集處理的流程圖;
      [0040]圖19是本發(fā)明第三實(shí)施例中的虛擬頁(yè)表1900的結(jié)構(gòu)圖;
      [0041]圖20是本發(fā)明第三實(shí)施例中的真實(shí)頁(yè)選擇處理的流程圖;
      [0042]圖21是本發(fā)明第四實(shí)施例中的虛擬頁(yè)表2137的結(jié)構(gòu)圖;[0043]圖22是本發(fā)明第四實(shí)施例中的真實(shí)頁(yè)讀處理的流程圖;
      [0044]圖23是臨時(shí)真實(shí)頁(yè)寫處理的流程圖;
      [0045]圖24是本發(fā)明第四實(shí)施例中的讀處理的流程圖;
      [0046]圖25是異步壓縮處理的流程圖;
      [0047]圖26是出了本發(fā)明第一實(shí)施例的概括;
      [0048]圖27示出了實(shí)施例的概括,其中在本發(fā)明第一至第三實(shí)施例的組合中,虛擬LU是次級(jí)LU ;
      [0049]圖28A是本發(fā)明第四實(shí)施例的變型中的虛擬頁(yè)表2137的結(jié)構(gòu)圖;
      [0050]圖28B示出了在本發(fā)明第四實(shí)施例的變型中存儲(chǔ)在非易失性存儲(chǔ)器130中的訪問(wèn)
      頻率管理程序;
      [0051]圖28C示出了在本發(fā)明第四實(shí)施例的變型中改變異步壓縮處理的位置;
      [0052]圖29A示出了如同在本發(fā)明第二實(shí)施例的第二變型例中執(zhí)行的在池子區(qū)域之間復(fù)制數(shù)據(jù)單元;
      [0053]圖29B示出了在本發(fā)明第二實(shí)施例的第二變型例中作為復(fù)制源的真實(shí)頁(yè)的狀態(tài)已經(jīng)被從“已使用”更新為“未使用”;以及
      [0054]圖29C示出了作為復(fù)制源的池子區(qū)域的狀態(tài)已經(jīng)被從“已使用”更新為“未使用”。
      [0055]附圖標(biāo)記說(shuō)明
      [0056]110:存儲(chǔ)系統(tǒng)
      【具體實(shí)施方式】
      [0057]將參考【專利附圖】
      附圖
      【附圖說(shuō)明】本發(fā)明的幾個(gè)實(shí)施例。應(yīng)當(dāng)理解在下文中當(dāng)相同類型的元素沒(méi)有被特別區(qū)分時(shí),只使用相同的基本數(shù)字,但是,當(dāng)要區(qū)分相同類型的元素時(shí),將使用基本數(shù)字和附帶附圖標(biāo)記的組合。
      [0058]發(fā)明方式I
      [0059]圖26示出了本發(fā)明第一實(shí)施例的概括。
      [0060]存儲(chǔ)系統(tǒng)110包括控制器120和池2601。
      [0061]池2601由多個(gè)池子區(qū)域2603 (例如三個(gè)池子區(qū)域2603A至2603C)組成。每個(gè)池子區(qū)域2603包括多個(gè)真實(shí)頁(yè)2607。這些真實(shí)頁(yè)2607的長(zhǎng)度(即真實(shí)頁(yè)長(zhǎng)度)對(duì)于每個(gè)池子區(qū)域2603定義。例如,池子區(qū)域2603B中的真實(shí)頁(yè)2607B的長(zhǎng)度可以長(zhǎng)于池區(qū)域2603A中的真實(shí)頁(yè)2607A的長(zhǎng)度,并且池子區(qū)域2603C中的真實(shí)頁(yè)2607C的長(zhǎng)度可以長(zhǎng)于真實(shí)頁(yè)2607B的長(zhǎng)度。一個(gè)池子區(qū)域2603中的所有的真實(shí)頁(yè)是相同長(zhǎng)度。池2601是基于多個(gè)HDD(硬盤驅(qū)動(dòng))的物理存儲(chǔ)空間,并且因此,每個(gè)真實(shí)頁(yè)2607是物理存儲(chǔ)區(qū)域。
      [0062]控制器120將虛擬LU (邏輯單元)2605提供給主機(jī)。每個(gè)虛擬LU2605由多個(gè)虛擬頁(yè)2609組成。虛擬LU2605是虛擬邏輯卷(即不基于HDD的卷)。因此,每個(gè)虛擬頁(yè)2609是虛擬存儲(chǔ)區(qū)域。一個(gè)虛擬LU2605中的所有虛擬頁(yè)2609是相同長(zhǎng)度。真實(shí)頁(yè)2607的最大長(zhǎng)度可以例如與虛擬頁(yè)2609的長(zhǎng)度相同。
      [0063]下面,將說(shuō)明第一實(shí)施例中執(zhí)行的處理的概括。
      [0064]在從主機(jī)接收到寫請(qǐng)求時(shí),控制器120對(duì)于每個(gè)寫數(shù)據(jù)元素(出于說(shuō)明方便,在圖中簡(jiǎn)寫為“WDE”)(換種方式,對(duì)于屬于由該寫請(qǐng)求指定的寫范圍的每個(gè)虛擬頁(yè))執(zhí)行下述處理。即,控制器120壓縮寫數(shù)據(jù)元素。接下來(lái),控制器120選擇真實(shí)頁(yè)2607,該真實(shí)頁(yè)2607的長(zhǎng)度基于該壓縮的寫數(shù)據(jù)元素(出于說(shuō)明方便,在圖中簡(jiǎn)寫為“CWDE”)中包括的數(shù)據(jù)單元的長(zhǎng)度,并且是沒(méi)有被分配給任何虛擬頁(yè)2609的真實(shí)頁(yè)2607 (換句話說(shuō),未使用的真實(shí)頁(yè))。以更加具體的方式,例如,控制器120選擇長(zhǎng)度滿足下面兩個(gè)條件(a)和(b)的真實(shí)頁(yè)2607:
      [0065](a)大于或等于數(shù)據(jù)單元的長(zhǎng)度;
      [0066](b)與該數(shù)據(jù)單元的長(zhǎng)度的差異最小。
      [0067]根據(jù)圖26中的示例,由于數(shù)據(jù)單元的長(zhǎng)度與真實(shí)頁(yè)2607B的長(zhǎng)度相同,相應(yīng)地選擇真實(shí)頁(yè)2607B。并且控制器120將該數(shù)據(jù)單元存儲(chǔ)在已經(jīng)被選擇的真實(shí)頁(yè)2607B中。數(shù)據(jù)單元可以是壓縮的寫數(shù)據(jù)元素本身,或者可以由具有附加的數(shù)據(jù)整體性碼(例如ECC (錯(cuò)誤校正碼))的壓縮的寫數(shù)據(jù)元素組成。通過(guò)將數(shù)據(jù)整體性碼附加到壓縮的寫數(shù)據(jù)元素,可以防止壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)錯(cuò)誤。
      [0068]下面,將詳細(xì)說(shuō)明本發(fā)明的第一實(shí)施例。應(yīng)當(dāng)理解,下面出于說(shuō)明方便,假設(shè)數(shù)據(jù)單元是壓縮的數(shù)據(jù)元素本身。
      [0069]圖1是根據(jù)本發(fā)明第一實(shí)施例的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖。
      [0070]多個(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ò),第二通f目網(wǎng)絡(luò)例如是管理網(wǎng)絡(luò)104 (例如可以是LAN (局域網(wǎng)))。
      [0071]主機(jī)101是向存儲(chǔ)系統(tǒng)110發(fā)出I/O請(qǐng)求(寫請(qǐng)求或讀請(qǐng)求)的計(jì)算機(jī)。管理終端102是用于管理存儲(chǔ)系統(tǒng)110的終端。
      [0072]存儲(chǔ)系統(tǒng)110包括控制器120和一組存儲(chǔ)設(shè)備114。存儲(chǔ)設(shè)備組114包括多個(gè)HDD111。應(yīng)當(dāng)理解,替代HDD111,也可以利用其它類型的物理存儲(chǔ)設(shè)備,例如閃存設(shè)備等。
      [0073]控制器120接收從主機(jī)100發(fā)出的I/O請(qǐng)求,并且在處理該I/O請(qǐng)求時(shí)訪問(wèn)一個(gè)或多個(gè)HDDlll。該控制器120包括多個(gè)主機(jī)IF121,管理IF122,CPU123,主存儲(chǔ)器(MAIN)124,高速緩存存儲(chǔ)器(CM) 125,壓縮和擴(kuò)展電路(C/E電路)126,非易失性存儲(chǔ)器130以及HDD IF127。
      [0074]主機(jī)IF121是用于與外部設(shè)備(例如主機(jī)101等)通信的接口電路。
      [0075]管理IF122是用于經(jīng)由管理網(wǎng)絡(luò)104與例如管理終端102的外部設(shè)備通信的接口電路。
      [0076]HDD IF127是用于與HDDlll通信的接口電路。
      [0077]高速緩存存儲(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中。
      [0078]壓縮和擴(kuò)展電路126是硬件電路,并且壓縮或擴(kuò)展已經(jīng)被輸入的數(shù)據(jù)元素,然后輸出該數(shù)據(jù)元素。代替由硬件電路執(zhí)行,該壓縮和擴(kuò)展中的至少一個(gè)也能由執(zhí)行計(jì)算機(jī)程序的CPUl23執(zhí)行。
      [0079]管理終端通信程序131、池管理程序132、I/O處理程序133、真實(shí)LU表134、池表135、真實(shí)頁(yè)表136、虛擬頁(yè)表137以及虛擬LU表138存儲(chǔ)在非易失性存儲(chǔ)器130中。存儲(chǔ)在非易失性存儲(chǔ)器130中的這些計(jì)算機(jī)程序被載入主存儲(chǔ)器124,然后由CPU123執(zhí)行。管理終端通信程序131是用于與管理終端102 (更具體地,與下面將會(huì)描述的存儲(chǔ)通信程序149)通信的程序。池管理程序132是用于執(zhí)行與池管理(例如真實(shí)頁(yè)的選擇等)相關(guān)的處理的程序。I/O處理程序133是用于執(zhí)行與I/O (例如向真實(shí)頁(yè)存儲(chǔ)壓縮數(shù)據(jù)等)相關(guān)的處理的程序。這些各種程序和表將在下面詳細(xì)描述。在下面的說(shuō)明中,被描述作為由計(jì)算機(jī)程序執(zhí)行的處理實(shí)際上由執(zhí)行這些計(jì)算機(jī)程序的CPU執(zhí)行。
      [0080]圖2是示出管理終端102的結(jié)構(gòu)的圖。
      [0081]該管理終端102是計(jì)算機(jī)并且例如包括輸入設(shè)備142、輸出設(shè)備143、CPU144、主存儲(chǔ)器145、管理IF146以及HDD147。每個(gè)都連接到內(nèi)部總線150。
      [0082]該輸入設(shè)備142是點(diǎn)擊設(shè)備(例如鼠標(biāo))和/或鍵盤。輸出設(shè)備143是例如顯不設(shè)備。
      [0083]用戶接口控制程序(下文中稱為“Π控制程序”)148以及存儲(chǔ)通信程序149存儲(chǔ)在HDD147中(一些其它類型的存儲(chǔ)設(shè)備也可用)。這些計(jì)算機(jī)程序被載入主存儲(chǔ)器145,并且一旦被載入,由CPU144執(zhí)行。管理IF146是用于經(jīng)由管理網(wǎng)絡(luò)104與外部設(shè)備(例如存儲(chǔ)系統(tǒng)110等)通信的接口電路。Π控制程序148是用于在輸出設(shè)備143上顯示⑶I (圖形用戶接口)的程序。存儲(chǔ)通信程序149是用于與存儲(chǔ)系統(tǒng)110通信的計(jì)算機(jī)程序。Π控制程序148以及存儲(chǔ)通信程序149將在下面詳細(xì)描述。
      [0084]圖3是示出各種表的結(jié)構(gòu)圖。
      [0085]真實(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。
      [0086]池表135是用于管理與池相關(guān)的信息的表。具體地,對(duì)于組成池的每個(gè)真實(shí)LU,該池表135可以具有例如其中記錄了真實(shí)LU ID的域311,其中記錄了其真實(shí)頁(yè)長(zhǎng)度的域312以及其中記錄了第一真實(shí)頁(yè)ID的域313。用組成池2601的真實(shí)LU的其中一個(gè)作為例子(在該段中,在下文中,被稱為“目標(biāo)真實(shí)LU”),在該表135中記錄各種類型的信息,如下所述。真實(shí)LU ID是表示目標(biāo)真實(shí)LU的識(shí)別符的信息。真實(shí)頁(yè)長(zhǎng)度信息是表示組成目標(biāo)真實(shí)LU的真實(shí)頁(yè)的長(zhǎng)度的信息。第一真實(shí)頁(yè)ID是表示作為目標(biāo)真實(shí)LU的第一個(gè)的真實(shí)頁(yè)的識(shí)別符的信息。根據(jù)下面說(shuō)明,在該第一實(shí)施例中,已經(jīng)參考圖26說(shuō)明的池子區(qū)域2603是真實(shí)LU。原因是對(duì)于每個(gè)真實(shí)LU定義了真實(shí)頁(yè)長(zhǎng)度。因此,能夠基于目標(biāo)真實(shí)LU的容量以及目標(biāo)真實(shí)LU的真實(shí)頁(yè)的真實(shí)頁(yè)長(zhǎng)度來(lái)計(jì)算組成目標(biāo)真實(shí)LU的真實(shí)頁(yè)數(shù)目。
      [0087]真實(shí)頁(yè)表136是用于管理與真實(shí)頁(yè)相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)真實(shí)頁(yè),真實(shí)頁(yè)表136可以具有其中記錄了真實(shí)頁(yè)ID的域321、其中記錄了其真實(shí)LU ID的域322以及其中記錄了其狀態(tài)信息的域323。用一個(gè)真實(shí)頁(yè)作為例子(在該段中,在下文中,被稱為“目標(biāo)真實(shí)頁(yè)”),在該表136中記錄各種類型的信息,如下所述。真實(shí)頁(yè)ID是表示該目標(biāo)真實(shí)頁(yè)的識(shí)別符的信息。并且真實(shí)LU ID是表示包含該目標(biāo)真實(shí)頁(yè)的真實(shí)LU的識(shí)別符的信息。另外,狀態(tài)信息是表示該目標(biāo)真實(shí)頁(yè)的狀態(tài)的信息。例如,如果該目標(biāo)真實(shí)頁(yè)被分配給某虛擬頁(yè),其狀態(tài)信息的值是“已使用”,而如果該目標(biāo)真實(shí)頁(yè)沒(méi)有被分配給任何虛擬頁(yè),其狀態(tài)信息的值是“未使用”。應(yīng)當(dāng)理解,盡管表示真實(shí)頁(yè)的長(zhǎng)度的信息沒(méi)有記錄在該表136中,使用與該真實(shí)頁(yè)對(duì)應(yīng)的真實(shí)LU ID作為關(guān)鍵字,通過(guò)參考池表135,可以指定真實(shí)頁(yè)的長(zhǎng)度。原因是與真實(shí)LU ID對(duì)應(yīng)的真實(shí)頁(yè)長(zhǎng)度信息記錄在池表135中。
      [0088]虛擬頁(yè)表137是用于管理與虛擬頁(yè)相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)虛擬頁(yè),虛擬頁(yè)表137可以具有其中記錄了虛擬頁(yè)ID的域331、其中記錄了其真實(shí)頁(yè)ID的域332以及其中記錄了其壓縮的數(shù)據(jù)長(zhǎng)度信息的域333。用一個(gè)虛擬頁(yè)作為例子(在該段中,在下文中,被稱為“目標(biāo)虛擬頁(yè)”),在該表137中記錄各種類型的信息,如下所述。虛擬頁(yè)ID是表示該目標(biāo)虛擬頁(yè)的識(shí)別符的信息。并且真實(shí)頁(yè)ID是表示分配給該目標(biāo)虛擬頁(yè)的真實(shí)頁(yè)的識(shí)別符的信息。應(yīng)當(dāng)理解,如果沒(méi)有真實(shí)頁(yè)被分配給目標(biāo)虛擬頁(yè),該真實(shí)頁(yè)ID的值是例如“N/A”(沒(méi)有指派)。另外,壓縮數(shù)據(jù)長(zhǎng)度信息是表示存儲(chǔ)在分配給目標(biāo)虛擬頁(yè)的真實(shí)頁(yè)中的壓縮后的數(shù)據(jù)元素的長(zhǎng)度。如果沒(méi)有真實(shí)頁(yè)被分配給目標(biāo)虛擬頁(yè),則該壓縮數(shù)據(jù)長(zhǎng)度信息的值是例如“N/A”。壓縮的數(shù)據(jù)長(zhǎng)度信息是例如在后述的真實(shí)頁(yè)讀處理和寫處理中,用于指定應(yīng)當(dāng)向哪個(gè)已經(jīng)被讀取的數(shù)據(jù)元素部分施加擴(kuò)展處理。例如,當(dāng)已經(jīng)從被分配給目標(biāo)虛擬頁(yè)的真實(shí)頁(yè)讀取的數(shù)據(jù)元素的長(zhǎng)度可以是512kB并且與目標(biāo)虛擬頁(yè)對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值可以表示346kB,可以發(fā)現(xiàn)擴(kuò)展處理應(yīng)當(dāng)被施加到512kB的數(shù)據(jù)元素的346kB的數(shù)據(jù)元素部分。
      [0089]虛擬LU表138是用于管理與虛擬LU相關(guān)的信息的表。具體地,例如,對(duì)于每個(gè)虛擬頁(yè),虛擬LU表138可以具有其中記錄了虛擬LU ID的域341、其中記錄了容量信息的域342、其中記錄了第一虛擬頁(yè)ID的域343以及其中記錄了壓縮信息的域344。用一個(gè)虛擬LU作為例子(在該段中,在下文中,被稱為“目標(biāo)虛擬LU”),在該表138中記錄各種類型的信息,如下所述。虛擬LU ID是表示該目標(biāo)虛擬LU的識(shí)別符的信息。容量信息是表示對(duì)于目標(biāo)虛擬LU定義的容量的信息,換句話說(shuō),表示目標(biāo)虛擬LU的容量的信息。第一虛擬頁(yè)ID是表示作為目標(biāo)虛擬LU的第一個(gè)的虛擬頁(yè)的識(shí)別符的信息。壓縮信息是表示是否壓縮了存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù)的信息。具體地,如果例如壓縮了存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù),則該壓縮信息的值是“開”,但是如果沒(méi)有壓縮存儲(chǔ)在目標(biāo)虛擬LU中的數(shù)據(jù),則該壓縮信息的值是“關(guān)”。
      [0090]現(xiàn)在,池2601中的真實(shí)LU的真實(shí)頁(yè)的長(zhǎng)度可以例如由管理終端102的用戶通過(guò)使用圖4所示的池管理屏幕401來(lái)設(shè)置。另外,設(shè)置虛擬LU的容量,并且存儲(chǔ)在這些虛擬LU中的數(shù)據(jù)元素是否被壓縮可以例如由管理終端102的用戶通過(guò)使用圖5所示的虛擬LU
      管理屏幕501來(lái)設(shè)置。
      [0091]圖4示出了該池管理屏幕401的例子。
      [0092]該池管理屏幕401是由Π控制程序149顯示的⑶I。在該池管理屏幕401上,設(shè)置了用于要被添加到池2601中的真實(shí)LU的ID的輸入域402、以及用于輸入要被添加的該真實(shí)LU的真實(shí)頁(yè)的長(zhǎng)度的輸入域403。使用圖2所示的輸入設(shè)備142,用戶向真實(shí)LU ID輸入域402輸入要被添加的真實(shí)LU的ID,并且也將該真實(shí)LU的真實(shí)頁(yè)的長(zhǎng)度輸入到真實(shí)頁(yè)大小輸入域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í)頁(yè)長(zhǎng)度。并且在由存儲(chǔ)系統(tǒng)110中的管理終端通信程序131接收到該信息時(shí),池管理程序132執(zhí)行下述處理。即,池管理程序132向池表135添加下述記錄:其中記錄了表示由管理終端通信程序131接收的(換句話說(shuō),由用戶輸入的)真實(shí)LU ID和真實(shí)頁(yè)長(zhǎng)度信息的信息。另外,池管理程序132向真實(shí)頁(yè)表136添加與所有真實(shí)頁(yè)對(duì)應(yīng)的記錄,這些真實(shí)頁(yè)組成已經(jīng)被添加池2601的真實(shí)LU (即,包括它們的真實(shí)頁(yè)ID和它們的真實(shí)LU ID的記錄)。
      [0093]圖5示出了虛擬LU管理屏幕501的例子。
      [0094]虛擬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)”。
      [0095]當(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接收的(換句話說(shuō),由用戶輸入的)的信息。
      [0096]下面,將說(shuō)明第一實(shí)施例中執(zhí)行的處理。
      [0097]圖6是用于寫處理的流程圖。
      [0098]該寫處理是下述處理:如果由從主機(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所示的寫處理。
      [0099]池管理程序132指定與寫請(qǐng)求指定的寫范圍(例如與LBA和寫數(shù)據(jù)的長(zhǎng)度)對(duì)應(yīng)的一個(gè)或多個(gè)虛擬頁(yè)(步驟S601)。
      [0100]接下來(lái),在步驟S601已經(jīng)指定的一個(gè)或多個(gè)虛擬頁(yè)中,池管理程序132將第一虛擬頁(yè)作為(步驟S602)下述處理(換句話說(shuō),步驟S603至S605)的目標(biāo)。
      [0101]接下來(lái),池管理程序132在作為處理目標(biāo)的虛擬頁(yè)上執(zhí)行真實(shí)頁(yè)讀處理(步驟
      5603)。下面將參考圖7描述該真實(shí)頁(yè)讀處理。
      [0102]接下來(lái),池管理程序132在作為處理目標(biāo)的虛擬頁(yè)上執(zhí)行真實(shí)頁(yè)寫處理(步驟
      5604)。下面將參考圖8描述該真實(shí)頁(yè)寫處理。
      [0103]接下來(lái),池管理程序132決定是否完成了與步驟S601中指定的寫范圍對(duì)應(yīng)的所有虛擬頁(yè)的處理(步驟S605)。如果在步驟S605的該決定結(jié)果是否定的(步驟S605,否),則池管理程序132將沒(méi)有被處理的虛擬頁(yè)中的下一個(gè)虛擬頁(yè)作為后續(xù)處理(換句話說(shuō),由步驟S603至S605處理)的目標(biāo)(步驟S606),并對(duì)作為處理目標(biāo)的該虛擬頁(yè)執(zhí)行步驟S603。另一方面,如果步驟S605中的決定結(jié)果是肯定的(步驟S605,是),則該寫處理終止。
      [0104]圖7是真實(shí)頁(yè)讀處理的流程圖。
      [0105]該真實(shí)頁(yè)讀處理是在圖6的步驟S603中執(zhí)行的處理。
      [0106]池管理程序132然后指定與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的真實(shí)頁(yè)(在圖7和圖8中,縮寫為目標(biāo)真實(shí)頁(yè)“TRP”)(步驟S701)。如果池管理程序132在步驟S701的真實(shí)頁(yè)指定中成功(步驟S702,是),則執(zhí)行步驟S705以及后續(xù)步驟的處理,另一方面,如果在真實(shí)頁(yè)的指定中失敗(步驟S702,否),則執(zhí)行步驟S703和S704的處理。
      [0107]如果在步驟S702中在真實(shí)頁(yè)的指定中有失敗(步驟S702,否),池管理程序132決定這是第一次寫(步驟S703),在將數(shù)據(jù)元素(高速緩沖存儲(chǔ)器125中的數(shù)據(jù)元素)寫到作為處理目標(biāo)的虛擬頁(yè)之前和/或之后,在需要的時(shí)候添加一個(gè)或多個(gè)“0”,并且將添加O的該數(shù)據(jù)元素作為(步驟S704)后續(xù)處理的目標(biāo)(寫數(shù)據(jù)元素)。換句話說(shuō),如果將被寫到作為處理目標(biāo)的虛擬頁(yè)的數(shù)據(jù)元素比虛擬頁(yè)長(zhǎng)度短,通過(guò)在步驟S704中的該數(shù)據(jù)元素前和/或后添加具有沒(méi)有含義(例如O等)的數(shù)據(jù)(具體地,指定“O”的位數(shù)據(jù)),通過(guò)將該數(shù)據(jù)元素的整個(gè)長(zhǎng)度作為與虛擬頁(yè)的長(zhǎng)度相同來(lái)執(zhí)行處理。
      [0108]另一方面,如果在步驟S702的真實(shí)頁(yè)的指定已經(jīng)成功(步驟S702,是),則池管理程序132決定在作為處理目標(biāo)的虛擬頁(yè)上寫的數(shù)據(jù)元素的長(zhǎng)度是否與虛擬頁(yè)長(zhǎng)度相同(步驟S705)。如果該步驟S705中的決定的結(jié)果是否定的(步驟S705,否),則執(zhí)行步驟S706和后續(xù)步驟的處理。另一方面,如果該步驟S705的決定的結(jié)果是肯定的(步驟S705,是),則池管理程序132將寫到作為處理目標(biāo)的虛擬頁(yè)上的數(shù)據(jù)元素本身作為后續(xù)處理目標(biāo)(即寫數(shù)據(jù)元素)(步驟S710),并且然后該處理序列終止。
      [0109]如果在該步驟S705的決定結(jié)果是否定的(步驟S705,否),則I/O處理程序133讀取存儲(chǔ)在步驟S701中發(fā)現(xiàn)的真實(shí)頁(yè)上的數(shù)據(jù)元素(步驟S706)。接下來(lái),池管理程序132輸入已經(jīng)被讀到壓縮和擴(kuò)展電路126的該數(shù)據(jù)元素,并且壓縮和擴(kuò)展電路126對(duì)該壓縮的數(shù)據(jù)元素(換句話說(shuō),已經(jīng)被讀取的數(shù)據(jù)元素)執(zhí)行擴(kuò)展(步驟S707)。并且I/O處理程序133使用已經(jīng)被擴(kuò)展的該數(shù)據(jù)元素來(lái)蓋寫作為處理目標(biāo)的虛擬頁(yè)上寫的數(shù)據(jù)元素(步驟S708)。另外,池管理程序132將步驟S708中被蓋寫的數(shù)據(jù)元素作為用于后續(xù)處理的目標(biāo)(即寫數(shù)據(jù)元素)(步驟S709)。
      [0110]下面,在圖8至圖10的說(shuō)明中,從步驟S704、S709和S710得到的數(shù)據(jù)將被稱為“寫數(shù)據(jù)元素”。從步驟S704得到的該寫數(shù)據(jù)元素或者是本身被寫到作為處理目標(biāo)的虛擬頁(yè)上的數(shù)據(jù)元素(換句話說(shuō),原始數(shù)據(jù)元素),或者是由該數(shù)據(jù)元素和在該數(shù)據(jù)元素前和/或后添加的O組成的數(shù)據(jù)元素。并且從步驟S709得到的寫數(shù)據(jù)元素是下述數(shù)據(jù):其中使用已從步驟S701中指定的真實(shí)頁(yè)讀取的并且擴(kuò)展的數(shù)據(jù)元素蓋寫在作為處理目標(biāo)的虛擬頁(yè)上寫的數(shù)據(jù)元素(換句話說(shuō),原始數(shù)據(jù)元素)。另外,作為步驟S710的處理結(jié)果的寫數(shù)據(jù)元素是寫在作為處理目標(biāo)的虛擬頁(yè)上的寫數(shù)據(jù)元素本身(換句話說(shuō),原始數(shù)據(jù)元素)。
      [0111]圖8是真實(shí)頁(yè)寫處理的流程圖。
      [0112]該真實(shí)頁(yè)寫處理是在圖6的步驟S604中執(zhí)行的處理。
      [0113]池管理程序132向壓縮和擴(kuò)展電路126輸入寫數(shù)據(jù)元素(WDE),并且壓縮和擴(kuò)展電路126壓縮寫數(shù)據(jù)元素(步驟S801)。結(jié)果,例如,輸入到電路126的寫數(shù)據(jù)元素(壓縮前的寫數(shù)據(jù)元素(在圖中簡(jiǎn)寫為“UWDE”))和已經(jīng)由電路126壓縮的寫數(shù)據(jù)元素(在圖中簡(jiǎn)寫為“CWDE”)存在于高速緩存存儲(chǔ)器125中。
      [0114]接下來(lái),池管理程序132決定在步驟S801壓縮的寫數(shù)據(jù)元素的長(zhǎng)度是否大于或等于虛擬頁(yè)長(zhǎng)度(步驟S802 )。
      [0115]如果步驟S802的決定的結(jié)果是否定的(步驟S802,否),則池管理程序132將壓縮的寫數(shù)據(jù)元素作為寫目標(biāo)(步驟S803)。接下來(lái),池管理程序132執(zhí)行圖10所示的真實(shí)頁(yè)選擇處理(在圖中簡(jiǎn)寫為“RP選擇處理”)(步驟S804)。換句話說(shuō),池管理程序132參考池表135的域312,并且在長(zhǎng)度大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁(yè)長(zhǎng)度中指定最短的真實(shí)頁(yè)長(zhǎng)度。(步驟S1001)。接下來(lái),池管理程序132參考真實(shí)頁(yè)表136,并且選擇作為由指定的真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)構(gòu)成的真實(shí)LU中的真實(shí)頁(yè)的真實(shí)頁(yè),并且其狀態(tài)信息值是“未使用”(步驟S1002)。
      [0116]另一方面,如果在步驟S802的決定的結(jié)果是肯定的(步驟S802,是),則池管理程序132將壓縮前的寫數(shù)據(jù)元素作為寫目標(biāo)(步驟S811)。原因是如下的事實(shí):在步驟S802的決定的結(jié)果是肯定的表示壓縮基本上沒(méi)有意義,因?yàn)椋词箟嚎s寫數(shù)據(jù)元素,它并不變得更短。接下來(lái),池管理程序132執(zhí)行圖9所示的缺省長(zhǎng)度真實(shí)頁(yè)選擇處理(在圖中簡(jiǎn)寫為“DLRP選擇處理”)(步驟S812)。換句話說(shuō),池管理程序132參考池表135和真實(shí)頁(yè)表136,并且在真實(shí)頁(yè)長(zhǎng)度與虛擬頁(yè)長(zhǎng)度相同且狀態(tài)信息值是“未使用”的真實(shí)頁(yè)中選擇真實(shí)頁(yè)(步驟 S901)。
      [0117]在步驟S804或步驟S812之后,執(zhí)行步驟S805和后續(xù)步驟。
      [0118]換句話說(shuō),池管理程序132決定在步驟S804或步驟S812中,真實(shí)頁(yè)的選擇是否成功(步驟S805)。如果在步驟S805的決定的結(jié)果是否定的(步驟S805,否),則池管理程序132向主機(jī)101響應(yīng)錯(cuò)誤(步驟S813)。
      [0119]如果在步驟S805的決定的結(jié)果是肯定的(步驟S805,是),則執(zhí)行步驟S806和后續(xù)步驟的處理。
      [0120]換句話說(shuō),池管理程序132參考真實(shí)頁(yè)表136,并且將與步驟S804或步驟S812中選擇的真實(shí)頁(yè)對(duì)應(yīng)的狀態(tài)信息的值改變?yōu)椤耙咽褂谩?步驟S806)。接下來(lái),池管理程序132參考虛擬頁(yè)表137,并且更新與作為處理目標(biāo)的虛擬頁(yè)相關(guān)的信息(步驟S807)。具體地,池管理程序132將與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的真實(shí)頁(yè)ID的值更新為在步驟S804或步驟S812中選擇的真實(shí)頁(yè)的真實(shí)頁(yè)ID,并且另外將與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值更新表示壓縮的寫數(shù)據(jù)元素的數(shù)據(jù)長(zhǎng)度的值。應(yīng)當(dāng)理解,如果在步驟S802的決定的結(jié)果是肯定的,則池管理程序132將壓縮數(shù)據(jù)長(zhǎng)度信息的值更新為與虛擬頁(yè)的長(zhǎng)度的值相同的值。接下來(lái),I/O處理程序133參考虛擬頁(yè)表137,并且將作為寫目標(biāo)的數(shù)據(jù)元素寫入分配給作為處理目標(biāo)的虛擬頁(yè)的真實(shí)頁(yè)中(換句話說(shuō),寫入在步驟S804或步驟S812中選擇的真實(shí)頁(yè)中)(步驟S808)。此時(shí),如果寫目標(biāo)數(shù)據(jù)元素比作為寫目的地的真實(shí)頁(yè)短,在寫目的地真實(shí)頁(yè)上的區(qū)域上而不是在存在寫目標(biāo)數(shù)據(jù)元素的其它區(qū)域上寫入無(wú)意義數(shù)據(jù)(例如O)。接下來(lái),池管理程序132決定該次寫入是否是第一次(步驟S809),并且如果該決定的結(jié)果是否定的(步驟S809,否),換句話說(shuō),如果圖7的步驟S703不被執(zhí)行,則將與在步驟S701選擇的真實(shí)頁(yè)(TRP)對(duì)應(yīng)的狀態(tài)信息的值(即真實(shí)頁(yè)表323的值)改變?yōu)椤拔词褂谩?步驟S810)。
      [0121]圖11是讀處理的流程圖。
      [0122]該讀處理是如下處理:如果由從主機(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所示的讀處理。[0123]池管理程序132指定與讀請(qǐng)求指定的讀范圍(例如與LBA和讀目標(biāo)數(shù)據(jù)的長(zhǎng)度)對(duì)應(yīng)的一個(gè)或多個(gè)虛擬頁(yè)(步驟S1101)。
      [0124]接下來(lái),在步驟SllOl中指定的一個(gè)或多個(gè)虛擬頁(yè)中,池管理程序132將第一虛擬頁(yè)作為(步驟S1102)后續(xù)處理(換句話說(shuō),步驟S1103至S1107)的目標(biāo)。
      [0125]接下來(lái),池管理程序132指定與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的真實(shí)頁(yè)(TRP)(步驟S1103)。
      [0126]接下來(lái),I/O處理程序133讀取在步驟S1103中指定的真實(shí)頁(yè)中存儲(chǔ)的數(shù)據(jù)元素(步驟 S1104)。
      [0127]接下來(lái),池管理程序132將已經(jīng)被讀至壓縮和擴(kuò)展電路126的該數(shù)據(jù)元素輸入,并且壓縮和擴(kuò)展電路126對(duì)被壓縮的該數(shù)據(jù)元素(換句話說(shuō),對(duì)已經(jīng)被讀入的數(shù)據(jù)元素)執(zhí)行擴(kuò)展(步驟S1105)。然而,如果作為處理目標(biāo)的虛擬頁(yè)的壓縮數(shù)據(jù)長(zhǎng)度(寫入虛擬頁(yè)表137中的值所表示的)與虛擬頁(yè)的長(zhǎng)度相同,則不執(zhí)行該擴(kuò)展處理(換句話說(shuō),跳過(guò)步驟S1105),因?yàn)樵诓襟ES1104讀取的數(shù)據(jù)元素是未壓縮的數(shù)據(jù)元素。
      [0128]接下來(lái),池管理程序132決定是否完成了與步驟SllOl中指定的讀范圍對(duì)應(yīng)的所有虛擬頁(yè)的處理(步驟S1106)。如果步驟S1106的決定的結(jié)果是否定的(步驟S1106,否),則池管理程序132將還沒(méi)有被處理的那些虛擬頁(yè)中的下一個(gè)虛擬頁(yè)作為后續(xù)處理(換句話說(shuō),由步驟S1103至S1105處理)的目標(biāo)(步驟S1108),并對(duì)作為處理目標(biāo)的虛擬頁(yè)執(zhí)行步驟S1103。另一方面,如果步驟S1106的決定的結(jié)果是肯定的(步驟S1106,是),則池管理程序132執(zhí)行步驟S1107。換句話說(shuō),池管理程序132將存在于高速緩沖存儲(chǔ)器125中的所有被擴(kuò)展的數(shù)據(jù)元素合并到一起(換句話說(shuō),根據(jù)從主機(jī)101接收的讀請(qǐng)求創(chuàng)建讀數(shù)據(jù)),并且將因而生成的讀數(shù)據(jù)發(fā)送到主機(jī)101。
      [0129]上述完成了對(duì)第一實(shí)施例的說(shuō)明。
      [0130]根據(jù)該第一實(shí)施例,在池2601中將多個(gè)不同的真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)混合到一起,并且以真實(shí)頁(yè)單元執(zhí)行管理。與當(dāng)所有真實(shí)頁(yè)的長(zhǎng)度短的情況(例如,當(dāng)所有的真實(shí)頁(yè)長(zhǎng)度小于虛擬頁(yè)長(zhǎng)度)相比,必須被管理的真實(shí)頁(yè)數(shù)目更小。因此,可以抑制容量擴(kuò)展的降低。
      [0131]另外,根據(jù)該第一實(shí)施例,在真實(shí)頁(yè)長(zhǎng)度大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度中指定最短的真實(shí)頁(yè)長(zhǎng)度,并且將壓縮的寫數(shù)據(jù)元素存儲(chǔ)到指定的真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)中。因此,可以實(shí)現(xiàn)高容量效率。
      [0132]發(fā)明方式2
      [0133]下面,將說(shuō)明本發(fā)明的第二實(shí)施例。在該說(shuō)明中,重點(diǎn)是與第一實(shí)施例的不同之處,并且將省略或簡(jiǎn)單描述與第一實(shí)施例共同的特征(在后述第三和第四實(shí)施例的情況中也是如此)。
      [0134]在該第二實(shí)施例中,沒(méi)有對(duì)未使用池子區(qū)域2603定義真實(shí)頁(yè)長(zhǎng)度,并且結(jié)果在那些未使用池子區(qū)域2603中沒(méi)有真實(shí)頁(yè)。在寫處理中,如果控制器120還不能從任何池子區(qū)域2603 (作為用于壓縮的寫數(shù)據(jù)元素的存儲(chǔ)目的地而使用)指定適當(dāng)?shù)恼鎸?shí)頁(yè),則定義對(duì)于未使用池子區(qū)域2603的真實(shí)頁(yè)長(zhǎng)度。由此,在該未使用池子區(qū)域2603中定義了該真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)??刂破?20從該未使用池子區(qū)域2603選擇一個(gè)真實(shí)頁(yè),并且將該真實(shí)頁(yè)分配到寫目的地虛擬頁(yè)。另外,在該第二實(shí)施例中,組成池2601的每個(gè)真實(shí)LU由多個(gè)大塊(真實(shí)LU的子存儲(chǔ)區(qū)域)組成,并且對(duì)于每個(gè)大塊定義真實(shí)頁(yè)長(zhǎng)度。因此,在該第二實(shí)施例中,大塊是池子區(qū)域2603。在該第二實(shí)施例中,大塊是固定長(zhǎng)度并且所有的大塊是相同的長(zhǎng)度。
      [0135]下面,將詳細(xì)說(shuō)明本發(fā)明的該第二實(shí)施例。
      [0136]圖12示出了在本發(fā)明的該第二實(shí)施例中的非易失性存儲(chǔ)器130中保存的程序和表。
      [0137]在該第二實(shí)施例中,添加了真實(shí)頁(yè)長(zhǎng)度表1300和大塊表1320。另外,池表1310和真實(shí)頁(yè)表1330的內(nèi)容與池表135和真實(shí)頁(yè)表136的內(nèi)容分別不同。[0138]圖13是該第二實(shí)施例中先前描述的表1300、1310、1320和1330的結(jié)構(gòu)圖。
      [0139]真實(shí)頁(yè)長(zhǎng)度表1300是其中能夠定義真實(shí)頁(yè)長(zhǎng)度的列表。根據(jù)該表1300,最大真實(shí)頁(yè)長(zhǎng)度是I? MB (兆字節(jié)),并且這與虛擬頁(yè)長(zhǎng)度相同。
      [0140]代替圖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”。
      [0141]大塊表1320是用于管理與大塊相關(guān)的信息的表。具體地,對(duì)于每個(gè)大塊,該大塊表1320可以具有例如其中記錄了大塊ID的域1321,其中記錄了真實(shí)頁(yè)長(zhǎng)度的域1322,其中記錄了狀態(tài)信息的域1323以及其中記錄了第一真實(shí)頁(yè)ID的域1324。用一個(gè)大塊作為例子(下文中,在該段中,這被稱為“目標(biāo)大塊”),下面描述在該表1320中記錄的各種信息。大塊ID是表示目標(biāo)大塊的識(shí)別符的信息。狀態(tài)信息是表示目標(biāo)大塊的使用狀態(tài)的信息。例如,如果對(duì)于目標(biāo)大塊定義了真實(shí)頁(yè)長(zhǎng)度,其狀態(tài)信息的值是“已使用”,但是如果沒(méi)有對(duì)目標(biāo)大塊定義真實(shí)頁(yè)長(zhǎng)度,則其狀態(tài)信息的值是“未使用”。第一真實(shí)頁(yè)ID是表示作為目標(biāo)大塊的第一個(gè)的真實(shí)頁(yè)的識(shí)別符。
      [0142]真實(shí)頁(yè)表1330具有對(duì)于每個(gè)真實(shí)頁(yè)的域1332,代替圖3所示的域332。大塊ID記錄在該域1332中。該大塊ID是表示具有與該域1332對(duì)應(yīng)的真實(shí)頁(yè)的大塊的識(shí)別符。
      [0143]圖14示出了該第二實(shí)施例中的池管理屏幕1401的例子。
      [0144]在該池管理屏幕1401上設(shè)置了真實(shí)頁(yè)長(zhǎng)度輸入域,并且在該特征上不同于圖4所示的池管理屏幕401。
      [0145]當(dāng)用戶按下“確認(rèn)”按鈕時(shí),如已經(jīng)描述的,向池表1310添加記錄,在該池表1310中記錄了已經(jīng)從用戶輸入的真實(shí)LU ID。記錄在該記錄中的第一大塊ID被作為池2601中最后一個(gè)大塊的ID之后的下一個(gè)ID。另外,基于與已經(jīng)添加到池2601的真實(shí)LU對(duì)應(yīng)的容量,池管理程序132指定組成已經(jīng)被添加的該真實(shí)LU的大塊數(shù)目,并且將與已經(jīng)指定的該大塊數(shù)目相同的數(shù)目的記錄添加到大塊表1320中。由于在因而已經(jīng)被添加的每個(gè)記錄中記錄了大塊ID,真實(shí)頁(yè)長(zhǎng)度值、狀態(tài)信息以及第一真實(shí)頁(yè)ID是“N/A”。
      [0146]圖15示出了真實(shí)頁(yè)長(zhǎng)度管理屏幕1501的例子。
      [0147]⑶I由UI控制程序148顯示在該真實(shí)頁(yè)長(zhǎng)度管理屏幕1501上。用于輸入要被添加的真實(shí)頁(yè)長(zhǎng)度的輸入域1502被設(shè)置在該真實(shí)頁(yè)長(zhǎng)度管理屏幕1501上。使用輸入設(shè)備142,用戶將要被添加的真實(shí)頁(yè)長(zhǎng)度輸入到該添加的真實(shí)頁(yè)長(zhǎng)度輸入域1502中。
      [0148]當(dāng)用戶按下“確認(rèn)”按鈕時(shí),存儲(chǔ)通信程序149向存儲(chǔ)系統(tǒng)110通知已經(jīng)輸入到輸入域1502的真實(shí)頁(yè)長(zhǎng)度。存儲(chǔ)系統(tǒng)110中的管理終端通信程序131接收該信息,并且池管理程序132執(zhí)行下述處理。換句話說(shuō),池管理程序132將記錄添加到真實(shí)頁(yè)長(zhǎng)度表1300中,其中記錄了已經(jīng)由管理終端通信程序131接收的(即已經(jīng)從用戶輸入的)真實(shí)頁(yè)長(zhǎng)度。
      [0149]也可以在運(yùn)輸產(chǎn)品時(shí)提前安排將多種類型的真實(shí)頁(yè)長(zhǎng)度記錄在真實(shí)頁(yè)長(zhǎng)度表1300中,以使得不能編輯表1300。
      [0150]圖16是本發(fā)明第二實(shí)施例中的缺省長(zhǎng)度真實(shí)頁(yè)選擇處理的流程圖。
      [0151]該缺省長(zhǎng)度真實(shí)頁(yè)選擇處理是在圖8的步驟S812中執(zhí)行的處理。[0152]池管理程序132參考大塊表1320的域1322,并且從長(zhǎng)度與虛擬頁(yè)長(zhǎng)度相同的那些真實(shí)頁(yè)中選擇狀態(tài)信息值是“未使用”的真實(shí)頁(yè)。
      [0153]池管理程序132然后決定在步驟S1601中真實(shí)頁(yè)的選擇是否成功(步驟S1602)。如果在該步驟S1602的決定的結(jié)果是肯定的(步驟S1602,是),則該選擇處理的序列終止。
      [0154]另一方面,如果在步驟S1602的決定結(jié)果是否定的(步驟S1602,否),由于例如,對(duì)于使用中的大塊不存在長(zhǎng)度與虛擬頁(yè)長(zhǎng)度相同的任何未使用的真實(shí)頁(yè),相應(yīng)地,對(duì)于某未使用的大塊,定義了與虛擬頁(yè)長(zhǎng)度相同的真實(shí)頁(yè)長(zhǎng)度。
      [0155]具體地,池管理程序132參考大塊表1320,并且指定狀態(tài)是“未使用”的某大塊(步驟 S1603)。
      [0156]接下來(lái),池管理程序132決定步驟S1603中大塊的指定是否成功(步驟S1604)。如果在步驟S1604的該決定結(jié)果是否定的(步驟S1604,否),該選擇處理的序列終止。另一方面,如果在步驟S1604的該決定結(jié)果是肯定的(步驟S1604,是)則池管理程序132將與步驟S1603中指定的大塊對(duì)應(yīng)的大塊表1320中的狀態(tài)信息值更新為“已使用”(步驟S1605)。在該步驟中,例如,與在步驟S1603中指定的大塊對(duì)應(yīng)的第一真實(shí)頁(yè)ID的值由池管理程序132從“N/A”更新為有效值。
      [0157]接下來(lái),池管理程序132將步驟S1603中指定的大塊劃分為與虛擬頁(yè)的長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(yè)(步驟S1606)。具體地,池管理程序132可以,例如將與步驟S1603中指定的大塊對(duì)應(yīng)的真實(shí)頁(yè)長(zhǎng)度的大塊表1320中的值更新為表示虛擬頁(yè)長(zhǎng)度的值(即更新為真實(shí)頁(yè)長(zhǎng)度表1300中描述的與虛擬頁(yè)長(zhǎng)度相同的真實(shí)頁(yè)長(zhǎng)度)。另外,池管理程序132可以,例如通過(guò)用大塊的容量(例如I ? GB (十億字節(jié)))除以虛擬頁(yè)長(zhǎng)度來(lái)計(jì)算組成在步驟S1603中指定的大塊的真實(shí)頁(yè)數(shù)目,并且可以添加與該數(shù)目相同數(shù)目的記錄。在因而添加的每個(gè)記錄中,真實(shí)頁(yè)ID是被自動(dòng)分配的值(例如序列中的數(shù)目),大塊ID是指定大塊的識(shí)別符并且狀態(tài)是“未使用”。
      [0158]接下來(lái),在步驟S1603中指定的大塊被劃分為的那些真實(shí)頁(yè)中,池管理程序132選擇第一真實(shí)頁(yè)(步驟S1607)。
      [0159]圖17是該第二實(shí)施例中的真實(shí)頁(yè)選擇處理的流程圖。
      [0160]真實(shí)頁(yè)選擇處理是圖8的步驟S804中執(zhí)行的處理。
      [0161]池管理程序132參考大塊表1320的域1322,并且在大于或等于壓縮的寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁(yè)長(zhǎng)度中指定最短真實(shí)頁(yè)長(zhǎng)度(步驟S1701 )。接下來(lái),池管理程序132參考真實(shí)頁(yè)表136,并且選擇一真實(shí)頁(yè),該真實(shí)頁(yè)是在由指定的真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)構(gòu)成的大塊中的真實(shí)頁(yè)并且狀態(tài)信息值是“未使用”(步驟S1702)。
      [0162]池管理程序132然后決定在步驟S1702中的選擇是否成功(步驟S1703)。如果該步驟S1703中的決定的結(jié)果是肯定的(步驟S1703,是),則該選擇處理的序列終止。[0163]另一方面,如果該步驟S1703中的決定的結(jié)果是否定的(步驟S1703,否),因?yàn)槔?,?duì)于使用中的大塊不存在長(zhǎng)度是步驟S1701中指定的長(zhǎng)度的任何未使用的真實(shí)頁(yè),相應(yīng)地,從真實(shí)頁(yè)長(zhǎng)度表1300中選擇大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁(yè)長(zhǎng)度中的最短真實(shí)頁(yè)長(zhǎng)度,并且對(duì)某未使用塊定義所選的真實(shí)頁(yè)長(zhǎng)度。
      [0164]具體地,在步驟S1702之后,執(zhí)行步驟S1703至S1708。除了步驟S1707之外,步驟S1703至S1708中的處理分別與上述參考圖16說(shuō)明的除了步驟S1606之外的步驟S1602至S1607的處理相同。
      [0165]在步驟S1707中,池管理程序132從真實(shí)頁(yè)長(zhǎng)度表1300中選擇大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁(yè)長(zhǎng)度中的最短真實(shí)頁(yè)長(zhǎng)度,并且將指定的大塊劃分為該所選真實(shí)頁(yè)長(zhǎng)度的真實(shí)頁(yè)。具體地,例如,池管理程序132可以將與步驟S1704中指定的大塊對(duì)應(yīng)的大塊表1302中的真實(shí)頁(yè)長(zhǎng)度的值更新為表示上述指定的真實(shí)頁(yè)長(zhǎng)度的值。另外,例如通過(guò)將大塊的容量除以如上所述已經(jīng)選擇的真實(shí)頁(yè)長(zhǎng)度來(lái)進(jìn)行劃分,池管理程序132計(jì)算組成步驟S1704中指定的大塊的真實(shí)頁(yè)數(shù)目,并且在真實(shí)頁(yè)表1330中添加與該數(shù)目相同數(shù)目的記錄。在添加的每個(gè)記錄中,真實(shí)頁(yè)ID是被自動(dòng)添加的值,大塊ID是步驟S1704中指定的大塊的識(shí)別符并且狀態(tài)是“未使用”。
      [0166]圖18是大塊無(wú)用數(shù)據(jù)收集處理的流程圖。
      [0167]該大塊無(wú)用數(shù)據(jù)收集處理是用于增加未使用的大塊的數(shù)目的處理。具體地,是如下的處理:如果組成狀態(tài)是“已使用”的大塊的所有真實(shí)頁(yè)的狀態(tài)是“未使用”,將該大塊的狀態(tài)從“已使用”更新為“未使用”。例如,在下述情況(16-1)至(16-4)的每一個(gè),開始該大塊無(wú)用數(shù)據(jù)收集處理。
      [0168](16-1) CPU123處于低負(fù)載(例如CPU123上的負(fù)載低于某預(yù)定負(fù)載);
      [0169](16-2)周期地;
      [0170](16-3)已經(jīng)從管理終端102的用戶接收到命令;
      [0171](16-4)已使用大塊的比率已經(jīng)降低到某預(yù)定閾值之下(例如在參考大塊表1320時(shí),池管理程序132已經(jīng)檢測(cè)到狀態(tài)信息的“已使用”值的數(shù)目已經(jīng)小于某預(yù)定數(shù))。
      [0172]池管理程序132參考大塊表1320,并且將其第一大塊ID作為下述處理的目標(biāo)(步驟 S1801)。
      [0173]接下來(lái),池管理程序132參考真實(shí)頁(yè)表1330,并且決定作為處理目標(biāo)的大塊的所有真實(shí)頁(yè)的狀態(tài)是否都是“未使用”(步驟S1802)。如果在步驟S1802的該決定結(jié)果是否定的(步驟S1802,否),控制流進(jìn)行到步驟S1805。
      [0174]另一方面,如果在步驟S1802的決定結(jié)果是肯定的(步驟S1802,是),則池管理程序132從真實(shí)頁(yè)表1330刪除與作為處理目標(biāo)的大塊對(duì)應(yīng)的所有真實(shí)頁(yè)的條目(即狀態(tài)信息是“未使用”的條目)(步驟S1803)。
      [0175]接下來(lái),池管理程序132參考大塊表1320,并且將作為處理目標(biāo)的大塊的狀態(tài)信息改變?yōu)椤拔词褂谩?步驟S1804)。
      [0176]接下來(lái),池管理程序132決定對(duì)于所有的大塊是否完成了處理(步驟S1805)。如果在步驟S1805的該決定的結(jié)果是肯定的(步驟S1805,是),則該處理序列終止。另一方面,如果在步驟S1805的該決定的結(jié)果是否定的(步驟S1805,否),則池管理程序132將所有大塊中的下一個(gè)大塊作為(步驟S1806)作為后續(xù)處理(換句話說(shuō)步驟S1802至S1805的處理)的目標(biāo),然后對(duì)于作為處理目標(biāo)的該大塊執(zhí)行步驟S1802。
      [0177]上述完成了本發(fā)明第二實(shí)施例的說(shuō)明。根據(jù)該第二實(shí)施例,動(dòng)態(tài)地定義和動(dòng)態(tài)地改變池子區(qū)域2603中的真實(shí)頁(yè)的長(zhǎng)度。因此,可以預(yù)期,與預(yù)先定義和設(shè)置所有池子區(qū)域2603中的真實(shí)頁(yè)的長(zhǎng)度的情況相比,將更加適當(dāng)?shù)囟x真實(shí)頁(yè)長(zhǎng)度。
      [0178]另外,在該第二實(shí)施例中,池子區(qū)域2603是容量小于真實(shí)LU的容量的大塊。因此,即使例如對(duì)于某大塊已經(jīng)臨時(shí)定義了真實(shí)頁(yè)長(zhǎng)度之后,不在該大塊中存儲(chǔ)許多壓縮數(shù)據(jù)元素,與真實(shí)LU是池子區(qū)域的情況相比,仍然可以使用較少量的空區(qū)域來(lái)管理。
      [0179]應(yīng)當(dāng)理解,根據(jù)該第二實(shí)施例,可以考慮下述的變型實(shí)施例。
      [0180]在第一變型實(shí)施例中,控制器120具有自動(dòng)學(xué)習(xí)真實(shí)數(shù)據(jù)長(zhǎng)度的功能。具體地,例如,在步驟S1707中,池管理程序132與定義未使用的大塊中在步驟S1701中指定的真實(shí)頁(yè)長(zhǎng)度一起,還將該真實(shí)頁(yè)長(zhǎng)度添加到真實(shí)頁(yè)長(zhǎng)度表1301。在步驟S1701指定的真實(shí)頁(yè)長(zhǎng)度例如可以是大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度并且是多個(gè)預(yù)定長(zhǎng)度倍數(shù)中的最短倍數(shù)的長(zhǎng)度(例如64KB)。
      [0181]在第二變型實(shí)施例中,控制器120具有下述功能:將數(shù)據(jù)單元從在某池子區(qū)域中使用的所有真實(shí)頁(yè)復(fù)制到一個(gè)或多個(gè)其它池子區(qū)域中的未使用的真實(shí)頁(yè),并且將作為該復(fù)制源的所有真實(shí)頁(yè)的狀態(tài)從“已使用”更新為“未使用”。例如,如圖29A所示,池管理程序132指定兩個(gè)或更多個(gè)子區(qū)域,對(duì)該兩個(gè)或更多個(gè)子區(qū)域定義的真實(shí)頁(yè)長(zhǎng)度相同(例如,兩個(gè)大塊2901A和2901B)。另外,在已經(jīng)指定的兩個(gè)或更多個(gè)池子區(qū)域中,池管理程序132指定其中使用中的真實(shí)頁(yè)數(shù)目是最少的池子區(qū)域。并且I/O處理程序133將數(shù)據(jù)單元從該指定的池子區(qū)域(例如大塊2901A)中的使用中的所有的真實(shí)頁(yè)(即從圖29A中陰影所示的那些真實(shí)頁(yè))復(fù)制到上述一個(gè)或多個(gè)其它池子區(qū)域(例如大塊2901B)中的未使用的真實(shí)頁(yè)。并且,如圖29B所示,池管理程序132將已經(jīng)稱為復(fù)制源的所有的真實(shí)頁(yè)的狀態(tài)從“已使用”更新為“未使用”。由此,當(dāng)已經(jīng)執(zhí)行了圖18所示的大塊無(wú)用數(shù)據(jù)收集處理時(shí),如圖29C所示,包括作為復(fù)制源的真實(shí)頁(yè)的池子區(qū)域(即大塊2901A)的狀態(tài)被從“已使用”更新為“未使用”。相應(yīng)地,根據(jù)該第二變型實(shí)施例,可以增加未使用池子區(qū)域的數(shù)目。應(yīng)當(dāng)理解,通過(guò)將復(fù)制源作為其中使用中的真實(shí)頁(yè)的數(shù)目最小的池子區(qū)域,可以將執(zhí)行復(fù)制的次數(shù)抑制到最小極限??梢詫⒁呀?jīng)作為復(fù)制源或正被復(fù)制的真實(shí)頁(yè)的狀態(tài)的更新包括到該大塊無(wú)用信息收集處理;或也可以構(gòu)成與該處理分離的處理。另外,例如,上述情況(16-1)至(16-4)中的任一個(gè)可以用于開始處理,用于確定將作為復(fù)制源的池子區(qū)域。
      [0182]發(fā)明方式3
      [0183]在第三實(shí)施例中,有時(shí)將多個(gè)真實(shí)頁(yè)分配到一個(gè)虛擬頁(yè)。因此,例如,在真實(shí)頁(yè)讀處理的步驟S701和S706中(圖7)或者在真實(shí)頁(yè)寫處理的步驟S810中(圖8),TRP的數(shù)目(分配到作為處理目標(biāo)的虛擬頁(yè)的真實(shí)頁(yè))有時(shí)是1,有時(shí)是2或更多。以類似的方式,在讀處理(圖11)的步驟S1103中指定的真實(shí)頁(yè)的數(shù)目有時(shí)是1,有時(shí)是2或更多
      [0184]圖19是本發(fā)明第三實(shí)施例中的虛擬頁(yè)表1900的結(jié)構(gòu)圖。
      [0185]該表1900具有域1902,代替域332。有時(shí)在該域1902中記錄多個(gè)真實(shí)頁(yè)ID,而不是僅一個(gè)真實(shí)頁(yè)ID。這是因?yàn)?,如上所述,有時(shí)多個(gè)真實(shí)頁(yè)被分配給一個(gè)虛擬頁(yè)。
      [0186]圖20是本發(fā)明第三實(shí)施例中的真實(shí)頁(yè)選擇處理的流程圖。
      [0187]池管理程序132參考圖3所示的池表135的域312,并且在大于或等于壓縮寫數(shù)據(jù)元素的長(zhǎng)度的真實(shí)頁(yè)長(zhǎng)度中指定真實(shí)頁(yè)長(zhǎng)度的一個(gè)或多個(gè)組合,其中一個(gè)或多個(gè)真實(shí)頁(yè)長(zhǎng)度的總值長(zhǎng)于壓縮寫數(shù)據(jù)元素的長(zhǎng)度(步驟S2001)。
      [0188]接下來(lái),池管理程序132參考真實(shí)頁(yè)表136,并且在已經(jīng)被指定的真實(shí)頁(yè)長(zhǎng)度的組合中指定總值最小的組合(步驟S2002)。
      [0189]接下來(lái),池管理程序132參考真實(shí)頁(yè)表136,并且在具有該長(zhǎng)度的真實(shí)頁(yè)中,為組成在步驟S2002中指定的組合的每個(gè)真實(shí)頁(yè)長(zhǎng)度選擇狀態(tài)信息值是“未使用的”的真實(shí)頁(yè)(步驟 S2003)。
      [0190]上述完成了本發(fā)明第三實(shí)施例的說(shuō)明。根據(jù)該第三實(shí)施例,可以預(yù)期將容量效率提高到更高的水平。
      [0191]發(fā)明方式4
      [0192]在本發(fā)明第四實(shí)施例中,在接收到來(lái)自主機(jī)101的寫請(qǐng)求時(shí),在當(dāng)接收到該寫請(qǐng)求時(shí)執(zhí)行的寫處理中,控制器120并不暫時(shí)壓縮寫入作為處理目標(biāo)的虛擬頁(yè)中的數(shù)據(jù)元素,而是將其存儲(chǔ)在具有與虛擬頁(yè)長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(yè)中。然后,與寫處理異步地,控制器120從與虛擬頁(yè)長(zhǎng)度相同的長(zhǎng)度的該真實(shí)頁(yè)中讀取數(shù)據(jù)元素,并且對(duì)已經(jīng)讀取的數(shù)據(jù)元素執(zhí)行上述已經(jīng)參考圖8說(shuō)明的真實(shí)頁(yè)寫處理。
      [0193]下面,將詳細(xì)說(shuō)明本發(fā)明的第四實(shí)施例。
      [0194]圖21是本發(fā)明第四實(shí)施例中的虛擬頁(yè)表2137的結(jié)構(gòu)圖。
      [0195]在該虛擬頁(yè)表2137中,對(duì)于每個(gè)虛擬頁(yè),除了域331至333之外,還設(shè)置了域334,其中記錄了狀態(tài)信息。該狀態(tài)信息是表示是否壓縮存儲(chǔ)在分配給與該狀態(tài)信息對(duì)應(yīng)的虛擬頁(yè)的真實(shí)頁(yè)(在下文,在該段中,稱為目標(biāo)真實(shí)頁(yè))中的數(shù)據(jù)元素。例如,如果壓縮存儲(chǔ)在目標(biāo)真實(shí)頁(yè)中的數(shù)據(jù)元素,則該狀態(tài)信息的值是“已壓縮”,但是,如果存儲(chǔ)在目標(biāo)真實(shí)頁(yè)中的數(shù)據(jù)元素是未壓縮,該狀態(tài)信息的值是“未壓縮”。如果沒(méi)有真實(shí)頁(yè)被分配給虛擬頁(yè),則與該虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息可以是例如“N/A”。
      [0196]圖22是本發(fā)明第四實(shí)施例中的真實(shí)頁(yè)讀處理的流程圖。
      [0197]在該第四實(shí)施例中的真實(shí)頁(yè)讀處理的步驟S2201至S2210分別對(duì)應(yīng)于第一實(shí)施例中的真實(shí)頁(yè)讀處理的步驟S701至S710。步驟S2207不同于步驟S707,并且相應(yīng)地,步驟S2208不同于步驟S708。除了步驟S2207和S2208之外的步驟S2201至S2210分別與除了步驟S707和S708之外的步驟S701至S710相同。
      [0198]在步驟S2207中,池管理程序132參考虛擬頁(yè)表2137,并且如果與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息的值是“已壓縮”,將步驟S2206中讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路126,從而壓縮和擴(kuò)展電路126擴(kuò)展該數(shù)據(jù)元素。另一方面,如果該狀態(tài)信息的值不是“已壓縮”,則池管理程序132不將已經(jīng)讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路126。
      [0199]因此,在步驟S2208中,I/O處理程序133用該擴(kuò)展的數(shù)據(jù)元素或自身已經(jīng)讀取的數(shù)據(jù)元素來(lái)蓋寫寫入到作為處理目標(biāo)的虛擬頁(yè)上的數(shù)據(jù)元素。
      [0200]圖23是臨時(shí)真實(shí)頁(yè)寫處理的流程圖。
      [0201]該臨時(shí)真實(shí)頁(yè)寫處理是代替圖6所示的寫處理的步驟S604中的真實(shí)頁(yè)寫處理而執(zhí)行的處理。如同已經(jīng)詳細(xì)說(shuō)明的,并且如同之后會(huì)詳細(xì)說(shuō)明的,該真實(shí)頁(yè)寫處理與寫處理異步地執(zhí)行。
      [0202]池管理程序132執(zhí)行參考圖9說(shuō)明的缺省長(zhǎng)度真實(shí)頁(yè)選擇處理(在圖中簡(jiǎn)寫為“DLRP選擇處理”)(步驟S2301)。
      [0203]接下來(lái),池管理程序132決定在步驟S2301中的真實(shí)頁(yè)的選擇是否成功(步驟S2302)。如果在步驟S2302的決定的結(jié)果是否定的(步驟S2302,否),則池管理程序132向主機(jī)101響應(yīng)錯(cuò)誤(步驟S2308)。
      [0204]另一方面,如果在步驟S2302的決定的結(jié)果是肯定的(步驟S2302,是),則執(zhí)行步驟S2303和后續(xù)步驟的處理。
      [0205]換句話說(shuō),池管理程序132參考真實(shí)頁(yè)表136,并且將與步驟S2301中選擇的真實(shí)頁(yè)對(duì)應(yīng)的狀態(tài)信息的值改變?yōu)椤耙咽褂谩?步驟S2303)。接下來(lái),池管理程序132參考虛擬頁(yè)表2137,并且更新與作為處理目標(biāo)的虛擬頁(yè)相關(guān)的信息(步驟S2304)。具體地,池管理程序132將與作為處理對(duì)象的虛擬頁(yè)對(duì)應(yīng)的真實(shí)頁(yè)ID的值更新為在步驟S2301中選擇的真實(shí)頁(yè)的真實(shí)頁(yè)ID,將與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的壓縮數(shù)據(jù)長(zhǎng)度信息的值更新為表示壓縮寫數(shù)據(jù)元素的數(shù)據(jù)長(zhǎng)度的值,并且另外將與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息更新為“未壓縮”。接下來(lái),I/O處理程序133參考虛擬頁(yè)表2137,并且將作為寫目標(biāo)的數(shù)據(jù)元素寫入分配給作為處理目標(biāo)的虛擬頁(yè)的真實(shí)頁(yè)(步驟S2305)。此時(shí),如果寫目標(biāo)數(shù)據(jù)元素比作為寫目的地的真實(shí)頁(yè)短,將無(wú)意義數(shù)據(jù)(例如O)寫入寫目的地真實(shí)頁(yè)的區(qū)域而不是存在寫目標(biāo)數(shù)據(jù)元素的區(qū)域。接下來(lái),池管理程序132決定這次寫入是否是第一次(步驟S2306),并且如果該決定的結(jié)果是否定的(步驟S2306,否),換句話說(shuō),如果圖22的步驟S2203不執(zhí)行,則將與在步驟S2201中選擇的真實(shí)頁(yè)(TRP)對(duì)應(yīng)的狀態(tài)信息的值(即真實(shí)頁(yè)表223中的值)改變?yōu)椤拔词褂谩?步驟S2307)。
      [0206]圖24是本發(fā)明第四實(shí)施例中的讀處理的流程圖。
      [0207]在該第四實(shí)施例中的讀處理的步驟S2401至S2408分別對(duì)應(yīng)于第一實(shí)施例中的真實(shí)頁(yè)讀處理的步驟SllOl至S1108。步驟S2405不同于步驟S1105,但是除了步驟S2405之外的步驟S2401至S2408分別與除了步驟S1105之外的步驟SllOl至S1108相同。
      [0208]在步驟S2405,池管理程序132參考虛擬頁(yè)表2137,并且,如果與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息的值是“已壓縮”,將步驟S2404中讀取的數(shù)據(jù)元素輸入到壓縮和擴(kuò)展電路,從而壓縮和擴(kuò)展電路126擴(kuò)展該數(shù)據(jù)元素。
      [0209]圖25是異步壓縮處理的流程圖。
      [0210]在下述情況(25-1)至(25-4)的每一個(gè)時(shí),可以開始該異步壓縮處理。
      [0211](25-1) CPU123處于低負(fù)載(例如CPU123上的負(fù)載低于某預(yù)定負(fù)載);
      [0212](25-2)周期地;
      [0213](25-3)已經(jīng)從管理終端102的用戶接收到命令;
      [0214](25-4)與“已壓縮”對(duì)應(yīng)的虛擬頁(yè)的比例已經(jīng)降低到某預(yù)定閾值之下(例如在參考虛擬頁(yè)表2137時(shí),池管理程序132已經(jīng)檢測(cè)到狀態(tài)信息的“已壓縮”值的數(shù)目小于某預(yù)定數(shù))。
      [0215]池管理程序132將虛擬LU的第一虛擬頁(yè)作為后續(xù)處理(步驟S2502至S2506)的目標(biāo)(步驟S2501)。
      [0216]然后池管理程序132決定與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息的值是否是“未壓縮”(步驟S2502)。
      [0217]如果在步驟S2502的決定結(jié)果是肯定的(步驟S2502,是),則池管理程序132指定與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的真實(shí)頁(yè)(步驟S2503)。并且I/O處理程序133從已經(jīng)被指定的真實(shí)頁(yè)中讀取數(shù)據(jù)元素(步驟S2504 )。然后,執(zhí)行圖8所示的真實(shí)頁(yè)寫處理(步驟S2505 )。并且,如果真實(shí)頁(yè)寫處理成功,則池管理程序132將與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息的值從“未壓縮”改變?yōu)椤耙褖嚎s”(步驟S2506)。
      [0218]如果在步驟S2502的決定的結(jié)果是否定的(步驟S2502,否),或者在步驟S2506之后,池管理程序132決定是否對(duì)虛擬LU的所有虛擬頁(yè)完成了處理(步驟S2507)。如果該決定的結(jié)果是否定的(步驟S2507,否),則池管理程序132將下一個(gè)虛擬頁(yè)作為后續(xù)處理目標(biāo)(步驟S2508),并且執(zhí)行步驟S2502。另一方面,如果在步驟S2507的該決定的結(jié)果是肯定的(步驟S2507,是),該異步壓縮處理終止。
      [0219]上述完成了本發(fā)明第四實(shí)施例的說(shuō)明。因?yàn)椋鶕?jù)該第四實(shí)施例,在寫處理中不執(zhí)行壓縮/擴(kuò)展,相應(yīng)地可以降低CPU123在寫處理中的負(fù)載,并且另外可以預(yù)期寫處理的處理速度的提高。
      [0220]應(yīng)當(dāng)理解對(duì)于該第四實(shí)施例,考慮下述變型實(shí)施例。例如,如圖28A所示,在虛擬頁(yè)表2137’中,對(duì)于每個(gè)虛擬頁(yè),可以設(shè)置域335,其中記錄了訪問(wèn)頻率(以IOPS,“每秒I/O”的縮寫)。另外,如圖28B所示,可以在非易失性存儲(chǔ)器130中提供由CPU123執(zhí)行的訪問(wèn)頻率管理程序(2801)。該訪問(wèn)頻率管理程序2801監(jiān)視對(duì)每個(gè)虛擬頁(yè)的訪問(wèn)頻率,并且以及時(shí)的方式更新與虛擬頁(yè)對(duì)應(yīng)的訪問(wèn)頻率(即圖28A的域2105中的值)。在該變型實(shí)施例中,在異步壓縮處理中,即使與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的狀態(tài)信息的值是“未壓縮”(步驟S2502,是),仍然有時(shí)不執(zhí)行步驟S2503和后續(xù)步驟,如圖28C所示。具體地,在步驟S2502中“是”的情況下,參考虛擬頁(yè)表2137’,指定與作為處理目標(biāo)的虛擬頁(yè)對(duì)應(yīng)的訪問(wèn)頻率,并且如果訪問(wèn)頻率高于某預(yù)定閾值(步驟S2801,是)則不執(zhí)行步驟S2503。由此,在對(duì)于訪問(wèn)頻率高的虛擬頁(yè)的寫處理/讀處理中,可以預(yù)期由于沒(méi)有執(zhí)行壓縮/非壓縮,處理速度會(huì)提聞。
      [0221]盡管在上文中,例如對(duì)于第二到第四實(shí)施例,主要說(shuō)明了與第一實(shí)施例的不同點(diǎn),也可以實(shí)施任何兩個(gè)或更多個(gè)實(shí)施例(在第一至第四實(shí)施例中)的組合。另外,代替由來(lái)自主機(jī)101的寫請(qǐng)求指定的LU或者除了由來(lái)自主機(jī)101的寫請(qǐng)求指定的LU之外,作為寫目的地的虛擬LU還可以是構(gòu)成用于復(fù)制初級(jí)LU中存儲(chǔ)的數(shù)據(jù)的目的地的次級(jí)LU。一個(gè)例子在圖27中示出。換句話說(shuō),從初級(jí)LU (真實(shí)LU或虛擬LU)向次級(jí)LU (虛擬LU)復(fù)制數(shù)據(jù)元素,初級(jí)LU是從外部設(shè)備(例如主機(jī)等)用虛擬頁(yè)為單位可以訪問(wèn)的LU,次級(jí)LU是與初級(jí)LU成對(duì)的LU。此時(shí),壓縮作為復(fù)制目標(biāo)的數(shù)據(jù)元素,基于這些壓縮的數(shù)據(jù)元素中包括的數(shù)據(jù)單元的長(zhǎng)度選擇一個(gè)或多個(gè)真實(shí)頁(yè),因此而選擇的真實(shí)頁(yè)被分配給作為復(fù)制目的地的虛擬頁(yè),并且包括這些壓縮的數(shù)據(jù)元素的數(shù)據(jù)單元存儲(chǔ)在自己的真實(shí)頁(yè)中。如果包括這些壓縮的數(shù)據(jù)元素的數(shù)據(jù)單元的長(zhǎng)度大于或等于虛擬頁(yè)長(zhǎng)度,則包括壓縮前的數(shù)據(jù)元素的數(shù)據(jù)單元被存儲(chǔ)在與虛擬頁(yè)長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(yè)中。
      [0222]盡管已經(jīng)說(shuō)明了本發(fā)明的特定優(yōu)選實(shí)施例,并不意味著認(rèn)為本發(fā)明限于這些特定實(shí)施例,在不偏離本發(fā)明主旨的前提下能夠進(jìn)行各種改變。
      [0223]例如,在第一、第三和第四實(shí)施例的真實(shí)頁(yè)選擇處理中,如果沒(méi)有發(fā)現(xiàn)滿足條件的真實(shí)頁(yè),也可以選擇更長(zhǎng)一級(jí)的真實(shí)頁(yè)。例如,假設(shè)壓縮寫數(shù)據(jù)元素的長(zhǎng)度是511kB,然后盡管與條件符合(即大于或等于壓縮寫數(shù)據(jù)元素的真實(shí)頁(yè)長(zhǎng)度中的最短真實(shí)頁(yè)長(zhǎng)度)的真實(shí)頁(yè)長(zhǎng)度是512kB,如果由于所有的512kB長(zhǎng)度的真實(shí)頁(yè)都在使用中而不能選擇這種類型的真實(shí)頁(yè),可以選擇更長(zhǎng)一級(jí)的真實(shí)頁(yè),例如具有與虛擬頁(yè)長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(yè)。
      [0224]另外,例如,如果不僅壓縮寫數(shù)據(jù)元素,其它類型的信息(例如數(shù)據(jù)整體性碼)也添加到數(shù)據(jù)單元,與虛擬頁(yè)長(zhǎng)度或真實(shí)頁(yè)長(zhǎng)度相比(例如在圖8的步驟S802,圖10的步驟S1001,圖17的步驟S1701以及圖20的步驟S2001中),將數(shù)據(jù)單元的整個(gè)長(zhǎng)度作為比較目標(biāo)。另外,如果例如作為數(shù)據(jù)單元的長(zhǎng)度大于或等于虛擬頁(yè)長(zhǎng)度的結(jié)果,將壓縮前的寫數(shù)據(jù)元素寫入具有與虛擬頁(yè)長(zhǎng)度相同長(zhǎng)度的真實(shí)頁(yè)中,如果壓縮前的寫數(shù)據(jù)元素的長(zhǎng)度符合虛擬頁(yè)長(zhǎng)度,則不添加其它類型的該信息(例如數(shù)據(jù)整體性碼等),而是僅將壓縮前的寫數(shù)據(jù)元素寫入真實(shí)頁(yè)。在這種情況下,通過(guò)使用包括在壓縮前的寫數(shù)據(jù)元素中的數(shù)據(jù)整體性碼,保證了壓縮前的寫數(shù)據(jù)元素的可靠性(例如,8字節(jié)數(shù)據(jù)整體性碼可以被添加到512字節(jié)的數(shù)據(jù)中)。
      【權(quán)利要求】
      1.一種存儲(chǔ)系統(tǒng),包括: 控制器,用于提供虛擬LU;以及 至少一個(gè)存儲(chǔ)設(shè)備,用于提供形成存儲(chǔ)池的存儲(chǔ); 其中控制器被配置為: 響應(yīng)于接收寫請(qǐng)求,將存儲(chǔ)池的第一實(shí)際存儲(chǔ)區(qū)域分配到虛擬LU中的虛擬存儲(chǔ)區(qū)域,在第一實(shí)際存儲(chǔ)區(qū)域中存儲(chǔ)與寫請(qǐng)求有關(guān)的數(shù)據(jù),并且將虛擬存儲(chǔ)區(qū)域作為解壓縮的虛擬存儲(chǔ)區(qū)域管理, 其中如果解壓縮虛擬存儲(chǔ)區(qū)域與虛擬LU的比例超過(guò)預(yù)定閾值, 則控制器壓縮存儲(chǔ)的數(shù)據(jù), 將存儲(chǔ)池的第二實(shí)際存儲(chǔ)區(qū)域分配到虛擬LU中的虛擬存儲(chǔ)區(qū)域,并且 將壓縮的數(shù)據(jù)存儲(chǔ)到第二實(shí)際存儲(chǔ)區(qū)域,并且將虛擬存儲(chǔ)區(qū)域作為壓縮的虛擬管理區(qū)域管理。
      2.根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng), 其中,第二實(shí)際存儲(chǔ)區(qū)域的長(zhǎng)度小于第一實(shí)際存儲(chǔ)區(qū)域的長(zhǎng)度。
      3.根據(jù)權(quán)利要求1的存儲(chǔ)系統(tǒng),其中,在壓縮處理中所述控制器基于參數(shù)確定是否在第二實(shí)際存儲(chǔ)區(qū)域中存儲(chǔ)壓縮的數(shù)據(jù)或在第二實(shí)際存儲(chǔ)區(qū)域中存儲(chǔ)壓縮以前的數(shù)據(jù),其中所述參數(shù)是壓縮的數(shù)據(jù)的長(zhǎng)度。
      4.根據(jù)權(quán)利要求1的存儲(chǔ)系統(tǒng), 其中,存儲(chǔ)系統(tǒng)與管理計(jì)算機(jī)結(jié)合, 如果存儲(chǔ)系統(tǒng)從管理計(jì)算機(jī)接收到命令, 控制器壓縮存儲(chǔ)數(shù)據(jù), 將存儲(chǔ)池的第二實(shí)際存儲(chǔ)區(qū)域分配到虛擬LU中的虛擬存儲(chǔ)區(qū)域, 將壓縮的數(shù)據(jù)存儲(chǔ)到第二實(shí)際存儲(chǔ)區(qū)域,并且 將虛擬存儲(chǔ)區(qū)域作為壓縮的虛擬存儲(chǔ)區(qū)域管理。
      【文檔編號(hào)】G06F3/06GK103838525SQ201410126486
      【公開日】2014年6月4日 申請(qǐng)日期:2009年1月30日 優(yōu)先權(quán)日:2009年1月30日
      【發(fā)明者】志賀賢太 申請(qǐng)人:株式會(huì)社日立制作所
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1