專利名稱:存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲計(jì)算機(jī)使用的數(shù)據(jù)的存儲裝置系統(tǒng)(以下稱為存儲系 統(tǒng)),特別涉及在具有控制部和由控制部控制的記錄媒體的存儲系統(tǒng)中,控制 部處理的數(shù)據(jù)塊尺寸和記錄媒體處理的數(shù)據(jù)塊尺寸不同的存儲系統(tǒng)。
技術(shù)背景在與計(jì)算機(jī)連接的存儲系統(tǒng)的一種中,有磁盤陣列系統(tǒng)。磁盤陣列系統(tǒng) 也稱為RAID(Redundent Array of Inexpensive Disks)系統(tǒng),是有被配置成陣列 狀的多個磁盤裝置和控制它們的控制部的存儲系統(tǒng)。在磁盤陣列系統(tǒng)中,通 過多個磁盤裝置的并行動作,能高速處理數(shù)據(jù)的讀出請求(以下稱為讀請求) 和數(shù)據(jù)寫入請求(以下稱為寫請求),也能對數(shù)據(jù)附加冗余度。磁盤陣列系統(tǒng), 如非專利文獻(xiàn)1所公開的那樣,根據(jù)附加的冗余數(shù)據(jù)的種類和其構(gòu)成,被分 類成5級。在磁盤陣列系統(tǒng)中,制作冗余數(shù)據(jù),以便在磁盤裝置發(fā)生故障時也能復(fù) 原數(shù)據(jù),將該冗余數(shù)據(jù)保存在和數(shù)據(jù)不同的磁盤裝置上??墒牵蛱岣叽疟P 陣列系統(tǒng)全體的可靠性的目的,還有在各磁盤裝置保存的邏輯塊上附加保證 代碼的情況。關(guān)于保證代碼,例如專利文獻(xiàn)1和專利文獻(xiàn)2有記載。在專利 文獻(xiàn)1中,作為保證代碼,在存取邏輯塊時對計(jì)算機(jī)指定的該邏輯塊的邏輯 地址(以下稱為LA(Logical Address)和邏輯塊的數(shù)據(jù)實(shí)施"異一或"邏輯演 算,在邏輯塊附加求出的LRC(Longitudinal Redundancy Check),在磁盤裝置 保存保證代碼和邏輯塊。為了檢測寫入邏輯塊數(shù)據(jù)的存儲區(qū)域的地址的錯誤, 使用LA,作為用于檢測邏輯塊數(shù)據(jù)錯誤的錯誤檢測代碼使用LRC。專利文獻(xiàn)1美國專利第5819054號公報(bào)專利文獻(xiàn)2美國專利第5706298號公報(bào)非專利文獻(xiàn)i亍i 一 "夕一 乂 > (D.Patterson),等2名「少一^ 7 才一 ij夕' > 卜 t< 才y 4 >工夕《> -〉7" 于"Y義夕(A Case for Redundant Arrays of Inexpensive Disks(RAID))」,工一.^ 一.工厶.〉夕乇?卜' - > 7 " > ^ 7。 口 -〉 一r < >夕'(ACM SIGMOD Conference Proceeding), 1988年6月,p.l09 U6作為存儲系統(tǒng)使用的記錄媒體的一種,有為個人計(jì)算機(jī)用設(shè)計(jì)的低成本 ATA(AT Attachment)磁盤裝置。為了降低開發(fā)成本、零件成本,有ATA磁盤 裝置構(gòu)造被簡略化的情況,在ATA磁盤裝置中,作為處理數(shù)據(jù)的單位的塊(扇 區(qū))的尺寸是固定長的場合多。在將ATA磁盤裝置那樣的塊長(扇區(qū)長)固定的記錄媒體用于存儲系統(tǒng) 時,存儲系統(tǒng)的控制部對記錄媒體進(jìn)行數(shù)據(jù)的輸入輸出處理時的數(shù)據(jù)單位, 可存在和記錄媒體進(jìn)行數(shù)據(jù)的輸入輸出處理時的數(shù)據(jù)單位不同的情況。而且, 在有這樣的場合,有數(shù)據(jù)不能向記錄媒體輸入輸出處理的問題。即使記錄媒 體處理的數(shù)據(jù)單位不固定,但在有不能將控制部對記錄媒體進(jìn)行數(shù)據(jù)的輸入 輸出處理時的數(shù)據(jù)單位和記錄媒體處理的數(shù)據(jù)單位做成相同尺寸的情況的場 合,也能產(chǎn)生同樣的問題。作為能產(chǎn)生這樣的問題的具體一例,例如,可以考慮這樣的場合即磁 盤陣列系統(tǒng)的控制部,使用專利文獻(xiàn)1等公開的技術(shù)等,在從計(jì)算機(jī)接收的 數(shù)據(jù)上附加保證代碼后在記錄媒體寫入數(shù)據(jù)的場合。即,在計(jì)算機(jī)存取磁盤 陣列系統(tǒng)內(nèi)的數(shù)據(jù)時,即使作為處理數(shù)據(jù)的單位的邏輯塊的尺寸和ATA磁盤 裝置的扇區(qū)長是相同尺寸,磁盤陣列系統(tǒng)的控制部在從計(jì)算機(jī)接收到的邏輯 塊上再附加保證代碼后在ATA磁盤裝置寫入數(shù)據(jù),所以,有這樣的的情況, 即在控制部將數(shù)據(jù)寫入到ATA磁盤裝置時處理的數(shù)據(jù)單位和ATA磁盤裝置 的扇區(qū)長不同。在這樣的場合,有控制部在扇區(qū)長固定的ATA磁盤裝置不能 寫入帶保證代碼的數(shù)據(jù)的情況。因而,在存儲系統(tǒng)的控制部對記錄媒體進(jìn)行數(shù)據(jù)的輸入輸出時處理的數(shù) 據(jù)單位和記錄媒體處理的數(shù)據(jù)單位不同時,也要求用于控制部能進(jìn)行向記錄 媒體的數(shù)據(jù)輸入輸出處理的技術(shù)。 發(fā)明內(nèi)容200810008806.X說明書第3/17頁一種存儲系統(tǒng),具有從計(jì)算機(jī)接收讀命令和寫命令的磁盤控制器;和 與上述磁盤控制器連接并根據(jù)該磁盤控制器的控制讀出或?qū)懭霐?shù)據(jù)的多個磁 盤裝置。在上述磁盤控制器根據(jù)上述讀命令或上述寫命令對上述磁盤裝置實(shí) 行數(shù)據(jù)的輸入輸出處理時作為處理數(shù)據(jù)的單位的第一塊的尺寸,和在上述多 個磁盤裝置每個實(shí)行從上述磁盤控制器接收到的數(shù)據(jù)的輸入輸出處理時作為 處理數(shù)據(jù)的單位的第二塊的尺寸不同。上述磁盤控制器,用有上述第一塊的 尺寸和上述第二塊的尺寸的公倍數(shù)尺寸的第三塊單位,對磁盤裝置指示數(shù)據(jù) 的寫入。在存儲系統(tǒng)的控制部對記錄媒體進(jìn)行數(shù)據(jù)的輸入輸出時處理的數(shù)據(jù)單位 和記錄媒體處理的數(shù)據(jù)單位不同時,也能進(jìn)行對記錄媒體的數(shù)據(jù)的輸入輸出 處理。一種磁盤陣列系統(tǒng),具有從計(jì)算機(jī)接收寫命令的磁盤控制器;和根據(jù) 從該磁盤控制器來的指示實(shí)行數(shù)據(jù)的輸入輸出處理的m+n臺磁盤裝置,其中 m》1、 n^1。 m個數(shù)據(jù)塊和從該m個數(shù)據(jù)塊生成的n個冗余數(shù)據(jù)塊各自存儲 在上述m+n臺磁盤裝置的其中之一,在上述磁盤控制器根據(jù)上述寫命令實(shí)行 針對上述m+n臺磁盤裝置進(jìn)行的數(shù)據(jù)寫入處理時用的第一塊的尺寸和上述 m+n臺磁盤裝置的每個實(shí)行從上述磁盤控制器接收到的數(shù)據(jù)的寫入處理時用 的第二塊的尺寸不同。上述第一塊的尺寸的M倍是上述第一塊的尺寸和上述 第二塊的尺寸的公倍數(shù),其中M^2。上述磁盤控制器,在根據(jù)上述寫命令從 上述計(jì)算機(jī)接收到的寫數(shù)據(jù)不滿M個第一塊的尺寸時,從寫入該寫數(shù)據(jù)的磁 盤裝置讀出不足部分的數(shù)據(jù),集中將合并接收的上述寫數(shù)據(jù)和從該磁盤裝置 讀出的數(shù)據(jù)后的M個第一塊的數(shù)據(jù),寫入到該磁盤裝置。上述磁盤控制器, 為了用上述寫數(shù)據(jù)生成冗余數(shù)據(jù),從磁盤裝置讀出包含由上述寫數(shù)據(jù)更新的 舊數(shù)據(jù)的第二塊的數(shù)據(jù),從磁盤裝置讀出包含由生成的冗余數(shù)據(jù)更新的舊冗 余數(shù)據(jù)的第二塊的數(shù)據(jù),用上述寫數(shù)據(jù)、讀出的舊數(shù)據(jù)和舊冗余數(shù)據(jù)生成冗 余數(shù)據(jù),進(jìn)而上述磁盤控制器,從存儲生成的冗余數(shù)據(jù)的磁盤裝置讀出M個 不滿第一塊的尺寸的冗余數(shù)據(jù)后,將合并生成的冗余數(shù)據(jù)和從該磁盤裝置讀 出的冗余數(shù)據(jù)后的M個第一塊的冗余數(shù)據(jù),集中起來寫入到該磁盤裝置。一種磁盤陣列系統(tǒng),具有從計(jì)算機(jī)接收寫命令的磁盤控制器;和根據(jù)從該磁盤控制器來的指示實(shí)行數(shù)據(jù)的輸入輸出處理的m+n臺磁盤裝置,其中 m》l、 n》1。 m個數(shù)據(jù)塊和從該m個數(shù)據(jù)塊生成的n個冗余數(shù)據(jù)塊各自存儲 在上述m+n臺磁盤裝置的其中之一。在上述磁盤控制器根據(jù)上述寫命令實(shí)行 針對上述m+n臺磁盤裝置進(jìn)行的數(shù)據(jù)寫入處理時用的第一塊的尺寸和上述 m+n臺磁盤裝置的每個實(shí)行從上述磁盤控制器接收到的數(shù)據(jù)的寫入處理時用 的第二塊的尺寸不同。上述第一塊的尺寸的M倍等于上述第二塊的尺寸的N 倍,其中M>2、 N>1,上述磁盤控制器,在根據(jù)上述寫命令從上述計(jì)算機(jī) 接收到的寫數(shù)據(jù)不滿M個第一塊的尺寸時,從寫入該寫數(shù)據(jù)的磁盤裝置讀出 包含用該寫數(shù)據(jù)更新的舊數(shù)據(jù)的M個第一塊的數(shù)據(jù)后,用該寫數(shù)據(jù)更新舊數(shù) 據(jù),將更新后包含該寫數(shù)據(jù)的M個第一塊的數(shù)據(jù)寫入到該磁盤裝置。上述磁 盤控制器為了用上述寫入數(shù)據(jù)生成冗余數(shù)據(jù),從存儲生成的冗余數(shù)據(jù)的磁盤 裝置,讀出包含用生成的冗余數(shù)據(jù)更新的舊冗余數(shù)據(jù)的M個第一塊的冗余數(shù) 據(jù),用上述寫數(shù)據(jù)、讀出的冗余數(shù)據(jù)包含的上述舊冗余數(shù)據(jù)和上述舊數(shù)據(jù), 生成冗余數(shù)據(jù),用生成的冗余數(shù)據(jù)更新上述舊冗余數(shù)據(jù),將包含更新后生成 的冗余數(shù)據(jù)的M個第一塊的冗余數(shù)據(jù)寫入到該磁盤裝置。 附圖的簡單說明
圖1是表示磁盤陣列系統(tǒng)構(gòu)成的一例的圖;圖2是表示擴(kuò)展邏輯塊和物理塊的對應(yīng)關(guān)系一例的圖;圖3是表示大尺寸塊另外一例的圖;圖4是表示大尺寸塊其他一例的圖;圖5是表示數(shù)據(jù)的寫入處理一例的圖;圖6是表示在磁盤裝置寫入數(shù)據(jù)時的處理詳細(xì)例的圖;圖7是表示大尺寸寫入處理一例的圖;圖8是表示小尺寸寫入處理一例的圖;圖9是表示讀出處理一例的圖;圖10是表示針對RAID5構(gòu)成LU的寫入處理一例的圖; 圖11是表示用大尺寸塊單位寫入冗余數(shù)據(jù)時的的冗余數(shù)據(jù)生成處理和 寫入處理一例的圖;圖12是表示用大尺寸塊單位寫入冗余數(shù)據(jù)時的的冗余數(shù)據(jù)生成處理和寫入處理另外一例的圖。符號說明100:主機(jī)110:磁盤陣列系統(tǒng)200:磁盤陣列控制器300:磁盤群400:管理終端500:擴(kuò)張邏輯塊510:物理塊520:邏輯塊530:擴(kuò)張邏輯塊具體實(shí)施方式
以下,表示本發(fā)明的實(shí)施形態(tài)的一例。本發(fā)明不受以下表示的實(shí)施方式 的限定。實(shí)施例1實(shí)施例1,表示存儲系統(tǒng)的控制部對記錄媒體進(jìn)行數(shù)據(jù)的輸入輸出時處 理的數(shù)據(jù)單位與記錄媒體處理的數(shù)據(jù)單位不同時的、從控制部向記錄媒體的 數(shù)據(jù)輸入輸出處理的一例。在實(shí)施例1中,作為存儲系統(tǒng)的一例使用磁盤陣 列系統(tǒng)說明本發(fā)明的一實(shí)施形態(tài),但實(shí)施例1的存儲系統(tǒng)不僅能適用如非專 利文獻(xiàn)1記載的如磁盤陣列系統(tǒng)那樣有冗余數(shù)據(jù)的存儲系統(tǒng),而且也能適用 沒有冗余數(shù)據(jù)的存儲系統(tǒng)。 (1)系統(tǒng)構(gòu)成的說明圖1是表示本實(shí)施形態(tài)的磁盤陣列系統(tǒng)構(gòu)成一例的圖。磁盤陣列系統(tǒng)iio與主計(jì)算機(jī)(以下稱為主機(jī))100連接,是存儲有主機(jī)100使用的數(shù)據(jù)的存 儲系統(tǒng)。磁盤陣列系統(tǒng)110具有磁盤陣列控制器200和與其連接的磁盤群300, 磁盤陣列控制器200中連接著將管理信息輸入給磁盤陣列系統(tǒng)110或輸出磁 盤陣列系統(tǒng)110狀態(tài)的管理終端400。磁盤陣列控制器200,具有實(shí)行磁盤陣列系統(tǒng)IIO控制處理的CPU201、 存儲器202、緩沖存儲由主機(jī)100存取的數(shù)據(jù)的超高速緩沖存儲器203、控制超高速緩沖存儲器203的超高速緩沖存儲器控制器204、在和主機(jī)100之間 進(jìn)行數(shù)據(jù)發(fā)送接收的主機(jī)接口控制部(以下稱主機(jī)FC I/F) 205、在和構(gòu)成 磁盤群300的磁盤裝置之間進(jìn)行數(shù)據(jù)發(fā)送接收的磁盤接口控制部(以下稱磁 盤I/F) 206、在和管理終端400之間進(jìn)行控制信息發(fā)送接收的管理接口控制 部(以下稱管理I/F) 207,各自通過通信線連接。另外,超高速緩沖存儲器控制器204,具有對數(shù)據(jù)附加保證代碼或從 數(shù)據(jù)消除保證代碼的保證代碼附加/消除電路240、用保證代碼進(jìn)行數(shù)據(jù)檢查 的保證代碼檢查電路260、和進(jìn)行冗余數(shù)據(jù)生成處理的冗余數(shù)據(jù)生成電路 250。在本實(shí)施形態(tài),作為主接口控制部205的一例,表示根據(jù)FC(Fibre Channel) 通信規(guī)定的FC接口控制部,但主接口控制部205也可以是根據(jù)iSCSI接口等 其他通信規(guī)定的接口控制部。存儲器202,記錄著為了控制磁盤陣列系統(tǒng)110而由CPU201實(shí)行的RAID 控制程序210和為了進(jìn)行和管理終端400通信而由CPU201實(shí)行的管理終端 通信程序220。磁盤群300,有磁盤裝置301、 302、 303、 304。由磁盤裝置301 304內(nèi) 的存儲區(qū)域,構(gòu)成成為主機(jī)100的存取對象的邏輯存儲區(qū)域(邏輯容量)的 LU(LobicalUnit)310。磁盤I/F206,和磁盤裝置301~304連接。另外,如圖1 所示的與磁盤I/F206連接的磁盤裝置301~304的臺數(shù)、磁盤I/F206和磁盤裝 置301-304的連接形態(tài)是一例,不限于圖1的構(gòu)成。管理終端400,具有在磁盤陣列系統(tǒng)110的用戶或維修人員進(jìn)行對磁 盤陣列控制器200的設(shè)定時,被用于向磁盤陣列控制器200輸入信息的輸入 部401;和輸出從磁盤陣列控制器200取得的磁盤陣列系統(tǒng)110信息的輸出 部402。輸入部是鍵盤和鼠標(biāo)器等,輸出部是顯示器等。 (2)塊尺寸的對應(yīng)關(guān)系圖2是表示磁盤陣列控制器200處理的數(shù)據(jù)單位和磁盤裝置301 304處 理的數(shù)據(jù)單位間的對應(yīng)關(guān)系一例的圖。圖2的上層表示磁盤陣列控制器200對磁盤裝置輸入輸出數(shù)據(jù)時處理的 數(shù)據(jù)單位,將該數(shù)據(jù)單位定義為「擴(kuò)展邏輯塊500」。擴(kuò)展邏輯塊500是有520 字節(jié)長的尺寸的塊。擴(kuò)展邏輯塊500,由作為主機(jī)100對磁盤陣列系統(tǒng)110輸入輸出數(shù)據(jù)時的單位的、由520字節(jié)長的數(shù)據(jù)構(gòu)成的邏輯塊、和由對該邏 代碼構(gòu)成。下層是表示磁盤裝置301~304在數(shù)據(jù)輸入輸出時處理的數(shù)據(jù)單位,定義 為「物理塊510」。物理塊510是有512字節(jié)長尺寸的塊。另外,若擴(kuò)展邏輯塊500的尺寸和物理塊510的尺寸不同,則各塊的實(shí) 際尺寸不限于圖2所示的例子。另外,若擴(kuò)展邏輯塊500的尺寸和物理塊510 的尺寸不同,即使擴(kuò)展邏輯塊500沒有保證代碼(即,在擴(kuò)展邏輯塊由從主 機(jī)100輸入輸出的數(shù)據(jù)構(gòu)成的場合)本發(fā)明也可適用。在圖2所示的例子中,擴(kuò)展邏輯塊500和物理塊510比較,尺寸大8字 節(jié),但在排列多個兩塊的場合,若排列64個擴(kuò)展邏輯塊、65個物理塊,兩 塊的尺寸的差的合計(jì)正好是和物理塊的尺寸相等的512字節(jié),所以64個擴(kuò)展 邏輯塊500和64個物理塊510的各自的合計(jì)尺寸一致。這樣,將兩塊的合計(jì) 尺寸一致的狀態(tài),即將排列了擴(kuò)展邏輯塊500的尺寸和物理塊510尺寸的公 倍數(shù)、多個擴(kuò)展邏輯塊500或多個物理塊510的狀態(tài)定義為「邊界一致」。另 外,將擴(kuò)展邏輯塊500尺寸和物理塊510尺寸的公倍數(shù)的尺寸的數(shù)據(jù)單位, 以后稱為「大尺寸塊」。在成為向磁盤裝置301-304的寫入對象的多個擴(kuò)展邏輯塊500處于邊界 一致狀態(tài)時,這些擴(kuò)展邏輯塊500能作為多個物理塊510寫入到磁盤裝置 301-304。即在圖2的例子中,若成為向磁盤裝置301 304的寫入對象的多個 擴(kuò)展邏輯塊500集中64XN (N是1以上的整數(shù))個,則這些擴(kuò)展邏輯塊500 能作為65XN個物理塊510寫入到磁盤裝置301 304。因而,能吸收擴(kuò)展邏 輯塊500和物理塊510之間的數(shù)據(jù)塊的尺寸的差異。因此,在本實(shí)施例中, 在從磁盤陣列控制器200向磁盤裝置301~304寫入數(shù)據(jù)時,假定用大尺寸塊 寫入數(shù)據(jù)。(3)塊尺寸對應(yīng)關(guān)系的另外一例圖2表示排列擴(kuò)展邏輯塊500構(gòu)成大尺寸塊的例子,但大尺寸塊的構(gòu)成 不限于圖2所示的例子。因此,圖3和圖4表示大尺寸塊的其他例子。圖3是表示大尺寸塊第2例子的圖。在圖3所示的例子中,作為主機(jī)100存取磁盤陣列系統(tǒng)110時使用的數(shù)據(jù)單位的、有512字節(jié)長的尺寸的邏輯塊 520、和該邏輯塊520所附加的8字節(jié)長的保證代碼,被配置在離開大尺寸邏 輯塊的位置。即,在大尺寸邏輯塊內(nèi)首先配置64個512字節(jié)長的邏輯塊520, 然后配置集中了 64個針對64個邏輯塊520的64個保證代碼的保證代碼塊(由 于賦予每1邏輯塊520的保證代碼的尺寸是8字節(jié),所以保證代碼塊有8字 節(jié)X64個-512字節(jié)長的尺寸)。另外,以和構(gòu)成大尺寸塊的邏輯塊520相同 的配置順序,將與各邏輯塊520對應(yīng)的保證代碼配置在保證代碼塊內(nèi)。但, 若用超高速緩沖存儲器控制器204管理邏輯塊520和與其對應(yīng)的保證代碼的 對應(yīng)關(guān)系,則在保證代碼塊內(nèi)的保證代碼配置不限于此。在圖3的例中,將64個邏輯塊520和其后配置的保證代碼塊合起來,能 作為65個物理塊510處理,在該狀態(tài)能符合邊界一致的條件。圖4是表示大尺寸塊第3例子的圖。在圖4所示的例子,和圖2所示的 例子同樣,排列64個520字節(jié)長的擴(kuò)展邏輯塊500來構(gòu)成大尺寸塊。可是, 擴(kuò)展邏輯塊500構(gòu)成與圖2的例和圖4的例是不同的。g卩,在圖2所示的擴(kuò) 展邏輯塊500中,在512字節(jié)長的擴(kuò)展邏輯塊的后面附加了 8字節(jié)長的保證 代碼,但在圖4所示的擴(kuò)展邏輯塊530則不限于在輯塊的后面附加保證代碼。在圖4所示的擴(kuò)展邏輯塊530中,調(diào)整擴(kuò)展邏輯塊530內(nèi)的保證代碼位 置,以便在物理塊510逐個存儲保證代碼。其結(jié)果,由于保證代碼全部存在 64個,在構(gòu)成大尺寸塊的65個物理塊510內(nèi)、第65個物理塊510中不存儲 保證代碼,但在其他物理塊510逐個存儲保證代碼。因而,在圖4所示的例 中,關(guān)于大尺寸塊中第64個擴(kuò)展邏輯塊530,在邏輯塊之前附加針對該邏輯 塊的保證代碼,而對于其他擴(kuò)展邏輯塊530,將邏輯塊的數(shù)據(jù)512字節(jié)分割 成2個數(shù)據(jù),在被分割的2個數(shù)據(jù)之間插入針對該邏輯塊的保證代碼。另外,圖4表示了對于構(gòu)成大大小塊的物理塊510中從第1個到第64個 物理塊,調(diào)整擴(kuò)展邏輯塊530內(nèi)的保證代碼位置,以便在物理塊510的末尾 存儲保證代碼的例子,但決定擴(kuò)展邏輯塊530內(nèi)的保證代碼位置的方法,不 限于圖4所示的方法。以后,在實(shí)施例1和實(shí)施例2中,根據(jù)圖2所示的大尺寸塊構(gòu)成、即圖 2所示的擴(kuò)展邏輯塊500和物理塊510的對應(yīng)關(guān)系,說明本發(fā)明的實(shí)施例??墒牵羰窃谶吔缫恢碌臓顟B(tài)形成的組合,則大尺寸塊構(gòu)成以可以是從圖2 到圖4所示的例子以外的構(gòu)成。例如,擴(kuò)展邏輯塊500、擴(kuò)展邏輯塊530、邏 輯塊520、保證代碼塊、物理塊510的尺寸可以是任意的尺寸。另外以后邊 界一致的狀態(tài),磁盤陣列控制器200在磁盤裝置寫入數(shù)據(jù)時的數(shù)據(jù)單位和物 理塊510的尺寸的差的合計(jì),也可以是物理塊510的N (N是1以上的整數(shù)) 倍的狀態(tài)。另外,擴(kuò)展邏輯塊500、擴(kuò)展邏輯塊530、邏輯塊520、保證代碼 塊等,也可以是尺寸比物理塊510小的情況。綜上所述,邊界若是一致的狀態(tài),則擴(kuò)展邏輯塊500、擴(kuò)展邏輯塊530、 邏輯塊520或保證代碼塊等和物理塊510的尺寸的組合是任意的,成為邊界 一致的擴(kuò)展邏輯塊500、擴(kuò)展邏輯塊530、邏輯塊520、或保證代碼塊等的個 數(shù)和物理塊510的個數(shù)組合也是任意的。 (4)寫處理接著,說明從本實(shí)施例的磁盤陣列控制器200向各磁盤裝置的數(shù)據(jù)寫入 處理。圖5是表示本實(shí)施例的磁盤陣列控制器200寫入處理時動作一例的流程圖。當(dāng)主機(jī)100向磁盤陣列系統(tǒng)110發(fā)行寫命令時,磁盤陣列控制器200用 主機(jī)FC 1/F205接收該寫命令(步驟IOOI)。另外,主機(jī)100將512字節(jié)長 的邏輯塊作為1單位,發(fā)行邏輯塊N倍(N是1以上的整數(shù))數(shù)據(jù)的寫命令, 在寫命令中包含用寫命令寫入的數(shù)據(jù)最前面的LA和寫數(shù)據(jù)的尺寸(表示是 多少邏輯塊的數(shù)據(jù)的邏輯塊數(shù))。CPU201,實(shí)行RAID控制程序210,根據(jù)寫命令包含的LA,決定寫數(shù) 據(jù)的寫入目的地的磁盤裝置(步驟1002),再者,在超高速緩沖存儲器203 內(nèi)確保根據(jù)寫命令接收的寫數(shù)據(jù)的緩存目的地和對于該寫數(shù)據(jù)生成的冗余數(shù) 據(jù)存儲目的地(步驟1003)。另外,這時CPU201還在超高速緩沖存儲器203內(nèi)確保附加在寫數(shù)據(jù)的保證代碼的存儲目的地。接著,CPU201,通過主FC I/F205,將已完成數(shù)據(jù)接收準(zhǔn)備通知主機(jī) 100 (步驟1004)。主機(jī)100,將用寫命令指定的邏輯塊數(shù)的寫數(shù)據(jù)發(fā)送給主 機(jī)FC 1/F205。用主機(jī)FC I/F205接收的寫入數(shù)據(jù)被送到超高速緩沖存儲器控制器204,在保證代碼附加/消除電路240,在每512字節(jié)長的邏輯塊生成 保證代碼(即,該邏輯塊的最前面LA和LRC),邏輯塊和保證代碼被存儲在 步驟1003確保的超高速緩沖存儲器203內(nèi)的存儲區(qū)域(步驟1005)。 LA和 LRC的生成方法已在專利文獻(xiàn)1詳述。進(jìn)而,主FC I/F205通知CPU201接收到寫入數(shù)據(jù)。CPU201接收從主 FC I/F205來的通知后,當(dāng)檢測已接收寫入數(shù)據(jù)時(步驟1006),控制冗余 數(shù)據(jù)生成電路250,用RAID控制程序210生成與接收到的寫入數(shù)據(jù)對應(yīng)的冗 余數(shù)據(jù),冗余數(shù)據(jù)生成電路250生成冗余數(shù)據(jù)(步驟1007)。生成的冗余數(shù) 據(jù)存儲在由步驟1003確保的超高速緩沖存儲器203內(nèi)的區(qū)域。接著,CPU201指示磁盤I/F206,磁盤I/F206根據(jù)從CPU201來的指示, 將存儲在超高速緩沖存儲器203的寫入數(shù)據(jù)和保證代碼、或冗余數(shù)據(jù)寫入在 磁盤裝置301到304的任一個中(步驟1008)。接著,用圖6,詳細(xì)說明在圖5的步驟1008中,在磁盤裝置寫入數(shù)據(jù)時 處理的例子。磁盤陣列控制器200,在各磁盤裝置寫入數(shù)據(jù)時,以大尺寸塊為單位實(shí) 行寫入處理。因此,首先CPU201,判定存儲在超高速緩沖存儲器203的、要 向磁盤裝置寫入的數(shù)據(jù),在和物理塊的對應(yīng)關(guān)系中是否存在成為邊界一致的 狀態(tài)的部分(步驟2001)。即,判定在圖5的步驟1005寫入到超高速緩沖存 儲器203的邏輯塊和保證代碼,是否僅存在構(gòu)成大尺寸塊的部分。該判斷根 據(jù)在圖5的步驟1001 CPU201從主機(jī)100接收的寫命令進(jìn)行。即,由于寫入 命令中包含表示從主機(jī)寫入的寫入數(shù)據(jù)的尺寸相當(dāng)于幾個邏輯塊520的邏輯 塊數(shù),若該邏輯塊數(shù)是64以上,則可知在超高速緩沖存儲器203中擴(kuò)展邏輯 塊500存在是邊界一致的狀態(tài)的部分。若寫命令包含的邏輯塊數(shù)是63以下, 則可知超高速緩沖存儲器203中不存在擴(kuò)展邏輯塊500是邊界一致的狀態(tài)的 部分。另外,在本實(shí)施例中,從主機(jī)IOO接收到的邏輯塊的數(shù)據(jù),在圖5的步 驟1007用磁盤陣列控制器200生成的冗余數(shù)據(jù),都用同樣的方法寫入到磁盤 裝置。因而,用圖6所示的處理寫入到磁盤裝置的也可以是冗余數(shù)據(jù),在這 樣的場合,在步驟2001,判定冗余數(shù)據(jù)是否寫入到構(gòu)成大尺寸塊部分超高速緩沖存儲器。在超高速緩沖存儲器203存儲并要向磁盤裝置寫入數(shù)據(jù),成為邊界一致 的狀態(tài)時,磁盤陣列控制器200,通過磁盤I/F206,將大尺寸塊的數(shù)據(jù)向其中 1個磁盤寫入(步驟2002)。另一方面,在超高速緩沖存儲器203存儲并要向磁盤裝置寫入的數(shù)據(jù), 在未成為邊界一致的狀態(tài)時,即構(gòu)成大尺寸塊的數(shù)據(jù)一部分不聚齊在超高速 緩沖存儲器203內(nèi)時,磁盤陣列控制器200從磁盤裝置讀出構(gòu)成大尺寸塊的 數(shù)據(jù)中不足的部分(即沒有存儲在超高速緩沖存儲器203的部分)的數(shù)據(jù), 用存儲在超高速緩沖存儲器203的數(shù)據(jù)和新讀出的數(shù)據(jù),構(gòu)成大尺寸塊(步 驟2002),通過磁盤I/F206將大尺寸塊的數(shù)據(jù)寫入到其中1個磁盤(步驟 2003)。以上是向圖5的步驟1008的磁盤裝置寫入處理的一例。接著,在圖6的步驟2001,判斷寫入到超高速緩沖存儲器203的邏輯塊 和保證代碼為存在構(gòu)成大尺寸塊的尺寸部分的場合的、關(guān)于向圖6的步驟 2003的磁盤裝置寫入處理,稱為大尺寸寫入,并用圖7進(jìn)行說明。磁盤裝置301 304各自將圖7的下層所示的物理塊510作為一單位處理 數(shù)據(jù)。另夕卜,CPU201,將寫入到磁盤裝置301 304中一個的數(shù)據(jù)作為圖7的 上層所示的擴(kuò)展邏輯塊500來管理。因此,CPU201指示磁盤I/F206,將集中 了 64個存儲在超高速緩沖存儲器203的擴(kuò)展邏輯塊500的數(shù)據(jù)的集合,作為 集中了65個物理塊510的數(shù)據(jù)的集合,寫入到磁盤裝置。接收到指示的磁盤 I/F206,用磁盤裝置301-304處理的1個寫入命令,將65個物理塊510的數(shù) 據(jù)(這相當(dāng)于64個擴(kuò)展邏輯塊500的數(shù)據(jù))寫入到磁盤裝置301-304中的1 個。艮卩,CPU201,將與磁盤裝置301 304的物理塊510邊界一致的單位為最 小單位,在磁盤裝置301-304寫入擴(kuò)展邏輯塊500。另一方面在圖6的步驟2001,判斷寫入到超高速緩沖存儲器203的邏輯 塊和保證代碼為不存在構(gòu)成大尺寸塊的尺寸部分的場合的、關(guān)于向圖6的步 驟2003的磁盤裝置寫入處理,稱為小尺寸寫入,并用圖8進(jìn)行說明。小尺寸 寫入是一并記錄相當(dāng)于圖6的步驟2002、步驟2003的處理和從主機(jī)100來 的寫入的圖。接收從主機(jī)100來的寫入數(shù)據(jù)的磁盤陣列控制器200 (Stepl),在超高速 緩沖存儲器203存儲該寫入數(shù)據(jù)和關(guān)于該寫入數(shù)據(jù)生成的保證代碼(圖5的 步驟1005)的同時,生成與該寫入數(shù)據(jù)對應(yīng)的冗余數(shù)據(jù),也將其存儲在超高 速緩沖存儲器203 (圖5的步驟1007)。在圖6的步驟2001, CPU201判斷為要寫入到磁盤裝置的數(shù)據(jù)在大尺寸 塊的尺寸部分超高速緩沖存儲器203不存在時,CPU201指示磁盤I/F206,從 成為數(shù)據(jù)寫入目的地的磁盤裝置讀出不足尺寸部分的數(shù)據(jù)(即,邏輯塊的數(shù) 據(jù)和保證代碼(Step2)。而后,CPU201合并存儲在超高速緩沖存儲器203內(nèi) 的數(shù)據(jù)和在Step2從磁盤裝置讀出的不足尺寸部分的數(shù)據(jù),準(zhǔn)備大尺寸塊的 數(shù)據(jù)集合(Step3)。而后,CPU201指示磁盤I/F206,以大尺寸塊單位在磁盤 裝置寫入在Step3準(zhǔn)備的大尺寸塊的數(shù)據(jù)組。 (5)讀出處理接著,用圖9說明本實(shí)施例的讀出處理。從主機(jī)100接收讀出命令的磁盤陣列控制器200的CPU201(步驟3001 ), 檢查用讀出命令指定的讀出對象數(shù)據(jù)的最前面LA和表示讀出對象數(shù)據(jù)尺寸 的邏輯塊數(shù)。而后,CPU201從該最前面LA和邏輯塊數(shù)確定應(yīng)從磁盤裝置讀 出的邏輯塊520和附加給該邏輯塊的保證代碼。進(jìn)而,CPU201確定存儲有確 定的邏輯塊和保證代碼的物理塊510,決定從哪個磁盤裝置讀出數(shù)據(jù)(步驟 3002)。 CPU201由于掌握擴(kuò)展邏輯塊500和物理塊510的對應(yīng)關(guān)系,所以能 根據(jù)該對應(yīng)關(guān)系決定應(yīng)讀出數(shù)據(jù)的物理塊510。例如,在大尺寸塊有圖2和圖4所示的構(gòu)成的場合,若由讀出命令指定 的邏輯塊數(shù)是1,則與包含指定的邏輯塊的擴(kuò)展邏輯塊對應(yīng)的物理塊510的2 個部分(這2個物理塊在圖2和圖4的例子是連續(xù)的物理塊)成為數(shù)據(jù)的讀 出源物理塊510。另外,在大尺寸塊有圖3所示的構(gòu)成的場合,與用讀出命 令指定的讀出對象邏輯塊520對應(yīng)的物理塊510和與保證代碼對應(yīng)的物理塊 510成為數(shù)據(jù)的讀出源物理塊510。為了減少從磁盤陣列控制器200向磁盤裝置的命令發(fā)行次數(shù),關(guān)于用讀 出命令指定的讀出對象邏輯塊和與給其附加的保證代碼對應(yīng)的物理塊以外的 物理塊,也可以事先用1命令一起讀出數(shù)據(jù),僅使用讀出數(shù)據(jù)內(nèi)的必要信息。例如,在應(yīng)讀出的數(shù)據(jù)存儲在分散的邏輯塊520的場合,也可以用l命令從 包含該分散的邏輯塊520的連續(xù)的多個物理塊讀出數(shù)據(jù)。在這樣場合,在步 驟3002, CPU201讀出許多物理塊并作為讀出源的物理塊510來進(jìn)行確定。接著,CPU201在超高速緩沖存儲器203確保存儲讀出的邏輯塊數(shù)據(jù)和 保證代碼的存儲區(qū)域(步驟3003)。CPU201給磁盤I/F206發(fā)指示,接收到該指示的磁盤I/F206,對于從 CPU201指定的磁盤裝置,發(fā)行讀出命令,以讀出由CPU201指定的物理塊數(shù) 據(jù)。而后,磁盤I/F206將從磁盤裝置讀出的數(shù)據(jù)保存在用步驟3003確保的超 高速緩沖存儲器203內(nèi)的存儲區(qū)域(步驟3004)。當(dāng)從磁盤裝置將數(shù)據(jù)讀出到超高速緩沖存儲器203時,保證代碼檢查電 路260,用專利文獻(xiàn)1記載的方法檢查保證代碼。而后,當(dāng)確認(rèn)讀出的數(shù)據(jù) 沒有錯誤時,將存儲在超高速緩沖存儲器203的數(shù)據(jù)中、除去保證代碼的邏 輯塊數(shù)據(jù)發(fā)送給主機(jī)IOO (步驟3005)。 (6)效果若使用本實(shí)施方式,用磁盤裝置處理的數(shù)據(jù)塊(即物理塊510)的邊界 和磁盤陣列控制器200處理的數(shù)據(jù)塊(即擴(kuò)展邏輯塊520)的邊界一致的單 位(即大尺寸塊),磁盤陣列控制器200向磁盤裝置寫入數(shù)據(jù)。其結(jié)果,即使 磁盤陣列控制器200處理數(shù)據(jù)時的數(shù)據(jù)單位和磁盤裝置處理數(shù)據(jù)時的數(shù)據(jù)單 位不同,也能將數(shù)據(jù)從磁盤陣列控制器200寫入到磁盤裝置。另外,對于數(shù)據(jù)塊的尺寸固定的磁盤裝置,能附加數(shù)據(jù)的保證代碼后讀 入數(shù)據(jù),能提高磁盤陣列系統(tǒng)110的可靠性。 實(shí)施例2在第2實(shí)施例中,要說明對磁盤陣列系統(tǒng)110以大尺寸塊單位寫入冗余數(shù)據(jù) 的方法。另外,磁盤陣列系統(tǒng)110的構(gòu)成可以是和、圖1所示的例子相同。但 在實(shí)施例2中,假定是LU310是RAID5構(gòu)成的LU。當(dāng)然,若LU310是有冗 余數(shù)據(jù)的LU,則也可以是RAID3和RAID6等RAID5以外的構(gòu)成。 (1)對RAID5構(gòu)成的LU的寫入處理圖IO表示根據(jù)從主機(jī)IOO來的寫入命令,對RAID5構(gòu)成的LU310寫入 數(shù)據(jù)時處理的一例。在圖10的例,用數(shù)據(jù)A、數(shù)據(jù)B和數(shù)據(jù)C計(jì)算"異一或"邏輯的結(jié)果為冗余數(shù)據(jù)D。這里,若是根據(jù)從主機(jī)100來的寫入命令全 部更新數(shù)據(jù)A、數(shù)據(jù)B和數(shù)據(jù)C,則磁盤陣列控制器200能用寫入數(shù)據(jù)(即 用新數(shù)據(jù)A、新數(shù)據(jù)B和新數(shù)據(jù)C)生成新的新冗余數(shù)據(jù)D??墒?,在僅由 從主機(jī)100接收的寫入數(shù)據(jù)不能生成新冗余數(shù)據(jù)時,例如,如圖10所示,在 僅將新數(shù)據(jù)A發(fā)送給磁盤陣列控制器200并用新數(shù)據(jù)A僅更新數(shù)據(jù)A時,如 非專利文獻(xiàn)1公開的那樣,會發(fā)生針對磁盤裝置讀出/修改/寫入處理。即在這樣的場合,當(dāng)磁盤陣列控制器200從主機(jī)100接收新數(shù)據(jù)A時 (Stepl),磁盤陣列控制器200為生成新冗余數(shù)據(jù)D讀出數(shù)據(jù)A (舊數(shù)據(jù)) (Step2 ),而且,為了生成新冗余數(shù)據(jù)D也讀出數(shù)據(jù)D(舊冗余數(shù)據(jù))(Step3 )。 而后,磁盤陣列控制器200用新數(shù)據(jù)A、數(shù)據(jù)A、冗余數(shù)據(jù)D計(jì)算"異一或" 邏輯,生成新冗余數(shù)據(jù)D (St印4)。然后,磁盤陣列控制器200將新數(shù)據(jù)A 寫入到磁盤裝置(Step5 )的同時,也將新冗余數(shù)據(jù)D寫入到磁盤裝置(Step6)。另外,對于新數(shù)據(jù),也可以生成在實(shí)施例1敘述的保證代碼,將帶保證 代碼的新數(shù)據(jù)A寫入到磁盤裝置。這點(diǎn),在以下所示的圖11和圖12的處理 也是同樣的。(2)以大尺寸塊單位讀出/修改/寫入處理的一例也如第1實(shí)施形態(tài)說明的那樣,以大尺寸塊單位從磁盤陣列控制器200 向磁盤裝置進(jìn)行數(shù)據(jù)的寫入。這不僅是從主機(jī)100接收到的寫入數(shù)據(jù)的寫入, 而且對于有RAID5構(gòu)成的LU的冗余數(shù)據(jù)也同樣。于是,用圖11表示用于 以大尺寸塊單位寫入冗余數(shù)據(jù)的、冗余數(shù)據(jù)的生成處理和寫入處理的一例。當(dāng)磁盤陣列控制器200從主機(jī)100接收到寫入命令時,根據(jù)寫入命令包 含的邏輯塊數(shù),可識別從主機(jī)100接收的新數(shù)據(jù)(寫入數(shù)據(jù))的尺寸。因此, 在磁盤陣列控制器200從主機(jī)IOO接收到新數(shù)據(jù)時,在判斷為僅用新數(shù)據(jù)不 能生成新冗余數(shù)據(jù)的場合,為了從舊數(shù)據(jù)、舊冗余數(shù)據(jù)、新數(shù)據(jù)生成新冗余 數(shù)據(jù),實(shí)行讀出/修改/寫入處理。具體地說,磁盤陣列控制器200為了生成新冗余數(shù)據(jù),將包含舊數(shù)據(jù)及 其保證代碼的物理塊(Stepl)、包含舊冗余數(shù)據(jù)的物理塊(Step2),讀出到超 高速緩沖存儲器203。該舊數(shù)據(jù)和保證代碼、及冗余數(shù)據(jù)的讀出處理,各自 是如圖9所示的處理。接著,磁盤陣列控制器200,由讀出的舊數(shù)據(jù)和舊冗余數(shù)據(jù)、及從主機(jī)100接收到的新數(shù)據(jù),生成新冗余數(shù)據(jù)。接著,由磁盤陣列控制器200分別將新數(shù)據(jù)和新冗余數(shù)據(jù)寫入磁盤裝置。 這里,在新數(shù)據(jù)及其保證代碼、和新冗余數(shù)據(jù)的尺寸小于大尺寸塊的尺寸時, 就對新數(shù)據(jù)和新冗余數(shù)據(jù)的各自實(shí)行用圖8說明的小尺寸寫入。首先,為了在磁盤裝置寫入新數(shù)據(jù),磁盤陣列控制器200從新數(shù)據(jù)寫入 目的地的磁盤裝置讀出不足部分的數(shù)據(jù)(Step3)。而后,磁盤陣列控制器200 在己讀出的數(shù)據(jù)上合并新數(shù)據(jù)及其保證代碼,構(gòu)成大尺寸塊,在磁盤裝置寫 入該大尺寸塊(Step4)。接著,新冗余數(shù)據(jù)也同樣地被寫入到磁盤裝置。即,磁盤陣列控制器200 從新冗余數(shù)據(jù)寫入目的地的磁盤裝置,讀出不足部分的數(shù)據(jù)(Step5)。而后, 磁盤陣列控制器200在已讀出的數(shù)據(jù)上合并新冗余數(shù)據(jù),構(gòu)成大尺寸塊,在 磁盤裝置寫入該大尺寸塊(Step6)。根據(jù)以上的處理,磁盤陣列控制器200,對構(gòu)成RAID的多個磁盤裝置, 能以大尺寸塊單位寫入寫入數(shù)據(jù)和冗余數(shù)據(jù)。(3)以大尺寸塊單位的讀出/修改/寫入處理的其他一例在在圖11表示的寫入處理中,為了在磁盤裝置寫入新數(shù)據(jù)和新冗余數(shù) 據(jù),從磁盤陣列控制器200向磁盤裝置的存取合計(jì)發(fā)生6次。因此,用圖12說明能進(jìn)一步減少向磁盤裝置的存取次數(shù)的寫入處理例子。在圖12的例子中,在讀出/修改/寫入處理中讀出舊數(shù)據(jù)和舊冗余數(shù)據(jù)時,以大尺寸塊單位讀出舊數(shù)據(jù)和舊冗余數(shù)據(jù)。艮P,在讀出/修改/寫入處理時,磁盤陣列控制器200首先從磁盤裝置將包含舊數(shù)據(jù)的卞尺寸塊的數(shù)據(jù)(Stepl)讀出到超高速緩沖存儲器203,接著從磁盤裝置將包含舊冗余數(shù)據(jù)的大尺寸塊的數(shù)據(jù)讀出到超高速緩沖存儲器203 (Step2)。接著磁盤陣列控制器200從已讀出的舊數(shù)據(jù)和舊冗余數(shù)據(jù)、及從主機(jī)100接收到的新數(shù)據(jù)進(jìn)行"異一或"邏輯計(jì)算,生成新冗余數(shù)據(jù)。接著,磁盤陣列控制器200,用這些數(shù)據(jù)更新在Stepl讀出的大尺寸塊數(shù)據(jù)中、與新數(shù)據(jù)及其保證代碼相當(dāng)?shù)牟糠?,在磁盤裝置寫入更新后的大尺寸塊數(shù)據(jù)(Step3)。關(guān)于新冗余數(shù)據(jù)也同樣地,磁盤陣列控制器200,用該新冗余數(shù)據(jù)更新 在Step2讀出的大尺寸塊數(shù)據(jù)中、與新冗余數(shù)據(jù)及其保證代碼相當(dāng)?shù)牟糠郑诖疟P裝置寫入更新后的大尺寸塊數(shù)據(jù)(Step4)。在圖12所示的讀出/修改/寫入處理的例子中,與圖11所示的例子比較, 由于以大尺寸塊單位寫入新數(shù)據(jù)和新冗余數(shù)據(jù),事前沒有必要讀出不足部分 的數(shù)據(jù)。即,這樣的讀出處理,在冗余數(shù)據(jù)生成所必要的舊數(shù)據(jù)和舊冗余數(shù) 據(jù)的讀出處理時一起實(shí)行(Stepl和Step2)。因而,圖12所示的例子與圖11 所示的例子比較,能將讀出/修改/寫入處理需要的從磁盤陣列控制器200向磁 盤裝置的存取次數(shù)減低到4次。其結(jié)果,由于能削減處理從主機(jī)100接收到的1個寫命令所需要的向磁 盤裝置的存取次數(shù),所以,與磁盤裝置具有的存取性能比較,每單位時間能 處理的寫入命令的數(shù)量將增加。因此,能提高磁盤陣列系統(tǒng)110的性能。 (1)效果若使用本實(shí)施方式,能以大尺寸塊單位將新數(shù)據(jù)和新冗余數(shù)據(jù)寫入到磁 盤裝置。另外還能減低為此所必要的向磁盤裝置的存取次數(shù),能削減為處理 1個寫入命令所需要的向磁盤裝置的存取次數(shù)。其結(jié)果能提高磁盤陣列系統(tǒng) 110的寫入性能。本實(shí)施形態(tài)中,是假定為以大尺寸塊單位將新數(shù)據(jù)和新冗余數(shù)據(jù)寫入到 磁盤裝置,但實(shí)際上在應(yīng)寫入的數(shù)據(jù)(新數(shù)據(jù)和保證代碼的組或新冗余數(shù)據(jù)) 的尺寸是大尺寸塊的尺寸以下時,也可以以物理塊的倍數(shù)單位將數(shù)據(jù)寫入到 磁盤裝置。這時,磁盤陣列控制器200從磁盤裝置讀出存儲著被重寫的予定數(shù)據(jù)和 保證代碼(或冗余數(shù)據(jù))的物理塊數(shù)據(jù),用新數(shù)據(jù)和保證代碼(或新冗余數(shù) 據(jù))更新已讀出的物理塊數(shù)據(jù)的一部分,以物理塊的倍數(shù)單位在磁盤裝置寫 入更新后的數(shù)據(jù)。而且,在讀出/修改/寫入處理必要的場合,在用于生成新冗余數(shù)據(jù)的舊數(shù) 據(jù)讀出或舊冗余數(shù)據(jù)讀出時,通過進(jìn)行「從磁盤讀出存儲著被重寫的予定數(shù) 據(jù)和保證代碼(或冗余數(shù)據(jù))的物理塊數(shù)據(jù)」這樣處理,和第2實(shí)施例同樣, 能削減向磁盤裝置的存取次數(shù)。另外,在實(shí)施例2中,作為采用冗余構(gòu)成的磁盤陣列系統(tǒng)110具有的RAID 構(gòu)成的例子,列舉了 RAID5,但也可以是RAID3、或附加2類冗余代碼的 RAID6等其他的構(gòu)成。這點(diǎn)實(shí)施例1也同樣。另外,在實(shí)施例1和實(shí)施例2中,用超高速緩沖存儲器控制器204實(shí)施 對數(shù)據(jù)的保證代碼的附加/消除/檢查和冗余數(shù)據(jù)生成,但也可以在其他部位實(shí) 施,例如,CPU也可以用位于存儲器202上的程序?qū)嵤┻@些處理。再者,在實(shí)施例1和實(shí)施例2中,作為磁盤裝置301 304的一例,列舉 了數(shù)據(jù)塊的尺寸被固定的ATA磁盤裝置,但也可以是其他種類的磁盤裝置。 另外,即使磁盤裝置處理的數(shù)據(jù)塊尺寸可變,若磁盤裝置和磁盤陣列控制器 200處理的數(shù)據(jù)塊的尺寸不能相同時,實(shí)施例1和實(shí)施例也有效。
權(quán)利要求
1.一種存儲系統(tǒng),其特征在于,具有從計(jì)算機(jī)接收讀命令和寫命令的磁盤控制器;和與上述磁盤控制器連接并根據(jù)該磁盤控制器的控制讀出或?qū)懭霐?shù)據(jù)的多個磁盤裝置;在上述磁盤控制器根據(jù)上述讀命令或上述寫命令對上述磁盤裝置實(shí)行數(shù)據(jù)的輸入輸出處理時作為處理數(shù)據(jù)的單位的第一塊的尺寸,和在上述多個磁盤裝置每個實(shí)行從上述磁盤控制器接收到的數(shù)據(jù)的輸入輸出處理時作為處理數(shù)據(jù)的單位的第二塊的尺寸不同,上述磁盤控制器,用有上述第一塊的尺寸和上述第二塊的尺寸的公倍數(shù)尺寸的第三塊單位,對磁盤裝置指示數(shù)據(jù)的寫入。
2. 如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 上述磁盤控制器,具有超高速緩沖存儲器,通過上述磁盤控制器,在根據(jù)從上述計(jì)算機(jī)來的寫命令上述磁盤控制器 接收的寫數(shù)據(jù)中,對每一定尺寸附加寫數(shù)據(jù)的保證代碼,在上述超高速緩沖 存儲器存儲該一定尺寸的寫數(shù)據(jù)和賦予它的保證代碼,在上述第一塊中,包含上述一定尺寸的寫數(shù)據(jù)和保證代碼, 上述第一塊的尺寸的M倍是上述第三塊的尺寸,其中M》2, 上述磁盤控制器,指示該磁盤裝置,將上述超高速緩沖存儲器存儲的M 個第一塊的數(shù)據(jù),集中起來用1個命令寫入到磁盤裝置。
3. 如權(quán)利要求2所述的存儲系統(tǒng),其特征在于,上述存儲系統(tǒng),具有將從上述計(jì)算機(jī)接收到的寫數(shù)據(jù)傳送到上述超高速 緩沖存儲器的超高速緩沖存儲器控制器,上述超高速緩沖存儲器控制器,對每上述一定尺寸給寫數(shù)據(jù)附加保證代碼。
4. 如權(quán)利要求2所述的存儲系統(tǒng),其特征在于, 上述磁盤控制器,有控制數(shù)據(jù)輸入輸出處理的處理器,該處理器對每上述一定尺寸給寫數(shù)據(jù)附加保證代碼。
5. 如權(quán)利要求2所述的存儲系統(tǒng),其特征在于,上述保證代碼,包含有用于檢測上述一定尺寸的數(shù)據(jù)的誤差的誤差檢測 代碼。
6. 如權(quán)利請求2所述的存儲系統(tǒng),其特征在于,在上述保證代碼中,包含用于檢測寫入上述一定尺寸的數(shù)據(jù)的存儲區(qū)域 的地址的錯誤的地址信息。
7. 如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 上述第一塊的尺寸的M倍是上述第三塊的尺寸,其中M^2, 上述磁盤控制器,有超高速緩沖存儲器,根據(jù)從上述計(jì)算機(jī)來的寫命令上述磁盤控制器接收的寫數(shù)據(jù),被存儲在 上述超高速緩沖存儲器,上述磁盤控制器,在上述超高速緩沖存儲器內(nèi)存在應(yīng)寫入到磁盤裝置的 M個或M個以上的上述第一塊的數(shù)據(jù)時,指示該磁盤裝置,對其中M個第 一塊的數(shù)據(jù),集中起來用1個命令將數(shù)據(jù)寫入到該磁盤裝置。
8. 如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 上述第一塊的尺寸的M倍是上述第三塊的尺寸,其中M》2, 上述磁盤控制器有超高速緩沖存儲器,根據(jù)從上述計(jì)算機(jī)來的寫命令上述磁盤控制器接收的寫數(shù)據(jù),被存儲在 上述超高速緩沖存儲器,上述磁盤控制器,在上述超高速緩沖存儲器內(nèi)存在比應(yīng)寫入到磁盤裝置 的M個少的N個第一塊的數(shù)據(jù)時,指示該磁盤裝置,從磁盤裝置讀出不足的 M-N個第一塊的數(shù)據(jù),將在上述超高速緩沖存儲器內(nèi)存儲的N個第一塊的數(shù) 據(jù)和己讀出的M-N個第一塊的數(shù)據(jù),集中起來用1個命令寫入到該磁盤裝置, 其中N》1。
9. 如權(quán)利要求1所述的存儲系統(tǒng),其特征在于, 上述第一塊尺寸的M倍是上述第三塊的尺寸,其中M》2, 上述磁盤控制器有超高速緩沖存儲器,根據(jù)從上述計(jì)算機(jī)來的寫命令上述磁盤控制器接收的寫數(shù)據(jù),被存儲在上述超高速緩沖存儲器,上述磁盤控制器,根據(jù)上述寫命令包含的塊數(shù)的值,判斷上述超高速緩沖存儲器內(nèi)是否存在應(yīng)寫入到磁盤裝置的M個或M個以上的上述第一塊的 數(shù)據(jù),在上述超高速緩沖存儲器內(nèi)存在M個或M個以上的上述第一塊的數(shù)據(jù) 時,指示該磁盤裝置,對其中M個第一塊的數(shù)據(jù),集中起來用l個命令將數(shù) 據(jù)寫入到上述磁盤裝置,在存在比上述超高速緩沖存儲器內(nèi)的M個少的N個第一塊的數(shù)據(jù)時,指 示該磁盤裝置,從磁盤裝置讀出不足的M-N個第一塊的數(shù)據(jù)后,將在上述超 高速緩沖存儲器內(nèi)存儲的N個第一塊的數(shù)據(jù)和已讀出的M-N個第一塊的數(shù) 據(jù),集中起來用1個命令寫入到上述磁盤裝置,其中N^1。
10. 如權(quán)利要求9所述的存儲系統(tǒng),其特征在于,在上述磁盤控制器從上述計(jì)算機(jī)接收到讀命令時,指示從磁盤裝置讀出 與包含讀數(shù)據(jù)的第一塊對應(yīng)的多個第二塊的數(shù)據(jù)。
11. 如權(quán)利要求10所述的存儲系統(tǒng),其特征在于,上述第一塊中,包含有上述磁盤控制器從計(jì)算機(jī)接收到的數(shù)據(jù)和在該數(shù) 據(jù)上每一定尺寸附加的保證代碼,上述磁盤控制器,在從上述計(jì)算機(jī)接收到讀命令時,指示從磁盤裝置讀 出包含讀對象的數(shù)據(jù)的第二塊的數(shù)據(jù)和包含給該讀對象的數(shù)據(jù)附加的保證代 碼的第二塊的數(shù)據(jù)。
12. —種磁盤陣列系統(tǒng),其特征在于, 具有從計(jì)算機(jī)接收寫命令的磁盤控制器;和根據(jù)從該磁盤控制器來的指示實(shí)行數(shù)據(jù)的輸入輸出處理的m+n臺磁盤裝 置,其中m^1、 n>l;m個數(shù)據(jù)塊和從該m個數(shù)據(jù)塊生成的n個冗余數(shù)據(jù)塊各自存儲在上述 m+n臺磁盤裝置的其中之一,在上述磁盤控制器根據(jù)上述寫命令實(shí)行針對上述m+n臺磁盤裝置進(jìn)行的 數(shù)據(jù)寫入處理時用的第一塊的尺寸和上述m+n臺磁盤裝置的每個實(shí)行從上述磁盤控制器接收到的數(shù)據(jù)的寫入處理時用的第二塊的尺寸不同,上述第一塊的尺寸的M倍是上述第一塊的尺寸和上述第二塊的尺寸的公 倍數(shù),其中M^2,上述磁盤控制器,在根據(jù)上述寫命令從上述計(jì)算機(jī)接收到的寫數(shù)據(jù)不滿 M個第一塊的尺寸時,從寫入該寫數(shù)據(jù)的磁盤裝置讀出不足部分的數(shù)據(jù),集 中將合并接收的上述寫數(shù)據(jù)和從該磁盤裝置讀出的數(shù)據(jù)后的M個第一塊的數(shù) 據(jù),寫入到該磁盤裝置,上述磁盤控制器,為了用上述寫數(shù)據(jù)生成冗余數(shù)據(jù),從磁盤裝置讀出包 含由上述寫數(shù)據(jù)更新的舊數(shù)據(jù)的第二塊的數(shù)據(jù),從磁盤裝置讀出包含由生成 的冗余數(shù)據(jù)更新的舊冗余數(shù)據(jù)的第二塊的數(shù)據(jù),用上述寫數(shù)據(jù)、讀出的舊數(shù) 據(jù)和舊冗余數(shù)據(jù)生成冗余數(shù)據(jù),進(jìn)而上述磁盤控制器,從存儲生成的冗余數(shù)據(jù)的磁盤裝置讀出M個不滿 第一塊的尺寸的冗余數(shù)據(jù)后,將合并生成的冗余數(shù)據(jù)和從該磁盤裝置讀出的 冗余數(shù)據(jù)后的M個第一塊的冗余數(shù)據(jù),集中起來寫入到該磁盤裝置。
13. 如權(quán)利要求12所述的磁盤陣列系統(tǒng),其特征在于, 上述第一塊的尺寸的M倍等于上述第二塊的尺寸的N倍,其中M>2、寫入上述M個第一塊的數(shù)據(jù)的磁盤裝置,將該M個第一塊的數(shù)據(jù)作為N 個第二塊的數(shù)據(jù),寫入到該磁盤裝置內(nèi)的存儲區(qū)域,寫入上述M個第一塊的冗余數(shù)據(jù)的磁盤裝置,將該M個第一塊的冗余 數(shù)據(jù),作為N個第二塊的數(shù)據(jù),寫入到該磁盤裝置內(nèi)的存儲區(qū)域。
14. 一種磁盤陣列系統(tǒng),其特征在于, 具有-從計(jì)算機(jī)接收寫命令的磁盤控制器;和根據(jù)從該磁盤控制器來的指示實(shí)行數(shù)據(jù)的輸入輸出處理的m+n臺磁盤裝 置,其中m^1、 n》l;m個數(shù)據(jù)塊和從該m個數(shù)據(jù)塊生成的n個冗余數(shù)據(jù)塊各自存儲在上述 m+n臺磁盤裝置的其中之一,在上述磁盤控制器根據(jù)上述寫命令實(shí)行針對上述m+n臺磁盤裝置進(jìn)行的數(shù)據(jù)寫入處理時用的第一塊的尺寸和上述m+n臺磁盤裝置的每個實(shí)行從上述 磁盤控制器接收到的數(shù)據(jù)的寫入處理時用的第二塊的尺寸不同,上述第一塊的尺寸的M倍等于上述第二塊的尺寸的N倍,其中M>2、上述磁盤控制器,在根據(jù)上述寫命令從上述計(jì)算機(jī)接收到的寫數(shù)據(jù)不滿 M個第一塊的尺寸時,從寫入該寫數(shù)據(jù)的磁盤裝置讀出包含用該寫數(shù)據(jù)更新 的舊數(shù)據(jù)的M個第一塊的數(shù)據(jù)后,用該寫數(shù)據(jù)更新舊數(shù)據(jù),將更新后包含該 寫數(shù)據(jù)的M個第一塊的數(shù)據(jù)寫入到該磁盤裝置,上述磁盤控制器為了用上述寫入數(shù)據(jù)生成冗余數(shù)據(jù),從存儲生成的冗余 數(shù)據(jù)的磁盤裝置,讀出包含用生成的冗余數(shù)據(jù)更新的舊冗余數(shù)據(jù)的M個第一 塊的冗余數(shù)據(jù),用上述寫數(shù)據(jù)、讀出的冗余數(shù)據(jù)包含的上述舊冗余數(shù)據(jù)和上 述舊數(shù)據(jù),生成冗余數(shù)據(jù),用生成的冗余數(shù)據(jù)更新上述舊冗余數(shù)據(jù),將包含 更新后生成的冗余數(shù)據(jù)的M個第一塊的冗余數(shù)據(jù)寫入到該磁盤裝置。<化學(xué)式2><formula>formula see original document page 2</formula>15.如權(quán)利要求14所述的磁盤陣列系統(tǒng),其特征在于,寫入上述M個第一塊的數(shù)據(jù)的磁盤裝置,將該M個第一塊的數(shù)據(jù),作 為N個第二塊的數(shù)據(jù)寫入到該磁盤裝置內(nèi)的存儲區(qū)域,其中M》2、 N》1,寫入上述M個第一塊的冗余數(shù)據(jù)的磁盤裝置,將該M個第一塊的冗余 數(shù)據(jù),作為N個第二塊的冗余數(shù)據(jù)寫入到該磁盤裝置內(nèi)的存儲區(qū)域。
全文摘要
在存儲系統(tǒng)的控制部處理的數(shù)據(jù)單位和記錄媒體處理的數(shù)據(jù)單位不同時,探求用于使其控制部也能進(jìn)行向記錄媒體的數(shù)據(jù)輸入輸出處理的技術(shù)。存儲系統(tǒng),具有從計(jì)算機(jī)接收寫命令的磁盤控制器和根據(jù)磁盤控制器的控制寫入數(shù)據(jù)的多個磁盤裝置。在磁盤控制器根據(jù)寫命令實(shí)行數(shù)據(jù)的輸入輸出處理時作為處理數(shù)據(jù)單位的第一塊的尺寸、和在多個磁盤裝置的各個實(shí)行數(shù)據(jù)輸入輸出處理時作為處理數(shù)據(jù)單位的第二塊的尺寸不同。而且,磁盤控制器用具有第一塊的尺寸和第二塊的尺寸的公倍數(shù)的尺寸的第三塊單位,對磁盤裝置指示數(shù)據(jù)的寫入。
文檔編號G06F12/08GK101231572SQ20081000880
公開日2008年7月30日 申請日期2005年12月14日 優(yōu)先權(quán)日2005年1月17日
發(fā)明者八木澤育哉, 松并直人 申請人:株式會社日立制作所