この章では、ここまでの章では説明していない Logical Domains ソフトウェアの使用に関する情報とタスクについて説明します。
この章の内容は次のとおりです。
次の節では、Logical Domains Manager CLI で名前を入力する場合の制限について説明します。
最初の文字は、英字、数字、またはスラッシュ (/) である必要があります。
以降の文字は、英字、数字、または句読点である必要があります。
名前は、英字、数字、または句読点を含む必要があります。
サービスプロセッサ (SP) に格納されている構成に割り当てる論理ドメイン構成名 (config-name) は、64 文字以下である必要があります。
論理ドメイン名 (ldom)、サービス名 (vswitch-name、service-name、vdpcs-service-name、および vcc-name)、仮想ネットワーク名 (if-name)、仮想ディスク名 (disk-name) など、その他の名前は、次の形式である必要があります。
最初の文字は、英字または数字である必要があります。
以降の文字は、英字、数字、または「-_+#.:;~()」のいずれかの文字である必要があります。
vntsd(1M) の SMF マニフェストで listen_addr プロパティーが制御ドメインの IP アドレスに設定されている場合は、ネットワークを介してゲストコンソールに接続できます。次に例を示します。
$ telnet host-name 5001 |
コンソールへのネットワークアクセスを有効にすることには、セキュリティー上の問題があります。すべてのユーザーがコンソールに接続できるようになるため、デフォルトではこの設定は無効になっています。
サービス管理機能マニフェストは、サービスが記述された XML ファイルです。SMF マニフェストの作成については、「Solaris 10 System Administrator Collection」を参照してください。
コンソールを使用してゲストドメインの英語版以外の OS にアクセスするには、コンソールの端末が、その OS が必要とするロケールになっている必要があります。
仮想ネットワーク端末サーバーデーモン vntsd(1M) を使用すると、1 つの TCP ポートを使用して複数のドメインのコンソールにアクセスできるようになります。Logical Domains Manager は、ドメインの作成時に、そのドメインのコンソール用の新しいデフォルトグループを作成することにより、各コンソールに一意の TCP ポートを割り当てます。TCP ポートは、コンソール自体ではなくコンソールグループに割り当てられます。コンソールは、set-vcons サブコマンドを使用して既存のグループにバインドできます。
ドメインのコンソールを 1 つのグループにバインドします。
次の例では、3 つの異なるドメイン (ldg1、ldg2、ldg3) のコンソールを同じコンソールグループ (group1) にバインドします。
primary# ldm set-vcons group=group1 service=primary-vcc0 ldg1 primary# ldm set-vcons group=group1 service=primary-vcc0 ldg2 primary# ldm set-vcons group=group1 service=primary-vcc0 ldg3 |
関連付けられた TCP ポート (この例ではポート 5000 の localhost) に接続します。
# telnet localhost 5000 primary-vnts-group1: h, l, c{id}, n{name}, q: |
いずれかのドメインコンソールの選択を求めるプロンプトが表示されます。
l (list) を選択して、グループ内のドメインを一覧表示します。
primary-vnts-group1: h, l, c{id}, n{name}, q: l DOMAIN ID DOMAIN NAME DOMAIN STATE 0 ldg1 online 1 ldg2 online 2 ldg3 online |
コンソールを別のグループまたは vcc インスタンスに再度割り当てるには、ドメインがバインドされていない状態、つまり、アクティブでない状態である必要があります。vntsd を管理するための SMF の構成と使用法、およびコンソールグループの使用法については、Solaris 10 OS の vntsd(1M) マニュアルページを参照してください。
ldm stop-domain コマンドは、ドメインが完全に停止する前にタイムアウトする可能性があります。このような状況が発生すると、Logical Domains Manager によって次のようなエラーが返されます。
LDom ldg8 stop notification failed |
しかし、ドメインが停止要求をまだ処理している可能性があります。ldm list-domain コマンドを使用して、ドメインの状態を確認します。次に例を示します。
# ldm list-domain ldg8 NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME ldg8 active s---- 5000 22 3328M 0.3% 1d 14h 31m |
前述のリストには、ドメインがアクティブと表示されていますが、s フラグはドメインが停止処理中であることを示しています。これは、一時的な状態であるはずです。
次の例は、ドメインがすでに停止していることを示しています。
# ldm list-domain ldg8 NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME ldg8 bound ----- 5000 22 3328M |
この節では、Logical Domains Manager によって作成された構成がインスタンス化されるときに発生する、Solaris OS を使用した場合の動作の変更について説明します。
Solaris OS を起動したあとに OpenBoot ファームウェアを使用できません。これは、OpenBoot ファームウェアがメモリーから削除されるためです。
Solaris OS から ok プロンプトを表示するには、ドメインを停止する必要があります。Solaris OS の halt コマンドを使用すると、ドメインを停止することができます。
LDoms ソフトウェアを実行しているシステムでサーバーの電源の再投入を必要とする保守作業を行うときは常に、最初に現在の論理ドメイン構成を SP に保存する必要があります。
電源管理されているドメインのアクティブな CPU の動作状態を、psradm(1M) コマンドを使用して変更しようとしないでください。
この節で説明する動作は、次の処理を行なった場合に発生します。
入力デバイスが keyboard に設定されているときに、L1-A キーシーケンスを押した場合。
仮想コンソールが telnet プロンプトにあるときに、send break コマンドを入力した場合。
これらのタイプのブレーク後に次のプロンプトが表示されます。
c)ontinue, s)ync, r)eset, h)alt? |
これらのタイプのブレーク後のシステムの動作を表す文字を入力します。
次の表に、制御 (primary) ドメインの停止時または再起動時に予想される動作を示します。
表 11–1 制御 (primary) ドメインの停止または再起動時に予想される動作
コマンド |
他のドメインが構成されているか |
動作 |
---|---|---|
halt |
未構成 |
ホストの電源が切断され、SP で電源が投入されるまで切断されたままです。 |
|
構成 |
変数 auto-boot? が true である場合は、ソフトリセットが行われて起動します。変数 auto-boot? が false である場合は、ソフトリセットが行われて ok プロンプトで停止します。 |
reboot |
未構成 |
ホストを再起動し、電源は切断されません。 |
|
構成 |
ホストを再起動し、電源は切断されません。 |
shutdown -i 5 |
未構成 |
ホストの電源が切断され、SP で電源が投入されるまで切断されたままです。 |
|
構成 |
ソフトリセットが行われて再起動します。 |
この節では、Integrated Lights Out Manager (ILOM) サービスプロセッサ (SP) を Logical Domains Manager とともに使用する場合の注意事項について説明します。ILOM ソフトウェアの使用については、使用しているプラットフォーム固有のドキュメントを参照してください。たとえば、Sun SPARC Enterprise T5120 および T5220 サーバーの場合は、『Sun SPARC Enterprise T5120 and T5220 Servers Topic Set』 を参照してください。
既存の ILOM コマンドに、オプションを 1 つ追加できます。
-> set /HOST/bootmode config=config-name |
config=config-name オプションを使用すると、次回の電源投入時の構成を出荷時構成 (factory-default) などの別の構成に設定できます。
ホストの電源が投入されているか切断されているかにかかわらず、このコマンドを実行できます。次回のホストリセットまたは電源投入時に有効になります。
次のコマンドを実行して、次回の電源投入時に論理ドメインの構成をデフォルトの出荷時構成にリセットします。
-> set /HOST/bootmode config=factory-default |
また、ldm add-config コマンドを使用して Logical Domains Manager で作成され、サービスプロセッサ (SP) に保存されているほかの構成を選択することもできます。Logical Domains Manager の ldm add-config コマンドで指定する名前は、ILOM の bootmode コマンドで構成を選択する際に使用できます。たとえば、ldm-config1 という名前の構成が保存されているとすると、次のように指定します。
-> set /HOST/bootmode config=ldm-config1 |
この場合、システムの電源を切ってすぐに入れ直し、新しい設定をロードする必要があります。
ldm add-config コマンドの詳細は、ldm(1M) マニュアルページを参照してください。
Logical Domains Manager を使用して、ドメイン間の依存関係を確立できます。依存する 1 つ以上のドメインを持つドメインは、マスタードメインと呼ばれます。別のドメインに依存するドメインは、スレーブドメインと呼ばれます。
master プロパティーを設定することによって、各スレーブドメインに最大 4 つのマスタードメインを指定できます。たとえば、次に示すコンマで区切られたリストでは、pine スレーブドメインに 4 つのマスタードメインを指定しています。
# ldm add-domain master=apple,lemon,orange,peach pine |
各マスタードメインには、マスタードメインに障害が発生した場合のスレーブドメインの動作を指定できます。たとえば、マスタードメインに障害が発生した場合、そのスレーブドメインでパニックを発生させる必要があることがあります。1 つのスレーブドメインに複数のマスタードメインが指定されている場合、最初のマスタードメインに障害が発生すると、そのすべてのスレーブドメインに対して定義済みの障害ポリシーがトリガーされます。
複数のマスタードメインに同時に障害が発生した場合、指定された障害ポリシーのうち 1 つのみが、影響を受けるすべてのスレーブドメインに対して実施されます。たとえば、障害が発生したマスタードメインに stop および panic という障害ポリシーが定義されている場合、すべてのスレーブドメインが停止するか、パニックが発生します。
マスタードメインの障害ポリシーは、failure-policy プロパティーに次のいずれかの値を設定することによって制御できます。
ignore は、マスタードメインに障害が発生した場合、すべてのスレーブドメインを無視します。
panic は、マスタードメインに障害が発生した場合、すべてのスレーブドメインにパニックを発生させます。
reset は、マスタードメインに障害が発生した場合、すべてのスレーブドメインをリセットします。
stop は、マスタードメインに障害が発生した場合、すべてのスレーブドメインを停止します。
この例では、マスタードメインの障害ポリシーが次のように指定されています。
# ldm set-domain failure-policy=ignore apple # ldm set-domain failure-policy=panic lemon # ldm set-domain failure-policy=reset orange # ldm set-domain failure-policy=stop peach |
このメカニズムを使用して、ドメイン間の明示的な依存関係を作成できます。たとえば、ゲストドメインが、サービスドメインに暗黙に依存し、その仮想デバイスを提供しているとします。ゲストドメインが依存しているサービスドメインが実行されていない場合、ゲストドメインの入出力はブロックされます。ゲストドメインをサービスドメインのスレーブドメインとして定義することによって、サービスドメインが停止した場合のゲストドメインの動作を指定できます。このような依存関係が確立されていない場合、ゲストドメインはサービスドメインが使用可能になるのを待機します。
Logical Domains Manager では、依存サイクルが生じるようなドメイン関係を作成することはできません。詳細は、「依存サイクル」 を参照してください。
ドメインの依存関係の XML の例は、例 12–6 を参照してください。
次の例は、ドメインの依存関係を構成する方法を示します。
最初のコマンドは、twizzle というマスタードメインを作成します。このコマンドは、failure-policy=reset を使用して、twizzle ドメインに障害が発生した場合にスレーブドメインをリセットするように指定します。2 つめのコマンドは、primary というマスタードメインに変更を加えます。このコマンドは、failure-policy=panic を使用して、primary ドメインに障害が発生した場合にスレーブドメインにパニックを発生させるように指定します。3 つめのコマンドは、2 つのマスタードメイン twizzle と primary に依存する、chocktaw というスレーブドメインを作成します。このスレーブドメインは、master=twizzle,primary を使用して、マスタードメインを指定します。twizzle または primary のいずれかのドメインに障害が発生した場合、chocktaw ドメインはリセットされるか、パニックが発生します。最初に障害が発生したマスタードメインによって、スレーブドメインの動作が決定されます。
# ldm add-domain failure-policy=reset twizzle # ldm set-domain failure-policy=panic primary # ldm add-domain master=twizzle,primary chocktaw |
この例は、ldm set-domain コマンドを使用して orange ドメインに変更を加え、primary をマスタードメインとして割り当てます。2 つめのコマンドは、ldm set-domain コマンドを使用して、orange および primary を tangerine ドメインのマスタードメインとして割り当てます。3 つめのコマンドは、これらすべてのドメインに関する情報を一覧表示します。
# ldm set-domain master=primary orange # ldm set-domain master=orange,primary tangerine # ldm list -o domain NAME STATE FLAGS UTIL primary active -n-cv- 0.2% SOFTSTATE Solaris running HOSTID 0x83d8b31c CONTROL failure-policy=ignore DEPENDENCY master= ------------------------------------------------------------------------------ NAME STATE FLAGS UTIL orange bound ------ HOSTID 0x84fb28ef CONTROL failure-policy=stop DEPENDENCY master=primary VARIABLES test_var=Aloha ------------------------------------------------------------------------------ NAME STATE FLAGS UTIL tangerine bound ------ HOSTID 0x84f948e9 CONTROL failure-policy=ignore DEPENDENCY master=orange,primary VARIABLES test_var=A hui hou |
次に、解析可能な出力を使用した一覧表示の例を示します。
# ldm list -o domain -p |
Logical Domains Manager では、依存サイクルが生じるようなドメイン関係を作成することはできません。依存サイクルとは、スレーブドメインが自身に依存したり、マスタードメインがそのスレーブドメインのいずれかに依存したりすることになる、2 つ以上のドメイン間の関係です。
Logical Domains Manager は、依存関係を追加する前に、依存サイクルが存在しないかを判断します。Logical Domains Manager は、まずスレーブドメインについて、マスター配列によって指定されたすべてのパスを最初から最後まで検索します。途中で依存サイクルが見つかると、エラーとして報告されます。
次の例は、依存サイクルがどのように作成されるかを示します。最初のコマンドは、mohawk というスレーブドメインを作成します。このドメインは、マスタードメインに primary を指定します。その結果、mohawk は、次のような依存関係の連鎖で primary に依存します。
2 つめのコマンドは、primary というスレーブドメインを作成します。このドメインは、マスタードメインに counter を指定します。その結果、次のような依存関係の連鎖で、mohawk が primary に依存し、primary が counter に依存します。
3 つめのコマンドは、counter ドメインと mohawk ドメインとの間に依存関係の作成を試みます。これによって、次のような依存サイクルが生成されます。
次のエラーメッセージが表示されて ldm set-domain コマンドが失敗します。
# ldm add-domain master=primary mohawk # ldm set-domain master=counter primary # ldm set-domain master=mohawk counter Dependency cycle detected: LDom "counter" indicates "primary" as its master |
この節では、Solaris の障害管理アーキテクチャー (FMA) によって報告される情報と、障害の発生が示されている論理ドメインリソースを関係付ける方法について説明します。
FMA では、物理 CPU 番号に関する CPU エラーと、物理メモリーアドレスに関するメモリーエラーを報告します。
エラーが発生した論理ドメインと、そのドメイン内の対応する仮想 CPU 番号または実メモリーアドレスを確認する場合は、マッピングを実行する必要があります。
ドメインとそのドメイン内の仮想 CPU 番号は、特定の物理 CPU 番号に対応しており、次の手順を使用して確認できます。
すべてのドメインの解析可能な長形式のリストを生成します。
primary# ldm list -l -p |
リストの VCPU セクションで、物理 CPU 番号に等しい pid フィールドを持つエントリを探します。
ドメインとそのドメイン内の実メモリーアドレスは、特定の物理メモリーアドレス (PA) に対応しており、次のように確認できます。
すべてのドメインの解析可能な長形式のリストを生成します。
primary# ldm list -l -p |
リストの MEMORY セクションの行を探します。この場合、PA は pa から (pa + size - 1) の包括範囲内にあります。つまり、pa <= PA < (pa + size - 1) です。
ここでの pa と size は、その行の対応するフィールドの値を指します。
例 11–1 に示すような論理ドメインの構成があり、物理 CPU 番号 5 に対応するドメインと仮想 CPU、および物理アドレス 0x7e816000 に対応するドメインと実アドレスを確認すると仮定します。
リストで pid フィールドが 5 である VCPU エントリを探すと、論理ドメイン ldg1 の下に次のエントリが見つかります。
|vid=1|pid=5|util=29|strand=100 |
したがって、物理 CPU 番号 5 はドメイン ldg1 に存在し、そのドメイン内には仮想 CPU 番号 1 があります。
リストの MEMORY エントリを探すと、ドメイン ldg2 の下に次のエントリが見つかります。
ra=0x8000000|pa=0x78000000|size=1073741824 |
この場合、0x78000000 <= 0x7e816000 <= (0x78000000 + 1073741824 - 1)、つまり、pa <= PA <= (pa + size - 1) となります。したがって、PA はドメイン ldg2 にあり、対応する実アドレスは 0x8000000 + (0x7e816000 - 0x78000000) = 0xe816000 です。
primary# ldm list -l -p VERSION 1.0 DOMAIN|name=primary|state=active|flags=normal,control,vio-service|cons=SP|ncpu=4|mem=1073741824|util=0.6| uptime=64801|softstate=Solaris running VCPU |vid=0|pid=0|util=0.9|strand=100 |vid=1|pid=1|util=0.5|strand=100 |vid=2|pid=2|util=0.6|strand=100 |vid=3|pid=3|util=0.6|strand=100 MEMORY |ra=0x8000000|pa=0x8000000|size=1073741824 IO |dev=pci@780|alias=bus_a |dev=pci@7c0|alias=bus_b ... DOMAIN|name=ldg1|state=active|flags=normal|cons=5000|ncpu=2|mem=805306368|util=29|uptime=903| softstate=Solaris running VCPU |vid=0|pid=4|util=29|strand=100 |vid=1|pid=5|util=29|strand=100 MEMORY |ra=0x8000000|pa=0x48000000|size=805306368 ... DOMAIN|name=ldg2|state=active|flags=normal|cons=5001|ncpu=3|mem=1073741824|util=35|uptime=775| softstate=Solaris running VCPU |vid=0|pid=6|util=35|strand=100 |vid=1|pid=7|util=34|strand=100 |vid=2|pid=8|util=35|strand=100 MEMORY |ra=0x8000000|pa=0x78000000|size=1073741824 ... |