キャパシティ・プランニングから統合監視まで
サービスレベル低下を防ぐ“キャパシティ・プランニング”
第3回では、データセンターの運用管理者を悩ませているサイレント障害の検知手法として、NECの独自技術による“インバリアント分析”について紹介しました。インバリアント分析では、これまで見えていなかった性能劣化などのサイレント障害を検知し、障害対応の迅速化を図ります。これにより、システム・ダウンによるサービス・レベルの低下を回避するとともに、障害対応コストの削減に貢献します。
第2回でも少し触れましたが、サービス・レベルの低下は、サイレント障害だけではなく、アクセス集中による業務負荷の急激な上昇やリソースの処理能力不足などにも起因します。これを回避するためには、高負荷時でも業務要件を満たすことができるリソース性能を確保しておく必要があります。これまで、システムに必要なリソース性能は、設計/構築の段階で高負荷時の状態を推定して算出してきました。
しかし、このリソース性能は、仮置きした値という不確定な要素を含むことは避けられないため、確実にサービス・レベルを維持するという保証はできません。また、システム稼働後も、度重なる機能追加や利用形態の変更などにより、求められる処理能力も日々変化してくることから、システム稼働前の一度きりの算出ではサービス・レベルを常に維持することは困難となります。
サービス・レベルを維持するためには、それを満たすのに必要となる正確な値を算出し、性能情報の変化を継続的に把握して、リソース増強のタイミングと容量を迅速に判断できる仕組み作りが不可欠となります。
NECでは、これらのニーズに応えるために、インバリアント分析技術を応用した“キャパシティ・プランニング”手法の研究を行っており、これを実装した製品開発を進めています。最終回では、“キャパシティ・プランニング”の最新手法と、これまでのまとめとして、データセンターにおけるサイレント障害の統合監視について紹介します。
インバリアント分析による最新の“キャパシティ・プランニング”
キャパシティ・プランニングは、システムを構成する各要素のスペックを考慮したシステム・モデルに対して、稼動時の負荷を考慮したシミュレーションを行い、システムに求められる性能要件を満たすために必要となるリソースを算出します。その精度は、シミュレーションに与えるシステム・モデルの正確さに左右されます。従来、正確なモデルの作成は、机上演算で行われていたため、多くの工数がかかり、実施するタイミングは、システム構築時などに限定されていました。
インバリアント分析技術では、実際に稼働しているシステムの性能情報から、正確なシステム・モデルを瞬時に自動生成することができます。このため、シミュレーションに必要となる正確なシステム・モデルをすぐに生成できるため、データさえあればいつでもキャパシティ・プランニングを行うことができます。
では、具体的な方法についてご紹介しましょう。第3回でも説明しましたが、一般にシステムへの入力と、各構成要素の処理にかかる負荷の間には、何らかの相関関係があります。インバリアント分析技術は、そうした性能情報間の相関関係を網羅的に抽出し、数学的な関数の形でシステム・モデルを示すことができるため、その関数に値を代入することで、ある性能値の変化が、関係する別の性能値にどのような影響を与えるのかをシミュレーションすることができます。
例えば、システムの入力であるHTTPリクエスト数/秒の値を順次増やしながら、関係のある各構成要素の性能値を見ていくと、やがてはいずれかの構成要素の性能値が限界点(CPU使用率なら100%、メモリ使用量なら使用可能領域が無い状態)に達します。この場合、その時点の入力数(HTTPリクエスト数/秒)がシステムの最大許容量であり、限界点に達した構成要素がボトルネックとなるため、どの要素を増強しなければならないのかを明確に把握することが可能です。
次ページでは、インバリアント分析によるキャパシティ・プランニングの予測精度向上の効果と、統合管理ソフトウエアへインバリアント分析を組み込むことで、サイレント障害のリアルタイム監視を実現する方法について紹介します。