欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲系統(tǒng)的制作方法

文檔序號:11890398閱讀:336來源:國知局
存儲系統(tǒng)的制作方法與工藝

本發(fā)明涉及一種存儲系統(tǒng)。



背景技術(shù):

近年來,由于大數(shù)據(jù)分析的普及等,信息的重要性變得更高,用于保護重要信息的災(zāi)難恢復(fù)的重要性不斷變高。作為災(zāi)難恢復(fù)技術(shù),在專利文獻1中公開有如下技術(shù),即,在進行通常運行時,僅主站點的存儲裝置接受來自主計算機的讀寫請求,向遠程站點的存儲裝置進行復(fù)制,在主站點發(fā)生故障時切換成訪問遠程站點。

現(xiàn)有技術(shù)文獻

專利文獻

專利文獻1:美國專利申請公開第2009/0271582號說明書



技術(shù)實現(xiàn)要素:

大數(shù)據(jù)分析等的數(shù)據(jù)量顯著增大,其結(jié)果為系統(tǒng)變得大規(guī)?;?、復(fù)雜化,裝置個數(shù)增加,備份站點的成本也增加,希望有效利用備份站點的資源。對于專利文獻1中公開的技術(shù),在通常運行時,僅通過主站點的存儲裝置接收讀寫請求,因此不能夠訪問遠程站點的存儲裝置,不能夠充分地有效利用資源。

為了解決上述問題而提供一種存儲系統(tǒng),其具有第一存儲裝置以及第二存儲裝置,第一存儲裝置提供第一邏輯卷,第二存儲裝置提供與第一邏輯卷組成成對結(jié)構(gòu)的第二邏輯卷,第一存儲裝置管理第一邏輯卷的存儲區(qū)域中的處于雙重寫入中的存儲區(qū)域,在從主計算機接受到向第一邏輯卷或第二邏輯卷的寫入數(shù)據(jù)時,以第一邏輯卷、第二邏輯卷的順序?qū)懭霐?shù)據(jù)雙重寫入到第一邏輯卷和第二邏輯卷,第一存儲裝置在從主計算機接受到向第一邏輯卷的讀取請求時,判斷被發(fā)送讀取請求的存儲區(qū)域是否處于雙重寫入中,在判斷的結(jié)果為處于雙重寫入中的情況下,在經(jīng)過規(guī)定時間后,再次判斷被發(fā)送讀取請求的存儲區(qū)域是否處于雙重寫入中,在判斷的結(jié)果為不處于雙重寫入中的情況下,從第一邏輯卷讀取被發(fā)送讀取請求的數(shù)據(jù),并對主計算機進行響應(yīng),在第二存儲裝置從主計算機接受到向第二邏輯卷的讀取請求的情況下,從第二邏輯卷讀取被發(fā)送讀取請求的數(shù)據(jù),并對主計算機進行響應(yīng)。

發(fā)明的效果

根據(jù)本發(fā)明的一個方式,能夠通過遠程站點的存儲裝置接收讀取/寫入,因此能夠有效利用遠程站點的資源。

附圖說明

圖1A示出寫入指示進入PVOL時的處理流程的概要。

圖1B示出讀取指示進入PVOL以及SVOL時的處理流程的概要。

圖2示出包括本實施方式的信息系統(tǒng)的計算機系統(tǒng)的結(jié)構(gòu)例子。

圖3示意性示出主計算機以及存儲裝置的硬件結(jié)構(gòu)例子。

圖4示出存儲裝置向主計算機提供的虛擬結(jié)構(gòu)例子。

圖5示出存儲在存儲裝置的CMPK的共用存儲器內(nèi)的信息。

圖6示出存儲在存儲裝置的MPPK的本地存儲器內(nèi)的信息。

圖7示出VOL映射表的結(jié)構(gòu)例子。

圖8示出HA卷對管理表的結(jié)構(gòu)例子。

圖9示出LU路徑管理表的結(jié)構(gòu)例子。

圖10示出VOL管理表的結(jié)構(gòu)例子。

圖11示出PG管理表的結(jié)構(gòu)例子。

圖12示出緩存槽管理表的結(jié)構(gòu)例子。

圖13示出JOB管理表的結(jié)構(gòu)例子。

圖14示出向主計算機提供虛擬存儲裝置以及虛擬卷的信息的方法的順序。

圖15示出從主計算機至PVOL的寫入處理的順序。

圖16示出從主計算機至SVOL的寫入處理的順序。

圖17示出MDKC以及RDKC針對來自主計算機的寫入指令進行的處理的流程圖。

圖18示出MDKC和RDKC針對MDKC與RDKC之間的寫入指令進行的處理的流程圖。

圖19示出對從主計算機至PVOL的讀取指令進行的處理的順序。

圖20示出對從主計算機至SVOL的讀取指令進行的處理的順序。

圖21示出MDKC10M以及RDKC10R應(yīng)對來自主計算機的讀取指令的處理的流程圖。

圖22示出HA卷對的對狀態(tài)與向PVOL以及SVOL進行I/O訪問時的排他類別之間的關(guān)系。

圖23是承接MPPK發(fā)送向SVOL的寫入指令的處理的流程圖。

圖24示出與寫入數(shù)據(jù)一起發(fā)送排他鎖定解除指令的順序。

圖25示出包括RDKC10R所進行的JOB排他鎖定的、從主計算機向PVOL的寫入處理的順序。

圖26示出包括RDKC所進行的JOB排他鎖定的、從主計算機向SVOL的寫入處理的順序。

圖27示出與圖25以及圖26的順序?qū)?yīng)的、MDKC以及RDKC針對來自主計算機的寫入指令進行的處理的流程圖。

圖28示出與圖25以及圖26的順序?qū)?yīng)的、MDKC以及RDKC針對MDKC與RDKC之間的寫入指令進行的處理的流程圖。

具體實施方式

以下,參照附圖說明本發(fā)明的實施方式。應(yīng)該注意,本實施方式僅是用于實現(xiàn)本發(fā)明的一個例子,并不用于限定本發(fā)明的技術(shù)范圍。在各圖中,針對相同的結(jié)構(gòu),標注相同的附圖標記。

圖1A以及圖1B是表示本實施方式的概要的圖。圖1A以及圖1B公開的結(jié)構(gòu)包括主計算機180A、主計算機180B、存儲裝置10A以及存儲裝置10B,存儲裝置10A以及存儲裝置10B向主計算機180A以及主計算機180B提供虛擬存儲裝置15。

存儲裝置10A的卷即卷161A以及存儲裝置10B的卷即卷161B被作為虛擬存儲裝置15的一個虛擬卷151進行提供,卷161A以及卷161B存儲有相同的數(shù)據(jù),對于主機而言顯示相同的ID。此外,對于在以下的說明中沒有明示“虛擬”的構(gòu)成要素,在沒有特別說明的情況下,表示實際的構(gòu)成要素。

主計算機180A以及180B向一個虛擬卷151發(fā)送讀取/寫入指示,但是實際上有可能向卷161A以及卷161B都發(fā)送所述指示。將這樣的卷161A與卷161B構(gòu)成的對,稱為雙活型(Active-Active型)的高可用性(HA:High Availability)卷對或HA對,如圖1A以及圖1B所示,將包括HA對的結(jié)構(gòu)稱為HA結(jié)構(gòu)。

在以下的說明中,HA結(jié)構(gòu)以及HA對表示Active-Active型的HA結(jié)構(gòu)以及HA對。HA對由主卷(PVOL:Primary Volume)和副卷(SVOL:Secondary Volume)構(gòu)成,在此,將卷161A設(shè)定為PVOL,將卷161B設(shè)定為SVOL。另外,將提供PVOL的存儲裝置10A稱為MDKC(Main Disk Controller:主盤控制器),將提供SVOL的存儲裝置10B稱為RDKC(Remote Disk Controller:遠程盤控制器)。

此外,一個存儲裝置也能夠包含不同HA卷對的PVOL和SVOL。即,一臺存儲裝置與各HA卷對的卷類別相應(yīng)地發(fā)揮MDKC以及RDKC的功能。利用以下的圖1A以及圖2B說明從主機向PVOL以及SVOL發(fā)行寫入指示以及讀取指示時的處理的概要。此外,對卷寫入以及讀取數(shù)據(jù)的處理是對高速緩沖存儲器或存儲驅(qū)動器寫入以及讀取數(shù)據(jù)的處理。

圖1A是寫入指示從主計算機180A進入PVOL即卷161A時的處理流程的概要。

I.存儲裝置10A接受伴隨來自主計算機180A的寫入指示的數(shù)據(jù)轉(zhuǎn)送。II.存儲裝置10A取得卷161A的寫入目的地地址的排他性,向卷161A寫入。III.為了在SVOL即卷161B中存儲數(shù)據(jù),存儲裝置10A向存儲裝置10B轉(zhuǎn)送寫入命令以及數(shù)據(jù)。

IV.接收了寫入命令以及數(shù)據(jù)的存儲裝置10B向卷161B中存儲數(shù)據(jù)。V.存儲裝置10B向存儲裝置10A發(fā)送寫入結(jié)束報告。VI.存儲裝置10A解除在II中取得的排他性。VII.存儲裝置10A向主計算機180A發(fā)送寫入結(jié)束報告。

這樣,在PVOL接受到寫入指示時,MDKC對寫入目的地地址范圍賦予排他性,在對PVOL寫入后,對SVOL寫入,在對SVOL寫入結(jié)束后,解除排他性,對主計算機進行響應(yīng)。詳細內(nèi)容后面描述,但是,在SVOL側(cè)接受到寫入指示時,也在MDKC側(cè)取得排他性,在先對PVOL寫入后,向SVOL寫入,然后在MDKC側(cè)解除排他性,以這樣的順序,進行寫入處理。寫入處理中的任務(wù)(JOB)排他控制禁止對該區(qū)域進行其它寫入處理以及讀取處理。由此,適當?shù)鼐S持PVOL和SVOL的同一性。

圖1B是從主計算機180A以及180B向PVOL即卷161A以及SVOL即卷161B發(fā)行讀取請求時的處理流程的概要。在接受了對卷161B的讀取請求的存儲裝置10B接受了I/O請求時,從卷161B讀取數(shù)據(jù),向主計算機180B返回數(shù)據(jù)。此時,不需要與存儲裝置10A進行通信。

接受了對卷161A的讀取請求的存儲裝置10A,針對在圖1A中被請求讀取的數(shù)據(jù)的存儲區(qū)域,確認是否取得了在圖1A中說明的寫入目的地地址排他性,在不存在寫入目的地地址排他性的情況下,從卷161A讀取數(shù)據(jù),向主計算機180A返回數(shù)據(jù)。

在存在寫入目的地地址排他性的情況下,存儲裝置10A等待規(guī)定的時間,然后再次確認是否取得了寫入目的地地址排他性。在對PVOL即卷161A進行讀取時,也不需要在存儲裝置10A與存儲裝置10B之間進行通信。

此外,后面描述讀取處理中的JOB排他控制的詳細內(nèi)容,但是讀取處理中的JOB排他控制禁止對該區(qū)域的其它寫入處理,但是其它的讀取處理可以禁止也可以不禁止。通過許可讀取處理,能夠降低其它指令的處理的延遲。

近年來,作為應(yīng)對地震等災(zāi)害的對策,災(zāi)難恢復(fù)的重要性不斷變高。HA功能能夠?qū)崿F(xiàn)存儲系統(tǒng)的高可用性。HA結(jié)構(gòu)具有雙重化的系統(tǒng),能夠在發(fā)生故障時,自動切斷發(fā)生故障的系統(tǒng),僅利用正常的系統(tǒng)繼續(xù)進行動作。而且,從災(zāi)難恢復(fù)和資源的有效利用的角度等出發(fā),越來越強地需要基于存儲裝置的雙重化而形成的Active-Active型HA結(jié)構(gòu)。

Active-Active型HA結(jié)構(gòu)將所有的系統(tǒng)用作運轉(zhuǎn)系統(tǒng)。在Active-Active型HA結(jié)構(gòu)中,信息系統(tǒng)還能夠接受主機對任意卷對的I/O訪問,且能夠有效利用路徑的帶寬、存儲控制器處理能力和驅(qū)動器的處理能力等資源。

為了還接受對任意卷對的I/O訪問,即便已經(jīng)訪問了PVOL和SVOL中的任一個,也需要防止在讀取新的數(shù)據(jù)后讀取舊的數(shù)據(jù)。這是因為,會產(chǎn)生該順序變?yōu)橄喾错樞虻幕貪L(rollback)而導(dǎo)致主機可能出現(xiàn)誤動作。

因此,在本實施例中,作為一個例子,在對PVOL的I/O訪問中,伴隨有對PVOL的JOB排他控制,在對SVOL的I/O訪問中,不使用JOB排他控制。通過對PVOL的JOB排他控制,能夠適當?shù)鼐S持PVOL和SVOL相對于來自主機的指令的同一性,而且通過省略對SVOL的排他控制,能夠使處理高效化。

另外,在本實施例中,從災(zāi)難恢復(fù)的角度出發(fā)而使雙重化的存儲系統(tǒng)被置于不同的站點,假設(shè)這些站點之間有100km左右。因此,站點間的通信存在1ms左右的延遲。因此,在對寫入以及讀取指令進行響應(yīng)時,需要減少I/O同步時的站點間的通信。在本實施例中,在來自主機的讀取處理中,MDCK以及RDKC以在各個存儲裝置間不進行通信的方式,將從PVOL以及SVOL讀取的數(shù)據(jù)返回至主機。由于不需要存儲裝置的通信,所以能夠防止來自主機的讀取指令的處理的延遲。

另外,如上述那樣,由于數(shù)據(jù)的增大,從而系統(tǒng)的大規(guī)?;粩喟l(fā)展,從降低系統(tǒng)構(gòu)筑成本以及系統(tǒng)管理成本的角度出發(fā),也需要通過數(shù)量少的裝置實現(xiàn)功能。在本實施例中,在不需要使用特別的裝置即專用設(shè)備(appliance)等的情況下,實現(xiàn)Active-Active型HA結(jié)構(gòu)。

圖2示出包括本實施方式中的信息系統(tǒng)在內(nèi)的計算機系統(tǒng)的結(jié)構(gòu)例子。圖2的計算機系統(tǒng)包括主計算機180A、180B、存儲裝置10A~10C以及管理計算機20。存儲裝置10A~10C包含在信息系統(tǒng)中,主計算機180A、180B訪問信息系統(tǒng),管理計算機20管理信息系統(tǒng)。

計算機系統(tǒng)所包含的各種裝置(系統(tǒng))的數(shù)量根據(jù)設(shè)計而決定。存儲裝置10A、10B構(gòu)成Active-Active型HA存儲對,而且,提供虛擬存儲裝置。相對于主計算機180A、180B而言,存儲裝置10A、10B作為同一虛擬存儲裝置進行動作。在以下說明的例子中,存儲裝置10A、10B構(gòu)成一臺虛擬存儲裝置。

存儲裝置10C具有仲裁盤(Quorum Disk)。仲裁盤提供如下功能,即,在HA結(jié)構(gòu)中的存儲裝置10A、10B間不能夠通信時,決定在HA結(jié)構(gòu)的存儲裝置10A、10B中的繼續(xù)運轉(zhuǎn)的裝置和停止的裝置。

具體地說,存儲裝置10A、10B將各個存儲裝置的狀態(tài)和從各個存儲裝置觀察到的與其它存儲裝置之間的通信狀態(tài)寫入仲裁盤。存儲裝置雙方定期或與I/O響應(yīng)同步地參照仲裁盤,基于寫入仲裁盤的信息,決定繼續(xù)運轉(zhuǎn)的裝置和停止的裝置。

主計算機180A、180B、管理計算機20以及存儲裝置10A~10C通過由LAN195構(gòu)成的管理網(wǎng)絡(luò)以能夠通信的方式連接在一起。例如,管理網(wǎng)絡(luò)195為IP網(wǎng)絡(luò)。管理網(wǎng)絡(luò)195只要是管理數(shù)據(jù)通信用的網(wǎng)絡(luò),可以是任意類型的網(wǎng)絡(luò)。

主計算機180A、180B以及存儲裝置10A~10C通過由SAN(Storage Area Network:存儲區(qū)域網(wǎng))190構(gòu)成的數(shù)據(jù)網(wǎng)絡(luò)連接在一起。主計算機180A,180B經(jīng)由SAN190訪問存儲裝置10A、10B的卷。存儲裝置10A~10C經(jīng)由SAN190互相通信。

數(shù)據(jù)網(wǎng)絡(luò)190只要是數(shù)據(jù)通信用的網(wǎng)絡(luò),則可以是任意類型的網(wǎng)絡(luò)。數(shù)據(jù)網(wǎng)絡(luò)190和管理網(wǎng)絡(luò)195可以為同一網(wǎng)絡(luò)。

圖3示意性示出主計算機180以及存儲裝置10的硬件結(jié)構(gòu)例子。主計算機180以及存儲裝置10分別表示計算機系統(tǒng)內(nèi)的任意的主計算機以及存儲裝置。

主計算機180具有輔助存儲設(shè)備(二級存儲設(shè)備)181、作為處理器的CPU182、作為主存儲裝置的存儲器183、輸入設(shè)備184、作為輸出裝置的顯示設(shè)備185、I/F186以及端口187。它們通過內(nèi)部網(wǎng)絡(luò)相互連接。管理計算機20也能夠具有同樣的硬件結(jié)構(gòu)。

CPU182通過執(zhí)行存儲在存儲器183中的程序,進行各種處理。例如,存儲器183存儲操作系統(tǒng)(OS)、路徑切換程序以及應(yīng)用程序。應(yīng)用程序向存儲裝置10所提供的卷中寫入數(shù)據(jù)。路徑切換程序從分配給虛擬卷的路徑中選擇與訪問目的地的實際卷對應(yīng)的路徑。

端口187是與SAN190連接的網(wǎng)絡(luò)接口。端口187經(jīng)由SAN190與存儲裝置10之間收發(fā)數(shù)據(jù)以及請求。接口186是與LAN195連接的網(wǎng)絡(luò)接口。接口186經(jīng)由LAN195與管理計算機20以及物理存儲裝置10之間收發(fā)管理數(shù)據(jù)以及控制命令。

存儲裝置10容納有多個存儲驅(qū)動器170。存儲驅(qū)動器170例如是具有非易失性的磁盤的HDD或安裝有非易失性半導(dǎo)體存儲器(例如閃存器)的SSD。通過該存儲驅(qū)動器170構(gòu)成卷161等。

存儲驅(qū)動器170存儲從主機或其它存儲裝置送來的數(shù)據(jù)(用戶數(shù)據(jù))。多個存儲驅(qū)動器170通過RAID運算使數(shù)據(jù)冗余化,由此能夠防止在一個存儲驅(qū)動器170出現(xiàn)故障時數(shù)據(jù)消失。

存儲裝置10包括用于經(jīng)由SAN190與外部裝置連接的前端封裝(FEPK:Front End Package)100。在本例子的計算機系統(tǒng)中,外部裝置為主機或存儲裝置。

存儲裝置10還具有用于與存儲驅(qū)動器170連接的后端封裝(BEPK:Back End Package)140、安裝有高速緩沖存儲器的高速緩沖存儲器封裝(CMPK:Cache Memory Package)130、安裝有進行內(nèi)部處理的微處理器的微處理器封裝(MPPK)120以及將它們連接的內(nèi)部網(wǎng)絡(luò)150。

本例子的存儲裝置10包括多個FEPK100、多個BEPK140、多個CMPK130以及多個MPPK120。存儲裝置10還可以包括與管理計算機20進行通信的過程中發(fā)揮接口的功能的管理處理器。

各FEPK100在基板上具有用于與外部裝置連接的接口101和用于在存儲裝置10內(nèi)轉(zhuǎn)送數(shù)據(jù)的轉(zhuǎn)送電路112。接口101能夠包括多個端口,各端口能夠與外部裝置連接。接口101將在外部裝置與存儲裝置10之間的數(shù)據(jù)通信所使用的協(xié)議例如以太網(wǎng)光纖通道標準(FCoE:Fibre Channel Over Ethernet)變更為在內(nèi)部網(wǎng)絡(luò)150使用的協(xié)議例如高速外設(shè)部件互連標準(PCI-Express)。另外,具有緩沖存儲器113。緩沖存儲器是暫時存儲從主計算機180a接收到的數(shù)據(jù)的區(qū)域,由DRAM等存儲介質(zhì)構(gòu)成。

各BEPK140在基板上具有用于與驅(qū)動器170連接的接口141和用于在存儲裝置10內(nèi)轉(zhuǎn)送數(shù)據(jù)的轉(zhuǎn)送電路142。接口141將與存儲驅(qū)動器170的通信所使用的協(xié)議例如FC變更為在內(nèi)部網(wǎng)絡(luò)150中使用的協(xié)議。

各CMPK130在基板上具有暫時存儲用戶數(shù)據(jù)的高速緩沖存儲器(CM)131以及對一個或多個MPPK120所處理的控制信息進行存儲的共用存儲器(SM)132。

負責不同卷的多個MPPK120(的微處理器)能夠訪問共用存儲器132。MPPK120所處理的數(shù)據(jù)和程序從存儲裝置10內(nèi)的非易失性存儲器(未圖示)或存儲驅(qū)動器170載入。

各MPPK120具有一個以上的微處理器121、本地存儲器(LM)122以及將它們連接的總線123。在本例子的MPPK120中,安裝有多個微處理器121。微處理器121的數(shù)量可以為一個。本地存儲器122存儲微處理器121所執(zhí)行的程序以及微處理器121所使用的控制信息。

如上所述,一個共用存儲器132存儲多個MPPK120所處理的控制信息。MPPK120從共用存儲器132向自身的本地存儲器122載入自身需要的控制信息。

在本結(jié)構(gòu)例子中,存儲裝置10向主計算機180A、180B提供的卷的擔當被分配給MPPK120(的微處理器121)。分配給MPPK120的本地存儲器122以及共用存儲器132存儲該MPPK120負責I/O的卷的控制信息。

圖4示出存儲裝置10A、10B向主計算機180提供的虛擬結(jié)構(gòu)例子。存儲裝置10A、10B分別具有目標端口102A、102B。將卷161A、162A、163分配給目標端口102A。將卷161B、162B、164分配給目標端口102B。

此外,卷可以是卷容量與實際的容量一致的所謂LDEV,也可以是從池(pool)分配頁(page)的自動精簡配置卷(thin provisioning volume)。另外,所有卷可以由未圖示的其它存儲裝置所具有的存儲介質(zhì)構(gòu)成。此時,在主計算機訪問該卷時,被訪問的存儲裝置與具有存儲介質(zhì)的其它存儲裝置通信,對主計算機進行響應(yīng)。

存儲裝置10A、10B向主計算機180提供虛擬存儲裝置15。對于主計算機180,虛擬存儲裝置15的制造編號(S/N)為XXX。另一方面,存儲裝置10A、10B分別具有制造編號AAA和制造編號BBB。主計算機180將虛擬存儲裝置15識別為包括目標端口102A、102B的制造編號為XXX的存儲裝置。制造編號是存儲裝置以及虛擬存儲裝置的識別符。

卷161A、161B構(gòu)成HA卷對,并構(gòu)成一個虛擬卷151。卷161A、161B的ID分別為10︰00、30︰00。另一方面,虛擬卷151的ID為20︰00。

卷162A、162B構(gòu)成HA卷對,并構(gòu)成一個虛擬卷152。卷162A、162B的ID分別為10︰01、30︰01。另一方面,虛擬卷152的ID為20︰01。

卷163、164分別構(gòu)成虛擬卷153、154。卷163、164的ID分別為10︰02、30︰02。另一方面,虛擬卷153、154的ID分別為20︰02、20︰03。

主計算機180將虛擬卷151~154識別為虛擬存儲裝置15所提供的ID為20︰00~20︰03的卷。主計算機180能夠經(jīng)由目標端口102A、102B中的任意端口訪問虛擬卷151、152。主計算機180僅經(jīng)由目標端口102A訪問虛擬卷153,且僅經(jīng)由目標端口102B訪問虛擬卷154。

圖5示出存儲在存儲裝置10的CMPK130的共用存儲器132內(nèi)的信息。共用存儲器132存儲有VOL映射信息管理表210、HA卷對管理表220、LU路徑管理表230、VOL管理表240、PG管理表250以及緩存槽(cache slot)管理表270。共用存儲器132能夠被多個MPPK120訪問。

圖6示出存儲在存儲裝置10的MPPK120的本地存儲器122內(nèi)的信息。本地存儲器122存儲JOB管理表260。

以下,說明上述表的結(jié)構(gòu)例子。在以下的說明中參照的附圖例示了存儲裝置10A中的表。圖7示出VOL映射信息管理表210的結(jié)構(gòu)例子。VOL映射信息管理表210將存儲裝置10所具有的卷的實際結(jié)構(gòu)信息和虛擬結(jié)構(gòu)信息建立關(guān)聯(lián)關(guān)系。具體地說,VOL映射信息管理表210具有卷ID的欄211、虛擬卷ID的欄212、虛擬存儲裝置的制品編號(識別符)的欄213、HA標記的欄214。

各條目(entry)示出與卷建立對應(yīng)關(guān)系的虛擬卷的ID、提供該虛擬卷的虛擬存儲裝置的ID以及示出該卷是否構(gòu)成HA卷對。在HA標記欄的值為“ON(有效)”時,該卷與其它卷構(gòu)成HA卷對。

圖8示出HA卷對管理表220的結(jié)構(gòu)例子。HA卷對管理表220存儲HA卷對的管理信息。具體地說,HA卷對管理表220具有HA卷對的ID的欄221、表示HA卷對的狀態(tài)的欄222、HA卷對的PVOL的ID的欄223和對提供PVOL的MDKC的識別符進行存儲的欄224。

HA卷對管理表220還具有HA卷對的SVOL的ID的欄225和對提供SVOL的RDKC的識別符進行存儲的欄226。在各條目中,PVOL或SVOL是該存儲裝置10提供的卷。

對狀態(tài)的例子為復(fù)制(COPY)狀態(tài)、成對(PAIR)狀態(tài)和暫停(SUSPEND)狀態(tài)等。COPY狀態(tài)是從HA卷對的一方的卷向另一方的卷進行著數(shù)據(jù)復(fù)制的狀態(tài)。PAIR狀態(tài)是HA卷對的兩個卷同步的狀態(tài)。SUSPEND狀態(tài)是HA卷對的兩個卷非同步的狀態(tài)。

圖9示出LU路徑管理表230的結(jié)構(gòu)例子。LU路徑管理表230管理與LUN建立了關(guān)聯(lián)關(guān)系的端口以及卷。具體地說,LU路徑管理表230具有端口ID的欄231、LUN的欄232和卷ID的欄233。

圖10示出VOL管理表240的結(jié)構(gòu)例子。VOL管理表240存儲卷的特性信息。具體地說,VOL管理表240具有卷ID的欄241、表示卷的大小的欄242以及對卷提供物理存儲區(qū)域的奇偶校驗組(PG)的欄243。奇偶校驗組還稱為RAID組。

圖11示出PG管理表250的結(jié)構(gòu)例子。PG管理表250管理奇偶校驗組的特性。具體地說,PG管理表250具有奇偶校驗組的ID的欄251、表示奇偶校驗組的類型的欄252、表示奇偶校驗組的大小的欄253以及表示奇偶校驗組的RAID級別的欄254。

圖12示出緩存槽管理表270的結(jié)構(gòu)例子。緩存槽管理表270管理被高速緩沖存儲的數(shù)據(jù)。具體地說,緩存槽管理表270存儲與高速緩沖存儲器的管理單位即緩存槽(還僅稱為槽)相關(guān)的信息。槽的大小相同,能夠從槽編號確定該槽在高速緩沖存儲器內(nèi)的地址。

槽編號欄271存儲有槽的編號。PG ID欄272以及PG內(nèi)地址欄273表示對存儲在槽中的數(shù)據(jù)進行存儲的奇偶校驗組的ID以及該奇偶校驗組內(nèi)的地址。VOL ID欄274以及VOL內(nèi)地址欄275表示對存儲在槽中的數(shù)據(jù)進行存儲的卷的識別符以及卷內(nèi)的地址。

槽狀態(tài)欄276表示槽的狀態(tài)??臻e狀態(tài)表示槽被釋放。此外,在此還管理空閑狀態(tài)的槽,但是可以不將不處于其它狀態(tài)的槽作為空閑狀態(tài)進行管理。臟(dirty)狀態(tài)表示槽內(nèi)的數(shù)據(jù)寫入奇偶校驗組前的狀態(tài)。槽內(nèi)的數(shù)據(jù)與奇偶校驗組的數(shù)據(jù)不一致。

干凈(clean)狀態(tài)在PVOL和SVOL之間不同。PVOL的干凈狀態(tài)表示槽內(nèi)的數(shù)據(jù)寫入奇偶校驗組且還寫入SVOL后(來自RDKC的結(jié)束響應(yīng)后)的狀態(tài)。即,槽內(nèi)的數(shù)據(jù)與奇偶校驗組內(nèi)的數(shù)據(jù)一致。SVOL的干凈狀態(tài)表示槽內(nèi)的數(shù)據(jù)寫入奇偶校驗組后的狀態(tài)。

雙重寫入中狀態(tài)是PVOL特有的狀態(tài),表示槽內(nèi)的數(shù)據(jù)寫入SVOL前(來自RDKC的結(jié)束響應(yīng)前)的狀態(tài)。即,表示PVOL的數(shù)據(jù)與SVOL的數(shù)據(jù)不一致。

圖13表示JOB管理表260的結(jié)構(gòu)例子。JOB管理表260管理存儲有JOB管理表的MPPK120所執(zhí)行的任務(wù)(JOB)。在此的JOB是對卷的寫入處理或?qū)淼淖x取處理。JOB管理表260存儲執(zhí)行中的JOB以及今后應(yīng)該執(zhí)行的JOB的信息。JOB管理表260的最大條目數(shù)量為定值。

JOB編號欄261表示JOB的識別符。處理類別欄262表示在JOB中應(yīng)該執(zhí)行的處理的類別。具體地說,包括與來自主計算機180的讀取指令對應(yīng)的處理(HOST READ)、與來自主計算機180的寫入指令對應(yīng)的處理(HOST WRITE)、與來自其它存儲裝置的讀取指令對應(yīng)的處理(DKC間READ)以與來自其它存儲裝置的寫入指令對應(yīng)的處理(DKC間WRITE)。

HA P/S欄263表示JOB的對象卷是否是HA卷對的卷,而且在是HA卷對的卷的情況下,還表示是PVOL還是SVOL。

VOL ID欄264表示JOB的對象卷的ID。起始邏輯區(qū)塊地址(START LBA)欄265以及邏輯區(qū)塊地址長度(LBA LENGTH)欄266表示JOB的對象數(shù)據(jù)的卷內(nèi)的起始地址以及數(shù)據(jù)大小(地址長度)。

排他類別欄267表示JOB是否確保排他鎖定,而且在確保了排他鎖定的情況下,表示其排他類別。RD共有(RD共享)表示禁止向該地址區(qū)域的寫入但允許讀取。R/W(讀/寫)排他表示禁止對該地址區(qū)域的寫入以及讀取。

對于JOB編號以及MPPK編號欄268在條目中存儲數(shù)據(jù),該條目表示與主計算機180向SVOL的寫入指令對應(yīng)的處理。JOB編號以及MPPK編號欄268存儲如下信息,該信息確定MDKC中的向?qū)?yīng)PVOL寫入的寫入處理的JOB。JOB由JOB編號和執(zhí)行該JOB的MPPK的編號(MPPK的識別符)確定。如后所述,JOB確定信息包括在從RDKC向MDKC的排他鎖定解除指令中。

圖14的順序圖示出向主計算機180提供虛擬存儲裝置15以及虛擬卷151~154的信息的方法。主計算機180在向存儲裝置10發(fā)送登錄請求且接收到其響應(yīng)后,發(fā)送報告LUN(REPORT LUN)指令。REPORT LUN指令請求提供該端口能夠訪問的LUN(Logial Unit Number:邏輯單元號)的列表。存儲裝置10A參照LU路徑管理表230,返回能夠訪問的LUN的列表(REPORT LUN響應(yīng))。

主計算機180能夠利用查詢(INQUIRY)指令,查詢存儲裝置10的制造編號以及LUN所對應(yīng)的卷的ID。存儲裝置10參照LU路徑管理表230以及VOL映射信息管理表210,判定是否定義了對應(yīng)的虛擬結(jié)構(gòu)(S101)。

在定義了對應(yīng)的虛擬結(jié)構(gòu)(虛擬存儲裝置或虛擬卷)的情況下(S101:是),存儲裝置10將該虛擬結(jié)構(gòu)的信息包含在INQUIRY響應(yīng)中并返回(S102)。在沒有定義虛擬結(jié)構(gòu)的情況下(S101:否),存儲裝置10將實際結(jié)構(gòu)的信息包含在INQUIRY響應(yīng)中并返回(S103)。

在圖4的結(jié)構(gòu)中,例如,在主計算機180請求存儲裝置10A(S/N:AAA)通知制造編號時,接受到該請求的存儲裝置10A將虛擬存儲裝置15的制造編號XXX作為響應(yīng)發(fā)送至主計算機180。存儲裝置10B也將虛擬存儲裝置15的制造編號XXX作為響應(yīng)發(fā)送至主計算機180。

虛擬存儲裝置15的制造編號在構(gòu)成HA存儲裝置對的存儲裝置10A以及10B中通用。使主計算機180將構(gòu)成HA存儲裝置對的存儲裝置10A、10B識別為一個虛擬存儲裝置15。

同樣,在主計算機180利用INQUIRY指令請求存儲裝置10A通知與LUN對應(yīng)的卷ID(VOL ID)時,存儲裝置10A將虛擬卷151~153的ID(20︰00~20︰02)作為響應(yīng)返回至主計算機180。同樣,存儲裝置10B將虛擬卷151、152、154的ID(20︰00、20︰01、20︰03)作為響應(yīng)返回至主計算機180。

這樣,主計算機180識別出虛擬卷151~154,而且識別出分別與虛擬卷151、152對應(yīng)的兩個路徑(端口)以及分別與虛擬卷153、154對應(yīng)的一個路徑(端口)。

說明HA卷對的創(chuàng)建過程。管理者使用卷創(chuàng)建HA卷對。管理者使用管理計算機20指示存儲裝置10A、10B創(chuàng)建HA卷對。

將HA卷對的一方定義為PVOL,將另一方定義為SVOL。管理者可以使用管理計算機20定義PVOL和SVOL。如后所述,在PVOL和SVOL之間,針對來自主計算機180的訪問的處理不同。若創(chuàng)建HA卷對,則存儲裝置10A、10B向HA卷對管理表220追加新的條目。

另外,對HA卷對定義共同的虛擬信息。存儲裝置10A、10B或管理者對HA卷對定義共同的虛擬卷ID。存儲裝置10A、10B將具有被定義的虛擬信息的新條目追加至VOL映射信息管理表210中。

在定義HA卷對后,存儲裝置10A、10B開始從PVOL向SVOL進行初始數(shù)據(jù)復(fù)制。在初始數(shù)據(jù)復(fù)制結(jié)束時,兩個卷具有同一數(shù)據(jù),相互同步。即,存儲裝置10A、10B分別接收來自主計算機180的寫入指令,相互間進行寫入指令和寫入數(shù)據(jù)的通信,對PVOL和SVOL雙方進行更新,維持卷間的同一性。

如后所述,存儲裝置10A、10B針對來自主計算機180的讀取指令,在存儲裝置10A、10B間不進行通信,將裝置自身的卷的數(shù)據(jù)返回至主計算機180。由此,避免處理延遲。

在存儲裝置10A、10B中的一方發(fā)生故障,而不能夠?qū)碜灾饔嬎銠C180的I/O訪問進行響應(yīng)的情況下,檢測到該狀況且沒有發(fā)生故障的另一方的存儲裝置對來自主計算機180的所有I/O訪問進行處理。

在一方的卷中產(chǎn)生故障而存儲裝置10A、10B與主計算機180能夠通信的情況下,存儲發(fā)生了故障的卷的存儲裝置向另一方的存儲裝置轉(zhuǎn)送來自主計算機180的指令。

例如,假設(shè)在存儲裝置10B的卷中產(chǎn)生故障。存儲裝置10B將來自主計算機180的寫入指令轉(zhuǎn)送至存儲裝置10A,存儲裝置10A進行向裝置自身的卷的寫入處理。存儲裝置10B向主計算機180返回寫入結(jié)束響應(yīng)。另外,存儲裝置10B將從存儲裝置10A接收到的讀取數(shù)據(jù)返回至主計算機180。在存儲裝置10A的卷中發(fā)生了故障時也相同,只要存儲裝置10A和存儲裝置10B的應(yīng)對措施相反即可。

這樣,本信息系統(tǒng)得到高可用性。另外,能夠?qū)VOL和SVOL定義不同的發(fā)生故障時的作用。例如,在存儲裝置10A、10B間的通信發(fā)生了故障時,信息系統(tǒng)接受從主計算機180向PVOL的I/O訪問,阻止向SVOL的I/O訪問。由此,維持虛擬卷中的數(shù)據(jù)的同一性。

存儲裝置10A、10B能夠根據(jù)Quorum Disk以及存儲裝置10A,10B間的通信狀態(tài)得知其它裝置的故障和存儲裝置10A、10B間的通信故障。

圖15示出從主計算機180向PVOL的寫入處理的順序。主計算機180對MDKC10M發(fā)行向虛擬卷內(nèi)的區(qū)域?qū)懭氲膶懭胫噶?WR CMD)。MDKC10M在與虛擬卷對應(yīng)的PVOL中確保對寫入指令所指定的區(qū)域的排他鎖定(S201)。

MDKC10M在完成數(shù)據(jù)接收的準備時,向主計算機180返回數(shù)據(jù)轉(zhuǎn)送的準備完畢(READY)響應(yīng)(XFR RD),從主計算機180接收寫入數(shù)據(jù)(WRDAT)。MDKC10M將接收到的寫入數(shù)據(jù)寫入PVOL內(nèi)的地址區(qū)域(S202)。如上所述,對于向PVOL的寫入,若寫入高速緩沖存儲器的功能啟動(ON),向高速緩沖存儲器131進行寫入,若寫入高速緩沖存儲器的功能關(guān)閉(OFF),向奇偶校驗組(物理存儲區(qū)域)進行寫入。

MDKC10M將向PVOL和構(gòu)成HA卷對的SVOL內(nèi)的區(qū)域?qū)懭氲膶懭胫噶?WR CMD)發(fā)送至RDKC10R。SVOL能夠由卷ID或另外定義的LUN指定。RDKC10R將數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(XFR RD)返回至MDKC10M,從MDKC10M接收寫入數(shù)據(jù)(WR DAT)。RDKC10R將接收到的寫入數(shù)據(jù)寫入SVOL內(nèi)的地址區(qū)域(S203)。向SVOL的寫入與向上述PVOL的寫入相同。

RDKC10R在向SVOL內(nèi)的地址區(qū)域的數(shù)據(jù)寫入結(jié)束時,將寫入結(jié)束響應(yīng)(WR RSP)返回至MDKC10M。MDKC10M在從RDKC10R接收到寫入結(jié)束響應(yīng)后,向主計算機180返回寫入結(jié)束響應(yīng)(WR RSP)。而且,MDKC10M解除正在確保的排他鎖定(S204)。

圖16示出從主計算機180向SVOL的寫入處理的順序。主計算機180向RDKC10R發(fā)行向虛擬卷內(nèi)的區(qū)域?qū)懭氲膶懭胫噶?WR CMD)。

RDKC10R在完成數(shù)據(jù)接收的準備后,向主計算機180返回數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(XFR RD),從主計算機180接收寫入數(shù)據(jù)(WR DAT)。RDKC10R將向SVOL和構(gòu)成HA卷對的PVOL內(nèi)的區(qū)域?qū)懭氲膶懭胫噶?WR CMD)發(fā)送至MDKC10M。

MDKC10M確保對寫入指令所指定的卷內(nèi)區(qū)域的排他鎖定(S251)。然后,MDKC10M將數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(XFR RD)返回至RDKC10R,從RDKC10R接收寫入數(shù)據(jù)(WR DAT)。

MDKC10M將接收到的寫入數(shù)據(jù)寫入PVOL內(nèi)的被指定的區(qū)域(S252)。MDKC10M在向PVOL內(nèi)的區(qū)域的數(shù)據(jù)寫入結(jié)束時,將寫入結(jié)束響應(yīng)(WR RSP)返回至RDKC10R。

RDKC10R在從MDKC10M接收到寫入結(jié)束響應(yīng)后,向SVOL內(nèi)的被指定的區(qū)域?qū)懭雽懭霐?shù)據(jù)(S253)。RDKC10R向主計算機180返回寫入結(jié)束響應(yīng)(WR RSP)。然后,RDKC10R指定JOB,將排他鎖定解除指令發(fā)送至MDKC10M。MDKC10M解除被確保的排他鎖定(S254),將表示被指定的JOB已解除了排他鎖定的響應(yīng)返回至RDKC10R。

圖17示出MDKC10M以及RDKC10R針對來自主計算機180的寫入指令進行的處理的流程圖。在圖17中,MDKC10M執(zhí)行步驟S301~S311,RDKC10R執(zhí)行步驟S301、S302、S312~S319。在以下說明的例子中,向卷的寫入與向高速緩沖存儲器130的寫入數(shù)據(jù)的寫入對應(yīng)。

首先,說明MDKC10M的處理。MDKC10M從主計算機180接收寫入指令。寫入指令使用LUN指定對象卷。MDKC10M參照LU路徑管理表230決定與寫入指令所指定的虛擬卷對應(yīng)的卷ID。

MDKC10M在JOB管理表260中創(chuàng)建新的條目,來確保JOB(S301)。具體地說,MPPK120在該JOB管理表260中選擇空閑的JOB,在其條目中寫入處理類別(HOST WRITE)以及寫入指令所指定的卷以及地址的信息。在排他類別欄267的單元中未記入內(nèi)容。在圖13的JOB管理表260中,JOB編號為1的條目示出從主計算機180向PVOL的寫入處理。

MPPK120參照HA卷對管理表220,判定被指定的卷是HA卷對的PVOL還是SVOL(S302)。在此,被指定的卷為PVOL。

接著,MPPK120確保新JOB的排他鎖定(S303)。具體地說,MPPK120檢索JOB管理表260,并檢索對指定卷和指定區(qū)域的排他鎖定進行確保的其它的JOB。在確保有排他鎖定的情況下,等待該排他鎖定解除。確保排他鎖定的順序例如被未圖示的隊列控制。此外,排他控制的單位可以如本例子那樣以LBA為單位,也可以以卷為單位。通過僅使卷內(nèi)的一部分區(qū)域排他鎖定,能夠減小對其它指令的處理的影響。

在指定卷和指定區(qū)域的排他鎖定沒有被其它JOB確保的情況下,MPPK120在新JOB的排他類別欄267的單元中設(shè)定排他鎖定。處理是向PVOL的寫入處理,其排他類別為R/W排他。

在確保了排他鎖定時,MPPK120向主計算機180返回數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng),等待來自主計算機180的寫入數(shù)據(jù)(S304)。MPPK120確保用于存儲寫入數(shù)據(jù)的緩存槽(S305)。具體地說,MPPK120在緩存槽管理表270中,在空閑的槽內(nèi)設(shè)定新的數(shù)據(jù)。MPPK120參照VOL管理表240,確定與指定卷對應(yīng)的奇偶校驗組。

MPPK120使用FEPK100將接收到的寫入數(shù)據(jù)寫入被確保的緩存槽中(S306)。MPPK120在緩存槽管理表270中將該緩存槽的槽狀態(tài)設(shè)定為雙重寫入中。

MPPK120向RDKC10R發(fā)行向與PVOL對應(yīng)的SVOL寫入的寫入指令,等待數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(S307)。MPPK120從HA卷對管理表220取得SVOL以及儲存有SVOL的RDKC10R的ID。MPPK120對該RDKC10R指示向該SVOL的寫入處理。SVOL能夠通過卷ID或另外定義的LUN指定。

在接收到READY響應(yīng)時,MPPK120使用FEPK100,向RDKC10R轉(zhuǎn)送從主計算機180接收到的寫入數(shù)據(jù),等待寫入結(jié)束的響應(yīng)(S308)。

在從RDKC10R接收到寫入結(jié)束響應(yīng)時,MPPK120向主計算機180發(fā)送寫入結(jié)束響應(yīng)(S309)。而且,MPPK120在緩存槽管理表270中將該緩存槽的槽狀態(tài)變更為臟(S310)。例如,MPPK120從JOB管理表260取得該JOB的對象卷以及區(qū)域,由此在緩存槽管理表270中確定對應(yīng)的緩存槽。

MPPK120更新JOB管理表260,解除該JOB的排他鎖定(S311)。例如,MPPK120在JOB管理表260釋放該JOB,解除排他鎖定。

接著,說明RDKC10R的處理。RDKC10R的步驟S301、S302實質(zhì)上與MDKC10M的S301、S302相同。其中,被來自主計算機180的寫入指令指定的卷為SVOL。在圖13中,JOB編號為5的條目示出從主計算機180向SVOL的寫入處理。

負責被指定的卷的MPPK120向主計算機180返回數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng),等待來自主計算機180的寫入數(shù)據(jù)(S312)。

FEPK100將從主計算機180接收到的寫入數(shù)據(jù)保存在緩沖存儲器113中。MPPK120向MDKC10M發(fā)行向與SVOL對應(yīng)的PVOL寫入的寫入指令,等待數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(S313)。MPPK120從HA卷對管理表220取得PVOL以及保存有PVOL的MDKC10M的ID。MPPK120指示該MDKC10M進行向該PVOL的寫入處理。PVOL能夠由卷ID或另外定義的LUN指定。

在接收到READY響應(yīng)時,MPPK120使用FEPK100向MDKC10M轉(zhuǎn)送從主計算機180接收到的寫入數(shù)據(jù),等待寫入結(jié)束的響應(yīng)(S314)。

MPPK120分析從MDKC10M接收到的寫入結(jié)束響應(yīng),取得JOB確定信息(S315)。寫入結(jié)束響應(yīng)包括確定該寫入處理的JOB的信息。JOB確定信息包括該JOB的編號以及在MDKC120中負責該JOB的MPPK的編號。MPPK120在JOB管理表260中,在該條目的欄268中存儲JOB確定信息。

MPPK120確保用于存儲寫入數(shù)據(jù)的緩存槽(S316)。具體地說,MPPK120在緩存槽管理表270中,在空閑的槽內(nèi)設(shè)定新的數(shù)據(jù)。MPPK120參照VOL管理表240,確定與指定卷對應(yīng)的奇偶校驗組。

MPPK120將存儲在緩沖存儲器113中的寫入數(shù)據(jù)寫入確保的緩存槽中(S317)。MPPK120在緩存槽管理表270中將該緩存槽的槽狀態(tài)設(shè)定為臟。

在寫入高速緩沖存儲器后,MPPK120向主計算機180發(fā)送寫入結(jié)束響應(yīng)(S318)。另外,MPPK120從JOB管理表260取得JOB確定信息,生成包括該JOB確定信息的排他鎖定解除指令。MPPK120將生成的排他鎖定解除指令發(fā)送至MDKC10M,等待來自MDKC10M的響應(yīng)(S319)。

圖18示出MDKC10M和RDKC10R針對MDKC10M與RDKC10R之間的寫入指令進行的處理的流程圖。在圖18中,MDKC10M執(zhí)行步驟S351~S361,RDKC10R執(zhí)行步驟S351、S352、S362~S365。

首先,說明MDKC10M的處理。MDKC10M從RDKC10R接收寫入指令。寫入指令通過卷ID或另外定義的LUN指定對象卷。MDKC10M在JOB管理表260中創(chuàng)建新的條目,來確保JOB(S351)。

具體地說,負責被指定的卷的MPPK120在該JOB管理表260中選擇空閑的JOB,向其條目中寫入處理類別(DKC間WRITE)以及寫入指令所指定的卷以及地址的信息。排他類別欄267的單元未記入內(nèi)容。在圖13中,JOB編號為3的條目示出從RDKC10R向PVOL的寫入指令的處理。

MPPK120參照HA卷對管理表220,判定被指定的卷是HA卷對的PVOL還是SVOL(S352)。在此,被指定的卷為PVOL。

接著,MPPK120確保新JOB的排他鎖定(S353)。具體地說,MPPK120檢索JOB管理表260,并檢索對指定卷和指定區(qū)域的排他鎖定進行確保的其它的JOB。在確保有排他鎖定的情況下,等待該排他鎖定解除。確保排他鎖定的順序例如由未圖示的隊列控制。

在指定卷和指定區(qū)域的排他鎖定沒有被其它JOB確保的情況下,MPPK120在新JOB的排他類別欄267的單元中設(shè)定排他鎖定。處理是向PVOL的寫入處理,其排他類別為R/W排他。

在確保了排他鎖定時,MPPK120向RDKC10R返回數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng),等待來自RDKC10R的寫入數(shù)據(jù)(S354)。MPPK120確保用于存儲寫入數(shù)據(jù)的緩存槽(S355)。具體地說,MPPK120在緩存槽管理表270中,在空閑的槽內(nèi)設(shè)定新的數(shù)據(jù)。MPPK120能夠參照VOL管理表240確定與指定卷對應(yīng)的奇偶校驗組。

MPPK120使用FEPK100將接收到的寫入數(shù)據(jù)寫入確保的緩存槽(S356)。MPPK120在緩存槽管理表270中將該緩存槽的槽狀態(tài)設(shè)定為雙重寫入中。

在將寫入數(shù)據(jù)還寫入高速緩沖存儲器130后,MPPK120向RDKC10R返回寫入結(jié)束的響應(yīng),等待排他鎖定解除指令(S357)。寫入結(jié)束響應(yīng)包括該寫入處理的JOB確定信息。JOB能夠由JOB編號和負責該JOB的MPPK的編號確定。MPPK120將從JOB管理表260取得的JOB編號和裝置自身的MPPK編號包含在寫入結(jié)束響應(yīng)中。

MPPK120在從RDKC10R接收到排他鎖定解除指令時,從該排他鎖定解除指令取得JOB確定信息(S358)。MPPK120在緩存槽管理表270中將被指定的JOB的緩存槽的槽狀態(tài)變更為臟(S359)。例如,MPPK120從JOB管理表260取得該JOB的對象卷以及區(qū)域,由此能夠在緩存槽管理表270中確定對應(yīng)緩存槽。

MPPK120還解除JOB確定信息所表示的JOB的排他鎖定(S360)。例如,MPPK120在JOB管理表260中釋放該JOB,由此解除排他鎖定。然后,MPPK120向RDKC10R返回排他鎖定解除的響應(yīng)(S361)。

接著,說明RDKC10R的處理。RDKC10R從MDKC10M接收寫入指令。寫入指令通過卷ID或另外定義的LUN指定對象卷。RDKC10R在JOB管理表260中創(chuàng)建新的條目,來確保JOB(S351)。具體的方法與MDKC10M的方法相同。

MPPK120參照HA卷對管理表220,判定被指定的卷是HA卷對的PVOL還是SVOL(S352)。在此,被指定的卷為SVOL。

MPPK120向MDKC10M返回數(shù)據(jù)轉(zhuǎn)送的READY,等待數(shù)據(jù)轉(zhuǎn)送(S362)。MPPK120確保用于存儲寫入數(shù)據(jù)的緩存槽(S363)。具體地說,MPPK120在緩存槽管理表270中,在空閑的槽內(nèi)設(shè)定新的數(shù)據(jù)。MPPK120參照VOL管理表240,確定與指定卷對應(yīng)的奇偶校驗組。

MPPK120使用FEPK100將寫入數(shù)據(jù)寫入確保的緩存槽(S364)。MPPK120在緩存槽管理表270中,將該緩存槽的槽狀態(tài)設(shè)定為臟。在寫入高速緩沖存儲器后,MPPK120向MDKC10M發(fā)送寫入結(jié)束響應(yīng)(S365)。

圖19示出對于從主計算機180向PVOL的讀取指令進行的處理的順序。主計算機180向MDKC10M發(fā)行對虛擬卷內(nèi)的區(qū)域讀取的讀取指令(RD CMD)。MDKC10M在與虛擬卷對應(yīng)的PVOL中,確保對讀取指令所指定的區(qū)域的排他鎖定(S401)。MDKC10M讀取PVOL的指定地址區(qū)域的數(shù)據(jù)(S402)。MDKC10M解除排他鎖定(S403),向主計算機180返回包含讀取數(shù)據(jù)的讀取結(jié)束響應(yīng)(RD RSP)。

圖20示出對從主計算機180向SVOL的讀取指令的處理的順序。主計算機180向RDKC10R發(fā)行對虛擬卷內(nèi)的區(qū)域讀取的讀取指令(RD CMD)。RDKC10R讀取與虛擬卷對應(yīng)的SVOL的指定地址區(qū)域的數(shù)據(jù)(S451)。RDKC10R向主計算機180返回包含讀取數(shù)據(jù)的讀取結(jié)束響應(yīng)(RD RSP)。

圖21示出與來自主計算機180的讀取指令對應(yīng)的MDKC10M以及RDKC10R的處理的流程圖。在圖21中,MDKC10M執(zhí)行步驟S501~S508,RDKC10R執(zhí)行步驟S501、S502、S509~S511。

首先,說明MDKC10M的讀取處理。MDKC10M從主計算機180接收讀取指令。讀取指令使用LUN指定對象卷。MDKC10M參照LU路徑管理表230決定與讀取指令所指定的虛擬卷對應(yīng)的卷ID。

MDKC10M在JOB管理表260中創(chuàng)建新的條目來確保JOB(S501)。具體地說,負責被指定的卷的MPPK120在該JOB管理表260中選擇空閑的JOB,向其條目中寫入處理類別(HOST READ)以及讀取指令所指定的卷以及地址的信息。排他類別欄267的單元未被記入內(nèi)容。在圖13中,JOB編號為0的條目示出根據(jù)來自主計算機180的指令而進行的從PVOL的讀取處理。

MPPK120參照HA卷對管理表220,判定被指定的卷是否為HA卷對的PVOL或SVOL(S502)。在此,被指定的卷為PVOL。

接著,MPPK120參照緩存槽管理表270,判定讀取指令所指定的存儲區(qū)域的數(shù)據(jù)是否被高速緩沖存儲(S503)。在讀取數(shù)據(jù)被高速緩沖存儲時(S503:是),MPPK120確認該JOB的排他鎖定(S512)。

具體地說,MPPK120檢索JOB管理表260,并檢索對指定卷和指定區(qū)域的R/W排他鎖定進行了確保的其它的JOB。在確保了R/W排他鎖定的情況下,等待該R/W排他鎖定的解除。在指定卷和指定區(qū)域的R/W排他鎖定沒有被其它JOB確保的情況下,將被高速緩沖存儲的讀取數(shù)據(jù)發(fā)送至主計算機180(S508)。

在讀取數(shù)據(jù)沒有被高速緩沖存儲的情況下(S503:否),MPPK120確保該JOB的排他鎖定(S503)。具體地說,MPPK120檢索JOB管理表260,并檢索對指定卷和指定區(qū)域的R/W排他鎖定進行了確保的其它的JOB。在確保了R/W排他鎖定的情況下,等待該R/W排他鎖定的解除。

在指定卷和指定區(qū)域的R/W排他鎖定沒有被其它JOB確保的情況下,MPPK120在新JOB的排他類別欄267的單元中設(shè)定排他鎖定。處理是讀取處理,其排他類別為RD共有。

在確保了排他鎖定時,MPPK120確保用于存儲讀取數(shù)據(jù)的緩存槽(S505)。具體地說,MPPK120在緩存槽管理表270中,在空閑槽內(nèi)設(shè)定新的數(shù)據(jù)。MPPK120能夠參照VOL管理表240確定與指定卷對應(yīng)的奇偶校驗組。

MPPK120將從奇偶校驗組讀取的寫入數(shù)據(jù)寫入確保的緩存槽(S506)。MPPK120在緩存槽管理表270中,將該緩存槽的槽狀態(tài)設(shè)定為干凈。MPPK120更新JOB管理表260,解除該JOB的排他鎖定(S507)。然后,MPPK120向主計算機180發(fā)送包含讀取數(shù)據(jù)的讀取結(jié)束響應(yīng)(S508)。

接著,說明RDKC10R的讀取處理。除了不執(zhí)行JOB的排他鎖定這點之外,RDKC10R的處理與MDKC10M的處理相同。步驟S509~S511分別與步驟S503、S505、S506對應(yīng)。RDKC10R將SVOL的讀取數(shù)據(jù)發(fā)送至主計算機180。

在上述例子中,HA卷對為PAIR狀態(tài)且同步。圖22示出HA卷對的對狀態(tài)與向PVOL以及SVOL進行I/O訪問中的排他類別之間的關(guān)系。作為對狀態(tài)示出有PAIR狀態(tài)和PSUS(Pair SUSpend:暫停成對)狀態(tài)。在PAIR狀態(tài)下,PVOL與SVOL同步,一方的更新反應(yīng)至另一方中。

在PAIR狀態(tài)下,如上所述,存在主計算機180對PVOL的寫入訪問以及讀取訪問,以及RDKC10R對PVOL的寫入訪問。對于這些訪問進行RD共有以及R/W排他的排他鎖定。同樣,存在主計算機180對SVOL的寫入訪問以及讀取訪問,以及MDKC10M對SVOL的寫入訪問。對于向SVOL的訪問,不執(zhí)行排他鎖定。

在PSUS狀態(tài)下,禁止更新SVOL,PVOL與SVOL不同步。MDKC10M處理來自主計算機180的訪問。MDKC10M接受主計算機180對PVOL的寫入訪問以及讀取訪問。

MDKC10M在針對來自主計算機180的寫入指令的處理中,不向RDKC10R發(fā)送寫入指令。MDKC10M針對來自主計算機180的寫入訪問以及讀取訪問分別進行R/W排他以及RD共有的排他鎖定。

另一方面,在PSUS狀態(tài)下,在RDKC10R從主計算機180接收到寫入指令或讀取指令時,向MDKC10R轉(zhuǎn)送。此時,RDKC不需要向高速緩沖存儲器131存儲數(shù)據(jù),在向緩沖存儲器113存儲后,向MDKC10R轉(zhuǎn)送。在寫入處理中,RDKC10R在從MDKC10R接收到寫入結(jié)束響應(yīng)時,向主計算機180返回寫入結(jié)束響應(yīng)。在讀取處理中,RDKC10R從MDKC10M接收讀取數(shù)據(jù),向主計算機180發(fā)送。

說明對與在MPPK120中產(chǎn)生的故障對應(yīng)的處理的例子。在處理來自主計算機180的寫入指令的過程中,在MPPK120產(chǎn)生故障時,PVOL和SVOL可能不同步。在本例子中,能夠防止因故障而引起的性能低下,并且通過其它的MPPK120向RDKC10R的SVOL發(fā)送寫入指令,能夠可靠地維持HA卷對的同一性。

例如,檢測出發(fā)生故障的MPPK120(故障MPPK120)的其它MPPK120(故障檢測MPPK120)及/或從故障MPPK120接管而成為PVOL的擔當?shù)钠渌麺PPK120(承接MPPK120)能夠發(fā)送向SVOL的寫入指令。

如上所述,在緩存槽管理表270的槽狀態(tài)為雙重寫入中的情況下,對于MDKC10M而言,是否正在向SVOL寫入寫入數(shù)據(jù)是不明確的。因此,MPPK120能夠參照緩存槽管理表270確定應(yīng)該發(fā)送寫入指令的JOB。

故障檢測MPPK120在緩存槽管理表270中檢索故障MPPK120所負責的PVOL的條目且槽狀態(tài)為雙重寫入中的條目。這些條目是應(yīng)該將寫入指令發(fā)送至SVOL的條目。故障檢測MPPK120在找到的條目中將槽狀態(tài)變更為“需要發(fā)送寫入指令”。

例如,各承接MPPK120可以進行緩存槽管理表270中的上述變更。各承接MPPK120僅更新接管而成為擔當?shù)腜VOL的條目。

圖23是承接MPPK120發(fā)送向SVOL的寫入指令的處理的流程圖。圖23示出通過承接MPPK120對承接的PVOL進行的寫入處理或讀取處理中的一部分步驟。

在本例子中,承接MPPK120在從故障MPPK120承接的PVOL的讀取/寫入處理中,將需要的寫入指令發(fā)送至SVOL。寫入處理是主機寫入處理或DKC間寫入處理。

如圖23所示,承接MPPK120確保與本次的指令對應(yīng)的JOB的排他鎖定(S551),另外,確保緩存槽(S552)。承接MPPK120在緩存槽管理表270中檢索是否存在應(yīng)該將寫入指令發(fā)送至SVOL的條目(S553)。

例如,承接MPPK120檢索為該PVOL的條目且槽狀態(tài)為“需要發(fā)送寫入指令”的條目。另外,MPPK120可以檢索包括本次指令所指定的區(qū)域的一部分或全部且槽狀態(tài)為“需要發(fā)送寫入指令”的條目。

在存在檢索出的條目的情況下(S553:是),承接MPPK120向RDKC10R發(fā)行寫入指令,等待數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(S554)。在接收到READY響應(yīng)時,承接MPPK120向RDKC10R轉(zhuǎn)送存儲在緩存槽中的寫入數(shù)據(jù),等待寫入結(jié)束的響應(yīng)(S555)。

在從RDKC10R接收到寫入結(jié)束響應(yīng)時,承接MPPK120在緩存槽管理表270中將該緩存槽的槽狀態(tài)變更為臟(S556)。然后,承接MPPK120再次啟動與本次從主計算機180接收的指令對應(yīng)的處理。

與承接MPPK120不同的MPPK120例如故障檢測MPPK120可以參照緩存槽管理表270將需要的寫入指令發(fā)送至RDKC10R。MPPK120在緩存槽管理表270中依次選擇“需要發(fā)送寫入指令”的條目,進行向SVOL的寫入處理??梢杂晒收蠙z測MPPK120和承接MPPK120中的雙方或僅一方執(zhí)行向SVOL的寫入處理。

說明在向SVOL的寫入處理中從RDKC10R向MDKC10M發(fā)送JOB排他鎖定解除指令的其它發(fā)送方法。在上述結(jié)構(gòu)例子中,RDKC10R與寫入數(shù)據(jù)分開單獨向MDKC10M發(fā)送排他鎖定解除指令。在以下說明的例子中,RDKC10R將排他鎖定解除指令與寫入數(shù)據(jù)一起發(fā)送至MDKC10M。由此,降低通信量。

圖24示出一起發(fā)送寫入數(shù)據(jù)和排他鎖定解除指令的順序。以下主要說明與圖16所示的順序圖之間的不同點。在圖24中,MDKC10M確保排他鎖定(S251),將數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(XFR RD)返回至RDKC10R。

RDKC10R將排他鎖定解除指令與寫入數(shù)據(jù)(WR DAT)一起發(fā)送至MDKC10M。具體地說,RDKC10R在分為多個部分發(fā)送寫入數(shù)據(jù)時,在發(fā)送最后的部分時一同發(fā)送排他鎖定解除指令。

MDKC10M從RDKC10R一同接收寫入數(shù)據(jù)(WR DAT)和排他鎖定解除指令。MDKC10M將接收到的寫入數(shù)據(jù)寫入PVOL內(nèi)的被指定的區(qū)域(S252)。MDKC10M在向PVOL內(nèi)的區(qū)域的數(shù)據(jù)寫入結(jié)束時,解除確保的排他鎖定(S257)。然后,MDKC10M向RDKC10R返回寫入結(jié)束響應(yīng)(WR RSP)。

本順序在FEPK100不具有自動轉(zhuǎn)送寫入指令和寫入數(shù)據(jù)的功能的結(jié)構(gòu)中有效。通過本順序,能夠降低MDKC10M與RDKC10R之間的通信次數(shù)。

在上述結(jié)構(gòu)例子中,RDKC10R不執(zhí)行JOB的排他鎖定。如以下說明的那樣,RDKC10R也可以如MDKC10M那樣執(zhí)行JOB排他鎖定。由此,通過可靠的順序保證,能夠得到更高的可靠性。

圖25示出包括RDKC10R所進行的JOB排他鎖定在內(nèi)的、從主計算機180向PVOL寫入的寫入處理的順序。以下主要說明與圖15所示的順序的不同點。

RDKC10R在從MDKC10M接收到寫入指令(WR CMD)時,確保對被寫入指令指定的區(qū)域的排他鎖定(S207)。RDKC10R將數(shù)據(jù)轉(zhuǎn)送的READY響應(yīng)(XFR RD)返回至MDKC10M,從MDKC10M接收寫入數(shù)據(jù)(WR DAT)。RDKC10R將接收到的寫入數(shù)據(jù)寫入SVOL內(nèi)的地址區(qū)域(S203)。

RDKC10R在向SVOL內(nèi)的地址區(qū)域的數(shù)據(jù)寫入結(jié)束時,將寫入結(jié)束響應(yīng)(WR RSP)返回至MDKC10M。而且RDKC10R解除確保的排他鎖定(S204)。

圖26示出包含RDKC10R所進行的JOB排他鎖定在內(nèi)的、從主計算機180向SVOL寫入的寫入處理的順序。以下主要說明與圖16所示的順序的不同點。

主計算機180向RDKC10R發(fā)行向虛擬卷內(nèi)的區(qū)域的寫入指令(WR CMD)。RDKC10R在與虛擬卷對應(yīng)的SVOL中確保對寫入指令所指定的區(qū)域的排他鎖定(S257)。

對于此后的RDKC10R的執(zhí)行步驟,直到向SVOL內(nèi)的被指定的區(qū)域?qū)懭雽懭霐?shù)據(jù)的步驟(S253)以前與圖16所示的順序圖相同。RDKC10R在將寫入結(jié)束響應(yīng)(WR RSP)返回至主計算機180后,解除確保的排他鎖定(S258)。接著,RDKC10R指定JOB,將排他鎖定解除指令發(fā)送至MDKC10M。

圖27示出與圖25以及圖26的順序?qū)?yīng)的、MDKC10M以及RDKC10R針對來自主計算機180的寫入指令進行的處理的流程圖。以下主要說明與圖17所示的流程圖的不同點。與圖17的流程圖的不同點在于通過RDKC10R進行排他鎖定的確保(S321)和排他鎖定的解除(S322)。

RDKC10R在向主計算機180返回READY響應(yīng)前,在步驟S321中確保新JOB的排他鎖定。確保排他鎖定的方法與步驟S303中的MDKC10M的方法相同。排他類別為R/W排他。

RDKC10R在向主計算機180返回寫入結(jié)束響應(yīng)后,在步驟S322中,解除排他鎖定。解除排他鎖定的方法與步驟S311中的MDKC10M的方法相同。

圖28示出與圖25以及圖26的順序?qū)?yīng)的、MDKC10M以及RDKC10R針對MDKC10M與RDKC10R之間的寫入指令進行的處理的流程圖。以下主要說明與圖18所示的流程圖的不同點。與圖18的流程圖的不同點在于通過RDKC10R進行排他鎖定的確保(S371)和排他鎖定的解除(S372)。

RDKC10R在向MDKC10M返回READY響應(yīng)前,在步驟S371中,確保新JOB的排他鎖定。確保排他鎖定的方法與步驟S353中的MDKC10M的方法相同。排他類別為R/W排他。

RDKC10R在向MDKC10M返回寫入結(jié)束響應(yīng)后,在步驟S372中,解除排他鎖定。解除排他鎖定的方法與步驟S360中的MDKC10M的方法相同。RDKC10R可以在對來自主計算機180的讀取指令的處理中也執(zhí)行排他鎖定。此時,RDKC10R的讀取處理與伴隨MDKC10M的排他鎖定進行的讀取處理相同。

這樣通過RDKC在向SVOL的I/O訪問中進行JOB排他控制,能夠提高可靠性。

此外,本發(fā)明不限于上述的實施例,包括各種變形例。例如,上述的實施例是為了易于理解本發(fā)明而詳細說明的,不必限于具有說明的所有結(jié)構(gòu)。另外,能夠?qū)⒛硞€實施例的結(jié)構(gòu)的一部分置換為其它實施例的結(jié)構(gòu),另外,還能夠在某個實施例的結(jié)構(gòu)中添加其它實施例的結(jié)構(gòu)。另外,對于各實施例的結(jié)構(gòu)的一部分能夠追加、刪除和置換其它結(jié)構(gòu)。

另外,對于上述的各結(jié)構(gòu)、功能和處理部等,例如可以通過集成電路進行設(shè)計等,以硬件方式實現(xiàn)它們的一部分或全部。另外,處理器解析實現(xiàn)各個功能的程序,通過執(zhí)行程序,以軟件的方式實現(xiàn)上述的各結(jié)構(gòu)、功能等。實現(xiàn)各功能的程序、表、文件等信息能夠存儲在存儲器、硬盤、SSD(Solid State Drive:固態(tài)硬盤)等存儲裝置,或IC卡、SD卡等存儲介質(zhì)中。

此外,在本實施例中,存儲裝置使存儲裝置以及卷虛擬化,但是也可以通過虛擬化專用裝置或主機的路徑管理器側(cè)的功能,使存儲裝置以及卷虛擬化。本實施例能夠適用于具有構(gòu)成冗余化(HA)結(jié)構(gòu)的Active-Active型的多個卷的多個存儲裝置。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东源县| 潞西市| 金门县| 武山县| 西华县| 肇源县| 英吉沙县| 上虞市| 龙海市| 舟曲县| 甘德县| 苗栗县| 郓城县| 吴桥县| 呼和浩特市| 五台县| 乌审旗| 图木舒克市| 怀远县| 泊头市| 松滋市| 西宁市| 隆德县| 绥棱县| 靖边县| 贡觉县| 安溪县| 嵊州市| 盐山县| 山东省| 交口县| 墨竹工卡县| 略阳县| 苏州市| 彭州市| 竹溪县| 柘荣县| 开封市| 武定县| 嘉禾县| 祥云县|