这篇文章将为大家详细讲解有关OpenStack新增节点报错Failed to create resource provider怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一台计算节点故障宕机导致该计算节点不能继续工作,先将其移出集群,节点恢复后再重新加入集群发现报错ResourceProviderCreationFailed: Failed to create resource provider
# vim nova-compute.log 2019-07-16 16:27:55.441 1166754 ERROR nova.scheduler.client.report [req-c50f65e8-ffd8-4a10-8d5e-0ec8d408a3c8 - - - - -] [req-9e5aad63-21d1-4297-be27-92ba9b8bfe9f] Failed to create resource provider record in placement API for UUID 4d 9ed4b4-f3a2-4e5d-9d8e-2f657a844a04. Got 409: {"errors": [{"status": 409, "request_id": "req-9e5aad63-21d1-4297-be27-92ba9b8bfe9f", "detail": "There was a conflict when trying to complete your request.\n\n Conflicting resource provide r name: bdc2 already exists. ", "title": "Conflict"}]}. 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager [req-c50f65e8-ffd8-4a10-8d5e-0ec8d408a3c8 - - - - -] Error updating resources for node bdc2.: ResourceProviderCreationFailed: Failed to create resource provider bdc2 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager Traceback (most recent call last): 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7426, in update_available_resource_for_node 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager rt.update_available_resource(context, nodename) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 688, in update_available_resource 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager self._update_available_resource(context, resources) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in inner 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager return f(*args, **kwargs) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 712, in _update_available_resource 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager self._init_compute_node(context, resources) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 561, in _init_compute_node 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager self._update(context, cn) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 886, in _update 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager inv_data, 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 68, in set_inventory_for_provider 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid, 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 37, in __run_method 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager return getattr(self.instance, __name)(*args, **kwargs) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 1104, in set_inventory_for_provider 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 665, in _ensure_resource_provider 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager parent_provider_uuid=parent_provider_uuid) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 64, in wrapper 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager return f(self, *a, **k) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/scheduler/client/report.py", line 612, in _create_resource_provider 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager raise exception.ResourceProviderCreationFailed(name=name) 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager ResourceProviderCreationFailed: Failed to create resource provider bdc2 2019-07-16 16:27:55.442 1166754 ERROR nova.compute.manager
具体报错信息,重点看到Conflicting resource provider name: bdc2 already exists. 移除bdc2的时候,确定nova库中的service和computer-node都清除了,包括元数据也delete了,但是这里还是有元数据信息
发现cell库中并没有删除
# nova-manage cell_v2 list_hosts /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:332: NotSupportedWarning: Configuration option(s) ['use_tpool'] not supported exception.NotSupportedWarning +-----------+--------------------------------------+----------+ | Cell Name | Cell UUID | Hostname | +-----------+--------------------------------------+----------+ | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc1 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc2 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc3 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc4 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc5 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc6 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc7 | | cell1 | df0d7c04-52b3-454d-a295-4f4ad836526b | bdc8 | +-----------+--------------------------------------+----------+
于是手动删除再添加,发现报错并没有改变
# su -s /bin/sh -c "nova-manage cell_v2 delete_host --cell_uuid df0d7c04-52b3-454d-a295-4f4ad836526b --host bdc2 " nova # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:332: NotSupportedWarning: Configuration option(s) ['use_tpool'] not supported exception.NotSupportedWarning Found 2 cell mappings. Skipping cell0 since it does not contain hosts. Getting compute nodes from cell 'cell1': df0d7c04-52b3-454d-a295-4f4ad836526b Found 0 unmapped computes in cell: df0d7c04-52b3-454d-a295-4f4ad836526b
报错中提示的uuid为4d9ed4b4-f3a2-4e5d-9d8e-2f657a844a04和bdc2冲突,检查元数据库,除了nova库,还有nova_api库
MariaDB [nova_api]> select uuid,name from resource_providers where name='bdc2'; +--------------------------------------+------+ | uuid | name | +--------------------------------------+------+ | e131e7c4-f7db-4889-8c34-e750e7b129da | bdc2 | +--------------------------------------+------+ MariaDB [nova_api]> select uuid,host from nova.compute_nodes where host='bdc2'; +--------------------------------------+------+ | uuid | host | +--------------------------------------+------+ | 4d9ed4b4-f3a2-4e5d-9d8e-2f657a844a04 | bdc2 | +--------------------------------------+------+
看到症结所在,确实uuid冲突了,e131e7c4-f7db-4889-8c34-e750e7b129da应该是旧bdc2的uuid 手动更新表resource_providers中的uuid
MariaDB [nova_api]> update resource_providers set uuid='4d9ed4b4-f3a2-4e5d-9d8e-2f657a844a04' where name='bdc2' and uuid='e131e7c4-f7db-4889-8c34-e750e7b129da';
到这里冲突的问题解决了,但是新增的计算节点还是有异常,创建的新云主机居然不在这台新计算节点上创建,但是可以迁移一个小资源的云主机,不能迁移大资源占用的云主机 nova-compute的日志一直在刷warning
2019-07-16 19:10:02.684 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 6446a84d-cdfd-4cfe-bcd2-2d1d75db229f has been moved to another host bdc3(bdc3). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 8, u'MEMORY_MB': 16384, u'DISK_GB': 50}}. 2019-07-16 19:10:02.738 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance e0d8d6df-4b48-402b-aa33-97c4a6166c5b has been moved to another host bdc6(bdc6). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 6, u'MEMORY_MB': 12288, u'DISK_GB': 50}}. 2019-07-16 19:10:02.791 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 9d860729-597a-4420-bb8f-e9415587d808 has been moved to another host bdc3(bdc3). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 4, u'MEMORY_MB': 8192, u'DISK_GB': 50}}. 2019-07-16 19:10:02.860 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 8e42328d-fd1c-4abc-acac-5c6e09623af6 has been moved to another host bdc5(bdc5). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 8, u'MEMORY_MB': 16384, u'DISK_GB': 50}}. 2019-07-16 19:10:02.912 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 1d59e7db-bf1b-478c-a6bd-10287365cb65 has been moved to another host bdc3(bdc3). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 8, u'MEMORY_MB': 16384, u'DISK_GB': 50}}. 2019-07-16 19:10:02.960 1192779 INFO nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 61223c2d-0b0c-4729-85e6-741c88e6e476 has allocations against this compute host but is not found in the database. 2019-07-16 19:10:03.014 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 50f71a07-306d-4d2c-8f4a-6eaa11fbd233 has been moved to another host bdc6(bdc6). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 8, u'MEMORY_MB': 16384, u'DISK_GB': 50}}.: InstanceNotFound_Remote: Instance 61223c2d-0b0c-4729-85e6-741c88e6e476 could not be found. 2019-07-16 19:10:03.068 1192779 WARNING nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Instance 0e7c21d4-a5fb-4059-aa47-bad47700e827 has been moved to another host bdc1(bdc1). There are allocations remaining against the source host that might need to be removed: {u'resources': {u'VCPU': 8, u'MEMORY_MB': 16384, u'DISK_GB': 50}}.: InstanceNotFound_Remote: Instance 61223c2d-0b0c-4729-85e6-741c88e6e476 could not be found. 2019-07-16 19:10:03.069 1192779 INFO nova.compute.resource_tracker [req-7c022b9b-7659-4a4d-9b53-30366a7fd150 - - - - -] Final resource view: name=bdc2 phys_ram=131037MB used_ram=512MB phys_disk=115480GB used_disk=0GB total_vcpus=24 used_vcpus=0 pci_stats=[]
Warning信息说明当前计算节点上有几个实例信息与其它节点上的信息冲突,查看元数据库
MariaDB [nova_api]> select * from allocations where resource_provider_id=7; +---------------------+------------+------+----------------------+--------------------------------------+-------------------+-------+ | created_at | updated_at | id | resource_provider_id | consumer_id | resource_class_id | used | +---------------------+------------+------+----------------------+--------------------------------------+-------------------+-------+ | 2019-07-09 09:10:27 | NULL | 1471 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 0 | 4 | | 2019-07-08 14:58:36 | NULL | 1444 | 7 | 61223c2d-0b0c-4729-85e6-741c88e6e476 | 0 | 6 | | 2019-07-09 10:09:33 | NULL | 1510 | 7 | e0d8d6df-4b48-402b-aa33-97c4a6166c5b | 0 | 6 | | 2019-07-09 09:18:30 | NULL | 1477 | 7 | 1d59e7db-bf1b-478c-a6bd-10287365cb65 | 0 | 8 | | 2019-07-09 09:26:26 | NULL | 1483 | 7 | 6446a84d-cdfd-4cfe-bcd2-2d1d75db229f | 0 | 8 | | 2019-07-09 09:36:40 | NULL | 1486 | 7 | 0e7c21d4-a5fb-4059-aa47-bad47700e827 | 0 | 8 | | 2019-07-09 09:46:02 | NULL | 1492 | 7 | 8e42328d-fd1c-4abc-acac-5c6e09623af6 | 0 | 8 | | 2019-07-09 10:02:57 | NULL | 1504 | 7 | 50f71a07-306d-4d2c-8f4a-6eaa11fbd233 | 0 | 8 | | 2019-07-09 09:10:27 | NULL | 1472 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 1 | 8192 | | 2019-07-08 14:58:36 | NULL | 1445 | 7 | 61223c2d-0b0c-4729-85e6-741c88e6e476 | 1 | 12288 | | 2019-07-09 10:09:33 | NULL | 1511 | 7 | e0d8d6df-4b48-402b-aa33-97c4a6166c5b | 1 | 12288 | | 2019-07-09 09:18:30 | NULL | 1478 | 7 | 1d59e7db-bf1b-478c-a6bd-10287365cb65 | 1 | 16384 | | 2019-07-09 09:26:26 | NULL | 1484 | 7 | 6446a84d-cdfd-4cfe-bcd2-2d1d75db229f | 1 | 16384 | | 2019-07-09 09:36:40 | NULL | 1487 | 7 | 0e7c21d4-a5fb-4059-aa47-bad47700e827 | 1 | 16384 | | 2019-07-09 09:46:02 | NULL | 1493 | 7 | 8e42328d-fd1c-4abc-acac-5c6e09623af6 | 1 | 16384 | | 2019-07-09 10:02:57 | NULL | 1505 | 7 | 50f71a07-306d-4d2c-8f4a-6eaa11fbd233 | 1 | 16384 | | 2019-07-08 14:58:36 | NULL | 1446 | 7 | 61223c2d-0b0c-4729-85e6-741c88e6e476 | 2 | 50 | | 2019-07-09 09:10:27 | NULL | 1473 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 2 | 50 | | 2019-07-09 09:18:30 | NULL | 1479 | 7 | 1d59e7db-bf1b-478c-a6bd-10287365cb65 | 2 | 50 | | 2019-07-09 09:26:26 | NULL | 1485 | 7 | 6446a84d-cdfd-4cfe-bcd2-2d1d75db229f | 2 | 50 | | 2019-07-09 09:36:40 | NULL | 1488 | 7 | 0e7c21d4-a5fb-4059-aa47-bad47700e827 | 2 | 50 | | 2019-07-09 09:46:02 | NULL | 1494 | 7 | 8e42328d-fd1c-4abc-acac-5c6e09623af6 | 2 | 50 | | 2019-07-09 10:02:57 | NULL | 1506 | 7 | 50f71a07-306d-4d2c-8f4a-6eaa11fbd233 | 2 | 50 | | 2019-07-09 10:09:33 | NULL | 1512 | 7 | e0d8d6df-4b48-402b-aa33-97c4a6166c5b | 2 | 50 | +---------------------+------------+------+----------------------+--------------------------------------+-------------------+-------+ 24 rows in set (0.00 sec) MariaDB [nova_api]> select * from allocations where consumer_id='9d860729-597a-4420-bb8f-e9415587d808'; +---------------------+------------+------+----------------------+--------------------------------------+-------------------+------+ | created_at | updated_at | id | resource_provider_id | consumer_id | resource_class_id | used | +---------------------+------------+------+----------------------+--------------------------------------+-------------------+------+ | 2019-07-09 09:10:27 | NULL | 1468 | 6 | 9d860729-597a-4420-bb8f-e9415587d808 | 0 | 4 | | 2019-07-09 09:10:27 | NULL | 1469 | 6 | 9d860729-597a-4420-bb8f-e9415587d808 | 1 | 8192 | | 2019-07-09 09:10:27 | NULL | 1470 | 6 | 9d860729-597a-4420-bb8f-e9415587d808 | 2 | 50 | | 2019-07-09 09:10:27 | NULL | 1471 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 0 | 4 | | 2019-07-09 09:10:27 | NULL | 1472 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 1 | 8192 | | 2019-07-09 09:10:27 | NULL | 1473 | 7 | 9d860729-597a-4420-bb8f-e9415587d808 | 2 | 50 | +---------------------+------------+------+----------------------+--------------------------------------+-------------------+------+
可以看到resource_provider_id为7也就是新增的bdc2上有资源分配信息,摘出其中一个实例id查看发现它不仅在7也在6上,联想到先前旧节点上的实例疏散,新增节点是改了uuid继承了旧节点的信息,所以日志会报冲突Warining。并且 (8192+12288+12288+16384+16384+16384+16384+16384)/1024=112G
内存资源占了112G,即将达到当前机器的内存上限,所以创建云主机不会优先选择这个节点,迁移也只能迁移小的
既然已经修改了元数据,那就走到黑,继续清除
MariaDB [nova_api]> delete from allocations where resource_provider_id=7; Query OK, 24 rows affected (0.00 sec) MariaDB [nova_api]> select * from allocations where resource_provider_id=7; Empty set (0.00 sec)
创建三个需要大资源的虚拟机,发现都创建在了bdc2上,并且nova-compute日志中没有刷类似的Warning,说明问题解决。
OpenStack基础组件的有数据的元数据表
MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'nova' and table_rows<>0 ORDER BY table_rows DESC; +--------------------------+------------+ | table_name | table_rows | +--------------------------+------------+ | instance_actions_events | 2335 | | instance_system_metadata | 2324 | | instance_actions | 1959 | | virtual_interfaces | 474 | | block_device_mapping | 451 | | instance_info_caches | 267 | | instances | 267 | | instance_id_mappings | 260 | | instance_faults | 217 | | instance_extra | 206 | | migrations | 122 | | s3_images | 17 | | services | 13 | | compute_nodes | 8 | | security_groups | 6 | +--------------------------+------------+ 15 rows in set (0.00 sec) MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'nova_api' and table_rows<>0 ORDER BY table_rows DESC; +--------------------+------------+ | table_name | table_rows | +--------------------+------------+ | consumers | 339 | | instance_mappings | 283 | | request_specs | 213 | | allocations | 195 | | traits | 164 | | quotas | 57 | | inventories | 23 | | flavors | 9 | | projects | 8 | | key_pairs | 8 | | users | 8 | | resource_providers | 8 | | host_mappings | 8 | | cell_mappings | 2 | +--------------------+------------+ 14 rows in set (0.01 sec) MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'nova_cell0' and table_rows<>0 ORDER BY table_rows DESC; +--------------------------+------------+ | table_name | table_rows | +--------------------------+------------+ | instance_system_metadata | 112 | | instance_id_mappings | 16 | | block_device_mapping | 16 | | instance_faults | 16 | | instance_extra | 16 | | instances | 16 | | instance_info_caches | 16 | | s3_images | 2 | +--------------------------+------------+ MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'cinder' and table_rows<>0 ORDER BY table_rows DESC; +------------------------+------------+ | table_name | table_rows | +------------------------+------------+ | reservations | 573 | | volume_admin_metadata | 478 | | volume_attachment | 451 | | volumes | 200 | | volume_glance_metadata | 64 | | quotas | 21 | | quota_usages | 15 | | quota_classes | 6 | | services | 2 | | workers | 1 | +------------------------+------------+ 10 rows in set (0.07 sec) MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'glance' and table_rows<>0 ORDER BY table_rows DESC; +------------------+------------+ | table_name | table_rows | +------------------+------------+ | images | 19 | | image_locations | 19 | | image_properties | 9 | | alembic_version | 1 | +------------------+------------+ 4 rows in set (0.03 sec) MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'keystone' and table_rows<>0 ORDER BY table_rows DESC; +-----------------+------------+ | table_name | table_rows | +-----------------+------------+ | endpoint | 18 | | assignment | 17 | | user | 14 | | password | 14 | | local_user | 14 | | project | 12 | | service | 6 | | migrate_version | 4 | | role | 2 | +-----------------+------------+ 9 rows in set (0.08 sec) MariaDB [nova_api]> SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 'neutron' and table_rows<>0 ORDER BY table_rows DESC; +---------------------------+------------+ | table_name | table_rows | +---------------------------+------------+ | ml2_vxlan_allocations | 1000 | | standardattributes | 149 | | ports | 69 | | ipamallocations | 69 | | ipallocations | 69 | | ml2_port_bindings | 69 | | portsecuritybindings | 69 | | securitygroupportbindings | 68 | | ml2_port_binding_levels | 66 | | securitygrouprules | 59 | | quotas | 56 | | quotausages | 17 | | agents | 11 | | default_security_group | 8 | | segmenthostmappings | 8 | | securitygroups | 8 | | allowedaddresspairs | 4 | | provisioningblocks | 4 | | alembic_version | 2 | +---------------------------+------------+ 19 rows in set (0.18 sec)
1、元数据操作非常危险,尽量不动或者少动,如果要动,先备份数据库; 2、删除不掉的云主机和卷,不要直接修改元数据的deleted字段,这是自欺欺人的办法,只是dashboard上看不到而已,实际资源并不释放而且后端存储中还存在文件; 3、硬件操作要小心,总之任何危险的操作都要再三确认。
关于“OpenStack新增节点报错Failed to create resource provider怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。