1.排查到环境中的一台计算节点nova-compute服务无法启动
执行sudo systemctl restart openstack-nova-compute无法重启
nova-compute日志报错:
sudo[92117]: nova : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/nova-rootwrap /etc/nova/rootwrap.conf rpm -
$ sudo vim /var/log/nova/nova-compute.log
2023-08-02 17:48:05.134 6109 CRITICAL nova [None req-5ad8740a-15b4-47a6-a110-79619b5aa61a - - - - -] Unhandled error: ProcessExecutionError: Unexpected error while running command.
Command: sudo nova-rootwrap /etc/nova/rootwrap.conf rpm -q qemu-kvm-rhev
Exit code: 1
Stdout: u'package qemu-kvm-rhev is not installed\n'
Stderr: u'error: rpmdb: BDB0113 Thread/process 3129/140012049340480 failed: BDB1507 Thread died in Berkeley DB library\nerror: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery\nerror: cannot open Packages index using db5 - (-30973)\nerror: cannot open Packages database in /var/lib/rpm\nerror: rpmdb: BDB0113 Thread/process 3129/140012049340480 failed: BDB1507 Thread died in Berkeley DB library\nerror: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery\nerror: cannot open Packages database in /var/lib/rpm\n'
####日志中有一些生产环境信息已经删除,日志报错原因如上关键字 rpmdb,/var/lib/rpm\nerror: rpmdb
2.手动在计算节点上执行sudo nova-rootwrap /etc/nova/rootwrap.conf rpm -q qemu-kvm-rhev
返回:
error: rpmdb: BDB0113 Thread/process 3129/140012049340480 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
error: rpmdb: BDB0113 Thread/process 3129/140012049340480 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages database in /var/lib/rpm
判断为/var/lib/rpm的db损坏,进行人为修复
修复流程如下:
解决方法,重新构建rpm信息数据库:
[root@qq_5201351 ~]# cp -a /var/lib/rpm /var/lib/rpm.bak.202201
[root@qq_5201351 ~]# cd /var/lib/rpm
[root@qq_5201351 ~]# rm -f __db.*
[root@qq_5201351 ~]# rpm --rebuilddb
然后再次执行rpm -qa 命令进行查询,就正常查询出系统中安装的rpm包软件了,问题解决~
重新重启nova-compute服务正常