專利名稱:傳輸未知scsi i/o指點(diǎn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通過塊存儲協(xié)議訪問的網(wǎng)絡(luò)存儲領(lǐng)域,特別是涉及一種通過小型計算 機(jī)系統(tǒng)接口(SCSI)輸入/輸出指點(diǎn)(referral)實(shí)現(xiàn)多路徑的系統(tǒng)和方法,其中多路徑在 啟動器系統(tǒng)和塊存儲群集之間,塊存儲群集在由多個網(wǎng)絡(luò)傳輸協(xié)議實(shí)現(xiàn)的網(wǎng)絡(luò)之上。
背景技術(shù):
提供塊存儲群集與啟動器之間的通信的當(dāng)前可用的系統(tǒng)/方法可能不能提供期 望的性能級別。因此,可能需要提供塊存儲群集與啟動器之間的通信的系統(tǒng)/方法,該系統(tǒng)/方法 目的是提供所述提到問題的當(dāng)前可獲得的解決方案
發(fā)明內(nèi)容
相應(yīng)的,本發(fā)明的一個實(shí)施例涉及一種方法,該方法通過小型計算機(jī)系統(tǒng)接口輸 入/輸出(SCSI I/O)指點(diǎn)(referral)提供啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間的 多路徑,所述存儲群集包括至少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè)備,所述方法包括通過網(wǎng) 路在所述第一目標(biāo)設(shè)備接收來自所述啟動器的一輸入/輸出(I/O);所述I/O包括為數(shù)據(jù) 的第一部分和數(shù)據(jù)的第二部分的請求;以及當(dāng)所述數(shù)據(jù)的第一部分而不是數(shù)據(jù)的第二部分 被存儲在所述第一目標(biāo)設(shè)備上而所述數(shù)據(jù)的第二部分被存儲在所述第二目標(biāo)設(shè)備上時,啟 動所述數(shù)據(jù)的第一部分到所述啟動器的傳輸并將SCSI I/O指點(diǎn)列表傳輸給所述啟動器, 其中所述指點(diǎn)列表包括用于標(biāo)識所述第二目標(biāo)設(shè)備的第一端口的第一端口標(biāo)識符和用于 標(biāo)識所述第二目標(biāo)設(shè)備的第二端口的第二端口標(biāo)識符,所述第一端口和第二端口被確定為 用于訪問所述數(shù)據(jù)的第二部分的訪問端口,其中所述第一端口標(biāo)識符和第二端口標(biāo)識符是 SCSI相關(guān)端口標(biāo)識符。本發(fā)明的一個另外的實(shí)施例提供了一種具有計算機(jī)可執(zhí)行指令的計算機(jī)可讀介 質(zhì),所述計算機(jī)可執(zhí)行指令用于執(zhí)行通過小型計算機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn) 提供在啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間的多路徑的方法,所述存儲群集包括至 少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè)備,所述方法包括通過網(wǎng)路在所述第一目標(biāo)設(shè)備接收 來自所述啟動器的一輸入/輸出(I/O);所述I/O包括用于數(shù)據(jù)的第一部分和數(shù)據(jù)的第二 部分的請求;以及當(dāng)所述數(shù)據(jù)的第一部分而不是所述數(shù)據(jù)的第二部分被存儲在所述第一目 標(biāo)設(shè)備上而所述數(shù)據(jù)的第二部分被存儲在所述第二目標(biāo)設(shè)備上時,啟動所述數(shù)據(jù)的第一部 分到啟動器的傳輸并將SCSI I/O指點(diǎn)列表傳輸給所述啟動器,其中所述指點(diǎn)列表包括用于 標(biāo)識所述第二目標(biāo)設(shè)備的第一端口的第一端口標(biāo)識符和用于標(biāo)識所述第二目標(biāo)設(shè)備的第 二端口的第二端口標(biāo)識符,所述第一端口和第二端口被確定為用于訪問所述數(shù)據(jù)的第二部 分的訪問端口,其中所述第一端口標(biāo)識符和第二端口標(biāo)識符是SCSI相關(guān)端口標(biāo)識符。本發(fā)明的進(jìn)一步實(shí)施例包括一種具有計算機(jī)可執(zhí)行指令的計算機(jī)可讀存儲介質(zhì), 該計算機(jī)可執(zhí)行指令用于執(zhí)行通過小型計算機(jī)系統(tǒng)接口輸入輸出(SCSI I/O)指點(diǎn)提供在啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間的多路徑的方法,所述存儲群集包括至少一第 一目標(biāo)設(shè)備和一第二目標(biāo)設(shè)備,所述方法包括通過網(wǎng)路在所述第一目標(biāo)設(shè)備接收來自所 述啟動器的一輸入/輸出(I/O);所述I/O包括一數(shù)據(jù)請求;當(dāng)包括在所述數(shù)據(jù)請求中的數(shù) 據(jù)未被存儲在所述第一目標(biāo)設(shè)備上而是被存儲在所述第二目標(biāo)設(shè)備上時,將一SCSI I/O指 點(diǎn)列表傳輸給所述啟動器,其中所述指點(diǎn)列表包括用于標(biāo)識所述第二目標(biāo)設(shè)備的第一端口 的第一端口標(biāo)識符和用于標(biāo)識所述第二目標(biāo)設(shè)備的第二端口的第二端口標(biāo)識符,所述第一 端口和第二端口被確定為用于訪問所述數(shù)據(jù)的訪問端口 ;通過網(wǎng)絡(luò)在所述第二目標(biāo)設(shè)備接 收來自所述啟動器的一指點(diǎn)1/0,所述指點(diǎn)I/O響應(yīng)于所述SCSI I/O列表并且所述指點(diǎn)I/ 0通過下列之一請求對所述數(shù)據(jù)的訪問所述啟動器指引的所述第一端口和第二端口 ;以 及啟動所述數(shù)據(jù)到所述啟動器的傳輸,其中所述第一端口標(biāo)識符和第二端口標(biāo)識符是SCSI 相關(guān)端口標(biāo)識符。應(yīng)該理解的 是,不管是所述概括的描述還是后面詳細(xì)的描述都僅僅是示例性和說 明性的,并且不僅限于當(dāng)前發(fā)明要求的內(nèi)容。包括并組成說明書一部分的附圖揭示了本發(fā) 明的實(shí)施例。同時,說明書和附圖用來解釋本發(fā)明的原理。
通過參考附圖,當(dāng)前發(fā)明的眾多優(yōu)點(diǎn)可以被本領(lǐng)域的技術(shù)人員更好地理解圖1是本發(fā)明的一個示例性實(shí)施例所述的經(jīng)由塊存儲協(xié)議可訪問的網(wǎng)絡(luò)存儲應(yīng) 用/系統(tǒng)的方框圖;圖2是本發(fā)明的一個示例性實(shí)施例實(shí)施/所述的通過指點(diǎn)進(jìn)行SCSI命令/響應(yīng) 遠(yuǎn)程過程調(diào)用的示意性方框圖;圖3是本發(fā)明的一個示例性實(shí)施例所述的在啟動器系統(tǒng)和群集存儲陣列之間進(jìn) 行通信的方法的流程圖;圖4是本發(fā)明示例性實(shí)施例所述的一 SCSI指點(diǎn)格式的圖表;圖5是本發(fā)明的進(jìn)一步的示例性實(shí)施例所述的具有到虛擬卷的多個部分的多路 徑的網(wǎng)絡(luò)存儲應(yīng)用的拓?fù)浣Y(jié)構(gòu)的方框圖;圖6是本發(fā)明進(jìn)一步的實(shí)施例所述的具有多路徑的SCSI I/O指點(diǎn)格式圖表;圖7是本發(fā)明可選的進(jìn)一步的示例性實(shí)施例所述的具有多路徑的SCSI I/O指點(diǎn) 的格式圖表;圖8是本發(fā)明的進(jìn)一步示例性實(shí)施例所述的具有優(yōu)先的多路徑的SCSI I/O指點(diǎn) 格式圖表;圖9是說明本發(fā)明的示例性實(shí)施例所述的一個方法流程圖,該方法通過小型計算 機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn)在啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間提 供多路徑;圖10是說明與本發(fā)明的可選的示例性實(shí)施例所述的一個方法流程圖,該方法通 過小型計算機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn)在啟動器與通過網(wǎng)絡(luò)通信連接的存儲 群集之間提供多路徑;圖11是與本發(fā)明的進(jìn)一步實(shí)施例所述的具有從多傳輸協(xié)議到虛擬卷的多個部分 的多路徑的網(wǎng)絡(luò)存儲應(yīng)用的拓?fù)浣Y(jié)構(gòu)的方框圖。具體實(shí)施方案 參照相關(guān)附圖中所描述的內(nèi)容將詳細(xì)揭示本發(fā)明優(yōu)選實(shí)施例的內(nèi)容。
參考圖1,與本發(fā)明示意性實(shí)施例所述的通過塊存儲協(xié)議可訪問的網(wǎng)絡(luò)存儲應(yīng)用 /系統(tǒng)被展示。例如,所述塊存儲協(xié)議可以是在例如光纖通道、iSCSI、或串聯(lián)SCSI (SAS)的 網(wǎng)絡(luò)傳輸介質(zhì)上應(yīng)用的小型計算機(jī)系統(tǒng)接口(SCSI)協(xié)議。此外本發(fā)明可以在其它塊存儲 協(xié)議上應(yīng)用,例如SCSI RDMA協(xié)議(SRP)。本發(fā)明的所述系統(tǒng)/方法擴(kuò)展了塊存儲協(xié)議以允 許數(shù)據(jù)在組成塊存儲群集的多個、分立、合作存儲系統(tǒng)中的通用邏輯塊地址空間上分布。在示例性的實(shí)施例中(如圖1所示),網(wǎng)絡(luò)存儲實(shí)現(xiàn)/系統(tǒng)/存儲結(jié)構(gòu)100包括 應(yīng)用系統(tǒng)/服務(wù)器102。所述應(yīng)用系統(tǒng)102可以運(yùn)行一個或多個應(yīng)用程序104。在應(yīng)用系 統(tǒng)102上運(yùn)行的應(yīng)用程序104可以通過/經(jīng)由/利用存儲區(qū)域網(wǎng)絡(luò)(SAN) 110來訪問存儲 在一個或多個存儲系統(tǒng)(106,108)上的存儲資源。所述應(yīng)用程序可以利用所述服務(wù)器(不 失一般性)的操作系統(tǒng)114的塊存儲協(xié)議堆棧(例如小型計算機(jī)系統(tǒng)接口(SCSI)協(xié)議堆 棧)112來訪問所述存儲資源/網(wǎng)絡(luò)存儲資源。所述服務(wù)器102的操作系統(tǒng)114可以直接 運(yùn)行在服務(wù)器硬件上或者運(yùn)行在不失一般性的虛擬環(huán)境的虛擬機(jī)中。在本發(fā)明的當(dāng)前實(shí)施例中,所述服務(wù)器102的SCSI協(xié)議堆棧112可以呈現(xiàn)本地 (例如在服務(wù)器上)和遠(yuǎn)程(例如在網(wǎng)絡(luò)上)的資源給所述應(yīng)用程序104以作為塊存儲 設(shè)備/邏輯單元/SCSI邏輯單元。每一個邏輯單元/SCSI邏輯單元可以具有一個唯一的邏 輯塊地址空間。所述遠(yuǎn)程存儲資源/遠(yuǎn)程存儲設(shè)備(106,108)可以被服務(wù)器102和/或存 儲系統(tǒng)(106,108)的一個或多個SAN適配器116訪問,其中所述適配器可以運(yùn)行與塊存儲 協(xié)議被映射的網(wǎng)絡(luò)媒介傳輸協(xié)議。例如,SCSI協(xié)議可以被映射到各種類型的可實(shí)現(xiàn)的網(wǎng)絡(luò) 傳輸上。不失一般性的,所述SAN適配器116和它們的傳輸協(xié)議層可以是物理或者虛擬網(wǎng) 絡(luò)適配器。在本發(fā)明的示例性實(shí)施例中,存儲區(qū)域網(wǎng)絡(luò)110可以被來自任何網(wǎng)絡(luò)媒介(例如, 光纖通道、以太網(wǎng)、無限頻帶(InfiniBand)、以及串聯(lián)SCSI (SAS))和允許端口級尋址的傳 輸協(xié)議來實(shí)現(xiàn)。媒介傳輸層協(xié)議可以處理協(xié)議數(shù)據(jù)包在網(wǎng)絡(luò)結(jié)構(gòu)110上的從終點(diǎn)到終點(diǎn)端 口的所有路由。不失一般性的,所述網(wǎng)絡(luò)110可以被實(shí)現(xiàn)為一個單一結(jié)構(gòu)或多個冗余結(jié)構(gòu)。 網(wǎng)絡(luò)110可以是由單一網(wǎng)絡(luò)媒介和傳輸協(xié)議實(shí)現(xiàn)的單一網(wǎng)絡(luò)或由多個網(wǎng)絡(luò)媒介和傳輸協(xié) 議的組合實(shí)現(xiàn)的多個網(wǎng)絡(luò)。優(yōu)選地,在應(yīng)用系統(tǒng)/服務(wù)器102上的網(wǎng)絡(luò)端口能夠物理地到 達(dá)存儲系統(tǒng)(106,108)上的網(wǎng)絡(luò)端口。在本發(fā)明的進(jìn)一步的實(shí) 施例中,存儲系統(tǒng)(106,108)可以是網(wǎng)絡(luò)連接存儲設(shè)備。 例如,所述存儲系統(tǒng)(106,108)可以是通用計算機(jī)、專用存儲陣列或網(wǎng)絡(luò)磁盤驅(qū)動器,這使 得它們的本地設(shè)備在SAN 110上可見。存儲系統(tǒng)的存儲資源可以通過SAN端口被訪問,SAN 端口運(yùn)行媒介傳輸協(xié)議層。SCSI層可以利用所述SAN端口作為存儲端口與存儲網(wǎng)絡(luò)進(jìn)行 通信。每一個存儲系統(tǒng)106,108可以包括一個應(yīng)用數(shù)據(jù)保護(hù)或者塊提取到其物理存儲設(shè)備 的本地塊虛擬化層(118,120)。例如,數(shù)據(jù)保護(hù)例如廉價磁盤冗余陣列(RAID)可以被用在 專用網(wǎng)絡(luò)存儲系統(tǒng)上。每一個存儲系統(tǒng)106,108可以進(jìn)一步包括一個可以訪問輸出到網(wǎng)絡(luò) 110的實(shí)際連接的物理存儲設(shè)備126的內(nèi)部塊協(xié)議堆棧(122,124)。應(yīng)用服務(wù)器/應(yīng)用系統(tǒng)/服務(wù)器102可獲得的存儲容量可以通過增加多個存儲設(shè)備126到單個存儲系統(tǒng)(106,108)中或通過增加額外的存儲系統(tǒng)(106,108)到存儲區(qū)域網(wǎng) 絡(luò)上被擴(kuò)展。當(dāng)額外的存儲設(shè)備被增加到單個存儲系統(tǒng)(106,108)上時,存儲系統(tǒng)(106, 108)中的本地塊虛擬化層(118,120)可以被用來從多個物理磁盤(126)中創(chuàng)建更大的虛擬 塊存儲設(shè)備(128,130)。這可以保留虛擬卷(128,130)的單一邏輯塊地址空間,但是,在某 些位置,單個存儲系統(tǒng)(106,108)上的物理連接的數(shù)量可能被用盡,這樣在整體能力的擴(kuò) 展上提供了限制。當(dāng)存儲系統(tǒng)被增加到存儲區(qū)域網(wǎng)絡(luò)時,可用的應(yīng)用的整體存儲容量可以 被增加到超出單一存儲系統(tǒng)的限制。不過,由多存儲系統(tǒng)(106,108)提供的存儲容量可能 需要被合并到一個通用邏輯塊地址空間以被應(yīng)用服務(wù)器(102)使用。許多技術(shù)被用來從多個網(wǎng)絡(luò)連接存儲系統(tǒng)(106,108)上的存儲資源126創(chuàng)建一個 單一名字空間/通用邏輯地址空間。例如,所述技術(shù)可以使用不同的網(wǎng)絡(luò)協(xié)議,例如群集文 件系統(tǒng)或?qū)ο蟠鎯f(xié)議。塊存儲群集聚合可以被增加到所述存儲網(wǎng)絡(luò)110,這樣塊存儲聚合 可以通過多個冗余SAN結(jié)構(gòu)110中的每一個中的群集塊虛擬化設(shè)備提供。群集塊虛擬化設(shè) 備可以在網(wǎng)絡(luò)存儲系統(tǒng)和應(yīng)用系統(tǒng)之間。群集塊虛擬化設(shè)備可以輸入由網(wǎng)絡(luò)存儲系統(tǒng)/存 儲系統(tǒng)輸出的塊存儲邏輯單元,以及可以通過創(chuàng)建虛擬卷來創(chuàng)建附加的塊虛擬化層。群集 塊虛擬化設(shè)備然后可以輸出作為邏輯單元的虛擬卷到應(yīng)用系統(tǒng)。應(yīng)用系統(tǒng)沒有看到或訪問 存儲系統(tǒng)輸出的邏輯單元,而是僅看到虛擬卷/群集虛擬卷。群集物理結(jié)構(gòu)發(fā)現(xiàn)、虛擬化映 射和管理可以通過群集虛擬化管理器提供。群集虛擬化管理器可以駐留在分離的一對冗余 設(shè)備中,該冗余設(shè)備在SAN的邊緣或其上任何地方。不失一般性的,塊存儲群集聚合功能可 以被分布在整個群集塊虛擬化設(shè)備/塊群集虛擬化設(shè)備中??蛇x地,塊存儲群集聚合/塊群集聚合可以被增加到應(yīng)用系統(tǒng)102 (應(yīng)用系統(tǒng)聚 合)。例如,塊群集聚合可通過增加到應(yīng)用系統(tǒng)的塊存儲協(xié)議堆棧的附加提取層提供??蓪?shí) 施多個選項(xiàng)以將所述提取層放置到應(yīng)用系統(tǒng)。塊虛擬化層可掩蔽或隱藏存儲系統(tǒng)輸出的邏 輯單元并可以呈現(xiàn)虛擬卷給塊存儲協(xié)議堆棧中的塊虛擬化層之上的層。與塊存儲群集聚合 被增加到存儲區(qū)域網(wǎng)絡(luò)(網(wǎng)絡(luò)聚合)不同的是,當(dāng)增加塊存儲群集聚合到應(yīng)用系統(tǒng)時,存儲 系統(tǒng)輸出的邏輯單元對應(yīng)用系統(tǒng)/服務(wù)器是可訪問的。塊虛擬化層可以隱藏從運(yùn)行在應(yīng)用 系統(tǒng)/服務(wù)器上的應(yīng)用到所述邏輯單元的訪問。與網(wǎng)絡(luò)聚合相似,當(dāng)塊群集聚合被增加到 應(yīng)用系統(tǒng)時,群集虛擬化管理器功能可以出現(xiàn)以發(fā)現(xiàn)位于群集中的存儲資源和跨越應(yīng)用服 務(wù)器分布虛擬化映射。這種管理方式的一個變形可以包括在每一服務(wù)器中具有獨(dú)立的群集 虛擬化配置,這可以防止虛擬卷被應(yīng)用服務(wù)器共享。可選地,為提供虛擬卷的共享,一個群 集范圍的虛擬機(jī)管理器可能被需要。在本發(fā)明示例的實(shí)施例中(如圖1所示),塊存儲群集聚合可以被增加到存儲系 統(tǒng)(106,108)(存儲系統(tǒng)聚合)上。塊群集聚合可以通過增加到一個或兩個存儲系統(tǒng)(106, 108)的塊協(xié)議堆棧(122,124)的群集塊虛擬化層132來提供。群集塊虛擬化層132可以將 本地或遠(yuǎn)程存儲系統(tǒng)上的存儲設(shè)備126組成虛擬卷(128,130)。群集中每一存儲系統(tǒng)(106, 108)上的存儲設(shè)備126對一個或多個其它存儲系統(tǒng)是可檢測/可見的(例如,存儲系統(tǒng)106 的存儲設(shè)備對存儲系統(tǒng)108是可見的并且存儲系統(tǒng)108的存儲設(shè)備對存儲系統(tǒng)106是可見 的),以允許通過群集虛擬化層132的虛擬卷(128,130)的創(chuàng)建。在多個存儲系統(tǒng)聚合的 應(yīng)用中,只有虛擬卷(128,130)通過群集塊虛擬化層132輸出到存儲區(qū)域網(wǎng)絡(luò)上的應(yīng)用系 統(tǒng)102。在一些網(wǎng)絡(luò)存儲應(yīng)用中,從一個或多個不同存儲系統(tǒng)請求數(shù)據(jù)的到達(dá)一個存儲系統(tǒng)(106或108)的輸入/輸出(I/O)請求被發(fā)送到正確的存儲系統(tǒng)以滿足所述I/O請求。許 多技術(shù)被應(yīng)用以實(shí)現(xiàn)I/O的重新定向,例如代理I/O和命令轉(zhuǎn)發(fā)。正如上面描述的其它塊 存儲群集技術(shù),在存儲系統(tǒng)聚合中,一個單獨(dú)群集虛擬化管理功能134可能被需要在存儲 結(jié)構(gòu)中的至少一個存儲系統(tǒng)(106,108)中存在。不失一般性的,所述群集虛擬化管理器功 能134可以被分布到群集中的存儲系統(tǒng)(106,108)上,因此提供一個低成本低侵襲性的存 儲管理功能的應(yīng)用。為創(chuàng)建塊存儲群集的所述方法/應(yīng)用提供很多有用的特性。例如,塊存儲群集可 以被擴(kuò)展到多個存儲系統(tǒng)(106,108)上。同時,應(yīng)用系統(tǒng)102可以訪問來自群集中的任何 存儲系統(tǒng)的數(shù)據(jù)。更進(jìn)一步,虛擬卷(128,130)可以在所有存儲節(jié)點(diǎn)/存儲系統(tǒng)(106,108) 上提供通用塊地址空間。然而,每一個所述方法/應(yīng)用(網(wǎng)絡(luò)聚合,存儲系統(tǒng)聚合,應(yīng)用系 統(tǒng)聚合)都具有不同的缺點(diǎn)。在網(wǎng)絡(luò)110 (網(wǎng)絡(luò)聚合)中的存儲聚合可能具有如下缺點(diǎn),它可能需要網(wǎng)絡(luò)110中 的額外的特殊目的組件。所述特殊目的組件可能增加網(wǎng)絡(luò)結(jié)構(gòu)的成本并且可能在從單一存 儲系統(tǒng)轉(zhuǎn)移到多系統(tǒng)群集時強(qiáng)加一高成本。此外,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)被創(chuàng)建以最小化總成本時,如 果存儲聚合設(shè)備并沒有包括在該網(wǎng)絡(luò)結(jié)構(gòu)中,所述網(wǎng)絡(luò)可能需要重新布置以將所述聚合設(shè) 備和群集虛擬化管理器包括進(jìn)去。更進(jìn)一步,從單一存儲系統(tǒng)轉(zhuǎn)移到存儲群集需要整個應(yīng) 用系統(tǒng)的重配置以利用虛擬卷而不是利用來自存儲系統(tǒng)的原始卷。在應(yīng)用服務(wù)器102(應(yīng)用系統(tǒng)聚合)上的存儲聚合可能具有如下缺點(diǎn),它可能需要 額外的組件增加到服務(wù)器塊存儲堆棧112。所述組件可能需要掩蔽所有非虛擬邏輯單元以 防止運(yùn)行在系統(tǒng)上的應(yīng)用程序104的訪問。如果對所有訪問群集的操作系統(tǒng)114掩蔽不徹 底,由于對非虛擬邏輯單元的不規(guī)則訪問,可能發(fā)生數(shù)據(jù)中斷或丟失。應(yīng)用系統(tǒng)中的群集塊 虛擬化層可能也需要為應(yīng)用程序提供塊虛擬化。唯一的塊虛擬化組件可能為每一個操作系 統(tǒng)所需要。這些唯一的群集塊虛擬化組件可以被強(qiáng)制使用系統(tǒng)存儲堆棧中的非正式接口來 完成它們的功能,這樣可能產(chǎn)生需要被維持和驗(yàn)證的配置的展開。此外,群集虛擬化管理器 可能依然需要與應(yīng)用系統(tǒng)分離的外部系統(tǒng)。如果群集虛擬化管理器放置在應(yīng)用系統(tǒng)上,它 可能會消耗可以被應(yīng)用程序使用的資源,所述群集虛擬化管理器可能依然被需要與所有其 它位于結(jié)構(gòu)中的應(yīng)用系統(tǒng)通信。不論存儲虛擬化管理器的位置在哪里,可能需要獨(dú)立的協(xié) 議以分布和升級由群集虛擬化管理器維持并由應(yīng)用系統(tǒng)中群集塊虛擬化層使用的塊存儲 映射。存儲系統(tǒng)(106,108)(存儲系統(tǒng)聚合)中的存儲聚合可以消除額外網(wǎng)絡(luò)組件的成 本。存儲系統(tǒng)聚合可以進(jìn)一步消除存儲堆棧112中的額外組件的應(yīng)用服務(wù)器102上的影響 并且也可以消除運(yùn)行在應(yīng)用服務(wù)器102上的存儲虛擬化管理器的影響。存儲系統(tǒng)聚合可以 允許所有為塊存儲群集/塊存儲聚類需要的組件被定位在存儲系統(tǒng)(106,108)上。當(dāng)I/O 請求被發(fā)送到錯誤的存儲系統(tǒng)時,存儲系統(tǒng)聚合可以要求I/O請求被重定向。如前所述,代 理I/O和/或命令轉(zhuǎn)發(fā)可以用來重定向,然而,所述兩者具有它們的缺點(diǎn)。當(dāng)代理I/O被使 用時,這可能會增加一個額外的存儲和轉(zhuǎn)發(fā)延遲來通過接收原始的錯誤定向的請求的存儲 系統(tǒng)路由數(shù)據(jù)。在一個私有存儲互連群集上的命令轉(zhuǎn)發(fā)可能會增加額外成本到存儲群集并 且會限制群集的最大容量。本發(fā)明通過提供用于網(wǎng)絡(luò)存儲應(yīng)用/系統(tǒng)使用的SCSI指點(diǎn)技術(shù)/方法克服了所述提到的塊存儲群集技術(shù)的缺點(diǎn),例如所述應(yīng)用系統(tǒng)/系統(tǒng)如圖1所示。本發(fā)明的所述技 術(shù)/方法被設(shè)計成允許創(chuàng)建塊存儲群集,而不需要在應(yīng)用系統(tǒng)塊存儲堆棧112中增加非標(biāo) 準(zhǔn)的組件或者在存儲網(wǎng)絡(luò)110中增加額外的專用群集設(shè)備。參考圖3,表示本發(fā)明示例性實(shí)施例所述的通過網(wǎng)絡(luò)存儲實(shí)現(xiàn)(例如,在啟動器系 統(tǒng)/啟動器和群集存儲陣列/塊存儲群集陣列之間通信的方法)的為數(shù)據(jù)傳輸?shù)姆椒?。?如,所述方法可以為塊存儲聚類實(shí)施利用如下所述(如圖2和圖3所示)的存儲協(xié)議命令 和應(yīng)答順序(例如,SCSI命令/應(yīng)答遠(yuǎn)程過程調(diào)用模型)的技術(shù)。在本發(fā)明的當(dāng)前實(shí)施例 中,方法300包括在第一存儲系統(tǒng)中接收一個指令的步驟302,其中第一存儲系統(tǒng)包括在群 集存儲陣列的多個存儲系統(tǒng)中。例如,塊存儲群集可以包括各通信地耦合/包括物理存儲 設(shè)備126的兩個或多個存儲系統(tǒng)(106,108)。此外,所述命令可以通過存儲區(qū)域網(wǎng)絡(luò)110被 一個啟動器/啟動器系統(tǒng)/主機(jī)/服務(wù)器102傳輸?shù)降谝淮鎯ο到y(tǒng)106 (例如,目標(biāo)系統(tǒng)/ 目標(biāo))。在示例性實(shí)施例中,所述命令可以是一 I/O請求,例如數(shù)據(jù)請求(例如,讀請求)。 在進(jìn)一步的實(shí)施例中,所述目標(biāo)設(shè)備可以是群集陣列中的任何存儲系統(tǒng)并且所述命令可以 利用任何端口(例如,主端口,如圖2所示)被發(fā)送到群集/群集存儲陣列中的任何預(yù)期的 目標(biāo)存儲系統(tǒng)上。更進(jìn)一步,所述命令可以是一 SCSI命令,所述啟動器/啟動器系統(tǒng)102 可以是一 SCSI啟動器,并且所述目標(biāo)設(shè)備(例如,第一存儲系統(tǒng)106)可以是一 SCSI目標(biāo) 設(shè)備。在其它實(shí)施例中,當(dāng)命令通過存儲區(qū)域網(wǎng)絡(luò)110/網(wǎng)絡(luò)傳輸發(fā)送時,所述命令可以 被傳送到已建立的啟動器和目標(biāo)關(guān)聯(lián)上(例如,一 Ι_τ連接(Nexus))。在SCSI協(xié)議中,所 述位于啟動器和目標(biāo)設(shè)備之間I_T連接可以被建立在啟動器上的SCSI端口(例如,服務(wù)器 /應(yīng)用系統(tǒng)102的SCSI端口)和目標(biāo)設(shè)備上的SCSI端口(例如,第一存儲系統(tǒng)106的SCSI 端口)之間。具有多個端口的目標(biāo)設(shè)備可以為每一端口提供唯一的SCSI端口標(biāo)識符。具 有多個存儲系統(tǒng)的塊存儲群集(例如,塊存儲群集的目標(biāo)設(shè)備)可以為群集中所有存儲系 統(tǒng)上的每一端口提供唯一的端口標(biāo)識符。SCSI端口標(biāo)識符可以是被定義在SCSI結(jié)構(gòu)模型 說明中的SCSI相關(guān)端口標(biāo)識符。在另一個實(shí)施例中,每一 SCSI命令可以指定數(shù)據(jù)根據(jù)在 所述卷的邏輯塊地址空間中的所述數(shù)據(jù)的起始地址和長度被傳輸。在一個示例性實(shí)施例中,方法300進(jìn)一步包括通過存儲區(qū)域網(wǎng)絡(luò)將在數(shù)據(jù)請求中 請求的數(shù)據(jù)傳輸?shù)絾悠飨到y(tǒng)的步驟304,其中所述數(shù)據(jù)請求被存儲在第一存儲系統(tǒng)中。在 本發(fā)明的當(dāng)前實(shí)施例中,被存儲/駐留在接收指令的存儲系統(tǒng)(例如,目標(biāo)存儲系統(tǒng))中的 被請求數(shù)據(jù)的任何部分可以被移動/傳輸?shù)絾悠髦?。例如,通過在所述提到/相同I_T 連接(例如,存儲在第一存儲系統(tǒng)106上的數(shù)據(jù)可以被傳輸?shù)綉?yīng)用系統(tǒng)/啟動器系統(tǒng)102 上)上的一系列的SCSI數(shù)據(jù)傳輸步驟,數(shù)據(jù)可以在目標(biāo)設(shè)備106和啟動器102之間被移 動。在本發(fā)明的當(dāng)前實(shí)施例中,數(shù)據(jù)可以根據(jù)特定SCSI命令的要求在啟動器和目標(biāo)設(shè)備之 間的一個或者兩個方向之間流動。在本發(fā)明的進(jìn)一步實(shí)施例中,方法300可以進(jìn)一步的包括當(dāng)數(shù)據(jù)請求中被請求的 數(shù)據(jù)的一部分沒有被存儲/沒有駐留在第一存儲系統(tǒng)而是被存儲/駐留在包括多個存儲系 統(tǒng)的存儲群集/群集存儲陣列306的第二存儲系統(tǒng)中時,將一指點(diǎn)應(yīng)答從第一存儲系統(tǒng)傳 輸?shù)絾悠飨到y(tǒng)的步驟。在示例性的實(shí)施例中,指點(diǎn)應(yīng)答可以提供一不是所有的在原始數(shù) 據(jù)請求中被請求的數(shù)據(jù)都已經(jīng)被傳輸?shù)闹更c(diǎn)到啟動器,所述指點(diǎn)應(yīng)答可以為定向啟動器系統(tǒng)到第二存儲系統(tǒng)提供信息,和/或所述指點(diǎn)應(yīng)答可以指示/提供群集的一個或多個其它 存儲系統(tǒng)(例如,第二存儲系統(tǒng)108)存儲所述部分/剩余部分的數(shù)據(jù)的指示符到啟動器系 統(tǒng)。例如,指點(diǎn)應(yīng)答可以包括到所述群集的一個或多個其它存儲系統(tǒng)/群集節(jié)點(diǎn)(例如,第 二存儲系統(tǒng)108)的指點(diǎn)列表,其中被請求數(shù)據(jù)的剩余部分(例如,在步驟302接收的原始 數(shù)據(jù)請求的被請求數(shù)據(jù)的剩余部分)存儲/駐留在所述存儲系統(tǒng)/群集節(jié)點(diǎn)中。如上所述,為每一額外的群集節(jié)點(diǎn)/存儲系統(tǒng)有一指點(diǎn),其中為滿足原始的數(shù)據(jù) 請求數(shù)據(jù)必須通過啟動器來得到。在本發(fā)明的當(dāng)前實(shí)施例中,提交給啟動器的指點(diǎn)列表的 每一指點(diǎn)可以為每一存儲系統(tǒng)/節(jié)點(diǎn)包括如下的信息(如圖4所示)端口標(biāo)識符(例如, 與包括至少一些在原始數(shù)據(jù)請求中的數(shù)據(jù)的剩余部分的群集節(jié)點(diǎn)/存儲系統(tǒng)相關(guān)聯(lián)的端 口),偏移量(例如,在其關(guān)聯(lián)的存儲系統(tǒng)/存儲節(jié)點(diǎn)上第一比特數(shù)據(jù)的邏輯塊地址);以及 長度(例如,為所述指點(diǎn)被傳輸?shù)臄?shù)據(jù)量)。端口標(biāo)識符可以遵照定義在SCSI結(jié)構(gòu)模型說 明中的SCSI相關(guān)端口標(biāo)識符的定義。為完成一個指點(diǎn)需要的其它信息,例如容量、邏輯單 元以及目標(biāo)設(shè)備從生成SCSI指點(diǎn)的命令的上下文是可得到的。 在本發(fā)明的示例性實(shí)施例中,方法300進(jìn)一步包括在第二存儲系統(tǒng)308接收一第 二命令。例如,為了響應(yīng)接收指點(diǎn)列表,啟動器102可以將所述第二命令傳輸(例如,通過 存儲區(qū)域網(wǎng)絡(luò))到群集的其它存儲系統(tǒng)中的一個,其中其它存儲系統(tǒng)在指點(diǎn)列表中被標(biāo)識 為存儲所述數(shù)據(jù)剩余部分的至少一部分。例如,啟動器可以將第二命令(例如,可以基于指 點(diǎn)應(yīng)答)傳輸?shù)奖粯?biāo)識在指點(diǎn)列表中的一端口上,所述端口與所述第二系統(tǒng)關(guān)聯(lián)。在進(jìn)一 步的實(shí)施例中,塊存儲協(xié)議啟動器102可以發(fā)送獨(dú)立的命令到群集的所有其它存儲系統(tǒng), 其中所有其它存儲系統(tǒng)通過使用標(biāo)識在指點(diǎn)列表中的端口(例如,二級端口)來保留在原 始請求中被請求的數(shù)據(jù)。在本發(fā)明的進(jìn)一步實(shí)施例中,方法300進(jìn)一步包括通過存儲區(qū)域網(wǎng)絡(luò)310將所 述被請求數(shù)據(jù)的被存儲部分從第二存儲系統(tǒng)傳輸?shù)絾悠飨到y(tǒng)的步驟310。例如,啟動器 102,如上所述,可以發(fā)送指令到群集中的所有其它存儲系統(tǒng)(例如,存儲系統(tǒng)108),其中所 有其它存儲系統(tǒng)通過使用被標(biāo)識在指點(diǎn)列表中的端口(例如,二級端口)以保留原始請求 中被請求的數(shù)據(jù),所述存儲系統(tǒng)將它們的本地數(shù)據(jù)連同指示本地數(shù)據(jù)已被傳送的狀態(tài)發(fā)回 到啟動器。當(dāng)響應(yīng)于基于所述指點(diǎn)發(fā)布的命令的所有數(shù)據(jù)的傳輸已經(jīng)被完成之后,塊存儲 協(xié)議可以通過返回其調(diào)用者來完成操作。在本發(fā)明的可選實(shí)施例中,其中所有在原始數(shù)據(jù)請求中被請求的數(shù)據(jù)(步驟302) 已經(jīng)被第一存儲系統(tǒng)存儲并被傳輸,方法300進(jìn)一步包括將一個傳輸完成的應(yīng)答從第一存 儲系統(tǒng)傳輸?shù)絾悠飨到y(tǒng)的步驟312,所述傳輸完成應(yīng)答指點(diǎn)所有數(shù)據(jù)請求中被請求的數(shù) 據(jù)已經(jīng)被傳輸。在進(jìn)一步的實(shí)施例中,當(dāng)響應(yīng)于一指令的所有數(shù)據(jù)已經(jīng)被傳輸或如果一錯 誤條件發(fā)生在命令或數(shù)據(jù)傳輸中,SCSI目標(biāo)設(shè)備可以通過返回/發(fā)送包括命令狀態(tài)的SCSI 應(yīng)答到啟動器來完成操作(方法步驟314)。為支持本發(fā)明,存儲陣列群集技術(shù)可以被要求來提供許多特性。例如,塊存儲協(xié)議 目標(biāo)設(shè)備可以被要求跨越群集中的所有存儲系統(tǒng)(106,108)分布。此外,群集中所有存儲 系統(tǒng)上的所有端口被要求各具有唯一端口標(biāo)識符。所述端口標(biāo)識符可以被要求是定義在 SCSI結(jié)構(gòu)模型說明中的SCSI相關(guān)端口標(biāo)識符。更進(jìn)一步,虛擬卷的邏輯塊地址空間可以 被要求是跨越虛擬卷存在的所有存儲系統(tǒng)的公用空間。此外,可以被要求在所有存儲系統(tǒng)(106,108)上的群集塊虛擬化功能(134)應(yīng)該能夠確定群集中哪個存儲系統(tǒng)保留其地址范 圍的數(shù)據(jù)在虛擬卷(128,130)內(nèi)。如上所討論的,本發(fā)明的方法可以被實(shí)現(xiàn)在塊存儲群集中,所述方法提供在存儲 系統(tǒng)(106,108)上的塊虛擬化。在示例性實(shí)施例中,本發(fā)明的系統(tǒng)/方法不是利用命令轉(zhuǎn) 發(fā)或者代理1/0,而是通過完成具有包含SCSI檢查條件和SCSI讀出數(shù)據(jù)中的指點(diǎn)列表的狀 態(tài)信息的其本地數(shù)據(jù)傳輸來實(shí)現(xiàn)群集塊虛擬化(132,134),其指示數(shù)據(jù)駐留在其它群集節(jié)
點(diǎn)ο 在進(jìn)一步實(shí)施例中,SCSI啟動器102可以被配置用以檢測一新的檢查條件,為每 一指點(diǎn)發(fā)出新的SCSI命令,并且追蹤何時所有指點(diǎn)被完成。啟動器102可以被進(jìn)一步被配 置用以累積數(shù)據(jù),所述數(shù)據(jù)通過跨越多個啟動器_目標(biāo)設(shè)備連接的指點(diǎn)重新得到。本發(fā)明的系統(tǒng)/方法在當(dāng)前塊存儲群集方法上提供了很多優(yōu)點(diǎn)。首先,為了支持 群集在存儲結(jié)構(gòu)中不需要額外的硬件。在主機(jī)代理和存儲系統(tǒng)常駐塊虛擬化的情況下,沒 有硬件需要被增加到SAN 110上。此外,目標(biāo)設(shè)備和邏輯單元的發(fā)現(xiàn)對啟動器102可以是 不變的,在存取群集的所有節(jié)點(diǎn)上所述目標(biāo)設(shè)備可見,并且存儲群集的所有節(jié)點(diǎn)被配置用 以判斷通過目標(biāo)設(shè)備中的哪個邏輯單元可用。更進(jìn)一步,不需要從啟動器中隱藏非虛擬卷 并且只有虛擬卷被從群集中的存儲系統(tǒng)中輸出。此外,啟動器不需要保留關(guān)于群集中數(shù)據(jù) 分布的信息。本發(fā)明的啟動器/主機(jī)102被配置用以確定數(shù)據(jù)駐留在群集中地方。數(shù)據(jù)可 以被從群集中任何節(jié)點(diǎn)上的任何端口所請求。所述指點(diǎn)定向啟動器到保留數(shù)據(jù)的群集節(jié)點(diǎn) 上。此外,存儲系統(tǒng)(106,108)上的數(shù)據(jù)可以在不通知啟動器的情況下被移動,因?yàn)?,如?啟動器試圖通過一個錯誤群集節(jié)點(diǎn)上的端口訪問數(shù)據(jù)的話,啟動器僅需要簡單的被重定向 (通過指點(diǎn))到包括數(shù)據(jù)的群集節(jié)點(diǎn)上的端口。更進(jìn)一步的,本發(fā)明的方法可以被應(yīng)用在任 何數(shù)量的存儲設(shè)備上,與SAN 110上的限制增加到SAN上的硬件容量存儲虛擬化形成對照。 此外,本發(fā)明的方法可以被應(yīng)用到群集節(jié)點(diǎn)上具有多個端口的存儲群集。如果數(shù)據(jù)通過多 于一個路徑是可訪問的,那么指點(diǎn)僅需要包括單一端口,通過該端口數(shù)據(jù)可以被訪問。在標(biāo) 準(zhǔn)存儲協(xié)議中實(shí)現(xiàn)本發(fā)明可具有如下優(yōu)勢,啟動器上的塊存儲協(xié)議堆棧中的不需要獨(dú)特的 軟件安裝。為提供SCSI I/O指點(diǎn)的所述系統(tǒng)/方法可以允許啟動器訪問邏輯單元號(LUNs) 上的數(shù)據(jù),其中邏輯單元號跨越多個目標(biāo)設(shè)備傳播。目標(biāo)設(shè)備可以是磁盤、存儲陣列、磁帶 庫、或任何其它類型的存儲設(shè)備。在本發(fā)明的進(jìn)一步示例性實(shí)施例中,我們可以提供一種系 統(tǒng)/方法,其允許啟動器通過多于一個目標(biāo)端口來訪問虛擬卷的一部分(例如,所述部分 是數(shù)據(jù)片段,所述部分可以由物理盤、虛擬盤或者任何其它目標(biāo)設(shè)備上的可用數(shù)據(jù)片段組 成)。例如,如果具有訪問數(shù)據(jù)片段的目標(biāo)設(shè)備具有多于一個連接到存儲區(qū)域網(wǎng)絡(luò)(SAN)的 目標(biāo)端口,所述情況就可能發(fā)生。在這種情況下,本發(fā)明的系統(tǒng)/方法可以提供允許目標(biāo)設(shè) 備(可以利用所述SCSI I/O指點(diǎn)的方法)通知啟動器關(guān)于數(shù)據(jù)片段可用的多個路徑的每 一個。參考圖5,表示本發(fā)明示例性實(shí)施例所述的通過SCSI I/O指點(diǎn)配置為提供多路徑 的系統(tǒng)(例如拓?fù)浣Y(jié)構(gòu))。系統(tǒng)500可以包括啟動器502(例如,應(yīng)用服務(wù)器)。所述啟動 器502可以被配置用以通過存儲區(qū)域網(wǎng)絡(luò)504通信與多個目標(biāo)/目標(biāo)設(shè)備/存儲設(shè)備通信 連接。在本發(fā)明的當(dāng)前實(shí)施例中,系統(tǒng)500可以進(jìn)一步包括多個數(shù)據(jù)片段(514,516,518,
12520),所述數(shù)據(jù)片段組成/是部分的/被包括在虛擬卷522。啟動器502可以被配置用以通 過目標(biāo)設(shè)備的一個或多個端口(如圖5中所示端口 0到7)訪問虛擬卷522的一部分(例 如,所述部分是數(shù)據(jù)片段514,516,518,520的一個或多個)。例如,利用所述的SCSI I/O指 點(diǎn)的方法的啟動器502可以具有到組成虛擬卷522的數(shù)據(jù)片段的每一個的多個路徑。在本發(fā)明的一個示例性實(shí)施例中,為了通知啟動器502數(shù)據(jù)片段(514,516,518或 520)通過多個目標(biāo)端口可用,目標(biāo)設(shè)備(506,508,510,512)可以返回列出不同端口的多個 SCSI I/O指點(diǎn),但是其相關(guān)的不同端口 /指示的所述不同端口與相同數(shù)據(jù)片段相關(guān)聯(lián)。所 述數(shù)據(jù)片段可以在SCSI指點(diǎn)列表中通過它們的數(shù)據(jù)偏移量和數(shù)據(jù)長度唯一地標(biāo)識。例如, 啟動器502可以通過目標(biāo)設(shè)備506的端口 0或端口 1聯(lián)系/發(fā)送一 I/O到目標(biāo)設(shè)備中的一 個(例如,目標(biāo)設(shè)備506)來請求數(shù)據(jù),所述數(shù)據(jù)跨越數(shù)據(jù)片段(514,516,518,520)傳播并 通過多個端口可訪問。例如,I/O可以請求存儲/傳播跨越數(shù)據(jù)片段514、516,518,520的 每一個的數(shù)據(jù)。目標(biāo)設(shè)備506然后可以為數(shù)據(jù)被保留在本地啟動數(shù)據(jù)傳輸(例如,數(shù)據(jù)片 段514上的數(shù)據(jù))。進(jìn)一步,目標(biāo)設(shè)備506可以返回包括如下指點(diǎn)的SCSI I/O指點(diǎn)列表端口 2標(biāo)識符,數(shù)據(jù)片段516數(shù)據(jù)偏移量,數(shù)據(jù)片段516數(shù)據(jù)長度 端口 3標(biāo)識符,數(shù)據(jù)片段516數(shù)據(jù)偏移量,數(shù)據(jù)片段516數(shù)據(jù)長度端口 4標(biāo)識符,數(shù)據(jù)片段518數(shù)據(jù)偏移量,數(shù)據(jù)片段518數(shù)據(jù)長度端口 5標(biāo)識符,數(shù)據(jù)片段518數(shù)據(jù)偏移量,數(shù)據(jù)片段518數(shù)據(jù)長度端口 6標(biāo)識符,數(shù)據(jù)片段520數(shù)據(jù)偏移量,數(shù)據(jù)片段520數(shù)據(jù)長度端口 7標(biāo)識符,數(shù)據(jù)片段520數(shù)據(jù)偏移量,數(shù)據(jù)片段520數(shù)據(jù)長度在本發(fā)明的當(dāng)前實(shí)施例中,啟動器502,為了響應(yīng)接收所述I/O指點(diǎn)列表,可以然 后被配置為發(fā)送指點(diǎn)I/O到標(biāo)識在SCSI I/O指點(diǎn)列表中每一個數(shù)據(jù)片段。例如,為了找到 由啟動器502發(fā)出在原始I/O中的被請求的數(shù)據(jù)的剩余部分,啟動器502可以發(fā)送I/O指點(diǎn) 到數(shù)據(jù)片段516,518,520。在本發(fā)明的一個示例性實(shí)施例中,啟動器502可以選擇性地決定 通過哪個端口來訪問每一個數(shù)據(jù)片段。由于本發(fā)明前面所述的I/O指點(diǎn)多路徑列表方法, 基于所述I/O指點(diǎn)列表啟動器502能夠?yàn)樵L問一個相同的數(shù)據(jù)片段決定可能的可選路徑/ 多路徑。例如,基于所述的SCSI I/O指點(diǎn)列表,為通過指點(diǎn)I/O訪問數(shù)據(jù)片段516,啟動器 502可以選擇端口 2或者端口 3。進(jìn)一步,如果指定的指點(diǎn)I/O遇到問題,啟動器502能夠 在其它能夠訪問相同數(shù)據(jù)片段的端口上選擇重試。例如,如果啟動器502通過端口 2發(fā)送 一指點(diǎn)I/O到訪問/請求訪問數(shù)據(jù)片段516并且所述指點(diǎn)I/O遇到問題,啟動器可以替代 的通過端口 3重新嘗試發(fā)送指點(diǎn)1/0(例如,當(dāng)?shù)綌?shù)據(jù)片段的一指定路徑變得不可用時,啟 動器可以切換到可選的路徑)。圖6展示了一個由上面提到的拓?fù)浣Y(jié)構(gòu)中的一目標(biāo)設(shè)備提 供的示例性SCSI I/O指點(diǎn)列表,當(dāng)原始I/O被發(fā)送到目標(biāo)設(shè)備514的端口 0時,原始I/O 的大小是400塊(blocks),并且每一個數(shù)據(jù)片段(514,516,518,520)保留所述原始I/O請 求中被請求數(shù)據(jù)的100塊。如上所述的I/O指點(diǎn)多路徑方法/功能可以允許啟動器在任何時候利用新的/可 選的到數(shù)據(jù)片段的路徑。所述功能的可能使用可以是為系統(tǒng)500達(dá)到負(fù)載平衡,例如通過 輪叫調(diào)度(Round Robin Scheduling).根據(jù)啟動器的性態(tài),上述的I/O指點(diǎn)多路徑方法/ 功能可以允許目標(biāo)設(shè)備基于SCSI指點(diǎn)列表中的指點(diǎn)的順序來分布負(fù)載。這樣的順序可以 通過輪叫調(diào)度由當(dāng)前負(fù)載分發(fā)等決定。
在本發(fā)明的一個可選實(shí)施例中,SCSI I/O指點(diǎn)列表可以直接的分組多個端口到相 同的數(shù)據(jù)片段,而不是執(zhí)行如前所述的隱性的端口分組。所述直接分組可以通過增加額外 的結(jié)構(gòu)到SCSI I/O指點(diǎn)列表中來被達(dá)到。參考圖7,一個可選的示例性SCSII/0指點(diǎn)列表 (如圖6所示)可以被如上所述的與本發(fā)明的一個進(jìn)一步實(shí)施例所述的拓?fù)浣Y(jié)構(gòu)中的目標(biāo) 設(shè)備提供。端口標(biāo)識符可以遵照定義在SCSI結(jié)構(gòu)模型說明中的SCSI相關(guān)端口標(biāo)識符的定 義。在數(shù)據(jù)片段通過多端口是通??稍L問的配置中,圖7所 示的直接端口分組/可選SCSI I/O指點(diǎn)列表的可選方法可以這樣提高性能,通過消除/避免不得不為每一可用端口重復(fù)/ 重列表數(shù)據(jù)片段偏移量和數(shù)據(jù)片段長度的需要。在本發(fā)明的進(jìn)一步實(shí)施例中,盡管允許進(jìn)一步附加次序被包含本發(fā)明中,允許目 標(biāo)設(shè)備指定主要和可選的路徑是有利的。參考圖8,可選的示例性SCSI I/O指點(diǎn)列表可以 由所述拓?fù)浣Y(jié)構(gòu)中的目標(biāo)設(shè)備提供,所述列表實(shí)現(xiàn)如前所述的與本發(fā)明的進(jìn)一步示例性實(shí) 施例所述的主要和可選路徑的指定。端口標(biāo)識符可以遵照定義在SCSI結(jié)構(gòu)模型說明中的 SCSI相關(guān)端口標(biāo)識符的定義。參考圖9,表示本發(fā)明的一個示例性實(shí)施例所述的方法900,該方法通過小型計算 機(jī)系統(tǒng)接口輸入輸出(SCSI I/O)指點(diǎn)提供啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間的 多路徑。在示例性實(shí)施例中,所述方法900可以通過上述系統(tǒng)500實(shí)現(xiàn)。在本發(fā)明的當(dāng)前 實(shí)施例中,存儲群集包括至少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè)備。例如,所述第一目標(biāo)設(shè)備 和/或第二目標(biāo)設(shè)備可以是磁盤、存儲陣列、磁帶庫、和/或存儲設(shè)備。在本發(fā)明的一個示 例性實(shí)施例中,方法900包括通過網(wǎng)絡(luò)在第一目標(biāo)設(shè)備從啟動器接收輸入/輸出(1/0)902。 例如,所述I/O可以包括用于數(shù)據(jù)的第一部分和數(shù)據(jù)的第二部分的請求(例如,讀請求)。 在本發(fā)明的當(dāng)前實(shí)施例中,數(shù)據(jù)的第一部分位于第一數(shù)據(jù)片段上而數(shù)據(jù)的第二部分位于第 二數(shù)據(jù)片段上。進(jìn)一步,第一數(shù)據(jù)片段和第二數(shù)據(jù)片段可以被包括在一虛擬卷中。在進(jìn)一步的實(shí)施例中,當(dāng)數(shù)據(jù)的第一部分而不是數(shù)據(jù)的第二部分存儲在所述第一 目標(biāo)設(shè)備時,以及當(dāng)數(shù)據(jù)的第二部分存儲在所述第二目標(biāo)設(shè)備時,方法900可以進(jìn)一步的 包括如下步驟啟動數(shù)據(jù)的第一部分到啟動器的傳輸904 ;以及將SCSI I/O指點(diǎn)列表傳輸 到啟動器906。在示例性實(shí)施例中,指點(diǎn)列表可以包括用來標(biāo)識第二目標(biāo)設(shè)備的第一端口的 第一端口標(biāo)識符和用來標(biāo)識第二目標(biāo)設(shè)備的第二端口的第二端口標(biāo)識符。第一端口和第二 端口可以被標(biāo)識在指點(diǎn)列表中作為訪問數(shù)據(jù)的第二部分的訪問端口(例如,第二目標(biāo)設(shè)備 的訪問端口,通過該訪問端口啟動器可訪問數(shù)據(jù)的第二部分)。在進(jìn)一步的實(shí)施例中,指點(diǎn) 列表可以通過第二數(shù)據(jù)片段的數(shù)據(jù)偏移量和/或第二數(shù)據(jù)片段的數(shù)據(jù)長度來確定第二數(shù) 據(jù)片段。進(jìn)一步的,指點(diǎn)列表可以將第一端口標(biāo)識符和第二端口標(biāo)識符與第二數(shù)據(jù)片段相 關(guān)聯(lián)。第一端口標(biāo)識符和第二端口標(biāo)識符可以遵照定義在SCSI結(jié)構(gòu)模型說明中的SCSI相 關(guān)端口標(biāo)識符的定義。在進(jìn)一步的實(shí)施例中,方法900可以進(jìn)一步包括通過網(wǎng)絡(luò)在第二目標(biāo)設(shè)備從啟動 器接收指點(diǎn)I/O 908。例如,指點(diǎn)I/O可以響應(yīng)于SCSI I/O指點(diǎn)列表。同時,所述指點(diǎn)I/ 0可以通過下列之一來請求到數(shù)據(jù)的第二部分的訪問由啟動器指引的第一端口和第二端 口。在進(jìn)一步的實(shí)施例中,方法900可以進(jìn)一步包括啟動數(shù)據(jù)的第二部分到啟動器的傳輸 910。參考圖10,表示本發(fā)明的一個示例性實(shí)施例所述的方法1000,該方法通過小型計算機(jī)系統(tǒng)接口輸入輸出(SCSI I/O)指點(diǎn)提供啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間 的多路徑。在示例性實(shí)施例中,所述方法1000可以通過如上所述系統(tǒng)500實(shí)現(xiàn)。存儲群集 可以包括至少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè)備。方法1000可以包括通過網(wǎng)絡(luò)(例如, I/O包括一數(shù)據(jù)請求)在第一目標(biāo)設(shè)備從啟動器接收輸入/輸出(I/O)的步驟1002。方法 1000可以進(jìn)一步包括,當(dāng)包含數(shù)據(jù)請求中的數(shù)據(jù)不是存儲在第一目標(biāo)設(shè)備而是存儲在第二 目標(biāo)設(shè)備時,將SCSI I/O指點(diǎn)列表傳輸?shù)絾悠?004。指點(diǎn)列表包括用來標(biāo)識第二目標(biāo)設(shè) 備的第一端口的第一端口標(biāo)識符和用來標(biāo)識第二目標(biāo)設(shè)備的第二端口的第二端口標(biāo)識符, 第一端口和第二端口被標(biāo)識為訪問所述數(shù)據(jù)的訪問端口。第一端口標(biāo)識符和第二端口標(biāo)識 符可以遵照定義在SCSI結(jié)構(gòu)模型說明中的SCSI相關(guān)端口標(biāo)識符的定義。方法1000可以 包括通過網(wǎng)絡(luò)在第二目標(biāo)設(shè)備從啟動器接收指點(diǎn)I/O的步驟1006。指點(diǎn)I/O可以響應(yīng)于所 述SCSI I/O指點(diǎn)列表,并且所述指點(diǎn)I/O可以請求通過由啟動器指引的第一或第二端口訪 問數(shù)據(jù)。方法1000可以進(jìn)一步包括啟動數(shù)據(jù)到啟動器的傳輸1008。參考圖11,表示本發(fā)明的示例性實(shí)施例所述的被配置用以通過SCSI I/O指點(diǎn)提 供多路徑的系統(tǒng)(例如,拓?fù)浣Y(jié)構(gòu))。系統(tǒng)1100可以包括啟動器1102(例如,應(yīng)用服務(wù)器)。 啟動器1102可以被配置用以通過存儲區(qū)域網(wǎng)絡(luò)(1104,1106)通信連接多個目標(biāo)/目標(biāo)設(shè) 備/存儲設(shè)備(1108,1110)。如圖11所示,存儲區(qū)域網(wǎng)絡(luò)1104 (光纖通道)和1106 (iSCSI) 可以由來自不同的媒介傳輸層協(xié)議實(shí)現(xiàn)。在本發(fā)明的當(dāng)前實(shí)施例中,系統(tǒng)1100可以進(jìn)一步 包括多個數(shù)據(jù)片段(1112,1114),所述數(shù)據(jù)片段組成虛擬卷1122或是虛擬卷1122的部分或 被包括在虛擬卷1122中。目標(biāo)設(shè)備、數(shù)據(jù)片段以及虛擬卷可以組成存儲群集1116。啟動器 1102可以被配置用以通過目標(biāo)設(shè)備的一個或多個端口(如圖11中的端口 1到端口 4)訪問 虛擬卷1122的一部分,所述部分是數(shù)據(jù)片段(1112,1114)的一個或多個,例如,利用上述方 法的SCSI I/O指點(diǎn)的啟動器1102可以具有到組成虛擬卷1122的數(shù)據(jù)片段的每一個的多 路徑。在本發(fā)明的一個示例性實(shí)施例中,為了通知啟動器1102數(shù)據(jù)片段(1112,1114)通 過多目標(biāo)端口是可用的,目標(biāo)設(shè)備(1108,1110)可以返回列出不同端口的多個SCSI I/O指 點(diǎn),但是其關(guān)聯(lián)不同的端口/指點(diǎn)所述不同端口與相同數(shù)據(jù)片段相關(guān)聯(lián)。數(shù)據(jù)片段可以通 過它們的邏輯塊地址(LBA)和數(shù)據(jù)長度被唯一標(biāo)識在SCSI指點(diǎn)列表中。例如,啟動器1102 可以通過目標(biāo)設(shè)備1110的端口 3或者端口 4聯(lián)系/發(fā)送I/O到目標(biāo)設(shè)備中的一個(例如, 目標(biāo)設(shè)備1110),請求跨越數(shù)據(jù)片段(1112,1114)分布的數(shù)據(jù)并通過多個端口可訪問。例 如,下面的I/O可請求存儲在數(shù)據(jù)片段112和數(shù)據(jù)片段1114的每一個上/跨越數(shù)據(jù)片段 112和數(shù)據(jù)片段1114的每一個分布的數(shù)據(jù)端口 4,邏輯塊地址(LBA) 0,長度2OO目標(biāo)設(shè)備1110然后可以為數(shù)據(jù)保留在本地啟動數(shù)據(jù)傳輸(例如,數(shù)據(jù)片段1114 上的數(shù)據(jù))。進(jìn)一步,假定數(shù)據(jù)片段1112和數(shù)據(jù)片段1114的長度都是100塊,目標(biāo)設(shè)備 1110然后可以返回包含下列指點(diǎn)列表的SCSI I/O指點(diǎn)列表,下列指點(diǎn)列表包含一個條目LBA 0,長度100,端口 1相關(guān)端口 ID,端口 2相關(guān)端口 ID在本發(fā)明的當(dāng)前實(shí)施例中,響應(yīng)接收I/O指點(diǎn)列表,啟動器1102可以然后被配置 用以發(fā)送指點(diǎn)I/O到標(biāo)識在SCSI I/O指點(diǎn)列表中的數(shù)據(jù)片段的每一個。例如,啟動器1102 可以發(fā)送I/O指點(diǎn)到數(shù)據(jù)片段1112和1114以找回由啟動器1102發(fā)送的原始I/O的數(shù)據(jù)
15請求中的剩余部分。在本發(fā)明的示例性實(shí)施例中,啟動器1102可以選擇性判斷通過哪個端 口去訪問每一數(shù)據(jù)片段。由于如上描述的本發(fā)明的I/O指點(diǎn)多路徑列表方法,啟動器1102 能夠基于所述I/O指點(diǎn)列表判定為訪問相同數(shù)據(jù)片段的可能的可選路徑/多路徑。例如, 基于上面的SCSI I/O指點(diǎn)列表,啟動器1102可以為通過指點(diǎn)I/O訪問數(shù)據(jù)片段1112而選 擇端口 1或者端口 2。更進(jìn)一步,如果給定的指點(diǎn)I/O遇到問題,啟動器可以嘗試選擇其它 端口去訪問所述相同的數(shù)據(jù)片段。例如,如果啟動器1102通過端口 2發(fā)送指點(diǎn)I/O以訪問 /請求訪問數(shù)據(jù)片段1112并且所述指點(diǎn)I/O遇到問題,啟動器可通過替代的端口 1重試發(fā) 送指點(diǎn)1/0(例如,當(dāng)?shù)綌?shù)據(jù)片段的指定路徑變得不利時,啟動器可以切換到其它路徑)。所述I/O指點(diǎn)方法/功能可以允許多個媒介傳輸協(xié)議并存在一 SCSI指點(diǎn)存儲系 統(tǒng)中。所述方法/功能可以允許SCSI指點(diǎn)存儲系統(tǒng)中的端口標(biāo)識符有固定的大小。除此 之外,為不同媒介傳輸層協(xié)議的SCSI端口的端口標(biāo)識符可以共存在由本發(fā)明的方法/功能 發(fā)出的指點(diǎn)或指點(diǎn)列表中。進(jìn)一步,發(fā)送到一個媒介傳輸協(xié)議的I/O可以被重新定向到第 二媒介傳輸協(xié)議的端口上。例如,被定向到SAS端口的I/O可以被重定向到光纖通道端口。應(yīng)該注意的是,根據(jù)本發(fā)明的所述實(shí)施例可以使用傳統(tǒng)的通用數(shù)字計算機(jī)容易地 實(shí)現(xiàn),其中所述計算機(jī)根據(jù)本說明書所教導(dǎo)的內(nèi)容被編程,說明書中的內(nèi)容對計算機(jī)領(lǐng)域 的技術(shù)人員來說是顯而易見的?;诋?dāng)前公開的教導(dǎo),適合的軟件代碼可已被熟練的編程 員準(zhǔn)備好,所述實(shí)現(xiàn)對軟件領(lǐng)域的技術(shù)人員來說也是顯而易見的。應(yīng)該理解本發(fā)明可以以軟件包的形式來方便地實(shí)現(xiàn)。這樣一個軟件包可以是利用 計算機(jī)可讀媒介的計算機(jī)程序產(chǎn)品,該計算機(jī)可讀媒介包括儲存的用于編程計算機(jī)以實(shí)現(xiàn) 本發(fā)明已公開的功能和過程的計算機(jī)代碼。所述計算機(jī)可讀媒介可以包括但不限于任何 類型的傳統(tǒng)軟盤、光盤、CD-ROM、磁盤、硬盤驅(qū)動器、磁光盤、R0M、RAM、EPR0M、EEPR0M、磁或光 卡、或者其它任何合適用來存儲電子指令的媒介。應(yīng)該理解所述方法公開的步驟的特定順序或?qū)哟问鞘纠椒ǖ睦印?yīng)當(dāng)理解, 基于設(shè)計偏好,所述方法中的步驟的特定順序或?qū)哟慰梢灾匦屡帕?,而仍在本發(fā)明的主題 精神內(nèi)。所附方法權(quán)利要求以樣本順序呈現(xiàn)了不同步驟的要素,并不必意味著僅限于所呈 現(xiàn)的特定次序或?qū)哟?。?yīng)當(dāng)相信,通過前述將理解本發(fā)明和許多其伴隨的優(yōu)點(diǎn),顯而易見,其組成的形 式、結(jié)構(gòu)和布置可以進(jìn)行不同的變化,而不脫離本發(fā)明的范圍和精神或不犧牲所有其物質(zhì) 優(yōu)點(diǎn)。這里以前所述的形式只是示例說明,下列權(quán)利要求的目的是包含和包括此類變化。
權(quán)利要求
1.一種通過小型計算機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn)提供啟動器與通過網(wǎng)絡(luò) 通信連接的存儲群集之間的多路徑的方法,所述存儲群集包括至少一第一目標(biāo)設(shè)備和一第 二目標(biāo)設(shè)備,所述方法包括通過所述網(wǎng)絡(luò)在所述第一目標(biāo)設(shè)備接收來自所述啟動器的一輸入/輸出(I/O),所述 I/O包括一用于數(shù)據(jù)的第一部分和數(shù)據(jù)的第二部分的請求;當(dāng)所述數(shù)據(jù)的第一部分而不是數(shù)據(jù)的第二部分存儲在所述第一目標(biāo)設(shè)備上,而所述數(shù) 據(jù)的第二部分存儲在所述第二目標(biāo)設(shè)備上時,啟動所述數(shù)據(jù)的第一部分到所述啟動器的傳 輸并將一 SCSI I/O指點(diǎn)列表傳輸給所述啟動器;其中所述指點(diǎn)列表包括用于標(biāo)識所述第二目標(biāo)設(shè)備的一第一端口的一第一 SCSI相關(guān) 端口標(biāo)識符和標(biāo)識所述第二目標(biāo)設(shè)備的一第二端口的一第二 SCSI相關(guān)端口標(biāo)識符,所述 第一端口和第二端口被標(biāo)識為用于訪問所述數(shù)據(jù)的第二部分的訪問端口。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括通過所述網(wǎng)絡(luò)在所述第二目標(biāo)設(shè)備接收來自所述啟動器的一指點(diǎn)1/0,所述指點(diǎn)I/O 響應(yīng)于所述SCSI I/O指點(diǎn)列表,所述指點(diǎn)I/O通過以下之一請求訪問所述數(shù)據(jù)的第二部 分由所述啟動器指弓I的所述第一端口和所述第二端口。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括啟動所述數(shù)據(jù)的第二部分到所述啟動器的傳輸。
4.如權(quán)利要求3所述的方法,其中所述數(shù)據(jù)的第一部分位于一第一數(shù)據(jù)片段上以及所 述數(shù)據(jù)的第二部分位于一第二數(shù)據(jù)片段上。
5.如權(quán)利要求4所述的方法,其中所述第一數(shù)據(jù)片段和所述第二數(shù)據(jù)片段被包含在一 虛擬卷中。
6.如權(quán)利要求5所述的方法,其中所述第一目標(biāo)設(shè)備和所述第二目標(biāo)設(shè)備是下列之 一磁盤、存儲陣列、磁帶庫和存儲設(shè)備。
7.如權(quán)利要求5所述的方法,其中所述指點(diǎn)列表通過所述第二數(shù)據(jù)片段的一數(shù)據(jù)偏移 值標(biāo)識所述第二數(shù)據(jù)片段。
8.如權(quán)利要求7所述的方法,其中所述指點(diǎn)列表通過所述第二數(shù)據(jù)片段的一數(shù)據(jù)長度 值標(biāo)識所述第二數(shù)據(jù)片段。
9.如權(quán)利要求8所述的方法,其中指點(diǎn)列表將所述第一數(shù)據(jù)標(biāo)識符和所述第二數(shù)據(jù)標(biāo) 識符與所述第二數(shù)據(jù)片段、所述第二數(shù)據(jù)片段的所述數(shù)據(jù)偏移值以及所述第二數(shù)據(jù)片段的 所述長度值相關(guān)聯(lián)。
10.一種具有計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),所述計算機(jī)可執(zhí)行指令用于執(zhí)行 通過小型計算機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn)提供啟動器與通過網(wǎng)絡(luò)通信連接的 存儲群集之間的多路徑的方法,所述存儲群集包括至少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè) 備,所述方法包括通過所述網(wǎng)絡(luò)在所述第一目標(biāo)設(shè)備接收來自所述啟動器的一輸入/輸出(I/O),所述 I/O包括一用于數(shù)據(jù)的第一部分和數(shù)據(jù)的第二部分的請求;當(dāng)所述數(shù)據(jù)的第一部分而不是所述數(shù)據(jù)的第二部分存儲在所述第一目標(biāo)設(shè)備上,而所 述數(shù)據(jù)的第二部分存儲在所述第二目標(biāo)設(shè)備時,啟動所述數(shù)據(jù)的第一部分到所述啟動器的 傳輸并將一 SCSI I/O指點(diǎn)列表傳輸給所述啟動器;其中所述指點(diǎn)列表包括標(biāo)識所述第二目標(biāo)設(shè)備的一第一端口的一第一 SCSI相關(guān)端口 標(biāo)識符和標(biāo)識所述第二目標(biāo)設(shè)備的一第二端口的一第二 SCSI相關(guān)端口標(biāo)識符,所述第一 端口和第二端口被標(biāo)識為用于訪問所述數(shù)據(jù)的第二部分的訪問端口。
11.如權(quán)利要求10所述的計算機(jī)可讀存儲介質(zhì),所述方法進(jìn)一步包括通過所述網(wǎng)絡(luò)在所述第二目標(biāo)設(shè)備接收來自所述啟動器的一指點(diǎn)1/0,所述指點(diǎn)I/O 響應(yīng)于所述SCSI I/O指點(diǎn)列表,所述指點(diǎn)I/O通過由所述啟動器指引的所述第一端口和所 述第二端口之一請求訪問所述數(shù)據(jù)的第二部分。
12.如權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),所述方法進(jìn)一步包括啟動所述數(shù)據(jù)的第二部分到所述啟動器的傳輸。
13.如權(quán)利要求12所述的計算機(jī)可讀存儲介質(zhì),其中所述數(shù)據(jù)的第一部分位于一第一 數(shù)據(jù)片段上以及所述數(shù)據(jù)的第二部分位于一第二數(shù)據(jù)片段上。
14.如權(quán)利要求13所述的計算機(jī)可讀存儲介質(zhì),其中,其中所述第一數(shù)據(jù)片段和所述 第二數(shù)據(jù)片段被包含在一虛擬卷中。
15.如權(quán)利要求14所述的計算機(jī)可讀存儲介質(zhì),其中,其中所述第一目標(biāo)設(shè)備和所述 第二目標(biāo)設(shè)備是下列之一磁盤、存儲陣列、磁帶庫和存儲設(shè)備。
16.如權(quán)利要求14所述的計算機(jī)可讀存儲介質(zhì),其中所述指點(diǎn)列表通過所述第二數(shù)據(jù) 片段的一數(shù)據(jù)偏移值標(biāo)識所述第二數(shù)據(jù)片段。
17.如權(quán)利要求16所述的計算機(jī)可讀存儲介質(zhì),其中所述指點(diǎn)列表通過所述第二數(shù)據(jù) 片段的一數(shù)據(jù)長度值標(biāo)識所述第二數(shù)據(jù)片段。
18.如權(quán)利要求17所述的計算機(jī)可讀存儲介質(zhì),其中指點(diǎn)列表將所述第一數(shù)據(jù)標(biāo)識符 和所述第二數(shù)據(jù)標(biāo)識符與所述第二數(shù)據(jù)片段、所述第二數(shù)據(jù)片段的所述數(shù)據(jù)偏移值和所述 第二數(shù)據(jù)片段的所述長度值相關(guān)聯(lián)。
19.一種系統(tǒng),包括用于在一第一目標(biāo)設(shè)備接收來自一啟動器的一輸入/輸出(I/O)的裝置,所述I/O包 括一用于數(shù)據(jù)的第一部分和數(shù)據(jù)第二部分的請求;以及當(dāng)所述數(shù)據(jù)的第一部分而不是數(shù)據(jù)的第二部分存儲在所述第一目標(biāo)設(shè)備上,而所述數(shù) 據(jù)的第二部分存儲在所述第二目標(biāo)設(shè)備時,啟動所述數(shù)據(jù)第一部分到所述啟動器的傳輸?shù)?裝置和將一 SCSI I/O指點(diǎn)傳輸給所述啟動器的裝置;其中所述指點(diǎn)列表包括用來標(biāo)識所述第二目標(biāo)設(shè)備的第一端口的第一相關(guān)端口標(biāo)識 符和用來標(biāo)識所述第二目標(biāo)設(shè)備的第二端口的第二相關(guān)端口標(biāo)識符,所述第一端口和所述 第二端口被標(biāo)識為用于訪問所述數(shù)據(jù)的第二部分的訪問端口。
20.一種具有計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),所述計算機(jī)可執(zhí)行指令用于執(zhí)行 通過小型計算機(jī)系統(tǒng)接口輸入/輸出(SCSI I/O)指點(diǎn)提供啟動器與通過網(wǎng)絡(luò)通信連接的 存儲群集之間的多路徑的方法,所述存儲群集包括至少一第一目標(biāo)設(shè)備和一第二目標(biāo)設(shè) 備,所述方法包括通過所述網(wǎng)絡(luò)在所述第一目標(biāo)設(shè)備接收來自所述啟動器的一輸入/輸出(I/O),所述 I/O包括一數(shù)據(jù)請求;當(dāng)包括在所述數(shù)據(jù)請求中的數(shù)據(jù)未存儲在所述第一目標(biāo)設(shè)備上而是存儲在所述第二 目標(biāo)設(shè)備上時,將一 SCSI I/O指點(diǎn)列表傳輸給所述啟動器,其中所述指點(diǎn)列表包括用來標(biāo)識所述第二目標(biāo)設(shè)備的一第一端口的一第一相關(guān)端口標(biāo)識符和用來標(biāo)識第二目標(biāo)設(shè)備的 一第二端口的一第二相關(guān)端口標(biāo)識符,所述第一端口和第二端口被標(biāo)識為用于訪問所述數(shù) 據(jù)的第二部分的訪問端口;通過網(wǎng)絡(luò)在所述第二目標(biāo)設(shè)備接收來自所述啟動器的一指點(diǎn)1/0,所述指點(diǎn)I/O響應(yīng) 于所述SCSI I/O指點(diǎn)列表并且所述指點(diǎn)I/O請求通過下列之一訪問數(shù)據(jù)由所述啟動器指 引的所述第一端口和所述第二端口; 啟動所述數(shù)據(jù)到所述啟動器的傳輸。
全文摘要
傳輸未知SCSI I/O指點(diǎn)。本發(fā)明涉及一種通過SCSI I/O指點(diǎn)提供啟動器與通過網(wǎng)絡(luò)通信連接的存儲群集之間多路徑的方法,存儲群集包括至少第一目標(biāo)設(shè)備和第二目標(biāo)設(shè)備。該方法包括通過網(wǎng)絡(luò)在所述第一目標(biāo)設(shè)備接收來自啟動器的I/O。I/O包括數(shù)據(jù)請求。當(dāng)包含在數(shù)據(jù)請求中的數(shù)據(jù)未存儲在第一目標(biāo)設(shè)備上而是存儲在第二目標(biāo)設(shè)備上時,該方法進(jìn)一步包括將SCSI I/O指點(diǎn)列表傳輸給啟動器。指點(diǎn)列表包括為第二目標(biāo)設(shè)備的第一端口和第二端口各自標(biāo)識的第一端口標(biāo)識符和第二端口標(biāo)識符。第一端口標(biāo)識符和第二端口標(biāo)識符是SCSI相關(guān)端口標(biāo)識符。目標(biāo)設(shè)備的第一端口和第二端口被標(biāo)識為用于訪問數(shù)據(jù)請求中被請求的數(shù)據(jù)的訪問端口。
文檔編號H04L29/08GK102006316SQ20101020019
公開日2011年4月6日 申請日期2010年6月13日 優(yōu)先權(quán)日2009年9月1日
發(fā)明者安德魯·J·斯派瑞, 杰拉爾德·J·弗瑞丁, 羅伯特·L·設(shè)菲爾德, 羅斯·E·威斯勒, 肯尼思·J·吉布森 申請人:Lsi公司