本發(fā)明涉及虛擬機(jī)技術(shù)領(lǐng)域,尤其涉及一種更改虛擬網(wǎng)卡配置信息的方法、設(shè)備及系統(tǒng)。
背景技術(shù):
在虛擬機(jī)(virtualmachine,vm)環(huán)境中,網(wǎng)卡設(shè)備通過單源輸入/輸出虛擬化(singrooti/ovirtualization,sr-iov)或虛擬機(jī)設(shè)備隊(duì)列(virtualmachinedevicequeue,vmdq)等i/o虛擬化技術(shù)來實(shí)現(xiàn)多個(gè)虛擬網(wǎng)卡(virtualfunction,vf),每個(gè)虛擬機(jī)根據(jù)需求分配一定數(shù)量的vf。
在這種情況下,如果虛擬機(jī)需要調(diào)整自己的vf的配置信息,例如需對(duì)vf的端口的媒體接入控制(mediaaccesscontrol,mac)地址或虛擬局域網(wǎng)(virtuallocalareanetwork,vlan)標(biāo)識(shí)等特性進(jìn)行配置,則目前只有依賴于各個(gè)硬件廠商提供的特殊的配置通道來做操作,例如,只能給相應(yīng)的硬件部件發(fā)送消息,由硬件部件來完成配置。
可見,目前在更改vf的配置信息時(shí)嚴(yán)重依賴于硬件,系統(tǒng)成本較高,而在部分應(yīng)用場(chǎng)景,硬件提供的消息種類有限,如果硬件沒有提供修改相應(yīng)配置信息的操作,那么如果不修改硬件驅(qū)動(dòng)代碼,也就無法實(shí)現(xiàn)對(duì)vf的配置信息的調(diào)整。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種更改虛擬網(wǎng)卡配置信息的方法、設(shè)備及系統(tǒng),用于解決在更改vf的配置信息時(shí)嚴(yán)重依賴于硬件的技術(shù)問題。
第一方面,提供一種更改虛擬網(wǎng)卡配置信息的方法,包括:
通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作 系統(tǒng)發(fā)送配置請(qǐng)求;所述配置請(qǐng)求用于指示所述主操作系統(tǒng)更改所述第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息;
通過所述主操作系統(tǒng),將所述第一虛擬網(wǎng)卡的配置信息更改為所述配置請(qǐng)求中攜帶的第一配置信息。
可選的,在通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之前,還包括:
通過所述主操作系統(tǒng)建立所述主操作系統(tǒng)與所述第一虛擬機(jī)之間的通信通道。
可選的,通過所述主操作系統(tǒng)建立所述主操作系統(tǒng)與所述第一虛擬機(jī)之間的通信通道,包括:
通過所述主操作系統(tǒng),將所述主操作系統(tǒng)與所述第一虛擬機(jī)通過ovs網(wǎng)橋相連接;或
通過所述主操作系統(tǒng),將所述主操作系統(tǒng)與所述第一虛擬機(jī)通過管理面的串行接口相連接。
可選的,在通過所述主操作系統(tǒng),將所述第一虛擬網(wǎng)卡的配置信息更改為所述配置請(qǐng)求中攜帶的第一配置信息之后,還包括:
通過所述主操作系統(tǒng)向所述第一虛擬機(jī)發(fā)送應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失敗。
可選的,在通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,還包括:
通過所述第一虛擬機(jī)等待所述主操作系統(tǒng)發(fā)送的應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失??;
若在所述第一虛擬機(jī)的定時(shí)器超時(shí)時(shí)還未收到所述主操作系統(tǒng)發(fā)送的應(yīng)答消息,則通過所述第一虛擬機(jī)確定所述第一虛擬網(wǎng)卡的配置信息更改失敗。
可選的,所述配置信息包括所述第一虛擬網(wǎng)卡的mac地址、所述第一虛擬網(wǎng)卡所在的vlan、所述第一虛擬網(wǎng)卡的工作模式中的至少一種;所述第一虛擬網(wǎng)卡的工作模式用于指示所述第一虛擬網(wǎng)卡為所述第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
第二方面,提供一種虛擬機(jī)系統(tǒng),包括主操作系統(tǒng)及虛擬機(jī);其中,
所述虛擬機(jī)中設(shè)置有第一處理模塊,用于向所述主操作系統(tǒng)發(fā)送配置請(qǐng)求;所述配置請(qǐng)求用于指示所述主操作系統(tǒng)更改所述第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息;
所述主操作系統(tǒng)中設(shè)置有第二處理模塊,用于接收所述配置請(qǐng)求,將所述第一虛擬網(wǎng)卡的配置信息更改為所述配置請(qǐng)求中攜帶的第一配置信息。
可選的,所述第二處理模塊還用于:
在接收所述配置請(qǐng)求之前,建立所述主操作系統(tǒng)與所述虛擬機(jī)之間的通信通道。
可選的,所述第二處理模塊用于:
將所述主操作系統(tǒng)與所述虛擬機(jī)通過ovs網(wǎng)橋相連接;或
將所述主操作系統(tǒng)與所述虛擬機(jī)通過管理面的串行接口相連接。
可選的,所述第二處理模塊還用于:
在將所述第一虛擬網(wǎng)卡的配置信息更改為所述配置請(qǐng)求中攜帶的第一配置信息之后,向所述虛擬機(jī)發(fā)送應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失敗。
可選的,所述第一處理模塊還用于:
在向所述主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,等待所述主操作系統(tǒng)發(fā)送的應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失??;
若在所述虛擬機(jī)的定時(shí)器超時(shí)時(shí)還未收到所述主操作系統(tǒng)發(fā)送的應(yīng)答消息,則確定所述第一虛擬網(wǎng)卡的配置信息更改失敗。
可選的,所述配置信息包括所述第一虛擬網(wǎng)卡的mac地址、所述第一虛擬網(wǎng)卡所在的vlan、所述第一虛擬網(wǎng)卡的工作模式中的至少一種;所述第一虛擬網(wǎng)卡的工作模式用于指示所述第一虛擬網(wǎng)卡為所述第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
第三方面,提供一種電子設(shè)備,包括:
第一發(fā)送模塊,用于通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求;所述配置請(qǐng)求用于指示所述主操作系統(tǒng)更改所述第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息;
更改模塊,用于通過所述主操作系統(tǒng),將所述第一虛擬網(wǎng)卡的配置信息更 改為所述配置請(qǐng)求中攜帶的第一配置信息。
可選的,所述電子設(shè)備還包括建立模塊,用于:
在所述第一發(fā)送模塊通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之前,通過所述主操作系統(tǒng)建立所述主操作系統(tǒng)與所述第一虛擬機(jī)之間的通信通道。
可選的,所述建立模塊用于:
通過所述主操作系統(tǒng),將所述主操作系統(tǒng)與所述第一虛擬機(jī)通過ovs網(wǎng)橋相連接;或
通過所述主操作系統(tǒng),將所述主操作系統(tǒng)與所述第一虛擬機(jī)通過管理面的串行接口相連接。
可選的,所述電子設(shè)備還包括第二發(fā)送模塊,用于:
在所述更改模塊通過所述主操作系統(tǒng),將所述第一虛擬網(wǎng)卡的配置信息更改為所述配置請(qǐng)求中攜帶的第一配置信息之后,通過所述主操作系統(tǒng)向所述第一虛擬機(jī)發(fā)送應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失敗。
可選的,所述電子設(shè)備還包括等待模塊和確定模塊;
所述等待模塊,用于在所述第一發(fā)送模塊通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于所述電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,通過所述第一虛擬機(jī)等待所述主操作系統(tǒng)發(fā)送的應(yīng)答消息;所述應(yīng)答消息用于指示所述第一虛擬網(wǎng)卡的配置信息更改成功或失??;
所述確定模塊,用于若在所述第一虛擬機(jī)的定時(shí)器超時(shí)時(shí)還未收到所述主操作系統(tǒng)發(fā)送的應(yīng)答消息,則通過所述第一虛擬機(jī)確定所述第一虛擬網(wǎng)卡的配置信息更改失敗。
可選的,所述配置信息包括所述第一虛擬網(wǎng)卡的mac地址、所述第一虛擬網(wǎng)卡所在的vlan、所述第一虛擬網(wǎng)卡的工作模式中的至少一種;所述第一虛擬網(wǎng)卡的工作模式用于指示所述第一虛擬網(wǎng)卡為所述第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
上述技術(shù)方案中的一個(gè)或兩個(gè),至少具有如下技術(shù)效果:
在需要更改第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息時(shí),第一虛擬機(jī)可以向 主操作系統(tǒng)發(fā)送配置請(qǐng)求,主操作系統(tǒng)就可以更改第一虛擬網(wǎng)卡的配置信息,無需額外的硬件部件的參與,節(jié)省系統(tǒng)成本,即使硬件沒有提供修改相應(yīng)配置信息的操作,因?yàn)樾薷呐渲眯畔⒉灰蕾囉谟布?,那么也就不影響?duì)配置信息的修改,減輕對(duì)硬件的依賴程度,即使不同的網(wǎng)卡廠家的實(shí)現(xiàn)方式不一致,也無需根據(jù)不同的硬件來做不同的更改,減少了所需的操作,提高了修改的成功率。
附圖說明
圖1為配置虛擬機(jī)的vlan標(biāo)識(shí)的示意圖;
圖2為本發(fā)明實(shí)施例中更改虛擬網(wǎng)卡配置信息的方法的流程圖;
圖3為本發(fā)明實(shí)施例中更改虛擬網(wǎng)卡的mac地址的示意圖;
圖4本發(fā)明實(shí)施例中更改虛擬網(wǎng)卡的mac地址的流程圖;
圖5本發(fā)明實(shí)施例中虛擬網(wǎng)卡的主備倒換的示意圖;
圖6本發(fā)明實(shí)施例中更改虛擬網(wǎng)卡的vlan標(biāo)識(shí)的示意圖;
圖7為本發(fā)明實(shí)施例中虛擬機(jī)系統(tǒng)的結(jié)構(gòu)框圖;
圖8為本發(fā)明實(shí)施例中電子設(shè)備的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
以下介紹本發(fā)明實(shí)施例的應(yīng)用場(chǎng)景。
如圖1所示,例如一臺(tái)服務(wù)器配置有兩塊物理網(wǎng)卡,例如分別為nic1108和nic2110,其中nic1108通過sr-iov配置vf端口,例如nic1108的vf為vf1112,nic1110同樣通過sr-iov配置vf端口,例如nic1112的vf為vf2114。在該服務(wù)器上啟動(dòng)兩個(gè)虛擬機(jī),例如為vm1100、vm2102,將vf1112分配給vm1100,可以在啟動(dòng)vm1100的時(shí)候設(shè)置vf1112的vlan標(biāo)識(shí)為10,將vf2114分配給vm2102,可以在啟動(dòng)vm2102的時(shí)候 設(shè)置vf2114的vlan標(biāo)識(shí)為20。
當(dāng)虛擬機(jī)vm1100和vm2102開始運(yùn)行以后,例如需要vm1100和vm2102進(jìn)行通信,那么就需要vm1100把vf1112的vlan標(biāo)識(shí)設(shè)置為與vf2114的vlan標(biāo)識(shí)一致。在現(xiàn)有的機(jī)制下,該操作只能用硬件的物理功能接口(physicalfunction,pf)-vf的信箱(mailbox)消息機(jī)制實(shí)現(xiàn),比如,通過vf1112發(fā)消息給nic1108的pf1104,從而讓pf1104重新設(shè)置vf1112的vlan標(biāo)識(shí)。
可見,目前在更改vf的配置信息(例如vlan標(biāo)識(shí))時(shí)嚴(yán)重依賴于硬件,系統(tǒng)成本較高。
本發(fā)明實(shí)施例充分考慮到以上問題,在需要更改第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息時(shí),第一虛擬機(jī)可以向主操作系統(tǒng)發(fā)送配置請(qǐng)求,主操作系統(tǒng)就可以更改第一虛擬網(wǎng)卡的配置信息,無需額外的硬件部件的參與,節(jié)省系統(tǒng)成本,即使硬件沒有提供修改相應(yīng)配置信息的操作,因?yàn)樾薷呐渲眯畔⒉灰蕾囉谟布?,那么也就不影響?duì)配置信息的修改,減輕對(duì)硬件的依賴程度,即使不同的網(wǎng)卡廠家的實(shí)現(xiàn)方式不一致,也無需根據(jù)不同的硬件來做不同的更改,減少了所需的操作,提高了修改的成功率。
下面結(jié)合附圖介紹本發(fā)明優(yōu)選的實(shí)施例。
請(qǐng)參見圖2,本發(fā)明實(shí)施例提供一種更改虛擬網(wǎng)卡配置信息的方法,該方法的流程描述如下。
步驟201:通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求;配置請(qǐng)求用于指示主操作系統(tǒng)更改第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息;
步驟202:通過主操作系統(tǒng),將第一虛擬網(wǎng)卡的配置信息更改為配置請(qǐng)求中攜帶的第一配置信息。
該電子設(shè)備,例如可以是服務(wù)器,當(dāng)然也可以是其他類型的電子設(shè)備。該電子設(shè)備中例如運(yùn)行有一個(gè)或多個(gè)虛擬機(jī),第一虛擬機(jī)是該電子設(shè)備中運(yùn)行的其中任意一個(gè)虛擬機(jī)。
該電子設(shè)備中可以安裝有主操作系統(tǒng)(hostos),該主操作系統(tǒng)不屬于任何一個(gè)虛擬機(jī),同時(shí),在不同的虛擬機(jī)中也可以運(yùn)行有相應(yīng)的操作系統(tǒng),為了 區(qū)分,將虛擬機(jī)中運(yùn)行的操作系統(tǒng)可以稱為子操作系統(tǒng)(guestos),例如,第一虛擬機(jī)中運(yùn)行的操作系統(tǒng)可以稱為第一子操作系統(tǒng)。
該電子設(shè)備的物理網(wǎng)卡通過io虛擬化技術(shù)(例如sr-iov)為該電子設(shè)備中運(yùn)行的虛擬機(jī)提供虛擬網(wǎng)卡支持。通過sr-iov,可以在物理網(wǎng)卡上提供一個(gè)pf,同時(shí)提供多個(gè)vf接口。其中,pf由該電子設(shè)備中主操作系統(tǒng)控制,主要用于hostos自身外部通信需求、以及對(duì)于物理網(wǎng)卡本身的配置需求等。vf由虛擬機(jī)中的子操作系統(tǒng)控制。
可選的,在通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之前,還包括:
通過主操作系統(tǒng)建立主操作系統(tǒng)與第一虛擬機(jī)之間的通信通道。
即,為了實(shí)現(xiàn)主操作系統(tǒng)和第一虛擬機(jī)之間的通信,需要首先建立主操作系統(tǒng)和第一虛擬機(jī)之間的通信通道。主操作系統(tǒng)與第一虛擬機(jī)之間的通信通道,也可以理解為主操作系統(tǒng)與第一子操作系統(tǒng)之間的通信通道。
可選的,通過主操作系統(tǒng)建立主操作系統(tǒng)與第一虛擬機(jī)之間的通信通道,包括:
通過主操作系統(tǒng),將主操作系統(tǒng)與第一虛擬機(jī)通過開放的虛擬交換機(jī)(openvswitch,ovs)網(wǎng)橋相連接;或
通過主操作系統(tǒng),將主操作系統(tǒng)與第一虛擬機(jī)通過管理面的串行接口相連接。
本發(fā)明實(shí)施例對(duì)于主操作系統(tǒng)和第一虛擬機(jī)之間究竟如何建立通信通道不作限制。
例如,電子設(shè)備上電后,主操作系統(tǒng)首先完成物理網(wǎng)卡的初始化以及配置工作,建立與第一虛擬機(jī)之間的通信通道。
第一子操作系統(tǒng)根據(jù)自身的需求配置第一虛擬網(wǎng)卡的特性,并通過與主操作系統(tǒng)之間的通信通道向主操作系統(tǒng)發(fā)送配置請(qǐng)求,配置請(qǐng)求中可以攜帶第一子操作系統(tǒng)使用的第一虛擬網(wǎng)卡的信息,以及可以攜帶第一子操作系統(tǒng)對(duì)于第一虛擬網(wǎng)卡的配置信息。
其中,配置請(qǐng)求的目的mac地址可以是子操作系統(tǒng)的管理口的mac地址,源mac可以是第一虛擬網(wǎng)卡的mac地址,配置請(qǐng)求的類型可以是請(qǐng)求 消息,配置請(qǐng)求中可以攜帶所請(qǐng)求的內(nèi)容。
當(dāng)主操作系統(tǒng)收到第一虛擬機(jī)發(fā)送的配置請(qǐng)求后,根據(jù)配置請(qǐng)求中攜帶的配置信息,設(shè)置對(duì)應(yīng)的第一虛擬網(wǎng)卡的配置信息,并將配置結(jié)果通過應(yīng)答消息發(fā)送給第一虛擬機(jī),即發(fā)送給第一子操作系統(tǒng),應(yīng)答消息用于指示第一虛擬網(wǎng)卡的配置信息更改成功或更改失敗。
其中,應(yīng)答消息的目的mac地址可以是第一子操作系統(tǒng)的管理口的mac地址,應(yīng)答消息的類型可以是應(yīng)答/通知消息,應(yīng)答消息中攜帶所應(yīng)答的內(nèi)容。
第一子操作系統(tǒng)向主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,即可以等待主操作系統(tǒng)發(fā)送的應(yīng)答消息。
可選的,第一子操作系統(tǒng)向主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,可以啟動(dòng)定時(shí)器,如果在定時(shí)器超時(shí)之前,第一子操作系統(tǒng)收到了應(yīng)答消息,則第一子操作系統(tǒng)解析應(yīng)答消息,從而可以確定第一虛擬網(wǎng)卡的配置信息是更改成功還是更改失敗。而如果在定時(shí)器超時(shí)時(shí)第一子操作系統(tǒng)還未收到應(yīng)答消息,則第一子操作系統(tǒng)可以確定第一虛擬網(wǎng)卡的配置信息更改失敗,無需繼續(xù)等待,可以進(jìn)行其他工作,這樣,避免第一子操作系統(tǒng)一直處于等待狀態(tài)。
可選的,配置信息包括第一虛擬網(wǎng)卡的mac地址、第一虛擬網(wǎng)卡所在的vlan、第一虛擬網(wǎng)卡的工作模式中的至少一種,當(dāng)然還可以包括第一虛擬網(wǎng)卡的其他可能的任意配置信息;第一虛擬網(wǎng)卡的工作模式用于指示第一虛擬網(wǎng)卡為所述第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
第一虛擬網(wǎng)卡所在的vlan,例如包括第一虛擬網(wǎng)卡所在的vlan的標(biāo)識(shí)(即vlan標(biāo)識(shí))。
下面通過幾個(gè)示例來介紹本發(fā)明實(shí)施例提供的更改虛擬網(wǎng)卡配置信息的方法。
例1:為第一子操作系統(tǒng)需設(shè)置第一虛擬網(wǎng)卡的mac地址的場(chǎng)景。
請(qǐng)參見圖3,一臺(tái)電子設(shè)備通過兩個(gè)物理網(wǎng)卡與以太網(wǎng)交換機(jī)(ethernetswitch)連接。該電子設(shè)備中運(yùn)行了一臺(tái)虛擬機(jī)(例如稱為vm110),vm110通過ovs和主操作系統(tǒng)相連,配置請(qǐng)求可通過以太網(wǎng)報(bào)文的形式進(jìn)行交互。該電子設(shè)備的兩塊物理網(wǎng)卡分別命名為nic1100和nic2102,其中nic1100通過sr-iov配置vf端口,例如nic1100的vf為vf1104,nic2102同樣 通過sr-iov配置vf端口,例如nic2102的vf為vf2106。將vf1104分配給vm110,例如稱為vnic1,和將vf2106分配給vm110,例如稱為vnic2。
vm110上電后需要根據(jù)vm110自身需求重新設(shè)置vm110所用的vf的mac地址,流程部分的處理步驟請(qǐng)參見圖4。
圖4說明了主操作系統(tǒng)與vm110中的子操作系統(tǒng)(例如稱為第一子操作系統(tǒng))間的交互過程。
1、電子設(shè)備啟動(dòng)成功后,主操作系統(tǒng)首先通過ovs與第一子操作系統(tǒng)建立通信通道。
2、該通信通道構(gòu)建成功后,第一子操作系統(tǒng)在需要設(shè)置虛擬網(wǎng)卡的mac地址(例如需設(shè)置vnic1的mac地址和vnic2的mac地址)的時(shí)候,通過建立的通信通道向主操作系統(tǒng)發(fā)送配置請(qǐng)求,配置請(qǐng)求中攜帶vf的新的mac地址。
在發(fā)送配置請(qǐng)求后,第一子操作系統(tǒng)可以啟動(dòng)定時(shí)器,等待主操作系統(tǒng)發(fā)送的應(yīng)答消息。
3、主操作系統(tǒng)通過通信通道接收配置請(qǐng)求,解析配置請(qǐng)求,確定配置請(qǐng)求中攜帶的內(nèi)容。
4、主操作系統(tǒng)向第一子操作系統(tǒng)發(fā)送應(yīng)答消息。
主操作系統(tǒng)根據(jù)自身的配置信息判斷配置請(qǐng)求的有效性,如果配置請(qǐng)求中攜帶的參數(shù)錯(cuò)誤,則主操作系統(tǒng)可以向第一子操作系統(tǒng)發(fā)送應(yīng)答消息,該應(yīng)答消息用于指示配置信息更改失敗。如果配置請(qǐng)求正確,則主操作系統(tǒng)可以根據(jù)配置請(qǐng)求的消息類型,調(diào)用ioctrl接口分別下發(fā)mac配置信息給nic1100和nic2102(可參見圖3中的箭頭),完成mac地址設(shè)置。
主操作系統(tǒng)通過接收的返回結(jié)果判斷配置是否成功,并構(gòu)造發(fā)給第一子操作系統(tǒng)的應(yīng)答消息,向第一子操作系統(tǒng)發(fā)送該應(yīng)答消息,該應(yīng)答消息用于指示mac地址更改成功或失敗。
其中,第一子操作系統(tǒng)在發(fā)送配置請(qǐng)求后,可以啟動(dòng)定時(shí)器,以等待子操作系統(tǒng)的應(yīng)答消息。如果在定時(shí)器超時(shí)之前,第一子操作系統(tǒng)接收了主操作系統(tǒng)發(fā)送應(yīng)答消息,則第一子操作系統(tǒng)停止定時(shí)器,解析應(yīng)答消息的內(nèi)容,以確定mac地址更改成功還是失敗。
如果確定mac地址更改成功,則第一子操作系統(tǒng)可以結(jié)束本次配置設(shè)置的流程。如果在定時(shí)器超時(shí)時(shí)第一子操作系統(tǒng)還未收到應(yīng)答消息,或者收到的應(yīng)答消息指示mac地址更改失敗,則表示配置過程中出現(xiàn)了錯(cuò)誤,那么vnic1和vnic2可能無法正常運(yùn)行,則第一子操作系統(tǒng)可以關(guān)閉本次配置的vnic1和vnic2,防止錯(cuò)誤擴(kuò)散。
例2:第一子操作系統(tǒng)發(fā)起bond口的虛擬網(wǎng)卡的主備倒換。
請(qǐng)參見圖5,一臺(tái)電子設(shè)備通過兩個(gè)物理網(wǎng)卡與以太網(wǎng)交換機(jī)連接。該電子設(shè)備中運(yùn)行了兩臺(tái)虛擬機(jī)(例如分別稱為vm1110和vm2120),vm1110和vm2120分別通過ovs和主操作系統(tǒng)相連,配置請(qǐng)求可通過以太網(wǎng)報(bào)文的形式進(jìn)行交互。該電子設(shè)備的兩塊物理網(wǎng)卡分別命名為nic1100和nic2102,其中nic1100通過sr-iov配置vf端口,例如nic1100的vf為vf1104和vf1105,nic2102同樣通過sr-iov配置vf端口,例如nic2102的vf為vf2106和vf2107。將vf1104和vf2106分配給vm1110,例如分別稱為vnic1和vnic2,將vf1105和vf2107分配給vm2120,例如分別稱為vnic3和vnic4。其中,vf1104和vf2106作為vm1110的主備bond,vf1105和vf2107作為vm2120的主備bond。例如nic1100為主物理網(wǎng)卡,nic2102為備用物理網(wǎng)卡。
例如,vm1110上電后需要根據(jù)vm1110自身的需求重新設(shè)置vnic1和vnic2的主備bond信息。
在電子設(shè)備啟動(dòng)成功后,主操作系統(tǒng)與第一子操作系統(tǒng)(vm1110的操作系統(tǒng))及第二子操作系統(tǒng)(vm2120的操作系統(tǒng))首先分別通過控制面ovs的方式建立通信通道。
該通信通道構(gòu)建成功后,第一子操作系統(tǒng)根據(jù)自身的需求,需要發(fā)起vnic1和vnic2的主備bond口倒換,第一子操作系統(tǒng)向主操作系統(tǒng)發(fā)送配置請(qǐng)求,該配置請(qǐng)求中攜帶vnic1和vnic2的bond主備倒換配置信息。在發(fā)送配置請(qǐng)求后,第一子操作系統(tǒng)可以啟動(dòng)定時(shí)器,等待主操作系統(tǒng)的應(yīng)答消息。
主操作系統(tǒng)接收配置請(qǐng)求后,分別向nic1100和nic2102下發(fā)消息,以指示切換nic1100與nic2102的主備bond狀態(tài)。
主操作系統(tǒng)通過接收的返回結(jié)果判斷nic1100與nic2102的主備bond切換是否成功,且主操作系統(tǒng)根據(jù)切換的結(jié)果構(gòu)造發(fā)給第一子操作系統(tǒng)的應(yīng)答消息。
如果nic1100與nic2102的主備bond切換成功,同時(shí),主操作系統(tǒng)發(fā)現(xiàn)nic1100和nic2102上還有vnic3和vnic4,因此,主操作系統(tǒng)除了向第一子操作系統(tǒng)發(fā)送應(yīng)答消息之外,還可以一并向第一子操作系統(tǒng)和/或第二子操作系統(tǒng)發(fā)送通知消息,用于指示nic1100和nic2102發(fā)生了主備倒換。
如果nic1100與nic2102的主備bond切換失敗,則主操作系統(tǒng)向第一子操作系統(tǒng)發(fā)送用于指示切換失敗的應(yīng)答消息。
如果確定vnic1和vnic2的主備bond切換成功,則第一子操作系統(tǒng)可以結(jié)束本次配置設(shè)置的流程。
另外,如果確定vnic1和vnic2的主備bond切換成功,則第二子操作系統(tǒng)還可能收到主操作系統(tǒng)發(fā)送的通知消息,則第二子操作系統(tǒng)可以根據(jù)該通知消息來設(shè)置vnic3和vnic4的主備狀態(tài)。
如果在定時(shí)器超時(shí)時(shí)第一子操作系統(tǒng)還未收到應(yīng)答消息,或者收到的應(yīng)答消息指示vnic1和vnic2的主備bond切換失敗,則表示配置過程中出現(xiàn)了錯(cuò)誤,那么vnic1和vnic2可能無法正常運(yùn)行,則第一子操作系統(tǒng)可以關(guān)閉本次配置的vnic1和vnic2,防止錯(cuò)誤擴(kuò)散。
例3:第一子操作系統(tǒng)發(fā)起vlan標(biāo)識(shí)的設(shè)置。
例如請(qǐng)參見圖6,一臺(tái)電子設(shè)備上運(yùn)行了4個(gè)虛擬機(jī)(分別為vm1418~vm4424),每個(gè)虛擬機(jī)都有自己的vf與物理網(wǎng)卡nic1相連,其中,vm1418作為這4個(gè)虛擬機(jī)中的管理節(jié)點(diǎn),管理每個(gè)虛擬機(jī)內(nèi)部的配置,統(tǒng)計(jì)等信息。其中vm2420~vm4424分別有1個(gè)vf(vf2~vf4)連接到物理網(wǎng)卡nic1上,作為虛擬機(jī)對(duì)外的網(wǎng)口。vm1418~vm4424與主操作系統(tǒng)通過ovs網(wǎng)橋通信。
vm1418上電后需要根據(jù)用戶的配置需求重新設(shè)置vm2~vm4所用的vf的端口的vlan信息。
在電子設(shè)備啟動(dòng)成功后,主操作系統(tǒng)與各個(gè)子操作系統(tǒng)首先通過控制面ovs的方式建立通信通道。通信通道構(gòu)建成功后,vm1418的操作系統(tǒng)(例 如稱為第一子操作系統(tǒng))作為管理節(jié)點(diǎn),需要設(shè)置各個(gè)虛擬機(jī)的vlan。第一子操作系統(tǒng)向主操作系統(tǒng)發(fā)送配置請(qǐng)求,該配置請(qǐng)求用于請(qǐng)求配置vf2~vf4的vlan。在發(fā)送配置請(qǐng)求后,第一子操作系統(tǒng)可以啟動(dòng)定時(shí)器,等待主操作系統(tǒng)的應(yīng)答消息。
主操作系統(tǒng)收到第一子操作系統(tǒng)發(fā)送的配置請(qǐng)求后,向nic1下發(fā)消息,用于配置vf2~vf4的vlan,主操作系統(tǒng)通過接收返回結(jié)果判斷配置是否成功,且向第一子操作系統(tǒng)發(fā)送應(yīng)答消息。
在定時(shí)器超時(shí)之前,第一子操作系統(tǒng)若收到了應(yīng)答消息,則停止定時(shí)器,解析應(yīng)答消息的內(nèi)容,如果配置成功,則第一子操作系統(tǒng)可以通過控制面分別發(fā)送通知消息給vm2420~vm4424,即分別發(fā)送通知消息給vm2420~vm4424的操作系統(tǒng),結(jié)束本次配置設(shè)置的流程。如果在定時(shí)器超時(shí)時(shí)第一子操作系統(tǒng)未收到應(yīng)答消息,或應(yīng)答消息用于指示配置失敗,則第一子操作系統(tǒng)停止本次vlan設(shè)置流程。
vm2420~vm4424若收到來自第一子操作系統(tǒng)的通知消息,則根據(jù)通知消息的內(nèi)容更新本地的存儲(chǔ)的端口的vlan信息,配置生效。
下面結(jié)合附圖介紹本發(fā)明實(shí)施例中的裝置。
請(qǐng)參見圖7,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供一種虛擬機(jī)系統(tǒng),該虛擬機(jī)系統(tǒng)可以包括主操作系統(tǒng)701和虛擬機(jī)702。
其中,虛擬機(jī)702中可以設(shè)置有第一處理模塊7021,用于向主操作系統(tǒng)701發(fā)送配置請(qǐng)求;配置請(qǐng)求用于指示主操作系統(tǒng)701更改虛擬機(jī)702的第一虛擬網(wǎng)卡的配置信息;
主操作系統(tǒng)701中設(shè)置有第二處理模塊7011,用于接收配置請(qǐng)求,將第一虛擬網(wǎng)卡的配置信息更改為配置請(qǐng)求中攜帶的第一配置信息。
可選的,第二處理模塊7011還用于:
在接收配置請(qǐng)求之前,建立主操作系統(tǒng)701與虛擬機(jī)702之間的通信通道。
可選的,第二處理模塊7011用于:
將主操作系統(tǒng)701與虛擬機(jī)702通過ovs網(wǎng)橋相連接;或
將主操作系統(tǒng)701與虛擬機(jī)702通過管理面的串行接口相連接。
可選的,第二處理模塊7011還用于:
在將第一虛擬網(wǎng)卡的配置信息更改為配置請(qǐng)求中攜帶的第一配置信息之后,向虛擬機(jī)702發(fā)送應(yīng)答消息;應(yīng)答消息用于指示第一虛擬網(wǎng)卡的配置信息更改成功或失敗。
可選的,第一處理模塊7021還用于:
在向主操作系統(tǒng)701發(fā)送配置請(qǐng)求之后,等待主操作系統(tǒng)701發(fā)送的應(yīng)答消息;應(yīng)答消息用于指示第一虛擬網(wǎng)卡的配置信息更改成功或失敗;
若在虛擬機(jī)702的定時(shí)器超時(shí)時(shí)還未收到主操作系統(tǒng)701發(fā)送的應(yīng)答消息,則確定第一虛擬網(wǎng)卡的配置信息更改失敗。
可選的,配置信息包括第一虛擬網(wǎng)卡的mac地址、第一虛擬網(wǎng)卡所在的vlan、第一虛擬網(wǎng)卡的工作模式中的至少一種;第一虛擬網(wǎng)卡的工作模式用于指示第一虛擬網(wǎng)卡為所述第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
其中,第二處理模塊7011可以是主操作系統(tǒng)701本身,或者也可以是主操作系統(tǒng)701中的其中一個(gè)功能模塊,第一處理模塊7021可以是虛擬機(jī)702本身,或者也可以是虛擬機(jī)702中的其中一個(gè)功能模塊。
該虛擬機(jī)系統(tǒng)可以實(shí)現(xiàn)如前圖2-圖6中的方法,例如虛擬機(jī)702可以是如前所述的第一虛擬機(jī),對(duì)于該虛擬機(jī)系統(tǒng)中各個(gè)模塊所能實(shí)現(xiàn)的功能,可參考方法部分的描述。
請(qǐng)參見圖8,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供一種電子設(shè)備,該電子設(shè)備可以包括第一發(fā)送模塊801和更改模塊802。
第一發(fā)送模塊801,用于通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求;配置請(qǐng)求用于指示主操作系統(tǒng)更改第一虛擬機(jī)的第一虛擬網(wǎng)卡的配置信息;
更改模塊802,用于通過主操作系統(tǒng),將第一虛擬網(wǎng)卡的配置信息更改為配置請(qǐng)求中攜帶的第一配置信息。
可選的,該電子設(shè)備還包括建立模塊,用于:
在第一發(fā)送模塊801通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之前,通過主操作系統(tǒng)建立主操作系統(tǒng)與第一虛擬機(jī)之間的通信通道。
可選的,建立模塊用于:
通過主操作系統(tǒng),將主操作系統(tǒng)與第一虛擬機(jī)通過ovs網(wǎng)橋相連接;或
通過主操作系統(tǒng),將主操作系統(tǒng)與第一虛擬機(jī)通過管理面的串行接口相連接。
可選的,該電子設(shè)備還包括第二發(fā)送模塊,用于:
在更改模塊802通過主操作系統(tǒng),將第一虛擬網(wǎng)卡的配置信息更改為配置請(qǐng)求中攜帶的第一配置信息之后,通過主操作系統(tǒng)向第一虛擬機(jī)發(fā)送應(yīng)答消息;應(yīng)答消息用于指示第一虛擬網(wǎng)卡的配置信息更改成功或失敗。
可選的,該電子設(shè)備還包括等待模塊和確定模塊;
等待模塊,用于在第一發(fā)送模塊801通過運(yùn)行于電子設(shè)備中的第一虛擬機(jī)向運(yùn)行于電子設(shè)備中的主操作系統(tǒng)發(fā)送配置請(qǐng)求之后,通過第一虛擬機(jī)等待主操作系統(tǒng)發(fā)送的應(yīng)答消息;應(yīng)答消息用于指示第一虛擬網(wǎng)卡的配置信息更改成功或失??;
確定模塊,用于若在第一虛擬機(jī)的定時(shí)器超時(shí)時(shí)還未收到主操作發(fā)送的應(yīng)答消息,則通過第一虛擬機(jī)確定第一虛擬網(wǎng)卡的配置信息更改失敗。
可選的,配置信息包括第一虛擬網(wǎng)卡的mac地址、第一虛擬網(wǎng)卡所在的vlan、第一虛擬網(wǎng)卡的工作模式中的至少一種;第一虛擬網(wǎng)卡的工作模式用于指示第一虛擬網(wǎng)卡為第一虛擬機(jī)的主虛擬網(wǎng)卡或備用虛擬網(wǎng)卡。
該電子設(shè)備可以實(shí)現(xiàn)如前圖2-圖6中的方法,對(duì)于該電子設(shè)備中各個(gè)模塊所能實(shí)現(xiàn)的功能,可參考方法部分的描述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能單元的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直 接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或processor(處理器)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以對(duì)本申請(qǐng)的技術(shù)方案進(jìn)行了詳細(xì)介紹,但以上實(shí)施例的說明只是用于幫助理解本發(fā)明實(shí)施例的方法,不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限制。本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明實(shí)施例的保護(hù)范圍之內(nèi)。