カーネルゾーンのブート可能な各デバイスには、ホストデータとして知られる状態情報が含まれています。カーネルゾーンのホストデータは、次のようなカーネルゾーンの状態情報をモニターします。
ゾーンの使用
suspend リソースタイプの構成で説明されている、ゾーンの一時停止
カーネルゾーンクロックと大域ゾーンクロックの間の時間のオフセット
OpenBoot 変数 (SPARC のみ)
カーネルゾーンが構成またはブートされた場合、ホストデータが読み取られて、カーネルゾーンのブートストレージがほかのシステムで使用中かどうかが判別されます。ブートストレージが別のシステムで使用中の場合、カーネルゾーンは unavailable 状態になり、ブートストレージを使用しているシステムを示すエラーメッセージが表示されます。例:
global$ pfbash zoneadm -z kzone1 attach zone 'kzone1': error: ERROR: zone kzone1 is in use by host with hostid 848611d4 zone 'kzone1': error: last known state: installed zone 'kzone1': error: hostname: global2 zone 'kzone1': error: boot environment name: solaris-1 zone 'kzone1': error: boot environment uuid: 69ed2e6a-e25a-6d36-e022-ed7261ed8899 zone 'kzone1': error: last update time: Sun Apr 13 20:08:13 2014 zone 'kzone1': error: To fix, detach the zone from the other host then attach it to this host zone 'kzone1': error: If the zone is not active on another host, attach it with zone 'kzone1': error: zoneadm -z kzone1 attach -x force-takeover
ブートストレージが別のシステムで使用されていない場合、zoneadm attach -x force-takeover コマンドを使用してカーネルゾーンを修復できます。
![]() | 注意 - ホストデータの引き継ぎまたは再初期化を強制すると、ゾーンがほかのシステムで使用中かどうかの検出が不可能になります。同じストレージを参照するゾーンの複数インスタンスを実行すると、ゾーンのファイルシステムの修復不能な破壊につながります。 |
カーネルゾーンのホストデータは、カーネルゾーン suspend イメージに使用されるものと同じ暗号化鍵を使用する、高度な暗号化標準の AES-128-CCM で暗号化および認証されます。ゾーンの暗号化鍵にアクセスできない場合、ホストデータと一時停止イメージすべてを読み取ることができません。そのような状況では、ゾーンを準備またはブートするすべての試行によって、ゾーンが unavailable 状態になります。ゾーンの暗号化鍵の回復が不可能な場合は、次のコマンドを実行して新しい暗号化鍵とホストデータを生成します。
$ pfbash zoneadm -z kernel-zone attach -x initialize-hostdata
ブートするには、カーネルゾーンで正しい鍵ソースが定義されている必要があります。zoneadm migrate で移行を行うと、ターゲットホストでまだゾーン構成が定義されていなかった場合、ソースホストからゾーン構成と鍵ソースのデータがコピーされます。
移行の前にターゲットホストでゾーン構成と鍵ソースを作成する必要がある場合は、ソースホストで zonecfg export コマンドを使用してファイルに情報をエクスポートし、ターゲットホストでその情報を使用して正しい鍵を含む構成を作成します。たとえば、global1 から global2 に移行するゾーンの構成を作成するには、global1 で構成をネットワークパス上のファイルにエクスポートし、global2 でそのファイルから構成を作成します。
global1$ zonecfg -z kzone1 export -f /net/example/path/kzone1.cfg global2$ zonecfg -z kzone1 -f /net/example/path/kzone1.cfg
ターゲットホスト上のゾーンの既存の構成に対する鍵が正しくない場合、ゾーンへの接続やゾーンのブートを試みたときに、次のメッセージが表示されます。
zone 'kzone1': error: Encryption key is incorrect. See solaris-kz(7) for configuration migration zone 'kzone1': procedure or update /etc/zones/keys/kzone1.
鍵が不正になる可能性があるのは、ゾーンを再インストールした場合や、鍵の再初期化を行う -x initialize-hostdata を指定してゾーンに接続した場合などです。
この問題を修正するには、ターゲットホストのゾーン構成を削除して構成をエクスポートし直すか、または構成を事前に作成しないでゾーンをターゲットホストに移行します。