虚拟机自启动
在家庭 AIO 服务器环境中,当 ESXi 主机重启后,如果希望关键的虚拟机能够自动启动,则需要开启虚拟机自启动功能。
功能概述¶
ESXi 的虚拟机自动启动功能可以:
- 自动启动虚拟机 - 主机启动后自动启动指定的虚拟机;
- 控制启动顺序 - 设置虚拟机的启动优先级和延迟时间;
- 自动关机 - 主机关机时自动关闭虚拟机;
- 故障恢复 - 虚拟机异常关闭后自动重启;
配置步骤¶
1. 访问自动启动配置¶
登录ESXi管理后台,导航到虚拟机自动启动配置页面: 【管理】 - 【系统】 - 【自动启动】
2. 启用自动启动功能¶
首先需要启用 ESXi 主机的自动启动功能:
- 点击【编辑】按钮
- 勾选【启用】复选框
- 配置全局启动参数
提示
启动延迟:启动延迟 启动 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,这样"关闭电源"操作会:
- 首先发送 ACPI 关机信号
- 等待虚拟机响应并开始关机流程
- 在超时后才强制断电
根据虚拟机类型设置合适的停止延迟时间:
虚拟机类型 | 推荐停止延迟 | 原因 |
---|---|---|
软路由 | 60-120 秒 | 需要保存配置和连接状态 |
数据库服务 | 120-300 秒 | 需要完成事务和数据同步 |
Web服务 | 60-120 秒 | 需要处理现有连接 |
文件服务 | 180-300 秒 | 需要同步文件缓存 |
启动时间建议¶
启动时间陈大剩建议按照下面启动时间配置:
虚拟机类型 | 建议启动延迟 | 优化原因 |
---|---|---|
软路由 | 0-30 秒 | 网络服务启动较快 |
数据库服务 | 60-120 秒 | 需要完整初始化 |
Web服务 | 30-60 秒 | 依赖数据库服务 |
监控服务 | 120-180 秒 | 需要其他服务就绪 |
故障排除¶
常见问题及解决方案¶
1. 虚拟机未自动启动¶
可能原因:
- 自动启动功能未启用
- 虚拟机启动操作设置为"无"
- ESXi 主机资源不足
解决方案:
# 检查ESXi主机资源使用情况
esxtop
# 查看虚拟机启动日志
tail -f /var/log/vmware.log
# 手动启动虚拟机测试
vim-cmd vmsvc/power.on [vmid]
2. 启动顺序混乱¶
可能原因:
- 启动顺序配置错误
- 启动延迟时间不足
- 虚拟机启动时间过长
解决方案:
- 重新检查启动顺序配置
- 增加启动延迟时间
- 优化虚拟机启动性能
3. 虚拟机启动失败¶
可能原因:
- 虚拟机配置错误
- 存储空间不足
- 网络配置问题
解决方案:
# 检查虚拟机配置文件
cat /vmfs/volumes/datastore1/VM_NAME/VM_NAME.vmx
# 检查存储空间
df -h
# 检查网络配置
esxcli network vswitch standard list
日志分析¶
ESXi主机日志¶
# 查看主机启动日志
tail -f /var/log/messages
# 查看虚拟机管理日志
tail -f /var/log/vmware.log
# 查看自动启动相关日志
grep -i "autostart" /var/log/vmware.log
虚拟机日志¶
# 查看特定虚拟机日志,VM_NAME 为虚拟机名称
tail -f /vmfs/volumes/datastore1/VM_NAME/vmware.log
# 查看虚拟机启动事件
grep -i "power" /vmfs/volumes/datastore1/VM_NAME/vmware.log
总结¶
这节主要是配置了 ESXi 虚拟机自动启动功能:
- 启用自动启动 - 配置全局启动参数
- 设置启动顺序 - 确保服务按依赖关系启动
- 优化启动时间 - 合理设置延迟时间
- 故障排除 - 解决常见启动问题