SSPには、オペレータが介入しなくても数分間でフェイルオーバー状態を検出し、メイン SSPをスペア SSPに切り替える自動フェイルオーバー機能があります。フェイルオーバー状態とは、メイン SSPとスペア SSPの間、両方の制御ボード間、またはネットワーク接続間で発生する障害です。自動フェイルオーバー機構によって、両方の SSP および関連コンポーネントが常に監視され、フェイルオーバー状態が検出されます。
この章では、以下の項目について説明します。
必要なメイン SSP およびスペア SSP のアーキテクチャー
フェイルオーバーのためのデュアル SSP 構成の保守方法
シングル SSP 構成の保守方法
自動フェイルオーバーの動作
SSP フェイルオーバー、制御ボードフェイルオーバーのいずれか、または両方の機能を構成することができます。制御ボードの自動フェイルオーバーについての詳細は、第 9 章「デュアル制御ボードの取り扱い」を参照してください。また、これらのフェイルオーバー機能 (SSP フェイルオーバー、制御ボードフェイルオーバーのいずれか、または両方) を SSP、制御ボード、ハブといったコンポーネントに構成する方法についての詳細は、『Sun Enterprise 10000 SSP 3.5 インストールマニュアルおよびご使用の手引き』を参照してください。
自動 SSP および制御ボードフェイルオーバーを正しく機能させるには、以下の図に示すようにデュアル SSP 構成を設定する必要があります。
デュアル SSP および制御ボード (SSP、ハブ、制御ボードをそれぞれ 2 台ずつ使用した構成) フェイルオーバーに必要な SSP、制御ボード、ハブの構成を図 8-1 に示します。上記以外の構成で、フェイルオーバー機能をサポート可能な構成 (1 台の SSP に制御ボードを 2 台実装した構成など) についての詳細、ならびに自動フェイルオーバー機能を設定するための条件については、『Sun Enterprise 10000 SSP 3.5 インストールマニュアルおよびご使用の手引き』を参照してください。
フェイルオーバーのためにデュアル SSP 構成を保守するには、以下の点に留意してください。
ネットワーク内でメイン SSP と同様に機能するように、スペア SSP を正しく構成する必要があります。
メインとスペアの両方の SSP で同じバージョンの SSP ソフトウェアを実行する必要があります。
サードパーティ製アプリケーションの中には、SSP 上で実行可能なアプリケーションがあります。ただし、使用する SSP が『Sun Enterprise 10000 SSP 3.5 インストールマニュアルおよびご使用の手引き』で説明している OpenSSP 条件を満たしていることが必要です。
自動フェイルオーバーでは、以下に注意してください。
フェイルオーバーのためにスペア SSP 上で保守する必要があるユーザー作成ファイルがメイン SSP 上にある場合は、データ伝播リストでこれらのファイルを特定する必要があります。
このデータ伝播リストによって、メイン SSP 上のどのユーザー定義ファイルを、データ同期プロセスの一部としてスペア SSP に自動コピーし更新するかが決まります。このリストの制御についての詳細は、「データ同期の管理」を参照してください。
メイン SSP 上で実行するユーザー作成コマンドがある場合は、「コマンド同期の実行」で説明したように、フェイルオーバー回復のためにこれらのユーザーコマンドを準備する必要があります。
処理するために特定のファイルが必要なユーザーコマンドがある場合は、これらのファイルをデータ伝播リストに追加してください。
メイン SSP に対する変更はすべて、スペア SSP に対しても行う必要があります。
フェイルオーバーが使用不可であったりフェイルオーバーが発生して、SSP 構成を変更する場合は、直ちに ssp_backup(1M) をメイン SSP 上で実行し、SSP バックアップファイルを作成する必要があります。メイン SSP に障害が発生した場合にスペア SSP へ正しく切り替えるには、スペア SSP 上で復元できるバックアップファイルがなければなりません。
シングル SSP 構成の場合も、デュアル SSP 構成の場合も、データの同期を行う際に SSP 構成ファイルを /tmp ディレクトリへコピーします (データの同期に関する説明は、「データ同期の管理」を参照してください)。ただし、シングル SSP 構成の場合は、定期的に setdatasync clean コマンドを実行して、/tmp ディレクトリに蓄積される SSP メッセージファイルとログファイルの数を減らしてください。setdatasync clean(1M) コマンドの使い方についての詳細は、「データ伝播リストを削除する」および setdatasync(1M) に関するマニュアルページを参照してください。
メイン SSP からスペア SSP への自動フェイルオーバーは、以下のように行われます。
フェイルオーバーの監視
フェイルオーバーの監視は、fod デーモンによって行われます。このデーモンは、デュアル SSP 構成のコンポーネントが障害状態であるかどうかを連続して監視します。フェイルオーバー状態が検出されると、fod デーモンが ssp_startup デーモンとともに、メイン SSP からスペア SSP へのフェイルオーバーを実際に開始します。
fod デーモン、およびこのデーモンが検出するさまざまな障害状態については、第 10 章「SSP の内部構造」を参照してください。
データの同期
フェイルオーバーのためには、メイン SSP 上のデータがスペア SSP 上のデータと同期している必要があります。データ同期デーモン datasyncd(1M) によって、すべての SSP 構成ファイルと指定のユーザー作成ファイル (データ伝播リストで特定されたファイル) がメイン SSP からスペア SSP にコピーされ、障害発生時に両方の SSP の同期がとられます。datasyncd デーモンについての詳細は、第 10 章「SSP の内部構造」を参照してください。
このデータの同期は、メイン SSP 上の SSP 構成ファイルまたはユーザー作成ファイルが変更された場合、フェイルオーバーを初めて使用可能にしたとき、またはユーザーがデータ同期のためのバックアップを行うときに実行されます。データ同期のためのバックアップについての詳細は、「メイン SSP とスペア SSP の間で SSP 構成ファイルの同期をとる」を参照してください。
SSP 構成ファイルが変更されると、ただちにその変更がスペア SSP へ伝播されます。ただし、SSP 構成ファイルの ssp_resource(4) ファイルと COD ライセンスファイルについては、内容が 1 分ごとにチェックされ、変更された場合のみ伝播されます。
ユーザー作成ファイルが変更されると、setdatasync(1M) コマンドにより指定された時間間隔に従ってスペア SSP へ伝播されます。
「データ同期の管理」で説明するように、データ同期プロセスは setdatasync(1M) コマンドにより制御することができます。
コマンドの同期
自動フェイルオーバーによって中断されたユーザー定義コマンドの回復を「コマンドの同期」と呼びます。同期コマンドを使用して、フェイルオーバーの後に新しいメイン SSP 上でこれらのユーザーコマンドを再実行する方法を指定します。コマンド同期制御についての詳細は、「コマンド同期の実行」を参照してください。
浮動 IP アドレス
動作中のメイン SSP の特定には、SSP のインストールまたはアップグレード中に割り当てた浮動 IP アドレスを使用します。この浮動 IP アドレスは、論理インタフェースです。このインタフェースによって、特定の SSP ホスト名がなくても Sun Enterprise 10000 ドメインとメイン SSP の間の通信が可能になります。フェイルオーバーが発生すると、浮動 IP アドレスによって新しいメイン SSP が特定されます。このアドレスによって、外部監視ソフトウェアと動作中のメイン SSP の間の通信が可能になります。
以下の節では、SSP フェイルオーバーの基本的な状況と自動フェイルオーバーを制御するさまざまな方法について概説します。
デュアル SSP 構成の障害によってメイン SSP の適正な動作が影響を受けたときに自動フェイルオーバーが起動します。障害の原因として、以下が考えられます。
障害の発生したネットワーク接続
SSP システム障害の原因
システムパニック
完全な電源故障
5 分間以内持続する、OpenBoot PROM (OBP) の機能低下
リソースの減少
リソースの減少とは、SSP の動作に必要なディスク容量と仮想記憶が不足することです。このようにリソースが一定のしきい値を下回る場合は、fodデーモンがフェイルオーバーを開始します。これらのリソースはssp_resource(4) ファイルに格納されており、setfailover コマンドで変更することができます。詳細は、「ssp_resource ファイルのメモリーまたはディスク容量のしきい値を変更する」を参照してください。
ただし、オペレータの要求によってフェイルオーバーが使用不可になっている場合、または障害状態によってフェイルオーバーを防止している場合はフェイルオーバーが発生しないので注意してください。さまざまな障害状態とその結果生じるフェイルオーバー処理は、第 10 章「SSP の内部構造」にまとめてあります。第 10 章「SSP の内部構造」 では、フェイルオーバープロセスによって検出される障害を障害箇所ごとに説明しています。
フェイルオーバーの開始後、動作中の SSP 上で showfailover(1M) コマンドを実行すると、フェイルオーバーの状態情報を表示させることができます。詳細については、「フェイルオーバー状態情報の取得」を参照してください。showfailover コマンドにより表示されるフェイルオーバーの状態情報は、このコマンドを実行したときのフェイルオーバーの状態を示しています。
SSP フェイルオーバーが発生すると、以下のように状態が変化します。
最初に表示されるフェイルオーバーの状態は Failed となり、フェイルオーバーが開始されたことを示しています。
動作中の SSP がスペア SSP を認識するか、接続が正常に機能しなくなると、フェイルオーバーの状態は Disabled に変わります。結果として、フェイルオーバー機能は使用不可になります。
この時点で showfailover コマンドを実行して状態情報を表示させると、各種接続リンクの状態が FAILED とリスト表示されることになり、接続が正常に動作していないことを示します。
使用不可となった SSP とその接続状態が復旧すると、フェイルオーバーの状態は Failed に戻ります。
両方の SSP とその接続が正常に機能していても、フェイルオーバー機能は動作していません。再度、showfailover コマンドを実行して状態情報を表示させると、すべての接続リンクの状態が「GOOD」と表示され、両 SSP とその接続リンクが正常に機能していることを示します。この時点で、「SSP フェイルオーバーを使用可能にする」の手順に従って、自動フェイルオーバーを再度、使用可能にする必要があります。
SSP フェイルオーバー機能は、SSP のインストールまたはアップグレード時に自動的に使用可能になります。フェイルオーバー状態の制御には、setfailover(1M) コマンドを使用します。このコマンドで可能な処理は、以下のとおりです。
SSP フェイルオーバーを使用不可、使用可能にしたり、強制する。
ssp_resource ファイルのメモリーまたはディスク容量のしきい値を表示または設定する。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setfailover off |
SSP フェイルオーバーは、次の手順の説明に従ってユーザーが使用可能にするまで、使用不可のままとなります。
メイン SSP とスペア SSP をともに再起動すると、フェイルオーバーは自動的に使用可能に戻ります。
showfailover(1M) コマンドを実行してフェイルオーバーが使用不可になっていることを確認します。
詳細については、「フェイルオーバー状態情報の取得」を参照してください。フェイルオーバーの状態が Disabled と表示されなければなりません。
使用不可のフェイルオーバーを setfailover(1M) コマンドを使用して使用可能にする場合は、その前に接続状態をチェックします。フェイルオーバーを使用可能にする前に、すべての接続リンクが正しく機能している必要があります。障害のある接続が1つでもあると、フェイルオーバーは使用不可になります。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setfailover on |
両方の SSP およびその接続リンクが正常に機能していると、SSP フェイルオーバーが使用可能になります。
showfailover(1M) コマンドを実行してフェイルオーバーが使用可能になっていることを確認します。
フェイルオーバーおよび接続の状態を確認する方法については、「フェイルオーバー状態情報の取得」を参照してください。
フェイルオーバー状態が確認されるまでに数分間かかります。setfailover コマンドは、この間に制御ボードの接続をチェックし、SSP フェイルオーバーを使用可能にします。
SSP フェイルオーバーを強制する前に、メインとスペアの両方の SSP が同期していることを確認します。showdatasync(1M) コマンドを使用して、メイン SSP とスペア SSP 間のデータ同期の状態を調べます。詳細については、「データ同期情報の取得」を参照してください。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setfailover force |
強制フェイルオーバーを行う前に setfailover コマンドを使用すると、データの同期状態を調べることができます。以下のいずれかの状態となっていると、強制フェイルオーバーは行われません。
データ同期のバックアップを行っている (アクティブアーカイブと呼びます) 場合
メイン SSP からスペア SSP へファイルを伝播中の場合
データ同期キュー内に少なくとも 1 つ以上のファイルが入っている場合
showdatasync(1M) コマンドを実行すると、同期状態に関する情報を表示させることができます。
showfailover(1M) コマンドを実行して、強制フェイルオーバーが行われたことを確認し、フェイルオーバーおよび接続の状態を調べます。
詳細については、「フェイルオーバー状態情報の取得」を参照してください。
「SSP フェイルオーバーを使用可能にする」で説明したように、SSP フェイルオーバーを再度、使用可能にしてください。
メモリーまたはディスク容量のリソースが一定のしきい値を下回っていると、フェイルオーバーが発生します。ただし、setfailover(1M) コマンドを使用すれば、これらのリソースのしきい値 (ssp_resource(4) ファイルに格納されています) を変更することができます。
ユーザー名 ssp でメイン SSP にログインし、以下のいずれかの操作を行います。
メモリーのしきい値を変更する場合は、以下のように入力します。
ssp% setfailover -m memory_threshold |
ここで、memory_threshold は更新後の仮想メモリーの値 (KB) です。
ディスク容量のしきい値を変更する場合は、次のように入力します。
ssp% setfailover -d disk_space_threshold |
ここで、disk_space_threshold は更新後のディスク容量の値 (KB) です。
setfailover(1M) コマンドに -m または -d オプションだけを指定し、更新後のしきい値を確認してください。
メイン SSP 上で showfailover(1M) コマンドを使用すれば、フェイルオーバー状態の情報を表示できます。たとえば、以下のようなフェイルオーバー情報が表示されます。
ssp% showfailover Failover State: SSP Failover: Disabled CB Failover: Active Failover Connection Map: Main SSP to Spare SSP thru Main Hub: FAILED Main SSP to Spare SSP thru Spare Hub: FAILED Main SSP to Primary Control Board: GOOD Main SSP to Spare Control Board: GOOD Spare SSP to Main SSP thru Main Hub: FAILED Spare SSP to Main SSP thru Spare Hub: FAILED Spare SSP to Primary Control Board: FAILED Spare SSP to Spare Control Board: FAILED 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 |
フェイルオーバー状態の情報は、以下のとおりです。
フェイルオーバー状況 (Failover State)
フェイルオーバー状況は、以下のいずれかです。
有効 (Active) ― 自動フェイルオーバーが使用可能で正常に機能しています。
使用不可 (Disabled) ― オペレータの要求、またはフェイルオーバーを発生できない障害状態によって自動フェイルオーバーが使用不可になっています。
障害発生 (Failed) ― フェイルオーバーが発生しています。
フェイルオーバーの後は、setfailover(1M) コマンドを使用してフェイルオーバーを再び使用可能にするまでフェイルオーバー状態は「障害発生 (Failed)」です。すべての接続を修正しフェイルオーバー接続マップで「GOOD」と示された場合でも、フェイルオーバーを手作業で再び使用可能にする必要があります (以下を参照)。
フェイルオーバーが発生すると、フェイルオーバーは複数の状態に変化することに注意してください。詳細については、71 ページの「SSP フェイルオーバーの状態変化」を参照してください。
フェイルオーバー接続マップ
接続マップには、フェイルオーバープロセスによって監視された制御ボードの接続リンク状態が示されます。接続リンクの状態は、「GOOD」(接続が正しく機能していることを示します) または「FAILED」(接続が機能していないことを示します)です。
接続に障害が発生している場合は、この接続マップを使用して障害状態を判定してください。さまざまな障害箇所における障害状態についての詳細は、第 10 章「SSP の内部構造」の「フェイルオーバー検出箇所の説明」を参照してください。
SSP/CB ホスト情報
このホスト情報部は、SSP、制御ボード、JTAG インタフェースとシステムクロックを管理する制御ボードに関するものです。
showfailover(1M) コマンドで -r オプションを指定すれば、現在の SSP の役割についての情報を取得することができます。SSP の役割は、「UNKNOWN (SSP の役割が確定されていない)」、「MAIN」、または「SPARE」です。
showfailover(1M) コマンドの詳細については、showfailover(1M) マニュアルページを参照してください。
データ同期プロセスでは、メイン SSP 上に保存されている SSP 構成ファイルまたは指定されたユーザーファイルに対して行われた変更がすべてスペア SSP へコピーされます。また、このプロセスではコピーするファイルをデータ同期キューにリストしますので、メイン SSP からスペア SSP へコピーされるファイルをユーザーが調べることができます。キューに入っているファイルを調べるには showdatasync(1M) コマンドを使用します。
フェイルオーバーのためにスペア SSP 上で管理する必要があるユーザー作成ファイル (SSP ディレクトリに含まれていない非 SSP ファイル) がある場合は、データ伝播リスト (/var/opt/SUNWssp/.ssp_private/user_file_list) でこれらのファイルを特定する必要があります。datasyncd デーモンは、このリストを使用して、メイン SSP からスペア SSP にコピーするファイルを判定します。
デフォルトの設定では、データ同期プロセスは、メイン SSP 上に保存されているユーザー作成ファイルが変更されているかどうかを 60 分ごとにチェックすることになっています。setdatasync コマンドを実行すれば、データ伝播リストへの変更をチェックする時間間隔を設定することができます (「ファイルをデータ伝播リストに追加する」を参照してください)。この時間間隔は、ファイルをデータ伝播リストに追加した時刻からカウントされます。このリストで指定されたファイルは、前回のチェック時間以降にファイルが変更された場合にスペア SSP へ伝播されます。
データ同期デーモンは、/tmp ディレクトリの使用可能なディスク領域を使用してメイン SSP からスペア SSP にファイルをコピーします。コピーするファイルが /tmp ディレクトリの容量を超える場合は、これらのファイルを伝播することはできません。たとえば、データ同期バックアップファイル (ds_backup.cpio) が /tmp ディレクトリの使用可能容量を超える場合は、データの伝播を行う前にこのファイルのサイズを小さくする必要があります。データ同期バックアップファイルのサイズを小さくする方法の詳細については、「データ同期バックアップファイルのサイズを小さくする」を参照してください。
setdatasync(1M) コマンドを使用して、以下の処理を行います。
ファイルをデータ伝播リストに追加し、このファイルの変更をチェックする頻度を指示する。
データ伝播リストからファイルを削除する。
データ伝播リスト内のエントリと一時ファイルをすべて消去し、データ伝播リストを削除する。
ファイルをデータ伝播リストに追加しないでスペア SSP に伝播 (プッシュ) する。
メイン SSP とスペア SSP の間で再び SSP 構成ファイルの同期をとる。
スペア SSP 上のファイルは、datasyncd デーモンによって監視されません。つまり、スペア SSP 上のユーザー作成ファイルを削除した場合に、そのファイルはメイン SSP からスペア SSP に自動的に復元 (コピー) されるわけではありません。また、SSP 構成ファイルはスペア SSP から削除しないでください。
詳細は、setdatasync(1M) マニュアルページを参照してください。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setdatasync -i interval schedule filename |
ここで、interval は、filename で指定したファイルがデータ同期プロセスの一部としてチェックされる頻度 (分) です。ファイル名は、絶対パスで指定する必要があります。データ伝播リストのファイルがスペア SSP にコピーされるのは、これらのファイルがメイン SSP 上で変更された場合だけです。ファイルがチェックされるたびにコピーされるわけではありません。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setdatasync cancel filename |
ここで、filename はデータ伝播リストから削除するファイルです。ファイル名は、絶対パスで指定する必要があります。
setdatasync clean コマンドは、シングル SSP 構成でディスク容量を制御するのに有用です。この構成では、データ伝播リストが非常に大きくなり、不要なディスク容量が消費されます。/tmp ディレクトリの容量をすべて使い切ってしまう可能性があり、システムがハングアップする原因となります。setdatasync clean コマンドを毎日、あるいは 1 週間ごとに必要に応じて実行すると、/tmp ディレクトリが大きくなり過ぎないように抑えることができます。また、setdatasync clean コマンドを実行する crontab(1M) エントリを作成して cron(1M) コマンド使用すると、ディレクトリのクリーンアップ (整理) 操作を自動化することができます。
デュアル構成では、メイン SSP とスペア SSP の間でデータが非同期になることがあるため、このオプションは使用しないでください。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setdatasync push filename |
ここで、filename は、データ伝播リストに追加しないでスペア SSP に移動するファイルです。ファイル名は、絶対パスで指定する必要があります。
たとえば、SSP フェイルオーバーを使用不可にして、再度、使用可能にしたときなど、この手順に従って、メイン SSP とスペア SSP 間のデータの同期を維持します。なお、SSP 構成ファイルをアーカイブする場合は、ssp_backup(1M) コマンドを使用してください。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% setdatasync backup |
メイン SSP 上のすべての SSP 構成データのデータ同期バックアップファイル (/tmp/ds_backup.cpio) が作成され、スペア SSP 上に復元されます。ただし、データ同期バックアップは、ssp_backup(1M) コマンドが作成するバックアップと異なる点があります。
データ同期バックアップは、ssp_backup コマンドが作成するバックアップと同様に、/tftpboot ディレクトリはバックアップしません。
データ同期バックアップは、以下のファイルを復元しません。
/var/opt/SUNWssp/.ssp_private/machine_server_fifo
/var/opt/SUNWssp/adm/messages
このファイルは、スペア SSP 上の /var/opt/SUNWssp/adm/messages.dsbk ファイルへ伝播されます。
/var/opt/SUNWssp/adm/messages.dsbk
/var/opt/SUNWssp/.ssp_private/user_file_list
/var/opt/SUNWssp/.ssp_private/.ds_queue
バックアップファイルが /tmp ディレクトリの使用可能ディスク容量を超えた場合は、データ同期バックアップが失敗します。データ同期バックアップファイルのサイズを小さくする方法の詳細は、以下の手順を参照してください。
スーパーユーザーでメイン SSP にログインし、ssp_backup(1M) コマンドを実行して SSP 環境のアーカイブを作成します。
setdatasync backup を実行する前に以下のファイル削除し、作成されるデータ同期バックアップファイルのサイズを小さくします。
$SSPLOGGER/messages.x
$SSPLOGGER/domain/Edd-recovery_files
$SSPLOGGER/domain/messages.x
$SSPLOGGER/domain/netcon.x
$SSPLOGGER/domain/post/files
ここで、x はファイルのアーカイブ番号です。これらのファイルはフェイルオーバーの後に新しいメイン SSP からスペア SSP に伝播されるため、メイン SSP とスペア SSP の両方でこれらのファイルを削除して、ファイルが再び作成されないようにする必要があります。
メイン SSP 上で showdatasync(1M) コマンドを使用して、データ同期に関する情報を取得します。この節の例では、showdatasync コマンドで表示されるさまざまな情報を示しています。詳細は、showdatasync(1M) マニュアルページを参照してください。
次の例は、データ同期プロセスのファイル伝播の状態、現在伝播されているファイル (なし)、データ伝播のためにキューにリストされたファイル数 (なし) を示しています。この例に表示されている「ACTIVE ARCHIVE」という状態は、データ同期のバックアップが進行中であることを示しています。
ssp% showdatasync File Propagation Status: ACTIVE ARCHIVE Active File: - Queued files: 0 |
次の例は、データ同期プロセスのファイル伝播の状態、現在伝播されているファイル、データ伝播のためにキューにリストされたファイル数 (なし) を示しています。この例に表示されている「ACTIVE」という状態は、データ同期プロセスが有効となっていて、正常に機能していることを示しています。また、現在伝播しているアクティブファイルがデータ同期バックアップファイルであることがわかります。
ssp% showdatasync File Propagation Status: ACTIVE Active File: /tmp/ds_backup.cpio Queued files: 0 |
次の例は、データ伝播リストを示しています。表示されている「INTERVAL」の数値は、ファイルに変更が加えられていないかどうかをデータ同期プロセスがチェックする頻度を分単位で示しています。
ssp% showdatasync -l TIME PROPAGATED INTERVAL FILE Mar 23 16:00:00 60 /tmp/t1 Mar 23 17:00:00 120 /tmp/t2 |
次の例は、データ同期のために待ち行列に入れられたファイルを示しています。
ssp% showdatasync -Q FILE /tmp/t1 /tmp/t2 |
コマンド同期は、フェイルオーバーによって中断されたユーザー定義コマンドを回復し、フェイルオーバーの後に新しいメイン SSP 上でこれらのコマンドを再実行します。コマンド同期の処理は、以下のとおりです。
フェイルオーバーの後に再起動するコマンドを指定するコマンド同期リストをスペア SSP で保守する。各コマンドはユーザー ssp として実行される。
フェイルオーバーの後に、指定のユーザーコマンドを再実行する。
フェイルオーバーの後に、指定した任意のポイント (各スクリプト内で指定します) から指定のユーザースクリプトの処理を再開する。
これらのユーザースクリプトは、スクリプト内のラベルを付けたマーカーポイントから処理が再開できるように構成する必要があります。
フェイルオーバーの後にユーザーコマンドを自動回復したい場合は、以下の節で説明するように、同期のためにこれらのコマンドを準備する必要があります。
runcmdsync(1M) コマンドは、自動再起動のためにユーザーコマンドを準備します。runcmdsync は、ユーザーコマンドをコマンド同期リストに追加します。このリストによって、フェイルオーバーの後に再実行するコマンドを特定します。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% runcmdsync script_name [parameters] |
ここで、script_name は再起動するユーザーコマンドの名前で、parameters は指定のコマンドに関連するオプションです。指定のコマンドは、フェイルオーバーの後に新しいメイン SSP 上で自動的に再実行されます。
スクリプト内の指定した任意のポイント (位置) からユーザースクリプト処理を再開する場合は、以下の同期コマンドをユーザースクリプトに入れる必要があります。
initcmdsync(1M) は、特定のスクリプトと関連データを特定するコマンド同期記述子を作成します。
これらの記述子は、自動フェイルオーバーの後に再起動するユーザースクリプトを判別するコマンド同期リストに記載されます。
savecmdsync(1M) は、スクリプトが再起動できるマーカーポイントを指定します。
cancelcmdsync(1M) は、コマンド同期リストからコマンド同期記述子を削除します。
同期のためにスクリプトを初期化してコマンド同期リストからコマンドを削除するには、各スクリプトに initcmdsync と cancelcmdsync コマンドを入れる必要があります。同期コマンドの詳細は、cmdsync(1M) マニュアルページを参照してください。
これは、経験豊富なプログラマ向けの同期コマンドです。回復のためにスクリプトを準備するには、この節で説明した同期コマンドの代わりに runcmdsync(1M) コマンドを使用することができます。ただし、runcmdsync(1M) コマンドは指定のマーカーポイントからではなく最初から再実行するようにスクリプトを準備します。
以下の手順は、これらの同期コマンドの使用方法です。
SSP フェイルオーバーの後やシングル SSP 構成では、SSP フェイルオーバーは使用不可です。フェイルオーバーが使用不可である場合は、同期コマンドを含むスクリプトによって、プラットフォームログファイルに対するエラーメッセージが生成され、ゼロ以外の終了コードが返されます。これらのエラーメッセージは、無視することもできます。
ユーザースクリプトに以下のように入力し、スクリプトを識別するコマンド同期記述子を作成します。
initcmdsync script_name [parameters] |
ここで、script_name はスクリプト名で、parameters は指定スクリプトに関連するオプションです。initcmdsync コマンドから返される出力は、コマンド同期記述子として機能します。
ユーザースクリプトに以下のように入力し、処理を再開できる実行ポイントを指定します。
savecmdsync -M identifier cmdsync_descriptor |
ここで、identifier はスクリプトを再起動できる実行ポイントを指定する正の整数で、cmdsync_descriptor は initcmdsync コマンドによって出力されるコマンド同期記述子です。
ユーザースクリプトの最後のシーケンスの後に、以下のように入力します。
cancelcmdsync cmdsync_descriptor |
ここで、cmdsync_descriptor は initcmdsync コマンドによって出力されるコマンド同期記述子です。指定の記述子がコマンド同期リストから削除され、フェイルオーバーの後に新しいメイン SSP 上でユーザースクリプトが実行されないようになります。
メイン SSP 上で showcmdsync(1M) コマンドを使用して、自動フェイルオーバーの後に新しいメイン SSP 上で再起動されるユーザーコマンドを特定するコマンド同期リストを見直します。
showcmdsync (1M) コマンドによって出力されるコマンド同期リストの例を次に示します。
ssp% showcmdsync DESCRIPTOR IDENTIFIER CMD 0 -1 c1 c2 a2 |
詳細は、showcmdsync(1M) マニュアルページを参照してください。
SSP では、同期コマンドの使用方法を示すユーザースクリプトのサンプルが添付されています。このスクリプトは、/opt/SUNWssp/examples/cmdsync ディレクトリにあります。このディレクトリには、このスクリプトの機能を説明する README ファイルも含まれています。
SSP フェイルオーバーの発生後、以下の回復作業を行う必要があります。
フェイルオーバーの原因となった障害箇所または障害状態を特定し、障害を修正する方法を決めます。
フェイルオーバー状態によっては、フェイルオーバーを開始するか使用不可にするかに注意します。障害箇所を特定するには、showfailover(1M) コマンドを使用してフェイルオーバー状態と接続状態を調べます。showfailover 出力の接続マップと、第 10 章「SSP の内部構造」のフェイルオーバー検出ポイントを見直します。
また、プラットフォームログファイルによって他のエラー状態を調べ、障害のあるコンポーネントの再起動に必要な修正処置を決めます。
問題を解決した後、setfailover(1M) コマンドを使用して SSP フェイルオーバーを再び使用可能にします (「SSP フェイルオーバーを使用可能にする」を参照) 。
フェイルオーバーによって中断された SSP コマンドをすべて再実行します。ただし、DR コマンド (addboard(1M)、deleteboard(1M)、moveboard(1M)) は例外です。これらのコマンドは、新しいメイン SSP 上で自動的に再開されます。