2013-01-21 24 views
1

我有2個用於openstack的節點設置。Nova計算和網絡在重新啓動管理服務後無法聯繫nova服務

第1個節點包含管理服務,如nova-apinova-scheduler,'glance` ... 第2個節點包含網絡和計算服務。

當我檢查nova-manage service list所有的服務都顯示出來。

當我重新啓動管理節點(節點1)時,計算被斷開。

當計算嘗試連接管理節點時,它會在計算日誌中顯示錯誤。

2013-01-21 20:49:28 TRACE nova.manager Traceback (most recent call last): 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib/python2.6/site-packages/nova/manager.py", line 155, in periodic_tasks 
2013-01-21 20:49:28 TRACE nova.manager  task(self, context) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 2244, in _heal_instance_info_cache 
2013-01-21 20:49:28 TRACE nova.manager  context, self.host) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib/python2.6/site-packages/nova/db/api.py", line 594, in instance_get_all_by_host 
2013-01-21 20:49:28 TRACE nova.manager  return IMPL.instance_get_all_by_host(context, host) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib/python2.6/site-packages/nova/db/sqlalchemy/api.py", line 103, in wrapper 
2013-01-21 20:49:28 TRACE nova.manager  return f(*args, **kwargs) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib/python2.6/site-packages/nova/db/sqlalchemy/api.py", line 1582, in instance_get_all_by_host 
2013-01-21 20:49:28 TRACE nova.manager  return _instance_get_all_query(context).filter_by(host=host).all() 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line 1922, in all 
2013-01-21 20:49:28 TRACE nova.manager  return list(self) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2032, in __iter__ 
2013-01-21 20:49:28 TRACE nova.manager  return self._execute_and_instances(context) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py", line 2047, in _execute_and_instances 
2013-01-21 20:49:28 TRACE nova.manager  result = conn.execute(querycontext.statement, self._params) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1399, in execute 
2013-01-21 20:49:28 TRACE nova.manager  params) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1532, in _execute_clauseelement 
2013-01-21 20:49:28 TRACE nova.manager  compiled_sql, distilled_params 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1640, in _execute_context 
2013-01-21 20:49:28 TRACE nova.manager  context) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1633, in _execute_context 
2013-01-21 20:49:28 TRACE nova.manager  context) 
2013-01-21 20:49:28 TRACE nova.manager File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.3-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py", line 330, in do_execute 
2013-01-21 20:49:28 TRACE nova.manager  cursor.execute(statement, parameters) 
2013-01-21 20:49:28 TRACE nova.manager OperationalError: (OperationalError) socket not open 

當我重新啓動計算和網絡服務時,它解決了問題。但是,直到我重新啓動計算或網絡它給出了錯誤。

當我檢查打開控制器的套接字的計算。

[[email protected] ~]# ps -ef | grep compute 
nova  30859  1 27 18:51 ?  00:00:03 /usr/bin/python /usr/bin/nova-compute --config-file /etc/nova/nova.conf --logfile /var/log/nova/compute.log 
root  30996 30807 0 18:51 pts/0 00:00:00 grep compute 

[[email protected] ~]# netstat -p | grep 30859 
tcp  0  0 compute:56988  controller:postgres  ESTABLISHED 30859/python 
tcp  0  0 compute:37869  controller:amqps  ESTABLISHED 30859/python 
tcp  0  0 compute:37871  controller:amqps  ESTABLISHED 30859/python 
unix 3  [ ]   STREAM  CONNECTED  3588759 30859/python 

有2個插座用於控制器。 postgresamqps。 當我在控制器上運行reboot now並檢查控制器可用的插座數量。

[[email protected] ~]# netstat -p | grep 30859 
tcp  208  0 compute:56988  controller:postgres  CLOSE_WAIT 30859/python 
unix 3  [ ]   STREAM  CONNECTED  3590103 30859/python 
unix 3  [ ]   STREAM  CONNECTED  3588759 30859/python 

在此postgres插座已關閉。

當所有服務都出現在控制器中。我運行相同的命令來檢查連接到控制器的套接字。我得到了同樣的結果。

爲什麼計算不能爲postgres創建新的套接字?

+1

檢查你的SQL服務器配置nova.conf。但它看起來像你的SQL服務器可能無法正常運行。我會從那裏開始。 –

+0

sql服務器已啓動並正在運行。當我檢查'nova-manage service list'時,它顯示所有服務都處於:-)狀態。只有計算和網絡處於XXX狀態。當我檢查日誌計算時,我得到了這個錯誤。 – Nilesh

回答

1

你得到的套接字錯誤是來自nova-compute嘗試聯繫你在nova.conf中配置的數據庫,正如Matt Joyce指出的那樣。在日誌早期,您可以看到服務配置的所有值。查找字符串「Full set of FLAGS」 - 這至少會暗示其中配置的內容 - 它會從日誌輸出中隱藏「sql_connection」的實際值(因爲它通常嵌入密碼),但它可能有助於解釋那裏發生的事情。

從我正在閱讀您的問題,nova-compute日誌文件顯示此錯誤,直到您重新啓動服務。我是否正確地閱讀它之後的作品?

假設這是正確的,是否有什麼是在基本打包安裝後配置nova?一個廚師,傀儡或類似的服務可能已經啓動了配置不正確的配置?

+0

感謝您的回覆。我正在檢查問題。我對此有了一些提示。問題是服務運行時,它爲'amqp'和'postgres'創建套接字。當控制器將兩個套接字從計算端關閉時。當控制器端計算服務出現時,嘗試連接它。它爲'amqp'創建套接字,但無法爲'postgres'創建套接字,並且由於它給出了「套接字未打開」錯誤。 – Nilesh

+0

我更新的問題請再次看看這個thx。 – Nilesh

+1

錯誤仍然相同 - nova-compute服務在啓動時無法打開與數據庫的套接字連接。我以前沒有使用Postgres,但是我懷疑你使用的postgres驅動和nova-compute服務不能一起工作,在初始失敗時自動嘗試重新連接。 – heckj