楊中旭 楊曉 李訓潮 劉俊峰


摘 要: 近年來,隨著5G、人工智能等新興技術的發展,算力為千行百業的數字化轉型注入強心劑。社會各行各業對算力需求的增長日益明顯,運營商數據中心的服務器為保證高可用性,數據中心的高能耗儼然成為制約數據中心發展的一大阻礙,“節能增效”是數據中心的剛需。由于大量資源碎片造成的資源利用率低下和能源浪費問題。為了解決這個問題,提出了一種基于線性整數規劃結合裝箱的多目標優化算法。旨在通過優化虛擬機放置,進行虛擬機的二次調度,提高資源利用率,騰挪出更多的空閑主機,執行物理機下電等綠色節能操作,以達到“節能增效”目的。
關鍵詞: 數據中心 資源碎片 虛擬機放置 線性整數規劃 多目標尋優算法
中圖分類號: TP302文獻標識碼: A文章編號: 1679-3567(2024)03-0106-04
Research on Energy-Saving Strategies for Optimizing the Placement of Virtual Machines Based on Data Centers
YANG Zhongxu YANG Xiao LI Xunchao LIU Junfeng
Shandong Co., Ltd., China Mobile Communications Group, Jinan, Shandong Province, 250001 China
Abstract: In recent years, with the development of 5G, artificial intelligence and other emerging technologies, computing power has injected a boost into the digital transformation of thousands of industries. The demand of computing power from all walks of life is increasingly obvious. In order to ensure the high availability of servers in operators data centers, the high energy consumption of data centers has become a bottleneck restricting the devel‐opment of data centers, and "energy coservation and efficiency improvement" is the rigid need of data centers. The main goal of this paper is to address the problems of low resource utilization and energy waste caused by large amounts of resource fragmentation in data centers. To solve this problem, this paper proposes a multi-objective optimization algorithm based on the combination of linear integer programming and binning, aiming to carry out the secondary scheduling of virtual machines by optimizing their placement, improve resource utilization, and free up more idle hosts to perform green energy-saving operations such as powering off physical machines, so as to achieve the purpose of "energy conservation and efficiency improvement".
Key Words: Data center; Resource fragmentation; Virtual machine placement; Linear integer programming; Multitarget optimization algorithm
在過去的10年里,我國的數據中心行業被廣泛認為是高能耗行業。數據顯示,我國數據中心整體用電量以每年超過10%的速度遞增,其耗電量在2020年突破2 000億kWh,約占全社會用電量的2.71%[1]。大量的服務器、存儲設備、交換機以及千億級別的芯片在運行過程中消耗大量能源。單個物理機在開機狀態下,如果沒有負載或者只有低負載,其能耗通常只達到物理機滿負載峰值能耗的60%~70%。因此,關閉空閑的物理機是改善數據中心高能耗問題的一種方法[2]。此外,數據中心能效低的另一個關鍵因素是存在大量的資源碎片。資源碎片指的是虛擬機在創建和放置過程中沒有考慮最優的位置,導致無法充分利用資源容量,從而降低了資源的使用效率。
當前在數據中心日常運維過程中常用算法是裝箱優化算法(FF/FFD、BF/BFD、NF/NFD等),該算法無法通過全局化視角進行調度,無法確保全局最優解,調度效果不理想。此外調度計劃是通過人工確定熱遷移目標和路徑進行制訂,無法進行多批次的復雜調度方案規劃,風險較大。除此之外,業界較為成熟的算法是基于改進的GA、MIP和TSA算法,該類型優化算法容易陷入局部最優。因此,提出了一種基于線性整數規劃結合裝箱的多目標尋優的算法。通過將線性規劃和裝箱算法相結合,以全局的視角求解物理機虛擬資源利用率的最大值的虛擬機放置方式,能夠有效避免陷入局部最優解。
1.1 虛擬機放置問題定義
虛擬機放置問題實際上是一個二維裝箱問題,該問題被證明是NP-hard問題。在數據中心中,假設有m臺物理機和n臺虛擬機,虛擬機放置問題的目標是在滿足一定約束條件的前提下,通過合理的調度策略將這n臺虛擬機放置在m臺物理機中。這個問題的復雜性源于需要考慮多個因素,如物理機的資源容量、虛擬機的資源需求、性能約束以及親和特性等。具體問題定義如下。
在數據中心中部署n臺虛擬機,每個虛擬機vmi(i= 1,2,3,…,n)具有屬性{rcpui,rrami,rbandwidthi},其中rcpui表示虛擬機所需的CPU核心數量,rrami表示虛擬機所需的內存大小,rbandwidthi表示虛擬機所需的帶寬大小。同時,數據中心中有m個物理機,每個物理機pmj(j=1,2,3,…,m)具有屬性{cpuj,ramj,bandwidthj},其中cpuj、ramj和bandwidthj分別表示物理機pmj的CPU資源剩余量、內存資源剩余量和帶寬資源剩余量。

式(1)中:1≤i≤n,1≤j≤m,i,j∈N;xij是一個二元變量,表示虛擬機(i)是否放置在物理機(j)上。式(2)(3)(4)中:xij*ri表示虛擬機(i)在物理機(j)上的資源消耗;cpuj/ramj/bandwidthj表示物理機(j)的資源上限。
1.2 碎片模型定義
根據實際需求,可以預設一個虛機規格標準以及碎片主機數閾值。當資源池中存在物理機的所剩資源(不包括空閑主機)大于所設置標準的虛機規格時,即可認為當前資源池存在資源碎片。當資源池內滿足上述條件的物理機數占資源池所有物理機數的比例超過碎片主機閾值時,系統會自動上報“建議進行資源池虛機資源整理”提示,提醒用戶進行資源池的資源整合,降低資源池的碎片化率。
例1 資源池有12臺物理機,除空閑主機之外有7臺主機剩余的vCPU超過4U(預設的虛機標準vCPU規格),碎片主機占比58%,高于預設的碎片主機占比閾值(10%),需要進行資源池虛機資源整理。
例2 資源池同樣有12臺物理機,除空閑主機之外有4臺主機剩余的RAM超過32 G(預設的虛機標準RAM規格),碎片主機占比30%,高于預設的碎片主機占比閾值(10%),需要進行資源池虛機資源整理。
由上述例子可見,只要有一類資源不符合預設參數條件,就會提醒用戶進行資源池的資源整合。
虛擬機放置問題是一個離散型問題,無法直接使用一般的數學方法進行求解[3]。通常情況下,采用啟發式算法來解決虛擬機放置問題,如人工蜂群算法[4]和蟻群算法[5]等。這類算法在求解此類復雜問題具有一定優勢,但是也存在收斂過快或者局部最優解這些不足。
線性整數規劃結合裝箱的多目標尋優模型依靠多個獨立的步驟來計算最優VM-PM映射,具體見圖1。m對應于數據中心的物理機數量和n對應于數據中心托管的虛擬機數。編號為j的PM,記為pmj,(1≤j≤m)。對于每個物理機pmj(j=1,2,3,…,m)具有屬性{cpuj,ramj,bandwidthj},其中cpuj、ramj和bandwidthj分別表示物理機pmj的CPU資源剩余量、內存資源剩余量和帶寬資源剩余量。對每個虛擬機vmi(i=1,2,3,…,n)都有屬性{rcpui,rrami,rbandwidthi},其中rcpui、rrami、rbandwidthi分別表示第i臺虛擬機所需CPU核心數量、內存大小和帶寬大小。xij是一個二元變量,表示第i臺虛擬機是否放置在第j臺物理機上。二元變量φj,φj=1表示pmj上至少有一臺虛擬機,φj=0則表示pmj為空閑物理機。二元變量λi,λi=1表示vmi進行過遷移,λi=0則表示vmi保持原有物理地址不變。
利用前面的符號,在圖1中給出具體的算法步驟。步驟1,以資源利用率最大化(δmax)為優化目標,在解空間中搜索每臺主機資源利用率最大的一組解,并將該組解作為下一步的輸入繼續尋優。步驟2,以遷移成本最小化(θmin)為優化目標,在前步驟的解空間中進一步搜索遷移次數最小的一組解,并將該組解作為下一步的輸入繼續尋優。步驟3,結合物理機柜位置,以物理機柜均勻散列部署(ωmin)為目標,在前步驟的解空間中搜索活躍物理機的物理機柜位置最為均勻散列的一組解,并將該組解作為下一步的輸入繼續尋優,最終在最后的解空間中篩選出符合約束條件的最終解。
對于相同數量的VM請求,可能存在多個VM-PM映射方案。步驟2選擇了其中一個資源利用率最大化δmax的解。圖1中的式(10)保證了當前的VM-PM映射方案必須比步驟1計算的δmax更大;式(11)定義了ωmin變量,保證ωmin變量是基于pm的物理位置散列均勻。
3.1 實驗環境
為了驗證本文所提算法的有效性,使用Python語言開發了一個虛擬機放置二次調度平臺作為實驗仿真平臺,該平臺包含以下功能。

(1)虛擬機資源數據的讀取和處理:平臺可以讀取和處理虛擬機的資源數據,包括CPU、內存、存儲等信息。(2)物理機資源數據的讀取和處理:平臺可以讀取和處理物理機的資源數據,包括CPU、內存、存儲等信息。(3)虛擬機熱遷移批次生成及任務下發:平臺可以生成虛擬機熱遷移的批次,并將任務下發給相應的物理機進行執行。(4)虛擬機物理位置統計:平臺可以統計虛擬機在物理機上的位置信息,包括虛擬機所在的物理機編號、機架號、機柜號等。(5)虛擬機遷移結束過程中各性能指標統計:平臺可以在虛擬機遷移結束后,統計各種性能指標,如遷移時間、網絡延遲、資源利用率等。實驗機環境配置參數(CPU/Intel Core i7-9750H@ 2.60 HZ、內存/16 GB、硬盤/500 GB SSD、操作系統/64位Windows10、Python版本/3.7、PyCharm版本/2023.2)。
待優化的目標資源池環境物理機總數為193臺,虛擬機總數為421臺。預設參數閾值虛擬機標準vCPU規格為8U,標準內存RAM規格為32 G,預設的碎片主機占比閾值為10%。初始化目標資源池中物理機剩余vCPU超過10%時,主動觸發資源池虛擬機遷移優化。環境預設閾值參數(CPU/8U、內存/32 GB、帶寬/ 50 GB/s、碎片主機占比/10%)。
實驗通過對冗余空閑物理機的數量統計,來對比資源優化調度前后的差異。并通過估算的方式(服務器節省費用/臺×年=電費270 W×24 h×365 d/1 000×0.8元/度+機房冷卻費135 W×24 h×365 d/1 000×0.8元/度+硬件維護費30%×1 167元/CPU×52),來預估對空閑主機進行下電操作后,資源池電力成本的節省費用,將此作為衡量“節能增效”效果的重要衡量指標。
3.2 實驗結果分析
在遷移結果進行量化分析,資源池的空閑主機數在算法優化調度后有明顯增加。下面針對優化遷移前后的CPU和內存兩個維度的資源進行詳細分析。通過算法進行虛機騰挪后資源池中新增26%的物理機空閑,資源池能更好地支撐網元擴容或者是物理機下電等綠色節能操作。根據節點成本計算公式(服務器節省費用/臺×年=電費270 W×24 h×365 d/1 000×0.8元/度+機房冷卻費135 W×24 h×365 d/1 000×0.8元/度+硬件維護費30%×1 167元/CPU×52),當前調度算法執行后環境中所有空閑主機執行下電后,將節省電力成本費用62.87萬元。
本文使用自研的虛擬機放置平臺利用線性整數規劃結合裝箱的多目標尋優算法進行模擬測試,通過對比優化前后空閑虛機數量變化,測試算法所實現的節能增效效果。實驗結果所示,在使用算法后,空閑主機數量增長20%~30%,可支持節能下電操作的主機大幅度增加,電力成本控制相當可觀,這對于數據中心節能增效具有重大意義。
參考文獻
[1]張文佺,王曉燁,喬軍晶,等.中國數據中心能耗與可再生能源使用潛力研究[R].工業和信息化部電子技術標準化研究院:華北電力大學,2023.
[2]張從越,付雄,喬磊.云計算環境下基于多目標優化的虛擬機放置研究[J].計算機應用與軟件,2021,38(3): 32-38.
[3]王輝,張洪瑜,呂書林.云數據中心考慮虛擬機關聯性的虛擬機放置策略[J].計算機應用與軟件,2021,38(2):58-64.
[4]張常樂.面向資源碎片優化的虛擬機放置方法研究[D].桂林:桂林電子科技大學,2021.
[5]劉耀鴻.基于改進蟻獅算法的虛擬機放置方法[D].桂林:桂林電子科技大學,2021.