アプリケーションシステムのストレージリソースを識別する方法およびシステム
本発明は、デジタル処理環境内、より詳細には、デジタルストレージ環境内で、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを可能にするとともに、デジタルストレージ環境内の任意のストレージ要素に負荷を生じさせているアプリケーションセット(他のソフトウェアプログラム)の階層イメージを提供するように動作可能な方法、装置、システム、およびコンピュータプログラムコード(ソフトウェア)製品を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、2006年12月21日に出願され「Methods and Systems for Identifying Application System Storage Resources(アプリケーションシステムストレージリソースを識別する方法およびシステム)」という名称の米国仮特許出願第60/871444号(代理人整理番号:AKR−114−PR)の優先権の利益を主張するものであり、この仮特許出願を、その全体が記載されているかのように参照により本明細書に援用する。
【0002】
本特許出願は、2007年7月5日に出願され「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理番号:AKR−110−US)の一部継続出願(CIP)でもあり、この特許出願も参照により本明細書に援用され、その詳細な説明および図面が本明細書において記載される。そして、米国特許出願第11/773825号(AKR−110−US)は、2006年7月6日に出願された米国仮特許出願第60/806,699号(AKR−110−PR)の優先権の利益を主張するものであり、この仮特許出願を、その全体が記載されているかのように参照により本明細書に援用する。
【0003】
発明の分野
本発明は、一般には、デジタル処理システム、装置、およびネットワークに関し、より詳細には、アプリケーション性能および自己管理システムの分野に関する。さらにより詳細には、本発明は、システムリソースで生じた性能問題を、性能制約システムリソースに対して負荷を生み出しているアプリケーションサーバ、アプリケーション、およびアプリケーションタスクに再びマッピングする方法、システム、および装置に関する。
【背景技術】
【0004】
発明の背景
多くのストレージプラットフォームでは、ストレージ管理者がストレージリソースを異なるハードウェアサーバに割り振りそして割り当てることができる。単一のハードウェアサーバは複数のアプリケーションを並行に実行することができる。単一のアプリケーションはいくつかの並行タスクを具現することができる。単一のアプリケーションは、通常、いくつかのシステムリソースを利用する。アプリケーション性能は、アプリケーションのシステムリソースへのアクセスを最適化できる場合、潜在的に加速することができる。
【0005】
不都合なことに、従来のストレージプラットフォームでは、ユーザまたはシステム管理者は、個々のアプリケーションがシステムリソースセットをどのように利用するかについて殆ど指針を有さない。同じハードウェアサーバで並行に実行されている2つのアプリケーションが、共通のシステムリソースに対する競合により、ストールする場合があり得る。システムリース競合は識別することができるが、アプリケーションからそのアプリケーションを使用しているシステムリソースへのマッピング、およびこの逆のマッピングを識別できない場合を除き、問題の原因を完全には知ることなく、性能ボトルネックを修復しようと試みることができる。
【0006】
より詳細には、アプリケーションは、多くの場合、ストレージエリアネットワーク(SAN)を通して共通のストレージシステムを共有するサーバにホストされる。アプリケーションの要求と中央ストレージの能力との不均衡は、中央ストレージリソースを共有しているアプリケーションの全体性能を不良にし得る。この不均衡は、サーバ(CPUおよびメモリ)、バスアダプタ、スイッチ、ディスクコントローラ、およびディスクアレイを含むいくつかの任意の異なるシステム要素のアプリケーションによる使用に影響を及ぼし得る。
【0007】
個々のアプリケーションは、サーバとサポートしているストレージサブシステムとの間のパス内の任意の特定のシステム要素に対して大きすぎる負荷をかけている場合、性能の影響を受け得る。さらに、同じまたは独立したサーバで実行されている複数のアプリケーションは、ネットワークおよびストレージがアプリケーションおよびサーバで共有されている場合、互いの性能に影響を及ぼし得、多くの場合、SANが共有リソースとして導入される。
【0008】
任意のアプリケーションの性能は、アプリケーションが単一の装置に対して大きすぎる負荷を生成する場合、または複数のアプリケーションが多くの要求でシステムを溢れさせる場合に低下し得、それにより、ストレージシステムが集合負荷にサービス提供することができなくなる。
【0009】
ストレージシステムにアクセスする際にあるアプリケーションが別のアプリケーションに対して生じさせる干渉は、性能の大きなばらつきに繋がり得る。より予測可能なアプリケーション性能を提供しようという試みは、多くの場合、システムリソース(例えば、CPU、メモリ、ネットワーク、ディスク)のオーバープロビジョニングに繋がる。
【0010】
ストレージプラットフォームのリソースに関連する問題のうちのいくつかに対処する既知の一方法は、ストレージリソース管理(SRM)であり、通常、SRMは、割り振られたリソースセットのトポロジを発見し、その性能の健康状態を評価する計測機能を提供する。システム性能の健康状態は、応答時間およびストレージ帯域幅に関して測定することができる。SRMは、性能が制約されたストレージリソースを検出し、これをストレージ管理者に報告することができる。
【0011】
ネットワーク化された特定のストレージリソースセットを使用するアプリケーションセットの識別を可能にするには、ストレージシステムとアプリケーションとの間の完全なマッピングが要求される。マッピングは、(1)アプリケーションによって使用されているすべてのシステムリソース(例えば、個々のディスク、ディスクコントローラ、バスアダプタ)についての情報および(2)ストレージシステムからアプリケーションサーバへのパス(ボリュームLUNマッピングおよびネットワークスイッチを含む)の両方を含まなければならない。
【0012】
例として、米国特許第7,058,545号(「’545号特許」)は、参照により本明細書に援用され、ストレージ装置とアプリケーションとの間の論理データパスおよび物理データパスを識別するが、パスを構成するすべてのシステムリソースを識別する能力を有さない方法を記載している。’545号特許は、データパスを管理して、データパスの性能、信頼性、またはセキュリティを増大させることを対象とし、複数のアプリケーション間の競合に対処しない。
【特許文献1】米国特許第7,058,545号
【発明の概要】
【発明が解決しようとする課題】
【0013】
したがって、特に、複数のアプリケーションが実行されている現実世界環境において、システムリソースをアプリケーションに効率的にマッピングするように動作可能な方法およびシステムを提供することが有用である。
【0014】
このような方法およびシステムを利用する改良されたストレージプラットフォームおよびアーキテクチャを提供することも有用である。
【課題を解決するための手段】
【0015】
これらのニーズを満たし、他の技術的利点および特徴を提供する本発明について、次に、添付の図面に関連して詳細に説明する。
【0016】
発明の概要
本発明は、デジタル処理環境内、より詳細にはデジタルストレージ環境内で動作可能であり、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素との間のマッピングを可能にするとともに、デジタルストレージ環境内の任意のストレージ要素に対して負荷を発生させているアプリケーション(他のソフトウェアプログラム)セットの階層イメージを提供する方法、装置、システム、およびコンピュータプログラムコード(ソフトウェア)製品を提供する。
【0017】
例として、本発明の一態様は、(A)集合的にデジタルストレージ環境内のストレージ要素である、少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境内で動作可能なこのような方法、装置、システム、およびコンピュータプログラムコード(ソフトウェア)製品を提供するが、この少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、デジタルストレージ環境内のストレージ要素である。本発明のこの態様は、(A)アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することと、
ARGはARG抽象を含み、ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
ARGおよびサブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である。
【0018】
本発明の別の態様では、ARGおよびサブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である。
【0019】
本発明の別の態様では、ARGおよびサブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、ARGが、ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である。
【0020】
本発明のさらに別の態様では、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される。
【0021】
さらなる詳細、例、および実施形態を、添付図面と併せて読まれるべき以下の詳細な説明において説明する。
【0022】
上述したように、本発明は、2007年7月5日に出願された「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理番号:AKR−110−US)の一部継続出願(CIP)であるため、以下の詳細な説明ではまず、米国特許出願第11/773825号(AKR−110−US)の発明を記載し(以下のセクションA〜D)、それから、本発明の説明に続く(以下のセクションEおよびF)。当業者は、米国特許出願第11/773825号(AKR−110−US)内で記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを理解するとともに、本発明を米国特許出願第11/773825号(AKR−110−US)で記載される環境以外で実施可能なことも理解するであろう。
【0023】
当業者は、添付図面に関連して行われる以下の詳細な説明に基づく本発明を容易に理解するであろう。
【図面の簡単な説明】
【0024】
【図1】本発明を実施することができるか、または本発明を実施することができるネットワーク化されたデジタル計算システムの一部分を形成し得る従来のワークステーションまたはPC(パーソナルコンピュータ)デジタル計算システムの概略図である(先行技術)。
【図2A】本発明を実施することができるネットワーク化されたデジタル計算システムの概略図である(先行技術)。
【図2B】図1に示すような従来のワークステーション環境またはPC環境の構成要素の概略図である(先行技術)。
【図3】本発明の一実施形態の概略図である。
【図4】本発明を実施することができるデジタル計算システムの概略図である。
【図5】調整可能なアプリケーションパラメータを有するアプリケーションプログラムを示す概略図である。
【図6】デジタル計算システムで実行されており、システム負荷を発生させているアプリケーションの概略図である。
【図7】本発明により構築された計算システムおよび情報リソースマネージャ(IRM)を示す概略図である。
【図8】計算システムで実行されているアプリケーションの性能統計、構成データ、およびアプリケーションパラメータのデータベースを示す概略図である。
【図9】本発明により性能情報を計算システムからどのように得ることができるかを示す概略図である。
【図10】本発明により構成情報を計算システムの各要素からどのように得ることができるかを示す概略図である。
【図11】本発明の一実施形態によるIRMの解析モデルの態様を示す概略図である。
【図12】本発明により、構成データ、CPU統計、ネットワーク統計、およびSAN統計を使用して、解析モデルをどのように構築することができるかを示す概略図である。
【図13】本発明の一実施により、解析モデルが更新アプリケーションパラメータセットをどのように生成するかを示す概略図である。
【図14】本発明の一実施形態により、更新アプリケーションパラメータを使用して、アプリケーションによって使用されているアプリケーションパラメータセットがどのように更新されるかを示す概略図である。
【図15】情報リソースマネージャ(IRM)がいくつかのCPU統計、ネットワーク統計、およびSAN統計をどのように維持することができるかを示す概略図である。
【図16】本発明により、複数の更新統計セットを解析モデルにどのように適用することができるかを示す概略図であり、次に、解析モデルは、計算システムで実行されているアプリケーションデータを更新する。
【図17】本発明の一実施形態によるELMアーキテクチャの主要構成要素の概略ブロック図である。
【図18】ELMアーキテクチャの統計収集のタイミングを示す図である。
【図19】ELM統計の収集および計算の頻度のサマリを提供する表である。
【図20】ELM統計のサマリを提供する表である。
【図21】ELM統計のサマリを提供する表である。
【図22】ELM統計のサマリを提供する表である。
【図23】ELM統計のサマリを提供する表である。
【図24】ELM統計のサマリを提供する表である。
【図25】ELM統計のサマリを提供する表である。
【図26】ELM統計のサマリを提供する表である。
【図27】ELM統計のサマリを提供する表である。
【図28】本発明の一実施によるEDaCサービスに含まれる各種コネクタを示す概略図である。
【図29A】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図29B】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図30】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図31】アプリケーションシステムストレージリソースのマルチレベルマッピングを提供する本発明のさらなる態様によるレベル、グループ、およびインフラストラクチャ要素が列に列挙される表である。
【図32】アプリケーションシステムストレージリソースをマルチレベルマッピングする、説明されるシステムおよび技法の実施に適した例示的なコンピュータインフラストラクチャアーキテクチャの図である。
【図33】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図34】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図35】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図36】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図37】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図38】代替の例示的なコンピュータインフラストラクチャアーキテクチャの図である。
【図39A】図38のアーキテクチャに記される要素のサブセットから形成されるサブグループを示す図である。
【図39B】図38のアーキテクチャに記される要素のサブセットから形成されるサブグループを示す図である。
【図40】アプリケーションシステムストレージリソースをマルチレベルマッピングする本発明のさらなる態様による全般的な技法のフローチャートである。
【発明を実施するための形態】
【0025】
発明の詳細な説明
以下の記載には、本発明の理解を提供するために多くの特定の詳細が記される。しかし、本発明をこういった特定の詳細なしで実施可能なことを当業者は理解するであろう。場合によっては、周知の方法、手続き、構成要素、プロトコル、アルゴリズム、および回路については、本発明を曖昧にしないように詳細に記載されていない。以下の考察には、アプリケーションパラメータを適宜調整することによってストレージリソースに対する負荷への対処に関連する態様ならびにCPU、ネットワーク、およびSANリソースの平衡化に関連する態様を含む本発明の各種態様が記載される。
【0026】
上述したように、本発明は、2007年7月5日に出願された「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理:AKR−110−US)の一部継続出願(CIP)であるため、以下の詳細な説明ではまず、米国特許出願第11/773825号(AKR−110−US)の発明を記載し(以下のセクションA〜D)、それから、本発明の説明に続く(以下のセクションEおよびF)。当業者は、米国特許出願第11/773825号(AKR−110−US)内で記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを理解するとともに、本発明を米国特許出願第11/773825号(AKR−110−US)で記載される環境以外で実施可能なことも理解するであろう。
【0027】
この詳細な説明は以下のセクションで編成される。
A.本発明を実施することができるデジタル処理環境
B.アプリケーションシステム負荷の管理
C.アプリケーションシステム負荷の管理−実施のさらなる詳細/例
C1.システムアーキテクチャ
C2.外部発見サブシステム
C3.発見エンジン
D.アプリケーションシステム負荷の管理−一般的な方法
E.アプリケーションシステムストレージリソースのマルチレベルマッピング
F.マルチレベルマッピングの実施形態
G.結び
【0028】
A.本発明を実施することができるデジタル処理環境
本発明の特定の例および実施形態を記載する前に、以下は、本発明を実施し、実行することができる基盤をなすデジタル処理構造および環境の、図1、図2A、および図2Bと併せて読まれるべき考察である。
【0029】
本発明は、コンピュータサーバクラスシステムで一般に見られるアプリケーションでのより効率的なアプリケーション実行を可能にする方法、システム、装置、およびコンピュータプログラム製品を提供することが当業者には理解されるであろう。これらのアプリケーションは、データベースアプリケーション、ウェブサーバアプリケーション、および電子メールサーバアプリケーションを含む。これらのアプリケーションは、一般に、大きなグループのコンピュータユーザに対して媒体を同時にサポートするために使用される。これらのアプリケーションは、複数のユーザによる一貫し組織されたアクセスおよび共有を共有データセットに提供する。アプリケーションは、デジタル計算システムの複数または単一の共有セットでホストすることができる。各アプリケーションで実行されるタスクセットは、デジタル計算システムで生成されるパターンおよび負荷を指示し、パターンおよび負荷は構成可能なアプリケーションパラメータセットを通して管理することができる。
【0030】
したがって、本発明は、別個のソフトウェアアプリケーション、システムソフトウェアを含むコンピュータシステムの部分、またはデジタル計算システムの部分を形成するコンピュータの専用コンピュータハードウェアとして実施することができる。本発明は、別個のスタンドアロンのソフトウェアベースまたはハードウェアベースのシステムとして実施してもよい。実施態様は、キーボードおよび/またはマウス等のユーザインタフェース要素、メモリ、ストレージ、および他の従来のユーザインタフェース構成要素を含み得る。このような種類の従来の構成要素は、当業者に周知であるため、本明細書においてさらに詳細に記載する必要はなく、以下の概観には、本発明をデジタルコンピュータシステム内のこのような構成要素と併せてどのように実施できるかを示す。
【0031】
特に、本発明をデジタルコンピュータシステム性能のプロファイリングおよび解析ならびにアプリケーション調整に利用できることを当業者は理解するであろう。本明細書において記載する技法は、デジタルコンピュータシステムの部分として実施することができ、性能データが定期的に収集され、適応的に解析される。データは、さらに、現在のシステムを変更することの影響を見積もるために使用できる解析モデルへの入力として使用することができる。この場合、デジタルコンピュータシステムで実行されているアプリケーションを再構成して、性能を向上させることができる。
【0032】
以下の詳細な説明は、こういった技法による方法、構造、システム、コンピュータソフトウェア製品の例を示す。記載される方法およびシステムが、独立構成もしくはネットワークを介するMicrosoft Windows(登録商標)、Linux、またはUnix(登録商標)等の従来のオペレーティングシステムに従って動作する(または従来のオペレーティングシステムをエミュレートする)パーソナルコンピュータ(PC)または等価の装置等の従来のコンピュータ装置を使用してソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組み合わせで実施できることが当業者には理解されるであろう。したがって、本明細書において記載する各種処理態様および手段は、適宜構成されたデジタル処理装置または装置のネットワークのソフトウェア要素および/またはハードウェア要素で実施することができる。処理は逐次または並列に実行してよく、専用ハードウェアまたは再構成可能ハードウェアを使用して実施してもよい。
【0033】
一例として、本明細書に添付される図1は、データベースおよびメールサーバ等のサーバクラスアプリケーションを実行できる例示的なコンピュータシステム10を示す。図1を参照すると、一実施形態において、コンピュータシステム10は、プロセッサモジュール11と、キーボード12Aおよび/またはマウス12B(またはデジタイジングタブレットまたは他のアナログ要素、包括的にオペレータ入力要素12として識別される)等のオペレータ入力構成要素およびビデオ表示装置13等のオペレータ出力要素を含むオペレータインタフェース要素とを含む。例示的なコンピュータシステム10は、従来の内蔵プログラムコンピュータアーキテクチャのものであることができる。プロセッサモジュール11は、例えば、1つまたは複数のプロセッサ、メモリ、ならびにディスクおよび/またはテープ記憶要素(別個に示さず)等の大容量記憶装置を含むことができ、提供されるデジタルデータと併せて処理動作および記憶動作を実行する。オペレータ入力要素12は、オペレータが、処理する情報を入力できるようにするために提供することができる。ビデオ表示装置13は、オペレータが処理のために入力することができるデータ、オペレータが処理制御のために入力できる情報、ならびに処理中に生成される情報を含め、プロセッサモジュール11によって生成された情報をオペレータに対して画面14上に表示するために提供することができる。プロセッサモジュール11は、いわゆる「グラフィカルユーザインタフェース」(「GUI」)を使用してビデオ表示装置13によって表示される情報を生成することができ、ビデオ表示装置13には、各種アプリケーションプログラムについての情報が各種「ウィンドウ」を使用して表示される。
【0034】
用語「メモリ」、「ストレージ」、および「ディスクストレージ装置」は、コンピュータハードディスク、コンピュータフロッピー(登録商標)ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読RAM要素、コンピュータ可読ROM要素、またはデジタル情報を符号化する任意の他の既知の手段等の任意のコンピュータ可読媒体を包含することができる。用語「アプリケーションプログラム」、「アプリケーション」、「プログラム」、「コンピュータプログラム製品」、または「コンピュータソフトウェア製品」は、コンピュータ可読媒体が固定式、リムーバブル式、永久的、または消去可能であるか等にかかわりなく、コンピュータ可読媒体に符号化され、かつ/または記憶されたコンピュータ可読プログラム命令からなる任意のコンピュータプログラム製品を包含することができる。上述したように、例えば、図2Bの概略ブロック図のブロック122において、アプリケーションおよびデータは、当該技術分野において周知の実施および技法に従ってディスク、RAM、ROM、他のリムーバブルストレージ、固定ストレージに、これらが内部にあるか外部にあるかにかかわりなく、記憶することができ、ダウンロードまたはアップロードすることができる。本書において述べるように、本発明は、コンピュータ可読媒体に記憶されたソフトウェアまたはコンピュータプログラム製品の形態をとってもよく、アップロードされてもよく、ダウンロードされてもよく、FPGA、ROM、もしくは他の電子構造に固定されてもよいコンピュータプログラムコードの形態であってもよく、または方法もしくはこのような方法を実行するシステムの形態をとってもよい。コンピュータシステム10は、入力情報をオペレータから受け取るためのキーボード12Aおよびマウス12B、ならびに出力情報をオペレータに表示するためのビデオ表示装置13等の特定の構成要素を備えて示されるが、コンピュータシステム10が、図1に示される構成要素に加えて、または図1に示される構成要素に代えて、様々な構成要素を含んでよいことが理解されるであろう。
【0035】
さらに、プロセッサモジュール11は、包括的に参照番号14で識別される1つまたは複数のネットワークポートを含むことができ、ネットワークポートは、コンピュータシステム10をコンピュータネットワークに接続する通信リンクに接続される。ネットワークポートは、コンピュータシステム10が、ネットワーク内の他のコンピュータシステムおよび他の装置に対して情報を送信するとともに、情報を受信できるようにする。例えば、クライアント−サーバパラダイムに従って組織された典型的なネットワークでは、ネットワーク内の特定のコンピュータシステムがサーバとして示され、他のクライアントコンピュータシステムによって処理されるデータおよびプログラム(包括的に「情報」)を記憶し、それにより、クライアントコンピュータシステムが情報を都合良く共有できるようにする。特定のサーバによって保持されている情報にアクセスする必要があるクライアントコンピュータシステムは、サーバがネットワークを介して情報をダウンロードできるようにする。データを処理した後、クライアントコンピュータシステムは、処理されたデータをサーバに返して、そこに記憶することもできる。コンピュータシステム(上述したサーバおよびクライアントを含む)に加えて、ネットワークは、例えば、プリンタおよびファクシミリ装置、デジタルオーディオまたはデジタルビデオの記憶・配信装置等を含み得、これらをネットワークに接続された各種コンピュータシステムで共有することができる。ネットワーク内のコンピュータシステムを相互接続する通信リンクは、従来のように、ワイヤ、光ファイバ、または信号をコンピュータシステム間で搬送する他の媒体を含めた任意の都合の良い情報搬送媒体を含み得る。コンピュータシステムは、通信リンク上で転送されるメッセージによってネットワーク上で情報を転送し、各メッセージは、情報およびメッセージを受信する装置を識別する識別子を含む。
【0036】
図面に示されるコンピュータシステム10に加えて、本発明による方法、装置、またはソフトウェア製品は、従来のPC102、ラップトップ104、ハンドヘルドもしくはモバイルコンピュータ106、またはインターネットもしくは他のネットワーク108を介するものを含め、スタンドアロンか、ネットワーク化されているか、可搬であるか、それとも固定されるかにかかわりなく、サーバ110およびストレージ112を含み得る、図2Aおよび図2Bに例として示されるもの(例えば、ネットワークシステム100)等の任意の広範囲の従来の計算装置およびシステムで動作することができる。
【0037】
従来のコンピュータソフトウェアおよびハードウェアでの実施と並んで、本発明により構成されたソフトウェアアプリケーションは、例えば、図1、図2A、および図2Bに示されるようなPC102内で動作することもでき、この場合、プログラム命令は、ROM、CD−ROM116(図2B)、磁気ディスク、または他のストレージ120から読み出して、RAM114にロードしてCPU118によって実行することができる。データは、従来のキーボード、スキャナ、マウス、デジタイジングタブレット、または他の要素103を含めた任意の既知の装置または手段を介してシステムに入力することができる。図2Bに示すように、図示のストレージ120はリムーバブルストレージを含む。図2Bにさらに示すように、アプリケーションおよびデータ122を、固定ストレージ、リムーバブルストレージ、またはROMのうちのいくつかまたはすべてに配置してもよく、またはダウンロードしてもよい。
【0038】
本明細書において記載する本発明の方法態様が、ASIC製造業者にとって既知のASIC構築技法を使用して、本明細書において記載される処理を実行するように特に構築されたフィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)等のハードウェア要素で実行可能なことを当業者は理解するであろう。本発明の実行に使用できる従来のASIC、等価の集積回路、または他の従来のハードウェア要素の実際の半導体素子は、本発明の部分ではなく、本明細書において詳細に考察しない。
【0039】
さらに詳細に本明細書において記載する本発明の教示を使用して、さらに詳細に後述する、例えば図3以下に示される本発明の方法を実行するように、ASICまたは他の従来の集積回路または半導体素子を実装可能なことも当業者は理解するであろう。
【0040】
本発明の方法態様が、ワークステーションまたはパーソナルコンピュータ(PC)のオペレーティングシステムおよび本発明により構成されたコンピュータプログラム製品の下で動作する、ワークステーションおよびPC等の市販のデジタル処理システム内で実行可能なことも当業者は理解するであろう。用語「コンピュータプログラム製品」は、コンピュータ可読媒体に符号化されたコンピュータ可読プログラム命令の任意のセットを包含することができる。コンピュータ可読媒体は、ワークステーション、PC、または他のデジタル処理装置もしくはシステムからローカルであれ、またはリモートであれ、コンピュータハードディスク、コンピュータフロッピー(登録商標)ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読RAM要素、コンピュータ可読ROM要素、またはデジタル情報の符号化、記憶、または提供を行う任意の他の既知の手段を含むが、これらに制限されない任意の形態のコンピュータ可読要素を包括することができる。各種形態のコンピュータ可読要素および媒体が、コンピューティング分野において周知であり、その選択は実施者に任せられる。
【0041】
B.アプリケーションシステム負荷の管理
次に、米国特許出願第11/773825号(AKR−110−US)に記載される本発明の各種態様によるアプリケーションシステム負荷を管理するシステムおよび技法の例および実施形態について記載する。本願は、米国特許出願第11/773825号の一部継続出願(CIP)である。
【0042】
アプリケーションは、一般に、ストレージエリアネットワーク(SAN)を通して共通ネットワークおよびストレージシステムを共有するサーバでホストされる。アプリケーションの要求とCPU、ネットワーク、およびSANの能力との不均衡は、中央リソースを共有しているアプリケーションの全体性能の低下に繋がる。しかし、個々のアプリケーションは、サブシステム内の任意の単一の要素、特にSANに大きすぎる負荷を課す場合、性能の影響を受け得る。さらに、CPU、ネットワーク、およびストレージアレイは、多くの場合、共有リソースとして利用される。独立したサーバで実行されている複数のアプリケーションは、サブシステム要素がアプリケーション間で共有されている場合、互いの性能に影響を及ぼし得る。
【0043】
多くのアプリケーションは内部パラメータを有し、内部パラメータはユーザまたはシステム管理者によって設定することができ、アプリケーションの性能およびスループットに劇的な影響を及ぼし得る。ユーザは、通常、アプリケーションが実行のために初期化されているとき、計算システム構成で維持可能な帯域幅または存在する並列性を考慮しない。システム負荷の設定には、デフォルト値セットが一般に使用される。これらのデフォルト値は、例えば、スレッド数、個々のアプリケーションの優先度、記憶領域、およびログバッファ構成を含み得る。これらの値は、実行時中に調整することも可能である。これらの値はユーザ、アプリケーションプログラマ、またはシステム管理者によって調整可能であるが、基盤をなす計算システムリソースの特性によりよく合うように、アプリケーション負荷を調整するための指針は提供されない。
【0044】
任意のアプリケーションの性能は、アプリケーションが単一の装置に対して大きすぎるトラフィックを生成する場合、または複数のアプリケーションが、システムが集合負荷にサービス提供できないような多くの要求でシステムを溢れさせる場合に低下し得る。システム内の任意の要素に過負荷がかかる際に、あるアプリケーションが別のアプリケーションに対して生み出す干渉は、性能の大きなばらつきを生じさせ得る。より予測可能なアプリケーション性能を提供しようという試みは、多くの場合、サブシステム内の特定の要素のキャパシティのオーバープロビジョニングに繋がる。
【0045】
これらの課題を解決するか、又はこれらの課題を少なくとも最小にしようとして、システム管理者は、各アプリケーションが固定の優先度を有することを要求することができる。優先度の設定は、システムリソースに対するアプリケーションの要求を「抑制する」ために使用される。不都合なことに、固定の優先度の割り当てはリソースを無駄にする恐れがあるとともに、アプリケーションスタベーションに繋がる恐れもある。抑制に対する代替は、各アプリケーションが受けているサービス品質(「QoS」)を管理することができる。ストレージリソースの割り振りは、様々な基準、例えばストレージアクセスの帯域幅に基づくことができる。米国特許出願公開第2005/0089054号には、QoSに基づいたリソースの割り振りを提供する装置が記載されており、参照によりその全体が本明細書に援用される。
【0046】
上記懸案事項に対する従来の解決策は、通常、それ自体の性能制約及び懸案事項を提示してきた。したがって、1つまたは複数のアプリケーションによって生成されるシステム負荷をより効率的かつ柔軟に管理する改良された方法、装置、ソフトウェア、およびシステムを提供することが望ましい。
【0047】
ディスクまたは帯域幅を個々のサーバまたはアプリケーションに割り振るのではなく、本明細書に記載するシステムおよび技法は、アプリケーションによって提供される内部調整機能(internal tuning facility)を利用し、提供されたストレージサブシステムの特性に基づいて調整されたパラメータセットに到達する。さらに、本発明は、ネットワーク化されたデジタル計算システム等の完全デジタルコンピュータシステムのリソースも考慮する。記載のシステムおよび技法は、Microsoft Windows(登録商標)、Linux、およびUnix(登録商標)等の市販のオペレーティングシステムで開発された既存の性能監視システムおよび技法を利用する。実行時パラメータセットを通してアプリケーションを適応的に調整できるようにする記載のシステムおよび技法は、既存のインタフェースを利用して、データベースおよび電子メールアプリケーションを調整する。本発明はさらに、利用可能なシステムリソースの入念なプロビジョニングを通してQoS保証を提供して、複数のアプリケーションを並行に管理することができる。
【0048】
システム性能を決定する、アプリケーションパラメータの構成に使用されている従来の方法は、いくつかの著しい欠点を有する。すなわち、(1)今日まで使用されてきた調整方法は、試行錯誤反復調整に基づいておらず、(2)ユーザは、調整の選択をガイドするために基盤をなすCPU、ネットワーク、およびストレージサブシステムについて殆ど情報を有さず、(3)共有デジタル計算システムを利用する複数のアプリケーションまたは複数のサーバを並行に管理することが殆ど考慮されておらず、かつ(4)現在、デジタル計算システムの特性を個々のアプリケーションパラメータの変更に変換する一般に認められた方法がない。
【0049】
アプリケーションによっては、ストレージアクセス動作の待ち時間の影響を受けやすいものもあれば、そうでないものもある。データベースおよびメールサーバアプリケーションは、非逐次モードでデータにアクセスすることが多く、時によっては、別のコマンドを発行する前に、1つのアクセスまたは一連のアクセスの完了を待たなければならないことがあるため、ストレージアクセス動作に関連する待ち時間の影響を特に受けやすい。
【0050】
データベースシステム、メールサーバ等の多くの待ち時間の影響を受けやすいアプリケーションは、自己調整を実行する能力を有する。例えば、Oracle10gは、最近のクエリの挙動に基づいて将来のクエリの性能を加速化できるクエリオプティマイザを提供する。Oracle10gは、データベース性能に影響し得る250を超える調整可能パラメータも有する。これらのパラメータは、メモリリソース、例えばキャッシュおよびバッファの利用に影響するとともに、並行アクセス可能量、例えばスレッディングを定義することができる。
【0051】
記載のシステムおよび技法は、基盤をなすCPUサブシステム、ネットワークサブシステム、およびストレージサブシステムについての情報を利用することによるこれらの内部パラメータの適正な設定を目標とする。本明細書において記載するように、CPUサブシステム情報は、使用中のプロセッサの種別および個数ならびに関連するメモリ階層の両方を含み、ネットワークサブシステム情報は、使用されているネットワークスイッチの速度および構成ならびにスイッチに接続されたアダプタの速度を含み、ストレージサブシステム情報は、物理ディスク装置の特性、RAIDグループへのこれらの装置のグループ化、論理アドレスからRAIDグループへのマッピング、およびこのシステムを通る個々のパスのスループットを含む。本発明のさらなる一態様は、システムの実行時特性を捕捉することによってストレージサブシステム情報を得る能力を提供する。この情報は、カスタマイズされたエクササイザを実行するか、またはシステムの通常の実行を観察することによって得ることができる。
【0052】
アプリケーションパラメータの調整は、アプリケーションの初期化時または動的に行うことができる。基盤をなすサブシステム性能の異なる特性を捕捉するために使用される方法は、静的、すなわち予め決まった方法であり、ストレージシステムと共に出荷してもよく、またはプロファイリングを通して動的に取得されてもよい。現在記載している本発明は、この情報を静的に指定する方法およびプロファイリングを通してこの情報を取得する方法の両方を含む。本発明のさらなる態様によれば、この情報は、フィードバックとしてアプリケーションに提供されて、システムパラメータを自動的に、またはシステム/アプリケーション管理者によって調整できるようにする。
【0053】
上記考察では、デジタル計算リソースを最も良く利用するために、性能の影響を受けやすいアプリケーションのパラメータを適宜調整する必要性について述べた。このようなパラメータを調整する装置およびシステムの一実施形態を図3に示す。
【0054】
図3に示すように、アプリケーションサーバ290は、サーバ260に直接接続されるものもあれば、スイッチファブリック250を使用してストレージエリアネットワーク270を介してサーバに接続されるものもある、様々な記憶要素にアクセスする。これは、サーバおよびストレージシステムの可能な編成の1つにすぎない。本発明は特定の編成を必要としない。
【0055】
したがって、本発明の現在記載している態様には、サーバおよびストレージシステムの両方に通信できる要素が導入される。この要素は、本明細書では、ストレージシステムアウェアアプリケーション調整システム(SSAATS)280と呼ばれる。この要素ならびに同様の構造および機能についても記載され、以下では情報リソース管理(IRM)システムと呼ばれる。後述するように、本発明のさらなる態様は、SSAATS要素の機能のうちのいくつかまたはすべてを実行する他の名称の要素を提供する。
【0056】
図3に示すSSAATSの実施形態は3つの下位要素を含む。すなわち、
(1)ストレージネットワークプロファイリングシステム210、
(2)解析モデル220、および
(3)アプリケーションパラメータ決定サブシステム230
である。
【0057】
SSAATS要素280は、スタンドアロンサブシステムとして実施してもよく、またはサーバサブシステム290もしくはネットワークファブリックサブシステム240の部分として統合されてもよい。
【0058】
プロファイリングサブシステム要素100は、ストレージネットワーク内の並列度を決定する能力を有し、上述したように基盤をなすストレージシステム260および270の帯域幅値および待ち時間値を推定することができる。プロファイリングサブシステム要素210は、存在するネットワークファブリック要素250の帯域幅値および待ち時間値を決定することもできる。
【0059】
プロファイリングサブシステム要素210は、ストレージシステム製造業者から常に入手可能であるとは限らない性能関連情報を取得する。ストレージシステムが設置される際、利用可能なストレージは多くの異なる編成で構成され得る。そのため、いくらかの性能関連情報が製造業者によって提供される場合であっても、必要な情報の大半は、ストレージシステムが設置され構成された後でのみ的を得たものである。
【0060】
必要な性能関連情報としては、例えば、
(1)CPU、ネットワーク、およびSAN内で利用可能な並列度、
(2)各種装置の速度、
(3)アプリケーションサーバ、ネットワーク、および個々のストレージ装置の間のパスの帯域幅、および
(4)サーバから見たストレージ装置の構成
が含まれるが、これらに制限されない。
【0061】
必要な性能関連情報を取得するために、一連の入/出力コマンドをストレージサブシステムに発行することができる。特定のコマンドシーケンスの応答時間およびスループットに基づいて、必要な性能関連情報を取得することができる。次に、この情報は解析モデル要素220に供給される。
【0062】
解析モデル要素220は、プロファイル情報をプロファイリングストレージネットワーク210から取得する。プロファイリングデータは解析性能モデル220によって使用され、解析性能モデル220は、アプリケーションサーバ290のCPUサブシステム、ネットワークサブシステム250、ならびにストレージサブシステム260および270が維持できる適正負荷を確立するために使用される。解析モデル要素220の出力は、パラメータ値230を決定する要素に供給され、次に、この要素は、これらの値をアプリケーションサーバ290に通信し、アプリケーションサーバ290は、次に、アプリケーションの内部パラメータを設定する。
【0063】
オプションの一実施形態では、プロファイリングシステムがプロファイリングネットワーク210を通してストレージシステムの性能を引き続きプロファイリングし、動的プロファイルを解析性能モデル220に供給し、新しいアプリケーションパラメータセットをパラメータ決定システム230からアプリケーションサーバ290に通信することができる。このオプションの実施形態の主要特徴としては、(a)プロファイリングシステムが、パラメータ変更を通して得られる恩益を低減する恐れのある著しいオーバーヘッドをデジタル計算システムに導入し得ないこと、かつ(b)システムが連続して性能遷移に適応しないようにパラメータ変更の頻度を抑制するために、適切な制御が提供されていることをシステムが保証しなければならないことが含まれる。
【0064】
オプションの一実施形態では、プロファイリングシステム210が、利用可能なシステム構成の使用をさらに改良するために、ネットワークインタフェースを通してストレージリソース260および270と直接通信することができ、これは、本明細書では「発見(Discovery)」と呼ばれる。
【0065】
本明細書において記載する解析モデル220は、標準キューイング理論技法を利用し、ストレージサブシステムが維持できる負荷量を確立する。特に、解析モデル220は、既知のキューイング理論式、アルゴリズム、および技法を適用して、サポート可能なストレージ負荷を決定することができる。このような式、アルゴリズム、および技法は、例として、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)に記載されており、これらを両方とも、その全体が記載されているかのように参照により本明細書に援用される。次に、パラメータ決定要素は、これらの負荷値をターゲットアプリケーションの具体的なパラメータ値に変換する。本発明のさらなる態様によれば、SSAATS280は、1つのアプリケーションソフトウェアにつき1つずつ、複数のパラメータ決定要素230を含む。
【0066】
アプリケーションパラメータユニット230の決定は、いくつかのアプリケーション固有パラメータを考慮する。1つの特定のパラメータセットは、例えば、Oracle 10gの内部に提供されるコストベース最適化(CBO)パラメータを含む。こういったパラメータは、Oracle内でインデックス付与および走査がどのように実行されるか、ならびにアプリケーションによって想定される並列度を制御することができる。例えば、マルチブロックリードカウントは、アクセスサイズを調整するために設定することができ、または並列テーブル走査を実行するために並列自動調整を設定することができる。
【0067】
多くの状況において、ストレージ管理者が待ち時間の影響の受けやすさによってアプリケーションを区別することが有益であり得る。現在記載しているメカニズムは、個々のアプリケーションのシステムリソース要求の抑制を目標とするが、ネットワークおよびストレージは一般に異なるアプリケーションによって共有されるため、同じシステムを使用して複数のアプリケーションを管理することができる。
【0068】
ネットワークおよびストレージが異なるアプリケーションによって共有される場合、解析モデル220は、競合するアプリケーション作業負荷の影響を捕捉するように調整することができる。2つの典型的な作業負荷は、オンライントランザクション処理作業負荷と、これと競合するストレージバックアップ作業負荷である。バックアップアプリケーションがクリティカルな動作を実行している間、オンライアントランザクション処理アプリケーショの実行が優先されるべきである。
【0069】
複数のアプリケーションが同じIOストレージリソース260おび270のセットを共有している場合、アプリケーションパラメータユニット230の決定は、共有に役立つように複数のパラメータ値セットを調整する必要がある。
【0070】
複数のアプリケーションが同じIOストレージリソース260おび270のセットを共有し、システム管理者であるユーザが各アプリケーションのスループットに優先度を付けたい場合、アプリケーションパラメータユニット230の決定は、一方のアプリケーションのIO要求を他方のアプリケーションのIO要求よりも優先するようにパラメータ値をさらに調整することができる。
【0071】
これより、本発明によるシステムのさらなる一実施形態について記載し、上述した要素および他についてさらに詳細に記載する。
【0072】
図4は、中央演算処理装置(CPU)301、302、303と、ネットワーク要素310と、ストレージアレイネットワーク320とを含む例示的な計算システム300の要素を示す図である。図示の構成は、現在利用可能な多くのサーバクラス計算システムの典型的な構成である。本明細書において記載するように、本発明の態様は、システム300の解析モデルを構築することによってシステム300の性能を向上させるシステムおよび技法を対象とする。解析モデルは、まず、システム構成情報および異なる要素の実行時性能統計を取得することによって構築される。解析モデルには、システム300で実行されている特定のアプリケーションセットについての知識が提供される。解析モデルの出力は、性能数ならびに計算システム300で実行されているアプリケーションに関連するアプリケーションパラメータの調整の仕方についての推奨を含む。次に、解析モデルの出力を使用して、アプリケーションの将来の性能を向上させることができる。
【0073】
図5は、アプリケーション350が計算システム300でどのように実行されるかを構成するために使用されるプログラムコード360とアプリケーションパラメータセット370とを含むアプリケーション350の図を示す。
【0074】
図6は、CPU1 301で実行されるアプリケーション350の図を示し、アプリケーション350にはアプリケーションパラメータセット370が供給され、システムに負荷を生じさせる。
【0075】
図7は、計算システム300および情報リソースマネージャ400を示す図を示す。情報リソースマネージャ400は、解析モデル410を含み、CPU統計440、ネットワーク統計450、およびSAN統計460を含むいくつかの計算システム性能統計430と、計算システム構成データ470と、計算システム370で実行されているアプリケーションセットのアプリケーションパラメータセット370とのデータベース420を保持する。
【0076】
図8は、CPU統計440と、ネットワーク統計450と、SAN統計460と、構成データ470と、計算システム300で実行されているアプリケーションのアプリケーションパラメータ370とのデータベース420を示す。
【0077】
図9は、性能統計を計算システム300からどのように取得できるかの一例を示す図を示す。CPU統計440は、iostat 510およびperfmon 520等の標準ソフトウェアユーティリティを使用してCPU1 301から取得することができる。ネットワーク統計450は、大半のネットワークスイッチ装置に提供されているSNMPインタフェース530を使用して取得することができる。SAN統計460は、多くのSANシステム120に提供されているSMIS540を介して取得することができる。図9に示すインタフェースは、異なる要素から性能統計を取得する1つの特定のインタフェースセットを示すが、情報リソース管理ユニット400が、利用可能な計算システムの追加のインタフェースにアクセスすることを除外しない。
【0078】
図10は、構成データ410が計算システム100の各要素からどのように得られるかを示す。異なる計算システム要素100の各ベンダーは、一般に、この情報を報告するインタフェースを提供する。
【0079】
図11は、情報リソース管理ユニット400の部分である解析モデル410の図を示す。解析モデル410の目的は、性能インジケータを生成すること、および計算システム300で実行されているアプリケーションの性能を向上させるために、更新アプリケーションパラメータセット372(図13および図14)を生成することの両方である。
【0080】
図12は、構成データ470ならびにCPU統計430、ネットワーク統計430、およびSAN統計440がどのように使用されて、解析モデル410が構築されるかを示す。解析モデルは、CPU411、ネットワーク412、およびSAN413のモデルを含み、追加の計算システム要素を含んでもよい。
【0081】
図13は、解析モデル410がどのように更新アプリケーションパラメータセット372を生成するかを示す。この新しいパラメータセットは計算システムに供給されて、システムで実行されているアプリケーション350が計算システムの要素をどのように使用するかを再構成する。目標は、システムの性能を向上させることである。
【0082】
図14は、更新アプリケーションパラメータ372がどのように使用されて、アプリケーション350によって使用されるアプリケーションパラメータセット370が更新されるかを示す。図14には、アプリケーションがCPU1 301で実行されて示されるが、アプリケーションは、システム302、303の任意のCPUまたはシステムネットワーク310もしくはSAN320内の任意の他の要素で実行されてもよい。
【0083】
図15は、情報リソース管理ユニットが、いくつかのCPU統計442、ネットワーク統計452、およびSAN統計462を保持できることを示す。これらの記録は、通常、時間順に並べられ、システムのより長期の挙動を提供する。この記録セットは、計算システムで実行されている複数のアプリケーションについて生成される性能統計を表すこともできる。このより豊富な統計セットに再び解析モデル410を適用し、解析モデル410は次に、計算システムで実行されているアプリケーションデータ372を更新する。この技法を図16にさらに示す。
【0084】
C.アプリケーションシステム負荷の管理−実施のさらなる詳細/例
以下の考察は、本発明の各種態様による実施態様の1つまたは複数の例に関するさらなる詳細を提供する。以下があくまでも例として提示され、本発明を、後述する特定の構造を必ずしも必要とせずに、異なる構成および実施形態で実行し実施することが可能なことが当業者には理解されるであろう。以下の考察は、以下のサブセクションに編成される。
C1.システムアーキテクチャ
C2.外部発見サブシステム
C3.発見エンジン
【0085】
C1.システムアーキテクチャ
現在記載しているアーキテクチャは、包括的に、本明細書ではイベントレベルモニタ(ELM)と呼ばれる。ELMアーキテクチャは、以下のELM製品特徴をサポートする。すなわち、(1)データセンタ可視性、(2)ホットスポット検出、および(3)解析である。
【0086】
これらの機能をサポートするために、ELMアーキテクチャは以下の特徴を提供する。すなわち、構成/トポロジ発見、統計収集、統計計算、アプリケーション固有ストレージトポロジおよび統計、解析、ならびにアラーム・イベント生成である。
【0087】
図17は、ELMアーキテクチャ600の例示的な実施形態の主要構成要素のブロック図を示す。図示の各構成要素についてこれより順に記載する。
【0088】
プラットフォーム610:プラットフォーム610は、IRM400が実行される土台および基本環境を提供する。
【0089】
Linux 620:Linux OS620は低レベル機能をプラットフォームに提供する。
【0090】
構成要素タスクフレームワーク(CTF)630:構成要素タスクフレームワーク630は、共通のプリミティブおよびサービスの有用なセット、メッセージング、イベント、メモリ管理、ロギングおよびトレース、デバッグシェル、タイマ、同期、データ操作を提供し、ハッシュテーブル、リスト等を含む。
【0091】
MySQL640:システムデータのリポジトリであるデータストア(DS)650が、MySQL640の一番上に構築される中央データベースに記憶される。
【0092】
データストア(DS)650:DS650は、発見された要素、その関係またはトポロジ、およびその統計を含む。
【0093】
情報リソースマネージャ(IRM)400:情報リソースマネージャ(IRM)400は、上述したように、データセンタについての情報、トポロジ、および統計すべての収集を担う。
【0094】
外部発見・収集(EDaC)700:外部発見・収集(EDaC)700は、さらに後述するように、データセンタの、サーバおよびストレージアレイ等の要素への接続をシステムに提供する構成要素である。特定の各種要素、例えばCLARiiONストレージアレイに対する通信の仕方を知っており、その特定の要素のトポロジを発見し、またはその特定の要素から統計を収集する。したがって、特定のアレイまたはサーバに対して別個のモジュールまたはコレクタを有する。各種の要素に対して、XMLで定義され、あらゆるコレクタが準拠する標準APIがある。
【0095】
発見エンジン660:発見エンジン660は、データセンタ要素、特にサーバおよびストレージアレイのトポロジの発見を行う。ユーザは、発見したいサーバまたはストレージアレイを入力する。発見エンジン660は、データストア650にアクセスして、ユーザが入力したサーバ、ネットワーク、およびストレージアレイのリストを得る。それぞれ1つごとに、発見エンジン660は、EDaC700にトポロジの取得を要求する。EDaC700は要素に問い合わせ、発見されたすべての情報、例えば、ストレージアレイのディスクを返す。次に、発見エンジン660は、この情報をデータストア650内に配置し、これらの関係を接続する。サーバの初回発見時、発見エンジン660は、統計マネージャ670にもそのサーバからの統計の収集を開始するように通知する。さらに、発見エンジン660は、デジタル計算システム300の要素を定期的に起こし、「再発見」もする。これにより、任意のトポロジ変更を発見することができる。
【0096】
統計マネージャ670:統計マネージャ670は、コンピュータシステム要素、特にサーバからの統計の収集を行う。現在の製品では、統計はサーバからのみ収集されるが、これらの統計を使用して、他のデータセンタ要素についての統計も同様に導出される。統計マネージャ670には、発見エンジン660により、新しいサーバが発見されたときに通知される。統計マネージャ670は、次に、そのサーバを収集リストに追加する。統計マネージャ670は、定期的に起きて、収集リストに目を通す。収集リスト内の各サーバにつき、統計マネージャ670は、統計を集めるようにEDaC700に要求する。EDaC700は、サーバの統計を収集すると、これらの統計を統計マネージャ670に送信する。統計マネージャ670は、これらの統計を処理し、データストア650に挿入する。統計によっては、データストア650に変更なしで追加されるものもあれば、平均化等の何等かの単純な処理の後に追加されるものもあれば、完全に新しい統計を導出するより高度なアルゴリズムで処理されるものもある。
【0097】
統計モニタ680:新しい統計が常に収集され計算される。これは、ユーザが時間を遡ってシステムで何か発生していたかを調べることができることを意味する。すべての統計はデータストア(DS)650に記憶される。記憶される統計としては、計算された統計ならびに収集された統計が含まれる。これにより、常に統計を表示に即座に利用できるようになる。
【0098】
統計モニタ680は、統計マネージャ670によって統計がデータストア650に入力されると、その配置された統計を監視し管理する。統計モニタ680内には、定期的に起きて、データストア650内の統計に対して異なるタスクを実行するいくつかのデーモンがある。こういったタスクとしては、サマリ統計の作成、例えば、収集された統計の時間統計への集計、ある統計の移動平均の計算、ある統計の閾値との比較およびイベントの生成、そして最終的に、閾値を超えた場合にはアラームの生成が含まれる。
【0099】
計算され解析される異なる種類の統計がある。これらのうちのいくつかは以下を含む。
【0100】
計算された統計:計算された統計は、収集された統計または他の計算された統計に対して計算を実行することによって作成される。計算は、加算のように単純であってもよく、または非線形曲線当てはめの実行のように複雑であってもよい。計算された統計は、収集された統計と同じ方法および同じ形式でDS650に記憶される。
【0101】
計算されたストレージ統計:すべてのストレージ統計がサーバLUNから収集される統計から導出されることに留意することが重要である。次に、発見されたサーバおよびストレージアレイのトポロジを使用して、他のストレージオブジェクト:サーバボリューム、ストレージアレイLUN、ASG、およびサブグループの統計が導出される。
【0102】
収集および計算の頻度:統計収集は、システムが統計的に安定しているときの使用率を計算することができるように行われる。統計的な安定は、統計が変化しないことを意味するのではなく、むしろ、システムが同じ種類の作業または作業セットを期間にわたって行っていることを意味する。使用率の計算は一連のサンプルを必要とする。したがって、統計的に安定した期間での使用率を計算するには、一連のサンプルを短期間に収集しなければならない。しかし、著しい数のサーバの統計を高頻度で連続して収集することは、システムに大きすぎる負担をかける。上記要件/制約は、図18に示すように、バーストで統計を収集することによって満たされる。
【0103】
パラメータは以下の意味を有する。
メジャー期間(Major Period) サンプルバースト間の時間。範囲は5〜60分である。
マイナー期間(Minor Period) バーストの各サンプル間の時間。範囲は1〜10秒である。
バースト マイナー期間レートで各メジャー期間でとられるサンプル数。範囲は1〜50サンプルである。
これらのパラメータはサーバ毎に可変である。したがって、1つのサーバについての統計をメジャー期間30分、マイナー期間10秒、およびバーストサイズ10で収集し、別のサーバについての統計を、メジャー期間15分、マイナー期間1秒、およびバーストサイズ25で収集することが可能である。使用率の計算に使用されない統計は、メジャー期間毎に1度の頻度で収集される。バーストで収集される統計は、使用率の計算にすぐに使用される。使用率計算の結果はDSに保存され、未処理のデータは破棄される。したがって、統計は、サーバ毎のメジャー期間毎に1度、DSに挿入される。
【0104】
サーバ統計計算頻度:サーバについてのすべての統計:CPU、メモリ、LUN、およびボリュームが同時に収集され計算される。これは、サーバのメジャーサンプルレートで行われる。
【0105】
アプリケーションストレージグループ/ストレージグループ統計計算頻度:特定の問題は、アプリケーションストレージグループ(ASG)およびストレージグループ(SG)の計算期間である。ASGおよびSGの統計は、異なるサーバから送信されたものであり得るサーバLUN統計から計算される。大概、これらのサーバLUN統計は異なる時間に、かつ潜在的に異なるレートで収集される。これは、ASG/SG統計をメジャーサンプル期間で計算できないことを意味する。各サーバLUNからの複数のサンプルを使用することができるように、ASG/SG統計をそれよりも低いあるレートで計算しなければならない。
【0106】
現在状態更新頻度:多くのオブジェクトは現在状態、履歴状態、および傾向状態を保持する。現在状態は比較的頻繁に計算されるが、メジャーサンプルレートよりも低い。
【0107】
履歴状態および傾向更新頻度:履歴状態および傾向はより長期のインジケータであり、より低い頻度で計算される。
【0108】
サマリ計算頻度:サマリは、データベース内の空間を節約するメカニズムである。サマリは、古いデータほど価値が低く、新しいデータと同じ粒度で見る必要がないという理論の下で動作する。
【0109】
発見頻度:発見は、環境についての比較的静的なデータを収集する。そのため、あまり頻繁に実行する必要はない。しかし、これは、任意の変更を素早く明らかしたいという要望とバランスをとる必要がある。
【0110】
収集および計算の頻度のサマリ:図19に示す表は、収集および計算の頻度のサマリを提供する。すべての収集パラメータおよび計算パラメータが、変更可能なようにパラメータ化されるべきであることに留意する。
【0111】
統計サマリ:図20〜図27に示す表は、本明細書において記載するELMシステムの統計のサマリを提供する。
図20−収集されたサーバ統計 サーバ統計はサーバから収集される。これらは、メジャーサンプル期間レートで頻繁に収集される動的統計である。
図21−収集されたサーバ属性 サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
図22−記憶されたサーバ属性 サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
図23−記憶されたサーバ現在統計 サーバ統計は収集されたサーバ統計から生成され、データベースに記憶される。これらのうちの1つは、サーバ毎のメジャーサンプル期間毎に生成されるべきである。
図24−サーバサマリ統計 サマリサーバ統計は、より短い期間からより長い期間までのサーバ統計の集計である。例えば、メジャー期間統計を日毎または週毎の統計にまとめることができる。
図25−記憶されたストレージ統計 様々なストレージオブジェクトの統計の記憶に使用される共通のストレージ統計がある。ストレージ統計が生成される頻度は、統計が生成されているオブジェクトに依存する。サーバボリューム−メジャーサンプル期間毎に1回、サーバLUN−メジャーサンプル期間毎に1回、アプリケーションストレージグループ−アプリケーションストレージグループ/ストレージグループ計算期間毎に1回、サブグループ−アプリケーションストレージグループ/ストレージグループ計算期間毎に1回。
図26−記憶されたストレージ統計 あらゆる統計があらゆるオブジェクトに対して有効であるわけではない。図26の表は、どの統計がどのオブジェクトに対して有効であるかを示す。
図27−記憶されたサマリストレージ統計 サマリストレージ統計は、より短い期間からより長い期間までのストレージ統計のまとめである。例えば、メジャー期間統計を日毎または週毎の統計にまとめることができる。
【0112】
解析:解析は、データストアに記憶されているデータ、主にトポロジおよび統計を使用して、システムに何が起こっているのかについてユーザに通知するか、またはシステムについての推奨を行う。解析は、データストア内のデータに対してルールエンジンによって実行されるルールセットとして、またはアプリケーションパラメータの調整に使用される解析モデルとして実施することができる。実行可能ないくつかの異なる種類の解析がある。これらは以下を含む。
アプリケーションポイントインタイム解析 ある時点でアプリケーションの性能はどうなっているか、およびリソースの使用を解析する。
アプリケーションデルタ時間解析 2つの時点間でアプリケーションの性能の何が変更されたか、およびリソースの使用を解析する。
アプリケーションストレージグループ解析 ある時点でのアプリケーションとストレージとの間のパスを解析して、そのパスがホットスポットであるか否か、およびそのパスに対してアプリケーション競合があるか否かを判断する。
ストレージプロビジョニング推奨 アプリケーションに対してより多くの物理ストレージをどこでプロビジョニングすべきかについて推奨を行う。
アプリケーション推奨 アプリケーションパラメータに対する変更を行う
【0113】
上記に加えて、既知のAPI実施に従って構築された各種API(アプリケーションプログラミングインタフェース)を様々なポイントおよびレイヤに提供して、システム設計者、管理者、または他が望むようにインタフェースを供給してよいことを当業者は理解するであろう。
【0114】
C2.外部発見・収集サービス
これより、機器外部のリソースについてのすべての構成および統計へのアクセスを提供する上述した外部発見・収集(EDaC)サービスについてさらに詳細に記載する。EDaCサービスは、任意の外部リソースに要求をディスパッチすることを担う。図28は、EDaCサービス700の例示的な一実施形態に含まれる様々なコネクタを示す図である。各コネクタ730は、特定のリソースへのアクセスを提供する。
【0115】
担当リストは以下を含む。すなわち、(1)統計要求イベントをリッスンし、適切なコネクタに転送し、(2)発見要求イベントをリッスンし、適切なコネクタに転送し、かつ(3)発見要求を何等かのスケジュールですべてのコネクタに対して実行し、発見イベントを生成する。本発明のさらなる態様によれば、項目(3)の機能は情報リソースマネージャ(IRM)に移してもよい。
【0116】
発見処理には2つの部分がある。すなわち、(1)装置を「見つけ」、(2)その装置の最も静的な構成を把握する。発見アルゴリズムは、何千もの装置を処理するのに十分な堅牢性を有さなければならない。完全な発見処理は数時間かかり得る。構成に関しては、以下のデータが、オブジェクトモデルにおいて発見および収集を達成するために必要である。
サーバ:IPアドレス、ログイン/パスワード、SSH/telnet、Solarisの場合、ポーリング間隔、および永続的接続
ストレージアレイ:管理サーバ、ログイン/パスワード、CLIへのパス、ポーリング間隔、永続的接続
アプリケーション:IPアドレス、ログイン/パスワード、サービス名、ポート、ポーリング間隔、永続的接続
【0117】
様々な周知のデータアクセスツールを本発明のこの態様と併せて利用することができ、構成可能アクセス方法を含む複数のアクセス方法を利用することができる。これらとしては、サーバへのtelnetアクセス、ODBC(DataDirect Technologies (Bedford, MA)市販のODBCライブラリを利用できる)を介するデータベースデータアクセス、SSH技法、および他の従来の技法が含まれ得る。
【0118】
シーケンスイベントブローカ710が、EDaCコア720へのインタフェースを提供し、記載したコネクタ730を含む。
【0119】
Oracleデータベースコネクタ730aは、データベース構成およびデータベース統計の収集を担う。Oracleデータベースコネクタ730aはODBCライブラリ740を使用する。
【0120】
Windows(登録商標)サーバコネクタ730bおよびSolarisサーバコネクタ730cは、メモリの利用ならびにボリューム/LUNのマッピングおよび統計等のOSレベルデータの収集を担う。ボリューム/LUNマッピングを計算するために、設置されているボリュームマネージャならびにマルチパス製品の両方を把握する必要があり得る。それぞれの詳細、すなわちストライピング特性またはパス情報を把握する必要がない場合であっても、どのLUNがボリュームに関連するかを計算するためだけに、各製品から情報が必要になる可能性が高い。ELMをターゲットとする特定の製品を選ぶことができる。Solarisサーバコネクタ730cはSSHを使用する。SolarisのボリュームマネージャはVeritasおよびネイティブのものである。Windows(登録商標)サーバコネクタ730bはWMIライブラリ750を使用する。Windows(登録商標)のボリュームマネージャはネイティブのものであり、これはVeritasである。
【0121】
ストレージコネクタ730d、730e、および730fは、LUNの利用、性能、およびRAIDセット/ディスクへのマッピングの収集およびボックス760で包括的に表される他のデータの収集を担う。アレイ性能統計はELMには必要ない。
【0122】
CLARiiONストレージコネクタ730dに関しては、NaviCLIがCLARiiONへのリッチCLIインタフェースである。これは、データをxmlで返すことができる。性能統計はCLARiiONに対してイネーブルし、CLIを通して検索することができる。CLIをASCにインストールすることも可能である。CLIに顧客サーバのうちの1つからSSH780を通してアクセスする可能性が高い。いくらかのデータは、telnetによってCLARiiONに直接提供されもする。
【0123】
Dothillストレージコネクタ730eに関しては、DothillはホストベースCLIも有する。データをxmlで返すことができる。Dothillは性能統計へアクセスを提供しない。アクセス問題は、CLARiiON CLIの場合と同じである。いくらかのデータは、telnetによってDothillに直接提供されもする。
【0124】
適したHPストレージコネクタ730fも提供される。
【0125】
ボックス730gで表されるように、現在記載しているシステムは、以下の要素、すなわち、CIM/WBEM/SMI−Sアクセス、SNMPアクセス、ファブリックコネクタ、外部SRMコネクタ、リモートプロクシ/エージェント、構成を変更するイベントを含めるように変更し拡張することができる。さらに、1つのWindows(登録商標)エージェントが、「Windows(登録商標)ワールド」へのゲートウェイとして機能することができ、WMIおよびODBCとよりシームレスに統合する。こういった将来のアクセスツールはボックス770によって表される。
【0126】
C3.発見エンジン
上で触れた発見エンジンについて、さらに詳細にこれより記載する。発見エンジン(DE)は、情報リソースマネージャ(IRM)に常駐する。発見エンジンは、ユーザによってデータストア(DS)に入れられたサーバおよびストレージアレイの定期的なトポロジ発見の開始を担う。これは、上述した外部発見・収集(EDaC)モジュールと併せてこれを行う。
【0127】
DEは、メッセージキューからのメッセージを処理する主ループの周囲に構築される。これらのメッセージとしては以下が含まれる。
発見タイマイベント このイベントは完全な発見処理を開始する。
発見完了イベント これらは、DEによってEDaCに元々送信され、今では、EDaCがサーバまたはストレージアレイのすべての発見イベントを生成した後、EDaCによって返されているストレージアレイトポロジ発見イベントおよびサーバトポロジ発見イベントである。これらのイベントは、トポロジ発見がサーバまたはストレージアレイに対して完了したことを示す。
オブジェクト発見イベント EDaCは、サーバまたはストレージアレイのトポロジを決定する処理において発見した各オブジェクトの発見イベントを生成する。例えば、EDaCは、サーバのトポロジの決定を要求された場合、サーバ、サーバFCポート、サーバボリューム、およびサーバLUNの各発見イベントを生成する。
【0128】
主ループは単純に、メッセージキュー上で処理する次のメッセージを待つことができる。
【0129】
発見タイマイベント:DEは構成要素タスクフレームワーク(CTF)を使用して、発見間隔タイマを設定する。タイマが切れた場合、CTFはメッセージを生成し、DEのメッセージキューに送出する。これは、DEに、発見処理を開始する時間であることを通知する。
【0130】
発見タイマイベントは、DEにN個の初期発見サーバトポロジイベントまたは発見ストレージアレイトポロジイベントを並列に開始させる。Nは任意の数である。トポロジを発見するサーバまたはストレージアレイがなくなるまで、常にN個の未処理の発見トポロジイベントがあることになる。
【0131】
サーバまたはストレージアレイ発見完了イベント:サーバまたはサーバアレイ発見完了イベントは、実際には、EDaCがそのオブジェクトに対する発見を完了した後、DEに返されたサーバトポロジ発見イベントまたはストレージアレイトポロジ発見イベントである。
【0132】
発見完了イベント処理:この処理ステップは以下の通りである。
1.DEがDSに、オブジェクトトポロジ発見中に発見されなかった既存の任意の記録、例えばサーバLUNか否かを見つけるように問い合わせる。DSは、発見タイムスタンプが現在の記録のものと同じではないすべての記録にクエリを作成することによってこれを行う。
2.タイムスタンプが一致しない各記録について、失われたイベント、例えば、サーバボリュームロストイベントが生成され送信される。
3.発見すべきサーバまたはストレージアレイがまだある場合、次のものがDSから検索され、それに対するトポロジ発見イベントがEDaCに送信される。
4.発見すべきサーバまたはストレージアレイがもうない場合、発見は完了し、発見間隔タイマが再開される。
【0133】
オブジェクト発見イベント:トポロジ発見イベントを受信すると、EDaCは、トポロジについてサーバまたはストレージアレイに問い合わせる。トポロジは記録セットからなる。EDaCは、現在のイベントに対する発見イベントセットを生成する。発見イベントが特定の順序で行われることが重要である。
【0134】
サーバトポロジ発見イベント:サーバ発見イベント、サーバFCポート発見イベント、サーバボリューム発見イベント、サーバLUN発見イベント。
【0135】
ストレージアレイトポロジ発見イベント:ストレージアレイ発見イベント、ストレージアレイFCポート発見イベント、ストレージアレイディスク発見イベント、ストレージアレイLUN発見イベント。
【0136】
各発見イベントには、その発見のタイムスタンプが含まれる。タイムスタンプはEDaCによって挿入される。特定のストレージアレイまたはサーバについての各発見イベントは同じタイムスタンプ値を有する。
【0137】
発見処理:この処理ステップは以下の通りである。
1.DEがデータストアに問い合わせて、記録がすでに存在するか否かを判断する。
2.記録がすでに存在する場合、記録関係が検証され、発見タイムスタンプが更新される。
3.記録がDS内に存在しない場合、他の記録に対する関係と共に記録が作成される。したがって、このステップでの処理は特に、発見中の記録に対するものである。
4.「記録発見」イベントが作成され、ログに記憶される。
【0138】
D.アプリケーションシステム負荷の管理−一般的な方法
図29Aは、デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する一般的な方法800のフローチャートである。この方法は、有利なことに、少なくとも1つの中央演算処理装置(CPU)と、CPUがデジタル計算システムの他の要素と通信可能にするように動作可能なネットワークと、少なくとも1つのストレージ装置を含み、少なくとも1つのCPUと通信するように動作可能なストレージエリアネットワーク(SAN)とを含むネットワーク化されたデジタル計算システムで実施することができる。計算システムは、少なくとも1つのアプリケーションプログラムを実行するように動作可能であり、少なくとも1つのアプリケーションプログラムは、アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有する。
【0139】
本発明による例示的な方法をボックス801〜803に示す。
【0140】
ボックス801:デジタル計算システムの要素と通信するように動作可能な情報リソースマネージャ(IRM)を利用して、計算システムの動作および計算システム内で利用可能なリソースに関する性能情報を取得し、少なくとも1つのCPU、ネットワーク、およびSANと通信して、そこから性能情報および構成情報を取得する。本書の他のどこかに記したように、性能情報および構成情報は、デジタル計算システム内の任意のCPU、ネットワーク、またはストレージ装置からのものであってよい。情報は、I/Oまたは他のコマンドをデジタル計算システムの少なくとも1つの要素に発行することによって取得することができる。IRMは、デジタル計算システム内の離散モジュールであってもよく、または計算システムサブシステムもしくはSAN内のストレージネットワークファブリックサブシステム内のモジュールとして実施されてもよい。
【0141】
ボックス802:性能情報および構成情報を利用して、解析モデル出力を生成し、解析モデル出力は性能統計および更新アプリケーションパラメータのうちの任意のものを含む。本書の他のどこかに記したように、本発明は、キューイング理論を利用して、ストレージシステムまたはサブシステムがサポートできる負荷の程度を決定することができる。
【0142】
ボックス803:解析モデル出力を利用して、更新アプリケーションパラメータ値を決定し、更新アプリケーションパラメータ値を、デジタル計算システムで実行されている少なくとも1つのアプリケーションに送信し、アプリケーションは更新アプリケーションパラメータ値を使用してアプリケーションパラメータを設定し、それにより、更新実行時パラメータを使用して、デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する。本書の他のどこかに記したように、この方法は負荷値、例えば、キューイング理論を使用して決定された負荷値を利用して、所与のアプリケーションのパラメータ値を決定することができる。この方法は、更新アプリケーションパラメータ値を決定する際に、いくつかのアプリケーション固有パラメータ、例えば、コストベース最適化(CBO)パラメータを考慮することを含むこともできる。
【0143】
図29Bは、図29Aの方法800を繰り返して、または他の様式でどのように続けて実行することができるかを示し、動作中にストレージシステムの性能を引き続きプロファイリングし、それにより、一連の時間ベースのサンプルを収集すること(804)、時間ベースのサンプルに応答して更新プロファイルを生成すること(805)、および更新プロファイルに応答して、所与のアプリケーションが実行される際に、更新アプリケーションパラメータセットを送信すること(806)によって含む。本書の他の部分に記したように、この方法は、システムが連続して性能状態の性能遷移に適応しないように、アプリケーションパラメータ更新の頻度を抑制制御する、選択された程度を提供することを含むことができる。この方法は、発見インタフェースを介してデジタル計算システムの個々の要素と直接通信することを含むこともできる(図29Bと図29Aとの例示的な対応性が各図の点「A」と「B」を介して示される)。
【0144】
図30は、本書の他の部分の考察により、本発明による方法810を、複数のアプリケーションがネットワーク、ストレージ、または他のリソースを共有している環境内でどのようにさらに実施できるかを示し、競合するアプリケーション作業負荷の影響を決定し、それを考慮に入れるように解析モデルを調整すること(811)、改良されたリソース共有に役立つように複数のパラメータ値セットを調整すること(812)、および必要に応じて、あるアプリケーション、そのI/O要求、または他の側面を別のアプリケーション、そのI/O要求、または他の側面よりも優先するように、パラメータ値を調整することによって含む。
【0145】
E.アプリケーションシステムストレージリソースのマルチレベルマッピング
米国特許出願第11/773825号(AKR−110−US)において考察されたものと同様の1つまたは複数のデジタルストレージ環境について上述したが、次に、本発明の態様、実施形態、および例についてのさらに詳細な説明に進む。本願は、米国特許出願第11/773825号の一部継続出願(CIP)である。米国特許出願第11/773825号(AKR−110−US)において記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを当業者は理解するとともに、本発明を上述した、かつ米国特許出願第11/773825号(AKR−110−US)において記載される環境以外の環境で実施してもよいことも理解するであろう。
【0146】
特に、本発明の態様は、アプリケーションにシステムリソースを効率的にマッピングするように動作可能な方法、システム、装置、およびコンピュータプログラムコード(ソフトウェア)製品、ならびに係る方法およびシステムを利用する改良されたストレージプラットフォームおよびアーキテクチャを提供する。このマッピングの基礎は、アプリケーションリソースグループ(ARG)の定義であり、ARGは、アプリケーションに関連するサーバ、バスアダプタ、ボリューム、論理ユニット番号(LUN)、ネットワークスイッチ、ディスクコントローラ、およびディスクについての完全な情報を提供する。
【0147】
本発明の現在記載している態様について、ストレージエリアネットワーク(SAN)インフラストラクチャアーキテクチャに関して記載する。しかし、記載されるシステムおよび技法の態様を他の計算環境で実施してもよいことが理解されるであろう。
【0148】
ストレージエリアネットワーク(SAN)は、ディスクドライブアレイ等のリモートコンピュータストレージ装置を、オペレーティングシステムにとって装置がローカルに取り付けられているように見えるようにホストサーバに取り付けられるようにするアーキテクチャである。
【0149】
図31は、いくつかの異なるレベルでのSANインフラストラクチャの例示的なマッピングを示す表1000である。表の1列目1001には以下の定義レベルが列挙される。
1001a−サーバレベル
1001b−バスアダプタレベル
1001c−ネットワークスイッチレベル
1001d−ディスクコントローラレベル
1001e−ディスクレベル
【0150】
表の2列目1002には、各定義レベルに対応する以下の定義グループが列挙される。
1002a−サーバレベルに対応するアプリケーションサーバグループ(ASerG)
1002b−バスアダプタレベルに対応するアプリケーションアダプタグループ(AAG)
1002c−ネットワークスイッチレベルに対応するアプリケーションスイッチグループ(ASwG)
1002d−ディスクコントローラレベルに対応するアプリケーションコントローラグループ(ACG)
1002e−ディスクレベルに対応するアプリケーションストレージグループ(ASG)
【0151】
表の列1003に示すように、各レベル1001a−eおよびグループ1002a−eは、例示的なインフラストラクチャアーキテクチャの各要素の1つまたは複数のサブセットに対応する。
1003a−アプリケーション(APP)
1003b−サーバ(SERV)
1003c−バスアダプタ(BA)
1003d−ボリューム(VOL)
1003e−論理ユニット番号(LUN)
1003f−スイッチ(SW)
1003g−コントローラ(CTLR)
1003h−ディスクアレイ(DISK)
【0152】
一般的に言えば、各グループ1002a−eはその名称が付けられた要素と、アプリケーション1003aまでのすべての「上流」要素とを含む。したがって、例えば、アプリケーションスイッチグループ(ASwG)は、スイッチ(SW)と、スイッチの上流にある要素、すなわち、論理ユニット番号(LUN)、ボリューム(VOL)、バスアダプタ(BA)、サーバ(SERV)、およびアプリケーション(APP)とを含む。後述する各グループの特定のインフラストラクチャ要素の選択を図32〜図37に示す。
【0153】
さらに、本発明の現在記載している態様は、サブグループ1002fの定義をさらに提供する。表1000では、例示的なサブグループ1002が、アプリケーションストレージグループ(ASG)内の個々のLUNについてのより詳細な情報を提供するものとして定義され、LUNと、SANスイッチ1003f、コントローラ1003g、およびディスクアレイ1003hを含む「下流」要素とを含む。後述するサブグループの特定のインフラストラクチャ要素の選択を図38、図39A、および図39Bに示す。
【0154】
このアプリケーション−ストレージシステムのマッピングのより完全な知識に基づいて、アプリケーションに関連するシステムリソースをより制約の小さいシステムリソースにリマッピングまたは再構成して、システム内の性能ボトルネックを除去することができる。これらの特徴および要素のそれぞれについてさらに詳細に後述する。
【0155】
本発明は、ストレージシステム内に記憶されているデータにアクセスする際に、アプリケーションの性能に影響を及ぼし得る他のリソース(すなわち、サーバ、ネットワークスイッチ、ディスクコントローラ、ディスク)を識別するために、データパスを発見する能力を利用する。本発明は、複数のアプリケーションがストレージシステム内の要素を共有しているときをユーザが明確に識別できるようにする。
【0156】
本発明は、エージェントレスの方法の組み合わせを利用して、ARGトポロジを発見する。これらの方法は、既存のAPIおよびオペレーティングシステムユーティリティを利用して、サーバ、スイッチ、アダプタ、およびディスクインタフェースにおいてトポロジマッピング情報を捕捉することを含む。
【0157】
これとは対照的に、初期の一技法は、トポロジを発見できるようにアプリケーションに接続することに依存するエージェントベースの手法を使用する。この技法は、著しいオーバーヘッドをシステムにもたらし、潜在的に、実行中のアプリケーションの挙動に影響を及ぼし得る。
【0158】
本発明はこれらの問題を実質的に回避する。本発明は、アプリケーションとストレージシステムとのストレージシステムマッピングおよびデータパスの両方の完全な知識を利用することによってアプリケーションの信頼性またはセキュリティを向上させるように容易に拡張することも可能である。
【0159】
ストレージシステム性能の管理に使用される従来の方法は、アプリケーションまたはストレージシステムのいずれかのみに焦点を合わせ、これらの2つの関係を考慮しない。システムの制限されたビューを利用することに伴ういくつかの問題としては、
(1)問題が往々にして誤診断されることがあるとともに、アプリケーションボトルネック、例えばサーバメモリ使用率、またはストレージシステムボトルネック、例えば、ディスクコントローラ接続のいずれかまたは両方に起因し得ること、
(2)共有されるアプリケーションサーバ、ネットワークスイッチ、またはストレージサブシステムを利用する複数のアプリケーションまたは複数のサーバを同時に管理することが殆ど考慮されていないこと、および
(3)ストレージ、ネットワーク、およびサーバの仮想化技法が、アプリケーションとシステムリソースとの間にさらなるレベルの抽象を追加し得、性能の帰属をさらに難しくすること
が挙げられる。
【0160】
本発明は、すべてのシステムリソースおよびパスを個々のアプリケーションに結び付けるモデルを定義する。本発明はストレージ装置(すなわち、個々のディスクスピンドル)の観点から元の個々のアプリケーションへのマッピングを定義する。本発明の主要要素は、ストレージシステム内の任意の競合ポイントに関連するアプリケーションセットを容易に識別可能なことである。
【0161】
本発明は、アプリケーションとサポートしているストレージシステムとの動的に変更するマッピングを捕捉することにより、ストレージサブシステム情報を取得する能力を含む。この情報は、ストレージシステムおよびアプリケーションを定期的にプロービングして、マッピングへのあらゆる変更を追跡することによって取得することができる。
【0162】
F.マルチレベルマッピングの実施形態
以下の考察には、本発明の開示の理解を提供し、本発明の開示を可能にする多くの特定の詳細を記す。本発明をこれらの特定の詳細なしで実施してもよいことを当業者は理解するであろう。場合によっては、周知の方法、手続き、構成要素、プロトコル、アルゴリズム、および回路については、本発明を曖昧にしないように詳細に記載されていない。
【0163】
上記考察には、ストレージリソースをこれらのリソースを利用するアプリケーションにマッピングする必要性について記載した。以下の考察には、添付の図面と併せて、システムリソースをアプリケーションに効率的にマッピングするように動作可能な本発明の実施態様について記載する。
【0164】
これより図32を参照すると、図32には、以下の要素を含むコンピュータシステムインフラストラクチャ1010の一例が示される。すなわち、
2つのアプリケーションサーバ1011および1012、
3つのアプリケーション1100、1110、および1120、
2つのバスアダプタ1200および1210、
4つのストレージボリューム1300、1310、1320、および1330、
5つのサーバLUN1301、1311、1321、1322、および1331、
1つのネットワークスイッチ1400、
3つのディスクコントローラ1500、1510、および1520、ならびに
3つのディスクグループ1501、1511、および1521
である。
【0165】
図示のシステムの基盤をなすハードウェア要素(例えば、基盤をなすサーバ、バスアダプタ、ストレージボリューム、サーバLUN、ネットワークスイッチ、ディスクコントローラ、およびディスクグループ)ならびにアプリケーションは、一般に従来の性質のものであってよく、市販の製品を使用して当業者によって実施することができる。
【0166】
図32が例示的なものであり、本記載のために提供されることに留意されたい。例えば、上述したように、実際のSANには、何百もの、さらには何千ものLUNがあり得る。特定のネットワークを別様に構成してもよく、または特定のネットワークが異なる要素を含んでもよい。現在記載しているシステムおよび技法の態様も同様にそれらの文脈の中で適用してもよいことが理解されるであろう。
【0167】
例えば、図32に示すようなデジタル計算環境またはプラットフォームで実施される本発明によれば、アプリケーションリソースグループ(ARG)が定義される。ARGは、共通のシステムリソースセットを包含し、アプリケーションセットからシステム内で使用されるシステム要素(例えば、サーバ、ホストアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスク)への完全または略完全なマッピングとして定義される。
【0168】
さらに、本発明によれば、ARGは、アプリケーションサーバグループ(ASerG)、アプリケーションアダプタグループ(AAG)、アプリケーションスイッチグループ(ASwG)、アプリケーションコントローラグループ(ACG)、およびアプリケーションストレージグループ(ASG)の定義を含む。ARGは、アプリケーションとストレージシステムとの間のパス内の任意のポイントでの完全なマッピングを提供する。
【0169】
ARGは、ストレージシステム内の任意の要素に対して負荷を発生させているアプリケーションセットの階層図を提供する。複数のアプリケーションが単一のストレージ要素に関して競合しており、かつ性能ボトルネックが生じている場合、ARGは、ボトルネックの原因であり得るアプリケーションセットを識別することができる。
【0170】
図33は、本発明によるサーバ1011のアプリケーションサーバグループ(ASerG)を示す。ASerGは、アプリケーション1100および1110をサーバ1011に負荷をかけているアプリケーションとして識別する。
【0171】
図34は、本発明によるバスアダプタ1210のアプリケーションアダプタグループ(AAG)を示す。AAGは、アプリケーション1120をバスアダプタ1210に負荷をかけているアプリケーションとして識別する。AAGは、バスアダプタ1210がサーバ1012に接続されていることも識別する。
【0172】
図35は、本発明によるネットワークスイッチ400のアプリケーションスイッチグループ(ASwG)を示す。ASwGは、アプリケーション1100、1110、および1120をネットワークスイッチ400に負荷をかけているアプリケーションとして識別する。ASwGは、スイッチ1400がLUN1301、1311、1321、1322、1331に接続され、LUN1301、1311、1321、1322、1331は、ボリューム1300、1310、1320、および1330のマッピングに使用され、ボリューム1300、1310、1320、および1330はバスアダプタ1200および1210に接続され、バスアダプタ1200および1210はサーバ1011および1012に接続されていることも識別する。
【0173】
図36は、本発明によるディスクコントローラ1510のアプリケーションコントローラグループ(ACG)を示す。ACGは、アプリケーション1120をディスクコントローラ1510に負荷をかけているアプリケーションとして識別する。ACGは、コントローラ1510がネットワークスイッチ400に接続され、ネットワークスイッチ400がLUN1321および1322に接続され、LUN1321および1322がボリューム1320のマッピングに使用され、ボリューム1320がバスアダプタ1210に接続され、バスアダプタ1210がサーバ1012に接続されていることも識別する。
【0174】
図37は、本発明によるディスクアレイ1501のアプリケーションストレージグループ(ASG)を示す。ASGは、アプリケーション1100および1110をディスクアレイ1501に負荷をかけているアプリケーションとして識別する。ASGは、アレイ1501がディスクコントローラ1500によって接続され、ディスクコントローラ1500がネットワークスイッチ400に接続され、ネットワークスイッチ400がLUN1301および1311に接続され、LUN1301および1311がボリューム1300および1310のマッピングに使用され、ボリューム1300および1310がバスアダプタ1200に接続され、バスアダプタ1200がサーバ1300に接続されることを識別する。
【0175】
本発明では、任意のARG抽象を単一のアプリケーションに関連するLUNまでさらに分解するサブグループも定義される。各ARG抽象(ASerG、ASwG、ASerG、ACG、およびASG)は、少なくとも1つの、恐らくは複数のサブグループを含むことになる。単一のサブグループは、単一のASG抽象内でのみ提示することができる。サブグループは、単一のストレージ要素とアプリケーションとの関係の粒度をさらに改善する。
【0176】
図38、図39A、図39Bは、本発明によるサブグループの詳細図を提供する。サブグループは、ストレージ要素に負荷を発生させている原因であるアプリケーションに関連するLUNのより詳細な図を提供する。
【0177】
図38は、単一のバスアダプタ1230を使用する単一のアプリケーション1130を実行しているホストサーバ1013を含む代替のインフラストラクチャアーキテクチャを示す。単一のアプリケーション1130は複数のボリューム1350および1360にマッピングされ、これらの各ボリュームは複数のLUNにマッピングされ得る。ボリューム1350はLUN1351および1352にマッピングされ、ボリューム1360はLUNにマッピングされる。各LUNは異なるRAIDグループにマッピングすることができる。LUN1351はディスクアレイ1531にマッピングされ、LUN1352および1361はディスクアレイ1541にマッピングされる。
【0178】
図39Aは、LUN1351、スイッチ1410、コントローラ1530、およびディスクアレイ1531を含む第1のサブグループA1600を示す。図39Bは、LUN1352および1361、スイッチ1410、コントローラ1540、ならびにディスクアレイ1541を含む第2のサブグループBを示す。
【0179】
サブグループは、ストレージ要素内で性能問題の原因であり得る単一のアプリケーションに関連するLUNの識別を助けることができる。例えば、図39Aに示すように、サブグループA1600を使用して、アプリケーション1130内の特定のどのプロセスがディスクアレイ1531で受けている負荷の原因であるかを識別することが可能である。
【0180】
アプリケーションのARGマッピングを完全に記述するために必要な情報は、いくつかの方法を通して取得することができる。この情報は、既存のオペレーティングシステムインタフェース(例えば、Windows(登録商標)の場合、WMI)を通して、またはオペレーティングシステムユーティリティおよびボリュームマネージャ)(例えば、Solarisの場合、Solarisボリュームマネージャ)を使用して発見することができる。スイッチレベル発見は、スイッチ製造業者によって規定される簡易ネットワーク管理プロトコル(SNMP)APIを使用する。ディスクアレイレベル発見は、Storage Network Industry Associationによって規定されるストレージ管理イニシアティブ仕様(SMI−S)APIならびにコマンドラインインタフェース(CLI)を使用する。ローカル−物理LUNマッピングは、ネットワークによって定義され、Unix(登録商標)上のオペレーティングシステムユーティリティまたはWindows(登録商標)上のWindows(登録商標)レジストリを使用して得られるワールドワイドネーム(WWNまたはWWID)を使用して得られる。
【0181】
本発明の一実施では、ARGトポロジは、サーバまたはストレージシステムのいずれかで実行されている仮想化技術によって曖昧になり得る。システムの発見要素は、仮想化技術によって提供される利用可能なAPIを利用することができる(例えば、VMWareのESXコレクタが仮想化されたホストツールと協働する)。次に、仮想化システム要素または存在する実際の物理要素のいずれかを示すARGトポロジをユーザに提示することができる。
【0182】
上述したオペレーティングシステムインタフェースの例(WMI、Solarisボリュームマネージャ)、APIの例(SMI−S、CLI等)、およびVMWareのESXコレクタ等の仮想化の例が、市販の製品またはサービスを指し、それらと相互動作可能なように本発明を実施可能なことを当業者は理解するであろう。
【0183】
図40は、本発明の方法およびシステムの一実施2000を示すフローチャートを提供し、以下を含む。
ボックス2001−サーバ、ネットワーク、およびストレージサービスに問い掛けることによってトポロジを最初に発見する
ボックス2002−仮想化が使用されている場合、存在する任意の仮想−物理マッピングを発見する
ボックス2003−ASerG、AAG、ASwG、ACG、およびASGの各グループならびにサブグループを識別する
ボックス2004−トポロジ内のすべてのポイントで実行統計を収集し、統計リポジトリに記憶する
ボックス2005−トポロジの特定のグループビューに基づいて収集された実行統計を照会する
ボックス2006−性能情報をシステムユーザに報告する
【0184】
G.結び
上記記載は当業者が本発明を実施できるようにする詳細を含むが、この記載は例示的な性質のものであり、その多くの変更および変形が本教示の恩恵を有する当業者には明らかであり、そういった変更および変形が本発明の主旨および範囲内にあることを認められたい。したがって、本明細書における本発明は添付の特許請求の範囲によってのみ規定され、特許請求の範囲は先行技術によって許される限り広義に解釈されることが意図される。
【技術分野】
【0001】
関連出願の相互参照
本特許出願は、2006年12月21日に出願され「Methods and Systems for Identifying Application System Storage Resources(アプリケーションシステムストレージリソースを識別する方法およびシステム)」という名称の米国仮特許出願第60/871444号(代理人整理番号:AKR−114−PR)の優先権の利益を主張するものであり、この仮特許出願を、その全体が記載されているかのように参照により本明細書に援用する。
【0002】
本特許出願は、2007年7月5日に出願され「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理番号:AKR−110−US)の一部継続出願(CIP)でもあり、この特許出願も参照により本明細書に援用され、その詳細な説明および図面が本明細書において記載される。そして、米国特許出願第11/773825号(AKR−110−US)は、2006年7月6日に出願された米国仮特許出願第60/806,699号(AKR−110−PR)の優先権の利益を主張するものであり、この仮特許出願を、その全体が記載されているかのように参照により本明細書に援用する。
【0003】
発明の分野
本発明は、一般には、デジタル処理システム、装置、およびネットワークに関し、より詳細には、アプリケーション性能および自己管理システムの分野に関する。さらにより詳細には、本発明は、システムリソースで生じた性能問題を、性能制約システムリソースに対して負荷を生み出しているアプリケーションサーバ、アプリケーション、およびアプリケーションタスクに再びマッピングする方法、システム、および装置に関する。
【背景技術】
【0004】
発明の背景
多くのストレージプラットフォームでは、ストレージ管理者がストレージリソースを異なるハードウェアサーバに割り振りそして割り当てることができる。単一のハードウェアサーバは複数のアプリケーションを並行に実行することができる。単一のアプリケーションはいくつかの並行タスクを具現することができる。単一のアプリケーションは、通常、いくつかのシステムリソースを利用する。アプリケーション性能は、アプリケーションのシステムリソースへのアクセスを最適化できる場合、潜在的に加速することができる。
【0005】
不都合なことに、従来のストレージプラットフォームでは、ユーザまたはシステム管理者は、個々のアプリケーションがシステムリソースセットをどのように利用するかについて殆ど指針を有さない。同じハードウェアサーバで並行に実行されている2つのアプリケーションが、共通のシステムリソースに対する競合により、ストールする場合があり得る。システムリース競合は識別することができるが、アプリケーションからそのアプリケーションを使用しているシステムリソースへのマッピング、およびこの逆のマッピングを識別できない場合を除き、問題の原因を完全には知ることなく、性能ボトルネックを修復しようと試みることができる。
【0006】
より詳細には、アプリケーションは、多くの場合、ストレージエリアネットワーク(SAN)を通して共通のストレージシステムを共有するサーバにホストされる。アプリケーションの要求と中央ストレージの能力との不均衡は、中央ストレージリソースを共有しているアプリケーションの全体性能を不良にし得る。この不均衡は、サーバ(CPUおよびメモリ)、バスアダプタ、スイッチ、ディスクコントローラ、およびディスクアレイを含むいくつかの任意の異なるシステム要素のアプリケーションによる使用に影響を及ぼし得る。
【0007】
個々のアプリケーションは、サーバとサポートしているストレージサブシステムとの間のパス内の任意の特定のシステム要素に対して大きすぎる負荷をかけている場合、性能の影響を受け得る。さらに、同じまたは独立したサーバで実行されている複数のアプリケーションは、ネットワークおよびストレージがアプリケーションおよびサーバで共有されている場合、互いの性能に影響を及ぼし得、多くの場合、SANが共有リソースとして導入される。
【0008】
任意のアプリケーションの性能は、アプリケーションが単一の装置に対して大きすぎる負荷を生成する場合、または複数のアプリケーションが多くの要求でシステムを溢れさせる場合に低下し得、それにより、ストレージシステムが集合負荷にサービス提供することができなくなる。
【0009】
ストレージシステムにアクセスする際にあるアプリケーションが別のアプリケーションに対して生じさせる干渉は、性能の大きなばらつきに繋がり得る。より予測可能なアプリケーション性能を提供しようという試みは、多くの場合、システムリソース(例えば、CPU、メモリ、ネットワーク、ディスク)のオーバープロビジョニングに繋がる。
【0010】
ストレージプラットフォームのリソースに関連する問題のうちのいくつかに対処する既知の一方法は、ストレージリソース管理(SRM)であり、通常、SRMは、割り振られたリソースセットのトポロジを発見し、その性能の健康状態を評価する計測機能を提供する。システム性能の健康状態は、応答時間およびストレージ帯域幅に関して測定することができる。SRMは、性能が制約されたストレージリソースを検出し、これをストレージ管理者に報告することができる。
【0011】
ネットワーク化された特定のストレージリソースセットを使用するアプリケーションセットの識別を可能にするには、ストレージシステムとアプリケーションとの間の完全なマッピングが要求される。マッピングは、(1)アプリケーションによって使用されているすべてのシステムリソース(例えば、個々のディスク、ディスクコントローラ、バスアダプタ)についての情報および(2)ストレージシステムからアプリケーションサーバへのパス(ボリュームLUNマッピングおよびネットワークスイッチを含む)の両方を含まなければならない。
【0012】
例として、米国特許第7,058,545号(「’545号特許」)は、参照により本明細書に援用され、ストレージ装置とアプリケーションとの間の論理データパスおよび物理データパスを識別するが、パスを構成するすべてのシステムリソースを識別する能力を有さない方法を記載している。’545号特許は、データパスを管理して、データパスの性能、信頼性、またはセキュリティを増大させることを対象とし、複数のアプリケーション間の競合に対処しない。
【特許文献1】米国特許第7,058,545号
【発明の概要】
【発明が解決しようとする課題】
【0013】
したがって、特に、複数のアプリケーションが実行されている現実世界環境において、システムリソースをアプリケーションに効率的にマッピングするように動作可能な方法およびシステムを提供することが有用である。
【0014】
このような方法およびシステムを利用する改良されたストレージプラットフォームおよびアーキテクチャを提供することも有用である。
【課題を解決するための手段】
【0015】
これらのニーズを満たし、他の技術的利点および特徴を提供する本発明について、次に、添付の図面に関連して詳細に説明する。
【0016】
発明の概要
本発明は、デジタル処理環境内、より詳細にはデジタルストレージ環境内で動作可能であり、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素との間のマッピングを可能にするとともに、デジタルストレージ環境内の任意のストレージ要素に対して負荷を発生させているアプリケーション(他のソフトウェアプログラム)セットの階層イメージを提供する方法、装置、システム、およびコンピュータプログラムコード(ソフトウェア)製品を提供する。
【0017】
例として、本発明の一態様は、(A)集合的にデジタルストレージ環境内のストレージ要素である、少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境内で動作可能なこのような方法、装置、システム、およびコンピュータプログラムコード(ソフトウェア)製品を提供するが、この少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、デジタルストレージ環境内のストレージ要素である。本発明のこの態様は、(A)アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することと、
ARGはARG抽象を含み、ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
ARGおよびサブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である。
【0018】
本発明の別の態様では、ARGおよびサブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である。
【0019】
本発明の別の態様では、ARGおよびサブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、ARGが、ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である。
【0020】
本発明のさらに別の態様では、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される。
【0021】
さらなる詳細、例、および実施形態を、添付図面と併せて読まれるべき以下の詳細な説明において説明する。
【0022】
上述したように、本発明は、2007年7月5日に出願された「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理番号:AKR−110−US)の一部継続出願(CIP)であるため、以下の詳細な説明ではまず、米国特許出願第11/773825号(AKR−110−US)の発明を記載し(以下のセクションA〜D)、それから、本発明の説明に続く(以下のセクションEおよびF)。当業者は、米国特許出願第11/773825号(AKR−110−US)内で記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを理解するとともに、本発明を米国特許出願第11/773825号(AKR−110−US)で記載される環境以外で実施可能なことも理解するであろう。
【0023】
当業者は、添付図面に関連して行われる以下の詳細な説明に基づく本発明を容易に理解するであろう。
【図面の簡単な説明】
【0024】
【図1】本発明を実施することができるか、または本発明を実施することができるネットワーク化されたデジタル計算システムの一部分を形成し得る従来のワークステーションまたはPC(パーソナルコンピュータ)デジタル計算システムの概略図である(先行技術)。
【図2A】本発明を実施することができるネットワーク化されたデジタル計算システムの概略図である(先行技術)。
【図2B】図1に示すような従来のワークステーション環境またはPC環境の構成要素の概略図である(先行技術)。
【図3】本発明の一実施形態の概略図である。
【図4】本発明を実施することができるデジタル計算システムの概略図である。
【図5】調整可能なアプリケーションパラメータを有するアプリケーションプログラムを示す概略図である。
【図6】デジタル計算システムで実行されており、システム負荷を発生させているアプリケーションの概略図である。
【図7】本発明により構築された計算システムおよび情報リソースマネージャ(IRM)を示す概略図である。
【図8】計算システムで実行されているアプリケーションの性能統計、構成データ、およびアプリケーションパラメータのデータベースを示す概略図である。
【図9】本発明により性能情報を計算システムからどのように得ることができるかを示す概略図である。
【図10】本発明により構成情報を計算システムの各要素からどのように得ることができるかを示す概略図である。
【図11】本発明の一実施形態によるIRMの解析モデルの態様を示す概略図である。
【図12】本発明により、構成データ、CPU統計、ネットワーク統計、およびSAN統計を使用して、解析モデルをどのように構築することができるかを示す概略図である。
【図13】本発明の一実施により、解析モデルが更新アプリケーションパラメータセットをどのように生成するかを示す概略図である。
【図14】本発明の一実施形態により、更新アプリケーションパラメータを使用して、アプリケーションによって使用されているアプリケーションパラメータセットがどのように更新されるかを示す概略図である。
【図15】情報リソースマネージャ(IRM)がいくつかのCPU統計、ネットワーク統計、およびSAN統計をどのように維持することができるかを示す概略図である。
【図16】本発明により、複数の更新統計セットを解析モデルにどのように適用することができるかを示す概略図であり、次に、解析モデルは、計算システムで実行されているアプリケーションデータを更新する。
【図17】本発明の一実施形態によるELMアーキテクチャの主要構成要素の概略ブロック図である。
【図18】ELMアーキテクチャの統計収集のタイミングを示す図である。
【図19】ELM統計の収集および計算の頻度のサマリを提供する表である。
【図20】ELM統計のサマリを提供する表である。
【図21】ELM統計のサマリを提供する表である。
【図22】ELM統計のサマリを提供する表である。
【図23】ELM統計のサマリを提供する表である。
【図24】ELM統計のサマリを提供する表である。
【図25】ELM統計のサマリを提供する表である。
【図26】ELM統計のサマリを提供する表である。
【図27】ELM統計のサマリを提供する表である。
【図28】本発明の一実施によるEDaCサービスに含まれる各種コネクタを示す概略図である。
【図29A】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図29B】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図30】デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する本発明による方法を示すフローチャートである。
【図31】アプリケーションシステムストレージリソースのマルチレベルマッピングを提供する本発明のさらなる態様によるレベル、グループ、およびインフラストラクチャ要素が列に列挙される表である。
【図32】アプリケーションシステムストレージリソースをマルチレベルマッピングする、説明されるシステムおよび技法の実施に適した例示的なコンピュータインフラストラクチャアーキテクチャの図である。
【図33】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図34】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図35】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図36】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図37】図32のアーキテクチャに記される要素のサブセットから形成されるグループを示す図である。
【図38】代替の例示的なコンピュータインフラストラクチャアーキテクチャの図である。
【図39A】図38のアーキテクチャに記される要素のサブセットから形成されるサブグループを示す図である。
【図39B】図38のアーキテクチャに記される要素のサブセットから形成されるサブグループを示す図である。
【図40】アプリケーションシステムストレージリソースをマルチレベルマッピングする本発明のさらなる態様による全般的な技法のフローチャートである。
【発明を実施するための形態】
【0025】
発明の詳細な説明
以下の記載には、本発明の理解を提供するために多くの特定の詳細が記される。しかし、本発明をこういった特定の詳細なしで実施可能なことを当業者は理解するであろう。場合によっては、周知の方法、手続き、構成要素、プロトコル、アルゴリズム、および回路については、本発明を曖昧にしないように詳細に記載されていない。以下の考察には、アプリケーションパラメータを適宜調整することによってストレージリソースに対する負荷への対処に関連する態様ならびにCPU、ネットワーク、およびSANリソースの平衡化に関連する態様を含む本発明の各種態様が記載される。
【0026】
上述したように、本発明は、2007年7月5日に出願された「Managing Application System Load(アプリケーションシステムの負荷管理)」という名称の米国特許出願第11/773825号(代理人整理:AKR−110−US)の一部継続出願(CIP)であるため、以下の詳細な説明ではまず、米国特許出願第11/773825号(AKR−110−US)の発明を記載し(以下のセクションA〜D)、それから、本発明の説明に続く(以下のセクションEおよびF)。当業者は、米国特許出願第11/773825号(AKR−110−US)内で記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを理解するとともに、本発明を米国特許出願第11/773825号(AKR−110−US)で記載される環境以外で実施可能なことも理解するであろう。
【0027】
この詳細な説明は以下のセクションで編成される。
A.本発明を実施することができるデジタル処理環境
B.アプリケーションシステム負荷の管理
C.アプリケーションシステム負荷の管理−実施のさらなる詳細/例
C1.システムアーキテクチャ
C2.外部発見サブシステム
C3.発見エンジン
D.アプリケーションシステム負荷の管理−一般的な方法
E.アプリケーションシステムストレージリソースのマルチレベルマッピング
F.マルチレベルマッピングの実施形態
G.結び
【0028】
A.本発明を実施することができるデジタル処理環境
本発明の特定の例および実施形態を記載する前に、以下は、本発明を実施し、実行することができる基盤をなすデジタル処理構造および環境の、図1、図2A、および図2Bと併せて読まれるべき考察である。
【0029】
本発明は、コンピュータサーバクラスシステムで一般に見られるアプリケーションでのより効率的なアプリケーション実行を可能にする方法、システム、装置、およびコンピュータプログラム製品を提供することが当業者には理解されるであろう。これらのアプリケーションは、データベースアプリケーション、ウェブサーバアプリケーション、および電子メールサーバアプリケーションを含む。これらのアプリケーションは、一般に、大きなグループのコンピュータユーザに対して媒体を同時にサポートするために使用される。これらのアプリケーションは、複数のユーザによる一貫し組織されたアクセスおよび共有を共有データセットに提供する。アプリケーションは、デジタル計算システムの複数または単一の共有セットでホストすることができる。各アプリケーションで実行されるタスクセットは、デジタル計算システムで生成されるパターンおよび負荷を指示し、パターンおよび負荷は構成可能なアプリケーションパラメータセットを通して管理することができる。
【0030】
したがって、本発明は、別個のソフトウェアアプリケーション、システムソフトウェアを含むコンピュータシステムの部分、またはデジタル計算システムの部分を形成するコンピュータの専用コンピュータハードウェアとして実施することができる。本発明は、別個のスタンドアロンのソフトウェアベースまたはハードウェアベースのシステムとして実施してもよい。実施態様は、キーボードおよび/またはマウス等のユーザインタフェース要素、メモリ、ストレージ、および他の従来のユーザインタフェース構成要素を含み得る。このような種類の従来の構成要素は、当業者に周知であるため、本明細書においてさらに詳細に記載する必要はなく、以下の概観には、本発明をデジタルコンピュータシステム内のこのような構成要素と併せてどのように実施できるかを示す。
【0031】
特に、本発明をデジタルコンピュータシステム性能のプロファイリングおよび解析ならびにアプリケーション調整に利用できることを当業者は理解するであろう。本明細書において記載する技法は、デジタルコンピュータシステムの部分として実施することができ、性能データが定期的に収集され、適応的に解析される。データは、さらに、現在のシステムを変更することの影響を見積もるために使用できる解析モデルへの入力として使用することができる。この場合、デジタルコンピュータシステムで実行されているアプリケーションを再構成して、性能を向上させることができる。
【0032】
以下の詳細な説明は、こういった技法による方法、構造、システム、コンピュータソフトウェア製品の例を示す。記載される方法およびシステムが、独立構成もしくはネットワークを介するMicrosoft Windows(登録商標)、Linux、またはUnix(登録商標)等の従来のオペレーティングシステムに従って動作する(または従来のオペレーティングシステムをエミュレートする)パーソナルコンピュータ(PC)または等価の装置等の従来のコンピュータ装置を使用してソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組み合わせで実施できることが当業者には理解されるであろう。したがって、本明細書において記載する各種処理態様および手段は、適宜構成されたデジタル処理装置または装置のネットワークのソフトウェア要素および/またはハードウェア要素で実施することができる。処理は逐次または並列に実行してよく、専用ハードウェアまたは再構成可能ハードウェアを使用して実施してもよい。
【0033】
一例として、本明細書に添付される図1は、データベースおよびメールサーバ等のサーバクラスアプリケーションを実行できる例示的なコンピュータシステム10を示す。図1を参照すると、一実施形態において、コンピュータシステム10は、プロセッサモジュール11と、キーボード12Aおよび/またはマウス12B(またはデジタイジングタブレットまたは他のアナログ要素、包括的にオペレータ入力要素12として識別される)等のオペレータ入力構成要素およびビデオ表示装置13等のオペレータ出力要素を含むオペレータインタフェース要素とを含む。例示的なコンピュータシステム10は、従来の内蔵プログラムコンピュータアーキテクチャのものであることができる。プロセッサモジュール11は、例えば、1つまたは複数のプロセッサ、メモリ、ならびにディスクおよび/またはテープ記憶要素(別個に示さず)等の大容量記憶装置を含むことができ、提供されるデジタルデータと併せて処理動作および記憶動作を実行する。オペレータ入力要素12は、オペレータが、処理する情報を入力できるようにするために提供することができる。ビデオ表示装置13は、オペレータが処理のために入力することができるデータ、オペレータが処理制御のために入力できる情報、ならびに処理中に生成される情報を含め、プロセッサモジュール11によって生成された情報をオペレータに対して画面14上に表示するために提供することができる。プロセッサモジュール11は、いわゆる「グラフィカルユーザインタフェース」(「GUI」)を使用してビデオ表示装置13によって表示される情報を生成することができ、ビデオ表示装置13には、各種アプリケーションプログラムについての情報が各種「ウィンドウ」を使用して表示される。
【0034】
用語「メモリ」、「ストレージ」、および「ディスクストレージ装置」は、コンピュータハードディスク、コンピュータフロッピー(登録商標)ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読RAM要素、コンピュータ可読ROM要素、またはデジタル情報を符号化する任意の他の既知の手段等の任意のコンピュータ可読媒体を包含することができる。用語「アプリケーションプログラム」、「アプリケーション」、「プログラム」、「コンピュータプログラム製品」、または「コンピュータソフトウェア製品」は、コンピュータ可読媒体が固定式、リムーバブル式、永久的、または消去可能であるか等にかかわりなく、コンピュータ可読媒体に符号化され、かつ/または記憶されたコンピュータ可読プログラム命令からなる任意のコンピュータプログラム製品を包含することができる。上述したように、例えば、図2Bの概略ブロック図のブロック122において、アプリケーションおよびデータは、当該技術分野において周知の実施および技法に従ってディスク、RAM、ROM、他のリムーバブルストレージ、固定ストレージに、これらが内部にあるか外部にあるかにかかわりなく、記憶することができ、ダウンロードまたはアップロードすることができる。本書において述べるように、本発明は、コンピュータ可読媒体に記憶されたソフトウェアまたはコンピュータプログラム製品の形態をとってもよく、アップロードされてもよく、ダウンロードされてもよく、FPGA、ROM、もしくは他の電子構造に固定されてもよいコンピュータプログラムコードの形態であってもよく、または方法もしくはこのような方法を実行するシステムの形態をとってもよい。コンピュータシステム10は、入力情報をオペレータから受け取るためのキーボード12Aおよびマウス12B、ならびに出力情報をオペレータに表示するためのビデオ表示装置13等の特定の構成要素を備えて示されるが、コンピュータシステム10が、図1に示される構成要素に加えて、または図1に示される構成要素に代えて、様々な構成要素を含んでよいことが理解されるであろう。
【0035】
さらに、プロセッサモジュール11は、包括的に参照番号14で識別される1つまたは複数のネットワークポートを含むことができ、ネットワークポートは、コンピュータシステム10をコンピュータネットワークに接続する通信リンクに接続される。ネットワークポートは、コンピュータシステム10が、ネットワーク内の他のコンピュータシステムおよび他の装置に対して情報を送信するとともに、情報を受信できるようにする。例えば、クライアント−サーバパラダイムに従って組織された典型的なネットワークでは、ネットワーク内の特定のコンピュータシステムがサーバとして示され、他のクライアントコンピュータシステムによって処理されるデータおよびプログラム(包括的に「情報」)を記憶し、それにより、クライアントコンピュータシステムが情報を都合良く共有できるようにする。特定のサーバによって保持されている情報にアクセスする必要があるクライアントコンピュータシステムは、サーバがネットワークを介して情報をダウンロードできるようにする。データを処理した後、クライアントコンピュータシステムは、処理されたデータをサーバに返して、そこに記憶することもできる。コンピュータシステム(上述したサーバおよびクライアントを含む)に加えて、ネットワークは、例えば、プリンタおよびファクシミリ装置、デジタルオーディオまたはデジタルビデオの記憶・配信装置等を含み得、これらをネットワークに接続された各種コンピュータシステムで共有することができる。ネットワーク内のコンピュータシステムを相互接続する通信リンクは、従来のように、ワイヤ、光ファイバ、または信号をコンピュータシステム間で搬送する他の媒体を含めた任意の都合の良い情報搬送媒体を含み得る。コンピュータシステムは、通信リンク上で転送されるメッセージによってネットワーク上で情報を転送し、各メッセージは、情報およびメッセージを受信する装置を識別する識別子を含む。
【0036】
図面に示されるコンピュータシステム10に加えて、本発明による方法、装置、またはソフトウェア製品は、従来のPC102、ラップトップ104、ハンドヘルドもしくはモバイルコンピュータ106、またはインターネットもしくは他のネットワーク108を介するものを含め、スタンドアロンか、ネットワーク化されているか、可搬であるか、それとも固定されるかにかかわりなく、サーバ110およびストレージ112を含み得る、図2Aおよび図2Bに例として示されるもの(例えば、ネットワークシステム100)等の任意の広範囲の従来の計算装置およびシステムで動作することができる。
【0037】
従来のコンピュータソフトウェアおよびハードウェアでの実施と並んで、本発明により構成されたソフトウェアアプリケーションは、例えば、図1、図2A、および図2Bに示されるようなPC102内で動作することもでき、この場合、プログラム命令は、ROM、CD−ROM116(図2B)、磁気ディスク、または他のストレージ120から読み出して、RAM114にロードしてCPU118によって実行することができる。データは、従来のキーボード、スキャナ、マウス、デジタイジングタブレット、または他の要素103を含めた任意の既知の装置または手段を介してシステムに入力することができる。図2Bに示すように、図示のストレージ120はリムーバブルストレージを含む。図2Bにさらに示すように、アプリケーションおよびデータ122を、固定ストレージ、リムーバブルストレージ、またはROMのうちのいくつかまたはすべてに配置してもよく、またはダウンロードしてもよい。
【0038】
本明細書において記載する本発明の方法態様が、ASIC製造業者にとって既知のASIC構築技法を使用して、本明細書において記載される処理を実行するように特に構築されたフィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)等のハードウェア要素で実行可能なことを当業者は理解するであろう。本発明の実行に使用できる従来のASIC、等価の集積回路、または他の従来のハードウェア要素の実際の半導体素子は、本発明の部分ではなく、本明細書において詳細に考察しない。
【0039】
さらに詳細に本明細書において記載する本発明の教示を使用して、さらに詳細に後述する、例えば図3以下に示される本発明の方法を実行するように、ASICまたは他の従来の集積回路または半導体素子を実装可能なことも当業者は理解するであろう。
【0040】
本発明の方法態様が、ワークステーションまたはパーソナルコンピュータ(PC)のオペレーティングシステムおよび本発明により構成されたコンピュータプログラム製品の下で動作する、ワークステーションおよびPC等の市販のデジタル処理システム内で実行可能なことも当業者は理解するであろう。用語「コンピュータプログラム製品」は、コンピュータ可読媒体に符号化されたコンピュータ可読プログラム命令の任意のセットを包含することができる。コンピュータ可読媒体は、ワークステーション、PC、または他のデジタル処理装置もしくはシステムからローカルであれ、またはリモートであれ、コンピュータハードディスク、コンピュータフロッピー(登録商標)ディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読RAM要素、コンピュータ可読ROM要素、またはデジタル情報の符号化、記憶、または提供を行う任意の他の既知の手段を含むが、これらに制限されない任意の形態のコンピュータ可読要素を包括することができる。各種形態のコンピュータ可読要素および媒体が、コンピューティング分野において周知であり、その選択は実施者に任せられる。
【0041】
B.アプリケーションシステム負荷の管理
次に、米国特許出願第11/773825号(AKR−110−US)に記載される本発明の各種態様によるアプリケーションシステム負荷を管理するシステムおよび技法の例および実施形態について記載する。本願は、米国特許出願第11/773825号の一部継続出願(CIP)である。
【0042】
アプリケーションは、一般に、ストレージエリアネットワーク(SAN)を通して共通ネットワークおよびストレージシステムを共有するサーバでホストされる。アプリケーションの要求とCPU、ネットワーク、およびSANの能力との不均衡は、中央リソースを共有しているアプリケーションの全体性能の低下に繋がる。しかし、個々のアプリケーションは、サブシステム内の任意の単一の要素、特にSANに大きすぎる負荷を課す場合、性能の影響を受け得る。さらに、CPU、ネットワーク、およびストレージアレイは、多くの場合、共有リソースとして利用される。独立したサーバで実行されている複数のアプリケーションは、サブシステム要素がアプリケーション間で共有されている場合、互いの性能に影響を及ぼし得る。
【0043】
多くのアプリケーションは内部パラメータを有し、内部パラメータはユーザまたはシステム管理者によって設定することができ、アプリケーションの性能およびスループットに劇的な影響を及ぼし得る。ユーザは、通常、アプリケーションが実行のために初期化されているとき、計算システム構成で維持可能な帯域幅または存在する並列性を考慮しない。システム負荷の設定には、デフォルト値セットが一般に使用される。これらのデフォルト値は、例えば、スレッド数、個々のアプリケーションの優先度、記憶領域、およびログバッファ構成を含み得る。これらの値は、実行時中に調整することも可能である。これらの値はユーザ、アプリケーションプログラマ、またはシステム管理者によって調整可能であるが、基盤をなす計算システムリソースの特性によりよく合うように、アプリケーション負荷を調整するための指針は提供されない。
【0044】
任意のアプリケーションの性能は、アプリケーションが単一の装置に対して大きすぎるトラフィックを生成する場合、または複数のアプリケーションが、システムが集合負荷にサービス提供できないような多くの要求でシステムを溢れさせる場合に低下し得る。システム内の任意の要素に過負荷がかかる際に、あるアプリケーションが別のアプリケーションに対して生み出す干渉は、性能の大きなばらつきを生じさせ得る。より予測可能なアプリケーション性能を提供しようという試みは、多くの場合、サブシステム内の特定の要素のキャパシティのオーバープロビジョニングに繋がる。
【0045】
これらの課題を解決するか、又はこれらの課題を少なくとも最小にしようとして、システム管理者は、各アプリケーションが固定の優先度を有することを要求することができる。優先度の設定は、システムリソースに対するアプリケーションの要求を「抑制する」ために使用される。不都合なことに、固定の優先度の割り当てはリソースを無駄にする恐れがあるとともに、アプリケーションスタベーションに繋がる恐れもある。抑制に対する代替は、各アプリケーションが受けているサービス品質(「QoS」)を管理することができる。ストレージリソースの割り振りは、様々な基準、例えばストレージアクセスの帯域幅に基づくことができる。米国特許出願公開第2005/0089054号には、QoSに基づいたリソースの割り振りを提供する装置が記載されており、参照によりその全体が本明細書に援用される。
【0046】
上記懸案事項に対する従来の解決策は、通常、それ自体の性能制約及び懸案事項を提示してきた。したがって、1つまたは複数のアプリケーションによって生成されるシステム負荷をより効率的かつ柔軟に管理する改良された方法、装置、ソフトウェア、およびシステムを提供することが望ましい。
【0047】
ディスクまたは帯域幅を個々のサーバまたはアプリケーションに割り振るのではなく、本明細書に記載するシステムおよび技法は、アプリケーションによって提供される内部調整機能(internal tuning facility)を利用し、提供されたストレージサブシステムの特性に基づいて調整されたパラメータセットに到達する。さらに、本発明は、ネットワーク化されたデジタル計算システム等の完全デジタルコンピュータシステムのリソースも考慮する。記載のシステムおよび技法は、Microsoft Windows(登録商標)、Linux、およびUnix(登録商標)等の市販のオペレーティングシステムで開発された既存の性能監視システムおよび技法を利用する。実行時パラメータセットを通してアプリケーションを適応的に調整できるようにする記載のシステムおよび技法は、既存のインタフェースを利用して、データベースおよび電子メールアプリケーションを調整する。本発明はさらに、利用可能なシステムリソースの入念なプロビジョニングを通してQoS保証を提供して、複数のアプリケーションを並行に管理することができる。
【0048】
システム性能を決定する、アプリケーションパラメータの構成に使用されている従来の方法は、いくつかの著しい欠点を有する。すなわち、(1)今日まで使用されてきた調整方法は、試行錯誤反復調整に基づいておらず、(2)ユーザは、調整の選択をガイドするために基盤をなすCPU、ネットワーク、およびストレージサブシステムについて殆ど情報を有さず、(3)共有デジタル計算システムを利用する複数のアプリケーションまたは複数のサーバを並行に管理することが殆ど考慮されておらず、かつ(4)現在、デジタル計算システムの特性を個々のアプリケーションパラメータの変更に変換する一般に認められた方法がない。
【0049】
アプリケーションによっては、ストレージアクセス動作の待ち時間の影響を受けやすいものもあれば、そうでないものもある。データベースおよびメールサーバアプリケーションは、非逐次モードでデータにアクセスすることが多く、時によっては、別のコマンドを発行する前に、1つのアクセスまたは一連のアクセスの完了を待たなければならないことがあるため、ストレージアクセス動作に関連する待ち時間の影響を特に受けやすい。
【0050】
データベースシステム、メールサーバ等の多くの待ち時間の影響を受けやすいアプリケーションは、自己調整を実行する能力を有する。例えば、Oracle10gは、最近のクエリの挙動に基づいて将来のクエリの性能を加速化できるクエリオプティマイザを提供する。Oracle10gは、データベース性能に影響し得る250を超える調整可能パラメータも有する。これらのパラメータは、メモリリソース、例えばキャッシュおよびバッファの利用に影響するとともに、並行アクセス可能量、例えばスレッディングを定義することができる。
【0051】
記載のシステムおよび技法は、基盤をなすCPUサブシステム、ネットワークサブシステム、およびストレージサブシステムについての情報を利用することによるこれらの内部パラメータの適正な設定を目標とする。本明細書において記載するように、CPUサブシステム情報は、使用中のプロセッサの種別および個数ならびに関連するメモリ階層の両方を含み、ネットワークサブシステム情報は、使用されているネットワークスイッチの速度および構成ならびにスイッチに接続されたアダプタの速度を含み、ストレージサブシステム情報は、物理ディスク装置の特性、RAIDグループへのこれらの装置のグループ化、論理アドレスからRAIDグループへのマッピング、およびこのシステムを通る個々のパスのスループットを含む。本発明のさらなる一態様は、システムの実行時特性を捕捉することによってストレージサブシステム情報を得る能力を提供する。この情報は、カスタマイズされたエクササイザを実行するか、またはシステムの通常の実行を観察することによって得ることができる。
【0052】
アプリケーションパラメータの調整は、アプリケーションの初期化時または動的に行うことができる。基盤をなすサブシステム性能の異なる特性を捕捉するために使用される方法は、静的、すなわち予め決まった方法であり、ストレージシステムと共に出荷してもよく、またはプロファイリングを通して動的に取得されてもよい。現在記載している本発明は、この情報を静的に指定する方法およびプロファイリングを通してこの情報を取得する方法の両方を含む。本発明のさらなる態様によれば、この情報は、フィードバックとしてアプリケーションに提供されて、システムパラメータを自動的に、またはシステム/アプリケーション管理者によって調整できるようにする。
【0053】
上記考察では、デジタル計算リソースを最も良く利用するために、性能の影響を受けやすいアプリケーションのパラメータを適宜調整する必要性について述べた。このようなパラメータを調整する装置およびシステムの一実施形態を図3に示す。
【0054】
図3に示すように、アプリケーションサーバ290は、サーバ260に直接接続されるものもあれば、スイッチファブリック250を使用してストレージエリアネットワーク270を介してサーバに接続されるものもある、様々な記憶要素にアクセスする。これは、サーバおよびストレージシステムの可能な編成の1つにすぎない。本発明は特定の編成を必要としない。
【0055】
したがって、本発明の現在記載している態様には、サーバおよびストレージシステムの両方に通信できる要素が導入される。この要素は、本明細書では、ストレージシステムアウェアアプリケーション調整システム(SSAATS)280と呼ばれる。この要素ならびに同様の構造および機能についても記載され、以下では情報リソース管理(IRM)システムと呼ばれる。後述するように、本発明のさらなる態様は、SSAATS要素の機能のうちのいくつかまたはすべてを実行する他の名称の要素を提供する。
【0056】
図3に示すSSAATSの実施形態は3つの下位要素を含む。すなわち、
(1)ストレージネットワークプロファイリングシステム210、
(2)解析モデル220、および
(3)アプリケーションパラメータ決定サブシステム230
である。
【0057】
SSAATS要素280は、スタンドアロンサブシステムとして実施してもよく、またはサーバサブシステム290もしくはネットワークファブリックサブシステム240の部分として統合されてもよい。
【0058】
プロファイリングサブシステム要素100は、ストレージネットワーク内の並列度を決定する能力を有し、上述したように基盤をなすストレージシステム260および270の帯域幅値および待ち時間値を推定することができる。プロファイリングサブシステム要素210は、存在するネットワークファブリック要素250の帯域幅値および待ち時間値を決定することもできる。
【0059】
プロファイリングサブシステム要素210は、ストレージシステム製造業者から常に入手可能であるとは限らない性能関連情報を取得する。ストレージシステムが設置される際、利用可能なストレージは多くの異なる編成で構成され得る。そのため、いくらかの性能関連情報が製造業者によって提供される場合であっても、必要な情報の大半は、ストレージシステムが設置され構成された後でのみ的を得たものである。
【0060】
必要な性能関連情報としては、例えば、
(1)CPU、ネットワーク、およびSAN内で利用可能な並列度、
(2)各種装置の速度、
(3)アプリケーションサーバ、ネットワーク、および個々のストレージ装置の間のパスの帯域幅、および
(4)サーバから見たストレージ装置の構成
が含まれるが、これらに制限されない。
【0061】
必要な性能関連情報を取得するために、一連の入/出力コマンドをストレージサブシステムに発行することができる。特定のコマンドシーケンスの応答時間およびスループットに基づいて、必要な性能関連情報を取得することができる。次に、この情報は解析モデル要素220に供給される。
【0062】
解析モデル要素220は、プロファイル情報をプロファイリングストレージネットワーク210から取得する。プロファイリングデータは解析性能モデル220によって使用され、解析性能モデル220は、アプリケーションサーバ290のCPUサブシステム、ネットワークサブシステム250、ならびにストレージサブシステム260および270が維持できる適正負荷を確立するために使用される。解析モデル要素220の出力は、パラメータ値230を決定する要素に供給され、次に、この要素は、これらの値をアプリケーションサーバ290に通信し、アプリケーションサーバ290は、次に、アプリケーションの内部パラメータを設定する。
【0063】
オプションの一実施形態では、プロファイリングシステムがプロファイリングネットワーク210を通してストレージシステムの性能を引き続きプロファイリングし、動的プロファイルを解析性能モデル220に供給し、新しいアプリケーションパラメータセットをパラメータ決定システム230からアプリケーションサーバ290に通信することができる。このオプションの実施形態の主要特徴としては、(a)プロファイリングシステムが、パラメータ変更を通して得られる恩益を低減する恐れのある著しいオーバーヘッドをデジタル計算システムに導入し得ないこと、かつ(b)システムが連続して性能遷移に適応しないようにパラメータ変更の頻度を抑制するために、適切な制御が提供されていることをシステムが保証しなければならないことが含まれる。
【0064】
オプションの一実施形態では、プロファイリングシステム210が、利用可能なシステム構成の使用をさらに改良するために、ネットワークインタフェースを通してストレージリソース260および270と直接通信することができ、これは、本明細書では「発見(Discovery)」と呼ばれる。
【0065】
本明細書において記載する解析モデル220は、標準キューイング理論技法を利用し、ストレージサブシステムが維持できる負荷量を確立する。特に、解析モデル220は、既知のキューイング理論式、アルゴリズム、および技法を適用して、サポート可能なストレージ負荷を決定することができる。このような式、アルゴリズム、および技法は、例として、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)に記載されており、これらを両方とも、その全体が記載されているかのように参照により本明細書に援用される。次に、パラメータ決定要素は、これらの負荷値をターゲットアプリケーションの具体的なパラメータ値に変換する。本発明のさらなる態様によれば、SSAATS280は、1つのアプリケーションソフトウェアにつき1つずつ、複数のパラメータ決定要素230を含む。
【0066】
アプリケーションパラメータユニット230の決定は、いくつかのアプリケーション固有パラメータを考慮する。1つの特定のパラメータセットは、例えば、Oracle 10gの内部に提供されるコストベース最適化(CBO)パラメータを含む。こういったパラメータは、Oracle内でインデックス付与および走査がどのように実行されるか、ならびにアプリケーションによって想定される並列度を制御することができる。例えば、マルチブロックリードカウントは、アクセスサイズを調整するために設定することができ、または並列テーブル走査を実行するために並列自動調整を設定することができる。
【0067】
多くの状況において、ストレージ管理者が待ち時間の影響の受けやすさによってアプリケーションを区別することが有益であり得る。現在記載しているメカニズムは、個々のアプリケーションのシステムリソース要求の抑制を目標とするが、ネットワークおよびストレージは一般に異なるアプリケーションによって共有されるため、同じシステムを使用して複数のアプリケーションを管理することができる。
【0068】
ネットワークおよびストレージが異なるアプリケーションによって共有される場合、解析モデル220は、競合するアプリケーション作業負荷の影響を捕捉するように調整することができる。2つの典型的な作業負荷は、オンライントランザクション処理作業負荷と、これと競合するストレージバックアップ作業負荷である。バックアップアプリケーションがクリティカルな動作を実行している間、オンライアントランザクション処理アプリケーショの実行が優先されるべきである。
【0069】
複数のアプリケーションが同じIOストレージリソース260おび270のセットを共有している場合、アプリケーションパラメータユニット230の決定は、共有に役立つように複数のパラメータ値セットを調整する必要がある。
【0070】
複数のアプリケーションが同じIOストレージリソース260おび270のセットを共有し、システム管理者であるユーザが各アプリケーションのスループットに優先度を付けたい場合、アプリケーションパラメータユニット230の決定は、一方のアプリケーションのIO要求を他方のアプリケーションのIO要求よりも優先するようにパラメータ値をさらに調整することができる。
【0071】
これより、本発明によるシステムのさらなる一実施形態について記載し、上述した要素および他についてさらに詳細に記載する。
【0072】
図4は、中央演算処理装置(CPU)301、302、303と、ネットワーク要素310と、ストレージアレイネットワーク320とを含む例示的な計算システム300の要素を示す図である。図示の構成は、現在利用可能な多くのサーバクラス計算システムの典型的な構成である。本明細書において記載するように、本発明の態様は、システム300の解析モデルを構築することによってシステム300の性能を向上させるシステムおよび技法を対象とする。解析モデルは、まず、システム構成情報および異なる要素の実行時性能統計を取得することによって構築される。解析モデルには、システム300で実行されている特定のアプリケーションセットについての知識が提供される。解析モデルの出力は、性能数ならびに計算システム300で実行されているアプリケーションに関連するアプリケーションパラメータの調整の仕方についての推奨を含む。次に、解析モデルの出力を使用して、アプリケーションの将来の性能を向上させることができる。
【0073】
図5は、アプリケーション350が計算システム300でどのように実行されるかを構成するために使用されるプログラムコード360とアプリケーションパラメータセット370とを含むアプリケーション350の図を示す。
【0074】
図6は、CPU1 301で実行されるアプリケーション350の図を示し、アプリケーション350にはアプリケーションパラメータセット370が供給され、システムに負荷を生じさせる。
【0075】
図7は、計算システム300および情報リソースマネージャ400を示す図を示す。情報リソースマネージャ400は、解析モデル410を含み、CPU統計440、ネットワーク統計450、およびSAN統計460を含むいくつかの計算システム性能統計430と、計算システム構成データ470と、計算システム370で実行されているアプリケーションセットのアプリケーションパラメータセット370とのデータベース420を保持する。
【0076】
図8は、CPU統計440と、ネットワーク統計450と、SAN統計460と、構成データ470と、計算システム300で実行されているアプリケーションのアプリケーションパラメータ370とのデータベース420を示す。
【0077】
図9は、性能統計を計算システム300からどのように取得できるかの一例を示す図を示す。CPU統計440は、iostat 510およびperfmon 520等の標準ソフトウェアユーティリティを使用してCPU1 301から取得することができる。ネットワーク統計450は、大半のネットワークスイッチ装置に提供されているSNMPインタフェース530を使用して取得することができる。SAN統計460は、多くのSANシステム120に提供されているSMIS540を介して取得することができる。図9に示すインタフェースは、異なる要素から性能統計を取得する1つの特定のインタフェースセットを示すが、情報リソース管理ユニット400が、利用可能な計算システムの追加のインタフェースにアクセスすることを除外しない。
【0078】
図10は、構成データ410が計算システム100の各要素からどのように得られるかを示す。異なる計算システム要素100の各ベンダーは、一般に、この情報を報告するインタフェースを提供する。
【0079】
図11は、情報リソース管理ユニット400の部分である解析モデル410の図を示す。解析モデル410の目的は、性能インジケータを生成すること、および計算システム300で実行されているアプリケーションの性能を向上させるために、更新アプリケーションパラメータセット372(図13および図14)を生成することの両方である。
【0080】
図12は、構成データ470ならびにCPU統計430、ネットワーク統計430、およびSAN統計440がどのように使用されて、解析モデル410が構築されるかを示す。解析モデルは、CPU411、ネットワーク412、およびSAN413のモデルを含み、追加の計算システム要素を含んでもよい。
【0081】
図13は、解析モデル410がどのように更新アプリケーションパラメータセット372を生成するかを示す。この新しいパラメータセットは計算システムに供給されて、システムで実行されているアプリケーション350が計算システムの要素をどのように使用するかを再構成する。目標は、システムの性能を向上させることである。
【0082】
図14は、更新アプリケーションパラメータ372がどのように使用されて、アプリケーション350によって使用されるアプリケーションパラメータセット370が更新されるかを示す。図14には、アプリケーションがCPU1 301で実行されて示されるが、アプリケーションは、システム302、303の任意のCPUまたはシステムネットワーク310もしくはSAN320内の任意の他の要素で実行されてもよい。
【0083】
図15は、情報リソース管理ユニットが、いくつかのCPU統計442、ネットワーク統計452、およびSAN統計462を保持できることを示す。これらの記録は、通常、時間順に並べられ、システムのより長期の挙動を提供する。この記録セットは、計算システムで実行されている複数のアプリケーションについて生成される性能統計を表すこともできる。このより豊富な統計セットに再び解析モデル410を適用し、解析モデル410は次に、計算システムで実行されているアプリケーションデータ372を更新する。この技法を図16にさらに示す。
【0084】
C.アプリケーションシステム負荷の管理−実施のさらなる詳細/例
以下の考察は、本発明の各種態様による実施態様の1つまたは複数の例に関するさらなる詳細を提供する。以下があくまでも例として提示され、本発明を、後述する特定の構造を必ずしも必要とせずに、異なる構成および実施形態で実行し実施することが可能なことが当業者には理解されるであろう。以下の考察は、以下のサブセクションに編成される。
C1.システムアーキテクチャ
C2.外部発見サブシステム
C3.発見エンジン
【0085】
C1.システムアーキテクチャ
現在記載しているアーキテクチャは、包括的に、本明細書ではイベントレベルモニタ(ELM)と呼ばれる。ELMアーキテクチャは、以下のELM製品特徴をサポートする。すなわち、(1)データセンタ可視性、(2)ホットスポット検出、および(3)解析である。
【0086】
これらの機能をサポートするために、ELMアーキテクチャは以下の特徴を提供する。すなわち、構成/トポロジ発見、統計収集、統計計算、アプリケーション固有ストレージトポロジおよび統計、解析、ならびにアラーム・イベント生成である。
【0087】
図17は、ELMアーキテクチャ600の例示的な実施形態の主要構成要素のブロック図を示す。図示の各構成要素についてこれより順に記載する。
【0088】
プラットフォーム610:プラットフォーム610は、IRM400が実行される土台および基本環境を提供する。
【0089】
Linux 620:Linux OS620は低レベル機能をプラットフォームに提供する。
【0090】
構成要素タスクフレームワーク(CTF)630:構成要素タスクフレームワーク630は、共通のプリミティブおよびサービスの有用なセット、メッセージング、イベント、メモリ管理、ロギングおよびトレース、デバッグシェル、タイマ、同期、データ操作を提供し、ハッシュテーブル、リスト等を含む。
【0091】
MySQL640:システムデータのリポジトリであるデータストア(DS)650が、MySQL640の一番上に構築される中央データベースに記憶される。
【0092】
データストア(DS)650:DS650は、発見された要素、その関係またはトポロジ、およびその統計を含む。
【0093】
情報リソースマネージャ(IRM)400:情報リソースマネージャ(IRM)400は、上述したように、データセンタについての情報、トポロジ、および統計すべての収集を担う。
【0094】
外部発見・収集(EDaC)700:外部発見・収集(EDaC)700は、さらに後述するように、データセンタの、サーバおよびストレージアレイ等の要素への接続をシステムに提供する構成要素である。特定の各種要素、例えばCLARiiONストレージアレイに対する通信の仕方を知っており、その特定の要素のトポロジを発見し、またはその特定の要素から統計を収集する。したがって、特定のアレイまたはサーバに対して別個のモジュールまたはコレクタを有する。各種の要素に対して、XMLで定義され、あらゆるコレクタが準拠する標準APIがある。
【0095】
発見エンジン660:発見エンジン660は、データセンタ要素、特にサーバおよびストレージアレイのトポロジの発見を行う。ユーザは、発見したいサーバまたはストレージアレイを入力する。発見エンジン660は、データストア650にアクセスして、ユーザが入力したサーバ、ネットワーク、およびストレージアレイのリストを得る。それぞれ1つごとに、発見エンジン660は、EDaC700にトポロジの取得を要求する。EDaC700は要素に問い合わせ、発見されたすべての情報、例えば、ストレージアレイのディスクを返す。次に、発見エンジン660は、この情報をデータストア650内に配置し、これらの関係を接続する。サーバの初回発見時、発見エンジン660は、統計マネージャ670にもそのサーバからの統計の収集を開始するように通知する。さらに、発見エンジン660は、デジタル計算システム300の要素を定期的に起こし、「再発見」もする。これにより、任意のトポロジ変更を発見することができる。
【0096】
統計マネージャ670:統計マネージャ670は、コンピュータシステム要素、特にサーバからの統計の収集を行う。現在の製品では、統計はサーバからのみ収集されるが、これらの統計を使用して、他のデータセンタ要素についての統計も同様に導出される。統計マネージャ670には、発見エンジン660により、新しいサーバが発見されたときに通知される。統計マネージャ670は、次に、そのサーバを収集リストに追加する。統計マネージャ670は、定期的に起きて、収集リストに目を通す。収集リスト内の各サーバにつき、統計マネージャ670は、統計を集めるようにEDaC700に要求する。EDaC700は、サーバの統計を収集すると、これらの統計を統計マネージャ670に送信する。統計マネージャ670は、これらの統計を処理し、データストア650に挿入する。統計によっては、データストア650に変更なしで追加されるものもあれば、平均化等の何等かの単純な処理の後に追加されるものもあれば、完全に新しい統計を導出するより高度なアルゴリズムで処理されるものもある。
【0097】
統計モニタ680:新しい統計が常に収集され計算される。これは、ユーザが時間を遡ってシステムで何か発生していたかを調べることができることを意味する。すべての統計はデータストア(DS)650に記憶される。記憶される統計としては、計算された統計ならびに収集された統計が含まれる。これにより、常に統計を表示に即座に利用できるようになる。
【0098】
統計モニタ680は、統計マネージャ670によって統計がデータストア650に入力されると、その配置された統計を監視し管理する。統計モニタ680内には、定期的に起きて、データストア650内の統計に対して異なるタスクを実行するいくつかのデーモンがある。こういったタスクとしては、サマリ統計の作成、例えば、収集された統計の時間統計への集計、ある統計の移動平均の計算、ある統計の閾値との比較およびイベントの生成、そして最終的に、閾値を超えた場合にはアラームの生成が含まれる。
【0099】
計算され解析される異なる種類の統計がある。これらのうちのいくつかは以下を含む。
【0100】
計算された統計:計算された統計は、収集された統計または他の計算された統計に対して計算を実行することによって作成される。計算は、加算のように単純であってもよく、または非線形曲線当てはめの実行のように複雑であってもよい。計算された統計は、収集された統計と同じ方法および同じ形式でDS650に記憶される。
【0101】
計算されたストレージ統計:すべてのストレージ統計がサーバLUNから収集される統計から導出されることに留意することが重要である。次に、発見されたサーバおよびストレージアレイのトポロジを使用して、他のストレージオブジェクト:サーバボリューム、ストレージアレイLUN、ASG、およびサブグループの統計が導出される。
【0102】
収集および計算の頻度:統計収集は、システムが統計的に安定しているときの使用率を計算することができるように行われる。統計的な安定は、統計が変化しないことを意味するのではなく、むしろ、システムが同じ種類の作業または作業セットを期間にわたって行っていることを意味する。使用率の計算は一連のサンプルを必要とする。したがって、統計的に安定した期間での使用率を計算するには、一連のサンプルを短期間に収集しなければならない。しかし、著しい数のサーバの統計を高頻度で連続して収集することは、システムに大きすぎる負担をかける。上記要件/制約は、図18に示すように、バーストで統計を収集することによって満たされる。
【0103】
パラメータは以下の意味を有する。
メジャー期間(Major Period) サンプルバースト間の時間。範囲は5〜60分である。
マイナー期間(Minor Period) バーストの各サンプル間の時間。範囲は1〜10秒である。
バースト マイナー期間レートで各メジャー期間でとられるサンプル数。範囲は1〜50サンプルである。
これらのパラメータはサーバ毎に可変である。したがって、1つのサーバについての統計をメジャー期間30分、マイナー期間10秒、およびバーストサイズ10で収集し、別のサーバについての統計を、メジャー期間15分、マイナー期間1秒、およびバーストサイズ25で収集することが可能である。使用率の計算に使用されない統計は、メジャー期間毎に1度の頻度で収集される。バーストで収集される統計は、使用率の計算にすぐに使用される。使用率計算の結果はDSに保存され、未処理のデータは破棄される。したがって、統計は、サーバ毎のメジャー期間毎に1度、DSに挿入される。
【0104】
サーバ統計計算頻度:サーバについてのすべての統計:CPU、メモリ、LUN、およびボリュームが同時に収集され計算される。これは、サーバのメジャーサンプルレートで行われる。
【0105】
アプリケーションストレージグループ/ストレージグループ統計計算頻度:特定の問題は、アプリケーションストレージグループ(ASG)およびストレージグループ(SG)の計算期間である。ASGおよびSGの統計は、異なるサーバから送信されたものであり得るサーバLUN統計から計算される。大概、これらのサーバLUN統計は異なる時間に、かつ潜在的に異なるレートで収集される。これは、ASG/SG統計をメジャーサンプル期間で計算できないことを意味する。各サーバLUNからの複数のサンプルを使用することができるように、ASG/SG統計をそれよりも低いあるレートで計算しなければならない。
【0106】
現在状態更新頻度:多くのオブジェクトは現在状態、履歴状態、および傾向状態を保持する。現在状態は比較的頻繁に計算されるが、メジャーサンプルレートよりも低い。
【0107】
履歴状態および傾向更新頻度:履歴状態および傾向はより長期のインジケータであり、より低い頻度で計算される。
【0108】
サマリ計算頻度:サマリは、データベース内の空間を節約するメカニズムである。サマリは、古いデータほど価値が低く、新しいデータと同じ粒度で見る必要がないという理論の下で動作する。
【0109】
発見頻度:発見は、環境についての比較的静的なデータを収集する。そのため、あまり頻繁に実行する必要はない。しかし、これは、任意の変更を素早く明らかしたいという要望とバランスをとる必要がある。
【0110】
収集および計算の頻度のサマリ:図19に示す表は、収集および計算の頻度のサマリを提供する。すべての収集パラメータおよび計算パラメータが、変更可能なようにパラメータ化されるべきであることに留意する。
【0111】
統計サマリ:図20〜図27に示す表は、本明細書において記載するELMシステムの統計のサマリを提供する。
図20−収集されたサーバ統計 サーバ統計はサーバから収集される。これらは、メジャーサンプル期間レートで頻繁に収集される動的統計である。
図21−収集されたサーバ属性 サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
図22−記憶されたサーバ属性 サーバ属性はサーバから収集される。これらは、発見レートであまり頻繁には収集されない比較的静的なパラメータである。
図23−記憶されたサーバ現在統計 サーバ統計は収集されたサーバ統計から生成され、データベースに記憶される。これらのうちの1つは、サーバ毎のメジャーサンプル期間毎に生成されるべきである。
図24−サーバサマリ統計 サマリサーバ統計は、より短い期間からより長い期間までのサーバ統計の集計である。例えば、メジャー期間統計を日毎または週毎の統計にまとめることができる。
図25−記憶されたストレージ統計 様々なストレージオブジェクトの統計の記憶に使用される共通のストレージ統計がある。ストレージ統計が生成される頻度は、統計が生成されているオブジェクトに依存する。サーバボリューム−メジャーサンプル期間毎に1回、サーバLUN−メジャーサンプル期間毎に1回、アプリケーションストレージグループ−アプリケーションストレージグループ/ストレージグループ計算期間毎に1回、サブグループ−アプリケーションストレージグループ/ストレージグループ計算期間毎に1回。
図26−記憶されたストレージ統計 あらゆる統計があらゆるオブジェクトに対して有効であるわけではない。図26の表は、どの統計がどのオブジェクトに対して有効であるかを示す。
図27−記憶されたサマリストレージ統計 サマリストレージ統計は、より短い期間からより長い期間までのストレージ統計のまとめである。例えば、メジャー期間統計を日毎または週毎の統計にまとめることができる。
【0112】
解析:解析は、データストアに記憶されているデータ、主にトポロジおよび統計を使用して、システムに何が起こっているのかについてユーザに通知するか、またはシステムについての推奨を行う。解析は、データストア内のデータに対してルールエンジンによって実行されるルールセットとして、またはアプリケーションパラメータの調整に使用される解析モデルとして実施することができる。実行可能ないくつかの異なる種類の解析がある。これらは以下を含む。
アプリケーションポイントインタイム解析 ある時点でアプリケーションの性能はどうなっているか、およびリソースの使用を解析する。
アプリケーションデルタ時間解析 2つの時点間でアプリケーションの性能の何が変更されたか、およびリソースの使用を解析する。
アプリケーションストレージグループ解析 ある時点でのアプリケーションとストレージとの間のパスを解析して、そのパスがホットスポットであるか否か、およびそのパスに対してアプリケーション競合があるか否かを判断する。
ストレージプロビジョニング推奨 アプリケーションに対してより多くの物理ストレージをどこでプロビジョニングすべきかについて推奨を行う。
アプリケーション推奨 アプリケーションパラメータに対する変更を行う
【0113】
上記に加えて、既知のAPI実施に従って構築された各種API(アプリケーションプログラミングインタフェース)を様々なポイントおよびレイヤに提供して、システム設計者、管理者、または他が望むようにインタフェースを供給してよいことを当業者は理解するであろう。
【0114】
C2.外部発見・収集サービス
これより、機器外部のリソースについてのすべての構成および統計へのアクセスを提供する上述した外部発見・収集(EDaC)サービスについてさらに詳細に記載する。EDaCサービスは、任意の外部リソースに要求をディスパッチすることを担う。図28は、EDaCサービス700の例示的な一実施形態に含まれる様々なコネクタを示す図である。各コネクタ730は、特定のリソースへのアクセスを提供する。
【0115】
担当リストは以下を含む。すなわち、(1)統計要求イベントをリッスンし、適切なコネクタに転送し、(2)発見要求イベントをリッスンし、適切なコネクタに転送し、かつ(3)発見要求を何等かのスケジュールですべてのコネクタに対して実行し、発見イベントを生成する。本発明のさらなる態様によれば、項目(3)の機能は情報リソースマネージャ(IRM)に移してもよい。
【0116】
発見処理には2つの部分がある。すなわち、(1)装置を「見つけ」、(2)その装置の最も静的な構成を把握する。発見アルゴリズムは、何千もの装置を処理するのに十分な堅牢性を有さなければならない。完全な発見処理は数時間かかり得る。構成に関しては、以下のデータが、オブジェクトモデルにおいて発見および収集を達成するために必要である。
サーバ:IPアドレス、ログイン/パスワード、SSH/telnet、Solarisの場合、ポーリング間隔、および永続的接続
ストレージアレイ:管理サーバ、ログイン/パスワード、CLIへのパス、ポーリング間隔、永続的接続
アプリケーション:IPアドレス、ログイン/パスワード、サービス名、ポート、ポーリング間隔、永続的接続
【0117】
様々な周知のデータアクセスツールを本発明のこの態様と併せて利用することができ、構成可能アクセス方法を含む複数のアクセス方法を利用することができる。これらとしては、サーバへのtelnetアクセス、ODBC(DataDirect Technologies (Bedford, MA)市販のODBCライブラリを利用できる)を介するデータベースデータアクセス、SSH技法、および他の従来の技法が含まれ得る。
【0118】
シーケンスイベントブローカ710が、EDaCコア720へのインタフェースを提供し、記載したコネクタ730を含む。
【0119】
Oracleデータベースコネクタ730aは、データベース構成およびデータベース統計の収集を担う。Oracleデータベースコネクタ730aはODBCライブラリ740を使用する。
【0120】
Windows(登録商標)サーバコネクタ730bおよびSolarisサーバコネクタ730cは、メモリの利用ならびにボリューム/LUNのマッピングおよび統計等のOSレベルデータの収集を担う。ボリューム/LUNマッピングを計算するために、設置されているボリュームマネージャならびにマルチパス製品の両方を把握する必要があり得る。それぞれの詳細、すなわちストライピング特性またはパス情報を把握する必要がない場合であっても、どのLUNがボリュームに関連するかを計算するためだけに、各製品から情報が必要になる可能性が高い。ELMをターゲットとする特定の製品を選ぶことができる。Solarisサーバコネクタ730cはSSHを使用する。SolarisのボリュームマネージャはVeritasおよびネイティブのものである。Windows(登録商標)サーバコネクタ730bはWMIライブラリ750を使用する。Windows(登録商標)のボリュームマネージャはネイティブのものであり、これはVeritasである。
【0121】
ストレージコネクタ730d、730e、および730fは、LUNの利用、性能、およびRAIDセット/ディスクへのマッピングの収集およびボックス760で包括的に表される他のデータの収集を担う。アレイ性能統計はELMには必要ない。
【0122】
CLARiiONストレージコネクタ730dに関しては、NaviCLIがCLARiiONへのリッチCLIインタフェースである。これは、データをxmlで返すことができる。性能統計はCLARiiONに対してイネーブルし、CLIを通して検索することができる。CLIをASCにインストールすることも可能である。CLIに顧客サーバのうちの1つからSSH780を通してアクセスする可能性が高い。いくらかのデータは、telnetによってCLARiiONに直接提供されもする。
【0123】
Dothillストレージコネクタ730eに関しては、DothillはホストベースCLIも有する。データをxmlで返すことができる。Dothillは性能統計へアクセスを提供しない。アクセス問題は、CLARiiON CLIの場合と同じである。いくらかのデータは、telnetによってDothillに直接提供されもする。
【0124】
適したHPストレージコネクタ730fも提供される。
【0125】
ボックス730gで表されるように、現在記載しているシステムは、以下の要素、すなわち、CIM/WBEM/SMI−Sアクセス、SNMPアクセス、ファブリックコネクタ、外部SRMコネクタ、リモートプロクシ/エージェント、構成を変更するイベントを含めるように変更し拡張することができる。さらに、1つのWindows(登録商標)エージェントが、「Windows(登録商標)ワールド」へのゲートウェイとして機能することができ、WMIおよびODBCとよりシームレスに統合する。こういった将来のアクセスツールはボックス770によって表される。
【0126】
C3.発見エンジン
上で触れた発見エンジンについて、さらに詳細にこれより記載する。発見エンジン(DE)は、情報リソースマネージャ(IRM)に常駐する。発見エンジンは、ユーザによってデータストア(DS)に入れられたサーバおよびストレージアレイの定期的なトポロジ発見の開始を担う。これは、上述した外部発見・収集(EDaC)モジュールと併せてこれを行う。
【0127】
DEは、メッセージキューからのメッセージを処理する主ループの周囲に構築される。これらのメッセージとしては以下が含まれる。
発見タイマイベント このイベントは完全な発見処理を開始する。
発見完了イベント これらは、DEによってEDaCに元々送信され、今では、EDaCがサーバまたはストレージアレイのすべての発見イベントを生成した後、EDaCによって返されているストレージアレイトポロジ発見イベントおよびサーバトポロジ発見イベントである。これらのイベントは、トポロジ発見がサーバまたはストレージアレイに対して完了したことを示す。
オブジェクト発見イベント EDaCは、サーバまたはストレージアレイのトポロジを決定する処理において発見した各オブジェクトの発見イベントを生成する。例えば、EDaCは、サーバのトポロジの決定を要求された場合、サーバ、サーバFCポート、サーバボリューム、およびサーバLUNの各発見イベントを生成する。
【0128】
主ループは単純に、メッセージキュー上で処理する次のメッセージを待つことができる。
【0129】
発見タイマイベント:DEは構成要素タスクフレームワーク(CTF)を使用して、発見間隔タイマを設定する。タイマが切れた場合、CTFはメッセージを生成し、DEのメッセージキューに送出する。これは、DEに、発見処理を開始する時間であることを通知する。
【0130】
発見タイマイベントは、DEにN個の初期発見サーバトポロジイベントまたは発見ストレージアレイトポロジイベントを並列に開始させる。Nは任意の数である。トポロジを発見するサーバまたはストレージアレイがなくなるまで、常にN個の未処理の発見トポロジイベントがあることになる。
【0131】
サーバまたはストレージアレイ発見完了イベント:サーバまたはサーバアレイ発見完了イベントは、実際には、EDaCがそのオブジェクトに対する発見を完了した後、DEに返されたサーバトポロジ発見イベントまたはストレージアレイトポロジ発見イベントである。
【0132】
発見完了イベント処理:この処理ステップは以下の通りである。
1.DEがDSに、オブジェクトトポロジ発見中に発見されなかった既存の任意の記録、例えばサーバLUNか否かを見つけるように問い合わせる。DSは、発見タイムスタンプが現在の記録のものと同じではないすべての記録にクエリを作成することによってこれを行う。
2.タイムスタンプが一致しない各記録について、失われたイベント、例えば、サーバボリュームロストイベントが生成され送信される。
3.発見すべきサーバまたはストレージアレイがまだある場合、次のものがDSから検索され、それに対するトポロジ発見イベントがEDaCに送信される。
4.発見すべきサーバまたはストレージアレイがもうない場合、発見は完了し、発見間隔タイマが再開される。
【0133】
オブジェクト発見イベント:トポロジ発見イベントを受信すると、EDaCは、トポロジについてサーバまたはストレージアレイに問い合わせる。トポロジは記録セットからなる。EDaCは、現在のイベントに対する発見イベントセットを生成する。発見イベントが特定の順序で行われることが重要である。
【0134】
サーバトポロジ発見イベント:サーバ発見イベント、サーバFCポート発見イベント、サーバボリューム発見イベント、サーバLUN発見イベント。
【0135】
ストレージアレイトポロジ発見イベント:ストレージアレイ発見イベント、ストレージアレイFCポート発見イベント、ストレージアレイディスク発見イベント、ストレージアレイLUN発見イベント。
【0136】
各発見イベントには、その発見のタイムスタンプが含まれる。タイムスタンプはEDaCによって挿入される。特定のストレージアレイまたはサーバについての各発見イベントは同じタイムスタンプ値を有する。
【0137】
発見処理:この処理ステップは以下の通りである。
1.DEがデータストアに問い合わせて、記録がすでに存在するか否かを判断する。
2.記録がすでに存在する場合、記録関係が検証され、発見タイムスタンプが更新される。
3.記録がDS内に存在しない場合、他の記録に対する関係と共に記録が作成される。したがって、このステップでの処理は特に、発見中の記録に対するものである。
4.「記録発見」イベントが作成され、ログに記憶される。
【0138】
D.アプリケーションシステム負荷の管理−一般的な方法
図29Aは、デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する一般的な方法800のフローチャートである。この方法は、有利なことに、少なくとも1つの中央演算処理装置(CPU)と、CPUがデジタル計算システムの他の要素と通信可能にするように動作可能なネットワークと、少なくとも1つのストレージ装置を含み、少なくとも1つのCPUと通信するように動作可能なストレージエリアネットワーク(SAN)とを含むネットワーク化されたデジタル計算システムで実施することができる。計算システムは、少なくとも1つのアプリケーションプログラムを実行するように動作可能であり、少なくとも1つのアプリケーションプログラムは、アプリケーションプログラムの実行を制御するように調整可能なアプリケーションパラメータを有する。
【0139】
本発明による例示的な方法をボックス801〜803に示す。
【0140】
ボックス801:デジタル計算システムの要素と通信するように動作可能な情報リソースマネージャ(IRM)を利用して、計算システムの動作および計算システム内で利用可能なリソースに関する性能情報を取得し、少なくとも1つのCPU、ネットワーク、およびSANと通信して、そこから性能情報および構成情報を取得する。本書の他のどこかに記したように、性能情報および構成情報は、デジタル計算システム内の任意のCPU、ネットワーク、またはストレージ装置からのものであってよい。情報は、I/Oまたは他のコマンドをデジタル計算システムの少なくとも1つの要素に発行することによって取得することができる。IRMは、デジタル計算システム内の離散モジュールであってもよく、または計算システムサブシステムもしくはSAN内のストレージネットワークファブリックサブシステム内のモジュールとして実施されてもよい。
【0141】
ボックス802:性能情報および構成情報を利用して、解析モデル出力を生成し、解析モデル出力は性能統計および更新アプリケーションパラメータのうちの任意のものを含む。本書の他のどこかに記したように、本発明は、キューイング理論を利用して、ストレージシステムまたはサブシステムがサポートできる負荷の程度を決定することができる。
【0142】
ボックス803:解析モデル出力を利用して、更新アプリケーションパラメータ値を決定し、更新アプリケーションパラメータ値を、デジタル計算システムで実行されている少なくとも1つのアプリケーションに送信し、アプリケーションは更新アプリケーションパラメータ値を使用してアプリケーションパラメータを設定し、それにより、更新実行時パラメータを使用して、デジタル計算システムで実行されている複数のアプリケーションの実行を最適化する。本書の他のどこかに記したように、この方法は負荷値、例えば、キューイング理論を使用して決定された負荷値を利用して、所与のアプリケーションのパラメータ値を決定することができる。この方法は、更新アプリケーションパラメータ値を決定する際に、いくつかのアプリケーション固有パラメータ、例えば、コストベース最適化(CBO)パラメータを考慮することを含むこともできる。
【0143】
図29Bは、図29Aの方法800を繰り返して、または他の様式でどのように続けて実行することができるかを示し、動作中にストレージシステムの性能を引き続きプロファイリングし、それにより、一連の時間ベースのサンプルを収集すること(804)、時間ベースのサンプルに応答して更新プロファイルを生成すること(805)、および更新プロファイルに応答して、所与のアプリケーションが実行される際に、更新アプリケーションパラメータセットを送信すること(806)によって含む。本書の他の部分に記したように、この方法は、システムが連続して性能状態の性能遷移に適応しないように、アプリケーションパラメータ更新の頻度を抑制制御する、選択された程度を提供することを含むことができる。この方法は、発見インタフェースを介してデジタル計算システムの個々の要素と直接通信することを含むこともできる(図29Bと図29Aとの例示的な対応性が各図の点「A」と「B」を介して示される)。
【0144】
図30は、本書の他の部分の考察により、本発明による方法810を、複数のアプリケーションがネットワーク、ストレージ、または他のリソースを共有している環境内でどのようにさらに実施できるかを示し、競合するアプリケーション作業負荷の影響を決定し、それを考慮に入れるように解析モデルを調整すること(811)、改良されたリソース共有に役立つように複数のパラメータ値セットを調整すること(812)、および必要に応じて、あるアプリケーション、そのI/O要求、または他の側面を別のアプリケーション、そのI/O要求、または他の側面よりも優先するように、パラメータ値を調整することによって含む。
【0145】
E.アプリケーションシステムストレージリソースのマルチレベルマッピング
米国特許出願第11/773825号(AKR−110−US)において考察されたものと同様の1つまたは複数のデジタルストレージ環境について上述したが、次に、本発明の態様、実施形態、および例についてのさらに詳細な説明に進む。本願は、米国特許出願第11/773825号の一部継続出願(CIP)である。米国特許出願第11/773825号(AKR−110−US)において記載されているデジタル処理、計算、またはストレージ環境が、本発明を実施することができる処理環境の例のうちのいくつかにすぎないことを当業者は理解するとともに、本発明を上述した、かつ米国特許出願第11/773825号(AKR−110−US)において記載される環境以外の環境で実施してもよいことも理解するであろう。
【0146】
特に、本発明の態様は、アプリケーションにシステムリソースを効率的にマッピングするように動作可能な方法、システム、装置、およびコンピュータプログラムコード(ソフトウェア)製品、ならびに係る方法およびシステムを利用する改良されたストレージプラットフォームおよびアーキテクチャを提供する。このマッピングの基礎は、アプリケーションリソースグループ(ARG)の定義であり、ARGは、アプリケーションに関連するサーバ、バスアダプタ、ボリューム、論理ユニット番号(LUN)、ネットワークスイッチ、ディスクコントローラ、およびディスクについての完全な情報を提供する。
【0147】
本発明の現在記載している態様について、ストレージエリアネットワーク(SAN)インフラストラクチャアーキテクチャに関して記載する。しかし、記載されるシステムおよび技法の態様を他の計算環境で実施してもよいことが理解されるであろう。
【0148】
ストレージエリアネットワーク(SAN)は、ディスクドライブアレイ等のリモートコンピュータストレージ装置を、オペレーティングシステムにとって装置がローカルに取り付けられているように見えるようにホストサーバに取り付けられるようにするアーキテクチャである。
【0149】
図31は、いくつかの異なるレベルでのSANインフラストラクチャの例示的なマッピングを示す表1000である。表の1列目1001には以下の定義レベルが列挙される。
1001a−サーバレベル
1001b−バスアダプタレベル
1001c−ネットワークスイッチレベル
1001d−ディスクコントローラレベル
1001e−ディスクレベル
【0150】
表の2列目1002には、各定義レベルに対応する以下の定義グループが列挙される。
1002a−サーバレベルに対応するアプリケーションサーバグループ(ASerG)
1002b−バスアダプタレベルに対応するアプリケーションアダプタグループ(AAG)
1002c−ネットワークスイッチレベルに対応するアプリケーションスイッチグループ(ASwG)
1002d−ディスクコントローラレベルに対応するアプリケーションコントローラグループ(ACG)
1002e−ディスクレベルに対応するアプリケーションストレージグループ(ASG)
【0151】
表の列1003に示すように、各レベル1001a−eおよびグループ1002a−eは、例示的なインフラストラクチャアーキテクチャの各要素の1つまたは複数のサブセットに対応する。
1003a−アプリケーション(APP)
1003b−サーバ(SERV)
1003c−バスアダプタ(BA)
1003d−ボリューム(VOL)
1003e−論理ユニット番号(LUN)
1003f−スイッチ(SW)
1003g−コントローラ(CTLR)
1003h−ディスクアレイ(DISK)
【0152】
一般的に言えば、各グループ1002a−eはその名称が付けられた要素と、アプリケーション1003aまでのすべての「上流」要素とを含む。したがって、例えば、アプリケーションスイッチグループ(ASwG)は、スイッチ(SW)と、スイッチの上流にある要素、すなわち、論理ユニット番号(LUN)、ボリューム(VOL)、バスアダプタ(BA)、サーバ(SERV)、およびアプリケーション(APP)とを含む。後述する各グループの特定のインフラストラクチャ要素の選択を図32〜図37に示す。
【0153】
さらに、本発明の現在記載している態様は、サブグループ1002fの定義をさらに提供する。表1000では、例示的なサブグループ1002が、アプリケーションストレージグループ(ASG)内の個々のLUNについてのより詳細な情報を提供するものとして定義され、LUNと、SANスイッチ1003f、コントローラ1003g、およびディスクアレイ1003hを含む「下流」要素とを含む。後述するサブグループの特定のインフラストラクチャ要素の選択を図38、図39A、および図39Bに示す。
【0154】
このアプリケーション−ストレージシステムのマッピングのより完全な知識に基づいて、アプリケーションに関連するシステムリソースをより制約の小さいシステムリソースにリマッピングまたは再構成して、システム内の性能ボトルネックを除去することができる。これらの特徴および要素のそれぞれについてさらに詳細に後述する。
【0155】
本発明は、ストレージシステム内に記憶されているデータにアクセスする際に、アプリケーションの性能に影響を及ぼし得る他のリソース(すなわち、サーバ、ネットワークスイッチ、ディスクコントローラ、ディスク)を識別するために、データパスを発見する能力を利用する。本発明は、複数のアプリケーションがストレージシステム内の要素を共有しているときをユーザが明確に識別できるようにする。
【0156】
本発明は、エージェントレスの方法の組み合わせを利用して、ARGトポロジを発見する。これらの方法は、既存のAPIおよびオペレーティングシステムユーティリティを利用して、サーバ、スイッチ、アダプタ、およびディスクインタフェースにおいてトポロジマッピング情報を捕捉することを含む。
【0157】
これとは対照的に、初期の一技法は、トポロジを発見できるようにアプリケーションに接続することに依存するエージェントベースの手法を使用する。この技法は、著しいオーバーヘッドをシステムにもたらし、潜在的に、実行中のアプリケーションの挙動に影響を及ぼし得る。
【0158】
本発明はこれらの問題を実質的に回避する。本発明は、アプリケーションとストレージシステムとのストレージシステムマッピングおよびデータパスの両方の完全な知識を利用することによってアプリケーションの信頼性またはセキュリティを向上させるように容易に拡張することも可能である。
【0159】
ストレージシステム性能の管理に使用される従来の方法は、アプリケーションまたはストレージシステムのいずれかのみに焦点を合わせ、これらの2つの関係を考慮しない。システムの制限されたビューを利用することに伴ういくつかの問題としては、
(1)問題が往々にして誤診断されることがあるとともに、アプリケーションボトルネック、例えばサーバメモリ使用率、またはストレージシステムボトルネック、例えば、ディスクコントローラ接続のいずれかまたは両方に起因し得ること、
(2)共有されるアプリケーションサーバ、ネットワークスイッチ、またはストレージサブシステムを利用する複数のアプリケーションまたは複数のサーバを同時に管理することが殆ど考慮されていないこと、および
(3)ストレージ、ネットワーク、およびサーバの仮想化技法が、アプリケーションとシステムリソースとの間にさらなるレベルの抽象を追加し得、性能の帰属をさらに難しくすること
が挙げられる。
【0160】
本発明は、すべてのシステムリソースおよびパスを個々のアプリケーションに結び付けるモデルを定義する。本発明はストレージ装置(すなわち、個々のディスクスピンドル)の観点から元の個々のアプリケーションへのマッピングを定義する。本発明の主要要素は、ストレージシステム内の任意の競合ポイントに関連するアプリケーションセットを容易に識別可能なことである。
【0161】
本発明は、アプリケーションとサポートしているストレージシステムとの動的に変更するマッピングを捕捉することにより、ストレージサブシステム情報を取得する能力を含む。この情報は、ストレージシステムおよびアプリケーションを定期的にプロービングして、マッピングへのあらゆる変更を追跡することによって取得することができる。
【0162】
F.マルチレベルマッピングの実施形態
以下の考察には、本発明の開示の理解を提供し、本発明の開示を可能にする多くの特定の詳細を記す。本発明をこれらの特定の詳細なしで実施してもよいことを当業者は理解するであろう。場合によっては、周知の方法、手続き、構成要素、プロトコル、アルゴリズム、および回路については、本発明を曖昧にしないように詳細に記載されていない。
【0163】
上記考察には、ストレージリソースをこれらのリソースを利用するアプリケーションにマッピングする必要性について記載した。以下の考察には、添付の図面と併せて、システムリソースをアプリケーションに効率的にマッピングするように動作可能な本発明の実施態様について記載する。
【0164】
これより図32を参照すると、図32には、以下の要素を含むコンピュータシステムインフラストラクチャ1010の一例が示される。すなわち、
2つのアプリケーションサーバ1011および1012、
3つのアプリケーション1100、1110、および1120、
2つのバスアダプタ1200および1210、
4つのストレージボリューム1300、1310、1320、および1330、
5つのサーバLUN1301、1311、1321、1322、および1331、
1つのネットワークスイッチ1400、
3つのディスクコントローラ1500、1510、および1520、ならびに
3つのディスクグループ1501、1511、および1521
である。
【0165】
図示のシステムの基盤をなすハードウェア要素(例えば、基盤をなすサーバ、バスアダプタ、ストレージボリューム、サーバLUN、ネットワークスイッチ、ディスクコントローラ、およびディスクグループ)ならびにアプリケーションは、一般に従来の性質のものであってよく、市販の製品を使用して当業者によって実施することができる。
【0166】
図32が例示的なものであり、本記載のために提供されることに留意されたい。例えば、上述したように、実際のSANには、何百もの、さらには何千ものLUNがあり得る。特定のネットワークを別様に構成してもよく、または特定のネットワークが異なる要素を含んでもよい。現在記載しているシステムおよび技法の態様も同様にそれらの文脈の中で適用してもよいことが理解されるであろう。
【0167】
例えば、図32に示すようなデジタル計算環境またはプラットフォームで実施される本発明によれば、アプリケーションリソースグループ(ARG)が定義される。ARGは、共通のシステムリソースセットを包含し、アプリケーションセットからシステム内で使用されるシステム要素(例えば、サーバ、ホストアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスク)への完全または略完全なマッピングとして定義される。
【0168】
さらに、本発明によれば、ARGは、アプリケーションサーバグループ(ASerG)、アプリケーションアダプタグループ(AAG)、アプリケーションスイッチグループ(ASwG)、アプリケーションコントローラグループ(ACG)、およびアプリケーションストレージグループ(ASG)の定義を含む。ARGは、アプリケーションとストレージシステムとの間のパス内の任意のポイントでの完全なマッピングを提供する。
【0169】
ARGは、ストレージシステム内の任意の要素に対して負荷を発生させているアプリケーションセットの階層図を提供する。複数のアプリケーションが単一のストレージ要素に関して競合しており、かつ性能ボトルネックが生じている場合、ARGは、ボトルネックの原因であり得るアプリケーションセットを識別することができる。
【0170】
図33は、本発明によるサーバ1011のアプリケーションサーバグループ(ASerG)を示す。ASerGは、アプリケーション1100および1110をサーバ1011に負荷をかけているアプリケーションとして識別する。
【0171】
図34は、本発明によるバスアダプタ1210のアプリケーションアダプタグループ(AAG)を示す。AAGは、アプリケーション1120をバスアダプタ1210に負荷をかけているアプリケーションとして識別する。AAGは、バスアダプタ1210がサーバ1012に接続されていることも識別する。
【0172】
図35は、本発明によるネットワークスイッチ400のアプリケーションスイッチグループ(ASwG)を示す。ASwGは、アプリケーション1100、1110、および1120をネットワークスイッチ400に負荷をかけているアプリケーションとして識別する。ASwGは、スイッチ1400がLUN1301、1311、1321、1322、1331に接続され、LUN1301、1311、1321、1322、1331は、ボリューム1300、1310、1320、および1330のマッピングに使用され、ボリューム1300、1310、1320、および1330はバスアダプタ1200および1210に接続され、バスアダプタ1200および1210はサーバ1011および1012に接続されていることも識別する。
【0173】
図36は、本発明によるディスクコントローラ1510のアプリケーションコントローラグループ(ACG)を示す。ACGは、アプリケーション1120をディスクコントローラ1510に負荷をかけているアプリケーションとして識別する。ACGは、コントローラ1510がネットワークスイッチ400に接続され、ネットワークスイッチ400がLUN1321および1322に接続され、LUN1321および1322がボリューム1320のマッピングに使用され、ボリューム1320がバスアダプタ1210に接続され、バスアダプタ1210がサーバ1012に接続されていることも識別する。
【0174】
図37は、本発明によるディスクアレイ1501のアプリケーションストレージグループ(ASG)を示す。ASGは、アプリケーション1100および1110をディスクアレイ1501に負荷をかけているアプリケーションとして識別する。ASGは、アレイ1501がディスクコントローラ1500によって接続され、ディスクコントローラ1500がネットワークスイッチ400に接続され、ネットワークスイッチ400がLUN1301および1311に接続され、LUN1301および1311がボリューム1300および1310のマッピングに使用され、ボリューム1300および1310がバスアダプタ1200に接続され、バスアダプタ1200がサーバ1300に接続されることを識別する。
【0175】
本発明では、任意のARG抽象を単一のアプリケーションに関連するLUNまでさらに分解するサブグループも定義される。各ARG抽象(ASerG、ASwG、ASerG、ACG、およびASG)は、少なくとも1つの、恐らくは複数のサブグループを含むことになる。単一のサブグループは、単一のASG抽象内でのみ提示することができる。サブグループは、単一のストレージ要素とアプリケーションとの関係の粒度をさらに改善する。
【0176】
図38、図39A、図39Bは、本発明によるサブグループの詳細図を提供する。サブグループは、ストレージ要素に負荷を発生させている原因であるアプリケーションに関連するLUNのより詳細な図を提供する。
【0177】
図38は、単一のバスアダプタ1230を使用する単一のアプリケーション1130を実行しているホストサーバ1013を含む代替のインフラストラクチャアーキテクチャを示す。単一のアプリケーション1130は複数のボリューム1350および1360にマッピングされ、これらの各ボリュームは複数のLUNにマッピングされ得る。ボリューム1350はLUN1351および1352にマッピングされ、ボリューム1360はLUNにマッピングされる。各LUNは異なるRAIDグループにマッピングすることができる。LUN1351はディスクアレイ1531にマッピングされ、LUN1352および1361はディスクアレイ1541にマッピングされる。
【0178】
図39Aは、LUN1351、スイッチ1410、コントローラ1530、およびディスクアレイ1531を含む第1のサブグループA1600を示す。図39Bは、LUN1352および1361、スイッチ1410、コントローラ1540、ならびにディスクアレイ1541を含む第2のサブグループBを示す。
【0179】
サブグループは、ストレージ要素内で性能問題の原因であり得る単一のアプリケーションに関連するLUNの識別を助けることができる。例えば、図39Aに示すように、サブグループA1600を使用して、アプリケーション1130内の特定のどのプロセスがディスクアレイ1531で受けている負荷の原因であるかを識別することが可能である。
【0180】
アプリケーションのARGマッピングを完全に記述するために必要な情報は、いくつかの方法を通して取得することができる。この情報は、既存のオペレーティングシステムインタフェース(例えば、Windows(登録商標)の場合、WMI)を通して、またはオペレーティングシステムユーティリティおよびボリュームマネージャ)(例えば、Solarisの場合、Solarisボリュームマネージャ)を使用して発見することができる。スイッチレベル発見は、スイッチ製造業者によって規定される簡易ネットワーク管理プロトコル(SNMP)APIを使用する。ディスクアレイレベル発見は、Storage Network Industry Associationによって規定されるストレージ管理イニシアティブ仕様(SMI−S)APIならびにコマンドラインインタフェース(CLI)を使用する。ローカル−物理LUNマッピングは、ネットワークによって定義され、Unix(登録商標)上のオペレーティングシステムユーティリティまたはWindows(登録商標)上のWindows(登録商標)レジストリを使用して得られるワールドワイドネーム(WWNまたはWWID)を使用して得られる。
【0181】
本発明の一実施では、ARGトポロジは、サーバまたはストレージシステムのいずれかで実行されている仮想化技術によって曖昧になり得る。システムの発見要素は、仮想化技術によって提供される利用可能なAPIを利用することができる(例えば、VMWareのESXコレクタが仮想化されたホストツールと協働する)。次に、仮想化システム要素または存在する実際の物理要素のいずれかを示すARGトポロジをユーザに提示することができる。
【0182】
上述したオペレーティングシステムインタフェースの例(WMI、Solarisボリュームマネージャ)、APIの例(SMI−S、CLI等)、およびVMWareのESXコレクタ等の仮想化の例が、市販の製品またはサービスを指し、それらと相互動作可能なように本発明を実施可能なことを当業者は理解するであろう。
【0183】
図40は、本発明の方法およびシステムの一実施2000を示すフローチャートを提供し、以下を含む。
ボックス2001−サーバ、ネットワーク、およびストレージサービスに問い掛けることによってトポロジを最初に発見する
ボックス2002−仮想化が使用されている場合、存在する任意の仮想−物理マッピングを発見する
ボックス2003−ASerG、AAG、ASwG、ACG、およびASGの各グループならびにサブグループを識別する
ボックス2004−トポロジ内のすべてのポイントで実行統計を収集し、統計リポジトリに記憶する
ボックス2005−トポロジの特定のグループビューに基づいて収集された実行統計を照会する
ボックス2006−性能情報をシステムユーザに報告する
【0184】
G.結び
上記記載は当業者が本発明を実施できるようにする詳細を含むが、この記載は例示的な性質のものであり、その多くの変更および変形が本教示の恩恵を有する当業者には明らかであり、そういった変更および変形が本発明の主旨および範囲内にあることを認められたい。したがって、本明細書における本発明は添付の特許請求の範囲によってのみ規定され、特許請求の範囲は先行技術によって許される限り広義に解釈されることが意図される。
【特許請求の範囲】
【請求項1】
(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、改良が、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することとを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、改良。
【請求項2】
さらに、前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項1に記載の改良。
【請求項3】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項1に記載の改良。
【請求項4】
さらに、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項1に記載の改良。
【請求項5】
(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、改良が、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義する手段であって、各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、改良。
【請求項6】
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項5に記載の改良。
【請求項7】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項5に記載の改良。
【請求項8】
ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項5に記載の改良。
【請求項9】
コンピュータ可読媒体に記憶され、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において動作可能なコンピュータプログラム製品であって、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記コンピュータプログラム製品は、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する、前記デジタルストレージ環境内で実行可能なコンピュータプログラムコード手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義するコンピュータプログラムコード手段とを含み、、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、コンピュータプログラム製品。
【請求項10】
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項9に記載のコンピュータプログラム製品。
【請求項12】
ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項9に記載のコンピュータプログラム製品。
【請求項13】
アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを可能にする方法であって、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備える前記デジタルストレージ環境内で実行可能であり、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記方法は、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することとを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、方法。
【請求項14】
さらに、前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項1に記載の方法。
【請求項15】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項1に記載の方法。
【請求項16】
さらに、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項1に記載の方法。
【請求項17】
アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを可能にするシステムであって、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備える前記デジタルストレージ環境において実施可能であり、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記システムは、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義する手段とを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、システム。
【請求項1】
(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、改良が、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することとを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、改良。
【請求項2】
さらに、前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項1に記載の改良。
【請求項3】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項1に記載の改良。
【請求項4】
さらに、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項1に記載の改良。
【請求項5】
(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、改良が、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義する手段であって、各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、改良。
【請求項6】
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項5に記載の改良。
【請求項7】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項5に記載の改良。
【請求項8】
ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項5に記載の改良。
【請求項9】
コンピュータ可読媒体に記憶され、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備えるデジタルストレージ環境において動作可能なコンピュータプログラム製品であって、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記コンピュータプログラム製品は、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する、前記デジタルストレージ環境内で実行可能なコンピュータプログラムコード手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義するコンピュータプログラムコード手段とを含み、、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、コンピュータプログラム製品。
【請求項10】
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項9に記載のコンピュータプログラム製品。
【請求項12】
ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項9に記載のコンピュータプログラム製品。
【請求項13】
アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを可能にする方法であって、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備える前記デジタルストレージ環境内で実行可能であり、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記方法は、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供することと、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義することとを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、方法。
【請求項14】
さらに、前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素への略完全なマッピングを提供するように動作可能である、請求項1に記載の方法。
【請求項15】
前記ARGおよび前記サブグループは集合的に、複数のアプリケーションが単一のストレージ要素に関して競合し、ボトルネックを生み出している場合、前記ARGが、前記ボトルネックの原因であり得るアプリケーションセットを識別できるように動作可能である、請求項1に記載の方法。
【請求項16】
さらに、ASG抽象が、単一のサブグループを単一のASG抽象内でのみ提示できるように構成される、請求項1に記載の方法。
【請求項17】
アプリケーションセットからデジタルストレージ環境内で使用されるストレージ要素へのマッピングを可能にするシステムであって、(A)少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイと、(B)少なくとも2つのアプリケーションとを備える前記デジタルストレージ環境において実施可能であり、前記少なくとも1つのアプリケーションサーバ、バスアダプタ、ネットワークスイッチ、ディスクコントローラ、およびディスクアレイは集合的に、前記デジタルストレージ環境内のストレージ要素であり、前記システムは、
(A)アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供するように動作可能なアプリケーションリソースグループ(ARG)を提供する手段と、
(B)単一のストレージ要素とアプリケーションとの関係の粒度を改善するように動作可能なサブグループを定義する手段とを含み、
前記ARGはARG抽象を含み、前記ARG抽象は、
サーバに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションサーバグループ(ASerG)、
バスアダプタに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションアダプタグループ(AAG)、
ネットワークスイッチに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションスイッチグループ(ASwG)、
ディスクコントローラに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションコントローラグループ(ACG)、および
ディスクアレイに負荷をかけているアプリケーションを識別するように動作可能なアプリケーションストレージグループ(ASG)
のうちの少なくとも1つを含み、
各ARG抽象は少なくとも1つのサブグループを含み、
前記ARGおよび前記サブグループは集合的に、アプリケーションセットから前記デジタルストレージ環境内で使用されるストレージ要素へのマッピングを提供し、前記デジタルストレージ環境内の任意のストレージ要素に負荷を発生させているアプリケーションセットの階層イメージを提供するように動作可能である、システム。
【図1】
【図2A】
【図2B】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29A】
【図29B】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39A】
【図39B】
【図40】
【図2A】
【図2B】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29A】
【図29B】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39A】
【図39B】
【図40】
【公表番号】特表2010−515121(P2010−515121A)
【公表日】平成22年5月6日(2010.5.6)
【国際特許分類】
【出願番号】特願2009−543215(P2009−543215)
【出願日】平成19年12月20日(2007.12.20)
【国際出願番号】PCT/US2007/088339
【国際公開番号】WO2008/079955
【国際公開日】平成20年7月3日(2008.7.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(509007171)アコリ ネットワークス,インコーポレイテッド (2)
【Fターム(参考)】
【公表日】平成22年5月6日(2010.5.6)
【国際特許分類】
【出願日】平成19年12月20日(2007.12.20)
【国際出願番号】PCT/US2007/088339
【国際公開番号】WO2008/079955
【国際公開日】平成20年7月3日(2008.7.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(509007171)アコリ ネットワークス,インコーポレイテッド (2)
【Fターム(参考)】
[ Back to top ]