5.8. インスタンスの退避

インスタンスを障害の発生したコンピュートノードまたはシャットダウンしたコンピュートノードから同じ環境内の新しいホストに移動する場合、インスタンスを退避させることができます。

退避プロセスにより元のインスタンスは破棄され、元のイメージ、インスタンス名、UUID、ネットワークアドレス、およびインスタンスに割り当てられていたその他すべてのリソースを使用して、別のコンピュートノードに元のインスタンスが再ビルドされます。

インスタンスが共有ストレージを使用する場合、インスタンスのルートディスクは退避プロセス中に再ビルドされません。移行先コンピュートノードが引き続きこのディスクにアクセス可能なためです。インスタンスが共有ストレージを使用しない場合は、インスタンスのルートディスクも移行先コンピュートノードに再ビルドされます。

注記
  • コンピュートノードがフェンシングされ、API が報告するコンピュートノードの状態が「down」または「forced-down」である場合に限り、退避を行うことができます。コンピュートノードが「down」または「forced-down」と報告されない場合、evacuate コマンドは失敗します。
  • クラウド管理者でなければ、退避を行うことはできません。

5.8.1. 単一のインスタンスの退避

インスタンスを一度に 1 つずつ退避させることができます。

手順

  1. 障害の発生したコンピュートノードに管理者としてログインします。
  2. コンピュートノードを無効にします。

    (overcloud) [stack@director ~]$ openstack compute service set \
    <host> <service> --disable
    • <host> をインスタンスの退避元となるコンピュートノードの名前に置き換えてください。
    • <service> を無効にするサービスの名前 (例: nova-compute) に置き換えてください。
  3. インスタンスを退避させるには、以下のコマンドを入力します。

    (overcloud) [stack@director ~]$ nova evacuate [--password <pass>] <vm> [<dest>]
    • <pass> を退避するインスタンスに設定する admin パスワードに置き換えてください。パスワードを指定しなかった場合には、無作為に生成され、退避の完了時に出力されます。
    • <vm> を退避させるインスタンスの名前または ID に置き換えてください。
    • <dest> をインスタンスの退避先となるコンピュートノードの名前に置き換えてください。退避先コンピュートノードを指定しなかった場合には、Compute のスケジューラーがノードを選択します。退避先に指定可能なコンピュートノードを確認するには、以下のコマンドを使用します。

      (overcloud) [stack@director ~]$ openstack hypervisor list