Exceeded max scheduling attempts 3 ... Last exception: CAS host fault
CloudOS 连续 3 次尝试把虚拟机调度下发到 CAS 集群主机全部失败,根源:
CloudOS 识别 CAS 集群内可用 CVK 宿主机异常(主机故障、失联、资源耗尽、通信中断),调度全部碰壁后创建终止。
整体排查顺序(由浅入深,90% 场景均可解决)
一、先清理失败异常实例
- CloudOS 界面 → 云主机列表,删除这条状态异常、UUID=
6925cea2-7c52-4fcd-b56b-fb4fb0e9dd7e的故障虚机;
- 进入【任务中心】,删除所有堆积的创建失败任务,防止任务队列锁死调度逻辑。
二、检查 CAS 集群宿主机状态(核心)
登录 CAS CVM 管理页面查看所有 CVK 节点:
- 有无主机状态为 故障、失联、维护模式、告警红色
- 故障 / 失联 CVK:排查服务器硬件、网线、心跳链路、重启故障 CVK;
- 误进入维护模式的主机:取消维护模式。
- 查看所有正常 CVK 剩余资源
所有宿主机内存 / CPU 全部占满、没有空闲资源承载新虚拟机,CloudOS 找不到可用主机,触发 CAS host fault。
解决:关停闲置虚拟机释放资源,再新建虚拟机。
- CAS 集群是否开启 HA、DRRS,集群是否分裂、存储池异常(存储故障会导致 CVK 被判定不可用)。
三、CloudOS 与 CAS 对接同步校验(高频故障点)
- CloudOS → 基础设施 → 虚拟化资源池,找到对接的 CAS 资源池
点击 同步资源,等待 5 分钟完成全量同步,修复两边主机状态不同步问题。
- 检查对接账号权限
CloudOS 对接 CAS 所用账号是否具备 CVM 管理员权限;账号密码修改后未在 CloudOS 重新更新凭据,会造成状态拉取异常。
- 网络连通校验
CloudOS 管理节点能正常 ping 通 CAS CVM 地址,防火墙未拦截 80、443、8080 对接端口。
- 时间强制对齐
CloudOS 所有节点、CAS 所有 CVM/CVK 节点 NTP 统一北京时间,时间差超过 30s 会造成对接鉴权异常、主机状态误判为故障H3C。
四、调度策略过滤导致无可用主机
- 新建虚拟机时配置了主机亲和策略(强制部署在某台 CVK),该 CVK 刚好故障 / 资源满,直接调度失败;
- CloudOS 调度过滤器限制:内存过滤、CPU 过滤、标签过滤,筛选之后没有合格主机。
解决:
- 创建测试虚拟机:1 核 512M 内存、普通模板、不绑定亲和策略,测试能否正常创建;
- 测试可以创建 = 原有虚拟机规格过大 / 亲和策略异常,修改规格或删除亲和规则即可。
五、CAS 侧内部故障(CAS 上报自身主机异常)
- 登录 CAS 任意 CVM,查看告警中心:
- 存储池离线、OSD 故障、共享存储只读;
- CVK 的 libvirt、evmd 服务异常。
修复 CAS 异常服务:
# 在异常CVK执行
systemctl restart libvirtd
systemctl restart evmd
- CAS 版本存在 BUG:老旧 CAS E0703 及以下版本对接 CloudOS5.0 容易上报 host fault,建议 CAS 升级至 E0730P17/E0810 稳定版本。
六、CloudOS 后台服务修复(前面无效再执行)
登录 CloudOS 主节点 root,重启 nova 调度服务,不会影响正在运行的虚拟机:
# 重启调度与对接服务
systemctl restart openstack-nova-scheduler
systemctl restart openstack-nova-conductor
七、规避方案
- 不要将 CAS 半数以上主机划入维护模式,会造成无可用计算节点;
- 日常监控 CAS 集群内存、CPU 使用率,避免资源打满无法新建虚拟机;
- CloudOS 与 CAS 对接密码变更后,务必在虚拟化资源池配置里重新录入密码并同步资源。
最简快速修复步骤(运维应急)
- 删除故障虚机与异常任务;
- CAS 查看有无故障 CVK,释放空闲资源;
- CloudOS 虚拟化资源池执行【同步资源】;
- 用极小规格测试虚拟机验证创建。
暂无评论