在 vSphere 虛擬環境中超額預定 CPU、 內存和存儲的最佳做法
虛擬化的強大功能之一是能夠在單個主機服務器上運行多個不同工作負載,從而***限度地提高該主機服務器的利用率。這有助于組織重塑現代數據中心。十年前,數據中心通常以服務器為中心,而現代數據中心圍繞業務應用程序的需求展開工作,同時確保這些應用程序的高度可用性且不受主機服務器故障影響。
事實上,虛擬化在其他許多方面也徹底改變了數據中心的發展動態。以前的工作負載局限于最初所安裝的硬件,但現代數據中心的工作負載是不斷變化的;它們基于管理員定義的規則集以及主機環境變化在主機之間流動。現代數據中心不斷變化的特性為資源分配帶來了新的挑戰,多年來,市場中不斷涌現出各種免費和付費工具旨在協助管理員進行資源規劃。
虛擬化的興起以更多方式支持硬件使用,而這在十年前從未設想過。彼時,管理員購買的服務器需要進行大小調整以支持單一應用程序的峰值需求,大小調整時需要預估整個服務器硬件生命周期內應用程序可能需要的資源量。很多服務器只部署單個應用程序,因此資源規劃相對簡單。在高度虛擬化的現代數據中心環境中,單個硬件上存在大量I/O模式,資源規劃面臨著新的復雜性。管理員必須深入了解每個應用程序與環境中其他應用程序的交互方式。
在高度虛擬化的環境中,混合模式I/O還能夠大大提高數據中心的效率。過去,管理員通常根據單個應用程序需求調整各個服務器的大小;現在,虛擬環境中的混合I/O模式允許不同峰值需求共享資源。因此,管理員可以在不同應用程序之間非常高效地共享主機資源。
此外,請注意,即使使用虛擬化,管理員有時仍會超額置備資源并調整各個虛擬機的大小以滿足峰值需求。這樣一來,虛擬機中通常會出現未使用的資源。vSphere提供了大量功能強大的方法,可通過這些方法與其他正在運行的工作負載共享閑置資源。事實上,除了能夠共享閑置資源外,為了盡可能在一臺主機上運行更多工作負載,管理員可以超額預定主機上的物理資源。換句話說,管理員為虛擬機分配的資源總量可以超過主機上的實際可用資源。例如,假設某臺主機具有96GB的物理RAM。在適當情況下,管理員可以向該主機上運行的所有虛擬機分配128 GB的RAM。
但超額預定存在哪些限制呢?實際上,限制取決于若干因素。本白皮書概括討論了超額置備、詳細介紹了超額預定的優缺點,并提出了超額預定的一些限制。
資源管理和超額預定:
vSphere 中的超額預定指的是,通過各種方法向物理主機支持的虛擬服務器分配比該主機上可用資源更多的資源。通常情況下,管理員能夠在虛擬機中超額預定CPU、內存和存儲資源。不同管理員對于超額預定物理資源具有不同見解。許多管理員傾向于僅分配物理上可用于支持所有正在運行的工作負載的資源。這是最安全的方案,通常可確保所有正在運行的虛擬機始終具有所需的資源。但是,在回收物理服務器期間會發現,物理服務器并未充分利用其所有資源。從CPU角度來看,平均利用率僅為5%至15%,這意味著存在大量的增長空間。虛擬機通常能夠比過去的物理機更合理地調整大小,但仍存在增長空間,尤其是特定工作負載處于閑置狀態時。許多管理員會利用這些閑置資源,以便在一臺主機上運行更多虛擬機。借助超額預定,管理員可以向虛擬機分配比主機上實際可用資源更多的資源。換句話說,如果所有虛擬機突然請求訪問其分配的所有資源,該主機將沒有足夠資源來滿足需求。資源超額預定確實能夠增加虛擬機密度,但也伴隨著一些風險。一旦某特定資源最終用盡,如果該資源恰好被超額預定,則可能會出現穩定性問題,并可能會導致影響主機服務器上運行的所有工作負載的重大性能問題。
詳細介紹超額預定之前,需要先了解vSphere中內置的資源管理功能。
CPU資源管理:
在vSphere 中,管理員習慣于向虛擬機分配CPU 以支持單個虛擬機的工作負載需求。這些虛擬CPU資源來自主機的可用物理CPU。主機中的物理CPU 數量取決于幾個因素。為了基本理解物理和虛擬CPU管理,您必須了解,在vSphere中,物理CPU(通常縮寫為pCPU)指的是:
· 超線程不存在或未啟用時:單個物理CPU 內核。
· 超線程存在且已啟用時:單個邏輯CPU內核。
下面是一些示例:
- 如果主機有兩個八核CPU但不支持或未啟用超線程,則該主機具有16個物理CPU(8個內核x2個CPU)。
- 如果主機有兩個八核CPU并啟用超線程,則該主機具有32個物理CPU(8個內核x2個CPUx每個內核2個線程)。
- 了解物理資源在vSphere主機上的表現形式后,下面介紹如何將這些CPU資源提供給虛擬機。
在虛擬機中,CPU稱為虛擬CPU (vCPU)。管理員在虛擬機中添加vCPU時,會將每個vCPU分配給一個pCPU,但實際pCPU可能不會始終相同。必須具有足夠的pCPU支持分配給單個虛擬機的vCPU數量,否則該虛擬機將無法引導。
但是,這并不意味著管理員僅局限于主機中的pCPU 數量。分配給虛擬機的vCPU數量與主機中的物理CPU數量之間并不存在1:1的比率。事實上,自vSphere5.0起,每個物理內核最多支持25個vCPU,管理員最多可以向一臺主機上的虛擬機分配2048 個vCPU。
內存資源管理:
vSphere利用多種技術***限度地提高虛擬環境中RAM的使用率。下面列出了各項技術并簡要介紹了每一項的用途:
- 透明頁面共享(TPS)–在大多數虛擬環境中,管理員運行同一操作系統的多個副本。在這些情況下,主機內存中存在大量重復的內存頁面。透明頁面共享基本是一種內存去重形式,vSphere將多個相同的內存頁面組合到一個頁面,釋放其余頁面以用于其他用途。從性能影響角度講,TPS對主機的影響微乎其微。
- ·內存氣球(Ballooning)–在客戶機虛擬機內安裝VMwareTools 時,內存氣球驅動程序會隨其他Tools組件一起安裝。該驅動程序充當Windows 進程,從而允許操作系統使用其常規內存管理技術為其分配閑置/未用內存頁面。然后,氣球驅動程序會“固定”這些頁面,并報告給虛擬化管理程序(hypervisor)。如果主機物理內存不足,則會將客戶機內存頁面分配給此氣球驅動程序。執行該分配后,主機可以回收這些內存頁面以滿足可能需要RAM的其他虛擬機的需求。通過這種方法,某個特定虛擬機有空閑RAM 時,可以透明地與同一主機上的其他虛擬機共享該RAM,從而提高主機的虛擬機密度。TPS是一項內存去重技術,氣球進程可以為RAM提供精簡置備功能。雖然氣球進程需要一些CPU開銷,但對客戶機和主機的性能影響微乎其微。不過,在極端情況下,氣球可能會在操作系統內引起交換。
- ·內存壓縮–在vSphere 4.1中,VMware 引入了內存壓縮的概念,在某些情況下,該技術可以替代成本高昂的交換進程。使用此技術,可以將內存頁面壓縮并置于磁盤上的壓縮緩存中,而不是逐個虛擬機將內存頁面交換到磁盤。需要交換已交換的頁面使其返回到RAM時,則從此緩存中檢索并進行解壓。雖然此進程比交換到磁盤的成本低,但是對性能存在一定的影響。
- ·交換到磁盤–交換到磁盤是管理程序檢索足夠物理RAM 以滿足主機上運行的工作負載需求的***一招。由于vSphere的其他內存管理技術非常優秀,因此通常僅在過量分配嚴重的主機上執行交換,不過,資源池限制或虛擬機上配置的內存限制也會引起交換。同樣,如果虛擬機未安裝VMwareTools 或VMwareTools未運行,系統將完全跳過氣球進程,轉而直接執行交換。交換是管理程序將最少使用的內存頁面移至磁盤的過程。這些內存頁面仍然可以訪問,但需要時,必須從磁盤檢索。從性能影響來看,交換具有極高的成本,并且會顯著降低主機的整體性能。
需要注意的是,僅當主機上存在內存爭用問題,或存在上述討論的交換情況時,才會執行交換和壓縮。在大多數環境中,應避免導致交換或壓縮的內存爭用問題,因為這種情況意味著主機基本上用盡了RAM。
存儲資源管理:
存儲是vSphere環境中第三大重要資源,也能夠通過常見資源分配技術進行超額預定。
超額置備存儲最常見的方法是通過一個精簡置備過程進行。在許多情況下,管理員向虛擬機分配存儲時,所分配的存儲多于絕對需要的存儲。畢竟,隨著時間的推移,虛擬機將持續需要更多的磁盤空間。精簡置備運作如下:管理員置備虛擬機的總磁盤空間時,允許虛擬機訪問整個分配空間。但是,實際上,vSphere 僅為虛擬機分配其實際使用的空間。因此,如果管理員向新虛擬機分配200GB存儲空間,但該虛擬機僅使用40GB,則剩余的160GB仍可用于分配給其他虛擬機。虛擬機需要更多空間時,vSphere會為該虛擬機提供更多塊,不超過最初分配的磁盤大小。
通過使用精簡置備,管理員可以使用長期需要的虛擬磁盤大小創建虛擬機,而不必立即分配所需的總磁盤空間。在許多測試中,測試結果都表明精簡置備帶來的性能影響微乎其微,幾乎可以忽略不計。因此,精簡置備作為管理存儲容量的***方法,是最常見、最易接受的建議方法。
另請注意,某些存儲設備的其他功能可能允許其他超額預定級別。此類功能包括數據壓縮和去重。本白皮書側重于介紹管理程序,因此僅討論精簡置備。
資源過量分配:
了解如何在vSphere環境中管理資源后,后面將介紹如何超額預定這些資源。本白皮書假設超額預定是可接受的做法。為了確定資源是否過量分配,需要使用監控工具。在本白皮書中,使用的是Dell的免費vOPS Server Explorer 工具。
此工具內置多個實用程序,左側顯示的EnvironmentExplorer是vOPSServerExplorer中的實用程序之一,管理員可以在其中概覽環境中的資源使用情況。如圖所示,顯示實際物理資源的資源利用率百分比,因此,EnvironmentExplorer非常適用于了解資源過量分配問題。
超額預定CPU資源:
如前文所述,在vSphere5中,每個物理CPU內核最多可支持25 個vCPU。但是,對于vCPU與pCPU之比超過1:1的每個其他工作負載,vSphere管理程序需要調用CPU調度才能將CPU 時間分配給有需求的虛擬機。因此,如果管理員創建的vCPU 與pCPU之比為5:1,則每個CPU將支持5個vCPU。
查看本白皮書的一般指導時,有關***vCPU與pCPU之比的經驗說法不一。大家一致認可的兩條經驗法則如下:
·首先為每個虛擬機配置1個vCPU。大多數專家認為,創建新虛擬機時,管理員應僅配置一個vCPU,然后根據需求增加虛擬vCPU。隨著vCPU的增加,虛擬機需要從主機獲取CPU時間。虛擬機需要執行操作時,必須等待與已分配vCPU數量相當的物理CPU就緒。因此,隨著管理員向虛擬機添加更多vCPU,整體性能會不斷下降。
· vCPU與pCPU 之比視工作負載而定。雖然提倡vCPU:pCPU= 1:1的分配,設置不同比率的情況也很常見。也就是說,盡管vSphere5支持的***比率為25:1,但能否實現高比率很大程度上取決于支持的工作負載類型。如果主機支持大量虛擬機,且每個虛擬機只有少量的CPU需求,則vCPU與pCPU 的比率可以很高。但是,如果主機運行大量CPU密集型工作負載,則該比率可能會小得多。
要監控的衡量指標:
需要監控若干CPU相關衡量指標,以幫助管理員維持vCPU與pCPU比率平衡,從而更有效地使用資源同時確保工作負載正常運行。
- 虛擬機內部
CPU利用率–此衡量指標可幫助管理員確定何時需要向虛擬機增加vCPU。平均CPU使用情況持續很高時,就該向虛擬機增加vCPU了。
- 主機上
CPU就緒–從主機整體CPU運行狀況角度來看,目前為止,該衡量指標最為重要。“CPU就緒”衡量指標用于確定虛擬機等待足夠物理 CPU以滿足虛擬機需求所需的時長。如果某個虛擬機分配有4個vCPU,該衡量指標將指示虛擬機等待4個對應pCPU同時可用所需的時長。
CPU利用率–主機服務器整體CPU 使用情況也很重要,它可以幫助管理員了解主機服務器的工作量。
實際環境:
- 虛擬資源
- ·4個vCPU–實際內核數的200%
- ·3GB內存–物理內存的37%
- ·26.6GB存儲–已置備存儲的13%
各個論壇中都有用戶提出實際環境中可接受的vCPU與pCPU 比率問題。盡管一些用戶繼續提倡1:1比率,但從純粹的密度角度來看,1:1是最壞情況。請注意,在左側圖表中,此特定實驗場景當前采用的比率為2:1。
部分用戶表示他們獲得的指導建議是vCPU與pCPU的比率不超過1.5:1,但業內專家的指導建議是vSphere的“實際環境”比率值應在10:1到15:1范圍內。還有一些用戶表示VMware建議的實際環境比率范圍為6:1– 8:1。
在此Dell白皮書中,vCPU:pCPU 指導原則如下:
- 1:1至3:1沒有任何問題
- 3:1至5:1可能會引發性能下降
- 6:1或更高通常會引發問題
其他指導建議認為***做法是將“CPU就緒”衡量指標保持在5%或以下。在特定環境中實際可實現的比率取決于若干因素:
- vSphere版本– vSphere CPU調度程序持續改進中。vSphere版本越高,整合性越強。
- CPU使用期限–更新的CPU比舊CPU 強健得多,使用更新的CPU,組織能夠實現更高的CPU比率。
- 工作負載類型–主機上不同類型的工作負載會導致不同的比率。
vScope Explorer 是vOPS Server Explorer 中的另一個實用程序,可幫助您了解主機和虛擬機級別的性能問題(包括CPU就緒),從而幫助確定vCPU與pCPU的比率是否太高。
此外,Environment Explore 可識別主機CPU資源過量分配之處,并指導管理員執行額外分析以確定過量分配是否導致了任何當前性能問題。當“實際內核數%”衡量指標開始超過500%時,管理員應更嚴密地監控CPU就緒情況和常規工作負載性能,確保滿足業務需求。
超額預定內存資源:
超額預定RAM 可能是眾多資源超額預定方案中***爭議的一個。CPU和存儲資源通常會過量分配,但RAM過量分配仍然很保守。
要監控的衡量指標
在主機服務器上,管理員需要監控虛擬機實際使用的RAM量。當RAM實際使用量接近100% 時,需要增加服務器的RAM,或者需要將工作負載遷移到可用RAM更多的主機上。
實際環境
- 虛擬資源
- 4個vCPU–實際內核數的200%
- 3GB內存–物理內存的37%
- 26.6GB存儲–已置備存儲的13%
在Environment Explorer 中,使用vSphere的各種內存管理技術時,RAM 使用情況(“物理內存 %”衡量指標)顯示每個虛擬機實際置備的RAM量,而不是虛擬機實際使用的RAM量。務必監控實際內存利用率,以便***限度地提高虛擬機密度,同時確保環境正常運行。
過量分配級別可能取決于一個主要因素:主機上運行多個類似工作負載時可實現的內存去重量。正在運行的工作負載之間的差異級別越大,可能發生的內存整合越少,可實現的密度越低。
查看其他人在內存過量分配方面的做法和建議時,我們發現:
- 許多管理員完全拒絕超額預定RAM。
- 一些管理員傾向于不超過物理內存的125%,他們認為超過該衡量指標會導致不可接受的風險。
- 如果服務器上的每個工作負載都相同,則可能出現非常高的過量分配級別。
- ·其他許多管理員只是抽查主機內存使用情況,而不是定期瀏覽過量分配級別。
超額預定存儲資源:
使用精簡置備超額預定存儲資源的方法很常見。毫無疑問,超額預定有很多優點和缺點。主要優點是管理員能夠充分利用組織的存儲容量。此外,精簡置備可幫助管理員為虛擬機提供需要的所有存儲,而不必不斷監控是否需要更多的空間。精簡置備還能夠減少IT團隊中的沖突。應用程序所有者可以請求所需的所有存儲,而存儲管理員也了解此請求過高,但是他們只需批準該請求即可,而不必擔心浪費這些過度請求的存儲。
精簡置備也帶來了一些挑戰,雖然日常工作更加輕松,但復雜性卻增加了。首先也是最重要的是,如果管理員不小心,可能會導致重大的可用性問題。如果存儲超額預定導致存儲卷耗盡空間,虛擬機仍認為它們具有可用磁盤空間,但實際上沒有任何可用空間。如果監控不仔細,可能會導致嚴重故障、數據丟失并需要執行成本高昂的恢復操作。
要監控的衡量指標
要緩解此問題,使用精簡置備的管理員需要密切關注數據存儲中的可用空間量。數據存儲空間不足時,管理員需要主動增加數據存儲空間或使用Storage vMotion 將其中一個虛擬機移動到具有足夠可用容量可滿足工作負載需求的其他數據存儲。
實際環境:
- 虛擬資源
- 4個vCPU–實際內核數的200%
- 3GB內存–物理內存的37%
- 26.6GB存儲–已置備存儲的13%
在EnvironmentExplorer中,雖然只顯示合計結果,但精簡置備得到了充分體現。在本白皮書示例中,可供虛擬機使用的存儲為195 GB,目前僅使用了26.8GB。實際上,為三個已打開電源的虛擬機置備的存儲遠遠高于此值。管理員查看EnvironmentExplorer時,如果“已置備存儲%”衡量指標接近100%,則應小心確保其他物理資源可用。
結論:
虛擬化實現了極大的靈活性,并支持通過超額置備和超額預定***限度地提高主機服務器上的資源利用率。本白皮書中介紹的各種方法和現實環境中的各種可行方案為管理員提供了***做法,有助于利用超額預定CPU、內存和存儲來***程度地提高利用率同時確保虛擬環境性能。
本白皮書還探討了Dell的免費vOPS ServerExplorer 工具,可提供有關超額預訂的信息以及虛擬環境的性能監控信息。




















