前へ | 次へ | 目次 | 索引 |
クラスタ単位論理名を使用する場合は,以下のガイドラインに従ってください。
$TRNLNM システム・サービスと $GETSYI システム・サービスは,クラスタ単位論理名固有の属性を提供します。ここでは,これらの属性について説明します。また,クラスタ単位・テーブルの作成に関連する部分では,$CRELNT の使い方についても説明します。アプリケーションでの論理名の使用の詳細については,『OpenVMS Programming Concepts Manual』を参照してください。
5.4.7.1 $TRNLNM システム・サービスのクラスタ単位属性
$TRNLNM システム・サービスでは,以下の 2 つのクラスタ単位属性が提供されます。
クラスタ単位論理名に対して LNM$_ATTRIBUTES アイテムを求めると, LNM$V_CLUSTERWIDE が出力属性としてアイテム・リストに返されます。
LNM$M_INTERLOCKED は,attr 引数ビットであり,このビットをセットしておくと,現在処理中のクラスタ単位論理名の変更が完了してから,名前が変換されるようになります。デフォルト設定では, LNM$M_INTERLOCKED はセットされません。アプリケーションでクラスタ単位論理名の最新の定義を使用する必要がある場合は,変換を要求する際にこの属性を指定することで,処理中のすべての変更が完了するまで,変換をストールさせることができます。
シングル・システムで,あるプロセスが論理名データベースの共用可能部分を変更すると,その変更はそのノードの他のプロセスからただちに確認できます。さらに,変更がまだ完了していない場合は,他のプロセスは共用可能論理名を変換したり,変更することができません。
一方,あるプロセスがクラスタ単位論理名データベースを変更すると,その変更はそのノードではただちに確認できますが,変更が他のノードに伝達されるまでには少し時間がかかります。デフォルト設定では,クラスタ単位論理名の変換はストールされません。したがって,異なるノードのプロセスが 1 つの論理名を変換し,変更がまだ完了していないときに,異なる等価名を取得する可能性があります。
LNM$M_INTERLOCKED を使用すると,アプリケーションでクラスタ単位論理名の最新の定義を必ず受け取ることができるようになります。
5.4.7.2 $GETSYI システム・サービスのクラスタ単位属性
$GETSYI システム・サービスに,クラスタ単位属性 SYI$_CWLOGICALS が追加されました。 SYI$_CWLOGICALS を指定すると,$GETSYI は,クラスタ単位論理名データベースが CPU 上で初期化されているときは 1,初期化されていないときは 0 を返します。この値は論理値 (1 または 0) であるため,アイテム記述子のバッファ長フィールドは 1 (バイト) でなければなりません。非クラスタ・システムでは,SYI$_CWLOGICALS の値は常に 0 です。
5.4.7.3 $CRELNT システム・サービスによるクラスタ単位・テーブルの作成
$CRELNT を使用してクラスタ単位・テーブルを作成する場合は,テーブル名を指定しなければなりません。OpenVMS では,クラスタ単位・テーブルに対してデフォルト名が与えられません。これは,デフォルト名を使用すると,SYSPRV 特権を持たないプロセスが共用可能テーブルを作成することができるからです。
5.5 クラスタ単位論理名の定義およびアクセス
ブート・ノードでクラスタ単位論理名データベースを初期化するには,他のノードにメッセージを送信し,データベースの内容を含む CLUSTER_SERVER プロセスの応答メッセージが必要です。ブート・ノードにある CLUSTER_SERVER プロセスは,等価な名前とテーブルを作成するために,システム・サービスを呼び出します。この初期化にかかる時間は,クラスタ単位論理名データベースのサイズや,クラスタ・インターコネクトのスピード,そして応答ノードの CLUSTER_SERVER プロセスの応答性などの状況によって変わります。
ブート・ノードにあるクラスタ単位論理名データベースのコピーが,その他のクラスタにある論理名データベースと同じになるまでに,ブート・ノードでクラスタ単位名またはテーブルを作成または削除しようとすると,気づかないうちにストールされます。デフォルトでは変換はストールされないため,データベースが一致する前にクラスタ単位名を変換しようとすると,タイミングによって失敗したり,成功したりします。データベースが一致するまで変換をストールするようにするには, F$TRNLNM CASE 引数を INTERLOCKED に指定します。
5.5.1 SYSTARTUP_VMS.COM 内でのクラスタ単位論理名の定義
一般に,システム管理者は SYLOGICALS.COM コマンド・プロシージャを編集して,システム・スタートアップ時に有効になるサイト固有の論理名を定義します。しかし,クラスタ単位論理名を定義する場合, 第 5.5.2 項 にある論理名以外は,できるだけ SYSTARTUP_VMS.COM コマンド・プロシージャ内で定義することをお勧めします。クラスタ単位論理名を SYSTARTUP_VMS.COM 内で定義することをお勧めするのは, SYSTARTUP_VMS.COM がブート・プロセスで SYLOGICALS.COM よりずっと後の段階で実行されるからです。
OpenVMS スタートアップは,CLUSTER_SERVER プロセスなどの作成したプロセスによるアクションを除けば,単一の流れで同期がとれています。 CLUSTER_SERVER はスタートアップ時の初期の段階に作成されますが, SYLOGICALS.COM 実行時では,ブート・ノードのクラスタ単位論理名データベースのコピーの初期化が完了していないことがあります。このような場合,SYLOGICALS.COM にあるクラスタ単位の定義によりスタートアップがストールされ,システムが運用開始するまでの時間が余計にかかります。
OpenVMS では,SYSTARTUP_VMS.COM が実行される前にクラスタ単位・データベースを初期化してしまうようにしています。
5.5.2 SYLOGICALS.COM 内での特定の論理名の定義
LMF$LICENSE,NET$PROXY,VMS$OBJECTS など,特定の論理名を有効にするには, SYSTARTUP_VMS.COM を起動するよりも前に,スタートアップの初期の段階でこれらの論理名を定義する必要があります。このような論理名のほとんどは,SYLOGICALS.COM に定義しますが, VMS$OBJECTS は例外で SYSECURITY.COM で定義し,それ以外の名前は SYCONFIG.COM で定義します。
名前をクラスタ単位論理名として定義するには, SYSTARTUP_VMS.COM でこれらの名前を定義することをお勧めしていますが, SYLOGICALS.COM と SYSECURITY.COM にも同様な作業を行う必要があります。この作業を行うと,スタートアップの時間がかかる可能性がありますので注意してください。
代わりに,従来の方法で,すべてのノードで名前をシステム・ワイド論理名として同一の定義を用いて定義することもできます。
5.5.3 スタートアップ・コマンド・プロシージャで条件付き定義を使用
すべてのクラスタ・ノードに共通なスタートアップ・コマンド・プロシージャ部分でクラスタ単位論理名を定義する場合は,条件付き定義を使用するようにしてください。たとえば次のようになります。
$ IF F$TRNLNM("CLUSTER_APPS") .EQS. "" THEN - _$ DEFINE/TABLE=LNM$SYSCLUSTER/EXEC CLUSTER_APPS - _$ $1$DKA500:[COMMON_APPS] |
条件付き定義を使用すると,意図に反した定義が行われるのを防止できます。たとえば,システム管理者が SYSTARTUP_VMS.COM にも定義されている名前を再定義し,新しい定義が一時的なものであるために, SYSTARTUP_VMS.COM を変更しなかったとします。新しいノードがクラスタに参加すると,そのノードは最初にその新しい定義を受け取ります。しかし,新しいノードが SYSTARTUP_VMS.COM を実行すると,そのノード自体も含めて,クラスタ内のすべてのノードは元の値に戻されてしまいます。
条件付き定義を SYLOGICALS.COM または SYSECURITY.COM に含める場合, F$TRNLNM CASE 引数を INTERLOCKED に指定し,変換が完了する前にクラスタ単位論理名の初期化が完了しているようにします。この引数指定と条件付き定義の例を以下に示します。
$ IF F$TRNLNM("CLUSTER_APPS",,,,"INTERLOCKED") .EQS. "" THEN - _$ DEFINE/TABLE=LNM$SYSCLUSTER/EXEC CLUSTER_APPS - _$ $1$DKA500:[COMMON_APPS] |
F$GETSYI ("CWLOGICALS") は,クラスタに接続されていないシステムでは常に FALSE を返します。クラスタ環境と非クラスタ環境の両方で動作するように設計されているプロシージャでは,最初に現在の環境がクラスタ環境であるかどうか判断し,クラスタ環境の場合は,クラスタ単位論理名が初期化されるかどうかを判断しなければなりません。 |
コンピュータがブートされた直後に,サイトに依存しないコマンド・プロシージャ SYS$SYSTEM:STARTUP.COM が実行されてシステムが起動され,一連のスタートアップ・イベントが制御されます。STARTUP.COM プロシージャは,クラスタ固有およびノード固有のタスクを実行するその他の多くのスタートアップ・コマンド・プロシージャを呼び出します。
ここでは,適切なクラスタ固有スタートアップ・コマンド・プロシージャや他のシステム・ファイルを設定することによって,他のコンピュータをクラスタに追加する前に,最初にインストールしたコンピュータで OpenVMS Cluster オペレーティング環境を準備する方法について説明します。
関連項目: スタートアップ・コマンド・プロシージャの詳細については,『OpenVMS システム管理者マニュアル』も参照してください。
5.6.1 OpenVMS スタートアップ・プロシージャ
OpenVMS オペレーティング・システムには,複数のスタートアップ・コマンド・プロシージャが添付されています。 SYS$SYSTEM:STARTUP.COM コマンド・プロシージャは, OpenVMS がブートされた直後に実行され,以下の表に説明するサイト固有のスタートアップ・コマンド・プロシージャを起動します。
プロシージャ名 | 起動元 | 機能 |
---|---|---|
SYS$MANAGER:
SYPAGSWPFILES.COM |
SYS$SYSTEM:
STARTUP.COM |
ページ・ファイルとスワップ・ファイル (自動的にインストールされるプライマリ・ページ・ファイルとプライマリ・スワップ・ファイル以外のファイル) をインストールするためにコマンドを追加するファイル。 |
SYS$MANAGER:
SYCONFIG.COM |
SYS$SYSTEM:
STARTUP.COM |
特殊デバイスを接続し,デバイス I/O ドライバをロードする。 |
SYS$MANAGER:
SYSECURITY.COM |
SYS$SYSTEM:
STARTUP.COM |
セキュリティ監査サーバを起動する前に,セキュリティ監査ファイルとセキュリティ・アーカイブ・ファイルの場所を定義する。 |
SYS$MANAGER:
SYLOGICALS.COM |
SYS$SYSTEM:
STARTUP.COM |
システム単位論理名を作成し,システム・コンポーネントをエグゼクティブ・モードの論理名として定義する (クラスタ単位論理名は SYSTARTUP_VMS.COM に定義しなければならない)。クラスタ共通ディスクはこのプロシージャの最後でマウントできる。 |
SYS$MANAGER:
SYSTARTUP_VMS.COM |
SYS$SYSTEM:
STARTUP.COM |
以下の多くのスタートアップ機能とログイン機能を実行する。
|
ディレクトリ SYS$COMMON:[SYSMGR] には,編集可能な各コマンド・プロシージャのテンプレート・ファイルが格納されています。システムのスタートアップおよびログイン属性のカスタマイズの例として,コマンド・プロシージャ・テンプレート (SYS$COMMON:[SYSMGR]*.TEMPLATE) を利用すると便利です。
5.6.2 スタートアップ・プロシージャの作成
OpenVMS Cluster 共用環境を準備する場合,最初に SYSTARTUP_VMS コマンド・プロシージャを作成します。各コンピュータは,スタートアップ時にこのプロシージャを実行して,オペレーティング環境を定義します。
SYSTARTUP_VMS.COM プロシージャは以下の方法で準備します。
前へ | 次へ | 目次 | 索引 |