本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種基于虛擬機的網(wǎng)卡信息處理方法及裝置。
背景技術(shù):
虛擬機(Virtual Machine),是指一種特殊的軟件,通過虛擬機軟件,用戶可以在一臺物理計算機上模擬出二臺或多臺虛擬的計算機,這些虛擬機完全就像真正的計算機那樣進行工作,例如用戶可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。對于用戶而言,它只是運行在用戶的物理計算機上的一個應(yīng)用程序,但是對于在虛擬機中運行的應(yīng)用程序而言,它就是一臺真正計算機。因此,當在虛擬機中進行軟件評測時,可能系統(tǒng)一樣會崩潰;但是,崩潰的只是虛擬機上的操作系統(tǒng),而不是物理計算機上的操作系統(tǒng),并且,使用虛擬機的“Undo”(恢復(fù))功能,可以馬上恢復(fù)虛擬機到安裝軟件之前的狀態(tài)。
為了方便使用,可以對虛擬機進行克隆或復(fù)制。當使用克隆后的虛擬機時,發(fā)現(xiàn)原來在基本系統(tǒng)中的網(wǎng)卡eth0到了新系統(tǒng)卻沒有了,使用ifconfig-all命令查找會發(fā)現(xiàn)只有網(wǎng)卡eth1。因為基本系統(tǒng)的網(wǎng)絡(luò)相關(guān)配置都是基于eth0的,eth1沒有網(wǎng)絡(luò)相關(guān)的配置,此時要正常使用該克隆后的虛擬機中的網(wǎng)絡(luò),只有添加eth1的網(wǎng)絡(luò)配置,這樣每次都要修改網(wǎng)卡配置在做多Linux系統(tǒng)測試的時候很不方便。更進一步,如果基于此克隆的虛擬機繼續(xù)克隆或復(fù)制新的虛擬機,網(wǎng)卡的標識每一次都會自動加1(如,第二次克隆會變成eth2),利用dmesg命令來查看卻顯示操作系統(tǒng)的內(nèi)核只識別到網(wǎng)卡eth0。因而,亟待解決這一技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種基于虛擬機的網(wǎng)卡信息處理方法及裝置,用以實現(xiàn)快速、靈活地處理網(wǎng)卡信息的目的。
本發(fā)明提供一種基于虛擬機的網(wǎng)卡信息處理方法,包括:
獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息;
當利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含所述第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,所述第一網(wǎng)卡信息與所述第二網(wǎng)卡信息不同;
在所述配置文件中刪除所述第一網(wǎng)卡信息;
在所述配置文件中將所述第二網(wǎng)卡信息調(diào)整為所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息,包括:
獲取當前虛擬機的操作系統(tǒng)中由設(shè)備管理器udev生成的腳本文件,其中,所述腳本文件中記錄有所述當前虛擬機的mac地址和所述第一網(wǎng)卡信息的對應(yīng)關(guān)系;
從所述腳本文件中獲取所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,所述方法還包括:
所述設(shè)備管理器udev在所述當前虛擬機的操作系統(tǒng)引導(dǎo)的過程中,識別所述當前虛擬機上的網(wǎng)卡,得到所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,所述方法還包括:
由虛擬機軟件Vmware創(chuàng)建所述當前虛擬機。
在本發(fā)明一實施例中,利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機,包括:
由所述虛擬機軟件Vmware利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機。
在本發(fā)明一實施例中,所述方法還包括:
由所述虛擬機軟件Vmware生成所述當前虛擬機或所述目標虛擬機的mac地址。
本發(fā)明還提供一種基于虛擬機的網(wǎng)卡信息處理裝置,包括:
獲取模塊,用于獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息;
配置文件生成模塊,用于當利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含所述第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,所述第一網(wǎng)卡信息與所述第二網(wǎng)卡信息不同;
刪除模塊,用于在所述配置文件中刪除所述第一網(wǎng)卡信息;
調(diào)整模塊,用于在所述配置文件中將所述第二網(wǎng)卡信息調(diào)整為所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,所述獲取模塊還用于:
獲取當前虛擬機的操作系統(tǒng)中由設(shè)備管理器udev生成的腳本文件,其中,所述腳本文件中記錄有所述當前虛擬機的mac地址和所述第一網(wǎng)卡信息的對應(yīng)關(guān)系;
從所述腳本文件中獲取所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,所述裝置還包括:
識別模塊,用于所述設(shè)備管理器udev在所述當前虛擬機的操作系統(tǒng)引導(dǎo)的過程中,識別所述當前虛擬機上的網(wǎng)卡,得到所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,所述裝置還包括:
創(chuàng)建模塊,用于由虛擬機軟件Vmware創(chuàng)建所述當前虛擬機。
在本發(fā)明實施例中,獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息,當利用當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,第一網(wǎng)卡信息與第二網(wǎng)卡信息不同。隨后,在配置文件中刪除第一網(wǎng)卡信息,以及在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息。由此,本發(fā)明實施例實現(xiàn)了快速、靈活地處理網(wǎng)卡信息的目的。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1所示為本發(fā)明一實施例中基于虛擬機的網(wǎng)卡信息處理方法的流程圖;
圖2所示為本發(fā)明另一實施例中基于虛擬機的網(wǎng)卡信息處理方法的流程圖;
圖3所示為本發(fā)明一實施例中基于虛擬機的網(wǎng)卡信息處理裝置的結(jié)構(gòu)示意圖;
圖4所示為本發(fā)明另一實施例中基于虛擬機的網(wǎng)卡信息處理裝置的結(jié)構(gòu)示意圖;以及
圖5所示為本發(fā)明又一實施例中基于虛擬機的網(wǎng)卡信息處理裝置的結(jié)構(gòu)示意圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示為本發(fā)明一實施例中基于虛擬機的網(wǎng)卡信息處理方法的流程圖,該方法包括以下步驟S11-S14。
步驟S11,獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息。
在該步驟中,在物理計算機上安裝虛擬機軟件Vmware,由虛擬機軟件Vmware創(chuàng)建當前虛擬機,對于用戶而言,它只是運行在用戶的物理計算機上的一個應(yīng)用程序,但是對于在虛擬機中運行的應(yīng)用程序而言,它就是一臺真正計算機,例如用戶可以在當前虛擬機上安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。
在虛擬機上可以安裝Linux、Windows等操作系統(tǒng),Linux distribution(Linux發(fā)行套件)使用設(shè)備管理器udev動態(tài)管理設(shè)備文件,并根據(jù)設(shè)備的信息對其進行持久化命名。例如,在Debianetch中,udev會在系統(tǒng)引導(dǎo)的過程中識別網(wǎng)卡,將mac地址和網(wǎng)卡標識對應(yīng)起來記錄在udev的規(guī)則腳本中。
因而,步驟S11中獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息,本發(fā)明實施例提供了一種可選的方案,在該方案中,首先獲取當前虛擬機的操作系統(tǒng)中由設(shè)備管理器udev生成的腳本文件,其中,腳本文件中記錄有當前虛擬機的mac地址和第一網(wǎng)卡信息的對應(yīng)關(guān)系,進而從腳本文件中獲取第一網(wǎng)卡信息。這里的第一網(wǎng)卡信息可以包括當前虛擬機的mac地址、網(wǎng)卡標識等。mac(media access control或者medium access control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網(wǎng)絡(luò)設(shè)備的位置。在OSI(Open System Interconnection,開放式系統(tǒng)互聯(lián))模型中,第三層網(wǎng)絡(luò)層負責(zé)IP地址,第二層數(shù)據(jù)鏈路層則負責(zé)mac地址。因此一個主機會有一個mac地址,而每個網(wǎng)絡(luò)位置會有一個專屬于它的IP地址。mac地址是網(wǎng)卡決定的,是固定的。
步驟S12,當利用當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,第一網(wǎng)卡信息與第二網(wǎng)卡信息不同。
在該步驟中,可以由虛擬機軟件Vmware利用當前虛擬機克隆或復(fù)制得到目標虛擬機。虛擬機軟件Vmware能夠自動生成當前虛擬機或目標虛擬機的mac地址。
由于當前虛擬機的操作系統(tǒng)中已經(jīng)記錄了當前虛擬機的mac地址對應(yīng)于網(wǎng)卡eth0,在克隆或復(fù)制出的目標虛擬機中由于mac地址發(fā)生改變,設(shè)備管理器udev會自動將該mac地址對應(yīng)于網(wǎng)卡eth1。以此類推,設(shè)備管理器udev會記錄所有已經(jīng)識別的mac地址與網(wǎng)卡標識的關(guān)系,所以每次克隆網(wǎng)卡標識會自動加1,而其實操作系統(tǒng)的kernel(內(nèi)核)僅僅只識別到一張網(wǎng)卡(即eth0),跟網(wǎng)卡標識相關(guān)的網(wǎng)絡(luò)配置也未發(fā)生任何變化。
步驟S13,在配置文件中刪除第一網(wǎng)卡信息。
步驟S14,在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息。
在本發(fā)明實施例中,獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息,當利用當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,第一網(wǎng)卡信息與第二網(wǎng)卡信息不同。隨后,在配置文件中刪除第一網(wǎng)卡信息,以及在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息。由此,本發(fā)明實施例實現(xiàn)了快速、靈活地處理網(wǎng)卡信息的目的。
下面通過一具體實施例詳細介紹本發(fā)明的基于虛擬機的網(wǎng)卡信息處理方法的實現(xiàn)過程。如圖2所示為本發(fā)明另一實施例中基于虛擬機的網(wǎng)卡信息處理方法的流程圖,該方法包括以下步驟S21-S27。
步驟S21,在物理計算機上安裝虛擬機軟件Vmware,由虛擬機軟件Vmware創(chuàng)建當前虛擬機。
在該步驟中,對于用戶而言,它只是運行在用戶的物理計算機上的一個應(yīng)用程序,但是對于在虛擬機中運行的應(yīng)用程序而言,它就是一臺真正計算機,例如用戶可以在當前虛擬機上安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。
步驟S22,獲取當前虛擬機的操作系統(tǒng)中由設(shè)備管理器udev生成的腳本文件,其中,該腳本文件中記錄有當前虛擬機的mac地址和第一網(wǎng)卡信息的對應(yīng)關(guān)系。
在虛擬機上可以安裝Linux、Windows等操作系統(tǒng),Linux distribution使用設(shè)備管理器udev動態(tài)管理設(shè)備文件,并根據(jù)設(shè)備的信息對其進行持久化命名。例如,在Debianetch中,udev會在系統(tǒng)引導(dǎo)的過程中識別網(wǎng)卡,將mac地址和網(wǎng)卡標識對應(yīng)起來記錄在udev的規(guī)則腳本中。這里,當前虛擬機的mac地址可以由虛擬機軟件Vmware在創(chuàng)建當前虛擬機時自動生成。
步驟S23,從腳本文件中獲取第一網(wǎng)卡信息。
在該步驟中,第一網(wǎng)卡信息可以包括當前虛擬機的mac地址、網(wǎng)卡標識等。
步驟S24,由虛擬機軟件Vmware利用當前虛擬機克隆或復(fù)制得到目標虛擬機。
步驟S25,生成包含第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,第一網(wǎng)卡信息與第二網(wǎng)卡信息不同。
在該步驟中,發(fā)現(xiàn)在Debianetch下,設(shè)備管理器udev將mac地址與網(wǎng)卡標識eth0的對應(yīng)關(guān)系保存在配置文件中,配置文件如下:
/etc/udev/rules.d/z25_persistent-net.rules
以及,設(shè)備管理器udev將mac地址與網(wǎng)卡標識eth1的對應(yīng)關(guān)系保存在配置文件中,配置文件如下:
/etc/udev/rules.d/70-persistent-net.rules
步驟S26,在配置文件中刪除第一網(wǎng)卡信息。
在該步驟中,在配置文件中刪除第一網(wǎng)卡信息,即,在Debianetch中刪除如下兩行:
#PCIdevice0x1022:0x2000(pcnet32)SUBSYSTEM=="net",DRIVERS=="?*",ATTRS{address}=="00:0c:29:4c:46:01",NAME="eth0"
步驟S27,在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息。
在該步驟中,在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息,即,將下面的"eth1"修改為"eth0"。
#Advanced Micro Devices[AMD]79c970[PCnet32LANCE](rulewritten by anaconda)SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{addre ss}=="00:0c:29:ad:06:2a",ATTR{type}=="1",KERNEL=="eth*",NAME="eth0"
在本發(fā)明的可選實施例中,可以將配置文件中的內(nèi)容全部刪除,然后重新啟動,操作系統(tǒng)也會重新發(fā)現(xiàn)網(wǎng)卡硬件,重新產(chǎn)生該文件。
需要說明的是,在實際應(yīng)用中,上述所有可選實施方式可以采用結(jié)合的方式任意組合,形成本發(fā)明的可選實施例,在此不再一一贅述。
對應(yīng)于上述實施例中的基于虛擬機的網(wǎng)卡信息處理方法,本發(fā)明還提供一種基于虛擬機的網(wǎng)卡信息處理裝置。如圖3所示為本發(fā)明一實施例中基于虛擬機的網(wǎng)卡信息處理裝置的結(jié)構(gòu)示意圖,包括:
獲取模塊31,用于獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息;
配置文件生成模塊32,用于當利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含所述第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,所述第一網(wǎng)卡信息與所述第二網(wǎng)卡信息不同;
刪除模塊33,用于在所述配置文件中刪除所述第一網(wǎng)卡信息;
調(diào)整模塊34,用于在所述配置文件中將所述第二網(wǎng)卡信息調(diào)整為所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,上述獲取模塊31還用于:
獲取當前虛擬機的操作系統(tǒng)中由設(shè)備管理器udev生成的腳本文件,其中,所述腳本文件中記錄有所述當前虛擬機的mac地址和所述第一網(wǎng)卡信息的對應(yīng)關(guān)系;
從所述腳本文件中獲取所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,如圖4所示,上文圖3展示的裝置還可以包括:
識別模塊41,用于所述設(shè)備管理器udev在所述當前虛擬機的操作系統(tǒng)引導(dǎo)的過程中,識別所述當前虛擬機上的網(wǎng)卡,得到所述第一網(wǎng)卡信息。
在本發(fā)明一實施例中,如圖5所示,上文圖3展示的裝置還可以包括:
創(chuàng)建模塊51,用于由虛擬機軟件Vmware創(chuàng)建所述當前虛擬機。
在本發(fā)明一實施例中,上述創(chuàng)建模塊51還用于:
由所述虛擬機軟件Vmware利用所述當前虛擬機克隆或復(fù)制得到目標虛擬機。
在本發(fā)明一實施例中,上文圖3、圖4或圖5展示的裝置還可以包括:
mac地址生成模塊(圖中未示出),用于由所述虛擬機軟件Vmware生成所述當前虛擬機或所述目標虛擬機的mac地址。
本發(fā)明實施例的上述裝置:獲取當前虛擬機的操作系統(tǒng)中的第一網(wǎng)卡信息,當利用當前虛擬機克隆或復(fù)制得到目標虛擬機時,生成包含第一網(wǎng)卡信息以及第二網(wǎng)卡信息的配置文件,其中,第一網(wǎng)卡信息與第二網(wǎng)卡信息不同。隨后,在配置文件中刪除第一網(wǎng)卡信息,以及在配置文件中將第二網(wǎng)卡信息調(diào)整為第一網(wǎng)卡信息。由此,本發(fā)明實施例實現(xiàn)了快速、靈活地處理網(wǎng)卡信息的目的。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。