如何在 VMware ESXi 主機上重新啟動管理代理程式

VMware ESXi 是一款虛擬化管理程式,屬於 VMware vSphere 虛擬化平台的一部分。所有虛擬化軟體在某些時候都可能出現問題。例如,在 vSphere 中,您可能無法連線至 ESXi,或無法將 ESXi 主機連線至 vCenter,又或者 vCenter 中顯示錯誤訊息,導致您無法建立虛擬機器。在某些情況下,重新啟動 ESXi 主機可能會有所幫助。 但您必須關閉虛擬機器 (VM) 或將其遷移至另一台主機,這在生產環境中會造成困擾。較佳的做法是先重新啟動 ESXi 管理代理程式。重新啟動 ESXi 主機上的管理代理程式,極有可能就能解決問題。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

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

症狀

首先,讓我列出需要在伺服器上重新啟動 ESXi 管理代理程式的常見情況:

  • 無法直接連線至 ESXi 主機,亦無法在 vCenter 下管理此主機。
  • 某台 ESXi 主機已與 vCenter 斷開連線,但虛擬機器仍在該 ESXi 主機上繼續運行。
  • 當您嘗試建立虛擬機器 (VM) 時,vCenter 會顯示以下錯誤:

虛擬機器建立可能失敗,因為代理程式無法從主機取得虛擬機器建立選項

  • 無法在 ESXi 主機之間執行虛擬機器遷移,並回傳以下錯誤:

移轉虛擬機器

在主機的當前連線狀態下,不允許執行此操作

  • 選取虛擬機器時,"摘要"頁籤中不會顯示該運行中虛擬機器的相關資訊:

CPU 使用率 – 0 MHz

記憶體使用量 – 0.00 MB

ESXi 管理代理程式的作用

ESXi 管理代理程式用於同步 VMware 元件,並使您能夠從 vCenter Server 存取 ESXi 主機。VMware 代理程式包含在預設設定中,並會在安裝 ESXi 時一併安裝。ESXi 上有兩個主要代理程式,若 ESXi 主機發生連線問題,可能需要重新啟動這些代理程式—— hostd 以及 vpxa.

hostd 是一個主機代理程式,負責管理 ESXi 主機上的大部分操作,並註冊虛擬機器、可見的 LUN 以及 VMFS 卷。 hostd 負責啟動和停止虛擬機器以及類似的主要任務。VMware hostd 用於 ESXi 與 vmkernel 之間的通訊。

vpxa 當 ESXi 主機加入 vCenter Server 時,VMware 代理程式是否已在該 ESXi 主機上啟用。此外,還有另一種情況是 vpxd 在 vCenter Server 上與 vpxa 在 ESXi 主機上 (vpxa VMware 代理程式是否正在 ESXi 端執行,以及 vpxd (該守護程式是否正在 vCenter 端執行)。 vpxa 與……進行通訊 hostd 在 ESXi 主機上。VMware vpxa 用作 vCenter 與 hostd.

若您使用 vSphere Client 和 vCenter 來管理 ESXi 主機,vCenter 會透過 vpxa 在 ESXi 主機上執行的程序。如果您是直接連線至 ESXi 主機來管理該主機,則通訊將直接建立至 hostd 主機上的管理程序。

虛擬機器會受到什麼影響?

重新啟動 ESXi 管理代理程式時,虛擬機器不會重新啟動或關機(您無需重新啟動虛擬機器)。若要確保虛擬機器不受影響,請嘗試對在 ESXi 主機上運行的其中一台虛擬機器執行 ping 指令,並在該 ESXi 主機上重新啟動 VMware 代理程式。在 ESXi 主機上運行的任務可能會受到影響或中斷。請確保沒有 VMware 虛擬機器備份 在重新啟動 ESXi 管理代理程式時,ESXi 主機上當前正在執行的工作。

在 ESXi 主機上重新啟動管理代理程式期間,該主機及其上的虛擬機器會短暫顯示為已斷開連接。 請在數秒後於 VMware vSphere Client 中重新整理頁面,此時 ESXi 主機與虛擬機器的狀態應已恢復正常。

若您使用 ESXi 重新啟動 VMware 代理程式,為避免發生問題,請在使用前先閱讀本部落格文章末尾的注意事項。 vSAN, NSX,或分享 圖形 在您的 VMware 虛擬環境中。

在 Direct Console 使用者介面中重新啟動代理程式

重新啟動 ESXi 管理代理程式最可靠的方法是使用 ESXi 直接主控台使用者介面 (DCUI)。您必須能實際接觸 ESXi 伺服器,且伺服器上已連接鍵盤與螢幕。用於 ESXi 網路管理的服務可能無法正常運作,您可能無法透過 SSH 等方式遠端管理主機。

  1. 新聞 F2 在 DCUI 中自訂系統設定。
  2. 請輸入管理帳戶的使用者名稱和密碼(root 是 ESXi 預設具備管理權限的帳戶)。
    註: 請耐心等待。有時可能會遇到明顯的延遲。從輸入憑證到伺服器對此操作做出反應,可能需要幾分鐘的時間。這種延遲可能是因為正在等待已掛起的管理服務回應,而這些服務必須重新啟動。

ESXi host not responding – log in and restart VMware management services

  1. 驗證憑證後,您應會看到 系統客製化 選單。
  2. 選擇 疑難排解選項 然後按下 輸入在 DCUI 的右側窗格中,選取選單中的選項後,您將看到實用的提示。

VMware restart management agents (troubleshooting options)

  1. 選擇 重新啟動管理代理程式疑難排解模式選項 然後按下 輸入.

ESXi restart management agents options

  1. 系統顯示關於重新啟動管理代理程式的設定訊息。您可以按下 空間 以收集額外的疑難排解資訊(可選)。按下 F11 請立即確認並重新啟動管理代理程式。

VMware restart management agents’ confirmation

  1. 請等待 ESXi 管理代理程式重新啟動,然後檢查問題是否已解決。
    • 如果透過 DCUI 重新啟動管理代理程式仍無法解決問題,您可能需要檢視系統日誌,並透過直接存取 ESXi 命令列介面或透過 SSH,在 ESXi 命令列中執行指令。您可以在 DCUI 中啟用 ESXi 命令列介面和 SSH。SSH 存取與 ESXi 命令列介面預設為停用狀態。
    • 若要啟用 ESXi 命令列介面,請前往 疑難排解選項, 選擇 啟用 ESXi Shell,然後按下 輸入.
    • 若要啟用遠端 SSH 存取,請前往 疑難排解選項, 選擇 啟用 SSH,然後按下 輸入.

使用 VMware Host Client

使用 VMware Host Client 可以方便地重新啟動 VMware vCenter Agent, vpxa,用於在 ESXi 主機與 vCenter 之間建立連線。

  1. 在網頁瀏覽器的網址列中輸入您的 ESXi 主機的 IP 位址。接著輸入 ESXi 上的管理員帳戶憑證,以登入 VMware Host Client。
  2. 導覽 窗格,前往 主持人 > 管理,然後選取 服務 分頁。
  3. 右鍵點擊 vpxa 服務,並在快顯選單中按下 重新開始.

Options to start-stop-restart SSH service and vpxa

若無法開啟 VMware Host Client,請使用其他方法重新啟動 ESXi 管理代理程式。您可以啟動 TSM-SSH 服務,用於啟用對 ESXi 主機的遠端 SSH 存取。

在 ESXi Shell(SSH)中重新啟動 VMware 代理程式

ESXi 命令列介面 (CLI) 是一項用於管理 ESXi 主機及進行疑難排解的強大工具。若要進行遠端管理,必須啟用對 ESXi 主機的 SSH 存取權限。請使用 SSH 客戶端遠端連線至 ESXi 主機並使用命令列介面。您可以在 Windows 電腦上使用 PuTTY 作為 SSH 客戶端。 在 SSH 客戶端中設定 ESXi 伺服器的 IP 位址或主機名稱,選擇連接埠(預設為 22),然後輸入管理員憑證。接著您應能透過 SSH 看到主控台(終端機)連線。

若您想直接使用 ESXi 殼層(不透過遠端存取),必須啟用 ESXi 殼層,並使用實體連接至 ESXi 伺服器的鍵盤和螢幕。請閱讀關於 ESXCLI 如需進一步了解 ESXi 命令列選項。

註: 本文中使用的指令與 ESXi 6.x 及 ESXi 7.x 相容。

  1. 請使用以下指令列出 ESXi 主機上所有可用的服務(可選):
    chkconfig --list
  2. 尋找 hostd 以及 vpxa 在主控台輸出中查看服務清單,並檢查其狀態。

Cannot synchronize host – listing running services on the host

  1. 重新啟動 hostd 以及 vpxa 服務(管理代理)並使用以下指令:
    /etc/init.d/hostd restart
    /etc/init.d/vpxa restart

Restarting hostd and vpxa VMware agents

  1. 請使用此命令作為替代方案,以重新啟動 ESXi 主機上的所有管理代理程式。
    services.sh restart &tail -f /var/log/jumpstart-stdout.log
    VMware 代理程式重新啟動的進度會顯示在主控台輸出中。

VMware restart management agents with services.sh

  1. 您也可以嘗試重置 VMkernel 介面的管理網路:
    esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0

vmk0 ESXi 預設使用此介面。若您的管理網路介面名稱不同,請在指令中使用相應的介面名稱。

此複雜指令由兩個以 ;(分號)分隔的基本指令組成。該 vmk0 指令的第一部分會停用管理網路介面。當此部分執行成功且 vmk0 若服務已停止運作,則會執行命令的第二部分以啟用該 vmk0 介面。因此,ESXi 管理網路介面將重新啟動。

透過 SSH 使用 DCUI

如果您擁有對 ESXi 主機的 SSH 存取權限,即可在 SSH 連線中開啟 DCUI。此方法可讓您在主控台中使用 DCUI 的偽圖形化使用者介面,操作更為便利。

  1. 在主控台/終端機中執行以下指令以開啟 DCUI:
    dcui
  2. 新聞 F2 以自訂系統。
  3. 請依照上文關於 DCUI 的說明,選取所需的選項以重新啟動 VMware 管理代理程式。

Opening DCUI in the SSH session to restart VMware management services

使用 PowerCLI 重新啟動 VMware 管理代理程式

VMware PowerCLI 這是一款基於 Windows PowerShell 的工具,用於在命令列介面中管理 vCenter 和 ESXi 主機。

  1. 取得 ESXi 主機上可用服務的清單:
    Get-VMHostService -VMHost 192.168.101.208 -Refresh

    • -重新整理 此參數用於在將資料印出至控制台之前,先刷新資料。
    • 192.168.101.208 此處為本範例中使用的 ESXi 主機的 IP 位址。
  2. 請根據您的設定,指定 ESXi 主機的名稱或 IP 位址。輸出結果中顯示的服務清單,與 VMware Host Client 中顯示的服務清單相似,而非 ESXi 命令列中顯示的服務清單。

Checking the status of VMware agents on an ESXi host in PowerCLI

  1. 請指定要將該值新增至 $VMHostService 變數
    $VMHostService = Get-VMHostService -VMHost 192.168.101.208 -Refresh | Where {$_.Key -eq 'vpxa'}
    哪裡 vpxa 是所需 ESXi 管理服務的名稱。您也可以定義其他想要啟動、停止或重新啟動的服務,例如: TSM-SSH (ESXi 主機上的 SSH 伺服器服務)。
  2. 重新啟動 vpxa 透過使用 $VMHostService 命令中的變數:
    Restart-VMHostService -HostService $VMHostService -Verbose

VMware restart management agent in PowerCLI

  • 您也可以手動停止和啟動服務:

Stop-VMHostService -HostService $VMHostService

Start-VMHostService -HostService $VMHostService

  • 您可以嘗試使用替代指令來重新啟動 vpxa:

Get-VMHostService -VMHost 192.168.101.208 | where {$_.Key -eq "vpxa"} | Restart-VMHostService -Confirm:$false -ErrorAction SilentlyContinue

注意事項

  • 若在身為 vSAN 叢集成員的 ESXi 主機上使用鏈路聚合控制協定 (LACP),請勿使用 services.sh 指令。
    使用 /etc/init.d/module restart 重新啟動獨立服務。
  • 若您的 VMware 虛擬環境中已設定 NSX,請勿使用 /sbin/services.sh restart 指令。此指令會重新啟動 ESXi 主機上的所有服務,且網路連線將暫時中斷。在此情況下,您應逐一重新啟動 vpxa, hostd,以及 fdm 以重新啟動主機上的 ESXi 管理代理程式。如果個別重新啟動代理程式無效,且您需要執行 /sbin/services.sh 重新啟動,然後將虛擬機器從當前的 ESXi 主機遷移出來,並將該主機設為維護模式。
  • 如果您不確定某台 ESXi 主機是否已安裝 NSX,可以使用以下指令來確認:
    /sbin/services.sh restartesxcli software vib list --rebooting-image | grep esx-*
  • 如果 vsip-esx 以及 esx-vxlan 輸出中會顯示 VIB,接著便會在 ESXi 主機上安裝 NSX for vSphere。
  • 若在 VMware View 環境中使用共用圖形功能(VGPU、vSGA、vDGA),請勿使用 services.sh 以重新啟動 ESXi 代理程式。若您使用 services.sh 指令,然後 xorg 負責虛擬機器作業系統圖形顯示的服務已停止。停用虛擬機器作業系統中的圖形功能會導致虛擬桌面基礎架構 (VDI) 會在使用共用顯示卡時發生當機。您可以重新啟動 hostd 以及 vpxa 如果您使用的是共用顯示卡,且 ESXi 主機尚未進入維護模式,請手動執行此操作。

結論

重新啟動 ESXi 管理代理程式有助於解決 vCenter 中 ESXi 主機處於"已斷開連接"狀態的問題、直接連線至 ESXi 主機時發生的錯誤,以及虛擬機器操作相關的問題等。本篇部落格文章已介紹了透過 DCUI、ESXi 命令列、VMware Host Client 及 VMware PowerCLI 重新啟動 ESXi 管理代理程式的常見方法。 一般而言,重新啟動管理代理程式不會影響虛擬機器,但若 vSphere 虛擬環境中使用了 vSAN、NSX 或 VDI 的共用顯示卡,則需格外留意。

請定期在 vSphere 中備份您的 VMware 虛擬機器,以保護資料並確保能夠快速復原資料及恢復工作負載。 NAKIVO Backup & Replication 這是一款支援 VMware vSphere 虛擬機器備份的一體化資料保護解決方案。本產品可安裝於 Windows、Linux、NAS設備,亦可作為 VMware VA (virtual appliance) 使用。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

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

People also read