この章では,AlphaServer GS80/160/320 システムで OpenVMS Galaxy コンピューティング環境を構築するプロセスについて説明します。
9.1 ステップ 1: 構成の選択とハードウェア要件の判断
OpenVMS Alpha バージョン 7.3 は,AlphaServer GS160 システムにおいて, 次の最大構成をサポートします。
4 インスタンス
4 QBB
16 CPU
128 GB メモリ
規則:
パーティションごとに標準 COM1 UART コンソール・ラインを持たなければならない。
パーティションごとに PCI ドローワを持たなければならない。
パーティションごとに 1つの I/O モジュールを持たなければならない。
パーティションごとに少なくとも 1 つの CPU モジュールを持たなければならない。
パーティションごとに少なくとも 1 つのメモリ・モジュールを持たなければならない。
構成に必要なハードウェアを取得したら,
ハードウェア・マニュアルに記述された手順を適宜参照して取り付けてください。
9.3 ステップ 3: システム・ディスクの作成
インスタンスごとにシステム・ディスクを使用するのか, またはクラスタ全体で共通のディスクで使用するのかを判断します。
OpenVMS バージョン 7.1-2 より以前のバージョンを稼働しているクラスタ・メンバのうち,Galaxy インスタンスと同じ VMS$OBJECTS.DAT ファイルを共用するクラスタ・メンバの場合は,新しい SECURITY.EXE ファイルが必要です。
9.4 ステップ 4: OpenVMS Alpha バージョン 7.3-2 のインストール
OpenVMS Galaxy ソフトウェアを実行するのに,特別なインストール手順は必要ありません。 Galaxy 機能は基本オペレーティング・システムに組み込まれており, この章で説明するコンソール・コマンドとシステム・パラメータ値を使用して, 有効または無効に設定できます。
OpenVMS Alpha オペレーティング・システムのインストールの詳細については,『OpenVMS Alpha Version 7.3-2 Upgrade and Installation Manual』を参照してください。
9.4.1 OpenVMS Galaxy ライセンス情報
Galaxy 環境では,システム・スタートアップ中およびインスタンス間の CPU 再割り当てが発生するたびに,OPENVMS-GALAXY ライセンス・ユニットがチェックされます。
CPU 起動時に CPU をサポートする OPENVMS-GALAXY ライセンス・ユニットが不十分な場合,CPU はインスタンスの構成セットには存在しますが,停止されます。
後で適切なライセンス・ユニットをロードすると,停止した CPU をシステムの実行中に開始できます。これは,CPU が 1 つ以上の場合に当てはまります。
9.5 ステップ 5: 環境変数の設定
オペレーティング・システムをインストールした後,この項の例で示すように,
Galaxy 固有の環境変数を作成できます。
9.5.1 AlphaServer GS160 の例
この AlphaServer GS160 での例は,次を装備した OpenVMS Galaxy コンピューティング環境を構成しているものと仮定しています。
4 インスタンス
4 QBB
16 CPU
32 GB メモリ
P00>>>show lp*
lp_count 4
lp_cpu_mask0 000F
lp_cpu_mask1 00F0
lp_cpu_mask2 0F00
lp_cpu_mask3 F000
lp_cpu_mask4 0
lp_cpu_mask5 0
lp_cpu_mask6 0
lp_cpu_mask7 0
lp_error_target 0
lp_io_mask0 1
lp_io_mask1 2
lp_io_mask2 4
lp_io_mask3 8
lp_io_mask4 0
lp_io_mask5 0
lp_io_mask6 0
lp_io_mask7 0
lp_mem_size0 0=4gb
lp_mem_size1 1=4gb
lp_mem_size2 2=4gb
lp_mem_size3 3=4gb
lp_mem_size4 0
lp_mem_size5 0
lp_mem_size6 0
lp_mem_size7 0
lp_shared_mem_size 16gb
P00>>>lpinit
この AlphaServer GS320 システムでの例は,次を装備した OpenVMS Galaxy コンピューティング環境を構成することを想定しています。
4 インスタンス
8 QBB
32 CPU
32 GB メモリ
P00>>>show lp*
lp_count 4
lp_cpu_mask0 000F000F
lp_cpu_mask1 00F000F0
lp_cpu_mask2 0F000F00
lp_cpu_mask3 F000F000
lp_cpu_mask4 0
lp_cpu_mask5 0
lp_cpu_mask6 0
lp_cpu_mask7 0
lp_error_target 0
lp_io_mask0 11
lp_io_mask1 22
lp_io_mask2 44
lp_io_mask3 88
lp_io_mask4 0
lp_io_mask5 0
lp_io_mask6 0
lp_io_mask7 0
lp_mem_size0 0=2gb, 4=2gb
lp_mem_size1 1=2gb, 5=2gb
lp_mem_size2 2=2gb, 6=2gb
lp_mem_size3 3=2gb, 7=2gb
lp_mem_size4 0
lp_mem_size5 0
lp_mem_size6 0
lp_mem_size7 0
lp_shared_mem_size 16gb
P00>>>lpinit
この項ではそれぞれの環境変数について説明します。 使用法の詳細については, 『AlphaServer GS80/160/320 Firmware Reference Manual』を参照してください。
LP_COUNT number
この変数が 0 に設定されていると,システムは従来の SMP 構成だけをブートします。
Galaxy コンソール・モードは OFF になります。
この変数が 0 以外の値に設定されている場合は,Galaxy 機能が使用され,
Galaxy 変数が解釈されます。LP_COUNT の正確な値は,
コンソールが作成する Galaxy パーティションの数を表します。
3 つのパーティションにリソースを割り当て,LP_COUNT を 2 に設定した場合,
残りのリソースは割り当てられないままになります。
LP_CPU_MASKn mask
このビット・マスクは,指定された Galaxy パーティション番号にどの CPU を最初に割り当てるかを指定します。
AlphaServer GS160 コンソールは,
パーティション内のセルフ・テストを通過した最初の CPU をプライマリ CPU として選択します。
LP_ERROR_TARGET
新しい AlphaServer GS シリーズは,
LP_ERROR_TARGET という新しい Galaxy 環境変数を導入しました。
変数の値は,システム・エラーが最初に報告される Galaxy インスタンスの番号です。
他の Galaxy プラットフォームとは異なり,
システムの修正可能なエラー,修正不可能なエラー,システム・イベント・エラーは,
すべて単一のインスタンスに送られます。
オペレーティング・システムがこのターゲットを変更できるので,変数の値は,
システムが最初にパーティション分割されたときのターゲットを表しています。
この目的はシステム・エラーを単一のインスタンスに隔離して,
エラーが Galaxy 全体をダウンさせないことです。
エラーのターゲット・インスタンスは,エラーを受け取ったときに,
エラーを被ったその単一のインスタンスをリモートからクラッシュさせても安全であるかどうかを判断します。
この場合,GLXRMTMCHK のバグチェック・コードが使用されます。
エラーに関係するエラー・ログ情報は,
必ずしもエラーを被ったインスタンスではなく,
エラー・ターゲット・インスタンスに対するものであることに注意してください。
エラー・ターゲット・インスタンスは,
可能な限りユーザが環境変数で指定したインスタンスのままになりますが,
ソフトウェアはインスタンスを監視し,
必要に応じてエラー・ターゲットを変更します。
LP_IO_MASKn mask
これらの変数は,QBB 番号によって I/O モジュールを各インスタンスに割り当てます。
1 QBB 0 2 QBB 1 4 QBB 2 8 QBB 3
n
にはパーティション番号 (0〜7) を指定します。
mask
値は,(I/O ライザーを含む) どの QBB がパーティションに含まれるのかを示すバイナリ・マスクです。
LP_MEM_SIZEn size
これらの変数は,
指定されたインスタンスに対して特定の容量のプライベート・メモリを割り当てます。
システム内のメモリ容量と各インスタンスにとって必要な割り当てをもとに,
適切な値を使用してこれらの変数を作成することが必要です。
使用する共用メモリの容量だけを定義でき,
他の LP_MEM_SIZE 変数は未定義のままにしておくことができます。
このようにすると,コンソールは上位アドレス空間から共用メモリを割り当て,
LP_COUNT 変数によって指定された数のパーティションに対して,
残りのメモリを等しく分割します。また,
LP_MEM_SIZE 変数を使用して特定のパーティションにメモリを明示的に割り当て,
他のパーティションのメモリ割り当てを未定義のままにした場合も,
コンソールはメモリ・フラグメントを,明示的にメモリが割り当てられたパーティションおよび共用メモリに対して割り当て,残りのメモリを分割して,
明示的にメモリが割り当てられていない残りのパーティションに割り当てます。
次の例を参照してください。
インスタンス中に CPU のない QBB からのインスタンスに,
プライベート・メモリを割り当てないでください。
たとえば,LP_CPU_MASK0 が FF の場合,QBB 0 と 1 からのインスタンス 0 に対してのみプライベート・メモリを割り当ててください。
この変数の使用法の詳細については,
『AlphaServer GS80/160/320 Firmware Reference Manual』を参照してください。
LP_SHARED_MEM_SIZE size
この変数は,共用メモリとして使用するメモリを割り当てます。
次の例を参照してください。
共用メモリは 8 MB の倍数で割り当てなければなりません。
この変数の使用法の詳細については,
『AlphaServer GS80/160/320 Firmware Reference Manual』を参照してください。
BOOTDEF_DEV 変数と BOOT_OSFLAGS 変数
初期インストールの後や,システムの障害やオペレータによって要求されたリブートの後,AUTOGEN が正しくリブートされるように,ブートの前に各 Galaxy コンソールでこれらの変数を設定する必要があります。
イーサネット・ポートを使用する場合は,
使用するメディアの種類と接続をコンソールに通知しなければなりません。つまり,
AUI,UDP,ツイスト・ペアのいずれを使用するのかを指定する必要があります。
コンソールとオペレーティング・システムはどのメディアを使用するかを判断しますが,
次のコマンドを入力すれば,特定のメディア・タイプを割り当てることができます。
最初のコマンドは,使用可能なネットワーク装置の一覧を表示します。
2 番目のコマンドは,指定された装置 (この例では EWA0) に対してデフォルト・メディア・タイプを設定します。
これはセカンダリ・コンソールを初期化する前に,
すべてのイーサネット装置に対して実行しなければなりません。
Galaxy 変数を決定した後は,
セカンダリ・コンソールを初期化するために次のコマンドを入力します。
コンソールに次の情報が表示されます。
このコマンドは
プライマリ Galaxy コンソール
から入力しなければなりません。
Galaxy パーティションが正しく定義されており,
ハードウェア・リソースが正しく構成されている場合は,
各インスタンスのプライマリ CPU が起動しているはずです。
1 つ以上のコンソールの初期化が失敗した場合は,ハードウェアの取り付け,
Galaxy パーティションの定義,
ハードウェアの割り当てを二重にチェックする必要があります。
Galaxy ファームウェアを正しくインストールし,コンソールを構成した後,
次の方法で初期 Galaxy 環境をブートできます。
各 Galaxy インスタンスに対して,次の操作を実行します。
構成はこれで終了です。これで OpenVMS Galaxy が構築されました。
マスク値
QBB 番号
lp_mem_size0 0=2gb, 1=2gb
注意
lp_shared_mem_size 16gb
9.6 ステップ 6: セカンダリ・コンソール装置の起動
P00>>> SHOW NETWORK
P00>>> SET EWA0_MODE TWISTED
9.7 ステップ 7: セカンダリ・コンソールの初期化
P00>>> LPINIT
P00>>>lpinit
lp_count = 2
lp_mem_size0 = 1800 (6 GB)
CPU 0 chosen as primary CPU for partition 0
lp_mem_size1 = 1800 (6 GB)
CPU 4 chosen as primary CPU for partition 1
lp_shared_mem_size = 1000 (4 GB)
initializing shared memory
partitioning system
QBB 0 PCA 0 Target 0 Interrupt Count = 2
QBB 0 PCA 0 Target 0 Interrupt CPU = 0
Interrupt Enable = 000011110000d05a
Sent Interrupts = 0000100000000010
Enabled Sent Interrupts = 0000100000000010
Acknowledging Sent Interrupt 0000000000000010 for CPU 0
QBB 0 PCA 0 Target 0 Interrupt Count = 1
QBB 0 PCA 0 Target 0 Interrupt CPU = 0
Interrupt Enable = 000011110000d05a
Sent Interrupts = 0000100000000000 Enabled Sent Interrupts = 0000100000000000
Acknowledging Sent Interrupt 0000100000000000 for CPU 0
OpenVMS PALcode V1.80-1, Tru64 UNIX PALcode V1.74-1
system = QBB 0 1 2 3 + HS (Hard Partition 0)
QBB 0 = CPU 0 1 2 3 + Mem 0 + Dir + IOP + PCA 0 1 + GP (Hard QBB 0)
QBB 1 = CPU 0 1 2 3 + Mem 0 + Dir + IOP + PCA 0 1 + GP (Hard QBB 1)
QBB 2 = CPU 0 1 2 3 + Mem 0 + Dir + IOP + PCA + GP (Hard QBB 4)
QBB 3 = CPU 0 1 2 3 + Mem 0 + Dir + IOP + PCA + GP (Hard QBB 5)
partition 0
CPU 0 1 2 3 8 9 10 11
IOP 0 2
private memory size is 6 GB
shared memory size is 4 GB
micro firmware version is T5.4
shared RAM version is 1.4
hose 0 has a standard I/O module
starting console on CPU 0
QBB 0 memory, 4 GB
QBB 1 memory, 4 GB
QBB 2 memory, 4 GB
QBB 3 memory, 4 GB
total memory, 16 GB
probing hose 0, PCI
probing PCI-to-ISA bridge, bus 1
bus 1, slot 0 -- dva -- Floppy
bus 0, slot 1 -- pka -- QLogic ISP10x0
bus 0, slot 2 -- pkb -- QLogic ISP10x0
bus 0, slot 3 -- ewa -- DE500-BA Network Controller
bus 0, slot 15 -- dqa -- Acer Labs M1543C IDE
probing hose 1, PCI
probing hose 2, PCI
bus 0, slot 1 -- fwa -- DEC PCI FDDI
probing hose 3, PCI
starting console on CPU 1
starting console on CPU 2
starting console on CPU 3
starting console on CPU 8
starting console on CPU 9
starting console on CPU 10
starting console on CPU 11
initializing GCT/FRU at 1fa000
initializing pka pkb ewa fwa dqa
Testing the System
Testing the Disks (read only)
Testing the Network
AlphaServer Console X5.8-2842, built on Apr 6 2000 at 01:43:42
P00>>>
9.8 ステップ 8: OpenVMS Galaxy のブート
P00>>> B -FL 0,1 DKA100 // or whatever your boot device is.
SYSBOOT> SET GALAXY 1
SYSBOOT> CONTINUE