專利名稱:數(shù)據(jù)存儲系統(tǒng)及在其中存儲數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及數(shù)據(jù)存儲系統(tǒng),尤其涉及在虛擬存儲控制器中提供更有效的卷拷貝操作。
背景技術(shù):
高端存儲控制器管理從聯(lián)網(wǎng)主機(jī)到諸如存儲庫的一個(gè)或多個(gè)存儲單元的輸入/輸出(I/O)請求。存儲控制器包括一個(gè)或多個(gè)主機(jī)總線適配器或接口,用于和一個(gè)或多個(gè)主機(jī)通信,以及用于與連接有存儲單元的存儲服務(wù)器通信的適配器或接口。包括存儲系統(tǒng)的信息技術(shù)系統(tǒng)需要得到保護(hù)以避免站點(diǎn)災(zāi)難和停機(jī),其中停機(jī)可以計(jì)劃中的或非計(jì)劃的。此外,信息技術(shù)系統(tǒng)可能需要數(shù)據(jù)遷移、數(shù)據(jù)備份或數(shù)據(jù)復(fù)制等功能。災(zāi)難或停機(jī)恢復(fù)、數(shù)據(jù)遷移、數(shù)據(jù)備份和數(shù)據(jù)復(fù)制的實(shí)現(xiàn)可以包括鏡像或拷貝存儲系統(tǒng)中的數(shù)據(jù)。這種數(shù)據(jù)的鏡像或拷貝可以涉及信息技術(shù)系統(tǒng)的主機(jī)、存儲系統(tǒng)和連接聯(lián)網(wǎng)部件間的交互。
在對等(“PtP”)存儲環(huán)境中,兩個(gè)虛擬存儲服務(wù)器均被連接到若干(諸如4或8個(gè))虛擬存儲控制器。主機(jī)設(shè)備連接到每個(gè)控制器并且每個(gè)服務(wù)器連接到存儲庫。存儲庫可以包括許多存儲驅(qū)動(dòng)器、用于大量數(shù)據(jù)盒式磁帶的機(jī)架、以及一個(gè)或多個(gè)存取器,用來在機(jī)架和存儲驅(qū)動(dòng)器之間傳送所請求的盒式磁帶。整個(gè)系統(tǒng)對于主機(jī)設(shè)備而言就像是單個(gè)自動(dòng)存儲庫。這里將結(jié)合存儲在磁帶介質(zhì)上的數(shù)據(jù)來描述本發(fā)明。這樣,“虛擬存儲控制器”和“虛擬存儲服務(wù)器”在此也可以分別被稱為“虛擬磁帶控制器”(“VTC”)和“虛擬磁帶服務(wù)器”(“VTS”)。然而,本發(fā)明不局限于在磁帶環(huán)境中使用,其也可以用于其它環(huán)境中,諸如磁盤存儲和光盤存儲。
圖1是其中可實(shí)施本發(fā)明的典型數(shù)據(jù)存儲系統(tǒng)100的方框圖。若干(通常是4或8個(gè))諸如IBMModel AX的虛擬磁帶控制器110A、110B、110C和110D的每個(gè)都連接到兩個(gè)諸如IBM 3494 Model Bxx虛擬磁帶服務(wù)器的虛擬磁帶服務(wù)器120A和120B上。第一VTS 120A連接到第一磁帶庫130A,并且第二VTS 120B連接到第二磁帶庫130B。磁帶庫130A和130B可以是IBM Model 3494磁帶庫。每個(gè)VTC 110A-D也連接到主機(jī)設(shè)備140,諸如IBM系統(tǒng)/390。
所描述的配置允許對等拷貝操作。在圖2所示的傳統(tǒng)方法中,客戶數(shù)據(jù)150的卷作為寫請求的一部分從主機(jī)140傳送到VTC之一110A(步驟1)。卷150被傳送到VTS之一120A以最終在有關(guān)磁帶庫130A中的磁帶介質(zhì)上存儲(步驟3)。此外,接收主機(jī)寫請求的VTC 110A也向第二VTS 120B發(fā)出請求(步驟4),以將卷150拷貝到第二磁帶庫130B中的介質(zhì)上(步驟5)。當(dāng)在立即方式下操作時(shí),在向主機(jī)140提供寫請求已經(jīng)完成的確認(rèn)之前(步驟7),第一VTC110A一直等待,直到向其通知卷150已經(jīng)拷貝到第二磁帶庫130B中(步驟6)。在延遲模式下,在通知第一VTC 110A卷150已經(jīng)拷貝到第二磁帶庫130B中之前,第一VTC 110A可以向主機(jī)140通知寫請求已經(jīng)完成。在主機(jī)140接收到來自VTC 110A的“完成”消息后,它就可以自由地進(jìn)行其它操作,包括進(jìn)一步的I/O操作。
在所述的傳統(tǒng)方法中,主機(jī)設(shè)備140通常選擇VTC來基本上獨(dú)立于VTS 110A-D當(dāng)前工作負(fù)載地處理寫入操作。因?yàn)锳X VTC僅僅可以同時(shí)執(zhí)行三個(gè)復(fù)制操作,而在其工作隊(duì)列中可能還有大量的積壓操作,諸如16或32個(gè)復(fù)制操作。因此,在能夠通知主機(jī)140操作已經(jīng)完成之前,可能已經(jīng)花費(fèi)了大量的時(shí)間,因此妨礙了主機(jī)140在同一時(shí)間段執(zhí)行其它操作。此外,如果另一VTC僅有很少的作業(yè)在其隊(duì)列中,那么它就會空閑,同時(shí)第一VTC卻在處理其隊(duì)列中的作業(yè)。
如果特定的VTC-VTS通信連接被“過度用于”(over-utilized)其它主機(jī)I/O操作,那么也會引發(fā)同樣的問題。這些其它操作能夠?qū)е玛?duì)列中的拷貝請求被延遲。
因此,需要一種更有效的方法來分配拷貝請求。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于提高數(shù)據(jù)存儲系統(tǒng)中的拷貝操作的效率的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。多個(gè)虛擬存儲控制器均與一主機(jī)設(shè)備和兩個(gè)虛擬存儲服務(wù)器連通。每個(gè)虛擬存儲服務(wù)器都連接有一相應(yīng)的自動(dòng)存儲庫。每個(gè)控制器包括一拷貝隊(duì)列。在指示通過服務(wù)器之一把客戶數(shù)據(jù)的卷存儲在相關(guān)存儲庫的介質(zhì)上后,發(fā)起方控制器把用于將該卷拷貝到其它存儲庫的請求在拷貝隊(duì)列中排隊(duì)。如果發(fā)起方控制器在一段很短的時(shí)間內(nèi)沒有處理該請求,則該發(fā)起方控制器向其它控制器廣播該拷貝請求。最好是,該拷貝請求首先由發(fā)起方控制器發(fā)送到服務(wù)器之一中的路由設(shè)備上,由其向每個(gè)其它控制器廣播該請求。該拷貝請求在每個(gè)其它控制器的拷貝隊(duì)列中排隊(duì)。在控制器中的一個(gè)處理該請求并且該卷已經(jīng)拷貝到第二存儲庫后,進(jìn)行處理的控制器向其它控制器廣播一個(gè)消息,所述其它控制器則將所述拷貝請求從各自的拷貝隊(duì)列中移出。在收到這一消息時(shí),發(fā)起方控制器向主機(jī)設(shè)備發(fā)送一個(gè)指示該卷已被成功存儲和拷貝的消息。
為了減少兩個(gè)或更多的控制器試圖基本同時(shí)地處理該拷貝請求的可能性,最好在拷貝請求被放置到每個(gè)拷貝隊(duì)列的時(shí)間和其被每個(gè)控制器處理的時(shí)間之間設(shè)置一個(gè)延遲。該延遲可以是對每個(gè)控制器預(yù)定的,或者可以是針對每個(gè)拷貝請求隨機(jī)產(chǎn)生的。
圖1是其中可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)存儲系統(tǒng)的方框圖;圖2的方框圖示出了在數(shù)據(jù)存儲系統(tǒng)中處理拷貝請求的現(xiàn)有方法;圖3的方框圖示出了在數(shù)據(jù)存儲系統(tǒng)中處理拷貝請求的本發(fā)明的方法;圖4是本發(fā)明方法的流程圖;以及圖5是本發(fā)明虛擬存儲控制器的方框圖。
具體實(shí)施例方式
參考圖3的方框圖和圖4的流程圖,將描述本發(fā)明的實(shí)現(xiàn)。數(shù)據(jù)存儲系統(tǒng)300包括數(shù)個(gè)(諸如4或8個(gè))虛擬磁帶控制器310A、310B、310C和310D。每個(gè)控制器310A-D都通過適當(dāng)?shù)倪m配器和接口連接到兩個(gè)虛擬磁帶服務(wù)器320A和320B上。第一服務(wù)器320A連接到第一自動(dòng)存儲庫330A,第二服務(wù)器320B連接到第二自動(dòng)存儲庫330B上。每個(gè)控制器310A-D也通過適當(dāng)?shù)倪m配器和接口連接到主機(jī)設(shè)備340上。每個(gè)控制器310A-D分別包括拷貝隊(duì)列312A-D,并且服務(wù)器320A和320B分別包括路由設(shè)備322A和322B。
在操作中,主機(jī)340選擇虛擬控制器310中的一個(gè)(步驟400)并發(fā)出一個(gè)用于存儲客戶數(shù)據(jù)的卷350的寫請求(步驟402)。在所示的實(shí)例中,所選擇的控制器是第二控制器310B;然而,如前所述,可以選擇任一控制器。寫請求從選擇的虛擬控制器310B發(fā)送到兩個(gè)虛擬服務(wù)器之一(在所示例子中,寫請求被發(fā)送到第一服務(wù)器320A)(步驟404),由其繼續(xù)在相關(guān)存儲庫330A中存儲該卷(步驟406)。當(dāng)主機(jī)完成了向控制器310B發(fā)出寫請求時(shí),主機(jī)發(fā)出一個(gè)“寫完成”消息(步驟408)。所選擇的控制器310B將該請求排列在其隊(duì)列312B中,以通過第二服務(wù)器320B來拷貝該卷,從而存儲在相關(guān)存儲庫330B中(步驟410)。
如果在第二控制器310B的拷貝隊(duì)列312B中有少量待處理的作業(yè)(步驟412),則通過向第二服務(wù)器320B發(fā)送拷貝請求,該請求可在相對較短的時(shí)間內(nèi)被處理,諸如一秒(步驟414)。然而,在第二控制器的隊(duì)列中會有更多待處理作業(yè)以便立即處理該請求。不同于允許拷貝請求一直等待直到其到達(dá)隊(duì)列的起始處(這將可能花費(fèi)幾分鐘或更長時(shí)間)的方式,第二控制器310B向其它控制器310A、310C和310D廣播該拷貝請求(步驟416)。最好是,首先向在服務(wù)器320之一中的路由器322發(fā)送該拷貝請求;在所述的實(shí)例中,采用在第一服務(wù)器320A中的路由設(shè)備322A(步驟416)。路由設(shè)備322A而后向所有其它控制器310A、310C和310D廣播該拷貝請求,并且該拷貝請求分別在每個(gè)其它控制器310A、310C和310D的拷貝隊(duì)列312A、312C和312D中排隊(duì)(步驟418)。
最終,拷貝作業(yè)將到達(dá)包括發(fā)起方控制器310B的拷貝隊(duì)列在內(nèi)的拷貝隊(duì)列312A、B、C和D中的一個(gè)的起始處。在所示的實(shí)例中,通過向第二服務(wù)器320B發(fā)送卷的拷貝350A(步驟420),由第三控制器310C處理該拷貝作業(yè),其中所述第二服務(wù)器320B將拷貝350A存儲到第二存儲庫330B的介質(zhì)上(步驟422)。第三控制器310C而后向其它未進(jìn)行處理的控制器310A、B和D廣播一“完成”消息(步驟424)。該“完成”消息最好首先發(fā)送到服務(wù)器之一中的路由設(shè)備(圖3中的第二服務(wù)器320B的路由設(shè)備322B),由其向其它控制器310A、B和D廣播該消息(步驟426)。所有其它控制器310A、B和D將把該拷貝作業(yè)從各自的拷貝隊(duì)列312A、B和D中移出(步驟428)。此外,當(dāng)發(fā)起方控制器310B接收到“完成”消息時(shí)(或當(dāng)發(fā)起方控制器310B處理該請求時(shí)),發(fā)起方控制器310B將“完成”消息發(fā)回主機(jī)340(步驟430)。
兩個(gè)或更多的控制器310A-D可以同時(shí)處理拷貝請求。因此,最好在拷貝請求可被處理前在每個(gè)控制器中設(shè)置一個(gè)延遲。例如,每個(gè)控制器310A-D可以生成一隨機(jī)時(shí)間延遲來減少同時(shí)處理的可能性。該延遲可以由傳統(tǒng)的隨機(jī)數(shù)生成器生成,可以基于被拷貝的卷的名字并結(jié)合特定控制器的單元號而產(chǎn)生,可以從時(shí)間單位列表(諸如0、1、2或3秒)中隨機(jī)選擇,或者可以用其它合適方法產(chǎn)生。另一個(gè)可減少同時(shí)處理的可能性的因素是控制器310A-D獲取消息(包括拷貝請求)的速度取決于每個(gè)控制器的當(dāng)前工作負(fù)載??刂破鞑荒軌蚩偸橇⒓磿和2僮鱽慝@取消息。
圖5是其中可實(shí)施本發(fā)明的虛擬磁帶控制器310的方框圖。除了拷貝隊(duì)列312之外,控制器310還包括處理器314,其被編程來執(zhí)行存儲在存儲器316中的計(jì)算機(jī)可讀應(yīng)用代碼318所嵌入的指令。
所述技術(shù)可以通過利用標(biāo)準(zhǔn)編程和/或工程技術(shù)產(chǎn)生軟件、固件、硬件或其結(jié)合而被實(shí)現(xiàn)為方法、設(shè)備或計(jì)算機(jī)程序產(chǎn)品。在此使用的術(shù)語“計(jì)算機(jī)程序產(chǎn)品”是指在硬件邏輯(舉例來說,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等),或者計(jì)算機(jī)可讀介質(zhì)(例如,磁存儲介質(zhì),諸如硬盤驅(qū)動(dòng)器、軟盤、磁帶),光存儲器(例如,CD-ROM、光盤等等)、易失性和非易失性存儲器器件(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等等)中實(shí)施的代碼或邏輯。在計(jì)算機(jī)可讀介質(zhì)中的代碼由處理器存取并執(zhí)行。實(shí)施本發(fā)明的代碼可以進(jìn)一步通過傳送介質(zhì)或通過網(wǎng)絡(luò)從文件服務(wù)器來存取。在這種情況下,實(shí)施了該代碼的制造產(chǎn)品可包括傳輸介質(zhì),諸如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、空間傳播信號、無線電波、紅外線信號等等。當(dāng)然,本領(lǐng)域的普通技術(shù)人員會認(rèn)識到,這一配置將可以作出很多變化而不背離本發(fā)明的范圍,并且該制造產(chǎn)品可以包括本領(lǐng)域公知的任何信息承載介質(zhì)。
所示的附圖的邏輯示出了按特定順序發(fā)生的特定事件。在可選實(shí)施例中,特定操作可以以不同的順序執(zhí)行,被改變或去除。此外,在上述邏輯中也可以加入步驟,且仍遵循所述的實(shí)施例。此外,在此所述的操作可順序發(fā)生,或者某些操作可并行處理。另外,操作可以由單個(gè)的處理單元執(zhí)行或者由分布式處理單元執(zhí)行。
通過在此公開的具體實(shí)施例,本發(fā)明的目的能夠完整地得以實(shí)現(xiàn)。本領(lǐng)域的普通技術(shù)人員將理解,在不背離本發(fā)明的本質(zhì)功能的前提下,通過不同的實(shí)施例可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面。所述特定實(shí)施例是示例性的,并無意限制由附隨的權(quán)利要求書所限定的本發(fā)明的范圍。
權(quán)利要求
1.一種在數(shù)據(jù)存儲系統(tǒng)中存儲數(shù)據(jù)的方法,所述數(shù)據(jù)存儲系統(tǒng)具有兩個(gè)虛擬服務(wù)器、均與主機(jī)設(shè)備和每個(gè)虛擬服務(wù)器相連的多個(gè)虛擬控制器,每個(gè)虛擬服務(wù)器都進(jìn)一步連接到兩個(gè)存儲庫中的一個(gè),該方法包括在第一虛擬控制器中接收來自主機(jī)設(shè)備的用于存儲數(shù)據(jù)卷的寫請求;將該卷發(fā)送到第一虛擬服務(wù)器以便在第一存儲庫中存儲;將拷貝該卷的請求在第一虛擬控制器的隊(duì)列中排隊(duì);如果拷貝請求在預(yù)定時(shí)間內(nèi)沒有被第一虛擬控制器處理,則向每個(gè)其它虛擬控制器廣播該拷貝請求;將該拷貝請求放置到每個(gè)其它虛擬控制器的拷貝隊(duì)列中;由虛擬控制器中的一個(gè)處理該拷貝請求;以及從進(jìn)行處理的虛擬控制器向每個(gè)未進(jìn)行處理的控制器廣播一個(gè)“完成”消息;以及從第一虛擬控制器向主機(jī)設(shè)備發(fā)送“拷貝完成”消息。
2.根據(jù)權(quán)利要求1的方法,其中向每個(gè)其它虛擬控制器廣播所述拷貝請求包括從第一虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送該拷貝請求;以及從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該拷貝請求。
3.根據(jù)權(quán)利要求1的方法,其中向每個(gè)未進(jìn)行處理的虛擬控制器廣播“完成”消息包括從進(jìn)行處理的虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送該“完成”消息;以及從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該“完成”消息。
4.根據(jù)權(quán)利要求1的方法,其中向每個(gè)其它虛擬控制器廣播拷貝請求包括從第一虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求;以及從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該拷貝請求;并且向每個(gè)未進(jìn)行處理的虛擬控制器廣播“完成”消息包括從進(jìn)行處理的虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送該“完成”消息;以及從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該“完成”消息。
5.根據(jù)權(quán)利要求1的方法,還包括,在拷貝請求的處理之后,把該拷貝請求從每個(gè)未進(jìn)行處理的虛擬控制器的隊(duì)列中移出。
6.根據(jù)權(quán)利要求1的方法,還包括在相應(yīng)延遲時(shí)間內(nèi)阻止每個(gè)虛擬控制器試圖處理該拷貝請求。
7.根據(jù)權(quán)利要求6的方法,其中每個(gè)相應(yīng)延遲時(shí)間包括隨機(jī)延遲。
8.根據(jù)權(quán)利要求6的方法,其中每個(gè)相應(yīng)延遲時(shí)間是從多個(gè)預(yù)定時(shí)間單位中隨機(jī)選擇的。
9.根據(jù)權(quán)利要求1的方法,其中預(yù)定時(shí)間大約為1秒。
10.根據(jù)權(quán)利要求1的方法,其中虛擬控制器是虛擬磁帶控制器并且虛擬服務(wù)器是虛擬磁帶服務(wù)器。
11.一種數(shù)據(jù)存儲系統(tǒng),包括多個(gè)虛擬控制器,其每個(gè)連接到一主機(jī)設(shè)備;第一和第二虛擬服務(wù)器,其每個(gè)虛擬服務(wù)器連接到每一個(gè)虛擬控制器;第一和第二存儲庫,其每個(gè)分別連接到第一和第二虛擬服務(wù)器;用于在第一虛擬控制器中接收來自主機(jī)設(shè)備的用于存儲數(shù)據(jù)卷的寫請求的裝置;用于將該卷發(fā)送到第一虛擬服務(wù)器以將其存儲到第一存儲庫中的裝置;用于將拷貝該卷的請求在第一虛擬控制器的隊(duì)列中排隊(duì)的裝置;如果該拷貝請求在預(yù)定時(shí)間內(nèi)沒有被第一虛擬控制器處理,則用于向每個(gè)其它虛擬控制器廣播該拷貝請求的裝置;用于將拷貝請求在每個(gè)其它虛擬控制器的隊(duì)列中排隊(duì)的裝置;用于通過虛擬控制器之一處理該拷貝請求的裝置;用于從進(jìn)行處理的虛擬控制器向每個(gè)未進(jìn)行處理的控制器廣播一個(gè)“完成”消息的裝置;以及用于從第一虛擬控制器向主機(jī)設(shè)備發(fā)送“拷貝完成”消息的裝置。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),其中第一和第二虛擬服務(wù)器均包括一個(gè)路由設(shè)備;并且用于向每個(gè)其它虛擬控制器廣播該拷貝請求的裝置包括用于從第一虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求的裝置;以及用于從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該拷貝請求的裝置。
13.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),其中用于向每個(gè)未進(jìn)行處理的虛擬控制器廣播“完成”消息的裝置包括用于從進(jìn)行處理的虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送該“完成”消息的裝置;以及用于從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該“完成”消息的裝置。
14.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),其中第一和第二虛擬服務(wù)器均包括一路由設(shè)備;用于向每個(gè)其它虛擬控制器廣播該拷貝請求的裝置包括用于從第一虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求的裝置;以及用于從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該拷貝請求的裝置;并且用于向每個(gè)未進(jìn)行處理虛擬控制器廣播“完成”消息的裝置包括用于從進(jìn)行處理的虛擬控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送該“完成”消息的裝置;以及用于從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該“完成”消息的裝置。
15.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),進(jìn)一步包括用于在拷貝請求的處理之后,將該拷貝請求從每個(gè)未進(jìn)行處理的虛擬控制器的隊(duì)列中移出的裝置。
16.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),進(jìn)一步包括用于在相應(yīng)延遲時(shí)間內(nèi)阻止每個(gè)虛擬控制器試圖處理該拷貝請求的裝置。
17.根據(jù)權(quán)利要求16的數(shù)據(jù)存儲系統(tǒng),其中每個(gè)相應(yīng)延遲時(shí)間包括隨機(jī)延遲。
18.根據(jù)權(quán)利要求16的數(shù)據(jù)存儲系統(tǒng),其中每個(gè)相應(yīng)延遲時(shí)間是從多個(gè)預(yù)定時(shí)間單位中隨機(jī)選擇的。
19.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),其中預(yù)定時(shí)間大約為1秒。
20.根據(jù)權(quán)利要求11的數(shù)據(jù)存儲系統(tǒng),其中虛擬控制器是虛擬磁帶控制器并且虛擬服務(wù)器是虛擬磁帶服務(wù)器。
21.一種虛擬存儲控制器,包括主機(jī)適配器,用于與主機(jī)設(shè)備連接;第一和第二適配器,用于分別與第一和第二虛擬存儲服務(wù)器連接,所述第一和第二虛擬服務(wù)器分別連接到第一和第二存儲庫,并且進(jìn)一步連接多個(gè)其它虛擬存儲控制器中的每一個(gè);拷貝隊(duì)列,用于存儲從所述主機(jī)設(shè)備接收的拷貝請求;以及處理器,被編程為執(zhí)行用于進(jìn)行以下操作的指令從所述主機(jī)設(shè)備接收用于存儲數(shù)據(jù)卷的寫請求;將該卷發(fā)送到第一虛擬存儲服務(wù)器以在第一存儲庫中存儲;在拷貝隊(duì)列中對拷貝該卷的請求進(jìn)行排隊(duì);如果虛擬存儲控制器未在預(yù)定時(shí)間內(nèi)處理該拷貝請求,則向每個(gè)其它虛擬存儲控制器廣播該拷貝請求,由此該拷貝請求在每個(gè)其它虛擬存儲控制器的拷貝隊(duì)列中排隊(duì);由虛擬控制器中的一個(gè)處理該拷貝請求;以及從處理了該拷貝請求的虛擬存儲控制器接收一“完成”消息,該“完成”消息被廣播到每個(gè)未進(jìn)行處理的存儲控制器;以及向主機(jī)設(shè)備發(fā)送一“拷貝完成”消息。
22.根據(jù)權(quán)利要求21的虛擬存儲控制器,其中用于向每個(gè)其它虛擬控制器廣播該拷貝請求的指令包括用于進(jìn)行以下操作的指令向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求;以及從所述路由設(shè)備向每個(gè)其它虛擬控制器廣播該拷貝請求;并且用于從進(jìn)行處理的虛擬控制器接收該“完成”消息的指令包括用于從第一和第二虛擬服務(wù)器之一中的路由設(shè)備接收該“完成”消息的指令。
23.根據(jù)權(quán)利要求21的虛擬存儲控制器,其中所述指令進(jìn)一步包括用于在拷貝請求的處理之后,將該拷貝請求從每個(gè)未進(jìn)行處理的虛擬控制器的拷貝隊(duì)列中移出的指令。
24.根據(jù)權(quán)利要求21的虛擬存儲控制器,其中預(yù)定時(shí)間大約為1秒。
25.根據(jù)權(quán)利要求21的虛擬存儲控制器,其中虛擬存儲控制器是虛擬磁帶控制器并且虛擬存儲服務(wù)器是虛擬磁帶服務(wù)器。
26.一種虛擬存儲控制器,包括主機(jī)適配器,用于與一主機(jī)設(shè)備連接;第一和第二適配器,用于分別與第一和第二虛擬存儲服務(wù)器連接,所述第一和第二虛擬服務(wù)器分別連接到第一和第二存儲庫,并且進(jìn)一步連接包括第一虛擬存儲控制器的多個(gè)其它虛擬存儲控制器中的每一個(gè);拷貝隊(duì)列,用于存儲拷貝請求;以及處理器,被編程為執(zhí)行用于進(jìn)行以下操作的指令從所述第一虛擬存儲控制器接收用于拷貝卷的請求;將拷貝該卷的請求在拷貝隊(duì)列中排隊(duì);如果沒有從另一虛擬存儲控制器接收一“完成”消息,則處理該拷貝請求;并且向每個(gè)其它虛擬存儲控制器廣播一“完成”消息。
27.根據(jù)權(quán)利要求26的虛擬存儲控制器,其中用于向每個(gè)其它虛擬存儲控制器廣播所述拷貝請求的指令包括用于進(jìn)行如下操作的指令向第一和第二虛擬存儲服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求;以及從所述路由設(shè)備向每個(gè)其它虛擬存儲控制器廣播該拷貝請求。
28.根據(jù)權(quán)利要求26的虛擬存儲控制器,進(jìn)一步包括用于在拷貝請求的處理之后,將該拷貝請求從拷貝隊(duì)列中移出的指令。
29.根據(jù)權(quán)利要求26的虛擬存儲控制器,進(jìn)一步包括用于減少所述虛擬存儲控制器試圖與另一虛擬存儲控制器基本同時(shí)地處理該拷貝請求的可能性的指令。
30.根據(jù)權(quán)利要求29的虛擬存儲控制器,其中用于處理拷貝請求的指令包括用于進(jìn)行如下操作的指令如果沒有從另一虛擬存儲控制器接收到“完成”消息,則在一延遲時(shí)間后處理該拷貝請求;以及如果在該延遲時(shí)間內(nèi)從另一虛擬存儲控制器接收到“完成”消息,則取消該拷貝請求并將該拷貝請求從拷貝隊(duì)列中移出。
31.根據(jù)權(quán)利要求30的虛擬存儲控制器,其中所述延遲時(shí)間是一隨機(jī)時(shí)間。
32.根據(jù)權(quán)利要求30的虛擬存儲控制器,其中所述延遲時(shí)間是從多個(gè)預(yù)定時(shí)間單位中隨機(jī)選擇的。
33.根據(jù)權(quán)利要求30的虛擬存儲控制器,其中所述延遲時(shí)間包括根據(jù)虛擬存儲控制器的單元號并結(jié)合作為拷貝請求的對象的卷的名字而產(chǎn)生的數(shù)。
34.根據(jù)權(quán)利要求26的虛擬存儲控制器,其中虛擬存儲控制器是虛擬磁帶控制器并且虛擬存儲服務(wù)器是虛擬磁帶服務(wù)器。
35.一種具有可用于可編程計(jì)算機(jī)的計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品具有嵌入其中的計(jì)算機(jī)可讀代碼,用于在多個(gè)虛擬存儲控制器的第一虛擬存儲控制器上存儲客戶數(shù)據(jù)和可執(zhí)行程序,每個(gè)虛擬存儲控制器連接到主機(jī)設(shè)備和第一和第二虛擬存儲服務(wù)器,該計(jì)算機(jī)可讀代碼包括用于執(zhí)行以下操作的指令如果第一虛擬存儲控制器從主機(jī)設(shè)備接收到用于存儲數(shù)據(jù)卷的寫請求,則將該卷發(fā)送到第一虛擬存儲服務(wù)器以在第一存儲庫中存儲;將用于拷貝該卷的請求在第一虛擬控制器的隊(duì)列中排隊(duì);如果第一虛擬控制器在預(yù)定時(shí)間內(nèi)沒有處理該拷貝請求,則向每個(gè)其它虛擬存儲控制器廣播該拷貝請求,由此將該拷貝請求在每個(gè)其它虛擬存儲控制器的拷貝隊(duì)列中排隊(duì);以及從處理了該拷貝請求的第二虛擬存儲控制器接收一“完成”消息;如果第一虛擬存儲控制器在預(yù)定時(shí)間內(nèi)處理了該拷貝請求,則將該卷發(fā)送到第二虛擬存儲服務(wù)器以在第二存儲庫中存儲;向每個(gè)其它虛擬存儲控制器廣播一“完成”消息,由此將該拷貝消息從每個(gè)其它虛擬存儲控制器的拷貝隊(duì)列中移出;以及向主機(jī)設(shè)備發(fā)送一“拷貝完成”消息;以及如果第二虛擬存儲控制器從主機(jī)設(shè)備接收到用于存儲數(shù)據(jù)卷的寫請求,則從第二虛擬存儲控制器接收用于拷貝該卷的請求;將該拷貝請求在隊(duì)列中排隊(duì);如果沒有從另一虛擬存儲控制器接收一“完成”消息,則處理該拷貝請求;以及向每個(gè)其它虛擬存儲控制器廣播一“完成”消息。
36.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,其中用于向每個(gè)其它虛擬存儲控制器廣播該拷貝請求的指令包括用于進(jìn)行如下操作的指令從第一虛擬存儲控制器向第一和第二虛擬服務(wù)器之一中的路由設(shè)備發(fā)送拷貝請求;以及從所述路由設(shè)備向每個(gè)其它虛擬存儲控制器廣播該拷貝請求;并且用于向每個(gè)未進(jìn)行處理的虛擬存儲控制器廣播所述“完成”消息的指令包括用于進(jìn)行如下操作的指令從第一虛擬存儲控制器向第一和第二虛擬存儲服務(wù)器之一中的路由設(shè)備發(fā)送該“完成”消息;以及從所述路由設(shè)備向每個(gè)其它虛擬存儲控制器廣播該“完成”消息。
37.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括用于進(jìn)行如下操作的指令如果第一虛擬控制器在預(yù)定時(shí)間內(nèi)沒有處理該拷貝請求,則在“完成”消息的接收之后,將該拷貝請求從每個(gè)未進(jìn)行處理的虛擬控制器的隊(duì)列中移出;以及如果第二虛擬存儲控制器從主機(jī)設(shè)備接收到用于存儲數(shù)據(jù)卷的寫請求,則在該拷貝請求的處理之后將該拷貝請求從隊(duì)列中移出。
38.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括如果第一虛擬存儲控制器從第二虛擬存儲控制器接收到用于拷貝該卷的請求,則用于減少該第一虛擬存儲控制器試圖與另一虛擬存儲控制器基本同時(shí)地處理該拷貝請求的可能性的指令。
39.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括如果第一虛擬存儲控制器從第二虛擬存儲控制器接受到用于拷貝該卷的請求,則用于進(jìn)行如下操作的指令將處理拷貝請求的嘗試延遲一個(gè)延遲時(shí)間;以及如果在延遲時(shí)間內(nèi)從另一虛擬存儲控制器接收到“完成”消息,則取消該拷貝請求并將該拷貝請求從拷貝隊(duì)列中移出。
40.根據(jù)權(quán)利要求39的計(jì)算機(jī)程序產(chǎn)品,其中延遲時(shí)間是一隨機(jī)時(shí)間。
41.根據(jù)權(quán)利要求39的計(jì)算機(jī)程序產(chǎn)品,其中所述延遲時(shí)間是從多個(gè)預(yù)定時(shí)間單位中隨機(jī)選擇的。
42.根據(jù)權(quán)利要求39的計(jì)算機(jī)程序產(chǎn)品,其中所述延遲時(shí)間包括根據(jù)虛擬存儲控制器的單元號并結(jié)合作為拷貝請求的對象的卷的名字而產(chǎn)生的數(shù)。
43.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,其中虛擬存儲控制器是虛擬磁帶控制器并且虛擬存儲服務(wù)器是虛擬磁帶服務(wù)器。
44.根據(jù)權(quán)利要求35的計(jì)算機(jī)程序產(chǎn)品,其中預(yù)定時(shí)間大約為1秒。
全文摘要
提高數(shù)據(jù)存儲系統(tǒng)拷貝操作效率的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。多個(gè)虛擬存儲控制器均連到主機(jī)設(shè)備和兩個(gè)虛擬存儲服務(wù)器。服務(wù)器都連到相應(yīng)自動(dòng)存儲庫??刂破骶锌截愱?duì)列。在指示由服務(wù)器之一在相關(guān)存儲庫介質(zhì)上存儲客戶數(shù)據(jù)卷后,發(fā)起控制器在隊(duì)列中排隊(duì)拷貝卷到其它存儲庫的請求。如該控制器很短時(shí)間內(nèi)未處理請求,向其它控制器廣播請求。請求最好先從該控制器發(fā)到服務(wù)器之一中向各其它控制器廣播請求的路由設(shè)備。請求在其它控制器的隊(duì)列中排隊(duì)??刂破髦惶幚碚埱笄揖硪芽降降诙鎯旌螅?qū)⒄埱笠瞥鱿鄳?yīng)隊(duì)列的其它控制器廣播消息。發(fā)起控制器收到消息時(shí)向主機(jī)設(shè)備發(fā)送指示卷已成功存儲拷貝的消息。
文檔編號G06F15/16GK1694057SQ20051006842
公開日2005年11月9日 申請日期2005年4月29日 優(yōu)先權(quán)日2004年5月5日
發(fā)明者基思·A.·貝洛, 迪安·L.·漢森, 馬克·A.·里德 申請人:國際商業(yè)機(jī)器公司