Openstack Mitaka在圖形化界面的時候出現以下報錯:
<code>[root@linux-node1 ~]</code><code># openstack server create --flavor m1.tiny --image cirros --nic net-id=2d79dc77-be66-4850-af01-8e6946f16035 --security-group default --key-name mykey provider-instance</code>
<code>Unexpected API Error. Please report this at http:</code><code>//bugs</code><code>.launchpad.net</code><code>/nova/</code> <code>and attach the Nova API log </code><code>if</code> <code>possible.</code>
<code><class </code><code>'neutronclient.common.exceptions.Unauthorized'</code><code>> (HTTP 500) (Request-ID: req-1d4cf44f-8b06-43e0-8392-25296b29eecb)</code>
查了下網上資料,各種奇葩版本都有,但是對我的這個問題沒有任何效果,核查下配置檔案:
<code>[root@linux-node1 ~]</code><code># . demo-openrc </code>
<code>[root@linux-node1 ~]</code><code># openstack keypair list</code>
<code>+-------+-------------------------------------------------+</code>
<code>| Name | Fingerprint |</code>
<code>| mykey | 1f:48:e1:77:bb:ea:ea:c8:7b:08:39:b1:96:8d:48:28 |</code>
<code>[root@linux-node1 ~]</code><code># openstack flavor list</code>
<code>+----+-----------+-------+------+-----------+-------+-----------+</code>
<code>| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |</code>
<code>| 0 | m1.nano | 64 | 1 | 0 | 1 | True |</code>
<code>| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |</code>
<code>| 2 | m1.small | 2048 | 20 | 0 | 1 | True |</code>
<code>| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |</code>
<code>| 4 | m1.large | 8192 | 80 | 0 | 4 | True |</code>
<code>| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |</code>
<code>[root@linux-node1 ~]</code><code># openstack image list</code>
<code>+--------------------------------------+--------+--------+</code>
<code>| ID | Name | Status |</code>
<code>| e2a8ac12-1a02-4f5b-bb7d-83064926ccbc | cirros | active |</code>
<code>You have new mail </code><code>in</code> <code>/var/spool/mail/root</code>
<code>[root@linux-node1 ~]</code><code># openstack network list</code>
<code>+--------------------------------------+----------+--------------------------------------+</code>
<code>| ID | Name | Subnets |</code>
<code>| 2d79dc77-be66-4850-af01-8e6946f16035 | provider | 270b8cca-c8bc-4413-a035-8ed9b77230b6 |</code>
<code>[root@linux-node1 ~]</code><code># openstack security group list</code>
<code>+--------------------------------------+---------+------------------------+-----------------------------</code>
<code>| ID | Name | Description | Project |</code>
<code>+--------------------------------------+---------+------------------------+----------------------------------+</code>
<code>| eb33483e-827d-480c-8b08-776f1e3a1223 | default | Default security group | cb870d39c2f54546a3de1b64c758bb16 |</code>
<code>+--------------------------------------+---------+------------------------+----------------------------</code>
檢視錯誤日志資訊:
<code>[root@linux-node1 nova]</code><code># grep ERROR nova-api.log |tail -30</code>
<code>2017-03-14 12:52:38.675 5035 ERROR nova.api.openstack.extensions Unauthorized: Unknown auth </code><code>type</code><code>: None</code>
<code>2017-03-14 12:52:38.675 5035 ERROR nova.api.openstack.extensions </code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions [req-1d4cf44f-8b06-43e0-8392-25296b29eecb d02c78a51a72449589c8b63b51fb1c0d cb870d39c2f54546a3de1b64c758bb16 - - -] Unexpected exception </code><code>in</code> <code>API method</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions Traceback (most recent call last):</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/api/openstack/extensions.py"</code><code>, line 478, </code><code>in</code> <code>wrapped</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions </code><code>return</code> <code>f(*args, **kwargs)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/api/validation/__init__.py"</code><code>, line 73, </code><code>in</code> <code>wrapper</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions </code><code>return</code> <code>func(*args, **kwargs)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py"</code><code>, line 629, </code><code>in</code> <code>create</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions **create_kwargs)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/hooks.py"</code><code>, line 154, </code><code>in</code> <code>inner</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions rv = f(*args, **kwargs)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/compute/api.py"</code><code>, line 1563, </code><code>in</code> <code>create</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions check_server_group_quota=check_server_group_quota)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/compute/api.py"</code><code>, line 1146, </code><code>in</code> <code>_create_instance</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions reservation_id, max_count)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/compute/api.py"</code><code>, line 873, </code><code>in</code> <code>_validate_and_build_base_options</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions pci_request_info, requested_networks)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py"</code><code>, line 1081, </code><code>in</code> <code>create_pci_requests_for_sriov_ports</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions neutron = get_client(context, admin=True)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py"</code><code>, line 141, </code><code>in</code> <code>get_client</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions _ADMIN_AUTH = _load_auth_plugin(CONF)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions File </code><code>"/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py"</code><code>, line 122, </code><code>in</code> <code>_load_auth_plugin</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions raise neutron_client_exc.Unauthorized(message=err_msg)</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions Unauthorized: Unknown auth </code><code>type</code><code>: None</code>
<code>2017-03-14 12:58:11.089 5035 ERROR nova.api.openstack.extensions</code>
按照報錯提示,檢查我的nova配置,檢查控制節點和計算節點,也沒發現有啥異常
<code>grep</code> <code>'ERROR'</code> <code>/var/log/nova/</code><code>*</code>
<code>grep</code> <code>'ERROR'</code> <code>/var/log/neutron/</code><code>*</code>
<code>grep</code> <code>'ERROR'</code> <code>/var/log/glance/</code><code>*</code>
<code>grep</code> <code>'ERROR'</code> <code>/var/log/keystone/</code><code>*</code>
<code></code>後來排查發現(自己在編輯neutron的時候,忘記添加rpc_backend = rabbit):
<a href="https://s4.51cto.com/wyfs02/M01/8E/A3/wKioL1jHnTzCSBW6AAATkSyN2tU976.png-wh_500x0-wm_3-wmp_4-s_4031398377.png" target="_blank"></a>
在計算節點後控制節點都添加後,重新開機neutron相關服務,然後再次執行建立雲主機的操作
<code>檢視發現雲主機已經生效</code>
<code>[root@linux-node1 ~]</code><code># openstack server list</code>
<code>+--------------------------------------+-------------------+--------+----------------------+</code>
<code>| ID | Name | Status | Networks |</code>
<code>| 3ffb5d28-bfee-4562-bbb2-57d3956a8f0c | provider-instance | ACTIVE | provider=10.10.10.89 |</code>
在資料庫中進行核對:
<code>[root@linux-node1 ~]</code><code># mysql -unova -p</code>
<code>Enter password: </code>
<code>MariaDB [(none)]> use nova;</code>
<code>MariaDB [nova]> show tables;</code>
<code>+--------------------------------------------+</code>
<code>| Tables_in_nova |</code>
<code>| agent_builds |</code>
<code>| aggregate_hosts |</code>
<code>| aggregate_metadata |</code>
<code>| aggregates |</code>
<code>| allocations |</code>
<code>| block_device_mapping |</code>
<code>| bw_usage_cache |</code>
<code>| cells |</code>
<code>| certificates |</code>
<code>| compute_nodes |</code>
<code>| console_pools |</code>
<code>| consoles |</code>
<code>| dns_domains |</code>
<code>| fixed_ips |</code>
<code>| floating_ips |</code>
<code>| instance_actions |</code>
<code>| instance_actions_events |</code>
<code>| instance_extra |</code>
<code>| instance_faults |</code>
<code>| instance_group_member |</code>
<code>| instance_group_policy |</code>
<code>| instance_groups |</code>
<code>| instance_id_mappings |</code>
<code>| instance_info_caches |</code>
<code>| instance_metadata |</code>
<code>| instance_system_metadata |</code>
<code>| instance_type_extra_specs |</code>
<code>| instance_type_projects |</code>
<code>| instance_types |</code>
<code>| instances |</code>
<code>| inventories |</code>
<code>| key_pairs |</code>
<code>| migrate_version |</code>
<code>| migrations |</code>
<code>| networks |</code>
<code>| pci_devices |</code>
<code>| project_user_quotas |</code>
<code>| provider_fw_rules |</code>
<code>| quota_classes |</code>
<code>| quota_usages |</code>
<code>| quotas |</code>
<code>| reservations |</code>
<code>| resource_provider_aggregates |</code>
<code>| resource_providers |</code>
<code>| s3_images |</code>
<code>| security_group_default_rules |</code>
<code>| security_group_instance_association |</code>
<code>| security_group_rules |</code>
<code>| security_groups |</code>
<code>| services |</code>
<code>| shadow_agent_builds |</code>
<code>| shadow_aggregate_hosts |</code>
<code>| shadow_aggregate_metadata |</code>
<code>| shadow_aggregates |</code>
<code>| shadow_block_device_mapping |</code>
<code>| shadow_bw_usage_cache |</code>
<code>| shadow_cells |</code>
<code>| shadow_certificates |</code>
<code>| shadow_compute_nodes |</code>
<code>| shadow_console_pools |</code>
<code>| shadow_consoles |</code>
<code>| shadow_dns_domains |</code>
<code>| shadow_fixed_ips |</code>
<code>| shadow_floating_ips |</code>
<code>| shadow_instance_actions |</code>
<code>| shadow_instance_actions_events |</code>
<code>| shadow_instance_extra |</code>
<code>| shadow_instance_faults |</code>
<code>| shadow_instance_group_member |</code>
<code>| shadow_instance_group_policy |</code>
<code>| shadow_instance_groups |</code>
<code>| shadow_instance_id_mappings |</code>
<code>| shadow_instance_info_caches |</code>
<code>| shadow_instance_metadata |</code>
<code>| shadow_instance_system_metadata |</code>
<code>| shadow_instance_type_extra_specs |</code>
<code>| shadow_instance_type_projects |</code>
<code>| shadow_instance_types |</code>
<code>| shadow_instances |</code>
<code>| shadow_key_pairs |</code>
<code>| shadow_migrate_version |</code>
<code>| shadow_migrations |</code>
<code>| shadow_networks |</code>
<code>| shadow_pci_devices |</code>
<code>| shadow_project_user_quotas |</code>
<code>| shadow_provider_fw_rules |</code>
<code>| shadow_quota_classes |</code>
<code>| shadow_quota_usages |</code>
<code>| shadow_quotas |</code>
<code>| shadow_reservations |</code>
<code>| shadow_s3_images |</code>
<code>| shadow_security_group_default_rules |</code>
<code>| shadow_security_group_instance_association |</code>
<code>| shadow_security_group_rules |</code>
<code>| shadow_security_groups |</code>
<code>| shadow_services |</code>
<code>| shadow_snapshot_id_mappings |</code>
<code>| shadow_snapshots |</code>
<code>| shadow_task_log |</code>
<code>| shadow_virtual_interfaces |</code>
<code>| shadow_volume_id_mappings |</code>
<code>| shadow_volume_usage_cache |</code>
<code>| snapshot_id_mappings |</code>
<code>| snapshots |</code>
<code>| tags |</code>
<code>| task_log |</code>
<code>| virtual_interfaces |</code>
<code>| volume_id_mappings |</code>
<code>| volume_usage_cache |</code>
<code>109 rows </code><code>in</code> <code>set</code> <code>(0.02 sec)</code>
<code>MariaDB [nova]> </code><code>select</code> <code>uuid from instances \G;</code>
<code>*************************** 1. row ***************************</code>
<code>uuid: 3ffb5d28-bfee-4562-bbb2-57d3956a8f0c</code>
<code>*************************** 2. row ***************************</code>
<code>uuid: 55cbd36c-0308-4d9a-b43e-978680002abf</code>
<code>2 rows </code><code>in</code> <code>set</code> <code>(0.01 sec)</code>
<code>ERROR: No query specified</code>
<code>在計算節點上進行比對:</code>
<code>[root@linux-node2 nova]</code><code># virsh list --all</code>
<code> </code><code>Id Name State</code>
<code>----------------------------------------------------</code>
<code> </code><code>1 instance-00000001 running</code>
<code> </code><code>2 instance-00000002 running</code>
<code>[root@linux-node2 nova]</code><code># virsh domuuid instance-00000001</code>
<code>3ffb5d28-bfee-4562-bbb2-57d3956a8f0c</code>
<code>[root@linux-node2 nova]</code><code># virsh domuuid instance-00000002</code>
<code>55cbd36c-0308-4d9a-b43e-978680002abf</code>
到此,問題得到解決,OpenStack的配置是個細心活,需要明白它的各個元件的關聯,這樣排除故障的時候會有的放矢。
本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/1906366,如需轉載請自行聯系原作者