ファーム管理要求は、Control Center またはコマンド行インタフェースを使って発行します。 ファーム管理要求には、ファームの起動要求、更新要求、停止要求などがあります。 これらの要求が処理されると、ファームの状態は推移します。 しかし、ある時点でファーム要求に失敗した場合、そのファームはエラー状態に置かれます。 この章では、これらのエラーの診断方法と、エラー状態のファームの修正方法について説明します。
I-Fabric の障害追跡の詳細については、『N1 Provisioning Server 3.1, Blades Edition システム管理ガイド』を参照してください。
この章の内容は、次のとおりです。
複雑なシステムの場合と同様に、ファームの状態が推移するときには、エラーが発生する可能性があります。 こうしたエラーは、ただちに修復できなければなりません。 エラー状態の解決には、次の一般的な方法を使用します。
ファーム要求が失敗したことを確認します。
エラー状態を確認して、問題を診断します。
問題を修正します。たとえば、障害が発生したサーバーを置き換えたり、ファームリソースを解放したり、ネットワークの問題を解決したりします。 次に、farm -af コマンドを実行してファームを起動します。
代わりに、問題を回避することもできます。たとえば、要求を削除してファームを元の状態に戻す方法や、ファームを削除して処理をやり直す方法があります。
論理サーバーファーム内の各デバイスは、継続して可用性を監視されます。 デバイスに障害が発生すると、監視機能により警告が発行されます。 N1 Provisioning Server ソフトウェアは、同じ構成の別の物理デバイスを自動的に起動し、障害が発生したデバイスを置き換えます。 このような場合、フェイルオーバーは予想された動作であり、エラーメッセージは生成されません。
ほとんどのエラー状態は、管理者が診断および解決できます。 しかし、稀に、Sun サービスプロバイダが解決しなければならないエラー状態もあります。
高度な障害の種類には、リソース層のデバイス障害、つまりデバイスとネットワークの障害、構成エラー、またはリソース不足、ソフトウェア構成エラー、ソフトウェアエラー、制御プレーンのエラーなどが含まれます。 ファームの起動時には、次のような障害が発生する可能性があります。
リソース不足のため処理を完了できない
プロビジョニング可能なサーバー (PES) の構成の問題
ネットワークの問題
ワイヤリングの問題
その他の障害も存在します。 さまざまなデバイスとシステムが使用されるため、多くの障害ポイントを調査する必要があります。 しかし、次の場合、問題が発生していることがわかります。
Control Center の「Administration」画面で、「Farm Request」ダイアログの「Message」セクションに障害ステータスが表示されている
Control Center のメイン画面と「Editor」画面の「Farm Details」セクションに障害が発生した要求が表示されている
farm -l farm_ID コマンドを実行したとき、ファームの ERROR が 1000 以外の非ゼロ値で、ファームが適切な状態にない
ファームライフサイクル管理は、Control Center ソフトウェアが提供する主要機能の 1 つです。 ファームがライフサイクル内で異なったステージに移行すると、このステージ情報が制御プレーン内のファーム状態として表示されます。 エラー状態を判断するには、外部および内部のファーム状態に関する知識が必要です。
次の 2 種類の状態情報があります。
外部状態 — Control Center に表示される
内部状態 — コマンド行インタフェースでアクセスする
外部状態は、文字列で表されます。 次に、有効なファームの外部状態を一覧します。
NEW– ファームが作成された
ACTIVE– ファームは起動し、顧客を待機している
INACTIVE– ファームは非アクティブ
STANDBY– ファームは待機モード
図 6–1 は、外部ファーム状態と状態の推移を表しています。
これらの外部状態は、Control Center に表示されるファームのライフサイクル状態とは完全には一致しません。 たとえば、外部状態には、設計状態に対応する状態はありません。また、Control Center には、「New」状態に対応する状態はありません。
内部状態は、SP によって管理され、表示するには SP コマンド行インタフェースを使用する必要があります。 これらの内部状態は、障害追跡だけでなく、自動化された起動、更新、廃棄などのさまざまなステージを通してファームの状態の推移を監視するのに役立ちます。 内部状態は整数で表されます。 有効な内部状態の値は、次の表のとおりです。
表 6–1 有効な内部状態値
内部状態 |
内部状態値 |
外部状態 |
意味 |
---|---|---|---|
CREATED |
0 |
New |
ファームは作成されたばかりで、まだ起動用に送信されていない |
NEW_CONFIG |
10 |
New |
ファームのリソースが変更された点は CREATED と同じだが、SP はファームを引き継いでいない |
ALLOCATED |
20 |
New |
リソースがデータベース内のファームに割り当てられた |
WIRED |
30 |
New |
ファームトポロジに従って物理デバイスが接続された |
DISPATCHED |
40 |
New |
SP サーバーがファームを所有している。 ファームに Domain Name System (DNS)、Dynamic Host Configuration Protocol (DHCP)、および Network Interface Card (NIC) が設定された。 さらに、ファームが監視対象として登録されたか、登録処理中。 この処理は、最初の起動処理時とファームの更新処理時に発生する |
ACTIVE |
50 |
Active |
ファームがアクティブで、実行中 |
IDLE |
60 |
Active |
Sun Microsystems 用に予約済み |
STANDBY |
70 |
Standby |
ファームは待機状態。 IP アドレスはファームに関連付けられたまま |
SHUTDOWN |
90 |
Active (待機または非アクティブ保留中) |
ファームデバイスが停止している |
UNWIRED |
100 |
Active (待機または非アクティブ保留中) |
物理デバイスがファームから切り離された |
DEACTIVATED |
110 |
Inactive |
ファームは非アクティブで、すべてのリソースが解放された |
UPDATED |
120 |
Active |
ファームが更新された |
ファームに関する情報を一覧するには、farm -l コマンドを使用します。 このままで使用する場合、farm –l はすべてのファームに関する情報を一覧します。 ファーム ID (ファームの作成時に割り当てられた一意の文字列) を指定して使用する場合、farm –l farm_ID は特定のファームに関する情報を一覧します。 次のように出力されます。
FARM_ID FARM_NAME CUSTOMER STATE ISTATE ERROR OWNER 123 testx Customerx ACTIVE ACTIVE 0 SM:cp1
この例からわかるように、ファームの外部状態と内部状態の両方が一覧されます。 また、内部状態は、数値からテキスト文字列に変換されています。
要求は、N1 Provisioning Server でよく使用するメインの通信機構です。 通常、要求は Control Center から開始されます。後続の要求は制御プレーン内で生成され、Control Center の要求の完了を支援します。 代わりに、コマンド行インタフェースを使って、ID に直接要求を送信することもできます。
通常、Control Center は、要求を制御プレーンに送信することにより、ファーム処理を開始します。 このファーム要求は、まず Segment Manager に渡されます。続いて、Segment Manager は、Farm Manager に要求を送信して処理を委託します。
Control Center 要求から制御プレーンへの 1 対 1 の関係はありません。 Control Center からの 1 つのファーム要求は、実際は、さまざまな要求サーバーに宛てられた複数の要求によって完了します。 1 つの Control Center 要求を完了するために必要な実際の要求数は、実装によって異なります。
Control Center または CLI (クライアント) によって待ち行列に入れられる場合、要求は制御プレーン (サーバー) によって処理されるか、取り消されます。
要求のライフサイクルは、QUEUED_BLOCKED または QUEUED 状態から開始し、CANCELLED、TIMEOUT、DONE、INTERNAL_ERROR、DELETED のいずれかの状態で終了します。
表 6–2 に、要求のライフサイクルのステータスを一覧します。
表 6–2 要求ライフサイクルのステータス
要求の状態 |
状態の説明 |
---|---|
QUEUED または QUEUED_BLOCKED |
すべての要求の初期状態 |
INPROGRESS |
要求はサーバー側の RequestHandler によって処理されている |
DONE |
サーバー側で要求の処理が完了した |
INTERNAL_ERROR |
サーバー側で処理中にエラーが発生した |
CANCELLED |
要求が取り消された (通常、要求を取り消すのは要求元) |
DELETED |
要求が削除された |
TIMEDOUT |
要求が指定の時間内に完了しなかった |
FAILED |
要求の処理中にエラーが発生した |
ファーム処理の失敗シナリオの詳細については、『N1 Provisioning Server 3.1, Blades Edition システム管理ガイド』を参照してください。
ファーム処理に成功した場合、次の結果が得られます。
Control Center の「Administration」画面の「Farm Request」ダイアログの「Message」セクションに、完了ステータスが表示される
farm –l farm_ID コマンドが ERROR (0) を出力し、この処理の適切な状態を表すファーム状態になる
ファーム処理に失敗した場合、次の結果が得られます。
Control Center の「Administration」画面の「Farm Request」ダイアログの「Message」セクションに障害ステータスが表示される
ファームの ERROR はゼロ以外の数字 (1000 以外) で、適切なファーム状態にならない。 ERROR (1000) はエラーではなく、ファーム処理が進行中であることを示す
ファームが SP に割り当てられている場合 (farm –l farm_ID コマンドで確認)、その SP 上の /var/adm/messages ファイルと /var/adm/tspr.debug ファイルにエラーメッセージがないか確認する
Master Segment Manager を実行している SP 上の /var/adm/messages ファイルと /var/adm/tspr.debug ファイルに重要なエラーメッセージがないか確認する
次に、ログファイル内のメッセージの表示例を示します。
Oct 30 00:16:47 sp4 java[506]: [ID 289794 user.info] TSPR [sev=okay] [apps=770034] TCPEventHandler:dispatch...
『N1 Provisioning Server 3.1, Blades Edition システム管理ガイド』を参照してください。
問題の位置を示すには、次のツールを使用します。
「Administration」画面の「Control Center Farm Requests」ダイアログからファーム起動処理を監視する。 起動処理中、デバイスのファームへの追加が正常に行われると、メッセージが表示される。 障害が発生したデバイスを特定できるか確認する
端末サーバー (端末サーバーが使用できない場合はデバイスのシリアルポート) をコンソールとして、特定のデバイスに接続し、診断情報を取得する。 ファームデバイスが起動するまで、デバイスにはコンソールからのみ接続できる
エラーの原因を特定し、必要な処理 (障害が発生したサーバーの置き換え、ファームリソースの解放、ネットワークの問題の解決など) が完了したら、ファーム処理を再実行します。 エラーをクリアするには、-f オプションを指定します。 たとえば、ファームの起動に失敗した場合、farm –af farmid コマンドを実行します。
要求の放棄とやり直し
ファームを放棄し、停止する場合は、farm –df farm_ID コマンドを実行します。 このコマンドは、ファームのリソースをクリアし、ファームを非アクティブな状態にします。 その後、farm –D farmid コマンドを使ってファームを削除します。 次に、「File」メニューの「Save As」オプションを選択して、ファームを別の名前で保存します。 この別名で保存したファームを起動します。
Control Center は、自動的に制御プレーンに同期します。したがって、Control Center には最新のファームステータスが反映されます。