跳转至

虚拟机自启动

在家庭 AIO 服务器环境中,当 ESXi 主机重启后,如果希望关键的虚拟机能够自动启动,则需要开启虚拟机自启动功能。

功能概述

ESXi 的虚拟机自动启动功能可以:

  • 自动启动虚拟机 - 主机启动后自动启动指定的虚拟机;
  • 控制启动顺序 - 设置虚拟机的启动优先级和延迟时间;
  • 自动关机 - 主机关机时自动关闭虚拟机;
  • 故障恢复 - 虚拟机异常关闭后自动重启;

配置步骤

1. 访问自动启动配置

登录ESXi管理后台,导航到虚拟机自动启动配置页面: 【管理】 - 【系统】 - 【自动启动】

导航到自动启动配置

2. 启用自动启动功能

首先需要启用 ESXi 主机的自动启动功能:

  1. 点击【编辑】按钮
  2. 勾选【启用】复选框
  3. 配置全局启动参数

启用自动启动功能

提示

启动延迟:启动延迟 启动 ESXi 主机后,将开始打开配置为自动启动的虚拟机的电源。ESXi 主机打开第一个虚拟机的电源后,该主机会等待指定的延迟时间,然后打开下一个虚拟机的电源。

停止延迟:停止延迟是指 ESXi 主机等待关机命令完成的最长时间。关闭这些虚拟机的顺序与其启动顺序相反。当 ESXi 主机在您指定的时间内关闭第一个虚拟机后,它将关闭下一个虚拟机。如果某个虚拟机未在指定的延迟时间内关闭,则主机将运行关闭电源命令,然后开始关闭下一个虚拟机。在所有虚拟机都关闭后,ESXi 主机才会关闭。

等待检测信号:选择 以启用 等待检测信号 选项。如果虚拟机的客户机操作系统安装了 VMware Tools,则可以使用此选项。ESXi 主机打开第一个虚拟机的电源后,会立即打开下一个虚拟机的电源。虚拟机收到第一个检测信号后,虚拟机打开电源的顺序继续。

3. 配置虚拟机启动策略

为每个需要自动启动的虚拟机配置启动策略,其中 启动顺序数值越小越先开机,陈大剩以三个软路由为例:

家庭终端网段(主路由配置)配置

软路由作为网络基础设施,应该最先启动:

配置项 设置值 说明
启动操作 随系统启动 主机启动时自动启动
启动顺序 1 最高优先级
启动延迟 0 秒 立即启动
停止操作 关闭电源 强制关机
停止延迟 60 秒 等待关机完成

启用自动启动功能

二级路由配置

实验室网段和预留网段的软路由应在主路由启动后启动:

配置项 设置值 说明
启动操作 随系统启动 主机启动时自动启动
启动顺序 2 第二优先级
启动延迟 60 秒 等待主路由完全启动
停止操作 关闭电源 强制关机
停止延迟 60 秒 等待关机完成
配置项 设置值 说明
启动操作 随系统启动 主机启动时自动启动
启动顺序 3 第三优先级
启动延迟 60 秒 等待上级路由启动
停止操作 关闭电源 强制关机
停止延迟 60 秒 等待关机完成

二级路由配置设置启动顺序

应用服务虚拟机配置

其他应用服务虚拟机应在网络基础设施启动后再启动:

配置项 设置值 说明
启动操作 随系统启动 主机启动时自动启动
启动顺序 4-10 根据依赖关系排序
启动延迟 120 秒 确保网络服务可用
停止操作 关闭电源 强制关机
停止延迟 60 秒 等待应用关闭

4. 高级配置选项

停止操作类型

根据实际 ESXi 版本,停止操作通常包含以下选项:

操作类型 说明 风险等级 推荐场景
不执行任何操作 高风险 仅测试环境
挂起 挂起虚拟机状态 中等风险 需要快速恢复的服务
关闭电源 强制断电关机 中等风险 大多数场景(推荐)

关于停止操作的重要说明

为什么推荐"关闭电源":

  • ESXi 的"关闭电源"实际上会先尝试优雅关机
  • 如果虚拟机安装了 VMware Tools,会发送关机信号
  • 只有在超时后才会强制断电
  • 这是 ESXi 环境中最常用和可靠的关机方式

优雅关机的实现方式

为了实现更安全的关机,建议:

在每个虚拟机中安装 VMware Tools,这样"关闭电源"操作会:

  1. 首先发送 ACPI 关机信号
  2. 等待虚拟机响应并开始关机流程
  3. 在超时后才强制断电
Bash
# 在Linux虚拟机中安装open-vm-tools
# Ubuntu/Debian
apt-get update && apt-get install open-vm-tools

# CentOS/RHEL
yum install open-vm-tools

# OpenWrt
opkg update && opkg install open-vm-tools

根据虚拟机类型设置合适的停止延迟时间:

虚拟机类型 推荐停止延迟 原因
软路由 60-120 秒 需要保存配置和连接状态
数据库服务 120-300 秒 需要完成事务和数据同步
Web服务 60-120 秒 需要处理现有连接
文件服务 180-300 秒 需要同步文件缓存

启动时间建议

启动时间陈大剩建议按照下面启动时间配置:

虚拟机类型 建议启动延迟 优化原因
软路由 0-30 秒 网络服务启动较快
数据库服务 60-120 秒 需要完整初始化
Web服务 30-60 秒 依赖数据库服务
监控服务 120-180 秒 需要其他服务就绪

故障排除

常见问题及解决方案

1. 虚拟机未自动启动

可能原因:

  • 自动启动功能未启用
  • 虚拟机启动操作设置为"无"
  • ESXi 主机资源不足

解决方案:

Bash
# 检查ESXi主机资源使用情况
esxtop

# 查看虚拟机启动日志
tail -f /var/log/vmware.log

# 手动启动虚拟机测试
vim-cmd vmsvc/power.on [vmid]

2. 启动顺序混乱

可能原因:

  • 启动顺序配置错误
  • 启动延迟时间不足
  • 虚拟机启动时间过长

解决方案:

  • 重新检查启动顺序配置
  • 增加启动延迟时间
  • 优化虚拟机启动性能

3. 虚拟机启动失败

可能原因:

  • 虚拟机配置错误
  • 存储空间不足
  • 网络配置问题

解决方案:

Bash
# 检查虚拟机配置文件
cat /vmfs/volumes/datastore1/VM_NAME/VM_NAME.vmx

# 检查存储空间
df -h

# 检查网络配置
esxcli network vswitch standard list

日志分析

ESXi主机日志

Bash
# 查看主机启动日志
tail -f /var/log/messages

# 查看虚拟机管理日志
tail -f /var/log/vmware.log

# 查看自动启动相关日志
grep -i "autostart" /var/log/vmware.log

虚拟机日志

Bash
# 查看特定虚拟机日志,VM_NAME 为虚拟机名称
tail -f /vmfs/volumes/datastore1/VM_NAME/vmware.log

# 查看虚拟机启动事件
grep -i "power" /vmfs/volumes/datastore1/VM_NAME/vmware.log

总结

这节主要是配置了 ESXi 虚拟机自动启动功能:

  • 启用自动启动 - 配置全局启动参数
  • 设置启动顺序 - 确保服务按依赖关系启动
  • 优化启动时间 - 合理设置延迟时间
  • 故障排除 - 解决常见启动问题

创建日期: 2025年2月25日 最后更新: 2025年8月7日