vCenter Server 服务管理完全指南:启停、重启与排障实战
vCenter Server 是 VMware vSphere 虚拟化平台的核心管理组件,负责集中管理 ESXi 主机、虚拟机、存储和网络等资源。在日常运维中,掌握 vCenter 服务的管理方法至关重要——无论是例行维护、故障排查,还是性能调优,都离不开对服务的启停和状态监控。
本文将系统地介绍 vCenter Server(以 VCSA 7.x/8.x 为例)的服务管理方法,涵盖常用命令、典型场景示例和排障技巧。
一、vCenter Server 架构概览
现代 vCenter Server 基于 Photon OS(Linux),称为 VCSA(vCenter Server Appliance)。相比旧版 Windows 版本,VCSA 是预配置的虚拟设备,更轻量、更易维护。VCSA 内部运行着大量服务,这些服务由 vMon(vCenter Service Manager)统一管理。
核心服务一览
| 服务名称 | 说明 | 重要性 |
|---|---|---|
| vpxd | vCenter Server 核心服务 | 核心 |
| vpxd-svcs | vCenter Server 服务(包含 Profile-Driven Storage 等) | 核心 |
| vsphere-ui | vSphere Client(HTML5 Web 界面) | 重要 |
| vapi | vAPI Endpoint(API 接口服务) | 重要 |
| vpostgres | vCenter PostgreSQL 数据库 | 核心 |
| lookupsvc | Lookup Service(SSO 组件) | 核心 |
| sca | Service Control Agent | 重要 |
| pschealth | PSC Health Service | 重要 |
| vmware-sts-idmd | Identity Management Service(STS) | 核心 |
| content-library | Content Library 服务 | 重要 |
| vsm | vSphere vMotion Service | 重要 |
| vmware-updatemgr | vSphere Update Manager (VUM) | 重要 |
二、三大管理工具
VCSA 提供了三种主要的服务管理工具,适用于不同场景:
1. vmon-cli(推荐)
vmon-cli 是 vCenter Service Manager 的命令行接口,是最官方、最推荐的服务管理工具。它可以管理所有由 vMon 管控的服务。
2. service-control
service-control 是另一个服务控制脚本,功能与 vmon-cli 类似,但在批量操作和特定场景下更方便。
3. systemctl
Photon OS 底层使用 systemd,systemctl 可用于管理操作系统级服务(如 sshd、ntpd 等),但不直接管理 vMon 管控的 vCenter 服务。
三、vmon-cli 常用命令
查看所有服务状态
# 查看所有服务状态
vmon-cli --status
# 查看特定服务状态
vmon-cli --status vpxd
输出示例:
LAST STARTUP TIME: 2025-06-20T08:32:15.123Z
SERVICE: vpxd
STARTUP MSG: Started vpxd
STATUS: STARTED
启动 / 停止 / 重启单个服务
# 启动服务
vmon-cli --start vpxd
# 停止服务
vmon-cli --stop vpxd
# 重启服务
vmon-cli --restart vpxd
查看服务详细信息
# 查看服务详细配置
vmon-cli --info vpxd
# 输出示例:
# SERVICE: vpxd
# EXECUTABLE: /usr/sbin/vpxd
# CONFIG FILE: /etc/vmware-vpx/vpxd.cfg
# LOG FILE: /var/log/vmware/vpxd/vpxd.log
四、service-control 常用命令
批量操作所有服务
# 停止所有 vCenter 服务(从高到低)
service-control --stop --all
# 启动所有 vCenter 服务(按依赖顺序)
service-control --start --all
# 重启所有服务(先停止再启动)
service-control --stop --all && service-control --start --all
注意:停止所有服务会导致 vCenter 完全不可用,仅在维护窗口内操作。切勿在生产环境随意执行。
操作指定服务
# 停止指定服务
service-control --stop vsphere-ui
# 启动指定服务
service-control --start vsphere-ui
# 查看所有服务状态
service-control --status
排除特定服务
# 停止所有服务,但排除 vmware-updatemgr
service-control --stop --all --exclude vmware-updatemgr
五、实战场景示例
场景1:vSphere Client 无法访问(白屏/503)
这是最常见的问题之一,通常是 vsphere-ui 或 vpxd 服务异常。
# 1. 登录 VCSA SSH
ssh root@vcenter.example.com
# 2. 检查 vsphere-ui 服务状态
vmon-cli --status vsphere-ui
# 3. 如果状态为 STOPPED,尝试启动
vmon-cli --start vsphere-ui
# 4. 如果状态为 STARTED 但仍无法访问,尝试重启
vmon-cli --restart vsphere-ui
# 5. 检查 vpxd 核心服务
vmon-cli --status vpxd
# 6. 如果 vpxd 异常,重启它
vmon-cli --restart vpxd
# 7. 查看日志排查根因
tail -200 /var/log/vmware/vpxd/vpxd.log
tail -200 /var/log/vmware/vsphere-ui/logs/vsphere_client_v1.log
场景2:vCenter 数据库连接失败
当 vCenter 报告数据库连接问题时,需要检查 vpostgres 服务。
# 1. 检查 PostgreSQL 服务状态
vmon-cli --status vpostgres
# 2. 如果已停止,启动数据库
vmon-cli --start vpostgres
# 3. 验证数据库连接
/opt/vmware/vpostgres/current/bin/psql -U postgres -d VCDB -c "SELECT count(*) FROM vpx_vm;"
# 4. 检查数据库日志
tail -100 /var/log/vmware/vpostgres/postgres.log
# 5. 数据库恢复后,重启 vpxd 使其重新连接
vmon-cli --restart vpxd
场景3:SSO / 认证服务故障
当登录 vCenter 时提示 "Invalid credentials" 但密码确实正确,通常是 STS / Lookup Service 问题。
# 1. 检查 SSO 相关服务
vmon-cli --status lookupsvc
vmon-cli --status vmware-sts-idmd
# 2. 重启 SSO 服务(按依赖顺序)
vmon-cli --restart lookupsvc
vmon-cli --restart vmware-sts-idmd
# 3. 如果问题仍然存在,重启所有 SSO 组件
service-control --stop lookupsvc vmware-sts-idmd sca pschealth
service-control --start lookupsvc vmware-sts-idmd sca pschealth
# 4. 查看 STS 日志
tail -200 /var/log/vmware/sso/lookupservice.log
tail -200 /var/log/vmware/identity/identity-metrics.log
场景4:计划维护 — 安全重启所有服务
# 1. 确认当前所有服务状态
service-control --status
# 2. 优雅停止所有服务(按依赖逆序)
service-control --stop --all
# 3. 等待 30 秒确保进程完全退出
sleep 30
# 4. 确认没有残留进程
ps aux | grep -E 'vpxd|vpostgres|vsphere-ui' | grep -v grep
# 5. 按顺序启动所有服务
service-control --start --all
# 6. 验证所有服务已启动
service-control --status
# 7. 测试 vSphere Client 访问
curl -k https://localhost/ui/
场景5:VUM(Update Manager)服务异常
# 1. 检查 VUM 服务状态
vmon-cli --status vmware-updatemgr
# 2. 重启 VUM 服务
vmon-cli --restart vmware-updatemgr
# 3. 查看 VUM 日志
tail -200 /var/log/vmware/updatemgr/vmware-updatemgr.log
# 4. 检查 VUM 数据库连接
tail -100 /var/log/vmware/updatemgr/vum-db.log
六、VAMI 管理界面
除了命令行,VCSA 还提供了 VAMI(vCenter Appliance Management Interface),通过浏览器访问 https://<vcenter-ip>:5480 即可使用。
VAMI 可以做什么
- 查看 vCenter 健康状态(CPU、内存、磁盘、网络)
- 查看和操作服务状态(Services 标签页)
- 数据库备份与恢复
- 查看 vCenter 系统日志
- 修改网络配置、NTP、SSH 设置
- 证书管理
- vCenter 升级和补丁管理
在 VAMI 中点击 Services 标签页,可以看到所有服务的运行状态,并可以执行启动/停止/重启操作。这在不方便 SSH 时非常方便。
七、日志位置速查
| 服务 | 日志路径 |
|---|---|
| vpxd(核心服务) | /var/log/vmware/vpxd/vpxd.log |
| vSphere Client | /var/log/vmware/vsphere-ui/logs/ |
| PostgreSQL | /var/log/vmware/vpostgres/postgres.log |
| Lookup Service | /var/log/vmware/sso/lookupservice.log |
| STS | /var/log/vmware/identity/ |
| VUM | /var/log/vmware/updatemgr/ |
| vAPI | /var/log/vmware/vapi/endpoint/ |
| vMon | /var/log/vmware/vmon/ |
| Content Library | /var/log/vmware/content-library/ |
八、常用排障技巧
1. 服务启动失败排查
# 查看服务启动失败的详细日志
vmon-cli --info vpxd # 获取日志路径
tail -500 /var/log/vmware/vpxd/vpxd.log | grep -i error
# 检查磁盘空间(磁盘满会导致服务无法启动)
df -h
# 检查内存
free -h
# 检查关键端口是否被占用
netstat -tlnp | grep -E '443|80|5480|902'
2. 检查服务依赖关系
# vCenter 服务有严格的启动顺序依赖:
# vpostgres -> lookupsvc -> vmware-sts-idmd -> vpxd -> vsphere-ui -> vapi -> ...
# 如果某个服务启动失败,先检查其依赖服务是否正常
vmon-cli --status vpostgres
vmon-cli --status lookupsvc
vmon-cli --status vmware-sts-idmd
3. 查看 vCenter 整体健康状态
# 使用 VAMI API 查看健康状态
curl -k https://localhost:5480/rest/appliance/health/system
# 查看磁盘使用
df -h
# 查看 CPU 和内存
top -bn1 | head -5
# 查看 vCenter 服务的资源使用
ps aux --sort=-%mem | head -20
4. 收集日志包(用于 VMware 支持)
# 生成 vCenter 支持日志包
vc-support -w /tmp/vcenter-support-$(date +%Y%m%d).tgz
# 该命令会收集所有 vCenter 日志和配置信息
# 生成的文件可直接提供给 VMware 技术支持
九、最佳实践
- 先停后启:重启所有服务时,务必先 --stop --all 等待完全停止后,再 --start --all,不要直接用 kill -9 强杀进程
- 尊重依赖顺序:vpostgres 是最底层服务,必须先启动;vpxd 依赖数据库和 SSO;vsphere-ui 依赖 vpxd
- 维护窗口操作:服务重启会导致短暂中断,尽量在业务低峰期操作
- 备份优先:大规模操作前先做 vCenter 数据库快照和备份
- 监控磁盘:VCSA 日志增长很快,设置磁盘空间告警,/var/log 满了会导致服务崩溃
- 定期更新:通过 VAMI 或 vSphere Lifecycle Manager 定期更新 vCenter 补丁
- 保留日志:排障时先收集日志 vc-support,再做操作
- NTP 同步:确保 NTP 正常,时间偏差会导致 SSO 证书验证失败
十、速查命令表
| 操作 | 命令 |
|---|---|
| 查看所有服务状态 | service-control --status 或 vmon-cli --status |
| 查看单个服务状态 | vmon-cli --status vpxd |
| 启动单个服务 | vmon-cli --start vpxd |
| 停止单个服务 | vmon-cli --stop vpxd |
| 重启单个服务 | vmon-cli --restart vpxd |
| 启动所有服务 | service-control --start --all |
| 停止所有服务 | service-control --stop --all |
| 查看服务详情 | vmon-cli --info vpxd |
| 收集支持日志 | vc-support -w /tmp/support.tgz |
| 访问 VAMI | 浏览器打开 https://vcenter-ip:5480 |
总结
vCenter Server 的服务管理并不复杂,关键在于理解服务之间的依赖关系和使用正确的工具。vmon-cli 适合精细化的单服务管理,service-control 适合批量操作,VAMI 适合可视化监控。日常运维中,建议养成"先看状态、再查日志、后做操作"的习惯,避免盲目重启带来的二次故障。
希望本文对大家管理 vCenter Server 有所帮助!如有问题欢迎留言交流。





