本申請涉及虛擬機(jī)技術(shù)領(lǐng)域,更具體地說,涉及一種虛擬機(jī)的配置方法及裝置。
背景技術(shù):
虛擬化技術(shù)能夠在單一的物理機(jī)上同時運(yùn)行相互隔離的虛擬機(jī),從而實(shí)現(xiàn)計(jì)算機(jī)資源的高效靈活使用,由于該優(yōu)點(diǎn)虛擬機(jī)有著較為廣泛的應(yīng)用,而隨著云計(jì)算的廣泛應(yīng)用,虛擬機(jī)對于網(wǎng)絡(luò)性能的追求越來越大。
現(xiàn)有技術(shù)中虛擬機(jī)利用網(wǎng)卡passthrough即網(wǎng)卡直通方式提高對于網(wǎng)路I/O的使用性能,具體的為將物理網(wǎng)卡配置給正在運(yùn)行的虛擬機(jī),令虛擬機(jī)對該物理網(wǎng)卡的I/O交互操作和實(shí)際的物理網(wǎng)卡的操作完全一樣。但該方式中,在將物理網(wǎng)卡配置給正在運(yùn)行的虛擬機(jī)后,需要重新啟動物理機(jī)才可以實(shí)現(xiàn)網(wǎng)卡直通功能,而重啟物理機(jī)會造成物理機(jī)上虛擬機(jī)運(yùn)行業(yè)務(wù)的中斷,降低了虛擬機(jī)的使用性能。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N虛擬機(jī)的配置方法及裝置,以提高虛擬機(jī)的使用性能。
為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
一種虛擬機(jī)的配置方法,包括:
開啟BIOS系統(tǒng)中的虛擬化選項(xiàng);
將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;
判斷虛擬化系統(tǒng)是否支持虛擬化;
若是,獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;
將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡參數(shù)信息。
優(yōu)選地,將虛擬化開啟信息寫入內(nèi)核中包括:
確定所述物理機(jī)的處理器類型;
當(dāng)處理器為Intel處理器時,將intel_iommu=on寫入內(nèi)核中;
當(dāng)處理器為AMD處理器時,將iommu=1寫入內(nèi)核中。
優(yōu)選地,其特征在于,還包括:
開啟所述預(yù)設(shè)的虛擬機(jī);
判斷物理機(jī)的硬件是否支持網(wǎng)卡直通;
若否,則輸出提示信息。
優(yōu)選地,還包括:
釋放物理網(wǎng)卡;
將物理網(wǎng)卡的狀態(tài)信息恢復(fù)為初始狀態(tài)。
一種虛擬機(jī)的配置裝置,所述裝置包括:
第一開啟模塊,用于開啟BIOS系統(tǒng)中的虛擬化選項(xiàng);
第一寫入模塊,用于將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;
第一判斷模塊,用于判斷所述虛擬化系統(tǒng)是否支持虛擬化;
獲取模塊,用于當(dāng)物理機(jī)的硬件支持網(wǎng)卡直通時,獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;
第二寫入模塊,用于將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡的參數(shù)信息。
優(yōu)選地,所述第一寫入模塊包括:
確定模塊,用于確定物理機(jī)的處理器類型;
寫入子模塊,用于當(dāng)處理器為Intel處理器時,將intel_iommu=on寫入內(nèi)核中;當(dāng)處理器為AMD處理器時,將iommu=1寫入內(nèi)核中。
優(yōu)選地,所述裝置還包括:
開啟模塊,用于開啟所述預(yù)設(shè)的虛擬機(jī);
第二判斷模塊,用于判斷物理機(jī)的硬件是否支持網(wǎng)卡直通;
輸出模塊,用于當(dāng)判斷結(jié)果為否時,輸出提示信息。
優(yōu)選地,所述裝置還包括:
釋放模塊,用于釋放網(wǎng)絡(luò)網(wǎng)卡;
恢復(fù)模塊,用于將物理網(wǎng)卡的狀態(tài)信息恢復(fù)為初始狀態(tài)。
上述方案中,開啟BIOS系統(tǒng)中的虛擬化選項(xiàng),即首先令硬件支持虛擬化技術(shù);進(jìn)而進(jìn)行虛擬化系統(tǒng)的安裝,安裝過程中,將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;判斷虛擬化系統(tǒng)是否支持虛擬化;若是則獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡參數(shù)信息。上述方案中,在虛擬化系統(tǒng)的安裝過程中,通過在虛擬化系統(tǒng)內(nèi)核中寫入虛擬化開啟信息,開啟虛擬化功能,進(jìn)而對某一虛擬機(jī)進(jìn)行網(wǎng)卡直通配置??梢?,在虛擬化系統(tǒng)安裝中實(shí)現(xiàn)了虛擬機(jī)的網(wǎng)卡直通配置,相當(dāng)于令虛擬機(jī)直接擁有網(wǎng)卡直通的功能,即在虛擬機(jī)開啟后直接能夠獨(dú)占使用物理網(wǎng)卡,不存在需要中斷業(yè)務(wù)的情況,進(jìn)而提高了虛擬機(jī)的使用性能。進(jìn)一步的,在網(wǎng)絡(luò)性能要求極高以及網(wǎng)絡(luò)壓力很大的應(yīng)用場景中,利用上述的方案,提升了虛擬機(jī)的網(wǎng)絡(luò)性能。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實(shí)施例公開的一種虛擬機(jī)的配置方法基本流程圖;
圖2為本申請另一實(shí)施例公開的一種虛擬機(jī)的配置方法基本流程圖;
圖3為本申請另一實(shí)施例公開的恢復(fù)物理網(wǎng)卡初始狀態(tài)的基本流程圖;
圖4為本申請實(shí)施例公開的一種虛擬機(jī)的配置裝置基本框圖。
具體實(shí)施方式
下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
本申請實(shí)施例提供一種虛擬機(jī)的配置方法,如圖1所示,該方法包括:
S100、開啟BIOS系統(tǒng)中的虛擬化選項(xiàng);
具體的,處理器開啟BIOS系統(tǒng)中的虛擬化選項(xiàng),即開啟AMD處理器的IOMMU功能,開啟Intel處理器VT-D的功能,如此即令物理機(jī)的硬件支持虛擬化技術(shù),即在物理機(jī)上開啟虛擬化功能即開啟IOMMU。
S110、將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;
在步驟S100后,安裝虛擬化系統(tǒng),在安裝過程中實(shí)現(xiàn)對虛擬機(jī)的配置;該安裝過程,安裝程序首先要將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中,即在虛擬化系統(tǒng)的內(nèi)核中開啟IOMMU功能。
具體的,將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中包括:
S1101、確定所述物理機(jī)的處理器類型;
具體的,安裝程序確定處理器類型的方式為:執(zhí)行系統(tǒng)命令“cat/proc/cpuinfo|grep"model name"',如果輸出信息中有Intel,則處理器類型為Intel,如果輸出信息中有AMD,則處理器類型為AMD。
S1102、當(dāng)處理器為Intel處理器時,將intel_iommu=on寫入內(nèi)核中;當(dāng)處理器為AMD處理器時,將iommu=1寫入內(nèi)核中。
具體的,在/etc/default/grub文件中的以GRUB_CMDLINE_LINUX為開始的行,對于Intel處理器寫入intel_iommu=on,對于AMD處理器寫入iommu=1。
S120、判斷所述虛擬化系統(tǒng)是否支持虛擬化,若是,則執(zhí)行步驟S130;若不支持,系統(tǒng)報出“當(dāng)前系統(tǒng)不支持IOMMU”的信息。
具體的,對于ADM處理器,執(zhí)行命令“dmesg|grep AMD-Vi”,如果輸出信息中包括AMD-Vi,則表示虛擬化系統(tǒng)已經(jīng)開啟IOMMU功能,對于Intel處理器,執(zhí)行命令“dmesg|grep-e DMAR–e IOMMU”,如果輸出信息中包括DMAR和IOMMU,則表示虛擬化系統(tǒng)已經(jīng)支持了IOMMU功能,可以分配物理網(wǎng)卡給虛擬機(jī)獨(dú)占使用,如果輸出信息中沒有相關(guān)的信息輸出,則系統(tǒng)報出“當(dāng)前系統(tǒng)不支持IOMMU”。
其中,若執(zhí)行上述命令有相關(guān)信息輸出,并進(jìn)行了物理網(wǎng)卡的獨(dú)占分配,在開啟虛擬機(jī)的過程中,虛擬化系統(tǒng)報出“please ensure all devices within the iommu_group are bound to their vfio bus driver”,則表明硬件是不支持網(wǎng)卡直通的,系統(tǒng)報出“物理機(jī)硬件不支持網(wǎng)卡直通功能”。
S130、獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;
具體的,以Intel 82576型物理網(wǎng)卡為例,使用命令“ethtool–i物理網(wǎng)卡名稱”,獲取物理網(wǎng)卡的domain,bus,slot以及function參數(shù),其中,獲取到的網(wǎng)卡的總線信息為0000:06:00.1,即domain為十六進(jìn)制數(shù)0,bus號為十六進(jìn)制數(shù)06,slot號為十六進(jìn)制數(shù)00,function號為十六進(jìn)制數(shù)1,進(jìn)而根據(jù)獲取的網(wǎng)卡參數(shù)信息進(jìn)行配置。
S140、將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡參數(shù)信息。
其中,對預(yù)設(shè)虛擬機(jī)的配置文件進(jìn)行配置,具體的網(wǎng)卡直通配置信息如下:
通過上述實(shí)施例,上述方案中,開啟BIOS系統(tǒng)中的虛擬化選項(xiàng),即首先令硬件支持虛擬化技術(shù);進(jìn)而進(jìn)行虛擬化系統(tǒng)的安裝,安裝過程中,將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;判斷虛擬化系統(tǒng)是否支持虛擬化;若是則獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡參數(shù)信息。上述方案中,在虛擬化系統(tǒng)的安裝過程中,通過在虛擬化系統(tǒng)內(nèi)核中寫入虛擬化開啟信息,開啟虛擬化功能,進(jìn)而對某一虛擬機(jī)進(jìn)行網(wǎng)卡直通配置??梢姡谔摂M化系統(tǒng)安裝中實(shí)現(xiàn)了虛擬機(jī)的網(wǎng)卡直通配置,相當(dāng)于令虛擬機(jī)直接擁有網(wǎng)卡直通的功能,即在虛擬機(jī)開啟后直接能夠獨(dú)占使用物理網(wǎng)卡,不存在需要中斷業(yè)務(wù)的情況,進(jìn)而提高了虛擬機(jī)的使用性能。
在本申請另一實(shí)施例中提供一種虛擬機(jī)的配置方法,如圖2所示,包括:
S200、開啟BIOS系統(tǒng)中的虛擬化選項(xiàng);
S210、將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;
S220、判斷虛擬化系統(tǒng)是否支持虛擬化;若是,則執(zhí)行步驟S230
S230、獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;
S240、將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡參數(shù)信息;
S250、開啟所述預(yù)設(shè)的虛擬機(jī);
其中,使用虛擬化命令開啟預(yù)設(shè)的虛擬機(jī)。
S260、判斷物理機(jī)的硬件是否支持網(wǎng)卡直通;
S270、若否,則輸出提示信息。
具體的,在開啟虛擬機(jī)的過程中,判斷物理機(jī)的硬件是否支持網(wǎng)卡直通,在不支持網(wǎng)卡直通時,輸出提示信息。
其中,步驟S200-S240的實(shí)施方式與步驟S100-S140的實(shí)施方式相同,在此不再進(jìn)行贅述。
上述實(shí)施例中,虛擬機(jī)開啟后,在虛擬化系統(tǒng)中看不到已經(jīng)被分配的物理網(wǎng)卡的相關(guān)信息,只有預(yù)設(shè)的虛擬機(jī)可以使用該物理網(wǎng)卡,虛擬機(jī)內(nèi)部看到的虛擬網(wǎng)卡的mac地址與物理網(wǎng)卡的mac地址一致。
本申請另一實(shí)施例中,對被釋放的物理網(wǎng)卡的狀態(tài)信息進(jìn)行恢復(fù),如圖3所示,包括:
S300、釋放物理網(wǎng)卡;
其中,根據(jù)實(shí)際需要如物理機(jī)上的其他虛擬機(jī)也有使用物理網(wǎng)卡的需求,這就要解除物理網(wǎng)卡的直通配置,令預(yù)設(shè)的虛擬機(jī)釋放網(wǎng)絡(luò)網(wǎng)卡,而被釋放的網(wǎng)卡的狀態(tài)會變成未激活狀態(tài)。
S310、將物理網(wǎng)卡的狀態(tài)信息恢復(fù)為初始狀態(tài);
具體的,通過命令“ifconfig網(wǎng)卡名稱up”來啟用激活網(wǎng)卡,恢復(fù)網(wǎng)卡的初始狀態(tài)。
通過上述實(shí)施例將物理網(wǎng)卡的狀態(tài)恢復(fù)為初始狀態(tài),避免后續(xù)能夠正確正常使用物理網(wǎng)卡。
本發(fā)明實(shí)施例還提供一種虛擬機(jī)配置的裝置,如圖4所示,該裝置包括:
第一開啟模塊400,用于開啟BIOS系統(tǒng)中的虛擬化選項(xiàng);
第一寫入模塊410,用于將虛擬化開啟信息寫入到虛擬化系統(tǒng)的內(nèi)核中;
優(yōu)選地,第一寫入模塊410包括:
確定模塊,用于確定物理機(jī)的處理器類型;
寫入子模塊,用于當(dāng)處理器為Intel處理器時,將intel_iommu=on寫入內(nèi)核中;當(dāng)處理器為AMD處理器時,將iommu=1寫入內(nèi)核中
支持判斷模塊420,用于判斷物理機(jī)的硬件是否支持網(wǎng)卡直通;
獲取模塊430,用于當(dāng)物理機(jī)的硬件支持網(wǎng)卡直通時,獲取物理網(wǎng)卡的網(wǎng)卡參數(shù)信息;
第二寫入模塊440,用于將網(wǎng)卡直通配置信息寫入預(yù)設(shè)虛擬機(jī)的配置文件中,所述網(wǎng)卡直通配置信息包括所述網(wǎng)卡的參數(shù)信息。
本申請另一實(shí)施例中,所述裝置還包括:
第二開啟模塊500,用于開啟所述預(yù)設(shè)的虛擬機(jī);
第二判斷模塊510,用于判斷物理機(jī)硬件是否支持網(wǎng)卡直通功能;
輸出模塊520,用戶當(dāng)判斷結(jié)果為否時,輸出提示信息。
本申請另一實(shí)施例中,所述裝置還包括:
釋放模塊600,用于釋放網(wǎng)絡(luò)網(wǎng)卡;
恢復(fù)模塊610,用于將物理網(wǎng)卡的狀態(tài)信息恢復(fù)為初始狀態(tài)。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。