1、问题现象
在按照官网的文档部署完成之后,发现compute节点没有出现,于是查看日志
tail -n 40 /var/log/nova/nova-compute.log
然后发现报错信息
[root@controller ~]# tail -n 40 /var/log/nova/nova-compute.log
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager self._update_available_resource(context, resources)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in inner
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager return f(*args, **kwargs)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 796, in _update_available_resource
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager self._update(context, cn)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 918, in _update
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager inv_data,
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 68, in set_inventory_for_provider
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid,
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 37, in __run_method
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager return getattr(self.instance, __name)(*args, **kwargs)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 1104, in set_inventory_for_provider
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 673, in _ensure_resource_provider
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager name=name or uuid)
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager ResourceProviderCreationFailed: Failed to create resource provider controller
2020-09-23 14:56:59.638 29789 ERROR nova.compute.manager
2020-09-23 14:57:59.529 29789 INFO nova.compute.resource_tracker [req-9271678d-b6a7-4ffd-bf18-14f5d6ed7c76 - - - - -] Final resource view: name=controller phys_ram=3770MB used_ram=512MB phys_disk=56GB used_disk=0GB total_vcpus=4 used_vcpus=0 pci_stats=[]
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager [req-9271678d-b6a7-4ffd-bf18-14f5d6ed7c76 - - - - -] Error updating resources for node controller.: ResourceProviderCreationFailed: Failed to create resource provider controller
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager Traceback (most recent call last):
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7578, in update_available_resource_for_node
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager rt.update_available_resource(context, nodename)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 720, in update_available_resource
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager self._update_available_resource(context, resources)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in inner
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager return f(*args, **kwargs)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 796, in _update_available_resource
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager self._update(context, cn)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 918, in _update
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager inv_data,
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 68, in set_inventory_for_provider
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid,
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 37, in __run_method
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager return getattr(self.instance, __name)(*args, **kwargs)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 1104, in set_inventory_for_provider
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 673, in _ensure_resource_provider
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager name=name or uuid)
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager ResourceProviderCreationFailed: Failed to create resource provider controller
2020-09-23 14:58:00.953 29789 ERROR nova.compute.manager
2、原因
Open stack官方没有对openstack-nova-placement-api服务进行说明,所以我们需要自己安装这个服务
3、解决方法
3.1、服务配置
yum install -y openstack-nova-placement-api
然后使用下面的命令配置服务
PS:
请把${HOST_NAME}改成控制节点的主机名把${NOVA_PASS}改成 placement用户的密码
crudini --set /etc/nova/nova.conf placement auth_uri http://${HOST_NAME}:5000
crudini --set /etc/nova/nova.conf placement auth_url http://${HOST_NAME}:35357
crudini --set /etc/nova/nova.conf placement memcached_servers ${HOST_NAME}:11211
crudini --set /etc/nova/nova.conf placement auth_type password
crudini --set /etc/nova/nova.conf placement project_domain_name default
crudini --set /etc/nova/nova.conf placement user_domain_name default
crudini --set /etc/nova/nova.conf placement project_name service
crudini --set /etc/nova/nova.conf placement username nova
crudini --set /etc/nova/nova.conf placement password ${NOVA_PASS}
crudini --set /etc/nova/nova.conf placement os_region_name RegionOne
3.2、创建用户
环境生效
source /etc/keystone/admin-openrc.sh
然后创建用户
PS:请把000000改成你需要设置的密码
openstack user create --domain default --password 000000 placement
openstack role add --project service --user placement admin
然后重启相关服务
service='openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service'
systemctl reload $service