本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種虛擬機(jī)數(shù)據(jù)流管理方法和系統(tǒng)。
背景技術(shù):
服務(wù)器虛擬化技術(shù),使CPU、內(nèi)存、磁盤、I/O(input/output,輸入輸出端口)等硬件變成可以動(dòng)態(tài)管理的“資源池”,從而提高資源的利用率,讓計(jì)算機(jī)系統(tǒng)對業(yè)務(wù)的變化更具適應(yīng)力。目前虛擬化技術(shù)中,虛擬子機(jī)與主機(jī)之間的網(wǎng)絡(luò)通信采用PV驅(qū)動(dòng)(Para-Virtualization Driver,半虛擬化驅(qū)動(dòng))的半虛擬化方案,即:在主機(jī)側(cè)安裝后端驅(qū)動(dòng),而在虛擬子機(jī)側(cè)安裝前端驅(qū)動(dòng),通過前后端驅(qū)動(dòng)的交互來實(shí)現(xiàn)虛擬子機(jī)的網(wǎng)絡(luò)通信,所有發(fā)送到虛擬子機(jī)或由虛擬子機(jī)發(fā)送的數(shù)據(jù)包都會通過主機(jī)側(cè)的后端驅(qū)動(dòng),這樣就可以在主機(jī)側(cè)對虛擬子機(jī)的網(wǎng)絡(luò)通信進(jìn)行包過濾、QoS(Quality of Service,服務(wù)質(zhì)量)等管理。但是,同時(shí)由于所有虛擬子機(jī)的數(shù)據(jù)包都會經(jīng)由主機(jī)側(cè)的后端驅(qū)動(dòng)處理,即由主機(jī)側(cè)的后端驅(qū)動(dòng)進(jìn)行軟路由,導(dǎo)致主機(jī)側(cè)的CPU處理負(fù)擔(dān)非常大,使用千兆網(wǎng)卡時(shí),網(wǎng)絡(luò)吞吐量,CPU的消耗還可以接受。在使用萬兆網(wǎng)卡時(shí),容易主機(jī)側(cè)的CPU性能瓶頸并且對其使用壽命產(chǎn)生影響,無法充分利用網(wǎng)卡的處理能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種虛擬機(jī)數(shù)據(jù)流管理方法和系統(tǒng),可提高虛擬機(jī)的網(wǎng)絡(luò)通信性能。
為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)流管理方法,所述方法包括:
主機(jī)通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收通信對端發(fā)送的IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述主機(jī)的指定網(wǎng)口的MAC地址和目標(biāo)虛擬子機(jī)的IP地址;
所述主機(jī)根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種虛擬機(jī)數(shù)據(jù)流管理方法,所述方法包括:
目標(biāo)虛擬子機(jī)通過SR-IOV網(wǎng)卡的虛擬連接功能發(fā)送IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址和通信對端的IP地址;
所述主機(jī)在通過所述SR-IOV網(wǎng)卡中的指定網(wǎng)口接收到所述IP數(shù)據(jù)包后根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至所述通信對端。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種虛擬機(jī)數(shù)據(jù)流管理系統(tǒng),包括主機(jī)和至少一個(gè)虛擬子機(jī),其中:
所述主機(jī),用于通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收通信對端發(fā)送的IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述主機(jī)的指定網(wǎng)口的MAC地址和目標(biāo)虛擬子機(jī)的IP地址;
所述主機(jī),還用于根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種虛擬機(jī)數(shù)據(jù)流管理系統(tǒng),包括主機(jī)和至少一個(gè)虛擬子機(jī),其中:
所述虛擬子機(jī),用于通過SR-IOV網(wǎng)卡的虛擬連接功能發(fā)送IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址和通信對端的IP地址;
所述主機(jī),用于在通過所述SR-IOV網(wǎng)卡中的指定網(wǎng)口接收到所述IP數(shù)據(jù)包后根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至所述通信對端。
本發(fā)明實(shí)施例中通過在流經(jīng)虛擬子機(jī)的IP數(shù)據(jù)包中配置虛擬子機(jī)對應(yīng)主機(jī)的指定網(wǎng)口的MAC地址,使得目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)可以經(jīng)由主機(jī)指定網(wǎng)口,從而可以實(shí)現(xiàn)對目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理,同時(shí)由于數(shù)據(jù)不再需要經(jīng)過主機(jī)側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述 中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例中的一種虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖;
圖2是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖;
圖3是本發(fā)明實(shí)施例中的SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)的示意圖;
圖4是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖;
圖5是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖;
圖6是本發(fā)明實(shí)施例中的一種虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明實(shí)施例中的一種虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖,如圖所示本實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法流程可以包括:
S101,主機(jī)通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收通信對端發(fā)送的IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述主機(jī)的指定網(wǎng)口的MAC地址和目標(biāo)虛擬子機(jī)的IP地址。
所述主機(jī)的指定網(wǎng)口為本實(shí)施例中的目標(biāo)虛擬子機(jī)的虛擬連接功能(下文也稱VF,Virtual Function)所屬的物理連接功能(下文也稱PF,Physical Funtion),或與所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF屬于同一物理連接功能PF的另一虛擬連接功能VF。本發(fā)明實(shí)施例中通信對端在向同屬于一SR-IOV網(wǎng)卡的虛擬子機(jī)發(fā)送IP數(shù)據(jù)包時(shí),IP數(shù)據(jù)包中的目標(biāo)MAC地址是該虛擬子機(jī)對應(yīng)的主機(jī)的指定網(wǎng)口的MAC地址,這樣主機(jī)側(cè)可以通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)包。所述通信對端為外部網(wǎng)絡(luò)設(shè)備,即除了主機(jī)外的其他網(wǎng)絡(luò)設(shè)備。
S102,所述主機(jī)根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能。
具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法基于支持SR-IOV (Single-Root I/O Virtualization,單根I/O虛擬化)技術(shù)的網(wǎng)卡中的L2(Layer 2,即數(shù)據(jù)鏈路層)交換邏輯,SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)可以如圖3所示,在本實(shí)施例中的流程執(zhí)行之前,可以通過圖3中主機(jī)的網(wǎng)卡的物理連接功能(下文也稱PF,Physical Funtion)為目標(biāo)虛擬子機(jī)生成并分配虛擬連接功能(下文也稱VF,Virtual Function),同時(shí)分配該VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī)。本發(fā)明實(shí)施例中的主機(jī)會管理各個(gè)虛擬子機(jī)的VF與其IP之間的映射關(guān)系,在接收到外部發(fā)來的IP數(shù)據(jù)包時(shí),可以根據(jù)其攜帶的目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至對應(yīng)的目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能,目標(biāo)虛擬子機(jī)從而接收到該IP數(shù)據(jù)包。
從而,主機(jī)通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后可以對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)的VF,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
進(jìn)而在可選實(shí)施例中,為了讓通信對端在向目標(biāo)虛擬子機(jī)發(fā)送IP數(shù)據(jù)包時(shí)將目標(biāo)MAC地址設(shè)為該虛擬子機(jī)對應(yīng)的主機(jī)的指定網(wǎng)口的MAC地址,本發(fā)明實(shí)施例中可以通過執(zhí)行以下流程110)和120)實(shí)現(xiàn)這一目的:
110),獲取通信對端發(fā)送的針對所述目標(biāo)虛擬子機(jī)的ARP請求消息,所述ARP請求消息中的目標(biāo)IP地址為所述目標(biāo)虛擬子機(jī)的IP地址。
具體的,當(dāng)檢測到物理網(wǎng)卡從外部接收到的ARP請求中的目標(biāo)IP地址(如ARP請求消息中的arp_tpa,target protocol address)為所述目標(biāo)虛擬子機(jī)的IP地址時(shí),即確認(rèn)獲取到通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)的ARP請求消息,執(zhí)行120)。
執(zhí)行步驟110)和120)的可以為本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊,所述虛擬機(jī)通信配置模塊可以實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)中,也可以實(shí)現(xiàn)在主機(jī)中。若所述虛擬機(jī)通信配置模塊實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)中,目標(biāo)虛擬子機(jī)接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息時(shí)即所述虛擬機(jī)通信配置模塊接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息;若實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)中,由于ARP請求消息是廣播的,主機(jī)側(cè)實(shí)際也會接收到該ARP請求,只是一般情況下主機(jī)側(cè)會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)側(cè)的IP地址則丟棄掉,主機(jī)側(cè)的虛擬機(jī)通信配置模塊可以通過檢測到物理網(wǎng)卡從外部接收到的ARP請求 中的目標(biāo)IP地址是否為所述目標(biāo)虛擬子機(jī)的IP地址,若是,即確認(rèn)獲取到通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)的ARP請求消息。
120),根據(jù)所述ARP請求消息向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址均為所述主機(jī)指定網(wǎng)口的MAC地址,以使所述通信對端根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)的指定網(wǎng)口。
具體的,現(xiàn)有技術(shù)中所述目標(biāo)虛擬子機(jī)在接收到所述ARP請求消息時(shí),會向所述通信對端發(fā)送對應(yīng)的ARP響應(yīng)消息,該ARP響應(yīng)消息中的發(fā)送者IP地址(如ARP響應(yīng)消息中的arp_spa,sender protocol address)為目標(biāo)虛擬子機(jī)預(yù)先被分配得到的VF的IP地址,發(fā)送者M(jìn)AC地址(如ARP響應(yīng)消息中的arp_sha字段,sender hardware address)和以太網(wǎng)源地址(ARP響應(yīng)消息中的ether_shost字段)為目標(biāo)虛擬子機(jī)預(yù)先被分配得到的VF的虛擬MAC地址,這樣所述通信對端就會根據(jù)該ARP響應(yīng)消息中的發(fā)送者IP地址以及發(fā)送者M(jìn)AC地址(或以太網(wǎng)源地址)向所述目標(biāo)虛擬子機(jī)發(fā)送IP數(shù)據(jù)包,由于該架構(gòu)下的VF直通目標(biāo)虛擬子機(jī),這樣會產(chǎn)生主機(jī)側(cè)無法對發(fā)送至虛擬子機(jī)的IP數(shù)據(jù)包進(jìn)行包過濾、QoS(Quality of Service,服務(wù)質(zhì)量)等管理的問題。
從而,本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊通過向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址,即將原本應(yīng)該應(yīng)答的ARP響應(yīng)消息中的目標(biāo)虛擬子機(jī)的VF對應(yīng)的MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使所述通信對端在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口,后續(xù)可以由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)的VF,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
需要指出的是,上述通過APR響應(yīng)方式讓通信對端將目標(biāo)虛擬子機(jī)的IP數(shù)據(jù)包發(fā)向?qū)?yīng)主機(jī)的指定網(wǎng)口,僅是本發(fā)明可選實(shí)施例,在其他可選實(shí)施例中,也可以采用其他方式,例如通信對端側(cè)手動(dòng)配置IP數(shù)據(jù)包的目標(biāo)MAC地址為對應(yīng)主機(jī)的指定網(wǎng)口,或通過在網(wǎng)絡(luò)中傳播虛擬子機(jī)的IP與其對應(yīng)主機(jī)指 定網(wǎng)口的MAC地址的映射關(guān)系的方式,讓通信對端得知目標(biāo)虛擬子機(jī)對應(yīng)主機(jī)指定網(wǎng)口的MAC地址,均可以實(shí)現(xiàn)該目的。
進(jìn)而由于本發(fā)明實(shí)施例中的主機(jī)指定網(wǎng)口中轉(zhuǎn)虛擬子機(jī)的IP數(shù)據(jù)包是通過配置MAC地址實(shí)現(xiàn)的,不再需要經(jīng)過主機(jī)側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
圖2是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖,如圖所示本實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法流程可以包括:
S201,目標(biāo)虛擬子機(jī)通過SR-IOV網(wǎng)卡的虛擬連接功能發(fā)送IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址和通信對端的IP地址。
具體的,本實(shí)施例中的目標(biāo)虛擬子機(jī)與前文實(shí)施例中類似,預(yù)先被分配得到VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī),目標(biāo)虛擬子機(jī)通過該VF向外發(fā)送網(wǎng)絡(luò)數(shù)據(jù)。所述主機(jī)的指定網(wǎng)口為本實(shí)施例中的目標(biāo)虛擬子機(jī)的VF所屬的PF或與所述目標(biāo)虛擬子機(jī)的VF屬于同一PF的另一VF。目標(biāo)虛擬子機(jī)向外發(fā)送IP數(shù)據(jù)包時(shí),所述IP數(shù)據(jù)包的目標(biāo)IP地址為目標(biāo)通信對端的IP地址,目標(biāo)MAC地址為所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址,這樣主機(jī)側(cè)可以通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)向外發(fā)送的IP數(shù)據(jù)包。
S202,所述主機(jī)在通過所述SR-IOV網(wǎng)卡中的指定網(wǎng)口接收到所述IP數(shù)據(jù)包后根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至所述通信對端。
從而,主機(jī)通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)通過VF發(fā)送的IP數(shù)據(jù)后可以對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至通信對端,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
進(jìn)而在可選實(shí)施例中,為了讓目標(biāo)虛擬子機(jī)向外發(fā)送IP數(shù)據(jù)包時(shí)將目標(biāo)MAC地址設(shè)為該虛擬子機(jī)對應(yīng)的主機(jī)的指定網(wǎng)口的MAC地址,本發(fā)明實(shí)施例中還可以通過執(zhí)行以下步驟210)和220)實(shí)現(xiàn)這一目的:
210)檢測到目標(biāo)虛擬子機(jī)發(fā)送ARP請求消息。
具體的,本實(shí)施例中的目標(biāo)虛擬子機(jī)與前文實(shí)施例中類似,預(yù)先被分配得 到VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī),目標(biāo)虛擬子機(jī)通過該VF向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)。目標(biāo)虛擬子機(jī)向外發(fā)送所述ARP請求消息時(shí),所述ARP請求消息的發(fā)送者IP地址(如ARP請求消息中的arp_spa,sender protocol address)和發(fā)送者M(jìn)AC地址(如ARP請求消息中的arp_sha,sender hardware address)為目標(biāo)虛擬子機(jī)預(yù)先被分配得到的VF的IP地址和虛擬MAC地址,目標(biāo)IP地址(如ARP請求消息中的arp_tpa,target protocol address)為目標(biāo)通信對端的IP地址。可以根據(jù)ARP請求中的發(fā)送者IP地址和/或發(fā)送者M(jìn)AC地址確認(rèn)第二所述ARP請求消息是目標(biāo)虛擬子機(jī)發(fā)送的。
執(zhí)行步驟210)和220)的可以為本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊,所述虛擬機(jī)通信配置模塊可以實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)中,也可以實(shí)現(xiàn)在主機(jī)中。若所述虛擬機(jī)通信配置模塊實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)中,目標(biāo)虛擬子機(jī)在需要外發(fā)送ARP請求消息,即ARP請求消息時(shí),虛擬機(jī)通信配置模塊可以獲知;若所述虛擬機(jī)通信配置模塊實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)中,由于ARP請求消息是廣播的,主機(jī)側(cè)實(shí)際會首先接收到該ARP請求,只是一般情況下主機(jī)側(cè)會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)側(cè)的IP地址則丟棄掉,主機(jī)側(cè)的虛擬機(jī)通信配置模塊可以通過檢測接收到的ARP請求中的發(fā)送者IP地址和/或發(fā)送者M(jìn)AC地址是否為所述目標(biāo)虛擬子機(jī)的IP地址和/或MAC地址,若是,即確認(rèn)獲取到目標(biāo)虛擬子機(jī)發(fā)送的ARP請求消息。
220),根據(jù)所述ARP請求消息向所述目標(biāo)虛擬子機(jī)發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址,以使所述目標(biāo)虛擬子機(jī)根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口。
具體的,現(xiàn)有技術(shù)中所述目標(biāo)虛擬子機(jī)在發(fā)送所述ARP請求消息后,接收到通信對端返回的ARP響應(yīng)消息中攜帶的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址是該通信對端的MAC地址,然后可以根據(jù)該通信對端的MAC地址向其發(fā)送IP數(shù)據(jù),由于SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下的VF直通物理網(wǎng)卡的Vport,即目標(biāo)虛擬子機(jī)通過VF發(fā)送的IP數(shù)據(jù)通過Vport直接可以向外發(fā)送,這樣會產(chǎn)生主機(jī)側(cè)無法對目標(biāo)虛擬子機(jī)向外發(fā)送的IP數(shù)據(jù)包進(jìn)行包過濾、QoS(Quality of Service,服務(wù)質(zhì)量)等管理的問題。
從而,本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊通過向目標(biāo)虛擬子機(jī)發(fā)送 ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址,即偽造一個(gè)ARP響應(yīng)消息,將原本目標(biāo)虛擬子機(jī)發(fā)送的ARP請求消息中的目標(biāo)IP地址對應(yīng)的通信對端的實(shí)際MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使目標(biāo)虛擬子機(jī)在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口,從而可以由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)后續(xù)發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)向外發(fā)送至通信對端,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
需要指出的是,上述通過APR響應(yīng)方式讓目標(biāo)虛擬子機(jī)將向外發(fā)送的IP數(shù)據(jù)包發(fā)向?qū)?yīng)主機(jī)的指定網(wǎng)口,僅是本發(fā)明可選實(shí)施例,在其他可選實(shí)施例中,也可以采用其他方式,例如目標(biāo)虛擬子機(jī)在驅(qū)動(dòng)配置中配置IP數(shù)據(jù)包的目標(biāo)MAC地址為對應(yīng)主機(jī)的指定網(wǎng)口,同樣可以實(shí)現(xiàn)該目的。
進(jìn)而由于本發(fā)明實(shí)施例中的主機(jī)指定網(wǎng)口中轉(zhuǎn)虛擬子機(jī)的IP數(shù)據(jù)包是通過配置MAC地址實(shí)現(xiàn)的,不再需要經(jīng)過主機(jī)側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
圖4是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖,本實(shí)施例重點(diǎn)介紹虛擬機(jī)通信配置模塊如何通過配置MAC地址以實(shí)現(xiàn)由主機(jī)指定網(wǎng)口對經(jīng)過目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行中轉(zhuǎn),本實(shí)施例中的虛擬機(jī)通信配置模塊實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)內(nèi)部,如圖所示本實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法流程包括:
S401,主機(jī)通過SR-IOV網(wǎng)卡的物理連接功能PF為目標(biāo)虛擬子機(jī)分配虛擬連接功能VF,同時(shí)分配該VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī)。
S402,虛擬機(jī)通信配置模塊獲取通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)的ARP請求消息。
本實(shí)施例中的虛擬機(jī)通信配置模塊實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)內(nèi)部,目標(biāo)虛擬子機(jī)接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息時(shí)即所述虛擬機(jī)通信配置模塊接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息。
S403,虛擬機(jī)通信配置模塊根據(jù)所述ARP請求消息向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址。
即將原本應(yīng)該應(yīng)答的ARP響應(yīng)消息中的目標(biāo)虛擬子機(jī)的VF對應(yīng)的MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使所述通信對端在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口。后續(xù)可以由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)的VF,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口為所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF所屬的物理連接功能PF,或與所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF屬于同一物理連接功能PF的另一虛擬連接功能VF。
S404,檢測到所述目標(biāo)虛擬子機(jī)發(fā)送ARP請求消息。
本實(shí)施例中的虛擬機(jī)通信配置模塊實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)內(nèi)部,可以檢測目標(biāo)虛擬子機(jī)的VF根據(jù)操作系統(tǒng)的指令需要發(fā)送ARP請求消息。
S405,丟棄所述ARP請求消息。
即虛擬機(jī)通信配置模塊攔截并阻止目標(biāo)虛擬子機(jī)向外發(fā)送ARP請求消息。
S406,根據(jù)所述ARP請求消息向所述目標(biāo)虛擬子機(jī)發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址。
即虛擬機(jī)通信配置模塊通過偽造一個(gè)ARP響應(yīng)消息,將原本目標(biāo)虛擬子機(jī)發(fā)送的ARP請求消息中的目標(biāo)IP地址對應(yīng)的通信對端的實(shí)際MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使目標(biāo)虛擬子機(jī)在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口,并由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)后續(xù)發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)向外發(fā)送至通信對端,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口為所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF所屬的物理連接功能PF,或與 所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF屬于同一物理連接功能PF的另一虛擬連接功能VF。
S407,檢測到所述目標(biāo)虛擬子機(jī)遷移完成后,獲取遷移后主機(jī)指定網(wǎng)口的MAC地址。
具體實(shí)現(xiàn)中,在SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下的目標(biāo)虛擬子機(jī)熱遷移過程中,需要熱拔掉虛擬子機(jī)使用的VF對應(yīng)的網(wǎng)卡,然后在虛擬子機(jī)遷移完成后,通過SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下VF之間以及VF和所屬PF之間的通信機(jī)制,虛擬機(jī)通信配置模塊可以獲取到目標(biāo)虛擬子機(jī)熱遷移后所對應(yīng)的主機(jī)指定網(wǎng)口的MAC地址,以便后續(xù)在執(zhí)行S401-403以及S404-406時(shí),可以實(shí)現(xiàn)對從外部發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù),以及對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
圖5是本發(fā)明另一實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法的流程示意圖,本實(shí)施例重點(diǎn)介紹虛擬機(jī)通信配置模塊如何通過配置MAC地址以實(shí)現(xiàn)由主機(jī)指定網(wǎng)口對經(jīng)過目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行中轉(zhuǎn),本實(shí)施例中的虛擬機(jī)通信配置模塊實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)對應(yīng)主機(jī)側(cè),如圖所示本實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理方法流程包括:
S501,主機(jī)通過SR-IOV網(wǎng)卡的物理連接功能PF為目標(biāo)虛擬子機(jī)分配虛擬連接功能VF,同時(shí)分配該VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī)。
S502,虛擬機(jī)通信配置模塊獲取通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)的ARP請求消息。
本實(shí)施例中的虛擬機(jī)通信配置模塊實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)中,由于ARP請求消息是廣播的,主機(jī)側(cè)實(shí)際也會接收到該ARP請求,只是一般情況下主機(jī)側(cè)會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)側(cè)的IP地址則丟棄掉,本發(fā)明實(shí)施例中主機(jī)側(cè)的虛擬機(jī)通信配置模塊可以通過檢測到物理網(wǎng)卡從外部接收到的ARP請求中的目標(biāo)IP地址是否為所述目標(biāo)虛擬子機(jī)的IP地址,若是,即確認(rèn)獲取到通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)的ARP請求消息。
S503,虛擬機(jī)通信配置模塊根據(jù)所述ARP請求消息向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為指 定網(wǎng)口的MAC地址。
本實(shí)施例中,約定目標(biāo)虛擬子機(jī)不對外部發(fā)送的ARP請求消息進(jìn)行響應(yīng),由虛擬機(jī)通信配置模塊向外部的通信對端發(fā)送ARP響應(yīng)消息,并且將原本應(yīng)該應(yīng)答的ARP響應(yīng)消息中的目標(biāo)虛擬子機(jī)的VF對應(yīng)的MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使所述通信對端在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口,并在可選實(shí)施例中可以由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)的VF,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口為所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF所屬的物理連接功能PF,或與所述目標(biāo)虛擬子機(jī)的虛擬連接功能VF屬于同一物理連接功能PF的另一虛擬連接功能VF。
S504,確定接收到的ARP請求消息中的發(fā)送者IP地址為所述目標(biāo)虛擬子機(jī)的IP地址。
本實(shí)施例中虛擬機(jī)通信配置模塊實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)側(cè),由于ARP請求消息是廣播的,主機(jī)側(cè)實(shí)際會首先接收到該ARP請求,只是一般情況下主機(jī)側(cè)會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)側(cè)的IP地址則丟棄掉,本發(fā)明實(shí)施例中主機(jī)側(cè)的虛擬機(jī)通信配置模塊可以通過檢測接收到的ARP請求中的發(fā)送者IP地址和/或發(fā)送者M(jìn)AC地址是否為所述目標(biāo)虛擬子機(jī)的IP地址和/或MAC地址,若是,即確認(rèn)獲取到目標(biāo)虛擬子機(jī)發(fā)送的ARP請求消息。
S505,根據(jù)所述ARP請求消息向所述目標(biāo)虛擬子機(jī)發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為指定網(wǎng)口的MAC地址,以使所述目標(biāo)虛擬子機(jī)根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口。
即虛擬機(jī)通信配置模塊攔截并阻止目標(biāo)虛擬子機(jī)向外發(fā)送ARP請求消息,并偽造一個(gè)ARP響應(yīng)消息,該ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址由原本目標(biāo)虛擬子機(jī)發(fā)送的ARP請求消息中的目標(biāo)IP地址對應(yīng)的通信對端的實(shí)際MAC地址替換成主機(jī)指定網(wǎng)口的MAC地址,以使目標(biāo)虛擬子機(jī)在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述 目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)指定網(wǎng)口,并在可選實(shí)施例中可以由所述目標(biāo)虛擬子機(jī)對應(yīng)的主機(jī)通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)后續(xù)發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)向外發(fā)送至通信對端,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
S506,檢測到目標(biāo)虛擬子機(jī)遷移完成后,獲取遷移后目標(biāo)虛擬子機(jī)的虛擬功能網(wǎng)口的MAC地址。
具體實(shí)現(xiàn)中,在SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下的目標(biāo)虛擬子機(jī)熱遷移過程中,需要熱拔掉虛擬子機(jī)使用的VF對應(yīng)的網(wǎng)卡,然后在虛擬子機(jī)遷移完成后,通過SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下VF之間以及VF和所屬PF之間的通信機(jī)制,虛擬機(jī)通信配置模塊可以獲取到目標(biāo)虛擬子機(jī)熱遷移后分配得到的VF的MAC地址,以便后續(xù)在執(zhí)行S501-503以及S504-505時(shí),可以實(shí)現(xiàn)對從外部發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù),以及對目標(biāo)虛擬子機(jī)向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
圖6是本發(fā)明實(shí)施例中的一種虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)的結(jié)構(gòu)示意圖,如圖所示本發(fā)明實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)可以包括主機(jī)610和目標(biāo)虛擬子機(jī)620,其中:
所述主機(jī)610,用于通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收通信對端發(fā)送的IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述主機(jī)610的指定網(wǎng)口的MAC地址和目標(biāo)虛擬子機(jī)620的IP地址。
具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)基于支持SR-IOV(Single-Root I/O Virtualization,單根I/O虛擬化)技術(shù)的網(wǎng)卡中的L2(Layer 2,即數(shù)據(jù)鏈路層)交換邏輯,SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)可以如圖3所示,可以通過圖3中主機(jī)610的網(wǎng)卡的PF為目標(biāo)虛擬子機(jī)620生成并分配VF,同時(shí)分配該VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī)。所述主機(jī)610的指定網(wǎng)口為本實(shí)施例中的目標(biāo)虛擬子機(jī)620的VF所屬的PF,或與所述目標(biāo)虛擬子機(jī)620的VF屬于同一PF的另一VF。本發(fā)明實(shí)施例中通信對端在向同屬于一SR-IOV網(wǎng)卡的目標(biāo)虛擬子機(jī)620發(fā)送IP數(shù)據(jù)包時(shí),IP數(shù)據(jù)包中的目標(biāo)MAC地址是該目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610的指定網(wǎng)口的MAC地址, 這樣主機(jī)610可以通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)包。所述通信對端為外部網(wǎng)絡(luò)設(shè)備,即除了主機(jī)610外的其他網(wǎng)絡(luò)設(shè)備。
所述主機(jī),還用于根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能。
本發(fā)明實(shí)施例中的主機(jī)會管理各個(gè)虛擬子機(jī)的VF與其IP之間的映射關(guān)系,在接收到外部發(fā)來的IP數(shù)據(jù)包時(shí),可以根據(jù)其攜帶的目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至對應(yīng)的目標(biāo)虛擬子機(jī)在相同SR-IOV網(wǎng)卡中的虛擬連接功能,目標(biāo)虛擬子機(jī)從而接收到該IP數(shù)據(jù)包。
從而,主機(jī)通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后可以對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)的VF,從而實(shí)現(xiàn)了在主機(jī)側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
進(jìn)而在可選實(shí)施例中,為了讓通信對端在向目標(biāo)虛擬子機(jī)620發(fā)送IP數(shù)據(jù)包時(shí)將目標(biāo)MAC地址設(shè)為目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610的指定網(wǎng)口的MAC地址,本發(fā)明的虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)還可以包括:
虛擬機(jī)通信配置模塊630,用于獲取通信對端發(fā)送的針對所述目標(biāo)虛擬子機(jī)620的ARP請求消息,所述ARP請求消息中的目標(biāo)IP地址為所述目標(biāo)虛擬子機(jī)620的IP地址;根據(jù)所述ARP請求消息向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址均為所述主機(jī)610指定網(wǎng)口的MAC地址,以使所述通信對端根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610的指定網(wǎng)口。
具體實(shí)現(xiàn)中,所述虛擬機(jī)通信配置模塊630可以實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)620中,也可以實(shí)現(xiàn)在主機(jī)610中。若所述虛擬機(jī)通信配置模塊630實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)620中,目標(biāo)虛擬子機(jī)620接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息時(shí)即所述虛擬機(jī)通信配置模塊630接收到針對目標(biāo)虛擬子機(jī)的ARP請求消息;若實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610中,由于ARP請求消息是廣播的,主機(jī)側(cè)實(shí)際也會接收到該ARP請求,只是一般情況下主機(jī)610會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)側(cè)的IP地址則丟棄掉,主機(jī)610中的虛擬機(jī)通信配置模塊630可以通過檢測到物理網(wǎng)卡從外部接收到的ARP請求中的目標(biāo)IP地址是否為所述目標(biāo)虛擬子機(jī)620的IP地址,若是,即確認(rèn)獲取到 通信對端發(fā)送的針對目標(biāo)虛擬子機(jī)620的ARP請求消息。
現(xiàn)有技術(shù)中所述目標(biāo)虛擬子機(jī)620在接收到所述ARP請求消息時(shí),會向所述通信對端發(fā)送對應(yīng)的ARP響應(yīng)消息,該ARP響應(yīng)消息中的發(fā)送者IP地址(如ARP響應(yīng)消息中的arp_spa,sender protocol address)為目標(biāo)虛擬子機(jī)620預(yù)先被分配得到的VF的IP地址,發(fā)送者M(jìn)AC地址(如ARP響應(yīng)消息中的arp_sha字段,sender hardware address)和以太網(wǎng)源地址(ARP響應(yīng)消息中的ether_shost字段)為目標(biāo)虛擬子機(jī)620預(yù)先被分配得到的VF的虛擬MAC地址,這樣所述通信對端就會根據(jù)該ARP響應(yīng)消息中的發(fā)送者IP地址以及發(fā)送者M(jìn)AC地址(或以太網(wǎng)源地址)向所述目標(biāo)虛擬子機(jī)620發(fā)送IP數(shù)據(jù)包,由于該架構(gòu)下的VF直通目標(biāo)虛擬子機(jī)620,這樣會產(chǎn)生主機(jī)610側(cè)無法對發(fā)送至虛擬子機(jī)的IP數(shù)據(jù)包進(jìn)行包過濾、QoS(Quality of Service,服務(wù)質(zhì)量)等管理的問題。
從而,本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊630通過向所述通信對端發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口的MAC地址,即將原本應(yīng)該應(yīng)答的ARP響應(yīng)消息中的目標(biāo)虛擬子機(jī)620的VF對應(yīng)的MAC地址替換成主機(jī)610指定網(wǎng)口的MAC地址,以使所述通信對端在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口,后續(xù)可以由所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610通過指定網(wǎng)口接收到通信對端發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至目標(biāo)虛擬子機(jī)620的VF,從而實(shí)現(xiàn)了在主機(jī)610側(cè)可以對發(fā)往目標(biāo)虛擬子機(jī)620的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
需要指出的是,上述虛擬機(jī)通信配置模塊630通過APR響應(yīng)方式讓通信對端將目標(biāo)虛擬子機(jī)的IP數(shù)據(jù)包發(fā)向?qū)?yīng)主機(jī)的指定網(wǎng)口,僅是本發(fā)明可選實(shí)施例,在其他可選實(shí)施例中,也可以采用其他方式,例如通信對端側(cè)手動(dòng)配置IP數(shù)據(jù)包的目標(biāo)MAC地址為對應(yīng)主機(jī)的指定網(wǎng)口,或通過在網(wǎng)絡(luò)中傳播虛擬子機(jī)的IP與其對應(yīng)主機(jī)指定網(wǎng)口的MAC地址的映射關(guān)系的方式,讓通信對端得知目標(biāo)虛擬子機(jī)對應(yīng)主機(jī)指定網(wǎng)口的MAC地址,均可以實(shí)現(xiàn)該目的。
進(jìn)而由于本發(fā)明實(shí)施例中的主機(jī)指定網(wǎng)口中轉(zhuǎn)虛擬子機(jī)的IP數(shù)據(jù)包是通過配置MAC地址實(shí)現(xiàn)的,不再需要經(jīng)過主機(jī)側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
在本發(fā)明另一實(shí)施例中,虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)同樣如圖6所示可以包括主機(jī)610和目標(biāo)虛擬子機(jī)620,其中:
所述目標(biāo)虛擬子機(jī)620,用于通過SR-IOV網(wǎng)卡的虛擬連接功能發(fā)送IP數(shù)據(jù)包,所述IP數(shù)據(jù)包中的目標(biāo)MAC地址和目標(biāo)IP地址分別是所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址和通信對端的IP地址;
具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中的虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)基于支持SR-IOV技術(shù)的網(wǎng)卡中的L2(Layer 2,即數(shù)據(jù)鏈路層)交換邏輯,SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)可以如圖3所示,可以通過圖3中主機(jī)610的網(wǎng)卡的PF為目標(biāo)虛擬子機(jī)620生成并分配VF,同時(shí)分配該VF的IP和虛擬MAC地址,分配得到的VF直通目標(biāo)虛擬子機(jī)620。所述主機(jī)610的指定網(wǎng)口為本實(shí)施例中的目標(biāo)虛擬子機(jī)620的VF所屬的PF,或與所述目標(biāo)虛擬子機(jī)620的VF屬于同一PF的另一VF。目標(biāo)虛擬子機(jī)620向外發(fā)送IP數(shù)據(jù)包時(shí),所述IP數(shù)據(jù)包的目標(biāo)IP地址為目標(biāo)通信對端的IP地址,目標(biāo)MAC地址為所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610在相同SR-IOV網(wǎng)卡中的指定網(wǎng)口的MAC地址,這樣主機(jī)610側(cè)可以通過SR-IOV網(wǎng)卡的指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)620向外發(fā)送的IP數(shù)據(jù)包。
所述主機(jī)610,用于在通過所述SR-IOV網(wǎng)卡中的指定網(wǎng)口接收到所述IP數(shù)據(jù)包后根據(jù)所述目標(biāo)IP地址將所述IP數(shù)據(jù)包轉(zhuǎn)發(fā)至所述通信對端。
從而,主機(jī)610通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)620通過VF發(fā)送的IP數(shù)據(jù)后可以對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)至通信對端,從而實(shí)現(xiàn)了在主機(jī)610側(cè)可以對目標(biāo)虛擬子機(jī)620向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
進(jìn)而在可選實(shí)施例中,為了讓目標(biāo)虛擬子機(jī)620向外發(fā)送IP數(shù)據(jù)包時(shí)將目標(biāo)MAC地址設(shè)為該虛擬子機(jī)對應(yīng)的主機(jī)610的指定網(wǎng)口的MAC地址,本發(fā)明的虛擬機(jī)數(shù)據(jù)流管理系統(tǒng)還可以包括:
虛擬機(jī)通信配置模塊630,用于檢測到目標(biāo)虛擬子機(jī)620發(fā)送ARP請求消息;根據(jù)所述ARP請求消息向所述目標(biāo)虛擬子機(jī)620發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址為目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口的MAC地址,以使所述目標(biāo)虛擬子機(jī)620根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口。
具體的,本實(shí)施例中的目標(biāo)虛擬子機(jī)620預(yù)先被分配得到VF的IP和虛擬MAC地址,目標(biāo)虛擬子機(jī)620通過該VF向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)。目標(biāo)虛擬子機(jī)620向外發(fā)送所述ARP請求消息時(shí),所述ARP請求消息的發(fā)送者IP地址(如ARP請求消息中的arp_spa,sender protocol address)和發(fā)送者M(jìn)AC地址(如ARP請求消息中的arp_sha,sender hardware address)為目標(biāo)虛擬子機(jī)620預(yù)先被分配得到的VF的IP地址和虛擬MAC地址,目標(biāo)IP地址(如ARP請求消息中的arp_tpa,target protocol address)為目標(biāo)通信對端的IP地址。虛擬機(jī)通信配置模塊630可以根據(jù)ARP請求中的發(fā)送者IP地址和/或發(fā)送者M(jìn)AC地址確認(rèn)第二所述ARP請求消息是目標(biāo)虛擬子機(jī)620發(fā)送的。
所述虛擬機(jī)通信配置模塊630可以實(shí)現(xiàn)在目標(biāo)虛擬子機(jī)620中,也可以實(shí)現(xiàn)在主機(jī)610中。若所述虛擬機(jī)通信配置模塊630實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)620中,目標(biāo)虛擬子機(jī)620在需要外發(fā)送ARP請求消息,即ARP請求消息時(shí),虛擬機(jī)通信配置模塊630可以獲知,進(jìn)而虛擬機(jī)通信配置模塊630可以丟棄該ARP請求消息,即虛擬機(jī)通信配置模塊630攔截并阻止目標(biāo)虛擬子機(jī)向外發(fā)送ARP請求消息;若所述虛擬機(jī)通信配置模塊630實(shí)現(xiàn)在所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610中,由于ARP請求消息是廣播的,主機(jī)610側(cè)實(shí)際會首先接收到該ARP請求,只是一般情況下主機(jī)610側(cè)會因?yàn)樵揂RP請求消息中的目標(biāo)IP地址不是主機(jī)610側(cè)的IP地址則丟棄掉,主機(jī)610側(cè)的虛擬機(jī)通信配置模塊630可以通過檢測接收到的ARP請求中的發(fā)送者IP地址和/或發(fā)送者M(jìn)AC地址是否為所述目標(biāo)虛擬子機(jī)620的IP地址和/或MAC地址,若是,即確認(rèn)獲取到目標(biāo)虛擬子機(jī)620發(fā)送的ARP請求消息。
現(xiàn)有技術(shù)中所述目標(biāo)虛擬子機(jī)620在發(fā)送所述ARP請求消息后,接收到通信對端返回的ARP響應(yīng)消息中攜帶的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址是該通信對端的MAC地址,然后可以根據(jù)該通信對端的MAC地址向其發(fā)送IP數(shù)據(jù),由于SR-IOV技術(shù)網(wǎng)卡通信架構(gòu)下的VF直通物理網(wǎng)卡的Vport,即目標(biāo)虛擬子機(jī)620通過VF發(fā)送的IP數(shù)據(jù)通過Vport直接可以向外發(fā)送,這樣會產(chǎn)生主機(jī)610側(cè)無法對目標(biāo)虛擬子機(jī)620向外發(fā)送的IP數(shù)據(jù)包進(jìn)行包過濾、QoS(Quality of Service,服務(wù)質(zhì)量)等管理的問題。
從而,本發(fā)明實(shí)施例中的虛擬機(jī)通信配置模塊630通過向目標(biāo)虛擬子機(jī)620發(fā)送ARP響應(yīng)消息,所述ARP響應(yīng)消息中的發(fā)送者M(jìn)AC地址或以太網(wǎng)源地址 為目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口的MAC地址,即偽造一個(gè)ARP響應(yīng)消息,將原本目標(biāo)虛擬子機(jī)620發(fā)送的ARP請求消息中的目標(biāo)IP地址對應(yīng)的通信對端的實(shí)際MAC地址替換成主機(jī)610指定網(wǎng)口的MAC地址,以使目標(biāo)虛擬子機(jī)620在接收到所述ARP響應(yīng)消息后,可以根據(jù)所述ARP響應(yīng)消息將IP數(shù)據(jù)包發(fā)送至所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610指定網(wǎng)口,從而可以由所述目標(biāo)虛擬子機(jī)620對應(yīng)的主機(jī)610通過指定網(wǎng)口接收到目標(biāo)虛擬子機(jī)620后續(xù)發(fā)送的IP數(shù)據(jù)后對其進(jìn)行包過濾、QoS管理后,再將經(jīng)過包過濾、QoS管理的網(wǎng)絡(luò)數(shù)據(jù)向外發(fā)送至通信對端,從而實(shí)現(xiàn)了在主機(jī)610側(cè)可以對目標(biāo)虛擬子機(jī)620向外發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理。
需要指出的是,上述通過APR響應(yīng)方式讓目標(biāo)虛擬子機(jī)620將向外發(fā)送的IP數(shù)據(jù)包發(fā)向?qū)?yīng)主機(jī)610的指定網(wǎng)口,僅是本發(fā)明可選實(shí)施例,在其他可選實(shí)施例中,也可以采用其他方式,例如目標(biāo)虛擬子機(jī)620在驅(qū)動(dòng)配置中配置IP數(shù)據(jù)包的目標(biāo)MAC地址為對應(yīng)主機(jī)610的指定網(wǎng)口,同樣可以實(shí)現(xiàn)該目的。
進(jìn)而由于本發(fā)明實(shí)施例中的主機(jī)610指定網(wǎng)口中轉(zhuǎn)虛擬子機(jī)的IP數(shù)據(jù)包是通過配置MAC地址實(shí)現(xiàn)的,不再需要經(jīng)過主機(jī)610側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)610側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
本發(fā)明實(shí)施例通過在流經(jīng)虛擬子機(jī)的IP數(shù)據(jù)包中配置虛擬子機(jī)對應(yīng)主機(jī)的指定網(wǎng)口的MAC地址,使得目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)可以經(jīng)由主機(jī)指定網(wǎng)口,從而可以實(shí)現(xiàn)對目標(biāo)虛擬子機(jī)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行包過濾、QoS管理,同時(shí)由于數(shù)據(jù)不再需要經(jīng)過主機(jī)側(cè)的后端驅(qū)動(dòng)處理,避免產(chǎn)生主機(jī)側(cè)的CPU性能瓶頸或?qū)ζ涫褂脡勖a(chǎn)生影響,充分實(shí)現(xiàn)利用網(wǎng)卡的處理能力。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。