Compaq OpenVMS Alpha
オペレーティング・システム
パーティショニングおよび Galaxy ガイド


前へ 次へ 目次 索引



第 13 章
CPU の再割り当て

OpenVMS では,CPU リソースの管理方法が複数サポートされます。 コンソールはコンソール環境変数を使用して,各 CPU のデフォルトの所有者インスタンスを設定します。このため,CPU リソースは静的に割り当てることができ,正確な初期構成が可能です。コールド・ブート ( つまりパワー・サイクルまたは初期化 ) では,コンソールの不揮発性 RAM からこのデフォルト構成が復元されます。

構成がブートされた後,CMKRNL ( Change Mode to Kernel ) 特権を持つユーザに対して,OpenVMS ではもっと洗練された手段でリソースを割り当てることができます。ここではこれらの方法について説明します。

13.1 DCL による再割り当て

CMKRNL 特権を持つユーザは,次の DCL コマンドを使用して CPU の再割り当て操作を実行できます。


$ STOP/CPU/MIGRATE=instance-or-id   cpu-id 

ユーザはターゲット・インスタンス名 (SCSNAME) または数値 ID (0,1 など) と,再割り当てする CPU の数値 ID を指定しなければなりません。次の例では,このコマンドの形式をいくつか示しています。


$ STOP/CPU/MIGRATE=0  4      !Reassign CPU 4 to instance 0 
$ STOP/CPU/MIGRATE=1  3,4,5  !Reassign CPUs 3,4,5 to instance 1 
$ STOP/CPU 7/MIGRATE=BIGBNG  !ReassignCPU 7 to instance BIGBNG 
$ STOP/CPU/ALL/MIGRATE=0     !Reassign all secondary CPUs to instance 0 

これらのコマンドはコマンド・プロシージャに挿入できます。たとえば,必要とされる処理能力がわかっているアプリケーションのスタートアップ・プロシージャで,余分な CPU リソースをインスタンスに移動することができます。同様に,時間のかかる I/O 集約型操作 (たとえばバックアップなど) をこれから実行するインスタンスから,CPU の割り当てを解除して,CPU を他のインスタンスが使用できるように設定することもできます。ジョブが完了したら,割り当てを元に戻すことができます。また,シャットダウンされるインスタンスから CPU を再割り当てすることもできます。

この方法では,あるインスタンスからリソースを再割り当てすることだけが可能です。これは,Galaxy ソフトウェア・アーキテクチャで定義されているプッシュ・モデルです。このモデルでは,現在の使い方を認識しない他のインスタンスによって,リソースが "盗まれる" ことを防止します。DCL を使用して Galaxy システム全体を効果的に管理するには,関係する各インスタンスにログインするか, SYSMAN ユーティリティを使用して,所有者インスタンスでコマンドを実行する必要があります。

13.2 GCU のドラッグ・アンド・ドロップによる再割り当て

GCU では,Galaxy リソースを管理するために会話型のビジュアル・インタフェースが提供されます。GCU を使用すると,インスタンス間で単にドラッグ・アンド・ドロップするだけで,CPU を再割り当てすることができます。さらに,GCU を使用すると,さまざまな構成のチャート ( 構成モデルと呼びます ) を作成し,それをファイルに保存できます。構成モデルはいつでもロードして,設定することができ,システムは要求されたモデルに設定するために,必要に応じてリソースを再割り当てします。

13.3 インターモダル再割り当て

Galaxy ソフトウェア・アーキテクチャではリソース・プッシュ・モデルが定義されているため,リソースは,現在それを所有している Galaxy インスタンスから割り当てなければなりません。ユーティリティやユーザがマルチインスタンス Galaxy 構成でリソースの割り当てを効果的に管理するには,各インスタンスでコマンドを実行するための何らかの手段を設定しなければなりません。

このような手段の 1 つとして,各 Galaxy インスタンスでウィンドウまたはターミナル・セッションを開き,これらの各ウィンドウでリソース管理操作を実行する方法があります。

別の方法として,SYSMAN ユーティリティと基礎になる SMI サーバを使用して,所有者インスタンスでコマンド環境を設定することもできます。この方法を使用すると,特定のリソース管理操作を実行するためにかなり単純なコマンド・プロシージャを作成できます。しかし,この方法には制限があります。まず,関係する Galaxy インスタンスはクラスタ内に存在しなければなりません。また,コマンド・プロシージャは可変パラメータを SYSMAN 環境スクリプトに効果的に渡すことができず,SYSMAN スクリプトの内部にリモート・システム・パスワードを指定することもできません。したがって, SYSMAN を使用する汎用のコマンド・プロシージャ・インスタンスを作成するのは面倒です。

GCU は実際に,管理アクションを実行するために,可能であれば必ず SYSMAN を使用します。システムが SYSMAN をサポートするように構成されていない場合は,GCU は管理トランスポートとしてプロキシ・アカウント間で DECnet タスク間通信を使用しようとします。その方法も失敗した場合は ( つまり,システムで DECnet が実行されていなかったり,必要なプロキシ・アカウントが設定されていない場合など ) ,GCU は,GCU が現在実行されているインスタンス以外の Galaxy インスタンスを管理することができません。選択した場合は,各 Galaxy インスタンスに対して 1 つずつ,GCU の複数のコピーを実行できます。しかしほとんどの場合,OpenVMS Galaxy システムはクラスタ接続されているか,DECnet を使用していると考えてもかまいません。

GCU の管理アクションは,SYS$MANAGER:GCU$ACTIONS.COM コマンド・プロシージャをもとにして実行されます。このファイルを変更して,それぞれの環境に適するようにアクションをカスタマイズすることができます。たとえば,TCP/IP 環境では,管理トランスポートのために REXEC や同様のユーティリティを選択することができ,管理アクションが実行されるときに,何らかの形式の通知やログを含むこともできます。

GCU$ACTIONS.COM ファイルは,動作方法が通常のファイルと少し異なります。SYSMAN を使用する場合,このプロシージャはテンポラリ・ファイルに小さな SYSMAN コマンド・スクリプトを作成して,SYSMAN が取り扱うことができない可変パラメータを取り扱います。SYSMAN を使用できない場合は,このプロシージャは所有者インスタンスのプロキシ・アカウントに対して,DECnet タスク間接続を開始しようとします。接続が成功すると,この接続を使用して,所有者インスタンスにある GCU$ACTIONS.COM のコピーにコマンド・パラメータを渡します。最終的に,所有者インスタンスがローカルにコマンドを実行します。

13.4 Galaxy サービスを使用したソフトウェアによる再割り当て

おそらくリソース割り当てを管理するための最適な方法は,Galaxy API を使用して独自のリソース管理ルーチンを作成する方法でしょう。独自のルーチンを作成すれば,独自の基準およびアプリケーション環境をもとに,リソース管理に関する判断を下すことができます。しかし, 第 13.3 節 で説明したものと同じプッシュ・モデルの制限事項があるため,ルーチンは Galaxy 対応でなければならず,おそらく相互の操作を調整するために共用メモリを使用する必要があります。

表 13-1 は,CPU の管理に使用できる OpenVMS システム・サービスを簡単に説明しています。

表 13-1 CPU 管理のための Galaxy システム・サービス
システム・サービス 説明
$CPU_TRANSITION[W] 現在のシステムの構成セットの中の CPU,または OpenVMS Galaxy 構成の中の未割り当ての CPU の現在の処理状態を変更します。

13.5 再割り当ての失敗

CPU の再割り当てはさまざまな理由で失敗したり,ブロックされることがあります。 GCU は管理アクションを SYSMAN または DCL スクリプトに埋め込むので,再割り当てが失敗した理由を常に識別して報告できるわけではありません。たとえば GCU は,プライマリ CPU の再割り当てを禁止するために,再割り当てアクションを許可する前に,特定のチェックを実行します。また,オペレーティング・システムやコンソール・ファームウェアだけが検出できるその他の理由によって,再割り当てが失敗することもあります。たとえば,現在,プロセス・アフィニティや Fast Path デューティが割り当てられている CPU の再割り当ての失敗をオペレーティング・システムが検出した場合,DCL メッセージがコンソールとユーザ端末の両方に表示されます。

再割り当てのための Galaxy API は,ほとんどの失敗を呼び出し側に報告することができます。しかし,再割り当てサービスを使用した場合でも,ハードウェア・プラットフォームの依存関係をオペレーティング・システムから確認できないために,コンソールが再割り当てを拒否することがあります。


第 14 章
DCL コマンド

OpenVMS Galaxy を管理する場合,次の DCL コマンドが役立ちます。

14.1 CPU コマンド

CPU は OpenVMS Galaxy で割り当て可能なリソースです。

14.1.1 STOP/CPU/MIGRATE

STOP/CPU/MIGRATE コマンドは,指定されたセカンダリ・プロセッサを停止し,OpenVMS SMP (symmetric multiprocessing) システムのアクティブ・セットから削除します。

例としてユーザが次のコマンドを入力すると :


$ STOP/CPU/MIGRATE=GLX0  4 

次のメッセージがユーザの端末に表示されます。


%SYSTEM-I-CPUSTOPPING, trying to stop CPU 4 after it reaches quiescent state 

ソース・コンソールには,次のメッセージが表示されます。


%SMP-I-STOPPED, CPU #04 has been stopped. 

デスティネーション・コンソールには,次のメッセージが表示されます。


%SMP-I-SECMSG, CPU #04 message:   P04>>>START 
%SMP-I-CPUTRN, CPU #04 has joined the active set. 

14.1.2 SHOW CPU

SHOW CPU コマンドは,指定されたプロセッサの状態,属性,機能に関する情報を表示します。

例:


$ SHOW CPU 
 
GLX0,  AlphaServer 8400 Model 5/440 
 
Multiprocessing ENABLED. Full checking synchronization image loaded. 
 
Minimum multiprocessing revision levels: CPU = 1 
 
PRIMARY CPU =  00 
 
Active CPUs:      00 01 
 
Configured CPUs:  00 01 
 
Potential CPUs:   00 01 03 04 05 06 07 

14.1.3 SET CPU

14.2 SHOW MEMORY

SHOW MEMORY コマンドは,システムのメモリの使用状況を表示します。

例:


$ SHOW MEMORY/PHYSICAL 
 
            System Memory Resources on 5-OCT-2001 20:50:19.03 
 
Physical Memory Usage (pages):     Total        Free      In Use    Modified 
   Main Memory (2048.00Mb)        262144        228183    31494      2467 
Of the physical pages in use, 11556 pages are permanently allocated to OpenVMS. 
 
 
$ SHOW MEMORY/PHYSICAL 
 
              System Memory Resources on 5-OCT-2001 07:55:14.68 
 
Physical Memory Usage (pages):     Total        Free      In Use    Modified 
   Private Memory (512.00Mb)       65536        56146      8875         515 
   Shared Memory (1024.00Mb)       131072       130344      728 
 
Of the physical pages in use, 6421 pages are permanently allocated to OpenVMS. 
$ 

14.3 レキシカル関数の例

レキシカル関数のコマンド・プロシージャの例


$ write sys$output "" 
$ write sys$output "Instance = ",f$getsyi("scsnode") 
$ write sys$output "Platform = ",f$getsyi("galaxy_platform") 
$ write sys$output "Sharing Member = ",f$getsyi("galaxy_member") 
$ write sys$output "Galaxy ID = ",f$getsyi("galaxy_id") 
$ write sys$output "Community ID = ",f$getsyi("community_id") 
$ write sys$output "Partition ID = ",f$getsyi("partition_id") 
$ write sys$output "" 
$ exit 

レキシカル関数のコマンド・プロシージャの出力


$ @SHOGLX 
 
Instance = COBRA2 
Platform = 1 
Sharing Member = 1 
Galaxy ID = 5F5F30584C47018011D3CC8580F40383 
Community ID = 0 
Partition ID = 0 
 
$ 

14.4 INSTALL LIST

INSTALL LIST コマンドは,標準のグローバル・セクションだけでなく, galaxywide セクションも返すようになりました。

14.5 CONFIGURE GALAXY

CONFIGURE GALAXY コマンドは,Galaxy Configuration ユーティリティ (GCU) を起動して,OpenVMS Galaxy システムを監視し,表示し,会話します。 GCU を使用するには,DECwindows Motif V1.2-4 またはそれ以上と OpenVMS Alpha V7.2 またはそれ以上が必要です。

オプションの model パラメータは,ロードおよび表示する Galaxy 構成モデルの場所と名前を指定します。model が指定されていないときに,システムが OpenVMS Galaxy として動作している場合は,現在のアクティブ構成が表示されます。

システムが OpenVMS Galaxy として動作していない場合は,GCU はシングル・インスタンス OpenVMS Galaxy システムを作成するユーザを支援します。

OpenVMS Galaxy 構成モデルは Galaxy Configuration ユーティリティを使用して作成されます。詳細については,GCU のオンライン・ヘルプを参照してください。

形式:

CONFIGURE GALAXY [model.gcm]

パラメータ:


GALAXY [model.gcm] 

ロードおよび表示する Galaxy 構成モデルの場所と名前を指定します。

model を指定しなかったときに,システムが OpenVMS Galaxy として動作している場合は,現在のアクティブ構成が表示されます。

修飾子:


/ENGAGE 

GCU は,グラフィカル・ユーザ・インタフェースを表示せずに,指定された OpenVMS Galaxy 構成モデルに設定 (ロード/確認,およびアクティブ化) します。確認の後,指定されたモデルがアクティブ・システム構成になります。この修飾子を使用すると,システムをブートした後で,どのような動的リソースの再割り当てが実行されていたとしても,システム管理者はそれとは無関係に, OpenVMS Galaxy システムを既知の構成に復元することができます。このコマンドを DCL コマンド・プロシージャに埋め込んでおけば,構成操作を自動化することができます。


/VIEW 

この修飾子を /ENGAGE および model パラメータと組み合わせて使用すると, GCU は指定された構成モデルをロードし,確認し,アクティブ化し,表示します。

例:


$ CONFIGURE GALAXY 

GCU のグラフィカル・ユーザ・インタフェースを表示します。システムが現在, OpenVMS Galaxy として構成されている場合は,アクティブ・システム構成が表示されます。


$ CONFIGURE GALAXY model.GCM 

GCU のグラフィカル・ユーザ・インタフェースを表示します。指定された OpenVMS Galaxy 構成モデルがロードされ,表示されますが,ユーザが設定することを選択するまで,アクティブ構成にはなりません。


$ CONFIGURE GALAXY/ENGAGE model.GCM 

GCU コマンド行インスタンスを起動して,GCU のグラフィカル・ユーザ・インタフェースを表示せずに,指定された OpenVMS Galaxy 構成モデルに設定します。


$ CONFIGURE GALAXY/ENGAGE/VIEW model.GCM 

GCU コマンド行インタフェースを起動して,指定された OpenVMS Galaxy 構成モデルに設定し,GCU のグラフィカル・ユーザ・インタフェースを表示します。


前へ 次へ 目次 索引