OpenStack 常見問題及解決方法

OpenStack 常見問題及解決方法  


執行命令
python

sudo service nova-api restartmysql

返回結果sql

restart: Unknown instance數據庫

有些讀者可能剛開始接觸Linux操做系統,對於這些簡單的命令的運用還不熟悉,不知道如何解決。這個時候須要看明白錯誤提示,明白出錯的緣由,比較好的方法是使用搜索引擎搜索錯誤提示,明白出錯的緣由。ubuntu

上面的問題緣由是nova-api服務進程本來就沒有啓動,若是發出」service nova-api restart」命令重啓nova-api服務進程,就會出現」未知進程」的錯誤提示了。swift

解決方法:api

service nova-api start服務器


以下面的問題:網絡

啓動rabbitmq-server服務進程app

/etc/init.d/rabbimq-server restart

返回結果

Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_log, _err

rabbitmq-server.

從 錯誤提示可知,rabbitmq-server啓動失敗,可是沒有具體的緣由。這個時候能夠查看rabbitmq-server服務的日誌記錄。結果中也 提示了「check /var/log/rabbitmq/start_log,_err」,意思爲檢查日誌記錄文件。

利用搜索引擎搜索日誌記錄文件中的錯誤記錄,可能會找到解決的方法。

緣由1

服務器的hostname修改過,重啓以後rabbimq-server就可能不能啓動了。

解決的辦法:

編輯rabbitmq.conf配置文件


vi /etc/rabbitmq/rabbitmq.conf 

NODENAME=rabbitmq@hostname

NODE_IP_ADDRESS=172.0.0.1

NODENAME指定使用rabbimq-server進程的用戶,hostname是服務器的hostname,NODE_IP_ADDRESS指定了服務器的IP地址。

從新啓動rabbitmq-server

緣由2:

重啓服務器後,rabbitmq-server數據庫綁定舊數據

解決辦法:

刪除rabbitmq-server的數據庫

rm –rf /var/lib/rabbitmq/mnesia


下面給出OpenStack雲平臺涉及到的相關服務進程的日誌記錄的默認存放地址:

服務進程路徑或文件

nova 服務(nova-api, nova-scheduler, nova-objectstore,nova-network,nova- compute,nova-volume)/var/log/nova(每項服務有對應的日誌文件,請對應日誌文件的文件名進行日誌觀察)

glance服務(glance-api,glance-regisry)/var/log/glance(每項服務有對應的日誌文件,請對應日誌文件的文件名進行日誌觀察)

keystone服務     /var/log/keystone/keystone.log,/var/log/syslog

rabbitmq服務     /var/log/rabbitmq

mysql服務         /var/log/mysql

libvirt服務          /var/log/libvirt

swift服務          /var/log/syslog

memcached服務    /var/log/memcached.log


?網絡求助

當 碰上一些沒法找到錯誤緣由的問題,經過搜索引擎搜索問題的解決辦法,又或者經過登陸lauchpad.net進行問題的查詢。在該網站上先查詢肯定是否有 一樣的問題已經被解決。若是問題剛好已經被解決,能夠參考問題的解決方法進行解決;若是是新的問題出現,能夠發帖進行問題提問。

服務進程網站求助地址

novahttps://answers.launchpad.net/nova

glancehttps://answers.launchpad.net/glance

keystonehttps://answers.launchpad.net/keystone

swifthttps://answers.launchpad.net/swift


常見錯誤問題類型

1.輸入的命令錯誤

執行建立網絡命令

 nova-manage network create 192.168.0.0/24 1 255

返回結果

Command failed, please check log for more info

結果提示命令錯誤,可是舊版的官方文檔是這樣操做的。這種問題出現的緣由就是參考了過期的安裝文檔致使安裝失敗。因此在安裝部署OpenStack的時候記錄安裝的軟件包的版本,這樣在求助中說明更能夠快速定位問題的緣由。

解決方法:

正確的nova-manage network create命令要指定網絡名稱—label項,--bridge網橋名以及—bridge_interface網橋鏈接網卡。

nova-manage network create –label private 192.168.0.0/24 1 255 –bridge br100 –bridge_inteface eth1


2.沒導入環境變量

問題1:

執行添加Keypair命令

euca-add-keypair test

返回結果

EC2_ACCESS_KEY environment variable must be set.

Connection failed

結果提示EC2_ACCESS_KEY環境變量還沒有設置。這種狀況在重登陸服務器的時候出現,緣由在於登出後本來的環境變量清空,須要從新設置環境變量。


解決辦法

設置環境變量。具體添加環境變量的狀況有兩種:一是沒有使用Keystone做爲身份認證系統的Nova平臺;二是使用Keystone做爲身份認證系統的Nova平臺,參考書本前面章節。


問題2:

執行命令

nova list

返回結果

You must provide a username, eithervia --username or via env[NOVA_USERNAME]

結果提示須要提供用戶名或者設置環境變量,這種問題和問題1的出錯緣由是同樣的。

解決辦法:

設置環境變量。具體添加環境變量的狀況有兩種:一是沒有使用Keystone做爲身份認證系統的Nova平臺;二是使用Keystone做爲身份認證系統的Nova平臺,參考書本前面章節。


3.導入錯誤的環境變量

執行命令查看虛擬機

euca-describe-instances

返回結果

Warning: failed to parse error message from AWS: <unknown>:1:0: syntax error

None: None

    返回結果提示語法錯誤,即環境變量的設置錯誤。出現問題的緣由多是使用了Keystone身份認證系統的OpenStack平臺導入了使用過去的身份認證系統的環境變量(即nova-manage project zipfile命令產生的環境變量)。

解決辦法:

    導入正確的環境變量。具體設置參考書本前面章節。

4.服務進程不可用

執行命令查看服務狀態

nova-manage service list 

返回結果

nova-compute ubuntu01-machine nova enabled XXX 2011-11-21 07:05:02

    返回結果中nova-compute服務狀態爲不可用(XXX)。而可用的服務狀態爲-:)。

緣由1:

nova-compute服務沒有開啓

解 決辦法:在相應的節點上開啓相應的服務。如例子的爲:在ubuntu04-machine的節點上運行service nova- compute start,開啓nova-compute服務。有時候配置錯誤的狀況下nova-服務可能會在開啓後自動關閉,執行 ps –ef|grep nova-compute命令查看進程中是否該服務正常運行。

緣由2:

rabbitmq-server沒有開啓,致使不能通訊。

解決辦法:

開啓rabbitmq-server服務進程

/etc/init.d/rabbitmq-server start

緣由3:

服務器時間沒有同步。

解決辦法:

    使用ntp服務進行服務器時間同步。具體步驟參考書本前面章節內容。


執行命令

swift –A http://172.0.0.1:5000 –U admin –K password stat –V 2


返回結果

[Errno 111] ECONNREFUSED

返回結果只提示拒絕鏈接,查看Swift的服務日誌/var/log/swift,發現沒有任何記錄。根據思考,swift使用keystone做爲了身份認證系統,所以頗有多是Keystone服務出錯。認真搜索日誌文件,發現下面信息

Mar 14 08:31:18 nova-compute-3 init: keystone main process (7584) terminated with status 255

因而可知,Keystone服務被終結,致使訪問Swift失敗。

解決緣由:

開啓Keystone服務


5.端口占用

執行命令:

開啓glance-api服務

service glance-api start

返回結果:

Starting the Token Authentication component

Traceback (most recent call last):

  File "/usr/bin/glance-api", line 66, in <module>

    server.start(app, int(conf['bind_port']), conf['bind_host'])

  File "/usr/lib/pymodules/python2.6/glance/common/wsgi.py", line 65, in start

    socket = eventlet.listen((host, port), backlog=backlog)

  File "/usr/lib/pymodules/python2.6/eventlet/convenience.py", line 38, in listen

    sock.bind(addr)

  File "<string>", line 1, in bind

socket.error: [Errno 98] Address already in use

返回的結果提示」Address already in use」。經過搜索引擎搜索,得出端口被佔用的緣由。出現問題應該是有其餘進程佔用了glance-api要使用的端口致使glance-api進程啓動失敗。

解決辦法:

    終結佔用端口的進程,或者修改glance-api服務進程使用的端口。修改glance-api服務端口須要在glance-api.conf配置文件中—bind_port配置項指定。

相關文章
相關標籤/搜索