專利名稱:用于虛擬機的流量轉(zhuǎn)發(fā)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及通信網(wǎng)絡(luò),并且更具體地,涉及在虛擬機環(huán)境中轉(zhuǎn)發(fā)流量。
背景技術(shù):
數(shù)據(jù)中心常常使用可用CPU、存儲器和內(nèi)存能力的一小部分。這導致部署多于所需 的服務(wù)器以執(zhí)行指定量的工作。額外的服務(wù)器增加了成本,并且創(chuàng)建了難以管理的更復雜 和不同的環(huán)境。許多數(shù)據(jù)中心管理者求助于虛擬化,使得資源能夠通過網(wǎng)絡(luò)被共享。虛擬化是一種通過經(jīng)由多個系統(tǒng)共享單個計算機的資源來使得一個計算機做多 個計算機的工作的技術(shù)。通過使用虛擬化,多個操作系統(tǒng)和應(yīng)用能夠同時運行在同一計算 機上,從而增加了硬件的可用性和靈活性。虛擬化使得服務(wù)器與下層的硬件解耦合,因而導 致多個虛擬機共享同樣的物理服務(wù)器硬件。由于多個虛擬機可駐留于同一服務(wù)器上,因此流量轉(zhuǎn)發(fā)在同一服務(wù)器上的虛擬機 和不同服務(wù)器上的虛擬機之間執(zhí)行。
發(fā)明內(nèi)容
在一實施例中,一種方法一般包括與位于網(wǎng)絡(luò)設(shè)備處的多個虛擬機通信;向虛 擬機中的每一個指派用于從虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式;以及在一個或多個虛擬機處切換 所指派的操作模式。該操作模式從第一模式和第二模式中選擇,在該第一模式中,數(shù)據(jù)由硬 件實現(xiàn)的交換機轉(zhuǎn)發(fā),在該第二模式中,數(shù)據(jù)由在網(wǎng)絡(luò)設(shè)備處的虛擬交換機轉(zhuǎn)發(fā)。在另一實施例中,配置用于與多個虛擬機通信的裝置一般包括虛擬交換機,該虛 擬交換機與虛擬機中的一個或多個通信;接口,該接口與虛擬機中的一個或多個通信,并 且被配置用于與硬件實現(xiàn)的交換機通信;以及模式選擇器,用于向虛擬機中的每一個指派 用于從虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式,并且用于在虛擬機的一個或多個處切換所指派的操作 模式。該操作模式從第一模式和第二模式中選擇,在該第一模式中,數(shù)據(jù)由硬件實現(xiàn)的交換 機轉(zhuǎn)發(fā),在該第二模式中,數(shù)據(jù)由虛擬交換機轉(zhuǎn)發(fā)。與接口通信的虛擬機在第一操作模式, 并且與虛擬交換機通信的虛擬機在第二操作模式。
圖1示出了此處描述的實施例可被實現(xiàn)其中的網(wǎng)絡(luò)的示例。圖2示出了根據(jù)一個實施例的圖1中的網(wǎng)絡(luò)的交換機和服務(wù)器的細節(jié)。圖3是示出了根據(jù)一個實施例的在虛擬機環(huán)境中的用于每個接口地指派操作模 式的處理的概述的流程圖。圖4是示出了根據(jù)一個實施例的用于在用于從虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式間切 換的處理的流程圖。圖5描述了在實現(xiàn)此處描述的實施例中有用的網(wǎng)絡(luò)設(shè)備的示例。貫穿附圖的多個視圖,對應(yīng)的參考符號指示對應(yīng)的部件。
具體實施例方式呈 現(xiàn)下述說明以使得本領(lǐng)域技術(shù)人員能夠制作和使用本發(fā)明。針對具體實施例和 應(yīng)用的描述僅以示例被提供,并且多種修改例將對本領(lǐng)域技術(shù)人員而言是很明顯的。在不 偏離本發(fā)明的范圍下,此處描述的一般原則可被應(yīng)用于其他實施例和應(yīng)用。因此,本發(fā)明并 不限于示出的實施例,而是與和此處描述的原則和特征相一致的最廣闊的范圍相對應(yīng)。出 于簡潔的目的,涉及與本發(fā)明相關(guān)的在技術(shù)領(lǐng)域公知的技術(shù)材料的特征未被詳盡描述。虛擬化通過在多個系統(tǒng)間共享單個計算機的資源來使得一個計算機做多個計算 機的工作。軟件被用于虛擬化計算機的硬件資源(例如包括CPU、RAM、硬盤和網(wǎng)絡(luò)控制器) 以創(chuàng)建能夠運行其自己的操作系統(tǒng)和應(yīng)用的虛擬機。多個虛擬機共享硬件資源而不相互干 擾,使得多個操作系統(tǒng)和應(yīng)用能夠同時運行在單個計算機上。例如,虛擬機可被用于虛擬基 礎(chǔ)設(shè)施中以動態(tài)地將物理資源映射到商業(yè)需要。由此,虛擬化能夠使多個服務(wù)器、存儲基礎(chǔ) 設(shè)施和網(wǎng)絡(luò)聚合成能夠按所需被動態(tài)傳遞給應(yīng)用的共享資源。來自虛擬機的流量可被轉(zhuǎn)發(fā)到同一物理機的虛擬機上,或不同物理機的虛擬機 上。如下詳盡所述,可利用硬件轉(zhuǎn)發(fā)(此處稱為“硬件模式”或“第一模式”)或軟件交換 (此處稱為“軟件模式”或“第二模式”)來轉(zhuǎn)發(fā)流量。此處描述的實施例提供了對每個安 裝在物理機上的虛擬機的模式的指派和虛擬機在模式間的轉(zhuǎn)換。此處描述的實施例操作于包括多個網(wǎng)絡(luò)元件的數(shù)據(jù)通信網(wǎng)的環(huán)境內(nèi)。在網(wǎng)絡(luò)中的 一些利用系統(tǒng)的元件可以是諸如服務(wù)器、交換機,或路由器的網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)設(shè)備例如可包 括主中央處理單元(CPU)、接口,和總線。CPU優(yōu)選地包括存儲器和處理器。網(wǎng)絡(luò)設(shè)備可被 實現(xiàn)在如下所述的通用網(wǎng)絡(luò)機中?,F(xiàn)參照附圖,并且首先參照圖1,示出了可實現(xiàn)此處描述的實施例的網(wǎng)絡(luò)10的示 例。網(wǎng)絡(luò)10可被配置用作數(shù)據(jù)中心或其他類型的網(wǎng)絡(luò)。應(yīng)當理解,示出在圖1中的簡化網(wǎng) 絡(luò)僅是一個示例,并且此處描述的實施例可被應(yīng)用于具有不同配置和類型的網(wǎng)絡(luò)設(shè)備的網(wǎng) 絡(luò)中。圖1中示出的網(wǎng)絡(luò)10包括網(wǎng)絡(luò)設(shè)備16,其被配置用于向一個或多個網(wǎng)絡(luò)元件提供 控制平面的功能。網(wǎng)絡(luò)設(shè)備16可以是硬件實現(xiàn)的網(wǎng)絡(luò)交換機(例如,可從加利福尼亞的圣 何塞的思科獲得的NEXUS系列交換機)或其他配置用于執(zhí)行交換或路由功能的網(wǎng)絡(luò)設(shè)備。 交換機16配置用于不僅在物理端口間交換,還在遠離交換機的虛擬接口間交換。在圖1中 示出的示例中,交換機16經(jīng)由鏈路22、24和26被連接到三個網(wǎng)絡(luò)設(shè)備(例如,服務(wù)器)。 交換機16物理上獨立于(遠離)服務(wù)器30。交換機16還經(jīng)由鏈路20與管理站32 (例如, 虛擬化管理平臺,諸如可從加利福尼亞的帕洛阿爾托的VMware獲得的VMware虛擬中心管 理站)通信。管理站32或一個或多個管理功能還可被集成到交換機16中。每個服務(wù)器30包括虛擬交換機34、接口(接口虛擬器)40,以及一個或多個虛擬 機(VM A、VM B、VM C、VM D、VM E、VM F、VMG) 36。虛擬機36共享硬件資源而彼此不干擾, 因此使得多個操作系統(tǒng)和應(yīng)用能夠同時在單個計算機上執(zhí)行。諸如管理程序(hypervisor) (未示出)的虛擬機監(jiān)視器動態(tài)地將硬件資源分配給虛擬機36。在圖1的示例中,VM A、VM B、VM C和VM D位于第一服務(wù)器、VM E和VM F位于第二服務(wù)器,而VM G位于第三服務(wù)器, 每個服務(wù)器物理上與其他服務(wù)器是分離的。虛擬機36可各自在服務(wù)器30間被移動。虛擬機36的遷移(“虛擬運動”(VMotion))可基于流量樣式、硬件資源或其他標準,并且可被動態(tài)執(zhí)行。交換機16包括一個或多個控制平面(未示出)。每個服務(wù)器30包括與控制平面 相關(guān)聯(lián)的多個數(shù)據(jù)路徑。每個數(shù)據(jù)路徑與VNTag(虛擬網(wǎng)絡(luò)標簽)相關(guān)聯(lián)。每個虛擬機36 包括與服務(wù)器30中的一個相關(guān)聯(lián)的虛擬網(wǎng)絡(luò)接口卡(VNIC)和虛擬以太網(wǎng)接口。VNTag被 用于標記以太網(wǎng)幀并在硬件模式中控制各虛擬機的虛擬以太網(wǎng)接口。以下將參照圖2來進 一步說明VNTag、VNIC和虛擬接口。針對軟件交換,數(shù)據(jù)平面操作于虛擬交換機34,而針對 硬件轉(zhuǎn)發(fā),數(shù)據(jù)平面操作于硬件實現(xiàn)的交換機16。將在虛擬機36間的流量轉(zhuǎn)發(fā)限于要么軟件要么硬件導致多個缺陷。例如,如果分 組均通過首先向網(wǎng)絡(luò)設(shè)備16發(fā)送分組來被轉(zhuǎn)發(fā),則此可導致如果目的地是在同一物理服 務(wù)器30上的虛擬機36(例如,在圖1中的VM A和VM B間傳輸?shù)牧髁?則流量返回到其被 發(fā)送(帶有不同的VNTag)的同一物理接口上。如果流量超過上行鏈路22的物理帶寬,則 這可限制在同一物理服務(wù)器中的VM間流量的帶寬。在很多情況下,軟件交換比硬件轉(zhuǎn)發(fā) 慢。但是,在某些流量條件下,由網(wǎng)絡(luò)設(shè)備16進行的流量的硬件轉(zhuǎn)發(fā)可能比基于軟件的交 換慢。另一個使用軟件交換而非硬件轉(zhuǎn)發(fā)的原因是VNTag的有限的可用性。由于在交換機 16上的VNTag空間直接映射到硬件資源,因此,存在可用VNTag的數(shù)量的限制。如下所述, 虛擬交換機34可被配置用于針對多個虛擬機36使用同一 VNTag,因此,可最大化VNTag空 間的使用。此處描述的實施例利用軟件交換和硬件轉(zhuǎn)發(fā)(交換)二者來避免上述問題并提供 另外的特征。實施例使得虛擬機36的虛擬接口無縫地從利用硬件轉(zhuǎn)發(fā)(第一模式)轉(zhuǎn)換 到利用軟件交換(第二模式),反之亦然。圖2示出了根據(jù)一個實施例的服務(wù)器30和硬件實現(xiàn)的交換機16的細節(jié)。服務(wù)器 30經(jīng)由用VNTag標記的鏈路22被連接到交換機16。交換機16包括遠離(物理地獨立于) 服務(wù)器30的硬件轉(zhuǎn)發(fā)引擎38。在圖2示出的示例中,服務(wù)器30包括四個虛擬機36 (VM A、 VM B、VM C, VMD)。接口 40支持網(wǎng)絡(luò)接口虛擬化,并且可被實現(xiàn)在軟件(例如,在服務(wù)器30上的管 理程序中)或硬件(例如,配置用于硬件標記和輸入/輸出虛擬化的網(wǎng)絡(luò)接口虛擬適配 器)中。當接口 40接收來自服務(wù)器30去往網(wǎng)絡(luò)的流量時,接口識別源VNIC并利用對應(yīng)的 VNTag (VNTag 1、VNTag2、VNTag 3,VNTag 4等)來標記由該VNIC生成的分組中的每一個。 當接口 40接收來自網(wǎng)絡(luò)的流量時,接口將VNTag移除并指引分組到指定的VNIC。接口 40 在虛擬機36間并不執(zhí)行任何本地交換。交換由接口 40所連接的硬件實現(xiàn)的交換機16執(zhí) 行,或由在虛擬交換機34處的基于軟件的交換執(zhí)行。在圖2中所示的示例中,虛擬機中的兩個(VM A和VM B)被配置用于經(jīng)由虛擬交換 機34的軟件交換。虛擬交換機34在單個VNTag上發(fā)送所有其網(wǎng)絡(luò)上行流量,同時針對所有 連接到虛擬交換機的虛擬機接口提供本地交換和特征。VNIC邏輯地將虛擬機36 (VM A,VM B)中的每一個連接到虛擬交換機34,并且使得虛擬機通過虛擬接口發(fā)送和接收流量。位于 同一服務(wù)器內(nèi)的虛擬機36可以經(jīng)由虛擬交換機34直接彼此通信。例如,如果VM A和VM B 需要彼此通信,則虛擬交換機34直接執(zhí)行交換功能而無需將流量發(fā)送到物理網(wǎng)絡(luò)。在軟件 模式,分組的轉(zhuǎn)發(fā)通過利用虛擬交換機34中的軟件層來被執(zhí)行,以插入代表具體VNIC (其中,流量被交換)的VNTag。被配置用于軟件交換的虛擬機36 (VM A,VM B)利用同一 VNTag 來最大化VNTag名字空間的使用。在圖2的示例中,接口 40用VNTag 1來標記所有接收自 虛擬交換機34的分組。 再次參照圖2,虛擬機中的兩個(VM C,VM D)被配置用于硬件轉(zhuǎn)發(fā)。這些虛擬機 36中的每一個具有與之相關(guān)聯(lián)的其自身的VNTag(VM C與VNTag 2相關(guān)聯(lián),VM D與VNTag 3相關(guān)聯(lián))。VNTag 4作為可用于接收新的虛擬機36的VNTag的示例而被示出。例如,虛擬 機中的一個(VM A或VM B)可先前與VNTag 4相關(guān)聯(lián),并且然后被切換到軟件模式。在硬件模式中,分組的轉(zhuǎn)發(fā)由硬件實現(xiàn)的交換機16所執(zhí)行。將被交換的數(shù)據(jù)經(jīng)過 交換機16的架構(gòu)到達硬件轉(zhuǎn)發(fā)引擎以供處理。在已做出轉(zhuǎn)發(fā)決定之后,引擎38將分組轉(zhuǎn) 發(fā)到正確的目的地端口(例如,被VNTag標記的鏈路22和VNTag接口)。在實施例中,硬件 加速被應(yīng)用以提供硬件加速的轉(zhuǎn)發(fā)。模式選擇器42被配置用于針對每個虛擬機36 (虛擬接口)選擇和指派操作模式。 模式選擇器42直接與虛擬機36通信,或經(jīng)由虛擬交換機34和接口 40與虛擬機36通信。 如下詳述,模式選擇器42可將其模式選擇基于關(guān)于虛擬機36的配置或操作的信息。例如, 模式可基于流量樣式被指派給虛擬機36。監(jiān)視器44收集并記錄流量數(shù)據(jù),并將數(shù)據(jù)發(fā)送給 模式選擇器42。模式選擇器42和監(jiān)視器44可被安裝在同一網(wǎng)絡(luò)設(shè)備上或不同網(wǎng)絡(luò)設(shè)備 上,例如包括,服務(wù)器30、網(wǎng)絡(luò)設(shè)備16、管理站32,或其他網(wǎng)絡(luò)設(shè)備。模式選擇器42和監(jiān)視 器44的功能中的每一個還可在兩個或更多個不同的網(wǎng)絡(luò)設(shè)備上執(zhí)行。轉(zhuǎn)發(fā)模式可被靜態(tài)配置或動態(tài)配置。靜態(tài)指派可基于在交換機16、管理站32,或 其他網(wǎng)絡(luò)設(shè)備處的用戶配置或遠程配置。動態(tài)指派可基于一個或多個因素,例如包括,流量 樣式、配置特征,或VNTag數(shù)字空間的預留。下面說明了這些因素中的每一個。為了確定基于流量樣式的最佳模式選擇,來自每個虛擬機的流量被監(jiān)視器44追 蹤。在一個實施例中,針對每個目的地地址,帶寬或分組被追蹤并記錄。通過基于目的地測 量發(fā)送自每個虛擬機36的流量,能夠確定大部分流量是在同一物理服務(wù)器30上的虛擬機 之間,還是在位于不同服務(wù)器上的虛擬機之間。監(jiān)視器44可針對每個利用軟件交換的虛 擬機36在虛擬交換機34處收集和記錄利用軟件的信息。監(jiān)視器44還可被安裝在交換機 16或接口 40上以追蹤利用硬件轉(zhuǎn)發(fā)的虛擬機36的統(tǒng)計數(shù)據(jù)。監(jiān)視器44將流量信息傳送 給模式選擇器42,以用于針對每個虛擬機36選擇操作模式。模式選擇還可基于虛擬機36的配置特征。例如,如果網(wǎng)絡(luò)接口特征僅存在于軟 件,則可針對虛擬機36選擇軟件模式。如果特征到達某限制,則可希望將虛擬機36從軟件 模式切換到硬件模式。例如,如果ACL(訪問控制列表)過大而使軟件無法實現(xiàn)可接受的性能,則虛擬機36能夠被轉(zhuǎn)換 到硬件模式。模式的選擇還可基于在每個上行鏈路22、24、26上的對VNTag數(shù)字空間的最優(yōu)化。 例如,VNTag僅可被用于在不同服務(wù)器間具有大量流量的虛擬機36。如果VNTag空間變得 完全被分配,還可做出決定以將一個或多個虛擬機36切換到軟件模式。關(guān)于哪個虛擬機36 將被轉(zhuǎn)換的決定可例如根據(jù)所使用的帶寬量和在每個服務(wù)器30處的網(wǎng)絡(luò)接口特征配置而 做出。虛擬機模式可在發(fā)生某事件(例如,在服務(wù)器30間的虛擬機36的遷移或“虛擬運動”、流量樣式的變化,等)后或以周期性間隔被最優(yōu)化。例如,在VM A和VM E (圖1)間可 能存在大量的流量。為了最優(yōu)化轉(zhuǎn)發(fā),VM A可作為VM E被移動到同一服務(wù)器30。當VM A 和VM E位于不同服務(wù)器30上時,由于在服務(wù)器間的大量的流量,VM A和VM E可初始被配 置用于硬件模式。在移動之后,可確定VM A和VM E應(yīng)被配置用于軟件模式,以利用在虛擬 交換機34處的軟件交換的優(yōu)勢。在一個實施例中,虛擬機36在移動期間承載能夠被用于決定虛擬機是應(yīng)被配置 用于軟件模式還是硬件模式的信息。例如,虛擬機36能夠提供用于決定操作的模式的流量 統(tǒng)計數(shù)據(jù)或配置特征??商鎿Q地,在服務(wù)器30處接收到新的虛擬機36時,流量能夠被追蹤 以用于決定是否切換虛擬機的操作模式。在模式間的轉(zhuǎn)換也可與虛擬機遷移一同進行。系 統(tǒng)被優(yōu)選地配置為使得在虛擬機36處的模式間的切換不會太過頻繁地發(fā)生。例如,如果 存在流量樣式經(jīng)歷數(shù)次變更的時段,則直到流量樣式變得更加穩(wěn)定時才可發(fā)生模式間的切 換。從軟件模式到硬件模式的切換或反之的決定可在服務(wù)器30、交換機16、管理站 32,或其他網(wǎng)絡(luò)設(shè)備上完成。如果在服務(wù)器30處作出決定,則服務(wù)器將模式的變更通知在 交換機16處的控制平面。圖3是示出了在虛擬機環(huán)境中的用于每個接口地指派操作模式的處理的概述的 流程圖。在服務(wù)器30處,模式選擇器42與多個虛擬機36通信。如前所述,模式選擇器42 可直接與虛擬機36通信,或通過虛擬交換機34、接口 40,或其他設(shè)備與虛擬機通信。在步 驟50,模式選擇器42向虛擬機中的每一個指派用于從虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式。操作模 式從第一模式(其中,數(shù)據(jù)被發(fā)送到硬件實現(xiàn)的交換機16)和第二模式(其中,數(shù)據(jù)被發(fā)送 到在服務(wù)器30處的虛擬交換機34)中被選擇。如上所述,模式可被用戶配置或可基于一個 或多個因素被選擇。操作模式還可基于默認策略被指派。例如,當虛擬機36移動到新的服 務(wù)器30時,模式選擇器42可自動將與在移動前虛擬機被先前設(shè)置的同樣的模式指派給虛 擬機,或指派默認設(shè)置(例如,第一或第二模式)。在步驟52,模式選擇器42在一個或多個虛擬機36處切換所指派的操作模式。如 下參照圖4所述,切換可基于關(guān)于虛擬機36的信息被動態(tài)執(zhí)行。切換可被在拓撲中的變化 (例如,虛擬機從一個服務(wù)器到另一服務(wù)器的移動)、流量樣式的變更、硬件資源可用性的 變化,或其他事件所啟動。 圖4是示出了用于切換用于轉(zhuǎn)發(fā)來自虛擬機的數(shù)據(jù)的操作模式的處理的細節(jié)的 流程圖。在步驟62,關(guān)于虛擬機36的信息被接收。如上所述,信息例如可包括,發(fā)送自虛 擬機的數(shù)據(jù)的流量樣式、虛擬機的配置、硬件資源的可用性,或其他信息。該信息可被從虛 擬機36獲得,或從諸如管理站32、服務(wù)器30、交換機16,或其他網(wǎng)絡(luò)設(shè)備的其他來源獲得。 在步驟64,操作模式被選擇。在步驟68,確定在虛擬機36處的所選擇的模式是否與當前的 操作模式不同。如果模式是相同的,則無需任何行動直到新的信息被接收為止(例如,當發(fā) 生諸如拓撲或流量樣式的變更的事件時)。如果所選的模式與當前模式不同,則虛擬機36 變更其操作模式(步驟70)。硬件實現(xiàn)的交換機16也被通知該變更(步驟72)。如果切換 模式的決定是在交換機16處做出的,則無需此步驟。如果模式被變更到硬件轉(zhuǎn)發(fā),則VNTag 被指派給虛擬機36 (步驟74和76)。如果模式被變更到軟件交換,則虛擬接口和虛擬機36 被與虛擬交換機34相關(guān)聯(lián)(步驟74和78)。
應(yīng)當理解,圖3和圖4中示出的處理被以示例提供,并且在不偏離本發(fā)明的范圍的 前提下,可添加或刪除步驟,或變更步驟的順序。圖5描述了可被用于實現(xiàn)此處描述的實施例的網(wǎng)絡(luò)設(shè)備80。網(wǎng)絡(luò)設(shè)備80被配置 用于實現(xiàn)所有上述的網(wǎng)絡(luò)協(xié)議和擴展。在一個實施例中,網(wǎng)絡(luò)設(shè)備80是可被實現(xiàn)在硬件、 軟件,或其任意組合中的可編程機器。邏輯可被編碼在一個或多個有形介質(zhì)中以用于被處 理器執(zhí)行。例如,處理器82可執(zhí)行被存儲在程序存儲器84中的代碼。程序存儲器84是計 算機可讀介質(zhì)的一個示例。程序存儲器84能夠是易失性存儲器。存儲相同代碼的計算機 可讀介質(zhì)的另一種形式是諸如軟盤、CD-ROM、DVD-ROM、硬盤,閃存等的一種類型的非易失性 存儲器。網(wǎng)絡(luò)設(shè)備80經(jīng)由多個線卡86與物理介質(zhì)接口。線卡86可包括以太網(wǎng)接口、DSL 接口、千兆比特以太網(wǎng)接口、10-千兆比特以太網(wǎng)接口,SONET接口等。當分組被網(wǎng)絡(luò)設(shè)備80 接收、處理和轉(zhuǎn)發(fā)時,其可被存儲在分組存儲器88中。為了實現(xiàn)根據(jù)該系統(tǒng)的功能,線卡86 可包括與上述與網(wǎng)絡(luò)設(shè)備一起討論的相似的處理和存儲器資源作為一個整體。應(yīng)當理解, 上述圖5中示出的網(wǎng)絡(luò)設(shè)備80僅是一個示例,并且可使用不同的網(wǎng)絡(luò)設(shè)備的配置。從前述可看出,此處描述的實施例提供多種優(yōu)勢。例如,從虛擬機的流量的硬件轉(zhuǎn) 發(fā)或軟件交換可基于每個虛擬接口被選擇。在虛擬機環(huán)境中的流量轉(zhuǎn)發(fā)的最優(yōu)化可基于流 量樣式、特征配置、硬件限制,或其他標準。其可被動態(tài)完成,以便快速適應(yīng)諸如以最小的流 量中斷遷移虛擬機的事件。雖然方法和裝置已根據(jù)示出的實施例被說明,本領(lǐng)域技術(shù)人員將容易認識到,在 不偏離本發(fā)明的范圍的前提下,存在對實施例的變更例。相應(yīng)地,意欲所有包含在上述說明 中的和示出在附圖中的內(nèi)容應(yīng)被解釋為說明性的,而非限制性的。
權(quán)利要求
1.一種方法,包括與位于網(wǎng)絡(luò)設(shè)備處的多個虛擬機通信;向所述虛擬機中的每一個指派用于從所述虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式,所述操作模式 從第一模式和第二模式中選擇,在該第一模式中,所述數(shù)據(jù)由硬件實現(xiàn)的交換機轉(zhuǎn)發(fā),在該 第二模式中,所述數(shù)據(jù)由在所述網(wǎng)絡(luò)設(shè)備處的虛擬交換機轉(zhuǎn)發(fā);以及在所述虛擬機中的一個或多個虛擬機處切換所述指派的操作模式。
2.如權(quán)利要求1所述的方法,其中,切換所述指派的模式包括基于所述虛擬機的操作 來動態(tài)切換所述指派的模式。
3.如權(quán)利要求2所述的方法,其中,所述動態(tài)切換是基于在所述虛擬機處的流量樣式的。
4.如權(quán)利要求2所述的方法,其中,所述動態(tài)切換是基于所述虛擬機的配置的。
5.如權(quán)利要求2所述的方法,其中,所述動態(tài)切換是基于硬件資源的可用性的。
6.如權(quán)利要求1所述的方法,其中,所述虛擬交換機包括編碼在一個或多個有形介質(zhì) 中以用于執(zhí)行的邏輯,并且所述邏輯當被執(zhí)行時可操作用于將所述數(shù)據(jù)從所述虛擬機中的 一個轉(zhuǎn)發(fā)到所述虛擬機中的另一個,這兩個所述虛擬機均在所述第二操作模式。
7.如權(quán)利要求1所述的方法,其中,所述第一操作模式還包括將所述數(shù)據(jù)發(fā)送到位于 所述網(wǎng)絡(luò)設(shè)備并與所述硬件實現(xiàn)的交換機通信的接口。
8.如權(quán)利要求7所述的方法,其中,所述接口包括多個虛擬網(wǎng)絡(luò)標簽,在所述第一操作 模式中,所述虛擬網(wǎng)絡(luò)標簽中的一個與所述虛擬交換機相關(guān)聯(lián),并且剩余的所述虛擬網(wǎng)絡(luò) 標簽中的一個或多個各自與所述虛擬機中的一個相關(guān)聯(lián)。
9.如權(quán)利要求1所述的方法,其中,所述網(wǎng)絡(luò)設(shè)備是服務(wù)器,并且所述硬件實現(xiàn)的交換 機物理地獨立于所述服務(wù)器。
10.一種被配置用于與多個虛擬機通信的裝置,所述裝置包括虛擬交換機,該虛擬交換機與所述虛擬機中的一個或多個通信;接口,該接口與所述虛擬機中的一個或多個通信,并且被配置用于與硬件實現(xiàn)的交換 機通信;以及模式選擇器,用于向所述虛擬機中的每一個指派用于從所述虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模 式,并且用于在所述虛擬機中的一個或多個虛擬機處切換所述指派的操作模式,所述操作 模式從第一模式和第二模式中選擇,在該第一模式中,所述數(shù)據(jù)由所述硬件實現(xiàn)的交換機 轉(zhuǎn)發(fā),在該第二模式中,所述數(shù)據(jù)由所述虛擬交換機轉(zhuǎn)發(fā);其中,與所述接口通信的所述一個或多個虛擬機在所述第一操作模式,并且與所述虛 擬交換機通信的所述一個或多個虛擬機在所述第二操作模式。
11.如權(quán)利要求10所述的裝置,其中,所述模式選擇器被配置用于基于所述虛擬機的 操作來動態(tài)地在所述模式間切換。
12.如權(quán)利要求10所述的裝置,還包括監(jiān)視器,該監(jiān)視器用于監(jiān)視從所述虛擬機發(fā)送 的流量。
13.如權(quán)利要求12所述的裝置,其中,所述模式選擇器被配置用于基于由所述監(jiān)視器 所記錄的流量樣式來動態(tài)地在所述操作模式間切換。
14.如權(quán)利要求10所述的裝置,其中,所述接口包括多個虛擬網(wǎng)絡(luò)標簽,所述虛擬網(wǎng)絡(luò)標簽中的一個與所述虛擬交換機相關(guān)聯(lián),并且剩余所述虛擬網(wǎng)絡(luò)標簽中的一個或多個各自 與跟所述接口通信的所述虛擬機中的一個相關(guān)聯(lián)。
15.如權(quán)利要求14所述的裝置,其中,所述模式選擇器被配置用于追蹤可用虛擬網(wǎng)絡(luò) 標簽的數(shù)量,并且基于可用虛擬網(wǎng)絡(luò)標簽的數(shù)量,將所述虛擬機中的一個從所述第一模式 切換到所述第二模式。
16.如權(quán)利要求10所述的裝置,其中,所述虛擬交換機包括編碼在一個或多個有形介 質(zhì)中以用于執(zhí)行的邏輯,并且所述邏輯當被執(zhí)行時可操作用于從所述虛擬機中的一個將所 述數(shù)據(jù)轉(zhuǎn)發(fā)到所述虛擬機中的另一個,這兩個所述虛擬機均在所述第二操作模式。
17.編碼在一個或多個有形介質(zhì)中以用于執(zhí)行的邏輯,所述邏輯當被執(zhí)行時可操作用于與位于網(wǎng)絡(luò)設(shè)備處的多個虛擬機通信;向所述虛擬機中的每一個指派用于從所述虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式,所述操作模式 從第一模式和第二模式中選擇,在該第一模式中,所述數(shù)據(jù)由硬件實現(xiàn)的交換機轉(zhuǎn)發(fā),在該 第二模式中,所述數(shù)據(jù)由在所述網(wǎng)絡(luò)設(shè)備處的虛擬交換機轉(zhuǎn)發(fā);以及 在所述虛擬機中的一個或多個虛擬機處切換所述指派的操作模式。
18.如權(quán)利要求17所述的邏輯,其中,所述邏輯可操作用于基于所述虛擬機的操作來 動態(tài)地在所述模式間切換。
19.如權(quán)利要求17所述的邏輯,其中,所述邏輯可操作用于基于在所述虛擬機處的流 量樣式來動態(tài)地在所述模式間切換。
20.如權(quán)利要求17所述的邏輯,其中,所述邏輯可操作用于基于硬件資源的可用性來 動態(tài)地在所述模式間切換。
全文摘要
在一個實施例中,配置用于與多個虛擬機通信的裝置包括虛擬交換機,該虛擬交換機與虛擬機中的一個或多個通信;接口,該接口與虛擬機中的一個或多個通信,并且被配置用于與硬件實現(xiàn)的交換機通信;以及模式選擇器,用于向虛擬機中的每一個指派用于從虛擬機轉(zhuǎn)發(fā)數(shù)據(jù)的操作模式,并且用于在虛擬機的一個或多個處切換所指派的操作模式。該操作模式從第一模式和第二模式中選擇,在該第一模式中,數(shù)據(jù)由硬件實現(xiàn)的交換機轉(zhuǎn)發(fā),在該第二模式中,數(shù)據(jù)由虛擬交換機轉(zhuǎn)發(fā)。
文檔編號G06F9/455GK102084340SQ201080002011
公開日2011年6月1日 申請日期2010年4月21日 優(yōu)先權(quán)日2009年4月28日
發(fā)明者保羅·法茨祖尼, 邁克爾·史密斯, 阿努薩卡·埃蘭戈萬 申請人:思科技術(shù)公司