环境 OpenStack HA 3 controllers 我的keystone服务是关闭的。由httpd来接管keystone服务
[root@controller1 ~]# systemctl stop openstack-keystone [root@controller1 ~]# systemctl start httpd但是我的keystone连不上数据库了。打开log
vi /var/log/httpd/keystone_wsgi_admin_error.log keystone.common.wsgi OperationalError: (pymysql.err.OperationalError) (1040, u'Too many connections')数据库连接数太多了。但是我的数据库的连接数设置是1024。我把值改为-1。重启mariadb。仍然连不上数据库。
由于使用HAProxy。controller2上的数据库服务关闭了。虚拟IP飘到了controller2上。导致集群连不上数据库
首先看虚拟IP在哪个controller上。在那个controller上检查服务用没有起来
[root@controller1 ~]# netstat -plunt | grep 3305 tcp 0 0 192.168.56.200:3305 0.0.0.0:* LISTEN 17977/haproxy [root@controller1 ~]# netstat -plunt | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 14862/mysqld我的haproxy配置文件如下
listen galera-cluster bind controller:3305 balance source server controller1 controller1:3306 check port 4567 inter 2000 rise 2 fall 5 server controller2 controller2:3306 check port 4567 inter 2000 rise 2 fall 5 backup通过vip测试keystone数据库连接
mysql -ukeystone_admin -pf15c18d2db7a4804 -h controller -P 3305通过真实IP测试keystone数据库连接
mysql -ukeystone_admin -pf15c18d2db7a4804 -h controller1 -P 3306最后让虚拟IP飘到controller1上,或者启动controller2的数据库服务就可以了。