為充分利用ESXi 5.0主機資源并避免資源過量使用,防止虛擬機獨占主機資源,設置虛擬機的相對重要性,需要對vSphere 5.0中的相關資源包括CPU、內存、網絡、存儲進行管理。
VMkernel
ESXi虛擬化管理程序稱為VMkernel,只支持64位CPU的主機,但同時支持32位和64位的客戶操作系統(Guest OS,即在虛擬機上安裝的操作系統,比如Windows Server 2008 R2,SuSE Enterprise Linux 11 SP1等等)。VMkernel從虛擬機監視器(VMM,它負責對虛擬機提供硬件資源抽象,為客戶操作系統提供運行環境。)接收虛擬機的資源請求,然后將這些請求傳送給物理硬件。
份額(Share)
份額指定發生資源爭用時虛擬機的相對重要性。例如虛擬機A的資源份額是虛擬機B的兩倍,則在這兩個虛擬機爭用資源時,虛擬機A有權消耗兩倍于虛擬機B的資源。
份額有3個固定的設置值(低、正常、高,這些值將分別按 4:2:1 的比例指定份額值),或者也可以選擇自定義為各虛擬機分配特定的份額值。
預留(reservation)
預留指定為虛擬機預留的CPU主頻或物理內存大小。在啟動虛擬機時,只有ESXi主機或者資源池中的資源滿足虛擬機的預留值大小時,vCenter Server或 ESXi 才允許打開該虛擬機電源,這稱之為接入控制。如果虛擬機預留的資源從未被該虛擬機使用過,那么其他虛擬機是能夠使用這部分資源的。在對虛擬機的資源進行配置時建議使用預留指定該虛擬機可接受的最低 CPU 主頻或內存大小,而不是該虛擬機想要使用的CPU主頻或內存大小。
限制(limit)
限制指定虛擬機可使用的資源的最大值,也就是說虛擬機所使用的資源可大于為其分配的資源預留值,但不會超過資源限制值。如果全部虛擬機所使用的資源的限制總和大大低于資源池可提供的資源,那么資源池中未被使用的資源并不能被充分利用。在沒有設置限制值的情況下,虛擬機能夠使用的資源的限制取決于創建該虛擬機時為其分配的資源。
存儲I/O控制(Storage I/O Control)
虛擬機訪問存儲存在 I/O 擁堵時,存儲I/O控制可以控制分配給特定虛擬機的存儲 I/O 量,從而確保更重要的虛擬機優先于重要性較低的虛擬機獲得 I/O 資源分配。當在數據存儲上啟用 Storage I/O Control 后,ESXi主機將監控主機與該數據存儲通信時的時間延遲(latency)。當時間延遲超出閾值時,訪問該數據存儲的每個虛擬機都會按預先分配的份額比率分配相應的 I/O 資源。vSphere 5.0支持對光纖(FC)連接存儲、iSCSI連接存儲、NFS數據存儲進行I/O控制。
網絡I/O控制(Network I/O Control)
使用網絡I/O控制可以通過配置規則與策略指定虛擬機的業務優先級。當發生網絡I/O擁塞時,網絡I/O控制將根據規則自動分配可用的網絡I/O資源。在vSphere 5.0中可以對單臺虛擬機進行網絡 I/O 控制。
表一:vSphere 5.0資源配置參數一覽表
在對vSphere 5.0的資源進行管理時需要明確以下兩點:
首先,vSphere 5.0包括標準版,企業版和企業增強版共三個版本,不同軟件版本支持的vCPU、vRAM大小是不同的,而且只有企業增強版才支持網絡I/O控制和存儲I/O控制,而且網絡I/O控制是在分布式虛擬交換機而不是標準虛擬交換機上進行的配置。
其次,如下表二所示,vSphere 5.0的資源管理分為三大層次:vMkernel、虛擬機所有者以及vSphere管理員。作為一名vSphere管理員,應重點關注虛擬機四大資源CPU、內存、網絡、存儲的資源分配與控制,同時理解VMkernel對CPU周期以及內存資源的管理機制,確保虛擬數據中心的高效、穩定運行。
表二:vSphere 5.0資源管理的三大層次