本發(fā)明屬于云主機(jī)技術(shù)領(lǐng)域,具體是一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法。
背景技術(shù):
當(dāng)前網(wǎng)絡(luò)架構(gòu)正在發(fā)生根本性變革,從第一代的模擬通信,到第二代的數(shù)字通信,第三代的互聯(lián)網(wǎng),SDN/NFV是第四次網(wǎng)絡(luò)變革,導(dǎo)致學(xué)界對于能夠支持網(wǎng)絡(luò)體系結(jié)構(gòu)驗(yàn)證的網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)的迫切需求。但直接基于物理設(shè)施搭建網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)需要大量資金投入,且實(shí)驗(yàn)網(wǎng)絡(luò)與物理硬件緊耦合,即不利于實(shí)驗(yàn)需求的多樣化也不利于實(shí)驗(yàn)資源共享,存在資源利用率低、實(shí)驗(yàn)門檻高、組織難等問題。
而隨著虛擬化技術(shù)和云計(jì)算的發(fā)展,硬件資源被虛擬化,基于云計(jì)算平臺構(gòu)造的網(wǎng)絡(luò)模擬仿真實(shí)驗(yàn)環(huán)境,可以滿足用戶對網(wǎng)絡(luò)實(shí)驗(yàn)的需求。我們的解決方法正是基于Openstack,構(gòu)造一個虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺,為用戶提供實(shí)驗(yàn)環(huán)境。在這樣的環(huán)境中,使用安裝虛擬交換機(jī)的虛擬機(jī)來模擬出不同接口數(shù)量的交換機(jī),路由器等設(shè)備。
雖然Openstack也可以通過調(diào)用interface-attach和inteface-detach API來動態(tài)增加和刪除虛擬機(jī)端口,提供不同數(shù)量接口的虛擬機(jī),但是虛擬機(jī)重啟后,網(wǎng)卡名稱又從eth0開始被重新命名,虛擬交換機(jī)中的port號也會變化,相關(guān)的網(wǎng)絡(luò)配置信息錯位導(dǎo)致這樣的虛擬出來的交換機(jī)設(shè)備無法正常工作。
目前現(xiàn)有的方案是通過鏡像文件,預(yù)先加好網(wǎng)卡,然后安裝虛擬交換機(jī);在虛擬機(jī)啟動時,Openstack將虛擬機(jī)的網(wǎng)卡綁定到不同的網(wǎng)絡(luò)中,然后在虛擬機(jī)中用啟動腳本,或者手動將網(wǎng)卡添加到相關(guān)的網(wǎng)橋中,實(shí)現(xiàn)交換機(jī)設(shè)備功能。
此方案可以實(shí)現(xiàn)虛擬化網(wǎng)絡(luò)設(shè)備的功能,但是網(wǎng)卡數(shù)量被固定且不可更改,如果要提供的不同的交換機(jī)間僅僅是接口數(shù)量差異的情況下,仍要制作設(shè)置了不同網(wǎng)卡數(shù)量的鏡像,這樣既增加了制作鏡像的工作量,而且對于平臺鏡像的管理,存儲提供了壓力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的問題是提供一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法,該方法可以動態(tài)添加或刪除云主機(jī)接口,并維持mac地址和網(wǎng)卡名稱、虛擬交換機(jī)port號之間的對應(yīng)關(guān)系,保持正確的網(wǎng)絡(luò)配置,同時也減輕了鏡像制作、管理、存儲的壓力,提高了工作效率。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:
一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法,包括以下步驟:
1)創(chuàng)建云主機(jī)時添加網(wǎng)絡(luò)接口的方法有以下步驟:
11)提供一個安裝有ovs,cloud-init軟件的基礎(chǔ)鏡像;
12)提供的openstack環(huán)境部署有metadata服務(wù),云主機(jī)可以通過metadata獲取定制信息;
13)創(chuàng)建云主機(jī)時,提供設(shè)置云主機(jī)接口數(shù)量、名稱、mac地址和ovs添加網(wǎng)絡(luò)接口到網(wǎng)橋的腳本,該腳本修改了系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,將網(wǎng)絡(luò)接口名稱和mac地址對應(yīng)起來,并添加一個腳本到啟動項(xiàng)中,將新建的網(wǎng)絡(luò)接口up后添加到ovs對應(yīng)的網(wǎng)橋中;
14)將接口名稱與mac地址和虛擬交換機(jī)中port號的對應(yīng)關(guān)系保存到數(shù)據(jù)庫中;
15)啟動云主機(jī)。
2)云主機(jī)創(chuàng)建后,刪除網(wǎng)絡(luò)接口的方法包括以下步驟:
21)調(diào)用openstack的interface-detach API刪除云主機(jī)某個網(wǎng)絡(luò)接口;
22)刪除保存于數(shù)據(jù)庫中的該網(wǎng)絡(luò)接口的信息;
23)以數(shù)據(jù)庫中信息為基準(zhǔn),用文件注入的方式將該信息寫入系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,保證了mac地址和網(wǎng)絡(luò)接口名稱的對應(yīng)關(guān)系;
24)以文件注入的方式修改開機(jī)啟動腳本,將所有網(wǎng)絡(luò)接口up后添加到相應(yīng)網(wǎng)橋中,并設(shè)置mac和虛擬交換機(jī)port號的對應(yīng)關(guān)系;
25)重啟云主機(jī),使所有網(wǎng)絡(luò)配置生效。
進(jìn)一步的,云主機(jī)創(chuàng)建后,添加網(wǎng)絡(luò)接口的方法有以下步驟:
31)調(diào)用openstack的interface-attach API給云主機(jī)添加網(wǎng)絡(luò)接口,獲取mac地址,并指定網(wǎng)絡(luò)接口名稱,并且不得與創(chuàng)建云主機(jī)時添加的網(wǎng)絡(luò)接口的名稱相同;
32)將網(wǎng)絡(luò)接口信息和mac地址和虛擬交換機(jī)port號的對應(yīng)關(guān)系保存到數(shù)據(jù)庫中;
33)以數(shù)據(jù)庫中信息為基準(zhǔn),用文件注入的方式將該信息寫入系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,保證了mac地址和網(wǎng)絡(luò)接口名稱的對應(yīng)關(guān)系;
34)以文件注入方式,添加開機(jī)啟動腳本,將所有網(wǎng)絡(luò)接口up后添加到相應(yīng)網(wǎng)橋中,并設(shè)置mac和虛擬交換機(jī)port號的對應(yīng)關(guān)系;
35)重啟云主機(jī),使所有網(wǎng)絡(luò)配置生效。
本發(fā)明提供了基于同一個鏡像,動態(tài)管理云主機(jī)網(wǎng)絡(luò)接口的方法,這樣的云主機(jī)在網(wǎng)絡(luò)模擬仿真實(shí)驗(yàn)平臺中,提供了虛擬交換機(jī),虛擬路由器等網(wǎng)絡(luò)設(shè)備的功能,可以動態(tài)添加或刪除接口,并維持mac地址和網(wǎng)卡名稱、虛擬交換機(jī)port號之間的對應(yīng)關(guān)系,保持正確的網(wǎng)絡(luò)配置,同時也減輕了鏡像制作、管理、存儲的壓力,提高了工作效率。
與之前采用的方案相比,本發(fā)明的云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法,利用了openstack metadata服務(wù)和文件注入,對云主機(jī)網(wǎng)絡(luò)接口進(jìn)行定制,實(shí)現(xiàn)鏡像文件復(fù)用和云主機(jī)接口動態(tài)管理的效果,滿足虛擬網(wǎng)絡(luò)設(shè)備對接口靈活管理的需求。
附圖說明
圖1為本發(fā)明創(chuàng)建云主機(jī)時添加網(wǎng)絡(luò)接口的流程示意圖;
圖2為本發(fā)明云主機(jī)創(chuàng)建后添加網(wǎng)絡(luò)接口的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法作進(jìn)一步更詳細(xì)的描述。
如圖1所示,一種云主機(jī)網(wǎng)絡(luò)接口的動態(tài)管理方法,包括以下步驟:
1)創(chuàng)建云主機(jī)時添加網(wǎng)絡(luò)接口的方法有以下步驟:
11)提供一個安裝有ovs,cloud-init軟件的基礎(chǔ)鏡像;
12)提供的openstack環(huán)境部署有metadata服務(wù),云主機(jī)可以通過metadata獲取定制信息;
13)創(chuàng)建云主機(jī)時,提供設(shè)置云主機(jī)接口數(shù)量、名稱、mac地址和ovs添加網(wǎng)絡(luò)接口到網(wǎng)橋的腳本,該腳本修改了系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,將網(wǎng)絡(luò)接口名稱和mac地址對應(yīng)起來,并添加一個腳本到啟動項(xiàng)中,將新建的網(wǎng)絡(luò)接口up后添加到ovs對應(yīng)的網(wǎng)橋中;
14)將接口名稱與mac地址和虛擬交換機(jī)中port號的對應(yīng)關(guān)系保存到數(shù)據(jù)庫中;
15)啟動云主機(jī)。
2)云主機(jī)創(chuàng)建后,刪除網(wǎng)絡(luò)接口的方法包括以下步驟:
21)調(diào)用openstack的interface-detach API刪除云主機(jī)某個網(wǎng)絡(luò)接口;
22)刪除保存于數(shù)據(jù)庫中的該網(wǎng)絡(luò)接口的信息;
23)以數(shù)據(jù)庫中信息為基準(zhǔn),用文件注入的方式將該信息寫入系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,保證了mac地址和網(wǎng)絡(luò)接口名稱的對應(yīng)關(guān)系;
24)以文件注入的方式修改開機(jī)啟動腳本,將所有網(wǎng)絡(luò)接口up后添加到相應(yīng)網(wǎng)橋中,并設(shè)置mac和虛擬交換機(jī)port號的對應(yīng)關(guān)系;
25)重啟云主機(jī),使所有網(wǎng)絡(luò)配置生效。
云主機(jī)創(chuàng)建后,仍可添加網(wǎng)絡(luò)接口,步驟如下:
31)調(diào)用openstack的interface-attach API給云主機(jī)添加網(wǎng)絡(luò)接口,獲取mac地址,并指定網(wǎng)絡(luò)接口名稱,并且不得與創(chuàng)建云主機(jī)時添加的網(wǎng)絡(luò)接口的名稱相同;
32)將網(wǎng)絡(luò)接口信息和mac地址和虛擬交換機(jī)port號的對應(yīng)關(guān)系保存到數(shù)據(jù)庫中;
33)以數(shù)據(jù)庫中信息為基準(zhǔn),用文件注入的方式將該信息寫入系統(tǒng)文件/etc/udev/rules.d/70-persistent-net.rules,保證了mac地址和網(wǎng)絡(luò)接口名稱的對應(yīng)關(guān)系;
34)以文件注入方式,添加開機(jī)啟動腳本,將所有網(wǎng)絡(luò)接口up后添加到相應(yīng)網(wǎng)橋中,并設(shè)置mac和虛擬交換機(jī)port號的對應(yīng)關(guān)系;
35)重啟云主機(jī),使所有網(wǎng)絡(luò)配置生效。
以下給出一個修改配置文件的腳本示例:
#執(zhí)行腳本示例
#修改/etc/udev/rules.d/70-persistent-net.rules配置文件
#設(shè)定接口名稱和mac地址的對應(yīng)關(guān)系
sed-i'$a SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",
ATTR{address}=="fe:e0:81:d7:3c:13",KERNEL=="eth*",NAME="eth1"'
/etc/udev/rules.d/70-persistent-net.rules
sed-i'$a SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",
ATTR{address}=="fe:e0:81:d7:3c:14",KERNEL=="eth*",NAME="eth2"'
/etc/udev/rules.d/70-persistent-net.rules
#up端口
ifconfig eth1up
ifconfig eth2up
#添加接口到ovs
ovs-vsctl del-port br-sw eth1
ovs-vsctl del-port br-sw eth2
ovs-vsctl add-port br-sw eth1
ovs-vsctl add-port br-sw eth2
#設(shè)置接口名稱與port號的對應(yīng)關(guān)系
ovs-vsctl set interface eth1ofport=1
ovs-vsctl set interface eth2ofport=2
本發(fā)明具體應(yīng)用途徑很多,以上僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn),這些改進(jìn)也應(yīng)視為本發(fā)明的保護(hù)范圍。