研究方法與設計
4.2 虛擬機伺服器配置最佳化方法
Inv *
u2 * *
u1 -0.3 u1 -0.2
ln
Head Tail
ln + Inv * u2 * * u1 -0.3 u1 -0.2 u2 u2 u2 u1
圖 4.1: GEP 染色體編碼示意圖
第 i 筆資料的 u1, u2 與 VM 負載值,再將集合 S 套入迴歸分析。目的是從中找出 一個模型 ˜f,能在相同輸入下,獲得近似模型 f 的輸出,以求出 LV(v)的估計值 L˜V(v),如公式(4.3)(4.4),ϵ 為可接受的誤差值。
L˜V(v) = ˜f (u1, u2) (4.3)
|f(u1, u2)− ˜f (u1, u2)| < ϵ (4.4) 而蒐集的資料筆數 n 要夠大,才足以分析出準確的模型,可能需要達數千筆;並 以(4.5)的公式 MSE 作為成本函數,來衡量模型套用至整個集合 S 的誤差程度,且 要求這樣的誤差必須小於一定的值。
MSE = 1 n
∑n i=1
(f (u1, u2)− ˜f (u1, u2))2 (4.5)
模型建立流程如圖4.2。
4.2 虛擬機伺服器配置最佳化方法
要解此負載平衡問題,需要耗費大量時間進行運算,因此需要較快速又準確的方 法;本研究採用 GA 以快速地找出各台 VM 在特定參數下於各 VMH 上的最佳配
圖 4.2: 虛擬機負載模型建立流程
0 1 2 … ( -1)
vm0 vm1 vm2 … vmj … vmk-1
…
圖 4.3: GA 染色體編碼示意圖
置方式,設計如下。
4.2.1 基因演算法染色體編碼
為了描述所有 VMH 內的 VM 配置情況並設計為 GA 的染色體編碼,而對各台 VM 與 VMH 定義編號,依照 VM 編號來決定染色體的基因位置,以此 VM 寄宿 VMH 的編號決定基因的內容,編碼方式如圖4.3。其中 VMH 的數量有 p 台,其中 VM 的數量有 k 台,染色體有 n 條,i 代表染色體編號,j 代表 VM 編號,hij 代表某 一台 VMH,V Mj 被指定到 hij,表示 V Mj 在 hij 上面運作。
舉 例 而 言,有 十 二 台 VM、 三 台 VMH,其 中 vm0、vm11、vm6、vm4 位 於
vm0 vm1 vm2 vm3 vm4 vm5 vm6 vm7 vm8 vm9 vm10vm11
0 2 1 2 0 1 0 1 2 1 2 0
(a) GA 染色體編碼範例
vmh
1vmh
0vm0
vmh
2vm11 vm6 vm9 vm2 vm5 vm1 vm8 vm3 vm10
Shared Storage
vm4 vm7
Network
(b) GA 染色體編碼對應 VM 配置圖
圖 4.4: GA 染色體編碼範例與對應 VM 配置圖
vmh0,vm9、vm2、vm5、vm7 位 於 vmh1,vm1、vm8、vm3、vm10 位 於 vmh2。將 以上狀況以染色體描述如下:
0, 2, 1, 2, 0, 1, 0, 1, 2, 1, 2, 0
第一個基因內容代表 vm0所在的 VMH 編號 vmh0,第九的基因內容代表 vm8位於 vmh2,依此類推,此範例可參考圖4.4。
4.2.2 基因演算法演化機制
根據前述的染色體編碼描述方式,如果要變更某一台 VM 的配置,只要改變和 VM 編號相同位址的基因數字即可。在染色體的演化機制中,本研究使用自然選 擇、交配與突變操作;其中自然選擇使用輸盤法,適應性數值越高被選中進入下 一階段的機會越高;交配的部份使用亂數位置的單點交配,突變的部份則以亂數 指定合法的 VMH 編號。
4.2.3 基因演算法適性值函數設計
表 4.2: 獲取 ˜LV(vi)之範例
vm0 vm1 vm2 vm3 vm4 vm5 vm6 vm7 vm8 vm9 vm10 vm11
hij 0 1 1 2 0 0 2 1 2 1 2 0
u1 62 58 66 15 29 33 29 84 34 43 55 98
u2 588 553 718 529 911 83 581 15 817 423 846 657 L˜V(vi) 5.4 5.3 5.6 2.6 3.9 4.2 3.9 6.0 4.2 4.7 5.2 6.4
ࣈ 0 1 1 2 0 0 2 1 2 1 2 0
ࣈԢ 0 2 1 2 0 1 0 1 2 1 2 0
vm0 vm1 vm2 vm3 vm4 vm5 vm6 vm7 vm8 vm9 vm10vm11
圖 4.5: GA 染色體遷移範例圖
函數 f it(ξ) 的計算目的為衡量各台 VMH 負載的相近程度。對每兩台 VMH 的負載 數值進行相減並取絶對值再加總 (相減次數為 p(p− 1)/2),即可得到任兩台 VMH 負載總差距;這個差距越小,代表各台 VMH 的負載越平衡,為了方便計算適性 值,我們以理論最大總差距:
p(p− 1) 2 max
∀j ({˜LH(hj)})
除以實際總差距,使數值的特性改為越大越代表負載越均衡;最後計算 ln 讓數值 尺度變化較為平緩,如公式(4.10)。
f it(ξ) = ln(
p(p− 1) max
∀j ({˜LH(hj)}) 2× ∑
∀a,ba̸=b
|˜LH(ha)− ˜LH(hb)|) (4.10)
以 圖4.4(a) 染 色 體 為 ξ 來 呈 現 一 個 f itness(ξ) 計 算 範 例。先 以 公 式(4.2)為 負載模型來取得 ˜LV(vi),如表4.2;並統計三台的 ˜LH(hj),各為:19.9, 21.6, 16;
本 範 例 設 定 VMH 的 負 載 上 限 LU = 25,經 檢 查 所 有 VMH 皆 未 超 載,可 進 一 步 計 算 f itness(ξ) 值。先 計 算 α,比 對 ξ 與 ξ′,如 圖4.5,其 中 vm1 從 vmh2
圖 4.6: 以基因演算法尋找最佳平衡配置流程
遷 移 到 vmh1,vm5 從 vmh1 遷 移 到 vmh0,vm6 從 vmh0 遷 移 到 vmh2,共 發 生 三 次 遷 移,在 此 q 設 為 1:α = 12−(3×1)12 = 0.75。接 下 來 計 算 f it(ξ),從 上 述 三 台 的 ˜LH(hj) 可 得 知:f it(ξ) = ln(3×21.611.3 ) = 1.75;將 α× fit(ξ),最 後 得 到 f itness(ξ) = 0.75× 1.75 = 1.31。透過 GA 的演化過程,希望能夠找到適性值最高 的 VM 配置方式,處理流程如圖4.6。