OpenStack云計算管理平臺建立虛擬機實例的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云計算領(lǐng)域,尤其涉及OpenStack云計算管理平臺建立虛擬機實例的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著云計算技術(shù)的日益發(fā)展,多種云計算平臺應(yīng)運而生,而OpenStack作為一種云計算平臺,為云計算基礎(chǔ)設(shè)施服務(wù)提供解決方案,OpenStack以其全開源、易擴展的特點,贏得業(yè)界越來越多的關(guān)注。
[0003]現(xiàn)有技術(shù)OpenStack云計算管理平臺為客戶端選取目標(biāo)主機的公式比較單一:只是比較主機剩余內(nèi)存空間的大小,選取剩余內(nèi)存空間最大的主機作為目標(biāo)主機,這種單一的公式無法滿足現(xiàn)在客戶端越來越復(fù)雜的使用需求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例的目的在于提供一種OpenStack云計算管理平臺建立虛擬機實例的方法和系統(tǒng),以解決現(xiàn)有技術(shù)目標(biāo)主機選擇公式單一、固定的問題。
[0005]第一方面,本發(fā)明實施例提供了一種OpenStack云計算管理平臺建立虛擬機實例的方法,所述方法包括:
[0006]a、接收客戶端發(fā)送的建立虛擬機實例的請求信息,所述請求信息包括:用于建立虛擬機實例的主機的過濾條件、用于計算適合建立虛擬機實例的主機權(quán)重的公式和建立虛擬機實例的數(shù)量;
[0007]b、從數(shù)據(jù)庫選擇啟動了建立虛擬機所述服務(wù)的主機,并將所述主機列為第一主機列表;
[0008]C、根據(jù)所述用于建立虛擬機實例的主機的過濾條件對所述第一主機列表中的主機進行過濾,獲取第二主機列表;
[0009]d、根據(jù)所述用于計算適合建立虛擬機實例的主機權(quán)重的公式對所述第二主機列表中的主機進行權(quán)重計算,并根據(jù)計算得到的權(quán)重對所述主機進行排序,獲取第三主機列表;
[0010]e、從所述第三主機列表中選擇權(quán)重最高的主機,將所述權(quán)重最高的主機確定為建立虛擬機實例的目標(biāo)主機,并通過所述目標(biāo)主機為客戶端建立虛擬機實例。
[0011]第二方面,本發(fā)明實施例提供了一種OpenStack云計算管理平臺建立虛擬機實例的系統(tǒng),所述系統(tǒng)包括:
[0012]接收單元,用于接收客戶端發(fā)送的建立虛擬機實例的請求信息,所述請求信息包括:用于建立虛擬機實例的主機的過濾條件、用于計算適合建立虛擬機實例的主機權(quán)重的公式和建立虛擬機實例的數(shù)量;
[0013]第一主機列表獲取單元,用于在所述接收單元接收請求信息之后,從數(shù)據(jù)庫選擇啟動了建立虛擬機所述服務(wù)的主機,并將所述主機列為第一主機列表;
[0014]第二主機列表獲取單元,用于根據(jù)所述用于建立虛擬機實例的主機的過濾條件對所述第一主機列表獲取單元獲取的第一主機列表中的主機進行過濾,獲取第二主機列表;
[0015]第三主機列表獲取單元,用于根據(jù)所述用于計算適合建立虛擬機實例的主機權(quán)重的公式對所述第二主機列表獲取單元獲取的第二主機列表中的主機進行權(quán)重計算,并根據(jù)計算得到的權(quán)重對所述主機進行排序,獲取第三主機列表;
[0016]建立單元,用于從所述第三主機列表獲取單元獲取的第三主機列表中選擇權(quán)重最高的主機,將所述權(quán)重最高的主機確定為建立虛擬機實例的目標(biāo)主機,并通過所述目標(biāo)主機為客戶端建立虛擬機實例。
[0017]本發(fā)明實施例,OpenStack云計算管理平臺首先接收客戶端發(fā)送的請求信息,根據(jù)請求信息中的過濾條件過濾主機,并根據(jù)請求信息中的權(quán)重公式為過濾后的主機進行稱重,從稱重后的主機中選擇權(quán)重最高的主機為客戶端建立虛擬機實例,本發(fā)明實施例實現(xiàn)了一種根據(jù)客戶端的請求動態(tài)建立虛擬機實例的方法,使得OpenStack云計算管理平臺可以根據(jù)客戶端的請求動態(tài)選擇最優(yōu)的計算節(jié)點(即所述主機)來創(chuàng)建虛擬機實例,有效的提升OpenStack云計算管理平臺的擴展性。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1為本發(fā)明實施例提供的OpenStack云計算管理平臺建立虛擬機實例方法的流程圖;
[0020]圖2為本發(fā)明提供的實施例一的步驟S103的具體流程圖;
[0021]圖3為本發(fā)明實施例提供的OpenStack云計算管理平臺建立虛擬機實例系統(tǒng)的結(jié)構(gòu)圖;
[0022]圖4為本發(fā)明提供的實施例三的第三主機列表生成單元304的具體結(jié)構(gòu)圖。
【具體實施方式】
[0023]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]本發(fā)明實施例,OpenStack云計算管理平臺首先接收客戶端發(fā)送的請求信息,根據(jù)請求信息中的過濾條件過濾主機,并根據(jù)請求信息中的權(quán)重公式為過濾后的主機進行稱重,并從稱重后的主機中選擇權(quán)重最高的主機為客戶端建立虛擬機實例,實現(xiàn)了一種根據(jù)客戶端的請求動態(tài)建立虛擬機實例的方法,使得OpenStack云計算管理平臺可以根據(jù)客戶端的請求動態(tài)選擇最優(yōu)的計算節(jié)點(即所述主機)來創(chuàng)建虛擬機實例,有效的提升OpenStack云計算管理平臺的擴展性。
[0025]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
[0026]實施例一
[0027]如圖1所示為本發(fā)明實施例提供的OpenStack云計算管理平臺建立虛擬機實例方法的流程圖,所述方法包括以下步驟:
[0028]在步驟SlOl中,接收客戶端發(fā)送的建立虛擬機實例的請求信息,所述請求信息包括:用于建立虛擬機實例的主機的過濾條件、用于計算適合建立虛擬機實例的主機權(quán)重的公式和建立虛擬機實例的數(shù)量。
[0029]在本發(fā)明實施例中,OpenStack云計算管理平臺中的控制都是通過Nova模塊來實現(xiàn)的。OpenStack云計算管理平臺首先接收與其連接的客戶端發(fā)送的請求信息,在該請求信息中包括后續(xù)步驟中建立虛擬機實例需要使用的信息,包括但不限于:
[0030]1、用于建立虛擬機實例的主機的過濾條件。在OpenStack云計算管理平臺連接有多個主機,由于客戶端對建立虛擬機實例的需求不同,所以需要對OpenStack云計算平臺所管理的主機進行過濾操作,不同的過濾條件在OpenStack云計算管理平臺中已經(jīng)保存,客戶端請求信息中會指定所應(yīng)用的具體過濾條件,以使OpenStack云計算管理平臺根據(jù)指定的過濾條件為客戶端選擇合適的主機。具體過濾條件可以根據(jù)用戶的具體需要來實現(xiàn),在此不做限定。
[0031]2、用于計算適合建立虛擬機實例的主機的權(quán)重的公式。在請求信息中還包括計算權(quán)重的公式,客戶端根據(jù)虛擬機實例的使用需要,可以設(shè)置不同的權(quán)重公式,如:需要計算速度快的虛擬機實例,則權(quán)重公式可以為“主機的可用CPU數(shù)量多的權(quán)重大”。
[0032]3、建立虛擬機實例的數(shù)量。
[0033]在步驟S102中,從數(shù)據(jù)庫選擇啟動了建立虛擬機實例所述服務(wù)的主機,并將所述主機列為第一主機列表。
[0034]在本發(fā)明實施例中,OpenStack云計算平臺從數(shù)據(jù)庫中選擇啟動了建立虛擬機實例所需服務(wù)的主機,并將開啟了虛擬機實例功能的主機列為第一主機列表,如:開啟了“建立虛擬機實例功能的主機為1、2、3、4、5,則第一主機列表為:host_list_tmpl=[l,2,3,4,5] ο
[0035]在步驟S103中,根據(jù)所述用于建立虛擬機實例的主機的過濾條件對所述第一主機列表中的主機進行過濾,獲取第二主機列表。
[0036]在本發(fā)明實施例中,OpenStack云計算管理平臺在接收到客戶端發(fā)送的請求消息之后,首先根據(jù)請求消息中的“用于建立虛擬機實例的主機的過濾條件”對所有的主機進行過濾處理,經(jīng)過過濾的主機將記錄為第二主機列表,如:過濾后的主機編號為1、3、5,則第二主機列表為:host_list_tmp2=[l, 3, 5]。
[0037]在步驟S104中,根據(jù)所述用于計算適合建立虛擬機實例的主機權(quán)重的公式對所述第二主機列表中的主機進行權(quán)重計算,并根據(jù)計算得到的權(quán)重對所述主機進行排序,獲取第二主機列表。
[0038]在本發(fā)明實施例中,OpenStack云計算管理平臺在