Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811
源码安装

OpenStack源码安装报错整理

1 MySQL

1.1 MySQL连接数

大多数OpenStack服务都使用MySQL数据库来存储信息,各组件直接的调用都需要修改MySQL的存储信息或者验证存储信息。MySQL连接数不够会杀死正在执行的SQL,导致各组件之间的调用失败。

解决这个问题需要调整MySQL配置文件中最max_connections参数和MySQL system参数。

[root@localhost  ~]# vi /etc/my.cnf
[mysqld]
max_connections=1024
[root@localhost  ~]# vi /usr/lib/systemd/system/mariadb.service
[serivce]
LimitNOFILE=65535
LimitNPROC=65535

1.2 MySQL Client连接失败

 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/home/mysql/mysql.sock’

MySQL Client在登录的时候会默认去找/var/lib这个目录找mysqld.sock文件,如果Mysql启动失败或者修改了MySQL存储路径自然就找不到了。添加如下配置:

[root@localhost  ~]# vi /etc/my.cnf.d/client.cnf
[client-mariadb]
socket=/home/mysql/mysql.sock
[root@localhost  ~]# systemctl start mariadb

2 RabbitMQ

2.1 RabbitMQ用户名不匹配

OpenStack使用RabbitMQ来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点运行。RabbitMQ需要关注的是用户名和密码问题。如果用户名和密码错误,各组件直接的调用都会失败,所有虚拟机无法访问。这时候需要修改RabbitMQ用来提供服务的用户名和密码:

[root@localhost  ~]# rabbitmqctl list_users
[root@localhost  ~]# rabbitmqctl change_password username ‘newpasswd’

2.2 RabbitMQ端口不通

ERROR oslo.messaging._drivers.impl_rabbit [-] [94fc1201-373b-451f-a9e2-46fc81b5de20] AMQP server on controller:5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 24 seconds.: error: [Errno 111] ECONNREFUSED

RabbitMQ 5672端口不可用。可能出于两种情况:一是RabbitMQ启动失败,状态错误。查看RbbitMQ状态。二是5672端口被墙,关闭firewalld防火墙并且查看iptables规则。

[root@localhost  ~]# systemctl  status  rabbitmq-server
[root@localhost  ~]# systemctl  stop firewadll
[root@localhost  ~]# iptables -S
[root@localhost  ~]# iptables -F

3 Memcached

Memcached的作用是缓存身份服务身份验证机制的令牌。在正常运行中Memached一般不会出现问题。需要注意的一点是要确保端口不被墙。

4 Etcd

4.1 Etcd集群状态

cluster may be unhealthy: failed to list members

Error: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:2379: getsockopt: connection refused ;

error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused

error #0: dial tcp 127.0.0.1:2379: getsockopt: connection refused

error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused

OpenStack官网配置错,因为在Etcd的配置文件中的ETCD_LISTEN_CLIENT_URLS参数中,只写入了http://ip:2379,没有写入http://127.0.0.1:2379,添加后集群正常。

[root@localhost  ~]# vi /etc/etcd/etcd.conf
ETCD_DATA_DIR="/home/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.4.145:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.4.145:2379,http://127.0.0.1:2379"
ETCD_NAME="controller"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.4.145:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.4.145:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.4.145:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

5 Libvirtd

5.1 Libvirtd用户与用户组

KVM cannot access storage file (as uid:107,gid:107)permission denied

这一系列没有权限而导致的创建虚机失败需要调整libvirt的默认权限。

[root@localhost  ~]# vi /etc/libvirt/qemu.conf
user=root
group=root

5.2 Libvirtd用户与用户组

Libvirtd Could not reopen file:Permission denied

dynamic_ownership = 1这个参数意思是Libvirtd是否有权限动态修改文件所有权,默认为1。在一般情况下user和group设置为root是拥有所有文件的所有权。但是,因为这个参数的存在导致创建虚拟机报错。当注释后,创建虚拟机正常,可能是因为版本问题而导致的bug。

[root@localhost  ~]# vi /etc/libvirt/qemu.conf
user=root
group=root
#dynamic_ownership = 1

6 Keystone

6.1 同步数据库问题

OperationalError) no such table: project u’INSERT INTO project (id, name, domain_id, des

cription, enabled, extra) VALUES (?, ?, ?, ?, ?, ?)’ (’70c0487ba99743719d6721a34560fca2′, u’admin’, ‘default’, u’Admin Tenant’, 1, ‘{}’)

这个问题是因为Kyestone中表不存在,也就是说同步Keystone数据库失败导致,需要再次同步数据库。如果再次失败需要检查配置文件数据库连接配置是否有错误。

[root@localhost  ~]# mysql -uroo -p
MariaDB [ (none) ] use keystone;
MariaDB [ (none) ] show tables;
Empty set (0.00 sec)
[root@localhost  ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

6.2 OpenStackcliet错误码

下面是在创建用户或者service等服务时可能出现的错误码和解决方式。

401 #验证失败,keystone相关用户账户密码设置错误,时间不同步,或者输入的项目名称不对。

403 #可能未初始化OS_token变量,需要使用source命令使其生效,也可能是配置的配置文件未生效,需要重启相关服务。

409 #keystone创建用户,用户已存在。

500 #服务器内部错误,服务配置有问题,看日志,检查配置。

503 #keystone相关账户密码设置有问题,请将相关的账户删除,重新创建即可。

7 Nova

7.1 MySQL连接丢失

ERROR oslo_db.sqlalchemy.engines [-] Database connection was found disconnected; reconnecting: DBConnectionError: (pymysql.err.OperationalError) (2013, ‘Lost connection to MySQL server during query’) [SQL: u’SELECT 1′] (Background on this error at: http://sqlalche.me/e/e3q8)

字面意思是在查询的过程中丢失MySQL连接,即某个MySQL长连接很久没有新的请求发起,达到了server端的timeout,被server强行关闭。解决这个问题需要在MySQL配置文件中修改wait_timeout参数。

[root@localhost  ~]# vi /etc/my.cnf
[mysqld]
wait_timeout=28800

7.2 新增节点报错

ERROR nova.scheduler.client.report [req-fb678c94-091f-4dd3-bd44-49068015a07e – – – – -] [req-a7dd9b65-4ef2-4822-8110-f4a311839683] Failed to create resource provider record in placement API for UUID 73542ad1-f32b-4ba8-a62c-98ec704234c3. Got 409: {“errors”: [{“status”: 409, “request_id”: “req-a7dd9b65-4ef2-4822-8110-f4a311839683”, “detail”: “There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute already exists.  “, “title”: “Conflict”}]}.

一台计算机点故障导致不能继续工作,将其移出集群,节点恢复后再重新加入发现报错。这主要原因是因为数据库中数据冲突导致。更新nova库、nova_api库中对应resource_providers表中的UUID即可。

[root@localhost  ~]# mysql -uroot -p
MariaDB [nova_api]> update resource_providers set uuid='4d9ed4b4-f3a2-4e5d-9d8e-2f657a844a04' where name='compute' and uuid='e131e7c4-f7db-4889-8c34-e750e7b129da';

7.3 Nova-vnc报错

INFO nova.console.websocketproxy [req-a9ef9047-7b5b-4251-b2c3-3de8fa2db7d1 – – – – -] handler exception: [Errno 113] EHOSTUNREACH

在OpenStack上创建虚机成功,登录控制台时显示vnc报错1006,查看Nova日志,确定是因为计算节点防火墙没有关闭或者iptables没有过滤vnc端口。

[root@localhost  ~]# systemct stop firewalld
[root@localhost  ~]# iptables -I INPUT -p tcp --ports 5900:6100  -j ACCEPT

8 Glance

8.1 权限问题

Glance报错基本都是因为权限问题而导致的。如果修改了Glance存储路径,需要给修改后的路径glance:glance权限。

9       Neutron

9.1       虚拟机不通外网

虚拟机不通外网主要原因有很多,首先网络类型是否误设置为Local:Local型网络只适合虚拟机与虚拟机之间互通,网络所在的网桥不会连接服务器的物理网卡,所以Local型网络的虚拟机是与外网不通的。

  • 虚拟机是否启动,如果它没有运行,可以通过查看Nova日志查看问题。
[root@localhost  ~]# openstack servier list
[root@localhost  ~]# tail -f /var/log/nova/nova-compute
  • 安全组问题,在默认安全组下可能不允许一些协议通过,所以需要配置安全组。
[root@localhost  ~]# openstack security group show default
  • 查看Neutron各agent状态是否正确,如果down,查看日志解决。
[root@localhost  ~]# openstack network agent list

更多相关内容,请访问:A-Lab

A-lab-云网络, A-lab-部署验证

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2