專利名稱:存儲裝置以及使用該存儲裝置的數據存儲方法
技術領域:
本發明涉及存儲裝置以及使用該存儲裝置的數據存儲方法,尤其涉及在
RAID控制下壓縮寫入數據來高效地進行存儲的存儲技術。
背景技術:
已知為了有效利用存儲裝置有限的存儲資源而壓縮數據來進行存儲的技 術。壓縮數據來進行存儲的情況下,壓縮后的數據的大小不固定,很大程度上 取決于壓縮前的數據的內容。
下述專利文獻1公開了一種存儲裝置,其在磁盤驅動器中壓縮數據來進行 存儲時,將無法完全存儲在規定存儲區域中的壓縮數據的一部分存儲在溢出 (overflow)用的存儲區域中。具體而言,在專利文獻l中,當將來自主處理 裝置的數據寫入磁盤驅動器時,通過數據壓縮單元壓縮該數據,根據寫入目的 地地址,判定能否將壓縮數據存儲在磁盤驅動器內的固定大小存儲區域的相應 塊中,當判定為無法完全存儲時,將該壓縮數據的一部分存儲在相應的塊中, 同時將該壓縮數據的剩余部分存儲在溢出存儲區域中。
另外,近年來,從大容量和高可靠性等觀點出發,采用RAID (Redundant Arrays oflndependent Disks )技術的存儲裝置逐漸占據主流。在RAID中,根 據硬盤驅動器的結構定義了 RAID級別(RAID0 6)。例如,RAID1是在多臺 硬盤驅動器中同時寫入相同內容的數據(鏡像)的方式。另外,RAID5是將 塊單位的數據和糾錯碼數據(校驗數據) 一起分散寫入到多臺硬盤驅動器的方 式。
專利文獻1特開平5-189157號公報 RAID結構中,在實用中總體性能優秀的RAID5的結構是主流。如上所 述,在RAID5中從耐故障性的觀點出發而存在校驗數據。因此,在RAID5的 結構下,在壓縮寫入數據來進行存儲的情況下也壓縮其校驗數據來進行存儲。 與寫入數據相比,校驗數據的數據位的隨機性一般較高,無法期待高壓縮效率。200810108912.5
說明書第2/23頁
因此,很可能由于壓縮效率的低下而導致不斷發生數據的溢出,在僅僅準備了 以往的溢出用存儲區域的情況下,有可能立即耗盡。另外,在預先準備足夠大 小的溢出用存儲區域的情況下,運轉成本升高,很不經濟。
發明內容
因此,本發明的目的在于,提出一種可以在規定的RAID結構下高效地存 儲基于寫入數據的壓縮數據的存儲裝置。
具體而言,本發明提出一種存儲裝置,其在無法將壓縮數據完全存儲在規 定的存儲區域中時,將該壓縮數據中未存儲完的部分(溢出部分)存儲在可以 根據使用實際情況而靈活擴展的存儲區域(擴展存儲區域)中。
另夕卜,本發明提出一種存儲裝置,其當在某RAID結構下無法期待壓縮數 據的高效存儲時,通過可以期待高效存儲的其它RAID結構來存儲該壓縮數 據。即,本發明提出一種根據針對校驗數據的壓縮效率,來選擇存儲壓縮數據 的最佳RAID結構的存儲裝置。
為了解決上述問題,本發明的存儲裝置包含以下技術特征而構成。
即,遵從第一觀點的本發明是具備具有存儲數據的存儲介質的磁盤設備、 和控制所述磁盤設備的磁盤控制器的存儲裝置。所述磁盤控制器具備用于與 主機裝置連接的通道適配器;與所述磁盤設備相連的磁盤適配器;以及對所述 通道適配器和所述磁盤適配器之間交換的數據進行暫時存儲的高速緩沖存儲 器。另外,所述磁盤適配器控制所述磁盤設備以便形成數據巻和池巻,所述數 據巻包含被定義了比所述存儲介質的固有存儲容量大的存儲容量的、與所述存 儲介質的存儲區域相對應的實際巻,以及分配了所述實際巻以外的存儲區域的
數據的存儲區域。
所述磁盤適配器,在規定的RAID結構的控制下,基于依照從所述主機裝 置發送的寫入請求的寫入數據,生成該寫入數據所屬的校驗組內的校驗數據, 壓縮所述校驗組內的每一個所述寫入數據以及每一個所述生成的校驗數據,生 成壓縮數據以及壓縮校驗數據。另外,所述石茲盤適配器判斷所述校驗組內的每 一個所述壓縮數據以及每一個所述壓縮校驗數據是否超過規定大小,將所述壓 縮數據以及所述壓縮校驗數據中未超過所述規定大小的部分的數據存儲在所述實際巻的存儲區域中,將所述壓縮數據以及所述壓縮校驗數據中超過所述規 定大小的部分的數據存儲在所述虛擬巻所對應的所述池巻的存儲區域中。
另外,本發明可以作為方法發明來把握。即,遵從第二觀點的本發明,是 具備以下各部的存儲裝置中的數據存儲方法具有存儲數據的存儲介質的磁盤
設備;和控制所述磁盤設備的磁盤控制器。
所述數據存儲方法包含以下步驟所述磁盤控制器控制所述磁盤設備以便 形成數據巻和池巻,所述數據巻包含被定義了比所述存儲介質的固有存儲容量 大的存儲容量的、與所述存儲介質的存儲區域相對應的實際巻,以及分配了所 述實際巻以外的存儲區域的虛擬巻,所述池巻被分配了用于存儲與分配給所述 虛擬巻的存儲區域相對應的數據的存儲區域;所述磁盤控制器按照規定的 RAID結構,基于依照從所述主機裝置發送的寫入請求的寫入數據,生成該寫 入數據所屬的校驗組內的校驗數據;所述磁盤控制器壓縮所迷校驗組內的每一 個所述寫入數據以及每一 個所述生成的校驗數據,生成壓縮數據以及壓縮校驗 數據;所述磁盤控制器判斷所述校驗組內的每一個所述壓縮數據以及每一個所 述壓縮校驗數據是否超過規定大小;所述磁盤控制器,將所述壓縮數據以及所 述壓縮校驗數據中未超過所述規定大小的部分的數據存儲在所述實際巻的存
部分的數據存儲在所述虛擬巻所對應的所述池巻的存儲區域中。
根據本發明,可以在規定的RAID結構下高效地存儲基于寫入壓縮數據的 壓縮數據。
另外,根據本發明,在無法將壓縮數據完全存儲在規定的存儲區域中時, 將其存儲在擴展存儲區域中,因此,可以采用與存儲區域的使用實際情況對應 的靈活的磁盤設備的結構。
而且,根據本發明,根據針對包含校驗位的數據的壓縮效率來選擇最佳 RAID結構,因此可以進行壓縮數據的高效存儲。
圖1是用于說明本發明的一個實施方式的存儲系統的結構的圖。 圖2是用于從功能上說明本發明的一個實施方式的存儲裝置中的》茲盤控 制器的磁盤適配器的圖。圖3是表示本發明的一個實施方式的存儲裝置中的共享存儲器的內容的圖。
圖4是表示本發明的一個實施方式的存儲裝置中的區段管理表的一例的圖。
圖5是表示本發明的一個實施方式的存儲裝置的共享存儲器中存儲的地 址管理表的一例的圖。
圖6是用于說明本發明的一個實施方式的存儲裝置的共享存儲器中存儲 的數據巻的圖。
圖7是用于從概念上說明本發明的一個實施方式的存儲裝置中的存儲區 域的動態分配的圖。
圖8是表示本發明的一個實施方式的存儲裝置中的共享存儲器中存儲的 數據塊管理表的一例的圖。
圖9是表示本發明的一個實施方式的存儲裝置中的共享存儲器中存儲的 磁盤設備管理表的 一例的圖。
圖10是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖11是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖12是用于說明本發明的一個實施方式的存儲裝置中的數據寫入處理的 流程圖。
圖13是用于說明針對本發明的一個實施方式的存儲裝置的虛擬巻的數據 寫入處理的流程圖。
圖14是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖15是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖16是表示本發明的一個實施方式的存儲裝置中的共享存儲器中存儲的 磁盤設備管理表的一例的圖。
圖17是用于說明本發明的 一個實施方式的存儲裝置中的數據寫入處理的流程圖。
圖18是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖19是用于說明本發明的一個實施方式的存儲裝置中的數據寫入機制的圖。
圖20是表示本發明的一個實施方式的存儲裝置中的共享存儲器中存儲的 磁盤設備管理表的 一例的圖。
圖21是用于說明本發明的一個實施方式的存儲裝置中的數據寫入處理的 流程圖。
圖22是用于說明本發明的一個實施方式的存儲裝置中的數據寫入處理的 流程圖。
圖23是用于說明本發明的一個實施方式的存儲裝置中的數據寫入處理的 流程圖。
圖24是表示本發明的一個實施方式的存儲裝置中的共享存儲器中存儲的 磁盤設備管理表的一例的圖。
圖25是用于說明本發明的一個實施方式的存儲裝置中的數據寫入處理的 流程圖。
符號說明
1計算機系統、2網絡、3主機裝置、4存儲裝置、5磁盤設備、6磁盤 控制器、61通道適配器、62高速緩沖存儲器、63磁盤適配器、64共享存儲 器、65內部交換機
具體實施例方式
接下來,參照
本發明的實施方式。
(第一實施方式)
在第一實施方式中說明如下構成的存儲裝置在RAID5的結構下壓縮寫 入數據,當無法將該壓縮后的數據完全存儲在數據巻上的實際存儲區域中時, 將該未存儲完的部分存儲在通過巻容量虛擬化功能提供的擴展存儲區域中。
圖1是用于說明本發明的 一 個實施方式的存儲系統的結構的圖。如該圖所 示,計算機系統l包含經由網絡2與主機裝置3相連的存儲裝置4。網絡2是例如LAN、因特網或SAN ( Storage Area Network),包含網絡交 換機和集線器等而構成。在本實施方式中,網絡2由使用光纖通道協議的SAN (FC-SAN)構成。
主機裝置3例如是,作為銀行的業務系統或飛機的座席預約業務系統等的 核心的計算機。主機裝置3具備處理器、主存儲器、通信接口和本地輸入輸出 裝置等硬件資源,另外,具備設備驅動程序和操作系統(OS)、應用程序等軟 件資源(未圖示)。由此,主機裝置3在處理器的控制下執行各種程序,通過 與硬件資源的協同工作來實現希望的處理。例如,主機裝置3通過在處理器的 控制下執行業務應用程序,訪問以下詳細描述的存儲裝置4,實現希望的業務 系統。
存儲裝置4是向主機裝置3提供數據存儲服務的輔助存儲裝置。存儲裝置 4具備存儲數據的磁盤設備5;和管理磁盤設備5的結構、控制對磁盤設備 5的寫入或讀出的I/O處理的磁盤控制器6。存儲裝置4還可以包含用于管理 存儲裝置4全體的管理裝置乃至服務處理器(未圖示)。或者也可以構成包含 管理裝置的功能的磁盤控制器6。管理裝置例如是安裝了管理程序的通用計算 機。
本實施方式的存儲裝置4如后所述,在RAID控制下壓縮寫入數據,將該 壓縮數據存儲在磁盤設備5的規定的存儲區域。當壓縮數據超過規定的塊大小 時,存儲裝置4將該超過的部分存儲在擴展存儲區域(池巻)中。如后所述, 池巻(Pool Volume)是與通過巻容量虛擬化功能提供的虛擬巻相對應的、存 儲數據實體的邏輯巻。
磁盤設備5例如是包含多個硬盤驅動器(HDD )或半導體存儲器等存儲介 質而構成的物理設備(PDEV )。有時也將多個硬盤的集合體稱為磁盤陣列(Disk Array )。在磁盤設備5中,在磁盤控制器6的控制下形成用于向主機裝置3提 供的一個以上的邏輯設備(LDEV)。可以對應于將若干硬盤驅動器虛擬地匯 總為一個設備而得到的虛擬設備VDEV,來形成邏輯設備。
邏輯設備是主機裝置3能夠識別的邏輯存儲裝置。可以對邏輯設備分配邏 輯單元(LU)。在這種情況下,將各邏輯設備分配給后述的通道適配器61中 設置的各端口,由此,主機裝置3將邏輯設備識別為邏輯單元。對各邏輯單元賦予邏輯單元號碼(LUN)。另外,將邏輯單元分割為I/O訪問的最小單位、 即塊,對各塊分配邏輯塊地址(LBA)。由此,主機裝置3通過將由LUN和 LBA構成的邏輯地址賦予存儲裝置4,可以對特定邏輯單元中的任意塊中存儲 的數據進行訪問。邏輯設備以及邏輯單元可以通過應用存儲裝置4的系統環境 而區別,但在本發明中可以將二者取相同含義。
在邏輯設備中定義與屬性對應的邏輯巻(LVOL或VOL)。但習慣上有時 也將二者取相同含義。在本實施方式中,作為邏輯巻而定義數據巻和池巻。如 后所述,數據巻包含實際巻以及虛擬巻。
磁盤控制器6具備通道適配器(CHA) 61、高速緩沖存儲器(CM) 62、 磁盤適配器(DKA) 63以及共享存儲器(SM) 64,這些部件(component) 經由內部交換器(SW) 65相互連接。從高速性、耐故障性的觀點出發,理想 的是將這些部件冗余化。
磁盤控制器6是控制磁盤設備5,實現數據存儲服務的存儲裝置4的主系 統板(Main System Board)。本實施方式的磁盤控制器6包含實現除了基于來 自主機裝置3的訪問請求的通常的I/O處理功能以外,還實現數據壓縮/解壓 功能、RAID功能以及巻容量虛擬化功能的結構。
通道適配器61是用于經由網絡2將存儲裝置4與主機裝置3可通信地連 接的部件。在本例中搭載了兩個通道適配器61。各通道適配器61具備微處 理器6U、本地存儲器(local memory ) 612、通信接口 ( I/F ) 613和I/O處理 器614。
微處理器611是通過執行存儲在本地存儲器612中的微程序,總體地控制 通道適配器61的動作的芯片電路。通信I/F613從網絡2取得通信數據包 (packet)乃至幀(frame),或者向網絡2送出通信數據包。通信I/F613具備 用于與網絡2連接的多個端口 (未圖示)。I/O處理器614控制與經由內部交換 機65連接的磁盤控制器6內的其它部件(例如高速緩沖存儲器62或共享存儲 器64)之間的數據收發。
具體而言,微處理器6H,當經由通信I/F613接收到數據包時,進行與規 定的協議對應的協議變換處理,取出內部數據。接著,微處理器611解釋該內 部數據并控制I/0處理器614,若該內部數據是寫入命令,則將該寫入命令寫入共享存儲器64,將其寫入數據(即用戶數據)寫入到高速緩沖存儲器62中。 1/0處理器614接受該控制,將寫入命令寫入共享存儲器64,并且將其寫入數 據寫入到高速緩沖存儲器62中。
另外,微處理器611按照讀出命令,通過I/0處理器614從高速緩沖存儲 器62取出讀出數據,進行與規定的協議對應的協議變換處理來生成數據包, 并且經由通信I/F613發送至網絡2。
高速緩沖存儲器62為了對主機裝置3提供高系統性能,對主機裝置3和 磁盤設備5 (邏輯巻)之間交換的用戶數據進行暫時存儲(高速緩沖存儲)。 即,高速緩沖存儲器62是用于通道適配器61和磁盤適配器63之間的數據轉 發的存儲器。高速緩沖存儲器62例如由DRAM等易失性存儲器構成。或者, 高速援沖存儲器62也可以由閃速存儲器等非易失性存儲器構成。
高速緩沖存儲器62如后所述,還用作對壓縮后的寫入數據(壓縮數據) 進行暫時存儲的存儲器。例如通過磁盤適配器63來進行數據壓縮/解壓處理。
磁盤適配器63是對經由磁盤通道連接的》茲盤設備5進行I/O訪問的部件。 在本例中搭載了兩個磁盤適配器63。各磁盤適配器63具備微處理器631、 本地存儲器632、》茲盤接口 (I/F) 633和I/O處理器634。在本實施方式中, 磁盤適配器63安裝了 1/0控制功能、數據壓縮/解壓功能、RAID功能以及巻 容量虛擬化功能。這些功能例如作為圖2所示的固件(firmware)而實現。
微處理器631是通過執行存儲在本地存儲器632中的微程序,總體控制磁 盤適配器63的動作的芯片電路。在本實施方式中,微處理器631在RAID控 制下對高速緩沖存儲器62中存儲的寫入數據進行按照規定的壓縮算法的壓縮 處理來生成壓縮數據,將其寫入磁盤設備5的規定的存儲區域。這里所說的規 定的存儲區域是指實際巻上的存儲區域(實際存儲區域)。將壓縮數據中無法 完全存儲在該實際存儲區域中的部分的數據,存儲在通過巻容量虛擬化功能而 管理的擴展存儲區域(池巻)中。壓縮/解壓算法,例如可以應用LZW方式等 已知算法。
磁盤I/F633是用于對作為物理設備的磁盤設備5進行I/O訪問的接口 。 I/O 處理器634控制與經由內部交換機65連接的其它部件(例如高速緩沖存儲器 62或共享存儲器64 )之間的數據收發。更具體而言,微處理器631定期地(例如數十毫秒)或不定期地通過1/0 處理器634參照共享存儲器64。微處理器631當發現共享存儲器64上的未處 理的寫入命令時,從高速緩沖存儲器62取出對應的寫入數據,在RAID控制 下進行壓縮處理,生成壓縮數據。即,生成基于寫入數據的校驗數據,生成與 包含該校驗數據的寫入數據對應的壓縮數據。將壓縮數據再次存儲在高速緩沖 存儲器62上的壓縮數據用塊中。然后,微處理器631在RAID控制下將生成
級)。例如,若在RAID5 (3D+1P)的結構中,將壓縮數據與其校驗數據一起 分散存儲在物理上不同系列的磁盤設備5中。另夕卜,此時,微處理器631判斷 能否將生成的壓縮數據完全存儲在數據巻中規定的實際存儲區域中,當判斷為 無法完全存儲時,將該壓縮數據中未存儲完的部分的數據存儲在通過巻容量虛 擬化功能而管理的擴展存儲區域中。
另外,微處理器631按照共享存儲器64上的讀出命令,在RAID控制下 從規定的邏輯巻讀出壓縮數據,將其暫時存儲在高速緩沖存儲器62中。然后, 微處理器631進行解壓處理,將所得到的解壓數據(原始數據)再次寫入高速 緩沖存儲器62(升級)。當將壓縮數據的一部分存儲在擴展存儲區域中時,微 處理器631適宜從擴展存儲區域讀出該部分壓縮數據,合并成一個壓縮數據。
共享存儲器64對存儲裝置4內的各部件應參照的各種信息進行存儲。共 享存儲器64由例如DRAM等易失性存儲器構成。
內部交換機65是由交叉開關(Crossbar Switch)等構成的交換設備。內部 交換機65協調所輸入的數據信號的沖突,切換數據信號的路徑,構建發送源 模塊和發送目的地模塊的路徑。此外,內部交換機65也可以是數據包交換方 式的交換設備。
圖3是表示本發明的一個實施方式的存儲裝置4中的共享存儲器64的內 容的圖。如該圖所示,共享存儲器64存儲例如系統結構信息、高速緩沖存儲 管理表、數據塊管理表、物理設備管理表等各種信息。
系統結構信息是磁盤設備5的結構信息或存儲裝置4內的各部件上運行的 微程序的版本信息等、與系統結構相關的信息。作為磁盤設備5的結構信息, 包含例如RAID結構信息、物理設備/邏輯設備(巻)的結構信息、巻容量虛擬化結構信息。物理設備/邏輯設備結構信息,例如被定義為區段(segment)
管理表以及地址管理表。另外,巻容量虛擬化結構信息例如包含池巻管理表。
通過系統管理者操作的管理裝置,來設定.管理系統結構信息。例如,系
統管理者可以操作管理裝置來設定RAID5 (3D+1P)的結構。另外,系統管理
者,與硬盤驅動器的增設相配合地操作管理裝置,來設定巻容量虛擬化結構信 臺
高速緩沖存儲管理表是管理在高速緩沖存儲器62中高速緩沖存儲的數據 的目錄信息的表。高速緩沖存儲管理表管理如下內容構成寫入數據的每一個 數據塊對應于磁盤設備5(邏輯巻)上的哪個塊。
如上所述,在本實施方式中,在邏輯巻(數據巻)中不存儲寫入數據本身, 而是存儲其壓縮數據。因此,典型地考慮平均壓縮率,將數據巻上規定的存儲 區域的塊大小規定得小于在高速緩沖存儲器62上規定的塊大小。另外,磁盤 適配器63,將從高速緩沖存儲器62的規定的塊中讀出并壓縮的數據,再次存 儲在高速緩沖存儲器62的其它塊(壓縮數據用塊)中,然后進行降級。因此, 高速緩沖存儲管理表,將高速緩沖存儲器62上的RAW狀態的寫入數據以及 壓縮數據的各邏輯地址,與數據巻上的邏輯地址對應起來。
數據塊管理表是用于管理通過RAID控制的每個校驗組的數據塊的表。所 謂校驗組(parity group),在本說明書中是指同時并行地被寫入陣列磁盤的數 據塊組。例如,若是RAID5 (3D+1P),則由3個數據塊和一個校驗塊構成的 數據塊組屬于同 一校驗組。
磁盤設備管理表,是用于管理在RAID控制下形成數據巻的、具有條帶
(stripe)結構的(即作為物理上不同系列而構成的)"磁盤設備"的地址空間 的使用狀況的表。準備條帶結構數量的磁盤設備管理表。例如,若是RAID5
(3D+1P),則準備4個磁盤設備管理表。此外,如按照慣用的RAID的說明, 則可以認為條帶構成的各個磁盤設備等同于各個物理設備。然而,在本實施方 式中,以包含通過巻容量虛擬化功能而不具有物理存儲區域的虛擬巻的概念, 說明條帶構成的"磁盤設備"。因此,在本說明書中,將在RAID控制下條帶 構成的各個磁盤設備稱為"偽磁盤設備"。若是RAID5 (3D+1P),則在4個偽 磁盤設備上形成某個數據巻。圖4表示本發明的一個實施方式的存儲裝置4中的區段管理表的一例。區 段管理表,是用于管理存儲裝置4所提供的邏輯巻上的存儲區域空間的表。如 該圖所示,區段管理表包含磁盤ID ( Disk ID )、區段號碼(Segment//)、 LBA 開始地址(LBA—start )、 LBA結束地址(LBA—end )、區段的使用狀況(In—use )。
磁盤ID是用于唯一識別構成磁盤設備5的物理設備的識別符。區段號碼 是用于唯一識別區段的號碼。區段是磁盤控制器6管理的磁盤設備5上的存儲 區域。LBA開始地址以及LBA結束地址是表示磁盤設備5上的區段的物理的 開始位置以及結束位置的地址。根據LBA開始地址以及LBA結束地址求得區 段的大小。使用狀況表示區段是否已被使用。在區段處于使用中的情況下設定 "1"的值,在未使用的情況下設定"0"的值。
圖5表示本發明的一個實施方式的存儲裝置4的共享存儲器64中存儲的 地址管理表的一例。地址管理表是將存儲裝置4提供的邏輯巻上的存儲區域 (即邏輯地址空間)和磁盤設備5上的實際的存儲區域(即物理地址空間)對 應起來的表。磁盤適配器63通過參照地址管理表,將作為數據的存儲目的地 而指定的邏輯地址變換為磁盤設備5上的物理地址,按照該物理地址來進行訪 問。另外,地址管理表對邏輯巻中作為池巻而被使用的區段進行定義。
即,如該圖所示,地址管理表包含邏輯單元號碼(LUN)、區段號碼 (Segment#)、 LBA開始地址(LBA—start)、 LBA結束地址(LBA_end)以及 池分配狀況。邏輯單元號碼是用于唯一識別存儲裝置4向主機裝置3提供的邏 輯巻的號碼。區段號碼是用于唯一識別區段管理表中所管理的存儲區域的號 碼。邏輯巻LU由多個區段構成。LBA開始地址以及LBA結束地址表示區段 的邏輯的開始地址和結束地址。池分配狀況表示該區段是否作為池巻被使用。 當區段作為池巻被使用時,寫入"1"。
圖6是用于說明本發明的一個實施方式的存儲裝置4的共享存儲器64中 存儲的數據巻的圖。如該圖所示,數據巻DVOL0具有0~ 99999的邏輯地址 空間,分配了第一磁盤設備以及第二磁盤設備中的各個區段。第一磁盤設備5 如圖4所示那樣,是分配了磁盤ID "0"的物理設備,第二磁盤設備5是分配 了磁盤ID "1"的物理設備。另外,如圖5所示那樣,區段號碼"1"所表示 的區段提供數據巻DVOL0上的0~ 1299的邏輯地址空間。另外,區段號碼"3"所表示的區段提供1300 ~ 1999的邏輯地址空間。于是,數據巻DVOL0像一 個磁盤設備那樣被處理。
數據巻DVOL0的邏輯地址空間2000 - 99999,未#1分配作為物理設備的 磁盤設備。磁盤控制器6表面上也對數據巻DVOL0的該空間存儲數據。為此, 存儲裝置4還具有被稱為池巻PVOL的邏輯巻,將應該對數據巻DVOL0內的 存儲區域中未被分配磁盤設備5上的區段的存儲區域(擴展存儲區域)存儲的 數據,存儲在該池巻PVOL上。即,在數據巻DVOL0的邏輯地址空間2000-49999中存儲的數據實體,被存儲在池巻PVOL中。因此,在內部按照池巻管 理表對池巻PVOL來進行針對數據巻的擴展存儲區域的訪問。應該存儲在擴 展存儲區域中的數據,是無法完全存儲在通過物理設備而實際提供的存儲區域 (實際存儲區域)中的壓縮后的數據塊。
該圖簡略地說明了應用了巻容量虛擬化功能的數據巻DVOL。在本實施方 式中,磁盤設備5根據RAID結構而條帶構成。因此,實際通過物理上不同系 列的4個偽磁盤設備來提供數據巻DVOL。
圖7是用于在概念上說明本發明的一個實施方式的存儲裝置4中的存儲區 域的動態分配的圖。
如上所述,在本實施方式的存儲裝置4的磁盤設備5中形成數據巻DVOL 和池巻PVOL。數據巻DVOL是提供給主機裝置3的邏輯巻。數據巻DVOL 依存于構成實際安裝的磁盤設備5的物理設備的固有存儲容量,分為實際巻和 虛擬巻。即,實際巻包含在由構成磁盤設備5的物理設備實際提供的區段上形 成的物理存儲區域。與之相對,虛擬巻對應于實際提供的區段以外的虛擬的存 儲區域(擴展存儲區域)。因此,在虛擬巻中不存儲數據實體。池巻PVOL是 提供在將來追加安裝,茲盤設備、確保物理存儲區域并且定義新數據巻DVOL 之前的期間,對應該存儲在虛擬巻中的數據實體進行暫時存儲的存儲區域的邏 輯巻。
針對數據巻VOL中的實際巻上的存儲區域,存儲裝置4將主機裝置3識 別的邏輯地址(LUN和LBA)與磁盤設備5中的存儲區域上的物理地址一對 一地關聯起來。由此,主機裝置3可以通過指定規定的邏輯地址來訪問磁盤設 備5上所希望的存儲區域。另一方面,關于池巻PVOL上的存儲區域,不將主機裝置3識別的邏輯地 址與實際用于訪問數據的磁盤設備5上的物理地址直接關聯起來。磁盤適配器 63按照指定了數據巻DVOL中的虛擬巻上的存儲區域的數據寫入命令,將該 存儲區域動態地分配給池巻PV0L。另外,》茲盤適配器63按照從數據巻DVOL 中的虛擬巻上的存儲區域的讀出命令,從池巻PVOL上的該存儲區域讀出數 據。
這樣,存儲裝置4保持池巻管理表,管理虛擬巻和池巻之間的動態的分配。 池巻管理表例如被保持在磁盤控制器6的共享存儲器64中。存儲裝置4當無 法將壓縮數據完全存儲在實際巻中時,將該未存儲完的部分存儲在池巻PVOL 中,同時將虛擬巻上的邏輯地址和表示池巻地址的指針關聯起來,登錄在池巻 管理表中。
圖8是表示本發明的一個實施方式的存儲裝置4中的共享存儲器64中存 儲的數據塊管理表的一例的圖。如該圖所示,數據塊管理表將槽ID (slotID) 和數據巻內的地址對應起來。槽ID是用于識別校驗組內的數據塊的識別符。 由此,數據塊管理表管理如下內容校驗組內的數據塊存儲在哪個物理設備的 哪個地址。
圖9是表示本發明的一個實施方式的存儲裝置4中的共享存儲器64中存 儲的磁盤設備管理表的一例的圖。如該圖所示,磁盤設備管理表將各偽磁盤設 備內的各個地址所表示的存儲區域、與其中存儲的數據塊(槽識別符)對應起 來。另外,磁盤設備管理表管理著擴展存儲區域中的使用狀況。在本例中表示 了與偽磁盤設備(0)對應的磁盤設備管理表。即,該圖的磁盤設備管理表表 示在以地址"xxxx"表示的存儲區域中存儲"D1-1"、在擴展存儲區域l中存 儲"D1-2"的情況。另外,還表示可以使用擴展存儲區域2。而且,還表示擴 展存儲區域n尚未被分配實際的存儲區域。
圖IO和圖11是用于說明本發明的一個實施方式的存儲裝置4中的數據寫 入機制(mechanism)的圖。具體而言,這些圖表示某個寫入數據在被壓縮后, 在RAID5 (3D+1P)下被存儲在不同系列的偽磁盤設備中的情況。
針對數據巻的寫入數據,在存儲裝置4的內部作為被分塊化的數據(數據 塊)來處理。單位塊的大小例如是64KB。在本實施方式中,將寫入數據壓縮后存儲,因此在數據巻上規定小于該大小的(例如16KB)的單位存儲區域。 高速緩沖存儲器62上的64KB的各塊,與數據巻上的16KB的各塊相對應。 因此,在將64KB的數據壓縮時,若其壓縮數據未超過16KB,則可以容納在 與高速緩沖存儲器62上的64KB塊對應的數據巻上的16KB塊(基本塊)中, 但是若其壓縮數據超過了 16KB,則需要該16KB塊以外的備用塊。即,當64KB x 1數據塊的壓縮數據由16KB x 3數據塊構成時,將超出的2數據塊存儲在 備用塊中。
現在,假設存在對某個數據巻的數據D1的寫入請求。為了簡化說明,假 設寫入數據Dl是塊大小為64KB的單一的數據塊。為了在RAID控制下將寫 入數據Dl存儲在數據巻中,需要與相同校驗組內的數據塊D2和D3 —起計 算校驗位(parity)并將它們存儲(圖10 (A))。
數據塊Dl ~D3在磁盤適配器63的控制下被壓縮,得到圖10 (B)所示 的壓縮數據塊。壓縮數據塊的單位大小為16KB。即,壓縮前的數據塊D1成 為壓縮數據塊Dl-l和Dl-2;壓縮前的數據塊D2成為壓縮數據塊D2-l和D2-2, 并且壓縮前的數據塊D3成為壓縮數據塊D3-l。另外,將這些壓縮前數據塊 Dl ~D3的校-驗數據P變換為壓縮數據塊Pl-l ~Pl-4。即,壓縮數據塊Dl-2、 D2-2以及P2-2 ~ P2-4是無法完全存儲在數據巻上的基本塊中的數據塊。
在本實施方式中,高速緩沖存儲器62上的64KB塊,與數據巻上的16KB 基本塊相關聯。基本塊是數據巻的實際巻中的存儲區域(實際存儲區域)。另 外,根據數據的內容,有時無法將其壓縮數據完全存儲在實際存儲區域中,因 此,將該無法完全存儲的部分的數據塊存儲在虛擬巻的塊(擴展存儲區域)中。
即,如圖ll所示,壓縮數據塊D1-1、 D2-l、 D3-1以及P-1,在RAID控 制下分別被存儲在構成數據巻的RAID組中的偽磁盤設備(0) ~偽磁盤設備 (3)上的實際巻中的塊(實際存儲區域)中。另外,壓縮數據塊Dl-2、 D2-2 以及P-2 ~ P-4,分別被存儲在該RAID組中的對應的偽磁盤設備(0 ) ~偽磁 盤設備(4)上的虛擬巻中的塊(擴展存儲區域)中。但是,如上所述,虛擬 巻未被分配存儲數據實體的物理設備的區段。因此,虛擬巻中存儲的數據實體 被存儲在池巻中。
圖12是用于說明本發明的一個實施方式的存儲裝置4中的數據寫入處理的流程圖。具體而言,該圖說明了數據寫入處理時的磁盤適配器63的動作。
即,磁盤適配器63參照共享存儲器64,當發現未處理的寫入命令時,確 定高速緩沖存儲器62上的與之對應的寫入數據。磁盤適配器63根據該寫入數 據生成遵從RAID結構的校驗數據(STEP1201 )。即,在本例中,磁盤適配器 63遵從RAID5 (3D+1P)的結構,針對每3個數據塊生成1個校驗數據塊。 通過這3個數據塊和1個校驗數據塊形成1個校驗組。因此,即使是1個數據 塊的寫入,也需要與校驗組內的其余兩個數據塊一起生成新的校驗數據塊。一 般將其稱為"寫懲罰"(write penalty)。在該階段,各數據塊為64KB的塊大 小。
接著,磁盤適配器63對該校驗組中的各數據塊(包含校驗數據塊)進行 壓縮處理,分別生成壓縮數據列(STEP1202)。壓縮數據列由l個以上的數據 塊(壓縮數據塊)構成。》茲盤適配器63將各個壓縮所得的數據塊寫入高速緩 沖存儲器62中的壓縮數據用塊中,更新高速緩沖存儲管理表。壓縮數據用塊 例如是16KB的塊大小。
磁盤適配器63接著為了將壓縮數據塊分散存儲在不同系列的偽磁盤設備 中,而進行以下處理。
具體而言,磁盤適配器63,首先將校驗周期(parity cycle )變量I設定為 0(STEP1203)。接著,磁盤適配器63在數據塊管理表中登錄該壓縮數據塊的 條目(STEP1204)。即,磁盤適配器63,對于構成應該存儲在偽磁盤設備(I) 中的壓縮數據列的先頭的壓縮數據塊,分配偽磁盤設備(I)中的實際存儲區 域的地址。即,當壓縮數據列由壓縮數據塊D1-1以及Dl-2構成時,對該壓縮 數據塊D1-1首先分配偽磁盤設備(I)中的實際存儲區域的地址。接著,磁盤 適配器63按照該地址在該實際存儲區域中存儲壓縮數據塊(STEP1205 )。
然后,磁盤適配器63判斷該壓縮數據列是否包含超過部分的壓縮數據塊 (STEP1206)。即,判斷壓縮數據列是否由兩個以上的壓縮數據塊構成。磁盤 適配器63,當判斷為沒有超過部分的壓縮數據塊時(STEP1206,否),將校驗 周期變量I的值增加1 ( STEP1209 ),判斷校驗周期變量I是否在規定的校驗 周期數(在本例中為4)以下(STEP1210)。當校驗周期變量I在規定的校驗 周期數以下時(STEP1210,否),由于校驗組內有未處理的壓縮數據塊,因此返回STEP1204的處理。
磁盤適配器63,當判斷為存在超過部分的壓縮數據塊時(STEP1206,是), 在數據塊管理表中登錄該超過部分的壓縮數據塊的條目(STEP1207)。即,磁 盤適配器63對該超過部分壓縮數據塊分配偽磁盤設備(I)中的擴展存儲區域 的地址。
接著,磁盤適配器63進行用于將超過部分的壓縮數據塊存儲在虛擬巻中 的處理(STEP1208 )。在后面詳細描述針對虛擬巻的存儲處理。
然后,磁盤適配器63將校驗周期變量I的值增加1 ( STEP1209 ),判斷校 驗周期變量I是否在規定的校驗周期數(在本例中為4)以下(STEP1210)。 當校驗周期變量I在規定的校驗周期數以下時(STEP1201,否),由于校驗組 內有未處理的壓縮數據塊,因此返回STEP1204的處理。
當校驗周期變量I達到規定的校驗周期數時(STEP1210,是),磁盤適配 器63結束該數據寫入處理。
圖13是用于說明針對本發明的一個實施方式的存儲裝置4中的虛擬巻的 數據寫入處理的流程圖。具體而言,該圖是用于說明圖12所示的STEP1208 的詳細情況的流程圖。
即,如該圖所示,磁盤適配器63首先判斷是否已經對虛擬巻分配了池巻 上的存儲區域(STEP1301)。磁盤適配器63,當判斷為未對虛擬巻分配池巻上 的存儲區域時(STEP1301,否),在池巻管理表中追加關于超過部分的壓縮數 據塊的條目(STEP1302)。若以上述例子而言,則關于壓縮數據塊D1-2,將 虛擬巻的地址和池巻的地址對應起來。
接著,磁盤適配器63在磁盤設備管理表的擴展存儲區域中追加數據塊 (STEP1303 )。然后,磁盤適配器63將超過部分的壓縮數據塊存儲在虛擬巻 中(STEP1304)。在這種情況下,實際上在磁盤適配器63的控制下,將該超 過部分的壓縮數據塊存儲在提供池巻的磁盤設備5中。
如上所述,根據本實施方式,在采用為了壓縮存儲寫入數據而將高速緩沖 存儲器62上的塊固定地分配給磁盤設備5上的更小的塊的結構的存儲裝置中, 即使在無法將壓縮數據完全存儲在磁盤設備5上的該塊中時,也可以將該壓縮 數據中未存儲完的部分的數據存儲在擴展存儲區域中。該擴展存儲區域,作為與之相關聯的池巻而被管理,因此可以采用與存儲區域的使用實際相對應的靈 活的磁盤設備的結構。 (第二實施方式)
在第二實施方式中,說明在RAID結構下對寫入數據的壓縮數據進行鏡像 (mirroring)來存儲時,將復制的壓縮數據存儲在虛擬巻中而構成的存儲裝置 4。
圖14和圖15是用于說明本發明的一個實施方式的存儲裝置4中的數據寫 入機制的圖。具體而言,這些圖說明了在將某寫入數據D4~D6壓縮后,在 RAID1 (4D)下存儲在偽磁盤設備中的情況。
考慮對某數據巻存儲寫入數據D4 D6的情況。為了簡化說明,設寫入數 據D4 ~ D6是塊大小為64KB的單一的數據塊。數據塊D4 ~ D6在磁盤適配器 63的控制下被壓縮,得到壓縮數據塊D4-1 D6-1。另外,以壓縮數據塊D4-1' D6-1,表示壓縮數據塊D4-1 D6-1的復制數據(鏡像數據)。壓縮數據塊的大 小是16KB。因此,存儲裝置4對于64KB x 3數據塊存儲16KB x 6數據塊(圖 14)。
在本實施方式中如圖15所示,將這些壓縮數據塊分散存儲在每個偽磁盤 設備的實際存儲區域中,同時將鏡像后的壓縮數據塊分散存儲在擴展存儲區域 中。但是,如本例所示,當數據周期(data cycle)是3、偽^磁盤設備是4個時, 也可以將一個鏡像后的壓縮數據塊存儲在第四偽磁盤設備的實際存儲區域中。
圖16是表示在本發明的一個實施方式的存儲裝置4中的共享存儲器64中 存儲的磁盤設備管理表的一例。如該圖所示,本實施方式的磁盤設備管理表, 針對每個槽ID,將第一地址和第二地址對應起來。第二地址是存儲鏡像后的 壓縮數據塊的數據巻的地址。
圖17是用于說明本發明的一個實施方式的存儲裝置4中的數據寫入處理 的流程圖。具體而言,該圖說明了數據寫入處理時的磁盤適配器63的動作。 此外,在本例中,RAID組是4D。
即,如該圖所示,磁盤適配器63參照共享存儲器64,當發現未處理的寫 入命令時,確定高速緩沖存儲器62上與之對應的寫入數據。磁盤適配器63 遵從RAIDl,對構成該寫入數據的數據塊進行壓縮處理,生成壓縮數據塊(STEP1701)。而且將該壓縮數據塊二重化(STEP1702)。將壓縮數據塊及其 二重化后的數據塊存儲在高速緩沖存儲器62中的壓縮數據用塊中。在本例中, 將3個壓縮數據塊作為1個數據周期,在其后接著存儲二重化后的壓縮數據塊。
然后,磁盤適配器63為了將壓縮數據塊分散存儲在不同系列的偽磁盤設 備中而進行以下處理。即,磁盤適配器63首先將1個數據周期的量的壓縮數 據塊分散存儲在不同的偽磁盤設備(0) ~偽磁盤設備(2)中(STEP1703 )。 然后,磁盤適配器63將數據周期變量I設置為0 (STEP1704)。
磁盤適配器63判斷數據周期變量I是否為0 ( STEP1705 )。即,磁盤適配 器63選擇在偽磁盤設備(0)中存儲的壓縮數據塊(例如D4-l)所對應的二 重化后的壓縮iU居塊(例如D4-1')。
磁盤適配器63,當判斷為數據周期變量I是O時(STEP1705,是),將該 二重化后的壓縮數據塊存儲在偽磁盤設備(3 )的實際存儲區域中(STEP1706 ), 在數據塊管理表中登錄該二重化后的壓縮數據塊的條目(STEP1707)。
與之相對,當數據周期變量I是O以外時,磁盤適配器63將該二重化后 的壓縮數據塊存儲在偽磁盤設備(I-1)的擴展存儲區域中(STEP1708),在數 據塊管理表中登錄該二重化后的壓縮數據塊的條目(STEP1709)。即,將偽磁 盤設備(0)以外的偽磁盤設備中存儲的壓縮數據塊所對應的二重化后的壓縮 數據塊,存儲在循環改變(rotate shift) 了一次的偽磁盤設備中。
然后,磁盤適配器63將數據周期變量I的值增加1 (STEP1710),判斷數 據周期變量I是否到達1個數據周期(STEP1711 )。當數據周期變量I未到達 1個數據周期時(STEP1711,否),磁盤適配器63返回STEP1705的處理。另 一方面,當數據周期變量I到達了 1個數據周期時(STEP1711,是),結束該 寫入處理。
如上所述,根據本實施方式,在RAID1的結構下將寫入數據的壓縮數據 進行鏡像來存儲時,將復制的壓縮數據存儲在虛擬巻中,因此可以實現高效的 數據存儲。
(第三實施方式)
第三實施方式是上述第一實施方式中表示的技術特征和上述第二實施方 式中表示的技術特征的組合。具體而言,在本實施方式中,存儲裝置4在數據寫入處理時,針對每個校驗組生成校驗數據塊,對各數據塊進行壓縮處理。存
儲裝置4基于壓縮處理的結果,判斷使用校驗位(parity)的數據存儲方式和 基于鏡像的數據存儲方式中的哪種方式是高效的數據存儲,按照被認為高效的 數據存儲方式,將壓縮數據塊存儲在數據巻中。在這種情況下,如上所述,適 宜將壓縮數據塊存儲在虛擬巻中。
圖18和圖19是用于說明本發明的一個實施方式的存儲裝置4中的數據寫 入機制的圖。具體而言,這些圖表示了在將某寫入數據壓縮后,在RAID5 (3D+1P)或RAID1 (4D)下存儲在偽磁盤設備中的情況。
現在,假定有針對某個數據巻的數據D1的寫入請求,接著有數據D5的 寫入請求。為了簡化說明,設寫入數據是塊大小為64KB的單一的數據塊。為 了在RAID5控制下將寫入數據(數據塊)存儲在數據巻中,需要與各個相同 的校驗組內的數據塊一起計算校驗位并將它們存儲。即,關于數據塊Dl,與 數據塊D2和D3—起計算校驗數據塊Pl,另外,關于數據塊D5,與數據塊 D4和D6 —起計算校驗數據塊P2。它們是在高速緩沖存儲器62上的64KB塊 中存儲的、壓縮前的數據塊。
假定數據塊Dl ~ D3和Pl通過磁盤適配器63被壓縮,得到圖18 ( A)所 示的數據塊。它們是被存儲在高速緩沖存儲器62上的16KB塊中的壓縮數據 塊。如上所述,壓縮數據塊Dl-2、 D2-2以及Pl-2 Pl-4,是無法完全存儲在 數據巻的實際巻的實際存儲區域中的數據塊。
另一方面,假定數據塊D4 D6以及P2通過》茲盤適配器63被壓縮,得到 圖18 (B)所示的壓縮數據塊。即,將數據塊D4 D6變換為,壓縮到可以存 儲在數據巻的實際巻中的 一 個實際存儲區域中而得的壓縮數據塊D4-1 ~ D6-l。另夕卜,數據塊P2的壓縮效率低(壓縮率高),被變換為壓縮數據塊P2-1 ~ P2-4。此外,在本說明書中,壓縮率是指將壓縮后的數據大小除以壓縮前的數 據大小而得到的值。因此,所謂壓縮率低,意味著壓縮后的數據大小較小、壓 縮效率高。
因此,根據數據塊D4 D6和P2生成7個壓縮數據塊。與之相對,在將 數據塊D4-l ~ D6-l 二重化來存儲在數據巻中時,若存儲6個壓縮數據塊便足 夠。因此,本實施方式的存儲裝置4在壓縮寫入數據后,檢查包含校驗位的壓縮數據塊的數量,選擇存儲更少數量的壓縮數據塊便足夠的方式。
因此,如圖19所示,將壓縮數據塊D1-1、 D2-l、 D3-l以及P-1在RAID5 控制下分別存儲在構成數據巻的RAID組中的偽磁盤設備(0 ) ~偽磁盤設備 (3)的實際巻中。另外,將壓縮數據塊Dl-2、 D2-2以及P-2 P-4分別存儲 在該RAID組中的對應的偽f茲盤設備(0 ) ~偽^茲盤設備(4 )的虛擬巻中。
另夕卜,壓縮數據塊D4-1 ~D6-1在RAID1控制下被鏡像,利用擴展存儲區 域存儲在偽磁盤設備(0) ~偽磁盤設備(3)中。
圖20是表示本發明的一個實施方式的存儲裝置4中的共享存儲器64中存 儲的磁盤設備管理表的一例的圖。具體而言,該圖表示了按照上述例子通過使 用校驗位的數據存儲方式存儲了寫入數據時的磁盤設備管理表。通過基于鏡像 的數據存儲方式存儲了寫入數據時的磁盤設備管理表,與圖16所示的磁盤設 備管理表相同。
圖21 ~圖23是用于說明本發明的一個實施方式的存儲裝置4中的數據寫 入處理的流程圖。具體而言,該圖說明了數據寫入處理時的,茲盤適配器63的 動作。
即,磁盤適配器63參照共享存儲器64,當發現未處理的寫入命令時,確 定高速緩沖存儲器62上與之對應的寫入數據。磁盤適配器63根據該寫入數據, 生成遵從RAID結構的校驗數據(STEP2101 )。即,在本例中,磁盤適配器63 遵從RAID5 (3D+1P)的結構,針對每3個數據塊形成由1個校驗數據塊構成 的校驗組。在此階段,各數據塊是64KB的塊大小。
接著,磁盤適配器63對形成的校驗組內的各數據塊進行壓縮處理,分別 生成壓縮數據列(STEP2102)。磁盤適配器63將構成各壓縮數據列的每一個 壓縮數據塊,寫入高速緩沖存儲器62中的壓縮數據用塊中,更新高速緩沖存 儲管理表。壓縮數據用塊例如是16KB的塊大小。
接著,磁盤適配器63判斷校驗組內的壓縮數據塊(不包含壓縮校驗數據 塊)數是否比壓縮校驗數據塊數少(STEP2103)。即,磁盤適配器63判斷使 用校驗位的數據存儲方式和基于鏡像的數據存儲方式中的哪種方式可以高效 地存儲寫入數據。
磁盤適配器63,當判斷為校驗組內的壓縮數據塊數比壓縮校驗數據塊數少時,進行圖22所示的處理。圖22所示的處理是使用校驗位的數據存儲處理, 與圖12所示的STEP1203以后的處理相同,因此省略說明。
與之相對,磁盤適配器63在判斷為校驗組內的壓縮數據塊數比壓縮后校 驗數據塊數多時,進行圖23所示的處理。圖23所示的處理是基于鏡像的數據 存儲處理,與圖17所示的STEP1702以后的處理相同,因此省略說明。
如上所述,根據本實施方式,當壓縮寫入數據來進行存儲時,根據包含校 驗位的壓縮數據的大小、和不使用校驗位而進行二重化所得到的壓縮數據的大 小,選擇最佳的RAID結構,因此可以實現壓縮數據的高效存儲。 (第四實施方式)
第四實施方式是第三實施方式的變形,其特征在于,存儲了針對數據寫入 請求的前一次的數據存儲方式,當存在針對該數據的其它寫入請求時,利用該 存儲的數據存儲方式。
圖24 (A)和(B)是表示本發明的一個實施方式的存儲裝置4中的共享 存儲器64中存儲的磁盤設備管理表的一例的圖。如該圖所示,本實施方式的 磁盤設備管理表與上述磁盤設備管理表大體相同,但在保持了存儲前一次的數 據存儲方式的學習信息這點不同。即,該圖(A)表示將RAID5作為學習信 息而保持的狀態,該圖(B)表示沒有學習信息的狀態。
圖25是用于說明本發明的一個實施方式的存儲裝置4中的數據寫入處理 的流程圖。
如該圖所示,,茲盤適配器63參照共享存儲器64,當發現未處理的寫入命 令時,確定高速緩沖存儲器62上的與之對應的寫入數據。磁盤適配器63參照 針對寫入數據的數據塊管理表,取得當前的學習信息(STEP2501 ),判斷當前 的學習信息是否是"RAID1" (STEP2502)。
磁盤適配器63,當判斷為當前的學習信息不是"RAID1"時(STEP2502, 否),在RAID5的控制下進行壓縮數據的存儲處理。
即,磁盤適配器63如前所述那樣生成遵從RAID結構的校驗數據塊 (STEP2503 ),接著,壓縮校驗組內的各數據塊(STEP2504)。
然后,》茲盤適配器63判斷校驗組內的壓縮數據塊(不包含壓縮校-瞼數據 塊)數是否比壓縮校驗數據塊數少(STEP2505 )。即,磁盤適配器63判斷使用校驗位的數據存儲方式和使用鏡像的數據存儲方式中的哪種方式可以高效 地存儲寫入數據。
磁盤適配器63,當判斷為校驗組內的壓縮數據塊數比壓縮校驗數據塊數 多時,進行基于鏡像的數據存儲處理(STEP2509)。基于鏡像的數據存儲處理 與圖23所示的處理相同。
與之相對,磁盤適配器63,當判斷為校驗組內的壓縮數據塊數比壓縮校 驗數據塊數少時,進行使用校驗位的數據存儲處理(STEP2506)。使用校驗位 的數據存儲處理與圖22所示的處理相同。
然后,為了下一次的數據寫入處理,磁盤適配器63將數據塊管理表的學 習信息設定為"RAID5" (STEP2507)。
在STEP2502中,當判斷為當前的學習信息是"RAID1"時(STEP2502, 是),在RAID1控制下進行壓縮數據的存儲處理。
即,磁盤適配器63首先壓縮數據塊(STEP2508),接著進行基于鏡像的 數據存儲處理(STEP2509)。
在結束基于鏡像的數據存儲處理后,磁盤適配器63為了判斷是否更新學 習信息,而生成遵從RAID結構的校驗數據塊(STEP2510),接著,壓縮校驗 組內的各數據塊(STEP2511 )。磁盤適配器63判斷校驗組內的壓縮數據塊(不 包含壓縮后校驗數據塊)數是否比壓縮校驗數據塊數少(STEP2512)。
磁盤適配器63,當判斷為校驗組內的壓縮數據塊數比壓縮校驗數據塊數 少時(STEP2512,是),將數據塊管理表的學習信息設定為"RAID5" (STEP2507 )。
與之相對,磁盤適配器63當判斷為校驗組內的壓縮數據塊數比壓縮后校 驗數據塊數多時(STEP2512,否),將數據塊管理表的學習信息設定為"RAID1" (STEP2513)。
通過以上所述,根據本實施方式,由于存儲了前一次的數據存儲方式,因 此可以進行更高效的RAID結構的選擇。
上述實施方式是用于說明本發明的例子,本發明不限定于上述實施方式。 本發明在不超出其主旨的范圍內可以通過各種形態來實施。
例如,在上述實施方式中,在流程圖中按順序地構成了磁盤適配器的動作,但只要不在動作結果中產生矛盾,也可以改變處理的順序或者并行進行處理。
另外,在上述實施方式中采用了 RAID5,但也可以是作為使用校驗位的 其它RAID結構而已知的RAID3、 RAID4或RAID6。 產業上的可利用性
本發明可以廣泛應用于采用RAID結構的存儲裝置。
權利要求
1. 一種存儲裝置,其具備具有存儲數據的存儲介質的磁盤設備、控制所述磁盤設備的磁盤控制器,該存儲裝置的特征在于,所述磁盤控制器具備用于與主機裝置連接的通道適配器;與所述磁盤設備相連的磁盤適配器;以及對所述通道適配器和所述磁盤適配器之間交換的數據進行暫時存儲的高速緩沖存儲器,所述磁盤適配器,控制所述磁盤設備以便形成數據卷和池卷,所述數據卷包含被定義了比所述存儲介質的固有存儲容量大的存儲容量的、與所述存儲介質的存儲區域相對應的實際卷,以及分配了所述實際卷以外的存儲區域的虛擬卷,所述池卷被分配了用于存儲與分配給所述虛擬卷的存儲區域相對應的數據的存儲區域,所述磁盤適配器,在規定的RAID結構的控制下,基于依照從所述主機裝置發送的寫入請求的寫入數據,生成該寫入數據所屬的校驗組內的校驗數據,壓縮所述校驗組內的每一個所述寫入數據以及每一個所述生成的校驗數據,生成壓縮數據以及壓縮校驗數據,判斷所述校驗組內的每一個所述壓縮數據以及每一個所述壓縮校驗數據是否超過規定大小,將所述壓縮數據以及所述壓縮校驗數據中未超過所述規定大小的部分的數據存儲在所述實際卷的存儲區域中,將所述壓縮數據以及所述壓縮校驗數據中超過所述規定大小的部分的數據存儲在所述虛擬卷所對應的所述池卷的存儲區域中。
2.根據權利要求1所述的存儲裝置,其特征在于, 所述磁盤適配器,述校驗數據的數據塊,根據壓縮數據列是否由超過規定數量的壓縮數據塊構成,來判斷是否超過 了所述規定大小,所述壓縮數據列是通過對所述校驗組內的每一個所述數據塊 進行壓縮而得到的,將未超過所述規定數量的所述壓縮數據塊存儲在所述實際巻的存儲區域 中,將超過所述規定數量的所述壓縮數據塊存儲在所述虛擬巻所對應的所述池 巻的存儲區域中。
3. 根據權利要求2所述的存儲裝置,其特征在于,所述磁盤適配器,將所述校驗組內的每一個所述壓縮數據塊分散存儲在構成所述數據巻的、 物理上不同系列的磁盤設備中。
4. 根據權利要求3所述的存儲裝置,其特征在于, 所述磁盤適配器,將構成所述壓縮數據列的所述壓縮數據塊存儲在構成所述數據巻的同一 系列的磁盤設備中所形成的實際巻以及虛擬巻中。
5. 根據權利要求2所述的存儲裝置,其特征在于,存儲所述校驗組內的每一個所述數據塊的、在所述高速緩沖存儲器上形成 的存儲區域的大小,大于所述實際巻的單位存儲區域的大小。
6. 根據權利要求2所述的存儲裝置,其特征在于, 所述磁盤適配器,判斷除所述校驗數據的壓縮數據塊以外的壓縮數據塊的數量,是否少于所 述校驗數據的壓縮數據塊的數量,當判斷為除所述校驗數據的壓縮數據塊以外的壓縮數據塊的數量,少于所 述校驗數據的壓縮數據塊的數量時,將未超過所述規定數量的所述壓縮數據塊 存儲在所述實際巻的存儲區域中,將超過所述規定數量的所述壓縮數據塊存儲 在所述虛擬巻所對應的所述池巻的存儲區域中。
7. 根據權利要求6所述的存儲裝置,其特征在于, 所述磁盤適配器,當判斷為除所述校驗數據的壓縮數據塊以外的壓縮數據塊的數量,多于所 述校驗數據的壓縮數據塊的數量時,將除所述校驗數據的壓縮數據塊以外的每一個壓縮數據塊二重化,將所述二重化后的每一個壓縮數據塊存儲在構成所述數據巻的、物理上不 同系列的磁盤設備中。
8. 根據權利要求7所述的存儲裝置,其特征在于, 所述磁盤適配器,分別將所述校驗組內的所述二重化后的壓縮數據塊中的一部分壓縮數據 塊存儲在所述數據巻的實際巻中,將另 一部分壓縮數據塊存儲在所述數據巻的 虛擬巻中。
9. 根據權利要求1所述的存儲裝置,其特征在于, 所述磁盤適配器,存儲針對依照所述寫入請求的寫入數據的、基于RAID結構的數據存儲方 式,按照該存儲的數據存儲方式壓縮所述寫入數據,存儲在所述數據巻中。
10. —種存儲裝置中的數據存儲方法,該存儲裝置具備具有存儲數據的 存儲介質的磁盤設備;和控制所述磁盤設備的磁盤控制器,所述數據存儲方法 的特征在于,具有以下步驟所述磁盤控制器控制所述磁盤設備以便形成數據巻和池巻,所述數據巻包 含被定義了比所述存儲介質的固有存儲容量大的存儲容量的、與所述存儲介質 的存儲區域相對應的實際巻,以及分配了所述實際巻以外的存儲區域的虛擬的存儲區域;所述磁盤控制器按照規定的RAID結構,基于依照從所述主機裝置發送的 寫入請求的寫入數據,生成該寫入數據所屬的校驗組內的校驗數據;所述磁盤控制器壓縮所述校驗組內的每一個所述寫入數據以及每一個所 述生成的校驗數據,生成壓縮數據以及壓縮校驗數據;所述磁盤控制器判斷所述校驗組內的每 一 個所述壓縮數據以及每 一 個所 述壓縮校驗數據是否超過規定大小;所述磁盤控制器,將所述壓縮數據以及所述壓縮校驗數據中未超過所述規 定大小的部分的數據存儲在所述實際巻的存儲區域中,并且將所述壓縮數據以 及所述壓縮校驗數據中超過所述規定大小的部分的數據存儲在所述虛擬巻所 對應的所述池巻的存儲區域中。
全文摘要
本發明提供存儲裝置以及使用該存儲裝置的數據存儲方法。本發明的課題是提供一種可以在規定的RAID結構下高效地存儲基于寫入數據的壓縮數據的存儲裝置。本發明是具備磁盤設備和對其進行控制的磁盤控制器的存儲裝置。磁盤控制器通過卷容量虛擬化功能提供由實際卷和虛擬卷構成的數據卷。虛擬卷與用于存儲數據實體的池卷相關聯,將數據實體存儲在池卷中。磁盤控制器依照來自主機裝置的寫入請求,在RAID5控制下壓縮寫入數據,將該壓縮數據存儲在實際卷的存儲區域中,并且,在無法完全存儲在該存儲區域中時,將壓縮數據中未存儲完的部分存儲在虛擬卷中。
文檔編號G06F3/06GK101414245SQ20081010891
公開日2009年4月22日 申請日期2008年6月6日 優先權日2007年10月19日
發明者武藤淳一, 神道一惠, 緒方蘭, 黑川勇 申請人:株式會社日立制作所