事象内容

openstack server resize コマンドを使って、インスタンスのリサイズをしようとすると、下記エラーとなる。

[root@controller ~]# openstack server resize --flavor 102 999
有効なホストが見つかりませんでした。サイズ変更の対象として有効なホストが見つかりません (HTTP 400) (Request-ID: req-3582be47-3f98-47dd-b4c1-efd2df123889)
[root@controller ~]# 

コントローラーノードの nova-conductor のログ( /var/log/nova/nova-conductor.log )を確認すると、以下エラーメッセージが出力されている。

Failed to compute_task_migrate_server: 有効なホストが見つかりませんでした。使用可能なホストが不足しています。

[root@controller ~]# tail -F /var/log/nova/nova-conductor.log 

2018-11-11 21:45:08.044 2143 WARNING nova.scheduler.utils [req-3582be47-3f98-47dd-b4c1-efd2df123889 64b377d70bc4457faa169912b02a24d1 b9644b0689c4469baa45f9acb009d860 - default default] Failed to compute_task_migrate_server: 有効なホストが見つかりませんでした。使用可能なホストが不足しています。
Traceback (most recent call last):

  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 226, in inner
    return func(*args, **kwargs)

  File "/usr/lib/python2.7/site-packages/nova/scheduler/manager.py", line 169, in select_destinations
    allocation_request_version, return_alternates)

  File "/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py", line 91, in select_destinations
    allocation_request_version, return_alternates)

  File "/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py", line 256, in _schedule
    claimed_instance_uuids)

  File "/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py", line 293, in _ensure_sufficient_hosts
    raise exception.NoValidHost(reason=reason)

NoValidHost: \u6709\u52b9\u306a\u30db\u30b9\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f7f\u7528\u53ef\u80fd\u306a\u30db\u30b9\u30c8\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002
: NoValidHost_Remote: \u6709\u52b9\u306a\u30db\u30b9\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f7f\u7528\u53ef\u80fd\u306a\u30db\u30b9\u30c8\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002
2018-11-11 21:45:08.045 2143 WARNING nova.scheduler.utils [req-3582be47-3f98-47dd-b4c1-efd2df123889 64b377d70bc4457faa169912b02a24d1 b9644b0689c4469baa45f9acb009d860 - default default] [instance: 32a44bc3-b1e5-4a07-b9ea-ee1cc8664dba] Setting instance to ACTIVE state.: NoValidHost_Remote: \u6709\u52b9\u306a\u30db\u30b9\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4f7f\u7528\u53ef\u80fd\u306a\u30db\u30b9\u30c8\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002

解決方法

リサイズの処理を許可する設定がされていないことが原因であるため、リサイズの処理を許可する設定をします。

コントローラーノードの nova 設定ファイル( /etc/nova/nova.conf  )を編集し、以下設定します。

[root@controller ~]# vi /etc/nova/nova.conf 

[ DEFAULT ] セクションにある allow_resize_to_same_host を true(有効)にします。

[DEFAULT]
# ...
allow_resize_to_same_host=true

設定を反映するために、コントローラーノードの nova 関連のサービスを再起動します。

■ nova 関連のサービス再起動
[root@controller ~]# systemctl restart openstack-nova*
[root@controller ~]# 

■ nova 関連のサービス起動状態を確認
[root@controller ~]# systemctl status openstack-nova*
● openstack-nova-consoleauth.service - OpenStack Nova VNC console auth Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-consoleauth.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:30 JST; 13s ago
 Main PID: 9698 (nova-consoleaut)
   CGroup: /system.slice/openstack-nova-consoleauth.service
           └─9698 /usr/bin/python2 /usr/bin/nova-consoleauth

11月 11 21:59:27 controller systemd[1]: Starting OpenStack Nova VNC console....
11月 11 21:59:30 controller systemd[1]: Started OpenStack Nova VNC console ....

● openstack-nova-conductor.service - OpenStack Nova Conductor Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-conductor.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:27 JST; 16s ago
 Main PID: 9659 (nova-conductor)
   CGroup: /system.slice/openstack-nova-conductor.service
           ├─9659 /usr/bin/python2 /usr/bin/nova-conductor
           ├─9688 /usr/bin/python2 /usr/bin/nova-conductor
           └─9689 /usr/bin/python2 /usr/bin/nova-conductor

11月 11 21:59:24 controller systemd[1]: Starting OpenStack Nova Conductor S....
11月 11 21:59:27 controller systemd[1]: Started OpenStack Nova Conductor Se....

● openstack-nova-api.service - OpenStack Nova API Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-api.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:30 JST; 12s ago
 Main PID: 9670 (nova-api)
   CGroup: /system.slice/openstack-nova-api.service
           ├─9670 /usr/bin/python2 /usr/bin/nova-api
           ├─9722 /usr/bin/python2 /usr/bin/nova-api
           ├─9723 /usr/bin/python2 /usr/bin/nova-api
           ├─9726 /usr/bin/python2 /usr/bin/nova-api
           └─9727 /usr/bin/python2 /usr/bin/nova-api

11月 11 21:59:25 controller systemd[1]: Starting OpenStack Nova API Server...
11月 11 21:59:30 controller systemd[1]: Started OpenStack Nova API Server.

● openstack-nova-novncproxy.service - OpenStack Nova NoVNC Proxy Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-novncproxy.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:23 JST; 19s ago
 Main PID: 9644 (nova-novncproxy)
   CGroup: /system.slice/openstack-nova-novncproxy.service
           └─9644 /usr/bin/python2 /usr/bin/nova-novncproxy --web /usr/share/...

11月 11 21:59:23 controller systemd[1]: Started OpenStack Nova NoVNC Proxy ....
11月 11 21:59:23 controller systemd[1]: Starting OpenStack Nova NoVNC Proxy....

● openstack-nova-scheduler.service - OpenStack Nova Scheduler Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-scheduler.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:27 JST; 15s ago
 Main PID: 9639 (nova-scheduler)
   CGroup: /system.slice/openstack-nova-scheduler.service
           ├─9639 /usr/bin/python2 /usr/bin/nova-scheduler
           ├─9692 /usr/bin/python2 /usr/bin/nova-scheduler
           └─9693 /usr/bin/python2 /usr/bin/nova-scheduler

11月 11 21:59:23 controller systemd[1]: Starting OpenStack Nova Scheduler S....
11月 11 21:59:27 controller systemd[1]: Started OpenStack Nova Scheduler Se....

● openstack-nova-console.service - OpenStack Nova Console Proxy Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-console.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:59:30 JST; 13s ago
 Main PID: 9699 (nova-console)
   CGroup: /system.slice/openstack-nova-console.service
           └─9699 /usr/bin/python2 /usr/bin/nova-console

11月 11 21:59:27 controller systemd[1]: Starting OpenStack Nova Console Pro....
11月 11 21:59:30 controller systemd[1]: Started OpenStack Nova Console Prox....
Hint: Some lines were ellipsized, use -l to show in full.
[root@controller ~]# 

次に、コンピュートノードの nova 設定ファイル( /etc/nova/nova.conf )を同様に編集し、以下設定します。

[root@compute1 ~]# vi /etc/nova/nova.conf 

[ DEFAULT ] セクションにある allow_resize_to_same_host を true(有効)にします。

[DEFAULT]
# ...
allow_resize_to_same_host=true

設定を反映するために、コンピュートノードの nova 関連のサービスを再起動します。

■ nova 関連のサービス再起動
[root@compute1 ~]# systemctl restart openstack-nova*
[root@compute1 ~]# 

■ nova 関連のサービス起動状態を確認
[root@compute1 ~]# systemctl status openstack-nova*
● openstack-nova-compute.service - OpenStack Nova Compute Server
   Loaded: loaded (/usr/lib/systemd/system/openstack-nova-compute.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 21:57:18 JST; 4min 8s ago
 Main PID: 7243 (nova-compute)
    Tasks: 24
   CGroup: /system.slice/openstack-nova-compute.service
           ├─7243 /usr/bin/python2 /usr/bin/nova-compute
           ├─7298 /usr/bin/python2 /bin/privsep-helper --config-file /usr/sha...
           └─7387 /usr/bin/python2 /bin/privsep-helper --config-file /usr/sha...

11月 11 21:57:16 compute1 systemd[1]: Starting OpenStack Nova Compute Server...
11月 11 21:57:18 compute1 systemd[1]: Started OpenStack Nova Compute Server.
11月 11 21:57:18 compute1 sudo[7283]:     nova : TTY=unknown ; PWD=/ ; USE...ck
11月 11 22:00:00 compute1 sudo[7366]:     nova : TTY=unknown ; PWD=/ ; USE...ck
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]#