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