第二章 相關工作
第三節 動態資源管理(Dynamic Resource allocation)
2. 半虛擬化(Para-virtualization)
則與全虛擬化不同之處是它無法完全模擬,而必須在基礎硬體設施上需安裝 Host OS 才可進行模擬(如圖 4 所示)。半虛擬化技術必須在底層基礎硬體設施所安裝的Host OS 上來安裝虛擬化平台(hypervisor)軟體,藉由此虛擬化平台軟體才可產生模擬 Guest OS 來運行使用,然而在建置上就較為簡易,但在運算效能上則較為低階且有各個 Guest OS 需重新安裝與設定之缺點。
第三節 動態資源管理 (Dynamic Resource allocation)
虛擬機器(Virtual Machine, VM)在雲端運算中已成為最重要的單位資源,在動態 資源管理中我們希望最終能達到有效的運算效能且能適當的節省成本又能達到能源消 耗減少之目標。圖5 顯示動態資源管理之運作方式[6]。
一開始決定VM 的大小是部署 VM 的第一步,它會確定預計所需的資源部署,一旦 VM 確定配置後,VM 將被實作出來並配置到每台實體機器(Physical Machine, PM)上,
當資源管理監測使用情況和性能時,即可判定是否有資源不足導致無法滿足需求和超量
圖5 動態資源管理流程步驟 [6]
或資源使用率低的地方,進而系統從資源較飽合之處移動VM 上之工作任務至資源使用 率低的地方,以達到負載均衡。
隨著虛擬化技術對各種雲端平台變得更加普遍化的情形下,採用此技術的 IT 管理 者不斷增加,在任何雲端運算中虛擬機器的請求數量必須按比例增加伺服器的數量進而 分配工作任務供給運算,以考慮到這點且又能達到減少能源消耗之目標。在文獻[1]中作 者 Jansen 和 Brenner 分別探討了不同的分配方法,將各種用在雲端環境中實體機器上 虛擬機器的分配策略,以下將個別介紹七種分配策略的特性及有效性:
1. Round Robin
此一分配策略為針對每個新VM,經由循序遍尋所提供的 PM,直到在 VM 上找到 一個足夠放置資源的PM。一旦循序找到之後,即將此新 VM 匹配到該主機上。對於下 一個VM,此分配策略便依照歷史位置開始尋找,並再次選擇第一個 PM 可以匹配之 VM,
這個過程一直持續,直到所有VM 均分配完成為止。
2. Striping
此一分配策略在面對每個新VM 時,首先排除所有 PM 無法配置新 VM 的可用資源,
接著從剩餘的PM 尋找一個目前託管 VM 數量為最少,一旦尋找到適合的 PM 並將 VM 匹配到其上,依此類推,直到所有的VM 都分配完成為止。此一策略旨在盡可能的分散 VM 至各個 PM 上。
3. Packing
此一分配策略在面對每個新VM 之要求時,首先排除所有 PM 無法配置新 VM 的可 用資源,接著從剩餘的PM 尋找一個目前託管 VM 數量最多之 PM,一旦尋找到適合的 PM 即將此 VM 匹配到該 PM 之上,其餘新 VM 亦依此方式類推,直到所有 VM 分配完 成為止。此一策略係旨在盡可能將VM 整合在同一 PM,進而減少 PM 的使用。
4. Load Balancing (free CPU count)
同上,首先排除所有PM 無法配置新 VM 的情況,接著從剩餘的 PM 尋找一個 CPU 數量空閒為最多之PM,一旦尋找到適合的 PM 並將其匹配到該 PM 之上,這樣的過程 一直持續到所有新VM 分配完成為止。此一負載平衡策略係旨在盡可能的減少 CPU 負 載。
5. Load Balancing (free CPU ratio)
同上,首先排除所有PM 無法配置新 VM 的情況,接著從剩餘的 PM 尋找一個 CPU 數量空閒比例為最大,一旦尋找到適合的PM 並將匹配到該 PM 之上,這樣的過程一直 持續到所有新VM 分配完成。此一負載平衡策略係指盡可能的減少 CPU 負載,是一項 稍微好些的負載平衡策略以閒置與忙碌的比例為基礎。
6. Watts per Core
同上,首先排除所有PM 無法配置新 VM 的情況,接著從剩餘的 PM 尋找一個將導 致使用最少額外的電力瓦數,一旦尋找到適合的PM 並將其匹配到該 PM 之上。在這個 額外的電力瓦數計算,假設PM 可以處為低功率耗電狀態(例如:關機、休眠)所計算 的有效電力視為0 瓦。這樣的過程一直持續到所有新 VM 分配完成為止,此一策略係指 是試圖找到PM 將佔用最少的額外電力瓦數,藉此降低總能源耗電。
7. Cost per Core
同上,首先排除所有PM 無法配置新 VM 的情況,接著從剩餘的 PM 尋找電源耗費 成本為最低,一旦尋找到適合的PM 並將其匹配到該 PM 之上,這樣的過程一直持續到 所有新VM 分配完成為止。此一策略係指是試圖找到 PM 將佔用最少額外電力耗費金額,
藉此進而減少整體能源耗費金額成本。
在文獻[8]中,目前的學者所研究的資源分配方法都著重於優化分配實體資源、相關 聯的虛擬機器和遷移虛擬機器,由於這些方法需要暫停雲端運算相關的虛擬機器及關閉 應用程序,為了解決這類的問題,文獻[8]則提出應用程序的負載變化和基於門檻值動態 資源分配的原則,提高資源的使用率。在一般情況下,網路應用程序(例如:Web 應用 程序)的工作負載量有變化時,使用靜態資源分配方法分配固定的資源,應用程序可能 會有效能降低之情形,若資源不足或應用程序不是在高負載時,會導致資源被浪費。設 計一個動態資源分配管理方式,將可以調整資源分配給應用程序,基於門檻值的動態資 源分配管理主要想法是監督、預測雲端應用程序的資源需求和調整應用程序虛擬資源的 實際需求。
文獻[8]基於門檻值動態資源分配的設計基礎上,作者依據應用程序所需資源進行資 源分配。基於門檻值動態資源分配的模型描述如下,制定標準的工作負載量 定義 如下:
(1)
其中 為虛擬機器(或虛擬資源)最大工作負載量, 為管理者定義的門檻值。
則在工作負載量需重新分配時 定義如下:
(
1)
(2)其中 代表管理者自訂極限門檻值, 則是虛擬機器數量。因此L 即是
按工作負載比例重新資源分配。
在文獻[8]的動態資源分配方式,若應用程序的負載變化是穩定緩慢情況下,虛擬資 源就會較長的間隔時間被分配,若應用程序的負載變化是迅速變化情況下,虛擬資源就 會較短的時間間隔被分配。在應用程序的負載變化中,若僅安排當前應用程序的負載時,
系統可能需要頻繁地重新分配虛擬資源,這樣的分配方式將會造成額外的開銷,為了避 免不必要的開銷,因此分配方式使用門檻值的參數設定來調節資源分配的頻率。假設虛 擬資源的應用程序負載量依據公式(1)所計算出的值以內,則就無須重新分配虛擬資 源,一般情況下,在分配到的虛擬資源上應用程序大都處於正常的工作負載內,當然不 可缺少的系統會保留些虛擬資源,預防突然增加應用程序的負載,因此,若應用程序的 負載的變化超過由公式(2)所計算出的值,就會啟動資源重新分配。