You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除Nova计算服务后节点未在Hypervisor及Cell中显示的问题

OpenStack计算节点host_mappings缺失问题排查

一、host_mappings映射的自动创建时机

  • 当计算节点的nova-compute服务首次向nova-conductor注册时,nova-conductor会自动在nova_api.host_mappings表中创建对应主机的映射记录,并关联到对应的cell单元。
  • 执行nova-manage cell_v2 discover_hosts命令时,工具会扫描nova.compute_nodes表中未在host_mappings存在的主机,自动创建映射并匹配到合适的cell。

二、可能遗漏的操作

  • 重启nova-compute恢复服务条目后,未确认nova-conductor服务是否正常运行,导致计算节点的注册请求未被处理。
  • 执行nova-manage cell_v2 discover_hosts时,未指定具体cell UUID(当环境存在多个cell时),默认仅扫描第一个cell,导致目标节点未被发现。
  • 删除计算服务后,nova-compute重启时使用的主机标识(如FQDN、主机名)与nova.compute_nodes表中记录不一致,导致自动发现无法匹配。

三、进一步排查与修复步骤

1. 检查nova-conductor服务状态与日志

  • 确认服务运行状态:sudo systemctl status nova-conductor
  • 实时查看日志排查报错:sudo journalctl -u nova-conductor -f,重点关注是否有处理os-compute03.maas注册请求时的权限异常、数据库连接错误等信息。

2. 验证主机标识一致性

  • 在计算节点执行hostname -f获取完整FQDN,对比nova.compute_nodes表中该节点的host字段值,确保两者完全一致(包括大小写、域名后缀)。

3. 针对指定cell执行主机发现

  • 先获取所有cell的UUID:nova-manage cell_v2 list_cells
  • 对每个cell执行发现命令:sudo nova-manage cell_v2 discover_hosts --cell_uuid <CELL_UUID> --verbose,强制扫描目标cell下的未映射主机。

4. 手动创建host_mappings记录(应急方案)

如果自动发现失败,可手动插入映射:

  1. 查询计算节点在nova.compute_nodes中的记录:
    SELECT id, host FROM nova.compute_nodes WHERE host = 'os-compute03.maas';
    
  2. 查询目标cell的UUID:
    SELECT uuid FROM nova_api.cells WHERE name = 'cell1'; -- 替换为实际cell名称
    
  3. 插入映射记录:
    INSERT INTO nova_api.host_mappings (host, cell_id, created_at, updated_at) VALUES ('os-compute03.maas', '<CELL_UUID>', NOW(), NOW());
    
  4. 插入后重启服务:sudo systemctl restart nova-conductor nova-scheduler,再执行openstack hypervisor list验证。

5. 检查数据库完整性与权限

  • 检查nova_api数据库表是否损坏:mysqlcheck -u nova -p nova_api
  • 确认nova数据库用户对nova_api库拥有读写权限。

内容的提问来源于stack exchange,提问作者Darko P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:07:11