全1518文字
PR

 サーバーやネットワークの冗長化は情報システムの信頼性を高めるための常套手段だ。しかしシステム障害を防ぐはずの二重化が正常に機能しないという事態は多くの大規模システムで発生しうる。なぜフェイルオーバーに失敗するのか。有効な自衛手段はあるのか。日経コンピュータの過去の障害事例記事を基に、失敗の要因や対策を明らかにしていく。最終回の今回は、フェイルオーバー処理の失敗の防止策を取り上げる。

 フェイルオーバー処理で失敗しないためには、「故障検知」と「処理の引き継ぎ」のそれぞれで確実性を高める必要がある(図1)。

図1●ユーザー企業における四つの自衛策
故障検知と処理引き継ぎの確実性を高めることで、自動フェイルオーバー失敗の可能性を減らすことができる
図1●ユーザー企業における四つの自衛策
[画像のクリックで拡大表示]

 故障検知においては、検知対象を広げることがポイントになる。ERP(統合基幹業務システム)ならトランザクション、Webサーバーならレスポンスタイムなどサービスの品質を監視することで、ハードの異常も見抜きやすくなる。

 将来発生しうる故障を事前に発見するソフトの活用も方策の一つだ。サービスの稼働状況やパフォーマンスなどを学習し、それを基に異常値を検知して障害発生の予兆を事前に予測してくれる。

 ネットワーク機器は故障検知のレベルが装置により異なる。例えばポートのリンクの状態だけでなく、指定アドレスに定期的にpingを発行し応答を確認する製品もある。

 処理引き継ぎの信頼性を上げるには、システム導入時の障害テストを手厚くしたい。電源断やケーブル引き抜きによるフェイルオーバーの確認でテストを済ますケースもあるが、タイムアウト設定などの非機能要件についてもテストで確認しておくことが大切だ。

 構成情報管理も徹底したい。冗長構成を組むサーバーは同じ設定でなければならない。ところがネットワーク構成の変化などで設定変更を繰り返すうちにサーバー間で差分が生じ、フェイルオーバーに失敗するケースも多いという。

 故障検知の失敗には、製品のバグに絡むものもある。定期的な改修版の適用が理想だが、適用にはシステムの一時停止が必要だ。提供するサービスや業務とバランスをとって判断したい。