本研究所探討的虛擬化伺服器負載平衡問題可分成兩階段加以定義:第一階 段將討論負載模型,第二階段則說明負載平衡。
3.1 虛擬機伺服器負載模型
基本上一台 VM 的負載會被許多因素影響,例如 CPU 資源使用上限或權重、記憶 體大小、網路速度等等。概念上,負載可以視為這些個因素的因果對應關係,假 設 v 為一 VM,LV(v)表示其負載,LV(v)可描述成一個函數,如公式(3.1)。
LV(v) = f (u1, u2, u3, . . . , uk) (3.1)
其中 u1, u2, u3, . . . , uk為前述影響負載的 k 個因素。
一 台 VMH 內 可 能 有 很 多 台 VM,一 台 VMH 的 整 體 負 載 是 VMH 本 身 的 負載與所有在此 VMH 內的 VM 負載之集合。假設 h 為一台 VMH,共有 n 台 VM(vi, v2, . . . , vn) 在 h 中運行。LH(h)表示 h 的負載,如公式(3.2)。
LH(h) = L0(h) +
∑n i=1
LV(vi) (3.2)
其中 L0(h)為此 VMH 之系統負載,LV(vi),1≤ i ≤ n,為各台 VM 的負載。
為了有良好的服務品質,每一台 VM 的負載應該要在合理的範圍內,如公 式(3.3)所示。
lL ≤ LV(vi)≤ lU (3.3) 通常 lL與 lU 為管理者依據要求所訂定的常數。如果 LV(vi) > lU,表示負載過高,
可能無法勝任使用者指派的工作,而 LV(vi) < lL,則表示負載過低,造成資源浪
費。相同的,一台 VMH 的整體負載也必須在一定的合理範圍內,如公式(3.4)所 示。
LL≤ LH(h)≤ LU (3.4) 管理者依據要求訂定的負載常數 LL與 LU。如果 LH(h) > LU,表示此 VMH 超 載,裡面的 VM 可能無法獲得充足的資源而導致效能降低,甚至影響服務品質,
因此需要進行處置。
在多台 VMH 所組成的資料中心中,每一台 VMH 的負載都應保持在適當範 圍內。假設一資料中心有 p 台 VMH,hj, 1 ≤ j ≤ p,每台 VMH 的負載應受到限 制,如公式(3.5)所示。
LLj ≤ LH(hj)≤ LUj (3.5) 其中,LUj 與 LLj 分別表示 hj 負載的上下限。如果 LL或 LU 設定太高或太低,可 能導致 VMH 負載過高而無法正常提供服務,或者運算資源過度閒置而浪費。
3.2 負載遷移
負載平衡的目地是在公式(3.4)的要求下,每台 VM 的負載也滿足公式(3.3);若不 滿足公式(3.3)、公式(3.4)的要求,則必需進行遷移來調整 VM 的位置,將負載進 行最適當地分配。假設有 ha、hb 兩台 VMH,其負載狀況如下。
• ha中有 m 台 VM,其負載大於上限 LH(ha) > LUa
• hb中有 n 台 VM,其負載小於上限 LH(hb) < LUb
其 中 LLa, LUa 為 VMH a 的負 載 下 上 限,而 LLb, LUb 為 VMH b 的 負 載 下 上 限。
因 ha 的 負 載 超 過 上 限, 需 進 行 負 載 調 整,調 整 方 式 是 從 ha 挑 選 出 t 台 VM (v1, v2, . . . , vt) 並遷移到 hb裡,調整後希望能達成以下狀況。
• ha中有 m− t 台 VM,其負載變成 L′H(ha) = LH(ha)−
∑t i=1
LV(vi)
• hb中有 n + t 台 VM,其負載變成 L′H(hb) = LH(hb) +
∑t i=1
LV(vi) 良好的調整機制應滿足公式(3.6)的要求。
LLa ≤ L′H(ha)≤ LUa
LLb ≤ L′H(hb)≤ LUb
(3.6)
3.3 負載平衡機制
在一個資料中心之中可能會有許多 VMH 負載超標,或因為工作量不相同,造成 負載不平衡。上述負載調整方法是從每個 VMH 中挑選數個 VM,並將這些 VM 分散到其他 VMH 中,目的是希望調整後每一台 VMH 的負載都保持在適當的範 圍內,更進一步使所有 VMH 的負載都維持在相同的水準。假設共有 p 台 VMH (h1, h2, . . . , hp),n 台 VM(v1, v2, . . . , vn),調整負載後的整體負載模型可描述成公 式(3.7)。
∀i, 1 ≤ i ≤ p, LLi ≤ L′H(hi)≤ LUi,
∀i, j, 1 ≤ i, j ≤ p, i ̸= j, L′H(hi)≈ L′H(hj),
∀i, 1 ≤ i ≤ n, lL ≤ LV(vi)≤ lU,
(3.7)
要同時滿足上述所有公式的要求,決定哪幾台 VM 會被遷移、以及遷移的 VMH 來源與對象,才能夠達到最好的負載狀況,這是一個多對多的配對最佳化的問 題。要解決此最佳化問題,需考慮下面諸多因素:
• 處理此最佳化問題的一個核心步驟,是從 VMH 中挑選適當的 VM 並將之遷 移至合適的 VMH 中,但由於這一個組合爆炸的問題,考量到時間因素,必 須有一個快速的解決方法。
• 當 VM 移動到新的 VMH 以後,其負載行為將受到遷移以後的 VMH 中的所 有 VM 的影響。藉由公式(3.1)及公式(3.2)可以推估 VMH 中的所有 VM 在遷
移前後的負載狀況。因為 VM 負載與相關參數有著因果關係,可在不同的參 數設定下,藉由大量蒐集 VM 的行為數據,以迴歸分析的技術來獲取它的負 載模型。這樣的模型必須可以和接下來的負載平衡機制進行整合,因此希望 它是一個白盒子模型。
• 由於 VMH 調整負載的手段是遷移 VM,但是遷移時需要花費相當的移動時 間,過多的 VM 移動勢必影響效能調整的整體效果。所以,定義適當的遷移 成本函數需考慮遷移因素。