我在由 Mirantis Fuel 安装的 CentOS 上运行 Openstack Grizzly。
[root@controller-20 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@controller-20 ~]# rpm -qa | grep -i openstack-nova
openstack-nova-console-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-common-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-scheduler-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-conductor-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-objectstore-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-novncproxy-0.4-8.el6.noarch
openstack-nova-cert-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-api-2013.1.1.fuel3.0-mira.2.noarch
拓扑结构目前是一个控制节点和三个计算节点,全部运行在现代戴尔机架式硬件上。在问题出现之前,我今天已经配置了大约 25 台虚拟机。
由于某种原因,在创建/删除虚拟机时,固定 IP 卡在某种不确定的状态。现在,我无法创建新的虚拟机。Openstack 尝试使用它认为仍属于旧虚拟机一部分的 IP,但无法构建虚拟机。
我的固定网络是10.129.0.0/24。
以下是 nova-manage 命令行中的问题 IP 列表:
# nova-manage fixed list | grep -E 'network|WARNING' -A 1
network IP address hostname host
10.129.0.0/24 10.129.0.0 None None
--
WARNING: fixed ip 10.129.0.20 allocated to missing instance
10.129.0.0/24 10.129.0.20 None None
--
WARNING: fixed ip 10.129.0.23 allocated to missing instance
10.129.0.0/24 10.129.0.23 None None
--
WARNING: fixed ip 10.129.0.25 allocated to missing instance
10.129.0.0/24 10.129.0.25 None None
WARNING: fixed ip 10.129.0.26 allocated to missing instance
10.129.0.0/24 10.129.0.26 None None
WARNING: fixed ip 10.129.0.27 allocated to missing instance
10.129.0.0/24 10.129.0.27 None None
--
WARNING: fixed ip 10.129.0.30 allocated to missing instance
10.129.0.0/24 10.129.0.30 None None
WARNING: fixed ip 10.129.0.31 allocated to missing instance
10.129.0.0/24 10.129.0.31 None None
WARNING: fixed ip 10.129.0.32 allocated to missing instance
10.129.0.0/24 10.129.0.32 None None
WARNING: fixed ip 10.129.0.33 allocated to missing instance
10.129.0.0/24 10.129.0.33 None None
WARNING: fixed ip 10.129.0.34 allocated to missing instance
10.129.0.0/24 10.129.0.34 None None
WARNING: fixed ip 10.129.0.35 allocated to missing instance
10.129.0.0/24 10.129.0.35 None None
WARNING: fixed ip 10.129.0.36 allocated to missing instance
10.129.0.0/24 10.129.0.36 None None
WARNING: fixed ip 10.129.0.37 allocated to missing instance
10.129.0.0/24 10.129.0.37 None None
WARNING: fixed ip 10.129.0.38 allocated to missing instance
10.129.0.0/24 10.129.0.38 None None
WARNING: fixed ip 10.129.0.39 allocated to missing instance
10.129.0.0/24 10.129.0.39 None None
WARNING: fixed ip 10.129.0.40 allocated to missing instance
10.129.0.0/24 10.129.0.40 None None
WARNING: fixed ip 10.129.0.41 allocated to missing instance
10.129.0.0/24 10.129.0.41 None None
WARNING: fixed ip 10.129.0.42 allocated to missing instance
10.129.0.0/24 10.129.0.42 None None
WARNING: fixed ip 10.129.0.43 allocated to missing instance
10.129.0.0/24 10.129.0.43 None None
WARNING: fixed ip 10.129.0.44 allocated to missing instance
10.129.0.0/24 10.129.0.44 None None
WARNING: fixed ip 10.129.0.45 allocated to missing instance
10.129.0.0/24 10.129.0.45 None None
WARNING: fixed ip 10.129.0.46 allocated to missing instance
10.129.0.0/24 10.129.0.46 None None
--
WARNING: fixed ip 10.129.0.48 allocated to missing instance
10.129.0.0/24 10.129.0.48 None None
WARNING: fixed ip 10.129.0.49 allocated to missing instance
10.129.0.0/24 10.129.0.49 None None
WARNING: fixed ip 10.129.0.50 allocated to missing instance
10.129.0.0/24 10.129.0.50 None None
--
WARNING: fixed ip 10.129.0.52 allocated to missing instance
10.129.0.0/24 10.129.0.52 None None
WARNING: fixed ip 10.129.0.53 allocated to missing instance
10.129.0.0/24 10.129.0.53 None None
--
WARNING: fixed ip 10.129.0.55 allocated to missing instance
10.129.0.0/24 10.129.0.55 None None
WARNING: fixed ip 10.129.0.56 allocated to missing instance
10.129.0.0/24 10.129.0.56 None None
WARNING: fixed ip 10.129.0.57 allocated to missing instance
10.129.0.0/24 10.129.0.57 None None
--
WARNING: fixed ip 10.129.0.59 allocated to missing instance
10.129.0.0/24 10.129.0.59 None None
WARNING: fixed ip 10.129.0.60 allocated to missing instance
10.129.0.0/24 10.129.0.60 None None
WARNING: fixed ip 10.129.0.61 allocated to missing instance
10.129.0.0/24 10.129.0.61 None None
我知道 10.129.0.20 IP 标记了引发问题的 VM 实例。问题表现为无法配置新 VM。
[root@controller-20 ~]# nova --os-username demetri --os-tenant-name admin --os-auth-url http://localhost:5000/v2.0/ fixed-ip-get 10.129.0.20
OS Password:
+-------------+---------------+----------+-----------------------+
| address | cidr | hostname | host |
+-------------+---------------+----------+-----------------------+
| 10.129.0.20 | 10.129.0.0/24 | devdbl9 | compute-21.domain.tld |
+-------------+---------------+----------+-----------------------+
nova-manage 命令似乎没有提供任何工具来回收这些 IP。我尝试过保留/取消保留,但不起作用。此外,这些 IP 在名为 fixed_ips 的 nova mysql 表中表示。示例:
+---------------------+---------------------+------------+-----+--------------+------------+-----------+--------+----------+----------------------+-----------------------+--------------------------------------+---------+
| created_at | updated_at | deleted_at | id | address | network_id | allocated | leased | reserved | virtual_interface_id | host | instance_uuid | deleted |
+---------------------+---------------------+------------+-----+--------------+------------+-----------+--------+----------+----------------------+-----------------------+--------------------------------------+---------+
| 2013-08-05 11:10:19 | 2013-10-16 11:32:20 | NULL | 21 | 10.129.0.20 | 1 | 0 | 0 | 0 | NULL | NULL | df2e9214-78cf-49d3-b256-e35d48818f29 | 0 |
为了进一步确认问题与固定 IP 网络有关,UI 反映了虚拟机的递增 IP 地址,比如从 .21 开始,到 .22,到 .23,最终出现“错误”状态。
综上所述,自从这种情况发生以来,大多数(但不是所有)调用新虚拟机的尝试都会失败。我该如何进一步排除故障,最终如何才能顺利地配置新虚拟机?
谢谢。
答案1
我能够将其追溯到 rabbitmq 的错误/故障安装。rabbitmq 日志开始显示以下错误:
=错误报告==== 2013 年 10 月 30 日::16:28:11 === 连接 <0.3821.221>,通道 1 - 错误:{amqp_error,not_found,“vhost‘/’中没有交换‘75232ec16a7846f1979a93e9371040d0’”,‘basic.publish’}
我从已安装的软件包 rabbitmq-server-2.8.7-2.el6.noarch.rpm 升级到 rabbitmq 站点上托管的软件包 rabbitmq-server-3.2.0-1.noarch.rpm。现在我可以成功配置节点了!