,如果虛擬機(jī)Hl試圖在迀移后將數(shù)據(jù)包發(fā)送到虛擬機(jī)H2,則因?yàn)関switch-m在其MAC地址表中不包含虛擬機(jī)H2的MAC地址,所以在vswitch-m中將發(fā)生第2層查找未命中。
[0042]因此,這些分組被vswitch-m認(rèn)為是未知的單播,并被發(fā)送到葉/ToR交換機(jī)。然而,由于葉交換機(jī)Lm不會(huì)立即識(shí)別出仍然是虛擬機(jī)H2的MAC地址的特定DMAC地址,因此在ToR處還將發(fā)生第2層查找未命中。具體地,因?yàn)镈MAC地址不是路由器MAC地址(例如,與路由器相關(guān)聯(lián)的MAC地址),所以ToR將不能夠?qū)?lái)自vswitch-m的分組進(jìn)行路由。因此,分組在ToR處還將遭受第2層查找未命中,并將被丟棄,從而影響現(xiàn)有的流并且不利于虛擬機(jī)移動(dòng)性的無(wú)縫行為的目標(biāo)。
[0043]盡管分組原則上在第2層進(jìn)行交換,但這將導(dǎo)致完全跨越巨大結(jié)構(gòu)并且向端主機(jī)的分組洪泛,這與大規(guī)模數(shù)據(jù)中心架構(gòu)的基本的可擴(kuò)展目標(biāo)矛盾。
[0044]因此,一種確保虛擬機(jī)移動(dòng)性事件后的所有流量繼續(xù)無(wú)縫地流動(dòng)的方法是,在虛擬交換機(jī)的MAC地址表中不存在DMAC地址的情況下,用共享MAC地址或任播網(wǎng)關(guān)MAC地址(也叫做,路由器MAC地址)替換DMAC地址。該替換只被執(zhí)行用于單播DMAC地址,并且不用于多播(即,多目的地)DMAC地址。從而,虛擬交換機(jī)然后將流量轉(zhuǎn)發(fā)到ToR,其中流量將經(jīng)過(guò)基于IP的FIB查找表,并且在第3層被轉(zhuǎn)發(fā)以到達(dá)目的地虛擬機(jī)。該方法將允許對(duì)虛擬機(jī)迀移后的流量無(wú)縫地進(jìn)行處理。
[0045]返回參考圖2A,該方法的示例被示出。根據(jù)本文中所描述的技術(shù),與被從虛擬機(jī)Hl發(fā)送到虛擬機(jī)H2的幀相關(guān)聯(lián)的報(bào)頭信息的示例以標(biāo)號(hào)210示出,其中,SMAC是“00:00:01:01:01:01”,0嫩(:地址是“00:00:(^:3(1沱6:6廣,源1?(51?)被示為“1.1.1.1”,并且目的地1?(DIP)被示為“1.1.1.2”。在該示例中,DMAC地址被示為共享MAC地址(S卩,任播GW MAC地址)。具體地,根據(jù)本文中所描述的技術(shù),最初被設(shè)置為“00:00:01:01:01:02”的虛擬機(jī)H2的DMAC地址被用任播GW MAC地址“00:00:de:ad:be:ef”替換。
[0046]總之,在當(dāng)虛擬機(jī)已經(jīng)移動(dòng)到不同虛擬交換機(jī)并且其中虛擬機(jī)的ARP緩存針對(duì)移動(dòng)保持不變的情況下,針對(duì)虛擬機(jī)Hl和Hl之間繼續(xù)的通信,虛擬交換機(jī)將確定已經(jīng)發(fā)生第2層查找未命中,并且將用共享MAC地址替換單播DMAC地址(例如,虛擬機(jī)H2的MAC地址)并將流量流轉(zhuǎn)發(fā)到葉交換機(jī)。因此,來(lái)自已迀移的虛擬機(jī)的流量的報(bào)頭將包含與源機(jī)器的物理MAC地址對(duì)應(yīng)的SMAC地址、是共享MAC地址的DMAC地址、是源機(jī)器的源IP地址的SIP以及目的地虛擬機(jī)的IP地址。
[0047]分組在第3層照例被轉(zhuǎn)發(fā),并且不需要葉交換機(jī)存儲(chǔ)遠(yuǎn)程主機(jī)的MAC地址或者跨越網(wǎng)絡(luò)結(jié)構(gòu)并向端主機(jī)轉(zhuǎn)發(fā)未知的單播(例如,洪泛)ο從虛擬機(jī)H2到虛擬機(jī)Hl的反向流量將由vswitch-Ι以相似的方式進(jìn)行處理。
[0048]現(xiàn)在參考圖3A和圖3B以用于已迀移的具有發(fā)送到居于本地的虛擬機(jī)的流量(例如虛擬機(jī)Hl和虛擬機(jī)H4之間),再者虛擬機(jī)Hl被迀移后的情況。在該情況下,即使虛擬機(jī)Hl和H4當(dāng)前對(duì)于彼此是本地的(S卩,附接到相同的虛擬交換機(jī)),但因?yàn)樘摂M機(jī)Hl的ARP緩存還未被更新以反映虛擬機(jī)H4的鄰近,所以通信將繼續(xù)通過(guò)葉交換機(jī)Lm進(jìn)行。因此,直到虛擬機(jī)H4的ARP條目在虛擬機(jī)Hl的ARP緩存中被重新更新,通信將繼續(xù)通過(guò)葉交換機(jī)Lm進(jìn)行。
[0049]根據(jù)本文中所描述的技術(shù),與被從虛擬機(jī)Hl發(fā)送到虛擬機(jī)H4的幀相關(guān)聯(lián)的報(bào)頭信息的示例在圖3A中以標(biāo)號(hào)310示出,其中SMAC是“00:00:01:01:01:01”,DMAC地址是“00:00:de:ad:be:ef”,SIP被示為“I.I.I.I”,并且DIP被示為“I.I.I.4”。在該示例中,DMAC地址是任播GW MAC地址。
[0050]當(dāng)更新了虛擬機(jī)Hl的ARP表中的虛擬機(jī)H4的ARP緩存條目時(shí),通過(guò)用虛擬機(jī)H4的MAC地址(即,00: 00: 01: 01: 01: 04)替換共享MAC地址,虛擬機(jī)Hl和H4之間的通信將由vswi tch-m直接進(jìn)行交換而無(wú)需將通信轉(zhuǎn)發(fā)到葉交換機(jī)Lm。針對(duì)虛擬機(jī)H4和Hl之間的通信方案的反向流量將以相似的方式進(jìn)行處理。
[0051 ]圖3B示出了虛擬機(jī)Hl迀移到不同物理服務(wù)器(vswitch-m)后的ARP緩存。具體地,當(dāng)前與虛擬機(jī)Hl在相同物理設(shè)備上的虛擬機(jī)(S卩,虛擬機(jī)H4)的ARP條目以標(biāo)號(hào)320示出。
[0052]因此,本文中所描述的技術(shù)確保了所有流量在虛擬機(jī)迀移后繼續(xù)無(wú)縫地流動(dòng),同時(shí)避免了第2層廣播/洪泛的誤區(qū),并允許清潔的、高度可伸縮的第3層基于ToR的數(shù)據(jù)中心設(shè)計(jì)被維持。此外,本文中所描述的技術(shù)不依賴于已迀移的虛擬機(jī)或者與已迀移的虛擬機(jī)進(jìn)行通信的虛擬機(jī)上的“ARP條目修補(bǔ)”。此外,因?yàn)橐呀?jīng)在其中發(fā)生第2層查找的到來(lái)的分組被轉(zhuǎn)發(fā)到ToR(其中具有現(xiàn)在是路由器MAC地址(即,共享MAC地址)的DMAC地址),并且ToR將照例對(duì)分組進(jìn)行路由,所以這些技術(shù)不需要修改ToR。因此,由于本文中所描述的技術(shù)不需要由典型的虛擬交換機(jī)支持的核心轉(zhuǎn)發(fā)行為中的改變,所以其是非侵入式的。
[0053]現(xiàn)在參考圖4,其示出了用共享MAC地址替換DMAC地址的示例。圖4示出了虛擬交換機(jī)(例如,vswitch-m)的示例MAC地址表AKLvswitch-m的MAC地址表具有附接到相同虛擬交換機(jī)的虛擬機(jī)(例如,虛擬機(jī)H4和H5)的MAC地址。此外,根據(jù)本文中所公開的技術(shù),MAC地址表包含共享MAC地址415(例如,任播MAC地址)。
[0054]當(dāng)虛擬機(jī)Hl從物理服務(wù)器A110迀移到物理服務(wù)器B 120時(shí),因?yàn)樘摂M機(jī)Hl的ARP緩存反應(yīng)了虛擬機(jī)Hl的初始位置(迀移前的位置),即當(dāng)虛擬機(jī)Hl和H2被連接到相同物理交換機(jī)時(shí)的位置,所以被從虛擬機(jī)Hl發(fā)送到虛擬機(jī)H2的分組420將包含虛擬機(jī)H2的實(shí)際DMAC地址。
[°°55] MAC地址表410包含被連接到vswi tch-m的虛擬機(jī)的MAC地址,在該情況下,包括虛擬機(jī)H4和H5的MAC地址以及共享MAC地址。(注意到,MAC地址表410將不包含虛擬機(jī)Hl的條目,直到分組被虛擬機(jī)Hl接收)。特別地,MAC地址表不包含位于不同虛擬交換機(jī)上的虛擬機(jī)H2的條目。因此,由虛擬交換機(jī)做出用共享MAC地址替換從虛擬機(jī)Hl發(fā)送的分組的DMAC的決定以協(xié)助將該分組路由到虛擬機(jī)H2。
[0056]現(xiàn)在參考圖5。圖5示出了描繪由虛擬交換機(jī)執(zhí)行以確保流量的無(wú)縫流動(dòng)的操作的示例流程圖500。在操作510,分組在虛擬交換機(jī)處被接收,該虛擬交換機(jī)在被配置為托管作為分組的來(lái)源的一個(gè)或多個(gè)虛擬機(jī)(例如,虛擬機(jī)H1-H5)的物理服務(wù)器上運(yùn)行。在操作520,與目的地虛擬機(jī)相關(guān)聯(lián)的目的地媒體訪問(wèn)控制(DMAC)地址被從分組中識(shí)別。在操作530,做出關(guān)于在可由虛擬交換機(jī)訪問(wèn)的MAC地址的數(shù)據(jù)庫(kù)中是否存在分組的DMAC地址的確定。在操作540,如果在數(shù)據(jù)庫(kù)中不存在DMAC地址(S卩,如果DMAC地址對(duì)虛擬交換機(jī)不是已知的),則分組的DMAC地址被用共享MAC地址替換,并且隨后被轉(zhuǎn)發(fā)到上游,該分組在上游處被路由到指定目的地。
[0057]圖6示出了被配置為支持虛擬交換機(jī)并執(zhí)行本文中所呈現(xiàn)的技術(shù)的裝置(例如,物理設(shè)備)的示例框圖。物理設(shè)備600(例如,服務(wù)器計(jì)算機(jī))包括網(wǎng)絡(luò)接口單元610、處理器620和存儲(chǔ)器630。網(wǎng)絡(luò)接口單元610被配置為使能網(wǎng)絡(luò)通信以便例如通過(guò)葉交換機(jī)來(lái)與網(wǎng)絡(luò)進(jìn)行交互。盡管概念性地被示為“網(wǎng)絡(luò)接口單元”,但將認(rèn)識(shí)到,物理服務(wù)器可以包含與網(wǎng)絡(luò)內(nèi)其他設(shè)備進(jìn)行通信的多于一個(gè)網(wǎng)絡(luò)接口或接口類型。處理器620是一個(gè)或多個(gè)微處理器或微控制器,并執(zhí)行與本文中所公開的技術(shù)相關(guān)聯(lián)的標(biāo)識(shí)、確定和替換邏輯。存儲(chǔ)器630存儲(chǔ)MAC地址/IP表632(例如,ARP表)和MAC地址替換軟件634的指令。此外,存儲(chǔ)器630存儲(chǔ)用于一個(gè)或多個(gè)虛擬交換機(jī)設(shè)備642和用于多個(gè)虛擬機(jī)(例如,虛擬機(jī)652...654)的可執(zhí)行指令。
[0058]存儲(chǔ)器630可以由一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)來(lái)實(shí)現(xiàn),該一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括只讀存儲(chǔ)器(R0M)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤存儲(chǔ)介質(zhì)設(shè)備、光學(xué)存儲(chǔ)介質(zhì)設(shè)備、閃存設(shè)備、電的、光學(xué)的或其他物理的/有形的存儲(chǔ)器存儲(chǔ)設(shè)備。
[0059]因此通常,存儲(chǔ)器630可以包括編碼有軟件(包括計(jì)算機(jī)可執(zhí)行指令)的一個(gè)或多個(gè)有形的(例如,非暫態(tài)的)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(例如,存儲(chǔ)器設(shè)備),并且當(dāng)軟件被處理器620執(zhí)行時(shí),處理器620可操作為執(zhí)行本文中所描述的與標(biāo)識(shí)、確定和替換邏輯相關(guān)的操作。在其他方法中,MAC地址/IP表632和MAC地址替換軟件634被存儲(chǔ)在一個(gè)或多個(gè)可由處理器620訪問(wèn)的數(shù)據(jù)庫(kù)中。<