忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/05    04« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  »06

nova-compute を nova-conductor が認識できない

新しく Compute Node を立てようとしたのに

新しくサーバが届いたのでコンピュートノードを増やそうとした。インストールを行った結果、nova-computeを nova-conductor に認識してもらえなかった。

他に確認したこととしては

  • neutron-plugin-linuxbridge-agentは認識してもらえている
  • nova-compute 自体は起動している。service nova-compute status で確認済
  • 3,4か月前に立てたもともとあるコンピュートノードは問題なく稼働し、認識されている

ログは次のように言っている

nova-compute.log @ compute node

WARNING nova.virt.libvirt.driver [req-a8aad900-321c-491a-a61e-986fd2040227 - - - - -] Cannot update service status on host "myNewComputeNode" since it is not registered.

nova-conductor.log @ controller node

読みやすくするために若干成型済み

ERROR oslo_db.sqlalchemy.exc_filters [req-2e3cdcf7-f518-49c3-b15f-4ca8ac47d271 - - - - -] 
 DBAPIError exception wrapped from (pymysql.err.InternalError)
  (1241, u'Operand should contain 1 column(s)')
  [SQL: u'SELECT migrations.created_at AS migrations_created_at,
          migrations.updated_at AS migrations_updated_at,
		 migrations.deleted_at AS migrations_deleted_at,
		 migrations.deleted AS migrations_deleted, migrations.id AS migrations_id,
		 migrations.source_compute AS migrations_source_compute,
		 migrations.dest_compute AS migrations_dest_compute, 
		 migrations.source_node AS migrations_source_node, 
		 migrations.dest_node AS migrations_dest_node, 
		 migrations.dest_host AS migrations_dest_host, 
		 migrations.old_instance_type_id AS migrations_old_instance_type_id, 
		 migrations.new_instance_type_id AS migrations_new_instance_type_id, 
		 migrations.instance_uuid AS migrations_instance_uuid, 
		 migrations.status AS migrations_status, 
		 migrations.migration_type AS migrations_migration_type, 
		 migrations.hidden AS migrations_hidden 
          FROM migrations
          WHERE migrations.deleted = %s AND migrations.status = %s AND migrations.source_compute = %s AND migrations.migration_type = %s']
  [parameters: (0, [u'accepted', u'done'], u'myNewComputeNode', u'evacuation')]
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib/python2.7/dist-packages/pymysql/cursors.py", line 132, in execute
    result = self._query(query)
  File "/usr/lib/python2.7/dist-packages/pymysql/cursors.py", line 271, in _query
    conn.query(q)
  File "/usr/lib/python2.7/dist-packages/pymysql/connections.py", line 726, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/lib/python2.7/dist-packages/pymysql/connections.py", line 861, in _read_query_result
    result.read()
  File "/usr/lib/python2.7/dist-packages/pymysql/connections.py", line 1064, in read
    first_packet = self.connection._read_packet()
  File "/usr/lib/python2.7/dist-packages/pymysql/connections.py", line 826, in _read_packet
    packet.check_error()
  File "/usr/lib/python2.7/dist-packages/pymysql/connections.py", line 370, in check_error
    raise_mysql_exception(self._data)
  File "/usr/lib/python2.7/dist-packages/pymysql/err.py", line 116, in raise_mysql_exception
    _check_mysql_exception(errinfo)
  File "/usr/lib/python2.7/dist-packages/pymysql/err.py", line 112, in _check_mysql_exception
    raise InternalError(errno, errorvalue)
InternalError: (1241, u'Operand should contain 1 column(s)')

原因と解決

compute node down, db error - Ask OpenStack: Q&A Site for OpenStack Users and Developers でこの話を扱っていた。次のようにある。

I ended up fixing it, my versions were incorrect. I had installed 2:12.03 on the new compute node, and have 2:12.01 versions on my controller node. By upgrading my controller, and existing nodes, it solved my issues.

すなわち、直せた。バージョンの食い違いが原因。新しいコンピュートノードは 2:12.03 だったけど、コントローラノード (つまり nova-conductor とか) は2:12.01 だった。コントローラを更新したら解決したよとのこと。実際、試したら (apt-get upgrade したら) 解決した。なお、古いコンピュートノードは更新せずとも問題なく動いた模様。

でも、末尾番号ってパッチバージョンよね……? そこは変わっても動いてくれてもいいと思ったひよこでした。

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R