HP OpenVMS OpenVMS Cluster システム
7.8.2 コマンドの例 | |
以下のコマンドは,クラスタ単位の汎用キュー SYS$PRINT を初期化し,起動します。
$ INITIALIZE/QUEUE/GENERIC=(JUPITR_LPA0,SATURN_LPA0,URANUS_LPA0)/START SYS$PRINT
|
SYS$PRINT キューに登録されたジョブは,割り当てられているプリント・キューのうち,使用可能な任意のキューに格納されます。したがって,この例では,SYS$PRINT キューに登録される JUPITR からのプリント・ジョブは,JUPITR_LPA0, SATURN_LPA0,URANUS_LPA0 のいずれにでも登録することができます。
一般に,実行バッチ・キューは,スタンドアロン・コンピュータの場合と同じ手順で,OpenVMS Cluster の各コンピュータで設定します。この方法の詳細については,『OpenVMS システム管理者マニュアル』を参照してください。
7.9.1 操作を開始する前に | |
バッチ・キューを設定する前に,クラスタにとってどのキュー構成が最適であるかを判断しなければなりません。システム管理者はクラスタでバッチ・ジョブを効率よく処理できるようにバッチ・キューを設定しなければなりません。たとえば,以下の操作が必要です。
- 各コンピュータで実行する処理の種類を判断します。
- これらの処理ニーズに適合するように,ローカル・バッチ・キューを設定します。
- クラスタ全体でバッチ・ジョブ処理を分散するために,クラスタ単位の汎用キューを設定するかどうかを判断します。
- スタートアップを単純化するために,自動起動キューを使用するかどうかを判断します。
ニーズに最適な方式を判断した後,キューを設定するためにコマンド・プロシージャを作成できます。
図 7-4 は,JUPITR,SATURN, URANUS というコンピュータで構成されるクラスタのバッチ・キューの構成を示しています。
図 7-4 バッチ・キューの構成例
7.9.2 バッチ・コマンドの形式 | |
固有の名前を指定してバッチ・キューを作成するには,以下の形式で DCL コマンド INITIALIZE/QUEUE/BATCH を指定します。
$ INITIALIZE/QUEUE/BATCH/ON=node::[/START][/NAME_OF_MANAGER=name-of-manager] queue-name
|
/ON
|
バッチ・キューが実行されるコンピュータを指定する。
|
/START
|
キューを起動する。
|
/NAME_OF_MANAGER
|
複数のキュー・マネージャを実行している場合は,キュー・マネージャの名前を指定する。
|
7.9.3 自動起動コマンドの形式 | |
自動起動バッチ・キューは,DCL コマンド INITIALIZE/QUEUE/BATCH を使用して初期化および起動できます。以下のコマンド形式を使用します。
$ INITIALIZE/QUEUE/BATCH/AUTOSTART_ON=node::queue-name
|
/AUTOSTART_ON 修飾子を使用する場合は, INITIALIZE/QUEUE コマンドに /START 修飾子を指定するか,または START/QUEUE コマンドを入力することにより,自動起動できるようにキューを最初に起動しておかなければなりません。しかし,キューが動作できるノードで ENABLE AUTOSTART/QUEUES コマンドが入力されるまで,キューでジョブの処理を開始することはできません。
規則: 汎用キューを自動起動キューとして設定することはできません。/ON と /AUTOSTART_ON をどちらも指定することはできません。
7.9.4 例 | |
以下のコマンドは, 図 7-4 に示した JUPITR,SATURN,URANUS に対してローカル・バッチ・キューを割り当てます。
$ INITIALIZE/QUEUE/BATCH/ON=JUPITR::/START/NAME_OF_MANAGER=BATCH_QUEUE JUPITR_BATCH
$ INITIALIZE/QUEUE/BATCH/ON=SATURN::/START/NAME_OF_MANAGER=BATCH_QUEUE SATURN_BATCH
$ INITIALIZE/QUEUE/BATCH/ON=URANUS::/START/NAME_OF_MANAGER=BATCH_QUEUE URANUS_BATCH
|
OpenVMS Cluster の各コンピュータのバッチ・ジョブは,デフォルトで SYS$BATCH キューに登録されるため,クラスタ全体でバッチ・ジョブの処理を分散するクラスタ単位の汎用バッチ・キューとしてこのキューを設定するために,論理名を定義することを考慮しなければなりません ( 例 7-2 を参照)。しかし,このような論理名の定義が必要なのは,共通環境クラスタを使用している場合だけです。
OpenVMS Cluster システムでは,コンピュータ間でバッチ処理を分散して,処理リソースの使用のバランスをとることができます。この作業負荷の分散は,ローカル・バッチ・キューを 1 つ以上のクラスタ単位の汎用バッチ・キューに割り当てることで行うことができます。これらの汎用バッチ・キューは,割り当てられているバッチ・キューのうち,使用可能なキューにバッチ・ジョブを格納することにより,クラスタ全体でバッチ処理を制御します。クラスタ単位の汎用バッチ・キューは,
例 7-2 に示す方法で作成できます。
クラスタ単位の汎用バッチ・キューは,1 回だけ初期化して起動する必要があります。これらの操作を最も効率よく実行するには, OpenVMS Cluster の各コンピュータで実行される共通のコマンド・プロシージャを作成します (
例 7-2 を参照)。
7.10.1 構成例 | |
図 7-5 では, OpenVMS Cluster の各コンピュータのバッチ・キューが SYS$BATCH というクラスタ単位の汎用バッチ・キューに割り当てられています。ユーザは特定のキュー (たとえば JUPITR_BATCH や SATURN_BATCH) にジョブを登録することができ,特にキューを指定する必要がない場合は,デフォルト設定でクラスタ単位の汎用キュー SYS$BATCH に登録することができます。汎用キューは,クラスタ内で割り当てられているキューのうち,使用可能なキューにジョブを登録します。
割り当てられているキューを 2 つ以上使用可能な場合は,割り当てられているすべてのキューの中で,比率 (実行中のジョブ/ジョブの上限) が最低であるキューがオペレーティング・システムによって選択されます。
図 7-5 クラスタ単位の汎用バッチ・キューの構成
通常,ローカル・バッチ実行キューは,スタートアップ時にバッチ・ジョブを実行してレイヤード製品を起動するために使用されます。この理由から,
例 7-1 のコマンド・プロシージャに示すように,これらのキューは ENABLE AUTOSTART コマンドが実行される前に起動しなければなりません。
7.11.1 スタートアップ・コマンド・プロシージャ | |
ローカル・バッチ実行キューは,各ノードのスタートアップ・コマンド・プロシージャ SYSTARTUP_VMS.COM で起動します。共通のスタートアップ・コマンド・プロシージャを使用する場合は,以下のようなコマンドをプロシージャに追加します。
$ SUBMIT/PRIORITY=255/NOIDENT/NOLOG/QUEUE=node_BATCH LAYERED_PRODUCT.COM
$ START/QUEUE node_BATCH
$ DEFINE/SYSTEM/EXECUTIVE SYS$BATCH node_BATCH
|
キューが起動される前に,優先順位の高いバッチ・ジョブとしてスタートアップ・コマンド・プロシージャ LAYERED_PRODUCT.COM をキューに登録しておけば,キューのジョブの上限とは無関係に,ジョブは直ちに実行されます。コマンド・プロシージャがキューに登録される前にキューが起動されると,ユーザ・バッチ・ジョブのスケジューリングによってキューがジョブの上限に到達してしまう可能性があり,スタートアップ・ジョブが待機しなければならなくなります。
キューを作成した後,バッチ・ジョブとプリント・ジョブの処理を開始するためにキューを起動しなければなりません。さらに,システムをリブートするたびに,キューが起動されるように,自動起動キューに対して自動起動を有効にするか,または非自動起動キューに対して START/QUEUE コマンドを入力する必要があります。その場合,必要なコマンドを指定したコマンド・プロシージャを作成します。
7.12.1 コマンド・プロシージャ | |
たとえば,QSTARTUP.COM という共通のコマンド・プロシージャを作成し,それを共用ディスクに格納できます。この方法では,各ノードが共通の QSTARTUP.COM プロシージャの同じコピーを共用できます。各ノードは,SYSTARTUP の共通バージョンから共通の QSTARTUP.COM プロシージャを起動します。また,キューを起動するコマンドを,個別の QSTARTUP.COM ファイルではなく,共通の SYSTARTUP ファイルに格納しておくこともできます。
7.12.2 例 | |
例 7-1 は,OpenVMS Cluster キューを作成するためのコマンドを示しています。
$
(1)
$ DEFINE/FORM LN_FORM 10 /WIDTH=80 /STOCK=DEFAULT /TRUNCATE
$ DEFINE/CHARACTERISTIC 2ND_FLOOR 2
.
.
.
(2)
$ INITIALIZE/QUEUE/AUTOSTART_ON=(JUPITR::LPA0:)/START JUPITR_PRINT
$ INITIALIZE/QUEUE/AUTOSTART_ON=(SATURN::LPA0:)/START SATURN_PRINT
$ INITIALIZE/QUEUE/AUTOSTART_ON=(URANUS::LPA0:)/START URANUS_PRINT
.
.
.
(3)
$ INITIALIZE/QUEUE/BATCH/START/ON=JUPITR:: JUPITR_BATCH
$ INITIALIZE/QUEUE/BATCH/START/ON=SATURN:: SATURN_BATCH
$ INITIALIZE/QUEUE/BATCH/START/ON=URANUS:: URANUS_BATCH
.
.
.
(4)
$ INITIALIZE/QUEUE/START -
_$ /AUTOSTART_ON=(JUPITR::LTA1:,SATURN::LTA1,URANUS::LTA1) -
_$ /PROCESSOR=LATSYM /FORM_MOUNTED=LN_FORM -
_$ /RETAIN=ERROR /DEFAULT=(NOBURST,FLAG=ONE,NOTRAILER) -
_$ /RECORD_BLOCKING ln03$PRINT
$
$ INITIALIZE/QUEUE/START -
_$ /AUTOSTART_ON=(JUPITR::LTA2:,SATURN::LTA2,URANUS::LTA2) -
_$ /PROCESSOR=LATSYM /RETAIN=ERROR -
_$ /DEFAULT=(NOBURST,FLAG=ONE,NOTRAILER) /RECORD_BLOCKING -
_$ /CHARACTERISTIC=2ND_FLOOR LA210$PRINT
$
(5)
$ ENABLE AUTOSTART/QUEUES/ON=SATURN
$ ENABLE AUTOSTART/QUEUES/ON=JUPITR
$ ENABLE AUTOSTART/QUEUES/ON=URANUS
(6)
$ INITIALIZE/QUEUE/START SYS$PRINT -
_$ /GENERIC=(JUPITR_PRINT,SATURN_PRINT,URANUS_PRINT)
$
(7)
$ INITIALIZE/QUEUE/BATCH/START SYS$BATCH -
_$ /GENERIC=(JUPITR_BATCH,SATURN_BATCH,URANUS_BATCH)
$
|
例 7-1 の各コマンドまたはコマンド・グループの説明については,以下の表を参照してください。
(1)
|
すべてのプリンタ・フォームと属性を定義する。
|
(2)
|
ローカル・プリント・キューを初期化する。この例では,これらのキューは自動起動キューであり,ノードで ENABLE AUTOSTART/QUEUES コマンドが実行されるときに自動的に起動される。自動起動キューを起動するために /START 修飾子が指定されているが,自動起動が有効に設定されるまで,ジョブの処理は開始されない。
システムのリブートのたびに自動起動を有効にするには, 例 7-2 に示すように, ENABLE AUTOSTART/QUEUES コマンドをキュー・スタートアップ・コマンド・プロシージャに追加する。
|
(3)
|
サテライト・ノードも含めて,すべてのノードでローカル・バッチ・キューを初期化し,起動する。この例では,ローカル・バッチ・キューは自動起動キューではない。
|
(4)
|
リモート LAT プリンタのキューを初期化する。この例では,これらのキューは自動起動キューであり, 3 つのノードのいずれかで実行するように設定される。3 つのノードの最初のノードでキューが起動され, ENABLE AUTOSTART コマンドが実行される。
自動起動キューを実行できる各ノードで, LAT スタートアップ・コマンド・プロシージャ LAT$SYSTARTUP.COM に論理デバイス LTA1 と LTA2 の設定を指定しなければならない。詳細については,『OpenVMS システム管理者マニュアル』の LAT$SYSTARTUP.COM の編集の説明を参照。
これらの自動起動キューを起動するために /START 修飾子が指定されているが,自動起動が有効に設定されるまで,ジョブの処理は開始されない。
|
(5)
|
自動起動を有効にして,自動起動キューを自動的に起動する。この例では,自動起動は最初に SATURN ノードで有効に設定されるため,キュー・マネージャは複数のノードのいずれかで動作するように設定されている自動起動キューを起動する。
|
(6)
|
汎用出力キュー SYS$PRINT を初期化し,起動する。これは自動起動キューではない (汎用キューを自動起動キューとして設定することはできない)。しかし,システムがシャットダウンされても,汎用キューは自動的に停止しないため,ノードのリブートのたびにキューを再起動する必要はない。
|
(7)
|
汎用バッチ・キュー SYS$BATCH を初期化し,起動する。これは汎用キューであるため,ノードがシャットダウンされても停止されない。したがって,ノードのリブートのたびにキューを再起動する必要はない。
|
7.12.3 例 | |
例 7-2 は,共用ディスクに格納されている共通の QSTARTUP コマンド・プロシージャの使い方を示しています。
$!
$! QSTARTUP.COM -- Common procedure to set up cluster queues
$!
$!
(1)
$ NODE = F$GETSYI("NODENAME")
$!
$! Determine the node-specific subroutine
$!
$ IF (NODE .NES. "JUPITR") .AND. (NODE .NES. "SATURN") .AND. (NODE .NES. "URANUS")
$ THEN
$ GOSUB SATELLITE_STARTUP
$ ELSE
(2)
$!
$! Configure remote LAT devices.
$!
$ SET TERMINAL LTA1: /PERM /DEVICE=ln03 /WIDTH=255 /PAGE=60 -
/LOWERCASE /NOBROAD
$ SET TERMINAL LTA2: /PERM /DEVICE=LA210 /WIDTH=255 /PAGE=66 -
/NOBROAD
$ SET DEVICE LTA1: /SPOOLED=(ln03$PRINT,SYS$SYSDEVICE:)
$ SET DEVICE LTA2: /SPOOLED=(LA210$PRINT,SYS$SYSDEVICE:)
(3)
$ START/QUEUE/BATCH 'NODE'_BATCH
$ GOSUB 'NODE'_STARTUP
$ ENDIF
$ GOTO ENDING
$!
$! Node-specific subroutines start here
$!
(4)
$ SATELLITE_STARTUP:
$!
$! Start a batch queue for satellites.
$!
$ START/QUEUE/BATCH 'NODE'_BATCH
$ RETURN
$!
(5)
$JUPITR_STARTUP:
$!
$! Node-specific startup for JUPITR::
$! Setup local devices and start nonautostart queues here
$!
$ SET PRINTER/PAGE=66 LPA0:
$ RETURN
$!
$SATURN_STARTUP:
$!
$! Node-specific startup for SATURN::
$! Setup local devices and start nonautostart queues here
$!
.
.
.
$ RETURN
$!
$URANUS_STARTUP:
$!
$! Node-specific startup for URANUS::
$! Setup local devices and start nonautostart queues here
$!
.
.
.
$ RETURN
$!
$ENDING:
(6)
$! Enable autostart to start all autostart queues
$!
$ ENABLE AUTOSTART/QUEUES
$ EXIT
|
例 7-2 に示した共通の QSTARTUP.COM コマンド・プロシージャの各部分の説明については,以下の表を参照してください。
(1)
|
プロシージャを実行するノードの名前を指定する。
|
(2)
|
すべての大型ノードで,LAT によって接続されているリモート・デバイスを設定する。これらのデバイスのキューは自動起動キューであり,このプロシージャの最後に ENABLE AUTOSTART/QUEUES コマンドが実行されるときに自動的に起動される。
この例では,これらの自動起動キューは 3 つのノードのいずれかで実行されるように設定されている。最初のノードで ENABLE AUTOSTART/QUEUES コマンドが実行されると,キューは起動される。3 つのノードのいずれかが稼動していて,自動起動が有効に設定されている限り,キューは実行状態になる。
|
(3)
|
大型ノードでローカル・バッチ・キューを起動する。この例では,ローカル・バッチ・キューは自動起動キューではないため,START/QUEUE コマンドを使用して起動しなければならない。
|
(4)
|
サテライト・ノードでローカル・バッチ・キューを起動する。
|
(5)
|
各ノードはそれぞれのサブルーチンを実行する。 JUPITR ノードでは,ライン・プリンタ・デバイス LPA0: を設定する。このデバイスのキューは自動起動キューであり, ENABLE AUTOSTART/QUEUES コマンドが実行されたときに自動的に起動される。
|
(6)
|
すべての自動起動キューを起動するために,自動起動を有効化する。
|
デフォルト設定では,シャットダウン・プロシージャのシャットダウン・シーケンスの最初に自動起動が無効に設定されます。自動起動が無効に設定されると,フェールオーバ・リストに指定されている自動起動キューは別のノードにフェールオーバされます。また,自動起動を無効にすることにより,クラスタ内の別のノードで実行されている自動起動キューが,シャットダウン中のノードにフェールオーバされないようにします。
7.13.1 オプション | |
シャットダウン・シーケンスで自動起動が無効に設定されるタイミングは,以下のいずれかの方法で変更できます。
1
|
論理名 SHUTDOWN$DISABLE_AUTOSTART を以下のように定義する。
$ DEFINE/SYSTEM/EXECUTIVE SHUTDOWN$DISABLE_AUTOSTART
number-of-minutes
number-of-minutes の値は,シャットダウンの前に自動起動が無効に設定されるタイミング (分)を指定する。この論理名定義を SYLOGICALS.COM に追加できる。
number-of-minutes の値はノードのデフォルト値である。この値がシャットダウン・シーケンス全体の時間 (分) より大きい場合は,自動起動はシーケンスの最初に無効に設定される。
|
2
|
シャットダウン・プロシージャで DISABLE_AUTOSTART
number-of-minutes オプションを指定する (
number-of-minutes の値を指定すると, SHUTDOWN$DISABLE_AUTOSTART 論理名に対して指定されている値は無効になる)。
|
関連項目: シャットダウン・シーケンスで自動起動が無効に設定されるタイミングを変更する方法については,『OpenVMS システム管理者マニュアル』を参照してください。
|