一種用于云系統的資源調度方法
【技術領域】
[0001] 本發明涉及計算機技術領域,具體說涉及一種用于云系統的資源調度方法。
【背景技術】
[0002] 云計算就是通過互聯網將分布在不同數據中心的計算,存儲和網絡等基礎設施, 以及其上的開發平臺、軟件和應用等以服務的形式提供給用戶。由于云計算具有按需收費, 節約成本,充分利用資源等特點,使得全球進入了云計算的時代。
[0003] 云計算應用平臺的資源分布廣泛并且種類多樣,通常云計算應用平臺會根據用戶 的使用需求將資源合理的分配給用戶,使得整個云計算應用平臺負載均衡。但是在正常使 用云計算的過程中,使用者的使用需求往往是實時變化的。隨著使用云計算的用戶不斷增 多,面對海量的用戶的需求的實時變化,云計算應用平臺的負載會出現不均衡的狀態,從而 造成資源浪費。并且負載不均衡也會導致局部負載過載的情況發生。
[0004] 為了解決負載不均衡的問題,需要根據云計算平臺的實際使用情況對資源進行調 度。目前云計算平臺的資源調度問題,通常是通過監測負載均衡日志和檢測響應時間來實 現的。其資源管理算法考慮的情況相對簡單,而且存在較多的負載,性能,服務質量等方面 的問題。另外,資源調度會產生迀移代價,不合理的資源調度方法不僅不能很好的解決負載 不均衡的問題而且會生成過高的迀移代價。
[0005]以在開源的軟件基礎結構(ElasticUtilityComputingArchitecturefor LinkingYourProgramsToUsefulSystems,Eucalyptus)上實現的云平臺為例。 Eucalyptus平臺采用三種獨立的調度算法去解決,分別是:
[0006] (1)greedy算法:優點是簡單,直接但是容易過載。
[0007] (2)roundrobin算法:優點是負載均衡了但是能源消耗高。
[0008] (3)p〇Wersave算法:優點是降低了能量消耗但是資源利用率低。
[0009] 針對負載均衡、資源利用率高、迀移代價小等標準,不能在一種調度算法中同時滿 足這些目標。
[0010] 因此,針對現有云計算平臺的資源調度方法存在的問題,需要一種新的資源調度 方法以達到在充分利用資源,實現負載均衡的基礎上盡可能的減小迀移代價的目的。
【發明內容】
[0011] 針對現有云計算平臺的資源調度方法存在的問題,本發明提供了一種用于云系統 的資源調度方法,所述方法包括以下步驟:
[0012] 種群初始化步驟,獲取云系統的資源調度的備選方案,利用所述備選方案構造初 始種群,其中,所述備選方案包含節點控制器與虛擬機的分配關系,每個所述備選方案對應 所述初始種群中的一個個體;
[0013] 構造適應度函數步驟,針對所述資源調度的具體需求構造總適應度函數;
[0014] 種群篩選步驟,利用所述總適應度函數對所述初始種群中的個體進行篩選從而獲 取適應個體;
[0015] 資源調度步驟,根據所述適應個體對應的所述備選方案對所述虛擬機以及所述節 點控制器進行資源調度。
[0016] 在一實施例中,所述種群初始化步驟包含建模步驟,對參與所述資源調度的資源 對象進行建模,所述資源對象包括所述節點控制器、所述虛擬機、所述云系統的負載狀況以 及所述資源調度的迀移代價。
[0017] 在一實施例中,在所述建模步驟中,從所述云系統中選擇特定的一個集群進行分 析以獲取分析結果,根據所述分析結果進行建模。
[0018] 在一實施例中,所述種群初始化步驟包含編碼步驟,對所述備選方案進行編碼。
[0019] 在一實施例中,在所述編碼步驟中,利用數組進行編碼,從而生成表示所述虛擬機 與所述節點控制器的分配關系的關系數組。
[0020] 在一實施例中,在所述種群初始化步驟中,采用輪詢算法獲取所述備選方案。
[0021] 在一實施例中,在所述種群篩選步驟中,利用輪盤賭的方法進行篩選。
[0022] 在一實施例中,在所述構造適應度函數步驟中,根據所述云系統的負載狀況以及 所述資源調度的迀移代價構造所述總適應度函數,所述總適應度函數與負載均衡以及所述 迀移代價相關。
[0023] 在一實施例中,所述構造適應度函數步驟包含以下步驟:
[0024] 針對所述負載情況以及所述迀移代價分別構造負載均衡適應度函數以及迀移代 價適應度函數;
[0025] 通過所述負載均衡適應度函數以及所述迀移代價適應度函數的權值的組合獲取 所述總適應度函數。
[0026] 在一實施例中,所述種群篩選步驟還包含單代篩選步驟、個體交叉步驟和/或個 體變異步驟,其中:
[0027] 在所述單代篩選步驟中利用所述總適應度函數對所述初始種群中的個體進行篩 選以生成第一種群;
[0028] 對所述第一種群執行所述個體交叉步驟和/或所述個體變異步驟以生成第二種 群;
[0029] 對所述第二種群再次執行所述單代篩選步驟以更新所述第一種群,并對更新后的 所述第一種群再次執行所述個體交叉步驟和/或所述個體變異步驟;
[0030] 重復執行特定次數的所述單代篩選步驟,最終獲取的更新后的所述第一種群中的 個體為所述適應個體;
[0031] 在所述個體交叉步驟中基于遺傳學算法按照特定的交叉概率隨機選取所述第一 種群中的兩個個體進行交叉以產生兩個新個體從而豐富所述第一種群進而生成所述第二 種群;
[0032] 在所述種群初始化步驟中基于遺傳學算法按照特定的變異概率隨機選取所述第 一種群中一個個體,對所述個體對應的備選方案在可取范圍內進行隨機變化從而產生新個 體以豐富所述第一種群進而生成所述第二種群。
[0033] 與現有技術相比,本發明的資源調度方法可以在實現負載均衡結果良好的同時實 現較小的迀移代價。
[0034] 本發明的其它特征或優點將在隨后的說明書中闡述。并且,本發明的部分特征或 優點將通過說明書而變得顯而易見,或者通過實施本發明而被了解。本發明的目的和部分 優點可通過在說明書、權利要求書以及附圖中所特別指出的步驟來實現或獲得。
【附圖說明】
[0035] 附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本發明的實 施例共同用于解釋本發明,并不構成對本發明的限制。在附圖中:
[0036] 圖1是根據本發明一實施例執行流程圖;
[0037] 圖2是根據本發明一實施例個體編碼示意圖;
[0038] 圖3是根據本發明一實施例資源調度結果仿真圖。
【具體實施方式】
[0039] 以下將結合附圖及實施例來詳細說明本發明的實施方式,借此本發明的實施人員 可以充分理解本發明如何應用技術手段來解決技術問題,并達成技術效果的實現過程并依 據上述實現過程具體實施本發明。需要說明的是,只要不構成沖突,本發明中的各個實施 例以及各實施例中的各個特征可以相互結合,所形成的技術方案均在本發明的保護范圍之 內。
[0040] 云計算就是通過互聯網將分布在不同數據中心的計算,存儲和網絡等基礎設施, 以及其上的開發平臺、軟件和應用等以服務的形式提供給用戶。在正常使用云計算的過程 中,面對海量的用戶的需求的實時變化,云計算應用平臺的