Logical Domains 1.2 管理ガイド

第 8 章 論理ドメインの移行

この章では、今回のリリースの Logical Domains 1.2 ソフトウェア以降で、ホストマシン間で論理ドメインを移行する方法について説明します。

この章の内容は次のとおりです。

論理ドメインの移行の概要

論理ドメインの移行を行うと、ホストマシン間で論理ドメインを移行できます。移行が開始されるホストはソースマシン、ドメインの移行先のホストはターゲットマシンと呼ばれます。同様に、移行が開始されてから移行が進行中の間、移行されるドメインはソースドメイン、ターゲットマシン上に作成されるドメインのシェルはターゲットドメインと呼ばれます。

移行処理の概要

ソースマシン上の Logical Domains Manager はドメインの移行要求を受け入れ、ターゲットマシン上で動作している Logical Domains Manager とのセキュリティー保護されたネットワーク接続を確立します。この接続が確立されると、移行が行われます。移行自体は、複数のフェーズに分解できます。

フェーズ 1: ターゲットホストで動作している Logical Domains Manager との接続後、ソースマシンおよびソースドメインに関する情報がターゲットホストに転送されます。この情報を使用して、移行が可能かどうかを判断する一連のチェックが実行されます。チェックは、ソースドメインの状態によって異なります。たとえば、ソースドメインがアクティブになっている場合と、ドメインがバインドされているかアクティブでない場合では、実行される一連のチェックが異なります。

フェーズ 2: フェーズ 1 のすべてのチェックに合格すると、ソースマシンおよびターゲットマシンで移行の準備が行われます。ソースドメインがアクティブな場合は、この準備に CPU の数を 1 つに縮小する処理と、ドメインの一時停止が含まれます。ターゲットマシンでは、ソースドメインを受け入れるためにドメインが作成されます。

フェーズ 3: アクティブなドメインの場合、次のこのフェーズでは、ドメインのすべての実行時の状態情報がターゲットに転送されます。この情報は、ハイパーバイザから取得されます。ターゲットで、状態情報がハイパーバイザにインストールされます。

フェーズ 4: ハンドオフが行われます。すべての状態情報が転送されたあと、ソースがアクティブな場合はターゲットドメインが実行を再開するときにハンドオフが行われ、ソースドメインが削除されます。この時点で、ターゲットドメインは唯一の動作中のドメインになります。

ソフトウェアの互換性

移行が行われるためには、ソースマシンとターゲットマシンの両方で互換性のあるソフトウェアが動作している必要があります。


注 –

移行機能は、Logical Domains 1.1 ソフトウェアおよび対応するファームウェアではじめてリリースされました。プラットフォームの最新のファームウェアについては、『Logical Domains 1.2 リリースノート』 を参照してください。


移行処理の認証

移行処理は 2 つのマシンで実行されるため、ユーザーはソースホストとターゲットホストの両方で認証される必要があります。特に、ユーザーは、両方のマシンで solaris.ldoms.write 承認を受ける必要があります。

移行に ldm コマンド行インタフェースを使用すると、ターゲットホストでの認証に任意の代替ユーザー名を指定できます。この代替ユーザー名を指定しない場合、移行コマンドを実行するユーザーの名前が使用されます。どちらの場合にも、ターゲットマシンのパスワードの入力を求めるプロンプトが表示されます。

アクティブなドメインの移行

Logical Domains 1.2 ソフトウェアを使用してアクティブなドメインの移行を行うには、ソース論理ドメイン、ソースマシン、およびターゲットマシンに特定の一連の要件および制限が課せられます。以降の節では、各リソースタイプに対するこれらの要件および制限について説明します。


注 –

ソースシステムおよびターゲットシステムの primary ドメインに暗号化装置が割り当てられていると、移行処理が高速になります。


アクティブなドメインの CPU の移行

次に、移行を実行する場合の CPU に対する要件および制限を示します。

アクティブなドメインのメモリーの移行

ターゲットマシン上に、ソースドメインの移行に対応できる十分な空きメモリーが存在する必要があります。さらに、移行が終了するまで次に示すいくつかのプロパティーが維持される必要があります。

ターゲットマシンには、ソースドメインの移行に対応できる十分な空きメモリーが存在する必要があります。また、ターゲットマシンの使用可能メモリーのレイアウトとソースドメインのメモリーのレイアウトに互換性がある必要があります。互換性がないと、移行は失敗します。

特に、ターゲットマシンのメモリーが複数の小さいアドレス範囲に分割されているのに、ソースドメインには単一の大きいアドレス範囲が必要な場合、移行は失敗します。次の例は、この場合について示したものです。ターゲットドメインの 2 つのメモリーブロックに、2G バイトの空きメモリーがあるとします。


# ldm list-devices memory
MEMORY
    PA                   SIZE
    0x108000000          1G
    0x188000000          1G

ソースドメイン ldg-src にも 2G バイトの空きメモリーがありますが、これは単一のメモリーブロックに配置されています。


# ldm list -o memory ldg-src
NAME
ldg-src

MEMORY
    RA               PA               SIZE
    0x8000000        0x208000000      2G

このようなメモリーレイアウトの場合、移行は失敗します。


# ldm migrate-domain ldg-src dt212-239
Target Password:
Unable to bind 2G memory region at real address 0x8000000
Domain Migration of LDom ldg-src failed

アクティブなドメインの物理 I/O デバイスの移行

物理デバイスが関連付けられている仮想デバイスは移行できます。ただし、物理デバイスに直接アクセスする仮想デバイスは移行できません。たとえば、I/O ドメインは移行できません。

アクティブなドメインの仮想 I/O デバイスの移行

ソースドメインが使用するすべての仮想 I/O (VIO) サービスが、ターゲットマシン上で使用可能である必要があります。つまり、次に示す状態になっている必要があります。

アクティブなドメインの NIU ハイブリッド I/O の移行

NIU ハイブリッド I/O リソースを使用するドメインを移行できます。NIU ハイブリッド I/O リソースを指定する制約は、論理ドメインの必須要件ではありません。使用可能な NIU リソースが存在しないマシンにこのようなドメインを移行した場合、制約は維持されますが、この制約が満たされることはありません。

アクティブなドメインの暗号化装置の移行

暗号化装置をバインドした論理ドメインは、複数の VCPU を持つ場合は移行できません。このようなドメインを移行する試みは失敗します。

アクティブなドメインの遅延再構成

ソースホストまたはターゲットホスト上でアクティブな遅延再構成処理が実行されている場合、移行を開始できません。移行の進行中、遅延再構成処理はブロックされます。

ほかのドメインの操作

マシンでの移行が終了するまで、移行中のドメインのマシン記述 (MD) が変更されるような操作はブロックされます。このような操作には、このドメイン自体でのすべての操作のほか、マシン上のほかのドメインでのバインド、停止などの操作も含まれます。

バインドされたドメインまたはアクティブでないドメインの移行

バインドされたドメインまたはアクティブでないドメインは移行時に実行されていないため、アクティブなドメインを移行する場合より制約が少なくなります。

バインドされたドメインを移行するには、ターゲットがソースドメインの CPU、メモリー、および入出力の制約を満たす必要があります。満たしていないと、移行は失敗します。アクティブでないドメインの移行には、このような要件はありません。ただし、バインドが行われた場合、ターゲットはそのドメインの制約を満たす必要があります。満たしていないと、ドメインのバインドは失敗します。

バインドされたドメインまたはアクティブでないドメインの CPU の移行

バインドされたドメインまたはアクティブでないドメインは、異なるタイプのプロセッサが動作しているマシンおよび異なる周波数で動作しているマシン間で移行できます。

ゲストの Solaris OS イメージで、ターゲットマシン上のプロセッサタイプがサポートされている必要があります。

バインドされたドメインまたはアクティブでないドメインの仮想入出力の移行

アクティブでないドメインの場合、仮想入出力 (VIO) 制約に対して実行されるチェックはありません。そのため、VIO サーバーが存在しなくても移行は正常に実行されます。アクティブでないドメインと同様に、そのドメインがバインドされる時点では、VIO サーバーが存在し、使用可能になっている必要があります。

予行演習の実行

migrate-domain サブコマンドに -n オプションを指定すると、移行のチェックが実行されますが、ソースドメインの移行は行われません。満たしていない要件がある場合、エラーとして報告されます。これによって、実際に移行を試行する前に構成エラーを修正できます。


注 –

論理ドメインには動的な性質があるため、予行演習が正常に実行されても移行が失敗したり、逆に予行演習が失敗しても移行が成功する可能性があります。


進行中の移行の監視

移行が進行中の場合、ソースドメインとターゲットドメインでは状態出力での表示が異なります。ldm list コマンドの出力には、移行中のドメインの状態が表示されます。

FLAGS フィールドの 6 列目は、次のいずれかの値になります。

次の出力は、ldg-src が移行のソースドメインであることを示しています。


# ldm list ldg-src
NAME       STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
ldg-src    suspended  -n---s          1     1G       0.0%  2h 7m

次の出力は、ldg-tgt が移行のターゲットドメインであることを示しています。


# ldm list ldg-tgt
NAME       STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
ldg-tgt    bound      -----t  5000    1     1G

長形式の状態出力では、移行に関する詳細情報が表示されます。ソースの場合は、完了した処理の割合とともに、ターゲットホストとターゲットドメイン名が表示されます。同様に、ターゲットの場合は、完了した処理の割合とともに、ソースホストとソースドメイン名が表示されます。


例 8–1 進行中の移行の監視


# ldm list -o status ldg-src
NAME
ldg-src
 
STATUS
    OPERATION    PROGRESS    TARGET 
    migration    17%         t5440-sys-2

進行中の移行の取り消し

移行が開始されたあとに KILL 信号によって ldm コマンドが中断されると、移行は終了します。ターゲットドメインは削除され、ソースドメインがアクティブだった場合は再開されます。ldm コマンドの制御シェルが失われた場合、移行はバックグラウンドで続行されます。

移行処理は、ldm cancel-operation コマンドを使用して、外部から取り消すこともできます。これによって、進行中の移行が終了され、ソースドメインはアクティブなドメインとして再開されます。ldm cancel-operation コマンドはソースシステムから開始するようにしてください。あるシステム上で実行される移行関連のコマンドは、そのシステムから開始された移行処理に影響を及ぼします。システムがターゲットシステムの場合、移行処理は制御できません。


注 –

移行が開始されたあとに ldm(1M) プロセスを中断しても、移行に影響を与えるのはソースマシンおよびターゲットマシン上の Logical Domains Manager デーモン (ldmd) であるため、処理は中断されません。ldm プロセスは、戻る前に、移行が完了したことを示す ldmd からの信号を待機します。


移行の失敗からの回復

ソースからターゲットへのすべての実行時の状態情報の送信が完了してから、ドメインが再開されたことをターゲットが認識する前にネットワーク接続が切断された場合、移行処理が終了され、ソースがエラー状態になります。これは、移行が正常に完了したかどうかを判断するためにユーザーによる介入が必要であることを示しています。このような状況では、次の手順を実行します。

移行の例

例 8–2 に、ldg1 というドメインを t5440-sys-2 というマシンに移行する方法を示します。


例 8–2 ゲストドメインの移行


# ldm migrate-domain ldg1 t5440-sys-2
Target Password:

例 8–3 に示すように、移行処理の一環としてドメインの名前を変更できます。この例では、ldg-src がソースドメインで、移行処理の一環として、ターゲットマシン (t5440-sys-2) 上でこのドメインの名前を ldg-tgt に変更しています。また、ターゲットマシンでのユーザー名 (root) を明示的に指定しています。


例 8–3 ゲストドメインの移行と名前の変更


# ldm migrate ldg-src root@t5440-sys-2:ldg-tgt
Target Password:

例 8–4 に、ターゲットドメインで移行がサポートされていない場合、すなわち version 1.2 より前のバージョンの LDoms を実行している場合に表示される失敗メッセージの例を示します。


例 8–4 移行の失敗メッセージ


# ldm migrate ldg1 t5440-sys-2
Target Password:
Failed to establish connection with ldmd(1m) on target: t5440-sys-2
Check that the 'ldmd' service is enabled on the target machine and
that the version supports Domain Migration. Check that the 'xmpp_enabled'
and 'incoming_migration_enabled' properties of the 'ldmd' service on
the target machine are set to 'true' using svccfg(1M).

例 8–5 に、移行が進行中のターゲットドメインの状態を取得する方法を示します。この例では、ソースマシンは t5440-sys-1 です。


例 8–5 ターゲットドメインの状態の取得


# ldm list -o status ldg-tgt
NAME
ldg-tgt
 
STATUS
    OPERATION    PROGRESS    SOURCE
    migration    55%         t5440-sys-1

例 8–6 に、移行が進行中のソースドメインの解析可能な状態を取得する方法を示します。この例では、ターゲットマシンは t5440-sys-2 です。


例 8–6 ソースドメインの解析可能な状態の取得


# ldm list -o status -p ldg-src
VERSION 1.3
DOMAIN|name=ldg-src|
STATUS
|op=migration|progress=42|error=no|target=t5440-sys-2