VMware vSphere 資源:HotAdd/HotPlug 詳解

在 VMware vSphere 環境中,當虛擬機器上執行著效能要求極高的應用程式時,已配置的資源可能無法滿足所需的效能水準。在此情況下,最佳解決方案是為虛擬機器增加更多處理器和記憶體資源。

當關鍵應用程式正在虛擬機器上執行時,您無法承受關閉虛擬機器並導致系統停機的風險。針對此情境, Hot Add VMware vSphere 的這項特點非常實用。由於 VMware 虛擬化技術提供的靈活性,您可以為正在運行的虛擬機器新增虛擬硬體 CPU 和 RAM 記憶體。本文將說明如何啟用 VMware Hot Add、此特點的使用情境、設定及限制。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

什麼是 VMware Hot Add?

VMware Hot Add 這是一項特點,可讓您在虛擬機器運行時向其新增虛擬裝置。預設情況下,您可以新增虛擬硬碟等虛擬裝置(不 IDE),以及網路介面卡和 USB 裝置,同時虛擬機器處於開機狀態。 VMware Hot Add 讓您能夠新增一個虛擬 CPU (central processing unit) 以及 RAM (random access memory) 即時處理。透過 VMware Hot Add 啟用此功能後,無需關閉虛擬機器即可新增虛擬裝置。

VMware Hot Add vs Hot Plug

你可以注意到,該 CPU Hot Add 此特點有時被稱為 CPU hot plug. 同樣的邏輯也適用於記憶體 hot add 以及記憶 hot plug. 這兩個術語指的是同一件事,可以互換使用。

註: 請勿將 VMware 動態記憶體與 VMware hot add 記憶體,因為這些特點有所不同。VMware 動態記憶體是一項用於虛擬機器的高效記憶體管理技術。雖然這並非該特點的官方名稱,但使用者常將其視為 Hyper-V 動態記憶體的高階版本。VMware 的記憶體管理技術包括透明頁面共享、記憶體氣球技術、記憶體壓縮以及記憶體交換。

需求與限制

針對正在運行的虛擬機器 (VM) 增加 VMware vCPU(虛擬 CPU)和記憶體,有以下需求與限制:

  • 客體作業系統 (OS) 必須支援裝置熱插拔。
  • 虛擬機器硬體相容性(虛擬硬體版本)為 7 或更高。
  • VMware Tools 應安裝在客體作業系統上。
  • Fault Tolerance 不得在虛擬機器上啟用此功能。
  • 必須關閉虛擬機器的電源,才能啟用 Hot Add 特點.
  • A VMware vSphere Advanced, Enterprise,或 Enterprise Plus 必須使用授權。VMware vSphere Enterprise Plus 同時支援 CPU hot add 以及記憶 hot add. 請參閱 VMware 授權指南 請查看其他版本及來賓作業系統的可用功能性。

請考慮 授權限制 在新增 vCPU 之前,請先確認虛擬機器上已安裝的客體作業系統及應用程式。若要在更多處理器上執行該軟體,您可能需要購買額外的授權。

支援 Hot AddWindows Server 2003 以及更新版本,以及使用 Linux 的 kernel 3.8 及以上。頂部 Windows Server 各版本均支援 CPU 和記憶體 hot add. 某些較低的 Windows Server 版本支援記憶 hot add 僅此而已。

客體作業系統 授權/版本 記憶體熱插拔 CPU hotplug
Windows Server 2003 32 位元/64 位元 Standard, Enterprise 是的
Windows Server 2008 32 位元 Standard, Enterprise, Datacenter 是的
Windows Server 2008 64 位元 Standard, Enterprise 是的
Windows Server 2008 64 位元 Datacenter 是的 是的
Windows Server 2008 R2 Standard, Enterprise 是的
Windows Server 2008 R2 Datacenter 是的 是的
Windows Server 2012 Standard, Datacenter 是的 是的
Windows Server 2012 R2 Standard, Datacenter 是的 是的
Windows Server 2016 Standard, Datacenter 是的 是的
Windows Server 2019 Standard, Datacenter 是的 是的

VMware Hot Add 優點與缺點

VMware Hot Add 在許多使用情境下,這是一項實用的特點。不過請注意,當實際上並不需要熱添加時,使用此特點仍存在一些缺點。 VMware Hot Add 由於各種原因,此功能預設為停用狀態。讓我們來了解原因。

VMware vCPU Hot Add 以及 vNUMA

當您啟用 VMware Hot Add, vNUMA 將自動停用該虛擬機。預設情況下, vNUMA 此功能已針對所有擁有 8 個或更多 vCPU 的虛擬機器啟用,以提升效能。讓我們來深入探討這個概念 NUMA 以及 vNUMA.

什麼是 NUMA?

NUMA (non-uniform memory access) 是一種允許 CPU 在本地共享記憶體的多處理器系統架構。CPU 存取記憶體所需的時間取決於記憶體在主機板上的位置。每個處理器都具有優先權,會優先使用"自己的"本地記憶體,而非使用安裝在其他處理器附近插槽中的記憶體。換句話說, NUMA 是一種用來決定一個處理器如何與另一個處理器的記憶體模組進行互動的方法。 NUMA 系統是一種具備多條系統匯流排的平台,其中每個處理器都能存取主機板上的所有記憶體。若處理器附近的插槽中安裝了記憶體,則該處理器稱為 NUMA node.

NUMA and VMware vSphere - a VM is optimized to use NUMA when Hot Add is disabled

如果 NUMA 若記憶體功能已停用,或者例如您擁有兩顆處理器,但記憶體僅安裝在其中一顆處理器的插槽中,您可能會遇到效能下降或其他硬體問題。如果您沒有足夠的記憶體模組來填滿雙處理器主機板上的所有插槽,請嘗試將記憶體模組分別安裝在第一顆和第二顆處理器的記憶體插槽中。

NUMA 協助在 NUMA– 意識型作業系統得以合理地進行分配。它允許每個程序存取最接近該程序所使用處理器的記憶體區域。

什麼是 vNUMA?

Virtual NUMA (vNUMA) 這是一種 VMware vSphere 中的優化方法。它透過考量以下因素,確保大型虛擬機器能發揮最佳效能: NUMA 拓撲結構以及避免記憶體頻寬瓶頸。一個實體 NUMA 拓撲結構會向來客作業系統公開 vNUMA. 因此,虛擬 NUMA 拓撲結構是基於 NUMA ESXi 主機所使用的底層實體硬體拓撲。虛擬機器的虛擬 CPU 可排程存取位於同一位置的記憶體資源 NUMA 節點。

vNUMA 此功能適用於使用虛擬硬體 8 或更高版本的虛擬機器。建立虛擬機器時,您可以選擇處理器數量及處理器核心數量。CPU插槽數量將自動計算。若虛擬機器使用的 vCPU 數量超過每個 NUMA 節點,然後一個 vNUMA 拓撲結構已針對客體作業系統的使用進行變更與優化。客體作業系統可使用多個 NUMA 在此情況下,這些被稱為節點。這種虛擬機器稱為寬型或大型虛擬機器。

當……時會發生什麼 vNUMA 已停用?

Hot Add 已啟用,且 vNUMA 若此功能已停用,虛擬機器將無法偵測到底層的 NUMA ESXi 主機上的節點,並增加對遠端記憶體的存取 NUMA 節點。客體作業系統的 CPU/記憶體調度並非最優。因此,虛擬機器的效能會下降。當應用程式增加執行緒數量時,這種效能下降在大型虛擬機器上尤為明顯。例如,若您啟用 Hot Add 在一台虛擬機器上,其客體作業系統使用了兩個 NUMA 節點,此來賓作業系統僅能偵測到一個 NUMA 之後的節點,因為經過優化的 vNUMA 未建立拓撲。

啟用 VMware Hot Add 僅當您預期在虛擬機器運作期間使用此特點時才需啟用。否則,建議將其停用 Hot Add 對於橫跨多個的虛擬機器 NUMA 節點。如果您不確定是否需要熱擴充 CPU 和記憶體,可以從一開始就為虛擬機器配置更多的 CPU 和記憶體資源。

VMware Hot Add 限制

無法進行熱拔

Hot Add/hot plug 若此特點已啟用,則無法熱移除 CPU 和記憶體資源。當您向虛擬機器熱添加 vCPU 和記憶體後,應用程式便會消耗這些新增的資源。因此,應用程式不支援收回已使用的記憶體和 CPU 容量等選項。基於這個原因,減少虛擬機器 CPU 和記憶體資源的唯一方法,就是關閉該虛擬機器,並編輯已關機虛擬機器的設定。

記憶體可擴展性的限制

熱擴充記憶體的最大容量為虛擬機器(VM)初始配置記憶體容量的 16 倍。例如,若某虛擬機器的 RAM 為 4 GB,則該容量最多可擴充至 64 GB。

此外,對於具備 3 GB 記憶體(精確值為 3072 MB)或更少記憶體的虛擬機器,亦存在限制。您可能會收到錯誤訊息,或客體作業系統(64 位元 Linux 及 32 位元 Windows)無法偵測新增的記憶體。解決方案是關閉虛擬機器,將記憶體容量增加至超過 3072 MB。之後您即可啟動虛擬機器並使用 VMware 記憶體 Hot Add.

如何設定 VMware Hot Add

有多種方法可以啟用 VMware vCPUs Hot Add 以及 VMware 記憶體 Hot Add. 您可以使用圖形使用者介面或命令列使用者介面。

啟用 Hot Add 在 vCenter 中

為了能夠 VMware Hot Add 透過使用 vCenter,請登入 VMware vSphere Client 並執行以下操作:

  1. 前往 Hosts and Clusters.
  2. 請在導覽窗格中選取所需的虛擬機器。該虛擬機器必須處於關機狀態。
  3. 點擊 編輯設定 圖示。此外,您也可以右鍵點擊虛擬機器名稱,並在彈出的選單中點選 Edit Settings.

Opening VM settings in VMware vSphere Client

請執行以下步驟以啟用 CPU hot add:

  1. Edit Settings 在視窗中,展開 CPU 設定。
  2. CPU Hot Plug 行中,選取 Enable CPU Hot Add 核取方塊。

請執行以下步驟以啟用記憶體 hot add:

  1. Edit Settings 在視窗中,展開記憶體設定。
  2. Memory Hot Plug 行中,選取 Enable 核取方塊。vCPU VMware options and hotplug CPU configuration in vSphere
  3. 點擊 OK 以儲存虛擬機器設定並關閉視窗。

現在您可以啟動虛擬機器並 hot add 將 VMware vCPU 和記憶體分配給虛擬機器。

啟用 VMware Hot Add 在 PowerCLI 中

VMware PowerCLI 這是一款用於管理 VMware vSphere 的強大命令列工具。讓我們來看看如何啟用 VMware Hot Add 在 PowerCLI 中。

  1. 請使用以下指令,並輸入適當的 IP 位址(此處範例為 192.168.101.205)或主機名稱,以連線至您的 vCenter 或 ESXi 主機:Connect-VIServer 192.168.101.205
  2. 系統提示時,請輸入憑證。
  3. 列出您已連線到的 ESXi 主機上的虛擬機器。Get-VM
  4. 請確認您要啟用該功能的虛擬機器 Hot Add 已關機。
  5. 執行以下指令,以啟用所選虛擬機器的記憶體熱插拔與 CPU 熱插拔功能。$VM = Get-VM Windows-VM
    $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
    $spec.memoryHotAddEnabled = $true
    $spec.cpuHotAddEnabled = $true
    $VM.ExtensionData.ReconfigVM_Task($spec)地點:
    Windows-VM
    是所需虛擬機器的名稱
    $spec.memoryHotAddEnabled = $true 這是啟用記憶體的指令 hot add
    $spec.cpuHotAddEnabled = $true 是啟用該功能的指令 CPU hot add
  6. 請確認哪些虛擬機器已啟用 CPU 熱擴充和記憶體熱擴充特點:Get-VM | Get-View | Select Name, `
    @{N="CpuHotAddEnabled";E={$_.Config.CpuHotAddEnabled}}, `
    @{N="CpuHotRemoveEnabled";E={$_.Config.CpuHotRemoveEnabled}}, `
    @{N="MemoryHotAddEnabled";E={$_.Config.MemoryHotAddEnabled}}Checking VMs on which VMware hot add is enabled

啟用 Hot Add 在虛擬機器設定檔中

另一種啟用方法 VMware Hot Add 正在使用 ESXi 命令列介面 以及編輯版本 VMX 虛擬機器的設定檔。開啟 ESXi 命令列介面,或透過 SSH 連線至 ESXi 主機。接著在命令列中執行以下指令以啟用 Hot Add:

  1. 前往虛擬機器目錄:
    cd /vmfs/volumes/datastore10a/Windows-VM/
  2. 請確認虛擬機器已關機。
  3. 在文字編輯器中開啟虛擬機器的 VMX 設定檔:
    vi Windows-VM.vmx
  4. 請在設定檔中加入此行以啟用 vCPU Hot Add:
    vcpu.hotadd = "TRUE"
  5. 請在設定檔中加入此行以啟用記憶體 Hot Add:
    mem.hotadd = "TRUE"
  6. 儲存 VMX 編輯設定檔,然後關閉文字編輯器。

您可以停用虛擬機器中網路介面卡、磁碟控制器等裝置的熱插拔功能(這些功能預設為啟用狀態)。

devices.hotplug = “false”

此設定不會影響 CPU hotplug 並為該虛擬機器設定 VMware 的熱擴充記憶體功能。

編輯 VMX 設定檔 VMware vSphere Client

您也可以在 VMware vSphere Client:

  1. 請在 VMware vSphere Client.
  2. 如果虛擬機器正在運行,請將其關閉。
  3. 點擊 Edit Settings.
  4. 請選擇 VM Options [標籤] 中的 VM Settings 視窗。
  5. 點擊 Advanced 要展開選項,請點擊 Edit Configuration.Opening advanced VM configuration
  6. 點擊 Add Configuration ParamsConfiguration Parameters 視窗。
  7. Add New Configuration Params 在此區段中輸入要啟用的數值 VMware Hot Add 並據此調整記憶體和 VMware vCPU。
    名稱: mem.hotadd       值: TRUE
    姓名: vcpu.hotadd        值: TRUE
    Hot add CPU VMware
  8. 點擊 OK 以儲存設定並關閉視窗。

結論

啟用 VMware Hot Add 僅當您預期會使用此特點為正在運行的虛擬機器新增虛擬處理器和記憶體時。如果您啟用 VMware Hot Add 但若您未使用此特點,大型虛擬機器(VM)的效能可能會下降,因為包含多個 NUMA 節點將不會被使用。請使用 VMware 虛擬機器監控功能,來監控 vSphere 中的虛擬機器效能與資源使用狀況。此方法有助於您判斷虛擬機器是否需要 Hot Add 此特點需啟用。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read