專利名稱:存儲系統(tǒng)和設(shè)備以及用于控制存儲的方法
技術(shù)領(lǐng)域:
本文中討論的實施例涉及存儲系統(tǒng)、存儲控制設(shè)備以及存儲控制方法。
背景技術(shù):
近年來使用多個存儲裝置如硬盤裝置(HDD)的存儲系統(tǒng)被廣泛使用。在這種存儲系統(tǒng)中,通常以使用廉價冗余磁盤陣列(RAID)技術(shù)將數(shù)據(jù)冗余地存儲在兩個或更多存儲裝置中的方式執(zhí)行記錄控制,這提高了記錄的數(shù)據(jù)的安全性。在數(shù)據(jù)被冗余地存儲的存儲系統(tǒng)中,如果存儲裝置失效,則存儲在失效的存儲裝置中的數(shù)據(jù)被重構(gòu)并存儲在不同的存儲裝置中,如稱為“熱備份”的備份存儲裝置。這種處理通常被稱為“重建處理”。當進行重建 處理時,重新建立數(shù)據(jù)的冗余。對于存儲系統(tǒng),尋求與基于來自主裝置的請求進行的針對存儲裝置的輸入/輸出(I/O)處理(在下文中稱為“主I/O處理”)同時地執(zhí)行該重建處理,而不停止主I/O處理。在此情況下,優(yōu)選地,在盡可能小地降低主I/o處理性能的同時進行重建處理。然而,另一方面,還提出減小重建處理所需時間的要求。鑒于上述問題,已經(jīng)考慮到控制主I/O處理和重建處理之間負荷的平衡。例如,已經(jīng)提出一種存儲系統(tǒng),其中進行中的主I/o處理數(shù)目和進行中的重建處理數(shù)目被管理,然后根據(jù)進行中的主I/o處理的數(shù)目控制重建處理執(zhí)行請求的數(shù)目。還提出另一種存儲系統(tǒng),其中根據(jù)主I/o處理的存在或不存在改變重建處理的每個操作的規(guī)模。另外還提出一種存儲系統(tǒng),其中在預(yù)定的時間段內(nèi)沒有接收到來自主裝置的I/o請求的情況下,并行地執(zhí)行重建處理中的在一地址的寫操作和在另一不同地址的讀操作。日本專利4322068號日本特開2007-94994號公報日本專利4472917號根據(jù)近來存儲系統(tǒng)的存儲區(qū)域容量的增加,重建處理所需的時間趨于增加。因為這個原因,進一步減小重建處理所需的時間是個挑戰(zhàn)。
發(fā)明內(nèi)容
在一個方面,目的是提供一種存儲系統(tǒng)、存儲控制設(shè)備和存儲控制方法,它們都能夠加速重建處理。根據(jù)一個方面,提供一種存儲系統(tǒng),該存儲系統(tǒng)包括包括多個存儲設(shè)備的存儲設(shè)備組和包括訪問處理單元和重建控制單元的存儲控制設(shè)備。該訪問處理單元被配置為訪問被分配給邏輯存儲區(qū)域的存儲設(shè)備,該邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的兩個或更多的存儲設(shè)備的存儲區(qū)域構(gòu)成。在該邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在另一個存儲設(shè)備中的方式控制數(shù)據(jù)記錄。該重建控制單元被配置為使該訪問處理單元執(zhí)行重建處理,其中與記錄在分配給該邏輯存儲區(qū)域的存儲設(shè)備當中的第一存儲設(shè)備中的數(shù)據(jù)相同的數(shù)據(jù)是基于從該第一存儲設(shè)備以外的所分配的存儲設(shè)備讀取的數(shù)據(jù)產(chǎn)生的,并且所產(chǎn)生的數(shù)據(jù)被寫到作為包括在該存儲設(shè)備組中的備份存儲設(shè)備和與所述第一存儲設(shè)備進行替換的第二存儲設(shè)備之一的不同存儲設(shè)備。該重建控制單元將重建處理分割成部分處理,每個部分處理包括數(shù)據(jù)讀處理和數(shù)據(jù)寫處理的組合。在數(shù)據(jù)讀處理中,從通過分割數(shù)據(jù)讀出目標范圍而產(chǎn)生的分割范圍之一讀取數(shù)據(jù)。在數(shù)據(jù)寫處理中,基于從該分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫到所述不同存儲設(shè)備。該重建控制單元指示訪問處理單元執(zhí)行所述部分處理。響應(yīng)于來自重建控制單元的指示,訪問處理單元并行地執(zhí)行所述部分處理。
圖I示出根據(jù)第一實施例的存儲系統(tǒng)的配置例子;圖2示出根據(jù)第二實施例的存儲系統(tǒng)的總配置的例子;圖3示出控制器模塊的硬件配置的例子;
圖4是示出控制器模塊的處理功能的配置例子的框圖;圖5示出在執(zhí)行重建相關(guān)處理時產(chǎn)生的控制塊的配置例子;圖6是示出基于控制塊多重執(zhí)行部分處理的處理例子的序列圖;圖7示出執(zhí)行重建相關(guān)處理時參考的主信息的例子;圖8示出登記在RAID管理表中的信息的例子;圖9示出登記在多樣性設(shè)置表中的信息的例子;圖10示出正在對兩個RLU執(zhí)行重建相關(guān)處理的情況;圖11是示出在請求執(zhí)行部分處理時由恢復(fù)控制單元進行的程序的例子的第一流程圖;圖12是示出在請求執(zhí)行部分處理時由恢復(fù)控制單元進行的程序的例子的第二流程圖;圖13是示出在請求執(zhí)行部分處理時由恢復(fù)控制單元進行的程序的例子的第三流程圖;以及圖14是示出在接收來自RAID控制單元的響應(yīng)時由恢復(fù)控制單元進行的程序的例子的流程圖。
具體實施例方式下面將參照附圖描述幾個實施例,其中相同的附圖標記表示相同的要素。(a)第一實施例圖I示出根據(jù)第一實施例的存儲系統(tǒng)的配置例子。存儲系統(tǒng)I包括存儲控制裝置10和多個存儲裝置。包括在存儲系統(tǒng)I中的存儲裝置是非易失性存儲裝置,如HDD和固態(tài)裝置(SSD)。圖I示出存儲裝置21至25,作為包括在存儲系統(tǒng)I中的存儲裝置的例子。響應(yīng)于來自主裝置(未示出)的請求,存儲控制裝置10對訪問存儲系統(tǒng)I的存儲裝置進行控制。另外,存儲控制裝置10基于邏輯存儲區(qū)域控制對存儲裝置的訪問處理,其中每個邏輯存儲區(qū)域由多個存儲裝置的存儲區(qū)域構(gòu)成。以將數(shù)據(jù)冗余地存儲在不同的存儲裝置中的方式控制對每個邏輯存儲區(qū)域的數(shù)據(jù)記錄。在下文中將這種邏輯存儲區(qū)域稱為“RLU(RAID logical unit, RAID邏輯單元)”。根據(jù)圖I的例子,各個存儲裝置21至24的存儲區(qū)域?qū)儆趩蝹€RLU, “RLU#1”。
存儲控制裝置10包括重建控制單元11和訪問處理單元12。由重建控制單元11和訪問處理單元12進行的各個處理例如由執(zhí)行預(yù)定程序的存儲控制裝置10的中央處理單元(CPU)來實施。重建控制單元11使訪問處理單元12執(zhí)行重建處理。重建處理是這樣的處理與記錄在組成單個RLU的一個存儲裝置(稱為“第一存儲裝置”)中的數(shù)據(jù)相同的數(shù)據(jù)是基于從組成該RLU的存儲裝置當中第一存儲裝置以外的存儲裝置中讀取的數(shù)據(jù)產(chǎn)生的,然后將所產(chǎn)生的數(shù)據(jù)寫到包括在存儲系統(tǒng)I中的備份存儲裝置,或者寫到與第一存儲設(shè)備進行替換的第二存儲裝置。注意,例如,如在RAID 4、5和6中以使用奇偶提供數(shù)據(jù)冗余的方式控制RLU的情況下,基于從組成該RLU的第一存儲裝置以外的存儲裝置讀取的數(shù)據(jù),通過計算產(chǎn)生要被寫到寫目的地的數(shù)據(jù)。然而,如在RAID I中使用例如鏡像控制該RLU的情況下,將從第一存儲裝置以外的存儲裝置讀取的數(shù)據(jù)直接寫到寫目的地。 訪問處理單元12響應(yīng)于來自重建控制單元11的請求執(zhí)行上述重建處理。由訪問處理單元12執(zhí)行的重建處理被分割成多個部分處理,每個部分處理包括如下兩個操作的 組合從通過將用于數(shù)據(jù)讀出的目標范圍分割成固定尺寸的區(qū)間而產(chǎn)生的分割范圍讀取數(shù)據(jù)的操作;和基于從該分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫入另一個存儲裝置的操作。在此,當使訪問處理單元12對一個RLU執(zhí)行重建處理時,重建控制單元11指示訪問處理單元12執(zhí)行多個部分處理,從而使訪問處理單元12并行地執(zhí)行所指示的多個部分處理。因此,多個部分處理被并行地執(zhí)行,這加速了重建處理。接下來,作為例子描述圖I的對RLU#1的重建處理程序。此時假定,作為例子,以如在RAID 4、5和6中使用奇偶提供數(shù)據(jù)冗余的方式控制RLU#1。另外,在以下描述中,假定存儲裝置24已經(jīng)失效,并且記錄在失效的存儲裝置24中的數(shù)據(jù)要被存儲在備份存儲裝置25中。重建控制單元11指示訪問處理單元12執(zhí)行部分處理,從而使訪問處理單元12執(zhí)行重建處理。關(guān)于通過將重建處理的數(shù)據(jù)讀出目標范圍分割成固定尺寸的區(qū)間而產(chǎn)生的每個分割范圍執(zhí)行部分處理。在此根據(jù)圖I的例子描述術(shù)語“數(shù)據(jù)讀出目標范圍”和“分割范圍”?!皵?shù)據(jù)讀出目標范圍”是存儲裝置21至23的存儲區(qū)域。如圖I中所示,存儲裝置24的存儲區(qū)域被分割成固定尺寸的區(qū)間,從而產(chǎn)生區(qū)域A4_1、A4_2……。每個“分割范圍”由組成同一 RLU的其余存儲裝置(即,存儲裝置21至23)的、與存儲裝置24的所產(chǎn)生的區(qū)域A4_1、A4_2……中的一個相對應(yīng)的存儲區(qū)域構(gòu)成。例如,存儲裝置21至23的區(qū)域Al_l、A2_l和A3_l各自對應(yīng)于存儲裝置24的區(qū)域A4_l,并且構(gòu)成一個分割范圍。注意,在使用RAID I控制RLU#1的情況下,數(shù)據(jù)讀出目標范圍是存儲裝置21至23中的一個。在此情況下,與區(qū)域A4_l相對應(yīng)的分割范圍是區(qū)域A1_1、A2_1和A3_l中的一個。圖I中所示的對RLU#1的重建處理的一個部分處理包括從一個分割范圍(例如,區(qū)域A1_1、A2_1和A3_l)讀取數(shù)據(jù)的操作和將基于所讀取的數(shù)據(jù)產(chǎn)生的數(shù)據(jù)寫到存儲裝置25的對應(yīng)區(qū)域(例如,區(qū)域A5_l)的操作的組合。訪問處理單元12基于這種部分處理執(zhí)行重建處理。通過指示訪問處理單元12執(zhí)行多個部分處理,重建控制單元11使訪問處理單元12并行地執(zhí)行所指示的多個部分處理。根據(jù)圖I的例子,重建控制單元11指示訪問處理單元12執(zhí)行包括從區(qū)域Al_l、A2_l和A3_l讀出數(shù)據(jù)的部分處理Pl和包括從區(qū)域Al_2、A2_2和A3_2讀出數(shù)據(jù)的部分處理P2。響應(yīng)于該指示,訪問處理單元12并行地執(zhí)行所指示的部分處理Pl和P2。因此,多個部分處理被訪問處理單元12并行地執(zhí)行,這導(dǎo)致重建處理加速。例如,在圖I中,部分處理Pl中將數(shù)據(jù)寫入?yún)^(qū)域A5_l和部分處理P2中從區(qū)域Al_2、A2_2和A3_2讀取數(shù)據(jù)可被同時執(zhí)行。這樣,訪問處理單元12可以在完成部分處理Pl之前就開始執(zhí)行部分處理P2,這導(dǎo)致整個重建處理所需的時間減少。如上所述,每個部分處理包括從分割范圍讀取數(shù)據(jù)的處理和將基于所讀取的數(shù)據(jù)產(chǎn)生的數(shù)據(jù)寫到不同存儲裝置的處理。因此,在一個部分處理中,例如,同一個地址值可被用作用于識別讀取源的邏輯塊地址(Logical Block Address,LBA)和用于識別寫目的地的LBA。因此,可以簡化訪問處理單元12的步驟以并行地執(zhí)行部分處理,這又提高了重建處理的效率。注意,通過指示訪問處理單元12關(guān)于多個邏輯存儲區(qū)域中的每一個執(zhí)行一個或多個部分處理,重建控制單元11能夠使訪問處理單元12并行地執(zhí)行各邏輯存儲區(qū)域的重建處理。在此情況下,可以加速多個邏輯存儲區(qū)域的整個重建處理。另外,通過調(diào)節(jié)重建控制單元11指示訪問處理單元12執(zhí)行的部分處理的數(shù)目,重建控制單元11能夠增加或減小由于該重建處理而施加于存儲控制裝置10的處理負荷。此外,在并行地執(zhí)行針對各邏輯存儲區(qū)域的重建處理的情況下,可以針對每個邏輯存儲區(qū)域改變重建控制單元11指示訪問處理單元12執(zhí)行的部分處理的數(shù)目。這樣,可以調(diào)節(jié)各邏輯存儲區(qū)域的重建處理的負荷平 衡。接下來描述第二實施例,第二實施例涉及包括具有調(diào)節(jié)重建處理負荷的功能的存儲控制裝置的存儲系統(tǒng)的例子。(b)第二實施例圖2示出根據(jù)第二實施例的存儲系統(tǒng)的總配置的例子。圖2的存儲系統(tǒng)100包括控制器外殼(controller enclosure, CE) 200 和驅(qū)動外殼(drive enclosure, DE) 300。另夕卜,CE 200連接到主裝置400。CE 200包括控制器模塊(controller module,CM) 201和202。CM 201和202中的每一個響應(yīng)于來自主裝置400的輸入/輸出(1/0)請求從DE 300中的存儲裝置讀取數(shù)據(jù)并且將數(shù)據(jù)寫入其中。CM 201和202使用RAID管理由DE 300的存儲裝置提供的物理存儲區(qū)域并控制對該物理存儲區(qū)域的訪問。注意,CM 201和202可以例如經(jīng)由路由器相互連接。另外,在CE 200中也可以提供一個CM或三個或更多的CM。然而,應(yīng)當指出,提供多個CM會增加DE 300的訪問控制系統(tǒng)的冗余,這會提高訪問控制處理的可靠性。DE 300包括多個存儲裝置,作為CM 201和202的訪問控制對象。本實施例的DE300是包括HDD作為存儲裝置的盤陣列設(shè)備。注意,其它類型的非易失性存儲裝置如SSD也可以用作DE 300的存儲裝置。另外,多個DE 300可以連接到CE 200。響應(yīng)于用戶操作,主裝置400請求CM201和202以訪問DE 300的HDD。例如,響應(yīng)于用戶操作,主裝置400能夠經(jīng)由CM 201和202中的一個從DE 300的HDD讀取數(shù)據(jù)并且將數(shù)據(jù)寫到DE 300的HDD。注意,CE 200的CM 201和202 二者具有類似的配置并且能夠執(zhí)行類似的處理。因此,下面只給出CM 201的說明,并且省略對CM 202的說明。圖3示出CM的硬件配置的例子。對于CM 201,CPU 211對整個CM 201進行整體控制。隨機訪問存儲器(RAM)212和多個外圍設(shè)備經(jīng)由總線217連接到CPU 211。RAM 212被用作CM 201的主存儲裝置并且臨時存儲至少一部分要由CPU 211執(zhí)行的程序和由該程序?qū)嵤┑奶幚硭璧母鞣N數(shù)據(jù)。諸如SSD 213等的各種外圍設(shè)備、輸入接口(I/F)214、主I/F215和盤I/F 216連接到CPU 211。SSD 213用作CM 201的第二存儲裝置,并且存儲由CPU211執(zhí)行的程序和該程序的實施所需的各種數(shù)據(jù)。注意,可以使用其它類型的非易失性存儲裝置如HDD作為第二存儲裝置。裝配有操作鍵等的輸入裝置214a連接到輸入I/F 214。輸AI/F 214根據(jù)對輸入裝置214a的操作輸入向CPU 211輸出信號。主I/F 215執(zhí)行用于在主裝置400和CM 201之間發(fā)送和接收數(shù)據(jù)的接口處理。主I/F 215和主裝置400例如根據(jù)光纖信道(Fibre Channel,F(xiàn)C)標準相互通信。盤I/F 216執(zhí)行用于在DE 300和CM 201之間發(fā)送和接收數(shù)據(jù)的接口處理。盤I/F 216和DE 300例如根據(jù)SAS (Serial AttachedSCSI, (small computer system interface,小型計算機系統(tǒng)接口),串行附接SCSI)標準相互通信。圖4是示出CM的處理功能的配置例子的框圖。CM 201包括RAID控制單元221、主I/o控制單元222、恢復(fù)控制單元223、配置控制單元224、主I/O監(jiān)控單元225、緩沖監(jiān)控單元226和錯誤監(jiān)控單元227。例如通過CM 201的CPU 211執(zhí)行預(yù)定的程序來實現(xiàn)這些單元的處理。RAID控制單元221響應(yīng)于來自主I/O控制單元222或來自恢復(fù)控制單元223的請求訪問DE 300的HDD。當對DE 300的HDD進行訪問時,RAID控制單元221基于針對 訪問目的地區(qū)域設(shè)置的涉及RAID的設(shè)置信息進行訪問控制。這種設(shè)置信息登記在SSD 213中記錄的RAID管理表(稍后描述)中。在該RAID管理表中,關(guān)于每個RLU記錄有包括RAID等級和構(gòu)成相應(yīng)的RLU的HDD的數(shù)目的設(shè)置信息。注意,RLU是通過組合安裝在DE 300中的多個HDD的物理存儲區(qū)域配置而成的邏輯存儲區(qū)域,并且也可以稱為RAID組。例如,當從主I/O控制單元222接收到用于將數(shù)據(jù)寫到RLU的數(shù)據(jù)寫請求時,RAID控制單元221基于設(shè)置在RAID管理表241中的與寫目的地RLU有關(guān)的信息,以冗余地存儲該數(shù)據(jù)的方式進行寫處理。此時假定,例如,關(guān)于具有六個盤(即,盤的數(shù)目為“6”)的RLU進行寫操作,并且由RAID 5控制該寫操作。RAID控制單元221分割從主I/O控制單元222接收到的數(shù)據(jù),并且記錄五個連續(xù)的分割數(shù)據(jù)和基于這五個分割數(shù)據(jù)的奇偶,使得它們被分布到這六個HDD中相同條帶編號的區(qū)域中。主I/O控制單元222從主裝置400接收針對RLU的I/O請求(讀請求或?qū)懻埱?。主I/O控制單元222請求RAID控制單元221根據(jù)接收到的I/O請求執(zhí)行I/O處理。注意,在以下描述中,將RAID控制單元221響應(yīng)于來自主裝置400的請求進行的I/O處理稱為“主I/O處理”。例如,在接收到來自主裝置400的讀請求的情況下,主I/O控制單元222將讀取源的RLU和地址通知給RAID控制單元221,并且向RAID控制單元221發(fā)出數(shù)據(jù)讀請求。主I/O控制單元222將由RAID控制單元221讀取的數(shù)據(jù)發(fā)送給主裝置400。另一方面,主I/O控制單元222將從主裝置400接收到的寫數(shù)據(jù)和寫目的地的RLU和地址輸出到RAID控制單元221,并且向RAID控制單元221進行數(shù)據(jù)寫請求。當RAID控制單元221正常執(zhí)行寫操作時,主I/O控制單元222向主裝置400發(fā)送正常應(yīng)答?;謴?fù)控制單元223請求RAID控制單元221執(zhí)行重建處理、冗余復(fù)制處理和復(fù)制回(copy back)處理,并且管理每個處理的進程。當屬于RLU的HHD中的一個失效時,執(zhí)行重建處理。在重建處理中,從屬于同一 RLU的未失效的HDD中讀取數(shù)據(jù),然后基于所讀取的數(shù)據(jù)重構(gòu)失效的HDD的數(shù)據(jù),并且將重構(gòu)的數(shù)據(jù)寫到備份HDD (熱備份)或者寫到替換失效的HDD的HDD。當檢測到屬于RLU的HDD中的一個的故障跡象時,執(zhí)行冗余復(fù)制處理。在冗余復(fù)制處理中,進行與重建處理中的數(shù)據(jù)讀操作、重建操作和寫操作類似的處理,而不分離出已經(jīng)從其檢測到故障跡象的HDD。當用新的HDD替換失效的HDD時,執(zhí)行復(fù)制回處理。在復(fù)制回處理中,在重建處理或冗余復(fù)制處理中存儲在熱備份中的數(shù)據(jù)被寫回到新替換的HDD。在下文中,一般將這些重建處理、冗余復(fù)制處理和復(fù)制回處理稱為“重建相關(guān)處理”。當使RAID控制單元221對RLU執(zhí)行重建相關(guān)處理時,恢復(fù)控制單元223將該重建相關(guān)處理所針對的存儲區(qū)域分割成固定尺寸的多個區(qū)段。然后,恢復(fù)控制單元223通過順序請求RAID控制單元221執(zhí)行部分處理來使RAID控制單元221執(zhí)行用于RLU的重建相關(guān)處理,其中每個部分處理包括從給定尺寸的一個區(qū)段讀取數(shù)據(jù)的操作和基于所讀取的數(shù)據(jù)的寫操作的組合。例如,在由RAID 4、5、6之一控制的RLU的情況下,通過關(guān)于具有固定條帶數(shù)的每個區(qū)域執(zhí)行重建相關(guān)處理來實現(xiàn)部分處理。另一方面,在RAID I控制的RLU的情況下,通過關(guān)于對其施加鏡像的每個存儲區(qū)域中的每個固定尺寸的區(qū)域執(zhí)行重建相關(guān)處理來實現(xiàn)部分處理。注意,在請求重建相關(guān)處理當中的重建處理或冗余復(fù)制處理的情況下,如果需要的話,向RAID控制單元221請求的每個部分處理包括數(shù)據(jù)讀操作和數(shù)據(jù)寫操作之間的數(shù)據(jù)重構(gòu)操作。如上所述,在使RAID控制單元221對一個RLU執(zhí)行重建相關(guān)處理的情況下,在同一時間段期間,恢復(fù)控制單元223進行多個請求,每個請求請求RAID控制單元221對固定尺寸的區(qū)域執(zhí)行部分處理。這樣,可以使RAID控制單元221并行地執(zhí)行所請求的多個部分處理。這樣,部分處理被并行地執(zhí)行,這減小了重建相關(guān)處理所需的時間。另外,恢復(fù)控制單元223能夠使RAID控制單元221并行地執(zhí)行針對多個RLU的重建相關(guān)處理。在此情況下,由RAID控制單元221并行地執(zhí)行針對一個RLU的一個或更多的部分處理和針對另一個RLU的一個或更多的 部分處理。此外,恢復(fù)控制單元223能夠根據(jù)針對RLU設(shè)置的優(yōu)先級、主I/O處理的執(zhí)行情況和CM201中存儲器資源的使用改變針對每個RLU的部分處理的多重數(shù)(multiplicity)。這樣,可以加速重建相關(guān)處理,同時盡可能多地減小對主I/O處理性能的影響。配置控制單元224使用RAID管理表241管理每個RLU的配置。例如,在HDD的故障被錯誤監(jiān)控單元227檢測到的情況下,配置控制單元224更新RAID管理表241,從而使失效的HDD從該失效的HDD此時所屬的RLU分離出去,并且還將熱備份并入到該RLU中。另夕卜,在檢測到HDD失效的情況下,配置控制單元224請求恢復(fù)控制單元223執(zhí)行重建處理。主I/O監(jiān)控單元225監(jiān)控進程中的一個或多個主I/O處理(即,其處理未被完成的主I/O處理)。例如,主I/O控制單元222登記命令隊列中由主裝置400發(fā)出的I/O請求命令,并且當I/O處理被完成時從該命令隊列中刪除對應(yīng)的I/O請求命令。主I/O監(jiān)控單元225通過監(jiān)控命令隊列來確定進程中的主I/O處理。注意,該命令隊列例如存儲在CM 201的RAM 212中。主I/O監(jiān)控單元225能夠例如將關(guān)于每個被訪問的RLU的主I/O處理是否在進程中通知給恢復(fù)控制單元223。緩沖監(jiān)控單元226監(jiān)控緩沖區(qū)域231的使用。緩沖區(qū)域231是至少由RAID控制單元221、主I/O控制單元222和恢復(fù)控制單元223用作緩沖器的存儲區(qū)域,并且被設(shè)置在RAM 212中。緩沖監(jiān)控單元226例如能夠?qū)⒕彌_區(qū)域231的使用通知給恢復(fù)控制單元223。錯誤監(jiān)控單元227監(jiān)控DE 300中的HDD的錯誤發(fā)生狀態(tài)。例如,錯誤監(jiān)控單元227關(guān)于每個訪問目的地HDD將RAID控制單元221對HDD進行訪問時發(fā)生的錯誤的數(shù)目記錄在CM 201的SSD 213中。另外,錯誤監(jiān)控單元227可以通過定期請求RAID控制單元221對DE 300的HDD進行訪問來檢測錯誤的發(fā)生,以確定是否存在故障。當HDD中發(fā)生的錯誤的數(shù)目超過預(yù)定的閾值Thl時,錯誤監(jiān)控單元227向配置控制單元224通知已經(jīng)檢測到HDD的故障發(fā)生的跡象。在此情況下,配置控制單元224請求恢復(fù)控制單元223對該HDD所屬的RLU執(zhí)行冗余復(fù)制處理。另外,當在HDD中發(fā)生的錯誤數(shù)目超過大于閾值Thl的閾值Th2時,錯誤監(jiān)控單元227確定在該HDD中已經(jīng)發(fā)生故障,然后將該故障發(fā)生通知給配置控制單元224。在此情況下,配置控制單元224請求恢復(fù)控制單元223對該HDD所屬的RLU執(zhí)行冗余復(fù)制處理。被稱為“控制塊”的控制數(shù)據(jù)被用于例如在主I/O控制單元222和RAID控制單元221之間、在配置控制單元224和恢復(fù)控制單元223之間以及在恢復(fù)控制單元223和RAID控制單元221之間進行處理請求和響應(yīng)。圖4的控制塊池232是設(shè)置在RAM 212中的存儲區(qū)域,用于登記控制塊。每個控制塊存儲用于識別要被請求的處理的處理名稱、用于識別處理對象的信息等。例如,在請求RAID控制單元221執(zhí)行讀操作的情況下,主I/O控制單元222確??刂茐K并且將表示讀操作的處理名稱、用于識別讀取源的地址等登記在所確保的控制塊中。主I/O控制單元222將用于識別所確保的控制塊的ID通知給RAID控制單元221,從而請求由該控制塊指示的處理。圖5示出在執(zhí)行重建相關(guān)處理時生成的控制塊的配置例子。由配置控制單元224產(chǎn)生的用于請求恢復(fù)控制單元223執(zhí)行重建相關(guān)處理的控制塊包括ID、RLU編號、處理名 稱、讀取源盤編號和寫目的地盤編號。該ID是用于識別該控制塊的編號。該RLU編號表示處理對象RLU。該處理名稱表示要被請求的處理的類型。該讀取源盤編號表示要被請求的處理中的讀取源HDD。該寫目的地盤編號表示要被請求的處理中的寫目的地HDD。配置控制單元224針對在控制塊池232中確保的控制塊設(shè)置ID、RLU編號、處理名稱、讀取源盤編號和寫目的地盤編號。然后,配置控制單元224將該ID通知給恢復(fù)控制單元223,并且請求執(zhí)行由該處理名稱表示的處理。注意,該ID可以是控制塊池232中所述控制塊的地址。響應(yīng)于該請求,恢復(fù)控制單元223執(zhí)行與該ID表示的控制塊相對應(yīng)的處理。當已經(jīng)完成與該控制塊相對應(yīng)的處理時,恢復(fù)控制單元223將該控制塊的ID以及該處理的完成通知給配置控制單元224。另一方面,由恢復(fù)控制單元223產(chǎn)生的用于請求RAID控制單元221執(zhí)行重建相關(guān)處理的部分處理的控制塊除了包括上述ID、RLU編號、處理名稱、讀取源盤編號以及寫目的地盤編號以外,還包括表示部分處理所針對的區(qū)域的地址(邏輯塊地址(logical blockaddress), LBA)。注意,在圖5的例子中,將對象區(qū)域的最前的LBA和最后的LBA設(shè)置為該地址。然而,作為另一個例子,可以改為設(shè)置最前的LBA和表示該對象區(qū)域的大小的塊數(shù)。恢復(fù)控制單元223將其中設(shè)置了該ID、RLU編號、處理名稱、讀取源盤編號、寫目的地盤編號和地址的控制塊的ID通知給RAID控制單元221,并且請求執(zhí)行由該處理名稱表示的處理。響應(yīng)于該請求,RAID控制單元221執(zhí)行與該ID表示的控制塊相對應(yīng)的處理。當已經(jīng)完成與該控制塊相對應(yīng)的處理時,RAID控制單元221將該控制塊的ID以及該處理的完成通知給恢復(fù)控制單元223。注意,恢復(fù)控制單元223向RAID控制單元221提供兩種類型的控制塊由恢復(fù)控制單元223本身獲取的控制塊;以及由恢復(fù)控制單元223將地址添加到由配置控制單元224獲取的控制塊而形成的控制塊。在后一情況下,將同一 ID用于由配置控制單元224獲取、然后提供給恢復(fù)控制單元223的控制塊以及由恢復(fù)控制單元223向RAID控制單元221提供的控制塊。圖6是示出基于控制塊多重執(zhí)行部分處理的處理例子的序列圖。根據(jù)圖6的例子,對一個RLU執(zhí)行重建處理。另外,針對重建對象RLU,基于RAID 4、5等使用奇偶冗余地存儲數(shù)據(jù)。配置控制單元224確保控制塊BLl并且將控制塊BLl通知給恢復(fù)控制單元223,從而請求恢復(fù)控制單元223對預(yù)定的RLU執(zhí)行重建處理(在時間T11)。響應(yīng)于該請求,恢復(fù)控制單元223根據(jù)下面描述的程序確定該RLU所允許的部分處理的多重數(shù)。多重數(shù)在此表示允許對該RLU并行地執(zhí)行針對該RLU的部分處理的數(shù)目。假定判斷出針對該RLU允許多重數(shù)“4”?;謴?fù)控制單元223將四個控制塊通知給RAID控制單元221,從而請求RAID控制單元221基于各控制塊執(zhí)行部分處理。根據(jù)圖6的例子,首先,恢復(fù)控制單元223新獲取三個控制塊BL2、BL3和BL4 (分別在時間T12、T13和Τ14)。然后,恢復(fù)控制單元223關(guān)于控制塊BL2、BL3和BL4以整個對象區(qū)域的最前區(qū)域開始的順序設(shè)置表示該重建處理所針對的各區(qū)域的地址。例如,將地址“0X0000至0X03fT”設(shè)置在塊BL2中,將地址“OX0000至0X03ff”之后的地址“0X0400至0X07ff”設(shè)置在控制塊BL3中,并且將地址“OX0400至0X07ff”之后的地址“0X0800至OXObff”設(shè)置在控制塊BL4中。注意,表達式“OX ‘XXXX’”表示‘XXXX’是以十六進制記數(shù)法表示的。恢復(fù)控制單元223將其中已經(jīng)設(shè)置了地址的控制塊BL2、BL3和BL4通知給RAID 控制單元221,并且請求RAID控制單元221基于各控制塊BL2、BL3和BL4執(zhí)行部分處理(分別在時間T15、T16和Τ17)。此外,恢復(fù)控制單元223將表示該重建處理所針對的后續(xù)區(qū)域的地址“OXOcOO至OXOfff ”設(shè)置在作為由配置控制單元224通知的控制塊BLl的第四控制塊。隨后,恢復(fù)控制單元223將其中已經(jīng)設(shè)置了地址的控制塊BLl通知給RAID控制單元221,并且請求RAID控制單元221基于控制塊BLl執(zhí)行部分處理(在時間T18)。RAID控制單元221并行地執(zhí)行基于由恢復(fù)控制單元223通知的各控制塊BL2、BL3、BL4和BLl的部分處理。在每個部分處理中,順序進行如下三個操作(I)數(shù)據(jù)讀操作,從屬于該RLU的HDD當中的未失效的HDD中由地址表示的區(qū)域讀取數(shù)據(jù);(2)數(shù)據(jù)重新配置操作,通過基于所讀取的數(shù)據(jù)的計算,重構(gòu)存儲在與失效的HDD的相同地址相對應(yīng)的區(qū)域中的數(shù)據(jù);以及(3)數(shù)據(jù)寫操作,將重構(gòu)的數(shù)據(jù)寫到與熱備份中的相同地址相對應(yīng)的區(qū)域。例如,由于(I)的讀取源HDD和(3)的寫目的地HDD是不同的,所以可以在基于一個控制塊執(zhí)行(3)的寫操作的同時,基于另一個控制塊執(zhí)行讀操作(I)。另外,當基于控制塊的讀操作(I)被完成時,可以基于相同的控制塊開始重構(gòu)操作(2),以及基于另一個控制塊繼續(xù)開始在下一個區(qū)域的讀操作(I )。這樣,通過將多個控制塊通知給RAID控制單元221,從而使RAID控制單元221并行地執(zhí)行基于各控制塊的部分處理,可以減小針對一個RLU的整個重建相關(guān)處理所需的處理時間。在一個部分處理中,(I)的讀取源地址與(3)的寫目的地地址相同。因此,讀取源和寫目的地相同的操作包括在單個部分處理中,并且請求RAID控制單元221并行地執(zhí)行這種部分處理。這簡化了恢復(fù)控制單元223請求部分處理的處理程序,并且還簡化了接收該請求之后RAID控制單元221的處理。例如,在針對該RLU設(shè)置的RAID等級是RAID I的情況下,在讀操作(I)中,從屬于該RLU的一個未失效的HDD中讀取數(shù)據(jù);跳過重構(gòu)操作(2);并且在寫操作(3)中,將從單個HDD中讀取的數(shù)據(jù)直接寫到熱備份。在請求復(fù)制回處理的情況下,在讀操作(I)中,從熱備份中由地址表示的區(qū)域讀取數(shù)據(jù);跳過重構(gòu)操作(2);并且在寫操作(3)中,將從該熱備份讀取的數(shù)據(jù)直接寫到替換的HDD中對應(yīng)于同一地址的區(qū)域。如上所述,響應(yīng)于來自配置控制單元224的請求執(zhí)行重建相關(guān)處理,恢復(fù)控制單元223確定在該時間點適當?shù)腞LU所允許的多重數(shù),并且將與所確定的多重數(shù)相同的控制塊數(shù)目通知給RAID控制單元221。這允許RAID控制單元221以請求執(zhí)行重建相關(guān)處理時確定的適當多重數(shù)并行地執(zhí)行部分處理。隨后,當完成基于控制塊的一個部分處理時,RAID控制單元221將該控制塊的ID通知給恢復(fù)控制單元223,由此將該部分處理的完成通知給恢復(fù)控制單元223。例如,在圖6中,當完成基于控制塊BL2的部分處理時,RAID控制單元221將控制塊BL2通知給恢復(fù)控制單元223,由此通知該部分處理的完成(在時間T19)。響應(yīng)于該處理完成通知,恢復(fù)控制單元223根據(jù)下面描述的程序確定在該時間點對該RLU所允許的多重數(shù)。假定此時多重數(shù)是4。根據(jù)圖6的例子,恢復(fù)控制單元223將控制塊BL2中設(shè)置的地址改寫為地址“O X 1000至O X 13ff ”,該地址表示還沒有向RAID控制單元221請求對其執(zhí)行部分處理的處理對象區(qū)域的最前區(qū)域。隨后,恢復(fù)控制單元223將具有改寫后的地址的控制塊BL2通知給RAID控制單元221,并且請求RAID控制單元221基于控制塊BL2執(zhí)行部分處理(在時間T21)。響應(yīng)于該請求,RAID控制單元221開始基于控制塊BL2執(zhí)行部分處理。然而,我們假定,當接收到關(guān)于控制塊BL2的處理完成通知時(時間T19),該RLU所允許的多重數(shù)是“3”。恢復(fù)控制單元223確定不可能執(zhí)行另一個部分處理,并因此釋放控制塊BL2。這樣,RAID控制單元 221并行地執(zhí)行的針對該RLU的部分處理的數(shù)目減小到“3”。另一方面,例如假定當接收到關(guān)于控制塊BLl的處理完成通知時(例如,時間T22)該RLU所允許的多重數(shù)是“5”?;謴?fù)控制單元223獲取新的控制塊(“控制塊5”)。然后,恢復(fù)控制單元223將表示下一個處理對象區(qū)域的地址“OX 1000至OX 13fT”設(shè)置在新獲取的控制塊5中。隨后,恢復(fù)控制單元223將控制塊5通知給RAID控制單元221,并且請求RAID控制單元221基于控制塊5執(zhí)行部分處理。另外,恢復(fù)控制單元223將原始控制塊BL2中設(shè)置的地址改寫為地址“OX 1400至OX 17ff”,該地址表示下一個處理對象區(qū)域。最后,恢復(fù)控制單元223將具有改寫后的地址的控制塊BL2通知給RAID控制單元221,并且請求RAID控制單元221基于控制塊2執(zhí)行部分處理。這樣,RAID控制單元221并行地執(zhí)行的針對該RLU的部分處理的數(shù)目增加到“5”。恢復(fù)控制單元223以上面描述的方式確定每次接收到來自RAID控制單元221的響應(yīng)時針對RLU所允許的多重數(shù)。然后,根據(jù)多重數(shù)確定的結(jié)果,恢復(fù)控制單元223調(diào)節(jié)由RAID控制單元221并行執(zhí)行的部分處理的數(shù)目。因此,每次完成由RAID控制單元221執(zhí)行的部分處理時,由RAID控制單元221并行執(zhí)行的部分處理的數(shù)目被優(yōu)化。注意,如圖6中所示,由RAID控制單元221執(zhí)行的部分處理不總是以恢復(fù)控制單元223進行請求的順序完成的。例如,在圖6中,當基于控制塊BL4的部分處理被完成時(時間T20),基于控制塊BL3的部分處理還沒有被完成。在此情況下,如果基于下一個控制塊的部分處理被延遲執(zhí)行直到基于控制塊BL3的部分處理被完成,則重建相關(guān)處理所需的時間增加了該等待時間。因此,當接收到來自RAID控制單元221的應(yīng)答時,恢復(fù)控制單元223不等待其它部分處理完成,并且確定該時間點所允許的多重數(shù)。然后,如果可以使另一個部分處理被執(zhí)行,則恢復(fù)控制單元223將控制塊通知給RAID控制單元221,從而使RAID控制單元221開始對下一個區(qū)域的部分處理。在圖6的例子中,當接收到基于控制塊BL4的部分處理的完成通知時(時間T20),恢復(fù)控制單元223不等待基于控制塊BL3的部分處理完成,并且確定該時間點所允許的多重數(shù)。然后,例如在多重數(shù)是“4”的情況下,恢復(fù)控制單元223將控制塊BL4的地址改寫為地址“OX 1400至OX 17ff ”,該地址表示下一個區(qū)域。隨后,恢復(fù)控制單元223將具有改寫后的地址的控制塊BL4通知給RAID控制單元221,并且請求RAID控制單元221基于控制塊BL4執(zhí)行部分處理。根據(jù)上述程序,可以加速對處理對象區(qū)域的重建相關(guān)處理,而不會受到來自比其它部分處理需要更長處理時間的部分處理的影響,這減小了整個重建相關(guān)處理所需的處理時間。對于控制塊,以將控制塊通知給RAID控制單元221的順序,從處理對象區(qū)域的最前區(qū)域開始設(shè)置地址。也就是說,在配置控制單元224請求執(zhí)行重建相關(guān)處理時的較早階段向RAID控制單元221通知控制塊的順序是不重要的。因此,恢復(fù)控制單元223不必管理通知控制塊的順序和完成基于被通知的控制塊的部分處理的順序之間的對應(yīng)關(guān)系,并且只是簡單地以完成部分處理的順序依次設(shè)置地址。結(jié)果,恢復(fù)控制單元223的程序被簡化,并且處理負荷降低。另外,屬于單一 RLU的讀取源和寫目的地HDD中的每個的讀地址和寫地址被依次設(shè)置,而不在程序期間改變順序。這加速了每個HDD的讀操作和寫操作。接下來,圖7示出在執(zhí)行重建相關(guān)處理時參考的主要信息的例子。CM 201的SSD 213存儲RAID管理表241和多重數(shù)設(shè)置表242。RAID管理表241包括關(guān)于RLU的配置信息。配置控制單元224登記并更新RAID管理表241的信息。另外,RAID控制單元221和恢復(fù)控制單元223參考RAID管理表241。多重數(shù)設(shè)置表242包括各個RAID配置的預(yù)定多重數(shù)上限(配置專用多重數(shù)上限)?;謴?fù)控制單元223參考多重數(shù)設(shè)置表242,以確定每個RLU可獲取的控制塊的數(shù)目。圖8示出登記在RAID管理表中的信息的例子。在RAID管理表241中,配置控制單元224關(guān)于各個RLU登記記錄241a。用于識別對應(yīng)的RLU的RLU編號附到每個記錄241a。另外,在每個記錄241a中登記有“RAID等級”、“盤的數(shù)目”、“盤編號”、“HS盤編號”和“重建優(yōu)先級”?!癛AID等級”表示針對相應(yīng)的RLU設(shè)置的RAID等級?!氨P的數(shù)目”表示屬于該RLU的HDD的數(shù)目?!氨P編號”表示屬于該RLU的HDD的識別編號。與“盤的數(shù)目”中設(shè)置的數(shù)字相同的“盤編號”項的數(shù)字被登記在記錄214a中。針對由對應(yīng)的“盤編號”識別的每個HDD,登記“盤狀態(tài)”?!氨P狀態(tài)”表示對應(yīng)的HDD的操作狀態(tài)。在“盤狀態(tài)”中,設(shè)置例如“正?!薄ⅰ笆А焙汀氨4嬖贖S (熱備份)中”中的一個。“正?!北硎驹揌DD功能正常,“失效”表示該HDD失效。“保留在HS中”表示將最初記錄在HDD中的數(shù)據(jù)存儲在熱備份中的重建處理已經(jīng)完成,并且RLU利用所包含的熱備份操作。注意,“盤狀態(tài)”可以例如登記在包括每個HDD的信息的盤管理表中,該盤管理表與RAID管理表241分開設(shè)置?!癏S盤編號”是在執(zhí)行重建處理或冗余復(fù)制處理之前設(shè)置的,并且表示用于識別熱備份HDD的編號,該熱備份HDD是重建處理或冗余復(fù)制處理中數(shù)據(jù)的寫目的地。當接收到來自錯誤監(jiān)控單元227的HDD失效通知時,配置控制單元224提取失效的HDD所屬的RLU的記錄241a,并且將失效的HDD的“盤狀態(tài)”從“正?!备聻椤笆А保瑥亩鴮⒃撌У腍DD從該RLU中分離出去。此外,配置控制單元224將用作熱備份的HDD的盤編號設(shè)置在“HS盤編號”中。配置控制單元224請求恢復(fù)控制單元223關(guān)于與已經(jīng)進行這種設(shè)置改變的記錄241a相對應(yīng)的RLU執(zhí)行重建處理或復(fù)制回處理。另一方面,在已經(jīng)檢測到故障跡象的HDD通過錯誤監(jiān)控單元227被通知的情況下,配置控制單元224將被通知的HDD的“盤狀態(tài)”保持為“正?!?也就是說,該HDD仍然包含在該RLU中),并且請求恢復(fù)控制單元223關(guān)于被通知的HDD所屬的RLU執(zhí)行冗余復(fù)制處理。注意,RAID控制單元221也參考RAID管理表241。例如,當執(zhí)行主I/O處理時,RAID控制單元221參考RAID管理表241的記錄241a中的一個,該記錄241a對應(yīng)于該I/O處理所針對的RLU。RAID控制單元221根據(jù)RAID控制單元221所參考的記錄241a中設(shè)置的RAID等級、盤數(shù)目和盤編號執(zhí)行該I/O處理。當接收到來自恢復(fù)控制單元223的執(zhí)行重建相關(guān)處理的請求時,RAID控制單元221參考RAID管理表241中的記錄241a中的一個,該記錄241a對應(yīng)于被恢復(fù)控制單元223通知的控制塊中指示的RLU編號。基于RAID控制單元221參考的記錄241a中登記的RAID等級和被恢復(fù)控制單元223通知的控制塊中設(shè)置的讀取源盤編號和寫目的地盤編號,RAID控制單元221確定要被執(zhí)行的處理內(nèi)容的細節(jié)。例如,在請求重建處理的情況下,RAID控制單元221基于該記錄241a中登記的RAID等級執(zhí)行對應(yīng)于該RAID配置的處理,例如,判斷是否進行數(shù)據(jù)重構(gòu)計算。在圖8的RAID管理表241中,“重建優(yōu)先級”表示重建相關(guān)處理的優(yōu)先級,該優(yōu)先級附到對應(yīng)的RLU??梢愿鶕?jù)用戶輸入的操作任意地設(shè)置“重建優(yōu)先級”。在“重建優(yōu)先級”中,例如設(shè)置“高”和“低”中的一個?;謴?fù)控制單元223參考“重建優(yōu)先級”以確定每個RLU所允許的部分處理的多重數(shù)。如下所述,在重建相關(guān)處理所針對的RLU的主I/O處理在進程中的情況下,或者在CM 201的處理負荷高的情況下(即,在存儲器資源的使用大于或等于預(yù)定量的情況下),恢復(fù)控制單元223讀取與該重建相關(guān)處理所針對的RLU相關(guān)的“重建 優(yōu)先級”。在“重建優(yōu)先級”中設(shè)置“高”的情況下,恢復(fù)控制單元223基于多重數(shù)設(shè)置表242根據(jù)RLU的配置識別多重數(shù)的上限,并且以靠近所識別出的多重數(shù)的上限的方式設(shè)置部分處理的多重數(shù)。另一方面,在“重建優(yōu)先級”中設(shè)置“低”的情況下,恢復(fù)控制單元223控制不針對該RLU多重地執(zhí)行部分處理。圖9示出在多重數(shù)設(shè)置表中登記的信息的例子。在多重數(shù)設(shè)置表242中,登記了針對一個RLU的部分處理的多重數(shù)的上限,該上限是根據(jù)RAID配置預(yù)先確定的。這種多重數(shù)的上限被稱為“配置專用多重數(shù)上限”。根據(jù)圖9的例子,每個RAID配置由針對RLU設(shè)置的RAID等級和屬于該RLU的盤的數(shù)目的組合來識別,并且關(guān)于每個組合登記配置專用多重數(shù)上限。關(guān)于各個RAID配置預(yù)先計算該配置專用多重數(shù)上限,使得當應(yīng)用每個RAID配置時,對主I/O處理性能的影響程度變得可以比較。例如,在屬于RLU的盤的數(shù)目相同時,認為具有奇偶的RAID 4和5需要比不使用奇偶的RAID I高的處理負荷。因此,如果屬于RLU的盤的數(shù)目相同,則RAID 4和5的配置專用多重數(shù)上限被設(shè)置為小于RAID I的配置專用多重數(shù)上限。另外,認為在相同的RAID等級中,處理負荷隨著盤的數(shù)目增加而增加。因此,在相同的RAID等級中,隨著盤的數(shù)目增加,配置專用多重數(shù)上限被設(shè)置為較小?,F(xiàn)在參照圖7進行說明。在SSD213中,預(yù)先存儲總的多重數(shù)上限Ml和單個RLU多重數(shù)上限M2,作為恢復(fù)控制單元223參考的值??偟亩嘀財?shù)上限Ml表示可由整個CM 201執(zhí)行的重建相關(guān)處理中的部分處理的上限多重數(shù)。單個RLU多重數(shù)上限M2表示可由一個RLU執(zhí)行的重建相關(guān)處理中的部分處理的上限多重數(shù)。對單個RLU多重數(shù)上限M2設(shè)置比總的多重數(shù)上限Ml小的值。另外,恢復(fù)控制單元223參考分別存儲在RAM 212中的多重數(shù)調(diào)節(jié)系數(shù)Cl、當前的多重數(shù)M3和完成地址AD來執(zhí)行處理。多重數(shù)調(diào)節(jié)系數(shù)Cl是共同應(yīng)用于對其執(zhí)行重建相關(guān)處理的所有RLU的系數(shù)。在確定部分處理的多重數(shù)時使用多重數(shù)調(diào)節(jié)系數(shù)Cl來進行調(diào)節(jié),使得各RLU的部分處理的多重數(shù)之和不超過總的多重數(shù)上限Ml。注意,多重數(shù)調(diào)節(jié)系數(shù)Cl大于O并且小于或等于1,并且以預(yù)定的改變間隔例如O. I增加或減小。另外,例如,當CM201啟動時或者當CM 201啟動之后開始恢復(fù)控制單元223的處理時,將多重數(shù)調(diào)節(jié)系數(shù)Cl設(shè)置為初始值“ I ”。關(guān)于正對其執(zhí)行重建相關(guān)處理的每個RLU分別設(shè)置當前多重數(shù)M3和完成地址AD 二者。當前多重數(shù)M3表示當前對相應(yīng)的RLU執(zhí)行的部分處理的數(shù)目(即當前針對該RLU確保的控制塊的數(shù)目)。完成地址AD是表示對應(yīng)的RLU的重建相關(guān)處理所針對整個區(qū)域內(nèi)、已經(jīng)完成部分處理執(zhí)行的最后區(qū)域的地址。接下來,圖10示出正在執(zhí)行針對兩個RLU的重建相關(guān)處理的情況。下面參照圖10的例子描述恢復(fù)控制單元223調(diào)節(jié)部分處理的多重數(shù)的程序。作為例子,圖10示出正在執(zhí)行針對RLU編號為“00”的RLU (在下文中稱為“RLU#00”)的重建處理和針對RLU編號為“01”的RLU (“RLU#01”)的復(fù)制回處理的情形。根據(jù)圖6中描述的程序,配置控制單元224將控制塊BLla通知給恢復(fù)控制單元223,從而請求恢復(fù)控制單元223針對RLU#00執(zhí)行重建處理。例如,假定對RLU#00允許多重數(shù)“3”。恢復(fù)控制單元223將控制塊BLla、BL2a和BL3a通知給RAID控制單元221,從而使RAID控制單元221并行地執(zhí)行基于各控制塊的部分處理。另外,配置控制單元224將控制塊BLlb通知給恢復(fù)控制單元223,從而請求恢復(fù)控制單元223針對RLU#01執(zhí)行復(fù)制回處理。例如,假定RLU#01允許多重數(shù)“3”?;謴?fù)控制單元223將控制塊BLlb、BL2b和BL3b通知給RAID控制單元221,從而使RAID控制單元221并行地執(zhí)行基于各控制塊的部分處理。如上所述,恢復(fù)控制單元223向RAID控制單元 221通知控制塊BLla、BL2a、BL3a、BLlb、BL2b和BL3b。由此,RAID控制單元221并行地執(zhí)行基于各控制塊BLla、BL2a、BL3a、BLlb、BL2b和BL3b的部分處理。這樣,RAID控制單元221不僅能夠并行地執(zhí)行針對一個RLU的部分處理而且還能夠并行地執(zhí)行針對多個RLU的部分處理?;旧?,恢復(fù)控制單元223在不超過單個RLU多重數(shù)上限M2的范圍內(nèi),關(guān)于每個RLU設(shè)置部分處理的多重數(shù)。另外,恢復(fù)控制單元223將針對正在對其執(zhí)行重建相關(guān)處理的所有RLU設(shè)置的多重數(shù)之和控制為不超過總的多重數(shù)上限Ml。根據(jù)上述圖10的情況,RLU#00的當前多重數(shù)M3_l是“3”,RLU#01的當前多重數(shù)M3_2是“3”。因此,恢復(fù)控制單元223設(shè)置部分處理的多重數(shù),使得值(M3_l+M3_2)不超過總的多重數(shù)上限Ml。恢復(fù)控制單元223以如下方式動態(tài)調(diào)節(jié)部分處理的多重數(shù)。恢復(fù)控制單元223根據(jù)主I/O處理的情況調(diào)節(jié)部分處理的多重數(shù)。主I/O監(jiān)控單元225關(guān)于每個RLU監(jiān)控主I/O處理的情況。對于正在對其執(zhí)行重建相關(guān)處理的RLU,與沒有主I/O處理在進程中的情況相t匕,在主I/O處理在進程中的情況下,恢復(fù)控制單元223減小了 RLU的部分處理的多重數(shù)。這樣,多重數(shù)被調(diào)節(jié),使得主I/O處理的速度由于重建相關(guān)處理的影響而盡可能小地減小。另外,恢復(fù)控制單元223根據(jù)CM 201中存儲器資源的使用調(diào)節(jié)部分處理的多重數(shù)。由緩沖監(jiān)控單元226監(jiān)控CM 201中存儲器資源的使用。緩沖區(qū)域231至少被RAID控制單元221、主I/O控制單元222和恢復(fù)控制單元223共同使用。因此,例如在確定RLU的重建相關(guān)處理所允許的多重數(shù)的情況下,即使沒有同一 RLU的主I/O處理在進程中,恢復(fù)控制單元223也能夠通過檢測緩沖區(qū)域231的使用來確定其它RLU的由主I/O處理等引起的處理負荷的大小。在緩沖區(qū)域231的使用超過預(yù)定閾值的情況下,與緩沖區(qū)域231的使用小于或等于該閾值的情況相比,恢復(fù)控制單元223減小針對正在對其執(zhí)行重建相關(guān)處理的所有RLU設(shè)置的部分處理的多重數(shù)。例如在圖10中沒有RLU#00的主I/O處理在進程中并且緩沖區(qū)域231的使用小于或等于該閾值的情況下,恢復(fù)控制單元223將RLU#00的多重數(shù)控制為靠近單個RLU多重數(shù)上限M2。在RLU#00的主I/O處理不在進程中并且緩沖區(qū)域231的使用小于或等于該閾值的情況下,認為不必考慮RLU#00的重建相關(guān)處理對主I/O處理性能的影響。因此,在這種條件下,可以將固定的單個RLU多重數(shù)上限M2用作該多重數(shù)上限而不考慮RLU#00的RAID配置。另一方面,在#00的主I/O處理在進程中的情況下,或者在緩沖區(qū)域231的使用超過該閾值的情況下,恢復(fù)控制單元223將RLU#00的多重數(shù)上限設(shè)置為從多重數(shù)設(shè)置表242獲取的對應(yīng)的配置專用的多重數(shù)上限。在這種條件下,根據(jù)RLU#00的RAID配置設(shè)置RLU#00的多重數(shù)上限。在此情況下設(shè)置的多重數(shù)上限小于總的多重數(shù)上限Ml。另外,在#00的主I/O處理在進程中的情況下或者在緩沖區(qū)域231的使用超過該閾值的情況下,如果對RLU#00設(shè)置的重建優(yōu)先級是“低”,那么與重建優(yōu)先級是“高”的情況相比,多重數(shù)上限被設(shè)置得較低。根據(jù)本實施方式,在重建優(yōu)先級是“低”的情況下,多重數(shù)被設(shè)置為“1”,并且不并行執(zhí)行該RLU的部分處理。因此,通過根據(jù)重建優(yōu)先級調(diào)節(jié)多重數(shù),對具有較高優(yōu)先級的RLU設(shè)置較高的多重數(shù),從而提高重建相關(guān)處理的速度。此時例如假定單個RLU多重數(shù)上限M2是“3”,并且總的多重數(shù)上限Ml是“6”或更多。在這種條件下,如果緩沖區(qū)域231的使用小于或等于該閾值,并且RLU#00或#01的主I/O處理不在進程中,那么如圖10中所示,RLU#00和#01 二者的多重數(shù)被設(shè)置為“3”。在此情況下,由于不需要考慮對主I/O處理性能的影響,所以進行控制,使得以最高速度執(zhí)行對RLU#00和#01每一 個的重建相關(guān)處理。接下來,考慮例如在上述條件下連續(xù)完成基于控制塊BL3a對RLU#00的部分處理和基于控制塊BL3b對RLU#01的部分處理的情況。此時假定針對RLU#00和#01 二者的重建優(yōu)先級是“高”。例如,在基于控制塊BL3a的部分處理結(jié)束時和基于控制塊BL3b的部分處理結(jié)束時緩沖區(qū)域231的使用超過閾值的情況下,恢復(fù)控制單元223將RLU#00和#01 二者的多重數(shù)減小到小于單個RLU多重數(shù)上限M2的值(即從多重數(shù)設(shè)置表242獲得的與各RLU的配置相對應(yīng)的值)。因此,在緩沖區(qū)域231的使用超過該閾值的情況下,所有RLU的多重數(shù)被控制為小于單個RLU多重數(shù)上限M2。更具體來說,在整個CM 201的處理負荷被認為是高的情況下,正在對其執(zhí)行重建相關(guān)處理的所有RLU的多重數(shù)被全面減小,從而減小整個重建相關(guān)處理的處理負荷,這導(dǎo)致整個CM 201的處理負荷降低。另一方面,在基于控制塊BL3a的部分處理結(jié)束時和基于控制塊BL3b的部分處理結(jié)束時緩沖區(qū)域231的使用保持小于或等于該閾值的情況下,可以執(zhí)行以下程序。首先,在基于控制塊BL3a的部分處理結(jié)束時RLU#00的主I/O處理在進程中的情況下,恢復(fù)控制單元223將RLU#00的多重數(shù)控制為小于單個RLU多重數(shù)上限M2 (即從多重數(shù)設(shè)置表242獲得的與RLU#00的配置相對應(yīng)的值)。例如,恢復(fù)控制單元223釋放控制塊BL3a,從而將RLU#00的多重數(shù)從“3”減小到“2”。這樣,RLU#00的重建相關(guān)處理的速度被減小,使得對進程中的主I/O處理性能的影響被最小化,并且減小了處理負荷。注意,如果RLU#00的重建優(yōu)先級是“低”,則RLU#00的多重數(shù)被進一步減小。結(jié)果,在基于控制塊BL3b的部分處理完成時RLU#01的主I/O處理不在進程中的情況下,恢復(fù)控制單元223不減小RLU#01的多重數(shù),因此該多重數(shù)保持在單個RLU多重數(shù)上限M2,即“3”。即使基于控制塊BL3b的部分處理完成時RLU#00的主I/O處理在進程中,恢復(fù)控制單元223也將RLU#01的多重數(shù)保持在“3”。因此,當在執(zhí)行重建相關(guān)處理期間并行執(zhí)行主I/O處理時,優(yōu)選減小正在對其執(zhí)行重建相關(guān)處理的RLU當中正在對其執(zhí)行主I/O處理的RLU的多重數(shù)。這樣,主I/O處理和重建相關(guān)處理的組合的處理負荷被控制為不會不均衡地置于特定RLU上。
如上所述,恢復(fù)控制單元223根據(jù)主I/O處理情況、緩沖區(qū)域231的使用和RLU的重建優(yōu)先級并且根據(jù)RLU的RAID配置來識別要設(shè)置給每個RLU的多重數(shù)上限。然而,如果將識別出的多重數(shù)上限應(yīng)用于正在對其執(zhí)行重建相關(guān)處理的所有RLU,則對所有RLU設(shè)置的多重數(shù)之和可能超過總的多重數(shù)上限Ml。鑒于此,恢復(fù)控制單元223將每個RLU所允許的多重數(shù)上限乘以對所有RLU共同的多重數(shù)調(diào)節(jié)系數(shù)Cl。這以相等的比率減小了對所有RLU設(shè)置的多重數(shù),從而將多重數(shù)之和保持為小于或等于總的多重數(shù)上限Ml。例如,在圖10中,假定緩沖區(qū)域231的使用小于或等于該閾值,并且RLU#00或#01的主I/O處理都不在進程中。在此情況下,恢復(fù)控制單元223識別出可應(yīng)用于RLU#00和#01中每一個的多重數(shù)上限是單個RLU多重數(shù)上限M2 (=3)。然而,如果在總的多重數(shù)上限Ml例如是“4”的情況下,RLU#00和#01的多重數(shù)被設(shè)置為“ 3 ”,則多重數(shù)之和為“ 6 ”,超過了總的多重數(shù)上限Ml。在此將對RLU#00和#01設(shè)置的多重數(shù)分別表示為M4_l和M4_2。在多重數(shù)之和超過總的多重數(shù)上限Ml的情況下,恢復(fù)控制單元223調(diào)節(jié)多重數(shù)調(diào)節(jié)系數(shù)Cl,使得當M4_1=M4_2=3時,ClX (M4_l+M4_2)的值變?yōu)樾∮诨虻扔诳偟亩嘀財?shù)上限Ml (=4)。根據(jù)該例子,由于Cl=2/3,所以恢復(fù)控制單元223將RLU#00和#01中每一個的多重數(shù)設(shè)置為“2”,“2”是通過 將可允許的上限“3”乘以Cl=2/3獲得的。因此,通過使用多重數(shù)調(diào)節(jié)系數(shù)Cl,可以減小多重數(shù)之和,同時盡可能地保持關(guān)于各RLU確定的多重數(shù)上限之間的比值,從而將CM 201的處理負荷控制為不增加到某一水平之上。每次配置控制單元224請求恢復(fù)控制單元223執(zhí)行重建相關(guān)處理時,以及每次恢復(fù)控制單元223接收到來自RAID控制單元221的部分處理完成通知時,恢復(fù)控制單元223根據(jù)該時間點的情況如上所述進行多重數(shù)調(diào)節(jié)。接下來,使用流程圖描述上述調(diào)節(jié)處理。圖11至圖13是示出在請求執(zhí)行部分處理時由恢復(fù)控制單元進行的程序的例子的流程圖。當接收到來自配置控制單元224的控制塊通知并且被請求執(zhí)行重建相關(guān)處理時,或者當接收到來自RAID控制單元221的控制塊通知并且接收到通知部分處理完成的應(yīng)答時,參考被通知的控制塊執(zhí)行圖11至圖13中所示的處理。然而,注意,稍后將參照圖14描述后一情況的詳細處理(B卩,接收到來自RAID控制單元221的應(yīng)答的情況)。[步驟Sll]恢復(fù)控制單元223詢問主I/O監(jiān)控單元225對于在被通知的控制塊中設(shè)置的RLU主I/O處理是否在進程中。在該RLU的主I/O處理不在進程中的情況下,恢復(fù)控制單元223將處理前進到步驟S12。另一方面,如果該RLU的主I/O處理在進程中,則恢復(fù)控制單元223將處理前進到步驟S14。[步驟S12]恢復(fù)控制單元223詢問緩沖監(jiān)控單元226有關(guān)緩沖區(qū)域231的使用。基于來自緩沖監(jiān)控單元226的應(yīng)答,在緩沖區(qū)域231的使用小于或等于預(yù)定閾值的情況下,恢復(fù)控制單元223將處理前進到步驟S13。另一方面,在緩沖區(qū)域231的使用超過該預(yù)定閾值的情況下,恢復(fù)控制單元223將處理前進到步驟S14。[步驟S13]在該RLU的主I/O處理不在進程中(Sll:是)并且緩沖區(qū)域231的使用小于或等于該閾值(S12 :是)的情況下,恢復(fù)控制單元223將該RLU的多重數(shù)設(shè)置值M4設(shè)置為預(yù)先設(shè)置的單個RLU多重數(shù)上限M2。注意,多重數(shù)設(shè)置值M4是在圖11至圖13的處理中使用的內(nèi)部變量,并且例如存儲在RAM 212中。[步驟S14]在該RLU的主I/O處理在進程中的情況下(SII:否),或者在緩沖區(qū)域231的使用超過該閾值的情況下(S12 :否),恢復(fù)控制單元223在RAID管理表241中參考與該RLU相對應(yīng)的記錄241a中的一個,并且讀取對該RLU設(shè)置的重建優(yōu)先級。在該重建優(yōu)先級是“高”的情況下(S14 :是),恢復(fù)控制單元223將處理前進到步驟S15。另一方面,如果該重建優(yōu)先級是“低”(S14 :否),則恢復(fù)控制單元222將處理前進到步驟S16。[步驟S15]在該RLU的重建優(yōu)先級是“高”的情況下(S14:是),恢復(fù)控制單元223從步驟S14中參考的記錄241a中讀取該RLU的RAID配置(RAID等級和所使用的盤的數(shù)目)。恢復(fù)控制單元223從多重數(shù)設(shè)置表242中讀取與該RAID配置相對應(yīng)的配置專用多重數(shù)上限?;謴?fù)控制單元223將多重數(shù)設(shè)置值M4設(shè)置為從多重數(shù)設(shè)置表242中讀取的該配置專用多重數(shù)上限。[步驟S16]在該RLU的重建優(yōu)先級是“低”的情況下(S14:否),恢復(fù)控制單元223將多重數(shù)設(shè)置值M4設(shè)置為“1”,這是多重數(shù)下限。注意,在步驟S16中,例如可以將從步驟S15獲取的配置專用多重數(shù)上限(然而注意下限是“I”)減去固定的值而獲得的值,或者將通過以預(yù)定的比率減小該配置專用多重數(shù)上限而獲得的值的整數(shù)設(shè)置為多重數(shù)設(shè)置值M4。另外,可以例如使用代表三個或更多等級的值表示該重建優(yōu)先級。在此情況下,恢復(fù)控制單元223可以將與該重建優(yōu)先級相對應(yīng)的值設(shè)置為多重數(shù)設(shè)置值M4,以代替執(zhí)行步驟S14至 S160注意,與重建優(yōu)先級相對應(yīng)的值不超過該配置專用多重數(shù)上限。例如,在重建優(yōu)先級是“高”的情況下,該配置專用多重數(shù)上限可被設(shè)置為多重數(shù)設(shè)置值M4。如果重建優(yōu)先級是“中”,則可以將該配置專用多重數(shù)上限的一半的值的整數(shù)設(shè)置為多重數(shù)設(shè)置值M4。如果重建優(yōu)先級是“低”,則可以將“ I ”設(shè)置為多重數(shù)設(shè)置值M4。[步驟S17]恢復(fù)控制單元223通過將該RLU的多重數(shù)設(shè)置值M4乘以當前設(shè)置的多重數(shù)調(diào)節(jié)系數(shù)Cl來計算(M4XC1)。另外,恢復(fù)控制單元223從RAM 212中讀取正對其執(zhí)行重建相關(guān)處理的一個或多個其它RLU的當前多重數(shù)M3?;謴?fù)控制單元223針對每個其它RLU計算(M3 X Cl ),然后計算通過將每個其它RLU的(M3 X Cl)與上述(M4 X Cl)相加獲得的總值NI。注意,根據(jù)本實施方式,在RAM 212中預(yù)先設(shè)置每個RLU的當前多重數(shù)M3。然而,例如,可以關(guān)于每個RLU搜索在處理名稱中設(shè)置了重建相關(guān)處理的控制塊,從而獲取每個RLU的當前多重數(shù)M3。[步驟S18]恢復(fù)控制單元223判斷計算出的總值NI是否大于總的多重數(shù)上限Ml。在NI大于Ml的情況下(S18 :是),恢復(fù)控制單元223將處理前進到步驟S19。另一方面,在NI小于或等于Ml的情況下(S18 :否),恢復(fù)控制單元223將處理前進到步驟S21。[步驟S19]在總值NI大于總的多重數(shù)上限Ml的情況下(S18:是),恢復(fù)控制單元223減小多重數(shù)調(diào)節(jié)系數(shù)Cl,從而減小正對其執(zhí)行重建相關(guān)處理的所有RLU的多重數(shù)?;謴?fù)控制單元223首先確定多重數(shù)調(diào)節(jié)系數(shù)Cl是否是預(yù)定的下限。注意,多重數(shù)調(diào)節(jié)系數(shù)Cl的下限被設(shè)置為大于O且小于I的任意值。在Cl是該下限的情況下(S19 :是),恢復(fù)控制單元223將處理前進到步驟S26。另一方面,如果Cl大于Cl (S19 :否),則恢復(fù)控制單元223將處理前進到步驟S20。[步驟S20]恢復(fù)控制單元223將多重數(shù)調(diào)節(jié)系數(shù)Cl減小一個等級。之后,恢復(fù)控制單元223將處理返回到步驟S17,其中使用減小的Cl計算(M4XCl)和每個其它RLU的(M3 X Cl ),基于該計算的結(jié)果計算總值NI。[步驟S21]在步驟S17中獲得的總值NI小于或等于總的多重數(shù)上限Ml的情況下(S18:否),恢復(fù)控制單元223增加多重數(shù)調(diào)節(jié)系數(shù)Cl,從而查看總的多重數(shù)是否可以被設(shè)置得更高?;謴?fù)控制單元223首先判斷當前設(shè)置的Cl是否小于上限“I”。在Cl小于該上限的情況下(S21 :是),恢復(fù)控制單元223將處理前進到步驟S22。另一方面,如果Cl已經(jīng)達到該上限(S21 :否),則恢復(fù)控制單元223將處理前進到步驟S26。[步驟S22]恢復(fù)控制單元223通過將當前設(shè)置的多重數(shù)調(diào)節(jié)系數(shù)Cl增加一個等級獲得值,并且將變量C2設(shè)為所獲得的值。注意,變量C2是在圖11至圖13的處理中使用的內(nèi)部變量,并且例如存儲在RAM 212中。[步驟S23]恢復(fù)控制單元223使用變量C2代替多重數(shù)調(diào)節(jié)系數(shù)Cl進行與步驟S17的計算類似的計算,并且計算通過將(M4XC2)與每個其它RLU的(M3XC2)相加而獲得的總值N2。[步驟S24]恢復(fù)控制單元223判斷計算出的總值N2是否大于總的多重數(shù)上限Ml。在N2大于Ml的情況下(S24 :是),恢復(fù)控制單元223將處理前進到步驟S26。另一方面,如果N2小于或等于Ml (S24 :否),則恢復(fù)控制單元223將處理前進到步驟S25。 [步驟S25]在總值N2小于或等于總的多重數(shù)上限Ml的情況下,允許將多重數(shù)調(diào)節(jié)系數(shù)Cl設(shè)置為與步驟S22中設(shè)置的變量C2相同的值。因此,恢復(fù)控制單元223將Cl增加一個等級,從而使Cl與變量C2匹配。之后,恢復(fù)控制單元223將處理返回到步驟S21,并且判斷增加后的Cl是否已經(jīng)達到上限。[步驟S26]判斷出(M4XC1)是設(shè)置給該RLU的適當多重數(shù)。例如,在總值NI大于總的多重數(shù)上限Ml的情況下(S18 :是),多重數(shù)調(diào)節(jié)系數(shù)Cl被逐漸減小(S20),直到NI變?yōu)樾∮诨虻扔贛l。然后,當NI變?yōu)樾∮诨虻扔贛l時(S18 否),Cl變?yōu)樾∮谏舷蕖癐” (S21 :是),并且基于比Cl大一個等級的C2的N2超過Ml (S24 是)。因此,認為當前的Cl是適當?shù)摹A硗?,在總值NI小于或等于總的多重數(shù)上限Ml的情況下(S18 :否),C1被逐漸增加(S25),直到Cl達到上限“I” (S21 :否),或者基于比Cl大一個等級的C2的N2超過M1(S24:是)。這樣,Cl被設(shè)置為適當?shù)闹?。在上述方式中,一旦對該RLU設(shè)置的多重數(shù)被確定,恢復(fù)控制單元223就將(M4XC1)設(shè)置為該RLU的適當多重數(shù)M5。注意,該適當多重數(shù)M5是在圖11至圖13的處理中使用的內(nèi)部變量,并且被存儲在例如RAM 212中。從下一個步驟即步驟S27往后,恢復(fù)控制單元223執(zhí)行用于使該RLU的實際多重數(shù)與該適當多重數(shù)M5匹配的操作。[步驟S27]恢復(fù)控制單元223判斷當前參考的控制塊是否是由恢復(fù)控制單元223自己獲取的控制塊。注意,恢復(fù)控制單元223可以在接收到來自配置控制單元224的控制塊的通知時例如通過將該控制塊的ID存儲在RAM 212中來實施步驟S27的判斷處理。在當前參考的控制塊是由恢復(fù)控制單元223自己獲取的情況下(S27 :是;在當前參考的控制塊例如是圖6的控制塊BL2至BL4之一的情況下),恢復(fù)控制單元223將處理前進到步驟S28。另一方面,如果當前參考的控制塊由配置控制單元224通知(S27 :否;在當前參考的控制塊例如是圖6的控制塊BLl的情況下),恢復(fù)控制單元223將處理前進到步驟S31。[步驟S28]恢復(fù)控制單元223判斷該RLU的當前多重數(shù)M3是否大于適當?shù)亩嘀財?shù)M5。在M3大于M5的情況下(S28 :是),恢復(fù)控制單元223將處理前進到步驟S29。另一方面,如果M3小于或等于M5 (S28 :否),則恢復(fù)控制單元223將處理前進到步驟S32。[步驟S29]在該RLU的當前多重數(shù)M3大于該適當?shù)亩嘀財?shù)M5的情況下(S28是),恢復(fù)控制單元223減小該RLU的實際多重數(shù)。因此,恢復(fù)控制單元223首先將該RLU的當前多重數(shù)M3減小“I”。[步驟S30]恢復(fù)控制單元223釋放當前參考的控制塊,并且結(jié)束與該控制塊相對應(yīng)的操作。[步驟S31]恢復(fù)控制單元223判斷該RLU的當前多重數(shù)M3是否小于適當?shù)亩嘀財?shù)M5。在M3小于M5的情況下(S31 :是),恢復(fù)控制單元223將處理前進到步驟S36。另一方面,如果M3大于或等于M5 (S31 :否),則恢復(fù)控制單元223將處理前進到步驟S32。[步驟S32]在步驟S28中該RLU的當前多重數(shù)M3小于或等于該適當?shù)亩嘀財?shù)M5的情況下(S28 :否),或者在步驟S31中該RLU的當前多重數(shù)M3大于或等于該適當?shù)亩嘀財?shù)M5的情況下(S31 :否),判斷出該RLU的實際多重數(shù)已經(jīng)被適當?shù)卣{(diào)節(jié)。在此情況下,恢復(fù)控制單元223確定表示該RLU的重建相關(guān)處理所針對的區(qū)域(在下文中稱為“重建相關(guān)處理對象區(qū)域”)內(nèi)、還沒有向RAID控制單元221請求對其執(zhí)行部分處理的最前區(qū)域的地址?;?復(fù)控制單元223用所確定的地址改寫當前參考的控制塊中設(shè)置的地址,作為下一個處理對象。具體地,恢復(fù)控制單元223搜索其中設(shè)置該RLU的控制塊,并且從所發(fā)現(xiàn)的控制塊中設(shè)置的地址范圍中提取表示該重建相關(guān)處理對象區(qū)域的最后區(qū)域(與最前區(qū)域相對的端)的地址。然后,恢復(fù)控制單元223用表示由所提取的地址表示的區(qū)域之后的區(qū)域的地址改寫當前參考的控制塊的地址。[步驟S33]恢復(fù)控制單元223判斷基于當前參考的控制塊的當前操作是否是響應(yīng)于來自配置控制單元224的請求的操作。在當前操作是響應(yīng)于來自配置控制單元224的請求的操作的情況下(S33 :是),恢復(fù)控制單元223將處理前進到步驟S34。另一方面,如果當前操作是與來自RAID控制單元221的應(yīng)答相對應(yīng)的操作(S33 :否),則恢復(fù)控制單元223將處理前進到步驟S35。[步驟S34]在當前操作是響應(yīng)于來自配置控制單元224的請求的處理的情況下(S33 :是),作為要向RAID控制單元221請求的部分處理的、基于當前參考的控制塊的部分處理不反映在當前的多重數(shù)M3中。因此,恢復(fù)控制單元223將該RLU的當前多重數(shù)M3遞增“I”。在圖6的時間T18恢復(fù)控制單元223的操作是以步驟S33 (是)和S34的順序進行的處理的例子。另一方面,在圖6的時間T17和T23恢復(fù)控制單元223的操作是得到步驟S33中的“否”的情況的例子。[步驟S35]恢復(fù)控制單元223將其地址在步驟S32中被更新的當前參考的控制塊的ID通知給RAID控制單元221,并且請求RAID控制單元221基于該控制塊執(zhí)行部分處理。由此完成與被參考的控制塊相對應(yīng)的處理。[步驟S36]在步驟S31中該RLU的當前多重數(shù)M3小于該適當?shù)亩嘀財?shù)M5的情況下(S31 :是),該RLU的多重數(shù)可被設(shè)置得更高。在此情況下,恢復(fù)控制單元223新獲取控制塊。此時,在當前參考的控制塊中設(shè)置的與RLU編號、處理名稱、讀取源盤編號和寫目的地盤編號有關(guān)的相同信息被設(shè)置在所獲取的控制塊中。[步驟S37]恢復(fù)控制單元223根據(jù)與步驟S32的程序類似的程序確定表示該RLU的重建相關(guān)處理對象區(qū)域內(nèi)還沒有向RAID控制單元221請求對其執(zhí)行部分處理的最前區(qū)域的地址?;謴?fù)控制單元223用所確定的地址改寫新獲取的控制塊的地址,作為下一個處
理對象。[步驟S38]恢復(fù)控制單元223將新獲取的控制塊的ID通知給RAID控制單元221,并且請求RAID控制單元221基于該控制塊執(zhí)行部分處理。[步驟S39]恢復(fù)控制單元223將該RLU的當前多重數(shù)M3遞增“I”。之后,恢復(fù)控制單元223返回步驟S31的處理。注意,步驟S39的操作可以在執(zhí)行步驟S31之后直到執(zhí)行步驟S38的操作后下一次開始執(zhí)行步驟S31期間的任何時間執(zhí)行。在根據(jù)圖13中所示的處理順序執(zhí)行步驟S27 (是)、S28 (是)、S29和S30的操作的情況下,該RLU的多重數(shù)被減小,并且該RLU的重建相關(guān)處理的速度也相應(yīng)減小。另一方面,在執(zhí)行步驟S27 (否)和S31 (是)的操作的情況下,執(zhí)行步驟S36至S39的后續(xù)操作。由此,該RLU的多重數(shù)增加,并且該RLU的重建相關(guān)處理的速度相應(yīng)地增加。注意,根據(jù)圖13的處理例子,只有在當前參考的控制塊是由配置控制單元224通知的控制塊時,才獲取新的控制塊,從而增加多重數(shù)。然而,例如在當前參考的控制塊是由恢復(fù)控制單元223自己獲取的控制塊的情況下,也可以獲取新的控制塊,從而增加多重數(shù)。接下來,圖14是示出在接收到來自RAID控制單元的響應(yīng)時恢復(fù)控制單元進行的 程序的例子的流程圖。[步驟S51]恢復(fù)控制單元223接收來自RAID控制單元221的對重建相關(guān)處理的請求的應(yīng)答。此時,恢復(fù)控制單元223接收到與已完成執(zhí)行的部分處理相對應(yīng)的控制塊的ID的通知。隨后,恢復(fù)控制單元223參考與RAID控制單元221通知的ID相對應(yīng)的控制塊進行處理。[步驟S52]對于在RAID控制單元221通知的控制塊中設(shè)置的RLU,恢復(fù)控制單元223在RAM 212的完成地址AD中設(shè)置表示針對其已經(jīng)完成部分處理的執(zhí)行的區(qū)域的最后部分的地址。具體地,恢復(fù)控制單元223搜索其中設(shè)置該RLU的控制塊,并且從所發(fā)現(xiàn)的控制塊中設(shè)置的地址項中提取表示該重建相關(guān)處理對象區(qū)域的最前區(qū)域的地址?;謴?fù)控制單元223將從所提取的地址表示的區(qū)域向所述最前區(qū)域移位一個塊的區(qū)域的地址記錄在RAM212中,作為該RLU的完成地址AD。[步驟S53]恢復(fù)控制單元223判斷是否已經(jīng)向RAID控制單元221發(fā)出關(guān)于該RLU的整個重建相關(guān)處理對象區(qū)域的部分處理的請求。具體地,恢復(fù)控制單元223搜索其中設(shè)置該RLU的控制塊,并且從所發(fā)現(xiàn)的控制塊中設(shè)置的地址項中提取表示該重建相關(guān)處理對象區(qū)域的最后區(qū)域(與最前區(qū)域相對的端)的地址。然后,在所提取的地址表示的區(qū)域是該重建相關(guān)處理對象區(qū)域的最后區(qū)域的情況下,恢復(fù)控制單元223判斷為已發(fā)出針對整個對象區(qū)域的部分處理的請求。在已經(jīng)發(fā)出針對整個對象區(qū)域的部分處理的請求的情況下(S53 :是),恢復(fù)控制單元223將處理前進到步驟S54。另一方面,如果存在還沒有發(fā)出針對其的部分處理的請求的區(qū)域(S53:否),那么恢復(fù)控制單元223將圖11中的Sll作為開始點執(zhí)行圖11至圖13中所示的處理。也就是說,每當接收到來自RAID控制單元221的應(yīng)答時,恢復(fù)控制單元223判斷該RLU的多重數(shù)是否適當,然后調(diào)節(jié)該多重數(shù),直到已經(jīng)發(fā)出針對整個重建相關(guān)處理對象區(qū)域的部分處理的請求。[步驟S54]在已經(jīng)發(fā)出針對整個重建相關(guān)處理對象區(qū)域的部分處理的請求的情況下(S53 :是),恢復(fù)控制單元223判斷是否已經(jīng)完成對整個重建相關(guān)處理對象區(qū)域的部分處理。如果在RAM 212中設(shè)置的RLU的完成地址AD表示該重建相關(guān)處理對象區(qū)域的最后部分,則恢復(fù)控制單元223判斷為已經(jīng)完成對整個區(qū)域的部分處理(S54 :是),然后將處理前進到步驟S55。另一方面,在還沒有完成針對整個重建相關(guān)處理對象區(qū)域的部分處理的情況下(S54:否),恢復(fù)控制單元223等待直到完成整個區(qū)域的部分處理。在此情況下,當從RAID控制單元221接收到針對同一 RLU的基于不同控制塊的部分處理的完成通知并且參考該不同控制塊執(zhí)行圖14的處理時,恢復(fù)控制單元223通過步驟S52的操作更新完成地址AD。當在步驟S54中通過參考不同的控制塊的處理完成地址AD表示重建相關(guān)處理對象區(qū)域的最后部分時,恢復(fù)控制單元223使處理前進到步驟S55。[步驟S55]恢復(fù)控制單元223判斷當前參考的控制塊是否是由恢復(fù)控制單元223自己獲取的控制塊。在當前參考的控制塊是由恢復(fù)控制單元223自己獲取的控制塊時(S55 :是;在當前參考的控制塊例如是圖6的控制塊BL2至BL4之一的情況下),恢復(fù)控制單元223結(jié)束基于當前參考的控制塊的處理。在此情況下,通過下面描述的步驟S57的操作釋放被參考的控制塊,該操作是通過參考由配置控制單元224通知的控制塊進行的。另一方面,在當前參考的控制塊是由配置控制單元224通知的控制塊的情況下(S55 :否;在當前參考的控制塊例如是圖6中的控制塊BLl的情況下),恢復(fù)控制單元223使處理前進到步驟S56。在此情況下,恢復(fù)控制單元223參考由配置控制單元224通知的控制塊進行步驟S56往后的操作,在該操作中,執(zhí)行用于完成該RLU的重建相關(guān)處理的程序,并且恢復(fù)控制單元 223將處理完成通知給配置控制單元224。[步驟S56]恢復(fù)控制單元223判斷是否存在由恢復(fù)控制單元223自己獲取的控制塊,在該控制塊中設(shè)置的RLU編號和處理名稱與當前參考的控制塊中設(shè)置的RLU編號和處理名稱相同。在該RLU的當前多重數(shù)M3是2或更多的情況下,除了由配置控制單元224通知的控制塊以外,還存在由恢復(fù)控制單元223自己獲取的該RLU的一個或更多的控制塊。在存在由恢復(fù)控制單元223自己獲取的一個或更多的控制塊的情況下(S56 :是),恢復(fù)控制單元223使處理前進到步驟S57。另一方面,不存在由恢復(fù)控制單元223自己獲取的控制塊(S56 :否),則恢復(fù)控制單元223使處理前進到步驟S58。[步驟S57]恢復(fù)控制單元223釋放在步驟S56中確定的一個或更多的控制塊(即由恢復(fù)控制單元223自己獲取的一個或更多的控制塊)。這樣,除了當前參考的控制塊以外,不存在其中設(shè)置相同的RLU編號和處理名稱的控制塊。[步驟S58]恢復(fù)控制單元223將該RLU的當前多重數(shù)M3重置為“O”。[步驟S59]恢復(fù)控制單元223從所參考的控制塊中刪除讀取源盤編號和寫目的地盤編號?;謴?fù)控制單元223將已經(jīng)從其中刪除了這些盤編號的控制塊的ID通知給配置控制單元224,并且用由設(shè)置在該控制塊中的處理名稱表示的重建相關(guān)處理的執(zhí)行完成通知來響應(yīng)配置控制單元224。當接收到該響應(yīng)時,配置控制單元224釋放與恢復(fù)控制單元223通知的ID相對應(yīng)的控制塊,并且完成配置控制單元224向恢復(fù)控制單元223請求的重建相關(guān)處理。根據(jù)上述第二實施例,根據(jù)緩沖區(qū)域231的使用、每個RLU的主I/O處理是否在進程中以及每個RLU的重建優(yōu)先級,來對每個RLU優(yōu)化重建相關(guān)處理中的部分處理的多重數(shù)。這允許重建相關(guān)處理加速,同時盡可能地減小對主I/O處理性能的影響。根據(jù)一個方面,提高了重建相關(guān)處理的速度。
權(quán)利要求
1.一種存儲系統(tǒng),包括 存儲設(shè)備組,包括多個存儲設(shè)備;以及 存儲控制設(shè)備,該存儲控制設(shè)備包括 訪問處理裝置,用于訪問被分配給邏輯存儲區(qū)域的存儲設(shè)備,該邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的兩個或更多的存儲設(shè)備的存儲區(qū)域構(gòu)成,在該邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在另一個存儲設(shè)備中的方式控制數(shù)據(jù)記錄,以及 重建控制裝置,用于使所述訪問處理裝置執(zhí)行重建處理,其中與記錄在分配給所述邏輯存儲區(qū)域的存儲設(shè)備當中的第一存儲設(shè)備中的數(shù)據(jù)相同的數(shù)據(jù)是基于從所述第一存儲設(shè)備以外的所分配的存儲設(shè)備讀取的數(shù)據(jù)產(chǎn)生的,并且所產(chǎn)生的數(shù)據(jù)被寫到不同存儲設(shè)備,所述不同存儲設(shè)備是包括在所述存儲設(shè)備組中的備份存儲設(shè)備和與所述第一存儲設(shè)備進行替換的第二存儲設(shè)備之一, 其中所述重建控制裝置將重建處理分割成部分處理,每個部分處理包括數(shù)據(jù)讀處理和數(shù)據(jù)寫處理的組合,在數(shù)據(jù)讀處理中,從通過分割數(shù)據(jù)讀出目標范圍而產(chǎn)生的分割范圍之一讀取數(shù)據(jù),在數(shù)據(jù)寫處理中,基于從所述分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫到所述不同存儲設(shè)備,并且所述重建控制裝置指示所述訪問處理裝置執(zhí)行所述部分處理,以及 響應(yīng)于來自所述重建控制裝置的指示,所述訪問處理裝置并行地執(zhí)行所述部分處理。
2.根據(jù)權(quán)利要求I所述的存儲系統(tǒng),其中 設(shè)置有多個所述邏輯存儲區(qū)域,并且每個所述邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的不同的多個存儲設(shè)備的存儲區(qū)域構(gòu)成,在所述邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在不同的存儲設(shè)備中的方式控制數(shù)據(jù)記錄, 所述重建控制裝置指示所述訪問處理裝置針對每個所述邏輯存儲區(qū)域執(zhí)行一個或更多的所述部分處理,并且 響應(yīng)于來自所述重建控制裝置的指示,所述訪問處理裝置并行地執(zhí)行針對每個所述邏輯存儲區(qū)域的一個或更多的部分處理。
3.根據(jù)權(quán)利要求2所述的存儲系統(tǒng),其中 響應(yīng)于來自主設(shè)備的請求,所述訪問處理裝置與所述重建處理并行地執(zhí)行訪問至少一個所述邏輯存儲區(qū)域的主訪問處理,并且 當所述訪問處理裝置針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,與不針對該邏輯存儲區(qū)域執(zhí)行所述主訪問處理時相比,所述重建控制裝置減小所述訪問處理裝置執(zhí)行的針對該邏輯存儲區(qū)域的部分處理的多重數(shù)。
4.根據(jù)權(quán)利要求3所述的存儲系統(tǒng),其中 所述存儲控制設(shè)備進一步包括多重數(shù)設(shè)置值存儲裝置,在其中關(guān)于所述邏輯存儲區(qū)域的每個規(guī)格設(shè)置所述部分處理的多重數(shù),用于以對所述主訪問處理的影響程度基本均勻的方式冗余地存儲數(shù)據(jù),并且 當針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,所述重建控制裝置從所述多重數(shù)設(shè)置值存儲裝置獲取與該邏輯存儲區(qū)域的規(guī)格相對應(yīng)的多重數(shù),并且將針對該邏輯存儲區(qū)域的部分處理的多重數(shù)設(shè)置為獲取的多重數(shù)。
5.根據(jù)權(quán)利要求4所述的存儲系統(tǒng),其中 當不針對正執(zhí)行的重建處理所針對的邏輯存儲區(qū)域執(zhí)行主訪問處理時,所述重建控制裝置將針對該邏輯存儲區(qū)域的部分處理的多重數(shù)設(shè)置為針對所述邏輯存儲區(qū)域的不同規(guī)格預(yù)先確定的共同多重數(shù)。
6.根據(jù)權(quán)利要求3所述的存儲系統(tǒng),其中 當所述訪問處理裝置正針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,在針對該邏輯存儲區(qū)域設(shè)置的優(yōu)先級較低時,所述重建控制裝置減小針對該邏輯存儲區(qū)域的部分處理的多重數(shù)。
7.根據(jù)權(quán)利要求2或3所述的存儲系統(tǒng),其中 當所述存儲控制設(shè)備中緩沖器的使用超過預(yù)定閾值時,與所述緩沖器的使用低于或等于所述閾值時相比,所述重建控制裝置減小針對邏輯存儲區(qū)域的部分處理的多重數(shù)。
8.根據(jù)權(quán)利要求7所述的存儲系統(tǒng),其中 每當完成由所述訪問處理裝置執(zhí)行的一個部分處理時,所述重建控制裝置判斷所述緩沖器的使用是否超過所述閾值,并且 當所述緩沖器的使用超過所述閾值時,與所述緩沖器的使用小于或等于所述閾值時相t匕,所述重建控制裝置減小其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域的部分處理的多重數(shù)。
9.根據(jù)權(quán)利要求8所述的存儲系統(tǒng),其中 響應(yīng)于來自主設(shè)備的請求,所述訪問處理裝置與所述重建處理并行地執(zhí)行訪問至少一個所述邏輯存儲區(qū)域的主訪問處理, 所述存儲控制設(shè)備進一步包括多重數(shù)設(shè)置值存儲裝置,在其中關(guān)于所述邏輯存儲區(qū)域的每個規(guī)格設(shè)置所述部分處理的多重數(shù),用于以對所述主訪問處理的影響程度基本均勻的方式冗余地存儲數(shù)據(jù),并且 在完成由所述訪問處理裝置執(zhí)行的部分處理時,如果所述緩沖器的使用超過所述閾值,則所述重建控制裝置從所述多重數(shù)設(shè)置值存儲裝置獲取與該邏輯存儲區(qū)域的規(guī)格相對應(yīng)的多重數(shù),并且將針對該邏輯存儲區(qū)域的部分處理的多重數(shù)設(shè)置為所獲取的多重數(shù)。
10.根據(jù)權(quán)利要求9所述的存儲系統(tǒng),其中 在完成由所述訪問處理裝置執(zhí)行的部分處理時所述緩沖器的使用超過所述閾值的情況下,所述重建控制裝置將其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域的部分處理的多重數(shù)設(shè)置為針對所述邏輯存儲區(qū)域的不同規(guī)格預(yù)先確定的共同多重數(shù)。
11.根據(jù)權(quán)利要求8所述的存儲系統(tǒng),其中 在完成由所述訪問處理裝置執(zhí)行的部分處理時所述緩沖器的使用超過所述閾值的情況下,與所述緩沖器的使用小于或等于所述閾值時相比,當針對其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域設(shè)置的優(yōu)先級較低時,所述重建控制裝置減小其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域的部分處理的多重數(shù)。
12.根據(jù)權(quán)利要求2所述的存儲系統(tǒng),其中 響應(yīng)于來自主設(shè)備的請求,所述訪問處理裝置與所述重建處理并行地執(zhí)行訪問至少一個所述邏輯存儲區(qū)域的主訪問處理,以及 每當完成由所述訪問處理裝置執(zhí)行的一個部分處理時,所述重建控制裝置根據(jù)是否正在針對其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域執(zhí)行所述主訪問處理或者所述存儲控制設(shè)備中緩沖器的使用是否超過預(yù)定閾值,來調(diào)節(jié)其執(zhí)行被完成的部分處理所針對的邏輯存儲區(qū)域的部分處理的多重數(shù),并且以恒定的比率改變針對每個所述邏輯存儲區(qū)域的部分處理的多重數(shù),使得被執(zhí)行的部分處理的總數(shù)更接近但不超過預(yù)定的上限。
13.根據(jù)權(quán)利要求I所述的存儲系統(tǒng),其中 每當指示所述訪問處理裝置執(zhí)行的所述兩個或更多的部分處理中的一個被完成時,所述重建控制裝置指示所述訪問處理裝置對所述分割范圍當中的下一個未被處理的分割范圍執(zhí)行所述部分處理,直到完成對所述邏輯存儲區(qū)域的重建處理。
14.根據(jù)權(quán)利要求I所述的存儲系統(tǒng),其中 所述訪問處理裝置 基于所述部分處理執(zhí)行復(fù)制回處理或冗余復(fù)制處理,所述復(fù)制回處理是將所述重建處 理中寫到所述備份存儲設(shè)備的數(shù)據(jù)寫回到第二存儲設(shè)備的處理,所述冗余復(fù)制處理是在不將分配給所述邏輯存儲區(qū)域的第一存儲設(shè)備從所述邏輯存儲區(qū)域中分離出去的情況下執(zhí)行所述重建處理的處理,并且 響應(yīng)于來自所述重建控制裝置的、執(zhí)行包括在所述冗余復(fù)制處理或所述復(fù)制回處理中的兩個或更多的部分處理的指示,并行地執(zhí)行所指示的兩個或更多的部分處理。
15.一種用于控制對包括在存儲設(shè)備組中的多個存儲設(shè)備的訪問的存儲控制設(shè)備,所述存儲控制設(shè)備包括 訪問處理裝置,用于訪問被分配給邏輯存儲區(qū)域的存儲設(shè)備,該邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的兩個或更多的存儲設(shè)備的存儲區(qū)域構(gòu)成,在該邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在另一個存儲設(shè)備中的方式控制數(shù)據(jù)記錄;以及 重建控制裝置,用于使所述訪問處理裝置執(zhí)行重建處理,其中與記錄在分配給所述邏輯存儲區(qū)域的存儲設(shè)備當中的第一存儲設(shè)備中的數(shù)據(jù)相同的數(shù)據(jù)是基于從所述第一存儲設(shè)備以外的所分配的存儲設(shè)備讀取的數(shù)據(jù)產(chǎn)生的,并且所產(chǎn)生的數(shù)據(jù)被寫到不同存儲設(shè)備,所述不同存儲設(shè)備是包括在所述存儲設(shè)備組中的備份存儲設(shè)備和與所述第一存儲設(shè)備進行替換的第二存儲設(shè)備之一, 其中所述重建控制裝置將重建處理分割成部分處理,每個部分處理包括數(shù)據(jù)讀處理和數(shù)據(jù)寫處理的組合,在數(shù)據(jù)讀處理中,從通過分割數(shù)據(jù)讀出目標范圍而產(chǎn)生的分割范圍之一讀取數(shù)據(jù),在數(shù)據(jù)寫處理中,基于從所述分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫到所述不同存儲設(shè)備,并且所述重建控制裝置指示所述訪問處理裝置執(zhí)行所述部分處理,以及 響應(yīng)于來自所述重建控制裝置的指示,所述訪問處理裝置并行地執(zhí)行所述部分處理。
16.一種由存儲控制設(shè)備執(zhí)行的存儲控制方法,所述存儲控制設(shè)備用于控制對包括在存儲設(shè)備組中的多個存儲設(shè)備的訪問,所述存儲控制方法包括 通過將重建處理分割成部分處理來執(zhí)行重建處理,每個部分處理包括數(shù)據(jù)讀處理和數(shù)據(jù)寫處理的組合,其中 在所述重建處理中,與記錄在分配給邏輯存儲區(qū)域的存儲設(shè)備當中的第一存儲設(shè)備中的數(shù)據(jù)相同的數(shù)據(jù)是基于從所述第一存儲設(shè)備以外的所分配的存儲設(shè)備讀取的數(shù)據(jù)產(chǎn)生的,并且所產(chǎn)生的數(shù)據(jù)被寫到不同存儲設(shè)備,所述不同存儲設(shè)備是包括在所述存儲設(shè)備組中的備份存儲設(shè)備和與所述第一存儲設(shè)備進行替換的第二存儲設(shè)備之一,所述邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的兩個或更多的存儲設(shè)備的存儲區(qū)域構(gòu)成,在該邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在另一個存儲設(shè)備中的方式控制數(shù)據(jù)記錄,在數(shù)據(jù)讀處理中,從通過分割數(shù)據(jù)讀出目標范圍而產(chǎn)生的分割范圍之一讀取數(shù)據(jù),并且 在數(shù)據(jù)寫處理中,基于從所述分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫到所述不同存儲設(shè)備;以及 并行地執(zhí)行兩個或更多的所述部分處理。
17.根據(jù)權(quán)利要求16所述的存儲控制方法,其中 所述邏輯存儲區(qū)域多個地設(shè)置,并且每個所述邏輯存儲區(qū)域由包括在所述存儲設(shè)備組中的不同的多個存儲設(shè)備的存儲區(qū)域構(gòu)成,在所述邏輯存儲區(qū)域中,以將數(shù)據(jù)冗余地存儲在不同的存儲設(shè)備中的方式控制數(shù)據(jù)記錄,并且 所述存儲控制方法進一步包括并行地執(zhí)行針對每個所述邏輯存儲區(qū)域的一個或更多的所述部分處理。
18.根據(jù)權(quán)利要求17所述的存儲控制方法,進一步包括 響應(yīng)于來自主設(shè)備的請求,與所述重建處理并行地執(zhí)行訪問至少一個所述邏輯存儲區(qū)域的主訪問處理,并且 當針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,與不針對該邏輯存儲區(qū)域執(zhí)行所述主訪問時相比,減小針對該邏輯存儲區(qū)域的部分處理的多重數(shù)。
19.根據(jù)權(quán)利要求18所述的存儲控制方法,進一步包括, 當針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,參考多重數(shù)設(shè)置值存儲裝置,在所述多重數(shù)設(shè)置值存儲裝置中,關(guān)于所述邏輯存儲區(qū)域的每個規(guī)格設(shè)置所述部分處理的多重數(shù)、用于以對所述主訪問處理的影響程度基本均勻的方式冗余地存儲數(shù)據(jù),從所述多重數(shù)設(shè)置值存儲裝置獲取與所述邏輯存儲區(qū)域的規(guī)格相對應(yīng)的多重數(shù),并且將針對該邏輯存儲區(qū)域的部分處理的多重數(shù)設(shè)置為所獲取的多重數(shù)。
20.根據(jù)權(quán)利要求18所述的存儲控制方法,進一步包括, 當正針對所述邏輯存儲區(qū)域當中的邏輯存儲區(qū)域執(zhí)行所述主訪問處理和所述重建處理二者時,在針對該邏輯存儲區(qū)域設(shè)置的優(yōu)先級較低時,減小針對該邏輯存儲區(qū)域的部分處理的多重數(shù)。
全文摘要
重建控制單元將重建處理分割成部分處理,并且指示訪問處理單元執(zhí)行該部分處理。在重建處理中,與記錄在構(gòu)成RLU#1的第一存儲裝置中的數(shù)據(jù)相同的數(shù)據(jù)是基于從構(gòu)成RLU#1的存儲裝置當中除了第一存儲裝置以外的存儲裝置中讀取的數(shù)據(jù)產(chǎn)生的,并且被寫到包括在存儲系統(tǒng)中的備份存儲裝置。每個部分處理包括從通過將數(shù)據(jù)讀出目標范圍分割成固定尺寸的區(qū)間而產(chǎn)生的分割范圍讀取數(shù)據(jù)的操作和基于從該分割范圍讀取的數(shù)據(jù)將數(shù)據(jù)寫到另一個存儲裝置中的操作的組合。響應(yīng)于來自重建控制單元的執(zhí)行多個部分處理的指示,該訪問處理單元并行地執(zhí)行所指示的部分處理。
文檔編號G06F13/16GK102968387SQ20121031416
公開日2013年3月13日 申請日期2012年8月29日 優(yōu)先權(quán)日2011年8月31日
發(fā)明者前田親志, 大黑谷秀治郎, 池內(nèi)和彥, 渡邊岳志 申請人:富士通株式會社