計(jì)算機(jī)系統(tǒng)及計(jì)算機(jī)系統(tǒng)的控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及由主機(jī)計(jì)算機(jī)和存儲(chǔ)裝置構(gòu)成的計(jì)算機(jī)系統(tǒng)中的主機(jī)計(jì)算機(jī)的I/0(輸入/輸出)請(qǐng)求的分配方法。
【背景技術(shù)】
[0002]隨著IT的進(jìn)步、互聯(lián)網(wǎng)的普及等,企業(yè)等中的計(jì)算機(jī)系統(tǒng)處理的數(shù)據(jù)量持續(xù)增加,對(duì)保存數(shù)據(jù)的存儲(chǔ)裝置也要求高性能。因此,在中等規(guī)模以上的存儲(chǔ)裝置(存儲(chǔ)系統(tǒng))中,大多采用搭載多個(gè)用來(lái)處理數(shù)據(jù)訪問請(qǐng)求的存儲(chǔ)控制器的結(jié)構(gòu)。
[0003]通常,在為搭載有多個(gè)存儲(chǔ)控制器(以下,略記為“控制器”)的存儲(chǔ)裝置的情況下,事先唯一地決定出擔(dān)當(dāng)針對(duì)存儲(chǔ)裝置所具有的各卷的訪問請(qǐng)求的處理的控制器。以下,在具有多個(gè)控制器(控制器1、控制器2)的存儲(chǔ)裝置中,在擔(dān)當(dāng)針對(duì)某個(gè)卷A的訪問請(qǐng)求的處理的控制器為控制器I的情況下,表現(xiàn)為“控制器I具有卷A的所有者權(quán)限”。在從與存儲(chǔ)裝置連接的主機(jī)計(jì)算機(jī)向卷A的訪問(例如讀請(qǐng)求)由不具有所有者權(quán)限的控制器接收的情況下進(jìn)行如下的處理,所以開銷(overhead)很大,所述處理為:不具有所有者權(quán)限的控制器先向具有所有者權(quán)限的控制器傳送訪問請(qǐng)求,通過(guò)具有所有者權(quán)限的控制器進(jìn)行訪問請(qǐng)求的處理,并將處理結(jié)果(例如讀數(shù)據(jù))經(jīng)由不具有所有者權(quán)限的控制器返回至主機(jī)計(jì)算機(jī)。為了避免性能下降的發(fā)生,在專利文獻(xiàn)I中公開了具備對(duì)具有所有者權(quán)限的控制器分配訪問請(qǐng)求的專用硬件(LR:本地路由器)的存儲(chǔ)系統(tǒng)。在專利文獻(xiàn)I的存儲(chǔ)裝置中,從主機(jī)受理卷訪問指令的主機(jī)(通道)接口(I/F)所具有的LR確定出具有所有者權(quán)限的控制器,并向該控制器傳送指令。由此,能夠?qū)⑻幚砬‘?dāng)?shù)胤峙浣o多個(gè)控制器。
[0004]現(xiàn)有技術(shù)文獻(xiàn)
[0005]專利文獻(xiàn)
[0006]專利文獻(xiàn)1:美國(guó)專利申請(qǐng)公開第2012/0005430號(hào)說(shuō)明書
【發(fā)明內(nèi)容】
[0007]在專利文獻(xiàn)I中公開的存儲(chǔ)裝置中,通過(guò)設(shè)有在存儲(chǔ)裝置的主機(jī)接口設(shè)置的專用硬件(LR),能夠?qū)⑻幚砬‘?dāng)?shù)胤峙浣o具有所有者權(quán)限的控制器。然而,為了設(shè)置專用硬件,存在在裝置內(nèi)確保用于搭載專用硬件的安裝空間的需要,另外,會(huì)提升裝置的制造成本。因此,設(shè)置專用硬件的結(jié)構(gòu)的裝置規(guī)模比較大,限定于大規(guī)模存儲(chǔ)裝置。
[0008]因此,在中小規(guī)模的存儲(chǔ)裝置中,為了避免發(fā)生上述那樣的性能下降的狀況,必須在主機(jī)計(jì)算機(jī)向存儲(chǔ)裝置發(fā)行訪問請(qǐng)求的時(shí)間點(diǎn),向具有所有者權(quán)限的控制器發(fā)送訪問請(qǐng)求,但通常,主機(jī)計(jì)算機(jī)側(cè)無(wú)法知道哪個(gè)控制器具有訪問對(duì)象卷的所有者權(quán)限。
[0009]為了解決上述課題,本發(fā)明在由主機(jī)計(jì)算機(jī)和存儲(chǔ)裝置構(gòu)成的計(jì)算機(jī)系統(tǒng)中主機(jī)計(jì)算機(jī)從存儲(chǔ)裝置獲取所有者權(quán)限信息,主機(jī)計(jì)算機(jī)基于所獲取的所有者權(quán)限信息來(lái)決定指令發(fā)行目的地的控制器。
[0010]在本發(fā)明的一個(gè)實(shí)施方式中,在主機(jī)計(jì)算機(jī)向存儲(chǔ)裝置發(fā)行卷訪問指令時(shí),主機(jī)計(jì)算機(jī)向存儲(chǔ)裝置發(fā)行用于獲取具有訪問對(duì)象卷的所有者權(quán)限的控制器的信息的請(qǐng)求,主機(jī)計(jì)算機(jī)基于響應(yīng)該請(qǐng)求從存儲(chǔ)裝置返回的所有者權(quán)限信息,向具有所有者權(quán)限的控制器發(fā)送指令。另外,作為另一個(gè)實(shí)施方式,主機(jī)計(jì)算機(jī)能夠在發(fā)行了用于獲取具有訪問對(duì)象卷的所有者權(quán)限的控制器的信息的第一請(qǐng)求之后,在從存儲(chǔ)裝置接收針對(duì)第一請(qǐng)求的響應(yīng)之前,發(fā)行用于獲取具有訪問對(duì)象卷的所有者權(quán)限的控制器的信息的第二請(qǐng)求。
[0011]發(fā)明的效果
[0012]根據(jù)本發(fā)明,能夠防止主機(jī)計(jì)算機(jī)向不具有所有者權(quán)限的存儲(chǔ)控制器發(fā)行I/O請(qǐng)求,從而能夠提尚訪冋性能。
【附圖說(shuō)明】
[0013]圖1是本發(fā)明的實(shí)施例1的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖。
[0014]圖2是示出了邏輯卷管理表的一個(gè)例子的圖。
[0015]圖3是示出了本發(fā)明的實(shí)施例1的計(jì)算機(jī)系統(tǒng)中的I/O處理的概要的圖。
[0016]圖4是不出了分配表的地址格式的圖。
[0017]圖5是示出了分配表的結(jié)構(gòu)的圖。
[0018]圖6是示出了檢索數(shù)據(jù)表的內(nèi)容的圖。
[0019]圖7是示出了服務(wù)器的分配部所進(jìn)行的處理的詳細(xì)的圖。
[0020]圖8是示出了在向代表MP發(fā)送了 I/O指令的情況下的存儲(chǔ)裝置的處理的流程的圖。
[0021]圖9是示出了在分配模塊受理了多個(gè)I/O指令的情況下的處理的流程的圖。
[0022]圖10是示出了在控制器之一停止的情況下存儲(chǔ)裝置所進(jìn)行的處理的流程的圖。
[0023]圖11是示出了索引表的內(nèi)容的圖。
[0024]圖12是示出了本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)的各結(jié)構(gòu)要素的圖。
[0025]圖13是本發(fā)明的實(shí)施例2的服務(wù)器刀片及存儲(chǔ)控制器模塊的結(jié)構(gòu)圖。
[0026]圖14是本發(fā)明的實(shí)施例2的存儲(chǔ)控制器模塊所具有的指令隊(duì)列的概念圖。
[0027]圖15是示出了本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)中的I/O處理的概要的圖。
[0028]圖16是示出了本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)中的I/O處理的概要的圖。
[0029]圖17是示出了本發(fā)明的實(shí)施例2的在向存儲(chǔ)控制器模塊的代表MP發(fā)送了I/O指令的情況下的處理的流程的圖。
[0030]圖18是本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)的安裝例(主視圖)。
[0031]圖19是本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)的安裝例(后視圖)。
[0032]圖20是本發(fā)明的實(shí)施例2的計(jì)算機(jī)系統(tǒng)的安裝例(側(cè)視圖)。
【具體實(shí)施方式】
[0033]以下,參照附圖,說(shuō)明本發(fā)明的一個(gè)實(shí)施方式的計(jì)算機(jī)系統(tǒng)。此外,本發(fā)明不限于以下說(shuō)明的實(shí)施方式。
[0034]實(shí)施例1
[0035]圖1示出本發(fā)明的實(shí)施例1的計(jì)算機(jī)系統(tǒng)I的結(jié)構(gòu)。計(jì)算機(jī)系統(tǒng)I由存儲(chǔ)裝置2、服務(wù)器3、管理終端4構(gòu)成。存儲(chǔ)裝置2經(jīng)由I/O總線7與服務(wù)器3連接。作為I/O總線,例如使用PC1-Express。另外,存儲(chǔ)裝置2經(jīng)由LAN6與管理終端4連接。
[0036]存儲(chǔ)裝置2由多個(gè)存儲(chǔ)控制器21a、21b (在圖中,略記為“CTL”。另外,有時(shí)也將存儲(chǔ)控制器略記為“控制器”)以及作為保存數(shù)據(jù)的儲(chǔ)存介質(zhì)的多個(gè)HDD22構(gòu)成(此外,有時(shí)也將存儲(chǔ)控制器21a、21b統(tǒng)稱為“控制器21”)??刂破?1a具有用于進(jìn)行該存儲(chǔ)裝置2的控制的MPU23a、保存由MPU23a執(zhí)行的程序和控制信息的存儲(chǔ)器24a、用于連接HDD22的盤接口(盤I/F)25a以及作為用于經(jīng)由I/O總線與服務(wù)器3連接的連接器的端口 26a(另外,由于控制器21b也具有與控制器21a同樣的結(jié)構(gòu)要素,所以省略針對(duì)控制器21b的說(shuō)明)。此外,存儲(chǔ)器24a、24b的一部分的區(qū)域也用作盤高速緩存??刂破?1a、21b利用控制器間連接路徑(I路徑)27彼此連接。另外雖未圖示,但控制器21a、21b還具有用于連接存儲(chǔ)管理終端23的NIC (Network Interface Controller:網(wǎng)絡(luò)接口控制器)。作為HDD22的一個(gè)例子,使用磁盤。但除此以外,也能夠利用SSD(Solid State Drive:固態(tài)硬盤)等的半導(dǎo)體儲(chǔ)存設(shè)備。
[0037]此外,存儲(chǔ)裝置2的結(jié)構(gòu)不限于以上說(shuō)明的結(jié)構(gòu)。例如控制器21內(nèi)的各要素(MPU23、盤I/F25等)不限于具有圖1示出的個(gè)數(shù)的結(jié)構(gòu),本發(fā)明也能夠適用于在控制器21內(nèi)存在多個(gè)MPU23、盤I/F25的結(jié)構(gòu)。
[0038]服務(wù)器3采用將MPU31、存儲(chǔ)器32、分配模塊33與彼此連接交換機(jī)34 (在圖中,略記為“SW”)連接的結(jié)構(gòu)。另外,MPU31、存儲(chǔ)器32、分配模塊33與彼此連接交換機(jī)34之間利用PC1-Express這樣的I/O總線連接。分配模塊33為進(jìn)行用于將從MPU31朝向存儲(chǔ)裝置2送出的指令(讀、寫等的I/O請(qǐng)求)選擇性地傳送至存儲(chǔ)裝置2的控制器21a、21b的某一個(gè)的控制的硬件,其具有與分配部35、SW34連接的端口和用于與存儲(chǔ)裝置2連接的端口 37a、37b。另外,在服務(wù)器3上,可以采用多個(gè)虛擬計(jì)算機(jī)運(yùn)轉(zhuǎn)的結(jié)構(gòu)。而且,在圖1中,僅有一臺(tái)服務(wù)器3,但服務(wù)器3的臺(tái)數(shù)不限于一臺(tái),可以存在多臺(tái)。
[0039]管理終端4為用于進(jìn)行存儲(chǔ)裝置2的管理操作的終端。雖未圖示,但管理終端4具有公知的個(gè)人計(jì)算機(jī)所具備的MPU、存儲(chǔ)器、用于與LAN6連接的NIC、鍵盤和顯示器等的輸入輸出部234。管理操作具體來(lái)說(shuō)為對(duì)提供給服務(wù)器33等的卷進(jìn)行定義等的操作。
[0040]接著,對(duì)說(shuō)明本發(fā)明的實(shí)施例1的I/O分配方法所需的存儲(chǔ)裝置2的功能進(jìn)行說(shuō)明。首先,對(duì)在存儲(chǔ)裝置2內(nèi)創(chuàng)建的卷和為了管理卷而在存儲(chǔ)裝置2內(nèi)使用的管理信息進(jìn)行說(shuō)明。
[0041](邏輯卷管理表)
[0042]本發(fā)明的實(shí)施例1的存儲(chǔ)裝置2根據(jù)一個(gè)或多個(gè)HDD22形成一個(gè)或多個(gè)邏輯卷(也稱為L(zhǎng)DEV)。在存儲(chǔ)裝置2內(nèi)對(duì)各邏輯卷標(biāo)付唯一的編號(hào)來(lái)進(jìn)行管理,將該編號(hào)稱為邏輯卷編號(hào)(LDEV#)。另外,在服務(wù)器3發(fā)行I/O指令時(shí)等指定訪問對(duì)象的卷的情況下,利用在計(jì)算機(jī)系統(tǒng)I內(nèi)能夠唯一地確定出服務(wù)器3的信息(或者,在服務(wù)器3內(nèi)處于虛擬計(jì)算機(jī)動(dòng)作的環(huán)境的情況下,能夠唯一地確定出虛擬計(jì)算機(jī)的信息)即S_ID和邏輯單元編號(hào)(LUN)。也就是,服務(wù)器3通過(guò)在I/O指令的指令參數(shù)中包含S_ID和LUN,來(lái)唯一地確定訪問對(duì)象的卷,服務(wù)器3在指定卷時(shí),不使用存儲(chǔ)裝置2所使用的LDEV#。因此,在存儲(chǔ)裝置2中保持有管理LDEV#與LUN之間的對(duì)應(yīng)關(guān)系的信息(邏輯卷管理表200),利用該信息,將從服務(wù)器3用I/O指令指定的S_ID和LUN的組的信息轉(zhuǎn)換為L(zhǎng)DEV#。圖2示出的邏輯卷管理表200 (或者也稱為“LDEV管理表200”)是管理LDEV#與LUN之間的對(duì)應(yīng)關(guān)系的表,在控制器21a、2 Ib各自內(nèi)的存儲(chǔ)器24a、24b保存有相同的表。在S_ID200_1和LUN200-2的欄中保存有與用LDEV#200-4確定出的邏輯卷建立了對(duì)應(yīng)關(guān)系的服務(wù)器3的S_ID、LUN。MP#200_4為保存有所有者權(quán)限這一信息的欄,以下,對(duì)所有者權(quán)限進(jìn)行說(shuō)明。
[0043]在本發(fā)明的實(shí)施例1中的存儲(chǔ)裝置2中,按照每個(gè)邏輯卷唯一地決定擔(dān)當(dāng)針對(duì)各邏輯卷的訪問請(qǐng)求的處理的控制器(21a、21b)(或處理器23a、23b)。將該擔(dān)當(dāng)針對(duì)邏輯卷的請(qǐng)求的處理的控制器(21a、21b)(或處理器23a、23b)稱為“具有所有者權(quán)限的控制器(或處理器)”,將具有所有者權(quán)限的控制器(或處理器)的信息稱為“所有者權(quán)限信息”。MPS200-4為保存所有者權(quán)限信息的欄,在本發(fā)明的實(shí)施例1中,示出在MP#200-4的欄中保存有O的條目的邏輯卷為控制器21a的MPU23a具有其所有者權(quán)限的卷,在MP#200_4的欄中保存有I的條目的邏輯卷為控制器21b的MPU23b具有其所有者權(quán)限的卷。例如圖2的第一行(條目)201示出:針對(duì)LDEV#為I號(hào)的邏輯卷,MP#200-4為O號(hào)的控制器(的處理器)也就是控制器21a的MPU23a具有其所有者權(quán)限。此外,在本發(fā)明的實(shí)施例1的存儲(chǔ)裝置2中,由于各控制器(21a、21b)分別僅具備一個(gè)處理器(23a、23b),所以“控制器21a具有所有者權(quán)限”這一表達(dá)和“處理器(MPU) 23a具有所有者權(quán)限”這一表達(dá)實(shí)質(zhì)上為同義。
[0044]在此,對(duì)接收到假設(shè)從服務(wù)器3向控制器21發(fā)出的針對(duì)該控制器21不具有所有者權(quán)限的卷的訪問請(qǐng)求的情況進(jìn)行說(shuō)明。在圖2的例子中,針對(duì)LDEV#為I號(hào)的邏輯卷,控制器21a具有其所有者權(quán)限,但若控制器21b從服務(wù)器3接收針對(duì)LDEV#為I號(hào)的邏輯卷的讀請(qǐng)求,則由于控制器21b不具有所有者權(quán)限,所以控制器21b的MPU23b經(jīng)由控制器間連接路徑(I路徑)27向控制器21a的MPU23a傳送讀請(qǐng)求。MPU23a從HDD22讀取讀數(shù)據(jù),在自身的高速緩存存儲(chǔ)器(存儲(chǔ)器24b內(nèi))保存讀數(shù)據(jù)。此后,將讀數(shù)據(jù)經(jīng)由控制器間連接路徑(I路徑)27、控制器21a返回至服務(wù)器3。像這樣,若不具有針對(duì)卷的所有者權(quán)限的控制器21接收I/O請(qǐng)求,則在控制器21a、21b間發(fā)生I/O請(qǐng)求、I/O請(qǐng)求附帶的數(shù)據(jù)的傳送,處理開銷變大。在本發(fā)明中,為了不產(chǎn)生這種處理開銷,存儲(chǔ)裝置2采用向服務(wù)器3提供各卷的所有者權(quán)限信息的結(jié)構(gòu)。以下,對(duì)服務(wù)器3的功能進(jìn)行說(shuō)明。
[0045](I/O處理的概要)
[0046]圖3示出在服務(wù)器3向存儲(chǔ)裝置2發(fā)送I/O請(qǐng)求時(shí)的處理的概要。首先,SI為僅在計(jì)算機(jī)系統(tǒng)I啟動(dòng)后的初始設(shè)定時(shí)進(jìn)行的處理,存儲(chǔ)控制器21a或21b生成分配表241a、241b,然后將分配表的讀取目的地信息和分配表基地址信息通知給服務(wù)器3的分配模塊33。分配表241為保存有所有者權(quán)限信息的表,其內(nèi)容將所述。另外,在SI中的分配表241a(或241b)的生成處理為,在存儲(chǔ)器上確保保存分配表241的儲(chǔ)存區(qū)域,并將內(nèi)容初始化(例如在表上整個(gè)區(qū)域?qū)懭隣等)的處理。
[0047]另外,在本發(fā)明的實(shí)施例1中,分配表241a、241b保存在控制器21a、21b的某一方的存儲(chǔ)器24中,分配表的讀取目的地信息是示出分配模塊33為了訪問分配表而應(yīng)該訪問哪一個(gè)控制器的存儲(chǔ)器24的信息。并且,分配表基地址信息為在分配模塊33訪問分配表241時(shí)所需的信息,其詳細(xì)內(nèi)容也在后面敘述。當(dāng)分配模塊33接收讀取目的地信息時(shí),將讀取目的地