信息和分配表基地址信息保存在分配模塊33內(nèi)(S2)。但本發(fā)明也有效適于在存儲器24a、24b的雙方保存相同內(nèi)容的分配表241的結(jié)構(gòu)。
[0048]假設(shè)在S2的處理結(jié)束之后,發(fā)生了服務(wù)器3訪問存儲裝置2的卷的處理的情況。在該情況下,在S3中,MPU31生成I/O指令。如上所述,在I/O指令中包含有發(fā)送源服務(wù)器3的信息即S_ID和卷的LUN。
[0049]當分配模塊33從MPU31接收I/O指令時,提取I/O指令內(nèi)的S_ID和LUN,利用S_ID和LUN計算出分配表241的訪問地址(S4)。該處理的詳細內(nèi)容在后面敘述。此外,分配模塊33成為通過向存儲裝置2的存儲器241發(fā)行指定了地址的訪問請求,能夠參照該地址的數(shù)據(jù)的構(gòu)成,在S6中,利用在S4中計算出的地址,訪問控制器21的分配表241。此時,基于在S2中儲存的表讀取目的地信息,訪問控制器21a、21b的某一個(在圖3中,記載了訪問分配表241a的情況)。當訪問分配表241時,判明控制器21a、21b的哪一個具有訪問對象卷的所有者權(quán)限。
[0050]在S7中,基于在S6中獲取的信息,向控制器21a、控制器21b的某一個傳送(在S3中接收的)I/O指令。此外,在圖3中,記載有在控制器21b具有所有者權(quán)限的情況下的例子。接收了 I/O指令的控制器21 (21b)在控制器21內(nèi)進行處理,將其響應(yīng)返回至服務(wù)器3(的MPU31) (S8),I/O處理結(jié)束。此后,每當從MPU31發(fā)行I/O指令時都進行S3?S8的處理。
[0051](分配表、索引表)
[0052]接著,利用圖4、圖5,對在圖3的S4中由分配模塊33計算出的分配表241的訪問地址及分配表241的內(nèi)容進行說明。存儲控制器21的存儲器24為具有64比特的地址空間的儲存區(qū)域,分配表241保存在存儲器24內(nèi)的連續(xù)區(qū)域中。圖4示出由分配模塊33計算出的分配表241內(nèi)地址信息的格式。該地址信息由42比特的分配表基地址、8比特的索引(Index)、12比特的LUN以及2比特的固定值(值為00)構(gòu)成。分配表基地址為在圖3的S2中分配模塊33從控制器21接收的信息。
[0053]索引402為以在I/O指令中包含的服務(wù)器3的信息(S_ID)為基礎(chǔ),由存儲裝置2導(dǎo)出的8比特的信息,導(dǎo)出方法在后面敘述(此外,以下,將從該服務(wù)器3的S_ID導(dǎo)出的信息稱為“索引編號”)。另外,控制器21a、21b將S_ID與索引編號之間的對應(yīng)關(guān)系的信息作為圖11示出的索引表600進行維護管理(對該信息的生成契機、生成方法也在后面敘述)。LUN403為在I/O指令中包含的訪問對象LU (卷)的邏輯單元編號(LUN)。服務(wù)器3的分配模塊33在圖3的S4的處理中,生成遵照圖4的格式的地址。例如在分配表基地址為O且索引編號為O的服務(wù)器3想獲取LUN = I的LU的所有者權(quán)限信息的情況下,分配模塊33生成地址0x0000 0000 0000 0004,通過讀取存儲器24的地址0x0000 0000 0000 0004的內(nèi)容來獲取所有者權(quán)限信息。
[0054]接著,利用圖5,對分配表241的內(nèi)容進行說明。分配表241的各條目(行)為保存有服務(wù)器3所訪問的各LU的所有者權(quán)限信息及LDEV#的信息,各條目由使能比特(在圖中,記載為“En”)501、保存有具有所有者權(quán)限的控制器21的編號的MP#502以及保存有服務(wù)器3要訪問的LU的LDEV#的LDEV#503構(gòu)成。En501為I比特,MP#502為7比特,LDEV#為24比特的信息,一個條目為合計為32比特(四個字節(jié))的信息。En501為表示該條目是否為有效的條目的信息,在En501的值為I的情況下,表示該條目有效,在為O的情況下,表示該條目無效(也就是,在現(xiàn)階段在存儲裝置2內(nèi)沒有定義與該條目對應(yīng)的LU),在該情況下,在MP#502、LDEV#503中保存的信息為無效的(不能使用的)信息。
[0055]對分配表241的各條目的地址進行說明。此外,在此,對分配表基地址為O的情況進行說明。從圖5可知,在從分配表241的地址0(0x0000 0000 0000 0000)開始的四個字節(jié)的區(qū)域中,保存有針對索引編號為O的服務(wù)器3(或在服務(wù)器3上運轉(zhuǎn)的虛擬計算機)訪問的LUN為O號的LU的所有者權(quán)限信息(及LDEV#)。以下,在地址OxOOOO 0000 00000004 ?0x0000 0000 0000 0007^0x0000 0000 0000 0008 ?0x0000 0000 0000 000F 中分別保存有針對LUN為I號的LU、LUN為2號的LU的所有者權(quán)限信息。并且,索引編號為O的服務(wù)器3要訪問的全部LU的所有者權(quán)限信息都保存在從地址0x0000 0000 0000 0000到0x0000 0000 3FFF FFFF為止的范圍內(nèi)。而且,具有如下的結(jié)構(gòu):從地址0x0000 0000 40000000起,按照從LUN = O的LU開始按順序保存有索引編號為I的服務(wù)器3訪問的LU的所有者權(quán)限信息。
[0056](檢索數(shù)據(jù)表)
[0057]接著,說明服務(wù)器3的分配部35進行的處理(相當于圖3的S4、S6的處理)的詳細,但在那之前,利用圖6,對分配部35在自身的存儲器內(nèi)保持的信息進行說明。作為分配部35進行I/O分配處理所需的信息,有檢索數(shù)據(jù)表3010、分配表基地址信息3110、分配表讀取目的地CTL#信息3120。在檢索數(shù)據(jù)表3010的索引#3011中保存有與在S_ID3012的欄中保存的S_ID對應(yīng)的索引編號,若從服務(wù)器3接收I/O指令,則利用該檢索數(shù)據(jù)表3010從I/O指令中的S_ID導(dǎo)出索引編號。但圖6的檢索數(shù)據(jù)表3010的結(jié)構(gòu)為一個例子,除了圖6示出的結(jié)構(gòu)以外,例如利用僅具有S_ID3012的欄的表,利用從S_ID3012欄的第一行按順序保存有索引編號為O號、I號、2號…的S_ID的表等也能夠有效應(yīng)用本發(fā)明。
[0058]此外,在初始狀態(tài)下,在檢索數(shù)據(jù)表3010的S_ID3012的列中沒有保存任何值,當服務(wù)器3 (或者,在服務(wù)器3上運轉(zhuǎn)的虛擬計算機)向存儲裝置2發(fā)行最初的I/O指令時,此時存儲裝置2在檢索數(shù)據(jù)表3010的S_ID3012中保存信息。該處理在后面敘述。
[0059]分配表基地址信息3110為在計算以上說明的分配表241的保存地址時使用的分配表基地址的信息。由于在剛啟動計算機系統(tǒng)I之后不久,從存儲裝置2向分配部35發(fā)送該信息,所以受理了該信息的分配部35在自身的存儲器內(nèi)保存該信息,此后,在計算分配表241的訪問目的地地址時利用該信息。分配表讀取目的地CTL#信息3120為,在分配部35訪問分配表241時確定應(yīng)該訪問控制器21a、21b中的哪一個的信息。在分配表讀取目的地CTL#信息3120的內(nèi)容為“O”時,分配部35訪問控制器21a的存儲器241a,在分配表讀取目的地CTL#信息3120的內(nèi)容為“ I ”時,訪問控制器2 Ib的存儲器241b。與分配表基地址信息3110同樣地,分配表讀取目的地CTL#信息3120也為在剛啟動計算機系統(tǒng)I之后不久從存儲裝置2向分配部35發(fā)送來的信息。
[0060](分配處理)
[0061]利用圖7,說明服務(wù)器3的分配部35進行的處理(相當于圖3的S4、S6的處理)的詳細。若分配部35經(jīng)由端口 36從MPU31接收I/O指令,則提取在I/O指令中包含的服務(wù)器3 (或者,服務(wù)器3上的虛擬計算機)的3_10和訪問對象LU的LUN(S41)。接著,分配部35進行將所提取的5_10轉(zhuǎn)換成索引編號的處理。此時,利用在分配部35內(nèi)管理的檢索數(shù)據(jù)表3010。分配部35參照檢索數(shù)據(jù)表3010的S_ID3012,檢索與在S41中提取出的S_ID一致的行(條目)。
[0062]在檢索到與在S41中提取出的S_ID —致的行的索引#3011的情況下(S43:是),利用該索引#3011的內(nèi)容創(chuàng)建分配表訪問地址(S44),利用該創(chuàng)建出的地址來訪問分配表241,以獲得應(yīng)該發(fā)送I/O請求的控制器21的信息(在圖5的MP#502中保存的信息)(S6)。然后,向根據(jù)在S6中獲得的信息確定出的控制器21發(fā)送I/O指令(S7)。
[0063]但是,最初,在檢索數(shù)據(jù)表3010的S_ID3012中沒有保存任何值。在服務(wù)器3 (或者,在服務(wù)器3上運轉(zhuǎn)的虛擬計算機)最初訪問存儲裝置2時,存儲裝置2的MPU23決定索引編號,將服務(wù)器3(或服務(wù)器3上的虛擬計算機)的3_10保存在檢索數(shù)據(jù)表3010內(nèi)的與決定了的索引編號對應(yīng)的行內(nèi)。因此,在服務(wù)器3 (或服務(wù)器3上的虛擬計算機)最初向存儲裝置2發(fā)行I/O請求時,由于在檢索數(shù)據(jù)表3010的S_ID3012中沒有保存服務(wù)器3 (或服務(wù)器3上的虛擬計算機)的S_ID的信息,所以索引編號的檢索失敗。
[0064]在本發(fā)明的實施例1中的計算機系統(tǒng)I中,在索引編號的檢索失敗了的情況下,也就是,在檢索數(shù)據(jù)表3010中沒有保存有服務(wù)器3的S_ID的信息的情況下,向事先決定了的特定的控制器21的MPU(以下,將該MPU稱為“代表MP”)發(fā)送I/O指令。在此,在索引編號的檢索失敗了的情況下(在S43中判斷為否的情況下),分配部35生成偽地址(dummyaddress) (S45),指定偽地址并訪問(例如讀取)存儲器24(S6’)。偽地址是指,與分配表241所保存的地址無關(guān)的地址。在S6’之后,分配部35向代表MP發(fā)送I/O指令(S7’)。此夕卜,在后面,說明進行指定偽地址并訪問存儲器24的處理的理由。
[0065](分配表的更新)
[0066]接著,在索引編號的檢索失敗了的情況下(在S43中判斷為否的情況下),利用圖8,說明接收了向代表MP發(fā)送的I/O指令的存儲裝置2中的處理流程。若代表MP (在此,以控制器21a的MPU23a為代表MP的情況為例進行說明)接收I/O指令,則控制器21a參照在I/O指令中包含的S_ID和LUN及LDEV管理表200,判斷自身是否具有訪問對象的LU的所有者權(quán)限(Sll)。在有所有者權(quán)限的情況下,由控制器21a實施此后的處理,在沒有所有者權(quán)限的情況下,向控制器21b傳送I/O指令。此后的處理由控制器21a、21b的某一方進行,并且由于由控制器21a、21b的哪一方進行處理,處理都沒有什么很大的差異,所以記載為“控制器21”進行處理。
[0067]在S12中,控制器21處理接收到的I/O請求,將處理結(jié)果返回至服務(wù)器3。
[0068]在S13中,控制器21進行如下的處理:將在到S12為止處理過的I/O指令中包含的S_ID與索引編號建立對應(yīng)關(guān)系。在建立了對應(yīng)關(guān)系時,控制器21參照索引表600,檢索尚未與哪個S_ID都沒有建立對應(yīng)關(guān)系的索引編號,選擇任一個索引編號。然后,在與所選的索引編號(索引#602)對應(yīng)的行的S_ID601欄中登記在I/O指令中包含的S_ID。
[0069]在S14中,控制器21進行分配表241的更新。從LDEV管理表200內(nèi)的信息中,選擇S_ID (200-1)與在本次的I/O指令中包含的S_ID —致的條目,并將該所選的條目的信息登記到分配表241中。
[0070]關(guān)于向分配表241的登記方法,以例如在本次的I/O指令中包含的S_ID為AAA,在LDEV管理表200中保存有圖2示出的信息的情況為例進行說明。在該情況下,從LDEV管理表200中,選擇LDEV#(200-3)為1、2、3的條目(圖2中的行201?203),將這三個條目的信息登記至分配表241。
[0071]由于在分配表241中利用在圖5的說明中敘述的規(guī)則保存有各信息,所以若有索引編號和LUN的信息,就能判明將所有者權(quán)限(在MP#502中保存的信息)和LDEV#(在LDEV#503中保存的信息)登記在分配表241內(nèi)的哪個位置(地址)為好??芍粼诒敬蔚腎/0指令中包含的S_ID (AAA)與索引編號O Ih建立了對應(yīng)關(guān)系,則關(guān)于索引編號為I且LUN為O的LDEV的信息保存在從圖5的分配表241的地址OxOOOO 0000 4000 0000開始的四個字節(jié)的區(qū)域中。于是,在分配表241的地址0x0000 0000 4000 0000的條目的MP#502、LDEV#503中分別保存LDEV管理表200的行201中的MP#200_4(在圖2的例子為“O”)、LDEV#200-3(在圖2的例子為“ I”),另外在En501中保存“I”。針對圖2的行202、203的信息也同樣地,通過將各信息保存在分配表241 (的地址0x0000 0000 4000 0004,0x00000000 4000 0008)中,來完成分配表241的更新。
[0072]最后,在S15中,將在S13中與S_ID建立了對應(yīng)關(guān)系的索引編號的信息寫入分配模塊33的檢索數(shù)據(jù)表3010。此外,S14、S15的處理為與圖3的S1、S2的處理相當?shù)奶幚怼?br>[0073](在生成LU時的處理)
[0074]由于分配表241為保存有與所有者權(quán)限、LU、LDEV有關(guān)的信息的表,所以在生成了LU的情況下或在所有者權(quán)限發(fā)生變更的情況下,都產(chǎn)生信息的登記、更新。在此,以生成了LU的情況為例,說明向分配表241的信息登記流程。
[0075]在計算機系統(tǒng)I的管理者利用管理終端4等進行L