1、
[root@openstack-server ~]# nova list
ERROR (CommandError): You must provide a username or user id via --os-username, --os-user-id, env[OS_USERNAME] or env[OS_USER_ID]
解決辦法:
source一下環境變量來獲取 token
[root@openstack-server src]# source admin-openrc.sh
[root@openstack-server src]# nova list
+--------------------------------------+--------------+--------+------------+-------------+--------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------------+--------+------------+-------------+--------------------+
| 056c37a4-3e94-4280-96dd-5bc003469647 | kvmserver-01 | ACTIVE | - | Running | flat=192.168.1.121 |
+--------------------------------------+--------------+--------+------------+-------------+--------------------+html
2、
在進行keystone認證的時候,出現下面的報錯:
Maximum lock attempts on _lockusertokens-0b75ff3ce97a40caa6bf6753c962c82b occurred. (Disable debug mode to suppress these details.) (HTTP 500) (Request-ID: req-bb1c465e-33bc-412a-8ac2-c0d0a7e168ad)
或者
An unexpected error prevented the server from fulfilling your request. (HTTP 500) (Request-ID: req-bb1c465e-33bc-412a-8ac2-c0d0a7e168ad)
問題產生的可能緣由及解決辦法:
1)admin_token用戶環境變量錯誤引發的。
解決辦法:
[root@linux-node1 ~]# export OS_TOKEN=35d6e6f377a889571bcf
[root@linux-node1 ~]# export OS_URL=http://192.168.1.17:35357/v3
[root@linux-node1 ~]# export OS_IDENTITY_API_VERSION=3
2)keystone數據同步失敗,沒有獲取到正確的token值引發的。
解決辦法:
刪除mysql數據庫中的keystone庫,從新建立keystone庫;
從新生成一個token,在keystone.conf中從新指定admin_token對應的新的token指;
而後初始化keystone數據,重啓memcaced服務,從新進行keystone的認證;
3)獲取的token無效引發的。
解決辦法:修改keystone.conf文件中的[token]區域。
以前的配置,將token存放在memcache緩存中
[token]
provider = uuid //或者是provider = keystone.token.providers.uuid.Provider
driver = memcache //或者是driver = keystone.token.persistence.backends.memcache.Token
修改後的配置,將token存放在sql數據庫中
[token]
provider = uuid
driver = keystone.token.persistence.backends.sql.Token
----------------------------------------------------------------------------------------------------------------------------------------------
說明下:
keystone默認使用SQL數據庫存儲token,token默認有效期爲1天(24h)。
Openstack中每一個組件執行的每次命令(請求)都須要token來驗證,每次訪問都會建立token,增加速度很是快,token表數據也會愈來愈多。
隨着時間的推移,無效的記錄愈來愈多,企業私有云幾天的量就能夠幾萬條、幾十萬條。這麼多無效的token致使針對token表的SQL語句變慢,性能也會變差!
這就須要手動寫個定時腳原本清理token表。
可是更好的方法固然是將token存放在memcache緩存中,利用memcached特性,自動刪除不使用的緩存:
[memcache]
servers = localhost:11211
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.memcache.Tokennode
默認的配置是:
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.sql.Token
--------------------------------------------------------------------------------------------------------------------------------------------mysql
3、
No handlers could be found for logger "oslo_config.cfg"
緣由:日誌文件的配置項錯誤
解決辦法:
在/etc/keystone/keystone.conf、/etc/nova/nova.conf配置文件裏修改logdir爲:
log_dir=/var/log/keystone
log_dir=/var/log/novalinux
4、
以前在openstack裏建立的虛擬機,後面刪除了。可是再建立虛擬機並設置和以前刪除的虛擬機同樣的ip的時候,就報錯說這個ip已經被佔用了!
可是以前建立的虛擬機已經刪除了,這是爲何?
這是由於虛擬機雖然刪除了,可是所刪除虛擬機在neutron組網內的ip尚未被真正釋放出來。
須要登錄openstack的web界面,到「網絡」部分裏面進行刪除:web
5、
在上傳鏡像或查看鏡像的時候,報錯:
[root@linux-node1 ~]# glance image-list
500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500)sql
測試登錄數據庫,發現登錄失敗!
[root@linux-node1 ~]# mysql -u glance -h 192.168.1.17 -p
Enter password:
ERROR 1040 (08004): Too many connections 數據庫
解決辦法,這也是centos7下修改mysql鏈接數的作法:
1)臨時修改
MariaDB [(none)]> set GLOBAL max_connections=1000;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show variables like "max_connections";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1000 |
+-----------------+-------+
1 row in set (0.00 sec)centos
2)永久修改:
配置/etc/my.cnf
[mysqld]新添加一行以下參數:
max_connections=1000
重啓mariadb服務,再次查看mariadb數據庫最大鏈接數,能夠看到最大鏈接數是214,並不是咱們設置的1000。
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
這是因爲mariadb有默認打開文件數限制。能夠經過配置/usr/lib/systemd/system/mariadb.service來調大打開文件數目。緩存
配置/usr/lib/systemd/system/mariadb.service
[Service]新添加兩行以下參數:
LimitNOFILE=10000
LimitNPROC=10000網絡
從新加載系統服務,並重啓mariadb服務
systemctl --system daemon-reload
systemctl restart mariadb.service
再次查看mariadb數據庫最大鏈接數,能夠看到最大鏈接數已是1000
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1000 |
+-----------------+-------+
6、
openstack建立虛擬機後,vnc進入vm後發現:
ifconfig命令沒有看到eth0信息
[root@localhost ~]# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
重啓網卡又報下面錯誤。
[root@localhost ~]# service network restart
Shutting down loopback insterface: [ OK ]
Bringing up loopback insterface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]
解決辦法:
首先,打開/etc/udev/rules.d/70-persistent-net.rules內容以下面例子所示:
[root@localhost ~]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:f0:f9:1c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="fa:16:3e:e9:ad:89", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
記錄下,eth1網卡的mac地址fa:16:3e:e9:ad:89
接下來,打開/etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="52:54:00:F0:F9:1C"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="af2a1e56-a502-42e9-9359-5c7dd6b1e1e9"
將ifcfg-eth0文件下的DEVICE設備名稱改成「eth1」
將mac地址即HWADDR改成上面記錄的eth1的地址:fa:16:3e:e9:ad:89
即修改後:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth1"
BOOTPROTO="dhcp"
HWADDR="fa:16:3e:e9:ad:89"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="af2a1e56-a502-42e9-9359-5c7dd6b1e1e9"
最後,重啓網卡
[root@localhost ~]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0:
Determining IP information for eth1... done.
[ OK ]
而後查看,發現ifconfig後有ip信息了!
[root@localhost ~]# ifconfig
eth1 Link encap:Ethernet HWaddr FA:16:3E:E9:AD:89
inet addr:192.168.1.102 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fee9:ad89/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:678 errors:0 dropped:0 overruns:0 frame:0
TX packets:183 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78238 (76.4 KiB) TX bytes:27488 (26.8 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
7、
openstack上建立vm實例後,狀態爲ERROR問題解決
解決方法參考:http://www.cnblogs.com/kevingrace/p/6015732.html