專利名稱:網(wǎng)絡數(shù)據(jù)存儲相關操作的制作方法
背景技術:
在一種類型的傳統(tǒng)計算機網(wǎng)絡中,一個或者多個服務器計算機節(jié)點或者“服務器”被設置成可能與一個或者多個陣列的碟盤海量存儲設備相關聯(lián)(即與之交換數(shù)據(jù)并控制),所述碟盤海量存儲設備中可以存儲在該網(wǎng)絡中執(zhí)行的過程所產(chǎn)生的用戶數(shù)據(jù),并且這些過程可以從其中獲得這些數(shù)據(jù)。這些陣列中的至少一個可以是獨立碟盤冗余陣列(以下稱為“冗余陣列”),其中可以復制存儲在碟盤海量存儲設備的主陣列(以下稱為“主陣列”)中的主數(shù)據(jù)卷的拷貝(或“鏡像”),并且在主陣列失效的情況下可以從其恢復被復制的數(shù)據(jù)卷(以下稱為“冗余數(shù)據(jù)卷”)。在下文中,如果冗余陣列存儲了作為主陣列中的主數(shù)據(jù)卷的拷貝的冗余數(shù)據(jù)卷,則冗余陣列被認為與主陣列“相關聯(lián)”。此外在下文中,如果冗余數(shù)據(jù)卷是主數(shù)據(jù)卷的鏡像,則冗余數(shù)據(jù)卷被認為與主數(shù)據(jù)卷相關聯(lián)。
在該傳統(tǒng)網(wǎng)絡中,與主陣列相關聯(lián)的服務器(以下稱之為“始發(fā)”服務器)可以經(jīng)由網(wǎng)絡通信鏈路被耦合到與冗余陣列相關聯(lián)的其它服務器(以下稱之為“目標”服務器),并且該冗余陣列可以與該主陣列相關聯(lián)。始發(fā)服務器和目標服務器各自可以包括相應的網(wǎng)絡接口卡(NIC)、主機總線適配器(HBA)、中央處理單元(CPU)和系統(tǒng)存儲器。在始發(fā)服務器和目標服務器中的每一個中,各自的CPU和各自的系統(tǒng)存儲器通過各自的系統(tǒng)總線互連,各自的NIC和各自的HBA通過各自的輸入/輸出(I/O)總線以及I/O控制系統(tǒng)互連。始發(fā)服務器中的NIC通過通信鏈路被耦合到目標服務器中的NIC,始發(fā)服務器中的HBA被耦合到主陣列并對其進行控制,并且目標服務器中的HBA被耦合到冗余陣列并對其進行控制。各自的程序過程駐留于服務器各自的系統(tǒng)存儲器中,該程序過程控制服務器的各自的CPU,以使服務器執(zhí)行常規(guī)的同步數(shù)據(jù)復制操作。駐留在相應系統(tǒng)存儲器中的相應程序過程包括各自的操作系統(tǒng)、RAID驅(qū)動器、復制驅(qū)動器和網(wǎng)絡驅(qū)動器/通信棧過程。應用級的數(shù)據(jù)庫過程也駐留在始發(fā)服務器的系統(tǒng)存儲器中。
始發(fā)服務器的使用人可以經(jīng)由駐留在始發(fā)服務器中的應用級程序過程的用戶接口,發(fā)出將用戶數(shù)據(jù)存儲在主陣列的主數(shù)據(jù)卷中的請求。響應于該請求,該過程產(chǎn)生對始發(fā)服務器中的一個或者多個O/S過程的數(shù)據(jù)寫請求,該請求使得始發(fā)服務器的CPU經(jīng)由始發(fā)服務器的系統(tǒng)總線將用戶數(shù)據(jù)傳送至始發(fā)服務器的系統(tǒng)存儲器并存儲于其中。此后,這些O/S過程發(fā)出對始發(fā)服務器的RAID驅(qū)動器的請求,該請求使得始發(fā)服務器的CPU經(jīng)由始發(fā)服務器的系統(tǒng)總線從始發(fā)服務器的系統(tǒng)獲取數(shù)據(jù)、將這些數(shù)據(jù)分成一個或多個數(shù)據(jù)塊(例如小型計算機系統(tǒng)接口(SCSI)協(xié)議數(shù)據(jù)塊)、將數(shù)據(jù)塊傳送至始發(fā)服務器的系統(tǒng)存儲器并存儲于其中,并使得始發(fā)服務器的I/O總線控制器經(jīng)由始發(fā)服務器的系統(tǒng)總線從始發(fā)服務器的系統(tǒng)存儲器獲取這些塊、并將這些塊轉(zhuǎn)發(fā)至始發(fā)服務器的HBA。然后始發(fā)服務器的HBA將數(shù)據(jù)塊寫在主數(shù)據(jù)卷中,并當數(shù)據(jù)塊已經(jīng)成功地被寫在主數(shù)據(jù)卷中時,始發(fā)服務器的HBA經(jīng)由始發(fā)服務器的I/O總線和控制器系統(tǒng)以及系統(tǒng)總線,向始發(fā)服務器的CPU返回一個“寫完成”消息以指示完成寫操作。
同樣響應于來自應用級過程的請求,始發(fā)服務器的O/S過程請求始發(fā)服務器的復制驅(qū)動器過程來命令始發(fā)服務器的CPU產(chǎn)生用戶數(shù)據(jù)的一個拷貝、將用戶數(shù)據(jù)的拷貝分成一個或多個復制數(shù)據(jù)分組、并將這些分組存儲在始發(fā)服務器的系統(tǒng)存儲器中。在這些分組已經(jīng)被存儲在始發(fā)服務器的系統(tǒng)存儲器中之后,始發(fā)服務器的網(wǎng)絡驅(qū)動器過程使得始發(fā)服務器的CPU經(jīng)由始發(fā)服務器的系統(tǒng)總線而從始發(fā)服務器的系統(tǒng)存儲器獲取分組、用報頭和其它信息封裝這些分組以形成一個或多個以太網(wǎng)幀、經(jīng)由始發(fā)服務器的系統(tǒng)總線、I/O總線和控制器系統(tǒng)將這些幀轉(zhuǎn)發(fā)至始發(fā)服務器的NIC,并使得始發(fā)服務器的NIC經(jīng)由以太網(wǎng)鏈路將這些幀轉(zhuǎn)發(fā)至目標服務器的NIC。
目標服務器的NIC接收幀,并且響應于所接收到的幀,目標服務器的操作系統(tǒng)、RAID驅(qū)動器、復制驅(qū)動器和網(wǎng)絡驅(qū)動器/通信棧過程使得目標服務器的CPU進行以下操作對來自這些幀的數(shù)據(jù)分組解封裝、從數(shù)據(jù)分組重建用戶數(shù)據(jù)、將重建的用戶數(shù)據(jù)分成一個或多個數(shù)據(jù)塊、以及將這些塊存儲在冗余數(shù)據(jù)卷中。在所有用戶數(shù)據(jù)已經(jīng)被成功地寫在冗余卷中之后,目標服務器的O/S、復制驅(qū)動器和網(wǎng)絡驅(qū)動器過程使得目標服務器的CPU進行以下操作產(chǎn)生并向始發(fā)服務器轉(zhuǎn)發(fā)(即經(jīng)由目標服務器的NIC和通信鏈路)一個指示數(shù)據(jù)在冗余陣列中成功復制的數(shù)據(jù)復制成功消息幀??梢园l(fā)現(xiàn),目標服務器的CPU所進行的以上操作涉及目標服務器的CPU、系統(tǒng)存儲器和系統(tǒng)總線等等之間相當多的事務/交互。
為了在該傳統(tǒng)網(wǎng)絡中執(zhí)行以上的數(shù)據(jù)存儲相關的操作,必須在始發(fā)和目標服務器中進行過分多的CPU、系統(tǒng)存儲器和系統(tǒng)總線事務和操作。不幸的是,這使得為了實現(xiàn)這樣的操作要消耗過量的始發(fā)和目標服務器CPU、系統(tǒng)存儲器以及系統(tǒng)總線的處理資源。
隨著以下詳細描述的進行并基于對示圖的參照,本發(fā)明實施例的特征和優(yōu)點將變得清晰,所述示圖中類似的標號指示類似的部件,其中圖1是圖示數(shù)據(jù)存儲網(wǎng)絡的部件的圖,在該數(shù)據(jù)存儲網(wǎng)絡中可以有利地實施本發(fā)明的一個實施例。
圖2是圖示了包含在命令/消息幀中的字段的圖,所述幀可以在圖1的網(wǎng)絡中的始發(fā)服務器和目標服務器之間被轉(zhuǎn)發(fā)。
圖3是圖示了包含在圖1的網(wǎng)絡中的始發(fā)服務器中的HBA的部件的圖。
圖4是圖示了可以駐留在圖1網(wǎng)絡中的始發(fā)服務器的系統(tǒng)存儲器中的程序過程的圖。
圖5是圖示了可以駐留在圖1網(wǎng)絡中的目標服務器的系統(tǒng)存儲器中的程序過程的圖。
圖6是圖示了包含在圖1網(wǎng)絡的目標服務器中的HBA的部件的圖。
圖7是圖示了可在圖1網(wǎng)絡中進行的操作的流程圖。
圖8是圖示了可駐留在圖3的HBA中的存儲器中的程序過程的圖。
圖9是圖示了可駐留在圖6的HBA中的存儲器中的程序過程的圖。
應該理解,盡管以下詳細描述將參照本發(fā)明的示例性實施例進行,但是對其的很多替換、修改和變化對于本領域的技術人員將是顯然的。因此,本發(fā)明意于被更廣闊地看待,并且僅如所附權利要求中陳述的那樣被限定。
具體實施例方式
參照圖1至9,現(xiàn)在將描述本發(fā)明的示例性實施例。圖1是高度示意性的簡圖,圖示了其中可以有利地實施本發(fā)明的一個實施例的數(shù)據(jù)存儲網(wǎng)絡10。網(wǎng)絡10可以包括始發(fā)服務器節(jié)點12、目標服務器節(jié)點14和數(shù)據(jù)通信網(wǎng)絡11。網(wǎng)絡11可以包括可利用一個或多個眾所周知的網(wǎng)絡通信協(xié)議(例如基于以太網(wǎng)和/或傳送控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)的協(xié)議)的一個或多個局域網(wǎng)和/或廣域網(wǎng)。始發(fā)服務器12可以經(jīng)由網(wǎng)絡鏈路34和36耦合到網(wǎng)絡11,而目標服務器14可以經(jīng)由網(wǎng)絡鏈路38和40耦合到網(wǎng)絡11,通過這種方式來允許服務器12和14經(jīng)由網(wǎng)絡11在相互之間通信。始發(fā)服務器12和目標服務器14可以在地理上相互遠離。
始發(fā)服務器12分別包括CPU 16、系統(tǒng)存儲器18、用戶接口20、主橋(host bridge)/總線系統(tǒng)22、I/O橋/總線系統(tǒng)24、HBA 26、HBA 28以及兩個陣列或兩組碟盤海量存儲設備30和32。每一個陣列或者每一組碟盤設備30和32可以包含一個或多個(或者,在本發(fā)明的這個實施例的情況下為多個)各自的碟盤海量存儲設備(例如光盤或者磁盤海量存儲設備)。或者,如果以對于本領域的技術人員顯然的方法適當?shù)匦薷姆掌?2,則作為替代,陣列30和32中的每一個可以包含各自的固態(tài)海量存儲設備。
HBA 28可以經(jīng)由各自的基于串行高級技術附件(S-ATA)的接口210(見圖3),被電耦合到陣列32并且可被配置成與之交換數(shù)據(jù)和命令;通過經(jīng)由接口210向陣列32發(fā)出適當?shù)拿睿琀BA 28可以使得在陣列32中存儲或者從其中獲取該命令中所引用或者包含的數(shù)據(jù)。HBA 28還可以包括I/O處理器27、HBA存儲器202、網(wǎng)絡接口204以及I/O橋/總線系統(tǒng)接口208。在HBA 28中,處理器27、存儲器202以及接口204、208和210可以通過外圍部件互連(例如在由PCI Special Insterest Group of 5440S.W.Westgate Drive,#217,Portland,Oregon 97221,United States of America所發(fā)布的PCI Local Bus Specification Rev.2.2中所描述的或者與之兼容的類型,以下稱之為“PCI”)或者PCI擴展(例如在由PCI Special InterestGroup所發(fā)布且從其可以獲得的PCI-X Specification Rev.1.0a中所描述的或者與之兼容的類型,以下稱之為“PCI-X”)總線系統(tǒng)200來互連,并且利用該總線系統(tǒng)200在相互之間交換數(shù)據(jù)和命令。當然,作為替代,總線系統(tǒng)200可以包含其它類型的總線系統(tǒng),而不背離本發(fā)明的該實施例。處理器27可以包括包含在可從本主題申請的擁有者購買到的集成電路芯片組(例如包括Intel80200處理器和Intel80312同伴芯片(companionchip)的Intel80310芯片組)中的集成電路芯片,盡管作為替代,I/O處理器27可以包含其它集成電路芯片(例如Intel80960 RM/RN I/O處理器或者Intel80321處理器),或者其它類型的處理器/集成電路,而并不背離本發(fā)明的該實施例。網(wǎng)絡接口204可以被耦合到鏈路34,可以被配置以幫助實現(xiàn)/進行這樣的物理操作,即允許HBA 28和服務器12與網(wǎng)絡系統(tǒng)10中的節(jié)點14通信的物理操作。橋接口208被耦合到I/O橋/總線系統(tǒng)24,并被配置成允許HBA 28能夠與系統(tǒng)24交換數(shù)據(jù)和命令。存儲器202可以包含隨機訪問存儲器(RAM),其可以用于存儲(以及在其中可以駐留)程序過程207;高速緩存存儲器,其可以用于存儲想要存儲在陣列32中的數(shù)據(jù)或者最近從陣列32獲取的數(shù)據(jù);以及非易失性電可擦可編程存儲器(EEPROM),其可以在HBA的外部驅(qū)動電源出現(xiàn)斷電的情況下用于存儲高速緩存存儲器中所存儲的數(shù)據(jù)。盡管在圖中未示出,但是HBA28可以包括一個系統(tǒng),用于探測何時出現(xiàn)這樣的斷電,并觸發(fā)處理器27以使存儲器202將高速緩存存儲器中所存儲的數(shù)據(jù)存儲到EEPROM中;在HBA 28中可以包括應急電池電源備用系統(tǒng)(未示出),以在這些操作過程中向HBA 28供電。處理器27可以被編程,以在隨后對HBA 28加電時,將存儲在EEPROM中的數(shù)據(jù)取到高速緩存存儲器中。以下給出有關HBA 28的構造和操作的其它細節(jié)。
盡管圖中未示出,但是應該理解,HBA 26的相應構造可以與HBA 28的相應構造基本上相同。這樣,為了避免不必要的重復描述,這里將不詳細給出HBA 26的構造。但是,應當滿足HBA 26經(jīng)由各自包含在HBA26中基于S-ATA的接口(未示出),可以電耦合到陣列30并且可以被配置成與之交換數(shù)據(jù)和命令;通過經(jīng)由該基于ATA的接口向陣列30發(fā)出適當?shù)拿?,HBA 26可以使得在陣列30中存儲或者從其中獲取該命令中所引用或者包含的數(shù)據(jù)。HBA 26可以包含相應的I/O處理器25,其可以具有與I/O處理器27基本上類似的相應構造。HBA 26還可以包括相應的網(wǎng)絡接口(未示出),其可以具有與接口204基本上類似的相應構造并且可以經(jīng)由鏈路36耦合到網(wǎng)絡11。
I/O橋/總線系統(tǒng)24和主橋/總線系統(tǒng)22可以分別包含I/O控制器中心系統(tǒng)和存儲器控制器中心系統(tǒng),其可以使用包含在可從本主題申請的擁有者購買到的集成電路芯片組(例如Intel860芯片組)中的集成電路芯片來構造。CPU 16、系統(tǒng)存儲器18和用戶接口20可以經(jīng)由主橋/總線系統(tǒng)22相互電耦合并電耦合到I/O橋/總線系統(tǒng)24。系統(tǒng)22被配置成允許/幫助實現(xiàn)CPU 16、存儲器18、用戶接口20以及系統(tǒng)24之間的數(shù)據(jù)和命令交換。另外,系統(tǒng)24被配置成允許/幫助實現(xiàn)系統(tǒng)22與適配器26和28之間的數(shù)據(jù)和命令交換。
存儲器18可以包含可用來存儲(以及可以在其中駐留)程序過程19的RAM。存儲器18中的RAM還可以存儲想要存儲在陣列30和32中的用戶數(shù)據(jù)或者已經(jīng)從其中獲取的用戶數(shù)據(jù)。CPU 16可以包含可以從本主題申請的擁有者購買到的類型的IntelXeonTM處理器,但是CPU 16可以包含其它類型的處理器,而不背離本發(fā)明。
目標服務器14分別包括CPU 42、系統(tǒng)存儲器44、用戶接口46、主橋/總線系統(tǒng)48、I/O橋/總線系統(tǒng)50、HBA 52、HBA 54以及兩個陣列或者兩組碟盤海量存儲設備56和58。每一個陣列或者每一組碟盤設備56和58可以包含一個或多個(或者,在本發(fā)明的這個實施例的情況下為多個)各自的碟盤海量存儲設備(例如光盤或者磁盤海量存儲設備)?;蛘撸绻詫τ诒绢I域的技術人員顯然的方法適當?shù)匦薷姆掌?4,那么作為替代,陣列56和58中的每一個可以包含各自的固態(tài)海量存儲設備。
HBA 52可以經(jīng)由各自的基于S-ATA的常規(guī)接口510(見圖6),被電耦合到陣列56,并可以被配置成與之交換數(shù)據(jù)和命令;通過經(jīng)由接口510向陣列56發(fā)出適當?shù)拿?,HBA 52可以使得在陣列56中存儲或者從其中獲取該命令中所引用或者包含的數(shù)據(jù)。HBA 52還可以包括I/O處理器53、HBA存儲器502、網(wǎng)絡接口504和I/O橋/總線系統(tǒng)接口508。在HBA52中,處理器53、存儲器502以及接口504、508和510可以通過PCI或者PCI-X總線系統(tǒng)500來互連,并且使用該總線系統(tǒng)500在相互之間交換數(shù)據(jù)和命令。處理器53可以包括包含在可從本主題申請的擁有者購買到的集成電路芯片組(例如Intel80310芯片組)中的集成電路芯片,但是作為替代,I/O處理器53可以包含其它集成電路芯片(例如Intel80960RM/RN I/O處理器或者Intel80321處理器)或者其它類型的處理器/集成電路,而不背離本發(fā)明的該實施例。網(wǎng)絡接口504可以被耦合到鏈路38,可以被配置成幫助實現(xiàn)/進行這樣的物理操作,即允許HBA 52和服務器14與網(wǎng)絡系統(tǒng)10中的節(jié)點12通信的物理操作。橋接口508被耦合到I/O橋/總線系統(tǒng)50,并且被配置成允許HBA 52能夠與系統(tǒng)48交換數(shù)據(jù)和命令。存儲器502可以包含隨機訪問存儲器(RAM),其可以用于存儲(以及在其中可以駐留)程序過程507;高速緩存存儲器,其可以用于存儲想要存儲在陣列56中的用戶數(shù)據(jù)或者最近從陣列32獲取的用戶數(shù)據(jù);以及非易失性EEPROM,其可以在HBA 52的外部驅(qū)動電源出現(xiàn)斷電的情況下用于存儲高速緩存存儲器中所存儲的數(shù)據(jù)。盡管在圖中未示出,但是HBA 52可以包括一個系統(tǒng),用于探測何時出現(xiàn)這樣的斷電,并觸發(fā)處理器53以使存儲器502將存儲在高速緩存存儲器中的數(shù)據(jù)存儲在EEPROM中;在HBA 52中可以包括應急電池電源備用系統(tǒng)(未示出),以在這些操作過程中向HBA 52供電。處理器53可以被編程,以在隨后對HBA 52加電時,將存儲在EEPROM中的數(shù)據(jù)取到高速緩存存儲器中。以下將給出有關HBA 52的構造和操作的其它詳細內(nèi)容。
盡管在圖中未示出,但是應該理解,HBA 54的相應構造可以基本上與HBA 52的相應構造基本上相同。這樣,為了避免不必要的重復描述,這里將不詳細給出HBA 54的構造。但是,應當說明HBA 54經(jīng)由各自包含在HBA 54中基于S-ATA的接口(未示出),可以電耦合到陣列58并且可以被配置成與之交換數(shù)據(jù)和命令;通過經(jīng)由該基于ATA的接口向陣列58發(fā)出適當?shù)拿?,HBA 54可以使得在陣列58中存儲或者從其中獲取該命令中所引用或者包含的數(shù)據(jù)。HBA 54可以包含相應的I/O處理器55,其可以具有與I/O處理器53基本上類似的相應構造。HBA 54還可以包括相應的網(wǎng)絡接口(未示出),其可以具有與接口504基本上類似的相應構造并且可以經(jīng)由鏈路38耦合到網(wǎng)絡11。
I/O橋/總線系統(tǒng)50和主橋/總線系統(tǒng)48可以分別包含I/O控制器中心系統(tǒng)和存儲器控制器中心系統(tǒng),其可以使用包含在可從本主題申請的擁有者購買到的集成電路芯片組(例如Intel860芯片組)中的集成電路芯片來構造。CPU 42、系統(tǒng)存儲器44和用戶接口46可以經(jīng)由主橋/總線系統(tǒng)48相互電耦合并電耦合到I/O橋/總線系統(tǒng)50。系統(tǒng)48被配置成允許/幫助實現(xiàn)CPU 42、存儲器44、用戶接口46以及系統(tǒng)50之間的數(shù)據(jù)和命令交換。另外,系統(tǒng)50被配置成允許/幫助實現(xiàn)系統(tǒng)48與適配器52和54之間的數(shù)據(jù)和命令交換。
存儲器44可以包含可用來存儲(以及可以在其中駐留)程序過程45的RAM。存儲器44中的RAM還可以存儲想要存儲在陣列56和58中的用戶數(shù)據(jù)或者已經(jīng)從其中獲取的用戶數(shù)據(jù)。CPU 42可以包含可以從本主題申請的擁有者購買到的類型的IntelXeonTM處理器,但是CPU 42可以包含其它類型的處理器,而不背離本發(fā)明。
在服務器12中,適配器26和28每個都可以包含各自的電路板,該電路板可經(jīng)由各自的機電連接器(未示出)在電氣上以及機械上耦合到主板(未示出)。服務器12中的主板可以包含CPU 16、存儲器18以及系統(tǒng)22和24。當適配器26和28被如此耦合到服務器12中的主板時,適配器26和28可以變?yōu)楸获詈系椒掌?2的主板中的系統(tǒng)24??梢栽诜掌?2中設置單獨的機電連接器(未示出)來將陣列30和32中的碟盤海量存儲設備分別耦合到適配器26和28。
在服務器14中,適配器52和54每個都可以包含各自的電路板,該電路板可經(jīng)由各自的機電連接器(未示出)在電氣上以及機械上耦合到主板(未示出)。當適配器52和54被如此耦合到服務器14中的主板時,適配器52和54可以變?yōu)楸获詈系椒掌?4的主板中的系統(tǒng)50??梢栽诜掌?4中設置單獨的機電連接器(未示出)來將陣列56和58中的碟盤海量存儲設備分別耦合到適配器52和54。
盡管在網(wǎng)絡10中,適配器26、28、52和54可以分別經(jīng)由各自基于S-ATA的接口和協(xié)議被分別耦合到碟盤陣列30、32、56和58并與之通信,但是如果適配器26、28、52和54以及碟盤陣列被適當?shù)匦薷?,那么作為替代,適配器26、28、52和54可以分別經(jīng)由其它類型的接口和協(xié)議(例如基于光纖信道(FC)或者小型計算機系統(tǒng)接口(SCSI)的接口和協(xié)議)而被分別耦合到碟盤陣列30、32、56和58并與之通信,而不背離本發(fā)明的該實施例。另外,盡管在圖中未示出,但是碟盤陣列30和32可以被封閉在與服務器12的物理外殼物理上分開的物理外殼中。碟盤陣列56和58可以封閉在與服務器14的物理外殼物理上分開的物理外殼中。或者,如果網(wǎng)絡10被適當?shù)匦薷?,則服務器12可以只包含單個HBA,但是在服務器12中包括多個主機總線適配器可以幫助實現(xiàn)到其它目標服務器的連接,并可以幫助在網(wǎng)絡10中實現(xiàn)失效保護容錯特征(failover faulttolerance feature),該特征在服務器12中的單個HBA失效的情況下,可以幫助消除網(wǎng)絡10中的單點失效。
現(xiàn)在將參照圖1-9描述網(wǎng)絡系統(tǒng)10的操作。盡管在圖中未示出,但是用戶接口20和46的每一個可以包含各自的傳統(tǒng)鍵盤、定點設備(例如鼠標或者軌跡球設備)、終端/顯示單元、基本輸入/輸出系統(tǒng)(BIOS)等。通過使用用戶接口20,服務器12的使用人(未示出)可以向CPU 16以及駐留在系統(tǒng)存儲器18中的過程19發(fā)出命令并從其接收輸出數(shù)據(jù),這可以允許使用人控制和監(jiān)視服務器12的操作。類似地,通過使用用戶接口46,服務器14的使用人(未示出)可以向CPU 42以及駐留在系統(tǒng)存儲器44中的過程45發(fā)出命令并從其接收輸出數(shù)據(jù),這可以允許使用人控制和監(jiān)視服務器14的操作。
在可以駐留在始發(fā)服務器12的系統(tǒng)存儲器18中的過程19之中,可以有多個操作系統(tǒng)程序過程400和多個應用級程序過程402(見圖5)。在可以駐留在目標服務器14的系統(tǒng)存儲器44中的過程45之中,可以有相應的多個操作系統(tǒng)程序過程300(見圖4)。
具體參照圖1、5和7,使用接口20,服務器12的使用人可以向包含在應用級程序過程402中的程序過程(例如關系數(shù)據(jù)庫過程)發(fā)出數(shù)據(jù)存儲相關的操作請求/命令。該命令可以請求例如以下的操作在始發(fā)服務器12中的主陣列(例如陣列32)中的數(shù)據(jù)卷(例如主數(shù)據(jù)卷33)與目標服務器14中的相關聯(lián)的冗余陣列(例如陣列56)中的數(shù)據(jù)卷(例如冗余數(shù)據(jù)卷57)之間相應地建立復制/鏡像的數(shù)據(jù)卷對關系;切斷這樣的關系;在已經(jīng)發(fā)生這樣的切斷之后重新建立這樣的關系;改變(例如擴大或者縮小)這樣的關系中所涉及的數(shù)據(jù)卷33和57的大??;或者在用戶數(shù)據(jù)(例如用戶數(shù)據(jù)404)已經(jīng)被存儲在系統(tǒng)存儲器18中之后,將用戶數(shù)據(jù)404存儲到主陣列32的主數(shù)據(jù)卷33中,以及將該數(shù)據(jù)404復制到冗余陣列56的冗余卷57中。用戶數(shù)據(jù)404可以作為一個或多個應用級程序過程402的操作的結果而產(chǎn)生,或者可以由網(wǎng)絡10中的客戶節(jié)點(未示出)產(chǎn)生并從其轉(zhuǎn)發(fā)給服務器12(例如經(jīng)由包含在服務器12中的未示出的NIC)。卷33和57的每一個可以具有相同的相應尺寸(即按照數(shù)據(jù)存儲空間而言),并可以是相應的邏輯數(shù)據(jù)卷,該邏輯數(shù)據(jù)卷可以跨越相應的不止一個物理碟盤海量存儲設備,并且/或者消耗的空間可以少于包含在單個相應的物理碟盤海量存儲設備中的整個數(shù)據(jù)存儲空間。
響應于服務器12的使用人所發(fā)出的數(shù)據(jù)存儲相關操作請求/命令,該請求/命令所發(fā)至的程序過程可以使得CPU 16產(chǎn)生對應于服務器12的用戶所發(fā)出的請求/命令的數(shù)據(jù)存儲相關操作請求,并經(jīng)由系統(tǒng)22提供給存儲器18中的O/S過程400之一(即,其請求執(zhí)行使用人所請求的相同數(shù)據(jù)存儲相關操作;見圖7中的操作602)。響應于操作602中所產(chǎn)生的請求,接收操作602中所產(chǎn)生的該請求的O/S過程,可以使得CPU 16產(chǎn)生對應于用戶所發(fā)出的請求/命令的數(shù)據(jù)存儲相關操作請求60并經(jīng)由系統(tǒng)22、24和200提供給HBA 28中的處理器27(見圖7中的操作604)?;蛘撸谶^程19中的后臺過程(未示出)可以使得CPU 16產(chǎn)生請求60并向處理器27提供。在任何一種情況中,作為操作604的一部分,如果用戶所發(fā)出的請求/命令請求在卷33和57中存儲數(shù)據(jù)404,那么CPU 16也可以從存儲器18獲取數(shù)據(jù)404并經(jīng)由系統(tǒng)22、24和200轉(zhuǎn)發(fā)到處理器27,而請求60可以含有或者引用被轉(zhuǎn)發(fā)至處理器27的數(shù)據(jù)404;處理器27可以使得被轉(zhuǎn)發(fā)的數(shù)據(jù)404最初被存儲在存儲器202中。
響應于請求60,處理器27可以使得請求60中的數(shù)據(jù)存儲相關操作被執(zhí)行(見圖7中的操作606)。也就是說,請求60中所請求的數(shù)據(jù)存儲相關操作的執(zhí)行,可能需要執(zhí)行始發(fā)服務器12和目標服務器14中的各組數(shù)據(jù)存儲相關操作;另外,在可以駐留在HBA 28的存儲器202中的過程207之中可以有獨立碟盤冗余陣列(RAID)驅(qū)動器過程700。響應于處理器27接收到請求60,驅(qū)動器過程700可以使得處理器27在始發(fā)服務器12中執(zhí)行,并在目標服務器14中啟動各組數(shù)據(jù)存儲相關操作的執(zhí)行,其中必須在始發(fā)服務器12和目標服務器14中執(zhí)行這些操作以進行請求60中所請求的數(shù)據(jù)存儲相關操作。
根據(jù)請求60中所請求的數(shù)據(jù)存儲相關操作的類型,為了使得在始發(fā)服務器12中執(zhí)行各組數(shù)據(jù)存儲相關操作,其中這些操作必須在其中被執(zhí)行以進行請求60中所請求的數(shù)據(jù)存儲相關操作,處理器27可以更新/修改數(shù)據(jù)存儲管理/配置表209中的一個或多個條目,并且/或者向主陣列32提供一個或多個命令(集體地或者單個地用圖1中標號64所表示的結構來指示)。也就是說,處理器27可以在存儲器202中維護表209,并且表209中所包含的信息可以將陣列32和56中的單獨的碟盤海量存儲設備的物理特性/配置,映射到希望這些設備具有或者已經(jīng)使之具有的邏輯特性/配置/關系。例如,表209中的信息可以將陣列32和33中的物理海量存儲設備中的區(qū)域關聯(lián)到以下邏輯數(shù)據(jù)卷、物理和邏輯卷中所用的數(shù)據(jù)編碼/格式化類型、陣列32和56中的邏輯和物理卷/設備各自的大小(按照數(shù)據(jù)存儲空間而言)、已經(jīng)分別在陣列32中的主數(shù)據(jù)卷和陣列56中的冗余數(shù)據(jù)卷之間建立的相應關聯(lián)(即陣列32中的哪個主數(shù)據(jù)卷被陣列56中的哪個冗余數(shù)據(jù)卷所鏡像,作為主陣列一冗余陣列對的陣列32和56的關聯(lián)等等)。如果請求60請求執(zhí)行沒有涉及在陣列32和56中存儲用戶數(shù)據(jù)(例如用戶數(shù)據(jù)404)的數(shù)據(jù)存儲相關操作(例如,如果請求60請求在數(shù)據(jù)卷33和數(shù)據(jù)卷57之間建立復制/鏡像數(shù)據(jù)卷對關系、切斷這樣的關系、在已經(jīng)發(fā)生這樣的切斷之后重新建立這樣的關系、或者改變(例如擴大或縮小)這樣的關系中所涉及的數(shù)據(jù)卷33和57的大小),那么過程700可以使得處理器27校驗請求60中所請求的操作在給定表209中所指示的物理和/或預先設定的邏輯特性/關系的情況下是可能/允許的;如果所請求的操作是可能/允許的,那么過程700可以使得處理器27更新/修改表209中的一個或多個適當?shù)臈l目,以使得表209反映請求60中所請求的邏輯特性/關系中的改變。相反,如果請求的操作是不可能/允許的,那么過程700可以使得處理器27經(jīng)由系統(tǒng)24和22向CPU 16發(fā)出指示出錯的出錯消息,并終止數(shù)據(jù)存儲相關操作。同樣相反,如果請求60請求在陣列32和56中(例如在邏輯卷33和57中)存儲用戶數(shù)據(jù)(例如用戶數(shù)據(jù)404),過程700可以使得處理器27產(chǎn)生一個或多個命令(集體地或者單個地用圖1中標號64所表示的結構來指示)并(經(jīng)由總線200和接口210)向陣列32提供,以使得用戶數(shù)據(jù)404被寫入包含邏輯數(shù)據(jù)卷33的陣列32中的碟盤海量存儲設備的一個或多個適當物理單元。
為了在目標服務器14中啟動執(zhí)行各組數(shù)據(jù)存儲相關操作,其中這些操作必須在其中被執(zhí)行以進行請求60中所請求的數(shù)據(jù)存儲相關操作,過程700可以使得處理器27產(chǎn)生(使用涉及處理器27和存儲器202之間的多個事務/數(shù)據(jù)傳送的操作)一個或多個數(shù)據(jù)存儲相關操作請求幀(圖1中集體地或者單個用標號62所表示的結構來指示;同時見圖7中的操作608),并(經(jīng)由總線200、網(wǎng)絡接口204、鏈路34、網(wǎng)絡11、鏈路38、網(wǎng)絡接口504以及總線500)轉(zhuǎn)發(fā)到處理器53。也就是說,過程700可以包括網(wǎng)絡通信棧過程,所述網(wǎng)絡通信棧過程可以經(jīng)由處理器27和存儲器202之間的多個操作/數(shù)據(jù)傳送而產(chǎn)生,并且如果請求60所請求的數(shù)據(jù)存儲相關操作涉及到在陣列32和56中存儲數(shù)據(jù)404,那么過程700可以使得處理器27將數(shù)據(jù)404分成一個或多個數(shù)據(jù)有效負載的序列,這些數(shù)據(jù)有效負載適合被封裝在一個或多個幀62的相應序列中,并且過程700可以使得處理器27產(chǎn)生幀62的序列并傳輸?shù)紿BA 52中的處理器53。相反,如果請求60所請求的數(shù)據(jù)存儲相關操作不涉及在陣列32和56中存儲數(shù)據(jù)404,那么可能只需要產(chǎn)生單個幀62并將其從HBA 28傳輸至HBA52。從HBA 28傳輸至HBA 52的每一個幀62都可以具有圖2所示的數(shù)據(jù)結構100。
每個幀62的相應數(shù)據(jù)結構可以包括相應的字段102、104、106、108、110、112、114和116;這些相應字段102、104、106、108、110、112、114和116中的每一個可以包含一個或多個相應的數(shù)據(jù)值。字段102是相應的以太網(wǎng)幀頭字段,而字段104是相應的以太網(wǎng)幀尾字段。這些字段102和104中的每一個可以包含其它的各個字段(例如,相應的以太網(wǎng)和IP源地址字段和指定地址字段、以太網(wǎng)和IP校驗和字段等等),其可用來將相應的幀結構100中的其余字段106、108、110、112、114和116封裝成相應包含TCP/IP分組的以太網(wǎng)幀??梢赃x擇包含在頭字段102和尾字段104中的相應字段中可含有的相應值,以允許產(chǎn)生相應幀結構100的HBA(例如HBA 28)能夠有效地經(jīng)由網(wǎng)絡11將相應幀結構100傳輸給想要接收相應幀結構100的HBA(例如HBA 52)。被相應的幀頭102和幀尾104所封裝的可以是相應的目標節(jié)點iSCSI協(xié)議地址字段106、相應的起始節(jié)點iSCSI協(xié)議地址字段108、相應的數(shù)據(jù)存儲相關操作命令/消息字段110、相應的數(shù)據(jù)有效負載字段112、相應的消息標識字段114以及相應的校驗和字段116。每個相應的幀62中的相應的命令/消息字段110可以含有標識請求60所命令的數(shù)據(jù)存儲相關操作的類型的值,并且可以指明(例如在字段110中的其他子字段中)可標識用于實現(xiàn)命令操作的其它參數(shù)的值(例如所涉及的特定主卷和冗余卷、這些卷的大小、于其處開始將數(shù)據(jù)寫入目標邏輯卷57的目標邏輯卷57中的相應地址、字段112中數(shù)據(jù)有效負載的字節(jié)數(shù)等等);每個相應的幀62中的相應的字段106和108可以含有各組值,這些值含有根據(jù)傳統(tǒng)iSCSI尋址方案(例如根據(jù)由Suite 100,Reston,VA 20191,United States of America的Internet EngineeringTask Force,Internet Engineering Task Force Secretariat c/o Corporation forNational Research Initiatives,1895 Preston white Drive于2001年3月1日發(fā)布的Satran,“iSCSI”,Internet-Draft Specification,draft-ietf-ips-iscsi-05,IPStorage Working Group of the Internet Engineering Task Force中所公開的尋址機制)確定的目標和起始節(jié)點尋址和命名信息,所述方案可以映射至/尋址數(shù)據(jù)存儲相關操作中所涉及的陣列32和56中的特定存儲設備。當然,在字段106和108中可以含有不同的尋址信息(例如,基于不同尋址方案的尋址信息,所述方案例如為根據(jù)上述“iSCSI”,Internet-Draft Specificationof the IP Storage Working Group of the Internet Engineering Task Force的其它/以后開發(fā)版本的其它iSCSI尋址方案),只要網(wǎng)絡11以及節(jié)點12和14被合適地配置成基于這些不同尋址信息來分別路由和處理幀100。如果請求60所命令的數(shù)據(jù)存儲相關操作涉及將數(shù)據(jù)404存儲到陣列32和56中,那么有效負載字段112可以含有來自由處理器27從數(shù)據(jù)404以上述方式產(chǎn)生的數(shù)據(jù)有效負載序列的相應的數(shù)據(jù)有效負載,并且頭102中所含的相應的TCP序列號可以指示該數(shù)據(jù)有效負載段在由處理器27所產(chǎn)生的數(shù)據(jù)有效負載段序列中的序列順序。消息ID字段114可以含有幀序列號,其標識含有該幀序列號的特定幀62。校驗和116可以含有表示數(shù)據(jù)值的校驗和的校驗和值,所述數(shù)據(jù)值通過將字段106、108、110、112、114和116中所含有的值串聯(lián)形成。或者,根據(jù)用來在網(wǎng)絡11中以及通過網(wǎng)絡11轉(zhuǎn)發(fā)和/或路由幀100的一個或多個特定協(xié)議,同時根據(jù)幀100在節(jié)點12和14可能受到的特定處理,幀100可以含有不同于圖2所示字段中所含的那些的其它字段和/或信息,或者在其之外含有其它字段和/或信息,以有助于轉(zhuǎn)發(fā)、路由和處理,而并不背離本發(fā)明的該實施例。
在可以駐留在存儲器502中的過程507之中,可以是復制驅(qū)動器過程800。這些過程800可以包括網(wǎng)絡通信棧過程。當處理器53接收到幀62時,過程800可以使得處理器53最初將所接收到的幀62存儲在存儲器502中,并且之后對這些幀62進行解封裝和語法分析,校驗(即通過校驗幀62中所含的校驗和)在幀62向處理器53的傳輸過程中沒有出錯,并在除了別的之外還確定幀62中可以含在相應的字段102、104、106、108、110、112、114、116的以及在這些相應字段所含相應子字段中的特定相應值?;谶@些相應字段以及相應子字段中所含的值,處理器53可以確定接收到的幀62中所請求的特定的數(shù)據(jù)存儲相關操作,并在服務器14中執(zhí)行(見圖7中的操作610)。更具體地說,根據(jù)接收到的幀62中所命令的數(shù)據(jù)存儲相關操作的類型,為了使得在服務器14中執(zhí)行幀62中所請求的各個數(shù)據(jù)存儲相關操作,處理器53可以更新/修改數(shù)據(jù)存儲管理/配置表509中的一個或多個條目,并且/或者向冗余陣列56提供一個或多個命令(集體地或者單個地用圖1中標號70所表示的結構指示)。也就是說,處理器53可以在存儲器502中維護表509,并且表509中所含的信息在內(nèi)容上可以類似于存儲器202中由處理器27維護的表209中所包含的信息。如果接收到的幀62中所命令的數(shù)據(jù)存儲相關操作,請求執(zhí)行不涉及在陣列56中存儲用戶數(shù)據(jù)(例如用戶數(shù)據(jù)404)的數(shù)據(jù)存儲相關操作(例如,如果請求60請求在數(shù)據(jù)卷33和數(shù)據(jù)卷57之間建立復制/鏡像數(shù)據(jù)卷對關系、切斷這樣的關系、在已經(jīng)發(fā)生這樣的切斷之后重新建立這樣的關系、或者改變(例如擴大或者縮小)在這樣的關系中所涉及的數(shù)據(jù)卷33和57的大小),則過程800可以使得處理器53校驗幀62中所命令(即在接收到的幀62中的字段110中指示的命令)的操作在給定表509中所指示的物理和/或預先設定的邏輯特性/關系的情況下是可能/允許的;如果所命令的操作是可能/允許的,那么過程800可以使得處理器53更新/修改表509中的一個或多個適當?shù)臈l目,以使得表509指示/反映幀62中所命令的邏輯特性/關系的改變。相反,如果幀62請求在陣列56中(即陣列56的卷57中)存儲用戶數(shù)據(jù)(例如用戶數(shù)據(jù)404),那么過程800可以使得處理器53確定(即從包含在幀62中的相應TCP信息)是否有任何其它的幀62可能包含用戶數(shù)據(jù)404的其它分段。如果處理器53確定沒有其它幀62可能包含用戶數(shù)據(jù)404的這樣的其它分段,那么過程800可以使得處理器53產(chǎn)生一個或多個命令(集體地或者單個地用圖1中標號70所表示的結構指示),并向陣列56提供(經(jīng)由總線500和接口510),以使得用戶數(shù)據(jù)404被寫入到包含了邏輯數(shù)據(jù)卷57的陣列56中的碟盤海量存儲設備中的一個或多個適當?shù)奈锢韱卧?。但是,如果處理?3確定存在其它幀62可能包含用戶數(shù)據(jù)404的其它分段,則過程800可以使得處理器53將來自這些其它的幀62的相應數(shù)據(jù)有效負載存儲在存儲器502中,并且基于接收到的幀62中所含的相應TCP序列信息和/或消息標識值來重建用戶數(shù)據(jù)404并將之存儲在存儲器502中。之后,過程800可以使得處理器53將重建的用戶數(shù)據(jù)404分成一個或多個數(shù)據(jù)塊,產(chǎn)生一個或多個命令70并向陣列56提供(經(jīng)由總線500和接口510),以使得被重建的用戶數(shù)據(jù)的塊被寫入包含邏輯數(shù)據(jù)卷57的陣列56中的碟盤海量存儲設備中的一個或多個適當物理單元(例如扇區(qū)、塊等)。
在每個相應的幀62都已經(jīng)被處理器53正確地接收(即沒有任何傳輸錯誤)之后,過程800可以使得處理器53產(chǎn)生相應的確認或者應答以太網(wǎng)幀(在圖1中集體地或者單個地用標號66所表示的結構來指示,同時參見圖7中的操作612)并向處理器27提供。每個應答幀66可以具有與圖2所示結構100相同的相應結構,除了在相應應答幀66中,相應命令/消息字段110可以含有這樣的相應值,其可以指示包含了相應應答幀66中字段116中所指明的消息標識號的幀62已經(jīng)被處理器53接收到并處理過了。即,對于處理器53所正確接收和處理的每一個相應幀62,過程800都可以使得處理器53產(chǎn)生并向處理器27發(fā)出(經(jīng)由總線500、接口504、鏈路38、網(wǎng)絡11、鏈路34、接口204以及總線200)相應的應答幀66,該應答幀66引用了(即在應答幀66的消息標識字段114中含有)相應幀62中所含的相應消息標識號。在表209中,處理器27可以使相應幀62中所含的相應消息標識號與相應的接收到的應答幀66中所含的相應消息標識號相關,以確定由處理器27轉(zhuǎn)發(fā)給處理器53的消息幀62中的哪些已經(jīng)被接收并處理了(例如,便于使用傳統(tǒng)技術來確定相應消息幀62是否已經(jīng)在通過網(wǎng)絡11的傳送中丟失了,以及是否要向處理器53重新發(fā)送相應的消息幀62)。在處理器27已經(jīng)接收到處理器27響應于來自CPU16的給定數(shù)據(jù)存儲相關操作請求60而產(chǎn)生的所有幀66之后,過程700可以使得處理器27確定(假設處理器27也能夠成功地完成處理器27響應于請求60而執(zhí)行的操作)請求60所請求的數(shù)據(jù)存儲相關操作已經(jīng)成功地在網(wǎng)絡10中完成,并且可以使得處理器27經(jīng)由系統(tǒng)24和22向CPU 16轉(zhuǎn)發(fā)消息72,以向O/S過程400指示請求60所請求的操作的成功完成(見圖7中的操作614)。響應于消息72,O/S過程400可以使得CPU 16向存儲器18中的應用過程402提供對這樣的成功完成的指示;響應于此,過程402可以使得CPU 16經(jīng)由接口20向服務器12的使用人指示這樣的成功完成。
在處理器53確定(例如從表509)其不能夠進行幀62中請求的數(shù)據(jù)存儲相關操作的情況下(例如,由于在HBA 52或者陣列56的碟盤驅(qū)動/線纜中檢測到故障、卷33和57的大小不匹配、卷57中缺少足夠的存儲空間、在請求幀62中尋址時的錯誤等等)或其它情況下(例如,在處理請求幀62時校驗和驗證出錯的情況下),過程800可以使得處理器53產(chǎn)生并向處理器27轉(zhuǎn)發(fā)應答幀66,該應答幀66在命令消息字段110中的相應值,指示了在進行所請求的操作中出現(xiàn)錯誤以及該錯誤的類型和屬性。響應于該消息66,過程700可以使得處理器27產(chǎn)生并向CPU 16發(fā)出(上述類型的)錯誤消息,并且產(chǎn)生并向處理器53發(fā)出錯誤確認幀(未示出),所述錯誤確認幀與相應的應答幀66相同,除了在錯誤確認幀中,相應的命令/消息字段110可以指示處理器27對消息66的接收和處理。
如果在預定時間段之后,處理器27未能接收到響應于請求幀62的有效的確認/應答/錯誤幀66,那么過程700可以使得處理器27重新產(chǎn)生并向處理器53重新發(fā)送請求幀62的拷貝,并使處理器27再次等待預定的時間段以接收響應于此的有效應答幀66;如果在預定數(shù)量的對請求幀62的重新產(chǎn)生和重新傳輸之后,處理器27還沒有接收到對此的有效應答幀66,或者如果接收到的錯誤幀66中所報告的錯誤屬性是在沒有操作人的干預情況下不能被糾正的預定類型,則過程700可以向CPU 16報告該狀況,而CPU 16隨后可以經(jīng)由接口20將其報告給服務器12的使用人。如果服務器12針對這樣的操作而被適當?shù)嘏渲?,那么作為替代或者在此之外,CPU 16可以產(chǎn)生并向操作人傳輸指示這種狀況的警告消息(例如電子郵件或者呼叫消息)。然后過程700可以認為卷33和57(即分別作為主卷和相關聯(lián)的目標卷)之間的關聯(lián)已經(jīng)被終止了,并且可以使得處理器27記錄卷33中可能出現(xiàn)的改變了的磁道/扇區(qū),以通過以下所描述的方式而在以后在重建卷33和57之間的鏡像關系時使用。
盡管在圖中沒有具體示出,但是注意到以下問題將非常重要碟盤陣列30和58可以分別作為冗余陣列和主陣列而相互關聯(lián),冗余陣列30中的至少一個相應數(shù)據(jù)卷31可以是與主陣列58中的至少一個相應主數(shù)據(jù)卷59相關聯(lián)的冗余數(shù)據(jù)卷,并且HBA 26、陣列30、鏈路36、網(wǎng)絡11、鏈路40、HBA 54、陣列58、系統(tǒng)48和50、CPU 42、存儲器44以及接口46可以被配置成允許并幫助碟盤陣列30和48以及數(shù)據(jù)卷31和30以根據(jù)本發(fā)明該實施例的教導的這種關系而操作,所述關系允許主陣列和冗余陣列32和56以及主數(shù)據(jù)卷和冗余數(shù)據(jù)卷33和57根據(jù)本發(fā)明的該實施例以上述方式操作。另外,應該理解,服務器12和14可以包括NIC設備(未示出),所述NIC設備可以經(jīng)由網(wǎng)絡11以這樣的方式被耦合到一個或多個客戶計算機節(jié)點,所述方式允許客戶計算機節(jié)點能夠訪問存儲在主陣列32和58中的用戶數(shù)據(jù)。
另外,為了在先前終止這樣的關聯(lián)之后幫助重建主卷和冗余卷33和57(即作為一對鏡像數(shù)據(jù)卷)之間的關聯(lián),表209可以含有自先前終止了這種關聯(lián)以來已經(jīng)改變了的卷33中的邏輯磁道/塊的列表。在重建這種關聯(lián)之后,過程700可以使得幀62從處理器27被傳輸?shù)教幚砥?3,這可以使得數(shù)據(jù)卷57中的對應邏輯磁道/塊,用目前存儲在表209所列出的磁道/塊中、在這種關聯(lián)終止之后且在其重建之前已經(jīng)被改變了的數(shù)據(jù)來重寫。在這種關聯(lián)終止之后以及在重建之前的時間段期間,數(shù)據(jù)卷57可以被拷貝/備份(例如拷貝至磁帶或者拷貝到另一未示出的數(shù)據(jù)卷中)。
幀62也可以命令其它類型的數(shù)據(jù)存儲相關操作。例如,當在相應幀62中的字段110中插入適當?shù)念A定值時,相應幀62可以命令接收幀62的I/O處理器(例如處理器53)來產(chǎn)生并提供相應的應答幀66,所述應答幀66向發(fā)送幀62的I/O處理器指示/報告與接收幀62的I/O處理器相關聯(lián)的或者由其控制的所有邏輯節(jié)點、邏輯卷以及目標卷;與接收幀62的I/O處理器相關聯(lián)的給定目標卷是否滿了或者出現(xiàn)故障;正在進行的涉及該目標卷的數(shù)據(jù)復制操作是否進展正常;或者該目標卷中的文件系統(tǒng)是否被正常地構造。而且,當適當?shù)念A定值被插入在相應幀62中的字段110中時,相應幀62可以命令接收幀62的I/O處理器(例如處理器53)來為幀結構100配置標準的幀大小,或者更新或配置該I/O處理器所維護的管理表(例如表509),以反映與從其傳輸出幀62的HBA相關聯(lián)的碟盤海量存儲設備陣列的配置可能已經(jīng)發(fā)生的改變,包括例如包含在該陣列中的物理和/或邏輯卷的屬性和特性的改變。
如果以對本領域技術人員顯然的方法進行適當?shù)男薷?,作為替代,這里所描述的在本發(fā)明的該實施例中通過軟件過程被實現(xiàn)的各種操作可以通過硬件/電路系統(tǒng)來實現(xiàn),反之亦然。實現(xiàn)本發(fā)明的該實施例所需的軟件過程19、45、207和507可以由處理器16、42、27和53分別執(zhí)行存儲/編碼在計算機可讀存儲器(例如分別包含在存儲器18、44、202和502中的只讀存儲器,和/或未示出的光盤只讀存儲器)中的各組程序指令而產(chǎn)生。
因此,總而言之,根據(jù)本發(fā)明的一個實施例,提供了一種網(wǎng)絡,其可以包括經(jīng)由網(wǎng)絡通信鏈路耦合在一起的第一和第二網(wǎng)絡節(jié)點,以及分別與第一和第二網(wǎng)絡節(jié)點關聯(lián)的第一組和第二組海量存儲設備。第一和第二網(wǎng)絡節(jié)點可以分別包含始發(fā)服務器和目標服務器。始發(fā)服務器和目標服務器可以分別包含第一和第二輸入/輸出(I/O)處理器。第一I/O處理器可以響應于第一請求使得執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作,并從始發(fā)服務器經(jīng)由鏈路向目標服務器發(fā)出第二請求,以使得第二I/O處理器響應于第二請求而進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
有利的是,在本發(fā)明的該實施例中,為了實現(xiàn)數(shù)據(jù)存儲相關操作而在始發(fā)和目標服務器中進行的大多數(shù)操作,可以從這些服務器中的各個CPU、系統(tǒng)存儲器以及系統(tǒng)總線被卸載到HBA I/O處理器、內(nèi)部HBA存儲器等。這使得在本發(fā)明的該實施例中為實現(xiàn)數(shù)據(jù)存儲相關操作而在始發(fā)和目標服務器中進行的CPU、系統(tǒng)存儲器以及系統(tǒng)總線事務和操作的數(shù)量相比于現(xiàn)有技術能夠顯著減少。有利的是,相比于現(xiàn)有技術,這防止了當實現(xiàn)這些操作時消耗過量的始發(fā)和目標服務器的CPU、系統(tǒng)存儲器和系統(tǒng)總線處理資源,并釋放這些資源以用于其它處理活動中,并且提高了在本發(fā)明的該實施例中可以實現(xiàn)的這些操作的速度和可靠性。
這里所采用的術語和表達被用作描述性而非限制性的用語,在這些術語和表達的使用中并不想排除所示和所描述的特征(或其部分)的任何等同物,并且應該認識到在權利要求的范圍內(nèi)可以有各種修改。相應地,權利要求意于覆蓋所有這樣的等同物。
權利要求
1.一種在網(wǎng)絡中的第一網(wǎng)絡節(jié)點中使用的第一適配器,所述第一適配器包括電路系統(tǒng),用于響應于第一請求而進行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作,還響應于所述第一請求而從所述第一適配器向網(wǎng)絡中的第二網(wǎng)絡節(jié)點中的第二適配器發(fā)出第二請求,以使得所述第二適配器響應于所述第二請求來進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
2.如權利要求1所述的第一適配器,還包括電路系統(tǒng),用于響應于來自所述第二適配器的第一消息來向所述第一網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第一消息指示所述第二數(shù)據(jù)存儲相關操作已經(jīng)完成,所述第二消息指示所述第一請求所請求的相應數(shù)據(jù)存儲相關操作已經(jīng)完成。
3.如權利要求2所述的第一適配器,其中所述第二請求和所述第一消息各自包括相應的目標節(jié)點地址字段、起始節(jié)點地址字段、命令字段和消息標識字段;并且所述第二請求和所述第一消息中相應的消息標識字段含有相同的相應值。
4.如權利要求1所述的第一適配器,其中所述電路系統(tǒng)和所述第二適配器各自包括相應的I/O處理器。
5.在第一網(wǎng)絡節(jié)點中使用的第一適配器,所述第一適配器包括電路系統(tǒng),用于響應于請求來進行與第一組海量存儲設備相關聯(lián)的數(shù)據(jù)存儲相關操作,所述請求響應于第二網(wǎng)絡節(jié)點中的第二適配器所接收到的另一個請求而從所述第二適配器被發(fā)出,以使得所述第二適配器響應于所述另一個請求來進行與第二組海量存儲設備相關聯(lián)的另一個數(shù)據(jù)存儲相關操作。
6.如權利要求5所述的第一適配器,還包括電路系統(tǒng),用于向所述第二適配器發(fā)出第一消息,以指示與所述第一組海量存儲設備相關聯(lián)的所述數(shù)據(jù)存儲相關操作已經(jīng)完成,并且所述第二適配器被配置成響應于所述第一消息而向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息。
7.如權利要求6所述的第一適配器,其中從所述第二適配器發(fā)出的所述請求和所述第一消息各自包括相應的目標節(jié)點地址字段、起始節(jié)點地址字段、命令字段以及消息標識字段;并且從所述第二適配器發(fā)出的所述請求和所述第一消息中的相應的消息標識字段含有相同的相應值。
8.如權利要求1所述的第一適配器,其中所述第一適配器包括耦合到所述第一組海量存儲設備的第一主機總線適配器;所述第二適配器包括耦合到所述第二組海量存儲設備的第二主機總線適配器;并且所述第一適配器和所述第二適配器經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
9.如權利要求5所述的第一適配器,其中所述第一適配器包括耦合到所述第一組海量存儲設備的第一主機總線適配器;所述第二適配器包括耦合到所述第二組海量存儲設備的第二主機總線適配器;并且所述第一適配器和所述第二適配器經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
10.第一輸入/輸出處理器,所述第一輸入/輸出處理器被配置成使得能夠執(zhí)行以下一組操作,所述操作包括響應于第一請求執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;還響應于所述第一請求從第一網(wǎng)絡節(jié)點向第二網(wǎng)絡節(jié)點中的第二輸入/輸出處理器發(fā)出第二請求,以使得所述第二輸入/輸出處理器響應于所述第二請求來進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
11.如權利要求10所述的第一輸入/輸出處理器,其中所述第一網(wǎng)絡節(jié)點包括所述第一輸入/輸出處理器和所述第一組海量存儲設備;所述第二網(wǎng)絡節(jié)點包括所述第二組海量存儲設備;并且所述第一網(wǎng)絡節(jié)點和所述第二網(wǎng)絡節(jié)點經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
12.如權利要求10所述的第一輸入/輸出處理器,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個在第二網(wǎng)絡節(jié)點中指定第一數(shù)據(jù)卷,所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制于所述第一數(shù)據(jù)卷中;擴大所述目標數(shù)據(jù)卷的大??;以及在所述第一數(shù)據(jù)卷中復制所述數(shù)據(jù)。
13.如權利要求10所述的第一輸入/輸出處理器,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個終止所述第二網(wǎng)絡節(jié)點中的第一數(shù)據(jù)卷與所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷之間先前建立的關聯(lián),所述關聯(lián)指定所述第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制在所述第一數(shù)據(jù)卷中;以及在所述先前建立的關聯(lián)已經(jīng)被終止之后,重新建立所述先前建立的關聯(lián)。
14.第一輸入/輸出處理器,所述第一輸入/輸出處理器被配置成執(zhí)行一組操作,所述操作包括響應于請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及在完成對所述第一數(shù)據(jù)存儲相關操作的執(zhí)行之后,從第一網(wǎng)絡節(jié)點向第二網(wǎng)絡節(jié)點中的第二輸入/輸出處理器發(fā)出第一消息,以使得所述第二輸入/輸出處理器響應于所述第一消息向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第二輸入/輸出處理器可以被可操作地配置成響應于來自所述過程的另一個請求而產(chǎn)生所述請求,并進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
15.如權利要求14所述的第一輸入/輸出處理器,其中所述第一組海量存儲設備包括一個或多個相應海量存儲設備;所述第二組海量存儲設備包括一個或多個相應海量存儲設備;并且所述第一消息被包括在幀中。
16.一種在網(wǎng)絡中的第一網(wǎng)絡節(jié)點中使用第一適配器的方法,所述方法包括響應于第一請求,使用所述第一適配器來進行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及還響應于所述第一請求從所述第一適配器向所述網(wǎng)絡中的第二網(wǎng)絡節(jié)點中的第二適配器發(fā)出第二請求,以使得所述第二輸入/輸出適配器響應于所述第二請求來進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
17.如權利要求16所述的方法,還包括響應于來自所述第二適配器的第一消息,而從所述第一適配器向所述第一網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第一消息指示所述第二數(shù)據(jù)存儲相關操作已經(jīng)完成,所述第二消息指示所述第一請求所請求的相應數(shù)據(jù)存儲相關操作已經(jīng)完成。
18.如權利要求17所述的方法,其中所述第二請求和所述第一消息各自包括相應的目標節(jié)點地址字段、起始節(jié)點地址字段、命令字段和消息標識字段;并且所述第二請求和所述第一消息中的相應消息標識字段含有相同的相應值。
19.如權利要求16所述的方法,其中所述第一適配器和所述第二適配器各自包括相應的輸入/輸出處理器。
20.一種在第一網(wǎng)絡節(jié)點中使用第一適配器的方法,所述方法包括響應于請求而使用所述第一適配器來進行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作,所述請求響應于第二網(wǎng)絡節(jié)點中的第二適配器所接收到的另一個請求而從所述第二適配器被發(fā)出,所述第二適配器被配置成響應于所述另一個請求來進行與第二組海量存儲設備相關聯(lián)的另一個數(shù)據(jù)存儲相關操作。
21.如權利要求20所述的方法,還包括從所述第一適配器向所述第二適配器發(fā)出第一消息,以指示與所述第一組海量存儲設備相關聯(lián)的所述數(shù)據(jù)存儲相關操作已經(jīng)完成,所述第二適配器被配置成響應于所述第一消息來向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息。
22.如權利要求21所述的方法,其中從所述第二適配器發(fā)出的所述請求和所述第一消息各自包括相應的目標節(jié)點地址字段、起始節(jié)點地址字段、命令字段和消息標識字段;并且從所述第二適配器發(fā)出的所述請求和所述第一消息中的相應消息標識字段含有相同的相應值。
23.如權利要求16所述的方法,其中所述第一適配器包括耦合到所述第一組海量存儲設備的第一主機總線適配器;所述第二適配器包括耦合到所述第二組海量存儲設備的第二主機總線適配器;并且所述第一適配器和所述第二適配器經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
24.如權利要求21所述的方法,其中所述第一適配器包括耦合到所述第一組海量存儲設備的第一主機總線適配器;所述第二適配器包括耦合到所述第二組海量存儲設備的第二主機總線適配器;并且所述第一適配器和所述第二適配器經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
25.一種使用第一輸入/輸出處理器的方法,所述方法包括使用所述第一輸入/輸出處理器以響應于第一請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及使用所述第一輸入/輸出處理器以同樣響應于所述第一請求來產(chǎn)生第二請求,所述第二請求可以從第一網(wǎng)絡節(jié)點被發(fā)至第二網(wǎng)絡節(jié)點中的第二輸入/輸出處理器,以使得所述第二輸入/輸出處理器響應于所述第二請求來進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
26.如權利要求25所述的方法,其中所述第一網(wǎng)絡節(jié)點包括所述第一輸入/輸出處理器和所述第一組海量存儲設備;所述第二網(wǎng)絡節(jié)點包括所述第二組海量存儲設備;并且所述第一網(wǎng)絡節(jié)點和所述第二網(wǎng)絡節(jié)點經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
27.如權利要求26所述的方法,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個在所述第二網(wǎng)絡節(jié)點中指定第一數(shù)據(jù)卷,所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制于所述第一數(shù)據(jù)卷中;擴大所述第一數(shù)據(jù)卷的大??;以及在所述第一數(shù)據(jù)卷中復制所述數(shù)據(jù)。
28.如權利要求26所述方法,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個終止所述第二網(wǎng)絡節(jié)點中的第一數(shù)據(jù)卷與所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷之間先前建立的關聯(lián),所述關聯(lián)指定所述第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制在所述第一數(shù)據(jù)卷中;以及在所述先前建立的關聯(lián)已經(jīng)被終止之后,重新建立所述先前建立的關聯(lián)。
29.一種使用第一輸入/輸出處理器的方法,所述方法包括使用所述第一輸入/輸出處理器以響應于請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及使用所述第一輸入/輸出處理器以在完成對所述第一數(shù)據(jù)存儲相關操作的執(zhí)行之后產(chǎn)生第一消息,所述第一消息可以從第一網(wǎng)絡節(jié)點被發(fā)至第二網(wǎng)絡節(jié)點中的第二輸入/輸出處理器,以使得所述第二輸入/輸出處理器響應于所述第一消息來向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第二輸入/輸出處理器可以被可操作地配置成響應于來自所述過程的另一個請求而產(chǎn)生所述請求,并進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
30.如權利要求29所述的方法,其中所述第一組海量存儲設備包括一個或多個相應海量存儲設備;所述第二組海量存儲設備包括一個或多個相應海量存儲設備;并且所述第一消息被包括在幀中。
31.一種網(wǎng)絡,其包括與第一組海量存儲設備相關聯(lián)且包括第一輸入/輸出處理器的第一網(wǎng)絡節(jié)點;遠離所述第一網(wǎng)絡節(jié)點、與第二組海量存儲設備相關聯(lián)且包括第二輸入/輸出處理器的第二網(wǎng)絡節(jié)點;將所述第一網(wǎng)絡節(jié)點耦合至所述第二網(wǎng)絡節(jié)點的網(wǎng)絡通信鏈路;所述第一輸入/輸出處理器被配置成能夠?qū)е乱韵虏僮黜憫诘谝徽埱髞韴?zhí)行與所述第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;還響應于所述第一請求,經(jīng)由所述鏈路從所述第一網(wǎng)絡節(jié)點向所述第二網(wǎng)絡節(jié)點發(fā)出第二請求,以使得所述第二輸入/輸出處理器響應于所述第二請求來進行與所述第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
32.如權利要求31所述的網(wǎng)絡,其中所述第二輸入/輸出處理器被配置成能夠?qū)е聢?zhí)行以下操作響應于所述第二請求執(zhí)行所述第二數(shù)據(jù)存儲相關操作;在完成對所述第二數(shù)據(jù)存儲相關操作的所述執(zhí)行之后,經(jīng)由所述鏈路從所述第二網(wǎng)絡節(jié)點向所述第一網(wǎng)絡節(jié)點發(fā)出第一消息,以使得所述第一輸入/輸出處理器向所述第一網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,以指示所述第一數(shù)據(jù)存儲相關操作和所述第二數(shù)據(jù)存儲相關操作的完成。
33.駐留在計算機可讀存儲器中的計算機程序指令,所述計算機程序指令包括一組指令,所述一組指令當被第一處理器執(zhí)行時使得響應于第一請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及還響應于所述第一請求來產(chǎn)生第二請求,所述第二請求可以從第一網(wǎng)絡節(jié)點被發(fā)至第二網(wǎng)絡節(jié)點中的第二處理器,以使得所述第二處理器響應于所述第二請求來進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
34.如權利要求33所述的計算機程序指令,其中所述第一網(wǎng)絡節(jié)點包括所述第一處理器和所述第一組海量存儲設備;所述第二網(wǎng)絡節(jié)點包括所述第二組海量存儲設備;并且所述第一網(wǎng)絡節(jié)點和所述第二網(wǎng)絡節(jié)點經(jīng)由網(wǎng)絡通信鏈路而被耦合在一起。
35.如權利要求34所述的計算機程序指令,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個在所述第二網(wǎng)絡節(jié)點中指定第一數(shù)據(jù)卷,所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制在所述第一數(shù)據(jù)卷中;擴大所述第一數(shù)據(jù)卷的大?。灰约霸谒龅谝粩?shù)據(jù)卷中復制所述數(shù)據(jù)。
36.如權利要求34所述的計算機程序指令,其中所述第二數(shù)據(jù)存儲相關操作包括以下操作中的一個或多個終止所述第二網(wǎng)絡節(jié)點中的第一數(shù)據(jù)卷與所述第一網(wǎng)絡節(jié)點中的第二數(shù)據(jù)卷之間先前建立的關聯(lián),所述關聯(lián)指定所述第二數(shù)據(jù)卷中所存儲的數(shù)據(jù)將被復制在所述第一數(shù)據(jù)卷中;和在所述先前建立的關聯(lián)已經(jīng)被終止之后,重新建立所述先前建立的關聯(lián)。
37.駐留在計算機可讀存儲器中的計算機程序指令,所述計算機程序指令包括一組指令,所述一組指令當被第一處理器執(zhí)行時使得響應于請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及在完成對所述第一數(shù)據(jù)存儲相關操作的執(zhí)行之后產(chǎn)生第一消息,所述第一消息可以從第一網(wǎng)絡節(jié)點被發(fā)至第二網(wǎng)絡節(jié)點中的第二處理器,以使得所述第二處理器響應于所述第一消息來向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第二處理器可以被可操作地配置成響應于來自所述過程的另一個請求而產(chǎn)生所述請求,并進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
38.如權利要求37所述的計算機程序指令,其中所述第一組海量存儲設備包括一個或多個相應海量存儲設備;所述第二組海量存儲設備包括一個或多個相應海量存儲設備;并且所述第一消息被包括在幀中。
39.第一網(wǎng)絡節(jié)點,包括第一處理器,所述第一處理器被配置成能夠?qū)е马憫诘谝徽埱髞韴?zhí)行與第一組存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作,所述第一組存儲設備與所述第一網(wǎng)絡節(jié)點相關聯(lián);以及還響應于所述第一請求來從所述第一網(wǎng)絡節(jié)點向第二網(wǎng)絡節(jié)點發(fā)出第二請求,以使得所述第二網(wǎng)絡節(jié)點中的第二處理器響應于所述第二請求來進行與第二組存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作,所述第二組存儲設備與所述第二網(wǎng)絡節(jié)點相關聯(lián)。
40.如權利要求39所述的第一網(wǎng)絡節(jié)點,其中所述的存儲設備組包括一組一個或多個海量存儲設備。
41.如權利要求39所述的第一網(wǎng)絡節(jié)點,其中所述第二網(wǎng)絡節(jié)點遠離所述第一網(wǎng)絡節(jié)點。
42.第一網(wǎng)絡節(jié)點,其包括第一處理器,所述第一處理器被配置成能夠?qū)е聢?zhí)行以下操作響應于請求來執(zhí)行與第一組存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作;以及在完成對所述第一數(shù)據(jù)存儲相關操作的執(zhí)行之后,從第一網(wǎng)絡節(jié)點向第二網(wǎng)絡節(jié)點中的第二處理器發(fā)出第一消息,以使得所述第二處理器響應于所述第一消息來向所述第二網(wǎng)絡節(jié)點中的過程發(fā)出第二消息,所述第二處理器可以被可操作地配置成響應于來自所述過程的另一個請求而產(chǎn)生所述請求,并進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
43.如權利要求42所述的第一網(wǎng)絡節(jié)點,其中所述第一組存儲設備包括一個或多個相應海量存儲設備;所述第二組存儲設備包括一個或多個相應海量存儲設備;并且所述第一消息被包括在幀中。
全文摘要
一種可實施本發(fā)明的一個實施例的網(wǎng)絡,可以包括經(jīng)由網(wǎng)絡通信鏈路耦合在一起的第一和第二網(wǎng)絡節(jié)點,以及分別與第一和第二網(wǎng)絡節(jié)點關聯(lián)的第一組和第二組海量存儲設備。第一和第二網(wǎng)絡節(jié)點可以分別包含第一和第二輸入/輸出(I/O)處理器。第一I/O處理器可以響應于第一請求來執(zhí)行與第一組海量存儲設備相關聯(lián)的第一數(shù)據(jù)存儲相關操作,并從第一網(wǎng)絡節(jié)點經(jīng)由鏈路向第二網(wǎng)絡節(jié)點發(fā)出第二請求,以使得第二I/O處理器響應于第二請求而進行與第二組海量存儲設備相關聯(lián)的第二數(shù)據(jù)存儲相關操作。
文檔編號G06F12/00GK1636193SQ03804200
公開日2005年7月6日 申請日期2003年2月3日 優(yōu)先權日2002年2月19日
發(fā)明者哈伯特·史密斯 申請人:英特爾公司