orenoblog

エンジニアになりたいExcel方眼紙erの物語

このNova野郎・・・ nova-apiとglanceノードを分けた場合の注意点

引き続きブータです。

昨日から先ほどまでインスタンス起動時に、
nova-apiが内部で実行するglanceのclient.pyがコケる現象にハマっておりましたが
解決しました。

※glanceとnova-apiのノードは別のノードになっています。

2012-04-16 21:45:29 ERROR nova.image.glance [req-6450e7c7-601d-445e-98c8-1fadc07b2458 dc0c07794e804ad08e984584b271eb4f d4a178da7a22459a828ba0781fcfe742] Connection error contacting glance server, retrying
2012-04-16 21:45:29 TRACE nova.image.glance Traceback (most recent call last):
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/nova/image/glance.py", line 145, in _call_retry
2012-04-16 21:45:29 TRACE nova.image.glance     return getattr(client, name)(*args, **kwargs)
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/glance/client.py", line 101, in get_image_meta
2012-04-16 21:45:29 TRACE nova.image.glance     res = self.do_request("HEAD", "/images/%s" % image_id)
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 58, in wrapped
2012-04-16 21:45:29 TRACE nova.image.glance     return func(self, *args, **kwargs)
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 420, in do_request
2012-04-16 21:45:29 TRACE nova.image.glance     headers=headers)
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 75, in wrapped
2012-04-16 21:45:29 TRACE nova.image.glance     return func(self, method, url, body, headers)
2012-04-16 21:45:29 TRACE nova.image.glance   File "/usr/lib/python2.7/dist-packages/glance/common/client.py", line 557, in _do_request
2012-04-16 21:45:29 TRACE nova.image.glance     raise exception.ClientConnectionError(e)
2012-04-16 21:45:29 TRACE nova.image.glance ClientConnectionError: There was an error connecting to a server
2012-04-16 21:45:29 TRACE nova.image.glance Details: [Errno 111] ECONNREFUSED
                                                     ^^^^^^^^^^^^^^^^^^^^^^
・・省略・・

2012-04-16 21:45:30 TRACE nova.api.openstack GlanceConnectionFailed: Connection to glance failed: Maximum attempts reached

このErrorno 111 ECONNREFUSEDが疑問でした。
nova-apiをstraceしながらインスタンス起動を行うと
途中、syn_ip(127.0.0.1),syn_port(9292)と出力されたので
まさかパラメータ不足ではないよなーと思い、
nova.confに指定できるパラメータは何があるのだろうとnova-manageを叩いてみると、
config listオプションがあるじゃないですか。

$ nova-manage config list|grep glance
glance_port = 9292
glance_api_servers = ['<glanceノード>:9292']
glance_num_retries = 0
s3_host = <glanceノード>
glance_host = 127.0.0.1
              ^^^^^^^^^
image_service = nova.image.glance.GlanceImageService

凄く・・・怪しいです・・・
ということで、修正してインスタンス起動をしてみたところ
nova-api.logから111エラーが無事消えましたとさ。
やった!!第三部完ッ!!

$ sudo vi /etc/nova.conf
--glance_host = <glanceノード>
--s3_host = <glanceノード>
--glance_api_servers = <glanceノード>
$ sudo restart nova-api
※修正後、インスタンスを起動した(dashboardから)

しかし、イメージは未だ起動していません。
今度こそNovaの本丸、nova-scheduler,compute,networkとの戦いになりそうです。
nova-manage config listに気がついてよかった
便利ですね!!