OpenNebula:问题排查与修复
问题 1:用户认证失败
错误信息
1 | User couldn't be authenticated, aborting call |
原因分析
- 用户密码修改后,
~/.one/one_auth文件未同步更新 - 认证文件权限不正确
- OpenNebula 服务未正确加载新凭证
解决方案
1 | # 1. 更新认证文件 |
预防措施
1 | # 使用 oneuser passwd 命令修改密码 |
问题 2:虚拟机卡在 HOLD 状态
现象描述
- 虚拟机创建后一直处于 HOLD 状态
- 无法自动转为 PENDING 或 RUNNING
原因分析
- 资源不足(CPU、内存、存储)
- 网络配置问题
- 调度策略限制
- 模板配置错误
解决方案
1 | # 1. 手动部署虚拟机 |
预防措施
1 | # 配置自动部署策略 |
问题 3:VNC 端口冲突
现象描述
- 虚拟机启动失败
- 日志显示 VNC 端口已被占用
解决方案
1 | # 1. 释放被占用的端口 |
预防措施
1 | # 配置 VNC 端口范围 |
问题 4:虚拟机无法连接网络
现象描述
- 虚拟机启动后无法访问网络
- 无法通过 SSH 连接
解决方案
1 | # 1. 检查虚拟网络 |
网络配置模板示例
1 | NAME = "Private Network" |
问题 5:存储空间不足
现象描述
- 虚拟机创建失败
- 日志显示 “No space left on device”
解决方案
1 | # 1. 检查存储空间 |
问题 6:虚拟机启动超时
现象描述
- 虚拟机停留在 PROLOG 状态
- 超时后转为 FAILED 状态
解决方案
1 | # 1. 增加超时时间 |
高级调试技巧
日志分析
1 | # 查看实时日志 |
数据库维护
1 | # 备份数据库 |
最佳实践建议
定期维护
1
2
3
4
5# 每周清理旧虚拟机
onevm list | grep 'fai\|done' | awk '{print $1}' | xargs -I{} onevm delete {}
# 每月优化数据库
echo "OPTIMIZE TABLES;" | mysql -u oneadmin -p opennebula监控设置
1
2
3
4
5# 安装监控插件
sudo yum install opennebula-monitord
# 配置告警
sudo nano /etc/one/monitord.conf备份策略
1
2
3
4
5# 每日备份配置
0 2 * * * tar czf /backup/one_config_$(date +\%F).tar.gz /etc/one
# 每周全量备份
0 3 * * 0 mysqldump -u oneadmin -p opennebula > /backup/one_db_$(date +\%F).sql
故障排查流程图
1 | graph TD |