eg1.Unable to create a new session key. It is likely that the cache is unavailable.
解决方案:将local_settings.py中 SESSION_ENGINE ='django.contrib.sessions.backends.cache' 应改为
SESSION_ENGINE ='django.contrib.sessions.backends.file'
eg2.发现日志里一直报以下这个错误,dashboard明明用户名密码都正确但是一直报这个错!原因是官网的配置有问题!
less /var/log/apache2/error.log
[Thu May 21 11:26:04.998581 2020][authz_core:error][pid 14375:tid 140677929187072][client 127.0.0.1:47960] AH01630: client denied by server configuration: /usr/bin/keystone-wsgi-public
解决方案:将官网的vim /etc/openstack-dashboard/local_settings.py里的这条配置
OPENSTACK_KEYSTONE_URL ="http://%s/identity/v3" % OPENSTACK_HOST
改成:OPENSTACK_KEYSTONE_URL ="http://%s:5000/v3" % OPENSTACK_HOST
即可解决!
eg1.执行状态检查时发现报错
root@controller160:~# openstack volume service list
The server is currently unavailable. Please try again at a later time.<br /><br />
The Keystone service is temporarily unavailable.
但是执行其他命令是正常的,因此判断非keystone问题,回顾下安装步骤
root@controller160:~# openstack service list
+----------------------------------+-----------+-----------+
| ID | Name | Type |
+----------------------------------+-----------+-----------+
| 0d9cdd8f207147bf93b573203c8e78a3 | placement | placement || 0e20d3c0a35e486bb2aed2bf3cc17c00 | neutron | network || 6ad962f2c8834b1cbaac24c5c952bbe7 | glance | image || 99b513bed6da45ae814b3d99a10e87e5 | keystone | identity || bf7d430353f84346b27d26a3117a52e7 | cinderv3 | volumev3 || f1173afb33a741ddb3a6540b3a8e70f6 | cinderv2 | volumev2 || fc0fb7e04b4443cd95be23d91bd0fc51 | nova | compute |
+----------------------------------+-----------+-----------+
(HTTP 503)
解决方案:重新授权cinder进admin
root@controller160:~# openstack role add --project service --user cinder admin
root@controller160:~# openstack volume service list
+------------------+----------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+----------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller160 | nova | enabled | up | 2020-05-22T07:10:29.000000 || cinder-volume | compute162@lvm | nova | enabled | up | 2020-05-22T07:10:28.000000 |
+------------------+----------------+------+---------+-------+----------------------------+
eg1. oslo_db.exception.DBError: (pymysql.err.InternalError)(1832, "Cannot change column 'network_id': used in a foreign key constraint 'subnets_ibfk_1'")[SQL: ALTER TABLE subnets MODIFY network_id VARCHAR(36) NOT NULL]
解决方案:
root@controller160:~# mysql -uroot -p
MariaDB [(none)]> use neutron;
MariaDB [(none)]> ALTER TABLE subnets DROP FOREIGN KEY subnets_ibfk_1;
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
eg2.oslo_db.exception.DBError: (pymysql.err.InternalError)(1071, 'Specified key was too long; max key length is 767 bytes')[SQL:
CREATE TABLE ovn_hash_ring (
node_uuid VARCHAR(36) NOT NULL,
group_name VARCHAR(256) NOT NULL,
hostname VARCHAR(256) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (node_uuid, group_name))ENGINE=InnoDB
]
解决方案1:
root@controller160:~# vim /etc/mysql/mariadb.conf.d/99-openstack.cnf
增加以下配置:
innodb_large_prefix = on
重启mariadb:
systemctl restart mariadb.service
MariaDB [(none)]> show variables like '%innodb_large_prefix%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
解决方案2:添加DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC,手动执行即可创建
CREATE TABLE ovn_hash_ring (
node_uuid VARCHAR(36) NOT NULL,
group_name VARCHAR(256) NOT NULL,
hostname VARCHAR(256) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (node_uuid, group_name))ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;