(57)【要約】  エンティティ及びそれらの関係の表現及び分析を提供する方法、コンピュータプログラム製品、コンピュータシステムなどが開示される。方法は、例えば、属性グラフ内の複数のノードのうちのノードを選択することと、そのノードに関連付けられたエンティティ情報を分析することと、分析に応答して、エンティティ情報を依存情報に記憶することと、を含む。複数のノードの各ノードは、複数のエンティティのうちのエンティティを表し、属性グラフの複数のリンクのうちの１つ以上のリンクによって、複数のノードのうちの少なくとも１つの他のノードに結合されている。１つ以上のリンクのそれぞれは、各ノードと少なくとも１つの他のノードとの間の関係を表す。エンティティ情報は、エンティティに関する情報である。依存情報は、複数のエンティティのうちの１つ以上のオーケストレーションを容易にするように構成される。
2020507852.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
属性グラフ内の複数のノードのうちのノードを選択することであって、
前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの１つ以上のリンクによって、前記複数のノードのうちの少なくとも１つの他のノードに結合され、
前記１つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも１つの他のノードとの間の関係を表す、選択することと、
前記ノードと関連付けられたエンティティ情報を分析することであって、
前記エンティティ情報が、前記エンティティに関する情報である、分析することと、
前記分析することに応答して、前記エンティティ情報を依存情報に記憶することであって、
前記依存情報が、前記複数のエンティティのうちの１つ以上のオーケストレーションを容易にするように構成された、記憶することと、を含む、コンピュータ実装方法。
【請求項２】
前記１つ以上のリンクが境界を横切るかどうかを判定することと、
前記１つ以上のリンクのうちの１つが境界を横切ることに応答して、前記依存情報内に接触点を記録することと、を更に含む、請求項１に記載の方法。
【請求項３】
前記属性グラフのリンクを前記ノードから前記複数のノードのうちの別のノードに横断させることであって、
前記リンクが、前記複数のリンクのうちの１つである、横断させること、を更に含む、請求項１に記載の方法。
【請求項４】
前記リンクが境界を横切るかどうかを判定することと、
前記リンクが前記境界を横切るとの判定に応答して、前記依存情報内に接触点を記録することと、を更に含む、請求項３に記載の方法。
【請求項５】
前記ノードが、前記属性グラフ内の開始点として選択され、
前記ノード及び前記別のノードが、互いに依存関係を有する、請求項３に記載の方法。
【請求項６】
前記リンクが接触点を表すかどうかを判定することと、
前記リンクが前記接触点を表すとの判定に応答して、前記依存情報内に前記接触点を記録することと、を更に含む、請求項５に記載の方法。
【請求項７】
前記横断させることが、
前記別のノードが前記依存情報に含まれるべきかどうかを判定することと、
前記別のノードが前記依存情報に含まれるべきであるとの判定に応答して、前記横断させることを実行することと、
前記別のノードが前記依存情報に含まれるべきではないとの判定に応答して、前記横断させることを防止することと、を含む、請求項３に記載の方法。
【請求項８】
前記ノードと後続ノードとの間に別のリンクが存在するかどうかを判定することと、
前記後続ノードが前記依存情報に含まれるべきであるとの判定に応答して、前記横断させることを再帰的に実行することと、を更に含む、請求項７に記載の方法。
【請求項９】
前記複数のエンティティのそれぞれのエンティティは、
仮想コンピューティングコンポーネント、
仮想記憶コンポーネント、
物理コンピューティングコンポーネント、又は
物理記憶コンポーネント、のうちの１つである、請求項１に記載の方法。
【請求項１０】
コンピュータプログラム製品であって、
複数の命令であって、
属性グラフ内の複数のノードのうちのノードを選択するように構成された、コンピュータシステム上で実行可能な第１の命令セットであって、
前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの１つ以上のリンクによって、前記複数のノードのうちの少なくとも１つの他のノードに結合され、
前記１つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも１つの他のノードとの間の関係を表す、第１の命令セットと、
前記ノードに関連付けられたエンティティ情報を分析するように構成された、前記コンピュータシステム上で実行可能な第２の命令セットであって、
前記エンティティ情報が、前記エンティティに関する情報である、第２の命令セットと、
前記第２の命令セットの結果に応答して、前記エンティティ情報を依存情報内に記憶するように構成された、前記コンピュータシステム上で実行可能な第３の命令セットであって、
前記依存情報が、前記複数のエンティティのうちの１つ以上のオーケストレーションを容易にするように構成された、第３の命令セットと、を含む、複数の命令と、
非一時的コンピュータ可読記憶媒体であって、前記命令が、前記非一時的コンピュータ可読記憶媒体内に符号化された、非一時的コンピュータ可読記憶媒体と、を含む、コンピュータプログラム製品。
【請求項１１】
前記命令が、
前記ノードと前記複数のノードのうちの別のノードとの間のリンクが接触点を表すかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第４の命令セットと、
前記リンクが前記接触点を表すことに応答して、前記依存情報内に前記接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第５の命令セットと、を更に含む、請求項１０に記載のコンピュータプログラム製品。
【請求項１２】
前記命令が、
前記ノードから前記複数のノードのうちの別のノードへの前記属性グラフのリンクを横断するように構成された、前記コンピュータシステム上で実行可能な第４の命令セットであって、
前記リンクが、前記複数のリンクのうちの１つである、第４の命令セット、を更に含む、請求項１０に記載のコンピュータプログラム製品。
【請求項１３】
前記命令が、
前記リンクが境界を横切るかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第５の命令セットと、
前記リンクが前記境界を横切るとの判定に応答して、前記依存情報内に接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第６の命令セットと、を更に含む、請求項１２に記載のコンピュータプログラム製品。
【請求項１４】
前記ノードが、前記属性グラフ内の開始点として選択され、
前記ノード及び前記別のノードが、互いに依存関係を有する、請求項１２に記載のコンピュータプログラム製品。
【請求項１５】
前記第４の命令セットが、
前記リンクが接触点を表すかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第１の命令サブセットと、
前記リンクが前記接触点を表すとの判定に応答して、前記依存情報内に前記接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第２の命令サブセットと、を含む、請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
前記第４の命令セットが、
前記別のノードが前記依存情報内に含まれるべきかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第１の命令サブセットと、
前記別のノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記第４の命令セットを実行するように構成された、前記コンピュータシステム上で実行可能な第２の命令サブセットと、
前記別のノードが前記依存情報内に含まれるべきではないとの判定に応答して、前記第４の命令セットの実行を防止するように構成された、前記コンピュータシステム上で実行可能な第３の命令サブセットと、を含む、請求項１２に記載のコンピュータプログラム製品。
【請求項１７】
前記命令が、
前記ノードと後続ノードとの間に別のリンクが存在するかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第５の命令セットと、
前記後続ノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記第４の命令セットを再帰的に実行するように構成された、前記コンピュータシステム上で実行可能な第６の命令セットと、を更に含む、請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
コンピュータシステムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたコンピュータ可読記憶媒体と、
複数の命令であって、前記コンピュータ可読記憶媒体内に符号化され、前記１つ以上のプロセッサに、
属性グラフ内の複数のノードのうちのノードを選択することであって、
前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの１つ以上のリンクによって、前記複数のノードのうちの少なくとも１つの他のノードに結合され、
前記１つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも１つの他のノードとの間の関係を表す、選択することと、
前記ノードと関連付けられたエンティティ情報を分析することであって、
前記エンティティ情報が、前記エンティティに関する情報である、分析することと、
前記１つ以上のプロセッサに分析させるように構成された前記命令の結果に応答して、前記エンティティ情報を依存情報内に記憶することであって、
前記依存情報が、前記複数のエンティティのうちの１つ以上のオーケストレーションを容易にするように構成された、記憶することと、をさせるように構成された、複数の命令と、を備える、コンピュータシステム。
【請求項１９】
前記複数の命令が、前記１つ以上のプロセッサに、
前記ノードから前記複数のノードのうちの別のノードへの前記属性グラフのリンクを横断することであって、
前記リンクが、前記複数のリンクのうちの１つである、横断すること、をさせるように更に構成された、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記複数の命令が、前記１つ以上のプロセッサに、
前記リンクが境界を横切るかどうかを判定することと、
前記リンクが境界を横切るとの判定に応答して、前記依存情報内に接触点を記録することと、をさせるように更に構成された、請求項１９に記載のコンピュータシステム。
【請求項２１】
前記１つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令は、前記１つ以上のプロセッサに、
前記別のノードが前記依存情報内に含まれるべきかどうかを判定することと、
前記別のノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記１つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令を実行させることと、
前記別のノードが前記依存情報内に含まれるべきではないとの判定に応答して、前記１つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令の実行を防止することと、をさせるように更に構成された、請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングシステムにおけるワークロードの管理に関し、具体的には、オーケストレーションの目的のためのワークロードの依存性分析のための方法及びシステムに関する。
【背景技術】
【０００２】
今日の組織は、多くの場合、オンラインで維持されるデータに広く依存している。そのような頻繁にアクセスされる、常に変化するデータは、そのような組織の進行中の業務にとってクリティカルであり得る。コンピューティングリソースも同様であり、コンピューティングリソースとしては、データストレージだけでなく、（物理及び仮想コンポーネントの両方を使用して実装される）コンピューティングシステムも挙げることができる。そのようなデータ及びシステムの可用性を阻害する予定されていないイベントは、事業運営を深刻に害することがある。加えて、自然災害又は他のイベントからの永久的なデータ損失は、事業の継続的な生存可能性にとって深刻な負の影響を与える可能性が高い。したがって、災害時には、組織は、データ損失及びダウンタイムをなくす又は最小化し、使用可能なデータ及び機能するシステムによって迅速に復旧する準備が整っていなければならない。データバックアップ及び他の災害復旧（disaster recovery、ＤＲ）技術を使用して、そのような災害が発生した場合にデータ及び機能の損失を防止することができる。例えば、データバックアッププロセスを使用して、元のデータのコピーを作成することができる。これらのコピーを使用して、データ損失イベント後に元のデータを復元することができる。様々な他の技術の中でも、様々な技術を使用して、そのようなバックアップ、そのような完全バックアップ、増分バックアップ、又は差分バックアップ、並びに様々な種類のデータ複製を生成することができる。万一障害が発生した場合、そのようなオンラインデータ処理システムは、そのような災害から復旧するための高速で、容易かつ効率的な機能を提供するであろう。同様に、サービスの連続性を確保するために、災害復旧アーキテクチャを採用することができる。
【発明の概要】
【０００３】
本開示は、エンティティ及びそれらの互いとの関係のうちの１つ以上を表す１つ以上の属性グラフ（又は同等の構造体）を使用してコンピューティング環境の分析をサポートする方法、コンピュータプログラム製品、コンピュータシステムなどを説明する。方法は、例えば、属性グラフ内の複数のノードのうちのノードを選択することと、ノードに関連付けられたエンティティ情報を分析することと、分析することに応答して、エンティティ情報を依存情報内に記憶することと、を含む。複数のノードの各ノードは、複数のエンティティのうちのエンティティを表す。複数のノードの各ノードは、属性グラフの複数のリンクのうちの１つ以上のリンクによって、複数のノードのうちの少なくとも１つの他のノードに結合されている。１つ以上のリンクのそれぞれは、各ノードと少なくとも１つの他のノードとの間の関係を表す。エンティティ情報は、エンティティに関する情報である。依存情報は、複数のエンティティのうちの１つ以上のオーケストレーションを容易にするように構成されている。
【０００４】
特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、１つ以上のリンクが境界を横切るかどうかを判定することと、１つ以上のリンクのうちの１つが境界を横切ることに応答して、依存情報内に接触点を記録することとを含むことができる。
【０００５】
更に、特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、ノードから複数のノードのうちの別のノードへの属性グラフのリンクを横断することであって、リンクが複数のリンクのうちの１つである、横断すること、を含むことができる。更に、リンクが境界を横切るかどうかを判定することと、リンクが境界を横切るとの判定に応答して、依存情報内に接触点を記録することとを含む動作を実行することができる。ノードは属性グラフ内の開始点として選択されてもよく、かつ／又はノード及び別のノードは互いに依存関係を有してもよい。
【０００６】
更に、特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、リンクが接触点を表すかどうかを判定することと、リンクが接触点を表すとの判定に応答して、依存情報内に接触点を記録することとを含むことができる。この及び他の実施形態は、別のノードが依存情報内に含まれるべきかどうかを判定することと、（別のノードが依存情報内に含まれるべきであるとの判定に応答して）横断することを実行することと、別のノードが依存情報内に含まれるべきではないとの判定に応答して、横断することを防止することと、を含むことができる。
特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、ノードと後続ノードとの間に別のリンクが存在するかどうかを判定することと、後続ノードが依存情報内に含まれるべきであるとの判定に応答して、横断することを再帰的に実行することとを含むことができる。これらの及び他の実施形態では、複数のエンティティの各エンティティは、仮想コンピューティングコンポーネント、仮想記憶コンポーネント、物理コンピューティングコンポーネント、又は物理記憶コンポーネントのうちの１つであり得る。
【図面の簡単な説明】
【０００７】
本発明は、添付図面を参照することによってより良く理解され得、その多数の目的、特徴、及び利点が当業者に明らかにされる。
【０００８】
【図１】一実施形態による、管理機能を含むコンピューティング環境の一例を例示するブロック図である。
【０００９】
【図２】一実施形態による、複数の仮想マシン（virtual machine、ＶＭ）及び他の機能をサポートする物理マシンの一例を例示するブロック図である。
【００１０】
【図３】一実施形態による、コンピューティング環境分析アーキテクチャの一例を例示するブロック図である。
【００１１】
【図４】一実施形態による、コンピューティング環境の一例を例示するブロック図である。
【００１２】
【図５】一実施形態による、複数の接触点を有するコンピューティング環境の一例を例示するブロック図である。
【００１３】
【図６】一実施形態による、コンピューティング環境内のハードウェア及びソフトウェアエンティティの一例を例示するブロック図である。
【００１４】
【図７】一実施形態による、図６のコンピューティング環境の部分を表す属性グラフの表現の一例を例示するブロック図である。
【００１５】
【図８】一実施形態による、属性グラフの実装のための例示的なプロセスを描写するフローチャートである。
【００１６】
【図９】一実施形態による、属性グラフ作成のための例示的なプロセスを描写するフローチャートである。
【００１７】
【図１０】一実施形態による属性グラフを作成するために、一実施形態による、エンティティ及びそれらの関係を横断するための例示的なプロセスを描写するフローチャートである。
【００１８】
【図１１】一実施形態による、１つ以上の属性グラフを分析するための例示的なプロセスを描写するフローチャートである。
【００１９】
【図１２】一実施形態による、属性グラフを分析する一環として属性グラフを横断するための例示的なプロセスを描写するフローチャートである。
【００２０】
【図１３】低レベルの複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
【００２１】
【図１４】高レベルのコピー作成が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
【００２２】
【図１５】高レベルの同期される物理複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
【００２３】
【図１６】一実施形態による、オーケストレーションアーキテクチャの一例のブロック図である。
【００２４】
【図１７】本明細書に開示されるものなどのシステムの実施形態によるシステムの態様を実装するのに好適なコンピュータシステムを描写するブロック図である。
【００２５】
【図１８】本明細書に開示されるものなどのシステムの実施形態によるシステムの態様を実装するのに好適なネットワークアーキテクチャを描写するブロック図である。
【発明を実施するための形態】
【００２６】
以下は、本発明の一例の詳細な説明を提供することを意図するものであり、本発明自体を限定するものと解釈すべきではない。むしろ、任意の数の変形例が、本明細書に続く特許請求の範囲に定義される本発明の範囲内に含まれ得る。
【００２７】
本発明は、様々な修正形及び代替形式が可能であるが、本発明の特定の実施形態が、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、本発明を開示された特定の形式に限定することを意図しないことを理解されたい。そうではなく、添付の特許請求の範囲によって定義されるような本発明の趣旨及び範囲内にある全ての修正形、等価物、及び代替形態を包含することが意図される。
序論
【００２８】
本明細書に記載されるものなどの方法及びシステムは、オーケストレーションシステムによる使用に適切な１つ以上の結果を生成することができる様式で、ワークロードの依存性分析をサポートすることによって、コンピューティング環境におけるハードウェア及びソフトウェアリソースの管理を提供する。そのような方法及びシステムは、１つ以上の属性グラフ（又は同等の構造体）の使用によってそのような結果の生成を容易にする。
【００２９】
理解されるように、ワークロードのための依存性マッピング及びインフラストラクチャ接触点（接触点）の識別は、アプリケーション及び他のデータセンターコンポーネントの災害復旧及びマイグレーションのための強固なワークフローを構築することの基本部分である。多くの場合、データセンターインフラストラクチャとオーケストレーションされているワークロード（複数可）との間には複数の接触点が存在し、そのうちのいずれか（又は全て）は、所与のワークロードをサポートするために必要とされる依存性に寄与し得る。
【００３０】
マイグレーション及び災害復旧シナリオなどのオーケストレーション動作において直面する課題としては、物理的に分離された接触点、そのような接触点の隔離、及びそのようなオーケストレーション動作によって影響を受ける接触点の識別が挙げられる。本明細書に記載されるものなどの方法及びシステムは、以下及び本明細書の他の箇所に記載されるように、効率的かつ効果的な様式でこれらの課題に対処する。
【００３１】
例えば、データセンター間などのインフラストラクチャのユニット間の地理的に分散した接触点の場合。ワークロードインフラストラクチャの多様性、異なるデータマイグレーション方法及びターゲットの種類（ホスト型データセンター又はクラウド）を考慮すると、関連するデータと併せてのワークロードの別のデータセンターへのマイグレーションをオーケストレーションするために使用することができる依存性チェーンを識別することは困難である。複製されたデータベースの場合、依存性評価の際、十分なマイグレーション接触点はデータベース自体であり得る。これにより、ＤＲ及びマイグレーションのために、ファイルシステムのようなデータベースインフラストラクチャをオーケストレーションする必要が回避される。低レベル（例えば、論理ユニット番号（logical unit number、ＬＵＮ）レベル複製を使用して複製されるＶＭの場合、依存性評価の際、ＶＭからデータストア、そしてＬＵＮへのマイグレーション接触点は、当該のＬＵＮ及びその上に常駐する全てのＶＭである。別のシナリオは、ＶＭイメージの、それらをサポートするシステム（複数可）の外部での複製である（帯域外複製）。この場合、依存性評価の際、マイグレーション接触点は、バックアップポリシー及び生成されるバックアップイメージである。ここでもまた、これにより、データストア、ＬＵＮなどのＶＭインフラストラクチャをオーケストレーションする必要が回避される。
【００３２】
別の例は、接触点を隔離する能力である。複数のデータマイグレーション方法を有するより複雑な復旧構成については、例えば、依存性は、データマイグレーション方法ごとに隔離されるべきである。これは、低レベル複製及び帯域外複製が両方とも実装される場合に発生する（例えば、ＶＭ画像は、帯域外複製を使用して複製されるが、ＶＭのストレージも、ＬＵＮレベルで複製される）。
【００３３】
更に別の例は、オーケストレーション動作によって（潜在的に）影響を受ける接触点の識別である。例えば、メンテナンス動作に関して、そのような動作によって影響を受けるエンティティを見つける必要がある場合がある。ここで、依存性は、当該のメンテナンスを実行することができるように停止又は無効化されるべきエンティティを反映すべきである。そのような状況は、例えば、記憶デバイス上でメンテナンスを実行する必要がある場合に発生し得、その結果、そのデバイスを使用するワークロードが緩やかに停止され、そのデバイスを使用するファイルシステムがマウント解除されることが必要となる。本開示に照らして理解されるように、そのような動作によって影響を受けるエンティティを、当該のデバイス（複数可）に対するそれらの関係の判定を通じて、迅速かつ効率的に判定する能力が有利である。
【００３４】
本明細書に記載されるものなどの方法及びシステムは、属性グラフ又は同等の構造体の使用によってそのような利点を提供する。そのような構造体では、ハードウェア及びソフトウェアコンポーネント（本明細書では「エンティティ」とも呼ばれる）並びにそれらの関係はそれぞれ、ノード（頂点）及びリンク（エッジ）によって表される。そのような構造体の重要な特徴は、一般に、コンピューティング、ネットワーク、及び記憶リソースの表現を提供する能力と、そのようにして表現されるエンティティのオーケストレーションを容易にし、サポートするために、そのような情報を１つ以上のオーケストレーションシステムに提示することができる様式で分析する能力とである。したがって、（例えば、災害復旧の目的のための）オーケストレーションに適した様式でのコンピューティング環境の作成及び分析に特に重点を置きながら、コンピューティング環境管理アーキテクチャの様々な革新的な要素の例を説明する。
【００３５】
現在、上述したものなどの課題に対処し、手動で生成された情報に依存しない柔軟な手法に拡張されるような汎用システムを提供する解決策（明らかに、数百又は数千のコンポーネント及びそれらの間の指数関数的に多数の関係を有する大規模システムでは克服不可能なタスク）は存在しない。データ及びアプリケーションのマイグレーション／ＤＲ動作及びそれに関与する接触点の依存性マッピング（複数可）を迅速かつ効率的に判定するという課題に対処するために、かつそれを汎用的な様式で行うために、以下の特性が有利であると理解されるであろう。
○接続された経路の自律的計算／分析を所望の程度に可能にするために、属性グラフによって接続されたドメインのエンティティを表現する。これにより、エンティティの種類及びそれらの間の関係の明示的な知識なしに、依存性及びマイグレーション接触点の識別が容易になる。
○したがって、技術におけるマッピング及びマイグレーション接触点を識別するための表現のユースケース及び技術非依存の分析は、新しい依存性、ユースケース、及び技術が環境に導入される際に修正の必要性を発生しにくくする。
○アプリケーション及びＶＭ  ＤＲ及びマイグレーション自動化のためのワークフロー作成システムのような他のシステムによって消費され得る、明確に定義された標準フォーマットで依存性マッピングを表現する。
【００３６】
前述のニーズ及び記載された課題に対処するために、本明細書に記載されるものなどの方法及びシステムは、以下に記載されるものなどの要素を提供する。
【００３７】
１．コンピューティング環境内の様々なエンティティの表現
【００３８】
２．エンティティの注釈
【００３９】
３．依存性マッピングの識別
【００４０】
４．依存性マッピングのための標準インターフェース
【００４１】
そのような特徴を提供する際、本明細書に記載されるものなどの方法及びシステムによるコンピューティング環境管理アーキテクチャは、仮想マシン（ＶＭ）などのエンティティ、及びデスクトップコンピュータプラットフォーム上で実行され得るものなどの様々なアプリケーションのための災害復旧及びワークロード管理能力を提供する。そのようにすることで、そのようなアーキテクチャは、様々な形式の多数の回復能力のための情報技術（information technology、ＩＴ）アプリケーションを管理するためのシステムを提供し、そのような解決策は、例えば、災害復旧及びワークロード管理を提供する。そうするために、本明細書に記載されるものなどの方法及びシステムは、属性グラフなどの構造体を用いて、コンピューティング環境内の様々なエンティティ、並びにそれらの間に存在し得る関係を表すことができる。そのような表現は、いくつかの利益を提供する。
オーケストレーションアーキテクチャの例示的特徴
【００４２】
本明細書に記載されるものなどの方法及びシステムによるコンピューティング環境はまた、仮想マシン（ＶＭ）及び他のそのようなエンティティ（ハードウェア及び／又はソフトウェアコンポーネント）の管理を提供する。そのようなエンティティは、物理マシン（コンピューティングシステム）上にプロビジョニングされる（したがって、その上にホストされる）ＶＭ、並びにそのようなノードによって既にホストされているＶＭとの両方に関連付けられる。この点に関して、ＶＭ構成は、１つ以上のリソース要件、並びに１つ以上の追加の要件を含み得る。リソース要件は、所与のＶＭをホストするためにノードにおいて必要とされる１つ以上のリソースを示す。追加の要件は、所与のＶＭをホストするためにノードに必要とされる１つ以上の動作要素を示す。このＶＭ構成は、様々なクラスタの構成と比較される。クラスタ構成は、そのクラスタのノード（複数可）に関する構成情報を示すことができる。そのような比較は、所与のＶＭをホストするためのリソース及び追加の要件を満たすことができるノードを含むクラスタを選択するために、オーケストレーションシステムによって実装することができる。ＶＭは、そのＶＭに関連付けられたサービスレベル契約（service level agreement、ＳＬＡ）に基づいてプロビジョニング又はマイグレーションすることができる（例えば、災害が発生した場合に）。ＳＬＡは、ＶＭがプロビジョニングされるノードの物理的要件などの様々なリソース要件を含むことができる。これらのリソース要件としては、ＣＰＵ、メモリ、及び他のハードウェア要件、並びに他のエンティティ（それがハードウェア若しくはソフトウェア、又はそれらの組み合わせであるかを問わない）に対する依存性を挙げることができる。その結果、ＶＭは、そのＶＭに関連付けられたＳＬＡのリソース要件によって指定されたリソースを有するサーバ上にプロビジョニングされる（又はマイグレーションされる）。
【００４３】
上述のように、仮想マシン（ＶＭ）は、物理コンピューティングデバイスに典型的に関連付けられた機能を提供する、ソフトウェア構造体などのコンピューティングエンティティである。そのような機能としては、例えば、文書作成、データベース、及びウェブ閲覧プログラムなどのアプリケーションを実行する能力が挙げられる。仮想マシンは、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｍａｃ  ＯＳ  Ｘ（登録商標）などのオペレーティングシステムを実行することができる。仮想マシンは、ホストとして知られる物理マシン上で実行される。複数の仮想マシンを単一の物理マシン上に実装又はプロビジョニングすることができる。所与の仮想マシンは、物理マシン（又は当然ながら他の物理マシン）上で実行される他の仮想マシンから論理的に離隔される。
【００４４】
複数の物理マシンが利用可能である環境に新しい仮想マシンをプロビジョニングする場合、どの物理マシンをその新しい仮想マシンのために使用するかを選択することは、重要な決定である。既存の仮想マシンをある物理マシンから別の物理マシンへ移動する場合、例えば、仮想マシンがプロビジョニングされている物理マシンが保守のためにオフラインにされるか、又は障害が発生した場合、どの物理マシンに既存の仮想マシンを移動させるかを選択することは、同様に重要な決定である。
【００４５】
特定の状況では、そのようなプロビジョニングは、ＳＬＡによって制御され、ＳＬＡは、（上述のように）実装の要件を定義し、リソース要件及び追加の要件の両方などのＶＭ構成を含むことができる。このＶＭをプロビジョニングすることができるノードの物理的要件などのリソース要件。これらのリソース要件としては、ＣＰＵ、メモリ、及び／又は他のハードウェア要件を挙げることができる。リソース要件（複数可）は、ＶＭをホストするためのノードにおいて必要とされるリソース（複数可）を示す。例えば、これらのリソースは、ＶＭをホストするためのノードの様々なハードウェア要件を含む。その結果、ＶＭは、このＶＭに関連付けられたＳＬＡのリソース要件によって指定されたリソースを有するノード上にプロビジョニング（又はマイグレーション）することができる。
【００４６】
追加の要件は、ＶＭをホストするためのノードにおいて必要とされる動作要素（複数可）を示す。例えば、これらの追加の要件としては、とりわけ、可用性要件、データ保護要件、及びセキュリティ要件を挙げることができる。可用性要件は、ＶＭの可用性要件（複数可）を定義することができる。データ保護要件（複数可）は、ＶＭをホストするための潜在的ノードにおいて必要とされるデータ保護要素を示すことができる。セキュリティ要件（複数可）は、ＶＭをホストするための潜在的ノードに必要とされるセキュリティ要素を示すことができる。動作要素（複数可）は、ＶＭをホストするための潜在的ノードにおいて必要とされるデータ保護要素を示すことができる。
【００４７】
ＶＭ構成情報としては、リソース要件（複数可）、及び１つ以上の追加の要件（複数可）を挙げることができる。そのようなＶＭ構成情報は、クラスタ内の任意の場所でサポート、実装、アクセス、及び／又は記憶することができる（例えば、そのような構成情報は、クラスタのノード及び／又はそのストレージ間に分散され得る）。ＶＭ構成情報はまた、例えば、中央リポジトリなどのクラスタの外部に記憶し、例えばネットワークを介してアクセスすることができる。一実施形態では、ＶＭ構成は、ＶＭのサービスレベル契約（ＳＬＡ）に含まれる。一実施形態では、ＶＭ構成は、まだホストされていないＶＭと関連付けられる。例えば、ＶＭ構成に従って、新しいＶＭの作成（例えば、ノードにプロビジョニングされること）を要求するコマンドを受信することができる。別の実施形態では、ＶＭ構成は、クラスタのノードのうちの１つに既にホストされているＶＭと関連付けられる。例えば、ＶＭ構成に従って、ＶＭが新しいノードにプロビジョニングされることを要求するコマンドを受信することができる。
【００４８】
一実施形態では、クラスタはまた、関連付けられたクラスタ構成を有し得る。クラスタ構成は、クラスタに関する構成情報及び／又はノード（複数可）に関する構成情報を含むことができる。例えば、そのようなクラスタ情報としては、所与のノードの構成情報を挙げることができる。クラスタ構成は、例えば、クラスタのノード間に、クラスタストレージ内に、又は中央リポジトリなどのクラスタの外部のストレージに配布され、ネットワークを介してアクセスされることを含め、所与のクラスタ内の任意の場所でサポート、実装、アクセス、及び／又は記憶することができることに留意されたい。
【００４９】
仮想マシン（新しい仮想マシン、又はある物理マシンから別の物理マシンにマイグレーションされている既存の仮想マシンのいずれか）及び関連付けられたアプリケーションの性能は、仮想マシンをホストするように選択された物理マシンに応じて変化し得る。すなわち、仮想マシンの性能、例えば、速度、応答性、安定性は、仮想マシンが実装される物理マシンに応じて変化し得る。所与の物理マシン上で仮想マシンを実行することはまた、物理マシン及び物理マシン上で実行される他のプロセスの性能に影響を及ぼし得る。仮想マシンは、物理マシンのリソースを消費することがあり、その結果、物理マシン、例えば、同じ物理マシン上に実装された他の仮想マシンによって実行されている他のプロセスのために利用可能なリソースが少なくなる。物理マシンのリソースをより効率的に使用するための１つの技術は、物理マシン上に実装された仮想マシンが、複数の仮想マシンによって使用されるメモリページを共有することである。すなわち、物理マシンのメモリは重複排除することができる。
【００５０】
仮想マシンをホストするために複数の物理マシンが利用可能であるコンピューティング環境では、どの物理マシンに仮想マシンをホストするかを選択する１つの方法は、各物理マシンの利用可能なリソース、例えば、ネットワーク送信帯域幅、メモリ、プロセッササイクルを比較し、最も多くの利用可能なリソースを有する物理マシンを選択することである。いくつかの利用可能な物理マシンの中から物理マシンを選択する別の方法は、利用可能な物理マシンが、新たにプロビジョニングされるか又は別の物理マシンからマイグレーションされる仮想マシンを順番にホストする、ラウンドロビンである。取り決めたサービスレベル合意において課されている条件を満たすことは、仮想マシンを配置する際の重要な考慮事項である場合がある。
【００５１】
前述のリソース考慮事項に加えて、リソース要件（複数可）情報は、一般に、ＶＭの様々なリソース要件（並びに最適及び／又は許容可能な動作のための「好みの設定」）を定義することができる。リソース要件としては、ＣＰＵ、メモリ、ネットワーク、プラットフォーム、ブートディスクイメージなどを挙げることができる。これらは、典型的には、ＶＭをホストするためのノード（例えば、サーバ）のハードウェア要件である。追加の要件（複数可）としては、可用性要件、データ保護要件、及びセキュリティ要件、並びに他のコンポーネント（例えば、ハードウェア及び／又はソフトウェアコンポーネント）に対する依存性を挙げることができる。
【００５２】
可用性要件は、ＶＭの可用性要件（複数可）、例えば、仮想マシンが許容できる必要がある物理ホスト障害の数、仮想マシンの災害復旧のために構成された遠隔サイトの数などを定義することができる。例えば、要件は、ＶＭがＮ個の物理ホスト障害を許容する必要があることを含み得る。この要件は、ＶＭのリソース要件（複数可）を満たすことができる少なくともＮ＋１個の物理ホストを有するクラスタによって満たされ得る。別の例では、要件は、ＶＭが１つのサイト障害を許容すること、すなわち、ＶＭが災害復旧設定を有する必要があることを含むことができる。この要件は、クラスタ上でアクティブな仮想マシンをアクティブ化するために使用することができるクラスタが存在する（例えば、遠隔サイトに）場合など、災害復旧（Disaster Recovery、ＤＲ）が構成されたデータセンター内のクラスタによってのみ満たすことができる。例えば、ニューヨークのクラスタは、ロンドンの対応するＤＲクラスタ設定を有し得る。ニューヨーククラスタ内のホストで障害が発生した場合、ニューヨークのクラスタ上でアクティブであった仮想マシンは、ロンドンのＤＲクラスタを介して利用可能にすることができる。
【００５３】
セキュリティ要件は、仮想マシンがアクセスすることができるネットワークを制限するための仮想マシンのセキュリティゾーン、マルウェアスキャンのポリシー及び頻度などを定義する。例えば、要件は、Ｎ時間ごとにウイルスがないかＶＭディスクイメージをスキャンすることであってもよい。この要件は、ＶＭ及び／又はＶＭをホストするノード内にウイルススキャンソフトウェアを設定することによって満たされ得る。あるいは、この要件は、ＶＭイメージがアクセス可能であるどの場所からでも、例えばＶＭイメージが配置されている場所、又は仮想マシンのディスクイメージにアクセスすることができる別のホストから、オフラインで行うことができる。別の例では、要件は、仮想インフラストラクチャをいくつかのガイドラインに適合させることであってもよい。この要件は、ハイパーバイザ、ネットワーク、ストレージの適合性をコンプライアンス評価システムによってチェックすることによって満たされ得る。要件の別の例は、ＶＭが、全てのアウトバウンドトラフィックをスキャンするように構成されたＤＬＰゲートウェイを有するホスト上にプロビジョニングされる必要があることである。このＳＬＡは、ＶＭの全てのアウトバウンドトラフィックをスキャンするように構成され得るＤＬＰゲートウェイを有するホストによって満たされ得る。
【００５４】
データ保護要件は、仮想マシンのバックアップ又はスナップショットの頻度、媒体、及び方法／種類を定義する。例えば、要件は、特定の種類のバックアップソフトウェアを使用してイメージをＨ時間ごとにバックアップする必要があることであってもよい。別の要件は、増分又は完全バックアップなどの特定の種類のバックアップの使用を必要としてもよい。この要件は、適切なバックアップソフトウェア設定を有し、バックアップメディアへのアクセスを有するホストによって満たされ得る。
【００５５】
このように、本開示に照らして理解されるように、仮想マシン及びそれに関連付けられた仮想マシンデータをバックアップして、仮想マシン及び仮想ディスクのためのデータ保護を提供することができる。バックアップされた仮想マシン及び仮想ディスクは、仮想マシンの動作を再開又は開始するために復元され得る。例えば、災害復旧シナリオでは、仮想マシンをホストするノードのクラッシュに起因して動作不能になった仮想マシンをバックアップから別のホストに復元することができ、動作を再開することができる。別の実施形態では、仮想マシン及び仮想ディスクをバックアップからホストに復元することができ、動作を開始することができ、したがって、同じ仮想マシンの複数のインスタンスを作成することができる。仮想マシン自体は比較的少量のデータ（例えば、数キロバイト又は数メガバイトのオーダー）を含むので、仮想マシンを復元することは、典型的には比較的迅速に実行することができる。仮想ディスクは典型的には比較的大量のデータ（例えば、数ギガバイトのオーダー）を含むので、仮想ディスクを復元することは、典型的にはより長くかかる。
例示的なオーケストレーションアーキテクチャ
【００５６】
図１は、コンピューティング環境１００のブロック図である。示すように、コンピューティング環境１００は、いくつかの物理マシン１１０（１）〜１１０（Ｎ）（コンピューティングシステム）を含む。各物理マシン１１０は、いくつかの仮想マシン１１５（１）〜１１５（ｉ）をホストする。代替的な実施形態は、異なる数の物理マシン、異なる数の物理マシンごとの仮想マシンを実装することができ、同じシステムは、同じ環境内の他の物理マシンとは異なる数の仮想マシンをそれぞれ実装する１つ以上の物理マシンを含むことができることに留意されたい。
【００５７】
上記で使用されるもの（「Ｎ」及び「ｉ」）などの変数識別子は、一連の関係又は類似する要素（例えば、物理マシン）の最終要素（例えば、物理マシン１１０（Ｎ））をより単純に指定するために使用されることに留意されたい。そのような変数識別子の繰り返し使用は、そのような一連の要素のサイズ間の相関関係を暗示することを意図するものではないが、そのような相関関係が存在してもよい。そのような変数識別子の使用は、各一連の要素が、同じ変数識別子によって区切られた別の一連と同じ数の要素を有することを必要としない。むしろ、使用の各インスタンスにおいて、識別された変数は、同じ変数識別子の他のインスタンスと同じ又は異なる値を保持してもよい。
【００５８】
物理マシン１１０は、ネットワーク１３０によって管理サーバ１２０及びいくつかの記憶デバイス１５０（１）〜１５０（４）に結合されている。ネットワーク１３０としては、他のそのような構造体及びシステムの中でも、インターネットなどのＷＡＮ（広域ネットワーク、Wide Area Network）、１つ以上のＬＡＮ（ローカルエリアネットワーク、Wide Area Network）、及び／又は１つ以上のＳＡＮ（ストレージエリアネットワーク、Storage Area Network）を挙げることができる。
【００５９】
物理マシン１１０は、コンピューティングデバイス又はコンピューティングデバイスの一部であり、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などの任意の種類のコンピューティングデバイスであり得る。いくつかの実施形態では、そのような物理マシンは、メモリ及びプロセッササイクルなどの物理コンピューティングリソースが必要に応じて及び／又は契約に応じて割り当てられるクラウドコンピューティング環境に含まれる。物理マシン１１０のリソースは、物理マシン上に実装された仮想マシンによって共有される。物理マシン１１０はそれぞれ、メモリ１１２を含む。メモリ１１２は、一実施形態では、ランダムアクセスメモリ（random access memory、ＲＡＭ）である。メモリ１１２は、いくつかのページに編成される。ページは、一般に、メモリの固定サイズ部分、例えばメモリの４キロバイト（kilobyte、Ｋｂ）部分である。
【００６０】
仮想マシン１１５は、例えば、組織に関連付けられたユーザにコンピューティングリソースを提供するために使用することができる。ユーザ、例えばある組織の情報技術（ＩＴ）専門家が追加のリソースを要求する場合、クラウドベンダーの管理者（例えば、ＩＴ専門家）は、追加のリソースの要求を満たすために１つ以上の追加の仮想マシンをプロビジョニングすることができる。一実施形態では、プロビジョニングモジュール１２１を用いて、コンピューティングリソースの要求においてユーザによって指定された要件を検出することができる。プロビジョニングデータ１２２を使用してその機能を実行するプロビジョニングモジュール１２１は、要求に応答して仮想マシンを自動的に作成又は配置し、仮想マシンを物理マシン１１０のうちの１つ上にプロビジョニングさせることができる。見られるように、プロビジョニングモジュール１２１（及びそれに関連付けられたプロビジョニングデータ１２２）、並びに属性グラフ作成モジュール１２５及び属性グラフ分析モジュール１２６（及び関連付けられた属性グラフデータ１２７）は、管理サーバ１２０によってサポートされるモジュールに数えられる（これらのモジュールは、図１では、例として、管理モジュール１２９として描写されている）。属性グラフ作成モジュール１２５及び属性グラフ分析モジュール１２６などのシステムの動作を、続いて、並びに図３〜１６に関連して、かつそれらとの関係において説明する。
【００６１】
管理者はまた、１つ以上の仮想マシンを第１の物理マシンから代替の物理マシンに移動させることもできる。例えば、管理者は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は１つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出したことに応答して、１つ以上の仮想マシンを異なる（ターゲット）物理マシンに移動（マイグレーション）することができる。一実施形態では、プロビジョニングモジュール１２１は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は１つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出するなど、仮想マシンがマイグレーションされるべきであることを示す状態を自動的に検出することができる。プロビジョニングモジュール１２１は、オーケストレーションサービスを提供することの一環として、そのような条件を検出したことに応じて、１つ以上の仮想マシンを自動的にマイグレーションさせることができる。
【００６２】
管理サーバ１２０は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などのコンピューティングデバイス又はコンピューティングデバイスの一部であってもよい。管理サーバ１２０は、新たな又はマイグレーションされた仮想マシンをホストするためのターゲット物理マシンを選択することができる。管理サーバ１２０は、プロビジョニングモジュール１２１及びプロビジョニングデータ１２２を含む。
【００６３】
プロビジョニングモジュール１２１は、新しい仮想マシン（又はある物理マシンから別の物理マシンにマイグレーションされる仮想マシン）がターゲット物理マシンのリソース（例えばメモリ）をより効果的に利用することになる（例えば、ターゲット物理マシンによってホストされているか又はホストされることになる１つ以上の仮想マシンとより多くの数のメモリページを共有することによって）可能性に基づいて、ターゲット物理マシンを選択することができる。更に、そのような動作は、管理サーバ１２０の管理のために提示されるグラフィカルユーザインターフェース（graphical user interface、ＧＵＩ）を使用して、直感的かつ効率的な様式で実行することができる。
【００６４】
プロビジョニングモジュール１２１は、プロビジョニングデータ１２２を使用してプロビジョニングに関する情報を収集及び維持し、利用可能なリソースの適切な（又は単純に許容可能な）使用を行うために１つ以上の仮想マシン、それらに関連付けられた記憶コンポーネント（仮想マシンディスク（virtual machine disk、ＶＭＤＫ））、関連付けられた機能などをプロビジョニングする様式を決定することができる。これは、例えば、所与のＶＭを受け入れる決定であってもよい（例えば、どの物理マシンが所与の仮想マシンと最大数の共有メモリページを共有し、プロビジョニングデータ１２２内にその情報を記憶する可能性が高いかを示す）。プロビジョニングモジュール１２１は、プロビジョニングデータ１２２を分析して、どの物理マシンが仮想マシンをホストするかを選択することができる。プロビジョニングモジュール１２１は、様々なソースから様々な形式でプロビジョニングデータ１２２を収集することができる。プロビジョニングモジュール１２１はまた、各物理マシンのメモリに維持されているデータを追跡することができる。一実施形態では、各物理マシンは、物理マシンのメモリに記憶されたページに関する情報をプロビジョニングモジュール１２１に定期的に送信する。あるいは、当該の物理マシンは、新しいページをメモリに追加することに応答して、新しい仮想マシンが物理マシン上にプロビジョニングされたことに応答して、及び／又はエントリのリストを求めるプロビジョニングモジュール１２１による要求に応答して、リストを送信することができる。一実施形態では、各エントリは、アドレス、例えばページのアドレスを含む。一実施形態では、そのような情報は、物理マシンによってホストされる仮想マシンによって使用されるオペレーティングシステム又はアプリケーションなどの、物理マシンによってホストされる１つ以上の仮想マシンの特性を識別するタグを含むことができる。
【００６５】
仮想マシンが物理マシン上で実行されており、別の物理マシンにマイグレーションされる実施形態では、プロビジョニングモジュール１２１は、仮想マシンが実行されている物理マシンからのリソース情報（例えば、メモリ情報）を使用して、複数の利用可能な物理マシン（ターゲット物理マシン）のうちのどれに仮想マシンをマイグレーションさせるべきかを決定することができる。本例を使用して、プロビジョニングモジュール１２１は、所与の仮想マシンがマイグレーションされ得る１つ以上の候補を識別するために、仮想マシンに関する情報（仮想マシンをホストする物理マシンから受信したもの）と、ターゲット物理マシンのそれぞれの情報とを比較することができる。
【００６６】
新しい仮想マシンがプロビジョニングされるときなど、仮想マシンが物理マシン上で既に実行されていない場合、管理サーバ１２０は、仮想マシンをプロビジョニングする動作を実行し、プロビジョニングされる仮想マシンが必要とするコンピューティングリソースを決定することができる。一実施形態では、プロビジョニングモジュール１２１は、物理マシンから受信する代わりに、及び／又はそれに加えて、記憶デバイス１５０のうちの１つなどの記憶デバイスから仮想マシン情報を受信する。記憶デバイス１５０は、記憶デバイスが電源オフされた後であっても、そのような記憶デバイス上に記憶されたデータが記憶されたままになるように、永続的データ記憶を提供する。そのような記憶デバイスは、例えば、ハードディスク、コンパクトディスク（compact disc、ＣＤ）、デジタル多用途ディスク（digital versatile disc、ＤＶＤ）、若しくは他の大量記憶デバイス、又はそのような記憶デバイスのアレイを含む記憶システム（例えば、独立ディスクの冗長アレイ（redundant array of independent disk、ＲＡＩＤ）システム若しくは光学記憶ジュークボックス）であってもよい。そのような記憶デバイスはまた、そのような物理記憶デバイス及び／又は記憶システム上に実装される仮想又は論理記憶デバイスであってもよい。例えば、そのような記憶デバイスは、ＲＡＩＤ記憶システム上に実装される論理ボリュームであり得る。加えて、そのような記憶デバイスは、１つ以上の記憶デバイスを含むことができる。記憶デバイスはまた、ソリッドステート媒体（例えば、フラッシュドライブ）、光学媒体（例えば、ＣＤ及びＤＶＤ）、並びに磁気媒体（例えば、ハードディスク又は磁気テープ）を含む１つ以上の種類の記憶媒体を含むことができる。いくつかの実施形態では、そのような記憶デバイスは、クラウドストレージを使用して実装することができ、クラウドストレージでは、記憶デバイスは、必要に応じて及び／又は契約に応じて物理記憶デバイス（複数可）が割り当てられる論理記憶デバイスである。
【００６７】
いくつかの仮想マシン（例えば、ＶＭ１５６（１）〜（３）、１６６（１）〜（３）、及び１７６（１）（３））は、１つ以上のＶＭＤＫ（例えば、記憶デバイス１５０（４）に記憶されたＶＭＤＫ１８０（１）〜（Ｎ））と同様に、記憶デバイス１５０のうちの１つ以上（例えば、記憶デバイス１５０（１）〜（３））に記憶することができる。プロビジョニングモジュール１２１は、これらの仮想マシンのうちの１つ以上に関する情報を取得し、当該の仮想マシン（複数可）をプロビジョニングすることができる。プロビジョニングモジュール１２１はまた、当該の仮想マシン（複数可）を記憶するために、仮想マシン１１５のうちの１つ以上に関する情報を取得することができる。図１に描写するように、記憶デバイス１５０（１）は、重複排除モジュール１５４を含むファイルシステム１５２を実装する。ファイルシステム１５２は、仮想マシン１５６を含む、内部に記憶されたデータの重複排除をサポートする。この例では、仮想マシン１５６（１）〜１５６（３）が重複排除される。すなわち、各仮想マシン１５６は、一組のデータから形成される。特定の実施形態では、仮想マシン１５６は、仮想マシン１５６の別のデータと同一のデータを含む。これは、２つ以上の仮想マシン１５６が同一のアプリケーション及び／又はオペレーティングシステムを含む場合に起こり得る。複数の仮想マシン１５６が同一のデータを含む場合、記憶デバイス１５０（１）は、同一のデータの単一のコピーのみを記憶する。したがって、重複排除データ１５８は、仮想マシン１５６を構成するデータのどの部分が仮想マシン間で共有されているか、例えば、２つ以上の仮想マシン１５６間で同一であるかを識別する情報を含む。プロビジョニングモジュール１２１は、重複排除データ１５８を使用して、仮想マシン１５６のうちの１つをホストするための物理マシンを選択することができる。
【００６８】
そのような記憶デバイスはまた、記憶された仮想マシンの指紋を計算し、このようにして生成された指紋を指紋データとして記憶デバイス１５０のうちの１つ以上に記憶することができる１つ以上の指紋モジュールを含むことができる。仮想マシンの指紋を計算することは、仮想マシンイメージ及び仮想マシンに関係するデータをチャンクに分割することと、各チャンクの指紋を計算することと、を伴う。チャンクは、データの固定又は可変長の部分である。指紋モジュール１６２は、各チャンクの署名又は指紋を生成するために様々な機能を利用することができる。そのような機能としては、例えば、セキュアハッシュアルゴリズム（Secure Hash Algorithm、ＳＨＡ）、メッセージダイジェストアルゴリズム５（Message-Digest Algorithm5、ＭＤ５）、ラビンハッシュ、巡回冗長検査（Cyclic Redundancy Check、ＣＲＣ）などのうちの１つ以上を挙げることができる。例えば、署名は、特定のチャンクを処理し、それに応答してハッシュ（例えば、ＳＩＳレベル署名）を計算するＳＨＡ−１などのハッシュ関数によって生成されるハッシュであってもよい。
【００６９】
そのようなシナリオでは、プロビジョニングモジュール１２１は、得られた指紋データにどのような指紋が記憶されているかに関する情報を記憶デバイス１５０から受信する。記憶デバイス１５０のうちの１つ以上は、新しい指紋の追加に応答して（例えば、新しい仮想マシンが記憶デバイス１５０のうちの１つに記憶される場合）、及び／又はプロビジョニングモジュール１２１による要求に応答して、指紋に関する情報をプロビジョニングモジュール１２１に定期的に送信することができる。そのような要求は、指紋データがプロビジョニングモジュール１２１に送信されるべき１つ以上の仮想マシンを指定することができる。
【００７０】
コンピューティング環境１００などの環境では、本明細書に記載されるものなどの方法及びシステムは、上述のように、管理モジュール１２０を構成する管理モジュールのうちの１つ以上によって提供されるオーケストレーション機能をサポートするために、属性グラフ作成モジュール１２５及び属性グラフ分析モジュール１２６、並びに作成／分析された属性グラフデータ（例えば、属性グラフデータ１２７）を含む。本開示に照らして理解されるように、属性グラフ作成モジュール１２５は、属性グラフデータ１２７などの属性グラフデータの作成を容易にする機能を提供する。属性グラフ分析モジュール１２６は、そのような属性グラフデータの分析を容易にする機能を提供し、並びに１つ以上のオーケストレーションシステムによる使用に適した形式の情報を生成する。そのような機能の例を、例えば、図８、図９、及び図１０に関連して（属性グラフ作成モジュール１２５に関して）、並びに図８、図１１、及び図１２に関連して（属性グラフ分析モジュール１２６及びその出力を使用するオーケストレーションシステムに関して）与える。
【００７１】
図２は、物理マシン１１０のブロック図である。物理マシン１１０は、メモリ２００及びプロセッサ２０２を含む。物理マシン１１０はまた、いくつかの仮想マシン１１５（１）〜１１５（３）を含む。３つの仮想マシンが示されているが、物理マシン１１０は、より多い又はより少ない仮想マシンをサポートすることができる。
【００７２】
メモリ２００は、オペレーティングシステム２０５を含む。オペレーティングシステム２０５は、物理マシン１１０のハードウェアを制御し、クライアント物理マシン１１０上で実行されるアプリケーション及び仮想マシンに様々なサービスを提供する。例えば、仮想マシン１１５が（仮想化モジュール２２５（例えば、ハイパーバイザなど）などの仮想化モジュールを介して）あるページをメモリ２００にロードすることを要求すると、オペレーティングシステム２０５は、その要求をファイルシステム２１０に中継することができ、ファイルシステム２１０は、例えば、記憶デバイス１５０のうちの１つのファイルデータからそのページを読み出すことを要求することができる。ファイルシステム２１０は、ページを受信し、ページをメモリ２００に、例えば、仮想マシンデータ２４０に書き込むことができる。ファイルシステム２１０は、記憶デバイス１５０のうちの１つのファイルデータなどのデータをファイル及びディレクトリに整理することができる。ファイルシステム２１０は、記憶デバイス１５０のうちの１つ以上にあるファイル及びデータの物理的位置のリストを維持することができる。
【００７３】
メモリ２００は、重複排除モジュール２３０を含む。重複排除モジュール２３０は、仮想マシンデータ２４０を含むメモリ２００に関係する重複排除動作を実行することができる。指定されたデータユニット、例えばページをメモリ２００に読み込むとき、重複排除モジュール２３０は、同一のデータを含むデータユニットがメモリ２００内に既に存在するかどうかを判定し、例えば、そのデータが物理マシン１１０上にホストされた別の仮想マシンによって要求されていることがあり、そのデータへのアクセスを可能にする。
【００７４】
一実施形態では、重複排除モジュール２３０は、ファイルシステム２１０によるページ要求について通知される。ページがメモリ内に既に存在するかどうかを判定するために、重複排除モジュール２３０は、ページの署名、例えば指紋を計算し、その指紋を仮想マシンデータ２４０に記憶された指紋のリストと比較する。指紋がリスト内に存在する場合、ページは冗長であり、重複排除モジュール２３０は、読み込みをキャンセルするようにファイルシステム２１０に通知することができる。指紋が見つからない場合、ページは、仮想マシンデータ２４０に既に記憶されておらず、重複排除モジュール２３０は、その指紋を指紋のリストに追加し、読み込みを続行させる。仮想マシンデータ２４０は、仮想マシン１１５によって使用されるデータ、並びにデータの指紋のリストを含む。
【００７５】
メモリ２００は、仮想化モジュール２２５を含む。仮想化モジュール２２５は、仮想マシン及び仮想マシンのためのリソースの作成及び管理に関係する動作を実行する。仮想化モジュール２２５は、スタンドアローンモジュールとして例示されているが、オペレーティングシステム２０５に含まれてもよい。仮想化モジュール２２５は、仮想マシン１１５などの１つ以上の仮想マシンを同時にサポートする能力を物理マシン１１０に提供する。仮想化モジュール２２５は、仮想マシンが物理的コンピュータと同様に動作するように、コンピュータリソース（例えば、処理パワー、メモリなど）の仮想マシンへの分配を調整することによって、この能力を提供する。仮想化モジュール２２５は、仮想マシンの代わりに命令の実行をサポートするようにプロセッサリソースを調整し、仮想マシンがホストコンピュータのシステムメモリを効果的に共有することを保証するようにメモリ管理を実行することによって、仮想マシンをサポートするように設計することができる。更に、仮想化モジュール２２５の特定の実施形態は、ホストオペレーティングシステムを必要としない（一般に「ベアメタルハイパーバイザ」などと呼ばれる）。
【００７６】
メモリ２００は、クラスタモジュール２３５を含む。一実施形態では、複数の仮想マシンの配置又はマイグレーション決定を一度に行うことが望ましい場合がある。そのような実施形態では、配置サーバは、同様に位置する仮想マシンのクラスタを形成することができる。クラスタのサイズは、各物理マシン上の利用可能なリソース、仮想マシンのリソース要件などの様々な要因に依存し得る。様々なアルゴリズムをクラスタ化に使用することができる。
【００７７】
物理マシン１１０はまた、仮想マシン１１５（１）〜１１５（３）を含む。一般的な用語では、仮想マシン１１５は、物理コンピュータシステムとして機能するソフトウェア構造体である。例えば、仮想マシン１１１５は、アプリケーションを含み、アプリケーションを実行し、サービスを提供し、コマンドを処理することができる。仮想マシンは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｕｎｉｘ（登録商標）などのそれ自体のオペレーティングシステムを有し、物理マシン１１０上に設けられた仮想化モジュール２２５などのホスト上の仮想化ソフトウェアとインターフェース接続することができる。
アーキテクチャの特徴及びその表現構造体の例
【００７８】
図３は、一実施形態による、コンピューティング環境分析アーキテクチャの一例を例示するブロック図である。上述のように、本明細書に記載されるものなどの方法及びシステムは、以下に記載されるものなどの要素を提供する。
１．コンピューティング環境内の様々なエンティティの表現
２．エンティティの注釈
３．依存性マッピングの識別
４．依存性マッピングのための標準インターフェース
【００７９】
エンティティ及び関係の表現に関して、本明細書に記載されるものなどの方法及びシステムは、１つ以上の抽出／変換／読み込み（extract/transform/load、ＥＴＬ）プロセスによって供給されるエンティティ記録を属性グラフなどの表現構造体へと表現する。この結果、エンティティがそのような属性グラフの頂点として表され、それらの関係がそのような属性グラフのエッジとして表された、エンティティ及びそれらの互いとの関係のグラフ抽象化が得られる。
【００８０】
そのような方法及びシステム、並びに表現構造体は、エンティティの注釈を提供する。オーケストレーションすることができるエンティティ（例えば、アップダウン、有効化無効化などの操作インターフェースをサポートするエンティティ）は、注釈を付けることができる。そのようなエンティティの例は、アプリケーション、仮想マシン、ファイルシステム、データストア、アレイ整合性グループなどである。
【００８１】
そのような注釈としては、例えば、以下のものを挙げることができる：
・＿ｅｃｏｓｙｓｔｅｍ（＿ｅ）：エンティティに対して可能な動作によるエンティティのグループ化。例としては、計算、記憶、ネットワーク、複製、クラウドなどが挙げられる。
・＿ｔｅｃｈｎｏｌｏｇｙ（＿ｔ）：エコシステムを可能にする技術の名称。例としては、ＶＭエンティティ、複製エンティティ、クラウドエンティティなどが挙げられる。
【００８２】
特定のエンティティは、オーケストレーション、特定のオーケストレーション動作、若しくは特定のシステム動作中のオーケストレーションに適していない場合があり、又はオーケストレーションに決して適していない場合がある（例えば、ユニットを物理的に移動させることによる場合を除いて、物理マシンをマイグレーションさせることができない）。その結果、そのようなエンティティは、オーケストレーションされる必要がない（又はそれどころかできない）場合がある（例えば、物理サーバ、エンクロージャ、ハイパーバイザなど）。
【００８３】
したがって、データ転送（複製／コピー）のために構成されたエンティティは、属性で注釈を付けることができる。
・＿ｒｅｐｌｉｃａｔｅｄ：例えば、複製されたエンティティの注釈は、＿ｒｅｐｌｉｃａｔｅｄである。そのようなエンティティの例は、複製されたＬＵＮ、帯域外複製を使用して複製されたバックアップイメージ、複製されたデータストアなどである。
・＿ｃｏｐｙ：スナップショット及びバックアップコピーは、加えて、＿ｃｏｐｙで注釈を付けられる。
【００８４】
本明細書に記載されるものなどの方法及びシステムは、依存性マッピングの識別もサポートする。必要とされる依存性マッピングの識別は、所与のワークロードに対するエンティティ及び関係の最適な順序付けられた集合を識別する反復的プロセスである。
・システムは、ソースデータセンター上の選択されたワークロードから開始して、エンティティの階層を横断する。
・システムは、＿ｔｅｃｈｎｏｌｏｇｙで注釈を付けられたエンティティを記録する。
・＿ｒｅｐｌｉｃａｔｅｄで注釈を付けられたエンティティは、ソースデータセンターのマイグレーション接触点として記録される。
・そのようなエンティティについては、システムは、関係を精査すること、及び＿ｒｅｐｌｉｃａｔｅｄで注釈を付けられた経路を選択することによって、ターゲットデータセンター上の関係するエンティティを探し、ターゲットデータセンター上のマイグレーション接触点としてそれらを記録する。
・複製／コピーがどのように構成されるかに応じて、２つ以上の遠隔ターゲットが存在し得る。
・システムは、ターゲットデータセンター上のマイグレーション接触点から開始して、エンティティの階層を横断する。
・システムは、＿ｔｅｃｈｎｏｌｏｇｙで注釈を付けられたエンティティを記録する。
【００８５】
本明細書に記載されるものなどの方法及びシステムはまた、標準表現を提供する。そのようなプロセスは、ソース及びターゲットデータセンター上のエンティティの順序付けられたリストを提供する。次いで、システムは、エンティティをエコシステム及び技術のグループに統合して、オーケストレーションされ得る様々な層のビューを提供する。
【００８６】
単純に述べると、属性グラフを表現構造体として使用するとき、頂点及びエッジの両方が属性を有する（キーが属性名であるキー値ペア）そのような属性グラフを使用して、上述のように、エンティティ及びそれらの関係に関する情報を維持することができる。ここでの利点は、そのような表現構造体はエッジ上にも属性を有するので、横断は、経路／関係の特性を考慮に入れることもでき、横断は、後で分析中に使用することができる永久的又は一時的なタグとして、エッジ／関係上に属性を刻印することができることである。そのような表現構造体が含むことができる情報の種類（及びしたがって特性）の一例としては、以下のとおりである：
頂点１：
｛
＿ｔｙｐｅ：“ホスト”
ｉｄ：“１２３４５２３１”
＿ｔｅｃｈｎｏｌｏｇｙ：“ＶＭｗａｒｅ”
＿ｅｎｖｉｒｏｎｍｅｎｔ：“仮想化”
プラットフォーム：“ＥＳＸｉ”
ｎｃｐｕ：１６
｝
頂点２：
｛
＿ｔｙｐｅ：“ディスク”
ｉｄ：“９８３４５２３１”
＿ｅｎｖｉｒｏｎｍｅｎｔ：“仮想化”
サイズ：“１６ＧＢ”
種類：“ＳＳＤ”
｝
頂点３：
｛
＿ｔｙｐｅ：“ディスク”
ｉｄ：“９８３４５２３２”
＿ｅｎｖｉｒｏｎｍｅｎｔ：“仮想化”
サイズ：“１６ＧＢ”
種類：“ＳＳＤ”
｝
頂点１と頂点２との間のエッジ：
｛
ラベル：“包含”
モード：“読み書き”
｝
頂点１と頂点３との間のエッジ：
｛
ラベル：“包含”
モード：“リードオンリー”
｝
【００８７】
上記に見られるように、特定の特性（＿ｔｙｐｅ、＿ｅｎｖｉｒｏｎｍｅｎｔなど）を使用して、所与のエンティティの適切な管理について決定を行い、それらの間の依存性を判定することができる。
【００８８】
前述のことを考慮して、図３は、コンピューティング環境分析アーキテクチャ３００を描写する。コンピューティング環境分析アーキテクチャ３００は、本開示に照らして理解されるように、例えば別個のモジュールとして実装することができるいくつかのソフトウェア及び／又はハードウェア層を含む。更に、図３に描写される層のうちの１つ以上は、同図に示される他の層と組み合わされ、除去され、他の層によって拡張されてもよい。コンピューティング環境分析アーキテクチャ３００の層としては、図３に描写するように、マイグレーション層３１０、ワークフロー作成層３２０、及びエンティティ表現層（オーケストレーション）３３０、接触点識別層３４０、依存性識別層３５０、エンティティ表現層３６０、エンティティ注釈層３７０、並びにＥＴＬ（抽出／変換／ロード）処理層３８０が挙げられる。所与のコンピューティング環境のエンティティのうちの１つ以上に対してオーケストレーションを実行するための必要条件として、所与のコンピューティング環境の様々な仮想及び物理ハードウェア及びソフトウェアユニットを表す、本明細書に記載される属性グラフなどの構造体（又は同等のそのような構造体）は、エンティティ及びそのような構造体におけるそれらの関係として表される。これらのエンティティ及び関係は、例えば、データセンターなどのコンピューティング環境内の様々なハードウェア及びソフトウェアユニットを表す。そのような構造体は、所与のエンティティの特性で注釈を付けることができ、次いで、そのような情報は、オーケストレーションシステムによって、それらのエンティティをオーケストレーションするために使用され得る。そのようなエンティティの注釈としては、エンティティのエコシステム、技術、エンティティが複製されているかどうか、エンティティがコピーされているかどうか、及び他のそのような特性を識別する情報を挙げることができる。そのような構造体、本明細書に記載されるものなどの方法及びシステムの使用により、所与のワークロードの接触点に基づいて、依存性マッピングの識別及び影響されるエンティティのマイグレーションが提供される。その場合、そのような構造体は、ソースコンピューティング環境（例えば、データセンター）内で横断することができ、したがって、そのようなエンティティ及びそれらの関係に関する情報の記録を可能にする。例えば、所与のマーカ（例えば、技術）でマーキングされたエンティティは、分析プロセス（例えば、本明細書に記載されるような属性グラフ分析プロセス）が、所与のオーケストレーションシステムの動作の一環としてその後マイグレーションすることができるエンティティに関する情報を記録することを可能にする。そのような横断はまた、複製されている又はコピーされているとしてマーキングされたエンティティに基づいて、ターゲットコンピューティング環境（例えば、データセンター）に切り替わることもできる。そのようにすることで、そのような横断は、データセンター間の境界を横断することができる。
【００８９】
その結果、そのような例では、属性グラフをターゲットデータセンターに横断することができ、所与の技術に関連付けられているとしてマーキングされたターゲットデータセンター内のエンティティ（例えば、マイグレーションすることができる仮想デバイス）の記録を可能にする。更に、横断経路は、外部のプラガブルなルール、並びに分析システムのための他の手動で入力されたガイダンスを考慮に入れるように、（例えば、管理者に提示されるユーザインターフェースによって）カスタマイズすることができる。属性グラフなどのワークフローに優しい表現を使用することにより、本明細書に記載されるような分析システムは、例えば、ソース及びターゲットデータセンター上のエンティティの順序付けられたリストを提供することができる。更に、そのような表現は、エンティティをエコシステム及び技術のグループに統合して、所与のオーケストレーションシステムによってオーケストレーションされ得る様々な層のビューを提供する。
【００９０】
図４は、一実施形態による、コンピューティング環境の一例を例示するブロック図である。したがって、図４は、コンピューティング環境４００を描写し、コンピューティング環境４００は、境界４１５によって分離されたソースシステム４０５とターゲットシステム４１０とを含む。境界４１５などの境界の例は、論理的（例えば、異なる仮想ネットワーク、異なるネットワークドメインなど）又は物理的（例えば、距離によって物理的に分離されている、物理的に別個のネットワークなど）であり得る。その場合、コンピューティング環境４００などのコンピューティング環境における依存性を分析する際に直面する課題のうちの１つとしては、境界４１５などの境界を越えた依存性を判定する必要性が挙げられる。
【００９１】
コンピューティング環境４００は、図４に描写するように、ワークロード４２０として示されるエンティティを含む。ワークロード４２０は、エンティティ４２２及び４２４、並びにエンティティ４３０との関係を有する。ソースシステム４０５はまた、エンティティ４３２、４３４、４４０、４４２、及び４４４を含む。描写されるように、エンティティ４３０は、エンティティ４３２、４３４、及び４４０との関係を有する。エンティティ４４０は、エンティティ４４２及び４４４との関係を有する。エンティティ４４０はまた、ターゲットシステム４１０内のエンティティ（図４にエンティティ４５０として描写される）との関係を有する。エンティティ４５０は、ターゲットシステム４１０のエンティティ４５２及び４５４との関係を有するだけでなく、エンティティ４６０にも関係し、エンティティ４６０は、図４にリソース４７０として描写されるエンティティに関係する。図４に描写されるコンピューティング環境４００の表現は、同図に描写されるエンティティ及び関係の横断を可能にする。最適な依存性マッピング及びインフラストラクチャ接触点の識別は、アプリケーション及びデータセンターの災害復旧及びマイグレーションなどのオーケストレーション操作をサポートするワークフローを構築するために重要である。そのような依存性は、図４において、特定のエンティティ及び関係に使用されるより太い線幅によって例示される。例えば、ワークロード４２０は、エンティティ４３０に依存し、エンティティ４３０は、エンティティ４４０に依存する。ソースシステム４０５内のエンティティ４４０は、ターゲットシステム４１０内のエンティティ４５０に依存する。依存関係は、ターゲットシステム４１０内のリソース４７０、エンティティ４６０、及びエンティティ４５０との間にも存在する。したがって、これらのエンティティ及びそれらの関係を表す構造体を横断することによって、本明細書に記載される方法及びシステムによる依存性分析システムは、当該のエンティティの順序付けられた表現を生成し、よって、それによって表されるハードウェア及びソフトウェアユニット上でのオーケストレーション動作をサポートすることができる。
【００９２】
図５は、一実施形態による、複数の接触点を有するコンピューティング環境の一例を例示するブロック図である。ワークロード５２０は、エンティティ５２２及び５２４、並びにエンティティ５３０との関係を有する。ソースシステム５０５はまた、エンティティ５３２、５３４、５４０、５４２、及び５４４を含む。描写されるように、エンティティ５３０は、エンティティ５３２、５３４、及び５４０との関係を有する。エンティティ５４０は、エンティティ５４２及び５４４との関係を有する。エンティティ５４０はまた、ターゲットシステム５１０内のエンティティ（図５にエンティティ５５０として描写される）との関係を有する。エンティティ５５０は、ターゲットシステム５１０のエンティティ５５２及び５５４との関係を有するだけでなく、エンティティ５６０にも関係し、エンティティ５６０は、図５にリソース５７０として描写されるエンティティに関係する。
【００９３】
図５に描写されるコンピューティング環境５００の表現は、前述の様式で、同図に描写されるエンティティ及び関係の横断を可能にする。最適な依存性マッピング及びインフラストラクチャ接触点の識別は、アプリケーション及びデータセンターの災害復旧及びマイグレーションなどのオーケストレーション動作をサポートするワークフローを構築するために重要である。そのような依存性は、図５において、特定のエンティティ及び関係に使用されるより太い線幅によって例示される。例えば、ワークロード５２０は、エンティティ５３０に依存し、エンティティ５３０は、エンティティ５４０に依存する。ソースシステム５０５内のエンティティ５４０は、ターゲットシステム５１０内のエンティティ５５０に依存する。依存関係は、ターゲットシステム５１０内のリソース５７０、エンティティ５６０、及びエンティティ５５０との間にも存在する。したがって、これらのエンティティ及びそれらの関係を表す構造体を横断することによって、本明細書に記載される方法及びシステムによる依存性分析システムは、当該のエンティティの順序付けられた表現を生成し、よって、それによって表されるハードウェア及びソフトウェアユニット上でのオーケストレーション動作をサポートすることができる。図５には、エンティティ５２４とリソース５８０との関係も描写されている。本開示に照らして理解されるように、エンティティ５２４とリソース５８０との間の関係は、境界５１５を横切る。この情報は、エンティティ５４０とエンティティ５５０との間の関係の様式で、エンティティ５２４とリソース５８０との間のエッジに関連付けられる。
【００９４】
図６は、一実施形態による、コンピューティング環境内のハードウェア及びソフトウェアエンティティの一例を例示するブロック図である。描写されるように、図６のコンピューティング環境は、境界６０６によって分離されたデータセンター６０２とデータセンター６０４とを含む。上述のように、境界６０６などの境界は、データセンター６０２と６０４との間の論理的分離、物理的分離、及び他のそのような状況から生じ得る。理解されるように、境界６０６によって表される分離は、典型的には、災害復旧計画などの結果として意図的である。データセンター６０２は、例えば、物理マシン６１０及び記憶システム６１２を含む。同様に、データセンター６０４は、物理マシン６１６及び記憶システム６１８を含むものとして描写されている。データセンター６０２及び６０４は、広域ネットワーク６２０によって互いに通信可能に結合される。データセンター６０２内のエンティティは、企業ネットワーク６２２を介して互いに通信することができ、企業ネットワーク６２２は、広域ネットワーク６２０に結合される。同様の方式で、データセンター６０４は、企業ネットワーク６２４を含み、企業ネットワーク６２４は、データセンター６０４のエンティティ（例えば、物理マシン６１６及び記憶システム６１８）を互いに結合する。データセンター６０４はまた、企業ネットワーク６２４によって広域ネットワーク６２０に通信可能に結合される。
【００９５】
図６に描写される物理マシン（物理マシン６１０及び６１６）は、様々なハードウェア及びソフトウェアユニットをサポートする。例えば、物理マシン６１０は、プロセッサ６３０、ネットワークインターフェース６３２、及びメモリ６３４を含む。図６に描写するように、様々なソフトウェアモジュールがメモリ６３４内に記憶される（かつ、メモリ６３４から実行される）。そのようなソフトウェアモジュールは、例えば、オペレーティングシステム６５０、仮想化モジュール６５２、及び１つ以上の仮想マシン（図６に仮想マシン（ＶＭ）６５４（１）〜（Ｎ）として描写される）を含むことができる。仮想化モジュール６５２は、例えば、仮想マシン６５４（１）〜（Ｎ）をサポートするためのハイパーバイザ又は同等の構造体として実装することができ、仮想マシン６５４（１）〜（Ｎ）は、１つ以上のアプリケーション（図６にアプリケーション６５５（１）〜（６）として描写される）の実行をサポートする。記憶システム６１２は、１つ以上の関連付けられた仮想マシン（例えば、仮想マシン６５４（１）〜（Ｎ））のための記憶を提供する仮想マシンディスク（ＶＭＤＫ）６５８（１）〜（Ｎ）を含む。
【００９６】
同様の方式で、物理マシン６１６は、プロセッサ６６０、ネットワークインターフェース６６２、及びメモリ６６４などのコンポーネントを提供する。メモリ６３４の様式で、メモリ６６４は、オペレーティングシステム６７０、仮想化モジュール６７２、及びいくつかの仮想マシン（図６に仮想マシン６７４（１）〜（Ｎ）として描写される）などのソフトウェアモジュールを記憶し、その実行を可能にする。仮想マシン６７４（１）〜（Ｎ）は、いくつかのアプリケーション（図６にアプリケーション６７５（１）〜（４）として描写される）をサポートすることができる。記憶システム６１８は、１つ以上の関連付けられた仮想マシン（例えば、仮想マシン６５４（１）〜（Ｎ））のための記憶を提供する仮想マシンディスク（ＶＭＤＫ）６７８（１）〜（Ｎ）を含む。
【００９７】
図７は、一実施形態による、図６のコンピューティング環境の部分を表す属性グラフの表現の一例を例示するブロック図である。図７では、図６のコンピューティング環境６００などのコンピューティング環境は、属性グラフ７００（又は同様の構造体）によって表される。前と同様に、データセンター６０２及びデータセンター６０４は、境界６０６によって分離されている。属性グラフ７００において、データセンター６０２及びデータセンター６０４内のエンティティは、図７に描写するように、記憶情報グループ７２０と記憶情報グループ７２５との間の複製関係７１０を介して互いに関係を有する。見られるように、これら及び他のエンティティは、図６には示されないが、物理的又は論理的に存在するため、属性グラフ７００に表現される。上述の様式で、属性グラフ７００は、図６に示すエンティティ間の関係も表す。例えば、アプリケーション６５５（１）は、アプリケーション６５５（２）に依存する。アプリケーション６５５（１）及び６５５（２）は、仮想マシン６５４（１）に依存する。仮想マシン６５４（１）は、仮想化モジュール６５２に依存し、仮想マシンディスクのうちの１つ（仮想マシンディスク６５８（１））にも依存する。アプリケーション６５５（１）及び６５５（２）は、論理ストレージ識別子７４０によって識別される記憶ユニット７３５上に記憶されたデータセット７３０にも依存し、これらは全て記憶システム６１２内に存在する。記憶システム６１２の記憶ユニット（例えば、論理ストレージ識別子７４０によって識別される記憶ユニット７３５）は、ストレージグループ情報７２０によってストレージグループのメンバーであると識別され、その結果、データセンター６０４内のストレージグループ情報７２５を介してデータセンター６０４内のストレージとの複製関係（複製関係７１０）が得られる。データセンター６０２と同様の様式で、データセンター６０４は、例えば、論理ストレージ識別子７６０によって識別される記憶ユニット７５５に記憶されたデータセット７５０を記憶システム６１８内に含めることによって、複製関係７１０に対するサポートを提供する。
表現構造体の作成及び分析のための例示的なプロセス
【００９８】
図８は、一実施形態による、属性グラフの実装のための例示的なプロセスを描写するフローチャートである。図８は、属性グラフ実装プロセス８００を描写する。属性グラフ実装プロセス８００は、８１０における属性グラフの作成から始まる。必要な属性グラフ（複数可）が作成されると、それによって表されるハードウェア及びソフトウェアコンポーネントの分析を実行することができる。したがって、属性グラフ分析は、工程８２０で実行される。当該のコンピューティング環境のハードウェア及びソフトウェアコンポーネントが、そこに記載されるものなどの方法及びシステムを使用して分析されたので、それらのハードウェア及びソフトウェアコンポーネントのオーケストレーションをこれより実行することができる。このようにして実行された属性グラフ分析の１つ以上の結果に基づくオーケストレーションが、次いで工程８３０で達成される。
【００９９】
図９は、一実施形態による、属性グラフ作成のための例示的なプロセスを描写するフローチャートである。属性グラフ（又は１つ以上の属性グラフ）の作成は、図９に描写されるような属性グラフ作成プロセス９００によって達成することができる。属性グラフ作成プロセス９００は、属性グラフ（又はその一部分）を作成するための開始点としてのエンティティ（例えば、データセンター内のハードウェア及び／又はソフトウェアコンポーネント）の識別から始まり、それは９１０で選択されている。選択されたエンティティについて、選択されたエンティティのエンティティ情報が既に収集されているかどうかについて判定が行われる（９２０）。選択されたエンティティのエンティティ情報がまだ収集されていない場合、選択されたエンティティに関するエンティティ情報が収集され、選択されたエンティティを表す属性グラフ内のノードと関連付けて記憶される（９３０）。必要なエンティティ情報が収集され記憶されると（又はそのような収集及び記憶が既に実行されており、したがって必要ではないと判定されると）、選択されたエンティティが、属性グラフ内のノードの作成を必要とする最後のエンティティであるかどうかについて判定が行われる（９４０）。選択されたノードが実際に最後のエンティティであった場合、プロセスは終了する。
【０１００】
あるいは、追加のエンティティが残っている場合、管理ソフトウェアは、これらのエンティティを属性グラフに追加するために、選択されたエンティティが他のエンティティとの間で有し得る関係を横断する（９５０）。そのような関係を横断するためのプロセスの一例を、以下の図１０に描写されるプロセスに関連して説明する。管理システムが選択されたエンティティから次のエンティティへと横断すると、次のエンティティが分析のための次の選択されたエンティティとして選択される（９６０）。次いで、このプロセスは、（現在）選択されたエンティティについてエンティティ情報が既に収集されているかどうかについての判定に戻る（９２０）。このプロセスは、当該のエンティティに関するエンティティ情報が収集され、属性グラフ内のエンティティに関連して記憶されるまで継続する。
【０１０１】
図１０は、一実施形態による、属性グラフを作成するために、一実施形態による、エンティティ及びそれらの関係を横断するための例示的なプロセスを描写するフローチャートである。上述のように、管理ソフトウェアは、そのようなコンポーネント及びその関係を表す構造体（例えば、属性グラフ）を構築するために、ハードウェア及びソフトウェアコンポーネント及びそれらの関係を横断することになる。この目的のために、管理プロセスは、図１０に描写されるように、属性グラフ作成横断プロセス１０００によって、そのようなコンポーネントをそれらの関係によって横断することになる。属性グラフ作成横断プロセス１０００は、現在のエンティティが他のエンティティとの間で有する（すなわち、当該のコンポーネントが、所与のデータセンター又は他のデータセンター内の他のコンポーネントとの間で有する）１つ以上の関係の識別から始まる（１０１０）。次に、これらのエンティティ関係のうちの１つが選択される（１０２０）。次いで、選択されたエンティティ関係（すなわち、当該のコンポーネント間の関係）に関する関係情報を収集し、この関係を表す属性グラフのエッジと関連付けて記憶する（１０３０）。次いで、属性グラフに追加されるべき現在のエンティティ（コンポーネント）と他のそのようなエンティティ（コンポーネント）との間の他のエンティティ関係が残っているかどうかについて判定が行われる（１０４０）。更なる関係が存在せず、したがって作成を必要としない場合、プロセスは、存在するエンティティが関係を有するどの次のエンティティが選択されるべきかの点に進む（１０５０）。次いで、プロセスは終了する。あるいは、属性グラフに追加されるべき追加のエンティティ関係が残っている場合（１０４０）、属性グラフ作成横断プロセス１０００は、図９に描写される属性グラフ作成プロセス（属性グラフ作成プロセス９００）の実行に進み、残りのエンティティ関係（Ｓ）を表す必要なリンク（ＳＭ）の作成を可能にし、開始エンティティは現在選択されているエンティティ（１０６０）である旨の表示が行われる。そのようにすることで、本開示に照らして理解されるように、属性グラフ作成横断プロセス１０００（及びしたがって属性グラフ作成プロセス９００）における１つ以上の残りのリンクを作成するプロセスは、本質的に再帰的であり、したがって、本明細書に記載されるものなどの方法及びシステムによるグラフの作成を提供する様式で、コンポーネント及びそれらの関係を探索する。したがって、所与のコンポーネントが他のコンポーネントとの間で有し得る複数の関係として、エッジ（リンク）は、得られる属性グラフに作成され得、したがって、コンピューティング環境におけるコンポーネント及びそれらの関係の正確な表現を提供することができる。
【０１０２】
図１１は、一実施形態による、１つ以上の属性グラフを分析するための例示的なプロセスを描写するフローチャートである。したがって、属性グラフ分析は、例えば、属性グラフ分析プロセス１１００によって実行することができる。属性グラフ分析プロセス１１００は、オーケストレーションされるべきワークロードを表す所与の属性グラフ内のノードの識別から始まる（１１１０）。そのようにすることで、属性グラフ分析プロセス１１００は、このノードを依存性分析の開始点として識別する。次に、属性グラフ内のノードに関連付けられたエンティティ情報を分析する（１１２０）。選択されたノードに関連付けられたエンティティ情報は、エンティティ（ノード）が生成されている依存性チェーンの一部であるべきであることを示すかどうかについて判定が行われる（１１３０）。エンティティ情報が、エンティティが依存性チェーンの一部とされる必要がないことを示す場合、選択されたノードが、所与の依存性チェーンについて分析されるべき最後のそのようなノードであるかどうかについて判定が行われる（１１４０）。当該のノードが最後のそのようなノードである場合、プロセスは終了する。あるいは、エンティティ情報が、ノードが依存性チェーン内に含まれるべきであることを示す場合、そのようなエンティティ情報は、収集され、記録されている依存情報に記憶される（１１５０）。前と同様に、次いで、選択されたノードが依存性チェーン内の最後のノードであるかどうかについて判定が行われる（１１４０）。選択されたノードが依存性チェーン内の最後のノードである場合、プロセスは終了する。あるいは、分析されるべき更なるノードが残っている場合、プロセスは、適切なリンク（複数可）及び属性グラフの横断に進み、依存性チェーン（１１６０）内に含まれるべきである可能性がある次のノード（複数可）に到達する。次のノードへの横断において実行することができる動作の一例を、以下の図１２に関連して詳細に論じる。分析されるべき属性グラフ内の次のノードに横断すると、属性グラフ分析プロセス１１００は、当該のノードを選択し、その分析に進む（１１７０）。したがって、プロセスは、この選択されたノードの分析に戻り（１１２０）、属性グラフ分析プロセス１１００のプロセスは継続する。
【０１０３】
図１２は、一実施形態による、属性グラフを分析する一環として属性グラフを横断するための例示的なプロセスを描写するフローチャートである。したがって、属性グラフ分析横断プロセス１２００が描写されており、属性グラフ内の現在のノードから属性グラフ内の他のノードへの１つ以上のエッジの識別から始まる（１２１０）。この時点で、属性グラフ分析横断プロセス１２００は、そのエンティティの、属性グラフで表される別のエンティティとの関係を表す現在のノードからのエッジを選択する（１２２０）。次いで、エッジ（関係）に関係するエッジ情報が、エッジが依存性チェーン（１２３０）に含まれることになる１つ以上のノードにつながることを示すかどうかについて判定が行われる。所与のエッジがそのようなノードにつながっていない（したがって、属性グラフを通るこの経路に沿った更なる分析が必要でないと結論付けることができる）場合、そのような経路に沿った横断は続行する必要はない旨の表示が行われる（１２４０）。次いで、プロセスは終了する。あるいは、当該のエッジ情報が、エッジが依存性チェーンの一部であるべき１つ以上のノードにつながることを示す場合、属性グラフ内の現在のノードからの他のエッジが横断される必要があるかどうかについて判定が行われる（１２５０）。現在のノードからの他のエッジが横断される必要がない場合、エッジが接触点（接触点）を表すかどうかについて判定が行われ、そうである場合には、接触点情報が依存性データに記録される（１２６０）。次いで、横断はそのように識別された次のノードに進むことができる旨の表示が行われる（１２７０）。次いで、プロセスは終了する。
【０１０４】
あるいは、横断されるべき属性グラフ内の現在のノードからの他のエッジが残っている場合（１２５０）、属性グラフ分析横断プロセス１２００は、残りのエッジについて属性グラフ分析（属性グラフ分析横断プロセス１１００）を実行し、そのような分析の開始ノードが現在のノードである旨を表示する（１２８０）。前述したものと同様の様式で、このプロセスは、本質的に再帰的であり、したがって、全ての必要なノード（及びしたがってエンティティ）が、災害復旧などの管理タスクを実行するためにオーケストレーションソフトウェアによって使用され得る順序付けられた依存情報に含まれることを確実にするような様式で、当該の属性グラフを横断することが理解されるであろう。前と同様に、現在のエッジが接触点を表す場合、この接触点に関する情報は、オーケストレーションソフトウェアによる使用のために、依存性データに記録される（１２６０）。また前と同様に、次いで、当該の属性グラフの横断が、そのように識別された次のノードに進むことができる旨の表示が行われる（１２７０）。次いで、プロセスは終了する。
表現構造体の例
【０１０５】
図１３は、低レベルの複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。図１３の例では、仮想マシンは、ＬＵＮレベル複製で保護される（仮想マシンは、ストレージアレイレベルで複製されたＬＵＮ上にあるデータストアに常駐するため、保護される）。したがって、属性グラフ１３００は、図１３に描写されており、前と同様に、境界１３０６によって分離されたデータセンター１３０２及びデータセンター１３０４内のエンティティの表現を含む。図１３に描写されるエンティティ（ノード）によって表されるデータセンター１３０２内のコンポーネントとしては、仮想マシン１３１０、仮想マシンディスク１３１５、及びデータセット１３１７が挙げられる。仮想マシン１３１０、仮想マシンディスク１３１５、及びデータセット１３１７は、仮想化モジュール１３２０によってサポートされる。データセット１３１７は、エンクロージャ１３３５内の記憶ユニット１３３０上に記憶される。記憶ユニット１３３０は、論理ユニット番号１３４０によって識別される。記憶ユニット１３３０に記憶された情報は、データセンター１３０２内の整合性グループオブジェクト１３５０とデータセンター１３０４内の整合性グループオブジェクト１３５５との間で複製される。複製動作は、低レベル複製関係１３６０によって表される。データセット１３１７の複製が実行され、したがって、データセット１３１７内のデータは、エンクロージャ１３７５内の記憶ユニット１３７０に記憶され、論理ユニット番号１３８０によって識別されるデータセット１３１６に複製される。データセット１３６０は、仮想化モジュール１３９０によってサポートされる。
【０１０６】
図１３に描写するように、属性グラフ１３００のノードによって表される様々なエンティティは、（例えば、災害復旧の場合に）マイグレーションすることができ、オーケストレーションシステムがそのようなマイグレーションを実行することを可能にするのは、エンティティの識別及び特定の他の特性の判定である。その場合、より太い線の太さを有する図１３に描写される要素は、図１１の属性グラフ分析プロセス１１００などの属性グラフ分析プロセス中に識別されたエンティティ及びそれらの関係を表す。例えば、ＶＭ１３１０は、ＶＭＤＫ１３１５との関係を有し、ＶＭＤＫ１３１５は、データセット１３１７との関係を有することが分かる。記憶ユニット１３３０及びエンクロージャ１３３５（並びに記憶ユニット１３３０の識別子（論理ユニット番号１３４０））は、マイグレーションのための適切な候補ではなく、そのためより太い線幅では示されない。低レベルの複製関係１３６０によって互いに関連付けられた整合性グループオブジェクト１３５０及び１３５５は、そのような属性グラフ分析プロセスがデータセンター１３０４内のエンティティに関する判定を行うことを可能にする。その場合、そのようなプロセスは、データセット１３６０も（潜在的に）マイグレーションの対象となることを識別する。この例では、記憶ユニット１３７０（論理ユニット番号１３８０によって識別される）及びエンクロージャ１３７５、並びに仮想化モジュール１３９０は、マイグレーションに不適切であるとみなされる。
【０１０７】
図１３に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
ＤＣ１｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
Ｃｏｍｐｕｔｅ：［
｛Ｔｅｃｈ：ｖｍｗａｒｅ，Ｏｂｊｅｃｔｓ：｛ＶＭ１｝｝
］，
Ｓｔｏｒａｇｅ：［
｛Ｔｅｃｈ：ｖｍｗａｒｅ，Ｏｂｊｅｃｔｓ：｛ｖｍｄｋ１，ＤＳ１｝｝
］，
Ｒｅｐｌｉｃａｔｉｏｎ：［
｛Ｔｅｃｈ：ｓｒｄｆ，Ｏｂｊｅｃｔｓ：｛ＣＧ１｝｝
］
｝
｝，
ＤＣ２｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
Ｒｅｐｌｉｃａｔｉｏｎ：［
｛Ｔｅｃｈ：ｓｒｄｆ，Ｏｂｊｅｃｔｓ：｛ＣＧ２｝｝
］，
Ｓｔｏｒａｇｅ：［
｛Ｔｅｃｈ：ｖｍｗａｒｅ，Ｏｂｊｅｃｔｓ：｛ＤＳ２｝｝
］，
｝
｝
【０１０８】
図１４は、高レベルのコピー作成が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。図１４に描写する例では、仮想マシンは、帯域外複製技術を使用して保護される。したがって、属性グラフ１４００が、図１４に描写されており、この場合もデータセンター１４０２、データセンター１４０４、及びそれらの間の境界（図１４に境界１４０６として描写される）などの共通の要素を含む。図１４に描写するシナリオでは、ＶＭ１４１０、ＶＭＤＫ１４１５、及びデータセット１４１７は、記憶ユニット１４２０と同様にエンクロージャ１４２５内で互いとの関係において描写されており、論理ユニット番号１４３０によって識別される。前と同様に、仮想化モジュール１４４０は、記憶ユニット１４２０内のＶＭＤＫ１４１５内に記憶されたＶＭ１４１０及びデータセット１４１７をサポートする。データセット１４１７のコピーは、エンクロージャ１４６５内の記憶ユニット１４６０に記憶され、論理ユニット番号１４６７によって識別され、仮想化モジュール１４７０によってサポートされたデータセット１４５０としてデータセンター１４０４内に存在する。データセット１４５０は、データセット１４７０のコピーであり、コピープロセス１４８２とコピープロセス１４８４との間の高レベルのコピー関係１４８０によって作成される。コピープロセス１４８２は、マスタプロセス１４９０の制御下にあり、コピープロセス１４８４は、マスタプロセス１４９２の制御下にある。図１３に提示される例と同様に、図１４に描写される例は、波打つ線幅を用いて、所与の例においてオーケストレーションの対象となる属性グラフ１４００内のノードを示す。その場合、データセンター１４０２内のＶＭ１４１０、ＶＭＤＫ１４１５、及びデータセット１４１７は、そのようなオーケストレーションの対象となる。しかしながら、属性グラフ１４００を横断することによって、データセット１４５０もそのようなオーケストレーションの対象となると判定することができる。本開示に照らして理解されるように、マイグレーションは、これらのエンティティの全て、又はその一部を含み得る。例えば、データセンター１４０２内にあるオーケストレーションの対象となるエンティティは、例えば災害復旧シナリオにおいて、データセンター１４０４内のエンティティ（例えば、データセット１４５０）との関係を維持しながら、別のデータセンターにマイグレーションされ得る。
【０１０９】
図１４に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
ＤＣ１｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
Ｃｏｍｐｕｔｅ：［
｛Ｔｅｃｈ：ｖｍｗａｒｅ，Ｏｂｊｅｃｔｓ：｛ＶＭ１｝｝
］，
Ｃｏｐｙ：［
｛Ｔｅｃｈ：ｎｂｕ，Ｏｂｊｅｃｔｓ：｛ｖｍ１ｃｏｐｙ｝｝
］
｝
｝，
ＤＣ２｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
ｃｏｐｙ［
｛Ｔｅｃｈ：ｎｂｕ，Ｏｂｊｅｃｔｓ：｛ｖｍ１ｃｏｐｙ｝｝
］
｝
｝
【０１１０】
図１５は、高レベルの同期される物理複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。したがって、図１５は、境界１５０６によって分離されたデータセンター１５０２とデータセンター１５０４とを含む属性グラフ１５００を描写する。図１５に提示されるシナリオでは、データセンター１５０２は、エンクロージャ１５３０内の記憶ユニット１５２５上のファイルシステム１５２０に記憶され、論理ユニット番号１５３５によって識別される１つ以上のファイル（複数可）１５１５を含むデータベース１５１０をサポートする。ファイルシステム１５２０内のデータベース１５１０及びそのファイル（複数可）１５１５は、ホストコンピューティングシステム１５４０によってサポートされる。データベース１５１０は、データセンター１５０４に複製され、エンクロージャ１５８０内の記憶ユニット１５７５上のファイルシステム１５７０内の１つ以上のファイル（複数可）１５６５を含むデータベース１５６０としてデータセンター１５０４に示され、論理ユニット番号１５８５によって識別される。データセンター１５０２と同様の方式で、データセンター１５０４は、１つ以上のホストコンピューティングシステム（図１５にホストコンピューティングシステム１５８５として描写される）上のデータベース１５６０、ファイル（複数可）１５６５、及びファイルシステム１５７０をサポートし、同期関係（図１５に高レベルの同期関係１５９０として描写される）、データセンター１５０２及び１５０４内のコンポーネントに影響を及ぼし、同期される物理複製モジュール１５９２及び同期される物理複製モジュール１５９４を含む。同期される物理複製モジュール１５９２及び１５９４は、属性グラフ１５００に表され、図１１の属性グラフ分析プロセス１１００などの属性グラフ分析プロセスによって分析することができる高レベルの同期関係１５９０をサポートする。そのため、より太い線幅で図１５に描写されるエンティティは、そのような属性グラフ分析の対象となるエンティティであり、したがって、例えば、（例えば、災害復旧シナリオが発生した場合に）そのようなエンティティのマイグレーションを実行するためにオーケストレーションシステムによって使用され得るオーケストレーション情報に示される。したがって、データベース１５１０、そのファイル（複数可）（ファイル（複数可）１５１５）、及びファイルシステム１５２０は、災害からの復旧を容易にするために、別のデータセンターにマイグレーションすることができる。そのような場合、同期される物理複製モジュール１５９２をマイグレーションさせるか、又はそのようなモジュールを新たなデータセンター内で適切に設定することによって、高レベルの同期関係１５９０を維持しながら、これらのエンティティのマイグレーションを実行することができる。
【０１１１】
図１３に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
ＤＣ１｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
Ａｐｐ：［
｛Ｔｅｃｈ：ｏｒａｃｌｅ，Ｏｂｊｅｃｔｓ：｛Ｏｒａｄｂ１｝｝
］，
Ｒｅｐｌｉｃａｔｉｏｎ：［
｛Ｔｅｃｈ：ｄａｔａｇｕａｒｄ，Ｏｂｊｅｃｔｓ：｛ＤＧｕａｒｄ２｝｝
］
｝
｝，
ＤＣ２｛
Ｅｃｏｓｙｓｔｅｍｓ：｛
Ｒｅｐｌｉｃａｔｉｏｎ：［
｛Ｔｅｃｈ：ｄａｔａｇｕａｒｄ，Ｏｂｊｅｃｔｓ：｛ＤＧｕａｒｄ２｝｝
］，
Ａｐｐ：［
｛Ｔｅｃｈ：ｏｒａｃｌｅ，Ｏｂｊｅｃｔｓ：｛Ｏｒａｄｂ２｝｝
］，
｝
｝
表現構造体を使用した例示的なオーケストレーションアーキテクチャ
【０１１２】
図１６は、本明細書に記載されるものなどの方法及びシステムによる、管理及びオーケストレーションアーキテクチャのブロック図である。上述のように、図１６に例示される（及び同図にＩＴＲＰアーキテクチャ１６００として描写される）ものなどのＩＴＲＰアーキテクチャは、集中アーキテクチャとして（例えば、図１に描写するような（ＩＴＲＰサーバ１２０及びそのモジュール））、分散アーキテクチャとして（例えば、本明細書に記載されるものなどの、そのようなアーキテクチャの特徴の多くと共に記載されているような）、又はそれらの何らかの組み合わせとして、実装することができる。その場合、図１６のＩＴＲＰアーキテクチャ１６００の描写は、同図に例示される要素の論理表現であり、その実装は、手近な状況に好適な任意の方式で分散され得る。
【０１１３】
図１６に見られるように、ＩＴＲＰアーキテクチャ１６００は、ＩＴＲＰシステム１６０５を含み、ＩＴＲＰシステム１６０５は、回復マネージャ１６１０及びインフラストラクチャ管理サービス１６１５を含む。本明細書に記載されるものなどの方法及びシステムによるインフラストラクチャ管理サービス１６１５は、分散管理機能を提供し、この分散管理機能は、特定の実施形態では、２層のサービスセットも含むことができる。インフラストラクチャ管理サービス１６１５は、１つ以上の層を含む。図１６に描写するように、インフラストラクチャ管理サービス１６１５は、アグリゲータ層１６２０及びエージェント層１６３０として例示される２つの層を含む。しかしながら、本開示に照らして、インフラストラクチャ管理サービス１６１５は、３つ以上の層を有するように構成することができ、遭遇する状況に適切であり得る任意の数のそのような層を実装することができることが理解されるであろう。
【０１１４】
アグリゲータ層１６２０は、「上部」層として機能し、サポートされるハードウェア及びソフトウェア要素について、発見されたアセット、均一な動作層、及び永続的状態の統合された概要を提供する能力を提供する。アグリゲータ層１６２０をサポートするエージェント層１６３０は、「底部」層として機能し、サポートされるハードウェア要素（例えば、ストレージアレイ）並びにソフトウェア要素（例えば、データベース（database、ＤＢ）及び／又はデータベース管理システム（database management system、ＤＢＭＳ）のインスタンス（複数可））を発見、監視、及び操作する能力を提供する。
【０１１５】
上述のように、インフラストラクチャ管理サービス１６１５は、回復マネージャ１６１０も含む。回復マネージャ１６１０は、集中管理機能を提供するように構成することができ、この集中管理機能は、特定の実施形態では、２層のサービスセットを含む。しかしながら、インフラストラクチャ管理サービス１６１５と同様に、回復マネージャ１６１０は、３つ以上の層を有するように構成することができ、遭遇する状況に適切であり得る任意の数のそのような層を実装することができる。図１６に描写するように、回復マネージャ１６１０は、ビジネス層１６４０を含む。ビジネス層１６４０は、「上部」層として機能し、いくつかのモジュールを含むことができ、その例は、ワークロード管理サービスモジュール１６４２、復旧自動化サービスモジュール１６４４、及び報告サービスモジュール１６４６として図１６に描写される。
【０１１６】
回復マネージャ１６１０は、コア層１６５０も含む。コア層１６５０は、ビジネス層１６４０をサポートするために「底部」層として機能し、例えば、プロビジョニングモジュール１６６０、ＥＲサービスモジュール１６６１、データベース（ＤＢ）サービスモジュール１６６２、メッセージングサービスモジュール１６６３、通信及びデータファーデードサービスモジュール１６６４、認証及び認可サービスモジュール１６６５、ロギング及び監査サービスモジュール１６６６、ライセンス許諾サービスモジュール１６６７、並びにワークフローサービスモジュール１６６８などのモジュールを含むことによって、いくつかのサービスを提供する。本開示に照らして理解されるように、そのようなモジュール（及びそれらが提供するサービス）は、その単なる例に過ぎず、ビジネス層１６４０をサポートするために提供され得る他の多くの機能及びサービスに数えられる。
例示的なコンピューティング及びネットワーク環境
【０１１７】
上述のように、本明細書に記載されるシステムは、様々なコンピュータシステム及びネットワークを使用して実装することができる。そのようなコンピューティング及びネットワーク環境の例を、図１７及び１８を参照して以下に説明する。
【０１１８】
図１７は、本明細書に記載されるシステムなどの態様を実装するのに好適なコンピュータシステム１７１０のブロック図を描写する。コンピュータシステム１７１０は、中央処理装置１７１４、システムメモリ１７１７（典型的にはＲＡＭであるが、ＲＯＭ、フラッシュＲＡＭなども含む）、入出力コントローラ１７１８などのコンピュータシステム１７１０の主要サブシステム、オーディオ出力インターフェース１７２２を介したスピーカーシステム１７２０などの外部オーディオデバイス、ディスプレイアダプタ１７２６を介したディスプレイスクリーン１７２４、シリアルポート１７２２及び１７３０、（キーボードコントローラ１７３３を介してインターフェース接続される）キーボード１７３２、ストレージインターフェース１７３４、フロッピーディスク１７３８を収容するように動作するフロッピーディスクドライブ１７３７、ファイバチャネルネットワーク１７９０と接続するように動作するホストバスアダプタ（host bus adapter、ＨＢＡ）インターフェースカード１７３５Ａ、ＳＣＳＩバス１７３９と接続するように動作するホストバスアダプタ（ＨＢＡ）インターフェースカード１７３５Ｂ、並びに光ディスク１７４２を収容するように動作する光ディスクドライブ１７４０などの外部デバイス、を相互接続するバス１７１２を含んでもよい。マウス１７４６（又はシリアルポート１７２２を介してバス１７１２に結合された他のポイントアンドクリックデバイス）、（シリアルポート１７３０を介してバス１７１２に結合された）モデム１７４７、及び（バス１７１２に直接結合された）ネットワークインターフェース１７４８も含まれる。
【０１１９】
バス１７１２は、中央処理装置１７１４と、上述のようにリードオンリーメモリ（read-only memory、ＲＯＭ）又はフラッシュメモリ（どちらも図示せず）及びランダムアクセスメモリ（ＲＡＭ）（図示せず）を含み得るシステムメモリ１７１７との間のデータ通信を可能にする。ＲＡＭは、一般に、オペレーティングシステム及びアプリケーションプログラムが読み込まれるメインメモリである。ＲＯＭ又はフラッシュメモリは、他のコードの中でも、周辺コンポーネントとの相互作用などの基本的なハードウェア動作を制御する基本入出力システム（Basic Input-Output system、ＢＩＯＳ）を含んでもよい。コンピュータシステム１７１０と共に常駐するアプリケーションは、一般に、ハードディスクドライブ（例えば、固定ディスク１７４４）、光学ドライブ（例えば、光学ドライブ１７４０）、フロッピーディスクユニット１７３７、又は他のコンピュータ可読記憶媒体などのコンピュータ可読記憶媒体に記憶され、それらからアクセスされる。
【０１２０】
ストレージインターフェース１７３４は、コンピュータシステム１７１０の他のストレージインターフェースと同様に、情報の記憶及び／又は取り出しのために、固定ディスクドライブ１７４４などの標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ１７４４は、コンピュータシステム１７１０の一部であってもよく、又は別個であり、かつ他のインターフェースシステムを介してアクセスされてもよい。モデム１７４７は、電話リンクを介した遠隔サーバへの直接接続、又はインターネットサービスプロバイダ（internet service provider、ＩＳＰ）を介したインターネットへの直接接続を提供してもよい。ネットワークインターフェース１７４８は、ＰＯＰ（point of presence、ポイントオブプレゼンス）を介したインターネットへの直接的なネットワークリンクを介して、遠隔サーバへの直接接続を提供してもよい。ネットワークインターフェース１７４８は、デジタルセルラー電話接続、セルラーデジタルパケットデータ（Cellular Digital Packet Data、ＣＤＰＤ）接続、デジタル衛星データ接続などを含む無線技術を使用して、そのような接続を提供してもよい。
【０１２１】
多くの他のデバイス又はサブシステム（図示せず）は、同様の様式で接続されてもよい（例えば、ドキュメントスキャナ、デジタルカメラなど）。逆に、本明細書に記載されるシステムを実施するために、図１７に示されるデバイスの全てが存在する必要はない。デバイス及びサブシステムは、図１７に示されるものとは異なる方法で相互接続されてもよい。図１７に示されるものなどのコンピュータシステムの動作は、当該技術分野において容易に知られており、本出願では詳細に論じない。本明細書に記載されるシステムのモジュールを実装するためのコードは、システムメモリ１７１７、固定ディスク１７４４、光ディスク１７４２、又はフロッピーディスク１７３８のうちの１つ以上などのコンピュータ可読記憶媒体内に記憶されてもよい。コンピュータシステム１７１０上で提供されるオペレーティングシステムは、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、又は他のオペレーティングシステムであってもよい。
【０１２２】
更に、本明細書に記載される信号に関して、当業者であれば、信号が第１のブロックから第２のブロックに直接送信され得るか、又は信号がブロック間で修正（例えば、増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、又は他の方法で修正）され得ることを認識するであろう。上述の実施形態の信号は、１つのブロックから次のブロックに送信されることを特徴とするが、他の実施形態は、信号の情報及び／又は機能的側面がブロック間で送信される限り、そのような直接送信される信号の代わりに修正された信号を含んでもよい。ある程度まで、第２のブロックにおける信号入力は、関与する回路の物理的制限に起因して、第１のブロックから出力される第１の信号に由来する第２の信号として概念化することができる（例えば、必然的にいくらかの減衰及び遅延が存在することになる）。したがって、本明細書で使用するとき、第１の信号に由来する第２の信号は、回路の制限に起因して、又は第１の信号の情報及び／又は最終機能的側面を変化させない他の回路要素を通過することに起因して、第１の信号又は第１の信号に対する修正を含む。
【０１２３】
更に、本開示に照らして理解されるように、本明細書に記載される動作のそれぞれは、モジュール（例えば、ソフトウェアモジュール）若しくはモジュールの一部分、又はコンピュータシステムユーザによって実行されてもよい。したがって、上述の方法、その動作、及びそのためのモジュールは、方法の動作を実行するように構成されたコンピュータシステム上で実行されてもよく、かつ／又はコンピュータ可読記憶媒体から実行されてもよい。方法は、方法を実行するようにコンピュータシステムを構成ために機械可読及び／又はコンピュータ可読記憶媒体内に具現化されてもよい。したがって、ソフトウェアモジュールは、モジュールの機能を実行するようにコンピュータシステムを構成するためにコンピュータシステムメモリ内に記憶され、かつ／又はコンピュータシステムメモリに送信されてもよい。
【０１２４】
本明細書に記載されるソフトウェアモジュールは、コンピュータシステムによって、例えば、コンピュータ可読記憶媒体から受信されてもよい。そのようなコンピュータ可読記憶媒体は、コンピュータシステムに永続的に、取り外し可能に、又は遠隔で結合されてもよい。コンピュータ可読記憶媒体は、例えば、磁気記憶媒体（ディスク及びテープ記憶媒体を含む）と、コンパクトディスク媒体（例えば、ＣＤ  ＲＯＭ、ＣＤ  Ｒなど）及びデジタルビデオディスク記憶媒体などの光学記憶媒体と、フラッシュメモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＲＯＭ又は特定用途向け集積回路などの半導体ベースのメモリユニットを含む不揮発性メモリ記憶メモリと、揮発性記憶媒体（レジスタ、バッファ又はキャッシュ、メインメモリ、ＲＡＭなどを含む）と、を任意の数で非排他的に含んでもよい。ＵＮＩＸ（登録商標）ベースの実施形態では、ソフトウェアモジュールは、デバイス、端末、ローカル若しくは遠隔のファイル、ソケット、又は他のそのような要素であり得るファイル内に具現化されてもよい。他の新しい及び様々な種類のコンピュータ可読記憶媒体を使用して、本明細書で論じるソフトウェアモジュールを記憶することもできる。
【０１２５】
多くの他のデバイス又はサブシステム（図示せず）は、同様の様式で接続されてもよい（例えば、バーコードリーダー、ドキュメントスキャナ、デジタルカメラなど）。逆に、本発明を実施するために、図１７に示されるデバイスの全てが存在する必要はない。デバイス及びサブシステムは、図１７に示されるものとは異なる方法で相互接続されてもよい。図１７に示されるようなコンピュータシステムの動作は、当該技術分野において容易に知られており、本出願では詳細に論じない。本発明を実装するためのコードは、システムメモリ１７１６、固定ディスク１７４４、ＣＤ−ＲＯＭ１７４２、又はフロッピーディスク１７３８のうちの１つ以上などのコンピュータ可読記憶媒体内に記憶されてもよい。加えて、コンピュータシステム１７１０は、任意の種類のコンピューティングデバイスであってもよく、したがって、携帯情報端末（personal data assistant、ＰＤＡ）、ネットワーク機器、Ｘウィンドウ端末、又は他のそのようなコンピューティングデバイスを含む。コンピュータシステム１７１０上で提供されるオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、又は他の公知のオペレーティングシステムであってもよい。コンピュータシステム１７１０は、例えば、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）などのＪａｖａＳｃｒｉｐｔ（登録商標）インタプリタを有するＨＴＴＰ準拠ウェブブラウザを含む、いくつかのインターネットアクセスツールもサポートする。
【０１２６】
更に、本明細書に記載される信号に関して、当業者であれば、信号が第１のブロックから第２のブロックに直接送信され得るか、又は信号がブロック間で修正（例えば、増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、又は他の方法で修正）され得ることを認識するであろう。上述の実施形態の信号は、１つのブロックから次のブロックに送信されることを特徴とするが、本発明の他の実施形態は、信号の情報及び／又は機能的側面がブロック間で送信される限り、そのような直接送信される信号の代わりに修正された信号を含んでもよい。ある程度まで、第２のブロックにおける信号入力は、関与する回路の物理的制限に起因して、第１のブロックから出力される第１の信号に由来する第２の信号として概念化することができる（例えば、必然的にいくらかの減衰及び遅延が存在することになる）。したがって、本明細書で使用するとき、第１の信号に由来する第２の信号は、回路の制限に起因して、又は第１の信号の情報及び／又は最終機能的側面を変化させない他の回路要素を通過することに起因して、第１の信号又は第１の信号に対する修正を含む。
【０１２７】
図１８は、クライアントシステム１８１０、１８２０、及び１８３０、並びにストレージサーバ１８４０Ａ及び１８４０Ｂ（いずれもコンピュータシステム１８１０を使用して実装することができる）がネットワーク１８５０に結合されたネットワークアーキテクチャ１８００を描写するブロック図である。ストレージサーバ１８４０Ａは、直接取り付けられた記憶デバイス１８６０Ａ（１）〜（Ｎ）を有するものとして更に描写され、ストレージサーバ１８４０Ｂは、直接取り付けられた記憶デバイス１８６０Ｂ（１）〜（Ｎ）と共に描写されている。ストレージサーバ１８４０Ａ及び１８４０Ｂはまた、ＳＡＮファブリック１８７０に接続されているが、ストレージエリアネットワークへの接続は、動作に必要ではない。ＳＡＮファブリック１８７０は、ストレージサーバ１８４０Ａ及び１８４０Ｂによる、したがってネットワーク１８５０を介したクライアントシステム１８１０、１８２０、及び１８３０による記憶デバイス１８２０（１）〜（Ｎ）へのアクセスをサポートする。インテリジェントストレージアレイ１８９０も、ＳＡＮファブリック１８７０を介してアクセス可能な特定の記憶デバイスの一例として示されている。
【０１２８】
コンピュータシステム１７１０を参照すると、クライアントシステム１８１０、１８２０、及び１８３０のそれぞれからネットワーク１８５０への接続を提供するために、モデム１７４７、ネットワークインターフェース１７４８、又は何らかの他の方法が使用されてもよい。クライアントシステム１８１０、１８２０、及び１８３０は、ストレージサーバ１８４０Ａ又は１８４０Ｂ上の情報に、例えば、ウェブブラウザ又は他のクライアントソフトウェア（図示せず）を使用してアクセスすることができる。そのようなクライアントは、クライアントシステム１８１０、１８２０、及び１８３０が、ストレージサーバ１８４０Ａ若しくは１８４０Ｂ、又は記憶デバイス１８６０Ａ（１）〜（Ｎ）、１８６０Ｂ（１）〜（Ｎ）、及び／若しくは１８２０（１）〜（Ｎ）のうちの１つ、又はインテリジェントストレージアレイ１８９０によってホストされたデータにアクセスすることを可能にする。図１８は、データをやり取りするためのインターネットなどのネットワークの使用を描写するが、本明細書に記載されるシステムは、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
【０１２９】
異なるコンポーネントが、異なる他のコンポーネント（例えば、後述するコンピュータシステム１７１０のコンポーネントとして示される様々な要素）内に含まれる、前述の実施形態。そのような描写されるアーキテクチャは単なる例であり、実際には、同じ機能を達成する多くの他のアーキテクチャを実装することができることを理解されたい。抽象的であるが、依然として明確な意味において、同じ機能を達成するためのコンポーネントのいかなる配置も、所望の機能が達成されるように、効果的に「関連付け」されている。したがって、特定の機能を達成するために本明細書で組み合わされたいかなる２つのコンポーネントも、アーキテクチャ又は中間コンポーネントに関係なく、所望の機能が達成されるように、互いに「関連付けられた」ものとして見ることができる。同様に、そのように関連付けられたいかなる２つのコンポーネントも、所望の機能を達成するように、「動作可能に接続された」又は「動作可能に結合された」ものとして見ることもできる。
他の実施形態
【０１３０】
本明細書に記載されるシステムは、言及された利点及びそれに付随する他の利点を達成するように十分に適合されている。そのようなシステムが、描写され、記載され、特定の説明を参照することによって定義されているが、そのような参照は特許請求の範囲に対する限定を暗示するものではなく、そのような限定は推測されるべきではない。本明細書に記載されるシステムは、本開示を考慮すると当業者には想到されるように、形式及び機能における相当な修正、変更、及び等価物が可能である。描写され記載された実施形態は、単なる例であり、決して特許請求の範囲の範囲を網羅するものではない。
【０１３１】
前述の詳細な説明は、ブロック図、フローチャート、及び例の使用を介して本明細書に記載されるシステムの様々な実施形態を論述している。例の使用によって例示される各ブロック図のコンポーネント、フローチャートの工程、動作及び／又はコンポーネントは、広範なハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって（個々に及び／又は集合的に）実装され得ることが、当業者に理解されるであろう。
【０１３２】
本明細書に記載されるシステムは、完全に機能するコンピュータシステムの文脈で説明されている。しかしながら、当業者であれば、本明細書に記載されるシステムは、様々な形式でプログラム製品として配布することができること、及び本明細書に記載されるシステムは、配布を実際に実行するために使用される特定の種類のコンピュータ可読媒体にかかわらず等しく適用されることを理解するであろう。コンピュータ可読媒体の例としては、コンピュータ可読記憶媒体、並びに将来開発される媒体記憶及び配布システムが挙げられる。
【０１３３】
上述の実施形態は、実施形態に関連付けられた１つ以上のタスクを実行するソフトウェアモジュールによって実装することができる。本明細書で論じられるソフトウェアモジュールは、スクリプト、バッチ、又は他の実行可能ファイルを含んでもよい。ソフトウェアモジュールは、磁気フロッピーディスク、ハードディスク、半導体メモリ（例えば、ＲＡＭ、ＲＯＭ、及びフラッシュタイプ媒体）、光学ディスク（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、及びＤＶＤ）、又は他の種類のメモリモジュールなどの機械可読又はコンピュータ可読記憶媒体上に記憶されてもよい。一実施形態による、ファームウェア又はハードウェアモジュールを記憶するために使用される記憶デバイスは、マイクロプロセッサ／メモリシステムに永久的に、取り外し可能に、又は遠隔で結合され得る半導体ベースのメモリも含むことができる。したがって、モジュールは、モジュールの機能を実行するようにコンピュータシステムを構成するために、コンピュータシステムメモリ内に記憶することができる。他の新しい及び様々な種類のコンピュータ可読記憶媒体を使用して、本明細書で論じるモジュールを記憶することができる。
【０１３４】
上記の説明は、例示的であることを意図しており、限定的であると解釈すべきではない。本開示に照らして理解されるように、他の実施形態が可能である。当業者であれば、本明細書に開示される構造及び方法を提供するために必要な工程を容易に実装し、プロセスパラメータ及び工程のシーケンスは、単に例として与えられており、所望の構造並びに特許請求の範囲の範囲内にある修正を達成するために変更され得ることを理解するであろう。本明細書に開示される実施形態の変形例及び修正形は、特許請求の範囲の範囲から逸脱することなく、全ての点においてその等価物を完全に考慮に入れて、本明細書に論述される説明に基づいて行うことができる。
【０１３５】
本明細書に記載されるシステムをいくつかの実施形態と関連して説明してきたが、これらの実施形態及びその説明は、本明細書に論述される特定の形式に限定されることを意図しない。逆に、そのような実施形態は、添付の特許請求の範囲の範囲内に合理的に含まれ得るような代替形態、修正形、及び等価物を扱うことを意図する。
【図１】
2020507852.tif 000003
【図２】
2020507852.tif 000004
【図３】
2020507852.tif 000005
【図４】
2020507852.tif 000006
【図５】
2020507852.tif 000007
【図６】
2020507852.tif 000008
【図７】
2020507852.tif 000009
【図８】
2020507852.tif 000010
【図９】
2020507852.tif 000011
【図１０】
2020507852.tif 000012
【図１１】
2020507852.tif 000013
【図１２】
2020507852.tif 000014
【図１３】
2020507852.tif 000015
【図１４】
2020507852.tif 000016
【図１５】
2020507852.tif 000017
【図１６】
2020507852.tif 000018
【図１７】
2020507852.tif 000019
【図１８】
2020507852.tif 000020
【国際調査報告】
2020507852.tif 000021
2020507852.tif 000022
2020507852.tif 000023