VMware vSphere HA 與 DRS 的比較與解析
VMware 虛擬化平台可讓您在單一伺服器上執行虛擬機器。您可以在獨立的 ESXi 主機上執行多個虛擬機器,並部署多個主機以執行更多虛擬機器。若您有多台透過網路連接的 ESXi 主機,即可將虛擬機器從一台主機遷移至另一台主機。
有時,僅透過網路連接多個主機來執行虛擬機器,並不足以滿足業務需求。例如,當其中一台主機發生故障時,該主機上所有虛擬機器也會隨之停止運作。此外,ESXi 主機上的虛擬機器工作負載可能不均衡,且在主機之間手動遷移虛擬機器是常態作業。為解決這些問題,VMware 提供了諸如 VMware High Availability (HA) 以及 Distributed Resource Scheduler (DRS). 透過 vSphere 叢集功能,您可以減少虛擬機器 (VM) 的停機時間,並合理運用硬體資源。這篇部落格文章將介紹 VMware HA 以及 DRS 以及每個聚類特點的使用情境。
什麼是 vSphere 叢集?
vSphere 叢集是一組相互連線的 ESXi 主機,這些主機共享處理器、記憶體和儲存空間等硬體資源。VMware vSphere 叢集是在 vCenter. 叢集的資源會匯集到資源池中,因此當您將主機新增至 叢集, 主機的資源便成為整個叢集資源的一部分。身為叢集成員的 ESXi 主機,亦稱為叢集節點。vSphere 叢集主要分為兩種類型: vSphere High Availability 以及 Distributed Resource Scheduler (VMware HA 以及 DRS).
VMware 叢集需求
部署 VMware HA 以及 DRS, 應滿足以下一組叢集需求:
- 兩個或更多 ESXi 配置完全相同的主機 (同系列的處理器(例如:ESXi 版本和修補程式層級等)必須一致。舉例來說,您可以使用兩台搭載同系列 Intel 處理器的伺服器(或
AMD處理器) 以及ESXi 7.0 Update 3安裝在伺服器上。為獲得更好的保護與效能,建議您至少使用三個主機。 - 管理網路、儲存網路及 vMotion 網路需具備高速網路連線。冗餘網路連線的需求。
- 一個可供叢集內所有 ESXi 主機存取的共用資料存放區。儲存區域網路 (SAN)、網路附加儲存 (NAS) 以及 VMware vSAN 可用作共用資料存放區。系統支援 NFS 和 iSCSI 協定,以便存取共用資料存放區中的資料。虛擬機器檔案必須儲存於共用資料存放區中。
VMware vCenter Server與主機上安裝的 ESXi 版本相容。
與……不同 Hyper-V Failover Cluster此外,無需達到法定人數的需求,也不必使用複雜的網路名稱。
什麼是 VMware HA 在 vSphere 中?
VMware vSphere High Availability (HA) 這是一項叢集特點,旨在於發生故障時自動重新啟動虛擬機器 (VM)。 VMware vSphere High Availability 讓組織能夠確保在 vSphere 叢集中,虛擬機器及其上執行的應用程式具備高可用性(與正在執行的應用程式無關)。 VMware HA 可提供針對 ESXi 主機故障的防護機制——故障的虛擬機器將在正常運作的主機上重新啟動。因此,您可以大幅縮短系統停機時間。
需求 vSphere HA
需求 vSphere HA 必須與一般的 vSphere 叢集需求一併考量。為了設定 VMware vSphere High Availability, 您必須具備:
- A
VMware vSphere Standard許可證 - 每台主機至少需配備 4 GB 記憶體
- 可進行 ping 測試的閘道器
vSphere 是如何運作的 HA 工作?
VMware vSphere High Availability 檢查 ESXi 主機以偵測主機故障。 若偵測到主機故障(該主機上運行的虛擬機器亦隨之故障),則故障的虛擬機器將遷移至叢集內的正常 ESXi 主機。遷移完成後,虛擬機器會在新主機上註冊,隨後啟動這些虛擬機器。虛擬機器檔案(VMX、VMDK 及其他檔案)在遷移後仍位於同一資源(即共用資料存放區)中。虛擬機器檔案不會被遷移。 遷移後,新 ESXi 主機僅提供故障虛擬機器所使用的 CPU、記憶體及網路元件。
停機時間等同於在另一台主機上重新啟動虛擬機器所需的時間。但請注意,還需加上作業系統開機以及在虛擬機器上載入所需應用程式所需的時間。VMware HA 是一項運作於虛擬機器層級的解決方案,即使應用程式本身不具備原生高可用性特點,亦可使用此解決方案。 VMware vSphere High Availability 這與虛擬機器上安裝的客體作業系統無關。
一個 vSphere HA 下圖說明了叢集的結構。此範例中,有一個包含三個 ESXi 主機的叢集。所有主機上皆有虛擬機器正在運行。虛擬機器及其檔案之間的連線以虛線表示。
1. 叢集的正常運作狀態。所有虛擬機器皆在其原生主機上運行。
2. ESXi 主機 1 發生故障。位於 ESXi 主機 1 上的虛擬機器(VM1 和 VM2)已發生故障(這些虛擬機器已關機)。一個 vSphere HA 叢集會在其他運作正常的 ESXi 主機上啟動虛擬機器重新啟動。
3. 虛擬機器已遷移至狀態正常的宿主機並重新啟動。VM1 已遷移至 ESXi 宿主機 2,而 VM2 已遷移至 ESXi 宿主機 3。虛擬機器檔案位於 vSphere 叢集中所有 ESXi 宿主機皆已連線的共用儲存裝置上,且位置相同。
HA 主從關係
之後 vSphere High Availability 若在叢集中已啟用此功能,則會選取一台 ESXi 主機作為 HA 主節點。其餘的 ESXi 主機則為從屬主機(從屬主機)。主節點會監控從屬主機的狀態,以便及時偵測主機故障,並啟動故障虛擬機器的重啟程序。主節點還會監控叢集節點上虛擬機器的電源狀態。若偵測到虛擬機器發生故障,主節點將啟動虛擬機器的重啟程序(在重啟故障的虛擬機器之前,主節點會先選定最佳的主機)。該 HA 主機傳送關於該 HA 叢集的運作狀態至 vCenter。VMware vCenter 透過由 HA 主節點主機。
主節點與叢集內的其他主機一樣,均可執行虛擬機器。若某主節點主機發生故障,系統將選取另一台主節點主機。在選舉主要 ESXi 主機時,連接資料存放區數量最多的主機將具有優先權。未處於維護模式的主機皆會參與主要主機的選舉。
從屬主機可執行虛擬機器、監控虛擬機器的狀態,並將虛擬機器狀態的最新資訊回報給 HA 主機。
Fault Domain Manager (FDM) 是用於監控實體伺服器可用性的代理程式名稱。該 FDM 代理程式會在每個 ESXi 主機上運作,位於一個 HA 叢集。
主機故障類型
ESXi 主機故障主要分為三種類型:
失敗。 某台 ESXi 主機因故停止運作。
孤立。 ESXi 主機及其上的虛擬機器仍可正常運作,但由於網路問題,該主機已與叢集中的其他主機隔離。
分區。 與主主機的網路連線已中斷。
如何偵測故障
透過交換心跳訊號來偵測 vSphere 中的故障 HA 叢集。主節點透過每秒接收來自次要節點的心跳訊號,來監控次要節點的狀態。主節點會發送 ICMP 向次要主機發送心跳訊號並等待回覆。若主要主機無法直接與次要主機的代理程式通訊,則次要主機可能處於正常狀態,也可能已發生故障但無法透過網路存取。
若主要主機未收到心跳訊號,則主要主機將透過以下方式檢查該可疑主機: Datastore Heartbeating. 在正常運作期間,網域內的每個主機 HA叢集會與共用資料存放區交換心跳訊號。主要 ESXi 主機除了向該主機發送 ping 訊號外,還會檢查是否已與該可疑主機交換資料存放區的心跳訊號。若與該可疑主機沒有資料存放區心跳訊號的交換,且該主機未發送 ICMP 若未收到任何回應,則該主機將被標記為故障主機。
註: 一則特別報導 .vSphere-HA 會在共用資料存放區的根目錄下建立一個目錄,用於心跳檢測以及識別受保護的虛擬機器清單。請注意,vSAN 資料存放區無法用於資料存放區心跳檢測。
若主主機無法與次要主機的代理程式建立連線,但次要主機仍能與共用資料存放區交換心跳訊號,則主主機將該可疑主機標記為網路隔離主機。 若主主機判定次要主機正在隔離的網路區段中運行,主主機將繼續監控該隔離主機上的虛擬機器。若隔離主機上的虛擬機器已關機,主主機將啟動在另一台 ESXi 主機上重新啟動這些虛擬機器的程序。您可以設定 vSphere HA 叢集對 ESXi 主機發生網路隔離的回應方式。
監控個別虛擬機器。 VMware vSphere High Availability 具備監控個別虛擬機器並偵測特定虛擬機器是否發生故障的機制。 VMware Tools 安裝在客體作業系統(OS)上的程式會用於判斷虛擬機器的狀態。 VMware Tools 將來賓作業系統的心跳訊號傳送至 ESXi 主機。
心跳訊號與輸入/輸出 (I/O) 由…所產生的活動 VMware Tools 由 VM 監控服務進行監控。如果位於 HA 叢集偵測到 VMware Tools 受保護的虛擬機器上沒有回應,而且沒有 I/O 活動,主機會啟動虛擬機器重新啟動。監控虛擬機器 I/O 此活動允許 HA 叢集以避免在以下情況下發生不必要的虛擬機器重置: VMware Tools 不知為何沒有傳送心跳訊號,但虛擬機器仍在運行。您可以設定監控敏感度,以設定當由 VMware Tools ESXi 主機未收到這些訊息。VMware vSphere HA 若單一虛擬機器發生故障,系統將在同一台 ESXi 主機上重新啟動該虛擬機器。
VMware Tools 心跳訊號傳送至 hostd 在虛擬化平台層級(ESXi)進行,而非透過網路堆疊。接著,ESXi 主機會將接收到的資訊傳送至 vCenter。 VMware Tools 如果虛擬機器與網路斷開連接,甚至即使該虛擬機器未連接任何虛擬網路介面卡,ESXi 主機仍可接收心跳訊號。
虛擬機器與應用程式監控。 您可以使用 SDK 透過第三方供應商來監控虛擬機器上安裝的特定應用程式是否發生故障。另一種選擇是使用已支援 VMware 應用程式監控功能的應用程式。在 vSphere 環境中運行的 VMware 虛擬機器上,會使用應用程式心跳訊號來進行應用程式監控 HA 叢集。
關鍵參數 HA 叢集配置
在開始設定高可用性叢集之前,您需要先定義一些關鍵參數。
隔離反應 是一個參數,用於定義 ESXi 主機在未接收到心跳訊號時應採取的動作。可選項包括 Leave powered on, Power off (預設),以及 Shutdown.
Reservation 是一個根據叢集內資源消耗量最大的虛擬機器之最大特性所計算出的參數。此參數用於估算故障移轉容量。一個 HA 叢集會根據"Reservation"參數的值來建立預約時段。
故障移轉能力。 此參數以整數為單位,用以定義叢集中最多可發生多少台伺服器故障,而不會對工作負載造成負面影響(當此數量的 ESXi 主機發生故障後,叢集及所有虛擬機器仍可繼續運作)。
允許的主機故障次數。 此參數由系統管理員設定,用以指定在多少台主機發生故障的情況下,叢集仍能繼續運作。 故障移轉容量 在設定此參數的值時會將此因素納入考量。
Admission Control 此參數用於確保在 ESXi 主機發生故障後,預留足夠的資源以供虛擬機器恢復。此參數由管理員設定,並定義當 ESXi 主機發生故障後,若無足夠的可用槽位來啟動虛擬機器時,虛擬機器的運作行為。 Admission Control 定義故障移轉容錯能力,也就是 vSphere 環境中可容忍的資源效能下降百分比 HA 故障移轉後的叢集。
Restart Priority 由管理員設定,用以定義叢集節點發生故障移轉後啟動虛擬機器(VM)的順序。管理員可以設定 vSphere HA 先啟動關鍵的虛擬機器,然後再啟動其他虛擬機器。
故障移轉能力與主機故障
讓我們來看兩個案例,每個案例都有三個 ESXi 主機,但其故障移轉容量的數值不同。在第一個案例中,當其中一台 ESXi 主機發生故障時,HA 叢集仍能正常運作(請參見下圖左側)。在第二個案例中, HA 叢集可容忍兩台 ESXi 主機發生故障(請參閱圖片右側)。
1. 每台 ESXi 主機有 4 個插槽。叢集中共有 6 台虛擬機器。若其中一台 ESXi 主機發生故障(例如第三台主機),則三台虛擬機器(VM4、VM5 和 VM6)可遷移至其餘兩台 ESXi 主機。 在我的範例中,這三個虛擬機器正遷移至第二台 ESXi 主機。若再有一台 ESXi 主機發生故障,則將沒有空閒插槽可用來遷移並執行其他虛擬機器。
2. 每台 ESXi 主機有 4 個插槽。VMware vSphere 中正在執行 4 個虛擬機器 HA 叢集。在此情況下,即使有兩台 ESXi 主機發生故障,叢集內仍有足夠的插槽來執行所有虛擬機器。
為了計算 Failover Capacity, 請執行以下操作:從叢集中所有節點的總數中,減去叢集內虛擬機器數量與單一節點插槽數量之比。若計算結果為非整數(即非整數的數值),請將該數值向下取整至最接近的整數。讓我們來計算 Failover Capacity 關於這兩個例子。
範例 1:
3–6/4=1.5
將 1.5 四捨五入為 1。同一台虛擬機器中的所有 HA 叢集若能 1 ESXi 主機發生故障。
範例 2:
3–4/4=2
由於 2 是一個整數,因此無需向下取整。若 2 ESXi 主機發生故障。
入場管制
如前所述,存取控制是確保在叢集中的主機發生故障後,仍有足夠資源來執行虛擬機器所需的參數。您也可以定義 Admission Control State 參數,以提升便利性。 Admission Control State 是根據以下比率計算得出的: Failover Capacity 至 允許的主機故障次數 (NHF).
若 Failover Capacity 大於 NHF,然後是 HA 叢集已正確設定。否則,您需要設定 Admission Control 手動設定。共有兩種選項可供選擇:
1. 若虛擬機器違反可用性限制,則不予啟動(若硬體資源不足,則不啟動虛擬機器)。
2. 即使虛擬機器違反可用性限制,仍允許其啟動(即使硬體資源不足,仍啟動虛擬機器)。
請選擇符合您需求的選項 vSphere High Availability 叢集使用情境最為合適。若您的目標是確保 HA 叢集,請選擇第一個選項 (Do not power on VMs)。若您最重視的是讓所有虛擬機器都能正常運作,請選擇第二個選項(Allow VMs to be started)。請注意,在第二種情況下,叢集的行為可能難以預測。在最壞的情況下,高可用性叢集可能會變得無法使用。
虛擬機器覆寫設定
VM 覆寫 (或 HA 在以下情況下會覆寫 HA (叢集) 此選項可讓您停用 HA 針對在 HA 叢集。您可以設定您的 vSphere HA 透過在叢集層級啟用此選項,可在更細緻的層級上管理叢集。
容錯能力
VMware 為 vSphere 提供了一項特點 HA 一種叢集架構,可讓您在 ESXi 主機發生故障時實現零停機時間。此特點稱為 Fault Tolerance. 雖然標準配置的 vSphere High Availability 若發生失敗,則需重新啟動虛擬機器, Fault Tolerance 即使虛擬機器所註冊的主 ESXi 主機發生故障,也能讓虛擬機器繼續運行。 Fault Tolerance 可用於執行關鍵應用程式的關鍵任務虛擬機器。
由於有兩個受保護的虛擬機器執行個體同時運作,因此要實現最高等級的業務連續性並達到零停機時間,會產生一定的系統開銷。 Fault Tolerance第二個幽靈虛擬機器運行於第二台 ESXi 主機上,原始虛擬機器(CPU、RAM、網路狀態)的所有變更都會從初始 ESXi 主機複製到次要 ESXi 主機。受保護的虛擬機器稱為主要虛擬機器,而複製的虛擬機器則稱為次要虛擬機器。 主虛擬機器與次虛擬機器必須位於不同的 ESXi 主機上,以確保能抵禦 ESXi 主機故障。
這兩台虛擬機器(主虛擬機器與次虛擬機器)會同時運行,並消耗兩台 ESXi 主機上的 CPU、記憶體及網路資源(因此,透過"容錯"特點受保護的虛擬機器在 vSphere 環境中會消耗雙倍的資源) HA 叢集)。這些虛擬機器會持續進行即時同步。使用者只能操作主虛擬機器(原始虛擬機器),而次要虛擬機器(影子虛擬機器)對他們而言是不可見的。
若第一個 ESXi 主機發生故障(即主虛擬機器所在的主機),工作負載將遷移至第二個 ESXi 主機上運行的次要虛擬機器(即虛擬機器克隆或幽靈虛擬機器)。次要虛擬機器將立即轉為活躍狀態並可供存取。在透明故障移轉的過程中,使用者可能會察覺到輕微的網路延遲。 在故障移轉過程中,不會發生服務中斷或資料遺失。故障移轉成功完成後,系統會在另一台正常運作的 ESXi 主機上建立新的幽靈虛擬機器,以提供冗餘並持續保護虛擬機器免受 ESXi 主機故障的影響。
Fault Tolerance 透過共用儲存裝置上的檔案鎖定機制來協調故障移轉,可避免發生"腦裂"情境(即受保護虛擬機器的兩個活躍副本同時運行)。然而, Fault Tolerance 無法防止虛擬機器(VM)內的軟體故障(例如客體作業系統故障或特定應用程式故障)。若主要虛擬機器發生故障,備用虛擬機器也會隨之故障。
需求 Fault Tolerance
- 一個 vSphere
HA包含至少兩台 ESXi 主機的叢集。 vMotion以及FT logging.- 一款相容且支援硬體輔助的 CPU
MMU虛擬化。
使用專用的 Fault Tolerance vSphere 中的網路 HA 建議使用叢集。
一份用於 Fault Tolerance
- ESXi 主機必須取得授權才能使用
Fault Tolerance. - vSphere
Standard以及Enterprise單一虛擬機器最多可支援 2 個 vCPU。 - vSphere
Enterprise Plus讓您每台虛擬機器最多可使用 8 個 vCPU。
Fault Tolerance 限制
使用時存在一些限制 VMware Fault Tolerance 在 vSphere 中。與以下特點不相容的 VMware vSphere 特點 FT:
- 虛擬機器快照。受保護的虛擬機器不得包含快照。
- 連結克隆體
- VMware
vVol資料存放區
不支援的裝置:
Raw device mapping裝置- 作為虛擬裝置連接至虛擬機器的實體 CD-ROM 及其他伺服器裝置
- 音訊裝置與 USB 裝置
- 大小超過 2 TB 的 VMDK 虛擬磁碟
- 具備 3D 圖形處理功能的視訊裝置
- 並列埠與序列埠
Hot-plug裝置NIC (network interface controller)穿透式Storage vMotion(必須暫時停用,才能將虛擬機器檔案遷移至其他儲存空間)
什麼是 DRS 在 VMware vSphere 中?
Distributed Resource Scheduler (DRS) 這是一項 VMware vSphere 叢集特點,可讓您對叢集中運行的虛擬機器進行負載平衡。 DRS 檢查虛擬機器(VM)的負載以及 vSphere 叢集內多台 ESXi 伺服器的負載。如果 DRS 偵測到有過載的主機或虛擬機器, DRS 將虛擬機器遷移至具備充足可用硬體資源的 ESXi 主機,以確保服務品質 (QoS). DRS 在叢集中建立新虛擬機器時,可為該虛擬機器選取最佳的 ESXi 主機。
VMware DRS 讓您能在平衡的叢集中執行虛擬機器,並避免過載,以及因硬體資源不足而導致虛擬機器及運行於虛擬機器上的應用程式無法正常運作的情況(在此情況下,整個叢集必須具備足夠的資源)。
DRS 需求
對……的需求 DRS,加上 vSphere 叢集的一般需求,包括:
- vSphere
Enterprise或 vSphereEnterprise Plus許可證 - 一款配備CPU的
Enhanced vMotion Compatibility用於 VM 即時遷移,搭配vMotion - 一個專用的
vMotion網路
已設定好的 VMware vMotion 必須具備 DRS 叢集,與 HA 叢集,其中僅在使用時有 vMotion 的需求 Fault Tolerance此外,VMware 所需的 vSphere 授權 DRS 高於使用該許可證的費用 vSphere High Availability.
……的作用 vMotion
使用 將虛擬機器從一個 ESXi 主機遷移至另一個 vMotion,我們在解釋如何 Fault Tolerance 運作正常。搭配 VMware vMotion, 虛擬機器遷移(CPU、記憶體、網路狀態)可在不中斷運行中虛擬機器的情況下進行(無停機時間)。VMware vMotion 是確保 DRS.
讓我們來看看 vMotion 操作的主要步驟:
1. vMotion 在目標 ESXi 主機上建立一個影子虛擬機器。目標 ESXi 主機會預先分配足夠的資源,以供該虛擬機器進行遷移。虛擬機器將被置於中間狀態,且在遷移過程中無法變更其設定。
2. 預複製流程。透過使用一個 vMotion 網路。
3. 接著執行將記憶體頁面從來源複製到目的地的步驟,因為在虛擬機器運作期間,記憶體頁面會發生變更。這是一個迭代過程,會持續執行直到不再有變更過的記憶體頁面為止。這些變更過的記憶體頁面稱為"髒頁面"。若使用 vMotion 若在虛擬機器上執行耗費大量記憶體的操作,是因為有更多記憶體頁面被修改。
4. 虛擬機器在來源 ESXi 主機上停止運作,並在目標主機上重新啟動。此時,在已遷移的虛擬機器內部可能會察覺到約一秒鐘的輕微網路延遲。
工作原理 DRS 在 VMware 中
VMware DRS 每 5 分鐘(此為預設間隔)從 CPU 和 RAM 的角度檢查工作負載,以評估 vSphere 叢集的平衡狀況。VMware DRS 檢查叢集資源池中的所有資源,包括虛擬機器所消耗的資源,以及叢集內各 ESXi 主機中可用於執行虛擬機器的資源。資源檢查是根據已設定的政策進行的。
同時也會將虛擬機器的需求納入考量(即檢查當下虛擬機器執行所需的硬體資源)。以下公式用於計算虛擬機器的記憶體需求:
虛擬機器記憶體需求 = 函數(已使用的主動記憶體、已換出記憶體、共享記憶體) + 25% (閒置狀態下的記憶體消耗量)
CPU 需求是根據虛擬機器目前所佔用的處理器資源數量來計算的。上次檢查時收集到的虛擬機器 CPU 最大值與虛擬機器 CPU 平均值有助於 DRS 以確定特定虛擬機器(VM)的資源使用趨勢。如果 vSphere DRS 若偵測到叢集出現不平衡,且部分 ESXi 主機過載,則 DRS 啟動將運行於資源過載主機上的虛擬機器,遷移至具備閒置資源的主機的即時遷移。
讓我們來看看 vSphere 是如何 DRS 透過附有圖解的範例,說明在 VMware 中的運作方式。在下圖中,您可以看到一個 DRS 一個包含 3 台 ESXi 主機的叢集。所有主機均連接到共用儲存裝置,虛擬機器檔案即存放於此。第一台主機負載極高,第二台主機尚有閒置的 CPU 和記憶體資源,而第三台主機則負載沉重。位於第一台(VM1)和第三台(VM4、VM5)ESXi 主機上的部分虛擬機器,幾乎耗盡了所有已配置的 CPU 和記憶體資源。在此情況下,這些虛擬機器的效能可能會下降。
VMware DRS 判定出合理的做法是將負載過重的 VM2 從超載的 ESXi 主機 1 遷移至擁有充足可用資源的 ESXi 主機 2,並將 VM4 從 ESXi 主機 3 遷移至 ESXi 主機 2。如果 DRS 若已設定為自動模式,則會將正在運行的虛擬機器遷移至 vMotion (下圖中以綠色箭頭標示此操作)。包含虛擬磁碟的 VM 檔案(VMDK),設定檔 (VMX),以及其他檔案在虛擬機器遷移期間及遷移後,皆位於共用儲存空間的相同位置(圖中以虛線標示虛擬機器與其檔案之間的關聯)。
一旦選定的虛擬機器完成遷移, DRS 叢集達到平衡狀態。叢集內的每台 ESXi 主機皆有閒置資源,可有效執行虛擬機器並確保高效能。
由於虛擬機器工作負載分布不均,情況可能會發生變化,導致叢集再次失衡。在這種情況下, DRS 將檢查叢集中已使用的資源與可用資源,以便再次啟動虛擬機器遷移。
vSphere 的關鍵參數 DRS 設定
VMware vSphere DRS 這是一項高度可自訂的叢集特點,讓您能在各種情境下更有效地運用 DRS。讓我們來看看影響其運作行為的主要參數: DRS 在 vSphere 叢集中。
VMware DRS 自動化程度
當 DRS 偵測到 vSphere 叢集出現不平衡, DRS 針對虛擬機器(VM)的配置與遷移提供建議,並 vMotion. 此建議可透過以下三種自動化層級之一來實施:
Fully automated. 初始虛擬機器配置與 vMotion 建議會由 DRS (無需使用者介入)。
Partially automated. 只有針對新虛擬機器初始配置的建議會自動套用。其餘建議可手動啟動並套用,或直接忽略。
Manual. DRS 提供有關虛擬機器初始配置與遷移的建議,但需由使用者進行操作才能套用這些建議。您也可以忽略由 DRS.
DRS 攻擊性程度(遷徙閾值)
DRS 除了攻擊強度或遷移閾值之外,另一種選項是控制系統所能接受的最大失衡程度,即 DRS 叢集。共有五個閾值,從 1(最保守)到 5(最積極)。
採用"積極"設定時,即使虛擬機器重新配置帶來的效益微乎其微,系統仍會啟動虛擬機器遷移。採用"保守"設定時,即使虛擬機器遷移後能帶來顯著效益,系統也不會啟動虛擬機器遷移。預設選取的是第 3 級(中等積極程度),此為建議設定。
VMware 中的親和性規則 DRS
當您需要將特定虛擬機器 (VM) 配置在特定 ESXi 主機上時,親和性與反親和性規則便能派上用場。例如,您可能需要將某些虛擬機器共同部署在叢集內的某個 ESXi 主機上,或者反之(您需要將兩個或更多虛擬機器僅配置在不同的 ESXi 主機上,且這些虛擬機器不得配置在同一個主機上)。使用情境包括:
- 將虛擬網域控制器虛擬機器(包含主要網域控制器與額外網域控制器)部署在不同的主機上,以避免當其中一台主機發生故障時,導致兩台虛擬機器同時失效。在此情況下,這些虛擬機器絕不能在同一台 ESXi 主機上共同運行。
- 運行軟體的虛擬機器,該軟體已獲得在特定硬體上運行的授權,且因授權限制而無法在其他實體電腦上運行(例如 Oracle 資料庫)。
親和性規則分為:
- VM-VM 親和性規則(適用於個別虛擬機器)
- 虛擬機器與主機的親和性規則(主機群組與虛擬機器群組之間的關聯)
虛擬機器主機規則可分為建議性(虛擬機器應…)與強制性(虛擬機器必須…)兩類。即使 DRS 已停用,這會導致您無法手動使用 vMotion 遷移相關的虛擬機器。此原則旨在避免當 vCenter 暫時無法使用或發生故障時,違反適用於在 ESXi 主機上運行的虛擬機器的規則。
共有四種選項: DRS 親和度規則:
將虛擬機器集中存放。 所選的虛擬機器必須在單一 ESXi 主機上共同運行(若需進行虛擬機器遷移,則所有這些虛擬機器必須一併遷移)。當您希望將所選虛擬機器之間的網路流量局限於同一主機內(以避免虛擬機器產生大量網路流量時導致 ESXi 主機間的網路過載)時,可運用此規則。另一種使用情境是執行複雜的應用程式,該應用程式使用安裝於多個虛擬機器上的(相互依賴的)元件,或是執行 vApp. 例如,這可能包括資料庫伺服器和應用程式伺服器。
將虛擬機器分開。 選定的虛擬機器不得在單一 ESXi 主機上運行。此選項是用於實現高可用性。
虛擬機器對應至主機。 新增至虛擬機器群組的虛擬機器必須在指定的 ESXi 主機或主機群組上執行。您需要進行設定 DRS 群組(虛擬機器/主機群組)。A DRS 該群組包含多個虛擬機器或 ESXi 主機。
從虛擬機器到虛擬機器。 當您希望先啟動一個虛擬機器群組,然後再啟動另一個(依賴型)虛擬機器群組時,可選取此規則將虛擬機器相互關聯。此選項適用於 VMware HA 以及 DRS 在叢集中共同配置。
若規則發生衝突,則較舊的規則具有優先權。
VM Override 適用於 VMware DRS
類似於在 vSphere 中使用虛擬機器覆寫 HA 叢集、虛擬機器覆寫功能用於更細粒度的配置 DRS 在 VMware vSphere 中,並讓您覆寫在 DRS 在叢集層級設定,並為個別虛擬機器定義特定設定。當針對特定虛擬機器套用虛擬機器覆寫設定時,叢集中的其他虛擬機器不會受到影響。
Predictive DRS
《》的主要概念是 Predictive DRS 是收集有關虛擬機器配置的位置資訊,然後根據先前收集的資訊,預測何時何地會出現高資源使用量。利用這些資訊, Predictive DRS 可在 ESXi 伺服器過載且虛擬機器資源不足之前,將虛擬機器在主機之間移動,以實現更好的負載平衡。當叢集中的虛擬機器需求隨時間變化時,此特點將十分實用。 Predictive DRS 預設為停用狀態。 VMware vRealize Operations Manager 必須啟用 Power DRS。
Distributed Power Manager
Distributed Power Manager (DPM) 這是一項特點,用於遷移虛擬機,當叢集中有足夠的可用資源時,可將某個 ESXi 主機關閉(將主機置於待機模式),並在叢集內的其餘 ESXi 主機上執行虛擬機(其餘主機必須提供足夠的資源以執行所需的虛擬機)。
當叢集需要更多資源來執行虛擬機器時, DPM 啟動已關機的伺服器,使其恢復運作並進入正常模式。透過其中一種受支援的電源管理協定,經由網路為主機供電。這些協定包括 Intelligent Platform Management Interface (IPMI), Hewlett-Packard Integrated Lights-Out (iLO),或 Wake-On-LAN (WOL). 然後 DRS 將部分虛擬機器遷移至此伺服器,以分散工作負載並平衡叢集。預設情況下, Distributed Power Management 已停用。 DPM 建議可自動或手動套用。
Storage DRS
雖然 DRS 根據 CPU 和 RAM 運算資源遷移虛擬機器, Storage DRS 根據資料存放區的使用狀況(例如可用磁碟空間),將虛擬機器檔案從一個資料存放區遷移至另一個資料存放區。透過親和性與反親和性規則,您可以設定是否 Storage DRS 必須將虛擬機器的虛擬磁碟檔案集中儲存於同一個資料存放區中。例如,您可以設定反親和性規則,將執行 I/O 在不同的資料存放區上進行密集型操作。這樣做是為了避免虛擬機器及其初始資料存放區的效能下降(I/O (使用反親和性規則時,磁碟工作負載將分散至多個資料存放區)。
Storage DRS 在使用虛擬機器時,這會很有用 精簡配置 在過度配置的情況下,磁碟。 Storage DRS 有助於避免因薄磁碟大小增加,導致資料存放區上沒有可用空間的情況。可用空間不足會導致將虛擬磁碟儲存於該資料存放區的虛擬機器發生故障。虛擬機器的磁碟檔案可透過 Storage vMotion 在虛擬機器執行期間。
監控 CPU 和記憶體使用量
VMware 提供在網頁介面中監控資源使用情況的功能 VMware vSphere Client. 您可透過前往 Settings > Monitor > vSphere DRS > CPU Utilization此外,還有其他選項支援個別 ESXi 主機的記憶體和儲存空間監控。VMware 監控功能在 NAKIVO Backup & Replication 10.5. 欲進一步了解基礎設施監控,請參閱 這篇部落格文章.
使用 VMware HA 以及 DRS 攜手
VMware HA 以及 DRS 並非相互競爭的技術。它們是相輔相成的,您可以同時使用 VMware DRS 以及 HA 在 vSphere 叢集中,若虛擬機器因故重新啟動,此功能可為虛擬機器提供高可用性並平衡工作負載 HA 在其他 ESXi 主機上。建議您在生產環境中運行的 vSphere 叢集中同時使用這兩種技術,以實現自動故障移轉和負載平衡。
當 ESXi 主機發生故障時, 虛擬機器故障移轉 是由……發起的 HA,並將虛擬機器重新啟動至其他主機上。在此情況下,首要任務是確保虛擬機器能夠正常運作。但在虛擬機器遷移完成後,部分 ESXi 主機可能會過載,這將對運行於這些主機上的虛擬機器造成負面影響。VMware DRS 會檢查叢集內各主機的資源使用狀況,並針對故障移轉後虛擬機器(VM)的最合理配置提供建議。因此,您可以確信在故障移轉後,虛擬機器始終擁有足夠的資源,以維持工作負載的適當效能。透過 VMware DRS 以及 HA 啟用此功能後,您的叢集將能運作得更有效率。
結論
VMware 在 vSphere 中提供強大的叢集功能性,以滿足最嚴苛的 vSphere 客戶需求。我們由 VMware 提供支援 DRS 以及 HA 並說明了這些聚類特點各自的工作原理與主要參數。VMware DRS 以及 HA 彼此互補,並使使用叢集的最終效果更佳。
即使您使用 VMware DRS 以及 HA,別忘了在 vSphere 中備份 VMware 虛擬機器。下載 NAKIVO Backup & Replication 免費版本適用於 VMware 備份 在您的環境中。













