Oracle OpenStack for Oracle Solaris では、VM インスタンスは、Oracle Solaris のスケーラブルな高密度仮想環境であるカーネルゾーンまたは非大域ゾーンです。
ゾーンのライブ移行の詳細は、『Oracle Solaris カーネルゾーンの作成と使用』のカーネルゾーンの移行に関する説明を参照してください。この本は、オペレーティングシステムのドキュメント内の使用している Oracle Solaris バージョンのライブラリにあります。zoneadm(1M) および solaris-kz(5) のマニュアルページも参照してください。
ノードの移行を成功させるには、各コンピュートノードの SSH 鍵が各ノードの承認された鍵のファイルに追加されていることを確認する必要があります。それにより、次の図に示すように、これらのノードは承認された鍵の同じファイルを共有します。
次の手順を完了することによって、VM インスタンスの移行を準備します。
# su - nova -c "ssh-keygen -N '' -f /var/user/nova/.ssh/id_rsa -t rsa"
各ノードのすべての鍵ファイルを、いずれかのノード内の共通の場所に移動します。
すべての鍵を authorized_keys ファイルに結合します。
例:
# cat nova(1)/id_rsa.pub nova(n)/id_rsa.pub >> /var/user/nova/.ssh/authorized_keys
ここで、nova(1) から nova(n) は、参加しているノードの SSH 鍵を表します。
authorized_keys ファイルを、その他のすべての参加しているノードの /var/user/nova/.ssh ディレクトリに配布します。
オプションとして、各コンピュートノードの /etc/nova/nova.conf ファイル内の live_migration_cipher パラメータに、移行中に使用する暗号化方式を指定します。
ただし、適切な暗号化方式がこのプロセスで自動的に選択されるようにする場合は、このパラメータを設定解除されたままにします。
インスタンスを移行するには、グローバルシェル変数を設定したあとに次の構文を使用します。
実行中のサーバーの別のマシンへのライブ移行を実行するには、グローバルシェル変数を設定したあとに次の構文を使用します。
# nova live-migration server [host]
ここで、server にはそのサーバーの名前または ID を指定でき、オプションの host は宛先サーバーの名前です。
現在のインスタンスのノードに障害が発生した場合や、Nova サービス自体がある期間無効になった場合は、nova evacuate コマンドを使用して、そのインスタンスを移動し、それを別のノード上で再構築できます。それにより、このノードを回復できます。
カーネルゾーンだけを退避できます。退避は、ルートデバイスが共有ストレージ上に存在する構成でサポートされます。
あるホストから別のホストへのすべての VM インスタンスのライブ移行を実行するには、グローバルシェル変数を設定したあとに次の構文を使用します。
# nova host-evacuate-live [--target-host target] server