# Compaq OpenVMS
OpenVMS Cluster システム

前へ | 次へ | 目次 | 索引

# 5.2 共通環境クラスタと多重環境クラスタ

処理のニーズに応じて，すべての環境ファイルがクラスタ単位で共用される環境，または一部のファイルはクラスタ単位で共用され，他のファイルは特定のコンピュータからだけアクセス可能な環境のいずれかを準備できます。

以下の表は，共通環境クラスタと多重環境クラスタの特徴を示しています。

クラスタの種類 | 特徴 | 利点
--- | --- | ---
共通環境
オペレーティング環境は OpenVMS Cluster 内のすべてのノードで同一である。 | 環境は以下のように設定される。 すべてのノードが同じプログラム，アプリケーション，ユーティリティを実行する。 すべてのユーザが同じ種類のユーザ・アカウントを持ち，同じ論理名が定義される。 すべてのユーザがストレージ・デバイスおよびキューに対して共通のアクセス権を持つことができる (アクセス権は，アクセス制御リスト [ACL] 保護が各ユーザに対してどのように設定されているかに応じて異なる)。 すべてのユーザが構成内のどのノードにもログインでき，他のすべてのユーザと同じ環境で作業する。 | 共通バージョンのシステム・ファイルを使用するため，管理が簡単である。
多重環境
オペレーティング環境はノードごとに変更できる。 | 個々のプロセッサまたは一部のプロセッサが以下のように設定される。 ユーザが実行するタスクの種類と使用するリソースに応じて，複数のアクセス権が提供される。 他のノードでは使用できないリソースを共用できる。 他のプロセッサが一般的なタイムシェアリング作業を実行している間，制限されたリソースを使用して専門化された機能を実行する。 ユーザはログインしているノード固有の環境で作業することができる。 | 一部のデータだけをコンピュータ間で共用し，しかも特定のコンピュータが特別なニーズに対応できるように設定したい場合に効果的である。

# 5.3 共通システム・ディスクのディレクトリ構造

オペレーティング・システムのインストールまたはアップグレード・プロシージャで， 共通システム・ディスク が作成されます。ほとんどのオペレーティング・システム・ファイルとオプションの製品ファイルは，このシステム・ディスクの共通のルート・ディレクトリに格納されます。

## 5.3.1 ディレクトリ・ルート

システム・ディスクのディレクトリ構造は，Alpha システムと VAX システムで同一です。システム・ディスクが Alpha 用の場合も VAX 用の場合も，ディレクトリ構造全体，つまり， 共通ルートと各コンピュータの ローカル・ルート は同じディスクに格納されます。インストールまたはアップグレードが完了した後， 第 8 章 で説明する CLUSTER_CONFIG.COM コマンド・プロシージャを使用して，クラスタにブートするときに使用されるローカル・ルートを新しい各コンピュータに対して作成します。

通常のシステム・ディレクトリの他に，各ローカル・ルートには [VMS$COMMON] のディレクトリ・エイリアスである [SYSn .SYSCOMMON] ディレクトリが格納されます。これは，クラスタ共通ファイルが実際に格納されるクラスタ共通ルート・ディレクトリです。コンピュータをクラスタに追加すると，CLUSTER_CONFIG.COM は共通ルート・ディレクトリ・エイリアスを定義します。

## 5.3.2 ディレクトリ構造の例

図 5-2 は，JUPITR と SATURN というコンピュータのディレクトリ構造を示しています。この 2 台のコンピュータは共通システム・ディスクから実行されます。ディスクのマスタ・ファイル・ディレクトリ (MFD) には，ローカル・ルート (JUPITR の場合は SYS0，SATURN の場合は SYS1) と，クラスタ共通ルート・ディレクトリ [VMS$COMMON] が格納されています。

図 5-2 共通システム・ディスクのディレクトリ構造

## 5.3.3 検索順序

論理名 SYS$SYSROOT は，最初はローカル・ルート (SYS$SYSDEVICE:[SYS0.SYSEXE]) を指し，次に共通ルート (SYS$COMMON:[SYSEXE]) を指す検索リストとして定義されています。したがって，システム・ディレクトリの論理名 (SYS$SYSTEM， SYS$LIBRARY，SYS$MANAGER など) は，2 つのディレクトリを指します。

図 5-3 は，論理名 SYS$SYSTEM がファイル指定で使用されているときに，共通システム・ディスクのディレクトリがどのように検索されるかを示しています。

図 5-3 共通システム・ディスクでのファイルの検索順序

重要: 共通システム・ディスクのシステム・ファイルを操作する場合は，この検索順序を念頭に置いておかなければなりません。コンピュータ固有のファイルは，常に該当するコンピュータのシステム・サブディレクトリに格納し，更新しなければなりません。

例

1. MODPARAMS.DAT は SYS$SPECIFIC:[SYSEXE] に格納しておかなければなりません。これは， JUPITR では [SYS0.SYSEXE] であり，SATURN では [SYS1.SYSEXE] です。したがって，JUPITR にログインするときに，JUPITR の新しい MODPARAMS.DAT ファイルを作成するには，以下のコマンドを入力します。

       $ EDIT SYS$SPECIFIC:[SYSEXE]MODPARAMS.DAT

   ファイルが作成された後，JUPITR にログオンするときに，以下のコマンドを使用してファイルを変更することができます。

       $ EDIT SYS$SYSTEM:MODPARAMS.DAT

   このコマンドを入力したときに，MODPARAMS.DAT ファイルが JUPITR の SYS$SPECIFIC:[SYSEXE] ディレクトリに存在せず， SYS$COMMON:[SYSEXE] ディレクトリに MODPARAMS.DAT ファイルがある場合，このコマンドは共通ディレクトリの MODPARAMS.DAT ファイルを編集します。 MODPARAMS.DAT ファイルがいずれのディレクトリにもない場合は，このコマンドは JUPITR の SYS$SPECIFIC:[SYSEXE] ディレクトリにファイルを作成します。

2. 同じ共通システム・ディスクからブートされる他のコンピュータにログインするときに，JUPITR の MODPARAMS.DAT を変更するには，以下のコマンドを入力します。

       $ EDIT SYS$SYSDEVICE:[SYS0.SYSEXE]MODPARAMS.DAT

3. 1 つのクラスタ共通システム・ディスクを使用するクラスタ内で，クラスタ共通システム登録ファイルのレコードを変更するには，任意のコンピュータから以下のコマンドを入力します。

       $ SET DEFAULT SYS$COMMON:[SYSEXE]
       $ RUN SYS$SYSTEM:AUTHORIZE

4. 同じクラスタ共通システム・ディスクからブートされる別のコンピュータにログインするときに，コンピュータ固有のシステム登録ファイルのレコードを変更するには，デフォルト・ディレクトリを特定のコンピュータに設定しなければなりません。たとえば，JUPITR コンピュータのコンピュータ固有のシステム登録ファイル (SYSUAF.DAT) を設定している場合，以下に示すように，AUTHORIZE を起動する前に，デフォルト・ディレクトリを JUPITR コンピュータの固有の [SYSEXE] ディレクトリに設定する必要があります。

       $ SET DEFAULT SYS$SYSDEVICE:[SYS0.SYSEXE]
       $ RUN SYS$SYSTEM:AUTHORIZE

# 5.4 クラスタ単位論理名

OpenVMS バージョン 7.2 では，OpenVMS Alpha と OpenVMS VAX の両方でクラスタ単位論理名が提供されるようになりました。クラスタ単位論理名は，共用可能な論理名の便利さと使いやすさを OpenVMS Cluster システムにまで拡張します。

既存のアプリケーションは，アプリケーション・コードを変更せずに，クラスタ単位論理名を利用できます。ただし，アプリケーションから (直接的または間接的に) 参照される論理名テーブルを少しだけ変更しなければなりません。

デフォルト設定では，新しい論理名はローカルでのみ有効です。クラスタ単位論理名は，ある論理名テーブルの属性です。新しい論理名をクラスタ単位で有効になるように設定するには，クラスタ単位論理名テーブルにその論理名を作成しなければなりません。

クラスタ単位論理名の最も重要な機能は以下のとおりです。

- 新しいノードがクラスタに参加する場合，現在設定されているクラスタ単位論理名全部を自動的に受け取ります。

- クラスタ単位論理名または論理名テーブルが作成，変更，削除されると，その変更は OpenVMS バージョン 7.2 以降が稼動するクラスタ内の他のすべてのノードに自動的に伝達されます。クラスタ単位のテーブルに対するセキュリティ・プロファイルの変更も，この方法で自動的に伝達されます。

- クラスタ単位の名前の変換によってパフォーマンスができるだけ低下しないように，変換はローカルに行われます。

- LNM$CLUSTER_TABLE と LNM$SYSCLUSTER_TABLE は， OpenVMS バージョン 7.2 以降が稼動するすべてのシステムに存在するため，クラスタ単位論理名を使用するプログラムとコマンド・プロシージャは，クラスタに接続されていないシステムでも開発，テスト，実行することができます。

## 5.4.1 デフォルトのクラスタ単位論理名テーブル

クラスタ単位論理名をサポートするために，オペレーティング・システムは， 表 5-1 に示すように，システム・スタートアップ時に 2 つのクラスタ単位論理名テーブルとそれぞれの論理名を作成します。これらの論理名テーブルと論理名は，プロセス論理名テーブル，ジョブ論理名テーブル，グループ論理名テーブル，システム論理名テーブルに加えて提供されるものです。クラスタ単位論理名テーブルの名前はシステム論理名ディレクトリ LNM$SYSTEM_DIRECTORY に格納されます。

表 5-1 デフォルトのクラスタ単位論理名テーブルと論理名
名前 | 目的
--- | ---
LNM$SYSCLUSTER_TABLE | クラスタ単位システム論理名のデフォルト・テーブル。出荷時には何も登録されていない。このテーブルは，クラスタ単位論理名を使用して環境をカスタマイズするシステム管理者を対象に提供される。このテーブルに登録されている名前は，誰でも使用することができ，SHOW LOGICAL/SYSTEM に， LNM$SYSTEM のテーブル名，LNM$DCL_LOGICAL (DCL のデフォルト・テーブル検索リスト)，LNM$FILE_DEV (システムと RMS のデフォルト) のいずれかを指定して，論理名を変換することができる。
LNM$SYSCLUSTER | LNM$SYSCLUSTER_TABLE の論理名。 LNM$SYSCLUSTER_TABLE を参照するときに便利なように提供される。形式は，LNM$SYSTEM_TABLE およびその論理名である LNM$SYSTEM と同じである。
LNM$CLUSTER_TABLE | LNM$SYSCLUSTER_TABLE も含めて，すべてのクラスタ単位論理名テーブルの親テーブル。親テーブルとして LNM$CLUSTER_TABLE を使用して新規テーブルを作成すると，そのテーブルはクラスタ単位で使用可能になる。
LNM$CLUSTER | LNM$CLUSTER_TABLE の論理名。LNM$CLUSTER_TABLE を参照するときに便利なように提供される。

## 5.4.2 変換順序

LNM$SYSTEM の定義は，LNM$SYSCLUSTER を含むように拡張されています。システム論理名を変換する場合，検索順序は LNM$SYSTEM_TABLE，LNM$SYSCLUSTER_TABLE です。システムのデフォルト・テーブル名である LNM$FILE_DEV と LNM$DCL_LOGICALS の定義には，LNM$SYSTEM が含まれているため，これらのデフォルト・テーブルを使用する変換には，LNM$SYSCLUSTER に指定されている定義が含まれます。

論理名の解釈に関する現在の優先順位はそのまま保存されます。 LNM$FILE_DEV に対して変換されるクラスタ単位論理名は，システム論理名の後に，最後に解釈されます。論理名が解釈される順序は， 図 5-4 に示すように，プロセス --> ジョブ --> グループ --> システム --> クラスタの順です。

図 5-4 LNM$FILE_DEV によって指定される変換順序

## 5.4.3 クラスタ単位論理名テーブルの作成

以下の目的で，クラスタ単位論理名テーブルを追加作成しなければならないことがあります。

- マルチプロセス・クラスタ単位アプリケーションを使用するため。

- UIC グループのメンバを共用するため。

クラスタ単位論理名テーブルを作成するには，親テーブルに対する作成 (C) アクセス権と LNM$SYSTEM_DIRECTORY に対する書き込み (W) アクセス権を保有するか，または SYSPRV (システム) 特権が必要です。

共有論理名テーブルは，UIC ベースで保護されています。ユーザの各クラス (システム (S)，オーナ (O)，グループ (G)，およびワールド (W)) には，4 つのアクセス・タイプ， (読み込み (R)，書き込み (W)，作成 (C)，削除 (D)) が認められています。

クラスタ単位論理名テーブルは，プロセス論理名テーブル，ジョブ論理名テーブル，グループ論理名テーブルの場合と同じ方法で追加作成できます。つまり， CREATE/NAME_TABLE コマンドを使用するか， $CRELNT システム・サービスを使用します。クラスタ単位論理名テーブルを作成する場合は， /PARENT_TABLE 修飾子を使用し，修飾子の値としてクラスタ単位・テーブル名を指定します。既存のクラスタ単位・テーブルを親テーブルとして使用すると，新規テーブルもクラスタ単位になります。

以下の例では，クラスタ単位論理名テーブルの作成方法を示しています。

    $ CREATE/NAME_TABLE/PARENT_TABLE=LNM$CLUSTER_TABLE -
    _$ new-clusterwide-logical-name-table

## 5.4.4 クラスタ単位論理名テーブルに関係するエイリアスの競合

クラスタ単位論理名テーブルに関係するエイリアスの競合は，他の種類の論理名テーブルのエイリアスの競合とは異なる方法で処理されます。 表 5-2 では，競合の種類とその結果を示しています。

表 5-2 エイリアスの競合と結果
競合の種類 | 結果
--- | ---
既存のクラスタ単位・テーブルと同じ名前および同じアクセス・モードで論理テーブルを作成した。 | 新しいローカル・テーブルは作成されない。条件値 `SS$_NORMAL` が返される。これは，サービスは正常終了したが，論理名テーブルがすでに存在することを示す。すべてのノードで既存のクラスタ単位・テーブルとその名前が有効になる。
既存のローカル・テーブルと同じ名前および同じアクセス・モードでクラスタ単位・テーブルを作成した。 | 新しいクラスタ単位・テーブルが作成される。条件値 `SS$_LNMCREATED` が返される。これは，論理名テーブルが作成されたことを示す。ローカル・テーブルとその名前は削除される。クラスタ単位・テーブルが DCL コマンド DEFINE を使用して作成されている場合は，以下のメッセージが表示される。 `DCL-I-TABSUPER, previous table table_name has been superseded` クラスタ単位・テーブルが $CRELNT システム・サービスを使用して作成された場合は， $CRELNT は条件値 `SS$_SUPERSEDE` を返す。
既存のクラスタ単位・テーブルと同じ名前および同じアクセス・モードでクラスタ単位・テーブルを作成した。 | 新しいクラスタ単位・テーブルは作成されない。条件値 `SS$_NORMAL` が返される。これは，サービスは正常終了したが，論理名テーブルがすでに存在することを示す。$CRELNT システム・サービスの CREATE-IF 属性の設定とは無関係に，既存のテーブルとそのすべての名前が有効なままになる。このため，既存のテーブル名が他のノードから誤って削除されるのを防止できる。

## 5.4.5 クラスタ単位論理名の作成

クラスタ単位論理名を作成するには，論理名を登録するテーブルに対して，書き込み (W) アクセス権が必要です。あるいは， LNM$SYSCLUSTER にだけクラスタ単位論理名を作成する場合は， SYSNAM 特権が必要です。アクセス・モード (ユーザ，スーパーバイザなど) を指定した場合を除き，作成する論理名のデフォルト・アクセス・モードは，名前を作成したときのアクセス・モードになります。DCL コマンドを使用して名前を作成した場合は，デフォルト・アクセス・モードはスーパーバイザ・モードになります。プログラムで名前を作成した場合は，通常，アクセス・モードはユーザ・モードになります。

クラスタ単位論理名を作成する場合，論理名の定義にクラスタ単位論理名テーブルの名前を指定しなければなりません。クラスタ単位論理名は，DCL コマンドまたは $CRELNM システム・サービスを使用して作成できます。

以下の例では，DEFINE コマンドを使用して，デフォルトのクラスタ単位論理名テーブル LNM$CLUSTER_TABLE にクラスタ単位論理名を作成する方法を示しています。

    $ DEFINE/TABLE=LNM$CLUSTER_TABLE logical-name equivalence-string

作成したクラスタ単位論理名テーブルに登録されるクラスタ単位論理名を作成するには，DEFINE コマンドを使用して新しいクラスタ単位論理名を定義し，/TABLE 修飾子に新しいクラスタ単位・テーブルの名前を指定します。以下の例を参照してください。

    $ DEFINE/TABLE=new-clusterwide-logical-name-table logical-name -
    _$ equivalence-string

注意 既存のクラスタ単位論理名と同じアクセス・モードおよび同じ等価名と属性を使用して，新しいクラスタ単位論理名を作成しようとすると，既存の名前は削除されず ，メッセージもリモート・ノードに送信されません。この動作は，他の種類の論理名テーブルに対して同様の操作を実行したときと異なります。他の種類の論理名の場合は，既存の名前が削除され，新しい名前が作成されます。クラスタ単位論理名の場合は，このように異なる動作を行うことで，パフォーマンスを向上しています。 条件値 `SS$_NORMAL`が返されます。サービスは正常終了しますが，新しい論理名は作成されません。

前へ | 次へ | 目次 | 索引