12.2.1 縮退状態が発生した場合
障害によって縮退状態が発生した場合の復旧までの流れを次の図に示します。
- 注意事項
-
次の場合,ここで説明する手順では復旧できません。
-
クラスタの状態が,クラスタ動作不能(NOT_AVAILABLE)またはクラスタ一部稼働中(PARTIALLY_AVAILABLE)の場合
なお,クラスタの状態がAVAILABLEでも,半数以上のEADSサーバが縮退している場合は,クラスタ動作不能(NOT_AVAILABLE)の場合と同様の対処が必要です。
-
オンライン性能の劣化が許容できない場合
-
復旧するEADSサーバが,クラスタ定義に定義されていない場合
-
EADSサーバダウン時のクラスタ定義と,復旧時のクラスタ定義が異なる場合
クラスタの状態が,クラスタ動作不能(NOT_AVAILABLE)またはクラスタ一部稼働中(PARTIALLY_AVAILABLE)の場合の復旧手順は,「12.2.2 クラスタ動作不能(NOT_AVAILABLE)またはクラスタ一部稼働中(PARTIALLY_AVAILABLE)の場合」を参照してください。
-
システム運用管理者が行う各作業について説明します。
- 〈この項の構成〉
(1) 縮退状態または停止状態のEADSサーバを確認する
eztool statusコマンドで,縮退状態または停止状態のEADSサーバを確認します。
コマンド実行例
この例の場合,State欄にisolatedと表示されているEADSサーバが縮退状態になっています。このEADSサーバを停止する必要があります。
なお,この例の場合,停止状態のEADSサーバはありません。停止状態のEADSサーバがある場合は,State欄に-----------と表示されます。
(2) 縮退状態のEADSサーバを停止する
縮退状態のEADSサーバがある場合,eztool isolate --stopコマンドで,縮退状態のEADSサーバを停止します。
縮退状態のEADSサーバがない場合は実行する必要はありません。
- 注意事項
-
eztool isolate --stopコマンドは,縮退状態のEADSサーバで実行してください。
(3) エラーメッセージを確認する
(2)で停止したEADSサーバのメッセージログに出力されているエラーメッセージを確認します。
(4) 障害情報を取得する
障害の原因調査の際に次に示す情報が必要になります。全EADSサーバで次に示す情報を取得してください。
-
サーバ定義のeads.logger.dirパラメタに指定したディレクトリ下の全ファイル
-
<運用ディレクトリ>/conf下の全定義ファイル
-
スレッドダンプ
なお,eztool snapshotコマンドを使用すると,ログと設定ファイルを一括して収集できます。
障害情報の取得方法については,「12.3 障害情報の取得方法」を参照してください。
- 縮退状態になった時刻を調べる方法
-
縮退状態になったEADSサーバのメッセージログに出力されているKDEA04783-IまたはKDEA04799-Eメッセージを参照してください。このメッセージが出力された時刻が縮退状態になった時刻です。
- メッセージの出力例(KDEA04783-I)
-
この例では,2015年04月03日の11時59分25秒にEADSサーバIDが1であるEADSサーバが縮退状態になっています。
- メッセージの出力例(KDEA04799-E)
-
この例では,2015年04月21日の11時55分46秒にEADSサーバIDが3であるEADSサーバが縮退状態になっています。
(5) 停止したEADSサーバを復旧する
障害対策後,次のどちらかのコマンドで,停止したEADSサーバを復旧します。
-
ezstart -rコマンド
-
ezserver -rコマンド
復旧処理では,データの整合性を回復するために,稼働中のEADSサーバが復旧対象のEADSサーバにデータを送信します。
そのため,次の点に留意してください。
-
EADSサーバが復旧するまでに,少なくともデータ取得分の時間が掛かります。
-
データ送信元のEADSサーバでは,データを送信する分,CPUのリソースやネットワークの帯域を使用するといった影響があります。
-
データ操作と復旧処理が重なってEADSサーバ内の処理が追いつかなくなった場合は,メモリが枯渇しないように,データ操作を待たせることがあります。
- ポイント
-
ディスクキャッシュ,および2Wayキャッシュを使用している場合は,次のどちらかの方法でEADSサーバを復旧してください。
復旧方法
復旧の手順
復旧時の動作
適用基準
キャッシュファイルを使用して復旧する
停止したEADSサーバのキャッシュファイルを削除しないで,ezstart -rコマンド,またはezserver -rコマンドで停止したEADSサーバを復旧します。
キャッシュファイルからデータを読み込んだあと,稼働中のEADSサーバとの間でデータの過不足を補うことで,復旧します。
データの更新頻度や削除頻度が低いキャッシュで,キャッシュファイルに有効なデータが多く残っている場合,キャッシュファイルを使用しないときに比べて,復旧に掛かる時間を短縮できる可能性があります。
キャッシュファイルを使用しないで復旧する
停止したEADSサーバを指定してeztool deleteecf -lコマンドを実行し,該当するキャッシュのキャッシュデータファイルを削除します。
そのあとで,ezstart -rコマンド,またはezserver -rコマンドを実行して,停止したEADSサーバを復旧します。
復旧に失敗した場合は,上記の手順を実行し直してください。
稼働中のEADSサーバからすべてのデータを取得することで,復旧します。
データの更新頻度や削除頻度が高いキャッシュで,キャッシュファイルに無効なデータが多く残っている場合,キャッシュファイルを使用するときに比べて,復旧に掛かる時間を短縮できる可能性があります。
データの復旧中にキャッシュデータファイルの容量不足が発生した場合,内部的にコンパクションが実行されます。その結果,容量不足が解消されると,復旧処理が継続されます。
容量不足が解消されないときは,「11.4.1 定義内容を変更する手順」に従って,キャッシュ定義のeads.cache.disk.filenumパラメタの指定値を大きくしてください。
なお,次のような理由で復旧に失敗したときは,問題のあるファイルが存在するキャッシュのキャッシュファイルを削除してから,ezstart -rコマンド,またはezserver -rコマンドを実行して,停止したEADSサーバを復旧してください。
-
キャッシュファイルが破損している。
-
Javaヒープあふれが発生した。
-
内部的に実行するコンパクションが失敗した。
-
(6) 再起動したEADSサーバがクラスタに参加していることを確認する
eztool statusコマンドで,再起動したEADSサーバがクラスタに復帰していることを確認します。
コマンド実行例
クラスタに参加している場合,Cluster欄にonlineが表示されます。
ほかにも縮退状態または停止状態のEADSサーバがあれば,「12.2.1(1) 縮退状態または停止状態のEADSサーバを確認する」から再実行してください。