如何使用ESXCLI在ESXi(7/8/9)上重启管理代理
当您的ESXi主机失去连接或vCenter显示“未响应”时,完全重启很少是最佳答案。本指南将带您了解安全重启管理代理的每种方法,以及当标准修复方法不够用时该如何处理。
在ESXi中重启服务的命令是什么?
没有单一的统一命令,因为这取决于您需要重启哪个服务。以下是一个快速参考:
| 服务 | 功能说明 | 重启命令 |
|---|---|---|
| hostd | 管理本地虚拟机和主机操作 | /etc/init.d/hostd restart |
| vpxa | 处理与vCenter的通信 | /etc/init.d/vpxa restart |
| fdm | 运行vSphere HA功能 | /etc/init.d/vmware-fdm restart |
如果您不确定应该重启哪个服务,或者主机出现大面积无响应,可以一次性重启所有管理代理:
services.sh restart不确定哪种方法适合您的情况?下一节将帮助您根据症状匹配正确的解决方案。
为什么应立即重启ESXi管理代理
管理代理的故障是静默发生的。您的虚拟机仍在运行,但主机变成了一个黑匣子——您无法管理它、监控它,也无法信任vCenter告诉您的信息。以下迹象表明重启是正确的选择。
- vSphere Host Client无法加载或超时。主机可以通过ping访问,但登录页面卡住。这指向
hostd的问题,而不是网络问题。 - vCenter显示主机为“已断开连接”或“未响应”。您仍然可以直接登录,但
vpxa可能已停止向vCenter发送心跳信号。 - 虚拟机操作卡在任务中间。如开机、创建快照或编辑设置等操作卡在某个百分比无法完成。
- Host Client界面极其缓慢。点击菜单每个操作都需要数秒,这通常是
hostd消耗过多内存或陷入循环的信号。 - 事件和日志停止更新。vCenter中的事件选项卡冻结,日志文件没有新条目。当代理挂起时,诊断数据也会停止流动。
- 网络更改未生效。对标准交换机或分布式交换机的配置更新未传播。重启代理可强制刷新。
- 出现“Agent Unable to Retrieve VM Creation Options”错误。在配置新虚拟机时出现此错误,表示管理代理无法查询主机的可用硬件资源。
如何通过3种方法重启ESXi管理代理
在运行任何命令之前,请花两分钟检查您的环境。重启本身是安全的,但时机和方法也很重要。
重启管理代理会影响正在运行的虚拟机吗?
不会。重启hostd和vpxa仅影响管理层。您的虚拟机独立于管理层运行。它们将保持开机状态,网络流量不会中断。
也就是说,任何正在进行的管理任务(如快照、电源操作或配置更改)可能会失败或卡住,直到代理重新上线。请等待活动任务完成后再继续。
运行任何命令前需要检查的事项
- 通知其他管理员。在共享环境中,重启期间主机短暂显示为“未响应”可能会触发误报警或不必要的升级。
- 等待正在进行的vMotion或存储迁移完成。在迁移过程中重启代理可能导致任务进入不可恢复状态。
- 检查是否安装了NSX。如果安装了NSX,请勿使用
services.sh restart,因为它会重启所有服务并暂时中断网络连接。请改为单独重启hostd、vpxa和fdm。要检查是否安装了NSX,请运行:
esxcli software vib list --rebooting-image | grep esx-*如果输出中包含vsip-esx或esx-vxlan,则表示主机上已安装NSX。
- 检查分布式交换机上的LACP配置。如果配置了LACP,出于同样的原因,请避免使用
services.sh restart。仅使用单独的服务重启。 - 确认没有备份任务正在运行。正在进行的备份会持有打开的快照。如果在任务中间重启代理,备份软件将失去对进程的控制,快照可能会变为孤立状态,导致VM在增量磁盘上运行且无法清理。
方法1:通过SSH重启管理代理
这是最常见的方法。它让您精确控制要重启的服务,并提供即时反馈。
步骤1:在ESXi主机上启用SSH
如果SSH尚未运行,可通过vSphere Host Client在主机>管理>服务>TSM-SSH>启动下启用。或者通过DCUI在故障排除选项下启用。
步骤2:通过SSH连接
使用PuTTY(Windows)或系统终端(macOS/Linux),以root身份登录。
步骤3:重启hostd
/etc/init.d/hostd restart步骤4:重启vpxa
/etc/init.d/vpxa restart注意:始终先重启hostd再重启vpxa。vpxa代理依赖于hostd可用,才能正确地向vCenter重新注册。
步骤5:验证两个服务都在运行
/etc/init.d/hostd status /etc/init.d/vpxa status两者都应返回hostd is running和vpxa is running。如果任一显示stopped,等待30秒后再次运行状态检查——服务可能需要一点时间才能完全初始化。
步骤6:重启管理网络接口(如果主机仍然无法访问)
如果确认两个服务都在运行,但主机在vCenter中仍然没有响应,请重启管理VMkernel接口。这可能会短暂中断管理连接,但不会影响虚拟机流量。
esxcli network ip interface set -e false -i vmk0 ; esxcli network ip interface set -e true -i vmk0注意:如果您的管理VMkernel接口名称不同,请将vmk0替换为实际名称。您可以通过esxcli network ip interface list进行查看。
方法2:通过DCUI重启管理代理
直接控制台用户界面(DCUI)是连接在服务器上的物理显示器上显示的黄灰色文本菜单。当SSH被禁用或网络不稳定无法建立远程会话时,请使用此方法。
何时选择DCUI而非SSH
DCUI直接在主机控制台上运行,不依赖网络连接。如果您无法打开SSH会话或Host Client无法加载,这是最可靠的备用方案。
逐步操作:通过DCUI重启代理
- 进入主机控制台,按F2进入自定义菜单。
- 使用root凭据登录。
- 使用方向键导航到故障排除选项,按Enter。
- 选择重启管理代理,按Enter。
- 按F11确认。主机将运行services.sh按顺序重启所有管理服务。
- 当状态显示Done时,按Enter,然后按Esc退出。
注意:DCUI中的重启管理代理选项运行的是services.sh restart,会一次性重启所有服务。如果该主机上配置了NSX或LACP,请改用方法1,单独重启hostd和vpxa。
方法3:通过Host Client重启hostd和vpxa
如果您仍然可以直接访问vSphere Host Client,但主机在vCenter中显示为“已断开连接”,您可以通过浏览器重启代理,无需接触命令行。
何时使用此方法
此方法仅在Host Client仍能加载时有效。如果无法加载,说明hostd本身有问题,请返回方法1或方法2。
逐步操作:通过Host Client重启>管理>服务
- 打开浏览器,使用主机的IP地址或FQDN直接登录ESXi主机。
- 在左侧导航面板中,点击管理。
- 选择服务选项卡。
- 在列表中找到hostd,右键点击它,选择重启。
- 等hostd恢复后,找到vpxa,右键点击它,选择重启。
如果管理代理仍然没有响应怎么办?
如果重启代理后仍未恢复连接,问题可能比服务挂起更严重。在这个阶段,应从尝试修复转向查找根本原因。
在哪里找到正确的日志文件
ESXi将管理日志存储在/var/log/中。如果代理启动失败或重启后立即崩溃,请首先检查以下两个文件:
- /var/log/hostd.log——涵盖本地主机管理操作、硬件交互和虚拟机任务执行。
- /var/log/vpxa.log——涵盖主机与vCenter Server之间的通信。
通过日志查找根本原因
通过SSH使用tail查看最近的条目,无需打开完整日志文件:
查看hostd.log的最后50行:
tail -n 50 /var/log/hostd.log在vpxa.log中搜索错误:
grep -i "error" /var/log/vpxa.log查找诸如Connection refused、Failed to discover或Resource temporarily unavailable等字符串。如果看到持续的I/O错误,代理可能卡在等待某个不再响应的存储阵列上——请检查是否有任何数据存储处于所有路径故障(APD)或永久设备丢失(PDL)状态。
成功重启后在vCenter中重新连接主机
vCenter并不总是能自动检测到代理已恢复在线。如果在确认重启后主机仍显示为“已断开连接”或“未响应”,请手动触发重新连接:
- 在vCenter清单中右键点击主机。
- 选择连接>连接。
- 如果提示,确认SSL证书指纹。
何时升级到完全重启主机
如果重启命令无限期卡住或返回Device or resource busy错误,可能有进程卡在不可中断状态——这通常是由管理层无法自行恢复的存储或内核级故障引起的。
如果services.sh restart在10分钟内未完成,或者日志显示表明主机已不再稳定的内核级错误,请计划完全重启。由于管理代理已关闭,您很可能需要通过服务器的硬件管理接口(iDRAC、iLO或IPMI)来执行重启。
在下一次管理故障之前备份您的ESXi虚拟机
重启管理代理可以解决眼前的问题。但它无法保护您免受主机不可管理期间可能发生的问题——孤立的快照、失败的备份任务,或者因没有干净还原点而无法恢复的虚拟机。
人工干预只能奏效一次。可靠的备份策略每次都能奏效。
i2Backup是一款企业级备份解决方案。它无需在主机或客户机上安装任何代理即可保护VMware虚拟机,使用原生VMware API进行规模化备份,对生产工作负载零影响。
i2Backup的主要功能
- 无代理VM备份。i2Backup使用原生虚拟化平台API备份VMware虚拟机,无需接触客户机操作系统或中断运行中的工作负载。无需安装代理,对生产零影响。
- 即时VM恢复。在主机故障时,i2Backup可以将VM备份远程挂载到目标平台,使VM无需等待完整恢复即可重新上线。
- 时间点恢复。连续备份日志和多个还原点让您可以恢复到任何特定时刻——当问题是数据损坏或意外删除,而不仅仅是主机完全故障时非常有用。
- 灵活的调度和自动清理。按小时、天或周设置备份计划。过期的备份会根据您的保留规则自动删除,无需人工干预即可控制存储使用。
- 集中监控和告警。基于Web的管理界面提供备份状态的实时可见性,并支持邮件和短信告警,让您的团队在任务失败时立即知晓。
- 广泛的平台兼容性。除VMware外,i2Backup还支持Hyper-V、OpenStack、华为HCS/FusionCompute、ZStack等,适用于跨多个虚拟化平台的环境。
管理代理故障很少是可预测的。拥有干净、最新的VM备份意味着当问题发生时,恢复只需几分钟,而不是数小时的故障排查。
常见问题
问1:重启hostd会影响正在运行的虚拟机吗?
不会。像hostd和vpxa这样的管理代理独立于运行虚拟机的层面运行。在整个重启过程中,虚拟机将继续运行、处理数据并保持网络连接。唯一会短暂不可用的是管理界面本身。
问2:如何验证代理是否重启成功?
通过SSH运行状态检查命令:
/etc/init.d/hostd status /etc/init.d/vpxa status两者都应返回“running”状态。同时检查主机在vCenter清单中是否恢复到已连接状态——这确认了vpxa已成功重新建立与vCenter的通信。
问3:hostd和vpxa有什么区别?
hostd直接管理主机的本地资源和虚拟机操作。vpxa是vCenter通信代理——它从vCenter Server接收指令并将其传递给hostd执行。如果hostd是引擎,那么vpxa就是中继。
问4:没有SSH访问权限可以重启管理代理吗?
可以。通过物理控制台或iDRAC、iLO等远程硬件管理工具使用DCUI。如果vSphere Host Client仍然可以访问,您也可以在主机>管理>服务下直接重启服务。
问5:网络配置更改后需要重启管理代理吗?
通常不需要。但如果您对vSphere分布式交换机应用了更改而主机在vCenter中仍显示为“不同步”,重启代理可以强制配置刷新并使主机的状态与vCenter数据库重新同步。
结论
管理代理故障看起来比实际情况更严重。在大多数情况下,您的虚拟机仍在运行,问题仅限于管理层,而有针对性的服务重启就足以恢复可见性和控制权。
本指南介绍的三种方法为您提供了应对各种场景的解决方案:SSH用于精确控制,DCUI用于网络不可靠时,Host Client用于问题仅限于vCenter连接时。如果这些方法都不奏效,日志文件会指引您找到真正的原因——无论是存储问题、凭据不匹配,还是需要完全重启主机的问题。
服务重启做不到的一件事是恢复数据。如果代理故障导致备份任务失败或使快照变为孤立状态,您需要一个干净的还原点作为回退。在下一次故障发生之前,使用英方软件的i2Backup设置无代理VM备份,是确保恢复始终可用最简单的方式。