本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種虛擬機(jī)的部署方法和一種虛擬機(jī)的部署裝置。
背景技術(shù):
目前,虛擬化技術(shù)在互聯(lián)網(wǎng)技術(shù)領(lǐng)域的應(yīng)用越來越廣泛。隨著近年多核系統(tǒng)、集群、網(wǎng)格以及云計(jì)算的廣泛部署,虛擬化技術(shù)在商業(yè)應(yīng)用上的優(yōu)勢日益體現(xiàn),不僅降低了成本,而且還增強(qiáng)了系統(tǒng)安全性和可靠性,虛擬化的概念也逐漸深入到人們?nèi)粘5墓ぷ髋c生活中。
虛擬機(jī)的硬件(如虛擬CPU,虛擬內(nèi)存,虛擬磁盤等)可以通過虛擬化技術(shù)模擬出來的,其中虛擬磁盤本身是物理主機(jī)上的一個(gè)文件,被成為虛擬機(jī)磁盤鏡像文件。所謂虛擬機(jī)模板,就是已經(jīng)安裝了基本操作系統(tǒng)的虛擬機(jī)鏡像文件。在需要部署新的虛擬機(jī)時(shí),可以把已有的模板進(jìn)行復(fù)制,生成新的虛擬機(jī)鏡像文件,然后使用這個(gè)鏡像文件啟動(dòng)虛擬機(jī)。通過這樣的方式,在新生成的虛擬機(jī)中,已經(jīng)安裝好了基本操作系統(tǒng),不需要重新使用安裝,大大提高了虛擬機(jī)的部署速度。
然而,在實(shí)際使用虛擬計(jì)算環(huán)境時(shí),有時(shí)需要部署多臺互相依賴的虛擬機(jī),組成一個(gè)業(yè)務(wù)單元,共同實(shí)現(xiàn)信息系統(tǒng)的功能。在這種情況下,多臺虛擬機(jī)間需要互聯(lián)互通,使得虛擬機(jī)的部署和調(diào)試工作量和難度都會大大增加,部署的時(shí)間也會大大增長。
此外,由于互聯(lián)網(wǎng)行業(yè)人員變動(dòng)較快,大量項(xiàng)目由于交接問題導(dǎo)致虛擬機(jī)模塊功能、程序設(shè)計(jì)細(xì)節(jié)無人了解。雖然通過人工Review檢查代碼可以從根本上解決問題,但耗時(shí)、費(fèi)力,對于某些緊急情況并不適用。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種虛擬機(jī)的部署方法和相應(yīng)的一種虛擬機(jī)的部署裝置。
為了解決上述問題,本發(fā)明實(shí)施例公開了一種虛擬機(jī)的部署方法,包括:
獲取產(chǎn)品對象一個(gè)或多個(gè)功能模塊;
分別確定所述一個(gè)或多個(gè)功能模塊配置文件和通信方式;
采用所述一個(gè)或多個(gè)功能模塊,以及所述功能模塊相應(yīng)配置文件和通信方式創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)模板包;
當(dāng)在物理機(jī)上部署虛擬機(jī)時(shí),采用所述一個(gè)或多個(gè)虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。
優(yōu)選地,所述采用一個(gè)或多個(gè)功能模塊,以及所述功能模塊相應(yīng)配置文件和通信方式創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)模板包的步驟包括:
創(chuàng)建一個(gè)或多個(gè)初始虛擬機(jī);
按照所述配置文件搭建所述一個(gè)或多個(gè)初始虛擬機(jī)的基礎(chǔ)環(huán)境;
將所述功能模塊分別安裝至所述搭建基礎(chǔ)環(huán)境后的一個(gè)或多個(gè)初始虛擬機(jī)中;
將安裝功能模塊后的一個(gè)或多個(gè)初始虛擬機(jī)打包為虛擬機(jī)模板包;
根據(jù)所述功能模塊的通信方式在所述一個(gè)或多個(gè)虛擬機(jī)模板包添加相應(yīng)的通信參數(shù)。
優(yōu)選地,所述當(dāng)在物理機(jī)上部署虛擬機(jī)時(shí),采用所述一個(gè)或多個(gè)虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署的步驟包括:
在物理機(jī)上安裝邏輯卷管理器;
在所述物理機(jī)上設(shè)置存儲空間,并基于所述存儲空間上創(chuàng)建邏輯卷;
將所述一個(gè)或多個(gè)虛擬機(jī)模板包解壓于所述邏輯卷上;
在所述邏輯卷上基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī);
基于通信參數(shù)確定虛擬機(jī)是否支持反向代理;
若是,則對支持反向代理的一個(gè)或多個(gè)虛擬機(jī)設(shè)置反向代理入口。
優(yōu)選地,還包括:
在物理機(jī)上安裝監(jiān)控插件;
當(dāng)所述監(jiān)控插件監(jiān)測到在所述邏輯卷基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī)失敗時(shí),銷毀所述虛擬機(jī)。
優(yōu)選地,所述方法還包括:
在反向代理入口處接收到針對所述一個(gè)或多個(gè)虛擬機(jī)的外部請求,所述外部請求包括目標(biāo)位置信息;
基于所述目標(biāo)位置信息將所述外部請求轉(zhuǎn)發(fā)至相應(yīng)的虛擬機(jī)中。
本發(fā)明實(shí)施例還公開了一種虛擬機(jī)的部署裝置,包括:
功能模塊獲取模塊,用于獲取產(chǎn)品對象一個(gè)或多個(gè)功能模塊;
配置文件確定模塊,用于分別確定所述一個(gè)或多個(gè)功能模塊配置文件和通信方式;
虛擬機(jī)模板包創(chuàng)建模塊,用于采用所述一個(gè)或多個(gè)功能模塊,以及所述功能模塊相應(yīng)配置文件和通信方式創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)模板包;
虛擬機(jī)部署模塊,用于當(dāng)在物理機(jī)上部署虛擬機(jī)時(shí),采用所述一個(gè)或多個(gè)虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。
優(yōu)選地,所述虛擬機(jī)模板包創(chuàng)建模塊包括:
初始虛擬機(jī)創(chuàng)建子模塊,用于創(chuàng)建一個(gè)或多個(gè)初始虛擬機(jī);
基礎(chǔ)環(huán)境搭建子模塊,用于按照所述配置文件搭建所述一個(gè)或多個(gè)初始虛擬機(jī)的基礎(chǔ)環(huán)境;
功能模塊安裝子模塊,用于將所述功能模塊分別安裝至所述搭建基礎(chǔ)環(huán)境后的一個(gè)或多個(gè)初始虛擬機(jī)中;
初始虛擬機(jī)打包子模塊,用于將安裝功能模塊后的一個(gè)或多個(gè)初始虛擬機(jī)打包為虛擬機(jī)模板包;
通信參數(shù)添加子模塊,用于根據(jù)所述功能模塊的通信方式在所述一個(gè)或多個(gè)虛擬機(jī)模板包添加相應(yīng)的通信參數(shù)。
優(yōu)選地,所述虛擬機(jī)部署模塊包括:
邏輯卷管理器安裝子模塊,用于在物理機(jī)上安裝邏輯卷管理器;
邏輯卷創(chuàng)建子模塊,用于在所述物理機(jī)上設(shè)置存儲空間,并基于所述存儲空間上創(chuàng)建邏輯卷;
虛擬機(jī)模板包解壓子模塊,用于將所述一個(gè)或多個(gè)虛擬機(jī)模板包解壓于所述邏輯卷上;
虛擬機(jī)創(chuàng)建子模塊,用于在所述邏輯卷上基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī);
反向代理確定子模塊,用于基于通信參數(shù)確定虛擬機(jī)是否支持反向代理;若支持反向代理,則調(diào)用反向代理入口設(shè)置子模塊;
反向代理入口設(shè)置子模塊,用于對支持反向代理的一個(gè)或多個(gè)虛擬機(jī)設(shè)置反向代理入口。
優(yōu)選地,還包括:
監(jiān)控插件安裝模塊,用于在物理機(jī)上安裝監(jiān)控插件;
虛擬機(jī)銷毀模塊,用于當(dāng)所述監(jiān)控插件監(jiān)測到在所述邏輯卷基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī)失敗時(shí),銷毀所述虛擬機(jī)。
優(yōu)選地,所述方法還包括:
外部請求接收模塊,用于在反向代理入口處接收到針對所述一個(gè)或多個(gè)虛擬機(jī)的外部請求,所述外部請求包括目標(biāo)位置信息;
外部請求轉(zhuǎn)發(fā)模塊,用于基于所述目標(biāo)位置信息將所述外部請求轉(zhuǎn)發(fā)至相應(yīng)的虛擬機(jī)中。
本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例對于在產(chǎn)品對象完成時(shí),對于產(chǎn)品對象的各個(gè)功能模塊進(jìn)行劃分,并針對各個(gè)功能模塊確定相應(yīng)的配置文件和通信方式,然后再基于功能模塊,以及功能模塊相應(yīng)的配置文件和通信方式創(chuàng)建虛擬機(jī)模板包,當(dāng)需要部署虛擬機(jī)時(shí),可以根據(jù)已創(chuàng)建的虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。本發(fā)明實(shí)施例中將各個(gè)功能模塊打包為獨(dú)立的虛擬機(jī)模板包,通過將各個(gè)功能模塊打包為虛擬機(jī)模板包使得各個(gè)功能模塊黑盒化,當(dāng)需要進(jìn)行虛擬機(jī)部署時(shí),選擇所需的虛擬機(jī)模板包進(jìn)行各個(gè)功能模塊的部署,這樣,可以規(guī)避因操作人員對系統(tǒng)不了解裝錯(cuò)插件的風(fēng)險(xiǎn)。本發(fā)明實(shí)施例的功能模塊間通信端口可調(diào),以保證功能模塊安裝后,系統(tǒng)可以正常運(yùn)行。
附圖說明
圖1是本發(fā)明的一種虛擬機(jī)的部署方法實(shí)施例的步驟流程圖;
圖2是本發(fā)明的一種物理機(jī)上存儲空間使用的示意圖;
圖3是本發(fā)明的一種虛擬機(jī)反向代理連接示意圖;
圖4是本發(fā)明的一種添加判斷條件后的虛擬機(jī)反向代理連接示意圖;
圖5是本發(fā)明的一種物理機(jī)上虛擬機(jī)的結(jié)構(gòu)示意圖;
圖6是本發(fā)明的一種功能模塊的打包過程示意圖;
圖7是本發(fā)明的一種功能模塊分層次打包的示意圖;
圖8是本發(fā)明的一種虛擬機(jī)的部署裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
本發(fā)明實(shí)施例是基于xen虛擬化的模塊化部署方案,目的在于將系統(tǒng)做成黑盒,運(yùn)維部署時(shí)不再關(guān)心系統(tǒng)內(nèi)部各個(gè)功能模塊之間的關(guān)系,僅考慮整體硬件資源的使用,節(jié)省人力時(shí)間。同時(shí),也方便工作交接,縮短后續(xù)接手人員的系統(tǒng)學(xué)習(xí)周期,能夠快速上手,開始工作。本發(fā)明實(shí)施例的核心構(gòu)思之一在于,將不同功能模塊打包成獨(dú)立虛擬機(jī),轉(zhuǎn)換為虛擬機(jī)模板包——黑盒化——基于虛擬機(jī)模板包進(jìn)行模塊式的部署。以此規(guī)避因人員對系統(tǒng)不了解裝錯(cuò)插件的風(fēng)險(xiǎn)。實(shí)施前提是保證各個(gè)虛擬機(jī)模板包中功能模塊的通信端口可調(diào),以保證虛擬機(jī)模板包安裝后,系統(tǒng)可以正常運(yùn)行。
參照圖1,示出了本發(fā)明的一種虛擬機(jī)的部署方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:
步驟101,獲取產(chǎn)品對象一個(gè)或多個(gè)功能模塊;
在具體實(shí)現(xiàn)中,產(chǎn)品對象可以是指軟件產(chǎn)品,而軟件產(chǎn)品可以被看作是由一系列具有特定功能的組件組成,作為一個(gè)完整的系統(tǒng)也可以被分解成一系列功能模塊,這些功能模塊之間的相互作用就形成了系統(tǒng)的所有功能。
在軟件產(chǎn)品完成時(shí),本發(fā)明實(shí)施例將根據(jù)其系統(tǒng)設(shè)計(jì),將各個(gè)功能模塊進(jìn)行區(qū)分、合并,保證一個(gè)包內(nèi)的功能模塊互不沖突。
步驟102,分別確定所述一個(gè)或多個(gè)功能模塊配置文件和通信方式;
本發(fā)明實(shí)施例會根據(jù)該產(chǎn)品對象的系統(tǒng)設(shè)計(jì)對于各個(gè)功能模塊進(jìn)行規(guī)劃,例如需要確定產(chǎn)品對象各個(gè)功能模塊的通信端口,以及配置文件文件等等,此外,還需要確定各個(gè)功能模塊的通信方式,例如是否可通過反向代理進(jìn)行消息的轉(zhuǎn)發(fā)。具體地,需要考慮到該功能模塊的基礎(chǔ)使用場景,以及使用的端口號。當(dāng)然,這些參數(shù)都是可以根據(jù)實(shí)際現(xiàn)場環(huán)境修改,在打包為虛擬機(jī)模板包之前或者之后均可。
步驟103,采用所述一個(gè)或多個(gè)功能模塊,以及所述功能模塊相應(yīng)配置文件和通信方式創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)模板包;
在確定各個(gè)功能模塊的配置文件,通信端口等參數(shù)后,將根據(jù)這些參數(shù)將功能模塊打包為一個(gè)虛擬機(jī)模板包。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟103可以包括如下子步驟:
子步驟S11,創(chuàng)建一個(gè)或多個(gè)初始虛擬機(jī);
子步驟S12,按照所述配置文件搭建所述一個(gè)或多個(gè)初始虛擬機(jī)的基礎(chǔ)環(huán)境;
子步驟S13,將所述功能模塊分別安裝至所述搭建基礎(chǔ)環(huán)境后的一個(gè)或多個(gè)初始虛擬機(jī)中;
子步驟S14,將安裝功能模塊后的一個(gè)或多個(gè)初始虛擬機(jī)打包為虛擬機(jī)模板包;
子步驟S15,根據(jù)所述功能模塊的通信方式在所述一個(gè)或多個(gè)虛擬機(jī)模板包添加相應(yīng)的通信參數(shù)。
按照在產(chǎn)品對象完成時(shí)所做的規(guī)劃,在虛擬機(jī)上進(jìn)行部署。首先搭建初始虛擬機(jī),然后在初始虛擬機(jī)上根據(jù)配置文件進(jìn)行基礎(chǔ)環(huán)境的搭建,并將功能模塊安裝至該初始虛擬機(jī)上,最后打包為虛擬機(jī)模板包。在本發(fā)明實(shí)施例中,對于虛擬機(jī)模板包還會添加通信參數(shù),使得能夠快速獲知該虛擬機(jī)模板包的通信方式,例如是否支持反向代理,這樣方便需要進(jìn)行虛擬機(jī)部署時(shí),操作人員可以快速獲得虛擬機(jī)模板包的功能模塊的通信方式。
需要說明的是,本發(fā)明實(shí)施例的虛擬機(jī)模板包的打包過程應(yīng)該在產(chǎn)品對象完成時(shí)及時(shí)進(jìn)行,以保證虛擬機(jī)模板包的絕對正確。這樣后續(xù)在需要部署虛擬機(jī)時(shí)能夠以此為準(zhǔn)。
在本發(fā)明實(shí)施例中,可以對于虛擬機(jī)模板包進(jìn)行可變參數(shù)的設(shè)置,可變參數(shù)的設(shè)置可以在虛擬機(jī)模板包的打包過程,也可以是在后續(xù)使用虛擬機(jī)模板包部署虛擬機(jī)的過程。
具體來說,可變參數(shù)是指會隨著搭建環(huán)境不同而不同的各類參數(shù),包括設(shè)備本身、網(wǎng)絡(luò)環(huán)境等必須同實(shí)際對應(yīng)的參數(shù)。
系統(tǒng)層面:CPU、內(nèi)存、硬盤、IP地址。
業(yè)務(wù)層面:通信參數(shù)配置,對于可以添加反向代理的虛擬機(jī)模板包,一律通過反向代理進(jìn)行消息轉(zhuǎn)發(fā);不可以的添加反向代理的虛擬機(jī)模板包,單獨(dú)對待,即這類虛擬機(jī)模板包實(shí)行獨(dú)立部署。
本發(fā)明實(shí)施例的虛擬機(jī)模板包中安裝有各個(gè)功能模塊,基于該功能模塊能夠?qū)崿F(xiàn)不同的功能。本發(fā)明實(shí)施例的虛擬機(jī)模板包中,不僅包含了基本操作系統(tǒng)和部分公用軟件(如基礎(chǔ)運(yùn)行環(huán)境,中間件等等),還包含需要使用的功能模塊。公知的是,在部署虛擬機(jī)時(shí)需要安裝的功能各不相同,而本發(fā)明實(shí)施例在部署虛擬機(jī)模板包時(shí),已經(jīng)安裝有系統(tǒng)的功能模塊,故減少虛擬機(jī)的部署時(shí)間。
步驟104,當(dāng)在物理機(jī)上部署虛擬機(jī)時(shí),采用所述一個(gè)或多個(gè)虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟104可以包括如下子步驟:
子步驟S21,在物理機(jī)上安裝邏輯卷管理器;
子步驟S22,在所述物理機(jī)上設(shè)置存儲空間,并基于所述存儲空間上創(chuàng)建邏輯卷;
子步驟S23,將所述一個(gè)或多個(gè)虛擬機(jī)模板包解壓于所述邏輯卷上;
子步驟S24,在所述邏輯卷上基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī);
子步驟S25,基于通信參數(shù)確定虛擬機(jī)是否支持反向代理,若是,則執(zhí)行子步驟S26;
子步驟S26,對支持反向代理的一個(gè)或多個(gè)虛擬機(jī)設(shè)置反向代理入口。
當(dāng)需要進(jìn)行虛擬機(jī)的部署時(shí),可以在服務(wù)器進(jìn)行xen的虛擬化。xen是一個(gè)虛擬化軟件,xen無需特殊硬件支持,就能達(dá)到高性能的虛擬化。
本發(fā)明實(shí)施例的虛擬機(jī)部署通過xen的命令進(jìn)行。例如,創(chuàng)建新的主機(jī):xl create主機(jī)配置文件。
具體地,首先在服務(wù)器上安裝LVM(邏輯卷管理器,Logical Volume Manager),使得服務(wù)器支持創(chuàng)建邏輯卷。LVM是對磁盤分區(qū)進(jìn)行管理的一種機(jī)制,LVM是建立在硬盤和分區(qū)之上的一個(gè)邏輯層,來提高磁盤分區(qū)管理的靈活性。通過LVM可以輕松管理服務(wù)器上的磁盤分區(qū)。
本發(fā)明實(shí)施例在服務(wù)器上準(zhǔn)備存儲空間,并在準(zhǔn)備好的存儲空間上創(chuàng)建一個(gè)或多個(gè)的邏輯卷,之后虛擬機(jī)模板包就可以解壓于新建的邏輯卷上,完成虛擬機(jī)的創(chuàng)建。其中,對于物理機(jī)上各個(gè)邏輯卷的虛擬機(jī)使用的存儲空間,可以參照圖2所示。
本發(fā)明實(shí)施例對于能夠通過反向代理轉(zhuǎn)發(fā)消息的虛擬機(jī),將在前端為這些虛擬機(jī)設(shè)置統(tǒng)一反向代理入口,如果有外部請求過來,那么將首先在反向代理入口接收到,然后再由反向代理入口來進(jìn)行外部請求的分發(fā)操作,以將外部請求轉(zhuǎn)發(fā)到目標(biāo)虛擬機(jī)上。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述的方法還可以包括如下步驟:
在反向代理入口處接收到針對所述一個(gè)或多個(gè)虛擬機(jī)的外部請求,所述外部請求包括目標(biāo)位置信息;
基于所述目標(biāo)位置信息將所述外部請求轉(zhuǎn)發(fā)至相應(yīng)的虛擬機(jī)中。
參照圖3所示,在創(chuàng)建虛擬機(jī)過程中,很可能將某些串行請求的虛擬機(jī)組合在一起,此時(shí)為了保證各個(gè)虛擬機(jī)之間互不干擾,必然會設(shè)成不同的端口號,以分別接收外部來的請求??梢岳斫猓@樣勢必造成虛擬機(jī)不能夠自由進(jìn)行組合。故在本發(fā)明實(shí)施例中為虛擬機(jī)在前端添加反向代理。
參照圖4所示,本發(fā)明實(shí)施例設(shè)置了反向代理接口進(jìn)行請求的分發(fā)操作,通過反向代理判斷將請求分發(fā)至何處。具體地,每一個(gè)虛擬機(jī)上都部署有反向代理,發(fā)向虛擬機(jī)的所有請求都以反向代理為入口,可以節(jié)約端口資源,更重要的是,對于后端寫死端口的服務(wù),可通過反向代理進(jìn)行一定程度分流。
當(dāng)在反向代理的入口接收到請求端發(fā)送的外部請求時(shí),根據(jù)外部請求中攜帶的域名、端口和IP地址等目標(biāo)位置信息,對應(yīng)外部請求分類,然后再分發(fā)到后端相應(yīng)的虛擬機(jī)中。通過反向代理設(shè)置,解決了虛擬機(jī)重組的問題,使得本發(fā)明實(shí)施例對于虛擬機(jī)的部署變得標(biāo)準(zhǔn)化、自由化。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述的方法還可以包括如下步驟:
在物理機(jī)上安裝監(jiān)控插件;
當(dāng)所述監(jiān)控插件監(jiān)測到在所述邏輯卷基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī)失敗時(shí),銷毀所述虛擬機(jī)。
本發(fā)明實(shí)施例可以在虛擬機(jī)的安裝部署過程中,安裝監(jiān)控插件。一但在虛擬機(jī)的安裝部署過程中出現(xiàn)宕機(jī),或者業(yè)務(wù)不明原因的中斷導(dǎo)致虛擬機(jī)安裝部署失敗時(shí),可以直接銷毀虛擬機(jī)重建一個(gè)。由于xen的虛機(jī)在建立時(shí),對于存儲設(shè)備沒有特殊要求,只要有就行,即可以使用原有邏輯卷重建,且數(shù)據(jù)不會丟失。
參照圖5,從物理層面(physical machine)上,虛擬機(jī)內(nèi)的功能模塊原則上保持一虛擬機(jī)一功能模塊,以保證功能模塊組合的靈活性。在虛擬機(jī)組合(virtual-1,virtual-2……virtual-n)中的各個(gè)虛擬機(jī)的功能模塊,都將通過反向代理來轉(zhuǎn)發(fā)消息,可以節(jié)約端口資源,當(dāng)接收到外部來的請求時(shí),將根據(jù)請求中攜帶的目標(biāo)位置信息轉(zhuǎn)發(fā)到對應(yīng)的虛擬機(jī)的功能模塊。
需要說明的是,反向代理的位置可以設(shè)置虛擬機(jī)上,也可以設(shè)置物理機(jī)上,具體的設(shè)置方式取決于對外接口設(shè)置。比方說,如果使用物理機(jī)提供對外的網(wǎng)絡(luò)訪問,那么可以將反向代理設(shè)置在物理機(jī)上,如果分成多個(gè)網(wǎng)絡(luò)接口,那么就可以將反向代理設(shè)置在虛擬機(jī)上,在實(shí)際應(yīng)用中根據(jù)需求設(shè)置即可,本發(fā)明實(shí)施例對此不加以限制。
本發(fā)明實(shí)施例對于在產(chǎn)品對象完成時(shí),對于產(chǎn)品對象的各個(gè)功能模塊進(jìn)行劃分,并針對各個(gè)功能模塊確定相應(yīng)的配置文件和通信方式,然后再基于功能模塊,以及功能模塊相應(yīng)的配置文件和通信方式創(chuàng)建虛擬機(jī)模板包,當(dāng)需要部署虛擬機(jī)時(shí),可以根據(jù)已創(chuàng)建的虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。本發(fā)明實(shí)施例中將各個(gè)功能模塊打包為獨(dú)立的虛擬機(jī)模板包,通過將各個(gè)功能模塊打包為虛擬機(jī)模板包使得各個(gè)功能模塊黑盒化,當(dāng)需要進(jìn)行虛擬機(jī)部署時(shí),選擇所需的虛擬機(jī)模板包進(jìn)行各個(gè)功能模塊的部署,這樣,可以規(guī)避因操作人員對系統(tǒng)不了解裝錯(cuò)插件的風(fēng)險(xiǎn)。本發(fā)明實(shí)施例的功能模塊間通信端口可調(diào),以保證功能模塊安裝后,系統(tǒng)可以正常運(yùn)行。
為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明實(shí)施例,以下對于本發(fā)明實(shí)施例的虛擬機(jī)模板包的打包進(jìn)行說明。
參照圖6,將系統(tǒng)的各個(gè)功能模塊打包的過程可以概述為:系統(tǒng)模塊化,操作系統(tǒng)虛擬化,分功能模塊進(jìn)行虛擬機(jī)的部署,確定功能模塊的通信方式(例如是否支持反向代理),最終將安裝到虛擬機(jī)的功能模塊打包,至此完成對于虛擬機(jī)模板包的制作過程。當(dāng)需要進(jìn)行虛擬機(jī)部署時(shí),相關(guān)人員可以利用這些虛擬機(jī)模板包來快速進(jìn)行部署。
本發(fā)明實(shí)施例中對于功能模塊是分層次打包,具體可以參照圖7所示:
系統(tǒng)層面打包:包含基礎(chǔ)環(huán)境的tar壓縮包。
業(yè)務(wù)層面打包:業(yè)務(wù)部署完成后,制作的tar壓縮包。
整個(gè)系統(tǒng)打包:根據(jù)實(shí)際現(xiàn)場環(huán)境,在業(yè)務(wù)層面打包的基礎(chǔ)上,修改相應(yīng)參數(shù),使壓縮包具有直接移植的屬性。
本發(fā)明實(shí)施例這種分層次的打包方式,使得虛擬機(jī)的功能模塊從開發(fā)到部署,各個(gè)階段的相關(guān)人員都能找到適應(yīng)于自身使用的模板包,加速環(huán)境搭建、簡化搭建開發(fā)前置環(huán)境的步驟,同時(shí)保證操作的可復(fù)制性,無論誰,都可在簡單的培訓(xùn)后參與實(shí)際虛擬機(jī)部署工作。
需要說明的是,對于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。
參照圖8,示出了本發(fā)明的一種虛擬機(jī)的部署裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
功能模塊獲取模塊201,用于獲取產(chǎn)品對象一個(gè)或多個(gè)功能模塊;
配置文件確定模塊202,用于分別確定所述一個(gè)或多個(gè)功能模塊配置文件和通信方式;
虛擬機(jī)模板包創(chuàng)建模塊203,用于采用所述一個(gè)或多個(gè)功能模塊,以及所述功能模塊相應(yīng)配置文件和通信方式創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)模板包;
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述虛擬機(jī)模板包創(chuàng)建模塊203可以包括如下子模塊:
初始虛擬機(jī)創(chuàng)建子模塊,用于創(chuàng)建一個(gè)或多個(gè)初始虛擬機(jī);
基礎(chǔ)環(huán)境搭建子模塊,用于按照所述配置文件搭建所述一個(gè)或多個(gè)初始虛擬機(jī)的基礎(chǔ)環(huán)境;
功能模塊安裝子模塊,用于將所述功能模塊分別安裝至所述搭建基礎(chǔ)環(huán)境后的一個(gè)或多個(gè)初始虛擬機(jī)中;
初始虛擬機(jī)打包子模塊,用于將安裝功能模塊后的一個(gè)或多個(gè)初始虛擬機(jī)打包為虛擬機(jī)模板包;
通信參數(shù)添加子模塊,用于根據(jù)所述功能模塊的通信方式在所述一個(gè)或多個(gè)虛擬機(jī)模板包添加相應(yīng)的通信參數(shù)。
虛擬機(jī)部署模塊204,用于當(dāng)在物理機(jī)上部署虛擬機(jī)時(shí),采用所述一個(gè)或多個(gè)虛擬機(jī)模板包進(jìn)行虛擬機(jī)的部署。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述虛擬機(jī)部署模塊204可以包括如下子模塊:
邏輯卷管理器安裝子模塊,用于在物理機(jī)上安裝邏輯卷管理器;
邏輯卷創(chuàng)建子模塊,用于在所述物理機(jī)上設(shè)置存儲空間,并基于所述存儲空間上創(chuàng)建邏輯卷;
虛擬機(jī)模板包解壓子模塊,用于將所述一個(gè)或多個(gè)虛擬機(jī)模板包解壓于所述邏輯卷上;
虛擬機(jī)創(chuàng)建子模塊,用于在所述邏輯卷上基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī);
反向代理確定子模塊,用于基于通信參數(shù)確定虛擬機(jī)是否支持反向代理;若支持反向代理,則調(diào)用反向代理入口設(shè)置子模塊;
反向代理入口設(shè)置子模塊,用于對支持反向代理的一個(gè)或多個(gè)虛擬機(jī)設(shè)置反向代理入口。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述裝置還可以包括如下模塊:
監(jiān)控插件安裝模塊,用于在物理機(jī)上安裝監(jiān)控插件;
虛擬機(jī)銷毀模塊,用于當(dāng)所述監(jiān)控插件監(jiān)測到在所述邏輯卷基于解壓的虛擬機(jī)模板創(chuàng)建虛擬機(jī)失敗時(shí),銷毀所述虛擬機(jī)。
在本發(fā)明的一種優(yōu)選實(shí)施例中,所述裝置還可以包括如下模塊:
外部請求接收模塊,用于在反向代理入口處接收到針對所述一個(gè)或多個(gè)虛擬機(jī)的外部請求,所述外部請求包括目標(biāo)位置信息;
外部請求轉(zhuǎn)發(fā)模塊,用于基于所述目標(biāo)位置信息將所述外部請求轉(zhuǎn)發(fā)至相應(yīng)的虛擬機(jī)中。
對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種虛擬機(jī)的部署方法和一種虛擬機(jī)的部署裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。