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 動態記憶體是一種用於虛擬機器的高效 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

您也可以在以下位置編輯 VMX 設定檔: VMware vSphere Client:

  1. VMware vSphere Client.
  2. 如果虛擬機器正在執行,請將其關機。
  3. 點擊 Edit Settings.
  4. 請選擇 VM Options [標籤] 在 VM Settings window.
  5. 點擊 Advanced 要展開選項,請按一下 Edit Configuration.Opening advanced VM configuration
  6. 點擊 Add Configuration ParamsConfiguration Parameters window.
  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