動的再構成の自動化 (Automated Dynamic Reconfiguration: ADR) によって、動的再構成 (Dynamic Reconfiguration: DR) 操作を自動化できます。ADR には、システムボードの接続、移動、切り離し、およびボードの状態情報の取得のためのコマンドがあります。これらのコマンドを対話方式、またはシェルスクリプトで実行できます。
この章では、ADR コマンド、および ADR と DR の相互作用について説明します。DR の接続および切り離し操作の詳細は、『Sun Enterprise 10000 Dynamic Reconfiguration ユーザーマニュアル』を参照してください。
ADR を実行するには、DR デーモンがホストのドメインで実行され、ホストのドメインが構成されている必要があります。ドメインでは、Solaris 2.5.1、2.6、7、または 8 オペレーティング環境を動作させることができます。
衝突が生じないように DR 操作と ADR 操作を調整する必要があります。ADR スクリプトは、ボードの特定のサブセットが一定の期間このスクリプトの独占的な制御下にあるという前提で作成されます。ただし、ADR には、DR 操作によってその特定のサブセットが変更されるのを防止する機能はありません。
たとえば、ADR スクリプトが毎夜 12 時に transact というドメインからシステムボード 4 を simulate というドメインに移動し、午前 6 時に元に戻すとします。このスクリプトは、以下のことを前提にしています。
ボード 4 が存在し、電源が入っていること。
夜 12 時にボード 4 が transact ドメインに存在すること。
午前 6 時にボード 4 が simulate ドメインに存在すること。
この例では、オペレータがボード 4 の電源を切断したり、ボード 4 を第 3 のドメインに移動したりすると、この前提が成り立たなくなります。
入出力デバイスのあるシステムボードを接続または切り離すときには注意が必要です。入出力デバイスのあるボードを切り離す前に、そのボードのすべてのデバイスを閉じ、すべてのファイルシステムのマウントを解除する必要があります。これらの処置と ADR の操作を調整する必要があります。また、入出力デバイスのあるボードの接続または切り離しの後は、OpenBoot Prom (OBP) デバイスツリーを再構成する必要があります。
Solaris 8 リリースでは、手動の再構成は不要になりました。新しいデバイスドライバインタフェース (Device Driver Interface: DDI) サブシステムの devfsadm がすべての再構成タスクを実行します。
OBP デバイスツリーを再構成するには、該当するドメインにスーパーユーザーとしてログインし、以下のコマンドシーケンスを入力する必要があります。
# drvconfig; devlinks; disks; ports; tapes; |
入出力デバイスのあるボードを先にドメインに接続する場合は、OS が /devices 階層構造にその入出力デバイスへのパスを設定するようにデバイスツリーを再構成する必要があります。それ以降そのボードを切り離す場合は再構成は不要ですが、再構成を実行しない場合には、存在しないデバイスへの参照が /devices ディレクトリに残ります。
入出力デバイスのあるボードをドメインから一時的に切り離し、入出力デバイスのある別のボードを接続する前にそのボードを再び接続する必要がある場合は、再構成は不要で、実行する必要もありません。この場合、ボードデバイスへのデバイスパスは変更されません。ただし、最初のボードを切り離した後に、入出力デバイスのある別のボードを接続してから最初のボードを再び接続する場合は、最初のボードのデバイスへのパスは変更されるので、再構成が必要になります。
ADR には、以下のコマンドがあります。
addboard は、ボードをドメインに接続します。
deleteboard は、ボードをドメインから削除します。
moveboard は、ボードをドメインから切り離し、別のドメインに接続します。
showusage は、ボードおよび DR の情報を表示します。
詳細は、マニュアルページの addboard(1M)、deleteboard(1M)、moveboard(1M)、および showusage(1M) を参照してください。
addboard(1M) コマンドは、指定されたボードを指定されたドメインに接続しようとします。以下の表に addboard(1M) コマンドのオプションを示します。
オプション |
指定対象 |
---|---|
-b |
追加するシステムボードの番号 |
-d |
ボードの接続先のドメイン名 |
-q |
省略 (quiet) モード (メッセージを標準出力に出力しない) |
-r |
接続が失敗した場合に実行する再試行の回数 |
-t |
再試行までの待ち時間 (秒単位) |
詳細は、マニュアルページの addboard(1M) を参照してください。
addboard(1M) コマンドの以下の例では、システムボード 2 を domain_name で指定されたドメインに接続します。必要に応じて、10 分の待ち時間で 2 回の再試行が実行されます。
ssp% addboard -b 2 -d domain_name -r 2 -t 600 |
deleteboard(1M) コマンドは、指定されたボードを、現在そのボードが存在するドメインから切り離そうとします。以下の表に deleteboard(1M) コマンドのオプションを示します。
オプション |
指定対象 |
---|---|
-b |
削除するシステムボードの番号 |
-q |
省略 (quiet) モード (情報メッセージを標準出力に出力しない) |
-r |
切り離しが失敗した場合に実行される再試行の回数 |
-t |
再試行までの待ち時間 (秒単位) |
詳細は、マニュアルページの deleteboard(1M) を参照してください。
deleteboard(1M) コマンドの以下の例では、システムボード 2 を現在のドメインから切り離します。必要に応じて、15 分の待ち時間で 2 回の再試行が実行されます。
ssp% deleteboard -b 2 -r 2 -t 900 |
moveboard(1M) コマンドは、ボードを、現在そのボードが存在するドメインから切り離し、指定されたドメインに接続します。以下の表に moveboard(1M) コマンドのオプションを示します。
オプション |
指定対象 |
---|---|
-b |
移動するシステムボードの番号 |
-d |
ボードの接続先のドメイン名 |
-q |
省略 (quiet) モード (メッセージを標準出力に出力しない) |
-r |
移動が失敗した場合に実行する再試行の回数 |
-t |
再試行までの待ち時間 (秒単位) |
詳細は、マニュアルページの moveboard(1M) を参照してください。
moveboard(1M) コマンドの以下の例では、ボード 5 を現在のドメインから domain_name で指定されたドメインに移動します。必要に応じて、15 分の待ち時間で 2 回の再試行が実行されます。
ssp% moveboard -b 5 domain_name -r 2 -t 900 |
showusage(1M) コマンドは、DR およびボードリソースの情報を表示します。以下の表に showusage(1M) コマンドのオプションを示します。
オプション |
指定対象 |
---|---|
-b |
状態情報を入手するシステムボードの番号 |
-r |
表示する DR およびボードリソースの種類 |
-s |
ボードの状態が終了ステータスとして報告され、ドメイン名が標準出力に出力されます |
showusage(1M) コマンドの詳細は、マニュアルページの showusage(1M) を参照してください。
showusage(1M) コマンドの以下の例では、C シェルスクリプトで -s オプションを指定した showusage(1M) コマンドを使用して、接続可能なボードの指定されたプールからボードを探し、xf7-b4 というドメインに接続する方法を示しています。
set pool = ( 4 5 6 7 14 15 ) foreach board ( $pool ) showusage -b $board -s >! /dev/null if ( $status == 3 ) then addboard -b $board xf7-b4 exit(0) endif end |
SSP 3.3 では、/opt/SUNWssp/adr_examples ディレクトリにスクリプトの例が含まれています。このディレクトリには、このスクリプトの使い方を説明する README ファイルも含まれています。