本發明涉及云計算,更具體地,涉及一種私有云環境下的資源調度與負載均衡方法及系統。
背景技術:
1、私有云環境提供了一種靈活、安全的云計算模式,專為特定組織或企業設計。它允許組織在專用的基礎設施上部署服務,同時保持對數據和操作的完全控制。然而,隨著業務需求的增長和工作負載的動態變化,私有云環境中的資源調度和負載均衡問題變得日益復雜。
2、現有私有云環境面臨的主要問題包括:
3、資源利用率不均:不同虛擬機和應用可能有不同的資源需求和使用模式,導致資源利用率不均衡,有些資源可能被過度使用,而有些則被閑置。
4、擴展性問題:隨著業務的擴展,私有云需要能夠快速調整資源分配以適應新的工作負載,但傳統的資源調度方法往往難以快速響應這種變化。
5、多租戶環境的挑戰:在多租戶的私有云環境中,需要確保資源分配公平性,防止某些租戶占用過多資源而影響其他租戶的性能。
6、成本效益:企業需要在保證服務質量的同時,盡可能降低資源成本。資源調度及負載均衡策略需要在性能和成本之間找到平衡點。
7、動態工作負載:私有云中的工作負載往往是動態變化的,這要求負載均衡策略能夠實時響應工作負載的變化,動態調整資源分配。
8、如何解決私有云環境中的資源調度和負載均衡問題對于保持高效、穩定和經濟的云服務至關重要。隨著技術的發展,需要新的解決方案來應對這些挑戰,提高資源利用率,降低成本,并確保服務質量。
技術實現思路
1、本發明的目的是提出一種私有云環境下的資源調度與負載均衡方法及系統,通過解耦和分解大規模資源分配問題,利用并行計算技術,提高資源分配的速度和質量,為私有云的資源調度和負載均衡問題提供了一種有效的解決方案。
2、為實現上述目的,本發明提出了一種私有云環境下的資源調度與負載均衡方法,包括:
3、s1:將私有云的資源分配及負載均衡問題表示為一個優化問題,定義資源分配矩陣和目標函數,以及資源和需求的約束條件;
4、s2:引入資源分配矩陣的副本變量以解耦資源和需求約束,并添加新約束以保持原始變量和副本變量之間的一致性;
5、s3:構建增廣拉格朗日函數,將資源和需求的約束轉換為目標函數中的懲罰項;
6、s4:應用交替方向乘子法,交替優化原始變量和副本變量,同時更新對偶變量和懲罰參數;
7、s5:將原始的大規模優化問題分解為可以并行處理的多個小規模子問題,每個子問題對應一個資源或需求的分配;
8、s6:并行求解多個子問題;
9、s7:根據交替方向乘子法迭代更新增廣拉格朗日函數中的對偶變量和懲罰參數,直至收斂;
10、s8:輸出最優解,提取并輸出最優的資源分配方案,并基于最優的資源分配方案進行資源調度和負載均衡。
11、可選地,步驟s1具體包括:
12、定義資源分配矩陣x,x是一個n×m?的矩陣,其中n是資源的數量,m是需求的數量,x中的元素xij表示資源i分配給需求j的量;
13、制定目標函數:
14、;
15、確定約束條件:
16、;
17、;
18、其中,是資源i的效用函數,?是x?的第i?行,表示資源i?的分配向量;是需求j的效用函數,?是x?的第j?列,表示需求j?的分配向量;x表示資源分配的可行域或可行解空間,為一個包含所有滿足約束條件的資源分配矩陣或向量的集合,用于限制優化變量?x?的取值范圍,確保所求解的分配方案是可行的;在目標函數中,x?是優化的目標,通過調整?x?的值來最小化目標函數的值;ri和dj分別是資源i和需求j的約束矩陣,ri和dj分別是資源i的容量和需求j的需求量。
19、可選地,步驟s2具體包括:
20、引入資源分配矩陣x的副本變量z,z用于解耦資源和需求約束;
21、添加新約束x?z=0以保持x和z相等。
22、可選地,在步驟s3中構建的增廣拉格朗日函數為:
23、
24、其中,lρ為增廣拉格朗日函數,ρ是懲罰參數,α、β和λ分別是資源i、需求j和x=z約束的拉格朗日乘子,αi為與資源i?的約束條件?相關的對偶變量,βj為與需求j?的約束條件相關的對偶變量,λ為與x=z?約束相關的對偶變量;表示z?矩陣的第j?列,即需求j?的分配向量,表示需求j?的效用函數,用于評估需求j?的分配方案的質量;表示向量的l2?范數平方,表示矩陣的弗羅貝尼烏斯范數平方。
25、可選地,步驟s4具體包括:
26、應用交替方向乘子法,交替優化x和z,每次迭代中,先固定z?優化x,然后固定x優化z,并更新對偶變量αi、βj和λ,更新公式為:
27、;
28、其中,k為迭代次數;:=表示賦值;x(k+1)為第k+1?次迭代的資源分配矩陣x;z(k+1)為第k+1?次迭代的資源分配矩陣z;αi(k+1)為第k+1?次迭代的資源i?的對偶變量的更新值;αi(k)為第k次迭代的資源i?的對偶變量;βj(k)為第k?次迭代的需求j?的對偶變量;βj(k+1)為第k+1?次迭代的需求j?的對偶變量的更新值;λ(k)為第k?次迭代的x=z?約束的對偶變量;λ(k+1)為第k+1?次迭代的x=z?約束的對偶變量的更新值;α(k)為第k?次迭代中資源約束的對偶變量向量,β(k)?為第k?次迭代中需求約束的對偶變量向量;表示第k+1?次迭代的資源i的分配向量;表示第k+1?次迭代的需求j?的分配向量。
29、可選地,在步驟s5中,將優化問題分解為每個資源和每個需求的子問題,計算公式為:
30、;
31、其中,表示第k+1?次迭代的資源i?的分配向量;表示第k+1?次迭代的需求j?的分配向量;表示?的可行域;?表示在第k?次迭代中,資源i?的分配向量的當前值;表示在第k?次迭代中,與x=z?約束相關的對偶變量的當前值,特指資源i?的部分;表示在第k?次迭代中,與x=z?約束相關的對偶變量的當前值,特指需求j?的部分。
32、可選地,步驟s6具體包括:
33、在多個cpu核心上并行執行求解器,每個核心解決一個或多個子問題;
34、各個子問題求解完成后,收集每個計算單元的結果,并合并它們以形成全局最優解。
35、可選地,步驟s7具體包括:
36、基于交替方向乘子法中的更新公式,通過迭代更新對偶變量和懲罰參數,算法能夠逐步滿足所有約束條件,并在優化過程中找到可行的解,在每次迭代中,更新交替方向乘子法中的對偶變量和懲罰參數,直到滿足收斂條件;
37、懲罰參數ρ?通常在每次迭代中保持不變,若發現約束違反持續存在,則增加ρ?的值,以改善算法的收斂性能。
38、可選地,步驟s8具體包括:
39、在交替方向乘子法收斂后,輸出最優的資源分配矩陣x,該矩陣描述了資源和需求之間的最優分配關系;
40、基于獲得的最優的資源分配方案在私有云計算資源中執行對應的資源調度和負載均衡策略。
41、本發明還提供了一種私有云環境下的資源調度與負載均衡系統,包括:
42、優化問題構建模塊,用于將私有云的資源分配及負載均衡問題表示為一個優化問題,定義資源分配矩陣和目標函數,以及資源和需求的約束條件,
43、解耦和約束復制模塊,用于引入資源分配矩陣的副本變量以解耦資源和需求約束,并添加新約束以保持原始變量和副本變量之間的一致性;
44、增廣拉格朗日構建模塊,用于構建增廣拉格朗日函數,將資源和需求的約束轉換為目標函數中的懲罰項;
45、交替優化模塊,用于應用交替方向乘子法,交替優化原始變量和副本變量,同時更新對偶變量和懲罰參數;
46、優化問題分解模塊,用于將原始的大規模優化問題分解為可以并行處理的多個小規模子問題,每個子問題對應一個資源或需求的分配;
47、并行求解模塊,用于并行求解多個子問題;
48、迭代更新模塊,用于根據交替方向乘子法迭代更新增廣拉格朗日函數中的對偶變量和懲罰參數,直至收斂;
49、輸出模塊,用于輸出最優解,提取并輸出最優的資源分配方案,并基于最優的資源分配方案進行資源調度和負載均衡。
50、本發明的有益效果在于:
51、本發明通過“解耦和分解”方法,顯著提升了資源分配的速度,使得在大規模云系統中快速響應資源分配成為可能,從而提高了私有云服務的響應速度和用戶體驗。本發明能夠處理涉及大量變量的優化問題,有效解決了傳統私有云資源調度處理大規模問題時遇到的可擴展性危機,使得資源分配方案能夠適應私有云環境的快速擴展和多樣化。在提高資源分配速度的同時,本發明還能夠保持或接近最優的資源分配質量,確保了資源調度和負載均衡的高效性和有效性。本發明不依賴于特定問題或工作負載的假設,提供了一種通用的資源分配解決方案,適用于多種不同的資源分配場景,增強了算法的適用性和靈活性。利用現代計算系統的多核特性,本發明實現了真正的并行計算,提高了求解效率,尤其是在多核處理器上,顯著減少了計算時間。相比于需要大量手動調整和特定領域知識的方法,本發明提供了一種更為自動化的解決方案,減少了手動干預的需求,降低了操作復雜性。本發明能夠適應不同的工作負載類型和變化,不依賴于資源可互換性等粒度假設,增強了算法的魯棒性,確保了在各種條件下的穩定性和可靠性。通過更精細的資源分配,本發明有助于提高資源利用率,減少資源浪費,從而降低運營成本,提高經濟效益。本發明能夠快速適應云環境的動態變化,如需求變化、工作負載波動等,保持服務的連續性和質量,提高了系統的靈活性和適應性。
52、本發明的系統具有其它的特性和優點,這些特性和優點從并入本文中的附圖和隨后的具體實施方式中將是顯而易見的,或者將在并入本文中的附圖和隨后的具體實施方式中進行詳細陳述,這些附圖和具體實施方式共同用于解釋本發明的特定原理。