• 沒有找到結果。

使用演化式學習演算法進行雲端運算虛擬化伺服器之動態負載平衡

N/A
N/A
Protected

Academic year: 2021

Share "使用演化式學習演算法進行雲端運算虛擬化伺服器之動態負載平衡"

Copied!
68
0
0

加載中.... (立即查看全文)

全文

(1)niv. ao. al. hsi. ung. Nation U. ersity of. K. 國立高雄大學電機工程學系 計算機組 碩士論文. 使用演化式學習演算法進行雲端運算 虛擬化伺服器之動態負載平衡 Dynamic load balancing of virtual machine servers using genetic-based methods in a cloud computing environment 研究生:洪瓏軒撰 指導教授:吳志宏 中華民國一百零三年八月.

(2) 使用演化式學習演算法進行雲端運算 虛擬化伺服器之動態負載平衡 指導教授:吳志宏博士 學生:洪瓏軒 國立高雄大學電機工程學系. 摘要 虛擬機 (virtual machines) 的應用是雲端運算 (cloud computing) 重要的一環;而 有效率的負載平衡 (load balancing) 對虛擬機應用整體效能、資源的利用率,甚至 客戶滿意度等,起關鍵作用。傳統的負載平衡方法使用簡單的演算法進行負載分 散,在多樣性服務的雲端環境下,通常效果不佳。本研究以虛擬機負載模型為基 礎,在進行負載配置前,先預測配置後的效果,選出最佳方案,再進行實際的負 載調整。本研究分為兩個階段,第一階段蒐集虛擬機設置時的參數與實際運作負 載對應資料,從中推估出虛擬機的負載迴歸模型,所使用的主要技術是基因表達 程式規劃 (gene expression programming);第二階段是在進行負載調整時,依據第 一階段所找出負載模型,使用基因演算法 (genetic algorithm),快速找出各伺服器 最佳的虛擬機配置。本研究實際建置一個雲端虛擬機伺服器環境,並將前述二階 段方法實現於一集中式智慧型負載平衡管理機制中。該機制監測各伺服器負載, 並依據虛擬機的負載迴歸模型,重新尋找各伺服器最佳負載配置,據此進行虛擬 機的動態移植,達到負載平衡調節的目的。實驗結果顯示本研究所建立的負載平 衡機制,相較其它方法要快得多,且平衡效果也明顯較好。. 關鍵字: 人工智慧、雲端運算、虛擬化、負載平衡、演化式計算、基因表達程式 規劃。. i.

(3) Dynamic load balancing of virtual machine servers using genetic-based methods in a cloud computing environment Advisor: Dr. WU, CHIH-HUNG Student: HUNG, LUNG-HSUAN Department of Electrical Engineering, National University of Kaohsiung. ABSTRACT Virtualization is a key technology in cloud computing. Load balancing of virtualization servers is an important issue for resource management and customer satisfaction. Typical methods of load balancing usually use simple statistics models or heuristic rules and only gain limited effectiveness in real-world cloud computing applications. In this study, we present a model-based method for load balancing of virtualization servers using genetic-based methods. Two phases of work are presented. First, performance models of virtual machines are extracted from parameters for creating virtual machines and the corresponding performance of virtual machines measured in a real cloud computing environment. The technique of gene expression programming is applied for generating symbolic regression models that describe the performance of virtual machines. Secondly, we search the best location of virtual machines for re-allocating virtual machines according to the performance models obtained from the first phase using the genetic algorithm. A cloud computing environment consisting of several virtual machine servers is built and the abovementioned methods are implemented as a centralized mechanism for load balancing. This mechanism monitors the performance of all servers. If load unbalance is detected, the mechanism decides the best locations of virtual machines according to their performance models. Accordingly, virtual machines are migrated among servers for adjusting, and hence, balancing the loads. The experimental results show that our method outperforms other methods.. Keywords: Artificial Intelligence, Cloud Computing, Virtualization, Load Balancing, Evolutionary Algorithms, Gene Expression Programming.. ii.

(4) 目錄 中文摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. i. 英文摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ii. 目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. iii. 圖目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. v. 表目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. vi. 第一章. 緒論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.1. 研究背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.1.1. 雲端運算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.1.2. 虛擬化技術基本運作原理 . . . . . . . . . . . . . . . . . . . .. 2. 1.2. 虛擬機伺服器的負載問題與平衡機制 . . . . . . . . . . . . . . . . . .. 7. 1.3. 研究動機與目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9. 1.4. 研究方法與論文架構 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 11. 第二章. 文獻探討. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. 2.1. 負載平衡技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 14. 2.2. 演化式迴歸技術 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15. 2.2.1. 基因程式規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15. 2.2.2. 基因表達程式規劃 . . . . . . . . . . . . . . . . . . . . . . . .. 17. 第三章. 問題定義與分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. 3.1. 虛擬機伺服器負載模型 . . . . . . . . . . . . . . . . . . . . . . . . . .. 22. 3.2. 負載遷移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 23. 3.3. 負載平衡機制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24. 第四章 4.1. 4.2. 研究方法與設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 虛擬機伺服器效能參數模型建立 . . . . . . . . . . . . . . . . . . . . .. 26. 4.1.1. 虛擬機負載與效能參數 . . . . . . . . . . . . . . . . . . . . . .. 26. 4.1.2. 基因表達程式規劃染色體編碼 . . . . . . . . . . . . . . . . . .. 27. 4.1.3. 基因表達程式規劃模型衡量 . . . . . . . . . . . . . . . . . . .. 28. 虛擬機伺服器配置最佳化方法 . . . . . . . . . . . . . . . . . . . . . .. 29. iii.

(5) 4.3 第五章. 4.2.1. 基因演算法染色體編碼 . . . . . . . . . . . . . . . . . . . . . .. 30. 4.2.2. 基因演算法演化機制 . . . . . . . . . . . . . . . . . . . . . . .. 31. 4.2.3. 基因演算法適性值函數設計 . . . . . . . . . . . . . . . . . . .. 32. 負載平衡機制設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34. 實驗與結果分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36. 5.1. 實驗環境與架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 36. 5.2. 負載模型迴歸分析方法之比較 . . . . . . . . . . . . . . . . . . . . . .. 37. 5.3. 負載平衡策略之比較 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 39. 5.3.1. 場景 A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 42. 5.3.2. 場景 B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 44. 5.3.3. 場景 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 46. 5.3.4. 場景 D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 47. 實驗結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 49. 5.4 第六章. 結論與未來展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54. 參考文獻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55. iv.

(6) 圖目錄 1.1. 一般電腦與虛擬機的架構比較 . . . . . . . . . . . . . . . . . . . . . .. 3. 1.2. Type 1 與 Type 2 VMM 架構之比較 . . . . . . . . . . . . . . . . . . .. 4. 1.3. 遷移運作示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 1.4. 使用共享儲存裝置進行遷移運作示意圖 . . . . . . . . . . . . . . . . .. 6. 1.5. 虛擬機伺服器叢示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 1.6. 負載平衡類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 1.7. 研究進行流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13. 2.1. GA 流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 16. 2.2. GP 的樹狀結構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 2.3. GEP 染色體儲存樹狀結構方式 . . . . . . . . . . . . . . . . . . . . . .. 18. 2.4. GEP 的突變與轉換機制 . . . . . . . . . . . . . . . . . . . . . . . . . .. 19. 2.5. 基因表達程式演化流程圖 . . . . . . . . . . . . . . . . . . . . . . . . .. 21. 4.1. GEP 染色體編碼示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . .. 29. 4.2. 虛擬機負載模型建立流程 . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 4.3. GA 染色體編碼示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 30. 4.4. GA 染色體編碼範例與對應 VM 配置圖 . . . . . . . . . . . . . . . . .. 31. 4.5. GA 染色體遷移範例圖 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 33. 4.6. 以基因演算法尋找最佳平衡配置流程 . . . . . . . . . . . . . . . . . .. 34. 4.7. 負載監測與平衡流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . .. 35. 5.1. 實驗環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 5.2. GEP 訓練資料筆數分析 . . . . . . . . . . . . . . . . . . . . . . . . . .. 38. 5.3. 各種迴歸方法產出模型之誤差分佈百分比比較 . . . . . . . . . . . . .. 40. 5.4. 各平衡策略平均負載變化趨勢 -場景 A . . . . . . . . . . . . . . . . .. 50. 5.5. 各平衡策略平均負載變化趨勢 -場景 B . . . . . . . . . . . . . . . . .. 51. 5.6. 各平衡策略平均負載變化趨勢 -場景 C . . . . . . . . . . . . . . . . .. 52. 5.7. 各平衡策略平均負載變化趨勢 -場景 D . . . . . . . . . . . . . . . . .. 53. v.

(7) 表目錄 4.1. GEP 迴歸所使用之運算子 . . . . . . . . . . . . . . . . . . . . . . . . .. 28. 4.2. ˜ V (vi ) 之範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 獲取 L. 33. 5.1. GEP 相關參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 38. 5.2. 各種迴歸方法產出模型精確度之比較 . . . . . . . . . . . . . . . . . .. 39. 5.3. 各種迴歸方法產出模型運算子數量之比較 . . . . . . . . . . . . . . .. 39. 5.4. GA 相關參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 41. 5.5. 負載平衡各 VMH 效果 -場景 A . . . . . . . . . . . . . . . . . . . . . .. 42. 5.6. LB 值與 Round* -場景 A . . . . . . . . . . . . . . . . . . . . . . . . . .. 43. 5.7. 負載平衡各 VMH 效果 -場景 B . . . . . . . . . . . . . . . . . . . . . .. 45. 5.8. LB 值與 Round* -場景 B . . . . . . . . . . . . . . . . . . . . . . . . . .. 45. 5.9. 負載平衡各 VMH 效果 -場景 C . . . . . . . . . . . . . . . . . . . . . .. 46. 5.10 LB 值與 Round* -場景 C . . . . . . . . . . . . . . . . . . . . . . . . . .. 46. 5.11 負載平衡各 VMH 效果 -場景 D . . . . . . . . . . . . . . . . . . . . . .. 48. 5.12 LB 值與 Round* -場景 D . . . . . . . . . . . . . . . . . . . . . . . . . .. 48. 5.13 各場景負載平衡效果彙總 . . . . . . . . . . . . . . . . . . . . . . . . .. 49. vi.

(8) 第一章 緒論 1.1 研究背景 1.1.1. 雲端運算. 雲 端 運 算 (cloud computing) 是 以 網 際 網 路 為 基 礎 所 發 展 出 的 一 種 新 形 態 的 電 腦科技使用方式 [1][2]。這種新方式就是「所有東西都可以是服務」[3],任何 服務都能透過網際網路來取得。換言之,將計算硬體與軟體資源以網際服務 (web-service)[4] 的形態包裝,使用者並不需要具備專業的技術或知識,只需使用 網頁式介面的簡易存取方式進行服務的要求和結果的獲取。美國國家標準與技術 研究院 (NIST) 將雲端服務定義為三類模式 [5]:基礎架構即服務 (infrastructure as a service, IaaS)、平台即服務 (platform as a service, PaaS)、軟體即服務 (software as a service, SaaS)。「基礎架構即服務」提供基礎運算資源服務,如運算能力、儲存空 間、網路、虛擬機與作業系統,常見的實例有 Amazon EC2[6]、Google Compute Engine[7] 等。「平台即服務」提供運作環境的服務,如網頁與軟體的執行、開 發、部署與販售等平台,使用者不必手動處理硬體或作業系統等細節,常見的例 子有 Google Apps[8]、Windows Azure[9]、Google Play[10]、Steam[11] 等。「軟體 即服務」則提供應用軟體服務給使用者,如線上收發電子郵件、線上客戶關係管 理系統、社群服務以及其它各式應用服務,常見的例子有 Gmail[12]、Google 雲端 硬碟 [13]、Twitter[14]、Facebook[15]、Salesforce.com[16] 等。這些服務在執行時, 使用者不需要擔心運算技術或資料成長的問題,雲端服務提供者會準備該需要的 伺服器或資料庫,使用者只要把問題透過網路交給服務供應者即可。一般使用者 可透過不同裝置隨時存取雲端服務與資料,增加了資訊使用的彈性與便利性;企 業使用者透過雲端運算可增進工作效率,並更有效地節省企業資訊維運及發展成. 1.

(9) 本。. 1.1.2. 虛擬化技術基本運作原理. 在各種雲端運算技術中,虛擬化技術 (virtualization)[17][18][19] 屬於基礎架構即服 務中的一種。虛擬化技術將系統主要資源 (如中央處理器、儲存空間以及網路等) 透過特定軟體進行抽象化 (abstraction),使用者不需實際擁有這些軟硬體資源,仍 然可以透過雲端虛擬技術獲得相等規格的運算服務。運用虛擬化技術可以讓應用 程式在虛擬機 (virtual machine, VM) 內執行,抽換實體伺服器也不會造成應用程式 中斷,如此可以在硬體維護跟分散負載上運用良好,甚至降低軟硬體數量需求。 透過主機的自動資源分配,達到更有效率的資源利用,可有效降低企業的採購及 營運成本。 虛擬化技術的實現是在一台實體主機的硬體上建立名為虛擬機監督器 (hypervisor,又名為 virtual machine monitor, VMM)[20] 的軟體層;當虛擬機器執行 時,只能看到由 VMM 所產生出來的虛擬硬體,例如虛擬處理器 (vCPU)、虛擬記 憶體 (vRAM)、虛擬硬碟機 (vHD)。VM 的使用者無法直接存取實際硬體,只能存 取虛擬硬體並由 VMM 對應到實際硬體。通常一台虛擬機伺服器 (virtual machine host, VMH) 上會執行多台 VM,它們共用一台實體主機的硬體設備,並透過 VMM 協調、管理硬體資源,其架構如圖 1.1 所示。 VMM 可分為 Type 1(又稱 native, bare metal) 與 Type 2(又稱 hosted) 兩種型態 [21]。Type 1 的 VMM 直接執行於實體主機的硬體之上,兼具控制硬體資源並管理 VM 的功能。Type 1 VMM 運作於專用環境,優點是效能較好、穩定度較高,缺點 是實體主機無法執行其它應用程式。市面上常見的產品有 Oracle VM Server[22]、 Citrix XenServer[23]、VMware vSphere[24]、KVM(kernel-based virtual machine)[25] 以及 Microsoft Hyper-V[26] 等。Type 2 VMM 執行在一般型態的作業系統環境之 上,本身只能管理 VM,另需透過底層一般型態的作業系統來控制硬體資源,. 2.

(10) host-1. host-2. host-n. VM-1. VM-2. VM-n. Applications. Applications. Applications. Applications. Applications. Applications. Operating System. Operating System. Operating System. Operating System. Operating System. Physical Hardware. Physical Hardware. Physical Hardware. Virtual Hardware. Virtual Hardware. …. …. Operating System Virtual Hardware. VMM. (a) 一般電腦. Physical Hardware. (b) VM 與 VMH 的關係. 圖 1.1: 一般電腦與虛擬機的架構比較. 優點是實體主機可以執行其它應用程式,缺點是效能較差、穩定性較低。市 面上常見的產品有 VMware Workstation[27]、Microsoft Virtual PC[28]、Oracle VM VirtualBox[22] 以及 Parallels Desktop[29] 等。Type 1 與 Type 2 的架構差異如圖 1.2 所示。 不論是哪一種型態的 VMM,基本上,一台 VM 由「組態檔案」與「磁碟映像 檔」所組成;如果 VM 在執行狀態下,還會在 VMH 的主記憶體內產生該 VM 專 屬的「記憶體分頁資料」,它會在 VM 關機時消失。當 VMM 創造一台 VM 時,實 際上就是在主機或儲存區建立上述的檔案。同理,VM 的刪除、複製或移動,也 只要刪除、複製或移動這些檔案即可。使用 VM 的優點之一是可以將一台 VMH 移動 VM 至另一台 VMH,稱這種動作為遷移 (migration)。進行遷移時,如果 VM 為執行狀態,則需要將 VM 暫停執行,除了移動檔案,還要另外移動 VM 的記憶 體分頁資料至另一台 VMH 上的主記憶體內,檔案移動完成後,再將 VM 回復運 作。在遷移過程中所造成的 VM 暫停時間,取決於資料與檔案的移動時間。依使 用的技術與 VM 大小的不同,可能會造成數秒到數十分鐘的服務中斷。要保持服 務不中斷,可以進一步利用線上遷移技術 (live migration)[30],使得 VM 在遷移的. 3.

(11) Applications. Applications Applications. Applications. Applications Applications. Operating System. Operating Operating System System. Operating System. Operating Operating System System. Virtual Hardware. Virtual Virtual Hardware Hardware. Virtual Hardware. Virtual Virtual Hardware Hardware. Hypervisor. Hypervisor. Applications. Physical Hardware. Conventional Operating System. (a) Type 1 VMM. Physical Hardware. Other Services. (b) Type 2 VMM. 圖 1.2: Type 1 與 Type 2 VMM 架構之比較. 過程中,依然能夠維持穩定的服務而不停機,使用者在過程中甚至察覺不到任何 影響。舉例而言,在圖1.3(a)的情境下,有兩台 VMH,以網路相連,其中 VMH1 內有三台 VM,而 VHM2 內有兩台 VM,VM4 位於 VMH1 之中;圖1.3(b)透過網 路傳輸 VM4 的磁碟映像檔,將 VM4 進行從 VMH1 遷移至 VMH2;遷移完成後如 圖1.3(c)所示。 VM 的磁碟映像檔通常有數十 Gigabyte 甚至數百 Gigabyte 的資料量,如果遷 移時一併移動這些檔案,會造成相當大的負擔。在虛擬化環境下,常常會搭配使 用共享儲存裝置 (shared storage),它可以讓多台 VMH 共用一個儲存裝置,使所有 的 VM 磁碟映像檔集中存放;當 VM 遷移時,只需複製組態檔案與記憶體分頁資 料,而龐大的磁碟映像檔依然留在原本的位置,只要建立新的掛載連結即可。如 圖 1.4,VM4 的磁碟映像檔在遷移過程中不須移動,只改變掛載連結關係即完成 遷移,利用共享儲存裝置可加速遷移並節省許多負擔。. 4.

(12) VM1 VM2 VM4. VM5 VM3. VMH 2. VMH 1. Network Disk VM2. Disk VM4. Disk VM3. Disk VM5. Disk VM3. Disk VM5. Disk VM1. (a) 遷移前 Migrate. VM1 VM2 VM4. VM4 VM5 VM3. VMH 1. VMH 2. Network Disk VM2. Disk VM4 Disk VM1. Disk VM4. VM4 disk image transmission. (b) 遷移中 VM4 VM5 VM3. VM1 VM2. VMH 2. VMH 1. Network Disk VM2. Disk VM3 Disk VM1. Disk VM5 Disk VM4. (c) 遷移後. 圖 1.3: 遷移運作示意圖. 5.

(13) VM1 VM2 VM4. VM5 VM3. CPU 34% CPU 38% CPU 23%. CPU 21%. VMH 1: Total CPU usage 95%. VMH 2: Total CPU usage 48%. CPU 27%. Network. Disk VM1. Disk VM3. Disk VM5. Disk VM2 Disk VM4. Shared Storage. (a) 遷移前 Migrate. VM1 VM2. VM4 VM5 VM3. CPU 34% CPU 38%. CPU 23% CPU 21%. CPU 27%. VMH 2: Total CPU usage 48%. VMH 1: Total CPU usage 95%. Network. Disk VM1. Disk VM3. Disk VM5. Disk VM2 Disk VM4. Shared Storage. (b) 遷移後. 圖 1.4: 使用共享儲存裝置進行遷移運作示意圖. 6.

(14) VM1-1. VM1-2. VM2-1. Applications. Applications. Applications. Operating System. Operating System. Operating System. Virtual Hardware. Virtual Hardware. Virtual Hardware. VMm-1. ‧‧‧. VMm-2. VMm-3. Applications. Applications. Applications. Operating System. Operating System. Virtual Hardware. Virtual Hardware. VMM-1. VMM-2. VMM-m. Physical Hardware-1. Physical Hardware-2. Physical Hardware-m. VMH-1. VMH-2. VMH-m. …. Operating System Virtual Hardware. 圖 1.5: 虛擬機伺服器叢示意圖. 1.2 虛擬機伺服器的負載問題與平衡機制 雲端運算市場中逐漸出現以多台 VMH 環境所建立的雲端資料中心 (data center, 以下簡稱資料中心) 提供 VM 租賃服務,用戶可依照需求開設不同數量的 VM 以 進行各種應用,這些 VM 可能散佈在不同 VMH 中,如圖 1.5所示。資料中心往往 設置大量的虛擬機伺服器。但如此大量的虛擬機伺服器若管理不當,使部份的 伺服器過度忙碌,其它則無事可做,形成負載不均,進而造成服務品質下降與運 算資源浪費,甚至影響與客戶簽訂的服務層級協議 (service level agreement, SLA), 影響客戶權益。為了以合理的成本來維持良好的服務品質,有效地平衡伺服器的 工作負載,是一個相當重要的議題 [31]。 傳統的負載平衡 (load balancing) 是透過分配工作量到不同的分散式系統伺服 器,以平衡每台伺服器的工作量,避免某一些伺服器的工作量過載,進而提高整 體系統效能並強化穩定性。最常見的架構是使用負載平衡器 (load balancer),將來 自大量客戶端的負載請求分配到不同的伺服器。負載平衡機制可分成集中式與分 散式 [32][33]。集中式負載平衡機制中,所有的負載資訊會集中至一台稱為中央排 程器的結點,中央排程器依據所蒐集來的資訊,決定全體的負載平衡行為。集中 式的負載平衡機制的可靠度較低,一但中央排程器故障,所有負載平衡功能將停 擺,如圖1.6(a)。分散式負載平衡機制則是每個結點都會廣播自己的負載資訊至其. 7.

(15) Server & Load Balancer. Load Balancer. Server & Load Balancer. Server. Server & Load Balancer. Server. Server. Server. Server & Load Balancer. Server & Load Balancer. (a) 集中式負載平衡. (b) 分散式負載平衡. 圖 1.6: 負載平衡類型. 它結點,每個結點彼此皆知道對方的負載狀況,有需要時可以各自進行負載平衡 動作。在這種狀況下,每一個結點都要持續不斷地追蹤其它結點的負載資訊,會 造成運算資源與網路資源較大的負擔,如圖1.6(b)。 負載平衡器的主要任務為:偵測、決策、行動。負載偵測是監督系統的負 載,當達到一定警示水準時,資料中心要採取相關措施,如暫停或遷移 VM、調 整 VM 參數、或擴充 VMH 資源等行動。其中,透過 VM 的線上遷移來進行負載 平衡是常用的方法之一。在圖 1.4(a)的 VMH1 有三台 VM,分別使用了整台 VMH 的 34%、38% 與 23%CPU 資源,VMH1 的總 CPU 使用率為 95%;VMH2 的狀況 則依此類推。由此明顯可以看出 VMH1 與 VMH2 的 CPU 使用率有相當大的差距, 負載狀況不平均。若將 VM4 進行線上遷移後,狀況如範例圖 1.4(b),VMH1 與 VMH2 的 CPU 使用率已經變得相當接近,達到負載平衡。資料中心採取平衡負載 的相關行動如果不佳,例如遷移不合適的 VM 至工作負載很高的 VMH 時,反而 會增加系統負載不平衡,迫使 VM 管理系統重複進行負載平衡的動作,反而事倍 功半。因此,對於負載平衡動作的最佳化不容忽視。. 8.

(16) 1.3 研究動機與目的 由以上的討論得知,要設計一個好的雲端負載平衡機制,必須考量一些重要的因 素: 1. 傳統的負載平衡機制為講求效率,多使用簡單的隨機或輪流分配等方法;較 進階的機制則觀察許多伺服器運作狀況,如負載、響應時間、運行狀態、活 動連接數、地理位置與處理能力等等,再套用負載統計模型,進行負載平 衡。前者執行速度快但精確度較低,後者精確度較高但需消耗大量運算資 源,而且統計模型彈性較為不足而難以適應不同負載狀況。 2. 因雲端資料中心架構的容許高度彈性,在實體 VMH 上執行的每一台 VM 可 能各自負責不同的任務,負載平衡不能只是單純地管理、分配網路工作量, 還必須視 VM 工作負載狀況動態地平衡分配,雲端環境與應用多元,資料中 心的管理機制勢必應朝向動態負載平衡發展。 3. 以遷移為基礎的負載平衡機制,可能會出現某些 VM 被遷出後負載調整過 度,造成新的不平衡,使得這些 VM 再被遷回原本 VMH 的現象。好的負載 平衡方法需有良好的 VM 遷移依據,以避免負載調整過度,並進一步減少不 必要的遷移以降低系統負擔。 4. 負載平衡機制將 VM 線上遷移到不同的實體 VMH,若進行不恰當的負載遷 移,單一實體主機因執行過多的 VM,或 VM 負載太重,而造成單一實體 VMH 主機過載。因此,負載平衡機制應多方面考慮,進行最佳化的負載平 衡。 5. 多數 VMH 平台 (如 Xen, KVM, VMWare, XenServer 等) 將 VM 的應用程式 在 資 源 消 耗 上 採 用 靜 態 管 理 方 式。資 料 中 心 管 理 機 制 如 XenCenter[34]、 Eucalyptus[35]、VMware vCenter[36] 等可以監督各 VM 的資源消耗及監控 9.

(17) VM 在各台實體主機的負載狀況,並在管理員的操作下進行 VM 的線上遷 移,這些管理機制並不具備動態自動負載平衡機制。雖部分商用管理程式有 負載平衡功能,但其技術並不公開且價格極為昂貴,故發展智慧型負載管理 機制有助於提昇國內產業技術。 本研究希望發展雲端運算虛擬機伺服器的智慧型負載平衡機制,透過人工智慧機 器學習方法來獲得負載模型,藉由適當的訓練,使負載模型隨著問題情況的變化 而產生學習效果,進行自我更新與修正。要利用合理的運算資源,使虛擬機伺服 器在不同的負載狀況下,依然保有精準高效的負載平衡能力,需對單一 VMH 的 VM 負載模型進行瞭解,並藉此為資料中心群體行為的依據,以達成智慧型即時 負載平衡機制。 由於雲端虛擬機運作環境相對多元且複雜,為了驗證本方法的有效性並與其 它方法進行合理的比較,所以本研究將運作環境作下述合理的假設: 1. 遷移 VM 必須以網路傳輸 VM 的記憶體資料,VM 記憶體越大,需傳輸的資 料量越多,對系統所造成的額外負擔越大。本研究統一所有 VM 的記憶體大 小,並盡可能減少 VM 的遷移數量。 2. 集中式的負載平衡機制所造成的開銷會比分散式還要來得輕,也因此適合擴 展到較大規模的系統,並容易監測整體負載的統計數據,本研究採用集中式 負載平衡機制。 3. 為了虛擬化環境的效能與穩定性。本研究採用 Type 1 的 VMM。 4. 本研究的虛擬化平台架構為多台 VM 共用一台 VMH 資源,每台 VM 同一個 時間只運作於一台 VMH 上。 5. 負載平衡機制每間隔一段時間偵測 VM 數量、VM 位置及所有 VMH 負載狀 況,期間如果發生任何變化,皆以最新資訊進行負載平衡決策。 10.

(18) 6. 本研究目前專注於 VM 的 CPU 與記憶體負載部份,因實驗設計較為繁複且 干擾因素多,尚不考慮網路傳輸負載。 7. 本研究以 VM 最高資源消耗狀況建立負載模型,不管 VM 實質上的工作為 何,皆不超過負載模型的預測值。 本研究所提出之方法雖然在上述假設下進行實驗與比較,但只要經過適當地調 整,仍可應用於其它雲端環境下。. 1.4 研究方法與論文架構 本研究可分為兩階段,第一階段著重在建構單虛擬機伺服器的合理的負載模型, 並藉此以機器學習演算法設計智慧型的負載調整機制;第二階段則以前一階段所 獲得的單伺服器負載模型為基礎,以機器學習演算法設計多伺服器 (或資料中心) 的智慧型即時負載平衡機制。 負載模型建立部份,由於 VM 的參數與效能存在某種關係,我們可以視為一 個迴歸分析 (regression analysis) 的問題,並求出迴歸模型。迴歸為一種統計學上 對數據進行分析的方法,主要探討數據間是否有特定之關係。基本上,迴歸模型 的描述與建立方式有兩大類:黑盒子 (black-box) 方法與白盒子 (white-box) 方法 [37]。黑盒子方法著重於預測結果準確率與模型的準確度;白盒子方法則著重於 將訓練模型明確的表現,使用者可以明顯的了解輸入值與輸出值之關係。要將負 載平衡機制整合進 VMH 的管理系統中,負載模型必須具可描述性,這樣才可能 有效整合至管理程式的開發內。因此,本研究採取白盒子的方式建立負載模型。 在負載平衡機制的方法上,我們將負載調整視為一個 VMH 與 VM 間的最佳化配 對問題,並以 VM 負載的迴歸模型為預測平衡效果的依據。 本論文的研究流程依據研究動機、相關文獻蒐集與探討、程式撰寫、實驗結 果分析與結論等部分,說明如下,研究進行流程圖請參考圖1.7。. 11.

(19) • 研究動機:包含相關的研究背景、問題之範圍及定義,主要分析機器學習演 算法進行雲端運算虛擬化伺服器負載平衡的優缺點,著重於如何建立準確的 虛擬機伺服器負載模型,並利用這些模型為整個資料中心的進行虛擬機伺服 器配置最佳化。 • 相關文獻蒐集與探討:蒐集與本研究相關之技術文獻,包含虛擬化技術、伺 服器負載平衡、基因表達程式規劃等,比較相關技術應用與優劣性。 • 程式撰寫:撰寫以基因表達程式規劃建模程式與基因演算法程式,以虛擬機 伺服器負載最佳化為主要目的。 • 實驗結果分析與結論:建立實際雲端環境進行實驗,比較不同方法的結果並 分析。 本論文之架構分為六章節,其簡述如下。第二章「文獻探討」,簡述負載平衡 及演化式計算等背景知識與相關文獻探討。第三章「問題定義與分析」,分析單台 虛擬機伺服器負載因素,虛擬機伺服器負載以基因演算法最佳化問題分析。第四 章「研究方法與設計」,設計虛擬機伺服器效能參數模型建立方法與虛擬機伺服器 配置最佳化方法。第五章「實驗與結果分析」,在不同的負載場景,比較及分析本 方法與其它負載平衡方法之成效差異。第六章「結論與未來展望」,總結本研究遇 到的問題及方法,並相對提出未來可以研究及更深入的方向與構想。. 12.

(20) 圖 1.7: 研究進行流程圖. 13.

(21) 第二章 文獻探討 本章簡述本研究應用之相關技術,伺服器負載平衡機制、演化式計算等相關 文獻探討。. 2.1 負載平衡技術 傳統負載平衡技術已陸續在不同的方向發展,並朝向自動化、預測式、權重式演 進。主要的研究成果,例如:Guo 與 Bhuyan[38] 利用以預測為基礎的負載最小優 先法與自適應分區法兩個可預測式負載平衡演算法來增進多媒體轉換平台效能, 並用三個排程演算法來實現之。Chen 等人 [39] 以減少個體伺服器負載進而避免最 壞情況發生為主要目標,並以位置變化與行程間通訊成本之加權式組合定義為系 統成本,且利用新的二進位搜尋達到最佳負載平衡。另外使用權重式的負載平衡 方法也有諸多研究,例如:Shadrach 等人 [40] 利用 CPU 負載伺服器的回應速度等 參數,依照伺服器類型加上權重係數,並加入即時與統計等技巧以實現負載平衡 演算法。Liaw 等人 [41] 利用 CPU、記憶體負載與連線數等參數給予權重係數並 利用遞迴閥值的方式達成負載平衡。Jiao 與 Wang[42] 利用加權最小連接算法為基 礎,使用比例式優化網路效能,並利用 PCMark[43] 的請求回應時間來量測實驗結 果。 許多傳統負載平衡技術直接應用於雲端運算環境中。例如,即時性負載平 衡 [44] 主要將雲端主機分為三層,第一層接收並分配任務,第二層為中間連絡 層,管理第三層之主機群;由於第三層擁有大量主機可供運算,除可降低工作量 也可達到快速反應。此外,大量的雲端主機會消耗大量電力,因而另有文獻 [45] 提出改良方式,在主機接收任務前,本機端將即時評估處理該任務之合適性,以 減少因處理不適當任務而消耗掉的額外電力。另有討論於文獻 [46],先對各種不 14.

(22) 同用途之 VM 以手動設定其權重值,並針對情況調整其權重,以達到資源使用 最佳化。在即時雲端運算上,若發生資料遺失的情形,將無法避免計算上的錯 誤。因此,Malik 等人提出一方法來提升錯誤容忍度 [47],具體方法為原本單一 主機處理單一任務,修改成使用三台主機處理同一任務來降低資料遺失率,再以 設定各主機之信任度為判別,藉此可每次動態取得最佳主機處理之資料。Zhao 與 Huang[48] 提出分散式負載演算法,使 VM 在移機時同時保留了 VLAN 與 VM 之間的關係;並利用叢集的特性,使得線上遷移得以實現。Gao 等人 [30] 使用 VirtualRank 預測未來負載趨勢以確保不必要的 VM 遷移;並應用馬可夫鏈程序 標記潛在遷移的 VM,最後以機率權重的方式來確認最後遷移目標。Schröder 與 Nebel[49] 以模型感知雲端虛擬機器負載進行負載與功耗管理。Hsiao 等人 [50] 提 出了獨特的負載平衡演算法用於點對點非理想的系統架構上,其獨特的地方在於 利用系統局部知識中的參與點來計算每一 VM 的負載分散機率,使得每個點可以 自行計算出預期的負載與重新分配資源。Wilcox[32] 將 Lan 與 Yu[33] 的動態集中 式負載排程法實作在 Xen 上,以固定策略偵測並調整 VM 的遷移。 以上的研究基本上是依照不同的 VMH 屬性,將不同的 VMH 參數做不同的 權重設定,或以當前 VMH 的負載狀況預測負載,先行改善當前負載以達到未來 的負載平衡。雖可進行動態負載調整 (VM 遷移),但是其偵測規則與調整機制都 是固定式的方式,彈性有限。整體而言,伺服器內各 VM 之自我負載平衡對於效 能有著顯著的影響,各 VMH 之間也可互相溝通,即時分散並平衡負載,將更有 利於提升整體效能。. 2.2 演化式迴歸技術 2.2.1. 基因程式規劃. 基因演算法 (genetic algorithm, GA)[51] 是一種隨機性搜尋最佳化方法。它仿照了 自然界的生物遺傳與演化機制,模擬不同的生物個體擁有自己的基因序列及遺 15.

(23) Initialize Population Fitness Evaluation Mutation Crossover Selection Termination Conditions. No. Yes Solution. 圖 2.1: GA 流程圖 傳特性,在某一特定環境下進行演化並達到適者生存不適者淘汰的效果,最後 找出最適應這個環境的個體。使用者因應不同的問題,對個體基因設計不同的 編碼方法來表示問題的可行解 (candidate solutions),這些個體基因序列在此稱為 染色體 (chromosome);同時也針對問題來設計適性值函數 (fitness function),以 評估這些可行解對於此問題的適合程度。使用者運用各種演化手段,包括遺傳 (inheritance)、突變 (mutation)、自然選擇 (selection) 以及交配 (crossover) 等,使得 染色體經由每個世代的演化與適應性函數的評估,逐漸適應環境 (適性值函數), 並找到最佳解,流程如圖2.1所示。基因演算法廣泛應用於電腦科學、工程學、經 濟學、物理學、化學、數學、工業及其他領域之中。演化式計算模擬生物演化方 式並套用於問題求解上,使得問題解答可以模仿生物演化時之策略進行改變,進 而找出問題之較佳解。對於某些無法找出最佳解之問題或解答過於複雜之問題, 演化式計算能有效的找出問題之較佳解 (或近似正確的解)。一般適用在對問題解 答不易定義或解答空間太大的情形下。 基因程式規劃 (genetic programming, GP)[52] 是於 1992 年由 Koza 所提出的一. 16.

(24) *. if. +. > *. 8. Q. 5. < x. 2 a. 3. =. &&. /. 3b. 5. 4. 7 (a). (b). 圖 2.2: GP 的樹狀結構 種演化式計算方法。GP 仿造大自然生物演化的模式,以電腦進行高效率最佳解搜 尋,可利用此特性,經過適當地訓練得以自動化產生所需要的公式或數學模型。 GP 以樹狀結構來表示一個程式或公式,如圖 2.2。以達爾文的自然法則適者生存 概念為核心的演化式方法,模仿生物演化時交配,突變,基因複製,基因刪除等 迭代進化,直到達成預先設定的某個中止條件為止。. 2.2.2. 基因表達程式規劃. 基因表達程式規劃 (gene expression programming, GEP)[53] 是在 2001 年由 Ferreira 所提出的一種新式演化式計算技術,GEP 結合基因演算法及基因程式規劃之概 念,以染色體 (陣列) 代替了樹狀結構來表示方程式的數學式子,此方式使原本在 基因程式規劃做交配及突變時,節點搜尋使用鏈結串列結構的時間複雜度 O(n) 降低為使用陣列的 O(1),對於演算法中大量交配及突變之運算,對效能提昇有非 常大的幫助。GEP 之染色體表示方式是使用陣列型態來儲存樹狀結構,其儲存方 式為先存放樹根再依序存放左節點與右節點,依廣度優先方式將整顆樹走訪完畢 為止,如圖 2.3。 GEP 之染色體分為頭 (Head) 與尾巴 (Tail) 兩部分,在演化中,葉節點若由運 算子改變為運算元時,染色體長度不足以存放額外的運算子,故尾巴的存放內容 均存放運算子,使其可構成完滿二元樹;頭的長度決定尾巴的長度,而其長度關 17.

(25) *. +. *. 3. /. 8. Q. 5. 2. 7. * + / * 8 Q 2 3 5 7 11 9 2 4 1 Head. Tail. 圖 2.3: GEP 染色體儲存樹狀結構方式 係如公式 (2.1)。 t = h(nmax − 1) + 1. (2.1). 其中 t 為尾巴長度,h 為頭長度,nmax 為此染色體中所有運算子的最大運算元數 量 (maximum arity)。以圖 2.3為例,最大運算元數量為 2,頭的長度為 7,尾巴的 長度為 8,長度關係可表示為 8 = 7(2 − 1) + 1。 GEP 之演化方式於染色體演化之後改變其樹狀結構,其染色體演化的方式分 為三種,突變、轉換 (transposition) 與重組 (recombination),如圖2.4所示。突變方 式是在染色體之頭中,將陣列元素值以隨機產生之素質取代,完成後樹狀結構即 產生變化;轉換是針對單一染色體做演化;重組則是針對整個族群之染色體演化, 重組方式為任取族群中兩條染色體,將染色體切割重組為一條新的染色體。 GEP 中 的 適 性 值 (fitness) 為 演 化 式 計 算 中 評 估 答 案 之 指 標,通 常 使 用 均 方差指標 (mean squared error,以下簡稱 MSE) 來衡量染色體優劣;有時還會使 用 平 均 絕 對 誤 差 (mean absolute error, 以 下 簡 稱 MAE),與 平 均 絕 對 百 分 比 誤 差 (mean absolute percent error,以下簡稱 MAPE) 指標來進一步分析效果。如公. 18.

(26) *. *. /. +. -. *. 2. 8. 7. 1. 3. /. -. Mutation. 5. *. 2. * / + - * 7 8 2 3 1 5 2 3 1 2. Head. +. 1. 3. *. 7. 2. 5. 3. * / + - * 7 * 2 3 1 5 2 3 1 2. Tail. Head. Tail. (a) 突變 *. *. /. +. -. *. 2. 8. 7. 1. 3. /. 1. 5. Transposition. 2. 5. කΕ * / + - * 7 8 2 3 1 5 2 3 1 2 Head. * / 1 5 2 + - 2 3 1 5 2 3 1 2. Tail. Head. Tail. (b) 轉換 *. *. /. +. -. *. 2. 1. 3. 8. 7. 4. 5. Head. 1. 2. 2. 7. Tail. +. +. 4. 4. +. -. 1. +. Head. *. /. *. -. 7. 2. + + * 4 / - + 8 5 1 4 2 7 7 6. Head. 5. Recombination. +. 5. -. * / + 4 / - + 8 5 1 4 2 7 7 6. Tail. +. 8. /. 8. * / + - * 7 8 2 3 1 5 2 3 1 2. 4. +. /. *. 3. 1. 8. 7. 5. + + * - * 7 8 2 3 1 5 2 3 1 2. Tail. Head. (c) 重組. 圖 2.4: GEP 的突變與轉換機制 19. Tail.

(27) 式(2.2)-(2.4),其中 yi , yi′ 分別表示實際值與模型推估值,n 表示資料筆數。 1∑ MSE = (yi − yi′ )2 n i=1 n. 1∑ |yi − yi′ | n i=1. (2.2). n. MAE =. 1 ∑ yi − yi′ | |) × 100 MAPE = ( n i=1 yi. (2.3). n. (2.4). 每個世代演化完成後計算出各染色體之適性值,在從中挑選出較好的染色體繼續 演化直到某染色體之適性值達到終止條件為止。終止條件由使用者依照問題自行 定義,使用者可依照問題之誤差容許範圍設定終止條件,若將終止條件定為較嚴 謹,相對的演化次數較多,執行時間越久,故可依造問題之誤差容許範圍定義出 最適合之終止條件。GEP 的演化流程與大多數的演化式計算差不多,演化步驟如 下: Step 1: 隨機產生族群數為 k 之條染色體,t1 , . . . , tk 。 Step 2: 計算族群內 ti 之適性值,1 ≤ i ≤ k。 Step 3: 判斷適性值或演化代數是否符合終止條件,符合即結束演化,否則繼續 Step 4。 Step 4: 保留較好的染色體做突變,轉換,重組等動作後跳至 Step 2。 詳細演化流程如圖2.5。使用 GEP 的相關研究如 Zhou 等人 [54] 提出了基於基因 表達程式規劃的分類方法。學者 Gustafson[55] 在 2005 年的時候,提出了一個更 精準的基因規劃方法,他是藉由改進交配的運作來尋找更精準的迴歸公式。學者 Costa[56] 則提出了一個新的選擇方法叫做 (µ + λ − GP )。而學者 Chou[57] 將基於 基因規劃的符號式迴歸引擎應用在全球定位系統的座標軸轉換上,得到的實驗結 果顯示基因演算法的確可以解決實際的迴歸問題。為了解決複雜的複迴歸問題, 演化式計算例如基因演算法或是基因規劃便適合從大量且多維度的資料之中尋找 20.

(28) ߃‫ۈ‬ϯ٠ബ೷ࢉՅᡏ ߄ၲࢉՅᡏ ୺Չ‫؂‬΋ࢤำԄ ຑ՗፾‫ॶ܄‬ ࢂ. ಖЗచҹǻ. ่‫״‬. ց ߥ੮ന٫ำԄ ᒧ᏷ำԄ ፄᇙำԄ ँᡂ ᕷ ़. ᙯඤ ख़ಔ. ࣁΠ΋жྗഢཥ‫ޑ‬ำԄ. 圖 2.5: 基因表達程式演化流程圖 出合適的迴歸公式,因此本論文採用演化式基因表達程式規劃的技術進行負載模 型建立。. 21.

(29) 第三章 問題定義與分析 本研究所探討的虛擬化伺服器負載平衡問題可分成兩階段加以定義:第一階 段將討論負載模型,第二階段則說明負載平衡。. 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 ∑. LV (vi ). (3.2). i=1. 其中 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 ,則表示負載過低,造成資源浪. 22.

(30) 費。相同的,一台 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. 23. LV (vi ).

(31) • hb 中有 n + t 台 VM,其負載變成. L′H (hb ). = LH (hb ) +. t ∑. LV (vi ). i=1. 良好的調整機制應滿足公式(3.6)的要求。 LLa ≤ L′H (ha ) ≤ LUa LLb ≤. L′H (hb ). (3.6). ≤ LUb. 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 在遷 24.

(32) 移前後的負載狀況。因為 VM 負載與相關參數有著因果關係,可在不同的參 數設定下,藉由大量蒐集 VM 的行為數據,以迴歸分析的技術來獲取它的負 載模型。這樣的模型必須可以和接下來的負載平衡機制進行整合,因此希望 它是一個白盒子模型。 • 由於 VMH 調整負載的手段是遷移 VM,但是遷移時需要花費相當的移動時 間,過多的 VM 移動勢必影響效能調整的整體效果。所以,定義適當的遷移 成本函數需考慮遷移因素。. 25.

(33) 第四章 研究方法與設計 4.1 虛擬機伺服器效能參數模型建立 本節要找出一個可描述 VM 負載的模型;而 VM 的負載與相關參數有因果關係, 要描述 VM 的負載行為,可以嘗試調整不同的參數,並測量其負載,再進行迴歸 分析以找出一個可描述它們之間關係的數學模型。. 4.1.1. 虛擬機負載與效能參數. 電腦系統負載有許多種類型,例如 CPU 運算負載、GPU 運算負載、記憶體、磁 碟、網路通訊等資料讀寫傳輸負載;本研究專注於 VM 的 CPU 運算負載與記憶 體資料傳輸負載,CPU 運算負載通常以單位時間內做到多少次運算為衡量,例如 MOPS (million operations per second,每秒百萬次運算次數),視運算內容的不同而 有不同的數值範圍;記憶體資料傳輸負載則通常以單位時間內做到多少資料傳輸 量為指標,例如 MB/s (megabyte per second,每秒百萬位元組),常見數值範圍有 數十到數百 MB/s。 一台 VMH 上通常有多台 VM,這些 VM 共用相同的實體資源,因此需要對 每台 VM 所能使用的資源進行一些限制,才不至於超出實體資源的負荷;通常這 樣的限制在大多數的 VMM 之中是可調整的。例如可設定某台 VM 只能使用 1 顆 CPU 核心的 70% 資源,並限制它的磁碟讀寫速度最高只能到 30MB/s。本研究實 作中選用其中兩個影響 VM 資源利用狀況的參數: • 控制 VM 的 CPU 利用率上限:此參數可明確地限制 VM 對於 CPU 資源的消 耗程度並影響 VM 的效能,以符合各種使用者不同的需求,如付費越多的租 用者可享受越多的 CPU 資源。舉例而言,可設定 VM 最高只能使用 10% 的. 26.

(34) CPU 運算資源或允許它使用全部 100% 的 CPU 運算資源。在不同的平台有 不同的實作方式,例如在 Linux cgroups 的 cpu.cfs_quota_us 設定中,數值常 見範圍為 1000-100000,代表 1%-100%;在 Xen Credit Scheduler 的 cap 則是 1-100,意義相同。本研究將此參數定義為 u1 。 • 控制 VM 的 CPU 使用權重:此參數可規範當多台 VM 共用一顆 CPU 核心 時,哪些 VM 有較高的使用優先權,而哪些 VM 的使用優先權較低,也會 造成 VM 之間的效能不同。例如在 Linux cgroups 的 cpu.shares 設定中,數值 常見範圍為 1-65535;在 Xen Credit Scheduler 的 weight 之中也是相同。假設 VM0 設為 512,VM1 設為 256,則代表 VM0 的使用 CPU 優先權為 VM1 的 兩倍範圍。本研究將此參數定義為 u2 。 以 u1 代表控制 VM 的 CPU 利用率上限,以 u2 代表控制 VM 的 CPU 使用權重; 再依照公式(3.1)所提到的 VM 負載模型,負載 LV (v) 獲取的公式可描述為(4.1)。 LV (v) = f (u1 , u2 ). 4.1.2. (4.1). 基因表達程式規劃染色體編碼. 依據公式(4.1),VM 負載模型可由 u1 , u2 參數描述,此模型需在 GEP 表示為染色 體。我們設定頭長度為 7、尾長度為 8、總長度為 15 的染色體,而這個染色體代 表的是一個負載的模型,其中所採用的運算子如表4.1。例如公式(4.2)即是一個負 載模型,其染色體結構與樹狀型態可見圖4.1。 LV (v) = ln((1/u2 ) + ((u1 × (−0.3)) × (u1 × (−0.2)))). (4.2). 為了使 GEP 迴歸在本問題上有較好的表現,根據多次調效測試後,發現染色體 長度太短,模型難以達到較好的精確度;長度太長,模型精確度無法有效提升且 增加計算複雜度。. 27.

(35) 表 4.1: GEP 迴歸所使用之運算子 Name. Definition. Addition. (x + y). Subtraction. (x − y). Multiplication. (x ∗ y). Division. (x/y). Floating-point remainder mod(x, y) Power. pow(x, y). Square root. sqrt(x). Exponential. exp(x). 10. 4.1.3. x. pow(10, x). Natural logarithm. ln(x). Logarithm of base 10. log(x). Floor. f loor(x). Ceiling. ceil(x). Absolute value. abs(x). Inverse. 1/x. Negation. −x. No operation. x. x to the power of 2. x2. Cube root. x1/3. Minimum of 2 inputs. min(x, y). Maximum of 2 inputs. max(x, y). Average of 2 inputs. avg(x, y). Complement. (1 − x). 基因表達程式規劃模型衡量. 迴歸分析會試圖從一個問題的輸入輸出之中找出相對應的合理關係並描述為模 型。在此問題的輸入輸出就是由模型 f 所影響,但實際上 f 可能不存在或難以 推導出;因此我們針對一台 VMH 上唯一的 VM 執行工作,設定各種 u1 , u2 參數 的不同組合並量測 VMM 排程下所導致的負載狀況,最後蒐集出 n 筆參數與負載 的對應資料為一個集合 S = {⟨u1i , u2i , LV (v)⟩|i = 1, . . . , n},其中 u1i , u2i , LV (v) 為 28.

(36) ln. + *. Inv. u2. *. *. u1. ln. +. Inv. *. u2. u1. -0.3. *. *. u1. -0.3. u1. -0.2. Head. -0.2. u2. u2. u2. u1. Tail. 圖 4.1: GEP 染色體編碼示意圖 第 i 筆資料的 u1 , u2 與 VM 負載值,再將集合 S 套入迴歸分析。目的是從中找出 一個模型 f˜,能在相同輸入下,獲得近似模型 f 的輸出,以求出 LV (v) 的估計值 ˜ V (v),如公式(4.3)(4.4),ϵ 為可接受的誤差值。 L ˜ V (v) = f˜(u1 , u2 ) L. (4.3). |f (u1 , u2 ) − f˜(u1 , u2 )| < ϵ. (4.4). 而蒐集的資料筆數 n 要夠大,才足以分析出準確的模型,可能需要達數千筆;並 以(4.5)的公式 MSE 作為成本函數,來衡量模型套用至整個集合 S 的誤差程度,且 要求這樣的誤差必須小於一定的值。 1∑ MSE = (f (u1 , u2 ) − f˜(u1 , u2 ))2 n i=1 n. (4.5). 模型建立流程如圖4.2。. 4.2 虛擬機伺服器配置最佳化方法 要解此負載平衡問題,需要耗費大量時間進行運算,因此需要較快速又準確的方 法;本研究採用 GA 以快速地找出各台 VM 在特定參數下於各 VMH 上的最佳配 29.

(37) 圖 4.2: 虛擬機負載模型建立流程 vm0 vm1 vm2 0. 1. 2. …. vmj. …. …. vmk-1. …. ( -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 位 於. 30.

(38) vm0 vm1 vm2 vm3 vm4 vm5 vm6 vm7 vm8 vm9 vm10 vm11. 0. 2. 1. 2. 0. 1. 0. 1. 2. 1. 2. 0. (a) GA 染色體編碼範例. vm0 vm11 vm6 vm4. vm9 vm2 vm5 vm7. vm1 vm8 vm3 vm10. vmh0. vmh1. vmh2. Network. Shared Storage. (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 編號。 31.

(39) 4.2.3. 基因演算法適性值函數設計. 基因演算法進行演化時,需要有機制來評估染色體 ξ 的優劣,即是 GA 的適應性 函數 f itness(ξ),在本研究中,得出的數值越高代表適應性越好,計算方法如下 步驟。 假設 i = 1, . . . , k 而 j = 1, . . . , p,其中 k 為 VM 數量,p 為 VMH 數量。要得 ˜ H (hj ),可計算染色體 ξ 內所有基因 hξi 等於 j 的 到 LH (hj ) 的負載模型推估值 L ˜ V (vi ) 之集合來取得,如公式(4.6)。各台 L ˜ V (vi ) 由第一階段所獲得之負載模型計 L 算出。 ˜ H (hj ) = L. k ∑. ˜ V (vi ), hξi = j L. (4.6). i=1. 依照上述公式取得所有 VMH 的近似負載並進行檢查,如果有任一台的負載數值 超過上限或小於下限,即判斷為不平衡狀態,適性值將強制設為 0 且計算結束。 如果所有的負載數值皆在範圍內,則進一步計算 α 與 f it(ξ) 的積,以獲得適性 值,如公式(4.7)。.     0,. f itness(ξ) =. ˜ H (hj ) < LLj or L ˜ H (hj ) > LU j if L.    α × f it(ξ),. (4.7) ˜ H (hj ) ≤ LU j if LLj ≤ ∀L. 因遷移會造成 VMH 的額外負擔,所以除了需要良好的 VM 配置外,也要求需要 遷移的次數越少越好;α 會把染色體 ξ 與當下 VM 配置的「實際狀況」所編碼成 的染色體 ξ ′ 進行比較,如果 hξ′ i ̸= hξi ,代表需要進行遷移,並累計一次 q,如 果 hξ′ i = hξi ,就表示未發生遷移。發生的遷移次數越多,適性值就會越低,如公 式(4.8)(4.9)。 k− α=. ei =. ∑ ∀i. ei 0≤q≤1. ,  k    q, if hξ′ i ̸= hξi. (4.8). (4.9).    0, if hξ′ i = hξi 32.

(40) ˜ V (vi ) 之範例 表 4.2: 獲取 L 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. ˜ V (vi ) L. 5.4. 5.3. 5.6. 2.6. 3.9. 4.2. 3.9. 6.0. 4.2. 4.7. 5.2. 6.4. vm0 vm1 vm2 vm3 vm4 vm5 vm6 vm7 vm8 vm9 vm10 vm11. ࣈԢ. 0. 2. 1. 2. 0. 1. 0. 1. 2. 1. 2. 0. ࣈ. 0. 1. 1. 2. 0. 0. 2. 1. 2. 1. 2. 0. 圖 4.5: GA 染色體遷移範例圖. 函數 f it(ξ) 的計算目的為衡量各台 VMH 負載的相近程度。對每兩台 VMH 的負載 數值進行相減並取絶對值再加總 (相減次數為 p(p − 1)/2),即可得到任兩台 VMH 負載總差距;這個差距越小,代表各台 VMH 的負載越平衡,為了方便計算適性 值,我們以理論最大總差距: p(p − 1) ˜ H (hj )}) max({L ∀j 2 除以實際總差距,使數值的特性改為越大越代表負載越均衡;最後計算 ln 讓數值 尺度變化較為平緩,如公式(4.10)。 ˜ H (hj )}) p(p − 1) max({L ∀j ) f it(ξ) = ln( ∑ ˜ ˜ H (hb )| 2× |LH (ha ) − L. (4.10). ∀a,b a̸=b. 以 圖4.4(a) 染 色 體 為 ξ 來 呈 現 一 個 f itness(ξ) 計 算 範 例。先 以 公 式(4.2)為 ˜ V (vi ),如表4.2;並統計三台的 L ˜ H (hj ),各為:19.9, 21.6, 16; 負載模型來取得 L 本 範 例 設 定 VMH 的 負 載 上 限 LU = 25,經 檢 查 所 有 VMH 皆 未 超 載,可 進 一 步 計 算 f itness(ξ) 值。先 計 算 α,比 對 ξ 與 ξ ′ ,如 圖4.5,其 中 vm1 從 vmh2 33.

(41) 圖 4.6: 以基因演算法尋找最佳平衡配置流程 遷 移 到 vmh1 ,vm5 從 vmh1 遷 移 到 vmh0 ,vm6 從 vmh0 遷 移 到 vmh2 ,共 發 生 三 次 遷 移,在 此 q 設 為 1:α =. 12−(3×1) 12. = 0.75。接 下 來 計 算 f it(ξ),從 上 述. ˜ H (hj ) 可 得 知:f it(ξ) = ln( 3×21.6 ) = 1.75;將 α × f it(ξ),最 後 得 到 三台的 L 11.3 f itness(ξ) = 0.75 × 1.75 = 1.31。透過 GA 的演化過程,希望能夠找到適性值最高 的 VM 配置方式,處理流程如圖4.6。. 4.3 負載平衡機制設計 當資料中心建立完畢後,可根據伺服器的歷史資料建立負載模型,步驟如圖4.2。 有了 VM 的負載平衡模型之後,即是一個可參考的依據。接下來指定一台 VMH, 以集中式架構來進行負載平衡動作,步驟如下: Step 1: 每間隔一段時間量測所有 VMH 的負載狀態,並視負載狀況做後續動作。 Step 2: 確認是否所有的 VMH 負載皆保持在適當範圍內,如果是則為平衡狀態, 不作任何動作。否為不平衡狀態,需進行下一步的處置。 34.

(42) 圖 4.7: 負載監測與平衡流程圖 Step 3: 啟動基因演算機制,以負載模型為依據來尋找最佳平衡配置,步驟如 圖4.6。 Step 4: 依照此配置進行 VM 線上遷移,使負載回到平衡狀態。 Step 5: 重複以上步驟。 負載監測與平衡流程如圖4.7。. 35.

(43) 第五章 實驗與結果分析 5.1 實驗環境與架構 實驗環境總共使用三台 HP ProLiant BL460c 刀鋒型伺服器作為 VMH,每台包含兩 顆 Intel Xeon E5620 CPU,為 4 核心 (8 執行緒),執行時脈 2.40 GHz,主記憶體大 小各為 16GB、16GB 與 14GB。使用一台 HP ProLiant ML110 為共享儲存裝置,含 一顆 Intel Xeon CPU 3065 CPU,為 2 核心 (2 執行緒),執行時脈 2.33 GHz,主記 憶體大小為 4GB。VMH 與 VM 作業系統皆為 CentOS 6[58];共享儲存裝置則使用 FreeNAS 為作業系統。虛擬化平台採用 KVM,並透過 iSCSI 介面對共享儲存裝置 進行掛載,共有 12 台 VM,本實驗的集中式負載平衡機制由 VMH0 結點執行並主 導控制。如圖5.1。 在第4.1.1節,我們說明了兩個影響 VM 資源利用狀況的參數,實驗平台以 cgroups(control groups)[59] 技術中的 cpu.cfs_quota_us 實作「控制 VM 的 CPU 利用 率上限」參數,以 cpu.shares 實作「控制 VM 的 CPU 使用權重」參數。Cgroups 為 Linux 核心的功能之一,可用來限制、計量與隔離 VM 資源 (如 CPU、記憶體與其 它 I/O) 的利用情況。 為了 量測負 載,我 們 使 用 了 一 個 C 語 言的程 式,它包含 了計算 密集與 I/ O 密集的運作,可以呈現 VM 運算資源被使用的情形,同時也反映了 VM 的 負 載 狀 況。其 中 計 算 密 集 的 部 份 是 在 一 定 時 間 內 重 複 執 行 sin((double)rand() / RAND_MAX) 指令,再加以平均,得到每秒執行次數,基本單位為 Operations per second;I/O 密集的部份則是在一定時間內重複讀取/dev/zero 的資料並寫入/dev/ null,再取平均,得到每秒讀取及寫入的資料量,基本單位為 Bytes per second。最 後將兩筆資料進行適當地尺度縮放後加權相加,呈現一個資源利用程度的數值,. 36.

(44) VMH0 HP ProLiant BL460c 4 Cores CPU x 2, 2.4 GHz 16 GB RAM CentOS 6. VMH2 HP ProLiant BL460c 4 Cores CPU x 2, 2.4 GHz 14 GB RAM CentOS 6. VMH1 HP ProLiant BL460c 4 Cores CPU x 2, 2.4 GHz 16 GB RAM CentOS 6. Centralized Load Balancing Program Running on VMH0. 1Gbps Ethernet Uplink. 1Gbps 24 Port Ethernet Blade Switch 1Gbps Ethernet iSCSI Shared Storage HP ProLiant ML110 2 Cores CPU x 1, 2.33 GHz 4 GB RAM FreeNAS. RAID-5: 2TB HDD x 4 for Storage Flash Memory x 1 for OS. 圖 5.1: 實驗環境 消耗的資源越多,代表負載越高,此數值也越大,此負載值沒有理論上限,但以 本實驗平台的硬體效能而言,單台 VM 搭配最高的 cpu.cfs_quota_us 與 cpu.shares 參數,所造成的資源消耗之負載值為 10.17。 負載資料蒐集的過程是使用其中一台 VMH 及一台 VM,由這台 VM 執行負 載量測程式,搭配亂數的方式來調整 VM 參數,設定 1024 種不同的參數組合,其 中 cpu.cfs_quota_us 的設定範圍為 10000-100000,cpu.shares 的設定範圍為 1-1024, 每個組合量測 7 次負載,總共可獲得 7168 筆參數對應負載的紀錄。. 5.2 負載模型迴歸分析方法之比較 進行 GEP 迴歸分析所採用的參數設定如表5.1,所使用之運算子如表4.1。要確 保 VM 負載模型的效果,本實驗目的為使用不同的迴歸方法分析 VM 負載資料, 再針對各方法進行比較,迴歸方法包含 GEP、多項式 (POL)、線性 (LIN)、指數 (EXP) 與次方 (POW),並將 7168 筆負載資料分為 6450 筆 (90%) 與 718 筆 (10%), 前者用於訓練,後者用於驗證。. 37.

(45) 表 5.1: GEP 相關參數 Parameters. Value. Max Generations. 6000. Population size. 30. Gene head length. 7. Gene tail length. 8. Prob. Mutation. 0.00206. Prob. Transposition. 0.00277. Prob. Recombination 0.00277 1. MSE. MAE. MAPE. 0.8. 0.6. 0.4. 0.2. 0 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%. 圖 5.2: GEP 訓練資料筆數分析 為了獲取較佳的負載模型,我們對原本 6450 筆訓練資料各自隨機挑選其中 的 10%、20%、30%、40%、50%、60%、70%、80%、90%、100% 來進行迴歸分 析,並套用於前述的 718 筆驗證資料,以 MSE、MAE 與 MAPE 分析結果。經由 圖5.2發現採用 90% 的資料量來訓練效果最佳,因此後續訓練皆採用 6450 筆的其 中 90% 資料。各種迴歸方法產生的負載模型範例如下: • POL:−0.166 + 0.0939 × u1 + 0.0001 × u21 − 0.00004 × u2 + 0.00000001 × u22 • LIN:−0.3235 + 0.103 × u1 − 0.00002 × u2 • EXP:exp(−0.4866 + 0.0337 × u1 − 0.00004 ∗ u2 ). 38.

(46) 表 5.2: 各種迴歸方法產出模型精確度之比較 GEP. POL. LIN. EXP. POW. MSE. 0.02. 0.02. 0.02. 4.86. 0.13. MAE. 0.12. 0.12. 0.12. 1.54. 0.27. MAPE. 10.76. 11.15 21.80. 78.37. 7.40. 表 5.3: 各種迴歸方法產出模型運算子數量之比較 GEP POL 7. 10. LIN. EXP. POW. 4. 5. 4. • POW:0.0394 × u11.2216 × u−0.0004 2 • GEP:ln((1/u2 ) + ((u1 × (−0.3)) × (u1 × (−0.2)))) 將訓練所獲取的模型以前述的 718 筆驗證資料分析效果後,呈現以下資訊。 在表5.2的數據中,粗體代表最好,其中 GEP 方法在 MSE、MAE、MAPE 表現皆 最佳。在表5.3,GEP 所使用的運算子比多項式迴歸還要少,也花費較少運算時 間。由圖5.3可以看出,對 718 筆驗證資料套入各模型所出現的誤差分佈狀況, GEP 大多數的誤差皆為最低等級,顯示 GEP 的模型輸出較具穩定性,不容易有大 起大落的誤差狀況發生。. 5.3 負載平衡策略之比較 本實驗目的在於比較不同負載平衡策略應用在不同場景上的成效,整體流程如 第4.3節所述,採用兩個指標評估負載平衡的效果。 • LB 值:衡量負載平衡的效果。採第4.2.3節的 f it(ξ) 計算方式,各台 VMH 負載的越相近,LB 值越高。 • Round* :衡量負載平衡機制的效率。在開始執行負載平衡動作後,平均要花 39.

(47) 100. GEP. POL. LIN. EXP. POW. 80 60 40 20 0. 09. 0.. 09. 0.. 08. 0.. 07. 0.. 06. 0.. 05. 0.. 04. 0.. 03. 0.. 02. 0.. 01. 0.. (a) MSE 100. GEP. POL. LIN. EXP. POW. 80 60 40 20 0. 5 .4 >0 5 .4 <0 0 .4 <0 5 .3 <0 0 .3 <0 5 .2 <0 0 .2 <0 5 .1 <0 0 .1 <0 5 .0 <0. (b) MAE 100. GEP. POL. LIN. EXP. POW. 80 60 40 20 0. 45. 45. 40. 35. 30. 25. 20. 15. 10. 5. (c) MAPE. 圖 5.3: 各種迴歸方法產出模型之誤差分佈百分比比較. 40.

(48) 表 5.4: GA 相關參數 Parameters. Value. Max Generations. 1500. Population size. 50. Prob. Crossover. 0.7. Prob. Mutation. 0.4. 費多少個回合才能夠使 LB 值大於 0,回合數越少,代表負載平衡速度越快。 實驗以 libvirt[60] 為 VMM 的存取介面,它處理 VM 的啟動、暫停、遷移等管 理動作,GA 及其它負載平衡策略的決策部份由 C++ 實作。VMH 的負載上限 LU = 25,下限 LL = 0。負載平衡共執行 40 個回合,有 A、B、C、D 四個場景與 7 種不同的負載平衡策略。負載平衡策略以第4.2節所介紹的以 GEP 模型搭配 GA 為主,因過去的實驗顯示,適性值達到 1.2 以上即有一定效果,所以依照此經驗 設定相關參數,如表5.4,且染色體長度與當時執行中的所有 VM 數量相同。實驗 以我們提出之方法 (Ours) 比較其它 6 種常用的策略,分別為: 1. LtoS:各台 VMH 內造成負載最高的那一台 VM 遷移到負載最低的 VMH 內。 2. LtoR:各台 VMH 內造成負載最高的那一台 VM 遷移到隨機選擇的 VMH 內。 3. StoS:各台 VMH 內造成負載最低的那一台 VM 遷移到負載最低的 VMH 內。 4. StoR:各台 VMH 內造成負載最低的那一台 VM 遷移到隨機選擇的 VMH 內。 5. RtoS:各台 VMH 內隨機選擇一台 VM 遷移到遷移到負載最低的 VMH 內。 6. RtoR:各台 VMH 內隨機選擇一台 VM 遷移到遷移到隨機選擇的 VMH 內。. 41.

(49) 其中 RtoR 的隨機因素較多,因此執行兩次實驗,分別為 RtoR¹ 與 RtoR²。 圖5.4、5.5、5.6與 5.7呈現了各個負載平衡實驗所有 VMH 的負載變化過程, 其中細線條代表各台 VMH 負載,紅色粗線條代表 LB 值,當 LB 值大於 0,表示 有達到基本的平衡狀態,且越高代表各台 VMH 的負載越接近、越平衡。場景 A 與場景 B 模擬特殊狀況,場景 C 與場景 D 模擬日常可能會發生的狀況,場景實驗 在以下各子章節分別說明。. 5.3.1. 場景 A. 為了瞭解本方法在極端環境下的效果,場景 A 模擬所有的 VM 聚集至隨機一台 VMH 內造成過載狀況,並觀察各負載平衡策略的效果。在本實驗我們設定第 1 回 合與第 21 回合之前會進行集中 VM 的動作,VM 起始狀況為隨機分佈。圖5.4為 40 回合中各台 VMH 的負載與 LB 值變化趨勢。表5.5為所有策略下各 VMH 負載 的平均值與標準差資訊,表5.6為所有策略之 LB 值的平均、標準差與 Round* 值, 表 5.5: 負載平衡各 VMH 效果 -場景 A (a) VMH 各別負載平均值、總平均值與各平均值的標準差. Ours LtoS. LtoR. StoS. StoR. RtoS. RtoR¹. RtoR². VMH0. 24.5. 25.0. 14.3. 26.2. 30.5. 19.2. 11.4. 10.2. VMH1. 23.2. 19.9. 33.4. 16.8. 3.7. 25.7. 20.6. 43.4. VMH2. 24.3. 25.7. 20.8. 26.9. 29.3. 25.8. 35.0. 14.5. Average. 24.0. 23.5. 22.8. 23.3. 21.2. 23.6. 22.3. 22.7. StdDev. 1.0. 4.5. 13.7. 8.0. 21.4. 5.3. 16.8. 25.6. (b) VMH 各別負載標準差與各標準差的平均值. Ours. LtoS. LtoR. StoS. StoR. RtoS. RtoR¹. RtoR². VMH0. 42.1. 77.4. 57.4. 98.2. 168.1. 55.3. 55.6. 55.0. VMH1. 33.9. 62.6. 92.8. 61.6. 22.2. 74.6. 108.7. 68.6. VMH2. 41.7. 74.9. 88.1. 100.4. 169.7. 73.2. 116.3. 54.4. Average. 39.2. 71.6. 79.4. 86.7. 120.0. 67.7. 93.6. 59.3. 42.

(50) 表 5.6: LB 值與 Round* -場景 A. LB *. Round. Ours LtoS. LtoR. StoS. StoR. RtoS. RtoR¹. RtoR². 3.5. 0.0. 0.8. 0.9. 0.0. 1.0. 0.6. 0.5. 1.0. 20.0. 14.5. 9.0. 20.0. 7.5. 15.5. 14.5. 從圖5.4可觀察到,在第 1 回合與第 21 回合,因為 VM 被集中,所有策略在 那個時候的負載皆呈現兩極化,LB 值為 0。與其它策略比較,本方法很快就可 以重新將負載平衡回來,其它策略則需要花費較久的時間,甚至如 LtoS 或 StoR, 使用了 20 個回合的時間依然無法平衡負載。從平衡效果來看,本方法上各台 VMH 負載在大部份的時間都非常接近,可看到圖上的三條細線相當緊密且穩定, 負載平衡效果好,也因此 LB 值較高。其它策略就算達到負載平衡,各 VMH 的負 載卻仍有較大的差距,因此 LB 值雖大於 0 但較本方法來得低,負載平衡效果較 差。而 LtoS 因為把所有 VMH 內負載較重的 VM 全部遷移至原先負載最輕的第一 台 VMH,容易在短時間內造成過度的影響,負載最輕的 VMH 可能變成負載過重 的 VMH,反之亦然,導致各台 VMH 的負載不斷震盪而難以平衡。LtoR 因為接 收 VM 的 VMH 可能不是同一台,不會造成那麼大的震盪效果,較容易達成負載 平衡。StoS 則每次選擇負載最輕的 VM 進行遷移,逐漸達成負載平衡,雖然速度 可能較慢,但穩定許多。有採用隨機部份的策略,可能前一刻效果很好,下一刻 效果很差,穩定性低。 表5.5(a)可看到各策略之各台 VMH 負載趨勢變化的中心,如果各台 VMH 的 中心相差太遠,表示平衡效果不佳,從標準差來看,StoR 及 RtoR² 就是如此,對 照圖5.4可看出。如果各台 VMH 的中心相距較接近,平衡效果可能較好,如本方 法,但也有例外,如 LtoS,因為各 VMH 負載整體中心接近,不代表在單一時間 點下的各 VMH 負載接近,所以需要進一步觀察表5.6的 LB 值,本方法的 LB 平均 最高,而 LtoS 則是 0,一次負載平衡都沒達到。一般而言,我們希望一個策略的. 43.

(51) 穩定度越高越好,表5.5(b)呈現了各策略之各台 VMH 負載趨勢變化的分散程度, StoR 與 RtoR¹ 因為平衡速度太緩慢,導致 VMH 負載長時間維持高度落差,而使 得各標準差平均值高;而 LtoS 雖然不穩定,但因為快速拉近負載差距,震盪的範 圍不大而讓各標準差平均值介於中等,可參考圖5.4,相較之下,本方法各 VMH 標準差平均值最低,穩定性最高而且平衡效果又是最好的。在達成平衡的速度上, 表5.6顯示的 Round* 指標,本方法平均只用了一個回合就達到平衡,速度非常快; 較穩定的 StoS 與 RtoS 次之,有採用隨機部份的策略則可能部份表現好,部份表 現不佳而拉低平均,最後大起大落的 LtoS 因為震盪,始終無法達到平衡。LB 值 的標準差部份,LtoS 與 StoR 雖然最小最穩定,但 LB 值平均恆為 0,效果最差; 而 LtoR 與 RtoR¹ 的 LB 值標準差最大,穩定度低,效果又不太好;本方法的 LB 值標準差介於中間,因為本方法的 LB 值本身較其它策略高、效果好,但 LB 最低 值與其它策略一樣,同樣為 0,因此 LB 值分佈範圍稍大,標準差才會呈現這樣的 結果。. 5.3.2. 場景 B. 此場景模擬各 VMH 負載在最平穩的情況,並觀察各策略執行的負載平衡效果。 VM 起始狀況為隨機分佈,除了開始時負載不平衡之外,中途皆不做任何干涉。 圖5.5呈現 VMH 的負載與 LB 值變化趨勢,表5.7與表5.8列出了負載平衡的整體效 果。 圖5.5顯示出在第 1 回合時各策略的負載皆是不平均狀態,LB 值為 0。與場 景 A 一樣,本方法在第一時間就平衡回來,且各台 VMH 的負載非常接近,LB 值 高。另外較穩定的 StoS 與 RtoS 也能快速達成平衡,只是平衡效果沒有本方法好。 LtoS 同場景 A,仍然不斷震盪,無法平衡負載。LtoR 的狀況稍好一些,原因同場 景 A。 表5.7(a)顯 示 的 各 策 略 各 台 VMH 負 載 趨 勢 變 化 的 中 心,本 方 法 依 然 最 接. 44.

參考文獻

相關文件

Proceedings of the 19th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval pp.298-306.. Automatic Classification Using Supervised

A dual coordinate descent method for large-scale linear SVM. In Proceedings of the Twenty Fifth International Conference on Machine Learning

Mehrotra, “Content-based image retrieval with relevance feedback in MARS,” In Proceedings of IEEE International Conference on Image Processing ’97. Chakrabarti, “Query

in Proceedings of the 20th International Conference on Very Large Data

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

Selcuk Candan, ”GMP: Distributed Geographic Multicast Routing in Wireless Sensor Networks,” IEEE International Conference on Distributed Computing Systems,

Godsill, “Detection of abrupt spectral changes using support vector machines: an application to audio signal segmentation,” Proceedings of the IEEE International Conference

Shih and W.-C.Wang “A 3D Model Retrieval Approach based on The Principal Plane Descriptor” , Proceedings of The 10 Second International Conference on Innovative