從vCD 9.7版本開始,除了包含以前就有的三種不同虛擬數據中心的資源配置模型外,現在新增了一種全新的模式,稱為“Flex Allocation Model”,官方文件翻譯成”彈性配置模型“,官方文件裡的說明為”系統管理員可以使用彈性配置模式建立組織虛擬資料中心 (VDC)。透過組合使用彈性配置和 VDC 運算原則,系統管理員可以控制 VDC 和個別虛擬機器 (VM) 層級的 CPU 與 RAM 使用量”,相信大家看了也不是很清楚它在說什麼,今天就來稍微解釋一下這個新的功能是想解決什麼樣的問題和適合的使用場景。
虛擬資料中心 (VDC)
VDC如同字面上的意思,就是把資料中心的所有資源封裝起來給使用者使用。每個資料中心有其自有的特性和不同的硬體規格(服務等級), 在虛擬化的環境中,服務提供商運用VMware的解決方案vCloud Director將資料中心內實體的運算、網路和儲存資源,分門別類組合成一個個稱為Provider Virtual Data Center (PVDC)的叢集,然後根據不同硬體特性所組合而成的這些PVDC,服務提供商基於此,可以在其之上依比例分配適當的資源,配置不同的資源模式以建立多個組織虛擬資料中心 (Organization VDC, OVDC),提供給他的租戶使用(如下圖Bronze PVDC內有藍、綠、黃等OVDC分配給不同的租戶使用)。然而,在此相同的PVDC內,由於底層硬體資源特性一致化的緣故,有可能它只適合運行某類的應用而較不適合運行其他種類的應用,所以有可能服務提供商必須在資料中心內準備很多不同的PVDC叢集以因應各種形式的應用需求。
目前模型的限制
我們來看看vCloud Director 9.7之前有的OVDC資源配置模型:
1) Pay As You Go:
在vCenter不需要事先預留資源,在隨收隨付模型中,不會預先保留資源,如果資源不足,虛機可能就無法開啟電源。在此模型下作業的虛擬機器無法利用相同子資源集區上閒置虛機的資源,因為資源是在虛擬機器層級設定。依預設,在隨收隨付 OVDC 中,虛擬機器從 OVDC 設定取得其保留、限制和共用設定。可藉由新增多個資源集區到PVDC 來讓隨收隨付OVDC 具有彈性。認可給組織的資源會套用在虛擬機器層級。在此OVDC中每台虛機中的每個vCPU的CPU速度都是一樣的配置,要改的話,只能在OVDC這個層面改,所以每個VM從性能的角度來看,特性是一樣的(你無法變更個別虛機的預留值)。因此,這種模型比較不適合那些想在這個OVDC裡運行各種不同效能組合工作負載虛機的租戶。
2) Reservation Pool vDC:
保留集區配置模型,當你想要對虛機做更精細的效能管控,從服務提供商的角度來看,要建立這種模型,必須在vCenter底層事先預留足夠的資源(一般來說是資源池的reservation和limits),服務供應商也要注意,這種模型不是一種可彈性延展的資源使用模型,當租戶虛機資源總使用量接近單一叢集的上限時,需要另外手段確保服務運行。另外,這種模型對服務提供商而言成本花費比較高,因為租戶有可能無法有效運用過度認可(overcommit)手段達到資源共享好處,或租戶使用者可能會在虛機上設定不佳的共用、速率以及限制,導致資源使用量過低,而這些資源服務提供商無法拿來做其他運用。
3) Allocation Pool vDC:
使用配置集區配置模型時,PVDC 有一部分資源會保留給OVDC (非VM)。您可以指定 CPU 與記憶體的百分比。此百分比稱為百分比保證因素,允許您過度認可資源。從 vCloud Director 5.1.2 開始,系統管理員可以將配置集區組織 VDC 設定為具有彈性延展或不具彈性。彈性屬於全域設定,會影響所有配置集區組織 VDC。然而,這種模型也不適合有不同虛機效能需求的租戶使用,所有的虛機會在vCenter底下自動建立出來的資源池裡互相爭搶資源,個別虛機無法再做進一步的效能設定, 資源彈性延展無法僅指定到個別的OVDC,這種OVDC較適合每台虛機只需要最低效能要求,但在運行峰值也能得到限制的那些虛機。
實際使用情境的需求
現行的VDC模型,租戶無法得知或分辨不同VDC之間的服務等級(quality of service)為何?不同種類的工作負載對資源自然有不同的要求,舉例來說,對資料存取要求很高的應用,租戶可能想利用有SRIOV功能的網卡, 為了要使用SRIOV的網卡,那就必須確保該虛機預留100%記憶體的資源,以今日的狀況來說,為了滿足類似租戶的要求,服務提供商必須再額外建立一個新的VDC來因應這種業務需求,但是如果在這個 VDC裡並不是所有的VM都要用到100%的記憶體預留模式,只是有那些SRIOV需求的才會用到,再者,如果某些虛機要求很低的CPU延遲而某些要利用記憶體Huge Pages的設定之類的要求,雲服務提供商目前並無法針對這樣的需求,提供租戶可自服務的解決方案。
根據上面隨收隨付模型所提供的資源模式,許多租戶無法彈性的在其vAPP中運行例如對高效能要求較高的虛機,例如低CPU延遲,在網站應用程式的vApp中,或許只有資料庫的虛機需要用到這種高效能的配置,如果要達到這種要求,系統就需要可以針對每台虛機設定相對的R/L/S(Reservation/Limit/Share),再者也要可以對vCenter底層提供的資源池做相應的調整,一個對CPU低延遲要求的工作負載一般需要設定為100%的CPU預留,unlimited的CPU限制,其相對應的資源池也必須設為unlimited的CPU限制。
那麼假如服務供應商可以簡單的透過在現有的叢集中,增加一些ESX主機(來因應運行這些有高效能需求的虛機),新增一個”虛機群組名“給這些主機,然後我們可以在vCD中新增一個新的運算原則,這個運算原則內的設定的vCPU速度等於主機實體CPU的速度,虛機CPU的預留值訂為100%,CPU的限制為無限制,並做好相應的記憶體設定, 並且這個運算原則也包含了剛剛所述的”虛機群組名”以便未來在部署虛機時可一併套用“主機群組原則”(host group affinity)。
服務提供商可把這個運算原則命名為 ‘low CPU latency workloads’,原則內也可定義依這種原則允許被新增的虛機數目上限,這樣即可滿足對多租戶管理的需求。運算原則必須事先指派給組織內的使用者,這樣當他們在同一OVDC內創建新的虛機時便可選取到這個原則並使用它。從計費的角度來看,服務提供商也能依不同的運算原則,獲得相關資源的使用情況。
如果沒有這種彈性作法,服務供應商便需要對高效能有特別需求的工作負載,額外的去建立保留集區配置模型的OVDC來滿足這個需求,租戶也需要花額外的時間和精力去和服務提供商協同討論如何正確的設定這種保留集區,這也違背了雲端運算強調的自服務目標。
什麼是彈性配置模式Flex Allocation Model
從 vCloud Director 9.7 開始,系統管理員可以使用彈性配置模式建立OVDC。透過組合使用彈性配置和 VDC 運算原則,系統管理員可以控制 VDC 和個別虛擬機器 (VM) 層級的 CPU 與 RAM 使用量。彈性配置模型支援現有配置模型中可用的所有配置組態。
為了克服現有三種配置模式的不足之處,我們可以考慮使用彈性配置模式的OVDC。
為何租戶需要這種模式?
- 如前面已經提到的,如果要對個別虛機做更細部的R/L/S資源設定。
- 與VDC種類無關的政策導向式的工作負載管理。
何時服務提供商需要建立這種VDC?
- 想對個別的VDC做自動延展管理(elasticity)。
- 對記憶體額外開銷(Memory Overhead)的控制,是包含在VDC本身或者是讓使用者利用服務提供商的資源。
- 確保嚴謹的租戶臨時尖峰使用容量。
- 保留對事先預留或無預留模型的彈性。
當服務提供商建立彈性配置模式 Flex Allocation Model時,可輸入的參數為:(以下說明下為
- Elastic (yes/no)
- vCPU speed每一台虛機中的每一個vCPU可以運行的最高速度。
- CPU Allocation此OVDC內CPU資源總體使用的上限。
- CPU resources guaranteed每一台虛機中CPU資源的保證可使用率。可以利用此參數控制CPU的超用比例。
- Memory Allocation (global per VDC)在此OVDC中全部虛機運行時可用的最大記憶體數量(從PVDC而來)。
- Memory resources guaranteed每一台虛機中記憶體資源的保證可使用率。可以利用此參數控制記憶體的超用比例。
- Maximum # of VMs
指定組織 VDC 的預設 VDC 運算原則:
每一個Flex VDC都至少必須有ㄧ或多個運算原則。
運算原則的概念 (Compute Policy)
剛剛我們提到有所謂的“運算原則”的概念,但這又是什麼呢?從vCloud Director 9.7 開始,服務提供商可以使用運算原則來控制資源配置和虛擬放置。根據範圍和功能,有兩種類型的運算原則 – 提供者虛擬資料中心 (PVDC) 運算原則與 VDC 運算原則。
提供者 VDC 運算原則會定義直接影響承租人工作負載放置的虛擬機器-主機相似性規則。承租人使用者無法查看提供者 VDC 運算原則。
提供者 VDC 運算原則的範圍是處於提供者 VDC 層級。
VDC 運算原則可控制OVDC 層級的虛擬機器的計算特性。由於承租人使用者無法查看提供者 VDC 運算原則,因此,若要公開虛擬機器-主機相似性規則以供承租人使用,可在 VDC 運算原則內參考提供者 VDC 運算原則。
所以每當我們在VDC內要佈署一台虛機時,基本上就需要遵從這兩種原則。簡單來說一個是要把虛機放在哪台主機上的原則,另一個是每台虛機根據效能需求資源選擇的原則。
彈性配置模式支持VDC的運算原則功能,使用者在建立虛機時可以指定R/L/S,結合彈性配置模型和組織VDC運算原則,單一的VDC可以運行那些在不同配置模型裡有著相同設定的虛機種類。
運算原則目前在vCloud Director 9.7須透過vCloud API由服務提供商的雲平台管理者來建立,建立完後也是透過vCloud API發布給特定VDC。
設定方式範例
使用vCloud API完成以下步驟:
- 新增一個運算原則A
- 新增一個運算原則B
- 將原則A和原則B發佈到租戶T1
- 幫租戶T1建立一個彈性配置模型Flex VDC
- 選擇原則A或原則B為預設選項
- 建立虛機
- 選擇要套用哪個原則
另外,我們可以用JSON來定義運算原則,然後用vCloud API命令建立運算原則:
{ "description":"devops-vdc-policy", "name":"devops-vdc-policy", "cpuSpeed":1000, "memory":2048, "cpuCount":1, "coresPerSocket":1 "memoryReservationGuarantee":0.5, "cpuReservationGuarantee":0.5, "cpuLimit":1500, "memoryLimit":2048, "cpuShares":1000, "memoryShares":1000, "extraConfigs":{ "config1":"value1" }, "pvdcComputePolicy":null }
以上就是這篇blog所要與大家分享的內容,希望大家對彈性配置模型有大致上的了解,謝謝!
註記:
- 以下是從VMware官方文件擷取出來的基於組織VDC 配置模式顯示虛擬機器(VM) 或資源集區層級的vSphere 資源分佈設定在各種不同配置模型的比較,原文在這裡。