專利名稱:存儲系統(tǒng)以及存儲控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲控制技術(shù)。
背景技術(shù):
作為與存儲系統(tǒng)有關(guān)的技術(shù),例如公知在特開2001-256003號公報、特開2003-140837號公報、特開平8-328760號公報、特開平10-63576號公報以及特開2002-123479號公報中公開的技術(shù)。
但是,作為可以在存儲系統(tǒng)中采用的體系結(jié)構(gòu),例如具有公共存儲器體系結(jié)構(gòu)或分散存儲器體系機構(gòu)。
根據(jù)公共存儲器體系結(jié)構(gòu),在公共存儲器中存儲與存儲系統(tǒng)有關(guān)的各種各樣的信息,存儲系統(tǒng)內(nèi)的哪個接口基板(例如對于主機裝置的接口基板、以及對于媒體驅(qū)動器的接口基板)都可以訪問公共存儲器內(nèi)的信息。但是,因此向公共存儲器的訪問就會集中,成為瓶頸。
根據(jù)分散存儲器體系結(jié)構(gòu),存在具有路由選擇以及交換功能的上位的路由器以及交換機部,和分割了RAID結(jié)構(gòu)的下位的多個模塊。上位的路由器/交換機部從主機裝置接收命令,并對該命令進行分析,判斷訪問多個模塊中的哪一個,可以訪問多個模塊中的一個或多個的模塊。但是,因此路由器/交換機部的負荷就會增大。此外,一個RAID的結(jié)構(gòu)是由多個模塊提供的,所以在一個模塊發(fā)生了故障的情況下,其它模塊即使正常RAID結(jié)構(gòu)也被破壞。
專利文獻1特開2001-256003號公報專利文獻2特開2003-140837號公報專利文獻3特開平8-328760號公報專利文獻4特開平10-63576號公報專利文獻5特開2002-123479號公報發(fā)明內(nèi)容因此,本發(fā)明的目的之一在于提供一種解除了公共存儲器體系結(jié)構(gòu)和分散存儲器體系結(jié)構(gòu)雙方的問題點的新的存儲控制技術(shù)。
通過后面的說明,本發(fā)明的其他目的將會變得明確。
本發(fā)明的存儲系統(tǒng)具有從存在于存儲系統(tǒng)外部的外部裝置接收命令并進行轉(zhuǎn)發(fā)的路由器;多個RAID模塊;從所述路由器接收命令后發(fā)送給所述多個RAID模塊中的某一個的交換機。各個RAID模塊具備多個媒體驅(qū)動器;由所述多個媒體驅(qū)動器提供的依據(jù)RAID組的邏輯部分件;對與所述外部裝置之間交換的數(shù)據(jù)進行存儲的存儲器;可以對經(jīng)由所述交換機從所述外部裝置接收到的數(shù)據(jù)、從所述邏輯部分件讀出的數(shù)據(jù)進行存儲的存儲器;以及處理器。所述處理器根據(jù)經(jīng)由所述交換機從所述外部裝置接收到的命令,把所述存儲器中存儲的數(shù)據(jù)寫入所述邏輯部分件中,或者將所述存儲器中存儲的數(shù)據(jù)輸出給所述交換機。在該存儲系統(tǒng)中,各個RAID模塊不橫跨其他RAID模塊地單獨具備RAID組。所述外部裝置可以是主機裝置也可以是其他的存儲系統(tǒng)。
在本發(fā)明的一個方式中,所述路由器可以不進行所述命令的分析(例如是寫入命令還是讀取命令的判斷)而對所述命令進行轉(zhuǎn)發(fā)。此時,所述各個RAID模塊內(nèi)的所述處理器進行所述命令的分析,可以執(zhí)行按照該分析結(jié)果的處理。
在本發(fā)明的一個方式中,所述路由器可以具有不進行所述命令的分析而控制所述命令的轉(zhuǎn)發(fā)的命令轉(zhuǎn)發(fā)電路(例如轉(zhuǎn)發(fā)單元);可以存儲用于對命令的轉(zhuǎn)發(fā)進行控制的轉(zhuǎn)發(fā)控制信息的存儲區(qū)域(例如存儲單元)。在所述轉(zhuǎn)發(fā)控制信息中,用于確定命令的轉(zhuǎn)發(fā)目的地的路徑數(shù)據(jù)可以與每個用于識別邏輯部分件的各邏輯部分件ID相對應(yīng)。所述命令轉(zhuǎn)發(fā)電路可以從所述外部裝置接收邏輯部分件ID以及命令,由所述轉(zhuǎn)發(fā)控制信息確定與該邏輯部分件ID相對應(yīng)的路徑數(shù)據(jù),并根據(jù)已確定的路徑數(shù)據(jù)轉(zhuǎn)發(fā)所述接收到的命令。
所述各個RAID模塊可以具備可以對各個邏輯部分件ID進行存儲的存儲資源(例如存儲單元),該各個邏輯部分件ID表示在該RAID模塊中存在的各個邏輯部分件。所述各個RAID模塊(例如處理器)在所述存儲資源中存在邏輯部分件ID的更新時,可以將更新請求和與更新有關(guān)的邏輯部分件ID發(fā)送給所述交換機。所述交換機可以將所述更新請求和與所述更新有關(guān)的邏輯部分件ID發(fā)送給所述路由器。所述路由器可以接收所述更新請求和與所述更新有關(guān)的邏輯部分件ID,并根據(jù)所述更新請求,使用所述已接收到的邏輯部分件ID更新所述轉(zhuǎn)發(fā)控制信息。
這里,所述路由器可以具備緩沖存儲器。所述路由器即使在接收到所述更新請求的情況下,也可以從所述外部裝置接收命令,如果從所述外部裝置接收到了命令,則將所述接收到的命令積蓄在所述緩沖存儲器中,在所述轉(zhuǎn)發(fā)控制信息的更新已結(jié)束的情況下,根據(jù)更新后的轉(zhuǎn)發(fā)控制信息轉(zhuǎn)發(fā)積蓄在所述緩沖存儲器中的各個命令。
此外,所述RAID模塊可以對所述更新請求進行廣播。
在本發(fā)明的一個方式中,所述各個RAID模塊可以具備表示各個邏輯部分件ID和各個媒體驅(qū)動器ID的對應(yīng)的構(gòu)成信息(例如可以具備構(gòu)成信息存儲單元)。在所述各個RAID模塊所具備的構(gòu)成信息中包含存在于具有該構(gòu)成信息的RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID就可以,也可以不包含存在于其他RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID。所述處理器可以由所述構(gòu)成信息確定與從所述交換機接收到的邏輯部分件ID相對應(yīng)的媒體驅(qū)動器ID,來訪問與所述確定的媒體驅(qū)動器ID相對應(yīng)的媒體驅(qū)動器。
根據(jù)本發(fā)明,提供一種解除了公共存儲器體系結(jié)構(gòu)和分散存儲器體系結(jié)構(gòu)雙方的問題點的新的存儲控制技術(shù)。
圖1A表示本發(fā)明第一實施方式的整個系統(tǒng)的結(jié)構(gòu)。
圖1B表示存儲系統(tǒng)3的結(jié)構(gòu)例。
圖2A表示路由器7的結(jié)構(gòu)例。
圖2B表示路由表23的結(jié)構(gòu)例。
圖2C表示路由器7從主機裝置1接收的第一分組組的結(jié)構(gòu)例。
圖2D表示路由器7發(fā)送給SW9的第二分組組的結(jié)構(gòu)例。
圖3A表示SW9的結(jié)構(gòu)例。
圖3B表示RAID模塊11的結(jié)構(gòu)例。
圖4表示在存儲系統(tǒng)3從主機裝置1接收到命令時進行的處理的流程的一個例子。
圖5表示在存儲系統(tǒng)3中進行的路由表更新處理的流程的一個例子。
圖6A表示邊界外方式的一個例子。
圖6B表示第一邊界內(nèi)方式的一個例子。
圖6C表示在本實施方式中所采用的第二邊界內(nèi)方式。
圖7A是本發(fā)明一實施方式的一個變形例的說明圖。
圖7B是本發(fā)明一實施方式的其他變形例的說明圖。
具體實施例方式
下面,參照附圖對本發(fā)明的一實施方式進行說明。
圖1A表示本發(fā)明第一實施方式的整個系統(tǒng)的結(jié)構(gòu)例。
可以通過通信網(wǎng)絡(luò)2可通信地連接多臺(也可以為1臺)主機裝置1、1、...和存儲系統(tǒng)3。
主機裝置1例如是具備CPU、存儲器以及顯示裝置等硬件資源的計算機裝置(例如服務(wù)器)。主機裝置1可以對存儲系統(tǒng)3發(fā)送讀出對象數(shù)據(jù)的讀取命令、寫入命令以及寫入對象數(shù)據(jù)。
作為通信網(wǎng)絡(luò)2可以采用各種各樣的通信網(wǎng)絡(luò)。具體地說,例如通信網(wǎng)絡(luò)2可以采用SAN(storage Area Network)或者LAN(Local Area Network)。
存儲系統(tǒng)3例如可以采用像矩陣狀地排列多個媒體驅(qū)動器而構(gòu)成的RAID(Redundant Array of Independent Inexpensive Disks)那樣的磁盤陣列系統(tǒng)。
圖1B表示存儲系統(tǒng)3的結(jié)構(gòu)例。
在存儲系統(tǒng)3中具備多個協(xié)議芯片(在圖中略記為「PC」)5、5、...;多個路由器7、7、...;交換機(以下為SW)9;多個RAID模塊11、11、...;以及服務(wù)處理器(以下為SVP)22。協(xié)議芯片5、路由器7以及RAID模塊11中的至少一個可以是1個。
協(xié)議芯片5是對主機裝置1和路由器7之間交換的命令進行協(xié)議轉(zhuǎn)換的電路。
路由器7接收由協(xié)議芯片5協(xié)議轉(zhuǎn)換后的命令(還存在除了命令之外接收數(shù)據(jù)的情況),進行該命令的路徑控制。此外,也可以將上述的協(xié)議芯片5內(nèi)置于路由器7中。
SW9是對各個路由器7、各個RAID模塊11以及SVP22的相互連接進行切換的裝置。SW9例如可以采用縱橫制SW。在SW9中具有與路由器7連接的兩個或多于兩個的端口12A、12A、...;和與RAID模塊3連接的兩個或多于兩個的端口12B、12B、...。
RAID模塊11是具有超高速緩沖存儲器、處理器等的組件(如果用別的說法為一組),具有不依存于其他的RAID模塊11的RAID結(jié)構(gòu)。即,存在于RAID模塊11中的RAID結(jié)構(gòu)與其他的RAID模塊11獨立,即使在其他的RAID模塊11中發(fā)生了故障也不會被損壞。這里,RAID結(jié)構(gòu)例如可以為按照規(guī)定的RAID等級(例如RAID5)設(shè)定的RAID組(例如一個或多個邏輯部分件(以下稱為LU))。
SVP22是可以經(jīng)由SW9對各個路由器7、各個RAID模塊11進行訪問的裝置。具體地說,例如SVP22是維護用終端,可以具備管理者進行操作的輸入裝置(例如鍵盤或鼠標)、按照管理者的操作執(zhí)行處理的控制裝置(例如安裝了CPU等的母插件)、顯示在RAID模塊11、路由器7中設(shè)定的信息的顯示裝置(例如顯示器畫面)。SVP22可以安裝在存儲系統(tǒng)3上,也可以經(jīng)由LAN等通信網(wǎng)路遠距離地設(shè)置。此外,至少在一個主機裝置1上具有SVP22的功能,該主機裝置1作為SVP22可以對存儲系統(tǒng)3進行控制。
以上是存儲系統(tǒng)3的概要。在該實施方式中,為了使下面的說明容易理解設(shè)各個路由器7經(jīng)由SW9與全部的RAID模塊11連接,換句話說,設(shè)設(shè)各個RAID模塊11經(jīng)由SW9與全部的路由器7相連接。
下面對該存儲系統(tǒng)3所具備的各種要素進行詳細地說明。
圖2A表示路由器7的結(jié)構(gòu)例。
路由器7不具備CPU,不對從主機裝置1接收到的命令進行分析。這一點是對存儲系統(tǒng)3實施的一個辦法。路由器7例如是一種電路基板,具備本地存儲器(以下稱為LM)21和ASIC(Application Specific Integrated Circuit)27。
LM27是易失性或非易失性存儲器。在LM27中例如設(shè)置了用于暫時存儲經(jīng)由路由器7交換的分組組(包含命令以及/或者數(shù)據(jù))的分組緩沖存儲器25。此外,LM27可以存儲路由表23。路由表23是用于對來自主機裝置1的命令、數(shù)據(jù)的路徑(換句話說是轉(zhuǎn)發(fā)目的地)進行控制的信息。如圖2B所示,在路由表23中登錄多個信息要素集合。在各個信息要素集合中包含邏輯部分件號碼(以下為LUN)和端口號碼(以下為端口#)。所謂LUN是用于確定LU的號碼(也可以是號碼以外的ID)。所謂端口#是SW9具備的多個端口中與路由器7相連接的端口12A的號碼。此外,LUN以及端口#也可以是號碼外之外的ID。
ASIC27是控制分組組的轉(zhuǎn)發(fā)的LSI(Large Scale Integration)。該ASIC27可以為純粹的硬件電路。ASIC27經(jīng)由協(xié)議芯片5從主機裝置1接收圖2C所示的第一分組組(例如包含LUN和命令的信息),并且對SW9發(fā)送附加了端口#的分組組(例如圖2D所示的分組組,以下稱為第二分組組)。關(guān)于ASIC27所進行的處理在后面參照圖4來進行詳細的說明。
圖3A表示SW9的結(jié)構(gòu)例。
在SW9中安裝了ASIC31,該ASIC31對在路由器7和RAID模塊11之間交換的分組組的轉(zhuǎn)發(fā)進行控制。ASIC31可以與SVP22連接。SVP22經(jīng)由該ASIC31可以對各個路由器7或各個RAID模塊11進行訪問。
圖3B表示RAID模塊11的結(jié)構(gòu)例。
在RAID模塊11中具備多個媒體驅(qū)動器57、57、...,向各個媒體驅(qū)動器57的訪問路徑被二重化。媒體驅(qū)動器57是具備可以存儲數(shù)據(jù)的存儲媒體的裝置,例如是硬盤驅(qū)動器。在RAID模塊11中具備控制部53和存儲部54。
在控制部53中具備超高速緩沖存儲器(以下稱為CM)51、二重化的轉(zhuǎn)發(fā)控制LSI49、二重化的磁盤控制器41、41??刂撇?3例如可以由一個或多個電路基板構(gòu)成。
CM51是可以對在路由器7和媒體驅(qū)動器57之間交換的數(shù)據(jù)進行存儲的存儲器。此外,CM51也可以存儲與具有自己的RAID模塊(以下稱為該模塊)11的結(jié)構(gòu)有關(guān)的構(gòu)成信息。如果換一種說法,由于該RAID模塊11從其他的RAID模塊11中獨立出來,所以CM51無需存儲與其他的RAID模塊11有關(guān)的構(gòu)成信息。
轉(zhuǎn)發(fā)控制LSI49例如是集線器,控制CM51、控制器41、媒體驅(qū)動器57以及SW9之間的分組組的轉(zhuǎn)發(fā)。
控制器41控制對各個媒體驅(qū)動器57的數(shù)據(jù)的輸入輸出。在控制器41中例如具有微處理器(以下稱為MP)43、引導(dǎo)(boot)存儲器45以及LM47。引導(dǎo)存儲器45存儲了MP43的啟動用程序。MP43可以通過從引導(dǎo)存儲器45讀取該程序來進行啟動。此外,MP43例如通過從LM47讀入控制程序并執(zhí)行該控制程序,可以發(fā)揮存儲虛擬化功能(例如把兩個或多于兩個的媒體驅(qū)動器57作為一個存儲資源提供給主機裝置1的功能)。LM47用作MP43的工作區(qū)域。LM47可以代替CM51存儲構(gòu)成信息。
存儲部54中具備所述多個媒體驅(qū)動器57;對各個媒體驅(qū)動器57和控制部53之間的通信進行控制的交換機(例如,光纖通道交換機(以下稱為FSW)55)。在多個媒體驅(qū)動器57設(shè)定作為邏輯存儲設(shè)備的邏輯部分件(LU)61。圖3B中表示一個LU61,但是當然可以設(shè)定多個LU61。
以下,對在存儲系統(tǒng)3中進行的各種各樣的處理流程進行說明。
圖4表示在存儲系統(tǒng)3從主機裝置1接收到命令時進行的處理的流程的一個例子。
主機裝置1對存儲系統(tǒng)3發(fā)送第一分組組(步驟S1)。具體地說,例如主機裝置1對存儲系統(tǒng)3發(fā)送對作為訪問目的地(例如數(shù)據(jù)的寫入目的地或讀出源)的LUN進行了指定的命令(例如寫入命令或讀取命令)。
存儲系統(tǒng)3的路由器7經(jīng)由協(xié)議芯片5從主機裝置1接收第一分組組。路由器7的ASIC27將接收到的第一分組組積蓄在LM21內(nèi)的分組緩沖存儲器25中(S2)。
然后,ASIC27根據(jù)路由表23確定與第一分組組內(nèi)的LUN相對應(yīng)的端口#(S3)。具體地說,例如ASIC27確定與第一分組組內(nèi)的LUN相對應(yīng)的、并且與不是占線狀態(tài)的端口12A對應(yīng)的端口#。
ASIC27從分組緩沖存儲器25讀出第一分組組,并對所讀出的第一分組組附加在S3中確定的端口#來作為第二分組組(S4),然后將第二分組組發(fā)送給與該端口#對應(yīng)的SW9的端口12A(S5)。
SW9的ASIC31經(jīng)由某個端口12A接收第二分組組,并把接收到的第二分組組經(jīng)由與某個端口12A對應(yīng)的端口12B發(fā)送給與該端口12B相連接的RAID模塊11(S6)。
在接收到第二分組組的RAID模塊11中,轉(zhuǎn)發(fā)控制LSI49把第二分組組內(nèi)的命令轉(zhuǎn)發(fā)給控制器41。如果在第二分組組內(nèi)包含了寫入對象數(shù)據(jù),則轉(zhuǎn)發(fā)控制LSI49將寫入對象數(shù)據(jù)寫入CM51。
控制器41的MP43從轉(zhuǎn)發(fā)控制LSI49接收命令,并對接收到的命令進行分析(S7)。具體地說,例如MP43判斷接收到的命令是寫入命令還是讀取命令。
在RAID模塊11內(nèi)執(zhí)行與MP43的判斷結(jié)果是寫入命令還是讀取命令相對應(yīng)的處理(S8)。
例如,在MP43判斷為是讀取命令的情況下,MP43可以對構(gòu)成與第二分組組內(nèi)的LUN對應(yīng)的LU61的各個媒體驅(qū)動器57請求由讀取命令所指定的讀出對象數(shù)據(jù)。例如可以通過參照已經(jīng)寫入了LUN和媒體驅(qū)動器ID的對應(yīng)關(guān)系的構(gòu)成信息71(參照圖5)來確定構(gòu)成該LU61的各個媒體驅(qū)動器57是哪一個。從接收到請求的各個媒體驅(qū)動器57讀出所請求的數(shù)據(jù),讀出的數(shù)據(jù)經(jīng)由轉(zhuǎn)發(fā)控制LSI49被寫入CM51。然后,該數(shù)據(jù)被從CM51讀出,經(jīng)由轉(zhuǎn)發(fā)控制LSI49發(fā)送給輸出了第二分組組的端口12B。由此,經(jīng)由SW9以及路由器7對讀出命令的發(fā)行源的主機裝置1發(fā)送讀出對象數(shù)據(jù)。
另一方面,在MP43判斷為是寫入命令的情況下,MP43使轉(zhuǎn)發(fā)控制LSI49把在CM51中寫入的寫入對象數(shù)據(jù)向構(gòu)成與第二分組組內(nèi)的LUN對應(yīng)的LU61的各個媒體驅(qū)動器57寫入。由此,在CM51中寫入的寫入對象數(shù)據(jù)經(jīng)由轉(zhuǎn)發(fā)控制LSI49被寫在構(gòu)成LU61的各個媒體驅(qū)動器57中。
以上是存儲系統(tǒng)3從主機裝置1接收到命令時進行的處理的流程的一個例子。根據(jù)該處理,在路由器7中設(shè)定了將轉(zhuǎn)發(fā)路徑與各個LUN相對應(yīng)起來的路由表23。路由器7根據(jù)路由表23確定與主機裝置1所指定的LUN對應(yīng)的轉(zhuǎn)發(fā)路徑,可以使命令通過該轉(zhuǎn)發(fā)路徑。具體地說,作為轉(zhuǎn)發(fā)路徑設(shè)定了SW9的端口12A的端口#。如果端口12A決定了,則成為來自SW9的命令的出口的端口12B就決定了,如果端口12B決定了,則成為命令的行進目的地的RAID模塊11也決定了。在RAID模塊11中,哪個媒體驅(qū)動器57與哪個LUN的LU61對應(yīng)作為構(gòu)成信息71被進行管理,如果將LUN以及命令發(fā)送給RAID模塊11,則在該RAID模塊11中對命令進行分析,據(jù)此對提供與該LUN相對應(yīng)的LU61的媒體驅(qū)動器57進行訪問。因此,在該實施方式中,根據(jù)由路由器7接收到的LUN來決定向媒體驅(qū)動器57的路徑。
然而,在該實施方式中,有時產(chǎn)生需要更新路由器7具有的路由表23的事件(以下稱為路由表更新事件)。所謂該事件是與在路由表23中寫入的信息要素有關(guān)的信息的更新,具體地說,例如是RAID模塊內(nèi)的LUN的追加、變更或刪除。作為該事件產(chǎn)生的具體的例子,考慮有由SVP22等加載構(gòu)成信息71;通過SVP22等更新構(gòu)成信息71;或者追加或刪除RAID模塊11。
在發(fā)生了路由表更新事件的情況下,在存儲系統(tǒng)3中進行用于路由表更新的處理。
圖5表示在存儲系統(tǒng)3中進行的路由表更新處理的流程的一個例子。此外,在該圖5中,使用50以后的號碼表示路由表更新處理的步驟,并使用10~30之間的號碼表示來自主機裝置1的命令的轉(zhuǎn)發(fā)的步驟。
RAID模塊11內(nèi)的MP43可以檢測路由表更新事件的發(fā)生(S51)。具體地說,例如MP43在加載了來自SVP22的構(gòu)成信息71并寫入CM51(或者LM47)的情況下,或者在追加、變更或者刪除CM51中存在的構(gòu)成信息71的LUN的情況下,可以認為是上述事件的產(chǎn)生。
MP43對表更新請求(UP_REQ0)進行廣播(S52)。具體地說,例如從該RAID模塊11的各個端口輸出表更新請求。由此,經(jīng)由SW9對所有的路由器7發(fā)送表更新請求(S53)。下面,為了簡化說明,以一個RAID模塊11和一個路由器7之間的交換為例進行說明。
路由器7的ASIC27在接收到UP_REQ0的情況下,如果能夠接受對路由表23進行追加、變更或者刪除的信息,則可以將表示可以更新的狀態(tài)(UP_RDY0)向UP_REQ0的發(fā)送源端口12A進行回答(S54)。此外,在回答了狀態(tài)(UP_RDY0)時,ASIC27可以將路由器7的狀態(tài)從可以接收來自主機裝置1的第一分組組來進行處理的通常狀態(tài)經(jīng)由作為休息的空閑狀態(tài),切換為路由表23的更新等待狀態(tài)(例如可以將空閑狀態(tài)作為暫時的狀態(tài))。具體地說,例如ASIC27在每次切換路由器7的狀態(tài)時,可以將表示切換后的狀態(tài)的狀態(tài)數(shù)據(jù)寫入LM21。
如果ASIC27在回答UP_RDY0之前從主機裝置1接收到第一分組組(S10),由于是通常狀態(tài),所以使用舊的(即更新前)路由表23進行圖4的從S2到S4的處理。結(jié)果,使圖4的S5以及S6相同,向RAID模塊11發(fā)送第二分組組(S5以及S6),并且在RAID模塊11中進行該第二分組組內(nèi)的命令的分析等。
路由器7的ASIC27從回答了UP_RDY0的時刻開始,即使從第一主機裝置1接收到第一分組組,也將第一分組組積蓄在分組緩沖存儲器25中,但不把該第一分組組發(fā)送給SW9(即,成為不把第一分組組發(fā)送給主機裝置1的時間帶T的開始)。
由ASIC27回答的UP_RDY0經(jīng)由SW9被發(fā)送給RAID模塊11(S55)。
RAID模塊11的MP43如果確認了UP_RDY0,則把路由表23的更新所需要的信息(UPDATE0)向UP_RDY0的發(fā)送源端口12B進行發(fā)送(或者進行廣播)(S56)。如果UPDATE0中包含的信息要素例如是LUN的追加,則可以為追加LUN的指示(例如標志)和應(yīng)追加的LUN。如果是LUN的刪除,則可以為刪除LUN的指示(例如標志)和應(yīng)刪除的LUN。如果是LUN的變更,則可以為變更LUN的指示(例如標志)和變更前的LUN以及變更后的LUN。UPDATE0經(jīng)由SW9被發(fā)送給路由器7(S57)。
路由器7的ASIC27在接收到UPDATE0時,可以將路由器7從變更等待狀態(tài)經(jīng)由空閑狀態(tài)切換為更新狀態(tài),而且可以根據(jù)接收到的UPDATE0更新路由表23(S58)。例如ASIC27在檢測出在UPDATE0中包含了追加LUN的指示的情況下,可以在路由表23中追加UPDATE0中包含的LUN、與各個端口#的信息要素集合。此時追加的信息要素集合的數(shù)量可以與端口12A的數(shù)量相同。此外,例如ASIC27在檢測出在UPDATE0中包含了刪除LUN的指示的情況下,可以從路由表23中刪除包含與UPDATE0中所包含的LUN一致的LUN的全部的信息要素集合。此外,例如,ASIC27在檢測出在UPDATE0中包含了變更LUN的指示的情況下,可以將與UPDATE0中所包含的變更前LUN一致的路由表23上的LUN更新為變更后的LUN。
如果路由表23的更新已結(jié)束,則ASIC27把表示路由表23更新結(jié)束的狀態(tài)(ST0)回答給UPDATE0的發(fā)送源端口12A(S59)。ST0經(jīng)由SW9被發(fā)送給RAID模塊11(S60)。
此外,在回答了ST0的時刻,沒有把第一分組組發(fā)送給主機裝置1的時間帶T就會結(jié)束。此時,ASIC27可以把路由器7的狀態(tài)從更新狀態(tài)經(jīng)由空閑狀態(tài)切換為通常狀態(tài)。此時,ASIC27可以讀出積蓄在分組緩沖存儲器25中的第一分組組,并根據(jù)新的(即更新后的)路由表23確定與第一分組組內(nèi)的LUN對應(yīng)的端口#。即,對于該第一分組組,使用新的路由表23進行圖4的S3-S8(在時間帶T結(jié)束后接收到第一分組組的情況下,從圖4的S2開始進行)。
以上是在存儲系統(tǒng)3中進行的路由表更新處理的流程的一個例子。此外,該處理流程還可以適用于在LM21上新地設(shè)定路由表23的情況。例如在路由器7的LM21的路由表21中寫入了可以對應(yīng)的全部的端口#,LUN成為空白。此時,各個RAID模塊11對各個路由器7通知在自身的構(gòu)成信息71中記錄的全部的LUN,各個路由器7的ASIC27通過將已通知的LUN與各個端口#相對應(yīng),可以構(gòu)筑路由表23。
根據(jù)以上的實施方式,在存儲系統(tǒng)3中準備單獨具有RAID結(jié)構(gòu)的RAID模塊11。RAID模塊11不依存于其他的RAID模塊11。例如,RAID模塊11內(nèi)的MP43使用該模塊11內(nèi)的CM51,但不使用其他RAID模塊11內(nèi)的MP51。因此,可以期待與RAID模塊11的數(shù)量實質(zhì)成比例的性能。
此外,根據(jù)上述的實施方式,可以以RAID模塊11為單位增設(shè)或去掉。因此,可以期待擴張性的提高。
此外,根據(jù)上述的實施方式,在RAID模塊11的上位安裝從主機裝置1接收LUN以及命令的路由器7。該路由器7不對來自主機裝置1的命令進行分析(例如該命令是讀出命令還是寫入命令的判斷),而是可以將該命令分配給恰當?shù)南挛晦D(zhuǎn)發(fā)目的地。因此,路由器7的處理時間長度變短,由此可以期待對主機裝置1提供高速的訪問處理。
此外,根據(jù)上述的實施方式,從RAID模塊11對各個路由器7發(fā)行更新請求或更新信息。各個路由器7在接收到更新請求時,至少到更新路由表23之前為分組未發(fā)送狀態(tài)。各個路由器7在該狀態(tài)中,在從主機裝置1接收到命令時,將命令積蓄在分組緩沖存儲器25中,在解除該狀態(tài)之后按照更新后的路由表23進行命令的分配。由此,存儲系統(tǒng)3可以一邊從主機裝置1接收第一分組組(如果換句話說,即使主機裝置1不停止第一分組組的發(fā)行),一邊更新RAID模塊11內(nèi)的LUN,與此相伴更新各個路由器7的路由表23。
此外,根據(jù)上述的實施方式,采用圖6C表示的方式,即采用在RAID模塊11上安裝用于發(fā)揮存儲虛擬化功能的控制程序70的邊界內(nèi)(in bound)方式。MP43通過執(zhí)行控制程序70,例如可以從構(gòu)成信息71(參照圖5)確定與LUN對應(yīng)的驅(qū)動器#,可以訪問與LUN的LU61對應(yīng)的各個媒體驅(qū)動器57。這樣的邊界內(nèi)方式可以緩解圖6A所示的邊界外(out bound)方式、圖6B所示的其他邊界內(nèi)方式的缺點。即,根據(jù)圖6A所示的邊界外方式,因為每個主機裝置1都需要控制程序70,所以考慮到購入成本變高的問題。根據(jù)圖6B所示的邊界內(nèi)方式,中繼裝置80(例如SW9、路由器7或者存在于通信網(wǎng)絡(luò)2中的交換機)進行命令分析等處理,存在性能惡化的可能。如果是圖6C所示的邊界內(nèi)方式,可以緩解這些缺點。
以上對本發(fā)明的一實施方式進行了說明,這是用于說明本發(fā)明的一個例子,并沒有將本發(fā)明的范圍限定于該實施方式的意思,本發(fā)明也可以通過其他各種各樣的方式來進行實施。
例如,如圖7A所示,可以對多個路由器7進行一體化(例如可以由一個電路基板90來制作)。由此,可以實現(xiàn)多個路由器7的電源的通用化。
此外,如圖7B所示,可以對路由器7和RAID模塊11內(nèi)的控制部53進行一體化(例如可以由一個電路基板110來制作)。由此可以實現(xiàn)路由器7和控制部53的電源的通用化。
此外,例如在路由表23中登錄的信息要素集合中,除了LUN以及端口#之外,還可以包含其他種類的信息要素。作為其他種類的信息要素,例如可以是構(gòu)成與LUN對應(yīng)的LU的驅(qū)動器ID。此外,例如可以采用用于識別成為命令的轉(zhuǎn)發(fā)目的地的RAID模塊11的ID(例如號碼、以下為模塊#)。此時,路由器7除了端口#之外,還可以對來自主機裝置1的第一分組組附加模塊#來對SW9進行發(fā)送。由此,第二分組組(包含端口#、模塊#以及第一分組組)被發(fā)送給根據(jù)該第二分組組內(nèi)的模塊#識別的RAID模塊11。
此外,例如在路由表23中登錄的端口#以及/或者對第一分組組附加的端口#可以是多個種類。例如代替端口12A的端口#或者在此之上,可以是端口12B的端口#、路由器7的端口(未圖示)的端口#以及RAID模塊的端口(未圖示)的端口#中的至少一個。
權(quán)利要求
1.一種存儲系統(tǒng),其特征在于,具有從存在于存儲系統(tǒng)外部的外部裝置接收命令并進行轉(zhuǎn)發(fā)的路由器;多個RAID模塊;和從所述路由器接收命令然后發(fā)送給所述多個RAID模塊中的某一個的交換機,各個RAID模塊具備多個媒體驅(qū)動器;依據(jù)由所述多個媒體驅(qū)動器提供的RAID組的邏輯部分件;對與所述外部裝置之間交換的數(shù)據(jù)進行存儲的存儲器;可以對經(jīng)由所述交換機從所述外部裝置接收到的數(shù)據(jù)、從所述邏輯部分件讀出的數(shù)據(jù)進行存儲的存儲器;和處理器,其根據(jù)經(jīng)由所述交換機從所述外部裝置接收到的命令,把所述存儲器中存儲的數(shù)據(jù)寫入所述邏輯部分件中,或者將所述存儲器中存儲的數(shù)據(jù)輸出給所述交換機,不橫跨其他RAID模塊地單獨具備所述RAID組。
2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述路由器不進行所述命令的分析,而是對所述命令進行轉(zhuǎn)發(fā),所述各個RAID模塊內(nèi)的所述處理器進行所述命令的分析,執(zhí)行按照該分析結(jié)果的處理。
3.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述路由器具有不進行所述命令的分析,而是控制所述命令的轉(zhuǎn)發(fā)的命令轉(zhuǎn)發(fā)電路;和可以存儲用于對命令的轉(zhuǎn)發(fā)進行控制的轉(zhuǎn)發(fā)控制信息的存儲區(qū)域,在所述轉(zhuǎn)發(fā)控制信息中,把用于確定命令的轉(zhuǎn)發(fā)目的地的路徑數(shù)據(jù)與每個用于識別邏輯部分件的各邏輯部分件ID相對應(yīng),所述命令轉(zhuǎn)發(fā)電路可以從所述外部裝置接收邏輯部分件ID以及命令,由所述轉(zhuǎn)發(fā)控制信息確定與該邏輯部分件ID相對應(yīng)的路徑數(shù)據(jù),并根據(jù)已確定的路徑數(shù)據(jù)轉(zhuǎn)發(fā)所述接收到的命令。
4.根據(jù)權(quán)利要求3所述的存儲系統(tǒng),其特征在于,所述各個RAID模塊具備可以對各個邏輯部分件ID進行存儲的存儲資源,該各個邏輯部分件ID表示在該RAID模塊中存在的各個邏輯部分件,在所述存儲資源中存在邏輯部分件ID的更新時,可以將更新請求和與更新有關(guān)的邏輯部分件ID發(fā)送給所述交換機,所述交換機將所述更新請求和與所述更新有關(guān)的邏輯部分件ID發(fā)送給所述路由器,所述路由器接收所述更新請求和與所述更新有關(guān)的邏輯部分件ID,并根據(jù)所述更新請求,使用所述已接收到的邏輯部分件ID更新所述轉(zhuǎn)發(fā)控制信息。
5.根據(jù)權(quán)利要求4所述的存儲系統(tǒng),其特征在于,所述路由器具備緩沖存儲器,即使在接收到所述更新請求的情況下,也從所述外部裝置接收命令,如果從所述外部裝置接收到了命令,則將所述接收到的命令存儲在所述緩沖存儲器中,在所述轉(zhuǎn)發(fā)控制信息的更新已結(jié)束的情況下,根據(jù)更新后的轉(zhuǎn)發(fā)控制信息轉(zhuǎn)發(fā)積蓄在所述緩沖存儲器中的各個命令。
6.根據(jù)權(quán)利要求3所述的存儲系統(tǒng),其特征在于,所述RAID模塊對所述更新請求進行廣播。
7.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述各個RAID模塊具備表示各個邏輯部分件ID和各個媒體驅(qū)動器ID的對應(yīng)的構(gòu)成信息,在所述各個RAID模塊所具備的構(gòu)成信息中包含存在于具有該構(gòu)成信息的RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID,不包含存在于其他RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID,所述處理器由所述構(gòu)成信息確定與從所述交換機接收到的邏輯部分件ID相對應(yīng)的媒體驅(qū)動器ID,來訪問與所述確定的媒體驅(qū)動器ID相對應(yīng)的媒體驅(qū)動器。
8.一種存儲控制方法,其在存儲系統(tǒng)中實現(xiàn),其特征在于,使用路由器從存在于存儲系統(tǒng)外部的外部裝置接收命令,所述路由器不進行所述命令的分析,將所述命令轉(zhuǎn)發(fā)給安裝在交換機上的多個端口中的某一個端口,從所述交換機的其他的端口輸出從所述交換機的某個端口輸入的命令,轉(zhuǎn)發(fā)給多個RAID模塊中的某一個,接收到命令的RAID模塊內(nèi)的處理器對該命令進行分析,并按照該分析的結(jié)果對存在于該RAID模塊中的邏輯部分件進行訪問。
9.一種存儲系統(tǒng),其特征在于,具有從存在于存儲系統(tǒng)外部的外部裝置接收命令并進行轉(zhuǎn)發(fā)的路由器;多個RAID模塊;和從所述路由器接收命令然后發(fā)送給所述多個RAID模塊中的某一個的交換機,所述路由器、各個RAID模塊以及所述各個交換機具有端口,各個RAID模塊具備多個媒體驅(qū)動器;依據(jù)由所述多個媒體驅(qū)動器提供的RAID組的邏輯部分件;對與所述外部裝置之間交換的數(shù)據(jù)進行存儲的存儲器;可以對經(jīng)由所述交換機從所述外部裝置接收到的數(shù)據(jù)、從所述邏輯部分件讀出的數(shù)據(jù)進行存儲的存儲器;和處理器,其根據(jù)經(jīng)由所述交換機從所述外部裝置接收到的命令,把所述存儲器中存儲的數(shù)據(jù)寫入所述邏輯部分件中,或者將所述存儲器中存儲的數(shù)據(jù)輸出給所述交換機,不橫跨其他RAID模塊地單獨具備所述RAID組,所述路由器具有不進行所述命令的分析,而是控制所述命令的轉(zhuǎn)發(fā)的命令轉(zhuǎn)發(fā)電路;和可以存儲用于對命令的轉(zhuǎn)發(fā)進行控制的轉(zhuǎn)發(fā)控制信息的存儲區(qū)域,在所述轉(zhuǎn)發(fā)控制信息中,把用于識別端口的端口ID與每個用于識別邏輯部分件的各個邏輯部分件ID相對應(yīng),所述命令轉(zhuǎn)發(fā)電路從所述外部裝置接收邏輯部分件ID以及命令,由所述轉(zhuǎn)發(fā)控制信息確定與該邏輯部分件ID相對應(yīng)的端口ID,并對邏輯部分件ID以及命令的集合附加所確定的端口ID來轉(zhuǎn)發(fā)附加了所述端口ID的所述集合,所述各個RAID模塊具備表示各個邏輯部分件ID和各個媒體驅(qū)動器ID的對應(yīng)的構(gòu)成信息,在所述各個RAID模塊所具備的構(gòu)成信息中包含存在于具有該構(gòu)成信息的RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID,不包含存在于其他RAID模塊中的邏輯部分件以及媒體驅(qū)動器各自的ID,所述處理器從所述交換機接收所述集合,對所述接收到的集合內(nèi)的命令進行分析,并且由所述構(gòu)成信息確定與所述接收到的集合內(nèi)的邏輯部分件ID相對應(yīng)的媒體驅(qū)動器ID,并按照所述命令分析的結(jié)果訪問與所述確定的媒體驅(qū)動器ID相對應(yīng)的媒體驅(qū)動器。
全文摘要
提供一種解除了公共存儲器體系結(jié)構(gòu)和分散存儲器體系結(jié)構(gòu)雙方的問題點的新的存儲控制技術(shù)。在存儲系統(tǒng)(3)中具備接收并轉(zhuǎn)發(fā)命令的路由器(7)、多個RAID模塊(11)、從路由器(3)接收命令并對多個RAID模塊(11)的某一個進行發(fā)送的交換機(9)。在各個RAID模塊(11)中具備多個媒體驅(qū)動器(57),由這些多個媒體驅(qū)動器(57)提供RAID組。各個RAID模塊(11)不橫跨其他RAID組地單獨具備RAID組。此外,在存儲系統(tǒng)(3)中,路由器(7)不進行命令的分析而是進行命令的轉(zhuǎn)發(fā),RAID模塊(11)內(nèi)的處理器(43)進行命令的分析。
文檔編號H04L12/54GK1924783SQ200610058400
公開日2007年3月7日 申請日期2006年3月3日 優(yōu)先權(quán)日2005年8月29日
發(fā)明者藤井正范 申請人:株式會社日立制作所