サイレント障害を検知する新分析技術
第2回では、サイレント障害(エラー・メッセージとして現れない性能劣化などの障害)の検知の遅れと原因分析の長期化について説明しました。クラウド・サービスの基盤となるクラウド指向データセンターでは、膨大な数の機器を効率よく監視して障害に迅速に対応するために、大抵の管理者はシステム監視ソフトを用いています。しかし、従来の監視ソフトではサイレント障害の検知が困難なため、原因究明に多くの時間が費やされています。
こうしたサイレント障害の課題を解決することを目的とし、NECは“インバリアント分析技術”を開発しました。これは、NECの北米研究所で開発された、ワールド・ワイドでみてもオリジナルなシステム性能分析技術です。
インバリアント(Invariants)とは、“不変関係”を意味します。例えば、Webサーバーの入力であるトラフィック量と、それに応じて処理を行うアプリケーション・サーバー(APサーバー)のCPU負荷には、関係性があります。Webサーバーのトラフィック量が増えると、APサーバーのCPU負荷も連動して増え、逆に、トラフィック量が減少すれば、CPU負荷も連動して減少するといったものです。
この関係は、日々の業務量の変化に関わらず、“不変的”に成立します。インバリアント分析技術は、このような2つの性能情報間の関係において、不変的に成立する強い相関関係(不変関係)に着目した新しい技術です。
インバリアント分析では、性能情報を入力データとしてこのような不変関係を抽出します。実際に稼働しているシステムから得られる一定期間の性能情報を取り込み、不変関係の存在を網羅的に調査します。見つけ出された不変関係は、「y=f(x)」の形で示される数学的な関係式として算出され、平常時の挙動としてモデル化します。この生成されたモデルを、分析対象となる実際の性能情報と比較することによって、平常時と異なる挙動を発見します。
以下では、このインバリアント分析技術を用いた製品を使ってどのようにサイレント障害を検知するかについて説明します。
システム性能分析ソフト「WebSAM Invariant Analyzer」
「WebSAM Invariant Analyzer(ウェブサム・インバリアント・アナライザ)」は、前述したインバリアント分析技術を採用したNECのシステム性能分析ソフトウエアです。
同製品では、まず、インバリアント分析のベースとなる平常時の性能情報からモデルを作成します。次に、生成されたモデルと、分析対象となる現在の性能情報との差異から異常検知を行います。平常時のモデルで定義された相関関係が維持されていれば正常と判断し、多数の相関関係が崩れていたら、システムが「いつもと違う」挙動をしているという点から障害発生の可能性ありと判断します。
同製品の画面(図1-2)では、システム全体でどのぐらい「いつもと違う」挙動が存在するかの割合をグラフ表示します。これによって、サイレント障害が“いつ”、“どの程度”発生しているかを知ることができます。また、どの性能情報が「いつもと違う」のかをマップ上に表示することができるため、異常の中心となっている要素を知ることができます。
さらに、「いつもと違う」挙動がどのような割合でシステムに発生しているかを比較することで、過去の障害事例のパターンと似通っている場合には類似障害であると判断し、その時に記録された対処内容をナビゲートすることが可能です。
このように、不変関係に着目することで、実用的な計算時間の中で正確に「いつもと違う」挙動を見つけ出すことができます。この「いつもと違う」性能情報の挙動は、一般的な障害だけでなく、エラー・メッセージが通知されない障害が発生した場合でも現れるので、サイレント障害を見つけ出すことができるのです。さらに、過去の対処内容のナビゲート機能を使うことで、復旧作業を迅速化することができます。
このインバリアント分析技術は、時系列の数字列であれば、どんな情報でも不変関係を抽出し、「いつもと違う」要素を見つけ出すことが可能です。このため、性能情報を収集する部分に関して、ツールを選びません。サポートできる機器や性能情報の対象に制約がなく、一律に分析できることも大きな特徴です。
次ページからは、インバリアント分析のメリットを詳しく解説していきます。