亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

負載平衡的聯(lián)網(wǎng)環(huán)境下的智能故障轉(zhuǎn)移的制作方法

文檔序號:7692453閱讀:196來源:國知局
專利名稱:負載平衡的聯(lián)網(wǎng)環(huán)境下的智能故障轉(zhuǎn)移的制作方法
技術領域
本發(fā)明的實施例大體上涉及網(wǎng)絡通信,且更具體地說,涉及一種用于在負載平衡的 聯(lián)網(wǎng)環(huán)境下對網(wǎng)絡連接進行智能故障轉(zhuǎn)移的系統(tǒng)和方法。
背景技術
性能和可靠性是對現(xiàn)代計算機網(wǎng)絡的關鍵要求。當計算裝置上的網(wǎng)絡接口 (NIC) 不再可靠時,所述NIC的聯(lián)網(wǎng)性能可能會出現(xiàn)實質(zhì)下降,可能下降到零。在這種情形下, 當代的解決方案是將網(wǎng)絡連接從不可靠的NIC重新引導到同一計算裝置上的其它可靠 NIC,這是一種被稱為"故障轉(zhuǎn)移"的技術。盡管故障轉(zhuǎn)移可能會減輕存在不可靠NIC 的直接問題,但其余可靠NIC上的來自經(jīng)過故障轉(zhuǎn)移的連接的額外網(wǎng)絡業(yè)務可能會導致 其余可靠NIC中的一者或一者以上變得過載,從而降低那些接口的性能。此外,其余可 靠NIC上的額外網(wǎng)絡業(yè)務可能會實質(zhì)上增加計算裝置所執(zhí)行的網(wǎng)絡處理,從而降低計算 裝置的性能。
正如前文所說明,此項技術中需要一種對到達一個或一個以上可靠NIC的網(wǎng)絡連接 進行故障轉(zhuǎn)移的技術,其降低了 NIC過載或其它可能削弱總體系統(tǒng)性能的現(xiàn)象的可能 性。

發(fā)明內(nèi)容
本發(fā)明的一個實施例陳述一種在不依賴于交換機的網(wǎng)絡環(huán)境下將網(wǎng)絡連接從主機 軟件模塊卸載到故障轉(zhuǎn)移網(wǎng)絡接口卡(NIC)中所包含的第一硬件卸載引擎的方法。所
述方法包含以下步驟請求得到故障轉(zhuǎn)移NIC的身份;從散列算法的輸出確定故障轉(zhuǎn)移 NIC的身份;設置第一硬件卸載引擎中所包含的第一受托連接表中的條目,其中所述條 目包含網(wǎng)絡連接的連接狀態(tài);以及設置主機軟件模塊中所包含的連接表中的對應于所述
網(wǎng)絡連接的硬件識別符,其中所述經(jīng)設置的硬件識別符指示網(wǎng)絡連接正通過第一硬件卸 載引擎而運行。
所揭示的方法的一個優(yōu)點在于,當對網(wǎng)絡連接進行故障轉(zhuǎn)移時可能更容易避免例如 網(wǎng)絡接口過載等問題,從而相對于現(xiàn)有技術改進了總體系統(tǒng)性能。


為了能更詳細地了解本發(fā)明的上述特征,可通過參考實施例來獲得上文簡要概述的 本發(fā)明的更具體描述內(nèi)容,附圖中說明了所述實施例中的一些實施例。然而應注意的是, 附圖僅說明本發(fā)明的典型實施例,且因此不應被認為是限制本發(fā)明的范圍,因為本發(fā)明 可認可其它同等有效的實施例。
圖1A和圖1B說明其中可實施本發(fā)明的一個或一個以上方面的計算裝置;
圖2說明用于將網(wǎng)絡連接從出現(xiàn)故障的NIC去卸載到軟件的方法步驟的流程圖3A和圖3B說明用于在不依賴于交換機的網(wǎng)絡環(huán)境下將網(wǎng)絡連接從軟件卸載到故 障轉(zhuǎn)移NIC的方法步驟的流程圖;以及
圖4A和圖4B說明在通過外部構件將網(wǎng)絡連接移動到新的NIC時將網(wǎng)絡連接卸載 到新的NIC的方法步驟的流程圖。
具體實施例方式
可通過使用跟蹤網(wǎng)絡統(tǒng)計資料的散列引擎來實現(xiàn)從出現(xiàn)故障的NIC到一個或一個 以上操作NIC的網(wǎng)絡連接的智能故障轉(zhuǎn)移,所述統(tǒng)計資料包含不依賴于交換機(即,其 中將計算裝置100的NIC耦接到外部網(wǎng)絡的交換機不在802.3ad模式下操作的網(wǎng)絡環(huán)境) 的網(wǎng)絡環(huán)境下的連接數(shù)目和通過每個NIC傳輸和接收的業(yè)務的量。 一旦已檢測到出現(xiàn)故 障或不可靠的NIC,就詢問散列引擎以獲得替代的NIC,所述替代的NIC可能利用不足, 或以其它方式能夠容納來自出現(xiàn)故障的NIC的連接。此詢問允許由替代的NIC來處理 一個或一個以上額外的網(wǎng)絡連接,而不會超出所述NIC的容量,從而避免可能會實質(zhì)上 降低與NIC相關聯(lián)的計算裝置的網(wǎng)絡性能的故障轉(zhuǎn)移操作。可通過以下方式來實現(xiàn)額外 的網(wǎng)絡性能益處從出現(xiàn)故障的NIC內(nèi)的硬件卸載引擎去卸載所述連接,且隨后將那些 連接卸載到一個或一個以上故障轉(zhuǎn)移NIC內(nèi)的硬件卸載引擎。
在本發(fā)明的另一實施例中,在計算裝置外部執(zhí)行對故障轉(zhuǎn)移NIC的選擇,可能在依 賴于交換機(即,其中將計算裝置100的NIC耦接到外部網(wǎng)絡的交換機在802.3ad模式 下操作的網(wǎng)絡環(huán)境)的網(wǎng)絡環(huán)境下是通過交換機,和在不依賴于交換機的網(wǎng)絡環(huán)境下是 通過外部計算裝置。由于此實施例中用于選擇故障轉(zhuǎn)移NIC的過程不同于不依賴于交換 機的環(huán)境下用于選擇NIC的過程,所以單獨考慮此實施例。此外,由于從將網(wǎng)絡連接從 軟件TCP/IP (傳輸控制協(xié)議和因特網(wǎng)協(xié)議)堆棧卸載到硬件卸載引擎得到的益處對所屬 領域的技術人員來說是眾所周知的,所以本文中將不論述這些問題。圖1A和圖IB說明其中可實施本發(fā)明的一個或一個以上方面的計算裝置100。如圖 所示,計算裝置100包含主存儲器102、存儲器控制器104、微處理器106、 1/0控制器 108以及MC110, 118。 NIC 110包含多播列表116和硬件卸載引擎("HOE") 112,硬 件卸載引擎112進一步包含受托連接表("DCT") 114。 NIC 118包含多播列表124和 HOE 120, HOE 120進一步包含DCT 122。 HOE 112, 120包含經(jīng)配置以用于處理與計算 裝置IOO與一個或一個以上遠程網(wǎng)絡計算裝置(未圖示)之間的已選擇性地卸載到NIC 110, 118的網(wǎng)絡連接相關聯(lián)的網(wǎng)絡幀的邏輯。通過用NIC 110, 118中的邏輯來處理網(wǎng) 絡幀(有時被稱為"在硬件中處理連接"),而不是像常規(guī)做法那樣在主機軟件TCP/IP 堆棧中執(zhí)行那些處理功能(有時被稱為"在軟件中處理連接"),可實質(zhì)上減少NIC 110, 118與微處理器106之間的通信以及由微處理器106執(zhí)行的計算。
DCT 114, 122經(jīng)配置以包含多個受托連接表條目,其中每個條目對應于幀由包含 所述特定DCT的HOE處理的網(wǎng)絡連接。在本發(fā)明的一個實施例中,每個DCT條目包 含每個受托連接的以下狀態(tài)信息目的地(即遠程計算裝置)因特網(wǎng)協(xié)議("IP")地址、 目的地端口編號、源(計算裝置100)端口編號和在硬件中運行所述受托連接所必需的 某一 TCP/IP連接狀態(tài)。
存儲器控制器104耦接到主存儲器102且耦接到微處理器106,且I/O控制器108 耦接到微處理器106以及NIC 110, 118。在本發(fā)明的一個實施例中,微處理器106通過 將命令或數(shù)據(jù)寫入到I/O控制器108中來將命令或數(shù)據(jù)傳輸?shù)絅IC 110, 118。 一旦將此 類命令或數(shù)據(jù)寫入到I/O控制器108中,I/O控制器108就視情況將所述命令或數(shù)據(jù)翻 譯成目標NIC可理解的格式,并將所述命令或數(shù)據(jù)傳送到目標NIC。類似地,NIC 110, 118通過將命令或數(shù)據(jù)寫入到I/O控制器108中來將命令或數(shù)據(jù)傳輸?shù)轿⑻幚砥?06,且 I/O控制器108視情況將所述命令或數(shù)據(jù)翻譯成微處理器106可理解的格式,并將所述 命令或數(shù)據(jù)傳送到微處理器106。前面所提及的耦接可實施成存儲器總線或I/O總線, 例如PCITM總線,或其任何組合,或者可另外以任何其它技術上可行的方式實施。
如圖IB中更詳細展示,主存儲器102包含操作系統(tǒng)126和軟件驅(qū)動器128。軟件 驅(qū)動器128包含負載平衡和故障轉(zhuǎn)移("LBFO")模塊130和TCP/IP堆棧134。 LBFO 模塊130跟蹤每個NIC的聯(lián)網(wǎng)狀態(tài)(例如,通過監(jiān)視每個NIC的鏈接狀態(tài)、每個NIC 上的發(fā)送和接收錯誤的數(shù)目和/或是否每個NIC都在發(fā)送和接收保持有效的包),并在網(wǎng) 絡業(yè)務正從出現(xiàn)故障的NIC移動到軟件或從軟件移動到故障轉(zhuǎn)移NIC時與TCP/IP堆棧 134通信。LBFO模塊130包含散列引擎132,其基于前面所提及的聯(lián)網(wǎng)統(tǒng)計資料而智能 地確定網(wǎng)絡連接應如何在計算裝置100中的起不同作用的NIC上分布,如2007年5月18日申請的且序號為_______且代理人案號為NVDA/P00P001882的題為"負載平衡的
聯(lián)網(wǎng)環(huán)境下的智能故障恢復(Intelligent Failback In a Load-Balanced Networking Environment)"的相關美國專利申請案中所描述。此相關專利申請案以引用的形式并入 本文中。TCP/IP堆棧134包含連接表136,連接表136包含多個連接表條目,其中每個 條目對應于計算裝置100與遠程計算裝置之間的網(wǎng)絡連接。在一個實施例中,每個連接 表條目包含每個連接的以下狀態(tài)信息連接的目的地IP地址、目的地端口編號、源IP 地址、源端口編號和硬件識別符,以及足以處理丟失的包的TCP/IP狀態(tài)等。重要的是, 特定連接的硬件識別符指示哪個HOE (如果存在的話)正在硬件中處理所述連接。在--個實施例中,可按常規(guī)將正在硬件中處理的每個連接的連接狀態(tài)從負責處理所述連接的 HOE內(nèi)的受托連接表復制到連接表136。舉例來說,可使用反復計時器來復制狀態(tài)信息。 以此方式,每個受托連接的連接狀態(tài)的經(jīng)更新的拷貝可保存在連接表136中,以供TCP/IP 堆棧134使用。
計算裝置100可以是桌上型計算機、服務器、膝上型計算機、掌上型計算機、個人 數(shù)字助理、平板計算機、游戲控制臺、蜂窩式電話或處理信息的任何其它類型的類似裝 置。
圖2說明根據(jù)本發(fā)明一個實施例的用于將網(wǎng)絡連接從出現(xiàn)故障的NIC去卸載到軟件 的方法步驟200的流程圖。盡管參考計算裝置100來描述所述方法,但所屬領域的技術 人員將了解,任何經(jīng)配置以執(zhí)行所述方法步驟(以任何次序)的系統(tǒng)都在本發(fā)明的范圍 內(nèi)。
如圖所示,用于去卸載網(wǎng)絡連接的方法在步驟202處開始,其中LBFO模塊130監(jiān) 視每個NIC 110, 118的狀態(tài)以尋找所述NIC之一出現(xiàn)故障或變得不可靠的指示。在一 個實施例中,當存在三種情況中的任一者時確定NIC已經(jīng)出現(xiàn)故障或變得不可靠。第一, LBFO模塊130可基于NIC的鏈接指示而確定對于所述NIC存在鏈接斷開,這意味著網(wǎng) 絡電纜已變得斷開。第二, LBFO模塊130可基于由NIC發(fā)送的包的數(shù)目與由所述包傳 輸?shù)降倪h程計算裝置確認的包的數(shù)目之間的比較,而確定所述NIC傳輸?shù)膶嵸|(zhì)數(shù)目或百 分比的包丟失了。第三,LBFO模塊130可確定在計算裝置100中的NIC 110, 118之間 傳輸?shù)谋3钟行У陌粊G失。如2005年12月15日申請的且序號為11/303,285且代 理人案號為NVDA/P001879的題為"識別網(wǎng)絡接口卡組內(nèi)出現(xiàn)故障的網(wǎng)絡接口卡的技術 (Technique for Identifying a Failed Network Interface Card within a Team of Network Interface Cards)"的相關美國專利申請案中所描述,可基于每個NIC正在如何傳輸和/ 或接收保持有效的包而識別出現(xiàn)故障的NIC。此相關專利申請案以引用的形式并入本文中。通過監(jiān)視每個NIC以尋找這些類型的指示,LBFO模塊130能夠可靠地檢測到出現(xiàn) 故障的或不可靠的NIC。
在步驟204中,LBFO模塊130基于在步驟202中監(jiān)視的指示來確定NIC是否已出 現(xiàn)故障或變得不可靠。如果LBFO模塊130確定未出現(xiàn)故障,那么所述方法返回到步驟 202,其中LBFO模塊130繼續(xù)監(jiān)視NIC 110, 118以尋找故障。
然而,如果發(fā)現(xiàn)NIC已出現(xiàn)故障或變得不可靠,那么所述方法進行到步驟206到 214,其中將通過所述NIC運行的連接去卸載到軟件。僅出于論述的目的,假定NIC 110 巳出現(xiàn)故障。在步驟206中,LBFO模塊130用信號通知TCP/IP堆棧134 NIC 110已出 現(xiàn)故障或巳變得不可靠。在步驟208中,LBFO模塊用信號通知散列引擎132 NIC 110 已出現(xiàn)故障或變得不可靠,以避免向出現(xiàn)故障的NIC IIO指配任何新的連接。在接收到 這個信號后,散列引擎132立即調(diào)整其內(nèi)部負載平衡算法,以便不向出現(xiàn)故障的NIC 110 指配新的連接。
在步驟210中,對于每個通過出現(xiàn)故障的NIC IIO運行的連接,出現(xiàn)故障的NIC的 HOE (例如,HOE 112)使DCT (例如,DCT 114)中對應于其連接的條目失效。在一 個實施例中,通過以下方式來使DCT條目失效TCP/IP堆棧134向HOE 112發(fā)送使 DCT條目失效的命令,HOE 112接收所述命令并使所述DCT條目失效,且HOE 112向 TCP/IP堆棧134確認這項操作的完成。在步驟212中,對于每個從出現(xiàn)故障的NIC 110 去卸載的連接,如果DCT 114中對于所述連接的連接狀態(tài)不與連接表136中的連接狀態(tài) 匹配,那么TCP/IP堆棧134將所述連接的連接狀態(tài)從DCT 114復制到連接表136。在 步驟214中,對于每個從出現(xiàn)故障的NIC IIO去卸載的連接,TCP/IP堆棧134使連接表 136中的所述連接的硬件識別符失效。使硬件識別符失效指示所述連接正通過TCP/IP堆 棧134運行。重要的是, 一旦已在DCT 114中使連接的連接狀態(tài)失效,且已在連接表 136中使連接的硬件識別符失效,此后就在軟件中通過TCP/IP堆棧134而不是在硬件中 通過HOE 112來處理任何在所述連接上傳輸或接收到的包。 一旦已經(jīng)以此方式將出現(xiàn)故 障的NIC 110上的所有連接從硬件去卸載到軟件,所述方法就在步驟216中終止。
圖3A和圖3B說明根據(jù)本發(fā)明一個實施例的用于在不依賴于交換機的網(wǎng)絡環(huán)境下將 網(wǎng)絡連接從軟件卸載到故障轉(zhuǎn)移NIC的方法步驟的流程圖。盡管參考計算裝置100來描 述所述方法,但所屬領域的技術人員將了解,任何經(jīng)配置以執(zhí)行所述方法步驟(以任何 次序)的系統(tǒng)都在本發(fā)明的范圍內(nèi)。
重要的是,在不依賴于交換機的網(wǎng)絡環(huán)境下,LBFO模塊130為每個去卸載到軟件 的連接識別故障轉(zhuǎn)移NIC,如上文在圖2中所述。如圖所示,在步驟302到312中描述用于將單個網(wǎng)絡連接從軟件卸載到故障轉(zhuǎn)移 NIC的方法。在方法200中,針對每個去卸載到軟件的連接重復這些步驟,使得所有被 去卸載的連接最終都從軟件卸載到一個或一個以上故障轉(zhuǎn)移NIC。在步驟302中,TCP/IP 堆棧134請求LBFO模塊130識別應當向其卸載當前被去卸載連接的NIC。同樣,如步 驟208中所論述,散列引擎132跟蹤計算裝置100中每個NIC的狀態(tài),并在NIC出現(xiàn) 故障或變得不可靠時調(diào)整其連接指配算法,以避免將任何新的或現(xiàn)有的連接卸載到所述 出現(xiàn)故障的或不可靠的NIC。在步驟304中,LBFO模塊130詢問散列引擎132,以識 別應向其卸載當前連接的合適的NIC。僅出于論述的目的,假定散列引擎132將故障轉(zhuǎn) 移NIC 118識別為應向其卸載當前連接(其先前已經(jīng)從出現(xiàn)故障的NIC 110去卸載)的 NIC。
在步驟306中,軟件驅(qū)動器128將出現(xiàn)故障的NIC 110的MAC地址添加到故障轉(zhuǎn) 移NIC 118的多播列表124,這允許故障轉(zhuǎn)移NIC 118接收送交到出現(xiàn)故障的NIC 110 的MAC地址的包。在步驟308中,TCP/IP堆棧134指導故障轉(zhuǎn)移NIC 118將獲知包 (learning packet)發(fā)送到交換機。所述獲知包可能是任何包含出現(xiàn)故障的NIC 110的MAC 地址的技術上可行的包類型。如眾所周知,從故障轉(zhuǎn)移NIC 118發(fā)送此包會導致交換機 對其自身進行重新配置,以便將以出現(xiàn)故障的NIC IIO的MAC地址為目的地的后續(xù)包 路由到故障轉(zhuǎn)移NIC 118。因此,此后由故障轉(zhuǎn)移NIC 118來接收與正被卸載到故障轉(zhuǎn) 移NIC 118的當前連接有關的所有網(wǎng)絡業(yè)務。如代理人案號為NVDA/P00P001882的相 關專利申請案中更詳細地描述,這種方法的結(jié)果是來自特定的出現(xiàn)故障的NIC的所有連 接都被卸載到同一故障轉(zhuǎn)移NIC。
在步驟310中,HOE 120設置DCT 122中對應于正被卸載的當前連接的連接狀態(tài)。 而且,設置DCT條目中的連接狀態(tài)包含設置其目的地IP地址、目的地端口編號、源端 口編號和正被卸載的連接的特定TCP/IP狀態(tài)。在一個實施例中,通過以下方式設置DCT 條目TCP/IP堆棧134向HOE 120發(fā)送設置連接狀態(tài)的命令,HOE 120接收所述命令 并設置連接狀態(tài),且HOE 120向TCP/IP堆棧134確認此操作的完成。在步驟312中, 對于正被卸載的連接,TCP/IP堆棧134將連接表136內(nèi)的硬件識別符設置為代表故障轉(zhuǎn) 移NIC 118的HOE 120的裝置句柄。硬件識別符指示所述連接正通過HOE 120而運行。 重要的是,一旦將連接的硬件識別符設置為特定HOE的裝置句柄,此后就通過所述HOE 在硬件中處理在所述連接上傳輸或接收的任何包。
在步驟314中,TCP/IP堆棧134確定是否已將出現(xiàn)故障的NIC 110的所有被去卸載 的連接都卸載到故障轉(zhuǎn)移NIC。如果尚未將所有被去卸載的連接都卸載到故障轉(zhuǎn)移NIC,那么方法返回到步驟302到312,其中將另一被去卸載的連接卸載到故障轉(zhuǎn)移NIC。然 而,如果已將所有被去卸載的連接都卸載到故障轉(zhuǎn)移NIC,那么所述方法在步驟316中 終止。
圖4說明根據(jù)本發(fā)明一個實施例的用于在通過外部構件將網(wǎng)絡連接移動到新的NIC 時將網(wǎng)絡連接卸載到新的NIC的方法步驟的流程圖。盡管參考計算裝置100來描述所述 方法的,但所屬領域的技術人員將了解,任何經(jīng)配置以執(zhí)行所述方法步驟(以任何次序) 的系統(tǒng)都在本發(fā)明的范圍內(nèi)。
如前所述,在至少兩種情形下,當將連接從舊的NIC移動到新的NIC (即故障轉(zhuǎn)移 NIC)時,可能會發(fā)生故障轉(zhuǎn)移。 一種情形涉及依賴于交換機的網(wǎng)絡環(huán)境,其中交換機 確定NIC已經(jīng)出現(xiàn)故障或已變得不可靠,且因此將與所述出現(xiàn)故障或不可靠的NIC相 關聯(lián)的一些或所有連接移動到一個或一個以上故障轉(zhuǎn)移NIC。另一種情形涉及不依賴于 交換機的網(wǎng)絡環(huán)境,其中將計算裝置100針對一個連接接收到的包送交到除舊的NIC之 外的NIC (即新的/故障轉(zhuǎn)移NIC)并由其接收。此處,網(wǎng)絡中除計算裝置100之外的某 個計算裝置已主動將與所述連接相關聯(lián)的包傳輸?shù)叫碌腘IC。在這兩種情形下,當LBFO 模塊130檢測到正在除舊的NIC之外的NIC上接收到用于所述連接的包時,LBFO模塊 130認識到已為所述連接選擇了新的NIC。如下文中更詳細地描述,LBFO模塊130監(jiān) 視NIC以尋找傳入的包,確定傳入的包是否指示被移動的連接,從舊的NIC去卸載所 述被移動的連接,并將所述被移動的連接卸載在新的NIC上。僅出于論述的目的,假定 NIC 110是舊的NIC。
如圖所示,卸載網(wǎng)絡連接的方法在步驟402處開始,其中LBFO模塊130監(jiān)視NIC 以尋找網(wǎng)絡業(yè)務,如上文所述。在步驟404中,對于給定連接,LBFO模塊130檢測已 在新的NIC上而不是在舊的NIC 110上接收到的用于所述連接的包。同樣,這可在至少 兩種情形下發(fā)生。第一種情況是,在依賴于交換機的網(wǎng)絡環(huán)境下,交換機檢測出現(xiàn)故障 的或不可靠的NIC,并將連接移動到故障轉(zhuǎn)移NIC。第二種情況是,在不依賴于交換機 的網(wǎng)絡環(huán)境下,計算裝置開始向除舊的NIC之外的NIC發(fā)送用于連接的包,所述用于 連接的包最初是在所述舊的NIC上接收到的。僅出于論述的目的,假定步驟404中識別 的新的NIC是NIC 118。在步驟406中,軟件驅(qū)動器128將連接從舊的NIC 110去卸載 到軟件,如上文先前相對于圖2所描述。
在步驟408中,LBFO模塊130將新NIC 118的身份傳送到散列引擎132,這致使 散列引擎132針對新的NIC 118上的額外連接而更新其內(nèi)部數(shù)據(jù)結(jié)構。在步驟410中, HOE 120設置DCT 122中對應于正被卸載到NIC 118的連接的連接狀態(tài)。同樣,設置DCT條目中的連接狀態(tài)包含設置其目的地IP地址、目的地端口編號、源端口編號和正 被卸載的連接的特定TCP/IP狀態(tài)。在一個實施例中,通過以下方式設置DCT條目 TCP/IP堆棧134向HOE 120發(fā)送設置連接狀態(tài)的命令,HOE 120接收所述命令并設置 連接狀態(tài),且HOE 120向TCP/IP堆棧134確認此操作的完成。在步驟412中,對于正 被卸載的連接,TCP/IP堆棧134將連接表136內(nèi)的硬件識別符設置為代表新的NIC 118 的HOE120的裝置句柄,然后才返回到步驟402。同樣,硬件識別符指示網(wǎng)絡連接正通 過HOE 120而運行。如本文中先前所描述, 一旦將連接的硬件識別符設置為特定HOE 的裝置句柄,此后就通過所述HOE在硬件屮處理在所述連接上傳輸或接收的任何包。
應注意的是,在與舊的NIC 110相關聯(lián)的連接已經(jīng)按照方法200被去卸載到軟件之 后,但在所述連接按照方法400卸載到新的NIC之前,計算裝置IOO可傳輸來自散列引 擎132臨時選擇的NIC上的軟件的用于此連接的包。 一般來說,通過以下方式執(zhí)行對臨 時NIC的選擇LBFO引擎130詢問散列引擎132以獲知當前傳輸性能處于這樣的等級 的NIC:傳輸與額外連接相關聯(lián)的包將不會實質(zhì)上降級所述NIC上的現(xiàn)有連接的傳輸性 能。按照方法400, 一旦LBFO引擎130檢測到已經(jīng)在新的NIC上接收到與正在軟件外 運行的被去卸載的連接相關聯(lián)的包,如上文所述,就中斷臨時NIC上用于此連接的包的 傳輸,且將所述連接卸載到新的NIC,以便傳輸和接收包。
所揭示的方法的一個優(yōu)點在于,當在不依賴于交換機的網(wǎng)絡環(huán)境下對連接進行故障 轉(zhuǎn)移時,使用散列引擎來智能地在計算裝置100中起不同作用的NIC間分配網(wǎng)絡業(yè)務可 相對于現(xiàn)有技術解決方案而實質(zhì)上改進網(wǎng)絡性能。所揭示的方法的另一優(yōu)點在于,當將 網(wǎng)絡連接移動到故障轉(zhuǎn)移NIC時,將網(wǎng)絡連接卸載到故障轉(zhuǎn)移NIC可相對于現(xiàn)有技術 解決方案而實質(zhì)上改進計算裝置性能。
盡管前面的內(nèi)容是針對本發(fā)明的實施例的,但可在不偏離本發(fā)明的基本范圍的情況 下,設計本發(fā)明的其它和進一步實施例。本發(fā)明的范圍由所附權利要求書確定。
權利要求
1.一種用于在不依賴于交換機的網(wǎng)絡環(huán)境下將網(wǎng)絡連接從主機軟件模塊卸載到故障轉(zhuǎn)移網(wǎng)絡接口卡(NIC)中所包含的第一硬件卸載引擎的方法,所述方法包括請求所述故障轉(zhuǎn)移NIC的身份;從散列算法的輸出確定所述故障轉(zhuǎn)移NIC的所述身份;設置所述第一硬件卸載引擎中所包含的第一受托連接表中的條目,其中所述條目包含所述網(wǎng)絡連接的連接狀態(tài);以及設置所述主機軟件模塊中所包含的連接表中的對應于所述網(wǎng)絡連接的硬件識別符,其中所述經(jīng)設置的硬件識別符指示所述網(wǎng)絡連接正通過所述第一硬件卸載引擎而運行。
2. 根據(jù)權利要求1所述的方法,其中所述網(wǎng)絡連接已從己出現(xiàn)故障或變得不可靠的第 二 NIC中所包含的第二硬件卸載引擎去卸載,且所述方法進一步包含向與所述故 障轉(zhuǎn)移NIC相關聯(lián)的多播列表添加與所述第二 NIC相關聯(lián)的媒體接入控制(MAC) 地址的步驟。
3. 根據(jù)權利要求2所述的方法,其中所述向與所述故障轉(zhuǎn)移NIC相關聯(lián)的所述多播 列表添加與所述第二 NIC相關聯(lián)的所述MAC地址允許所述故障轉(zhuǎn)移NIC接收送 交到與所述第二 NIC相關聯(lián)的所述MAC地址的包。
4. 根據(jù)權利要求1所述的方法,其進一步包括以下步驟在將所述網(wǎng)絡連接從所述主 機軟件模塊卸載到所述故障轉(zhuǎn)移NIC中所包含的所述第一硬件卸載引擎之前,將 所述網(wǎng)絡連接從第二 NIC中所包含的第二硬件卸載引擎去卸載到所述主機軟件模 塊。
5. 根據(jù)權利要求4所述的方法,其中所述從所述第二 NIC中所包含的所述第二硬件 卸載引擎去卸載所述網(wǎng)絡連接的步驟包含用信號通知所述第二NIC巳出現(xiàn)故障或變得不可靠;通知運行所述散列算法的散列引擎所述第二 NIC已出現(xiàn)故障或變得不可靠;使所述第二硬件卸載引擎中所包含的第二受托連接表中的條目失效,其中所述條目包含所述網(wǎng)絡連接的連接狀態(tài);以及使所述主機軟件模塊中所包含的所述連接表中的對應于所述網(wǎng)絡連接的硬件識 別符失效,其中所述失效的硬件識別符指示所述網(wǎng)絡連接正通過所述主機軟件模塊而運行。
6. —種計算裝置,其經(jīng)配置以在不依賴于交換機的網(wǎng)絡環(huán)境下將網(wǎng)絡連接從聯(lián)網(wǎng)協(xié)議 模塊卸載到故障轉(zhuǎn)移網(wǎng)絡接口卡(NIC)中所包含的第一硬件卸載引擎,所述計算裝置包括多個NIC,其包含所述故障轉(zhuǎn)移NIC; 主機處理器;以及主機存儲器,其耦接到所述主機處理器且經(jīng)配置以存儲軟件驅(qū)動器,所述軟件驅(qū) 動器具有包含散列引擎的負載平衡故障轉(zhuǎn)移(LBFO)模塊和包含連接表的所述聯(lián) 網(wǎng)協(xié)議模塊,其中所述聯(lián)網(wǎng)協(xié)議模塊經(jīng)配置以從所述LBFO模塊請求所述故障轉(zhuǎn)移NIC的身份;所述LBFO模塊經(jīng)配置以從由所述散列引擎執(zhí)行的散列算法的輸出確定所述 故障轉(zhuǎn)移NIC的所述身份;在獲知所述故障轉(zhuǎn)移NIC的所述身份后,所述聯(lián)網(wǎng)協(xié)議模塊進一步經(jīng)配置以 傳送到所述第一硬件卸載引擎以設置所述第一硬件卸載引擎中所包含的第一受 托連接表中的條目,其中所述條目包含所述網(wǎng)絡連接的連接狀態(tài);所述第一硬件卸載引擎經(jīng)配置以響應于來自所述聯(lián)網(wǎng)協(xié)議模塊的所述傳送而 設置所述第一受托連接表中的所述條目;以及所述聯(lián)網(wǎng)協(xié)議模塊進一步經(jīng)配置以設置所述連接表中對應于所述網(wǎng)絡連接的 硬件識別符,其中所述經(jīng)設置的硬件識別符指示所述網(wǎng)絡連接正通過所述第一硬 件卸載引擎而運行。
7. 根據(jù)權利要求6所述的計算裝置,其中所述多個NIC包含己出現(xiàn)故障或變得不可 靠的第二 NIC,且所述網(wǎng)絡連接已從第二 NIC中所包含的第二硬件卸載引擎去卸 載,且所述軟件驅(qū)動器經(jīng)配置以向與所述故障轉(zhuǎn)移NIC相關聯(lián)的多播列表添加與 所述第二NIC相關聯(lián)的媒體接入控制(MAC)地址。
8. 根據(jù)權利要求7所述的計算裝置,其中所述向與所述故障轉(zhuǎn)移NIC相關聯(lián)的所述多播列表添加與所述第二 NIC相關聯(lián)的所述MAC地址允許所述故障轉(zhuǎn)移NIC接 收送交到與所述第二 NIC相關聯(lián)的所述MAC地址的包。
9. 根據(jù)權利要求6所述的計算裝置,其中所述多個NIC包含己出現(xiàn)故障或變得不可 靠的第二 NIC,且在將所述網(wǎng)絡連接從所述聯(lián)網(wǎng)協(xié)議模塊卸載到所述故障轉(zhuǎn)移NIC 中所包含的所述第一硬件卸載引擎之前,將所述網(wǎng)絡連接從所述第二 NIC中所包 含的第二硬件卸載引擎去卸載到所述聯(lián)網(wǎng)協(xié)議模塊。
10. 根據(jù)權利要求9所述的計算裝置,其中所述LBFO模塊經(jīng)配置以用信號通知所述聯(lián)網(wǎng)協(xié)議模塊所述第二 NIC已出現(xiàn)故 障或變得不可靠;所述LBFO模塊進一步經(jīng)配置以通知所述散列引擎所述第二 NIC已出現(xiàn)故障或 變得不可靠;所述聯(lián)網(wǎng)協(xié)議模塊經(jīng)配置以傳送到所述第二硬件卸載引擎以使所述第二硬件卸 載引擎中所包含的第二受托連接表中的條目失效,其中所述條目包含所述網(wǎng)絡連接 的連接狀態(tài);所述第二硬件卸載引擎經(jīng)配置以響應于來自所述聯(lián)網(wǎng)協(xié)議模塊的傳送而使所述 第二受托連接表中的所述條目失效;以及所述聯(lián)網(wǎng)協(xié)議模塊進一步經(jīng)配置以使所述連接表中對應于所述網(wǎng)絡連接的所述 硬件識別符失效,其中所述失效的硬件識別符指示所述網(wǎng)絡連接正通過所述聯(lián)網(wǎng)協(xié) 議模塊而運行。
全文摘要
本發(fā)明提供一種位于網(wǎng)絡裝置驅(qū)動器中的散列表,其保存關于計算裝置內(nèi)每個網(wǎng)絡接口(NIC)的業(yè)務特性的數(shù)據(jù)。如果所述計算裝置中的NIC中的一者變得不可靠,那么所述散列引擎中的成本函數(shù)允許軟件驅(qū)動器啟動在所述計算裝置中的其余的可靠NIC間重新分配網(wǎng)絡業(yè)務。使用這種散列引擎,所述軟件驅(qū)動器能夠以使網(wǎng)絡業(yè)務在其余的可靠NIC上的分配最優(yōu)化的方式,智能地將不可靠的NIC上的網(wǎng)絡連接中的每一者重新引導到計算裝置內(nèi)的可靠NIC。或者,如果連接從舊的NIC移動到新的NIC,那么軟件驅(qū)動器可檢測被移動的連接,并將所述被移動的連接卸載到所述新的NIC上的硬件卸載引擎。通過此方法,當對網(wǎng)絡連接進行故障轉(zhuǎn)移時可更容易避免例如網(wǎng)絡接口過載和計算裝置性能降級等問題,從而相對于現(xiàn)有技術而改進總體系統(tǒng)性能。
文檔編號H04L12/24GK101321085SQ20081009889
公開日2008年12月10日 申請日期2008年5月19日 優(yōu)先權日2007年5月18日
發(fā)明者薩米爾·南達, 諾曼·K·陳, 赫馬馬利尼·馬尼克瓦薩甘, 阿亞茲·阿卜杜拉, 阿南德·拉賈戈帕蘭, 阿舒托什·K·杰哈 申請人:輝達公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1