15.7. インスタンスの退避
インスタンスを障害の発生したコンピュートノードまたはシャットダウンしたコンピュートノードから同じ環境内の新しいホストに移動する場合、インスタンスを退避させることができます。
退避プロセスにより元のインスタンスは破棄され、元のイメージ、インスタンス名、UUID、ネットワークアドレス、およびインスタンスに割り当てられていたその他すべてのリソースを使用して、別のコンピュートノードに元のインスタンスが再ビルドされます。
インスタンスが共有ストレージを使用する場合、インスタンスのルートディスクは退避プロセス中に再ビルドされません。移行先コンピュートノードが引き続きこのディスクにアクセス可能なためです。インスタンスが共有ストレージを使用しない場合は、インスタンスのルートディスクも移行先コンピュートノードに再ビルドされます。
-
コンピュートノードがフェンシングされ、API が報告するコンピュートノードの状態が "down" または "forced-down" である場合に限り、退避を行うことができます。コンピュートノードが "down" または "forced-down" と報告されない場合、
evacuate
コマンドは失敗します。 - クラウド管理者でなければ、退避を行うことはできません。
15.7.1. インスタンスの退避
ホスト上のすべてのインスタンスを退避させるには、一度に 1 つずつ退避する必要があります。
手順
インスタンスが実行されていないことを確認します。
openstack server list --host <node> --all-projects
(overcloud)$ openstack server list --host <node> --all-projects
Copy to Clipboard Copied! -
<node>
をインスタンスをホストするコンピュートノードの名前または UUID に置き換えます。
-
インスタンスタスクの状態を確認します。
openstack server show <instance>
(overcloud)$ openstack server show <instance> +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | ... | ... | | status | NONE | | ... | ... | +----------------------+--------------------------------------+
Copy to Clipboard Copied! -
<
;instance&
gt; を退避させるインスタンスの名前または UUID に置き換えてください。
注記インスタンスタスクの状態が NONE でない場合、退避は失敗する可能性があります。
-
<
ホストコンピュートノードのフェンシングまたはシャットダウンを確認します。
openstack baremetal node show <node>
(overcloud)$ openstack baremetal node show <node>
Copy to Clipboard Copied! -
<node>
を退避するインスタンスをホストするコンピュートノードの名前または UUID に置き換えます。退避を実行するには、コンピュートノードのステータスがdown
またはforced-down
である必要があります。
-
コンピュートノードを無効にします。
openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
(overcloud)$ openstack compute service set \ <node> nova-compute --disable --disable-reason <disable_host_reason>
Copy to Clipboard Copied! -
<node>
をインスタンスの退避元となるコンピュートノードの名前に置き換えてください。 -
<disable_host_reason>
をコンピュートノードを無効にした理由の詳細に置き換えます。
-
インスタンスを退避させます。
openstack server evacuate [--host <dest>] \ [--password <password>] <instance>
(overcloud)$ openstack server evacuate [--host <dest>] \ [--password <password>] <instance>
Copy to Clipboard Copied! オプション:
<dest>
をインスタンスの退避先となるコンピュートノードの名前に置き換えます。退避先コンピュートノードを指定しなかった場合には、Compute スケジューラーがノードを選択します。退避先に指定可能なコンピュートノードを確認するには、以下のコマンドを使用します。openstack hypervisor list
(overcloud)[stack@director ~]$ openstack hypervisor list
Copy to Clipboard Copied! オプション:
<pass>
を、退避されたインスタンスへのアクセスに必要な管理パスワードに置き換えます。パスワードを指定しなかった場合には、無作為に生成され、退避の完了時に出力されます。注記パスワードは、一時インスタンスディスクがローカルのハイパーバイザーディスクに保存されている場合にのみ変更されます。インスタンスが共有ストレージでホストされる場合、または Block Storage ボリュームが割り当てられている場合はパスワードは変更されず、パスワードが変更されなかったことを通知するエラーメッセージは表示されません。
-
<instance>
を退避させるインスタンスの名前または ID に置き換えてください。
注記退避に失敗し、インスタンスのタスク状態が NONE ではない場合は、Red Hat サポートにお問い合わせください。
オプション: コンピューティングノードは、復元されたら有効化します。
openstack compute service set \ <node> nova-compute --enable
(overcloud)$ openstack compute service set \ <node> nova-compute --enable
Copy to Clipboard Copied! -
<node>
を、有効化するコンピューティングノードの名前に置き換えます。
-