この章では、Ultra 450 システムの以下の動作を設定するための NVRAM 設定変数および OpenBoot PROM (OBP) のコマンドについて説明します。
この章で説明する NVRAM 設定変数は以下のとおりです。
upa-port-skip-list
pci0-probe-list
pci-slot-skip-list
memory-interleave
env-monitor
asr-disable-list
auto-boot-on-error?
diag-trigger
この章で説明する OBP コマンドは以下のとおりです。
asr-enable
asr-disable
.asr
Ultra 450 システムは、UltraSPARC(TM) を基礎とする他のすべてのシステムと同様に、高速の UPA (Ultra Port Architecture) バスに基づいて設計されています。UPA バスは、CPU、入出力ブリッジ、フレームバッファー などの、マザーボード上の高速デバイスに対して最大で 32 個のポート ID アドレス (またはスロット) を提供する交換型システムバスです。ほとんどの Ultra システムでは、有効な UPA ポートは 3 〜 4 つですが、Ultra 450 システムは、以下のサブシステムに対して最大で 9 つの有効なポートを提供します。
表 2-1 有効なポート
デバイスの種類 |
UPA スロット |
物理的な実装形態 |
---|---|---|
CPU |
0 〜 3 |
差し込み式スロット × 4 |
UPA-PCI ブリッジ |
4、6、1f |
マザーボードに直付け |
UPA グラフィックスフレームバッファー |
1d、1e |
差し込み式スロット × 2 |
これらの 9 つのポート ID のプローブの順序はユーザーが制御することはできませんが、upa-port-skip-list NVRAM 変数を使用して、ポートをプローブ対象から除外することはできます。以下の例では、upa-port-skip-list 変数を使用して、UPA プローブリストから UPA-PCI ブリッジの 1 つと、主 UPA グラフィックスカードを除外しています。
ok setenv upa-port-skip-list 4,1d
この機能を使用することによって、差し込み式カードを物理的に取り外さずに、システムによるプローブ対象からそのデバイスを除外し、以降使用されないようにすることができます。この方法は、一時的な障害が発生したシステムで障害の発生したカードを特定する際に有用です。
Ultra 450 システムの 6 つの PCI バスのうち、Bus 0 (デバイスツリーの /pci@1f,4000) は、標準の Ethernet および SCSI コントローラなどのマザーボードデバイス (差し込み式ではないデバイス) が接続される唯一の PCI バスという点で特別なバスです。マザーボードデバイスは、取り外して交換することによってプローブの順序を変更することはできません。マザーボードデバイスのプローブの順序を制御するために、NVRAM 変数の pci0-probe-list がシステムに用意されています。pci0-probe-list は、PCI バス 0 上のデバイスのプローブの順序とプローブ対象からの除外の両方を制御します。以下は、pci0-probe-list に対して指定することができる値です。
表 2-2 pci0-probe-list の値
PCI デバイス番号 |
機能 |
---|---|
0 |
UPA-PCI バスブリッジ (プローブしない) |
1 |
EBus/Ethernet インタフェース (常にプローブ、プローブリストに含まない) |
2 |
着脱式能媒体用デバイスと外部 SCSI ポート用のオンボード SCSI コントローラ |
3 |
4 スロットの UltraSCSI バックプレーン用のオンボード SCSI コントローラ |
4 |
バックプレーンの PCI スロット 10 |
この表の値は、PCI デバイス番号に基づいています。背面パネルのスロット番号の 1 〜 10 には対応していません。
以下の例では、pci0-probe-list 変数を使用してプローブの順序を 3、4 に設定し、着脱式媒体デバイスと外部 SCSI ポート用のオンボード SCSI コントローラをプローブリストから除外しています。
ok setenv pci0-probe-list 3,4
他の 5 つの PCI バス (PCI スロット 1 〜 9) のプローブ順序をユーザーが制御することはできません。これらのスロットは、常に 5-3-2-1-4-9-8-7-6 の順序でプローブされます。ただし、NVRAM 変数の pci-slot-skip-list を使用して、 PCI スロットをプローブ対象から除外することができます。以下の例では、pci-slot-skip-list 変数を使用して、PCI プローブリストから背面パネルのスロット 3 と 8 を除外しています。
ok setenv pci-slot-skip-list 3,8
pci-slot-skip-list の値は、背面パネルの番号 1 〜 10 に対応しています。スロット 10 が pci-slot-skip-list に存在すると、pci0-probe-list にデバイス番号 4 (背面パネルのスロット 10) が含まれていても、スロット 10 がプローブ対象から除外されます。
Ultra 450 システムでは、NVRAM 変数の memory-interleave でメモリーインタリーブを制御します。次の表に、この変数に指定することができる値と、それらの値によるメモリー構成の変化を示します。メモリーインタリーブとメモリー構成の指針については、『Sun Ultra 450 ワークステーションユーザーマニュアル』または『Ultra Enterprise 450 システムユーザーマニュアル』を参照してください。
表 2-3 memory-interleave の値
設定 |
メモリー構成の変化 |
---|---|
auto (デフォルト) |
4 つのメモリーバンクがすべて同じ容量の DIMM で構成されている場合は、4-way インタリーブが有効になります。バンク A と B だけ使用されていて、両方のバンクが同じ容量の DIMM で構成されている場合は、2-way インタリーブが有効になります。それ以外の場合、インタリーブは無効です。 |
max-size |
auto 設定と同じ働きをします。 |
max-interleave |
現在のメモリー構成で実現できる最高レベルのインタリーブを可能にします。ただし、取り付けられている DIMM の容量が異なる場合は、一部のメモリーが使用されません。各 DIMM について、最小容量の DIMM の容量を超える分は使用されません。 |
1 |
インタリーブを無効にします。使用可能なメモリー容量をすべて使用します。 |
2 |
バンク A と B 間の 2-way インタリーブを強制的に有効にします。ただし、取り付けられている DIMM の容量が異なる場合は、一部のメモリーが使用されません。バンク B に最小容量の DIMM を取り付けてください。バンク C と D に DIMM が取り付けられていても使用されません。 |
4 |
4 つのバンク間の 4-way インタリーブを強制的に有効にします。ただし、取り付けられている DIMM の容量が異なる場合は、一部のメモリーが使用されません。バンク D に最小容量の DIMM を取り付けてください。 |
ok setenv memory-interleave max-interleave
Ultra 450 システムでは、環境の監視および制御機能が、オペレーティングシステムと OBP ファームウェアの両方のレベルで提供されています。これによって、システムが停止したり起動することができなくなっても、監視機能を使用することができます。環境の温度超過に対して OBP が行う監視と対処の方法は、NVRAM 変数の env-monitor で制御します。以下の表に、env-monitor 変数の設定と、それらの設定に対応する OBP の動作を示します。システムの環境監視機能の詳細については、『Ultra Enterprise 450 システムユーザーマニュアル』または『Sun Ultra 450 ワークステーションユーザーマニュアル』の「信頼性、可用性、保守性に関する諸機能」を参照してください。
表 2-4 env-monitor の値
設定 |
監視機能 |
OBP の動作 |
---|---|---|
enabled (デフォルト) |
有効 |
CPU またはディスクファントレイが異常に過熱したかファントレイに障害が発生した場合は、OBP は警告を出し、30 秒後に自動的にシステムを停止します。 |
advice |
有効 |
OBP は警告を出すのみで、システムは停止しません。 |
disabled |
無効 |
OBP は、何も行いません。OBP レベルの環境の監視は無効です。 |
以下の例では、env-monitor 変数を使用して、OBP レベルの環境の監視を無効にしています。
ok setenv env-monitor disabled
この NVRAM 変数は、オペレーティングシステムの動作中は、システム環境の監視および制御機能に影響を与えません。
Ultra 450 システムは、自動システム回復 (ASR) 機能によって、ハードウェア障害の発生後に動作を再開することができます。電源投入時自己診断 (POST: power-on self-test) 機能および OpenBoot 診断 (OBDiag) 機能が、障害の発生したハードウェア部品を自動的に検出し、OBP ファームウェアに組み込まれた自動構成機能によって、システムは障害のある部品を構成解除し、システムの動作を回復します。障害の発生した部品がシステムの動作に必要なものでない場合は、ASR 機能によって、システムはユーザーの介入なしに自動的に再起動します。このような「縮退起動」によって、システムは、障害のある部品の交換を求める保守呼び出しを生成した上で、動作を継続することができます。
電源投入処理中に障害のある部品が検出された場合、その部品は構成解除され、システムがその部品なしで動作を継続することができる場合は、起動処理が継続されます。動作中のシステムにおける特定の種類の障害 (プロセッサ障害など) によって、自動的にシステムリセットが発生する場合があります。そのような障害では、障害のある部品なしでシステムが動作できる場合に、ASR 機能によってシステムがただちに再起動します。これによって、障害のある部品が原因で、システム全体が停止したままになったり、システムに再度障害が発生することが防止されます。
縮退起動を可能にするために、OBP は IEEE 1275 クライアントインタフェースを使用して、デバイスを failed (障害発生) または disabled (無効) として「指定」します。これは、対応するデバイスツリーノードに適切な「状態」属性を設定することによって行います。UNIX の慣例により、このように指定されたサブシステムのドライバは起動されません。
したがって、障害のある部品が電気的に休止している (ランダムバスエラーや信号ノイズなどを発生しない) かぎり、システムは保守呼び出しを生成した上で、自動的に再起動して、動作を再開することができます。
2 つの特別なサブシステム (CPU およびメモリー) の構成解除では、OBP は、単にデバイスツリーに適切な「状態」属性を設定する以上の処置を行います。システムの他の部分が正しく動作するように、OBP は、リセットの直後にこれらの機能を初期化して、設定し直すか、省略する必要があります。この処置は、NVRAM 設定変数の post-status および asr-status の状態に基づいて行われます。post-status および asr-status は、POST または手動による指定 (「ASR に対する手動による優先指定」を参照) によって提供された優先指定情報を保持しています。
POST によって CPU が failed として指定されたか、ユーザーが CPU を disabled にした場合、OBP は、その CPU の主無効化ビットを設定し、次回の電源投入によるシステムリセットまで、CPU は無効な UPA デバイスになります。
システムメモリーの問題を検出し、特定することは、難しい診断作業の 1 つです。システムに様々なメモリーインタリーブモードがあり、同じバンク内で容量の異なる DIMM メモリーが使用されている可能性もあるため、さらに複雑な障害になることがあります。
メモリー部品に障害が発生すると、ファームウェアは障害の発生したバンク全体を構成解除します。インタリーブ率によっては、縮退構成によってインタリーブ率が低下したり、残りのバンクが 100% 利用できなくなったり、あるいはその両方が発生する可能性があることを意味します。
Ultra 450 システムに対する構成または構成解除は、ほとんどの場合、デフォルトの設定のままで正しく行われますが、上級のユーザーのために手動による優先指定機能も用意されています。構成解除の方法にはソフトとハードの 2 種類があるため、優先指定機能も 2 種類用意されています。
明確に 1 つのデバイスツリーノードとして表されるサブシステムの場合は、NVRAM 変数の asr-disable-list を使用してその機能を無効にすることができます。asr-disable-list は、空白で区切られたデバイスツリーパスのリストです。
ok setenv asr-disable-list /pci@1f,2000 /pci@1f,4000/scsi@3,1
Ultra 450 の OBP は、この情報を使用して、asr-disable-list 変数に設定されたノードのそれぞれについて状態属性を disabled に設定します。
ハード構成解除を必要とするサブシステム (CPU およびメモリー) に対しては、OBP コマンドの asr-enable および asr-disable を使用して、個々のサブシステムを有効または無効にします。
ソフト優先指定とハード優先指定の両方が可能な部品があります。そのような部品に対しては、できるだけハード優先指定コマンドの asr-enable および asr-disable を使用してください。
新しいユーザーコマンドの .asr を使用して、手動による優先指定の状態を確認することができます。このコマンドを実行すると、現在の設定が表示されます。
ok asr-disable cpu1 bank3 ok .asr CPU0: Enabled CPU1: Disabled SC-MP: Enabled Psycho@1f: Enabled Cheerio: Enabled SCSI: Enabled Mem Bank0: Enabled Mem Bank1: Enabled Mem Bank2: Enabled Mem Bank3: Disabled PROM: Enabled NVRAM: Enabled TTY: Enabled SuperIO: Enabled PCI Slots: Enabled
OpenBoot には、auto-boot? というNVRAM 制御スイッチがあります。このスイッチは、リセット時にオペレーティングシステムを自動的に起動するかどうかを決定します。サンのハードウェアでは、このスイッチのデフォルト値は true です。
電源投入時の診断でシステムに問題があることが発見された場合、auto-boot? は無視され、ユーザーが手動で行わないかぎり、システムは起動しません。縮退起動では、この動作は明らかに適切でないため、Ultra 450 の OBP には、auto-boot-on-error? という別の NVRAM 制御スイッチも用意されています。このスイッチは、サブシステム障害が検出された場合にシステムに縮退起動を行わせるかどうかを制御します。縮退起動を有効にするには、auto-boot? および auto-boot-on-error? スイッチの両方を true に設定する必要があります。
ok setenv auto-boot-on-error? true
auto-boot-on-error? のデフォルト値は false です。このため、この設定を true にしないかぎり、システムが縮退起動を試みることはありません。また、縮退起動が有効であっても、致命的で回復不能なエラーが発生した場合は、システムが縮退起動を試みることはありません。致命的で回復不能なエラーの例として、システムのすべての CPU が無効になった場合 (POST または手動による優先指定の結果として) があります。
標準のシステムリセットプロトコルでは、NVRAM 変数の diag-switch? が true に設定されないかぎり、ファームウェア診断は完全に省略されます。diag-switch? のデフォルト値は false です。
Ultra 450 システムで ASR 機能を使用するためには、すべてのリセット処理でファームウェア診断 (POST/OBDiag) を実行できるようにしてください。diag-switch? を単純に true に変更する方法は副作用を伴うため (『OpenBoot 3.x コマンド・リファレンスマニュアル』を参照)、Ultra 450 の OBP には、POST/OBDiag と自動的に連動するリセット処理を選択するための diag-trigger という新しい NVRAM 変数が用意されています。以下の表に、diag-trigger 変数の設定と機能を示します。
diag-switch? が true に設定されていないかぎり、diag-trigger の効果はありません。
設定 |
機能 |
---|---|
power-reset(デフォルト) |
電源投入によるリセットに対してのみ診断を実行します。 |
error-reset |
電源投入によるリセット、致命的なハードウェアエラー、ウォッチドッグリセット処理の発生時にのみ診断を実行します。 |
soft-reset |
UNIX の init 6 や reboot コマンドによって発生するリセットなど、すべてのリセット (XIR リセットは除く) で診断を実行します。 |
none |
リセット処理による診断の自動起動を無効にします。この場合でも、電源投入時に Stop キーを押しながら d キーを押すか、正面パネルのキースイッチを「診断」位置にして電源を入れることによって、手動で診断を起動することができます。 |
以下の例のように diag-trigger 変数を設定すると、XIR リセットを除くすべてのリセットで POST および OpenBoot 診断が起動されます。
ok setenv diag-switch? true ok setenv diag-trigger soft-reset