第10章 ノードのリブート

アンダークラウドおよびオーバークラウドで、ノードをリブートしなければならない場合があります。以下の手順では、異なるノード種別をリブートする方法を説明します。以下の点に注意してください。

  • 1 つのロールで全ノードをリブートする場合には、各ノードを個別にリブートすることを推奨しています。この方法は、リブート中にそのロールのサービスを保持するのに役立ちます。
  • OpenStack Platform 環境の全ノードをリブートする場合、リブートの順序は以下のリストを参考にしてください。

推奨されるノードリブート順

  1. director のリブート
  2. コントローラーノードのリブート
  3. スタンドアロンの Ceph MON ノードのリブート
  4. Ceph Storage ノードのリブート
  5. コンピュートノードのリブート
  6. オブジェクトストレージノードのリブート

10.1. director のリブート

director ノードをリブートするには、以下のプロセスに従います。

  1. ノードをリブートします。

    $ sudo reboot
  2. ノードがブートするまで待ちます。
  3. ノードがブートしたら、全サービスのステータスを確認します。

    $ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
    注記

    リブート後に openstack-nova-compute が有効になるまでに約 10 分かかる場合があります。

  4. オーバークラウドとそのノードが存在することを確認します。

    $ source ~/stackrc
    $ openstack server list
    $ openstack baremetal node list
    $ openstack stack list

10.2. コントローラーノードのリブート

コントローラーノードをリブートするには、以下のプロセスに従います。

  1. リブートするノードを選択します。リブートする前に、そのノードにログインしてクラスターを停止します。

    $ sudo pcs cluster stop
  2. クラスターをリブートします。

    $ sudo reboot

    リブート中、クラスターの残りのコントローラーノードは高可用性サービスを維持します。

  3. ノードがブートするまで待ちます。
  4. ノードのクラスターを再度有効化します。

    $ sudo pcs cluster start
  5. ノードにログインして、クラスターのステータスを確認します。

    $ sudo pcs status

    ノードは、クラスターに再度参加します。

    注記

    リブート後にエラーの生じるサービスがあった場合には、sudo pcs resource cleanup を実行し、エラーを消去して各リソースの状態を Started に設定します。引き続きエラーが発生する場合は、Red Hat に連絡してアドバイス/サポートをリクエストしてください。

  6. コントローラーノード上の systemd サービスがすべてアクティブであることを確認します。

    $ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
  7. ノードからログアウトして、次にリブートするコントローラーノードを選択し、すべてのコントローラーノードをリブートするまでこの手順を繰り返します。

10.3. スタンドアロンの Ceph MON ノードのリブート

Ceph MON ノードをリブートするには、以下のプロセスに従います。

  1. Ceph MON ノードにログインします。
  2. ノードをリブートします。

    $ sudo reboot
  3. ノードがブートして MON クラスターに再度加わるまで待ちます。

クラスター内の各 MON ノードで、この手順を繰り返します。

10.4. Ceph Storage ノードのリブート

Ceph Storage ノードをリブートするには、以下のプロセスに従います。

  1. Ceph MON またはコントローラーノードにログインして、Ceph Storage クラスターのリバランスを一時的に無効にします。

    $ sudo ceph osd set noout
    $ sudo ceph osd set norebalance
  2. リブートする最初の Ceph Storage ノードを選択して、ログインします。
  3. ノードをリブートします。

    $ sudo reboot
  4. ノードがブートするまで待ちます。
  5. ノードにログインして、クラスターのステータスを確認します。

    $ sudo ceph -s

    pgmap により、すべての pgs が正常な状態 (active+clean) として報告されることを確認します。

  6. ノードからログアウトして、次のノードをリブートし、ステータスを確認します。全 Ceph Storage ノードがリブートされるまで、このプロセスを繰り返します。
  7. 完了したら、Ceph MON またはコントローラーノードにログインして、クラスターのリバランスを再度有効にします。

    $ sudo ceph osd unset noout
    $ sudo ceph osd unset norebalance
  8. 最終のステータスチェックを実行して、クラスターが HEALTH_OK を報告していることを確認します。

    $ sudo ceph status

10.5. コンピュートノードのリブート

各コンピュートノードを個別にリブートして、OpenStack Platform 環境のインスタンスのダウンタイムがゼロになるようにします。これは、以下のワークフローを伴います。

  1. リブートするコンピュートノードを選択する。
  2. そのノードのインスタンスを別のコンピュートノードに移行する。
  3. 空のコンピュートノードをリブートする

全コンピュートノードとその UUID を一覧表示します。

$ nova list | grep "compute"

リブートするコンピュートノードを選択し、まず以下のプロセスに従ってそのノードのインスタンスを移行します。

  1. アンダークラウドから、リブートするコンピュートノードを選択し、そのノードを無効にします。

    $ source ~/overcloudrc
    $ openstack compute service list
    $ openstack compute service set [hostname] nova-compute --disable
  2. コンピュートノード上の全インスタンスを一覧表示します。

    $ openstack server list --host [hostname] --all-projects
  3. 無効にしたホストから各インスタンスを移行します以下のコマンドの 1 つを使用します。

    1. 選択した特定のホストにインスタンスを移行する。

      $ openstack server migrate [instance-id] --live [target-host]--wait
    2. nova-scheduler により対象のホストが自動的に選択されるようにする。

      $ nova live-migration [instance-id]
      注記

      nova コマンドで非推奨の警告が表示される可能性がありますが、無視して問題ありません。

  4. 移行が完了するまで待ちます。
  5. インスタンスがコンピュートノードから移行されたことを確認します。

    $ openstack server list --host [hostname] --all-projects
  6. コンピュートノードから全インスタンスを移行するまで、このステップを繰り返します。
重要

インスタンスの設定および移行に関する詳しい説明は、「8章コンピュートノード間の仮想マシンの移行」を参照してください。

以下の手順に従ってコンピュートノードをリブートします。

  1. コンピュートノードにログインして、リブートします。

    $ sudo reboot
  2. ノードがブートするまで待ちます。
  3. コンピュートノードを再度有効化します。

    $ source ~/overcloudrc
    $ openstack compute service set [hostname] nova-compute --enable
  4. 次にリブートするノードを選択します。

10.6. オブジェクトストレージノードのリブート

オブジェクトストレージノードをリブートするには、以下のプロセスに従います。

  1. リブートするオブジェクトストレージノードを選択します。そのノードにログインしてリブートします。

    $ sudo reboot
  2. ノードがブートするまで待ちます。
  3. ノードにログインしてステータスを確認します。

    $ sudo systemctl list-units "openstack-swift*"
  4. ノードからログアウトし、次のオブジェクトストレージノードでこのプロセスを繰り返します。