プラットフォームに 2 枚の制御ボードを装着して、冗長機能を実現することができます。一方は主制御ボードで、他方はスペア制御ボードです。障害発生時に主制御ボードからスペア制御ボードに切り替えることを、制御ボードのフェイルオーバーと呼びます。このフェイルオーバーは自動的に行われます。必要な場合には、制御ボードのフェイルオーバーを強制することもできます。
この章では、デュアル構成での制御ボードの機能と制御ボードのフェイルオーバーの動作について説明します。
デュアル SSP 構成 (メイン SSP およびスペア SSP) と同様にシングル SSP 構成でもデュアル制御ボードを装備することができます。制御ボードのフェイルオーバー動作は、両方の構成で同じです。
制御ボードエグゼクティブ (CBE) は、制御ボード上で実行され、SSP とプラットフォーム間のやり取りを容易にします。
電源を入れると、メイン SSP から両方の制御ボードが起動されます。起動された CBE は、SSP 上で実行されている制御ボードサーバーと fod (フェイルオーバー) デーモンが接続を確立するのを待ちます。fod デーモンと制御ボードの間の接続によって、SSP と制御ボードのフェイルオーバーが容易になります。
CBE 内のフェイルオーバータスクによって、メイン SSP とスペア SSP を接続し、フェイルオーバー状態を監視することができます。このタスクは、メイン SSP およびスペア SSP 上で実行されている fod デーモンからの TCP/IP 接続をチェックし受け付けます。また、フェイルオーバータスクはハートビートメッセージを読み取り、メインとスペアの両方の SSP 上の fod デーモンにこのメッセージを転送します。
SSP 上で実行されている制御ボードサーバーが制御ボード上で実行されている CBE に接続されると、CBE はその制御ボードを主制御ボードとして認識します。主制御ボードは、JTAG インタフェースを提供します。このインタフェースにより、制御ボードのコンポーネントと、他の Sun Enterprise 10000 システムのコンポーネントが通信できるようになり、Sun Enterprise 10000 システムを監視・構成することが可能です。主制御ボードはシステムクロックも供給します。このクロックは、センタープレーン、CPU クロック、およびシステムボードの速度と同期し、制御します。
SSP を起動すると、fod を含むいくつかのデーモンとともに制御ボードサーバー (CBS) が自動的に起動します。SSP と主制御ボードの間の非フェイルオーバー通信は、すべて CBS によって行われます。
CBS が接続を試みるのは、制御ボードの構成ファイルで主制御ボードとして指定されているボードだけです。
制御ボードの構成ファイルを手動で変更しないでください。この構成ファイルの変更には、ssp_config(1M) コマンドを使用してください。
制御ボードの構成ファイルの形式は、以下のとおりです。
platform_name:platform_type:cb0_hostname:status0:cb1_hostname:status1 |
ここで、
platform_name は、システム管理者が割り当てた名前です。
platform_type は、Ultra-Enterprise-10000 です。
cb0_hostname は、有効であれば、制御ボード 0 のホスト名です。
status0 は、制御ボード 0 が主制御ボードであるかどうかを示します (P の場合は主制御ボードです。それ以外の文字の場合は、主制御ボードではありません) 。
cb1_hostname は、有効であれば、制御ボード 1 のホスト名です。
status1 は、制御ボード 1 が主制御ボードであるかどうかを示します。
たとえば、以下のようになります。
xf2:Ultra-Enterprise-10000:xf2-cb0:P:xf2-cb1: |
この例では、プラットフォーム xf2 に 2 個の制御ボードが装着されています。制御ボードは、xf2-cb0 と xf2-cb1 です。xf2-cb0 が主制御ボードに指定されています。詳細は、マニュアルページの cb_config(4) を参照してください。
制御ボードサーバーと制御ボードエグゼクティブの間の通信に使用される通信ポートは、/tftpboot/xxxxxxxx.cb_port に指定されます。xxxxxxxx は制御ボードの IP アドレスであり、16 進数で表されます。
メイン SSP は、制御ボードの起動サーバーです。起動時には、制御ボードの起動 PROM によって 2 つのファイルがダウンロードされます。1 つは CBE のイメージファイルであり、もう 1 つはポート番号指定ファイルです。これらのファイルは SSP の /tftpboot に保存されていて、以下の形式の名前になっています。
/tftpboot/xxxxxxxx for the cbe image /tftpboot/xxxxxxxx.cb_port for the port number |
xxxxxxxx は制御ボードの IP アドレスであり、16 進数で表示されます。
たとえば、制御ボード xf2-cb0 の IP アドレスが 129.153.3.19 のとき、この制御ボードのファイルは以下のようになります。
/tftpboot/81990313 /tftpboot/81990313.cb_port |
制御ボードのフェイルオーバーは、SSP のインストールまたはアップグレード時に自動的に使用可能になります。制御ボードおよびその他のフェイルオーバーコンポーネントのフェイルオーバー監視は、fod デーモンによって行われます。主制御ボードが正しく機能していない場合は、fod デーモンがスペア制御ボードへの自動フェイルオーバーを起動します。制御ボードの障害は、以下の原因によります。
クロック障害
クロック障害が発生すると、動作中のすべてのドメインが同時にアービトレーション停止 (arbstop) し、制御ボードフェイルオーバーが自動的に起動されます。システムクロックと JTAG インタフェースの両方が自動的にスペア制御ボードへ渡されます。制御ボードが新たに起動すると、通常の EDD 回復動作により、Sun Enterprise 10000 のドメインが再起動します。
JTAG インタフェース障害
SSP が JTAG インタフェースと通信できなくなると、SSP は制御ボードが故障したと判断し、制御ボードフェイルオーバーを自動的に起動します。
制御ボード上の Ethernet インタフェースの障害
制御ボードプロセッサの障害
制御ボードとハブ間のケーブル接続不良
制御ボードに接続されているハブの障害
メインSSP とハブ間のケーブルの接続不良
制御ボードネットワークに接続する SSP ネットワークインタフェースカード (NIC) の障害
制御ボードネットワークの NIC を使用不可にしたために発生したユーザー操作エラー
ただし、障害の状態によっては、fod デーモンが制御ボードフェイルオーバーを使用不可にすることがあります。障害状態の詳細と実行されるフェイルオーバー動作の概要については、第 10 章「SSP の内部構造」を参照してください。
制御ボードのフェイルオーバーは、ドメインが実行されているかどうかによって部分的または完全のいずれかになります。
ドメインが実行中であって制御ボードに障害状態が検出された場合は、部分的なフェイルオーバーが発生します。
部分的なフェイルオーバーでは、JTAG インタフェースが主制御ボードからスペア制御ボードに移されます。ただし、システムクロックソースは障害のある主制御ボードに残ります。この場合、制御ボードフェイルオーバーを手動により完了させ、JTAG インタフェースとシステムクロックソースの両方が同じ制御ボードで管理されるようにしなければなりません。詳細については、「完全な制御ボードフェイルオーバーを強制する」を参照してください。
実行中のドメインがなくて制御ボードに障害状態が検出された場合は、完全なフェイルオーバーが発生します。
完全な制御ボードのフェイルオーバーでは、JTAG インタフェースとシステムクロックソースの両方が主制御ボードからスペア制御ボードに移されます。
以下に説明する手順により、制御ボードフェイルオーバーを使用可能、使用不可にしたり、強制することができます。メイン SSP 上で setfailover(1M) コマンドを使用して、フェイルオーバー状態を管理します。たとえば、制御ボードのフェイルオーバーが発生した後に、setfailover(1M) コマンドを使用して制御ボードのフェイルオーバー機能を再び使用可能にする必要があります。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setfailover -t cb off |
制御ボードのフェイルオーバーは、ユーザーが使用可能にするまで使用不可のままです。制御ボードフェイルオーバーが使用不可になっているかどうかを判定するには、「制御ボードフェイルオーバー情報の取得」で説明するように、showfailover(1M) コマンドを使用してフェイルオーバー状態を調べます。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setfailover -t cb on |
すべての接続リンクが正しく機能している場合に、制御ボードのフェイルオーバーが有効になります。障害のある接続が 1 つでもあると、制御ボードフェイルオーバーは使用不可になります。showfailover(1M) コマンドを使用すれば、制御ボードフェイルオーバーが使用可能かどうかを調べて、接続状態を見直すことができます。
完全な制御ボードフェイルオーバー (JTAG 接続とシステムクロックソースの両方が主制御ボードからスペア制御ボードに移されます) を強制するには、まず、実行中のドメインをすべて停止します。次に、すべてのシステムボードの電源を切断し再び電源を投入した後で、制御ボードのスイッチを入れます。一部でも停止していないドメインがあると、部分的な制御ボードフェイルオーバーが発生します。この場合は、JTAG 接続はスペア制御ボードに移されますが、システムクロックソースは元の主制御ボードに残ります。
実行されているドメインがあれば、標準的な shutdown(1M) コマンドを使用してこれらのドメインを停止してください。
ユーザー名 ssp でメイン SSP にログインします。
ドメインが停止しているかどうかを確認するために、以下の処理を行います。
以下のように入力して、制御ボードフェイルオーバーを強制します。
ssp% setfailover -t cb force |
すべてのドメインに対して bringup(1M) コマンドを実行します。
「制御ボードフェイルオーバーを使用可能にする」の説明に従って、制御ボードフェイルオーバーを再度、使用可能にしてください。
メイン SSP 上で showfailover(1M) コマンドを使用すれば、SSP または制御ボードのフェイルオーバー状態と専用接続リンクの状態を知ることができます。SSP と制御ボードの名前も知ることができます。また、JTAG インタフェースとシステムクロックを管理している制御ボードも識別できます。表示されるフェイルオーバー情報の詳細は、「フェイルオーバー状態情報の取得」を参照してください。
以下の例は、主制御ボードに障害がある場合に制御ボードフェイルオーバーについて表示される情報です。
ssp% showfailover Failover State: SSP Failover: Active CB Failover: Failed Failover Connection Map: Main SSP to Spare SSP thru Main Hub: GOOD Main SSP to Spare SSP thru Spare Hub: GOOD Main SSP to Primary Control Board: FAILED Main SSP to Spare Control Board: GOOD Spare SSP to Main SSP thru Main Hub: GOOD Spare SSP to Main SSP thru Spare Hub: GOOD Spare SSP to Primary Control Board: FAILED Spare SSP to Spare Control Board: GOOD SSP/CB Host Information Main SSP: xf12-ssp Spare SSP: xf12-ssp2 Primary Control Board (JTAG source): xf12-cb1 Spare Control Board: xf12-cb0 System Clock source: xf12-cb1 |
Hostview を使用して、制御ボードフェイルオーバーのタイプ (完全または部分的) を確認することもできます。Hostview において、JTAG インタフェースとシステムクロックを管理している制御ボードが、文字「J」 (JTAG) と「C」 (システムクロックソース) で示されます。
図 9-1 は、部分的な制御ボードフェイルオーバーの後の Hostview ウィンドウの例です。この例では、1 つの制御ボードが JTAG インタフェースを処理し、もう 1 つの制御ボードがシステムクロックソースとして機能しています。
制御ボードフェイルオーバーの発生後、以下の回復作業を行う必要があります。
フェイルオーバーの原因となった障害点または障害状態を特定し、障害を修正する方法を決めます。
たとえば、制御ボードフェイルオーバーの原因が制御ボードの障害である場合は、障害のある制御ボードを交換する必要があるかどうかを決めます。
showfailover(1M) コマンドを使用してフェイルオーバー状態を調べ、JTAG インタフェースとシステムクロックを管理している制御ボードを特定します。showfailover の出力の接続マップと第 10 章「SSP の内部構造」のフェイルオーバー検出ポイントの概要を見直します。
また、プラットフォームログファイルによって他のエラー状態を調べ、障害のあるコンポーネントの再起動に必要な修正処置を決めます。
部分的なフェイルオーバーが発生した場合は、再び JTAG とシステムクロックインタフェースの同期をとり、両方が同じ制御ボードで管理されるようにします。
再び JTAG とシステムクロックインタフェースの同期をとるには、「完全な制御ボードフェイルオーバーを強制する」で説明したように、完全な制御ボードフェイルオーバーを実行します。停止される最初のドメインによって、主制御ボード上のシステムクロックと JTAG インタフェースが再び同期されます。
制御ボードの障害を解決したら、制御ボードフェイルオーバーを再び使用可能にします (「制御ボードフェイルオーバーを使用可能にする」を参照)。