前言
醞釀已久的全新 vSphere 7 解決方案,終於在 2020 年 3 月 10 日由 VMware 官方正式發佈。在前幾篇文章中,我們已經了解 vSphere 7 對於 vSphere vMotion、Storage vMotion 機制有哪些增強。在本文中,我們將討論 vSphere 7 增強 vSphere DRS 自動化負載平衡機制的部份。事實上,vSphere DRS (Distributed Resource Scheduling) 第一版在 2006 年時首度發佈。時至今日,最新的 vSphere 7 版本中的 DRS 為了因應現代化工作負載,同樣也進行相對應的功能改進和增強。簡單來說,過去的 vSphere DRS 著重在「叢集」(Cluster),而新版 vSphere 7 當中的 DRS 則著重在「工作負載」(Workload)的部份,以便最佳化調度 VM 虛擬主機、Pods、Containers……等工作負載。
懶得看文字的朋友,請直接看官方的影片說明吧:
舊版 vSphere DRS 自動化工作負載平衡邏輯 (DRS v1.0)
在過去版本中的 vSphere DRS 自動化工作負載平衡邏輯,採用「整體叢集標準差模型」(Cluster-wide Standard Deviation Model)運作機制,主要著重的部份在「叢集」(Cluster)工作負載的部份,一旦管理人員啟用 vSphere DRS 特色功能後,系統將會「每隔 5 分鐘」檢查叢集中的 ESXi 成員主機工作負載情況,判斷哪些 ESXi 成員主機消耗過多資源,然後建議管理人員可以針對哪些 VM 虛擬主機,執行 vSphere vMotion 遷移的動作,以便叢集內的 ESXi 成員主機之間的工作負載能夠達到平衡。
圖、舊版 vSphere DRS 資源負載平衡圖表
圖、舊版 vSphere DRS 採用 Cluster-wide Standard Deviation Model 判斷邏輯
增強後的 vSphere 7 DRS 自動化調度機制 (DRS v2.0)
現在,新版中的 vSphere 7 DRS 自動化工作負載平衡邏輯,採用「Goodness Modelling」運作機制,不將資源負載平衡的重點放在「叢集中 ESXi 成員主機」身上,而是將工作負載平衡的焦點放在「VM 虛擬主機」身上,並且舊版的 vSphere DRS 為「每隔 5 分鐘」判斷一次資源平衡狀態,而新版 vSphere DRS 則改為「每隔 1 分鐘」便檢查一次 VM 虛擬主機的資源平衡狀態,以便提供更精細的方式來計算和負載平衡工作負載。在 VMware Cloud on AWX 運作環境中,可以透過「Elastic DRS」機制,將工作負載遷移至其它叢集或自動新增 ESXi 成員主機來負載平衡叢集資源。
圖、增強後的 vSphere 7 DRS 資源負載平衡圖表
圖、增強後的 vSphere 7 DRS 採用 Goodness Modelling 判斷邏輯
因此,當 vSphere 7 叢集啟用 DRS 自動化負載平衡機制後,系統將會「每隔 1 分鐘」計算叢集中運作的 VM 虛擬主機工作負載得分「VM DRS Score」,然後判斷透過 vMotion 機制遷移 VM 虛擬主機後,對於其它 VM 虛擬主機的影響為何,以達成最佳化且更細緻的資源使用率。VM DRS Score 的得分範圍共有 5 個部份,分別是「0-20%、20-40%、40-60%、60-80%、80-100%」,當 VM 虛擬主機被系統判定得分為「80-100%」時,表示這台 VM 虛擬主機的資源使用情況良好 (未發生資源爭奪)。
VM DRS Score 計算標準為何? 包括 CPU 準備時間、CPU 快取行為、Memory SWAP 情況、使用的網路流量、所處 ESXi 成員主機的資源情況、叢集中其它 ESXi 成員主機的資源情況 (在別台是否能運作更好)……等。
圖、查看所有 VM 虛擬主機的 VM DRS Score 得分資訊
最後,如何快速查看新版 vSphere 7 DRS 的資源負載平衡圖表,以及所有 VM 虛擬主機的 VM DRS Score 得分資訊? 可以從,下列官方提供的 Gif 動畫快速了解。