本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法、裝置及服務(wù)器。
背景技術(shù):
網(wǎng)絡(luò)功能虛擬化(英文:Network Function Virtualization,簡稱:NFV)作為一種新架構(gòu),通過使用x86等通用性硬件以及虛擬化技術(shù),以軟件處理的方式來承載功能,從而降低網(wǎng)絡(luò)應(yīng)用過程中昂貴的設(shè)備成本。
實際應(yīng)用中,由于NFV架構(gòu)中的虛擬基礎(chǔ)設(shè)施管理(英文:Virtualized Infrastructure Manager,簡稱:VIM)模塊和虛擬網(wǎng)絡(luò)功能的基礎(chǔ)設(shè)施(英文:Network Functions Virtualization Infrastructure,簡稱:NFVI)模塊上部署的軟件存在版本升級的需求,所以需要將新版本軟件重新部署,并將運(yùn)行于老版本軟件上的業(yè)務(wù)遷移至新版本軟件上運(yùn)行。由于電信領(lǐng)域的業(yè)務(wù)可靠性要求比較高,要求年業(yè)務(wù)中斷時間小于5分鐘即滿足5個9的可用度要求。所以,NFV架構(gòu)中的軟件升級需要滿足5個9的可用度要求,即保證軟件升級中的業(yè)務(wù)遷移不中斷正在運(yùn)行的業(yè)務(wù)。
目前,當(dāng)NFV架構(gòu)中新老版本軟件滿足兼容性條件時,可以采用虛擬機(jī)熱遷移的方式進(jìn)行軟件升級中的業(yè)務(wù)遷移。但是,當(dāng)新老版本軟件不能滿足兼容性條件時,則運(yùn)行于老版本軟件的虛擬機(jī)被遷移到新版本軟件后,由于虛擬機(jī)無法正常運(yùn)行,就會導(dǎo)致虛擬機(jī)上的業(yè)務(wù)不能正常運(yùn)行,從而導(dǎo)致虛擬機(jī)上的業(yè)務(wù)中斷。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法,無論升級的新老版本軟件是否滿足兼容性條件,本發(fā)明均能夠有利于軟件升級中被遷移的業(yè)務(wù)正常連續(xù)運(yùn)行。
為了解決以上技術(shù)問題,本發(fā)明采取的技術(shù)方案是:
本發(fā)明的第一方面提供了一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法,該方法包括:
在軟件升級過程中,NFV架構(gòu)中位于最底層的基礎(chǔ)設(shè)施層上層的虛擬網(wǎng)絡(luò)功能管理VNFM模塊,向位于所述最底層的第一虛擬化基礎(chǔ)設(shè)施管理VIM模塊發(fā)送虛擬機(jī)VM申請命令,該命令用于指示第一VIM模塊進(jìn)行虛擬機(jī)的申請;其中,所述軟件升級的情況可以為兩種,一種是所述第一VIM模塊發(fā)生軟件升級且該第一VIM模塊所對應(yīng)管理的虛擬網(wǎng)絡(luò)功能基礎(chǔ)設(shè)施中發(fā)生軟件升級,另一種則是所述第一VIM模塊所對應(yīng)管理的虛擬網(wǎng)絡(luò)功能基礎(chǔ)設(shè)置中發(fā)生軟件升級,而所述第一VIM模塊并未進(jìn)行軟件升級,這兩種情況可以概括為:所述第一VIM模塊管理配置有升級后新版本軟件的第一主機(jī)Host;
所述VNFM模塊接收到來自所述第一VIM模塊的VM申請響應(yīng),該申請響應(yīng)中攜帶有所述第一VIM模塊基于所述VNFM模塊的請求所申請的VM的信息,配置體為:所述第一VIM模塊在所述第一主機(jī)Host上申請的第一VM的信息,所述第一VM配置有被所述第一VIM模塊配置的能夠運(yùn)行于所述第一Host上的虛擬機(jī)自身數(shù)據(jù);在所述第一VIM模塊申請所述第一VM的過程中,可以為所述第一VM進(jìn)行虛擬機(jī)自身數(shù)據(jù)的配置,該配置使得所述第一VM能夠運(yùn)行于所述第一Host上,即,可以使申請得到的VM與升級后的軟件相適應(yīng);所述被配置的虛擬機(jī)自身數(shù)據(jù)包括除該虛擬機(jī)上運(yùn)行的業(yè)務(wù)數(shù)據(jù)之外的其他數(shù)據(jù),例如包括環(huán)境配置參數(shù)數(shù)據(jù)等;
在第一VIM模塊申請得到與升級后軟件相適應(yīng)的VM并告知VNFM模塊后,所述VNFM模塊向虛擬網(wǎng)絡(luò)功能VNF模塊發(fā)送業(yè)務(wù)遷移命令,所述業(yè)務(wù)遷移命令用于指示所述VNF模塊將第二VM上的正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM,所述第二VM部署于配置有升級前老版本軟件的第二Host上。
在本發(fā)明實施例第一方面所提供的技術(shù)方案中,位于中間層的VNFM模塊指示位于底層的第一VIM模塊申請第一VM,并配置所述第一VM模塊使其配置有能夠運(yùn)行于配置有升級后新版本軟件的第一Host上的虛擬機(jī)自身數(shù)據(jù),然后再由VNF模塊將業(yè)務(wù)遷移到所述第一VM上。由于所述第一VIM模塊在申請VM的過程中,基于軟件升級的情況進(jìn)行了虛擬機(jī)自身數(shù)據(jù)的配置,因此,即使出現(xiàn)升級前后軟件版本不兼容的情況,也能夠保證申請的虛擬機(jī)上的虛擬機(jī) 自身數(shù)據(jù)是滿足升級后軟件的要求的,從而使得新申請的虛擬機(jī)能夠正常運(yùn)行,進(jìn)一步使得業(yè)務(wù)遷移不會由于虛擬機(jī)無法正常運(yùn)行而無法實現(xiàn),從而有利于軟件升級中被遷移的業(yè)務(wù)正常連續(xù)運(yùn)行,甚至實現(xiàn)業(yè)務(wù)不中斷。
在本發(fā)明所述第一方面所提供的方案中,所述VNFM模塊向所述第一VIM模塊發(fā)送的虛擬機(jī)申請命令中可以包括虛擬機(jī)的規(guī)格參數(shù),用于指示所述第一VIM模塊按此規(guī)格參數(shù)進(jìn)行虛擬機(jī)的申請,該規(guī)格參數(shù)例如可以為內(nèi)存大小,CPU個數(shù)等。
同樣是在本發(fā)明所述第一方面所提供的方案中,所述VNF模塊對正在運(yùn)行的業(yè)務(wù)的遷移,具體可以為VNF模塊對業(yè)務(wù)數(shù)據(jù)的遷移,所述業(yè)務(wù)數(shù)據(jù)具體包括業(yè)務(wù)的持久化數(shù)據(jù)和業(yè)務(wù)的消息數(shù)據(jù)。所述VNF模塊具體可以利用主備切換、業(yè)務(wù)分發(fā)、協(xié)議調(diào)整等方式實現(xiàn)正在運(yùn)行的業(yè)務(wù)的遷移。
根據(jù)本發(fā)明第一方面所提供的方案,該方法進(jìn)一步包括:
當(dāng)所述VNFM模塊接收到來自所述VNF模塊的業(yè)務(wù)遷移完成通知后,所述VNFM模塊釋放所述第二VM,避免空閑資源的浪費(fèi)。
VIM模塊上部署的軟件和其所管理的NFVI模塊的任一臺Host上部署的軟件均存在版本升級需求場景下,所述第一VIM模塊配置有升級后新版本軟件,所述第二Host由配置有升級前老版本軟件的第二VIM模塊管理。
這種場景下,所述VNFM模塊向虛擬網(wǎng)絡(luò)功能VNF模塊發(fā)送業(yè)務(wù)遷移命令之前,還包括:
所述VNFM模塊向所述第二VIM模塊發(fā)送虛擬機(jī)查詢命令,所述虛擬機(jī)查詢命令用于指示所述第二VIM模塊查詢所述VNF模塊正在運(yùn)行業(yè)務(wù)的第二VM的信息。
具體的,由于VNF模塊的業(yè)務(wù)當(dāng)前正在所述第二VIM模塊管理的第二Host上的VM上運(yùn)行,所以,所述VNFM模塊通過指示所述第二VIM模塊查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM,獲取第二VM的信息。所述VNFM模塊將攜帶VNF模塊的標(biāo)識的虛擬機(jī)查詢命令發(fā)送至第二VIM模塊,所述第二VIM模塊根據(jù)所述VNF模塊的標(biāo)識,查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM的信息。
當(dāng)所述VNFM模塊獲取到所述第二VM和第一VM的信息后,向VNF模塊發(fā)送攜帶所述第二VM和第一VM的信息的業(yè)務(wù)遷移命令。
這種情況下,所述第一VIM模塊配置有的升級后新版本軟件與所述第二VIM模塊配置有的升級前老版本軟件屬于同構(gòu)軟件或異構(gòu)軟件。同構(gòu)軟件是指同種類型的軟件,同構(gòu)軟件升級是指同種類型軟件之間的升級,如兩個版本的Openstack軟件之間的升級為同構(gòu)軟件升級,Openstack軟件與VMWare軟件之間的升級為異構(gòu)軟件升級。
這種情況下,所述第一Host配置有的升級后新版本軟件與所述第二Host配置有的升級前老版本軟件也可以屬于同構(gòu)軟件或異構(gòu)軟件。
這種情況下,EMS模塊可以作為轉(zhuǎn)發(fā)模塊。具體的,所述VNFM模塊向網(wǎng)元管理系統(tǒng)EMS模塊發(fā)送業(yè)務(wù)遷移命令,并由所述EMS模塊將所述業(yè)務(wù)遷移命令轉(zhuǎn)發(fā)至所述VNF模塊,所述EMS模塊用于管理所述VNF模塊。
上述情況能夠?qū)崿F(xiàn)VIM模塊上部署的軟件和其所管理的NFVI模塊的任一臺Host上部署的軟件均存在版本升級需求場景下,由于所述VIM模塊在申請VM的過程中,基于軟件升級的情況進(jìn)行了虛擬機(jī)自身數(shù)據(jù)的配置,因此,即使出現(xiàn)升級前后軟件版本不兼容的情況,也能夠保證申請的虛擬機(jī)上的虛擬機(jī)自身數(shù)據(jù)是滿足升級后軟件的要求的,從而使得新申請的虛擬機(jī)能夠正常運(yùn)行,進(jìn)一步使得業(yè)務(wù)遷移不會由于虛擬機(jī)無法正常運(yùn)行而無法實現(xiàn),從而有利于軟件升級中被遷移的業(yè)務(wù)正常連續(xù)運(yùn)行。
VIM模塊上部署的軟件不升級,僅其所管理的NFVI模塊的任一臺Host上部署的軟件均存在版本升級需求場景下,所述第二Host由所述第一VIM模塊管理。
這種場景下,所述VNFM模塊向虛擬網(wǎng)絡(luò)功能VNF模塊發(fā)送業(yè)務(wù)遷移命令之前,還包括:
所述VNFM模塊向所述第一VIM模塊發(fā)送虛擬機(jī)查詢命令,所述虛擬機(jī)查詢命令用于指示所述第一VIM模塊查詢所述VNF模塊正在運(yùn)行業(yè)務(wù)的第二VM的信息。
具體的,由于VNF模塊的業(yè)務(wù)當(dāng)前正在所述第一VIM模塊管理的第二Host 上的VM上運(yùn)行,所以,所述VNFM模塊通過指示所述第一VIM模塊查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM,獲取第二VM的信息。所述VNFM模塊將攜帶VNF模塊的標(biāo)識的虛擬機(jī)查詢命令發(fā)送至第一VIM模塊,所述第一VIM模塊根據(jù)所述VNF模塊的標(biāo)識,查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM的信息。
當(dāng)所述VNFM模塊獲取到所述第二VM和第一VM的信息后,向VNF模塊發(fā)送攜帶所述第二VM和第一VM的信息的業(yè)務(wù)遷移命令。
這種情況下,所述第一Host配置有的升級后新版本軟件與所述第二Hos t配置有的升級前老版本軟件可以屬于同構(gòu)軟件或異構(gòu)軟件。
這種情況下,EMS模塊也可以作為轉(zhuǎn)發(fā)模塊。具體的,所述VNFM模塊向網(wǎng)元管理系統(tǒng)EMS模塊發(fā)送業(yè)務(wù)遷移命令,并由所述EMS模塊將所述業(yè)務(wù)遷移命令轉(zhuǎn)發(fā)至所述VNF模塊,所述EMS模塊用于管理所述VNF模塊。
上述情況能夠?qū)崿F(xiàn)VIM模塊上部署的軟件和其所管理的NFVI模塊的任一臺Host上部署的軟件均存在版本升級需求場景下,由于所述VIM模塊在申請VM的過程中,基于軟件升級的情況進(jìn)行了虛擬機(jī)自身數(shù)據(jù)的配置,因此,即使出現(xiàn)升級前后軟件版本不兼容的情況,也能夠保證申請的虛擬機(jī)上的虛擬機(jī)自身數(shù)據(jù)是滿足升級后軟件的要求的,從而使得新申請的虛擬機(jī)能夠正常運(yùn)行,進(jìn)一步使得業(yè)務(wù)遷移不會由于虛擬機(jī)無法正常運(yùn)行而無法實現(xiàn),從而有利于軟件升級中被遷移的業(yè)務(wù)正常連續(xù)運(yùn)行。
本發(fā)明的第二方面提供了一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移裝置,該裝置用于實現(xiàn)上述第一方面所提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法。
本發(fā)明的第三方面提供了一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移服務(wù)器,該服務(wù)器包括存儲器和處理器,所述存儲器用于存儲程序代碼,并將所述程序代碼傳輸給所述處理器;所述處理器用于根據(jù)所述程序代碼中的指令,執(zhí)行前述第一方面所提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法的步驟。
本發(fā)明的第四方面提供了一種用于存儲計算機(jī)程序的計算機(jī)存儲介質(zhì),所述計算機(jī)程序指示相關(guān)硬件實現(xiàn)以下步驟:向第一虛擬化基礎(chǔ)設(shè)施管理VIM模塊發(fā)送虛擬機(jī)VM申請命令,所述第一VIM模塊管理配置有升級后新版本軟件的第一主機(jī)Hos t;接收到來自所述第一VIM模塊的VM申請響應(yīng),所述VM申請響應(yīng)包括所述第一VIM模塊在所述第一主機(jī)Hos t上申請的第一VM的信 息,所述第一VM配置有被所述第一VIM模塊配置的能夠運(yùn)行于所述第一Host上的虛擬機(jī)自身數(shù)據(jù);向虛擬網(wǎng)絡(luò)功能VNF模塊發(fā)送業(yè)務(wù)遷移命令,所述業(yè)務(wù)遷移命令用于指示所述VNF模塊將第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM,所述第二VM部署于配置有升級前老版本軟件的第二Host上。
在本發(fā)明所述第四方面所提供的方案中,所述計算機(jī)程序還可以指示相關(guān)硬件實現(xiàn)前述第一方面所提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法的各個步驟。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的NFV系統(tǒng)100的系統(tǒng)架構(gòu)示意圖;
圖2是本發(fā)明實施例提供的一種VIM模塊同構(gòu)軟件升級的架構(gòu)示意圖;
圖3是本發(fā)明實施例提供的一種NFV架構(gòu)下VIM模塊同構(gòu)軟件升級中的業(yè)務(wù)遷移方法信令交互圖;
圖4是本發(fā)明實施例提供的一種VIM模塊異構(gòu)軟件升級的架構(gòu)示意圖;
圖5是本發(fā)明實施例提供的一種VIM模塊部署的軟件不升級,僅Host部署的軟件升級的架構(gòu)示意圖;
圖6是本發(fā)明實施例提供的一種VIM模塊部署的軟件不升級,僅Host部署的軟件升級的方法信令交互圖;
圖7是本發(fā)明實施例提供的一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移裝置結(jié)構(gòu)示意圖;
圖8是本發(fā)明實施例提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移服務(wù)器的結(jié)構(gòu)示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實施方式對本發(fā)明實施例作進(jìn)一步的詳細(xì)說明。
參考圖1,為本發(fā)明實施例提供的網(wǎng)絡(luò)功能虛擬化NFV系統(tǒng)100的系統(tǒng)架構(gòu)示意圖。
首先,從NFV架構(gòu)的縱向和橫向上進(jìn)行了解,按照NFV架構(gòu)的設(shè)計,從縱向看分為三層:
最底層的基礎(chǔ)設(shè)施層:從云計算的角度看,虛擬網(wǎng)絡(luò)功能基礎(chǔ)設(shè)施NFVI130就是一個資源池。NFVI130包含硬件和軟件,二者共同建立虛擬化環(huán)境以部署、管理和執(zhí)行虛擬網(wǎng)絡(luò)功能VNF108。換句話說,硬件資源層和虛擬資源層用于向VNF108提供虛擬資源,例如虛擬機(jī)和/或其他形式的虛擬容器。NFVI的物理基礎(chǔ)設(shè)施就是多個地理上分散的數(shù)據(jù)中心,通過高速通信網(wǎng)連接起來。NFVI需要將計算硬件112、存儲硬件114、網(wǎng)絡(luò)硬件116通過虛擬化層轉(zhuǎn)換為虛擬計算110、虛擬存儲118、虛擬網(wǎng)絡(luò)120。網(wǎng)絡(luò)硬件的虛擬化可以通過虛擬LAN(Vritual LAN,VLAN)、虛擬專用局域網(wǎng)業(yè)務(wù)(Virtual Private LAN Service,VPLS)、虛擬可擴(kuò)展局域網(wǎng)(Virtual eXtensible Local Area Network,VxLAN)或通用路由封裝網(wǎng)絡(luò)虛擬化(Nerwork Virtualization using Generic Routing Encapsulation,NVGRE)等技術(shù)實現(xiàn)。
中間層的虛擬網(wǎng)絡(luò)層:虛擬網(wǎng)絡(luò)層對應(yīng)的就是目前各個電信業(yè)務(wù)網(wǎng)絡(luò),每個物理網(wǎng)元映射為一個虛擬網(wǎng)絡(luò)功能VNF,VNF所需資源需要分解為虛擬的計算/存儲/網(wǎng)絡(luò)資源,由NFVI來承載。VNF108是至少一個網(wǎng)絡(luò)功能的虛擬化,該網(wǎng)絡(luò)功能之前是由物理網(wǎng)絡(luò)設(shè)備提供的。在一種實現(xiàn)方式下,VNF108可以是一個虛擬化的移動管理實體(Mobility Management Entity,MME)節(jié)點(diǎn),用于提供典型的非虛擬化的MME設(shè)備提供的所有網(wǎng)絡(luò)功能。在另一種實現(xiàn)方式下,VNF108可以用于實現(xiàn)非虛擬化的MME設(shè)備上提供的全部組件中的部分組件的功能。一個虛擬機(jī)(或其他形式的虛擬容器)上可以部署有一個或多個VNF108。EMS122可以用于管理一個或多個VNF。
最上層的運(yùn)營支撐層:運(yùn)營支撐系統(tǒng)/業(yè)務(wù)支撐系統(tǒng)(Operation Support System/Business Support System,OSS/BSS)124主要面向電信服務(wù)運(yùn)營商,提供綜合的網(wǎng)絡(luò)管理和業(yè)務(wù)運(yùn)營功能,包括網(wǎng)絡(luò)管理(例如故障監(jiān)控、網(wǎng)絡(luò)信息 收集等)、計費(fèi)管理以及客戶服務(wù)管理等。
服務(wù)、虛擬網(wǎng)絡(luò)功能和基礎(chǔ)設(shè)施描述系統(tǒng)126在ETSI GS NFV 002 v1.1.1標(biāo)準(zhǔn)中有詳細(xì)介紹,本發(fā)明實施例在此不再贅述。
其次,從NFV架構(gòu)的橫向看分為兩層:
左邊的業(yè)務(wù)網(wǎng)絡(luò)域:就是目前的各電信業(yè)務(wù)網(wǎng)絡(luò)。
右邊的管理編排域:虛擬網(wǎng)絡(luò)功能管理和編制系統(tǒng)(Management and Orchestration System,MANO)128負(fù)責(zé)對整個NFVI資源的管理和編排,負(fù)責(zé)業(yè)務(wù)網(wǎng)絡(luò)和NFVI資源的映射和關(guān)聯(lián),負(fù)責(zé)OSS業(yè)務(wù)資源流程的實施等,MANO內(nèi)部包括編制器(Orchestrator)102、一個或多個VNF管理器(VNF Manager,VNFM)104,以及一個或多個虛擬化基礎(chǔ)設(shè)施管理器(Virtualized Infrastructure Manager,VIM)106,分別完成對NS(NetworkService:即業(yè)務(wù)網(wǎng)絡(luò)提供的網(wǎng)絡(luò)服務(wù)),VNF和NFVI三個層次的管理。VNF管理器104可以與VNF108和EMS122通信以執(zhí)行VNF生命周期管理和實現(xiàn)配置/狀態(tài)信息的交換。VNFM104還可以用于管理一個或多個VNF108,執(zhí)行各種管理功能,例如初始化、更新、查詢、和/或終止VNF 108。虛擬化基礎(chǔ)設(shè)施管理器106可以用于控制和管理VNF108和計算硬件112、存儲硬件114、網(wǎng)絡(luò)硬件116、虛擬計算110、虛擬存儲118、虛擬網(wǎng)絡(luò)120的交互。例如,虛擬化基礎(chǔ)設(shè)施管理器106可以用于執(zhí)行資源向VNF108的分配操作。VNFM104和虛擬化基礎(chǔ)設(shè)施管理器106可以互相通信以交換虛擬化硬件資源配置和狀態(tài)信息。編制器102可以與一個或多個VNF管理器104通信以實現(xiàn)與資源相關(guān)的請求、發(fā)送配置信息給VNF管理器104、以及收集VNF 108的狀態(tài)信息。另外,編制器102還可以與虛擬化基礎(chǔ)設(shè)施管理器106進(jìn)行通信以實現(xiàn)資源分配,和/或?qū)崿F(xiàn)虛擬化硬件資源的配置信息和狀態(tài)信息的預(yù)留和交換。
本發(fā)明實施例可以根據(jù)軟件升級的對象的不同劃分為如下幾種情況:
一、VIM模塊上部署的軟件和其所管理的NFVI模塊的任一臺Host上部署的軟件均存在版本升級需求。
這種情況下,本發(fā)明實施例中的第一VIM模塊為安裝升級后新版本軟件的 VIM,第二VIM模塊為安裝升級前老版本軟件的VIM。第一VM由所述第一VIM模塊管理,第二VM由所述第二VIM模塊管理。
VIM模塊上部署的升級前老版本軟件與升級后新版本軟件可以為同構(gòu)軟件,也可以為異構(gòu)軟件,下面以同構(gòu)軟件為例進(jìn)行說明:
如圖2所示,為本發(fā)明實施例提供的一種VIM模塊同構(gòu)軟件升級的架構(gòu)示意圖。其中,VNFM模塊向安裝升級后新版本Openstack軟件的第一VIM模塊發(fā)送虛擬機(jī)申請命令,所述第一VIM模塊在安裝升級后新版本Openstack軟件的第一主機(jī)Host上申請第一VM,并為所述第一VM配置能夠運(yùn)行于所述第一Host上的虛擬機(jī)自身數(shù)據(jù)。所述VNFM模塊還能夠向安裝升級前老版本Openstack軟件的第二VIM模塊發(fā)送虛擬機(jī)查詢命令,所述第二VIM模塊查詢到安裝升級前老版本Openstack軟件的第二Host上的第二VM。所述VNFM模塊向VNF模塊發(fā)送業(yè)務(wù)遷移命令,指示所述VNF模塊將所述第二VM上的正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM上。
針對圖2,本發(fā)明實施例還提供了一種NFV架構(gòu)下VIM模塊同構(gòu)軟件升級中的業(yè)務(wù)遷移方法信令交互圖,如圖3所示。
S301:VNFM模塊向第二VIM模塊發(fā)送空余資源查詢命令,所述第二VIM模塊查詢當(dāng)前是否存在空余資源。
S302:當(dāng)所述VNFM模塊獲知當(dāng)前存在空余資源時,安裝第一VIM模塊以及其所管理的第一NFVI模塊,并建立與所述第一VIM模塊的消息接口。
S303:在第一VIM模塊和第一NFVI模塊上安裝升級后新版本Openstack軟件。
S304:所述VNFM模塊向所述第一VIM模塊發(fā)送虛擬機(jī)申請命令,所述虛擬機(jī)申請命令用于指示所述第一VIM模塊在自身管理的所述第一NFVI模塊上的第一Host上申請第一VM。
S305:所述第一VIM模塊根據(jù)所述虛擬機(jī)申請命令,在所述第一NFVI模塊上的第一Host上申請第一VM。
所述第一VIM模塊在申請到所述第一VM后,為所述第一VM配置能夠運(yùn)行于所述第一Host的虛擬機(jī)自身數(shù)據(jù)。所述第一VM被配置的虛擬機(jī)自身數(shù)據(jù)包括除其上運(yùn)行的業(yè)務(wù)數(shù)據(jù)之外的其他數(shù)據(jù),例如包括環(huán)境配置參數(shù)數(shù)據(jù) 等。
具體的,所述VNFM模塊向所述第一VIM模塊發(fā)送的虛擬機(jī)申請命令中包括指示所述第一VIM模塊申請的虛擬機(jī)的規(guī)格參數(shù),例如為內(nèi)存大小,CPU個數(shù)等。所述第一VIM模塊申請能夠滿足所述規(guī)格參數(shù)的第一VM后,根據(jù)第一Host當(dāng)前部署的升級后新版本軟件的環(huán)境參數(shù),為所述第一VM配置能夠運(yùn)行于所述第一Host的虛擬機(jī)自身數(shù)據(jù),并啟動所述第一VM。
S306:所述VNFM模塊將所述第一VM分配給某個VNF模塊,并通知所述VNF模塊執(zhí)行業(yè)務(wù)遷移命令。其中,所述業(yè)務(wù)遷移命令中包括第一VM和第二VM的信息,具體用于指示VNF模塊將所述第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM上。
實際應(yīng)用中,所述VNFM模塊向VNF模塊發(fā)送業(yè)務(wù)遷移命令之前,所述VNFM模塊首先向所述第二VIM模塊發(fā)送虛擬機(jī)查詢命令。具體的,由于VNF模塊的業(yè)務(wù)當(dāng)前正在所述第二VIM模塊管理的第二Host上的VM上運(yùn)行,所以,所述VNFM模塊通過指示所述第二VIM模塊查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM,獲取第二VM的信息。
具體的,所述VNFM模塊將攜帶VNF模塊的標(biāo)識的虛擬機(jī)查詢命令發(fā)送至第二VIM模塊,所述第二VIM模塊根據(jù)所述VNF模塊的標(biāo)識,查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM的信息。
S307:所述VNF模塊根據(jù)所述業(yè)務(wù)遷移命令,將所述第二VM上的正在運(yùn)行的業(yè)務(wù)遷移到所述第一VM上。
由于所述第一VM被配置有能夠運(yùn)行于安裝升級后新版本軟件的第一Host上的虛擬機(jī)自身數(shù)據(jù),所以,能夠保證業(yè)務(wù)能夠在所述第一VM上正常運(yùn)行。當(dāng)所述VNF模塊將正在運(yùn)行的業(yè)務(wù)遷移到所述第一VM上時,也能夠保證正在運(yùn)行的業(yè)務(wù)不中斷。本發(fā)明實施例中VNF模塊對正在運(yùn)行的業(yè)務(wù)的遷移實質(zhì)上也是對業(yè)務(wù)包括的數(shù)據(jù)的遷移,所述業(yè)務(wù)的數(shù)據(jù)具體包括業(yè)務(wù)的持久化數(shù)據(jù)和業(yè)務(wù)的消息數(shù)據(jù)。
實際應(yīng)用中,所述VNF模塊可以利用主備切換、業(yè)務(wù)分發(fā)、協(xié)議調(diào)整的方式實現(xiàn)正在運(yùn)行的業(yè)務(wù)的遷移。
S308:當(dāng)所述VNFM模塊獲知所述VNF模塊完成將所述第二VM上正在 運(yùn)行的業(yè)務(wù)遷移至所述第一VM上的通知后,關(guān)閉所述第二VM,釋放空閑資源。
實際應(yīng)用中,一個VNF模塊的業(yè)務(wù)可以在一個Host上的多個VM運(yùn)行,也可以在多個Host上的多個VM運(yùn)行。循環(huán)上述步驟S304-S308,將VNF模塊的業(yè)務(wù)逐漸遷移至配置有升級后新版本軟件的VM上,完成所述VNF模塊的業(yè)務(wù)的遷移。
S309:當(dāng)所述VNF模塊的業(yè)務(wù)全部完成遷移后,所述VNFM模塊通知所述VNF模塊業(yè)務(wù)遷移完成。
循環(huán)執(zhí)行S304-S309,也可以完成運(yùn)行于升級前老版本軟件環(huán)境中的其他VNF模塊的業(yè)務(wù)的不中斷遷移。當(dāng)?shù)诙﨨FVI模塊上的Host的VM均完成業(yè)務(wù)遷移后,將所述第二NFVI模塊上的計算、存儲、網(wǎng)絡(luò)資源等也遷移至所述第一NFVI模塊,同時,也可以將所述第二VIM模塊的資源釋放。
本發(fā)明實施例還提供了一種NFV架構(gòu)下VIM模塊異構(gòu)軟件升級中的業(yè)務(wù)遷移方法,如圖4所示,圖4為本發(fā)明實施例提供的一種VIM模塊異構(gòu)軟件升級的架構(gòu)示意圖。其中,VIM模塊異構(gòu)軟件升級的過程與VIM模塊同構(gòu)軟件升級的過程基本相同,僅僅是上述圖3中的S303中在第一VIM模塊和第一NFVI模塊上安裝的升級后新版本軟件為VMWare軟件。其中,VMWare軟件與Openstack軟件屬于不同類型的軟件,所以,VMWare軟件與Openstack軟件之間的升級稱為異構(gòu)軟件升級。本發(fā)明實施例中,對于第一VIM模塊、第二VIM模塊、第一NFVI模塊和第二NFVI模塊上安裝的Openstack軟件或VMWare軟件僅是作為常用軟件類型存在于本發(fā)明實施例中,并不限定本發(fā)明實施例的范圍。
二、VIM模塊上部署的軟件不存在升級需求,僅其所管理的NFVI模塊的任一臺Host上部署的軟件存在版本升級需求。
這種情況下,本發(fā)明實施例中Host上部署的軟件升級前后的VIM模塊均為第一VIM模塊,第一VM和第二VM均由所述第一VIM模塊管理。但是,第一VM為部署于安裝升級后新版本軟件的第一Host的VM,第二VM為部署于安裝 升級前老版本軟件的第二Host的VM。
如圖5所示,為本發(fā)明實施例提供的一種VIM模塊部署的軟件不升級,僅Host部署的軟件升級的架構(gòu)示意圖。
其中,VNFM模塊向第一VIM模塊發(fā)送虛擬機(jī)申請命令,所述第一VIM模塊在安裝升級后新版本Openstack軟件的第一主機(jī)Host上申請第一VM,并為所述第一VM配置能夠運(yùn)行于所述第一Host上的虛擬機(jī)自身數(shù)據(jù)。所述VNFM模塊還能夠向所述第一VIM模塊發(fā)送虛擬機(jī)查詢命令,所述第一VIM模塊查詢到安裝升級前老版本Openstack軟件的第二Host上的第二VM。所述VNFM模塊向VNF模塊發(fā)送業(yè)務(wù)遷移命令,指示所述VNF模塊將所述第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM上。
針對圖5,本發(fā)明實施例還提供了一種VIM模塊部署的軟件不升級,僅Host部署的軟件升級的方法信令交互圖,如圖6所示,具體可以參照對圖3的理解。
S601:VNFM模塊向第一VIM模塊發(fā)送空余資源查詢命令,所述第一VIM模塊查詢當(dāng)前是否存在空余資源。
S602:當(dāng)所述VNFM模塊獲知當(dāng)前存在空余資源時,安裝第一NFVI模塊,所述第一NFVI模塊有所述第一VIM模塊管理。
S603:在所述第一NFVI模塊上安裝升級后新版本Openstack軟件。
S604:所述VNFM模塊向所述第一VIM模塊發(fā)送虛擬機(jī)申請命令,所述虛擬機(jī)申請命令用于指示所述第一VIM模塊在自身管理的所述第一NFVI模塊上的第一Host上申請第一VM。
S605:所述第一VIM模塊根據(jù)所述虛擬機(jī)申請命令,在所述第一NFVI模塊上的第一Host上申請被配置有能夠運(yùn)行于所述第一Host的虛擬機(jī)自身數(shù)據(jù)的第一VM,并啟動所述第一VM。
S606:所述VNFM模塊將所述第一VM分配給某個VNF模塊,并通知所述VNF模塊執(zhí)行業(yè)務(wù)遷移命令。其中,所述業(yè)務(wù)遷移命令中包括第一VM和第二VM的信息,具體用于指示VNF模塊將所述第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM上。
S607:所述VNF模塊根據(jù)所述業(yè)務(wù)遷移命令,將所述第二VM上正在運(yùn)行 的業(yè)務(wù)遷移到所述第一VM上。
實際應(yīng)用中,所述VNFM模塊向VNF模塊發(fā)送業(yè)務(wù)遷移命令之前,所述VNFM模塊首先向所述第一VIM模塊發(fā)送虛擬機(jī)查詢命令。具體的,由于VNF模塊的業(yè)務(wù)當(dāng)前正在所述第一VIM模塊管理的第二Host上的VM上運(yùn)行,所以,所述VNFM模塊通過指示所述第一VIM模塊查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM,獲取第二VM的信息。
具體的,所述VNFM模塊將攜帶VNF模塊的標(biāo)識的虛擬機(jī)查詢命令發(fā)送至第一VIM模塊,所述第一VIM模塊根據(jù)所述VNF模塊的標(biāo)識,查詢正在運(yùn)行所述VNF模塊的業(yè)務(wù)的VM的信息。
S608:當(dāng)所述VNFM模塊獲知所述VNF模塊完成將所述第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM上的通知后,關(guān)閉所述第二VM,釋放空閑資源。
S609:當(dāng)所述VNF模塊的業(yè)務(wù)全部完成遷移后,所述VNFM模塊通知所述VNF模塊業(yè)務(wù)遷移完成。
循環(huán)執(zhí)行S604-S609,也可以完成運(yùn)行于升級前老版本軟件環(huán)境中的其他VNF模塊的業(yè)務(wù)的不中斷遷移。當(dāng)?shù)诙﨨FVI模塊上的Host的VM均完成業(yè)務(wù)遷移后,將所述第二NFVI模塊上的計算、存儲、網(wǎng)絡(luò)資源等也遷移至所述第一NFVI模塊。
另外,由于VNF架構(gòu)下VIM模塊可以管理多個NFVI模塊,所以,第一NFVI模塊和第二NFVI模塊可以是由第一VIM模塊同時管理的兩個不同的NFVI,也可以是由第一VIM模塊管理的同一個NFVI。
本發(fā)明實施例提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法中,由于VNFM模塊指示第一VIM模塊申請的第一VM被配置有能夠運(yùn)行于配置有升級后新版本軟件的第一Host上的虛擬機(jī)自身數(shù)據(jù),所以能夠保證由VNF模塊遷移到所述第一VM上的業(yè)務(wù)不中斷運(yùn)行。即使在新老版本軟件不滿足兼容性條件,本發(fā)明實施例也能夠?qū)崿F(xiàn)軟件升級中的業(yè)務(wù)遷移不中斷正常運(yùn)行的業(yè)務(wù)。
事實上,本發(fā)明實施例提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法,由于第一VIM模塊申請的第一VM被配置能夠運(yùn)行于配置有升級后新版本軟件的第一Host上的虛擬機(jī)自身數(shù)據(jù),使得遷移到所述第一VM上的業(yè)務(wù)能夠不中斷 運(yùn)行,所以,本發(fā)明實施例中的業(yè)務(wù)遷移不具有新老版本軟件不兼容的困擾。也就是說,無論新老版本軟件是否具有兼容性,本發(fā)明實施例均有利于軟件升級中被遷移的業(yè)務(wù)正常連續(xù)運(yùn)行,甚至可以實現(xiàn)業(yè)務(wù)不中斷。
由于VNFM模塊可以與VNF模塊和EMS模塊進(jìn)行通信,而EMS模塊用于管理VNF模塊。所以,本發(fā)明實施例將EMS模塊作為轉(zhuǎn)發(fā)模塊,在VNFM模塊將業(yè)務(wù)遷移命令發(fā)送至用于管理所述VNF模塊的網(wǎng)元管理系統(tǒng)EMS模塊后,所述EMS模塊將接收到的業(yè)務(wù)遷移命令轉(zhuǎn)發(fā)至所述VNF模塊。這種利用EMS模塊轉(zhuǎn)發(fā)業(yè)務(wù)遷移命令的具體應(yīng)用中的其他流程可結(jié)合圖2-圖6進(jìn)行理解。
本發(fā)明實施例還提供了一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移裝置,所述裝置的實施例可以參照方法實施例中的描述。圖7為本發(fā)明實施例提供的一種NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移裝置結(jié)構(gòu)示意圖,所述裝置包括:
第一發(fā)送單元701,用于向第一虛擬化基礎(chǔ)設(shè)施管理VIM模塊發(fā)送虛擬機(jī)VM申請命令,所述第一VIM模塊管理配置有升級后新版本軟件的第一主機(jī)Host;
接收單元702,用于接收到來自所述第一VIM模塊的VM申請響應(yīng),所述VM申請響應(yīng)包括所述第一VIM模塊在所述第一主機(jī)Host上申請的第一VM的信息,所述第一VM配置有能夠運(yùn)行于所述第一Host上的虛擬機(jī)自身數(shù)據(jù);
第二發(fā)送單元703,用于向虛擬網(wǎng)絡(luò)功能VNF模塊發(fā)送業(yè)務(wù)遷移命令,所述業(yè)務(wù)遷移命令用于指示所述VNF模塊將第二VM上正在運(yùn)行的業(yè)務(wù)遷移至所述第一VM,所述第二VM部署于配置有升級前老版本軟件的第二Host上。
本發(fā)明實施例提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移裝置中,由于第一發(fā)送單元指示第一VIM模塊申請的第一VM被配置有能夠運(yùn)行于安裝升級后新軟件的第一Host上的虛擬機(jī)自身數(shù)據(jù),所以由VNF模塊遷移到所述第一VM上的業(yè)務(wù)能夠不中斷運(yùn)行。即使在上述應(yīng)用場景中軟件升級的新老版本軟件不滿足兼容性條件,本發(fā)明實施例也能夠?qū)崿F(xiàn)軟件升級中的業(yè)務(wù)遷移不中斷正常運(yùn)行的業(yè)務(wù)。
一種實施場景下,為了解決VIM模塊上部署的軟件和其所管理的NFVI模塊的任一臺Hos t上部署的軟件均存在版本升級需求的問題,本發(fā)明實施例中的第一VIM模塊為安裝升級后新版本軟件的VIM,第二VIM模塊為安裝升級前老版本軟件的VIM,VIM模塊上部署的軟件可以是同構(gòu)軟件或異構(gòu)軟件。第一VM由所述第一VIM模塊管理,第二VM由所述第二VIM模塊管理。第一VM為部署于安裝升級后新版本軟件的第一Host的VM,第二VM為部署于安裝升級前老版本軟件的第二Hos t的VM,Hos t上部署的軟件也可以是同構(gòu)軟件或異構(gòu)軟件。上述實施場景下的裝置實施例可以參照方法實施例中對圖2、圖3和圖4的理解。
這種實施場景下,基于圖7中的裝置結(jié)構(gòu),所述裝置還包括第一查詢單元,用于向所述第一VIM模塊發(fā)送虛擬機(jī)查詢命令,所述虛擬機(jī)查詢命令用于指示所述第一VIM模塊查詢所述VNF模塊正在運(yùn)行業(yè)務(wù)的第二VM的信息。
另一種實施場景下,為了解決VIM模塊上部署的軟件不存在升級需求,僅其所管理的NFVI模塊的任一臺Host上部署的軟件存在版本升級需求的問題,本發(fā)明實施例中的Hos t上部署的軟件升級前后的VIM模塊均為第一VIM模塊,第一VM和第二VM均由所述第一VIM模塊管理。但是,第一VM為部署于安裝升級后新版本軟件的第一Host的VM,第二VM為部署于安裝升級前老版本軟件的第二Hos t的VM。這種實施場景下的裝置實施例可以參照方法實施例中對圖5和圖6的理解。
這種實施場景下,基于圖7中的裝置結(jié)構(gòu),所述裝置還包括第二查詢單元,用于向所述第二VIM模塊發(fā)送虛擬機(jī)查詢命令,所述虛擬機(jī)查詢命令用于指示所述第二VIM模塊查詢所述VNF模塊正在運(yùn)行業(yè)務(wù)的第二VM的信息。
為了減少資源的浪費(fèi),在圖7中的裝置結(jié)構(gòu)的基礎(chǔ)上,所述裝置還包括:
釋放單元,當(dāng)接收到來自所述VNF模塊的業(yè)務(wù)遷移完成通知后,釋放所述第二VM。
另一種實現(xiàn)方式中,將EMS模塊作為業(yè)務(wù)遷移命令的轉(zhuǎn)發(fā)模塊,在這種實 現(xiàn)方式中,在圖7中的裝置結(jié)構(gòu)的基礎(chǔ)上,所述裝置還包括第二發(fā)送單元,具體用于向網(wǎng)元管理系統(tǒng)EMS模塊發(fā)送業(yè)務(wù)遷移命令,并由所述EMS模塊將所述業(yè)務(wù)遷移命令轉(zhuǎn)發(fā)至所述VNF模塊,所述EMS模塊用于管理所述VNF模塊。
圖8為本發(fā)明一實施例提供的NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移服務(wù)器的結(jié)構(gòu)示意圖,如圖8所示,包括處理器801、存儲器802,還包括I\O接口803,所述處理器和所述存儲器通過總線連接,其中,所述存儲器存儲程序代碼,并將所述程序代碼傳輸給所述處理器,所述處理器調(diào)取并執(zhí)行所述存儲器中的指令,實現(xiàn)上述NFV架構(gòu)下軟件升級中的業(yè)務(wù)遷移方法;所述I\O接口用于與第一VIM模塊、VNF模塊進(jìn)行通信。
本發(fā)明實施例所述服務(wù)器的技術(shù)原理和技術(shù)效果可以參考圖1至圖7所示實施例中的相關(guān)描述,不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能 單元的形式實現(xiàn)。
上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:移動硬盤、只讀存儲器(英文:Read-Only Memory,簡稱ROM)、隨機(jī)存取存儲器(英文:Random Access Memory,簡稱RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的保護(hù)范圍。