Newton平台搭建好后創建虛擬機報錯:
<class 'oslo_db.exception.DBError'>(HTTP 500)(Request-ID:req-fa547356-649a-4f23-8edf-c8c09f2cfb59)

排錯思路:
檢查/var/log/nova/nova-api.log /var/log/nova/nova-scheduler.log等目錄發現插入數據庫表項報錯如下:
(補圖,點擊打開可看大圖)


問題原因:同步數據庫Nova表時缺少device_metadata和keypairs

解決辦法:drop掉Nova數據庫后重新同步數據庫
mysql -uroot -pdevops -e "DROP DATABASE IF EXISTS nova;"
mysql -uroot -pdevops -e "DROP DATABASE IF EXISTS nova_api;"
mysql -uroot -pdevops -e "CREATE DATABASE nova;"
mysql -uroot -pdevops -e "CREATE DATABASE nova_api;"
mysql -uroot -pdevops -e "FLUSH PRIVILEGES;"
mysql -uroot -pdevops -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'devops';"
mysql -uroot -pdevops -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'devops';"
mysql -uroot -pdevops -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'devops';"
mysql -uroot -pdevops -e "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'devops';"
mysql -uroot -pdevops -e "FLUSH PRIVILIGES;"
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova

PS:drop數據庫在某些時候會解決比較棘手的問題,但是使用需注意尤其是生產環境會導致服務中斷甚至有被跑路風險。
1.drop keystone數據庫會導致所有的endpoint信息和service信息丟失,所有服務器均無法注冊認證使用。(已驗證)
2.drop nova數據庫會導致所有虛擬機服務信息丟失。(驗證部分)
//計算節點信息丟失openstack compute service-list無顯示,systemctl restart openstack-nova-compute.service neutron-linuxbridge-agent.service
3.drop neutron數據庫暫時未試過,應該是會導致所有網絡掛掉。(待驗證)
4.drop keystone數據庫后/var/lib/glance/images的文件都直接rm -rf *干掉完全無法用了。(已驗證)
