本發明涉及云計算,尤其是基于多目標優化的大規模hadoop集群虛擬機放置方法。
背景技術:
1、隨著云計算的快速發展,虛擬化技術已成為云數據中心的核心支撐。通過接入云計算服務,用戶可按需訪問和利用資源(如cpu/gpu、內存和存儲等)。這種按需服務的方式顯著提高了云數據中心的資源利用率,同時也降低了其運營成本。因此,越來越多的用戶將其計算任務上傳至云端,以應對日益增長的數據處理需求。
2、作為一種經典的分布式框架,hadoop其優秀的擴展性與靈活性,已被廣泛應用于云環境中。作為hadoop的核心技術之一,分布式文件系統(hadoop?distributedfilesystem,hdfs),將文件切分為多個數據塊并將其存儲在多個數據節點上,進而保證數據的高可用性和容錯性。作為hadoop的另一核心技術,mapreduce將計算任務調度至數據塊所在的節點上處理以最大化數據本地性,進而降低數據傳輸延遲。然而,隨著數據量和集群規模的不斷增長,如何高效優化虛擬機放置以提升集群資源利用率和任務處理效率,已成為hadoop集群性能優化的核心問題。虛擬機放置策略直接影響hadoop集群能耗、資源利用率和文件訪問延遲等關鍵性能指標。因此,如何在大規模動態的hadoop集群中高效地管理資源,已成為一個開放性的研究熱點。
3、傳統的虛擬機放置大多采用基于遺傳算法的策略,其在面對小規模集群時表現出良好的性能,但在面對大規模集群和多變負載時暴露出了局限性,無法很好適應動態變化的資源需求。為解決該問題,一些研究提出多目標優化算法,如多目標粒子群優化(multi-objectiveparticle?swarmoptimization,mopso)算法與多目標模擬退火(multi-objective?simulatedannealing,mosa)算法。具體而言,mopso算法通過模擬群體行為來進行全局搜索,在復雜環境下易陷入局部最優且對超參數敏感,因此策略優化過程難以控制。mosa算法通過模擬物理退火過程中的能量變化來尋找全局最優解,能夠避免陷入局部最優,但收斂速度較慢,且在處理多目標優化問題時會造成過度的系統開銷。此外,上述算法無法有效處理虛擬機放置問題中多維異構資源。為了解決上述重要挑戰,本發明了提出了新型的一種面向大規模hadoop集群虛擬機放置的可變長度雙染色體多目標優化(multi-objective?optimization?method?with?variable?length?double?chromosome,mo-vld)方法。該將能耗、資源利用率與文件訪問延遲視為多優化目標。特別地,所提出的系統模型充分考慮了資源需求的動態變化,以確保hadoop集群在高負載情況下仍能保持良好性能。
技術實現思路
1、本發明提出基于多目標優化的大規模hadoop集群虛擬機放置方法,將能耗、資源利用率與文件訪問延遲視為多優化目標,方法使用的系統模型充分考慮了資源需求的動態變化,以確保hadoop集群在高負載情況下仍能保持良好性能。
2、本發明采用以下技術方案。
3、基于多目標優化的大規模hadoop集群虛擬機放置方法,所述放置方法用于組建hadoop集群,其hadoop集群的系統模型包含多個機架,每個機架內配置多個物理機pms(physics?machines,pms),每個物理機上運行著多個虛擬機vms(virtual?machines,vms);各機架之間通過核心交換機互連,機架內部的pms通過交換機互連;hadoop集群通過交換機進行數據塊傳輸與文件副本復制,從而實現跨機架的數據同步與負載均衡;hadoop集群的系統模型的優化目標為最小化hadoop集群的能耗、資源浪費和文件訪問延遲的加權之和,優化目標采用的方法使用由虛擬機染色體和塊染色體組成的可變長度的染色體結構,該染色體結構用于表述放置虛擬機和數據塊副本的位置,染色體結構使用交叉與變異操作,以增強hadoop集群虛擬機放置過程資源配置的解空間探索的多樣性。
4、hadoop集群的系統模型中,設在hadoop集群中有m臺物理機,記為pmi(i=1,2,...m),其資源配置記為四元組分別表示該pm的cpu、內存、磁盤i/o和網絡帶寬;每個pmi運行不同數量的vms,其共享pmi的資源;每個vmj(j=1,2,...n)的資源使用情況記為四元組虛擬機所分配到的資源受限于物理機的資源配置,其表示為所述hadoop集群的系統模型中,虛擬機所分配資源和虛擬化軟件開銷之和不得超過物理機的資源配置,以避免物理機的資源過度消耗,以公式定義為
5、其中,∑pmiupmi表示pmi上所有虛擬機的資源消耗之和;表示pmi上虛擬化軟件的資源消耗。
6、hadoop集群的系統模型中,vmj的資源消耗不能超過其所分配到的資源,以公式定義為
7、
8、在hadoop集群的系統模型中,存儲資源模型具體為:設文件被切分為多個數據塊bk(k=1,2,...,k),以使其副本被存儲在不同虛擬機上,即文件表示為塊的連接,以公式定義為
9、
10、文件的大小fsizefu與數據塊的大小fbsizefu決定數據塊的數量,其定義為
11、為了提高數據可用性與系統容錯性,每個數據塊在不同虛擬機上存儲多個副本rk;文件fu的每個數據塊有多個副本,其定義為
12、
13、其中,frfu表示文件fu的副本數量。
14、pmi不能同時存儲同一數據塊的多個副本以避免存儲資源浪費,該約束表示為
15、
16、在hadoop集群的系統模型中,能耗模型具體為:
17、設pmi的能耗受cpu、網絡帶寬和磁盤i/o利用率影響,則pmi的總能耗以公式定義為
18、
19、其中,和分別表示cpu、網絡帶寬和磁盤i/o的能耗;
20、具體地,cpu能耗定義以公式表述為
21、
22、其中,αi和βi分別表示pmi低cpu負載和高cpu負載水平系數;prh=pmax-pidle表示物理機的最高與最低功率之差;λi表示pmi的負載閾值,當負載超過該閾值時,會從低負載cpu能耗模型切換至高負載cpu能耗模型;
23、網絡帶寬能耗定義為
24、
25、其中,表示網絡帶寬利用率,γi表示網絡帶寬利用率對能耗的影響系數;磁盤i/o能耗定義為
26、
27、其中,表示磁盤i/o利用率,δi表示磁盤i/o利用率對能耗的影響系數。
28、在hadoop集群的系統模型中,物理機為多個虛擬機提供計算、存儲和網絡資源;hadoop集群運行過程中,低效或不合理的資源利用造成的資源浪費,以資源利用模型中的資源浪費相關公式表述為
29、
30、其中,表示pmi的資源利用率,包括cpu、磁盤帶寬和網絡帶寬利用率;∈為一個正系數,用于避免標準差為零時出現不合理的極端情況;表示pmi上各項資源利用率的標準差,以衡量資源的不平衡性,以公式定義為
31、其中,
32、表示各資源利用率的均值,其定義為
33、
34、因此,pmi上所有資源的利用率之和定義為
35、
36、設在hadoop集群的系統模型中,文件數據在物理機之間的傳輸需要經過多個交換機和物理鏈路,系統模型利用交換機延遲與物理鏈路延遲來評估虛擬機之間的文件訪問延遲,則系統模型的文件訪問延遲模型具體為:
37、設交換機延遲tswitch為數據塊通過交換機所需的處理時間,則文件訪問延遲為虛擬機所在物理機pmdn到目標虛擬機所在物理機pmvm之間所有交換機延遲和物理鏈路延遲之和,其以公式表其定義為
38、
39、其中,n表示傳輸路徑中的交換機數量,表示第k條物理鏈路的延遲;當有i個數據塊時,所有數據塊的平均傳輸延遲lavg表示為
40、
41、對hadoop集群的系統模型的優化目標為np難的多目標優化問題,對多目標優化問題求解時,該優化問題的形式化定義為
42、min(w1z1+w2z2+w3z3)s.t.(1),(2),(6)(17)
43、其中,w1、w2和w3分別代表能耗、資源浪費和文件訪問延遲三項優化目標的權重;虛擬機染色體cvm為二維數組,其定義為
44、
45、其中,每列的第一行表示虛擬機被放置的物理機,每列的第二行表示虛擬機的類型,記為vmtypej∈{1,2,3,4,5}。
46、塊染色體cblock為一維數組,表示數據塊副本的放置位置,其定義為
47、cblock={vm1,?vm2,?...?,?vmn}?(19)
48、其中,每個元素表示數據塊副本被放置的虛擬機;
49、在初始化階段,cvm通過輪轉方式將虛擬機放置到物理機,并隨機分配虛擬機類型;cblock通過輪轉和隨機方式生成,確保數據塊副本的分布符合hadoop集群對副本數量的要求,以初始化階段的過程保證解空間中的多樣性,使得在對多目標優化問題求解的mo-vld方法在運行階段能夠充分探索不同的策略;
50、染色體結構在進化過程中,使用兩階段的交叉與變異操作以生成新的解并優化現有解集;兩個階段分別為:
51、第一階段:對虛擬機染色體進行單點交叉;隨機選擇切割點p,將不同父代虛擬機染色體的片段進行交換以生成子代虛擬機染色體;該過程以公式表示為
52、第二階段:對塊染色體進行單點交叉;隨機選擇切割點q,將不同父代塊染色體的片段進行交換以生成子代塊染色體;該過程以公式表示為
53、
54、所述染色體結構的變異操作,是指通過隨機改變染色體中的基因來增加解的多樣性;
55、染色體結構中,在虛擬機與塊染色體上的變異操作,分別定義其具體定義如下:對于虛擬機染色體,在虛擬機突變階段,用以增強種群的多樣性和優化能力的策略具體為:首先,虛擬機的擴展和收縮突變通過調整虛擬機的數量來適應動態的資源需求;其中,虛擬機數量先以設定為的概率增加或減少,為解決方案提供更大的資源配置靈活性;接著,虛擬機替換突變通過遍歷虛擬機染色體的各個元素位置,并以設定為0.5的概率隨機修改其值;平均而言,該突變操作將導致一半的虛擬機分配和模板類型發生變化;遍歷虛擬機染色體的方法包括分配和模板;
56、對于塊染色體,引入了塊替換操作:通過改變數據塊副本的位置來優化其存儲位置,進而減少數據傳輸延遲。具體地,當一個數據塊副本位于某個虛擬機時,塊替換操作將以設定為0.5的概率將該副本重新分配至其他虛擬機。
57、對多目標優化問題進行求解時,將目標空間劃分為多個區域,每個區域對應一個參考點,進行參考點關聯與歸一化,參考點為預定義的目標向量,表示不同目標權重下的潛在解;具體為:在每一代種群的進化過程中,當前解集將被投影到預先生成的參考點上,并根據二者之間的距離進行關聯,然后,最近參考點將吸引解向其方向移動,進而優先選擇與稀疏參考點相關聯的解;以基于參考點的選擇算子維持種群的多樣性,并保證解的均勻分布,從而避免解集中在某些目標區域而忽略其他維度的優化;
58、對多目標優化問題進行求解時,為了能夠在相同尺度上對不同優化目標進行比較,引入歸一化操作,具體為:將個體在能耗、資源利用率和文件訪問延遲上的性能指標轉化為同一量級,從而消除不同優化目標之間的量級差異。該過程定義為
59、
60、其中,ri表示第i個方案的加權目標值;r1,i、r2,i和r3,i分別表示能耗、資源浪費和文件訪問延遲;n表示帕累托解集的總數。
61、mo-vld方法通過結合參考點關聯機制與歸一化操作,實現多維目標的全局優化。
62、mo-vld方法包括以下步驟;
63、步驟一、染色體的構建,在初始化整個種群時,為集群的每個個體(染色體)按照既定的流程生成其決策變量組合;根據系統配置隨機確定虛擬機數量vmnumber,確保其不少于物理機數量,然后使用二重循環和輪轉(roundrobin)分配策略來生成數據塊(block)的分配方案,并在適當的位置加入隨機打亂過程,從而保證解的多樣性,具體為:通過generateroundrobin2dshuffle函數,先利用generateroundrobin1d在一維上以輪轉方式生成連續值列表,然后將該列表按指定分塊大小(即復制因子)切分成多個子片段,對每個子片段內部進行隨機打亂,再對所有子片段列表進行二次打亂,最終形成一個二維結構的分配模式。此后,通過serialize2d函數,將該二維結構的列表序列化為一維列表,以便后續處理和存儲;
64、步驟二、為虛擬機vm和虛擬機類型vmtype生成對應的序列,采用與步驟一相同的輪轉策略(generateroundrobin1d)為vmnumber個虛擬機分配基于物理機數量范圍的虛擬機id列表,以及基于可用類型數量(此處為4)的虛擬機類型列表,然后對這兩個列表分別進行隨機打亂,得到初始狀態下分散而多樣的虛擬機映射與類型分配方案;
65、步驟三、在完成對block、vm、vmtype三者的構建和處理后,將其整合存入一個chromosome字典,即代表該個體的完整染色體結構,再通過調用removeemptyvms函數對生成的染色體進行清理(例如移除未使用的虛擬機條目),確保染色體結構的有效性;最終,將該染色體加入到種群的解列表中。同時,對群體中每個解初始化支配關系和擁擠距離等多目標優化相關信息,相應算法以偽代碼表述為:
66、
67、相應算法流程具體為:
68、首先,初始最大時隙t、最大迭代次數x和種群大小n進行初始化(第1行),并從谷歌集群的數據集中讀取文件列表(第2行),以模擬真實云數據中心的負載需求;
69、在每一個時隙內,首先初始化系統環境,包括物理機和虛擬機的配置信息;在con_system方法中,首先初始化了文件大小列表和文件訪問率列表;接著,根據文件的訪問率和預定義的資源使用率,計算每個文件塊的資源負載;具體而言,cpu需求通過將文件的訪問率乘以預定義的cpu使用率得出;io需求則在cpu需求的基礎上乘以一個隨機數,以模擬io資源使用的波動性;網絡需求同樣通過將cpu需求乘以一個隨機數,模擬網絡資源使用的波動性;對于每個文件塊及其副本,將計算得到的cpu、io和網絡資源需求添加到block_load_list中(第4行);在每輪迭代過程中,利用輪轉和隨機化方法生成并初始化種群,以保證解集的多樣性;初始化過程中用物理界負載計算方法,系統遍歷每個虛擬機,根據其分配到的物理機索引,將虛擬機的資源需求累加到相應的物理機上,從而得出每臺物理機的總資源使用情況;為確保資源分配的合理性和系統的穩定性,系統實施的資源約束檢查具體為:如果任何資源(cpu、io或網絡)在虛擬機或物理機上的使用量超過了其配置容量,則對應的虛擬機放置方法的解決方案將被視為不可行(第7行);接著,對虛擬機和塊染色體進行單點交叉,并執行不同的變異操作和塊替換操作增加種群多樣性;虛擬機增長和收縮方法分別用于調整虛擬機的數量,以探索不同的虛擬機配置,尋求更優的資源分配方案;虛擬機增長方法通過增加虛擬機數量,提供更多的資源分配選項,從而可能降低單個虛擬機的負載;而虛擬機收縮方法則通過減少虛擬機數量,簡化資源管理,但需要將被刪除虛擬機上的數據塊重新分配到其他虛擬機上,以避免資源超載;在執行虛擬機收縮操作時,系統首先釋放被刪除虛擬機所占用的cpu、io和網絡資源;隨后,系統將被刪除虛擬機上的數據塊重新分配到其他虛擬機上,通過這一過程影響接收虛擬機的cpu、io和網絡資源使用情況,系統需確保在重新分配后,新的虛擬機不會因資源過載而影響整體性能,保持資源使用在可接受的范圍內;進行變異操作后,解決方案的資源分配發生變化;為了確保新的解決方案仍然滿足資源約束,并能夠準確評估其適應度,系統基于當前解決方案,系統重新計算每個虛擬機和物理機的cpu、io和網絡資源使用量,方法包括遍歷所有文件塊,累加每個塊分配到的虛擬機的資源需求,然后根據虛擬機分配到的物理機,累加物理機的資源使用量(第8~9行),隨后,評估后代的適應度并與原始種群進行合并,并進行資源約束檢查,系統遍歷所有物理機,比較其cpu、io和網絡資源的使用量是否超過了配置的容量,接著遍歷所有虛擬機,比較其cpu、io和網絡資源的使用量是否超過了配置的容量,以使系統確保每個變異后的解決方案在資源分配上是合理的,而且在整體性能和資源利用率上達到了優化目標(第10~11行);
70、為了引導種群向帕累托最優前沿靠近,引入預先生成的參考點,將當前解集投影到這些參考點上,進行非支配排序和擁擠距離的計算,進而根據兩者關聯度來選擇下一代種群(第12~13行)。為保證方法的收斂性和全局搜索能力,在初始化階段會保存初始種群的適應度,并通過多次迭代提升種群質量。接著,從合并種群中選擇最優解作為下一代種群,并保存當前的帕累托前沿(第14~15行)。最后,通過歸一化保證不同優化目標之間的平衡性并選取最佳的虛擬機放置策略(第17~18行)。
71、所述虛擬機放置方法的使用方法包括以下步驟;
72、步驟s1、首先在大規模hadoop集群環境中部署虛擬機資源管理模塊,配置物理機和虛擬機的初始資源信息,初始資源信息包括cpu、內存、磁盤i/o和網絡帶寬;
73、步驟s2、mo-vld方法采用的算法實時監控集群中的資源需求變化和任務負載,并加載相應的文件列表或數據任務,確保對集群實際情況的準確掌握,為后續優化奠定基礎;
74、步驟s3、資源管理中,虛擬機放置方法根據當前的任務負載和集群資源使用情況,動態調整虛擬機的分配和數據塊的放置位置。通過智能化的調整,使集群在不同負載下最大化資源利用效率并降低能耗;
75、步驟s4、在優化過程中,虛擬機放置方法持續分析集群的運行效果,并根據能耗、資源利用率和數據訪問延遲等關鍵指標進行策略反饋和自適應優化,確保集群系統始終處于最佳運行狀態。
76、本發明提出基于多目標優化的大規模hadoop集群虛擬機放置方法,使用新型的一種面向大規模hadoop集群虛擬機放置的可變長度雙染色體多目標優化(multi-objectiveoptimization?method?with?variable?length?double?chromosome,mo-vld)方法,該方法將能耗、資源利用率與文件訪問延遲視為多優化目標,特別地,所提出方法采用的系統模型充分考慮了資源需求的動態變化,可確保hadoop集群在高負載情況下仍能保持良好性能。
77、本發明通過結合可變長度雙染色體和多目標優化算法,實現了對大規模hadoop集群中虛擬機資源的高效分配,顯著提升了資源利用率并降低了整體能耗,具備較強的動態適應性,能夠根據實際數據負載和資源需求的變化自動調整分配策略,確保集群的穩定高效運行。發明采用非支配排序遺傳算法(nsga-iii),在資源利用、能耗和訪問延遲之間實現高效平衡,具備出色的全局優化能力,且具有良好的靈活性與可擴展性,適用于各種規模的hadoop集群,從小型集群到大型云數據中心,均能提供穩定的虛擬機放置優化方案。主要應用場景包括大規模數據處理環境、云計算平臺的虛擬化資源管理、以及需要動態資源調度的復雜計算場景,如邊緣計算和云邊協同計算等。