用于改善云路由服務(wù)性能的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開一般地涉及路由和處理分組。更具體地,本公開涉及云網(wǎng)絡(luò)內(nèi)可以在作為軟件路由器被提供的邏輯云路由器和作為硬件路由器被提供的邏輯云路由器之間有效地切換的系統(tǒng)。
【背景技術(shù)】
[0002]用于在與云網(wǎng)絡(luò)相關(guān)聯(lián)的租戶之間對(duì)分組進(jìn)行路由的邏輯云路由器常被實(shí)現(xiàn)為在虛擬機(jī)上運(yùn)行的基于軟件的路由器,或使用諸如Linux命名空間之類的構(gòu)造被實(shí)現(xiàn)。雖然基于軟件的路由器已越來越強(qiáng)大,但基于軟件的路由器的分組轉(zhuǎn)發(fā)性能通常不如基于硬件的路由器的分組轉(zhuǎn)發(fā)性能。
[0003]盡管邏輯路由器可以由于基于硬件的路由器的分組轉(zhuǎn)發(fā)性能而被實(shí)現(xiàn)為基于硬件的路由器,但是在處理大量流量時(shí)使用基于硬件的路由器可能是不夠的。本領(lǐng)域技術(shù)人員將理解的是,虛擬上下文(virtual context)可以被創(chuàng)建在硬件路由器上以支持邏輯路由器的實(shí)例。使用基于軟件的路由器通常比使用基于硬件的路由器具有更好的可擴(kuò)展性,這是由于例如相比于虛擬上下文可以被創(chuàng)建在基于硬件的路由器中,在虛擬機(jī)中可以實(shí)例化多得多的基于軟件的路由器。
【附圖說明】
[0004]通過下文的詳細(xì)描述結(jié)合附圖,將很容易理解本公開,在附圖中:
[0005]圖1是根據(jù)實(shí)施例的支持硬件路由器和軟件路由器的節(jié)點(diǎn)的框圖表示。
[0006]圖2是根據(jù)實(shí)施例的示出將節(jié)點(diǎn)從基本上用作軟件路由器切換到基本上用作硬件路由器的方法的處理流程圖。
[0007]圖3是根據(jù)實(shí)施例的操作支持硬件路由器和軟件路由器的節(jié)點(diǎn)從用作軟件路由器切換到用作硬件路由器的處理的圖示表示。
[0008]圖4是根據(jù)實(shí)施例的示出將節(jié)點(diǎn)從基本上用作硬件路由器切換到基本上用作軟件路由器的方法的處理流程圖。
[0009]圖5是根據(jù)實(shí)施例的操作支持硬件路由器和軟件路由器的節(jié)點(diǎn)從用作硬件路由器切換到用作軟件路由器的處理的圖示表示。
【具體實(shí)施方式】
[0010]雜
[0011]根據(jù)一個(gè)方面,一種方法包括:在第一路由器上創(chuàng)建邏輯路由器,第一路由器被支持在第一節(jié)點(diǎn)上,邏輯路由器被創(chuàng)建用于租戶。該方法還包括:確定模式變化是否被指示,并且當(dāng)確定指示模式變化時(shí)將邏輯路由器從第一路由器迀移到第二路由器。模式變化與將邏輯路由器從第一路由器迀移到第二路由器相關(guān)聯(lián),其中第二路由器也被支持在第一節(jié)點(diǎn)上。
[0012]示例實(shí)施例
[0013]本領(lǐng)域技術(shù)人員將理解的是,云網(wǎng)絡(luò)大體上是可擴(kuò)展的虛擬網(wǎng)絡(luò),該網(wǎng)絡(luò)把云資源(例如虛擬機(jī))互連。云網(wǎng)絡(luò)可以被約束到單個(gè)租戶或把由多個(gè)租戶擁有的資源互連。云網(wǎng)絡(luò)內(nèi)提供的路由服務(wù)通常允許分組在不同的互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)之間被路由。
[0014]云網(wǎng)絡(luò)內(nèi)使用的邏輯路由器(即邏輯云路由器)通??梢允腔谟布幕蚧谲浖摹;谟布倪壿嬄酚善骺梢允腔趯S眉呻娐?ASIC)的邏輯路由器,并且通常以相對(duì)高的分組轉(zhuǎn)發(fā)性能為特征。雖然基于軟件的邏輯路由器也比較強(qiáng)大,但是基于軟件的邏輯路由器的分組轉(zhuǎn)發(fā)性能沒有基于硬件的邏輯路由器的分組轉(zhuǎn)發(fā)性能高。然而,基于軟件的邏輯路由器通常比基于硬件的邏輯路由器具有更好的可擴(kuò)展性。通常,與虛擬上下文可以被創(chuàng)建在基于硬件的路由器上相比,虛擬機(jī)中基于軟件的路由器可以更多地被實(shí)例化。
[0015]在一個(gè)實(shí)施例中,當(dāng)性能和/或服務(wù)要求(例如,分組轉(zhuǎn)發(fā)性能)可以使用基于軟件的邏輯路由器來完成時(shí),云網(wǎng)絡(luò)設(shè)備可以有效地實(shí)現(xiàn)基于軟件的邏輯云,并且當(dāng)性能和/或服務(wù)要求使得應(yīng)該使用基于硬件的邏輯路由器時(shí),云網(wǎng)絡(luò)設(shè)備可以有效地實(shí)現(xiàn)基于硬件的邏輯路由器。這樣的云網(wǎng)絡(luò)設(shè)備可以實(shí)時(shí)和/或基本按需(例如當(dāng)所獲取的模式變化觸發(fā)指示了要進(jìn)行切換時(shí))在被用作硬件路由器和被用作軟件路由器之間有效切換。
[0016]通過允許邏輯云路由器或與云網(wǎng)絡(luò)相關(guān)聯(lián)的邏輯路由器例如實(shí)時(shí)和/或基本按需在作為基于軟件的邏輯路由器進(jìn)行操作和作為基于硬件的邏輯路由器進(jìn)行操作之間改變,適當(dāng)?shù)穆酚善骺梢曰诋?dāng)前性能規(guī)范來有效地被選擇以供使用。在一個(gè)實(shí)施例中,當(dāng)性能嚴(yán)格時(shí)邏輯路由器可以作為基于硬件的邏輯路由器被提供,并且當(dāng)性能不嚴(yán)格時(shí)邏輯路由器可以作為基于軟件的邏輯路由器被提供。例如,能夠?qū)嵗谲浖倪壿嬄酚善骱突谟布倪壿嬄酚善鞯脑凭W(wǎng)絡(luò)設(shè)備可以被配置為:當(dāng)期望相對(duì)高的分組轉(zhuǎn)發(fā)性能時(shí)創(chuàng)建基于硬件的邏輯路由器,并且當(dāng)相對(duì)高的分組轉(zhuǎn)發(fā)性能不是必要的時(shí)創(chuàng)建基于軟件的邏輯路由器。
[0017]在一個(gè)實(shí)施例中,云網(wǎng)絡(luò)設(shè)備或節(jié)點(diǎn)包括硬件路由器組件和軟件路由器組件。節(jié)點(diǎn)可以基于模式變化觸發(fā)(或被布置為指示節(jié)點(diǎn)將作為硬件路由器進(jìn)行操作還是將作為軟件路由器進(jìn)行操作的觸發(fā))來在作為硬件路由器進(jìn)行操作和作為軟件路由器進(jìn)行操作之間有效切換。首先參照?qǐng)D1,將根據(jù)實(shí)施例描述支持硬件路由器和軟件路由器的節(jié)點(diǎn)。節(jié)點(diǎn)100(其可以是諸如計(jì)算設(shè)備之類的云網(wǎng)絡(luò)設(shè)備)大體上被布置為作為路由器進(jìn)行操作以路由網(wǎng)絡(luò)內(nèi)的分組。節(jié)點(diǎn)100包括邏輯104、處理布置108、存儲(chǔ)布置112、以及輸入/輸出(I/O)接口 116。邏輯104(其可以包括硬件邏輯和/或軟件邏輯)包括硬件路由器模塊116、軟件路由器模塊120、云網(wǎng)絡(luò)管理系統(tǒng)模塊124、以及虛擬機(jī)模塊128。
[0018]云網(wǎng)絡(luò)管理系統(tǒng)模塊124大體上被配置為適當(dāng)?shù)刂С钟布酚善髂K116和軟件路由器模塊120的操作以將分組轉(zhuǎn)發(fā)到云網(wǎng)絡(luò)中的租戶和轉(zhuǎn)發(fā)來自云網(wǎng)絡(luò)中的租戶的分組。云網(wǎng)絡(luò)管理系統(tǒng)模塊124可以實(shí)例化基于軟件的邏輯路由器(例如,在虛擬機(jī)和/或命名空間中運(yùn)行的路由器)以及基于硬件的邏輯路由器(例如,使用虛擬上下文)。邏輯路由器可以在運(yùn)行時(shí)間期間由云網(wǎng)絡(luò)管理系統(tǒng)模塊124重新配置。任意適當(dāng)?shù)姆椒捎糜谠谶\(yùn)行時(shí)間期間重新配置邏輯路由器。適當(dāng)?shù)姆椒梢园ǖ幌抻诎ɡ门c邏輯路由器相關(guān)聯(lián)的專用管理網(wǎng)絡(luò)和專用網(wǎng)絡(luò)接口卡(NIC)。
[0019]云網(wǎng)絡(luò)管理系統(tǒng)模塊124包括第3層(L3)服務(wù)控制模塊132、以及邏輯路由器實(shí)例化模塊136兒3服務(wù)控制模塊132被配置為確定邏輯路由器何時(shí)將從作為基于軟件的邏輯路由器被迀移到作為基于硬件的邏輯路由器、以及邏輯路由器何時(shí)將從作為基于硬件的邏輯路由器被迀移到作為基于軟件的邏輯路由器。在一個(gè)實(shí)施例中,L3服務(wù)控制模塊132可以獲取被布置為指示邏輯路由器將從軟件路由器被迀移到硬件路由器的觸發(fā)、或獲取被布置為指示邏輯路由器將從硬件路由器被迀移到軟件路由器的觸發(fā),并且可以響應(yīng)于觸發(fā)來有效地配置邏輯路由器。邏輯路由器實(shí)例化模塊136被布置為使用硬件路由器模塊116或軟件路由器模塊120來實(shí)例化節(jié)點(diǎn)100上的邏輯路由器。
[0020]虛擬機(jī)模塊128被配置為實(shí)例化和支持節(jié)點(diǎn)100上的虛擬機(jī)。虛擬機(jī)模塊128還被配置為支持在虛擬機(jī)上運(yùn)行的基于軟件的邏輯路由器。本領(lǐng)域技術(shù)人員可以理解,虛擬機(jī)可以有效地在節(jié)點(diǎn)100支持的不同租戶之間提供隔離,并且提供重疊地址空間和策略。
[0021]處理布置108通常包括被布置為執(zhí)行邏輯104(即軟件邏輯)的至少一個(gè)處理器。存儲(chǔ)布置112可以是數(shù)據(jù)庫(kù)或可存儲(chǔ)數(shù)據(jù)(例如,與邏輯路由器的配置有關(guān)的信息)的任意其它布置。I/O接口 116可包括至少一個(gè)I/O端口(未示出),并且被布置為允許節(jié)點(diǎn)100發(fā)送和接收分組(或更一般地,發(fā)送和接收網(wǎng)絡(luò)上的數(shù)據(jù))。被布置為指示邏輯路由器將被迀移的觸發(fā)(例如模式變化觸發(fā))還可以通過I/o接口 116來獲取。
[0022]在一個(gè)實(shí)施例中,被配置為作為路由器進(jìn)行操作的節(jié)點(diǎn)通??梢宰鳛檐浖酚善鬟M(jìn)行操作,并且當(dāng)特定條件出現(xiàn)時(shí)(例如,當(dāng)模式變化觸發(fā)被獲取時(shí))可以有效地切換到作為硬件路由器進(jìn)行操作。模式變化觸發(fā)通??梢?但不限于)與路由器的期望性能和/或?qū)β酚煞?wù)的需求相關(guān)聯(lián)。圖2是根據(jù)實(shí)施例,示出將節(jié)點(diǎn)從基本上用作軟件路由器切換到基本上用作硬件路由器的方法的處理流程圖。過程201有效地將節(jié)點(diǎn)從作為軟件路由器進(jìn)行操作轉(zhuǎn)換到作為硬件路由器進(jìn)行操作,該過程在步驟205處開始,在步驟205中,邏輯路由器針對(duì)租戶被創(chuàng)建(例如,有效地被實(shí)例化或被提供)。邏輯路由器被創(chuàng)建為節(jié)點(diǎn)上的軟件路由器。如之前所提到的,當(dāng)邏輯路由器被創(chuàng)建為軟件路由器時(shí),邏輯路由器可以是基于軟件的并且運(yùn)行在虛擬機(jī)或命名空間上。
[0023]一旦邏輯路由器針對(duì)租戶被實(shí)例化為軟件路由器,在