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

故障轉(zhuǎn)移和負(fù)載平衡的制作方法

文檔序號(hào):7610100閱讀:312來源:國(guó)知局
專利名稱:故障轉(zhuǎn)移和負(fù)載平衡的制作方法
領(lǐng)域本公開涉及用于故障轉(zhuǎn)移和負(fù)載平衡的方法、系統(tǒng)和程序。
相關(guān)技術(shù)描述I_T連接點(diǎn)是一對(duì)啟動(dòng)設(shè)備與目標(biāo)設(shè)備。請(qǐng)求輸入/輸出(I/O)操作的設(shè)備被稱為啟動(dòng)者,執(zhí)行這些操作的設(shè)備被稱為目標(biāo)。例如,主計(jì)算機(jī)可以是啟動(dòng)者,存儲(chǔ)設(shè)備可以是目標(biāo)。目標(biāo)可包括一個(gè)或多個(gè)單獨(dú)的存儲(chǔ)設(shè)備。
主機(jī)總線適配器(HBA)是“連接”操作系統(tǒng)與小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線的硬件設(shè)備。HBA管理主計(jì)算機(jī)與通信路徑之間數(shù)據(jù)的傳送。HBA成隊(duì)(teaming)指的是將若干HBA組合在一起形成“隊(duì)”,其中隊(duì)中的每一HBA連接,且可將數(shù)據(jù)路由至特定目標(biāo)。HBA隊(duì)可在因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)(2003年2月發(fā)布的IETF RFC 3347)門戶(portal)組概念上構(gòu)建。iSCSI由IETF在2003年2月定義為標(biāo)準(zhǔn)。門戶組概念可被描述為iSCSI網(wǎng)絡(luò)實(shí)體內(nèi)共同支持使會(huì)話與跨這些門戶的連接協(xié)調(diào)的能力的網(wǎng)絡(luò)門戶的集合。HBA成隊(duì)可與運(yùn)行Windows2000、WindowsXP或Windows.NET操作系統(tǒng)的小型計(jì)算機(jī)系統(tǒng)接口(SCSI)(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)SCSI控制器命令-2(SCC-2)NCITS.3181998)啟動(dòng)者一起使用。I_T連接點(diǎn)的連接恢復(fù)策略可以是基于多個(gè)傳輸控制協(xié)議(TCP)連接(1981年9月發(fā)布的互聯(lián)網(wǎng)工程任務(wù)組(IETF)因特網(wǎng)標(biāo)準(zhǔn)(草案)(RFC)793)。即,來自運(yùn)行在Windows操作系統(tǒng)上的iSCSI啟動(dòng)者的分組在啟動(dòng)者和目標(biāo)之間經(jīng)由多個(gè)連接發(fā)送和/或接收。如果到同一目標(biāo)的多個(gè)連接建立在一個(gè)HBA內(nèi),則小型端口驅(qū)動(dòng)器可處理故障轉(zhuǎn)移(即,當(dāng)一個(gè)連接發(fā)生故障時(shí),將分組路由至另一連接)和負(fù)載平衡(即,在HBA連接之間平衡負(fù)載)。
然而,本領(lǐng)域中存在對(duì)跨各自可具有到同一目標(biāo)的一個(gè)或多個(gè)連接的若干HBA進(jìn)行故障轉(zhuǎn)移和負(fù)載平衡的需求。
附圖簡(jiǎn)述現(xiàn)在參考附圖,所有附圖中相同的參考標(biāo)號(hào)代表相應(yīng)的部分

圖1A示出了其中實(shí)現(xiàn)某些實(shí)施例的計(jì)算環(huán)境;圖1B示出了其中實(shí)現(xiàn)某些特定實(shí)施例的計(jì)算環(huán)境;圖2A以框圖示出了帶有可任選低類過濾驅(qū)動(dòng)器(Class lower filter driver)的Windows存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧;圖2B以框圖示出了根據(jù)某些實(shí)施例可在SCSI環(huán)境中使用的具有故障轉(zhuǎn)移和負(fù)載平衡能力的存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧;圖3以框圖示出了根據(jù)某些實(shí)施例具有故障轉(zhuǎn)移和負(fù)載平衡能力的啟動(dòng)者的配置的示例;圖4A和4B示出了根據(jù)某些實(shí)施例用于輔助存儲(chǔ)設(shè)備棧隱藏的操作;圖5A、5B和5C示出了根據(jù)某些實(shí)施例的通知機(jī)制的操作;以及圖6A和6B示出了根據(jù)某些實(shí)施例用于負(fù)載平衡的操作。
實(shí)施例的詳細(xì)描述在以下描述中,對(duì)構(gòu)成說明書的一部分并示出若干實(shí)施例的附圖進(jìn)行了參考。可以理解,可利用其他實(shí)施例,且可進(jìn)行結(jié)構(gòu)和操作性的改變而不背離實(shí)施例的范圍。
圖1A示出了可在其中實(shí)現(xiàn)各實(shí)施例的計(jì)算環(huán)境。計(jì)算機(jī)102用作啟動(dòng)者,而數(shù)據(jù)存儲(chǔ)140用作目標(biāo)來形成I T連接點(diǎn)。計(jì)算機(jī)102包括一個(gè)或多個(gè)中央處理單元(CPU)104、易失性存儲(chǔ)器106、非易失性存儲(chǔ)108(例如,磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等)、操作系統(tǒng)110(例如,Windows200、WindowsXP、或Windows.NET)以及一個(gè)或多個(gè)網(wǎng)絡(luò)適配器128。在某些實(shí)施例中,每一網(wǎng)絡(luò)適配器是主機(jī)總線適配器(HBA)。過濾驅(qū)動(dòng)器112、小型端口驅(qū)動(dòng)器114和應(yīng)用程序124也在存儲(chǔ)器106中執(zhí)行。
計(jì)算機(jī)102可包括本領(lǐng)域中已知的計(jì)算設(shè)備,諸如大型機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)等??墒褂萌魏蜟PU 104和操作系統(tǒng)110。存儲(chǔ)器106中的程序和數(shù)據(jù)可作為存儲(chǔ)器管理操作的一部分交換到存儲(chǔ)108內(nèi)。
數(shù)據(jù)存儲(chǔ)140包括一個(gè)或多個(gè)邏輯單元(即,“n”個(gè)邏輯單元,其中“n”可以是任何正整數(shù)值,在某些實(shí)施例中,它小于128)。僅為理解方便起見,示出了邏輯單元0、邏輯單元1和邏輯單元“n”。此外,邏輯單元號(hào)(LUN)與每一邏輯設(shè)備相關(guān)聯(lián)。在某些實(shí)施例中,HBA隊(duì)是基于目標(biāo)和LUN來組織的(即,將可路由數(shù)據(jù)至目標(biāo)的特定LUN的每一HBA組合成一個(gè)HBA隊(duì)),且一個(gè)HBA可屬于不同的HBA隊(duì)。
每一網(wǎng)絡(luò)適配器128包括以網(wǎng)絡(luò)適配器128的硬件實(shí)現(xiàn)的各種組件。每一網(wǎng)絡(luò)適配器128能夠經(jīng)由網(wǎng)絡(luò)176發(fā)送和接收數(shù)據(jù)分組,網(wǎng)絡(luò)176可包括局域網(wǎng)(LAN)、因特網(wǎng)、廣域網(wǎng)(WAN)、存儲(chǔ)區(qū)域網(wǎng)(SAN)、WiFi(1999年9月16日發(fā)布的電氣和電子工程師學(xué)會(huì)(IEEE)802.11b)、無線LAN(1999年9月16日發(fā)布的IEEE 802.11b)等。
存儲(chǔ)驅(qū)動(dòng)器120在存儲(chǔ)器106中執(zhí)行,它包括網(wǎng)絡(luò)適配器128的特定命令來與網(wǎng)絡(luò)適配器128通信并作為操作系統(tǒng)110與每一網(wǎng)絡(luò)適配器128之間的接口。網(wǎng)絡(luò)適配器128和存儲(chǔ)驅(qū)動(dòng)器120實(shí)現(xiàn)處理iSCSI分組的邏輯,其中SCSI命令被包裝在iSCSI分組中,iSCSI分組被包裝在TCP分組中。傳輸協(xié)議層將來自所接收的傳輸控制協(xié)議(TCP)(1981年9月發(fā)布的互聯(lián)網(wǎng)工程任務(wù)組(IETF)因特網(wǎng)標(biāo)準(zhǔn)(草案)(RFC)793)分組中的有效負(fù)荷解包,并將數(shù)據(jù)傳送到存儲(chǔ)驅(qū)動(dòng)器120來返回至例如應(yīng)用程序124。此外,發(fā)送數(shù)據(jù)的應(yīng)用程序124將數(shù)據(jù)發(fā)送到存儲(chǔ)驅(qū)動(dòng)器120,后者然后將數(shù)據(jù)發(fā)送到傳輸協(xié)議層以便在經(jīng)由網(wǎng)絡(luò)176發(fā)送之前在TCP/IP分組中打包。
總線控制器134允許每一網(wǎng)絡(luò)適配器128在計(jì)算機(jī)總線160上通信,計(jì)算機(jī)總線160可包括本領(lǐng)域中已知的任何總線接口,諸如外圍部件互連(PCI)總線、PCI Express總線、工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)、擴(kuò)展ISA、微通道體系結(jié)構(gòu)(MCA)等。網(wǎng)絡(luò)適配器128包括用于實(shí)現(xiàn)媒體訪問控制(MAC)功能以便經(jīng)由網(wǎng)絡(luò)176發(fā)送網(wǎng)絡(luò)分組到遠(yuǎn)程數(shù)據(jù)存儲(chǔ)或從中接收網(wǎng)絡(luò)分組的物理通信層132。在某些實(shí)施例中,網(wǎng)絡(luò)適配器128可實(shí)現(xiàn)以太網(wǎng)協(xié)議(2002年3月8日發(fā)布的IEEE標(biāo)準(zhǔn)802.3),光纖通道(2003年12月發(fā)布的IETF RFC 3643)或本領(lǐng)域已知的任何其它網(wǎng)絡(luò)通信協(xié)議。
存儲(chǔ)108可包括內(nèi)部存儲(chǔ)設(shè)備或者附加或網(wǎng)絡(luò)可訪問存儲(chǔ)。存儲(chǔ)108中的程序108被加載至存儲(chǔ)器106中并由CPU 104執(zhí)行。使用輸入設(shè)備150向CPU 104提供用戶輸入,輸入設(shè)備可包括鍵盤、鼠標(biāo)、指示筆、麥克風(fēng)、觸敏顯示屏或本領(lǐng)域中已知的任何其它激活或輸入機(jī)制。輸出設(shè)備152能夠呈現(xiàn)從CPU 104或諸如顯示監(jiān)視器、打印機(jī)、存儲(chǔ)等其它組件傳送的信息。
在某些實(shí)施例中,除存儲(chǔ)驅(qū)動(dòng)器120以外,計(jì)算機(jī)102可包括其它驅(qū)動(dòng)器。
網(wǎng)絡(luò)適配器128可包括執(zhí)行附加操作來處理從計(jì)算機(jī)102或網(wǎng)絡(luò)176接收的分組的附加硬件邏輯。此外,網(wǎng)絡(luò)適配器128可實(shí)現(xiàn)傳輸層卸載引擎(TOE)來實(shí)現(xiàn)與計(jì)算機(jī)存儲(chǔ)驅(qū)動(dòng)器120相對(duì)的網(wǎng)絡(luò)適配器中的傳輸協(xié)議層,以便進(jìn)一步減少計(jì)算機(jī)102的處理負(fù)擔(dān)?;蛘撸瑐鬏攲涌稍诖鎯?chǔ)驅(qū)動(dòng)器或其它驅(qū)動(dòng)器120(例如,由操作系統(tǒng)提供)中實(shí)現(xiàn)。
在某些實(shí)施例中,各種結(jié)構(gòu)和/或緩沖器(未示出)可駐留在存儲(chǔ)器106中,或可位于與存儲(chǔ)器106分開的存儲(chǔ)單元中。
圖1B示出了其中實(shí)現(xiàn)某些特定實(shí)施例的計(jì)算環(huán)境。圖1B中,計(jì)算機(jī)102包括與主機(jī)總線適配器(HBA)128a、128b和128c交互的存儲(chǔ)驅(qū)動(dòng)器120。每一HBA128a、128b和128c可被描述為網(wǎng)絡(luò)適配器128(圖1A)。計(jì)算機(jī)102和HBA 128a、128b和128c可被描述為啟動(dòng)者,而數(shù)據(jù)存儲(chǔ)140可被描述為目標(biāo)。數(shù)據(jù)存儲(chǔ)140示出了代表邏輯單元的邏輯單元號(hào)(LUN)。
圖2A在框圖中示出帶有可任選低類過濾驅(qū)動(dòng)器(Class lower filter driver)的Windows存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧200。存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧200包括上層協(xié)議(ULP)210,它可將分組發(fā)送至存儲(chǔ)類驅(qū)動(dòng)器212或從中接收分組。存儲(chǔ)類驅(qū)動(dòng)器212可將分組發(fā)送到低類過濾驅(qū)動(dòng)器214或從中接收分組。低類過濾驅(qū)動(dòng)器214在某些實(shí)施例中是可任選的。低類過濾驅(qū)動(dòng)器214可將分組發(fā)送到端口驅(qū)動(dòng)器216或從中接收分組。端口驅(qū)動(dòng)器216可與小型端口驅(qū)動(dòng)器218通信。小型端口驅(qū)動(dòng)器218能夠經(jīng)由各實(shí)施例提供的回調(diào)接口與低類過濾驅(qū)動(dòng)器214通信。
各實(shí)施例提供了基于端口驅(qū)動(dòng)器216上方的低類過濾驅(qū)動(dòng)器214的特殊的過濾驅(qū)動(dòng)器,以便用于在跨HBA連接之間進(jìn)行故障轉(zhuǎn)移和負(fù)載平衡。過濾驅(qū)動(dòng)器處理HBA的上下文切換和路徑控制。過濾驅(qū)動(dòng)器也提供分組分發(fā)。具體地,過濾驅(qū)動(dòng)器監(jiān)聽包含在存儲(chǔ)類驅(qū)動(dòng)器212與端口驅(qū)動(dòng)器216之間的輸入/輸出請(qǐng)求分組(IRP)中的SCSI請(qǐng)求塊(SRB)分組。在某些實(shí)施例中,過濾驅(qū)動(dòng)器被實(shí)現(xiàn)為低級(jí)類過濾驅(qū)動(dòng)器。一旦創(chuàng)建存儲(chǔ)設(shè)備實(shí)例之后即通知過濾驅(qū)動(dòng)器,然后,過濾驅(qū)動(dòng)器將其自己連接至低類過濾驅(qū)動(dòng)器214之下的存儲(chǔ)驅(qū)動(dòng)器棧200。
圖2B以框圖示出了根據(jù)某些實(shí)施例可在SCSI環(huán)境中使用的具有故障轉(zhuǎn)移和負(fù)載平衡能力的存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧250。存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧250可與Windows200、WindowsXP或Windows.NET操作系統(tǒng)一起使用。存儲(chǔ)設(shè)備驅(qū)動(dòng)器棧250包括上層協(xié)議(ULP)260,它可將IRP發(fā)送給SCSI磁盤類驅(qū)動(dòng)器262或從中接收IRP。SCSI磁盤類驅(qū)動(dòng)器262可將SRB/IRP發(fā)送到低級(jí)類過濾驅(qū)動(dòng)器264中或從中接收SRB/IRP。低級(jí)類過濾驅(qū)動(dòng)器264可將SRB/IRP發(fā)送到SCSI端口驅(qū)動(dòng)器266或從中接收SRB/IRP。SCSI端口驅(qū)動(dòng)器266與SCSI小型端口驅(qū)動(dòng)器268通信。SCSI小型端口驅(qū)動(dòng)器268能夠經(jīng)由回調(diào)接口與低級(jí)類過濾驅(qū)動(dòng)器264通信。
圖3以框圖示出了根據(jù)某些實(shí)施例具有故障轉(zhuǎn)移和負(fù)載平衡能力的啟動(dòng)者的配置的示例。在圖3中,存儲(chǔ)類驅(qū)動(dòng)器與過濾驅(qū)動(dòng)器通信,后者與端口/小型端口驅(qū)動(dòng)器通信。例如,存儲(chǔ)類驅(qū)動(dòng)器使用存儲(chǔ)類驅(qū)動(dòng)器1設(shè)備對(duì)象310和過濾驅(qū)動(dòng)器1設(shè)備對(duì)象312與過濾驅(qū)動(dòng)器通信,該過濾驅(qū)動(dòng)器使用過濾驅(qū)動(dòng)器1設(shè)備對(duì)象312和端口/小型端口驅(qū)動(dòng)器設(shè)備對(duì)象316、314與端口/小型端口驅(qū)動(dòng)器通信。小型端口經(jīng)由端口驅(qū)動(dòng)器導(dǎo)出的例程與HBA通信。每一HBA具有至一個(gè)或多個(gè)目標(biāo)的通信路徑。例如,HBA1 318具有到目標(biāo)1 320和目標(biāo)2 340的通信路徑。HBA2 338具有到目標(biāo)1 320和目標(biāo)2340的通信路徑。HBA3 358具有到目標(biāo)2 340和目標(biāo)3360的通信路徑。各實(shí)施例提供了跨HBA 318、338和358的故障轉(zhuǎn)移和負(fù)載平衡,HBA中的某一些具有到同一目標(biāo)的連接。在某些實(shí)施例中,所提出的故障轉(zhuǎn)移和負(fù)載平衡方法是基于建立在iSCSI門戶組概念上的HBA成隊(duì)。
再一次,在某些實(shí)施例中,HBA隊(duì)是基于目標(biāo)和LUN來組織的(即,可將數(shù)據(jù)路由至目標(biāo)的特定LUN的每一HBA被組合成一個(gè)HBA隊(duì)),且一個(gè)HBA可屬于不同的HBA隊(duì)。例如,數(shù)據(jù)可經(jīng)由包括過濾驅(qū)動(dòng)器1設(shè)備對(duì)象312、過濾驅(qū)動(dòng)器4設(shè)備對(duì)象332和過濾驅(qū)動(dòng)器5設(shè)備對(duì)象352的數(shù)據(jù)路徑傳遞至目標(biāo)2 340內(nèi)的同一LUN(未示出)。這些數(shù)據(jù)路徑中的每一條經(jīng)由不同的HBA(分別是HBA1 318、HBA2 338和HBA3 358)傳遞,因此HBA1 318、HBA2 338和HBA3358在一個(gè)HBA隊(duì)中。即,對(duì)HBA隊(duì)中的每一HBA,路由至目標(biāo)2 340內(nèi)的一LUN的數(shù)據(jù)可流經(jīng)該HBA隊(duì)中的任何HBA(用于故障轉(zhuǎn)移),或可同時(shí)流經(jīng)該HBA隊(duì)中的每一HBA(用于負(fù)載平衡)。作為另一示例,HBA隊(duì)也由HBA1 318和HBA2 338形成,因?yàn)橄鄳?yīng)的數(shù)據(jù)路徑通過HBA1 318和HBA2 338到目標(biāo)1 320中的LUN(未示出)。
各實(shí)施例提供了用于在過濾驅(qū)動(dòng)器中實(shí)現(xiàn)故障轉(zhuǎn)移和負(fù)載平衡能力的新的回調(diào)接口。
故障轉(zhuǎn)移技術(shù)提供了當(dāng)?shù)谝籋BA或數(shù)據(jù)路徑認(rèn)為第一HBA發(fā)生故障時(shí)到目標(biāo)的通信路徑的高度可用性(即,分組被路由至連接至同一目標(biāo)的第二HBA)。為進(jìn)行故障轉(zhuǎn)移,各實(shí)施例提供了輔助存儲(chǔ)設(shè)備棧隱藏和通知機(jī)制。
圖4A和4B示出了根據(jù)某些實(shí)施例用于輔助存儲(chǔ)設(shè)備棧隱藏的操作。控制在框400處以為邏輯單元建立存儲(chǔ)設(shè)備棧開始。在框402中,確定這是否是用于該邏輯單元的第一存儲(chǔ)設(shè)備棧。如果是,則處理繼續(xù)至框404,否則處理繼續(xù)至框404。即,當(dāng)存在連接至同一目標(biāo)的若干HBA時(shí),為每一HBA的目標(biāo)的每一SCSI LUN創(chuàng)建存儲(chǔ)設(shè)備棧,以使過濾驅(qū)動(dòng)器能夠?yàn)槊恳籋BA處理和重定向SRB。如果要在為同一目標(biāo)建立的每一存儲(chǔ)設(shè)備棧上安裝文件系統(tǒng),由于對(duì)同一存儲(chǔ)設(shè)備實(shí)例的多重訪問,這可導(dǎo)致同步問題。從而,為每一LUN建立的第一存儲(chǔ)設(shè)備棧成為“主要”存儲(chǔ)設(shè)備棧。滯后,為該LUN建立的所有其它存儲(chǔ)設(shè)備棧作為“輔助”存儲(chǔ)設(shè)備棧來對(duì)待。因此,在框404中,存儲(chǔ)設(shè)備棧被指定為主要存儲(chǔ)設(shè)備棧。在框406中,存儲(chǔ)設(shè)備棧被指定為輔助存儲(chǔ)設(shè)備棧。
例如,存儲(chǔ)類驅(qū)動(dòng)器1設(shè)備對(duì)象310、過濾驅(qū)動(dòng)器1設(shè)備對(duì)象312、端口/小型端口驅(qū)動(dòng)器設(shè)備對(duì)象314、316的存儲(chǔ)設(shè)備棧在該示例中被指定為主要存儲(chǔ)設(shè)備棧。存儲(chǔ)類驅(qū)動(dòng)器1a設(shè)備對(duì)象330、過濾驅(qū)動(dòng)器4設(shè)備對(duì)象332、端口/小型端口驅(qū)動(dòng)器設(shè)備對(duì)象334、336的存儲(chǔ)設(shè)備棧在該示例中被指定為輔助存儲(chǔ)設(shè)備棧。存儲(chǔ)類驅(qū)動(dòng)器1a設(shè)備對(duì)象350、過濾驅(qū)動(dòng)器5設(shè)備對(duì)象352、端口/小型端口驅(qū)動(dòng)器設(shè)備對(duì)象354、356的存儲(chǔ)設(shè)備棧在該示例中被指定為輔助存儲(chǔ)設(shè)備棧。過濾驅(qū)動(dòng)器允許文件系統(tǒng)安裝在一個(gè)主要存儲(chǔ)設(shè)備棧(例如,存儲(chǔ)設(shè)備棧310、312、314和316)上,并阻止文件系統(tǒng)安裝在其它的輔助存儲(chǔ)設(shè)備棧(例如,存儲(chǔ)設(shè)備棧330、332、334和336以及存儲(chǔ)設(shè)備棧350、352、354和356)上。同樣,以存儲(chǔ)類驅(qū)動(dòng)器2設(shè)備對(duì)象開始的存儲(chǔ)設(shè)備棧是主要存儲(chǔ)設(shè)備棧,而以存儲(chǔ)類驅(qū)動(dòng)器2a設(shè)備對(duì)象開始的存儲(chǔ)設(shè)備棧是輔助存儲(chǔ)設(shè)備棧。由于輔助存儲(chǔ)設(shè)備棧隱藏,因此數(shù)據(jù)經(jīng)由主要存儲(chǔ)設(shè)備棧而不是輔助存儲(chǔ)設(shè)備棧被路由。
圖4B中,控制在框420處以分組以成功狀態(tài)從輔助存儲(chǔ)設(shè)備棧完成開始。在框422中,過濾驅(qū)動(dòng)器將成功狀態(tài)改成出錯(cuò)狀態(tài)。在框424中,過濾驅(qū)動(dòng)器將傳感鍵(sense key)值置為未準(zhǔn)備好。在框426中,過濾驅(qū)動(dòng)器對(duì)傳感碼置位,用于指示在存儲(chǔ)設(shè)備中沒有媒體。因此,在某些實(shí)施例中,為防止文件系統(tǒng)安裝在輔助存儲(chǔ)設(shè)備棧上,過濾驅(qū)動(dòng)器將以成功狀態(tài)從輔助存儲(chǔ)設(shè)備棧中完成的SRB的狀態(tài)翻轉(zhuǎn)成出錯(cuò)狀態(tài)(例如,SRB_STATUS_ERROR),將傳感鍵值置為SCSI_SENSE_NOT_READY,并將附加的傳感碼置為SCSI_ADSENSE_NO MEDIA_IN_DEVICE。
圖5A、5B和5C示出了根據(jù)某些實(shí)施例的通知機(jī)制的操作。過濾驅(qū)動(dòng)器和小型端口驅(qū)動(dòng)器實(shí)現(xiàn)用于彼此交互的協(xié)議。
圖5A示出了根據(jù)某些實(shí)施例在小型端口驅(qū)動(dòng)器中實(shí)現(xiàn)的故障轉(zhuǎn)移處理的操作。在圖5A中,控制在框500處以在小型端口驅(qū)動(dòng)器處接收對(duì)特定HBA數(shù)據(jù)路徑的分組開始。術(shù)語“HBA數(shù)據(jù)路徑”可被描述為從小型端口經(jīng)由HBA到目標(biāo)的數(shù)據(jù)路徑。一種類型的分組可以是SRB。在框502中,如果HBA數(shù)據(jù)路徑發(fā)生故障,則處理繼續(xù)至框504,否則處理繼續(xù)至框508。
在框504中,小型端口驅(qū)動(dòng)器使用通知回調(diào)方法來通知過濾驅(qū)動(dòng)器HBA數(shù)據(jù)路徑發(fā)生故障。可任選地,小型端口驅(qū)動(dòng)器向過濾驅(qū)動(dòng)器提供新的HBA數(shù)據(jù)路徑標(biāo)識(shí)符,且過濾驅(qū)動(dòng)器將分組重定向至該新的HBA數(shù)據(jù)路徑。例如,對(duì)由HBA1318、HBA2 338和HBA3 358組成的HBA隊(duì),如果HBA1 318發(fā)生故障,則小型端口可指定包括HBA2 338或者HBA3 358中的任一個(gè)的新的HBA數(shù)據(jù)路徑。在某些實(shí)施例中,可經(jīng)由I/O控制(IOCTL)以過濾驅(qū)動(dòng)器的添加設(shè)備方法將指向通知回調(diào)方法的指針和指向當(dāng)前HBA數(shù)據(jù)路徑的過濾設(shè)備擴(kuò)展的指針發(fā)送給小型端口驅(qū)動(dòng)器。在某些實(shí)施例中,當(dāng)HBA數(shù)據(jù)路徑發(fā)生故障,小型端口驅(qū)動(dòng)器通過以狀態(tài)參數(shù)和指針參數(shù)調(diào)用通知回調(diào)方法來向過濾驅(qū)動(dòng)器通知HBA數(shù)據(jù)路徑發(fā)生故障,其中指針指向過濾驅(qū)動(dòng)器的設(shè)備擴(kuò)展,對(duì)應(yīng)于當(dāng)前路徑。
小型端口驅(qū)動(dòng)器不以出錯(cuò)狀態(tài)完成分組,因?yàn)檫@可引起端口驅(qū)動(dòng)器凍結(jié)SRB隊(duì)列或啟動(dòng)總線復(fù)位。相反,在框506中,小型端口驅(qū)動(dòng)器以成功狀態(tài)為發(fā)生故障的HBA數(shù)據(jù)路徑完成未決(即未完成)和新接收的分組。在框508中,由于HBA數(shù)據(jù)路徑未發(fā)生故障,小型端口驅(qū)動(dòng)器經(jīng)由HBA數(shù)據(jù)路徑將分組發(fā)送到目標(biāo)。
例如,如果在小型端口316處接收到SRB以便路由至HBA1 318,且如果HBA1318發(fā)生故障,則小型端口驅(qū)動(dòng)器316為HBA1 318完成所有未決的SRB,作為通知過濾驅(qū)動(dòng)器312將SRB重定向至另一HBA的協(xié)議的一部分。例如,過濾驅(qū)動(dòng)器312可將SRB重定向至HBA2 338或HBA3 358。
圖5B示出了根據(jù)某些實(shí)施例用于故障轉(zhuǎn)移處理的過濾驅(qū)動(dòng)器中實(shí)現(xiàn)的操作??刂圃诳?10處以過濾驅(qū)動(dòng)器接收HBA數(shù)據(jù)路徑故障通知開始。在框512中,如果由小型端口驅(qū)動(dòng)器指定新的HBA數(shù)據(jù)路徑標(biāo)識(shí)符,則處理繼續(xù)至框514,否則處理繼續(xù)至框518。在框514中,過濾驅(qū)動(dòng)器將從發(fā)生故障的路徑完成的每一分組的狀態(tài)從成功狀態(tài)改成忙碌狀態(tài)。對(duì)狀態(tài)的這種改變使得類驅(qū)動(dòng)器重發(fā)分組。當(dāng)分組被重發(fā)時(shí),過濾驅(qū)動(dòng)器將它們作為新請(qǐng)求來對(duì)待,如果可能,則將它們重定向到新路徑。
在框516中,過濾驅(qū)動(dòng)器將類驅(qū)動(dòng)器遺漏的分組發(fā)送到所指定的HBA數(shù)據(jù)路徑。在框518中,由于沒有指定新的路徑標(biāo)識(shí)符,則過濾驅(qū)動(dòng)器選擇新的路徑。在某些實(shí)施例中,如果HBA隊(duì)中僅存在一條路徑,則過濾驅(qū)動(dòng)器繼續(xù)將新分組發(fā)送到發(fā)生故障的HBA數(shù)據(jù)路徑(例如,以PATH_THROUGH模式工作)。
圖5C示出了根據(jù)某些實(shí)施例當(dāng)HBA還原時(shí)小型端口驅(qū)動(dòng)器中實(shí)現(xiàn)的操作??刂圃诳?20處以HBA數(shù)據(jù)路徑還原(例如,使HBA在線或者HBA或數(shù)據(jù)路徑認(rèn)為之前發(fā)生故障的該HBA還原)開始。當(dāng)HBA數(shù)據(jù)路徑還原時(shí),小型端口驅(qū)動(dòng)器通過調(diào)用通知回調(diào)方法通知過濾驅(qū)動(dòng)器(框522)。在某些實(shí)施例中,小型端口驅(qū)動(dòng)器通過以狀態(tài)參數(shù)和指針參數(shù)調(diào)用通知回調(diào)方法向過濾驅(qū)動(dòng)器通知HBA數(shù)據(jù)路徑的還原,其中指針指向過濾驅(qū)動(dòng)器的設(shè)備擴(kuò)展,對(duì)應(yīng)于當(dāng)前路徑。小型端口驅(qū)動(dòng)器也可向過濾驅(qū)動(dòng)器傳送過濾驅(qū)動(dòng)器應(yīng)將新分組重定向至的新路徑標(biāo)識(shí)符。在框524中,如果指定了新的HBA數(shù)據(jù)路徑,則處理繼續(xù)至框526,否則處理繼續(xù)至框528。
當(dāng)還原通知之后,如果指定了新的HBA數(shù)據(jù)路徑,則過濾驅(qū)動(dòng)器將新分組發(fā)送到新HBA數(shù)據(jù)路徑(框526)。如果沒有指定新HBA數(shù)據(jù)路徑,則過濾驅(qū)動(dòng)器繼續(xù)在當(dāng)前活動(dòng)的路徑上發(fā)送分組。
除故障轉(zhuǎn)移處理之外,各實(shí)施例提供了用于在跨多個(gè)HBA的多條HBA數(shù)據(jù)路徑上平衡I/O工作負(fù)載的過濾驅(qū)動(dòng)器。各實(shí)施例提供了靜態(tài)負(fù)載平衡和動(dòng)態(tài)負(fù)載平衡。
圖6A和6B示出了根據(jù)某些實(shí)施例用于負(fù)載平衡的操作。對(duì)負(fù)載平衡,HBA隊(duì)中的每一HBA數(shù)據(jù)路徑具有一相關(guān)聯(lián)的值,被稱為負(fù)載平衡份額,它代表總I/O工作負(fù)載中給定HBA數(shù)據(jù)路徑能夠處理的百分比。
圖6A示出了根據(jù)某些實(shí)施例用于靜態(tài)負(fù)載平衡的操作??刂圃诳?00處以在過濾驅(qū)動(dòng)器處接收要發(fā)送的數(shù)據(jù)分組開始。在框612中,過濾驅(qū)動(dòng)器確定與HBA隊(duì)中的每一HBA數(shù)據(jù)路徑相關(guān)聯(lián)的負(fù)載平衡份額。對(duì)靜態(tài)負(fù)載平衡,負(fù)載平衡份額可手動(dòng)指定,并將其存儲(chǔ)在例如Windows注冊(cè)表中。小型端口驅(qū)動(dòng)器檢索負(fù)載平衡份額值,并經(jīng)由通知回調(diào)方法將這些值轉(zhuǎn)發(fā)給過濾驅(qū)動(dòng)器。當(dāng)接收到所檢索的負(fù)載平衡份額值時(shí),過濾驅(qū)動(dòng)器以新值更新負(fù)載平衡份額。
在框604中,過濾驅(qū)動(dòng)器為每一HBA數(shù)據(jù)路徑確定所發(fā)送的分組的移動(dòng)平均數(shù)據(jù)長(zhǎng)度(MDL)(例如,分組的SCSI傳送長(zhǎng)度)。在某些實(shí)施例中,負(fù)載平衡可以是基于所發(fā)送的分組的實(shí)際數(shù)據(jù)長(zhǎng)度而不是分組數(shù)。在框606中,過濾驅(qū)動(dòng)器為每一HBA數(shù)據(jù)路徑確定數(shù)據(jù)限額。在某些實(shí)施例中,HBA數(shù)據(jù)路徑的數(shù)據(jù)限額是HBA數(shù)據(jù)路徑的MDL乘以該HBA數(shù)據(jù)路徑的負(fù)載平衡份額與HBA隊(duì)中負(fù)載平衡份額的最小值的比率(即,數(shù)據(jù)限額=MDL*(負(fù)載平衡份額/隊(duì)中的最小負(fù)載平衡份額))。
在某些實(shí)施例中,為每一分組或分組的組重新計(jì)算MDL,而周期性地重新計(jì)算數(shù)據(jù)限額(例如,當(dāng)傳送了某一數(shù)量的分組之后)。周期性間隔可由HBA隊(duì)中HBA數(shù)據(jù)路徑的條數(shù)與可調(diào)負(fù)載平衡頻率更新因子的乘積來確定。負(fù)載平衡頻率更新因子允許調(diào)節(jié)負(fù)載平衡并提高性能。負(fù)載平衡頻率更新因子例如可由系統(tǒng)管理員設(shè)定。數(shù)據(jù)限額的更新頻率越高,所指定的與實(shí)際的負(fù)載平衡份額之間的差異越小。同樣,較頻繁的更新會(huì)占據(jù)較多的處理器時(shí)間。
在框608中,過濾驅(qū)動(dòng)器為目標(biāo)邏輯單元確定最大命令數(shù)。在框610中,過濾驅(qū)動(dòng)器使用循環(huán)技術(shù)選擇在其上發(fā)送分組的HBA數(shù)據(jù)路徑,其中沿一條HBA數(shù)據(jù)路徑發(fā)送分組,直到達(dá)到了數(shù)據(jù)限額或達(dá)到了每個(gè)目標(biāo)邏輯單元的最大命令數(shù)。
即,對(duì)靜態(tài)負(fù)載平衡,可使用循環(huán)技術(shù)。在某些實(shí)施例中,為循環(huán)操作在雙鏈表中收集當(dāng)前HBA隊(duì)的有效HBA數(shù)據(jù)路徑。然后,使用該列表在負(fù)載平衡操作期間切換HBA數(shù)據(jù)路徑。否則,分組流切換至下一HBA隊(duì)成員。即,在某些實(shí)施例中,繼續(xù)對(duì)給定路徑的分組發(fā)送,直到所傳送的數(shù)據(jù)量達(dá)到為該HBA數(shù)據(jù)路徑預(yù)先計(jì)算的數(shù)據(jù)限額,或達(dá)到每個(gè)目標(biāo)LUN的最大SCSI命令數(shù)。
對(duì)靜態(tài)負(fù)載平衡,HBA數(shù)據(jù)路徑之中分組的實(shí)際分配可不同于指定分配(即,例如由系統(tǒng)管理員指定的負(fù)載平衡份額)。實(shí)際與指定分配之間的差異越小,則靜態(tài)負(fù)載平衡的質(zhì)量越高。所指定的負(fù)載平衡份額值影響靜態(tài)負(fù)載平衡的性能。
圖6B示出了根據(jù)某些實(shí)施例的用于動(dòng)態(tài)負(fù)載平衡的操作。動(dòng)態(tài)負(fù)載平衡只要在其它路徑上存在可用帶寬就可通過在路徑之間動(dòng)態(tài)調(diào)節(jié)I/O工作負(fù)載來避免單個(gè)HBA數(shù)據(jù)路徑上的擁塞。
控制在框620處以過濾驅(qū)動(dòng)器接收數(shù)據(jù)分組開始。在框622中,過濾驅(qū)動(dòng)器為HBA隊(duì)中的每一HBA數(shù)據(jù)路徑確定數(shù)據(jù)傳送速度。在某些實(shí)施例中,為每一HBA數(shù)據(jù)路徑計(jì)算作為所傳送的總數(shù)據(jù)與傳送數(shù)據(jù)所花費(fèi)的總時(shí)間的比率的數(shù)據(jù)傳送速度。更新例程確定傳送速度以何種頻率更新。對(duì)動(dòng)態(tài)負(fù)載平衡的可調(diào)參數(shù)是傳送速度更新頻率因子,它定義每隔多久調(diào)用更新例程。傳送速度更新頻率因子可以基于傳遞子系統(tǒng)的具體行為來調(diào)節(jié)。
在框624中,過濾驅(qū)動(dòng)器為每一HBA數(shù)據(jù)路徑更新負(fù)載平衡份額。對(duì)HBA隊(duì)中的每一路徑的負(fù)載平衡份額可與它們的數(shù)據(jù)傳送速度成比例地更新(即,所選HBA數(shù)據(jù)路徑的數(shù)據(jù)傳送速度除以HBA隊(duì)的數(shù)據(jù)傳送速度)。在框626中,過濾驅(qū)動(dòng)器基于負(fù)載平衡份額選擇將在其上發(fā)送分組的HBA數(shù)據(jù)路徑。
當(dāng)以故障轉(zhuǎn)移和負(fù)載平衡模式工作時(shí),HBA故障將禁用一個(gè)或多個(gè)HBA隊(duì)成員。根據(jù)各實(shí)施例,其余的HBA隊(duì)成員繼續(xù)工作,從而維持所指定的負(fù)載平衡份額之間的相同比率。
因此,各實(shí)施例提供了高度可用性與靜態(tài)和動(dòng)態(tài)負(fù)載平衡的組合。實(shí)現(xiàn)該解決方案的軟件模塊相對(duì)較小,且對(duì)系統(tǒng)施加最小的開銷。各實(shí)施例通過將過濾驅(qū)動(dòng)器插入設(shè)備棧/從設(shè)備棧移除來提供快速且容易地開啟和關(guān)閉由該解決方案的各實(shí)施例提供的功能。各實(shí)施例可跨各種平臺(tái)(例如,Windows平臺(tái),32位或64位)兼容。同樣,各實(shí)施例可適用于任何基于SCSI和/或基于iSCSI的SAN和/或網(wǎng)絡(luò)附加存儲(chǔ)(NAS)系統(tǒng)。而且,對(duì)故障轉(zhuǎn)移和負(fù)載平衡的實(shí)施例支持多個(gè)(兩個(gè)或更多)HBA。
其它實(shí)施例細(xì)節(jié)對(duì)故障轉(zhuǎn)移和負(fù)載平衡所描述的技術(shù)可被實(shí)現(xiàn)為使用標(biāo)準(zhǔn)程序設(shè)計(jì)和/或工程技術(shù)來生產(chǎn)軟件、固件、硬件或其任何組合的方法、裝置或制品。如此處所使用的,術(shù)語“制品”指的是以硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或諸如磁存儲(chǔ)介質(zhì)(例如,硬盤驅(qū)動(dòng)器、軟盤、磁帶等)、光存儲(chǔ)(CD-ROM、光盤等)、易失性和非易失性存儲(chǔ)器設(shè)備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)等的計(jì)算機(jī)可讀介質(zhì)實(shí)現(xiàn)的代碼或邏輯。計(jì)算機(jī)可讀介質(zhì)中的代碼由處理器訪問和執(zhí)行。其中實(shí)現(xiàn)較佳實(shí)施例的代碼還可經(jīng)由傳輸介質(zhì)或通過網(wǎng)絡(luò)從文件服務(wù)器訪問。在這樣的情況中,其中實(shí)現(xiàn)代碼的制品可包括傳輸介質(zhì),諸如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、信號(hào)傳播空間、無線電波、紅外信號(hào)等。因此“制品”可包括其中具體化代碼的介質(zhì)。此外,制品可包括其中具體化、處理和執(zhí)行代碼的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域的技術(shù)人員認(rèn)識(shí)到,可對(duì)該配置進(jìn)行眾多修改,而不背離實(shí)施例的范圍,且制品可包括本領(lǐng)域中已知的任何信息承載介質(zhì)。
在所述實(shí)施例中,某些邏輯是在驅(qū)動(dòng)器中實(shí)現(xiàn)的。在替換實(shí)施例中,在驅(qū)動(dòng)器和/或網(wǎng)絡(luò)適配器中實(shí)現(xiàn)的邏輯可全部或部分在網(wǎng)絡(luò)硬件中實(shí)現(xiàn)。
在某些實(shí)施例中,網(wǎng)絡(luò)適配器可被實(shí)現(xiàn)為PCI卡。在替換實(shí)施例中,網(wǎng)絡(luò)適配器可包括安裝在計(jì)算機(jī)102主板上的集成電路組件。
在某些實(shí)施例中,網(wǎng)絡(luò)適配器可被配置成通過連接至網(wǎng)絡(luò)適配器上的端口的電纜發(fā)送數(shù)據(jù)。在替換實(shí)施例中,網(wǎng)絡(luò)適配器實(shí)施例可被配置成經(jīng)由諸如無線LAN等無線網(wǎng)絡(luò)或連接發(fā)送數(shù)據(jù)。
圖4A、4B、5A、5B、5C、6A和6C所示的邏輯示出以某一順序發(fā)生的某些事件。在替換實(shí)施例中,某些操作能以不同的順序執(zhí)行、修改或移除。而且,可對(duì)上述邏輯添加操作,而仍舊遵循所述實(shí)施例。此外,此處所述的操作可順序發(fā)生,或某些操作可并行處理。再者,操作可由單個(gè)處理單元或由分布式處理單元執(zhí)行。
為說明和描述的目的呈現(xiàn)了對(duì)各種實(shí)施例的前述描述。它不旨在是詳盡的,或?qū)?shí)施例限于所公開的精確形式??紤]到以上教導(dǎo),各種修改和變化皆有可能。各實(shí)施例的范圍旨在不是由該詳細(xì)描述,而是由所附的權(quán)利要求書來限制。以上的說明書、示例和數(shù)據(jù)提供了對(duì)各實(shí)施例的組成部分的制造和使用的完整描述。由于可進(jìn)行眾多實(shí)施例,而不背離各實(shí)施例的精神和范圍,因此這些實(shí)施例歸于所附權(quán)利要求書。
權(quán)利要求
1.一種用于在第一網(wǎng)絡(luò)適配器和通過第一網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生時(shí)進(jìn)行故障轉(zhuǎn)移的計(jì)算機(jī)系統(tǒng)中的方法,其中所述計(jì)算機(jī)系統(tǒng)包括過濾驅(qū)動(dòng)器,且其中所述第一網(wǎng)絡(luò)適配器連接至第二網(wǎng)絡(luò)適配器,所述方法包括使用所述過濾驅(qū)動(dòng)器接收所述第一網(wǎng)絡(luò)適配器與通過所述第一網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障的路徑故障通知;以及使用所述過濾驅(qū)動(dòng)器將定向到所述第一網(wǎng)絡(luò)適配器的分組重新路由到所述第二網(wǎng)絡(luò)適配器。
2.如權(quán)利要求1所述的方法,其特征在于,還包括使用所述過濾驅(qū)動(dòng)器將在接收到路徑故障通知之前定向到所述第一網(wǎng)絡(luò)適配器的每一分組的成功狀態(tài)改成忙碌狀態(tài)。
3.如權(quán)利要求1所述的方法,其特征在于,還包括使用所述過濾驅(qū)動(dòng)器確定包含所述第二網(wǎng)絡(luò)適配器的新的數(shù)據(jù)路徑。
4.如權(quán)利要求1所述的方法,其特征在于,還包括使用所述過濾驅(qū)動(dòng)器接收所述第一網(wǎng)絡(luò)適配器還原的通知;以及使用所述過濾驅(qū)動(dòng)器基于所述通知是否指定新的數(shù)據(jù)路徑來為新數(shù)據(jù)分組確定數(shù)據(jù)路徑。
5.如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于為邏輯單元建立第一存儲(chǔ)設(shè)備棧,使用所述過濾驅(qū)動(dòng)器將所述第一存儲(chǔ)設(shè)備棧指定為主要存儲(chǔ)設(shè)備棧;以及響應(yīng)于為所述邏輯單元建立后繼存儲(chǔ)設(shè)備棧,使用所述過濾驅(qū)動(dòng)器將所述后繼存儲(chǔ)設(shè)備棧指定為輔助存儲(chǔ)設(shè)備棧。
6.如權(quán)利要求5所述的方法,其特征在于,還包括使用所述過濾驅(qū)動(dòng)器防止文件系統(tǒng)安裝在所述輔助存儲(chǔ)設(shè)備棧上。
7.一種用于在網(wǎng)絡(luò)適配器和通過所述網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障時(shí)進(jìn)行故障轉(zhuǎn)移的方法,其中所述網(wǎng)絡(luò)適配器被連接至與過濾驅(qū)動(dòng)器相連的小型端口驅(qū)動(dòng)器,所述方法包括使用所述小型端口驅(qū)動(dòng)器確定所述網(wǎng)絡(luò)適配器發(fā)生故障;以及使用所述小型端口驅(qū)動(dòng)器向所述過濾驅(qū)動(dòng)器通知所述網(wǎng)絡(luò)適配器發(fā)生故障。
8.如權(quán)利要求7所述的方法,其特征在于,還包括使用所述小型端口驅(qū)動(dòng)器指定將由所述過濾驅(qū)動(dòng)器用來重新路由分組的新數(shù)據(jù)路徑。
9.如權(quán)利要求7所述的方法,其特征在于,還包括使用所述小型端口驅(qū)動(dòng)器以成功的狀態(tài)完成對(duì)定向到所述第一網(wǎng)絡(luò)適配器的未決分組的處理。
10.如權(quán)利要求7所述的方法,其特征在于,還包括使用所述小型端口驅(qū)動(dòng)器確定所述網(wǎng)絡(luò)適配器被還原;以及使用小型端口驅(qū)動(dòng)器向過濾驅(qū)動(dòng)器通知所述網(wǎng)絡(luò)適配器被還原。
11.一種用于在過濾驅(qū)動(dòng)器中實(shí)現(xiàn)的靜態(tài)負(fù)載平衡的方法,其中所述過濾驅(qū)動(dòng)器執(zhí)行為多條數(shù)據(jù)路徑中的每一條確定數(shù)據(jù)限額;為目標(biāo)邏輯單元標(biāo)識(shí)最大命令數(shù);以及基于所述數(shù)據(jù)限額和最大命令數(shù)選擇在其上發(fā)送分組的數(shù)據(jù)路徑。
12.如權(quán)利要求11所述的方法,其特征在于,所述過濾驅(qū)動(dòng)器還執(zhí)行確定與隊(duì)中每一數(shù)據(jù)路徑相關(guān)聯(lián)的負(fù)載平衡份額;以及為每一數(shù)據(jù)路徑確定所發(fā)送分組的平均數(shù)據(jù)長(zhǎng)度。
13.如權(quán)利要求11所述的方法,其特征在于,所述數(shù)據(jù)路徑是使用循環(huán)技術(shù)選擇的,且其中分組沿所選數(shù)據(jù)路徑發(fā)送,直到滿足所述數(shù)據(jù)路徑的數(shù)據(jù)限額和直到達(dá)到最大命令數(shù)這兩者的至少其中之一。
14.一種用于在過濾驅(qū)動(dòng)器中實(shí)現(xiàn)的動(dòng)態(tài)負(fù)載平衡的方法,其中所述過濾驅(qū)動(dòng)器執(zhí)行為多條數(shù)據(jù)路徑中的每一條確定數(shù)據(jù)傳送速度;基于所述多條數(shù)據(jù)路徑中的每一條的數(shù)據(jù)傳送速度,為所述多條數(shù)據(jù)路徑中額每一條更新負(fù)載平衡份額;以及基于所述多條數(shù)據(jù)路徑的每一條的負(fù)載平衡份額選擇在其上發(fā)送分組的數(shù)據(jù)路徑。
15.如權(quán)利要求14所述的方法,其特征在于,所述數(shù)據(jù)傳送速度是對(duì)所述多條數(shù)據(jù)路徑中的每一條作為所傳送的總數(shù)據(jù)與傳送數(shù)據(jù)所花費(fèi)的總時(shí)間的比率來計(jì)算的。
16.如權(quán)利要求14所述的方法,其特征在于,確定所述數(shù)據(jù)傳送速度的頻率是可調(diào)的。
17.一種耦合至網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括主計(jì)算機(jī);管理對(duì)所述數(shù)據(jù)存儲(chǔ)的輸入/輸出(I/O)訪問的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器被耦合至所述主計(jì)算機(jī);第一網(wǎng)絡(luò)適配器;第二網(wǎng)絡(luò)適配器;以及所述主計(jì)算機(jī)處的過濾驅(qū)動(dòng)器,其中所述過濾驅(qū)動(dòng)器能夠接收所述第一網(wǎng)絡(luò)適配器和通過所述第一網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障的路徑故障通知,并將定向到所述第一網(wǎng)絡(luò)適配器的分組重新路由至所述第二網(wǎng)絡(luò)適配器。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還能夠?qū)⒃诮邮盏剿雎窂焦收贤ㄖ岸ㄏ虻剿龅谝痪W(wǎng)絡(luò)適配器的每一分組的成功狀態(tài)改成忙碌狀態(tài)。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還能夠確定包含所述第二網(wǎng)絡(luò)適配器的新數(shù)據(jù)路徑。
20.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還能夠接收所述第一網(wǎng)絡(luò)適配器被還原的通知;以及基于所述通知是否指定新數(shù)據(jù)路徑來為新數(shù)據(jù)分組確定數(shù)據(jù)路徑。
21.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還能夠響應(yīng)于為邏輯單元建立第一存儲(chǔ)設(shè)備棧,將所述第一存儲(chǔ)設(shè)備棧指定為主要存儲(chǔ)設(shè)備棧;以及響應(yīng)于為所述邏輯單元建立后繼存儲(chǔ)設(shè)備棧,將所述后繼存儲(chǔ)設(shè)備棧指定為輔助存儲(chǔ)設(shè)備棧。
22.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還能夠防止文件系統(tǒng)安裝在所述輔助存儲(chǔ)設(shè)備棧上。
23.一種耦合至網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括主計(jì)算機(jī);管理對(duì)所述數(shù)據(jù)存儲(chǔ)的輸入/輸出(I/O)訪問的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器耦合至所述主計(jì)算機(jī);所述主計(jì)算機(jī)處的過濾驅(qū)動(dòng)器;所述主計(jì)算機(jī)處的至少兩個(gè)網(wǎng)絡(luò)適配器;以及所述主計(jì)算機(jī)處的小型端口驅(qū)動(dòng)器,其中所述小型端口驅(qū)動(dòng)器能夠確定所述網(wǎng)絡(luò)適配器的至少其中之一發(fā)生故障并向所述過濾驅(qū)動(dòng)器通知所述網(wǎng)絡(luò)適配器發(fā)生故障。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述小型端口驅(qū)動(dòng)器還能夠指定將由所述過濾驅(qū)動(dòng)器用來重新路由分組的新數(shù)據(jù)路徑。
25.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述小型端口驅(qū)動(dòng)器還能夠以成功狀態(tài)完成對(duì)定向到所述發(fā)生故障的網(wǎng)絡(luò)適配器的未決分組的處理。
26.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述小型端口驅(qū)動(dòng)器還能夠確定所述發(fā)生故障的網(wǎng)絡(luò)適配器被還原;以及向所述過濾驅(qū)動(dòng)器通知所述發(fā)生故障的網(wǎng)絡(luò)適配器被還原。
27.一種耦合至網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括主計(jì)算機(jī);管理對(duì)所述數(shù)據(jù)存儲(chǔ)的輸入/輸出(I/O)訪問的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器耦合至所述主計(jì)算機(jī);以及能夠?yàn)槎鄺l數(shù)據(jù)路徑中的每一條確定數(shù)據(jù)限額、為目標(biāo)邏輯單元標(biāo)識(shí)最大命令數(shù)、以及基于所述數(shù)據(jù)限額和所述最大命令數(shù)選擇在其上發(fā)送分組的數(shù)據(jù)路徑的過濾驅(qū)動(dòng)器。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述過濾驅(qū)動(dòng)器還執(zhí)行確定與隊(duì)中的每一數(shù)據(jù)路徑相關(guān)聯(lián)的負(fù)載平衡份額;以及為每一數(shù)據(jù)路徑確定所發(fā)送的分組的平均數(shù)據(jù)長(zhǎng)度。
29.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述數(shù)據(jù)路徑是使用循環(huán)技術(shù)來選擇的,且其中沿所選擇的數(shù)據(jù)路徑發(fā)送分組,直到滿足所述數(shù)據(jù)路徑的數(shù)據(jù)限額和直到達(dá)到最大命令數(shù)這兩者中的至少其中之一。
30.一種耦合至網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)的系統(tǒng),包括主計(jì)算機(jī);管理對(duì)所述數(shù)據(jù)存儲(chǔ)的輸入/輸出(I/O)訪問的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器耦合至所述主計(jì)算機(jī);以及能夠?yàn)槎鄺l數(shù)據(jù)路徑的每一條確定數(shù)據(jù)傳送速度、基于所述多條數(shù)據(jù)路徑的每一條的數(shù)據(jù)傳送速度為所述多條數(shù)據(jù)路徑的每一條更新負(fù)載平衡份額、以及基于所述多條數(shù)據(jù)路徑的每一條的負(fù)載平衡份額確定在其上發(fā)送分組的數(shù)據(jù)路徑的過濾驅(qū)動(dòng)器。
31.如權(quán)利要求30所述的系統(tǒng),其特征在于,所述數(shù)據(jù)傳送速度是對(duì)所述多條數(shù)據(jù)路徑中的每一條作為所傳送的總數(shù)據(jù)與傳送數(shù)據(jù)所花費(fèi)的總時(shí)間的比率來計(jì)算的。
32.如權(quán)利要求30所述的系統(tǒng),其特征在于,確定所述數(shù)據(jù)傳送速度的頻率是可調(diào)的。
33.一種包含其中存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,所述指令在由計(jì)算設(shè)備執(zhí)行時(shí)導(dǎo)致接收第一網(wǎng)絡(luò)適配器與通過所述第一網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障的路徑故障通知;以及將定向到所述第一網(wǎng)絡(luò)適配器的分組重新路由至第二網(wǎng)絡(luò)適配器。
34.如權(quán)利要求33所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致將在接收到所述路徑故障通知之前定向到所述第一網(wǎng)絡(luò)適配器的每一分組的成功狀態(tài)改成忙碌狀態(tài)。
35.如權(quán)利要求33所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致確定包含所述第二網(wǎng)絡(luò)適配器的新數(shù)據(jù)路徑。
36.如權(quán)利要求33所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致接收所述第一網(wǎng)絡(luò)適配器被還原的通知;以及基于所述通知是否指定新數(shù)據(jù)路徑來為新數(shù)據(jù)分組確定數(shù)據(jù)路徑。
37.如權(quán)利要求33所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致響應(yīng)于為邏輯單元建立第一存儲(chǔ)設(shè)備棧,將所述第一存儲(chǔ)設(shè)備棧指定為主要存儲(chǔ)設(shè)備棧;以及響應(yīng)于為所述邏輯單元建立后繼存儲(chǔ)設(shè)備棧,將所述后繼存儲(chǔ)設(shè)備棧指定為輔助存儲(chǔ)設(shè)備棧。
38.如權(quán)利要求37所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致防止文件系統(tǒng)安裝在所述輔助存儲(chǔ)設(shè)備棧上。
39.一種包含其中存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,所述指令在由計(jì)算設(shè)備執(zhí)行時(shí)導(dǎo)致確定所述網(wǎng)絡(luò)適配器發(fā)生故障;以及向所述過濾驅(qū)動(dòng)器通知所述網(wǎng)絡(luò)適配器發(fā)生故障。
40.如權(quán)利要求39所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致指定將由所述過濾驅(qū)動(dòng)器用來重新路由分組的新數(shù)據(jù)路徑。
41.如權(quán)利要求39所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致以成功的狀態(tài)完成對(duì)定向到所述第一網(wǎng)絡(luò)適配器的未決分組的處理。
42.如權(quán)利要求39所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致確定所述網(wǎng)絡(luò)適配器被還原;以及向過濾驅(qū)動(dòng)器通知所述網(wǎng)絡(luò)適配器被還原。
43.一種包含其中存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,所述指令在由計(jì)算設(shè)備執(zhí)行時(shí)導(dǎo)致為多條數(shù)據(jù)路徑中的每一條確定數(shù)據(jù)限額;為目標(biāo)邏輯單元標(biāo)識(shí)最大命令數(shù);以及基于所述數(shù)據(jù)限額和最大命令條數(shù)選擇在其上發(fā)送分組的數(shù)據(jù)路徑。
44.如權(quán)利要求43所述的制品,其特征在于,所述指令在被執(zhí)行時(shí)還導(dǎo)致確定與隊(duì)中每一數(shù)據(jù)路徑相關(guān)聯(lián)的負(fù)載平衡份額;以及為每一數(shù)據(jù)路徑確定所發(fā)送分組的平均數(shù)據(jù)長(zhǎng)度。
45.如權(quán)利要求43所述的制品,其特征在于,所述數(shù)據(jù)路徑是使用循環(huán)技術(shù)來選擇的,且其中分組沿所選數(shù)據(jù)路徑發(fā)送,直到滿足所述數(shù)據(jù)路徑的數(shù)據(jù)限額和直到達(dá)到最大命令數(shù)這兩者中的至少其中之一。
46.一種包含其中存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,所述指令在由計(jì)算設(shè)備執(zhí)行時(shí)導(dǎo)致為多條數(shù)據(jù)路徑中的每一條確定數(shù)據(jù)傳送速度;基于所述多條數(shù)據(jù)路徑中的每一條的數(shù)據(jù)傳送速度,為所述多條數(shù)據(jù)路徑中額每一條更新負(fù)載平衡份額;以及基于所述多條數(shù)據(jù)路徑的每一條的負(fù)載平衡份額選擇在其上發(fā)送分組的數(shù)據(jù)路徑。
47.如權(quán)利要求46所述的制品,其特征在于,所述數(shù)據(jù)傳送速度是對(duì)所述多條數(shù)據(jù)路徑中的每一條作為所傳送的總數(shù)據(jù)與傳送數(shù)據(jù)所花費(fèi)的總時(shí)間的比率來計(jì)算的。
48.如權(quán)利要求46所述的系統(tǒng),其特征在于,確定所述數(shù)據(jù)傳送速度的頻率是可調(diào)的。
全文摘要
本發(fā)明涉及用于故障轉(zhuǎn)移和用于平衡靜態(tài)和動(dòng)態(tài)負(fù)載的技術(shù)。過濾驅(qū)動(dòng)器接收第一網(wǎng)絡(luò)適配器和通過第一網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障的路徑故障通知,并將定向到第一網(wǎng)絡(luò)適配器的分組重新路由到第二網(wǎng)絡(luò)適配器。小型端口驅(qū)動(dòng)器確定網(wǎng)絡(luò)適配器和通過網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障,并向過濾驅(qū)動(dòng)器通知網(wǎng)絡(luò)適配器和通過網(wǎng)絡(luò)適配器的數(shù)據(jù)路徑的至少其中之一發(fā)生故障。過濾驅(qū)動(dòng)器為多條數(shù)據(jù)路徑的每一條確定數(shù)據(jù)限額,為給定的目標(biāo)邏輯單元確定最大命令數(shù),并基于數(shù)據(jù)限額和最大命令數(shù)選擇在其上發(fā)送分組的數(shù)據(jù)路徑。過濾驅(qū)動(dòng)器為多條數(shù)據(jù)路徑的每一條確定數(shù)據(jù)傳送速度,基于多條數(shù)據(jù)路徑的每一條的數(shù)據(jù)傳送速度為多條數(shù)據(jù)路徑的每一條更新負(fù)載平衡份額,并基于多條數(shù)據(jù)路徑的每一條的負(fù)載平衡份額選擇在其上發(fā)送分組的數(shù)據(jù)路徑。
文檔編號(hào)H04L12/66GK1942862SQ200480041815
公開日2007年4月4日 申請(qǐng)日期2004年3月19日 優(yōu)先權(quán)日2004年3月19日
發(fā)明者A·別利亞科夫, M·賽尼科夫司基, A·德羅茲多夫 申請(qǐng)人:“英特爾A/O”股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
五河县| 吴旗县| 西林县| 海晏县| 鄄城县| 塔河县| 出国| 勐海县| 贡嘎县| 义乌市| 平舆县| 普兰店市| 临洮县| 吉木萨尔县| 正阳县| 黄浦区| 浑源县| 新和县| 无棣县| 崇文区| 项城市| 濮阳县| 阿勒泰市| 正定县| 沧州市| 镇康县| 睢宁县| 吐鲁番市| 潢川县| 巴塘县| 拜城县| 栖霞市| 且末县| 乌鲁木齐市| 都昌县| 黄梅县| 陆丰市| 曲靖市| 金沙县| 堆龙德庆县| 莲花县|