前へ | 次へ | 目次 | 索引 |
以下のコマンドは,クラスタ単位の汎用キュー 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 のいずれにでも登録することができます。
7.9 実行バッチ・キューの設定
一般に,実行バッチ・キューは,スタンドアロン・コンピュータの場合と同じ手順で,OpenVMS Cluster の各コンピュータで設定します。この方法の詳細については,『Compaq OpenVMS システム管理者マニュアル』を参照してください。
7.9.1 操作を開始する前に
バッチ・キューを設定する前に,クラスタにとってどのキュー構成が最適であるかを判断しなければなりません。システム管理者はクラスタでバッチ・ジョブを効率よく処理できるようにバッチ・キューを設定しなければなりません。たとえば,以下の操作が必要です。
ニーズに最適な方式を判断した後,キューを設定するためにコマンド・プロシージャを作成できます。 図 7-4 は,JUPITR,SATURN, URANUS というコンピュータで構成されるクラスタのバッチ・キューの構成を示しています。
図 7-4 バッチ・キューの構成例
固有の名前を指定してバッチ・キューを作成するには,以下の形式で DCL コマンド INITIALIZE/QUEUE/BATCH を指定します。
INITIALIZE/QUEUE/BATCH/ON=node::[/START][/NAME_OF_MANAGER=name-of-manager] queue-name |
修飾子 | 説明 |
---|---|
/ON | バッチ・キューが実行されるコンピュータを指定する。 |
/START | キューを起動する。 |
/NAME_OF_MANAGER | 複数のキュー・マネージャを実行している場合は,キュー・マネージャの名前を指定する。 |
自動スタート・バッチ・キューは,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 を参照)。しかし,このような論理名の定義が必要なのは,共通環境クラスタを使用している場合だけです。
7.10 クラスタ単位の汎用バッチ・キューの設定
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 をキューに登録しておけば,キューのジョブの上限とは無関係に,ジョブは直ちに実行されます。コマンド・プロシージャがキューに登録される前にキューが起動されると,ユーザ・バッチ・ジョブのスケジューリングによってキューがジョブの上限に到達してしまう可能性があり,スタートアップ・ジョブが待機しなければならなくなります。
7.12 共通のコマンド・プロシージャの使用
キューを作成した後,バッチ・ジョブとプリント・ジョブの処理を開始するためにキューを起動しなければなりません。さらに,システムをリブートするたびに,キューが起動されるように,自動起動キューに対して自動スタートを有効にするか,または非自動起動キューに対して START/QUEUE コマンドを入力する必要があります。その場合,必要なコマンドを指定したコマンド・プロシージャを作成します。
7.12.1 コマンド・プロシージャ
たとえば,QSTARTUP.COM という共通のコマンド・プロシージャを作成し,それを共用ディスクに格納できます。この方法では,各ノードが共通の QSTARTUP.COM プロシージャの同じコピーを共用できます。各ノードは,SYSTARTUP の共通バージョンから共通の QSTARTUP.COM プロシージャを起動します。また,キューを起動するコマンドを,個別の QSTARTUP.COM ファイルではなく,共通の SYSTARTUP ファイルに格納しておくこともできます。
7.12.2 例
例 7-1 は,OpenVMS Cluster キューを作成するためのコマンドを示しています。
例 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 の設定を指定しなければならない。詳細については,『Compaq OpenVMS システム管理者マニュアル』の LAT$SYSTARTUP.COM の編集の説明を参照。 これらの自動起動キューを起動するために /START 修飾子が指定されているが,自動スタートが有効に設定されるまで,ジョブの処理は開始されない。 |
(5) | 自動スタートを有効にして,自動起動キューを自動的に起動する。この例では,自動スタートは最初に SATURN ノードで有効に設定されるため,キュー・マネージャは複数のノードのいずれかで動作するように設定されている自動起動キューを起動する。 |
(6) | 汎用出力キュー SYS$PRINT を初期化し,起動する。これは自動起動キューではない (汎用キューを自動起動キューとして設定することはできない)。しかし,システムがシャットダウンされても,汎用キューは自動的に停止しないため,ノードのリブートのたびにキューを再起動する必要はない。 |
(7) | 汎用バッチ・キュー SYS$BATCH を初期化し,起動する。これは汎用キューであるため,ノードがシャットダウンされても停止されない。したがって,ノードのリブートのたびにキューを再起動する必要はない。 |
7.12.3 例
例 7-2 は,共用ディスクに格納されている共通の QSTARTUP コマンド・プロシージャの使い方を示しています。
例 7-2 OpenVMS Cluster キューを起動するための共通のプロシージャ |
---|
$! $! 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 論理名に対して指定されている値は無効になる)。 |
関連項目: シャットダウン・シーケンスで自動スタートが無効に設定されるタイミングを変更する方法については,『Compaq OpenVMS システム管理者マニュアル』を参照してください。
前へ | 次へ | 目次 | 索引 |