Compaq 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 のいずれにでも登録することができます。

7.9 実行バッチ・キューの設定

一般に,実行バッチ・キューは,スタンドアロン・コンピュータの場合と同じ手順で,OpenVMS Cluster の各コンピュータで設定します。この方法の詳細については,『Compaq 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 を参照)。しかし,このような論理名の定義が必要なのは,共通環境クラスタを使用している場合だけです。

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.11 ローカル・バッチ・キューの起動

通常,ローカル・バッチ実行キューは,スタートアップ時にバッチ・ジョブを実行してレイヤード製品を起動するために使用されます。この理由から, 例 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 シャットダウン時の自動スタートの無効化

デフォルト設定では,シャットダウン・プロシージャのシャットダウン・シーケンスの最初に自動スタートが無効に設定されます。自動スタートが無効に設定されると,フェールオーバ・リストに指定されている自動起動キューは別のノードにフェールオーバされます。また,自動スタートを無効にすることにより,クラスタ内の別のノードで実行されている自動起動キューが,シャットダウン中のノードにフェールオーバされないようにします。

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 システム管理者マニュアル』を参照してください。


前へ 次へ 目次 索引