楊中旭 楊曉 李訓潮 劉俊峰
摘 要: 近年來,隨著5G、人工智能等新興技術(shù)的發(fā)展,算力為千行百業(yè)的數(shù)字化轉(zhuǎn)型注入強心劑。社會各行各業(yè)對算力需求的增長日益明顯,運營商數(shù)據(jù)中心的服務(wù)器為保證高可用性,數(shù)據(jù)中心的高能耗儼然成為制約數(shù)據(jù)中心發(fā)展的一大阻礙,“節(jié)能增效”是數(shù)據(jù)中心的剛需。由于大量資源碎片造成的資源利用率低下和能源浪費問題。為了解決這個問題,提出了一種基于線性整數(shù)規(guī)劃結(jié)合裝箱的多目標優(yōu)化算法。旨在通過優(yōu)化虛擬機放置,進行虛擬機的二次調(diào)度,提高資源利用率,騰挪出更多的空閑主機,執(zhí)行物理機下電等綠色節(jié)能操作,以達到“節(jié)能增效”目的。
關(guān)鍵詞: 數(shù)據(jù)中心 資源碎片 虛擬機放置 線性整數(shù)規(guī)劃 多目標尋優(yōu)算法
中圖分類號: 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年里,我國的數(shù)據(jù)中心行業(yè)被廣泛認為是高能耗行業(yè)。數(shù)據(jù)顯示,我國數(shù)據(jù)中心整體用電量以每年超過10%的速度遞增,其耗電量在2020年突破2 000億kWh,約占全社會用電量的2.71%[1]。大量的服務(wù)器、存儲設(shè)備、交換機以及千億級別的芯片在運行過程中消耗大量能源。單個物理機在開機狀態(tài)下,如果沒有負載或者只有低負載,其能耗通常只達到物理機滿負載峰值能耗的60%~70%。因此,關(guān)閉空閑的物理機是改善數(shù)據(jù)中心高能耗問題的一種方法[2]。此外,數(shù)據(jù)中心能效低的另一個關(guān)鍵因素是存在大量的資源碎片。資源碎片指的是虛擬機在創(chuàng)建和放置過程中沒有考慮最優(yōu)的位置,導(dǎo)致無法充分利用資源容量,從而降低了資源的使用效率。
當前在數(shù)據(jù)中心日常運維過程中常用算法是裝箱優(yōu)化算法(FF/FFD、BF/BFD、NF/NFD等),該算法無法通過全局化視角進行調(diào)度,無法確保全局最優(yōu)解,調(diào)度效果不理想。此外調(diào)度計劃是通過人工確定熱遷移目標和路徑進行制訂,無法進行多批次的復(fù)雜調(diào)度方案規(guī)劃,風險較大。除此之外,業(yè)界較為成熟的算法是基于改進的GA、MIP和TSA算法,該類型優(yōu)化算法容易陷入局部最優(yōu)。因此,提出了一種基于線性整數(shù)規(guī)劃結(jié)合裝箱的多目標尋優(yōu)的算法。通過將線性規(guī)劃和裝箱算法相結(jié)合,以全局的視角求解物理機虛擬資源利用率的最大值的虛擬機放置方式,能夠有效避免陷入局部最優(yōu)解。
1.1 虛擬機放置問題定義
虛擬機放置問題實際上是一個二維裝箱問題,該問題被證明是NP-hard問題。在數(shù)據(jù)中心中,假設(shè)有m臺物理機和n臺虛擬機,虛擬機放置問題的目標是在滿足一定約束條件的前提下,通過合理的調(diào)度策略將這n臺虛擬機放置在m臺物理機中。這個問題的復(fù)雜性源于需要考慮多個因素,如物理機的資源容量、虛擬機的資源需求、性能約束以及親和特性等。具體問題定義如下。
在數(shù)據(jù)中心中部署n臺虛擬機,每個虛擬機vmi(i= 1,2,3,…,n)具有屬性{rcpui,rrami,rbandwidthi},其中rcpui表示虛擬機所需的CPU核心數(shù)量,rrami表示虛擬機所需的內(nèi)存大小,rbandwidthi表示虛擬機所需的帶寬大小。同時,數(shù)據(jù)中心中有m個物理機,每個物理機pmj(j=1,2,3,…,m)具有屬性{cpuj,ramj,bandwidthj},其中cpuj、ramj和bandwidthj分別表示物理機pmj的CPU資源剩余量、內(nèi)存資源剩余量和帶寬資源剩余量。
式(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 碎片模型定義
根據(jù)實際需求,可以預(yù)設(shè)一個虛機規(guī)格標準以及碎片主機數(shù)閾值。當資源池中存在物理機的所剩資源(不包括空閑主機)大于所設(shè)置標準的虛機規(guī)格時,即可認為當前資源池存在資源碎片。當資源池內(nèi)滿足上述條件的物理機數(shù)占資源池所有物理機數(shù)的比例超過碎片主機閾值時,系統(tǒng)會自動上報“建議進行資源池虛機資源整理”提示,提醒用戶進行資源池的資源整合,降低資源池的碎片化率。
例1 資源池有12臺物理機,除空閑主機之外有7臺主機剩余的vCPU超過4U(預(yù)設(shè)的虛機標準vCPU規(guī)格),碎片主機占比58%,高于預(yù)設(shè)的碎片主機占比閾值(10%),需要進行資源池虛機資源整理。
例2 資源池同樣有12臺物理機,除空閑主機之外有4臺主機剩余的RAM超過32 G(預(yù)設(shè)的虛機標準RAM規(guī)格),碎片主機占比30%,高于預(yù)設(shè)的碎片主機占比閾值(10%),需要進行資源池虛機資源整理。
由上述例子可見,只要有一類資源不符合預(yù)設(shè)參數(shù)條件,就會提醒用戶進行資源池的資源整合。
虛擬機放置問題是一個離散型問題,無法直接使用一般的數(shù)學方法進行求解[3]。通常情況下,采用啟發(fā)式算法來解決虛擬機放置問題,如人工蜂群算法[4]和蟻群算法[5]等。這類算法在求解此類復(fù)雜問題具有一定優(yōu)勢,但是也存在收斂過快或者局部最優(yōu)解這些不足。
線性整數(shù)規(guī)劃結(jié)合裝箱的多目標尋優(yōu)模型依靠多個獨立的步驟來計算最優(yōu)VM-PM映射,具體見圖1。m對應(yīng)于數(shù)據(jù)中心的物理機數(shù)量和n對應(yīng)于數(shù)據(jù)中心托管的虛擬機數(shù)。編號為j的PM,記為pmj,(1≤j≤m)。對于每個物理機pmj(j=1,2,3,…,m)具有屬性{cpuj,ramj,bandwidthj},其中cpuj、ramj和bandwidthj分別表示物理機pmj的CPU資源剩余量、內(nèi)存資源剩余量和帶寬資源剩余量。對每個虛擬機vmi(i=1,2,3,…,n)都有屬性{rcpui,rrami,rbandwidthi},其中rcpui、rrami、rbandwidthi分別表示第i臺虛擬機所需CPU核心數(shù)量、內(nèi)存大小和帶寬大小。xij是一個二元變量,表示第i臺虛擬機是否放置在第j臺物理機上。二元變量φj,φj=1表示pmj上至少有一臺虛擬機,φj=0則表示pmj為空閑物理機。二元變量λi,λi=1表示vmi進行過遷移,λi=0則表示vmi保持原有物理地址不變。
利用前面的符號,在圖1中給出具體的算法步驟。步驟1,以資源利用率最大化(δmax)為優(yōu)化目標,在解空間中搜索每臺主機資源利用率最大的一組解,并將該組解作為下一步的輸入繼續(xù)尋優(yōu)。步驟2,以遷移成本最小化(θmin)為優(yōu)化目標,在前步驟的解空間中進一步搜索遷移次數(shù)最小的一組解,并將該組解作為下一步的輸入繼續(xù)尋優(yōu)。步驟3,結(jié)合物理機柜位置,以物理機柜均勻散列部署(ωmin)為目標,在前步驟的解空間中搜索活躍物理機的物理機柜位置最為均勻散列的一組解,并將該組解作為下一步的輸入繼續(xù)尋優(yōu),最終在最后的解空間中篩選出符合約束條件的最終解。
對于相同數(shù)量的VM請求,可能存在多個VM-PM映射方案。步驟2選擇了其中一個資源利用率最大化δmax的解。圖1中的式(10)保證了當前的VM-PM映射方案必須比步驟1計算的δmax更大;式(11)定義了ωmin變量,保證ωmin變量是基于pm的物理位置散列均勻。
3.1 實驗環(huán)境
為了驗證本文所提算法的有效性,使用Python語言開發(fā)了一個虛擬機放置二次調(diào)度平臺作為實驗仿真平臺,該平臺包含以下功能。
(1)虛擬機資源數(shù)據(jù)的讀取和處理:平臺可以讀取和處理虛擬機的資源數(shù)據(jù),包括CPU、內(nèi)存、存儲等信息。(2)物理機資源數(shù)據(jù)的讀取和處理:平臺可以讀取和處理物理機的資源數(shù)據(jù),包括CPU、內(nèi)存、存儲等信息。(3)虛擬機熱遷移批次生成及任務(wù)下發(fā):平臺可以生成虛擬機熱遷移的批次,并將任務(wù)下發(fā)給相應(yīng)的物理機進行執(zhí)行。(4)虛擬機物理位置統(tǒng)計:平臺可以統(tǒng)計虛擬機在物理機上的位置信息,包括虛擬機所在的物理機編號、機架號、機柜號等。(5)虛擬機遷移結(jié)束過程中各性能指標統(tǒng)計:平臺可以在虛擬機遷移結(jié)束后,統(tǒng)計各種性能指標,如遷移時間、網(wǎng)絡(luò)延遲、資源利用率等。實驗機環(huán)境配置參數(shù)(CPU/Intel Core i7-9750H@ 2.60 HZ、內(nèi)存/16 GB、硬盤/500 GB SSD、操作系統(tǒng)/64位Windows10、Python版本/3.7、PyCharm版本/2023.2)。
待優(yōu)化的目標資源池環(huán)境物理機總數(shù)為193臺,虛擬機總數(shù)為421臺。預(yù)設(shè)參數(shù)閾值虛擬機標準vCPU規(guī)格為8U,標準內(nèi)存RAM規(guī)格為32 G,預(yù)設(shè)的碎片主機占比閾值為10%。初始化目標資源池中物理機剩余vCPU超過10%時,主動觸發(fā)資源池虛擬機遷移優(yōu)化。環(huán)境預(yù)設(shè)閾值參數(shù)(CPU/8U、內(nèi)存/32 GB、帶寬/ 50 GB/s、碎片主機占比/10%)。
實驗通過對冗余空閑物理機的數(shù)量統(tǒng)計,來對比資源優(yōu)化調(diào)度前后的差異。并通過估算的方式(服務(wù)器節(jié)省費用/臺×年=電費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),來預(yù)估對空閑主機進行下電操作后,資源池電力成本的節(jié)省費用,將此作為衡量“節(jié)能增效”效果的重要衡量指標。
3.2 實驗結(jié)果分析
在遷移結(jié)果進行量化分析,資源池的空閑主機數(shù)在算法優(yōu)化調(diào)度后有明顯增加。下面針對優(yōu)化遷移前后的CPU和內(nèi)存兩個維度的資源進行詳細分析。通過算法進行虛機騰挪后資源池中新增26%的物理機空閑,資源池能更好地支撐網(wǎng)元擴容或者是物理機下電等綠色節(jié)能操作。根據(jù)節(jié)點成本計算公式(服務(wù)器節(jié)省費用/臺×年=電費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),當前調(diào)度算法執(zhí)行后環(huán)境中所有空閑主機執(zhí)行下電后,將節(jié)省電力成本費用62.87萬元。
本文使用自研的虛擬機放置平臺利用線性整數(shù)規(guī)劃結(jié)合裝箱的多目標尋優(yōu)算法進行模擬測試,通過對比優(yōu)化前后空閑虛機數(shù)量變化,測試算法所實現(xiàn)的節(jié)能增效效果。實驗結(jié)果所示,在使用算法后,空閑主機數(shù)量增長20%~30%,可支持節(jié)能下電操作的主機大幅度增加,電力成本控制相當可觀,這對于數(shù)據(jù)中心節(jié)能增效具有重大意義。
參考文獻
[1]張文佺,王曉燁,喬軍晶,等.中國數(shù)據(jù)中心能耗與可再生能源使用潛力研究[R].工業(yè)和信息化部電子技術(shù)標準化研究院:華北電力大學,2023.
[2]張從越,付雄,喬磊.云計算環(huán)境下基于多目標優(yōu)化的虛擬機放置研究[J].計算機應(yīng)用與軟件,2021,38(3): 32-38.
[3]王輝,張洪瑜,呂書林.云數(shù)據(jù)中心考慮虛擬機關(guān)聯(lián)性的虛擬機放置策略[J].計算機應(yīng)用與軟件,2021,38(2):58-64.
[4]張常樂.面向資源碎片優(yōu)化的虛擬機放置方法研究[D].桂林:桂林電子科技大學,2021.
[5]劉耀鴻.基于改進蟻獅算法的虛擬機放置方法[D].桂林:桂林電子科技大學,2021.