(57)【要約】【課題】  １つ又は複数のアプリケーションによって生成されるシステム負荷をより効率的かつ柔軟に管理する改良された方法、装置、ソフトウェア、及びシステムを提供する。【解決手段】  ネットワーク化されたデジタルコンピューティングシステムの改良は、デジタルコンピューティングシステムの要素と通信し、コンピューティングシステムの動作及びコンピューティングシステムで利用可能なリソースに関する性能情報を取得し、この情報を利用して、ＩＲＭがアプリケーション実行に関連するアプリケーションパラメータを調整し、それにより、少なくとも１つのアプリケーションプログラムの実行を最適化するように動作可能な情報リソースマネージャ（ＩＲＭ）を含む。ＩＲＭは、（１）少なくとも１つのＣＰＵ、ネットワーク、及びＳＡＮと通信し、そこから性能情報及び構成情報を取得するように動作可能な性能プロファイリングシステムと、（２）性能プロファイリングシステムと通信し、性能情報及び構成情報を受け取り、性能情報及び構成情報を利用して解析的モデル出力を生成するように動作可能な解析的性能モデルシステムであって、解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含む、解析的性能モデルシステムと、（３）解析的性能モデルシステムと通信してそこから解析的モデル出力を受け取り、解析的モデル出力に応答して、最新のアプリケーションパラメータ値を決定し、最新のアプリケーションパラメータ値をデジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信するように動作可能なアプリケーションパラメータ決定システムであって、アプリケーションは最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用してデジタルコンピューティングシステムで実行中の複数のアプリケーションの実行が最適化される、アプリケーションパラメータ決定システムとを備える。【選択図】  図３
2009543233.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの中央演算処理装置（ＣＰＵ）と、前記ＣＰＵがデジタルコンピューティングシステムの他の要素と通信できるようにするように動作可能なネットワークと、少なくとも１つのストレージ装置を備え、かつ前記少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを備えるネットワーク化されたデジタルコンピューティングシステムであって、少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、前記少なくとも１つのアプリケーションプログラムは、前記アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有し、前記デジタルコンピューティングシステムは、
前記デジタルコンピューティングシステムの要素と通信して、前記コンピューティングシステムの動作及び前記コンピューティングシステムで利用可能なリソースに関する性能情報を取得するように動作可能な情報リソースマネージャ（ＩＲＭ）であって、前記性能情報を利用して、前記ＩＲＭがアプリケーションの実行に関する前記アプリケーションパラメータを調整し、それにより、前記少なくとも１つのアプリケーションプログラムの実行を最適化するように動作可能な情報リソースマネージャ（ＩＲＭ）を備え、
前記情報リソースマネージャ（ＩＲＭ）は、
（１）少なくとも１つのＣＰＵ、ネットワーク、及びＳＡＮと通信し、そこから性能情報及び構成情報を取得するように動作可能な性能プロファイリングシステムと、
（２）前記性能プロファイリングシステムと通信し、前記性能情報及び前記構成情報を受け取り、前記性能情報及び前記構成情報を利用して解析的モデル出力を生成するように動作可能な解析的性能モデルシステムであって、前記解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含む、解析的性能モデルシステムと、
（３）前記解析的性能モデルシステムと通信してそこから前記解析的モデル出力を受け取り、前記解析的モデル出力に応答して、前記最新のアプリケーションパラメータ値を決定し、前記最新のアプリケーションパラメータ値を前記デジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信するように動作可能なアプリケーションパラメータ決定システムであって、前記アプリケーションは前記最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用して前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行が最適化される、アプリケーションパラメータ決定システムと
を備える、ネットワーク化されたデジタルコンピューティングシステム。
【請求項２】
前記性能情報は、前記デジタルコンピューティングシステム内の任意のＣＰＵ、ネットワーク、又はストレージ装置からの性能情報を含む、請求項１に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項３】
前記性能情報は、一連の入／出力コマンドを前記デジタルコンピューティングシステム内の少なくとも１つの要素に発行することによって取得される、請求項１に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項４】
前記性能プロファイリングシステムは、（ａ）動作中に前記ストレージシステムの性能をプロファイリングし続け、一連の時間ベースのサンプルを収集し、（ｂ）最新のプロファイルを前記解析的性能モデルシステムに送信し、（ｃ）前記アプリケーションパラメータ決定システムが、前記アプリケーションの実行時に最新のアプリケーションパラメータセットを送信できるようにするようにさらに動作可能である、請求項１に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項５】
前記ＩＲＭは、前記システムが過度の性能状況に継続的に適合することのないように、パラメータ変更の頻度に対する減衰制御の選択された程度を提供する、請求項４に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項６】
前記性能プロファイリングシステムは、発見インタフェースを介して前記デジタルコンピューティングシステムの個々の要素と直接通信することができる、請求項１〜５のいずれか一項に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項７】
前記解析的性能モデルシステムは、待ち行列理論を利用して、前記ストレージシステムがサポートできる負荷の程度を決定し、
前記アプリケーションパラメータ決定システムは、前記負荷の値を利用して、所与のアプリケーションのパラメータ値を決定する、
請求項４に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項８】
前記ＩＲＭは、各アプリケーションに１つずつ割り振ることができる複数の前記アプリケーションパラメータ決定システムを含む、請求項６に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項９】
前記アプリケーションパラメータ決定システムは、様々なアプリケーション固有パラメータを考慮することができる、請求項６に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１０】
前記様々なアプリケーション固有パラメータはコストベースの最適化（ＣＢＯ）パラメータを含む、請求項９に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１１】
前記解析的性能モデルシステムは、ストレージが複数のアプリケーションで共有され、選択されたアプリケーションを優先することができる環境において、競合するアプリケーション作業負荷の影響を決定し、それを考慮するように調整することが可能である、請求項１又は１０に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１２】
複数のアプリケーションが同じＩ／Ｏストレージリソースセットを共有している場合、前記アプリケーションパラメータ決定システムは、リソース共有の改良を促すように複数のパラメータ値セットを調整することができる、請求項１１に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１３】
前記アプリケーションパラメータ決定システムは、あるアプリケーションのＩ／Ｏ要求を別のアプリケーションのＩ／Ｏ要求よりも優先するようにパラメータ値をさらに調整することができる、請求項１２に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１４】
前記ＩＲＭは、前記デジタルコンピューティングシステム内の離散モジュールである、請求項６に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１５】
前記ＩＲＭは、任意のコンピューティングシステムサブシステム又は前記ＳＡＮ内のストレージネットワークファブリックサブシステム内のモジュールとして実装される、請求項６に記載のネットワーク化されたデジタルコンピューティングシステム。
【請求項１６】
少なくとも１つの中央演算処理装置（ＣＰＵ）と、前記ＣＰＵがデジタルコンピューティングシステムの他の要素と通信できるようにするように動作可能なネットワークと、少なくとも１つのストレージ装置を備え、かつ前記少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを備えるネットワーク化されたデジタルコンピューティングシステムであって、少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、前記少なくとも１つのアプリケーションプログラムは、前記アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有する、デジタルコンピューティングシステムにおいて、前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行を最適化する方法であって、
（１）前記デジタルコンピューティングシステムの要素と通信して、前記コンピューティングシステムの動作及び前記コンピューティングシステムで利用可能なリソースに関する性能情報を取得するように動作可能な情報リソースマネージャ（ＩＲＭ）を利用して、前記少なくとも１つのＣＰＵ、前記ネットワーク、及び前記ＳＡＮと通信し、そこから性能情報及び構成情報を取得するステップと、
（２）前記性能情報及び前記構成情報を利用して解析的モデル出力を生成するステップであって、前記解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含むステップと、
（３）前記解析的モデル出力を利用して、最新のアプリケーションパラメータ値を決定し、前記最新のアプリケーションパラメータ値を前記デジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信するステップであって、前記アプリケーションは前記最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用して前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行が最適化されるステップと
を含む、方法。
【請求項１７】
前記性能情報は、前記デジタルコンピューティングシステム内の任意のＣＰＵ、ネットワーク、又はストレージ装置からの性能情報を含む、請求項１６に記載の方法。
【請求項１８】
前記性能情報は、一連の入／出力コマンドを前記デジタルコンピューティングシステム内の少なくとも１つの要素に発行することによって取得される、請求項１６に記載の方法。
【請求項１９】
（１）動作中に前記ストレージシステムの性能をプロファイリングし続け、一連の時間ベースのサンプルを収集するステップと、
（２）前記タイムベースのサンプルに応答して、最新のプロファイルを生成するステップと、
（３）前記最新のプロファイルに応答して、前記アプリケーションの実行時に最新のアプリケーションパラメータセットを送信するステップと
をさらに含む、請求項１６に記載の方法。
【請求項２０】
前記システムが過度の性能状況に継続的に適合することのないように、パラメータ変更の頻度に対する減衰制御の選択された程度を提供するステップをさらに含む、請求項１９に記載の方法。
【請求項２１】
発見インタフェースを介して前記デジタルコンピューティングシステムの個々の要素と直接通信するステップをさらに含む、請求項１６に記載の方法。
【請求項２２】
待ち行列理論を利用して、前記ストレージシステムがサポートできる負荷の程度を決定するステップと、
前記負荷値を利用して、所与のアプリケーションのパラメータ値を決定するステップと
をさらに含む、請求項１６に記載の方法。
【請求項２３】
各アプリケーションに１つずつ割り振ることができる複数のアプリケーションパラメータ決定システムを提供するステップをさらに含む、請求項２１に記載の方法。
【請求項２４】
最新のアプリケーションパラメータ値を決定する際に、様々なアプリケーション固有パラメータを考慮するステップをさらに含む、請求項２１に記載の方法。
【請求項２５】
前記様々なアプリケーション固有パラメータはコストベースの最適化（ＣＢＯ）パラメータを含む、請求項２４に記載の方法。
【請求項２６】
ストレージが複数のアプリケーションで共有され、選択されたアプリケーションを優先することができる環境において、競合するアプリケーション作業負荷の影響を決定し、それを考慮するように前記解析的モデルを調整するステップをさらに含む、請求項１６に記載の方法。
【請求項２７】
複数のアプリケーションが同じＩ／Ｏストレージリソースセットを共有している場合、リソース共有の改良を促すように複数のパラメータ値セットを調整するステップをさらに含む、請求項２６に記載の方法。
【請求項２８】
あるアプリケーションのＩ／Ｏ要求を別のアプリケーションのＩ／Ｏ要求よりも優先するようにパラメータ値を調整するステップをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記ＩＲＭは、前記デジタルコンピューティングシステム内の離散モジュールである、請求項２１に記載の方法。
【請求項３０】
前記ＩＲＭは、任意のコンピューティングシステムサブシステム又は前記ＳＡＮ内のストレージネットワークファブリックサブシステム内のモジュールとして実装される、請求項２１に記載の方法。
【請求項３１】
少なくとも１つの中央演算処理装置（ＣＰＵ）と、前記ＣＰＵがデジタルコンピューティングシステムの他の要素と通信できるようにするように動作可能なネットワークと、少なくとも１つのストレージ装置を備え、かつ少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを含むネットワーク化されたデジタルコンピューティングシステム内で動作可能なコンピュータソフトウェアプログラムコード製品であって、前記コンピューティングシステムは少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、前記少なくとも１つのアプリケーションプログラムは、前記アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有し、前記コンピュータソフトウェアプログラムコード製品は、前記ネットワーク化されたデジタルコンピューティングシステムにおいて、前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行を最適化するように動作可能であり、機械可読物理媒体に符号化され、前記プログラムコードは、
（１）前記ネットワーク化されたデジタルコンピューティングシステムにおいて、情報リソースマネージャ（ＩＲＭ）を構成するように動作可能なプログラムコードであって、前記ＩＲＭは、前記デジタルコンピューティングシステムの要素と通信して、前記コンピューティングシステムの動作及び前記コンピューティングシステムで利用可能なリソースに関する性能情報を取得し、前記少なくとも１つのＣＰＵ、前記ネットワーク、及び前記ＳＡＮと通信し、そこから性能情報及び構成情報を取得するように動作可能である、プログラムコードと、
（２）前記ネットワーク化されたデジタルコンピューティングシステム内で実行可能であり、前記ＩＲＭが前記性能情報及び前記構成情報を利用して、解析的モデル出力を生成できるようにするプログラムコードであって、前記解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含む、プログラムコードと、
（３）前記ネットワーク化されたデジタルコンピューティングシステム内で実行可能であり、前記ＩＲＭが前記解析的モデル出力を利用して、最新のアプリケーションパラメータ値を決定し、前記最新のアプリケーションパラメータ値を前記デジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信できるようにするプログラムコードであって、前記アプリケーションは前記最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用して前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行が最適化される、プログラムコードと
を含む、コンピュータソフトウェアプログラムコード製品。
【請求項３２】
少なくとも１つの中央演算処理装置（ＣＰＵ）と、前記ＣＰＵがデジタルコンピューティングシステムの他の要素と通信できるようにするように動作可能なネットワークと、少なくとも１つのストレージ装置を備え、かつ前記少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを備えるネットワーク化されたデジタルコンピューティングシステムであって、少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、前記少なくとも１つのアプリケーションプログラムは、前記アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有するデジタルコンピューティングシステムにおいて、複数のアプリケーションの実行を最適化するサブシステムであって、
前記デジタルコンピューティングシステムの要素と通信して、前記コンピューティングシステムの動作及び前記コンピューティングシステムで利用可能なリソースに関する性能情報を取得するように動作可能な情報リソースマネージャ（ＩＲＭ）手段であって、前記性能情報を利用して、前記ＩＲＭがアプリケーションの実行に関する前記アプリケーションパラメータを調整し、それにより、前記少なくとも１つのアプリケーションプログラムの実行を最適化するように動作可能な情報リソースマネージャ（ＩＲＭ）手段を備え、
前記ＩＲＭ手段は、
（１）少なくとも１つのＣＰＵ、ネットワーク、及びＳＡＮと通信し、性能情報及び構成情報を取得するように動作可能な性能プロファイリング手段と、
（２）前記性能プロファイリング手段と通信し、前記性能情報及び前記構成情報を受け取り、前記性能情報及び前記構成情報を利用して解析的モデル出力を生成するように動作可能な解析的性能モデリング手段であって、前記解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含む、解析的性能モデリング手段と、
（３）前記解析的性能モデリング手段と通信して前記解析的モデル出力を受け取り、前記解析的モデル出力に応答して、前記最新のアプリケーションパラメータ値を決定し、前記最新のアプリケーションパラメータ値を前記デジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信するように動作可能なアプリケーションパラメータ決定手段であって、前記アプリケーションは前記最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用して前記デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行が最適化される、アプリケーションパラメータ決定手段と
を備える、サブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００６年７月６日に出願され「Method And Apparatus For Managing Application Storage Load Based On Storage Network Resources（ストレージネットワークリソースに基づいてアプリケーションストレージ負荷を管理する方法及び装置）」という名称の米国仮特許出願第６０／８０６，６９９号明細書の優先権の利益を主張するものであり、この仮特許出願は参照により本明細書に援用される。
【０００２】
発明の分野
本発明は、一般にソフトウェアアプリケーション性能及び自己管理システムの分野に関する。特に、本発明は、１つ又は複数の中央演算処理装置（ＣＰＵ）、メモリ、ネットワーク、及びストレージエリアネットワーク（ＳＡＮ）を含む、基盤となるデジタルコンピューティングシステムの性能に基づいてアプリケーション要求のバランスを保つことに関する。
【背景技術】
【０００３】
発明の背景
アプリケーションは一般に、ストレージエリアネットワーク（ＳＡＮ）を通して共通ネットワーク及びストレージシステムを共有するサーバにホストされる。アプリケーションの要求とＣＰＵ、ネットワーク、及びＳＡＮの性能との不均衡は、集中化されたリソースを共有するアプリケーションの全体性能を不良にする。しかし、個々のアプリケーションは、サブシステム内の単一の任意の要素、特にＳＡＮに大きすぎる負荷をかけた場合、性能に影響を与え得る。さらに、ＣＰＵ、ネットワーク、及びストレージアレイは多くの場合、共有リソースとして利用される。独立したサーバで実行されている複数のアプリケーションは、サブシステム要素がアプリケーションによって共有される場合、互いの性能に影響し得る。
【０００４】
多くのアプリケーションは内部パラメータを有し、内部パラメータは、ユーザ又はシステム管理者によって設定することができ、アプリケーションの性能及びスループットに対して劇的な影響を及ぼすことができる。ユーザは通常、アプリケーションが実行に向けて初期化されているとき、コンピューティングシステムの構成に存在する維持可能な帯域幅又は並列性を考慮しない。デフォルト値セットが一般に、システム負荷の設定に使用される。これらデフォルト値は、例えば、スレッド数、個々のアプリケーション優先度、記憶空間、及びログバッファ構成を含み得る。これら値は、実行時間中も調整することができる。これら値はユーザ、アプリケーションプログラマ、又はシステム管理者によって調整可能であるが、基盤となるコンピューティングシステムリソースの特徴によりよく合うようにアプリケーション負荷を調整するためのガイダンスは提供されない。
【０００５】
任意のアプリケーションの性能は、１つのアプリケーションが単一の装置に対して大きすぎるトラフィックを発生させた場合、又はシステムが全体負荷に対応できないように複数のアプリケーションが多数の要求でシステムを溢れさせた場合に低下する恐れがある。システム内の任意の要素に過負荷がかかっている場合に、あるアプリケーションが別のアプリケーションに対して発生させる支障は、性能の大きなばらつきを生じさせる可能性がある。より予測可能なアプリケーション性能を提供しようという試みは多くの場合、サブシステム内の特定の要素における容量のオーバープロビジョニングに繋がる。
【０００６】
こういった課題を解決するか、又は少なくとも最小限に抑えようとして、システム管理者は、各アプリケーションが固定された優先度を有することを要求することができる。優先度設定は、システムリソースに対するアプリケーションの要求を「抑制」するために使用される。不都合なことに、固定の優先度の割り当てはリソースを無駄にする恐れがあると共に、アプリケーションスタベーションに繋がる恐れもある。抑制に対する代替は、各アプリケーションが実施するサービス品質（「ＱｏＳ」）を管理することである。ストレージリソースの割り当ては、様々な基準、例えばストレージアクセスの帯域幅に基づくことができる。米国特許出願公開第２００５／００８９０５４号明細書には、リソースの割り当てに基づいたＱｏＳを提供する装置が記載されており、この特許出願は参照により本明細書に援用される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記懸案事項に対する従来の解決策は通常、それ自体の性能制約及び懸案事項を提示してきた。したがって、１つ又は複数のアプリケーションによって生成されるシステム負荷をより効率的かつ柔軟に管理する改良された方法、装置、ソフトウェア、及びシステムを提供することが望ましい。
【課題を解決するための手段】
【０００８】
発明の概要
本発明の一態様は、ネットワーク接続されたデジタルコンピューティングシステムの改良に関し、コンピューティングシステムは、少なくとも１つの中央演算処理装置（ＣＰＵ）と、ＣＰＵがデジタルコンピューティングシステムの他の要素と通信可能にするように動作可能なネットワークと、少なくとも１つのストレージ装置を備え、かつ少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを備え、コンピューティングシステムは、少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、少なくとも１つのアプリケーションプログラムは、本アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有する。本発明のこの態様では、デジタルコンピューティングシステムの要素と通信して、コンピューティングシステムの動作及びコンピューティングシステムで利用可能なリソースに関する性能情報を取得し、この情報を利用して、ＩＲＭがアプリケーション実行に関連するアプリケーションパラメータを調整できるようにし、それにより、少なくとも１つのアプリケーションプログラムの実行を最適化するように動作可能な情報リソースマネージャ（ＩＲＭ）を含むことを改良点とする。
【０００９】
ＩＲＭは、（１）少なくとも１つのＣＰＵ、ネットワーク、及びＳＡＮと通信し、それらから性能情報及び構成情報を取得するように動作可能な性能プロファイリングシステム、（２）性能プロファイリングシステムと通信し、性能情報及び構成情報を受け取り、性能情報及び構成情報を利用して解析的モデル出力を生成するように動作可能な解析的性能モデルシステムであって、解析的モデル出力は性能統計及び最新のアプリケーションパラメータを含む、解析的性能モデルシステム、及び（３）解析的モデルシステムと通信し、そこから解析的モデル出力を受け取り、解析的モデル出力に応答して最新のアプリケーションパラメータ値を決定し、最新のアプリケーションパラメータ値をデジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送るように動作可能なアプリケーションパラメータ決定システムであって、最新のアプリケーションパラメータ値を受け取った少なくとも１つのアプリケーションは、各自のアプリケーションパラメータを最新のアプリケーションパラメータ値を使用して設定し、それにより、最新の実行時パラメータを使用してデジタルコンピューティングシステムで実行中の複数のアプリケーションの実行を最適化する、アプリケーションパラメータ決定システムを備える。
【００１０】
性能情報は、デジタルコンピューティングシステム内の任意のＣＰＵ、ネットワーク、又はストレージ装置からの性能情報を含んでよく、例えば、一連の入／出力コマンドをデジタルコンピューティングシステム内の少なくとも１つの要素に発行することによって取得することができる。
【００１１】
本発明のさらなる態様では、性能プロファイリングシステムは、（ａ）動作中にストレージシステムの性能をプロファイリングし続け、一連の時間ベースのサンプルを収集し、（ｂ）最新のプロファイルを解析的性能モデルシステムに送り、（ｃ）アプリケーションパラメータ決定システムがアプリケーション実行時に最新のアプリケーションパラメータセットを送信できるようにするようにさらに動作可能である。
【００１２】
ＩＲＭは、システムが過度の性能状況に継続的に順応することのないように、パラメータ変更の頻度に対する減衰制御の選択された程度を提供することができる。
【００１３】
本発明の一実施例又は実施形態では、性能プロファイリングシステムは、発見インタフェースを介してデジタルコンピューティングシステムの個々の要素と直接通信することができる。
【００１４】
解析的性能モデルシステムは、待ち行列理論の方法を利用して、ストレージシステムがサポートできる負荷の程度を決定することができ、アプリケーションパラメータ決定システムは、負荷値を利用して、所与のアプリケーションのパラメータ値を決定することができる。
【００１５】
ＩＲＭは、各アプリケーションに１つずつ割り振ることができる複数のパラメータ決定システムを含むように構成することができ、アプリケーションパラメータ決定システムは、例えば、コストベースの最適化（ＣＢＯ：Cost-Based Optimization）パラメータ等を含むアプリケーション固有パラメータの範囲を考慮することができる。
【００１６】
さらに、解析的性能モデルシステムは、システムリソースが複数のアプリケーションで共有され、選択されたアプリケーションを優先することができる環境において、競合するアプリケーション作業負荷の影響を決定し、それを考慮するように調整することができる。複数のアプリケーションが同じＩ／Ｏストレージリソースセットを共有している場合、アプリケーションパラメータ決定システムは、リソース共有の改良を容易にするように複数のパラメータ値セットを調整することができる。さらに、アプリケーションパラメータ決定システムは、あるアプリケーションのＩ／Ｏ要求を他よりも優先するようにパラメータ値を調整することもできる。
【００１７】
本発明のＩＲＭは、デジタルコンピューティングシステム内の離散モジュールであってもよく、又は任意のコンピューティングシステムサブシステムもしくはＳＡＮ内のストレージネットワークファブリックサブシステム内のモジュールであってもよい。
【００１８】
さらなる詳細、例、及び実施形態について添付図面と併せて読むべき以下の詳細な説明において説明する。
【図面の簡単な説明】
【００１９】
図面の簡単な説明
【図１】本発明を実施することができるか、又は本発明を実施することができるネットワーク化されたデジタルコンピューティングシステムの部分を形成することができる、従来のワークステーション又はＰＣ（パーソナルコンピュータ）デジタルコンピューティングシステムの概略図（従来技術）である。
【図２Ａ】本発明を実施することができるネットワーク化されたデジタルコンピューティングシステムの概略図（従来技術）である。
【図２Ｂ】図１に示すものと同様の従来のワークステーション又はＰＣ環境の構成要素の概略図（従来技術）である。
【図３】本発明の一実施形態の概略図である。
【図４】本発明を実施することができるデジタルコンピューティングシステムの概略図である。
【図５】調整可能なアプリケーションパラメータを有するアプリケーションプログラムを示す概略図である。
【図６】デジタルコンピューティングシステムで実行され、システム負荷を発生させるアプリケーションの概略図である。
【図７】本発明により構築されたコンピューティングシステム及び情報リソースマネージャ（ＩＲＭ）を示す概略図である。
【図８】コンピューティングシステムで実行されているアプリケーションの性能統計、構成データ、及びアプリケーションパラメータのデータベースを示す概略図である。
【図９】本発明により性能情報をコンピューティングシステムからどのように取得できるかを示す概略図である。
【図１０】本発明により構成情報をコンピューティングシステムの各要素からどのように取得できるかを示す概略図である。
【図１１】本発明の一実施形態によるＩＲＭの解析的モデリング態様を示す概略図である。
【図１２】本発明により構成データ、ＣＰＵ統計、ネットワーク統計、及びＳＡＮ統計を使用してどのように解析的モデルを構築することができるかを示す概略図である。
【図１３】本発明の一実施例により解析的モデルが最新のアプリケーションパラメータセットをどのように生成するかを示す概略図である。
【図１４】本発明の一実施例により最新のアプリケーションパラメータを使用して、アプリケーションが使用するアプリケーションパラメータセットをどのように更新することができるかを示す概略図である。
【図１５】情報リソースマネージャ（ＩＲＭ）がいくつかのＣＰＵ、ネットワーク、及びＳＡＮ統計をどのようにして維持できるかを示す概略図である。
【図１６】本発明により複数の最新の統計セットを使用して、コンピューティングシステムで実行中のアプリケーションデータを更新する解析的モデルをどのように駆動するかを示す概略図である。
【図１７】本発明の一実施形態によるＥＬＭアーキテクチャの主要構成要素の概略ブロック図である。
【図１８】ＥＬＭアーキテクチャの統計収集のタイミングを示す図である。
【図１９】ＥＬＭ統計の収集頻度及び計算頻度の概要を提供する表である。
【図２０】ＥＬＭ統計の概要を提供する表である。
【図２１】ＥＬＭ統計の概要を提供する表である。
【図２２】ＥＬＭ統計の概要を提供する表である。
【図２３】ＥＬＭ統計の概要を提供する表である。
【図２４】ＥＬＭ統計の概要を提供する表である。
【図２５】ＥＬＭ統計の概要を提供する表である。
【図２６】ＥＬＭ統計の概要を提供する表である。
【図２７】ＥＬＭ統計の概要を提供する表である。
【図２８】本発明の一実施例によるＥＤａＣサービスに含まれる各種コネクタを示す概略図である。
【図２９Ａ】デジタルコンピューティングシステムで実行されている複数のアプリケーションの実行を最適化する、本発明による各種方法態様を示す流れ図である。
【図２９Ｂ】デジタルコンピューティングシステムで実行されている複数のアプリケーションの実行を最適化する、本発明による各種方法態様を示す流れ図である。
【図３０】デジタルコンピューティングシステムで実行されている複数のアプリケーションの実行を最適化する、本発明による各種方法態様を示す流れ図である。
【発明を実施するための形態】
【００２０】
発明の詳細な説明
以下の説明において、多くの特定の詳細を記して本発明の理解を提供する。しかし、本発明をこういった特定の詳細なしで実施し得ることを当業者は理解するであろう。場合によっては、周知の方法、手順、構成要素、プロトコル、アルゴリズム、及び回路については、本発明を曖昧にしないように詳述しなかった。以下の考察において、ストレージリソースに対する負荷に対処することに関する態様及びアプリケーションパラメータを適宜調整することによってＣＰＵ、ネットワーク、及びＳＡＮの各リソースのバランスをとることに関連する態様を含めた本発明の各種態様を説明する。
【００２１】
発明を実施することができるデジタル処理環境
以下本発明の特定の例及び実施形態を説明する前に、図１、図２Ａ、及び図２Ｂと併せて、基盤となるデジタル処理構造及び本発明を実施し実践することができるデジタル環境についての以下の考察を読むべきである。
【００２２】
本発明が、コンピュータサーバクラスシステムに一般に見られるアプリケーションでのより効率的なアプリケーション実行を可能にする方法、システム、装置、及びコンピュータプログラム製品を提供することが当業者には理解されるであろう。これらアプリケーションは、データベースアプリケーション、ウェブサーバアプリケーション、及び電子メールサーバアプリケーションを含む。これらアプリケーションは、大きなコンピュータユーザグループに対して媒体を同時にサポートするために一般に使用される。これらアプリケーションは、複数のユーザによる共有データセットへの整合がとれ組織立ったアクセス及び共有を提供する。アプリケーションは、複数又は単一の共有デジタルコンピューティングシステムセットでホストすることができる。各アプリケーションで実行されるタスクセットが、デジタルコンピューティングシステムに発生するパターン及び負荷を決め、タスクセットは、構成可能なアプリケーションパラメータセットを通して管理することができる。
【００２３】
したがって、本発明は、別個のソフトウェアアプリケーション、コンピュータシステムオペレーティングシステムソフトウェアの部分、又はデジタルコンピューティングシステムの部分を形成するコンピュータの専用コンピュータハードウェアとして実施することができる。本発明は、別個のスタンドアロンのソフトウェアベース又はハードウェアベースのシステムとして実施することができる。実施態様は、キーボード及び／又はマウス、メモリ、ストレージ、及び従来の他のユーザインタフェース構成要素等のユーザインタフェース要素を含んでよい。このような種類の従来の構成要素は当業者に周知であり、それ故、本明細書において綿密に説明する必要がないため、以下の概観には、本発明をデジタルコンピュータシステム内のこのような構成要素と併せてどのように実施することができるかを示す。
【００２４】
より具体的には、本発明をデジタルコンピュータシステム性能のプロファイリング及び解析並びにアプリケーション調整に利用できることを当業者は理解するであろう。本明細書において説明する技法は、性能データが定期的に収集されて適応的に解析されるデジタルコンピュータシステムの部分として実施することができる。データは、現在のシステムを変更することの影響を推定するために使用できる解析的モデルへの入力としてさらに使用することができる。そして、性能を向上させるように、デジタルコンピュータシステムで実行されているアプリケーションを再構成することができる。
【００２５】
以下の詳細な説明において、こういった技法に従う方法、構造、システム、及びコンピュータソフトウェア製品の例を示す。説明される方法及びシステムが、Microsoft Windows（登録商標）、Linux、又はUnix（登録商標）等の従来のオペレーティングシステムに従ってスタンドアロン構成又はネットワーク構成で動作（又はエミュレート）するパーソナルコンピュータ（ＰＣ）又は同等の装置等の従来のコンピュータ装置を使用して、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアとの組み合わせで実施し得ることが当業者には理解されるであろう。したがって、本明細書において説明する各種処理態様及び手段は、適宜構成されたデジタル処理装置又は装置ネットワークのソフトウェア要素及び／又はハードウェア要素で実施することができる。処理は順次又は並列して実行することができ、特定用途向けハードウェア又は再構成可能なハードウェアを使用して実施することができる。
【００２６】
一例として、本明細書に添付される図１は、データベース及びメールサーバ等のサーバクラスアプリケーションを実行することができる例示的なコンピュータシステム１０を示す。図１を参照すると、一実施形態において、コンピュータシステム１０は、プロセッサモジュール１１と、キーボード１２Ａ及び／又はマウス１２Ｂ（又はデジタイジングタブレット又は同様の要素、まとめてオペレータ入力要素１２として識別される）等のオペレータ入力構成要素及びビデオ表示装置１３等のオペレータ出力要素を含むオペレータインタフェース要素とを含む。例示的なコンピュータシステム１０は従来のストアドプログラムコンピュータアーキテクチャのものであってよい。プロセッサモジュール１１は、例えば、提供されるデジタルデータと併せて処理動作及び記憶動作を実行する１つ又は複数のプロセッサと、メモリと、ディスク及び／又はテープ記憶要素（別個に図示せず）等の大容量記憶装置とを含むことができる。オペレータ入力要素１２は、オペレータが処理する情報を入力するために提供することができる。ビデオ表示装置１３は、オペレータが処理のために入力することができるデータ、オペレータが処理を制御するために入力することができる情報、並びに処理中に生成された情報を含め、プロセッサモジュール１１によって生成された出力情報をオペレータに向けて画面１４に表示するために提供することができる。プロセッサモジュール１１は、各種アプリケーションプログラムについての情報が各種「ウィンドウ」を使用して表示されるいわゆる「グラフィカルユーザインタフェース」（「ＧＵＩ」）を使用して、ビデオ表示装置１３に表示する情報を生成することができる。
【００２７】
「メモリ」、「ストレージ」、及び「ディスクストレージ装置」という用語は、コンピュータハードディスク、コンピュータフロッピー（登録商標）ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読ＲＡＭ、コンピュータ可読ＲＯＭ要素、又はデジタル情報を符号化する他の任意の既知の手段等の任意のコンピュータ可読媒体を包含することができる。「アプリケーションプログラム」、「アプリケーション」、「プログラム」、「コンピュータプログラム製品」、又は「コンピュータソフトウェア製品」という用語は、媒体が固定式であるか、リムーバブル式であるか、永久的であるか、それとも消去可能であるか等に関わらず、コンピュータ可読媒体に符号化され且つ／又は記憶されたコンピュータ可読プログラム命令からなる任意のコンピュータプログラム製品を包含することができる。例えば、上述したように、図２Ｂの概略ブロック図のブロック１２２において、当該技術分野において周知の実施及び技法に従ってアプリケーション及びデータをディスク、ＲＡＭ、ＲＯＭ、他のリムーバブルストレージ、又は固定ストレージに、それが内部にあるか外部にあるかに関わらず記憶することができると共に、ダウンロード又はアップロードが可能である。本明細書において記すように、本発明は、コンピュータ可読媒体に記憶されたソフトウェア又はコンピュータプログラム製品の形態をとってもよく、アップロードもしくはダウンロードが可能なコンピュータプログラムコード、ＦＰＧＡ、ＲＯＭに固定することができるコンピュータプログラムコード、もしくは他の電子構造の形態であってもよく、又は方法又はこのような方法を実行するシステムの形態をとってもよい。コンピュータシステム１０は、オペレータから入力情報を受け取るキーボード１２Ａ及びマウス１２Ｂ、並びに出力情報をオペレータに向けて表示するビデオ表示装置１３等の特定の構成要素を備えて示されるが、コンピュータシステム１０が図１に示された構成要素に加えて又はそれらに代えて様々な構成要素を含み得ることが理解されるであろう。
【００２８】
さらに、処理モジュール１１は、まとめて参照番号１４で識別される１つ又は複数のネットワークポートを含むことができ、ネットワークポートは、コンピュータシステム１０をコンピュータネットワークに接続する通信リンクに接続される。ネットワークポートは、コンピュータシステム１０がネットワーク内の他のコンピュータシステム及び他の装置に対して情報を送受信できるようにする。例えば、クライアントサーバパラダイムに従って編制される典型的なネットワークでは、ネットワーク内の特定のコンピュータシステムがサーバとして指定され、その他のクライアントコンピュータシステムによって処理されるデータ及びプログラム（まとめて「情報」）を記憶することにより、クライアントコンピュータシステムが情報を都合よく共有できるようにする。特定のサーバによって保持されている情報にアクセスする必要があるクライアントコンピュータシステムは、サーバがネットワークを上で情報をダウンロードできるようにする。データ処理後、クライアントコンピュータシステムは、処理されたデータを記憶のためにサーバに戻すこともできる。コンピュータシステム（上記サーバ及びクライアントを含む）に加えて、ネットワークは、例えば、ネットワークに接続された各種コンピュータシステムで共有可能なプリンタ、ファクシミリ装置、デジタル音声記憶装置、デジタル映像記憶装置、及び配信装置を含んでもよい。ネットワーク内のコンピュータシステムを相互接続する通信リンクは、従来のように、ワイヤ、光ファイバ、又は信号をコンピュータシステム間で搬送する他の媒体を含めた任意の都合のよい情報搬送媒体を含んでよい。コンピュータシステムは、通信リンクを介して転送されるメッセージによってネットワークを上で情報を転送し、各メッセージは、情報及びメッセージを受信する装置を識別する識別子を含む。
【００２９】
図面に示すコンピュータシステム１０に加えて、本発明による方法、装置、又はソフトウェア製品は、スタンドアロンか、ネットワーク化されているか、ポータブルであるか、固定されているかに関わりなく、サーバ１１０及びストレージ１１２を含み得る従来のＰＣ１０２、ラップトップ１０４、手持ち式又はモバイルコンピュータ１０６を含む図２Ａ及び図２Ｂ（例えば、ネットワークシステム１００）に例として示されるような広範囲の任意の従来のコンピューティング装置及びシステム上でインターネット又は他のネットワーク１０８を介して動作することができる。
【００３０】
従来のコンピュータソフトウェア及びハードウェアの実施に従って、本発明により構成されたソフトウェアアプリケーションは、プログラム命令をＲＯＭ又はＣＤ  ＲＯＭ１１６（図２Ｂ）、磁気ディスク、又は他のストレージ１２０から読み取り、ＲＡＭ１１４にロードしてＣＰＵ１１８が実行することができる、例えば図１、図２Ａ、及び図２Ｂに示されるようなＰＣ１０２内で動作することができる。データは、従来のキーボード、スキャナ、マウス、デジタイジングタブレット、又は他の要素１０３を含めた任意の既知の装置又は手段を介してシステムに入力することができる。図２Ｂに示すように、図示のストレージ１２０はリムーバブルストレージを含む。図２Ｂにさらに示すように、アプリケーション及びデータ１２２は、固定ストレージ、リムーバブルストレージ、又はＲＯＭのうちのいくつか又はすべてに配置してよく、又はダウンロードされてもよい。
【００３１】
本明細書において説明する本発明の方法態様を、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はＡＳＩＣ製造業者に既知のＡＳＩＣ構築技法を使用して本明細書において説明するプロセスを実行するように特に構築された特定用途向け集積回路（ＡＳＩＣ）等のハードウェア要素で実行してもよいことを当業者は理解するであろう。従来のＡＳＩＣ又は同等の集積回路の実際の半導体素子又は本発明の実行に使用できる他の従来のハードウェア要素は本発明の一部ではなく、本明細書において詳細に考察しない。
【００３２】
ＡＳＩＣ、又は他の従来の集積回路、又は半導体素子を、本明細書においてさらに詳細に説明する本発明の技法を使用して、例えば図３以下に示され以下にさらに詳細に説明される本発明の方法を実行するように実施できることも当業者は理解するであろう。
【００３３】
本発明の方法態様を、ワークステーション又はＰＣのオペレーティングシステム及び本発明により構成されるコンピュータプログラムの製品の集合的なコマンドの下で動作するワークステーション及びパーソナルコンピュータ（ＰＣ）等の市販のデジタル処理システム内で実行できることも当業者は理解するであろう。「コンピュータプログラム製品」という用語は、コンピュータ可読媒体に符号化された任意のコンピュータ可読プログラム命令セットを包含することができる。コンピュータ可読媒体は、コンピュータハードディスク、コンピュータフロッピー（登録商標）ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読ＲＡＭ要素もしくはコンピュータ可読ＲＯＭ要素、又はワークステーション、ＰＣ、他のデジタル処理装置、もしくは他のデジタル処理システムに対してローカルであるかリモートであるかに関わりなく、デジタル情報を符号化、記憶、もしくは提供する他の任意の既知の手段を含むがこれらに限定されない任意の形態のコンピュータ可読要素を含むことができる。各種形態のコンピュータ可読要素及び媒体がコンピューティングの分野において周知であり、その選択は実施者に任される。
【００３４】
発明の実施形態
これより、本発明の特定の例及び実施形態を説明する。
【００３５】
ディスク又は帯域幅を個々のサーバ又はアプリケーションに割り当てるのではなく、本明細書において説明するシステム及び技法は、アプリケーションによって提供される内部調整機能を利用し、提供されるストレージサブシステムの特徴に基づいて調整されたパラメータセットに辿り着く。さらに、本発明は、ネットワーク化されたデジタルコンピューティングシステム等の完全なデジタルコンピュータシステムのリソースを考慮することもできる。説明するシステム及び技法は、Microsoft Windows（登録商標）、Linux、又はUnix（登録商標）等の商用オペレーティングシステムにおいて開発された既存の性能監視システム及び技法を利用する。説明するシステム及び技法は、実行時パラメータセットを通してアプリケーションを適応的に調整できるようにする、キーデータベース及び電子メールアプリケーションへの既存のインタフェースを利用する。本発明は、同時に複数のアプリケーションをさらに管理することができ、利用可能なシステムリソースの入念なプロビジョニングを通してＱｏＳ保証を提供する。
【００３６】
システム性能を決定するアプリケーションパラメータの構成に使用された従来の方法には、いくつかの大きな欠点があった。（１）今日まで使用されてきた調整方法は、試行錯誤の繰り返し調整に基づいてきた。（２）ユーザは、調整選択をガイドするために、基盤であるＣＰＵ、ネットワーク、及びストレージサブシステムについての情報をほとんど有さない。（３）共有デジタルコンピューティングシステムを利用する複数のアプリケーション又は複数のサーバを同時に管理することが殆ど考慮されてこなかった。そして、（４）デジタルコンピューティングシステムの特徴を個々のアプリケーションパラメータの変更に変換する一般に認められた方法が現在ない。
【００３７】
アプリケーションによっては、ストレージアクセス動作の待ち時間の影響を受けやすいものもあれば、そうでないものもある。データベース及びメールサーバアプリケーションは、非逐次モードでデータにアクセスすることが多く、別のコマンドを発行するにはアクセス又は一連のアクセスの完了を待たなければならないため、ストレージアクセス動作に関連する待ち時間に対して特に影響を受けやすい。
【００３８】
データベースシステム、メールサーバ等の多くの待ち時間の影響を受けやすいアプリケーションは、自己調整を実行する能力を有する。例えば、Oracle10gは、最近のクエリの挙動に基づいて将来のクエリの性能を加速させることができるクエリオプティマイザを提供する。Oracle10gは、データベース性能に影響を及ぼすことができる２５０を超える調整可能パラメータも有する。これらパラメータは、メモリリソース、例えばキャッシュ及びバッファを利用できるようにすると共に、同時アクセス可能量、例えばスレッド化の量を定義することができる。
【００３９】
説明するシステム及び技法は、基盤となるＣＰＵ、ネットワーク、及びストレージサブシステムについての情報を利用してこれら内部パラメータの適宜設定を目標とする。本明細書において説明するように、ＣＰＵサブシステム情報は、使用中のプロセッサの種類及び数の両方をそれぞれに関連するメモリ階層と共に含み、ネットワークサブシステム情報は、使用されるネットワークスイッチの速度及び構成並びにスイッチに接続されたアダプタの速度を含み、ストレージサブシステム情報は、物理的なディスク装置の特徴、これら装置のＲＡＩＤグループへのグループ分け、ＲＡＩＤグループへの論理アドレスのマッピング、及びこのシステムを通る個々のパスのスループットを含む。本発明のさらなる態様は、システムの実行時特徴を取り込むことによってストレージサブシステム情報を取得する能力を提供する。この情報は、カスタマイズされたエクササイザを実行することにより、又はシステムの通常の実行を観察することによって取得することができる。
【００４０】
アプリケーションパラメータの調整は、アプリケーションの初期化時に行うこともでき、又は動的に行うこともできる。基盤となるサブシステム性能の異なる特徴を取り込むために使用される方法は、静的、すなわち所定であり、ストレージシステムと共に出荷してもよく、又はプロファイリングを通して動的に取得されてもよい。目下説明している本発明は、この情報を統計的に指定する方法及びプロファイリングを通してこの情報を取得する方法の両方を含む。本発明のさらなる態様によれば、この情報は、フィードバックとしてアプリケーションに提供され、システムパラメータを自動的に又はシステム／アプリケーション管理者によって調整できるようにする。
【００４１】
上記考察では、デジタルコンピューティングリソースを最良に使用するために、性能の影響を受けやすいアプリケーションのパラメータを適宜調整する必要性について記載した。このようなパラメータを調整する装置及びシステムの一実施形態を図３に示す。
【００４２】
図３に示すように、アプリケーションサーバ２９０は、サーバ２６０に直接接続されるものもあれば、スイッチファブリック２５０を使用してストレージエリアネットワーク２７０を介してサーバに接続されるものもある様々なストレージ要素にアクセスする。これはサーバ及びストレージシステムの可能な編成の単なる１つである。本発明は特定の編成を要求しない。
【００４３】
本発明の目下説明している態様によれば、サーバ及びストレージシステムの両方と通信できる要素が導入される。この要素は、本明細書ではストレージシステムアウェアアプリケーション調整システム（ＳＳＡＡＴＳ：Storage System Aware Application Tuning System）２８０と呼ばれる。この要素並びに同様の構造及び機能についても説明し、以下において情報リソース管理（ＩＲＭ）システムとも呼ばれる。後述するように、本発明のさらなる態様は、ＳＳＡＡＴＳ要素の機能のうちのいくつか又はすべてを実行する他の名称の要素を提供する。
【００４４】
図３に示すＳＳＡＡＴＳの実施形態は３つの下位要素を含む。
（１）ストレージネットワークプロファイリングシステム２１０
（２）解析的モデル２２０
（３）アプリケーションパラメータ決定サブシステム２３０
【００４５】
ＳＳＡＡＴＳ要素２８０は、スタンドアロンのサブシステムとして実施されてもよく、又はサーバサブシステム２９０もしくはネットワークファブリックサブシステム２４０の一部として一体化されてもよい。
【００４６】
プロファイリングサブシステム要素１００は、ストレージネットワーク内の並列度を決定する能力を有し、上述したように基盤となるストレージシステム２６０及び２７０の帯域幅及び待ち時間値を推定することができる。プロファイリングサブシステム要素２１０は、存在するネットワークファブリック要素２５０の帯域幅及び待ち時間値を決定することもできる。
【００４７】
プロファイリングサブシステム要素２１０は、ストレージシステム製造業者から常に入手できるわけではない性能関連情報を取得する。ストレージシステムが設置される際、利用可能なストレージは多くの異なる編成で構成され得る。したがって、何等かの性能関連情報が製造業者から提供される場合であっても、必要な情報の大部分は、ストレージシステムが設置されて構成された後でのみ妥当性を持つ。
【００４８】
必要な性能関連情報は、例えば、
（１）ＣＰＵ、ネットワーク、及びＳＡＮで利用できる並列度、
（２）各種装置の速度、
（３）アプリケーションサーバと、ネットワークと、個々のストレージ装置との間でのパスの帯域幅、及び
（４）サーバから見たストレージシステムの構成
を含むがこれらに限定されない。
【００４９】
必要な性能関連情報を取得するために、一連の入／出力コマンドをストレージサブシステムに発行することができる。特定のコマンドシーケンスの応答時間及びスループットに基づいて、必要な性能関連情報を取得することができる。そして、この情報は解析的モデリング要素２２０に供給される。
【００５０】
解析的モデル要素２２０は、プロファイル情報をプロファイリングストレージネットワーク２１０から取得する。プロファイリングデータは解析的性能モデル２２０によって使われ、解析的性能モデル２２０は、アプリケーションサーバ２９０上のＣＰＵサブシステム、ネットワークサブシステム２５０、及びストレージサブシステム２６０及び２７０が耐えられる適切な負荷を確立するために使用される。解析的モデル要素２２０の出力はパラメータ値を決定する要素２３０に供給され、次に要素２３０はこれらの値をアプリケーションサーバ２９０に通信し、そして、アプリケーションサーバ２９０はアプリケーションの内部パラメータを設定する。
【００５１】
任意選択的な実施形態では、プロファイリングシステムはプロファイリングネットワーク２１０を通してストレージシステムの性能をプロファイリングし続けて、動的なプロファイルを解析的性能モデル２２０に供給し、新しいアプリケーションパラメータセットをパラメータ決定システム２３０からアプリケーションサーバ２９０に通信することができる。この任意選択的な実施形態の主要特徴としては、（ａ）プロファイリングシステムが、パラメータ変更を通して得られる恩益を低減させる恐れがある大きなオーバーヘッドをデジタルコンピューティングシステムにもたらし得ないこと、及び（ｂ）パラメータ変更頻度を制限して、システムが常に性能遷移に対応することのないように、適切な制御が提供されることを確かめなければならないことが挙げられる。
【００５２】
任意選択的な実施形態では、プロファイリングシステム２１０は、利用可能なシステム構成の使用をさらに改良するために、本明細書では「発見（Discovery）」と呼ばれるネットワークインタフェースを通してストレージリソース２６０及び２７０と直接通信することができる。
【００５３】
本明細書において説明する解析的モデル２２０は、標準の待ち行列理論技法を利用し、ストレージサブシステムがサポートできる負荷量を確立する。特に、解析的モデル２２０は、既知の待ち行列理論式、アルゴリズム、及び技法を適用して、サポート可能なストレージ負荷を決定することができる。このような式、アルゴリズム、及び技法は、例として、Kleinrock, L., Queueing Systems: Volume I-Theory (Wiley Interscience, New York, 1975), Kleinrock, L., Queueing Systems: Volume II-Computer Applications (Wiley Interscience, New York, 1976)に説明されており、これら両方を参照により、全文が本明細書に記載されているかのように本明細書に援用する。次に、パラメータ決定要素は、これら負荷値をターゲットアプリケーションの特定のパラメータ値に変換する。本発明のさらなる態様によれば、ＳＳＡＡＴＳ２８０は、各アプリケーションソフトウェアに１つずつ、複数のパラメータ決定要素２３０を含む。
【００５４】
アプリケーションパラメータ決定ユニット２３０は、アプリケーション固有パラメータの範囲を考慮する。特定の１つのパラメータセットは、例えば、Oracle 10gの内部で提供されるコストベースの最適化（ＣＢＯ）パラメータを含む。これらパラメータは、Oracle内でインデックス付与及びスキャン処理がどのように行われるか、並びにアプリケーションが担う並列度を制御することができる。例えば、マルチブロック読み出しカウントを設定してアクセスサイズを調整することができ、又は並列自動調整を設定して並列化された表スキャンを実行してもよい。
【００５５】
多くの状況では、ストレージ管理者が待ち時間に対する影響の受けやすさによってアプリケーションを区別することが有益であり得る。目下説明しているメカニズムは個々のアプリケーションのシステムリソース要求を制限することを目標としているが、ネットワーク及びストレージは異なるアプリケーションによって共有されるため、同じシステムを使用して複数のアプリケーションを管理することができる。
【００５６】
ネットワーク及びストレージが異なるアプリケーションによって共有される場合、解析的モデル２２０は、競合するアプリケーション作業負荷の影響を取り込むように調整することができる。２つの典型的な作業負荷は、ストレージバックアップ作業負荷と競合するオンライントランザクション処理作業負荷である。バックアップアプリケーションがクリティカルな動作を実行中であっても、実行はオンライントランザクション処理アプリケーションを優先すべきである。
【００５７】
複数のアプリケーションが同じＩＯストレージリソース２６０及び２７０のセットを共有している場合、アプリケーションパラメータ決定ユニット２３０により、共有を容易にするように複数のパラメータ値セットを調整する必要がある。
【００５８】
複数のアプリケーションが同じＩＯストレージリソース２６０及び２７０のセットを共有し、且つシステム管理者であるユーザが各アプリケーションのスループットに優先度を付けたい場合、アプリケーションパラメータ決定ユニット２３０は、一方のアプリケーションのＩＯ要求を別のアプリケーションのＩＯ要求よりも優先させるようにパラメータ値をさらに調整することができる。
【００５９】
これより、本発明によるシステムのさらなる実施形態を説明する。この説明では、上記要素及び他の要素をさらに詳細に説明する。
【００６０】
図４は、中央演算処理装置（ＣＰＵ）３０１、３０２、３０３、ネットワーク要素３１０、及びストレージアレイネットワーク３２０を含む例示的なコンピューティングシステム３００の要素を示す図である。図示の構成は、多くの現在利用可能なサーバクラスコンピューティングシステムの典型的な構成である。本明細書において説明するように、本発明の態様は、システム３００の解析的モデルを構築することによってシステム３００の性能を向上させるシステム及び技法を対象とする。解析的モデルは、システム構成情報及び異なる要素の実行時性能統計をまず取得することによって構築される。解析的モデルには、システム３００で実行中の特定のアプリケーションセットに関する知識が提供される。解析的モデルの出力は、パフォーマンスナンバ（performance number）及びコンピューティングシステム３００で実行中のアプリケーションに関連するアプリケーションパラメータの調整の仕方についての推奨を含む。次に、解析的モデルの出力を使用してアプリケーションの将来の性能を向上させることができる。
【００６１】
図５は、プログラムコード３６０及びアプリケーション３５０がコンピューティングシステム３００でどのように実行されるかの構成に使用されるアプリケーションパラメータセット３７０を含むアプリケーション３５０の図を示す。
【００６２】
図６は、ＣＰＵ１  ３０１で実行されるアプリケーション３５０の図を示し、アプリケーション３５０にはアプリケーションパラメータセット３７０が供給され、システムに負荷を発生させる。
【００６３】
図７は、コンピューティングシステム３００及び情報リソースマネージャ４００を表す図を示す。情報リソースマネージャ４００は、解析的モデル４１０を含み、ＣＰＵ統計４４０、ネットワーク統計４５０、及びＳＡＮ統計４６０を含むいくつかのコンピューティングシステム性能統計４３０と、コンピューティングシステム構成データ４７０と、コンピューティングシステム３００で実行中のアプリケーションセットのアプリケーションパラメータセット３７０とのデータベース４２０を保持する。
【００６４】
図８は、ＣＰＵ統計４４０、ネットワーク統計４５０、ＳＡＮ統計４６０、構成データ４７０、及びコンピューティングシステム３００で実行中のアプリケーションのアプリケーションパラメータ３７０のデータベース４２０を示す。
【００６５】
図９は、コンピューティングシステム３００からどのように性能統計を取得することができるかの一例を表す図を示す。ＣＰＵ統計４４０は、iostat５１０及びperfmon５２０等の標準ソフトウェアユーティリティを使用してＣＰＵ１  ３０１から取得することができる。ネットワーク統計４５０は、大半のネットワークスイッチ装置に提供されるＳＮＭＰインタフェース５３０を使用して取得することができる。ＳＡＮ統計４６０は、多くのＳＡＮシステム１２０に提供されるＳＭＩＳ５４０を介して取得することができる。図９に示すインタフェースは、異なる要素から性能統計を取得する特定の１つのインタフェースセットを示すが、情報リソース管理ユニット４００が利用可能なコンピューティングシステム上の追加のインタフェースにアクセスすることを除外するものではない。
【００６６】
図１０は、構成データ４１０がどのようにコンピューティングシステム３００の各要素から取得されるかを示す。異なるコンピューティングシステム要素１００の各ベンダーが一般に、この情報を報告するためのインタフェースを提供する。
【００６７】
図１１は、情報リソース管理ユニット４００の一部である解析的モデル４１０の図を示す。解析的モデル４１０の目的は、性能指標を生成するとともに、コンピューティングシステム３００で実行中のアプリケーションの性能を向上させるような最新のアプリケーションパラメータセット３７２（図１３及び図１４）を生成することである。
【００６８】
図１２は、構成データ４７０がＣＰＵ統計４３０、ネットワーク統計４３０、及びＳＡＮ統計４４０と共にどのように使用されて、解析的モデル４１０が構築されるかを示す。解析的モデルは、ＣＰＵ４１１、ネットワーク４１２、及びＳＡＮ４１３の各モデルを含み、追加のコンピューティングシステム要素を含んでもよい。
【００６９】
図１３は、解析的モデル４１０がどのように最新のアプリケーションパラメータセット３７２を生成するかを示す。この新しいパラメータセットはコンピューティングシステムに供給されて、システムで実行中のアプリケーション３５０がコンピューティングシステムの要素をどのように使用するかを再構成する。目標はシステムの性能を向上させることである。
【００７０】
図１４は、最新のアプリケーションパラメータ３７２がどのように使用されて、アプリケーション３５０によって使用されるアプリケーションパラメータセット３７０が更新されるかを示す。図１４は、アプリケーションがＣＰＵ１  ３０１上で実行されているものとして示すが、アプリケーションはシステム３０２、３０３の任意のＣＰＵ又はシステムネットワーク３１０もしくはＳＡＮ３２０内の他の任意の要素で実行されてもよい。
【００７１】
図１５は、情報リソース資源管理ユニットがいくつかのＣＰＵ４４２、ネットワーク４５２、及びＳＡＮ４６２の各統計を保持することができることを示す。これら記録は通常、時間順に並べられ、システムの長期挙動を提供する。この記録セットは、コンピューティングシステムで実行中の複数のアプリケーションに生成された性能統計を表すこともできる。このより豊富な統計セットで再び解析的モデル４１０を駆動することができ、これはコンピューティングシステムで実行中のアプリケーションデータ３７２を更新する。この技法を図１６にさらに示す。
【００７２】
さらなる実施態様の詳細／例
以下の考察において、本発明の各種態様による１つ又は複数の実施態様例のさらなる詳細を提供する。以下が単に例として提示され、後述する特定の構造を必ずしも必要とせずに、本発明を異なる構成及び実施形態で実践し実施してもよいことが当業者には理解されるであろう。以下の考察は以下のサブセクションに編成される。
１．システムアーキテクチャ
２．外部発見システム
３．発見エンジン
【００７３】
１．システムアーキテクチャ
目下説明しているアーキテクチャは一般に、本明細書ではイベントレベルモニタ（ＥＬＭ：Event Level Monitor）と呼ばれる。ＥＬＭアーキテクチャは、以下のＥＬＭ製品特徴をサポートする：（１）データセンタ可視性、（２）ホットスポット検出、及び（３）解析。
【００７４】
これら機能をサポートするために、ＥＬＭアーキテクチャは以下の特徴を提供する。構成／トポロジ発見、統計収集、統計計算、特定用途向けストレージトポロジ及び統計、解析、並びにアラーム及びイベントの生成。
【００７５】
図１７は、ＥＬＭアーキテクチャ６００の例示的な環境の主要構成要素のブロック図を示す。図示される各構成要素についてこれより順に説明する。
【００７６】
プラットフォーム６１０：プラットフォーム６１０は、ＩＲＭ４００を実行する基礎（foundation）及び基本環境を提供する。
【００７７】
Linux６２０：Linux  ＯＳ６２０は低レベル機能をプラットフォームに提供する。
【００７８】
構成要素タスクフレームワーク（ＣＴＦ：Component Task Framework）６３０：構成要素タスクフレームワーク６３０は、共通のプリミティブ及びサービスの有用なセット、メッセージング、イベント、メモリ管理、ログ作成及びトレース、デバッグシェル、タイマ、同期、ハッシュテーブル、リスト等を含むデータ処理を提供する。
【００７９】
MySQL６４０：システムのデータのリポジトリであるデータストア（ＤＳ：Data Store）６５０は、MySQL６４０の最上部に構築される中央データベースに記憶される。
【００８０】
データストア（ＤＳ）６５０：ＤＳ６５０は発見された要素、要素の関係又はトポロジ、及び要素の統計を含む。
【００８１】
情報リソースマネージャ（ＩＲＭ）４００：情報リソースマネージャ（ＩＲＭ）４００については上述してあり、データセンタについての情報、トポロジ、及び統計のすべての収集を担当する。
【００８２】
外部発見及び収集（ＥＤａＣ）７００：外部発見及び収集（ＥＤａＣ）７００についてはさらに後述し、サーバ及びストレージアレイ等のデータセンタの要素への接続をシステムに提供する構成要素である。これは、特定の各種類の要素、例えばCLARiiONストレージアレイにどのように話しかけ、そこからトポロジを発見又は統計を収集する方法を知っている。したがって、特定の各アレイ又はサーバ毎に別個のモジュール又はコレクタを有する。各種の要素に、ＸＭＬで定義され、あらゆるコレクタに準拠する標準ＡＰＩがある。
【００８３】
発見エンジン６６０：発見エンジン６６０は、データセンタ要素、特にサーバ及びストレージアレイのトポロジの発見を行う。ユーザは、発見してほしいサーバ及びストレージアレイを入力する。発見エンジン６６０はデータストア６５０にアクセスして、ユーザが入力したサーバ、ネットワーク、及びストレージアレイのリストを取得する。それぞれ１つずつ、発見エンジン６６０はＥＤａＣ７００にトポロジを取得するように要求する。ＥＤａＣ７００は要素に問い合わせ、発見されたすべての情報、例えばストレージアレイのディスクを返す。次に、発見エンジン６６０は、この情報をデータストア６５０に配置し、情報間の関係を結び付ける。サーバが最初に発見されると、発見エンジン６６０は、サーバから統計の収集を開始することを統計マネージャ６７０に通知もする。さらに、発見エンジン６６０は定期的に起きて、デジタルコンピューティングシステム３００の要素を「再発見」もする。これにより、いかなるトポロジ変更も発見することができる。
【００８４】
統計マネージャ６７０：統計マネージャ６７０は、コンピュータシステム要素、特にサーバからの統計の収集を行う。現行の製品では、統計はサーバからのみ収集されるが、これら統計を使用して他のデータセンタ要素の統計も同様に導き出される。新しいサーバが発見されたときには、発見エンジン６６０は統計マネージャ６７０に通知する。その場合、統計マネージャ６７０はそのサーバを収集リストに追加する。統計マネージャ６７０はその収集リストを通して、定期的に起きて実行する。収集リスト内の各サーバについて、ＥＤａＣ７００にその統計を収集するように要求する。ＥＤａＣ７００は、サーバの統計を収集すると統計マネージャ６７０に送信する。統計マネージャ６７０はこれら統計を処理してデータストア６５０内に挿入する。統計によっては、変更なしでデータストア６５０に追加されるものもあれば、平均処理等の何等かの単純な処理の後に追加されるものもあれば、完全に新しい統計を導き出すより洗練されたアルゴリズムを使用して処理されるものもある。
【００８５】
統計モニタ６８０：新しい統計が常に収集されて計算される。これは、ユーザが時間的に遡ってシステムに何が起こったのかを調べることができることを意味する。すべての統計はデータストア（ＤＳ）６５０に記憶される。記憶される統計としては、計算された統計並びに収集された統計が含まれる。これにより、常に統計をすぐに表示することが可能になる。
【００８６】
統計モニタ６８０は、統計マネージャ６７０が統計をデータストア６５０内に配置した後に統計を監視し管理する。統計モニタ６８０内には、定期的に起きて異なるタスクをデータストア６５０内の統計に対して実行するいくつかのデーモンがある。これらタスクとしては、概要統計を作成すること、例えば収集された統計を時間単位でまとめた統計にすること、何等かの統計の移動平均を計算すること、何等かの統計を閾値と比較すること、閾値を超えた場合にイベントを生成し、最終的にアラーム生成することが含まれる。
【００８７】
計算され解析される、異なる種類の統計がある。これらのうちのいくつかは以下を含む。
【００８８】
計算された統計：計算された統計は、収集された統計又は他の計算された統計に対して計算を実行することによって作成される統計である。計算は、加算のように単純であってもよく、又は非線形曲線当てはめの実行のような複雑なものであってもよい。計算された統計は、収集された統計と同じ方法及び形式でＤＳ６５０に記憶される。
【００８９】
計算されたストレージ統計：すべてのストレージ統計がサーバＬＵＮから収集された統計から導き出されることに留意することが重要である。そして、発見されたサーバ及びストレージアレイトポロジを使用して、その他のストレージオブジェクト：サーバボリューム、ストレージアレイＬＵＮ、ＡＳＧ、及びサブグループの統計が導き出される。
【００９０】
収集及び計算の頻度：統計収集は、システムが統計的に安定している時間にわたって利用率を計算できるように行われる。統計的な安定は、統計が変化しないことを意味せず、システムが同種の作業又は作業セットをこの期間にわたって行っていることを意味する。利用率を計算するには、一連のサンプルが必要である。したがって、統計的に安定した期間にわたっての利用率を計算するために、一連のサンプルを短期間に収集しなければならない。しかし、相当数のサーバの統計を高頻度で常に収集することによってシステムにかかる負担が大きすぎる。上記要件／制約は、図１８に示すようにバーストで統計を収集することによって満たされる。
【００９１】
パラメータは以下の意味を有する。
メジャー期間：サンプルのバースト間の時間。範囲は５〜６０分。
マイナー期間：バーストの各サンプル間の時間。範囲は１〜１０秒。
バースト：マイナー期間レートで各メジャー期間内にとられるサンプル数。範囲は１〜５０サンプル。
【００９２】
これらパラメータはサーバ毎に可変である。したがって、メジャー期間３０分、マイナー期間１０秒、及びバーストサイズ１０でサーバの統計を収集しながら、メジャー期間１５分、マイナー期間１秒、及びバーストサイズ２５で別のサーバの統計を収集することが可能である。利用率の計算に使用されない統計は、メジャー期間中に１回収集される。バーストで収集された統計は、利用率の計算にすぐに使用される。利用率計算の結果はＤＳに保存され、生データは破棄される。したがって、統計は、各サーバにつきメジャー期間毎に１回ＤＳに挿入される。
【００９３】
サーバ統計計算頻度：サーバのすべての統計：ＣＰＵ、メモリ、ＬＵＮ、及びボリュームの統計は、同時に収集されて計算される。これは、サーバのメジャーサンプルレートで行われる。
【００９４】
アプリケーションストレージグループ／ストレージグループ統計計算頻度：特定の問題が、アプリケーションストレージグループ（ＡＳＧ）及びストレージグループ（ＳＧ）の計算期間である。ＡＳＧ及びＳＧの統計は、異なる複数のサーバからのものであり得るサーバＬＵＮ統計から計算される。これらサーバＬＵＮ統計は、異なる時間及び潜在的に異なるレートで収集された可能性が最も高い。これは、ＡＳＧ／ＳＧ統計をメジャーサンプル期間で計算することができないことを意味する。各サーバＬＵＮからの複数のサンプルを使用できるように、サーバＬＵＮ統計をいくらか遅いレートで計算しなければならない。
【００９５】
現在状態の更新頻度：多くのオブジェクトは現在状態、過去の状態、トレンド状態を保持する。現在状態は比較的頻繁であるが、メジャーサンプルレートよりも遅いレートで計算される。
【００９６】
過去の状態及びトレンドの更新頻度：過去の状態及びトレンドは長期指標であるため、あまり頻繁に計算されない。
【００９７】
概要計算頻度：概要化は、データベース内の領域を節約するメカニズムである。古いデータほど価値が低いという理論の下で動作し、新しいデータと同じ粒度で見る必要はない。
【００９８】
発見頻度：発見は、環境についての比較的静的なデータを収集する。したがって、あまり頻繁に実行させる必要はない。しかし、これは、いかなる変更も素早く表したいという要望とバランスさせる必要がある。
【００９９】
収集頻度及び計算頻度の概要：図１９に示す表は、収集頻度及び計算頻度の概要を提供する。変更可能なように、すべての収集パラメータ及び計算パラメータをパラメータ化すべきであることに留意する。
【０１００】
統計概要：図２０〜図２７に示す表は、本明細書において述べるＥＬＭシステムの統計の概要を提供する。
【０１０１】
・図２０−収集されるサーバ統計：
サーバ統計はサーバから収集される。これらはメジャーサンプル期間レートで頻繁に収集される動的統計である。
・図２１−収集されるサーバ属性：
サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
・図２２−記憶されるサーバ属性：
サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
・図２３−記憶されるサーバ現在統計：
サーバ統計は収集されたサーバ統計から生成されてから、データベースに記憶される。これらは、各サーバにつきメジャーサンプル期間毎に生成されるものであるべきである。
・図２４−サーバ概要統計：
概要サーバ統計は、短時間期間から長時間期間までのサーバ統計の集計である。例えば、メジャー期間統計を日毎又は週毎の統計にまとめることができる。
・図２５−記憶されるストレージ統計：
様々なストレージオブジェクトの統計を記憶するために使用される共通のストレージ統計がある。ストレージ統計が生成される頻度は、それが生成されているオブジェクトに依存する。サーバボリューム−メジャーサンプル期間毎に１回。サーバＬＵＮ−メジャーサンプル期間毎に１回。アプリケーションストレージグループ−アプリケーションストレージグループ／ストレージグループ計算期間毎に１回。サブグループ−アプリケーションストレージグループ／ストレージグループ計算期間毎に１回。
・図２６−記憶されるストレージ統計：
あらゆる統計があらゆるオブジェクトに対して有効であるわけではない。図２６の表は、どの統計がどのオブジェクトに対して有効であるかを示す。
・図２７−記憶される概要ストレージ統計：
概要ストレージ統計は、短時間期間から長時間期間までのストレージ統計の集計である。例えば、メジャー期間統計は日毎又は週毎の統計にまとめることができる。
【０１０２】
解析：解析はデータストアに記憶されたデータ、主にトポロジ及び統計を使用して、システムに何か起こっているのかについてユーザに通知し、又はシステムに対する推奨を行う。解析は、データストア内のデータに対してルールエンジンによって実行されるルールセットとして実施してもよく、又はアプリケーションパラメータの調整に使用される解析的モデルとして実施してもよい。実行できるいくつかの異なる種類の解析がある。これらは以下を含む。
【０１０３】
・アプリケーション時点解析：
ある時点でアプリケーションの性能及びリソースの使用に何か起こっているのかを解析する。
・アプリケーションデルタ時間解析：
２つの時点間でアプリケーションの性能及びリソースの使用で何か変更されたかを解析する。
・アプリケーションストレージグループ解析：
ある時点でのアプリケーションとストレージとの間のパスを解析して、ホットスポットであるか否か、及びパスに対してアプリケーション競合があるか否かを判断する。
・ストレージプロビジョニング推奨：
アプリケーションへのより多くの物理的ストレージをどこにプロビジョニングするかについて推奨する。
・アプリケーション推奨：
アプリケーションパラメータを変更する。
【０１０４】
上記に加えて、既知のＡＰＩ実施に従って構築された各種ＡＰＩ（アプリケーションプログラミングインタフェース）を各種ポイント及びレイヤに提供して、システム設計者、管理者、又は他が望むようなインタフェースを供給してもよいことを当業者は理解するであろう。
【０１０５】
２．外部発見及び収集サービス
これより、アプリケーション外部のリソースのすべての構成及び統計へのアクセスを提供する上記外部発見及び収集（ＥＤａＣ）サービスについてさらに詳細に説明する。ＥＤａＣサービスは、任意の外部リソースへの要求のディスパッチを担当する。図２８は、ＥＤａＣ７００の例示的な実施形態に含まれる様々なコネクタを示す図である。各コネクタ７３０は特定のリソースへのアクセスを提供する。
【０１０６】
担当事項リストは以下を含む。（１）統計要求イベントをリッスンし、適切なコネクタに転送すること、（２）発見要求イベントをリッスンして、適切なコネクタに転送すること、及び（３）発見要求をすべてのコネクタに対して何等かのスケジュールで実行して、発見イベントを生成すること。本発明のさらなる態様によれば、項目（３）の機能は情報リソースマネージャ（ＩＲＭ）に移してもよい。
【０１０７】
発見プロセスには２つの部分がある。（１）装置を「発見」すること、及び（２）装置の大半は静的な構成を理解すること。発見アルゴリズムは、何千もの装置を処理するために十分に堅牢でなければならない。完全な発見プロセスは数時間かかり得る。構成に関しては、発見及び収集を実現するために、オブジェクトモデルに以下のデータが必要である。
【０１０８】
サーバ：ＩＰアドレス、ログイン／パスワード、Solarisの場合ＳＳＨ／テルネット、ポーリング間隔、及び永続的な接続
【０１０９】
ストレージアレイ：管理サーバ、ログイン／パスワード、ＣＬＩへのパス、ポーリング間隔、永続的な接続
【０１１０】
アプリケーション：ＩＰアドレス、ログイン／パスワード、サービス名、ポート、ポーリング間隔、永続的な接続
【０１１１】
各種の周知のデータアクセスツールを本発明のこの態様と併せて利用することができ、構成可能なアクセス方法を含めた複数のアクセス方法を利用してよい。これらは、サーバへのテルネットアクセス、ＯＤＢＣを介してのデータベースデータアクセス（マサチューセッツ州ベッドフォードに所在のDataDirect Technologiesから市販されているＯＤＢＣライブラリを利用し得る）、ＳＳＨ技法、及び他の従来の技法を含み得る。
【０１１２】
シーケンスイベントブローカ７１０が、ＥＤａＣコア７２０へのインタフェースを提供し、これは上述したコネクタ７３０を含む。
【０１１３】
Oracleデータベースコネクタ７３０ａが、データベース構成及びデータベース統計の収集を担当する。Oracleデータベースコネクタ７３０ａは、ＯＤＢＣライブラリ７４０を使用する。
【０１１４】
Windows（登録商標）及びSolarisサーバコネクタ７３０ｂ及び７３０ｃは、メモリ利用率、ボリューム／ＬＵＮマッピング及び統計等のＯＳレベルのデータ収集を担当する。ボリューム／ＬＵＮマッピングを計算するために、インストールされたボリュームマネージャ及びマルチパス製品の両方を理解する必要があり得る。それぞれの仕様、すなわちストライピング特徴又はパス情報を理解する必要がない場合であっても、どのＬＵＮがボリュームに関連するかを計算するためだけに、各製品からの情報が必要になる可能性が高い。特定の製品をＥＬＭのターゲットとして選択することができる。Solarisサーバコネクタ７３０ｃはＳＳＨを使用する。SolarisのボリュームマネージャはVeritasであり、ネイティブなものである。Windows（登録商標）サーバコネクタ７３０ｂはＷＭＩライブラリ７５０を使用する。Windows（登録商標）のボリュームマネージャはネイティブなものであり、Veritasである。
【０１１５】
ストレージコネクタ７３０ｄ、７３０ｅ、及び７３０ｆはＬＵＮの利用率、性能、ＲＡＩＤセット／ディスクへのマッピング、及びボックス７６０で概して表される他のデータの収集を担当する。アレイ性能統計はＥＬＭに必要ない。
【０１１６】
CLARiiONストレージコネクタ７３０ｄに関しては、NaviＣＬＩはCLARiiONへのリッチＣＬＩインタフェースである。データをＸＭＬで返すことができる。性能統計はCLARiiONでイネーブルし、ＣＬＩを通して検索することができる。ＣＬＩをＡＳＣにインストールすることも可能である。ＣＬＩがＳＳＨ７８０を通して顧客サーバのうちの１つからアクセスされる可能性がより高い。データによってはテルネットによってCLARiiONに直接提供される。
【０１１７】
Dothillストレージコネクタ７３０ｅに関しては、DothillもホストベースのＣＬＩを有する。データをＸＭＬで返すことができる。Dothillは性能統計へのアクセスを提供しない。アクセス事項は、CLARiiON  ＣＬＩと同じである。ここでも、データによってはテルネットによってDothillに直接提供される。
【０１１８】
適したＨＰストレージコネクタ７３０ｆも提供される。
【０１１９】
ボックス７３０ｇで表すように、目下説明しているシステムは、以下の要素を含むように変更し拡張することが可能である。ＣＩＭ／ＷＢＥＭ／ＳＭＩ−Ｓアクセス、ＳＮＭＰアクセス、ファブリックコネクタ、外部ＳＲＭコネクタ、リモートプロキシ／エージェント、構成変更イベント。さらに、１つのWindows（登録商標）エージェントが「Windows（登録商標）ワールド」へのゲートウェイとして機能し、ＷＭＩ及びＯＤＢＣとよりシームレスに統合する。これら将来のアクセスツールはボックス７７０で表される。
【０１２０】
３．発見エンジン
上述した発見エンジンについてこれよりさらに詳細に説明する。発見エンジン（ＤＥ）は情報リソースマネージャ（ＩＲＭ）に存在する。ユーザによってデータストア（ＤＳ）に入力されたサーバ及びストレージアレイの定期的なトポロジ発見の開始を担当する。発見エンジンは、これを上述した外部発見及び収集（ＥＤａＣ）モジュールと併せて行う。
【０１２１】
ＤＥは、メッセージキューからメッセージを処理するメインループの周りに構築される。これらメッセージは以下を含む。
・発見タイマイベント：
このイベントは完全な発見プロセスを開始させる。
・発見完了イベント：
これらは、当初はＤＥによってＥＤａＣに送信され、ここでは、ＥＤａＣがサーバ又はストレージアレイに対してすべての発見イベントを生成した後、ＥＤａＣによって返されている発見ストレージアレイトポロジイベント及び発見サーバトポロジイベントである。これらイベントは、サーバ又はストレージアレイのトポロジ発見が完了したことを示す。
・オブジェクト発見イベント：
ＥＤａＣは、サーバ又はストレージアレイのトポロジを決定するプロセス中に発見した各オブジェクトについて発見イベントを生成する。例えば、ＥＤａＣは、サーバのトポロジを決定するように要求されたとき、サーバ、サーバＦＣポート、サーバボリューム、及びサーバＬＵＮ発見イベントを生成する。
【０１２２】
メインループは、メッセージキュー上の処理すべき次のメッセージを単に待つことができる。
【０１２３】
発見タイマイベント：ＤＥは構成要素タスクフレームワーク（ＣＴＦ）を使用して発見間隔タイマを設定する。タイマが経過すると、ＣＴＦはメッセージを生成してＤＥのメッセージキューに送出する。これは、ＤＥに発見プロセスを開始するときであることを知らせる。
【０１２４】
発見タイマイベントは、ＤＥにＮ回の初期サーバトポロジ発見イベント又はストレージアレイトポロジ発見イベントを並列して開始させる。Ｎは任意の数である。トポロジを発見するサーバ又はストレージアレイがなくなるまで、常にＮ回の未処理トポロジ発見イベントがある。
【０１２５】
サーバ又はストレージアレイ発見完了イベント：サーバ又はストレージアレイ発見完了イベントは、実際には、ＥＤａＣがそのオブジェクトに対する発見を完了した後にＤＥに返されたサーバトポロジ発見イベント又はストレージアレイトポロジ発見イベントである。
【０１２６】
発見完了イベント処理：処理ステップは以下のとおりである。
１．ＤＥがＤＳに問い合わせて、存在する記録、例えばオブジェクトトポロジ発見中に発見されなかったサーバＬＵＮがあるか否かを見つけ出す。ＤＥは、発見タイムスタンプが現在の記録のタイムスタンプと同じではないすべての記録に対してクエリを作成することによってこれを行う。
２．タイムスタンプが整合しない各記録について、失われたイベント、例えばサーバボリューム損失イベントが生成されて送信される。
３．発見すべきサーバ又はストレージアレイがまだある場合、ＤＳから次のサーバ又はストレージアレイが検索され、そのトポロジ発見イベントがＥＤａＣに送信される。
４．発見すべきサーバ又はストレージアレイがない場合、発見は完了し、発見間隔タイマが再開される。
【０１２７】
オブジェクト発見イベント：トポロジ発見イベントを受信すると、ＥＤａＣはサーバ又はストレージアレイにそのトポロジについて問い合わせる。トポロジは記録セットからなる。ＥＤａＣは、現在のイベントに対して発見イベントセットを生成する。発見イベントが特定の順に行われることが重要である。
【０１２８】
サーバトポロジ発見イベント：サーバ発見イベント、サーバＦＣポート発見イベント、サーバボリューム発見イベント、サーバＬＵＮ発見イベント。
【０１２９】
ストレージアレイトポロジ発見イベント：ストレージアレイ発見イベント、ストレージアレイＦＣポート発見イベント、ストレージアレイディスク発見イベント、ストレージアレイＬＵＮ発見イベント。
【０１３０】
各発見イベントには、発見のタイムスタンプが含まれる。タイムスタンプは、ＥＤａＣによって挿入される。特定のストレージアレイ又はサーバの各発見イベントは同じタイムスタンプ値を有する。
【０１３１】
発見処理：発見ステップは以下のとおりである。
１．ＤＥがデータストアに問い合わせて、記録がすでに存在するか否かを判断する。
２．記録がすでに存在する場合、記録の関係が検証され、発見タイムスタンプが更新される。
３．記録がＤＳに存在しない場合、記録が他の記録に対する関係と共に作成される。したがって、このステップでの処理は発見された記録に特有のものである。
４．「記録発見」イベントが作成され、ログに記憶される。
【０１３２】
全般的な方法
図２９Ａは、デジタルコンピューティングシステムで実行中の複数のアプリケーションの実行を最適化する全般的な方法１０００のフローチャートである。本方法は、少なくとも１つの中央演算処理装置（ＣＰＵ）と、ＣＰＵがデジタルコンピューティングシステムの他の要素と通信できるようにするネットワークと、及び少なくとも１つのストレージ装置を備え、かつ少なくとも１つのＣＰＵと通信するように動作可能なストレージエリアネットワーク（ＳＡＮ）とを備えるネットワーク化されたデジタルコンピューティングシステムで有利に実施することができる。コンピューティングシステムは少なくとも１つのアプリケーションプログラムを実行するように動作可能であり、少なくとも１つのアプリケーションプログラムは、アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有する。
【０１３３】
本発明による例示的な方法をボックス１００１〜１００３に示す。
【０１３４】
ボックス１００１：デジタルコンピューティングシステムの要素と通信するように動作可能な情報リソースマネージャ（ＩＲＭ）を利用して、コンピューティングシステムの動作及びコンピューティングシステムで利用可能なリソースに関する性能情報を取得し、少なくとも１つのＣＰＵ、ネットワーク、及びＳＡＮと通信してそこから性能情報及び構成情報を取得する。本明細書の他のどこかに記載したように、性能情報及び構成情報は、デジタルコンピューティングシステム内の任意のＣＰＵ、ネットワーク、又はストレージ装置からのものであってよい。情報は、Ｉ／Ｏコマンド又は他のコマンドをデジタルコンピューティングシステムの少なくとも１つの要素に発行することによって取得することができる。ＩＲＭは、デジタルコンピューティングシステム内の離散モジュールであってもよく、又はコンピューティングシステムサブシステムもしくはＳＡＮ内のストレージネットワークファブリックサブシステム内のモジュールとして実施されてもよい。
【０１３５】
ボックス１００２：性能情報及び構成情報を利用して、解析的モデル出力を生成し、解析的モデル出力は性能統計及び最新のアプリケーションパラメータのうちの任意のものを含む。本明細書の他のどこかに記載したように、本発明は待ち行列理論を利用して、ストレージシステム又はサブシステムがサポートできる負荷の程度を判断する。
【０１３６】
ボックス１００３：解析的モデル出力を利用して、最新のアプリケーションパラメータ値を決定し、最新のアプリケーションパラメータ値をデジタルコンピューティングシステムで実行中の少なくとも１つのアプリケーションに送信する。アプリケーションは最新のアプリケーションパラメータを使用してアプリケーションパラメータを設定し、それにより、最新の実行時パラメータを使用してデジタルコンピューティングシステムで実行中の複数のアプリケーションの実行を最適化する。本明細書の他のどこかに記載したように、方法は負荷値、例えば待ち行列理論を使用して決定された負荷値を利用して、所与のアプリケーションのパラメータ値を決定することができる。方法は、最新のアプリケーションパラメータ値を決定する際に、アプリケーション固有パラメータ、例えばコストベースの最適化（ＣＢＯ）パラメータの範囲を考慮することも含み得る。
【０１３７】
図２９Ｂは、繰り返して又は別様に図２９Ａの方法１０００をどのように引き続き実行することができるかを示し、動作中に引き続きストレージシステムの性能をプロファイリングし、それにより、一連の時間ベースのサンプルを収集するステップ（１００４）、時間ベースのサンプルに応答して最新のプロファイルを生成するステップ（１００５）、及び最新のプロファイルに応答して、所与のアプリケーションの実行時に最新のアプリケーションパラメータセットを送信するステップ（１００６）を含む。本明細書の他のどこかに記載したように、本方法は、システムが過度の性能状況に継続的に適合することのないように、アプリケーションパラメータ変更の頻度に対する減衰制御の選択された程度を提供するステップを含むことができる。本方法は、発見インタフェースを介してデジタルコンピューティングシステムの個々の要素と直接通信するステップを含むこともできる（図２９Ｂと図２９Ａとの例示的な対応性は各図のポイント「Ａ」及び「Ｂ」を介して示される）。
【０１３８】
図３０は、本明細書の他のどこかでの考察により、複数のアプリケーションがネットワーク、ストレージ、又は他のリソースを共有している環境において、本発明による方法１０１０をどのようにしてさらに実施することができるかを示し、競合するアプリケーション作業負荷の影響を決定し、それを考慮して解析的モデルを調整するステップ（１０１１）、リソース共有の改良を容易にするように複数のパラメータ値セットを調整するステップ（１０１２）、及び必要に応じて一方のアプリケーション、又はそのＩ／Ｏ要求、又は他の態様を別のアプリケーション、又はそのＩ／Ｏ要求、又は他の態様よりも優先させるようにパラメータ値を調整するステップを含む。
【０１３９】
結論
上記説明は当業者が本発明を実施できるようにする詳細を含むが、説明は例示的な性質のものであり、その多くの変更及び変形が本教示の利益により当業者には明らかであり、そういった変更及び変形が本発明の主旨及び範囲内にあることを認識されたい。したがって、本明細書における本発明は添付の特許請求の範囲によってのみ規定され、特許請求の範囲は従来技術によって許される限り広義に解釈されることが意図される。
【図１】
2009543233.tif 000003
【図２Ａ】
2009543233.tif 000004
【図２Ｂ】
2009543233.tif 000005
【図３】
2009543233.tif 000006
【図４】
2009543233.tif 000007
【図５】
2009543233.tif 000008
【図６】
2009543233.tif 000009
【図７】
2009543233.tif 000010
【図８】
2009543233.tif 000011
【図９】
2009543233.tif 000012
【図１０】
2009543233.tif 000013
【図１１】
2009543233.tif 000014
【図１２】
2009543233.tif 000015
【図１３】
2009543233.tif 000016
【図１４】
2009543233.tif 000017
【図１５】
2009543233.tif 000018
【図１６】
2009543233.tif 000019
【図１７】
2009543233.tif 000020
【図１８】
2009543233.tif 000021
【図１９】
2009543233.tif 000022
【図２０】
2009543233.tif 000023
【図２９Ａ】
2009543233.tif 000024
【図３０】
2009543233.tif 000025
【図２１】
2009543233.tif 000026
【図２２】
2009543233.tif 000027
【図２３】
2009543233.tif 000028
【図２４】
2009543233.tif 000029
【図２５】
2009543233.tif 000030
【図２６】
2009543233.tif 000031
【図２７】
2009543233.tif 000032
【図２８】
2009543233.tif 000033
【図２９Ｂ】
2009543233.tif 000034
【国際調査報告】
2009543233.tif 000035