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

網(wǎng)絡(luò)設(shè)備任務(wù)的分布式處理的制作方法

文檔序號:8001239閱讀:301來源:國知局
網(wǎng)絡(luò)設(shè)備任務(wù)的分布式處理的制作方法
【專利摘要】本發(fā)明涉及網(wǎng)絡(luò)設(shè)備任務(wù)的分布式處理,提出了一種在計(jì)算云中運(yùn)行的虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的技術(shù)。一種網(wǎng)絡(luò)設(shè)備包括:發(fā)送和接收消息的網(wǎng)絡(luò)接口、包括被配置為運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)或多個(gè)處理器的路由單元、和虛擬機(jī)代理。該虛擬機(jī)代理被配置為:識別在通信耦接至該網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中,所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例;利用至少一個(gè)網(wǎng)絡(luò)接口將執(zhí)行任務(wù)的請求發(fā)送至虛擬機(jī);以及利用至少一個(gè)網(wǎng)絡(luò)接口從虛擬機(jī)接收包括執(zhí)行任務(wù)的結(jié)果的任務(wù)響應(yīng)。路由單元被配置為基于結(jié)果更新所述網(wǎng)絡(luò)設(shè)備。
【專利說明】網(wǎng)絡(luò)設(shè)備任務(wù)的分布式處理
【技術(shù)領(lǐng)域】
[0001]本公開涉及計(jì)算機(jī)網(wǎng)絡(luò),更具體地,涉及在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的技術(shù)?!颈尘凹夹g(shù)】
[0002]計(jì)算機(jī)網(wǎng)絡(luò)是交換數(shù)據(jù)和共享資源的互連計(jì)算設(shè)備的集合。在諸如互聯(lián)網(wǎng)這樣的分組網(wǎng)絡(luò)中,計(jì)算設(shè)備通過將數(shù)據(jù)劃分為被稱為包的較小塊來通信數(shù)據(jù),這些包從源設(shè)備經(jīng)過網(wǎng)絡(luò)被單獨(dú)地路由到目的設(shè)備。目的設(shè)備從包中提取數(shù)據(jù)并將數(shù)據(jù)組裝成其原始形式。將數(shù)據(jù)劃分為包能夠使源設(shè)備可以只重新發(fā)送那些可能在傳輸期間丟失的個(gè)體包。
[0003]網(wǎng)絡(luò)內(nèi)的某些設(shè)備,例如路由器,含有保存描述通過網(wǎng)絡(luò)的路線的路由信息的路由單元。每個(gè)路線定義了網(wǎng)絡(luò)上位置之間的路徑。根據(jù)路由信息,路由器的轉(zhuǎn)發(fā)引擎生成轉(zhuǎn)發(fā)信息,路由器使用該轉(zhuǎn)發(fā)信息在網(wǎng)絡(luò)上中繼轉(zhuǎn)發(fā)(relay)包流,更具體地,將包流中繼轉(zhuǎn)發(fā)到下一個(gè)中繼段。關(guān)于轉(zhuǎn)發(fā)包,網(wǎng)絡(luò)路由器的“下一個(gè)中繼段”一般是指沿著給定路線的相鄰設(shè)備。一旦接收到來的包,路由器就檢查包內(nèi)的信息,從而識別包的目的地?;谀康牡兀酚善鞲鶕?jù)轉(zhuǎn)發(fā)信息轉(zhuǎn)發(fā)該包。
[0004]大型計(jì)算機(jī)網(wǎng)絡(luò),例如互聯(lián)網(wǎng),通常包括多個(gè)根據(jù)諸如邊界網(wǎng)關(guān)協(xié)議(BGP)這樣的規(guī)定路由協(xié)議交換路由信息的路由器。當(dāng)兩個(gè)路由器最初連接時(shí),路由器交換路由信息和根據(jù)所交換的路由信息生成轉(zhuǎn)發(fā)信息。具體地,兩個(gè)路由器初始化路由通信“會話”,兩個(gè)路由器根據(jù)規(guī)定的路由協(xié)議通過該路由通信“會話”來交換路由信息。路由器繼續(xù)通過路由協(xié)議進(jìn)行通信以遞增地更新路由信息,進(jìn)一步地,根據(jù)更新的路由信息中指示的網(wǎng)絡(luò)拓補(bǔ)的變化更新其轉(zhuǎn)發(fā)信息。例如,路由器可以發(fā)送更新消息,告知新近可用的路線或指出不再可用的路線。然而,更新路由信息和執(zhí)行其他管理任務(wù)會消耗大量的計(jì)算資源,這限制了可用于轉(zhuǎn)發(fā)流量的計(jì)算資源量。
[0005]按照慣例,網(wǎng)絡(luò)管理員通過增加處理器、存儲器等按比例增加計(jì)算資源。然而,可以在單個(gè)機(jī)架(chassis)內(nèi)增加的計(jì)算資源量是有限的。隨著處理器數(shù)量和其他計(jì)算資源量增加,所產(chǎn)生的熱量和所需的電量也增加。網(wǎng)絡(luò)設(shè)備的單個(gè)機(jī)架中的冷卻和功率性能可能無法滿足需求,這導(dǎo)致網(wǎng)絡(luò)管理員使用單獨(dú)的機(jī)架以在網(wǎng)絡(luò)設(shè)備執(zhí)行各種管理任務(wù)的同時(shí),提供維持理想的網(wǎng)絡(luò)吞吐量所需的額外計(jì)算能力。網(wǎng)絡(luò)管理員必須管理作為單獨(dú)設(shè)備的每個(gè)額外機(jī)架,這增加管理網(wǎng)絡(luò)設(shè)備的復(fù)雜性。進(jìn)一步,在網(wǎng)絡(luò)設(shè)備上運(yùn)行的操作系統(tǒng)只可以支持至多一個(gè)最大數(shù)量的計(jì)算資源和軟件進(jìn)程,這限制可用于任何網(wǎng)絡(luò)設(shè)備的總計(jì)算能力。

【發(fā)明內(nèi)容】

[0006]一般地,本公開的技術(shù)旨在通過使網(wǎng)絡(luò)設(shè)備將任務(wù)卸荷(off-load)到在通信聯(lián)絡(luò)耦接至網(wǎng)絡(luò)設(shè)備并與其分開管理的計(jì)算云中運(yùn)行的一個(gè)或多個(gè)虛擬機(jī),來增加可用于網(wǎng)絡(luò)設(shè)備的計(jì)算資源。網(wǎng)絡(luò)設(shè)備運(yùn)行提供網(wǎng)絡(luò)設(shè)備的軟件功能的操作系統(tǒng)。每個(gè)虛擬機(jī)運(yùn)行其自身的對應(yīng)于由網(wǎng)絡(luò)設(shè)備運(yùn)行的操作系統(tǒng)的操作系統(tǒng)實(shí)例。虛擬機(jī)管理器注冊在計(jì)算云中運(yùn)行的各種虛擬機(jī)。當(dāng)網(wǎng)絡(luò)設(shè)備從計(jì)算云請求計(jì)算資源時(shí),虛擬機(jī)管理器識別能夠執(zhí)行網(wǎng)絡(luò)設(shè)備所請求的任務(wù)的一個(gè)或多個(gè)虛擬機(jī),并且建立虛擬機(jī)和網(wǎng)絡(luò)設(shè)備之間的網(wǎng)絡(luò)套接字。網(wǎng)絡(luò)設(shè)備將任務(wù)請求發(fā)送到虛擬機(jī),虛擬機(jī)將任務(wù)結(jié)果返回到網(wǎng)絡(luò)設(shè)備。用這種方式,網(wǎng)絡(luò)設(shè)備有選擇地將任務(wù)卸荷到虛擬機(jī),釋放網(wǎng)絡(luò)設(shè)備的計(jì)算資源來轉(zhuǎn)發(fā)包和執(zhí)行其他延遲敏感的任務(wù)。
[0007]在計(jì)算云中運(yùn)行的虛擬機(jī)可以分別運(yùn)行特定版本的網(wǎng)絡(luò)操作系統(tǒng),能夠使計(jì)算云為多個(gè)不同網(wǎng)絡(luò)設(shè)備和多個(gè)不同版本的網(wǎng)絡(luò)設(shè)備提供支持。進(jìn)一步,兩個(gè)或多個(gè)不同的虛擬機(jī)可以運(yùn)行特定版本的網(wǎng)絡(luò)操作系統(tǒng)。通過在單獨(dú)的虛擬機(jī)中運(yùn)行操作系統(tǒng)的多個(gè)實(shí)例,可用于網(wǎng)絡(luò)設(shè)備的計(jì)算資源量與計(jì)算云的能力有關(guān),而受到操作系統(tǒng)的限制。因此,隨著額外的計(jì)算資源的需求增加,計(jì)算云的計(jì)算資源和虛擬機(jī)的數(shù)量增加,而不受操作系統(tǒng)或網(wǎng)絡(luò)設(shè)備的規(guī)格的限制,包括資源限制、冷卻限制、和功率限制。
[0008]在一個(gè)實(shí)施方式中,方法包括:利用網(wǎng)絡(luò)設(shè)備從通信地耦接至該網(wǎng)絡(luò)設(shè)備的多個(gè)其他網(wǎng)絡(luò)設(shè)備接收多個(gè)鏈路狀態(tài)消息;利用在網(wǎng)絡(luò)設(shè)備中運(yùn)行的虛擬機(jī)代理將對計(jì)算云的可用計(jì)算資源的請求發(fā)送到在計(jì)算云運(yùn)行的虛擬機(jī)管理器;以及從虛擬機(jī)管理器接收包括在計(jì)算云運(yùn)行的至少一個(gè)虛擬機(jī)的網(wǎng)絡(luò)套接字的響應(yīng)。該方法還包括:利用虛擬機(jī)代理將確定網(wǎng)絡(luò)設(shè)備與多個(gè)其他網(wǎng)絡(luò)設(shè)備中的每一個(gè)之間的最短路徑的請求利用網(wǎng)絡(luò)套接字發(fā)送到虛擬機(jī),其中,請求包括多個(gè)鏈路狀態(tài)消息;從虛擬機(jī)接收包括網(wǎng)絡(luò)設(shè)備與多個(gè)其他網(wǎng)絡(luò)設(shè)備中的每一個(gè)之間的相應(yīng)的最短路徑的指示的響應(yīng)消息;以及基于響應(yīng)消息更新存儲在網(wǎng)絡(luò)設(shè)備的路由信息。
[0009]在另一個(gè)實(shí)施方式中,方法包括:由網(wǎng)絡(luò)設(shè)備運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng);以及利用在網(wǎng)絡(luò)設(shè)備運(yùn)行的虛擬機(jī)代理識別在通信地耦接至網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中,所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例。該方法進(jìn)一步包括:利用虛擬機(jī)代理將執(zhí)行任務(wù)的請求發(fā)送到虛擬機(jī);利用虛擬機(jī)代理從虛擬機(jī)接收包括執(zhí)行任務(wù)的結(jié)果的任務(wù)響應(yīng);以及基于包括在任務(wù)響應(yīng)中包括的結(jié)果更新網(wǎng)絡(luò)設(shè)備。
[0010]在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)設(shè)備包括:被配置為發(fā)送和接收消息的至少一個(gè)網(wǎng)絡(luò)接口、包含被配置為運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)或多個(gè)處理器的路由單元、以及可由路由單元運(yùn)行的虛擬機(jī)。虛擬機(jī)代理被配置為:識別在通信地耦接至網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中,所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例;利用至少一個(gè)網(wǎng)絡(luò)接口將執(zhí)行任務(wù)的請求發(fā)送至虛擬機(jī);以及利用至少一個(gè)網(wǎng)絡(luò)接口從虛擬機(jī)接收包括執(zhí)行任務(wù)的結(jié)果的任務(wù)響應(yīng)。路由單元被配置為基于包括在任務(wù)響應(yīng)中的結(jié)果更新網(wǎng)絡(luò)設(shè)備。
[0011]在另一個(gè)實(shí)施方式中,利用編碼有可由一個(gè)或多個(gè)處理器執(zhí)行的指令的計(jì)算機(jī)可讀存儲介質(zhì)運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng),并識別在通信地耦接至網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例。指令可進(jìn)一步被執(zhí)行為:將執(zhí)行任務(wù)的請求發(fā)送到所識別的虛擬機(jī);從虛擬機(jī)接收包括執(zhí)行任務(wù)的結(jié)果的任務(wù)響應(yīng),以及基于包括在任務(wù)響應(yīng)中所包括的結(jié)果更新網(wǎng)絡(luò)設(shè)備。
[0012]在下面的附圖和說明書中闡述了一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。根據(jù)說明書、附圖、和權(quán)利要求將明顯理解本公開的其他特征、目標(biāo)、和優(yōu)勢?!緦@綀D】

【附圖說明】
[0013]圖1是根據(jù)本公開的一個(gè)方面示出在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的示例系統(tǒng)的框圖。
[0014]圖2是根據(jù)本公開的一個(gè)方面示出在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的示例系統(tǒng)的其他細(xì)節(jié)的框圖。
[0015]圖3是根據(jù)本公開的一個(gè)方面示出示例計(jì)算云的框圖。
[0016]圖4是示出根據(jù)本公開的一個(gè)方面的在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的示例過程的流程圖。
【具體實(shí)施方式】
[0017]圖1是根據(jù)本公開的一個(gè)方面示出在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的示例系統(tǒng)的框圖。如圖1中所示,網(wǎng)絡(luò)系統(tǒng)2包括計(jì)算云10、路由器12A-12D(統(tǒng)稱為“路由器12”)、虛擬機(jī)管理器(VM MANAGER) 14、和虛擬機(jī)(VM) 16A-16N (統(tǒng)稱為“虛擬機(jī)16”)。計(jì)算云10作為包括虛擬機(jī)管理器14和虛擬機(jī)16的計(jì)算資源的主機(jī)。計(jì)算云10的計(jì)算資源可以是能夠執(zhí)行本公開的技術(shù)的任何計(jì)算資源。例如,計(jì)算云10可以包括服務(wù)器計(jì)算機(jī)、臺式計(jì)算機(jī)、便攜式計(jì)算機(jī)、或包括處理器的任何其他設(shè)備。盡管作為不同的實(shí)體示出,但是虛擬機(jī)管理器14和每個(gè)虛擬機(jī)16可以分配在計(jì)算云10的兩個(gè)以上不同的計(jì)算資源之間,虛擬機(jī)的數(shù)量可以不同于計(jì)算云10的不同計(jì)算資源的數(shù)量。
[0018]在某些示例中,兩個(gè)以上的虛擬機(jī)16可以至少部分地使用相同的計(jì)算資源。例如,虛擬機(jī)16A可以在三個(gè)不同的服務(wù)器之間運(yùn)行,而虛擬機(jī)16B可以在其上正在運(yùn)行虛擬機(jī)16A的三個(gè)服務(wù)器中的一個(gè)服務(wù)器上運(yùn)行。在某些示例中,計(jì)算云10的多個(gè)計(jì)算資源可以被配置為集群,提供額外的冗余和可擴(kuò)展性,同時(shí)支持多個(gè)虛擬機(jī)。一般地,每個(gè)虛擬機(jī)16運(yùn)行網(wǎng)絡(luò)操作性的實(shí)例。通常,每個(gè)網(wǎng)絡(luò)操作系統(tǒng)實(shí)例對應(yīng)于在通信地耦接至計(jì)算云10的網(wǎng)絡(luò)設(shè)備(例如,路由器12)上運(yùn)行的操作系統(tǒng)。
[0019]一般地,路由器12互相交換路由信息,從而保持更新的網(wǎng)絡(luò)的拓補(bǔ)結(jié)構(gòu)的視圖。例如,路由器12B從路由器12A接收包,并基于路由器12B保持的路由信息將包轉(zhuǎn)發(fā)到下一個(gè)中繼段,例如路由器12C。在本公開中描述的任務(wù)分配技術(shù)能夠使每個(gè)路由器12最少地使用相應(yīng)路由器12的計(jì)算資源來執(zhí)行各種配置和管理任務(wù)(例如,執(zhí)行路由協(xié)議,從而更新所存儲的路由和轉(zhuǎn)發(fā)信息),因而能夠使相應(yīng)路由器12的更多計(jì)算機(jī)資源用于轉(zhuǎn)發(fā)包和執(zhí)行其他延遲敏感的任務(wù)。
[0020]每個(gè)路由器12運(yùn)行提供輔助在網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)和路由包的某些功能的操作系統(tǒng)。各種不同的進(jìn)程(有時(shí)被稱為后臺進(jìn)程)在操作系統(tǒng)內(nèi)執(zhí)行或作為操作系統(tǒng)的一部分執(zhí)行。示例進(jìn)程包括控制機(jī)架及其部件的機(jī)架進(jìn)程、配置和監(jiān)控網(wǎng)絡(luò)接口的設(shè)備控制進(jìn)程(即,接口控制過程)、負(fù)責(zé)包傳輸?shù)霓D(zhuǎn)發(fā)進(jìn)程、管理進(jìn)程、以及路由協(xié)議進(jìn)程。管理進(jìn)程提供在其他進(jìn)程之間的通信,提供對配置數(shù)據(jù)庫的接口,利用配置信息填充配置數(shù)據(jù)庫,當(dāng)通過路由器12的用戶接口之一發(fā)布命令時(shí)還與其他進(jìn)程交互,等等。路由協(xié)議進(jìn)程規(guī)定了諸如路由信息協(xié)議(RIP)、開放最短路徑優(yōu)先(OSPF)協(xié)議、約束最短路徑優(yōu)先(CSPF)、虛擬專用局域網(wǎng)服務(wù)(VPLS)、以及邊界網(wǎng)關(guān)協(xié)議(BGP)的路由協(xié)議在設(shè)備上如何工作,包括選擇路由器和保持轉(zhuǎn)發(fā)表。[0021]如圖1中所示,路由器12B包括虛擬機(jī)代理18。隨著路由器12B執(zhí)行可以卸荷到一個(gè)或多個(gè)虛擬機(jī)16的各種任務(wù),虛擬機(jī)代理18管理路由器12B與計(jì)算云10之間的交互。例如,如果路由器12B更新路由器12B存儲的網(wǎng)絡(luò)圖,那么網(wǎng)絡(luò)圖的生成和下一個(gè)中繼段的計(jì)算可以卸荷到一個(gè)或多個(gè)虛擬機(jī)16。虛擬機(jī)代理18將消息發(fā)送到虛擬機(jī)管理器14 (例如,利用鏈路20),請求由虛擬機(jī)管理器14管理的計(jì)算資源。
[0022]虛擬機(jī)管理器14管理發(fā)送到虛擬機(jī)16的任務(wù),和存儲有關(guān)虛擬機(jī)16的配置信息。在某些示例中,虛擬機(jī)16中的每一個(gè)均向虛擬機(jī)管理器14注冊。在其他示例中,虛擬機(jī)管理器14主動詢問計(jì)算云10,從而識別可用的虛擬機(jī)(例如,虛擬機(jī)16)。由虛擬機(jī)管理器14存儲的確認(rèn)信息包括在每個(gè)虛擬機(jī)16運(yùn)行的操作系統(tǒng)版本。配置信息還可以包括每個(gè)虛擬機(jī)16所被配置執(zhí)行的任務(wù)(例如,網(wǎng)絡(luò)圖生成、下一個(gè)中繼段的確定等等)。
[0023]當(dāng)虛擬機(jī)代理18將對計(jì)算資源的請求發(fā)送到虛擬機(jī)管理器14時(shí),虛擬機(jī)管理器14確定計(jì)算云10是否具有可用于執(zhí)行任務(wù)的資源。如果計(jì)算云10具有可用的計(jì)算資源,那么虛擬機(jī)管理器14將響應(yīng)發(fā)送到路由器12B表明計(jì)算云10可以提供幫助。虛擬機(jī)代理18發(fā)送對包括在路由器12B運(yùn)行并且任務(wù)路由器12B正在請求計(jì)算云10運(yùn)行的版本操作系統(tǒng)的計(jì)算資源的特定請求。虛擬機(jī)管理器14識別虛擬機(jī)16中正在運(yùn)行合適版本的操作系統(tǒng)的、具有執(zhí)行所請求的任務(wù)的可用計(jì)算資源的、并且包括執(zhí)行所請求任務(wù)所需的功能的一個(gè)虛擬機(jī)(例如,虛擬機(jī)16B)。一旦虛擬機(jī)管理器14識別到虛擬機(jī)16中的一個(gè)能夠執(zhí)行所請求的任務(wù),虛擬機(jī)管理器14就將響應(yīng)消息發(fā)送到虛擬機(jī)代理18,表明計(jì)算云10可以提供幫助。
[0024]虛擬機(jī)代理18生成并發(fā)送第二請求消息以發(fā)送到虛擬機(jī)管理器14。第二請求消息包括由路由器12B運(yùn)行的至少一個(gè)操作系統(tǒng)版本和有關(guān)路由器12B正請求幫助的任務(wù)的信息。虛擬機(jī)管理器14接收第二請求消息并確定虛擬機(jī)16中是否有任何一個(gè)支持在請求消息中具體指定的操作系統(tǒng)版本并可以執(zhí)行所請求的任務(wù)。為了識別合適的虛擬機(jī)16,虛擬機(jī)管理器14訪問所存儲的配置信息或?qū)ε渲眯畔⒌恼埱蟀l(fā)送到至少一個(gè)虛擬機(jī)16(例如,虛擬機(jī)16B)?;谂渲眯畔ⅲ摂M機(jī)管理器14識別至少一個(gè)虛擬機(jī)16并在所識別的虛擬機(jī)16處建立套接字連接。虛擬機(jī)管理器14發(fā)送響應(yīng)消息到包括套接字連接信息的虛擬機(jī)代理18。
[0025]在從虛擬機(jī)管理器14接收響應(yīng)消息之后,虛擬機(jī)代理18將所需的配置信息與所標(biāo)識的虛擬機(jī)16 (例如,虛擬機(jī)16B)交換消息,而不與虛擬機(jī)管理器14交換額外的消息。利用套接字22,虛擬機(jī)代理18與虛擬機(jī)16B交換消息,從而使得虛擬機(jī)16B執(zhí)行所請求的任務(wù)。
[0026]盡管以上描述的安裝過程包括兩個(gè)步驟(首先詢問是否任何計(jì)算資源可用,然后提供具體的任務(wù)需求),在某些實(shí)例中,安裝過程可以在單個(gè)步驟中執(zhí)行。例如,虛擬機(jī)代理18可以將單個(gè)請求消息發(fā)送到虛擬機(jī)管理器14。單個(gè)請求消息包括在路由器12B運(yùn)行的操作系統(tǒng)版本和有關(guān)計(jì)算云10要執(zhí)行的任務(wù)的信息。虛擬機(jī)管理器14接收單個(gè)請求消息并確定計(jì)算云10內(nèi)是否有足夠的可用計(jì)算資源。如果沒有足夠的可用計(jì)算資源,那么虛擬機(jī)管理器14將指示這次計(jì)算云10不能為任務(wù)提供支持的響應(yīng)消息發(fā)送到虛擬機(jī)代理18。如果存在足夠的可用計(jì)算資源,那么虛擬機(jī)管理器14識別虛擬機(jī)16中正在運(yùn)行相同版本的操作系統(tǒng)并能夠執(zhí)行所要求任務(wù)的一個(gè)虛擬機(jī)(例如,虛擬機(jī)16B)。然后,虛擬機(jī)管理器14在虛擬機(jī)16B處建立套接字(例如,創(chuàng)建具體的互聯(lián)網(wǎng)協(xié)議(IP)地址和端口號)以供虛擬機(jī)代理18當(dāng)交換執(zhí)行任務(wù)所需的消息時(shí)使用,并發(fā)送包括該套接字信息的響應(yīng)消息。虛擬機(jī)代理18可以開始利用套接字發(fā)送消息到虛擬機(jī)16B,以使虛擬機(jī)16B執(zhí)行所請求的任務(wù),而不需要在虛擬機(jī)代理18和虛擬機(jī)管理器14之間交換的額外的請求和響應(yīng)消息。
[0027]在某些實(shí)施方式中,虛擬機(jī)管理器14可以包括與兩個(gè)以上的不同虛擬機(jī)16相關(guān)聯(lián)的套接字信息。在這些實(shí)施方式中,虛擬機(jī)代理18可以將任務(wù)分配為兩個(gè)以上的不同的虛擬機(jī)16中的每個(gè)虛擬機(jī)執(zhí)行至少一部分任務(wù)。然而,在某些實(shí)例中,盡管虛擬機(jī)代理18接收兩個(gè)以上的不同虛擬機(jī)16的套接字信息,但是虛擬機(jī)代理18可以選擇虛擬機(jī)16中的一個(gè)來執(zhí)行整個(gè)任務(wù)和丟棄或忽略包括在其他虛擬機(jī)響應(yīng)中的套接字信息。
[0028]在某些實(shí)例中,路由器12可以包括在網(wǎng)絡(luò)的一個(gè)或多個(gè)不同的邏輯段中。例如,路由器12A和12B可以是第一邏輯段的一部分,而路由器12B、12C、和12D可以是第二邏輯段的一部分。根據(jù)本公開的技術(shù),根據(jù)OSPF計(jì)算每個(gè)邏輯段的網(wǎng)絡(luò)圖和最短路徑可以由虛擬機(jī)16中的不同虛擬機(jī)執(zhí)行。也就是說,當(dāng)路由器12B被配置為更新每個(gè)邏輯段的網(wǎng)絡(luò)圖時(shí),虛擬機(jī)代理18可以建立到兩個(gè)不同虛擬機(jī)16的套接字連接。利用兩個(gè)不同的套接字連接,虛擬機(jī)代理18將第一邏輯段的第一組所接收鏈路狀態(tài)消息發(fā)送到第一虛擬機(jī)16 (例如,虛擬機(jī)16A)和將第二邏輯段的第二組所接收鏈路狀態(tài)消息發(fā)送到第二虛擬機(jī)16 (例如,虛擬機(jī)16B)。
[0029]用這種方式,本公開的技術(shù)能夠使用虛擬機(jī)提供在一組轉(zhuǎn)發(fā)設(shè)備(例如路由器12)中對計(jì)算資源的邏輯分割。根據(jù)需要,虛擬機(jī)可以被建立和分配在可用的計(jì)算云的計(jì)算資源間。每個(gè)虛擬機(jī)可以負(fù)責(zé)特定的功能,例如運(yùn)行一組轉(zhuǎn)發(fā)設(shè)備的特定路由協(xié)議或接口控制,而其他的虛擬機(jī)可以提供管理功能。此外,因?yàn)椴僮骺梢园l(fā)生在每個(gè)虛擬機(jī)中,所以特定功能的多個(gè)實(shí)例可以同時(shí)由多個(gè)不同的虛擬機(jī)執(zhí)行。也就是說,多個(gè)控制平面進(jìn)程、數(shù)據(jù)平面進(jìn)程、和管理平面進(jìn)程各自利用單獨(dú)的虛擬機(jī)。因此,本公開的技術(shù)能夠通過更高級別的資源分割更高效地使用轉(zhuǎn)發(fā)設(shè)備中存在的計(jì)算資源。此外,盡管關(guān)于執(zhí)行路由和轉(zhuǎn)發(fā)功能的路由器描述了本技術(shù),但是本技術(shù)可以適用于包括第三層(“L3”)交換機(jī)、第二層(“L2”)交換機(jī)、L2/L3交換機(jī)、OpenFlow交換機(jī)、或其他網(wǎng)絡(luò)設(shè)備的其他網(wǎng)絡(luò)設(shè)備。在這些示例中,路由單元30不一定包括RP后臺進(jìn)程40,和作為替代將RP后臺進(jìn)程40功能卸荷到VM16。
[0030]圖2是根據(jù)本公開的一個(gè)方面示出圖1中所示的一部分網(wǎng)絡(luò)系統(tǒng)的進(jìn)一步細(xì)節(jié)的框圖。如圖2中所示,系統(tǒng)2包括計(jì)算云10、局域網(wǎng)(LAN)ll、和路由器12B。路由器12B包括路由單元30、轉(zhuǎn)發(fā)單元34、和交換結(jié)構(gòu)36。交換結(jié)構(gòu)36提供柔性物理接口卡(“PIC”)互連組集中器50A-50N (“FPC50”),每個(gè)集中器包括通過一組接口卡(“IFC”)54、56、和57分別發(fā)送和接收流量的至少一個(gè)包轉(zhuǎn)發(fā)引擎52A-52N(“PFE52”),其中接口卡通常具有一個(gè)或多個(gè)物理網(wǎng)絡(luò)接口(即,端口)。某些PFE52可以通過隧道PIC發(fā)送和接收流量。
[0031]FPC50、包括在FPC50內(nèi)的部件、和交換結(jié)構(gòu)36共同提供用于轉(zhuǎn)發(fā)經(jīng)過的網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)平面。盡管圖2中未示出,但是PFE52可以各自包括中央處理單元(CPU)、存儲器、和一個(gè)或多個(gè)可編程包轉(zhuǎn)發(fā)專用集成電路(ASIC)。交換結(jié)構(gòu)36提供用于在PFE52之間轉(zhuǎn)發(fā)到來的數(shù)據(jù)包的高速互連,以便于網(wǎng)絡(luò)上的傳輸。
[0032]路由單元30提供執(zhí)行路由器12B的控制平面功能的各種協(xié)議的操作環(huán)境。例如,后臺進(jìn)程38除其他功能外,還包括運(yùn)行網(wǎng)絡(luò)管理軟件、執(zhí)行路由協(xié)議從而與對等路由器通信、保持和更新一個(gè)或多個(gè)路由表、以及產(chǎn)生用于到PFE52的安裝的一個(gè)或多個(gè)轉(zhuǎn)發(fā)表的用戶級進(jìn)程。在圖2中所示的示例中,后臺進(jìn)程38包括路由協(xié)議(RP)后臺進(jìn)程40、管理(MGMT)后臺進(jìn)程42、和虛擬機(jī)(VM)代理18。在其他的實(shí)施方式中,后臺進(jìn)程38可以包括其他后臺進(jìn)程或軟件模塊,例如機(jī)架后臺進(jìn)程、配置后臺進(jìn)程、和設(shè)備控制后臺進(jìn)程。
[0033]后臺進(jìn)程38在內(nèi)核32上工作并與內(nèi)核32交互,其為用戶級進(jìn)程提供運(yùn)行時(shí)間操作環(huán)境。內(nèi)核32可以包括,例如,諸如Linux或伯克利軟件套件(BSD)這樣的UNIX操作系統(tǒng)衍生物,。一般地,內(nèi)核32對應(yīng)于特定版本的網(wǎng)絡(luò)操作系統(tǒng)。內(nèi)核32提供庫和驅(qū)動程序,后臺進(jìn)程38通過庫和驅(qū)動程序可以與基礎(chǔ)系統(tǒng)進(jìn)行交互。內(nèi)核32包含內(nèi)核級庫,例如,套接字庫,后臺進(jìn)程38和其他用戶級進(jìn)程或用戶級庫通過套接字庫可以與PFE52進(jìn)行交互。
[0034]路由協(xié)議后臺進(jìn)程40執(zhí)行一個(gè)或多個(gè)內(nèi)部和/或外部路由協(xié)議來與其他網(wǎng)絡(luò)設(shè)備交換路由信息,將接收的信息存儲在路由信息44中、和將提取的轉(zhuǎn)發(fā)信息存儲在轉(zhuǎn)發(fā)信息46中。路由協(xié)議后臺進(jìn)程42將轉(zhuǎn)發(fā)平面配置成實(shí)施包轉(zhuǎn)發(fā)服務(wù)、增加/修改/刪除路由路線、以及通過將表示轉(zhuǎn)發(fā)信息46的轉(zhuǎn)發(fā)結(jié)構(gòu)安裝在PFE52中修改包轉(zhuǎn)發(fā)路徑。
[0035]示出圖2中所示的路由器12B的架構(gòu)僅僅是為了進(jìn)行說明。本發(fā)明不限于該架構(gòu)。在其他的實(shí)施方式中,路由器12B可以通過多種方式配置。在一個(gè)實(shí)施方式中,例如,路由單元30的某些功能可以分配在PFE52內(nèi)。路由單元30的操作環(huán)境可以單獨(dú)以軟件或硬件實(shí)施,或可以作為軟件、硬件、或固件的組合實(shí)施。例如,路由單元30可以包括執(zhí)行軟件指令的一個(gè)或多個(gè)處理器。在該情況中,路由單元30可以包括在操作系統(tǒng)上執(zhí)行的各種軟件模塊或后臺進(jìn)程,例如,后臺進(jìn)程38,并且可以包括用于存儲可執(zhí)行指令的永久性計(jì)算機(jī)可讀存儲設(shè)備,例如計(jì)算機(jī)存儲器或硬盤驅(qū)動器。
[0036]路由單元30的硬件環(huán)境可以包括執(zhí)行程序指令從而同時(shí)執(zhí)行內(nèi)核32和路由單元30的操作環(huán)境的一個(gè)或多個(gè)處理器(圖2中未示出)。處理器可以包括一個(gè)或多個(gè)通用或?qū)S锰幚砥鳎鐢?shù)字信號處理器(DSP)、專用集成電路(ASIC)、場可編程門陣列(FPGA)、或任何其他等價(jià)的邏輯設(shè)備。因此,本文中所使用的術(shù)語“處理器”或“控制器”是指可操作地執(zhí)行本文中所描述的技術(shù)的任何一個(gè)或多個(gè)前述結(jié)構(gòu)或任何其他結(jié)構(gòu)。
[0037]計(jì)算機(jī)可讀存儲介質(zhì)可以包括隨機(jī)存儲器(RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PR0M)、可擦除可編程只讀存儲器(RPR0M)、電可擦除可編程只讀存儲器(EEPROM),非易失性隨機(jī)存取存儲器(NVRAM)、閃存、硬盤驅(qū)動器、⑶-ROM、軟盤、盒式磁帶、固態(tài)驅(qū)動器、磁介質(zhì)、光學(xué)介質(zhì)、或其他計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以利用對應(yīng)于路由器12B的各個(gè)方面(例如,協(xié)議)的指令編碼。在某些示例中,對于這些方面,路由單元30從存儲器檢索和執(zhí)行指令。
[0038]本公開的技術(shù)能夠使路由器12B將管理任務(wù)、路由協(xié)議更新、或其他任務(wù)分配給在計(jì)算云10運(yùn)行的虛擬機(jī)。舉一個(gè)實(shí)例來說,路由器12B使用OSPF聚集來自可用路由器的鏈路狀態(tài)信息并構(gòu)造網(wǎng)絡(luò)的拓補(bǔ)圖。當(dāng)路由器12B執(zhí)行OSPF更新網(wǎng)絡(luò)拓補(bǔ)而不實(shí)施本公開的任務(wù)分配技術(shù)時(shí),在更新期間可以消耗路由器12B的大多數(shù)(例如,百分之八十)計(jì)算資源。然而,通過將至少一部分OSPF計(jì)算分配給一個(gè)或多個(gè)虛擬機(jī)16 (如圖1中所示),使用計(jì)算云10的計(jì)算資源,從而降低更新網(wǎng)絡(luò)拓補(bǔ)所需的路由器12B的計(jì)算資源量。
[0039]為了更新網(wǎng)絡(luò)拓補(bǔ),通過與網(wǎng)絡(luò)中的其他路由器交換鏈路狀態(tài)通告消息,路由器12B周期性地識別路由器12B直接連接的所有其他節(jié)點(diǎn)卿,路由器)(例如,圖1中所示的路由器12A、12C、和12D)。利用所接收的整個(gè)鏈路狀態(tài)消息組,路由器12B通過對鏈路狀態(tài)消息集合進(jìn)行迭代產(chǎn)生網(wǎng)絡(luò)圖。對于每個(gè)接收的鏈路狀態(tài)消息,路由器12B根據(jù)發(fā)送消息的路由器與該消息中被指示為是發(fā)送節(jié)點(diǎn)的相鄰節(jié)點(diǎn)的所有路由器之間的網(wǎng)絡(luò)圖建立鏈路。
[0040]代替路由處理后臺進(jìn)程40本身對鏈路狀態(tài)消息集合進(jìn)行迭代并在路由單元30內(nèi)生成圖,虛擬機(jī)代理18識別計(jì)算云10中可以生成網(wǎng)絡(luò)圖的的虛擬機(jī)(例如,圖1中所示的虛擬機(jī)16B)。在識別虛擬機(jī)的過程中,虛擬機(jī)代理發(fā)送消息到虛擬機(jī)管理器14 (圖1)請求對任務(wù)的協(xié)助。如果計(jì)算云10具有充足的可用計(jì)算資源,那么虛擬機(jī)管理器14發(fā)送表明計(jì)算云10可以有助于任務(wù)的響應(yīng)。然后,虛擬機(jī)代理18發(fā)送包括在路由器12B運(yùn)行的操作系統(tǒng)版本(例如,在路由單元30運(yùn)行的內(nèi)核32版本)的任務(wù)請求消息和有關(guān)該任務(wù)的特定信息(例如,根據(jù)OSPF更新網(wǎng)絡(luò)拓補(bǔ))。虛擬機(jī)管理器14確定任何虛擬機(jī)16是否合適地配置為執(zhí)行具體的任務(wù)。如果存在合適配置的至少一個(gè)虛擬機(jī)16,那么虛擬機(jī)管理器14在虛擬機(jī)(例如,虛擬機(jī)16B)處建立套接字,并將響應(yīng)消息發(fā)送到包括套接字信息的虛擬機(jī)代理18。
[0041]虛擬機(jī)代理18利用從虛擬機(jī)管理器14接收的套接字信息與每個(gè)已識別的虛擬機(jī)16交換消息。也就是說,一旦建立套接字,虛擬機(jī)代理18就可以與一個(gè)或多個(gè)虛擬機(jī)16進(jìn)行通信,而無需通過虛擬機(jī)管理器14發(fā)送消息(例如,不需要虛擬機(jī)管理器14作為中繼運(yùn)行。繼續(xù)進(jìn)行根據(jù)OSPF更新網(wǎng)絡(luò)圖的示例,虛擬機(jī)代理18利用套接字將接收的鏈路狀態(tài)消息發(fā)送到虛擬機(jī)16B。虛擬機(jī)16B對從虛擬機(jī)代理14接收的鏈路狀態(tài)消息進(jìn)行迭代并生成網(wǎng)絡(luò)圖。
[0042]一旦生成完整的圖,虛擬機(jī)16B就計(jì)算路由器12B與網(wǎng)絡(luò)中其他路由器之間的最短路徑。在一個(gè)示例中,虛擬機(jī)代理18從虛擬機(jī)16B接收完整的圖。通常,路由單元30,以及更具體地,路由協(xié)議后臺進(jìn)程40,將算法(例如,Dijkstra算法)應(yīng)用于網(wǎng)絡(luò)圖,從而確定從路由器12B到網(wǎng)絡(luò)中每個(gè)其他路由器的最短路徑。根據(jù)本公開的技術(shù),虛擬機(jī)代理18利用套接字將完整的網(wǎng)絡(luò)圖發(fā)送到虛擬機(jī)16B并請求虛擬機(jī)16B計(jì)算最短路徑,因而釋放路由器12B的計(jì)算資源來執(zhí)行其他功能,例如包轉(zhuǎn)發(fā)。在另一個(gè)示例中,虛擬機(jī)16B不發(fā)送完整的網(wǎng)絡(luò)圖到虛擬機(jī)代理18和/或不等待來自虛擬機(jī)代理18的額外指令,作為替代,一旦網(wǎng)絡(luò)圖生成進(jìn)程完成,就自動地開始確定最短路徑。為了計(jì)算最短路徑,虛擬機(jī)16B生成含有網(wǎng)絡(luò)中的所有路由器的樹結(jié)構(gòu),并且將該樹結(jié)構(gòu)組織為:從路由器12B到任何其他路由器的最短路徑由從樹的根部(即,路由器12B)到期望的路由器進(jìn)行遍歷所得到的節(jié)點(diǎn)列表所指示。在已識別的虛擬機(jī)16計(jì)算最短路徑之后,虛擬機(jī)16B將最短路徑的完整樹發(fā)送到虛擬機(jī)代理18。虛擬機(jī)代理18從虛擬機(jī)16B接收完整的樹和將其傳遞到路由協(xié)議后臺進(jìn)程40。路由協(xié)議后臺進(jìn)程更新路由信息并基于所完成的樹轉(zhuǎn)發(fā)信息。
[0043]盡管關(guān)于根據(jù)OSPF計(jì)算網(wǎng)絡(luò)圖并確定到網(wǎng)絡(luò)中其他路由器的最短路徑描述本技術(shù),但是本公開的技術(shù)可以應(yīng)用于任何管理或其他任務(wù),包括根據(jù)其他路由協(xié)議(例如,RGP、BGP、IS-1S、生成樹協(xié)議等等)更新路由信息和執(zhí)行各種管理任務(wù)。優(yōu)選地,諸如在轉(zhuǎn)發(fā)包期間確定下一個(gè)中繼段這樣的延遲敏感的任務(wù)將不分配給計(jì)算云10中的一個(gè)或多個(gè)虛擬機(jī)16。然而,可預(yù)期的是任何任務(wù)可以由通信地或可操作地耦接至路由器12B的一個(gè)或多個(gè)虛擬機(jī)16執(zhí)行。[0044]圖3是根據(jù)本公開的一個(gè)方面示出示例計(jì)算云的框圖。計(jì)算云10包括虛擬機(jī)管理器14和虛擬機(jī)16A-16N。在某些實(shí)施方式中,虛擬機(jī)管理器14是在一個(gè)虛擬機(jī)16內(nèi)執(zhí)行的軟件進(jìn)程。計(jì)算云10的計(jì)算資源可以包括服務(wù)器計(jì)算機(jī)、臺式計(jì)算機(jī)、便攜式計(jì)算機(jī)、或可以運(yùn)行網(wǎng)絡(luò)操作系統(tǒng)并執(zhí)行與網(wǎng)絡(luò)設(shè)備相關(guān)聯(lián)的一個(gè)或多個(gè)任務(wù)的任何其他設(shè)備。在某些實(shí)例中,兩個(gè)以上的虛擬機(jī)16可以至少部分地利用相同的計(jì)算資源。例如,虛擬機(jī)16A和16B可以同時(shí)在單個(gè)服務(wù)器上運(yùn)行。單個(gè)虛擬機(jī)16可以在兩個(gè)以上的不同的計(jì)算資源之間運(yùn)行。舉例來說,多個(gè)普通的成品計(jì)算機(jī)可以配置為集群。計(jì)算機(jī)集群可以運(yùn)行單個(gè)虛擬機(jī)16,在支持多個(gè)虛擬機(jī)的同時(shí),提供額外的冗余和可伸縮性。一般地,每個(gè)虛擬機(jī)16運(yùn)行網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例、網(wǎng)絡(luò)設(shè)備后臺進(jìn)程的實(shí)例(例如,管理后臺進(jìn)程)、和/或路由協(xié)議的實(shí)例(例如,OSPF, BGP、IS-1S等等)。
[0045]虛擬機(jī)管理器14包括CPU60和存儲器62。虛擬機(jī)管理器14的CPU60被配置為執(zhí)行存儲在存儲器62中的指令。存儲器62可以包含一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),例如永久性計(jì)算機(jī)可讀存儲介質(zhì)。這樣的介質(zhì)的示例包括RAM、ROM、NVRAM、EEPR0M、閃存、和其他計(jì)算機(jī)可讀存儲介質(zhì)。存儲器62包括配置(CONFIG)數(shù)據(jù)64和虛擬機(jī)管理模塊(VM MGMTMODULE)66。配置數(shù)據(jù)64是被配置為存儲虛擬機(jī)16的配置信息的數(shù)據(jù)存儲庫的一個(gè)示例,包括虛擬機(jī)16中的每一個(gè)虛擬機(jī)的性能和配置。
[0046]在某些實(shí)施方式中,VM管理模塊66是CPU60可執(zhí)行的軟件模塊。一般地,當(dāng)建立和終止每個(gè)虛擬機(jī)16時(shí),VM管理模塊66管理虛擬機(jī)16的注冊。換句話說,VM管理模塊66利用每個(gè)虛擬機(jī)16的配置信息更新配置數(shù)據(jù)64。例如,當(dāng)實(shí)例化虛擬機(jī)16A時(shí),虛擬機(jī)16A向虛擬機(jī)管理器14注冊(例如,通過發(fā)送包括虛擬機(jī)16A上線的指示和虛擬機(jī)16A的配置和/或性能的消息)。VM管理模塊66處理虛擬機(jī)注冊并將性能(例如,在虛擬機(jī)運(yùn)行的操作系統(tǒng)版本和在虛擬機(jī)執(zhí)行的軟件進(jìn)程等等)存儲在配置數(shù)據(jù)64中。響應(yīng)一個(gè)正在終止(例如,關(guān)閉)的虛擬機(jī)16,VM管理模塊66從配置數(shù)據(jù)64中移除特定虛擬機(jī)16的配置信息。
[0047]響應(yīng)于虛擬機(jī)管理器14從網(wǎng)絡(luò)設(shè)備(例如,圖1的路由器12B)接收請求,VM管理模塊66查詢配置數(shù)據(jù)64以確定當(dāng)前是否正在運(yùn)行任何虛擬機(jī)。如果配置數(shù)據(jù)64中不存在虛擬機(jī)16的配置信息(即,當(dāng)前沒有虛擬機(jī)正在運(yùn)行),那么VM管理模塊66生成表明計(jì)算云10不能對路由器12B執(zhí)行任務(wù)提供幫助的消息。如果配置數(shù)據(jù)64中存在至少一個(gè)虛擬機(jī)16的配置信息(即,至少一個(gè)虛擬機(jī)16正在運(yùn)行),那么VM管理模塊66生成表明計(jì)算云10具有可用計(jì)算資源和能夠協(xié)助路由器12B執(zhí)行任務(wù)的消息。在某些示例中,即使未運(yùn)行虛擬機(jī)16,如果計(jì)算云10具有可用的計(jì)算資源,那么VM管理模塊66生成表明計(jì)算云10可以協(xié)助路由器12B執(zhí)行任務(wù)的消息。
[0048]在計(jì)算云10可以協(xié)助路由器12B執(zhí)行任務(wù)的實(shí)例中,虛擬機(jī)管理器14從路由器12B接收特定的任務(wù)請求。特定的任務(wù)請求包括有關(guān)路由器12B正在請求協(xié)助的任務(wù)的細(xì)節(jié)和在路由器12B中運(yùn)行的特定的網(wǎng)絡(luò)操作系統(tǒng)版本。VM管理模塊66查詢配置數(shù)據(jù)64以確定是否有任何的虛擬機(jī)16被配置有與路由器12B所運(yùn)行的網(wǎng)絡(luò)操作系統(tǒng)相同版本的網(wǎng)絡(luò)操作系統(tǒng)和完成所請求任務(wù)所需的合適進(jìn)程、后臺進(jìn)程、或其他性能。
[0049]如果沒有被合適地配置的虛擬機(jī)16或如果當(dāng)前沒有虛擬機(jī)16正在運(yùn)行,那么VM管理模塊66可以使一個(gè)新的虛擬機(jī)16被實(shí)例化為具有執(zhí)行特定任務(wù)所需的配置。一般地,根據(jù)需要,虛擬機(jī)16產(chǎn)生和分布在計(jì)算云10的計(jì)算資源之間。兩個(gè)以上的虛擬機(jī)16可以分別支持特定功能的實(shí)例(例如,OSPF、接口控制等等)。因此,路由器12B可以各自利用個(gè)體的虛擬機(jī)16訪問多個(gè)控制平面、數(shù)據(jù)平面、和管理平面。
[0050]如果存在滿足特定任務(wù)需求的至少一個(gè)虛擬機(jī)16 (例如,虛擬機(jī)16A),那么VM管理模塊66建立虛擬機(jī)16A的套接字。在存在滿足特定任務(wù)需求的兩個(gè)以上的不同的虛擬機(jī)16 (例如,虛擬機(jī)16A和16B)的實(shí)例中,虛擬機(jī)管理模塊66可以在虛擬機(jī)16A和16B建立套接字,并且將所有套接字信息傳遞回虛擬機(jī)代理18。如圖3中所示,虛擬機(jī)16A包括鏈路狀態(tài)路由協(xié)議70和路由協(xié)議(RP)后臺進(jìn)程72。相似地,虛擬機(jī)16B包括鏈路狀態(tài)路由協(xié)議80和路由協(xié)議(RP)后臺進(jìn)程82。在圖3的示例中,虛擬機(jī)16A和16B可以同時(shí)協(xié)助鏈路狀態(tài)路由協(xié)議計(jì)算(例如,OSPF, IS-1S等等)。
[0051]在識別到兩個(gè)以上的虛擬機(jī)16 (例如,虛擬機(jī)16A和16B)和特定任務(wù)正在執(zhí)行OSPF計(jì)算的實(shí)例中,每個(gè)虛擬機(jī)可以接收一部分所接收的鏈路狀態(tài)消息,以使虛擬機(jī)16A對第一部分的鏈路狀態(tài)消息進(jìn)行迭代并返回網(wǎng)絡(luò)的局部圖,而虛擬機(jī)16B對第二部分的鏈路狀態(tài)消息進(jìn)行迭代并返回網(wǎng)絡(luò)的另一個(gè)局部圖。在某些實(shí)例中,虛擬機(jī)16A和16B中的任一個(gè)都可以與請求一起從虛擬機(jī)代理18 (圖2)接收兩個(gè)局部圖并基于這兩個(gè)局部圖生成完整圖。相似地,虛擬機(jī)16A和16B中的每個(gè)虛擬機(jī)可以執(zhí)行最短路徑計(jì)算的一部分。
[0052]在某些實(shí)施方式中,計(jì)算云10支持開放式虛擬機(jī)主機(jī)基礎(chǔ)結(jié)構(gòu)集成第三方虛擬機(jī)。在這些實(shí)施方式中,第三方虛擬機(jī)不是本地網(wǎng)絡(luò)操作系統(tǒng)的一部分。為了能夠在虛擬機(jī)16和第三方虛擬機(jī)之間進(jìn)行通信,第三方虛擬機(jī)被視為單獨(dú)的設(shè)備,利用應(yīng)用程序編程接口(API)與本地虛擬機(jī)進(jìn)行通信。第三方虛擬機(jī)可以提供本地虛擬機(jī)不支持的額外功能。
[0053]圖4是根據(jù)本公開的一個(gè)方面示出在虛擬機(jī)之間分配網(wǎng)絡(luò)設(shè)備任務(wù)的示例過程的流程圖。為了簡潔起見,將關(guān)于圖1的系統(tǒng)2和圖2的路由器12B描述圖4中所示的進(jìn)程。盡管下面關(guān)于路由器和路由協(xié)議進(jìn)行描述,但是本公開的技術(shù)的其他實(shí)施方式可以使用其他網(wǎng)絡(luò)設(shè)備和其他進(jìn)程、后臺進(jìn)程、或網(wǎng)絡(luò)協(xié)議。
[0054]路由器12B確定需要完成的一個(gè)或多個(gè)任務(wù),虛擬機(jī)代理18發(fā)送請求到計(jì)算云10確定計(jì)算云10是否能夠執(zhí)行至少一部分任務(wù)(100)。在某些實(shí)施方式中,路由器12B和虛擬機(jī)管理器14利用兩級設(shè)置進(jìn)程來建立路由器12B和一個(gè)或多個(gè)虛擬機(jī)16之間的連接。在這些實(shí)施方式中,初始請求消息是確定計(jì)算云10是否具有任何可用計(jì)算資源的請求。虛擬機(jī)管理器14接收請求(102)和確定當(dāng)前是否有任何虛擬機(jī)16正在運(yùn)行和/或虛擬機(jī)管理器14是否可以實(shí)例化計(jì)算云10內(nèi)的任何其他的虛擬機(jī)。虛擬機(jī)管理器14向路由器12B發(fā)送表明在計(jì)算云10內(nèi)是否有可用資源的響應(yīng)消息(104)。
[0055]虛擬機(jī)代理18從虛擬機(jī)管理器14接收響應(yīng)消息(106)。如果響應(yīng)消息表明計(jì)算云10中不存在可用的計(jì)算資源,那么虛擬機(jī)代理18終止設(shè)置過程并且路由器12B執(zhí)行任務(wù)。如果響應(yīng)消息表明計(jì)算云10中存在可用計(jì)算資源,那么虛擬機(jī)代理18生成包括在路由器12B運(yùn)行的網(wǎng)絡(luò)操作系統(tǒng)版本和所請求任務(wù)的細(xì)節(jié)的第二請求消息。在路由器12B和虛擬機(jī)管理器14利用單步設(shè)置進(jìn)程建立路由器12B與一個(gè)或多個(gè)虛擬機(jī)16之間的連接的實(shí)施方式中,從路由器12B發(fā)送到虛擬機(jī)管理器14的初始請求消息對應(yīng)于第二請求消息。也就是說,在這些實(shí)施方式中,路由器12B可以跳過在確定計(jì)算云10是否具有充足可用的計(jì)算資源幫助執(zhí)行任務(wù)的過程中使用的初始請求消息。虛擬機(jī)代理18將第二請求消息發(fā)送到虛擬機(jī)管理器14 (108)。[0056]虛擬機(jī)管理器14接收第二請求消息(110)和識別具有相同版本的網(wǎng)絡(luò)操作系統(tǒng)且能夠執(zhí)行任務(wù)的一個(gè)或多個(gè)虛擬機(jī)16 (112)。一個(gè)或多個(gè)當(dāng)前運(yùn)行的虛擬機(jī)16可以被配置有執(zhí)行任務(wù)所需版本的網(wǎng)絡(luò)操作系統(tǒng)和所需的進(jìn)程、后臺進(jìn)程、或其他性能。然而,如果沒有虛擬機(jī)16滿足第二需求消息中具體指定的需求,那么虛擬機(jī)管理器14可以實(shí)例化滿足需求且可以執(zhí)行所請求的任務(wù)的新的虛擬機(jī)16。響應(yīng)于識別可以進(jìn)行所請求任務(wù)的一個(gè)或多個(gè)虛擬機(jī)16,虛擬機(jī)管理器14在一個(gè)或多個(gè)所識別的虛擬機(jī)16中的每個(gè)虛擬機(jī)處建立套接字連接并將套接字信息發(fā)送到路由器12B (114)。
[0057]響應(yīng)于接收套接字信息(116),虛擬機(jī)代理18利用套接字信息將特定的任務(wù)信息(例如,鏈路狀態(tài)消息、配置信息等等)發(fā)送到一個(gè)或多個(gè)所識別的虛擬機(jī)16 (118)。每個(gè)所識別的虛擬機(jī)16接收任務(wù)信息(120)并進(jìn)行完成任務(wù)所需的操作(122)。在完成任務(wù)之后,相應(yīng)的所識別的虛擬機(jī)16利用套接字將任務(wù)結(jié)果發(fā)送到虛擬機(jī)代理18。虛擬機(jī)代理18接收任務(wù)的結(jié)果(124),路由器12B應(yīng)用任務(wù)的結(jié)果(例如,路由單元30基于該結(jié)果更新路由信息44)。
[0058]根據(jù)本公開的技術(shù)配置的網(wǎng)絡(luò)設(shè)備可以包括被配置為發(fā)送和接收消息的至少一個(gè)網(wǎng)絡(luò)接口、包括被配置為運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)或多個(gè)處理器的路由單元、以及虛擬機(jī)代理,其中,該虛擬機(jī)代理被配置為:識別在通信耦接至該網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例;利用至少一個(gè)網(wǎng)絡(luò)接口將執(zhí)行任務(wù)的請求發(fā)送到虛擬機(jī);以及利用至少一個(gè)網(wǎng)絡(luò)接口從虛擬機(jī)接收包括執(zhí)行任務(wù)的結(jié)果的任務(wù)響應(yīng),其中,路由單元被配置為基于包括在任務(wù)響應(yīng)中的結(jié)果更新網(wǎng)絡(luò)設(shè)備。
[0059]在某些示例中,虛擬機(jī)是第一虛擬機(jī),所述版本的操作系統(tǒng)的實(shí)例是在第一虛擬機(jī)中運(yùn)行的操作系統(tǒng)的第一實(shí)例,任務(wù)是第一任務(wù),任務(wù)響應(yīng)是第一任務(wù)響應(yīng)。在這些示例中,虛擬機(jī)代理被配置為識別在計(jì)算云運(yùn)行的第二虛擬機(jī),其中第二虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)第二實(shí)例,并且其中第一虛擬機(jī)和第二虛擬機(jī)是不同的虛擬機(jī),將執(zhí)行第二任務(wù)的請求發(fā)送到第二虛擬機(jī),從第二虛擬機(jī)接收包括執(zhí)行第二任務(wù)的結(jié)果的第二任務(wù)響應(yīng),路由單元被配置為基于第一任務(wù)響應(yīng)和第二任務(wù)響應(yīng)更新網(wǎng)絡(luò)設(shè)備。
[0060]在某些實(shí)例中,第一任務(wù)是第三任務(wù)的第一部分,并且其中,第二任務(wù)是第三任務(wù)的第二部分。
[0061]在某些示例中,虛擬機(jī)代理被配置為:將對計(jì)算資源的請求發(fā)送到虛擬機(jī)管理器,其中,請求包括對在網(wǎng)絡(luò)設(shè)備運(yùn)行的網(wǎng)絡(luò)操作系統(tǒng)的版本的指示和對要執(zhí)行的任務(wù)的指示;從虛擬機(jī)管理器接收響應(yīng),其中,響應(yīng)包括對套接字的指示,通過該套接字,虛擬機(jī)是可到達(dá)的(可直接通信的,reachable);利用套接字將任務(wù)請求發(fā)送到虛擬機(jī);以及利用套接字從虛擬機(jī)接收任務(wù)響應(yīng)。
[0062]在某些示例中,對計(jì)算資源的請求是第二請求,響應(yīng)是第二響應(yīng),虛擬機(jī)代理被配置為:在發(fā)送對計(jì)算資源的第二請求之前將對于計(jì)算資源的第一請求發(fā)送到虛擬機(jī)管理器,以確定計(jì)算云是否具有可用資源執(zhí)行任務(wù);接收表明計(jì)算云是否具有可用計(jì)算資源的第一響應(yīng);基于第一響應(yīng)確定計(jì)算云是否具有可用資源;以及響應(yīng)于確定計(jì)算云具有可用計(jì)算資源,將對計(jì)算資源的第二請求發(fā)送到虛擬機(jī)管理器。
[0063]在某些示例中,任務(wù)與在路由單元執(zhí)行的路由協(xié)議相關(guān)聯(lián),其中,路由協(xié)議是開放式最短路徑優(yōu)先、生成樹協(xié)議、邊界網(wǎng)關(guān)協(xié)議、中間系統(tǒng)對中間系統(tǒng)協(xié)議、虛擬專用局域網(wǎng)服務(wù)、和資源預(yù)留協(xié)議中的一個(gè)。
[0064]在某些實(shí)例中,存儲器被配置為存儲配置信息、轉(zhuǎn)發(fā)信息、和路由信息中的至少一個(gè),路由單元基于包括在任務(wù)響應(yīng)中的結(jié)果更新配置信息、轉(zhuǎn)發(fā)信息、和路由信息中的至少一個(gè)。
[0065]在某些示例中,虛擬機(jī)是在計(jì)算云處運(yùn)行的多個(gè)虛擬機(jī)中的一個(gè),其中,多個(gè)虛擬機(jī)的至少一個(gè)子集被配置為執(zhí)行路由協(xié)議、接口控制進(jìn)程、管理進(jìn)程、和機(jī)架進(jìn)程中的一個(gè)或多個(gè)。
[0066]本公開中描述的技術(shù)可以至少部分地被實(shí)現(xiàn)為硬件、軟件、固件或其組合。例如,所描述的技術(shù)的各種方面可以被實(shí)現(xiàn)在一個(gè)或多個(gè)處理器中,包括一個(gè)或多個(gè)微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、或任何其他等效集成或分布式邏輯電路,以及這些部件的任意組合。術(shù)語“處理器”或“處理電路”一般可以指任何前述的邏輯電路、單獨(dú)或與其他邏輯電路組合、或任何其他等效電路。包括硬件的控制單元還可以執(zhí)行一個(gè)或多個(gè)本公開的技術(shù)。
[0067]這樣的硬件、軟件、和固件可以實(shí)現(xiàn)在相同設(shè)備內(nèi)或單獨(dú)設(shè)備內(nèi)以支持本公開中描述的各種操作和功能。此外,任何所描述的單元、模塊、或部件可以實(shí)施在一起或單獨(dú)地作為離散但可共用的邏輯設(shè)備。描述作為模塊或單元的不同特征是為了突出不同的功能方面,不一定意味著這些模塊或單元必須通過單獨(dú)的硬件或軟件部件實(shí)現(xiàn)。相反,與一個(gè)或多個(gè)模塊或單元相關(guān)聯(lián)的功能可以由單獨(dú)的硬件或軟件部件執(zhí)行,或集成在共同的或單獨(dú)的硬件或軟件部件內(nèi)。
[0068]本公開中描述的技術(shù)還可以體現(xiàn)或編碼在含有指令的計(jì)算機(jī)可讀介質(zhì)上,例如計(jì)算機(jī)可讀存儲介質(zhì)。例如,當(dāng)執(zhí)行指令時(shí),內(nèi)嵌或編碼在計(jì)算機(jī)可讀介質(zhì)中的指令可以使得可編程處理器、或其他處理器執(zhí)行方法。計(jì)算機(jī)可讀存儲介質(zhì)可以包括隨機(jī)存儲器(RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(RPROM)、電可擦除可編程只讀存儲器(EEPR0M)、閃存、硬盤驅(qū)動器、⑶-ROM、軟盤、盒式磁帶、磁介質(zhì)、光學(xué)介質(zhì)、或其他計(jì)算機(jī)可讀存儲介質(zhì)。應(yīng)當(dāng)理解,術(shù)語“計(jì)算機(jī)可讀存儲介質(zhì)”是指物理存儲介質(zhì)、(例如,非易失性介質(zhì))而非信號、載波、或其他傳輸介質(zhì)。
[0069]已經(jīng)描述了各種實(shí)施方式。這些實(shí)施方式和其他實(shí)施方式都在所附權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種方法,包括: 通過網(wǎng)絡(luò)設(shè)備運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng); 利用在所述網(wǎng)絡(luò)設(shè)備運(yùn)行的虛擬機(jī)代理識別在通信耦接至所述網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中,所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例; 利用所述虛擬機(jī)代理將執(zhí)行任務(wù)的請求發(fā)送到所述虛擬機(jī); 利用所述虛擬機(jī)代理從所述虛擬機(jī)接收包括執(zhí)行所述任務(wù)的結(jié)果的任務(wù)響應(yīng);以及 基于所述任務(wù)響應(yīng)中所包括的結(jié)果更新所述網(wǎng)絡(luò)設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述虛擬機(jī)是第一虛擬機(jī),其中,所述版本的網(wǎng)絡(luò)操作系統(tǒng)的所述實(shí)例是在所述第一虛擬機(jī)運(yùn)行的所述網(wǎng)絡(luò)操作系統(tǒng)的第一實(shí)例,其中,所述任務(wù)是第一邏輯段的第一任務(wù),并且其中,所述任務(wù)響應(yīng)是第一任務(wù)響應(yīng),所述方法還包括: 識別在所述計(jì)算云運(yùn)行的第二虛擬機(jī),其中,所述第二虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的第二實(shí)例,并且其中,所述第一虛擬機(jī)和第二虛擬機(jī)是不同的虛擬機(jī); 利用所述虛擬機(jī)代理將執(zhí)行第二任務(wù)的請求發(fā)送到所述第二虛擬機(jī),其中,所述第二任務(wù)用于第二邏輯段;以及 利用所述虛擬機(jī)代理從所述虛擬機(jī)接收包括執(zhí)行所述第二任務(wù)的結(jié)果的第二任務(wù)響應(yīng), 其中,更新所述網(wǎng)絡(luò)設(shè)備的步驟包括:基于包括在所述第一任務(wù)響應(yīng)中的結(jié)果和包括在所述第二任務(wù)響應(yīng)中的結(jié)果來更新所述網(wǎng)絡(luò)設(shè)備。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述第一任務(wù)是第三任務(wù)的第一子任務(wù),并且其中,所述第二任務(wù)是所述第三任務(wù)的第二子任務(wù)。
4.根據(jù)權(quán)利要求1至3中的任一項(xiàng)所述的方法, 其中,識別所述虛擬機(jī)包括: 將對計(jì)算資源的請求發(fā)送到虛擬機(jī)管理器,其中,所述請求包括對所述網(wǎng)絡(luò)操作系統(tǒng)的版本的指示和對要執(zhí)行的任務(wù)的指示;以及 從所述虛擬機(jī)管理器接收響應(yīng),其中,所述響應(yīng)包括對套接字的指示,通過所述套接字,所述虛擬機(jī)是可到達(dá)的, 其中,將所述任務(wù)請求發(fā)送到所述虛擬機(jī)的步驟包括:利用所述套接字將所述任務(wù)請求發(fā)送到所述虛擬機(jī),以及 其中,接收所述任務(wù)響應(yīng)的步驟包括:利用所述套接字接收所述任務(wù)響應(yīng)。
5.根據(jù)權(quán)利要求4所述的方法,其中,對計(jì)算資源的所述請求是第二請求,其中,所述響應(yīng)是第二響應(yīng),以及其中,識別所述虛擬機(jī)的步驟包括: 在發(fā)送對計(jì)算資源的所述第二請求之前,將對計(jì)算資源的第一請求發(fā)送到所述虛擬機(jī)管理器,以確定所述計(jì)算云是否具有執(zhí)行所述任務(wù)的可用計(jì)算資源;并且 利用所述虛擬機(jī)代理接收表明所述計(jì)算云是否具有可用計(jì)算資源的第一響應(yīng);以及 基于所述第一響應(yīng)確定所述計(jì)算云是否具有可用的計(jì)算資源, 其中,響應(yīng)于確定所述計(jì)算云具有可用的計(jì)算資源,將對計(jì)算資源的所述第二請求發(fā)送到所述虛擬機(jī)管理器。
6.根據(jù)權(quán)利要求1到5中的任一項(xiàng)所述的方法,其中,所述任務(wù)與在所述網(wǎng)絡(luò)設(shè)備執(zhí)行的路由協(xié)議相關(guān)聯(lián),其中,所述路由協(xié)議是開放式最短路徑優(yōu)先、生成樹協(xié)議、邊界網(wǎng)關(guān)協(xié)議、中間系統(tǒng)對中間系統(tǒng)協(xié)議和虛擬專用局域網(wǎng)服務(wù)中的一個(gè)。
7.根據(jù)權(quán)利要求1到6中的任一項(xiàng)所述的方法,其中,更新所述網(wǎng)絡(luò)設(shè)備包括基于包括在所述任務(wù)響應(yīng)中的結(jié)果更新存儲在所述網(wǎng)絡(luò)設(shè)備處的更新配置信息、轉(zhuǎn)發(fā)信息和路由信息中的至少一個(gè)。
8.根據(jù)權(quán)利要求1到7中的任一項(xiàng)所述的方法,其中,所述虛擬機(jī)是在所述計(jì)算云運(yùn)行的多個(gè)虛擬機(jī)中的一個(gè),并且其中,所述多個(gè)虛擬機(jī)的至少一個(gè)子集被配置為執(zhí)行路由協(xié)議、接口控制進(jìn)程、管理進(jìn)程和機(jī)架進(jìn)程中的一個(gè)或多個(gè)。
9.一種網(wǎng)絡(luò)設(shè)備,包括: 至少一個(gè)網(wǎng)絡(luò)接口,被配置為發(fā)送和接收消息;路由單元,包括被配置為運(yùn)行一個(gè)版本的網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)或多個(gè)處理器;以及虛擬機(jī)代理,被配置為:識別在通信耦接至所述網(wǎng)絡(luò)設(shè)備的計(jì)算云處運(yùn)行的虛擬機(jī),其中,所識別的虛擬機(jī)運(yùn)行所述版本的網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例;利用所述至少一個(gè)網(wǎng)絡(luò)接口將執(zhí)行任務(wù)的請求發(fā)送至所述虛擬機(jī),以及利用所述至少一個(gè)網(wǎng)絡(luò)接口從所述虛擬機(jī)接收包括執(zhí)行所述任務(wù)的結(jié)果的任務(wù)響應(yīng), 其中,所述路由單元被配置為基于包括在所述任務(wù)響應(yīng)中的結(jié)果來更新所述網(wǎng)絡(luò)設(shè)備。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括用于執(zhí)行根據(jù)權(quán)利要求1到8中的任一項(xiàng)所述方法的裝置。
【文檔編號】H04L29/08GK103516782SQ201310253577
【公開日】2014年1月15日 申請日期:2013年6月24日 優(yōu)先權(quán)日:2012年6月26日
【發(fā)明者】喬爾·奧布斯特費(fèi)爾德, 戴維·沃德, 科爾比·巴思, 穆林 申請人:叢林網(wǎng)絡(luò)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
浦东新区| 潜江市| 北票市| 永清县| 伽师县| 广元市| 绥芬河市| 黄石市| 晋州市| 怀来县| 怀安县| 左云县| 化德县| 诸暨市| 五原县| 红原县| 土默特左旗| 迭部县| 石阡县| 监利县| 岳阳县| 安泽县| 西和县| 仙桃市| 永康市| 庆城县| 吉首市| 柳江县| 黄龙县| 瑞丽市| 来宾市| 蓬溪县| 青神县| 高要市| 铜鼓县| 怀宁县| 宜宾县| 措勤县| 万宁市| 寿光市| 凤台县|