天天看點

完整部署CentOS7.2+OpenStack+kvm 雲平台環境(5)--問題解決

一、

[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 |

二、

在進行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資料庫中

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

provider = keystone.token.providers.uuid.Provider

driver = keystone.token.persistence.backends.memcache.Token

預設的配置是:

--------------------------------------------------------------------------------------------------------------------------------------------

三、

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/nova

四、

之前在openstack裡建立的虛拟機,後面删除了。但是再建立虛拟機并設定和之前删除的虛拟機一樣的ip的時候,就報錯說這個ip已經被占用了!

但是之前建立的虛拟機已經删除了,這是為什麼?

這是因為虛拟機雖然删除了,但是所删除虛拟機在neutron組網内的ip還沒有被真正釋放出來。

需要登陸openstack的web界面,到“網絡”部分裡面進行删除:

完整部署CentOS7.2+OpenStack+kvm 雲平台環境(5)--問題解決
完整部署CentOS7.2+OpenStack+kvm 雲平台環境(5)--問題解決
完整部署CentOS7.2+OpenStack+kvm 雲平台環境(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)

測試登陸資料庫,發現登陸失敗!

[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)

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

| max_connections | 1000 | 

六、

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]

完整部署CentOS7.2+OpenStack+kvm 雲平台環境(5)--問題解決

首先,打開/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"

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

即修改後:

DEVICE="eth1"

HWADDR="fa:16:3e:e9:ad:89"

最後,重新開機網卡

[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資訊了!

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)

七、

openstack上建立vm執行個體後,狀态為ERROR問題解決

***************當你發現自己的才華撐不起野心時,就請安靜下來學習吧***************

本文轉自散盡浮華部落格園部落格,原文連結:http://www.cnblogs.com/kevingrace/p/5811167.html,如需轉載請自行聯系原作者