本發(fā)明涉及云計算技術(shù)領(lǐng)域,特別是涉及一種虛擬機建立方法與裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)和云計算的不斷發(fā)展,網(wǎng)絡(luò)用戶量越來越多,服務(wù)器處理的業(yè)務(wù)范圍越來越廣,服務(wù)器壓力也越來越大。隨著虛擬化概念的提出,以及虛擬化技術(shù)的迅速發(fā)展,該問題得到了有效的緩解。虛擬化技術(shù)可以創(chuàng)建針對不同業(yè)務(wù)的虛擬機,在同一臺物理機上可以創(chuàng)建多個虛擬機,可以更充分地利用物理資源,最大限度的發(fā)揮物理服務(wù)器的性能。通過創(chuàng)建大量的虛擬機,并進行集群管理,對外提供服務(wù),大大增加了后臺服務(wù)器處理請求的能力。
現(xiàn)在越來越多的網(wǎng)絡(luò)服務(wù)廠商開始使用虛擬化平臺對外提供服務(wù),當(dāng)今市面上的虛擬化公司也層出不窮,例如,VMWare、XenServer等。不同的虛擬化平臺可以依據(jù)該平臺的相關(guān)規(guī)則創(chuàng)建虛擬機,也即不同虛擬化平臺創(chuàng)建的虛擬化類型不同。
不同的虛擬化平臺有其各自的優(yōu)勢,許多公司為了充分利用不同虛擬化類型的優(yōu)勢,在其后臺會同時使用多種虛擬化類型的虛擬機?,F(xiàn)有技術(shù)中,通過虛擬化公司各自提供的管理平臺只能針對其自身虛擬化類型的虛擬機進行管理,無法對其他虛擬化類型的虛擬機進行管理,也即無法在同一臺物理機上建立不同虛擬化類型的虛擬機。
可見,如何在同一平臺上實現(xiàn)對不同虛擬化類型的虛擬機的管理,是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的是提供一種虛擬機建立方法與裝置,可以實現(xiàn)對不同虛擬化類型的虛擬機的管理。
為解決上述技術(shù)問題,本發(fā)明實施例提供一種虛擬機建立方法,包括:
S10:接收用戶選擇的虛擬化類型;
S11:調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類;所述實現(xiàn)類用于實現(xiàn)虛擬機的功能;
S12:根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類;所述第一實現(xiàn)類為所述至少一個實現(xiàn)類中的任意一個實現(xiàn)類;
S13:將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較;
S14:若一致,則依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機。
可選的,還包括:
若不一致,則根據(jù)Java反射機制獲取第二實現(xiàn)類的虛擬化類型;所述第二實現(xiàn)類為所述至少一個實現(xiàn)類中除所述第一實現(xiàn)類之外的任意一個實現(xiàn)類;并將所述第二實現(xiàn)類作為目標實現(xiàn)類,返回S13。
可選的,在所述S14中:
根據(jù)所述實現(xiàn)類對應(yīng)的實例,調(diào)用所述實例建立所述虛擬化類型對應(yīng)的所述虛擬機。
可選的,在所述S14還包括:
建立虛擬化列表,所述虛擬化列表用于存儲所述虛擬機的特定信息。
本發(fā)明實施例還提供一種虛擬機建立裝置,包括接收單元、獲取單元、比較單元和建立單元:
所述接收單元,用于接收用戶選擇的虛擬化類型;
所述獲取單元,用于調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類;所述實現(xiàn)類用于實現(xiàn)虛擬機的功能;
所述獲取單元,還用于根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類;所述第一實現(xiàn)類為所述至少一個實現(xiàn)類中的任意一個實現(xiàn)類;
所述比較單元,用于將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較;
若一致則觸發(fā)所述建立單元,所述建立單元,用于依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機。
可選的,若不一致則觸發(fā)所述獲取單元,所述獲取單元,用于根據(jù)Java反射機制獲取第二實現(xiàn)類的虛擬化類型;所述第二實現(xiàn)類為所述至少一個實現(xiàn)類中除所述第一實現(xiàn)類之外的任意一個實現(xiàn)類;并將所述第二實現(xiàn)類作為目標實現(xiàn)類,觸發(fā)所述比較單元。
可選的,所述建立單元具體用于根據(jù)所述實現(xiàn)類對應(yīng)的實例,調(diào)用所述實例建立所述虛擬化類型對應(yīng)的所述虛擬機。
可選的,所述建立單元還用于建立虛擬化列表,所述虛擬化列表用于存儲所述虛擬機的特定信息。
由上述技術(shù)方案可以看出,在服務(wù)器后臺中存儲有不同虛擬化平臺所對應(yīng)的實現(xiàn)類,服務(wù)器在接收到用戶選擇的虛擬化類型后,可以通過調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類;從所述至少一個實現(xiàn)類中的任意選取其中一個實現(xiàn)類即第一實現(xiàn)類,根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類;將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較;若一致,則可以依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機。可見,通過上述技術(shù)方案可以根據(jù)用戶的需求在同一平臺上建立不同虛擬化類型的虛擬機,實現(xiàn)對不同虛擬化類型的虛擬機的管理。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種虛擬機建立方法的流程圖;
圖2為本發(fā)明實施例提供的一種虛擬機建立裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實施例,都屬于本發(fā)明保護范圍。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
接下來,詳細介紹本發(fā)明實施例所提供的一種虛擬機建立方法。圖1為本發(fā)明實施例提供的一種虛擬機建立方法的流程圖,該方法包括:
S10:接收用戶選擇的虛擬化類型。
在建立虛擬機時,利用不同的虛擬化平臺,建立的虛擬機的虛擬化類型不同,也即一個虛擬化平臺有其對應(yīng)的虛擬化類型。在本發(fā)明實施例中,用戶可以在服務(wù)器的虛擬機建立界面上,選擇所需建立的虛擬機的虛擬化類型。
S11:調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類。
為了實現(xiàn)不同虛擬化類型的虛擬機的建立,可以針對不同的虛擬化平臺設(shè)置相對應(yīng)的適配器接口,在服務(wù)器后臺中可以存儲該適配器接口的相關(guān)信息即適配器接口信息,服務(wù)器的計算機系統(tǒng)依據(jù)該適配器接口信息便可以獲取到適配器接口對應(yīng)的實現(xiàn)類,其中,實現(xiàn)類可以用于實現(xiàn)虛擬機的功能。
不同的虛擬化平臺有其對應(yīng)的實現(xiàn)類,在本發(fā)明實施例中,獲取的實現(xiàn)類的個數(shù)可以有一個或多個,例如,服務(wù)器后臺存儲的適配器接口信息涉及的虛擬化平臺有3個,則獲取的實現(xiàn)類對應(yīng)的也有3個。
S12:根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類。
其中,第一實現(xiàn)類可以是所述至少一個實現(xiàn)類中的任意一個實現(xiàn)類。
依據(jù)該適配器接口信息,可以獲取到適配器接口所對應(yīng)的所有實現(xiàn)類。但是哪種實現(xiàn)類是用戶所需建立的虛擬機所對應(yīng)的實現(xiàn)類,需要做進一步的判斷??紤]到服務(wù)器接收到的是用戶選擇的虛擬化類型,故此,在選擇合適的實現(xiàn)類時,可以依據(jù)實現(xiàn)類的虛擬化類型進行選擇。
在本發(fā)明實施例中,可以從至少一個實現(xiàn)類中任意選定一個實現(xiàn)類作為目標實現(xiàn)類,根據(jù)Java反射機制獲取目標實現(xiàn)類的虛擬化類型。
S13:將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較。
S14:若一致,則依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機。
如果獲取的該實現(xiàn)類的虛擬化類型與用戶選擇的虛擬化類型相同,則說明該實現(xiàn)類即為用戶建立虛擬機所需的實現(xiàn)類。
在具體操作中,可以根據(jù)所述實現(xiàn)類對應(yīng)的實例,調(diào)用所述實例建立所述虛擬化類型對應(yīng)的虛擬機。
對于實現(xiàn)類的個數(shù)為多個的情況,選取其中的任意一個作為第一實現(xiàn)類,該第一實現(xiàn)類的虛擬化類型可能并非是用戶所需的實現(xiàn)類,即該實現(xiàn)類的虛擬化類型與用戶選擇的虛擬化類型不相同,針對這種情況,具體的,可以根據(jù)Java反射機制獲取第二實現(xiàn)類的虛擬化類型;所述第二實現(xiàn)類為所述至少一個實現(xiàn)類中除所述第一實現(xiàn)類之外的任意一個實現(xiàn)類;并將所述第二實現(xiàn)類作為目標實現(xiàn)類,返回S13。
通過上述步驟,依次對獲取的實現(xiàn)類進行判斷,直到找到符合用戶需求的實現(xiàn)類。
在建立好虛擬機后,為了方便用戶了解和調(diào)用已經(jīng)建立好的虛擬機,可以建立虛擬化列表,所述虛擬化列表用于存儲所述虛擬機的特定信息。每建立一個虛擬機,則可以在該虛擬化列表中添加該虛擬機的特定信息。
其中,特定信息可以用于標識虛擬機的身份,即可以依據(jù)該特定信息對不同的虛擬機進行區(qū)分。
特定信息可以是虛擬機的虛擬化類型,或者是虛擬機所屬平臺的信息,又或者是虛擬機的名稱,該名稱可以是在建立虛擬機的過程中由服務(wù)器系統(tǒng)自動生成的名稱,也可以是人工進行的命名。在本發(fā)明實施例中,對于特定信息的具體形式不做限定。
由上述技術(shù)方案可以看出,在服務(wù)器后臺中存儲有不同虛擬化平臺所對應(yīng)的實現(xiàn)類,服務(wù)器在接收到用戶選擇的虛擬化類型后,可以通過調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類;從所述至少一個實現(xiàn)類中的任意選取其中一個實現(xiàn)類即第一實現(xiàn)類,根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類;將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較;若一致,則可以依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機??梢姡ㄟ^上述技術(shù)方案可以根據(jù)用戶的需求在同一平臺上建立不同虛擬化類型的虛擬機,實現(xiàn)對不同虛擬化類型的虛擬機的管理。
圖2為本發(fā)明實施例提供的一種虛擬機建立裝置的結(jié)構(gòu)示意圖,所述裝置包括接收單元21、獲取單元22、比較單元23和建立單元24:
所述接收單元21,用于接收用戶選擇的虛擬化類型。
所述獲取單元22,用于調(diào)用適配器接口信息,獲取適配器接口對應(yīng)的至少一個實現(xiàn)類;所述實現(xiàn)類用于實現(xiàn)虛擬機的功能。
所述獲取單元22,還用于根據(jù)Java反射機制獲取第一實現(xiàn)類的虛擬化類型;并將所述第一實現(xiàn)類作為目標實現(xiàn)類;所述第一實現(xiàn)類為所述至少一個實現(xiàn)類中的任意一個實現(xiàn)類。
所述比較單元23,用于將獲取的所述目標實現(xiàn)類的虛擬化類型與所述用戶選擇的虛擬化類型進行比較。
若一致則觸發(fā)所述建立單元24,所述建立單元24,用于依據(jù)所述目標實現(xiàn)類建立所述虛擬化類型對應(yīng)的虛擬機。
可選的,若不一致則觸發(fā)所述獲取單元,所述獲取單元,用于根據(jù)Java反射機制獲取第二實現(xiàn)類的虛擬化類型;所述第二實現(xiàn)類為所述至少一個實現(xiàn)類中除所述第一實現(xiàn)類之外的任意一個實現(xiàn)類;并將所述第二實現(xiàn)類作為目標實現(xiàn)類,觸發(fā)所述比較單元。
可選的,所述建立單元具體用于根據(jù)所述實現(xiàn)類對應(yīng)的實例,調(diào)用所述實例建立所述虛擬化類型對應(yīng)的所述虛擬機。
可選的,所述建立單元還用于建立虛擬化列表,所述虛擬化列表用于存儲所述虛擬機的特定信息。
圖2所對應(yīng)實施例中特征的說明可以參見圖1所對應(yīng)實施例的相關(guān)說明,這里不再一一贅述。
以上對本發(fā)明所提供的一種虛擬機建立方法與裝置進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。