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)统一管理。

核心服务一览

服务名称说明重要性
vpxdvCenter Server 核心服务核心
vpxd-svcsvCenter Server 服务(包含 Profile-Driven Storage 等)核心
vsphere-uivSphere Client(HTML5 Web 界面)重要
vapivAPI Endpoint(API 接口服务)重要
vpostgresvCenter PostgreSQL 数据库核心
lookupsvcLookup Service(SSO 组件)核心
scaService Control Agent重要
pschealthPSC Health Service重要
vmware-sts-idmdIdentity Management Service(STS)核心
content-libraryContent Library 服务重要
vsmvSphere vMotion Service重要
vmware-updatemgrvSphere 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 有所帮助!如有问题欢迎留言交流。

发表回复

后才能评论