執行命令
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配置項指定。