JP2020507852A - オーケストレーションのためのワークロードの依存性分析のための方法及びシステム - Google Patents

オーケストレーションのためのワークロードの依存性分析のための方法及びシステム Download PDF

Info

Publication number
JP2020507852A
JP2020507852A JP2019542185A JP2019542185A JP2020507852A JP 2020507852 A JP2020507852 A JP 2020507852A JP 2019542185 A JP2019542185 A JP 2019542185A JP 2019542185 A JP2019542185 A JP 2019542185A JP 2020507852 A JP2020507852 A JP 2020507852A
Authority
JP
Japan
Prior art keywords
node
entity
information
nodes
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019542185A
Other languages
English (en)
Other versions
JP2020507852A5 (ja
JP7065864B2 (ja
Inventor
バンドパディアイ・トゥシャール
ディギ・バハラット
Original Assignee
ベリタス テクノロジーズ エルエルシー
ベリタス テクノロジーズ エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ベリタス テクノロジーズ エルエルシー, ベリタス テクノロジーズ エルエルシー filed Critical ベリタス テクノロジーズ エルエルシー
Publication of JP2020507852A publication Critical patent/JP2020507852A/ja
Publication of JP2020507852A5 publication Critical patent/JP2020507852A5/ja
Application granted granted Critical
Publication of JP7065864B2 publication Critical patent/JP7065864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

エンティティ及びそれらの関係の表現及び分析を提供する方法、コンピュータプログラム製品、コンピュータシステムなどが開示される。方法は、例えば、属性グラフ内の複数のノードのうちのノードを選択することと、そのノードに関連付けられたエンティティ情報を分析することと、分析に応答して、エンティティ情報を依存情報に記憶することと、を含む。複数のノードの各ノードは、複数のエンティティのうちのエンティティを表し、属性グラフの複数のリンクのうちの1つ以上のリンクによって、複数のノードのうちの少なくとも1つの他のノードに結合されている。1つ以上のリンクのそれぞれは、各ノードと少なくとも1つの他のノードとの間の関係を表す。エンティティ情報は、エンティティに関する情報である。依存情報は、複数のエンティティのうちの1つ以上のオーケストレーションを容易にするように構成される。

Description

本発明は、コンピューティングシステムにおけるワークロードの管理に関し、具体的には、オーケストレーションの目的のためのワークロードの依存性分析のための方法及びシステムに関する。
今日の組織は、多くの場合、オンラインで維持されるデータに広く依存している。そのような頻繁にアクセスされる、常に変化するデータは、そのような組織の進行中の業務にとってクリティカルであり得る。コンピューティングリソースも同様であり、コンピューティングリソースとしては、データストレージだけでなく、(物理及び仮想コンポーネントの両方を使用して実装される)コンピューティングシステムも挙げることができる。そのようなデータ及びシステムの可用性を阻害する予定されていないイベントは、事業運営を深刻に害することがある。加えて、自然災害又は他のイベントからの永久的なデータ損失は、事業の継続的な生存可能性にとって深刻な負の影響を与える可能性が高い。したがって、災害時には、組織は、データ損失及びダウンタイムをなくす又は最小化し、使用可能なデータ及び機能するシステムによって迅速に復旧する準備が整っていなければならない。データバックアップ及び他の災害復旧(disaster recovery、DR)技術を使用して、そのような災害が発生した場合にデータ及び機能の損失を防止することができる。例えば、データバックアッププロセスを使用して、元のデータのコピーを作成することができる。これらのコピーを使用して、データ損失イベント後に元のデータを復元することができる。様々な他の技術の中でも、様々な技術を使用して、そのようなバックアップ、そのような完全バックアップ、増分バックアップ、又は差分バックアップ、並びに様々な種類のデータ複製を生成することができる。万一障害が発生した場合、そのようなオンラインデータ処理システムは、そのような災害から復旧するための高速で、容易かつ効率的な機能を提供するであろう。同様に、サービスの連続性を確保するために、災害復旧アーキテクチャを採用することができる。
本開示は、エンティティ及びそれらの互いとの関係のうちの1つ以上を表す1つ以上の属性グラフ(又は同等の構造体)を使用してコンピューティング環境の分析をサポートする方法、コンピュータプログラム製品、コンピュータシステムなどを説明する。方法は、例えば、属性グラフ内の複数のノードのうちのノードを選択することと、ノードに関連付けられたエンティティ情報を分析することと、分析することに応答して、エンティティ情報を依存情報内に記憶することと、を含む。複数のノードの各ノードは、複数のエンティティのうちのエンティティを表す。複数のノードの各ノードは、属性グラフの複数のリンクのうちの1つ以上のリンクによって、複数のノードのうちの少なくとも1つの他のノードに結合されている。1つ以上のリンクのそれぞれは、各ノードと少なくとも1つの他のノードとの間の関係を表す。エンティティ情報は、エンティティに関する情報である。依存情報は、複数のエンティティのうちの1つ以上のオーケストレーションを容易にするように構成されている。
特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、1つ以上のリンクが境界を横切るかどうかを判定することと、1つ以上のリンクのうちの1つが境界を横切ることに応答して、依存情報内に接触点を記録することとを含むことができる。
更に、特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、ノードから複数のノードのうちの別のノードへの属性グラフのリンクを横断することであって、リンクが複数のリンクのうちの1つである、横断すること、を含むことができる。更に、リンクが境界を横切るかどうかを判定することと、リンクが境界を横切るとの判定に応答して、依存情報内に接触点を記録することとを含む動作を実行することができる。ノードは属性グラフ内の開始点として選択されてもよく、かつ/又はノード及び別のノードは互いに依存関係を有してもよい。
更に、特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、リンクが接触点を表すかどうかを判定することと、リンクが接触点を表すとの判定に応答して、依存情報内に接触点を記録することとを含むことができる。この及び他の実施形態は、別のノードが依存情報内に含まれるべきかどうかを判定することと、(別のノードが依存情報内に含まれるべきであるとの判定に応答して)横断することを実行することと、別のノードが依存情報内に含まれるべきではないとの判定に応答して、横断することを防止することと、を含むことができる。
特定の実施形態では、そのような方法、コンピュータプログラム製品、コンピュータシステムなどは、ノードと後続ノードとの間に別のリンクが存在するかどうかを判定することと、後続ノードが依存情報内に含まれるべきであるとの判定に応答して、横断することを再帰的に実行することとを含むことができる。これらの及び他の実施形態では、複数のエンティティの各エンティティは、仮想コンピューティングコンポーネント、仮想記憶コンポーネント、物理コンピューティングコンポーネント、又は物理記憶コンポーネントのうちの1つであり得る。
本発明は、添付図面を参照することによってより良く理解され得、その多数の目的、特徴、及び利点が当業者に明らかにされる。
一実施形態による、管理機能を含むコンピューティング環境の一例を例示するブロック図である。
一実施形態による、複数の仮想マシン(virtual machine、VM)及び他の機能をサポートする物理マシンの一例を例示するブロック図である。
一実施形態による、コンピューティング環境分析アーキテクチャの一例を例示するブロック図である。
一実施形態による、コンピューティング環境の一例を例示するブロック図である。
一実施形態による、複数の接触点を有するコンピューティング環境の一例を例示するブロック図である。
一実施形態による、コンピューティング環境内のハードウェア及びソフトウェアエンティティの一例を例示するブロック図である。
一実施形態による、図6のコンピューティング環境の部分を表す属性グラフの表現の一例を例示するブロック図である。
一実施形態による、属性グラフの実装のための例示的なプロセスを描写するフローチャートである。
一実施形態による、属性グラフ作成のための例示的なプロセスを描写するフローチャートである。
一実施形態による属性グラフを作成するために、一実施形態による、エンティティ及びそれらの関係を横断するための例示的なプロセスを描写するフローチャートである。
一実施形態による、1つ以上の属性グラフを分析するための例示的なプロセスを描写するフローチャートである。
一実施形態による、属性グラフを分析する一環として属性グラフを横断するための例示的なプロセスを描写するフローチャートである。
低レベルの複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
高レベルのコピー作成が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
高レベルの同期される物理複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。
一実施形態による、オーケストレーションアーキテクチャの一例のブロック図である。
本明細書に開示されるものなどのシステムの実施形態によるシステムの態様を実装するのに好適なコンピュータシステムを描写するブロック図である。
本明細書に開示されるものなどのシステムの実施形態によるシステムの態様を実装するのに好適なネットワークアーキテクチャを描写するブロック図である。
以下は、本発明の一例の詳細な説明を提供することを意図するものであり、本発明自体を限定するものと解釈すべきではない。むしろ、任意の数の変形例が、本明細書に続く特許請求の範囲に定義される本発明の範囲内に含まれ得る。
本発明は、様々な修正形及び代替形式が可能であるが、本発明の特定の実施形態が、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、本発明を開示された特定の形式に限定することを意図しないことを理解されたい。そうではなく、添付の特許請求の範囲によって定義されるような本発明の趣旨及び範囲内にある全ての修正形、等価物、及び代替形態を包含することが意図される。
序論
本明細書に記載されるものなどの方法及びシステムは、オーケストレーションシステムによる使用に適切な1つ以上の結果を生成することができる様式で、ワークロードの依存性分析をサポートすることによって、コンピューティング環境におけるハードウェア及びソフトウェアリソースの管理を提供する。そのような方法及びシステムは、1つ以上の属性グラフ(又は同等の構造体)の使用によってそのような結果の生成を容易にする。
理解されるように、ワークロードのための依存性マッピング及びインフラストラクチャ接触点(接触点)の識別は、アプリケーション及び他のデータセンターコンポーネントの災害復旧及びマイグレーションのための強固なワークフローを構築することの基本部分である。多くの場合、データセンターインフラストラクチャとオーケストレーションされているワークロード(複数可)との間には複数の接触点が存在し、そのうちのいずれか(又は全て)は、所与のワークロードをサポートするために必要とされる依存性に寄与し得る。
マイグレーション及び災害復旧シナリオなどのオーケストレーション動作において直面する課題としては、物理的に分離された接触点、そのような接触点の隔離、及びそのようなオーケストレーション動作によって影響を受ける接触点の識別が挙げられる。本明細書に記載されるものなどの方法及びシステムは、以下及び本明細書の他の箇所に記載されるように、効率的かつ効果的な様式でこれらの課題に対処する。
例えば、データセンター間などのインフラストラクチャのユニット間の地理的に分散した接触点の場合。ワークロードインフラストラクチャの多様性、異なるデータマイグレーション方法及びターゲットの種類(ホスト型データセンター又はクラウド)を考慮すると、関連するデータと併せてのワークロードの別のデータセンターへのマイグレーションをオーケストレーションするために使用することができる依存性チェーンを識別することは困難である。複製されたデータベースの場合、依存性評価の際、十分なマイグレーション接触点はデータベース自体であり得る。これにより、DR及びマイグレーションのために、ファイルシステムのようなデータベースインフラストラクチャをオーケストレーションする必要が回避される。低レベル(例えば、論理ユニット番号(logical unit number、LUN)レベル複製を使用して複製されるVMの場合、依存性評価の際、VMからデータストア、そしてLUNへのマイグレーション接触点は、当該のLUN及びその上に常駐する全てのVMである。別のシナリオは、VMイメージの、それらをサポートするシステム(複数可)の外部での複製である(帯域外複製)。この場合、依存性評価の際、マイグレーション接触点は、バックアップポリシー及び生成されるバックアップイメージである。ここでもまた、これにより、データストア、LUNなどのVMインフラストラクチャをオーケストレーションする必要が回避される。
別の例は、接触点を隔離する能力である。複数のデータマイグレーション方法を有するより複雑な復旧構成については、例えば、依存性は、データマイグレーション方法ごとに隔離されるべきである。これは、低レベル複製及び帯域外複製が両方とも実装される場合に発生する(例えば、VM画像は、帯域外複製を使用して複製されるが、VMのストレージも、LUNレベルで複製される)。
更に別の例は、オーケストレーション動作によって(潜在的に)影響を受ける接触点の識別である。例えば、メンテナンス動作に関して、そのような動作によって影響を受けるエンティティを見つける必要がある場合がある。ここで、依存性は、当該のメンテナンスを実行することができるように停止又は無効化されるべきエンティティを反映すべきである。そのような状況は、例えば、記憶デバイス上でメンテナンスを実行する必要がある場合に発生し得、その結果、そのデバイスを使用するワークロードが緩やかに停止され、そのデバイスを使用するファイルシステムがマウント解除されることが必要となる。本開示に照らして理解されるように、そのような動作によって影響を受けるエンティティを、当該のデバイス(複数可)に対するそれらの関係の判定を通じて、迅速かつ効率的に判定する能力が有利である。
本明細書に記載されるものなどの方法及びシステムは、属性グラフ又は同等の構造体の使用によってそのような利点を提供する。そのような構造体では、ハードウェア及びソフトウェアコンポーネント(本明細書では「エンティティ」とも呼ばれる)並びにそれらの関係はそれぞれ、ノード(頂点)及びリンク(エッジ)によって表される。そのような構造体の重要な特徴は、一般に、コンピューティング、ネットワーク、及び記憶リソースの表現を提供する能力と、そのようにして表現されるエンティティのオーケストレーションを容易にし、サポートするために、そのような情報を1つ以上のオーケストレーションシステムに提示することができる様式で分析する能力とである。したがって、(例えば、災害復旧の目的のための)オーケストレーションに適した様式でのコンピューティング環境の作成及び分析に特に重点を置きながら、コンピューティング環境管理アーキテクチャの様々な革新的な要素の例を説明する。
現在、上述したものなどの課題に対処し、手動で生成された情報に依存しない柔軟な手法に拡張されるような汎用システムを提供する解決策(明らかに、数百又は数千のコンポーネント及びそれらの間の指数関数的に多数の関係を有する大規模システムでは克服不可能なタスク)は存在しない。データ及びアプリケーションのマイグレーション/DR動作及びそれに関与する接触点の依存性マッピング(複数可)を迅速かつ効率的に判定するという課題に対処するために、かつそれを汎用的な様式で行うために、以下の特性が有利であると理解されるであろう。
○接続された経路の自律的計算/分析を所望の程度に可能にするために、属性グラフによって接続されたドメインのエンティティを表現する。これにより、エンティティの種類及びそれらの間の関係の明示的な知識なしに、依存性及びマイグレーション接触点の識別が容易になる。
○したがって、技術におけるマッピング及びマイグレーション接触点を識別するための表現のユースケース及び技術非依存の分析は、新しい依存性、ユースケース、及び技術が環境に導入される際に修正の必要性を発生しにくくする。
○アプリケーション及びVM DR及びマイグレーション自動化のためのワークフロー作成システムのような他のシステムによって消費され得る、明確に定義された標準フォーマットで依存性マッピングを表現する。
前述のニーズ及び記載された課題に対処するために、本明細書に記載されるものなどの方法及びシステムは、以下に記載されるものなどの要素を提供する。
1.コンピューティング環境内の様々なエンティティの表現
2.エンティティの注釈
3.依存性マッピングの識別
4.依存性マッピングのための標準インターフェース
そのような特徴を提供する際、本明細書に記載されるものなどの方法及びシステムによるコンピューティング環境管理アーキテクチャは、仮想マシン(VM)などのエンティティ、及びデスクトップコンピュータプラットフォーム上で実行され得るものなどの様々なアプリケーションのための災害復旧及びワークロード管理能力を提供する。そのようにすることで、そのようなアーキテクチャは、様々な形式の多数の回復能力のための情報技術(information technology、IT)アプリケーションを管理するためのシステムを提供し、そのような解決策は、例えば、災害復旧及びワークロード管理を提供する。そうするために、本明細書に記載されるものなどの方法及びシステムは、属性グラフなどの構造体を用いて、コンピューティング環境内の様々なエンティティ、並びにそれらの間に存在し得る関係を表すことができる。そのような表現は、いくつかの利益を提供する。
オーケストレーションアーキテクチャの例示的特徴
本明細書に記載されるものなどの方法及びシステムによるコンピューティング環境はまた、仮想マシン(VM)及び他のそのようなエンティティ(ハードウェア及び/又はソフトウェアコンポーネント)の管理を提供する。そのようなエンティティは、物理マシン(コンピューティングシステム)上にプロビジョニングされる(したがって、その上にホストされる)VM、並びにそのようなノードによって既にホストされているVMとの両方に関連付けられる。この点に関して、VM構成は、1つ以上のリソース要件、並びに1つ以上の追加の要件を含み得る。リソース要件は、所与のVMをホストするためにノードにおいて必要とされる1つ以上のリソースを示す。追加の要件は、所与のVMをホストするためにノードに必要とされる1つ以上の動作要素を示す。このVM構成は、様々なクラスタの構成と比較される。クラスタ構成は、そのクラスタのノード(複数可)に関する構成情報を示すことができる。そのような比較は、所与のVMをホストするためのリソース及び追加の要件を満たすことができるノードを含むクラスタを選択するために、オーケストレーションシステムによって実装することができる。VMは、そのVMに関連付けられたサービスレベル契約(service level agreement、SLA)に基づいてプロビジョニング又はマイグレーションすることができる(例えば、災害が発生した場合に)。SLAは、VMがプロビジョニングされるノードの物理的要件などの様々なリソース要件を含むことができる。これらのリソース要件としては、CPU、メモリ、及び他のハードウェア要件、並びに他のエンティティ(それがハードウェア若しくはソフトウェア、又はそれらの組み合わせであるかを問わない)に対する依存性を挙げることができる。その結果、VMは、そのVMに関連付けられたSLAのリソース要件によって指定されたリソースを有するサーバ上にプロビジョニングされる(又はマイグレーションされる)。
上述のように、仮想マシン(VM)は、物理コンピューティングデバイスに典型的に関連付けられた機能を提供する、ソフトウェア構造体などのコンピューティングエンティティである。そのような機能としては、例えば、文書作成、データベース、及びウェブ閲覧プログラムなどのアプリケーションを実行する能力が挙げられる。仮想マシンは、Windows(登録商標)、Linux(登録商標)、Mac OS X(登録商標)などのオペレーティングシステムを実行することができる。仮想マシンは、ホストとして知られる物理マシン上で実行される。複数の仮想マシンを単一の物理マシン上に実装又はプロビジョニングすることができる。所与の仮想マシンは、物理マシン(又は当然ながら他の物理マシン)上で実行される他の仮想マシンから論理的に離隔される。
複数の物理マシンが利用可能である環境に新しい仮想マシンをプロビジョニングする場合、どの物理マシンをその新しい仮想マシンのために使用するかを選択することは、重要な決定である。既存の仮想マシンをある物理マシンから別の物理マシンへ移動する場合、例えば、仮想マシンがプロビジョニングされている物理マシンが保守のためにオフラインにされるか、又は障害が発生した場合、どの物理マシンに既存の仮想マシンを移動させるかを選択することは、同様に重要な決定である。
特定の状況では、そのようなプロビジョニングは、SLAによって制御され、SLAは、(上述のように)実装の要件を定義し、リソース要件及び追加の要件の両方などのVM構成を含むことができる。このVMをプロビジョニングすることができるノードの物理的要件などのリソース要件。これらのリソース要件としては、CPU、メモリ、及び/又は他のハードウェア要件を挙げることができる。リソース要件(複数可)は、VMをホストするためのノードにおいて必要とされるリソース(複数可)を示す。例えば、これらのリソースは、VMをホストするためのノードの様々なハードウェア要件を含む。その結果、VMは、このVMに関連付けられたSLAのリソース要件によって指定されたリソースを有するノード上にプロビジョニング(又はマイグレーション)することができる。
追加の要件は、VMをホストするためのノードにおいて必要とされる動作要素(複数可)を示す。例えば、これらの追加の要件としては、とりわけ、可用性要件、データ保護要件、及びセキュリティ要件を挙げることができる。可用性要件は、VMの可用性要件(複数可)を定義することができる。データ保護要件(複数可)は、VMをホストするための潜在的ノードにおいて必要とされるデータ保護要素を示すことができる。セキュリティ要件(複数可)は、VMをホストするための潜在的ノードに必要とされるセキュリティ要素を示すことができる。動作要素(複数可)は、VMをホストするための潜在的ノードにおいて必要とされるデータ保護要素を示すことができる。
VM構成情報としては、リソース要件(複数可)、及び1つ以上の追加の要件(複数可)を挙げることができる。そのようなVM構成情報は、クラスタ内の任意の場所でサポート、実装、アクセス、及び/又は記憶することができる(例えば、そのような構成情報は、クラスタのノード及び/又はそのストレージ間に分散され得る)。VM構成情報はまた、例えば、中央リポジトリなどのクラスタの外部に記憶し、例えばネットワークを介してアクセスすることができる。一実施形態では、VM構成は、VMのサービスレベル契約(SLA)に含まれる。一実施形態では、VM構成は、まだホストされていないVMと関連付けられる。例えば、VM構成に従って、新しいVMの作成(例えば、ノードにプロビジョニングされること)を要求するコマンドを受信することができる。別の実施形態では、VM構成は、クラスタのノードのうちの1つに既にホストされているVMと関連付けられる。例えば、VM構成に従って、VMが新しいノードにプロビジョニングされることを要求するコマンドを受信することができる。
一実施形態では、クラスタはまた、関連付けられたクラスタ構成を有し得る。クラスタ構成は、クラスタに関する構成情報及び/又はノード(複数可)に関する構成情報を含むことができる。例えば、そのようなクラスタ情報としては、所与のノードの構成情報を挙げることができる。クラスタ構成は、例えば、クラスタのノード間に、クラスタストレージ内に、又は中央リポジトリなどのクラスタの外部のストレージに配布され、ネットワークを介してアクセスされることを含め、所与のクラスタ内の任意の場所でサポート、実装、アクセス、及び/又は記憶することができることに留意されたい。
仮想マシン(新しい仮想マシン、又はある物理マシンから別の物理マシンにマイグレーションされている既存の仮想マシンのいずれか)及び関連付けられたアプリケーションの性能は、仮想マシンをホストするように選択された物理マシンに応じて変化し得る。すなわち、仮想マシンの性能、例えば、速度、応答性、安定性は、仮想マシンが実装される物理マシンに応じて変化し得る。所与の物理マシン上で仮想マシンを実行することはまた、物理マシン及び物理マシン上で実行される他のプロセスの性能に影響を及ぼし得る。仮想マシンは、物理マシンのリソースを消費することがあり、その結果、物理マシン、例えば、同じ物理マシン上に実装された他の仮想マシンによって実行されている他のプロセスのために利用可能なリソースが少なくなる。物理マシンのリソースをより効率的に使用するための1つの技術は、物理マシン上に実装された仮想マシンが、複数の仮想マシンによって使用されるメモリページを共有することである。すなわち、物理マシンのメモリは重複排除することができる。
仮想マシンをホストするために複数の物理マシンが利用可能であるコンピューティング環境では、どの物理マシンに仮想マシンをホストするかを選択する1つの方法は、各物理マシンの利用可能なリソース、例えば、ネットワーク送信帯域幅、メモリ、プロセッササイクルを比較し、最も多くの利用可能なリソースを有する物理マシンを選択することである。いくつかの利用可能な物理マシンの中から物理マシンを選択する別の方法は、利用可能な物理マシンが、新たにプロビジョニングされるか又は別の物理マシンからマイグレーションされる仮想マシンを順番にホストする、ラウンドロビンである。取り決めたサービスレベル合意において課されている条件を満たすことは、仮想マシンを配置する際の重要な考慮事項である場合がある。
前述のリソース考慮事項に加えて、リソース要件(複数可)情報は、一般に、VMの様々なリソース要件(並びに最適及び/又は許容可能な動作のための「好みの設定」)を定義することができる。リソース要件としては、CPU、メモリ、ネットワーク、プラットフォーム、ブートディスクイメージなどを挙げることができる。これらは、典型的には、VMをホストするためのノード(例えば、サーバ)のハードウェア要件である。追加の要件(複数可)としては、可用性要件、データ保護要件、及びセキュリティ要件、並びに他のコンポーネント(例えば、ハードウェア及び/又はソフトウェアコンポーネント)に対する依存性を挙げることができる。
可用性要件は、VMの可用性要件(複数可)、例えば、仮想マシンが許容できる必要がある物理ホスト障害の数、仮想マシンの災害復旧のために構成された遠隔サイトの数などを定義することができる。例えば、要件は、VMがN個の物理ホスト障害を許容する必要があることを含み得る。この要件は、VMのリソース要件(複数可)を満たすことができる少なくともN+1個の物理ホストを有するクラスタによって満たされ得る。別の例では、要件は、VMが1つのサイト障害を許容すること、すなわち、VMが災害復旧設定を有する必要があることを含むことができる。この要件は、クラスタ上でアクティブな仮想マシンをアクティブ化するために使用することができるクラスタが存在する(例えば、遠隔サイトに)場合など、災害復旧(Disaster Recovery、DR)が構成されたデータセンター内のクラスタによってのみ満たすことができる。例えば、ニューヨークのクラスタは、ロンドンの対応するDRクラスタ設定を有し得る。ニューヨーククラスタ内のホストで障害が発生した場合、ニューヨークのクラスタ上でアクティブであった仮想マシンは、ロンドンのDRクラスタを介して利用可能にすることができる。
セキュリティ要件は、仮想マシンがアクセスすることができるネットワークを制限するための仮想マシンのセキュリティゾーン、マルウェアスキャンのポリシー及び頻度などを定義する。例えば、要件は、N時間ごとにウイルスがないかVMディスクイメージをスキャンすることであってもよい。この要件は、VM及び/又はVMをホストするノード内にウイルススキャンソフトウェアを設定することによって満たされ得る。あるいは、この要件は、VMイメージがアクセス可能であるどの場所からでも、例えばVMイメージが配置されている場所、又は仮想マシンのディスクイメージにアクセスすることができる別のホストから、オフラインで行うことができる。別の例では、要件は、仮想インフラストラクチャをいくつかのガイドラインに適合させることであってもよい。この要件は、ハイパーバイザ、ネットワーク、ストレージの適合性をコンプライアンス評価システムによってチェックすることによって満たされ得る。要件の別の例は、VMが、全てのアウトバウンドトラフィックをスキャンするように構成されたDLPゲートウェイを有するホスト上にプロビジョニングされる必要があることである。このSLAは、VMの全てのアウトバウンドトラフィックをスキャンするように構成され得るDLPゲートウェイを有するホストによって満たされ得る。
データ保護要件は、仮想マシンのバックアップ又はスナップショットの頻度、媒体、及び方法/種類を定義する。例えば、要件は、特定の種類のバックアップソフトウェアを使用してイメージをH時間ごとにバックアップする必要があることであってもよい。別の要件は、増分又は完全バックアップなどの特定の種類のバックアップの使用を必要としてもよい。この要件は、適切なバックアップソフトウェア設定を有し、バックアップメディアへのアクセスを有するホストによって満たされ得る。
このように、本開示に照らして理解されるように、仮想マシン及びそれに関連付けられた仮想マシンデータをバックアップして、仮想マシン及び仮想ディスクのためのデータ保護を提供することができる。バックアップされた仮想マシン及び仮想ディスクは、仮想マシンの動作を再開又は開始するために復元され得る。例えば、災害復旧シナリオでは、仮想マシンをホストするノードのクラッシュに起因して動作不能になった仮想マシンをバックアップから別のホストに復元することができ、動作を再開することができる。別の実施形態では、仮想マシン及び仮想ディスクをバックアップからホストに復元することができ、動作を開始することができ、したがって、同じ仮想マシンの複数のインスタンスを作成することができる。仮想マシン自体は比較的少量のデータ(例えば、数キロバイト又は数メガバイトのオーダー)を含むので、仮想マシンを復元することは、典型的には比較的迅速に実行することができる。仮想ディスクは典型的には比較的大量のデータ(例えば、数ギガバイトのオーダー)を含むので、仮想ディスクを復元することは、典型的にはより長くかかる。
例示的なオーケストレーションアーキテクチャ
図1は、コンピューティング環境100のブロック図である。示すように、コンピューティング環境100は、いくつかの物理マシン110(1)〜110(N)(コンピューティングシステム)を含む。各物理マシン110は、いくつかの仮想マシン115(1)〜115(i)をホストする。代替的な実施形態は、異なる数の物理マシン、異なる数の物理マシンごとの仮想マシンを実装することができ、同じシステムは、同じ環境内の他の物理マシンとは異なる数の仮想マシンをそれぞれ実装する1つ以上の物理マシンを含むことができることに留意されたい。
上記で使用されるもの(「N」及び「i」)などの変数識別子は、一連の関係又は類似する要素(例えば、物理マシン)の最終要素(例えば、物理マシン110(N))をより単純に指定するために使用されることに留意されたい。そのような変数識別子の繰り返し使用は、そのような一連の要素のサイズ間の相関関係を暗示することを意図するものではないが、そのような相関関係が存在してもよい。そのような変数識別子の使用は、各一連の要素が、同じ変数識別子によって区切られた別の一連と同じ数の要素を有することを必要としない。むしろ、使用の各インスタンスにおいて、識別された変数は、同じ変数識別子の他のインスタンスと同じ又は異なる値を保持してもよい。
物理マシン110は、ネットワーク130によって管理サーバ120及びいくつかの記憶デバイス150(1)〜150(4)に結合されている。ネットワーク130としては、他のそのような構造体及びシステムの中でも、インターネットなどのWAN(広域ネットワーク、Wide Area Network)、1つ以上のLAN(ローカルエリアネットワーク、Wide Area Network)、及び/又は1つ以上のSAN(ストレージエリアネットワーク、Storage Area Network)を挙げることができる。
物理マシン110は、コンピューティングデバイス又はコンピューティングデバイスの一部であり、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などの任意の種類のコンピューティングデバイスであり得る。いくつかの実施形態では、そのような物理マシンは、メモリ及びプロセッササイクルなどの物理コンピューティングリソースが必要に応じて及び/又は契約に応じて割り当てられるクラウドコンピューティング環境に含まれる。物理マシン110のリソースは、物理マシン上に実装された仮想マシンによって共有される。物理マシン110はそれぞれ、メモリ112を含む。メモリ112は、一実施形態では、ランダムアクセスメモリ(random access memory、RAM)である。メモリ112は、いくつかのページに編成される。ページは、一般に、メモリの固定サイズ部分、例えばメモリの4キロバイト(kilobyte、Kb)部分である。
仮想マシン115は、例えば、組織に関連付けられたユーザにコンピューティングリソースを提供するために使用することができる。ユーザ、例えばある組織の情報技術(IT)専門家が追加のリソースを要求する場合、クラウドベンダーの管理者(例えば、IT専門家)は、追加のリソースの要求を満たすために1つ以上の追加の仮想マシンをプロビジョニングすることができる。一実施形態では、プロビジョニングモジュール121を用いて、コンピューティングリソースの要求においてユーザによって指定された要件を検出することができる。プロビジョニングデータ122を使用してその機能を実行するプロビジョニングモジュール121は、要求に応答して仮想マシンを自動的に作成又は配置し、仮想マシンを物理マシン110のうちの1つ上にプロビジョニングさせることができる。見られるように、プロビジョニングモジュール121(及びそれに関連付けられたプロビジョニングデータ122)、並びに属性グラフ作成モジュール125及び属性グラフ分析モジュール126(及び関連付けられた属性グラフデータ127)は、管理サーバ120によってサポートされるモジュールに数えられる(これらのモジュールは、図1では、例として、管理モジュール129として描写されている)。属性グラフ作成モジュール125及び属性グラフ分析モジュール126などのシステムの動作を、続いて、並びに図3〜16に関連して、かつそれらとの関係において説明する。
管理者はまた、1つ以上の仮想マシンを第1の物理マシンから代替の物理マシンに移動させることもできる。例えば、管理者は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は1つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出したことに応答して、1つ以上の仮想マシンを異なる(ターゲット)物理マシンに移動(マイグレーション)することができる。一実施形態では、プロビジョニングモジュール121は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は1つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出するなど、仮想マシンがマイグレーションされるべきであることを示す状態を自動的に検出することができる。プロビジョニングモジュール121は、オーケストレーションサービスを提供することの一環として、そのような条件を検出したことに応じて、1つ以上の仮想マシンを自動的にマイグレーションさせることができる。
管理サーバ120は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などのコンピューティングデバイス又はコンピューティングデバイスの一部であってもよい。管理サーバ120は、新たな又はマイグレーションされた仮想マシンをホストするためのターゲット物理マシンを選択することができる。管理サーバ120は、プロビジョニングモジュール121及びプロビジョニングデータ122を含む。
プロビジョニングモジュール121は、新しい仮想マシン(又はある物理マシンから別の物理マシンにマイグレーションされる仮想マシン)がターゲット物理マシンのリソース(例えばメモリ)をより効果的に利用することになる(例えば、ターゲット物理マシンによってホストされているか又はホストされることになる1つ以上の仮想マシンとより多くの数のメモリページを共有することによって)可能性に基づいて、ターゲット物理マシンを選択することができる。更に、そのような動作は、管理サーバ120の管理のために提示されるグラフィカルユーザインターフェース(graphical user interface、GUI)を使用して、直感的かつ効率的な様式で実行することができる。
プロビジョニングモジュール121は、プロビジョニングデータ122を使用してプロビジョニングに関する情報を収集及び維持し、利用可能なリソースの適切な(又は単純に許容可能な)使用を行うために1つ以上の仮想マシン、それらに関連付けられた記憶コンポーネント(仮想マシンディスク(virtual machine disk、VMDK))、関連付けられた機能などをプロビジョニングする様式を決定することができる。これは、例えば、所与のVMを受け入れる決定であってもよい(例えば、どの物理マシンが所与の仮想マシンと最大数の共有メモリページを共有し、プロビジョニングデータ122内にその情報を記憶する可能性が高いかを示す)。プロビジョニングモジュール121は、プロビジョニングデータ122を分析して、どの物理マシンが仮想マシンをホストするかを選択することができる。プロビジョニングモジュール121は、様々なソースから様々な形式でプロビジョニングデータ122を収集することができる。プロビジョニングモジュール121はまた、各物理マシンのメモリに維持されているデータを追跡することができる。一実施形態では、各物理マシンは、物理マシンのメモリに記憶されたページに関する情報をプロビジョニングモジュール121に定期的に送信する。あるいは、当該の物理マシンは、新しいページをメモリに追加することに応答して、新しい仮想マシンが物理マシン上にプロビジョニングされたことに応答して、及び/又はエントリのリストを求めるプロビジョニングモジュール121による要求に応答して、リストを送信することができる。一実施形態では、各エントリは、アドレス、例えばページのアドレスを含む。一実施形態では、そのような情報は、物理マシンによってホストされる仮想マシンによって使用されるオペレーティングシステム又はアプリケーションなどの、物理マシンによってホストされる1つ以上の仮想マシンの特性を識別するタグを含むことができる。
仮想マシンが物理マシン上で実行されており、別の物理マシンにマイグレーションされる実施形態では、プロビジョニングモジュール121は、仮想マシンが実行されている物理マシンからのリソース情報(例えば、メモリ情報)を使用して、複数の利用可能な物理マシン(ターゲット物理マシン)のうちのどれに仮想マシンをマイグレーションさせるべきかを決定することができる。本例を使用して、プロビジョニングモジュール121は、所与の仮想マシンがマイグレーションされ得る1つ以上の候補を識別するために、仮想マシンに関する情報(仮想マシンをホストする物理マシンから受信したもの)と、ターゲット物理マシンのそれぞれの情報とを比較することができる。
新しい仮想マシンがプロビジョニングされるときなど、仮想マシンが物理マシン上で既に実行されていない場合、管理サーバ120は、仮想マシンをプロビジョニングする動作を実行し、プロビジョニングされる仮想マシンが必要とするコンピューティングリソースを決定することができる。一実施形態では、プロビジョニングモジュール121は、物理マシンから受信する代わりに、及び/又はそれに加えて、記憶デバイス150のうちの1つなどの記憶デバイスから仮想マシン情報を受信する。記憶デバイス150は、記憶デバイスが電源オフされた後であっても、そのような記憶デバイス上に記憶されたデータが記憶されたままになるように、永続的データ記憶を提供する。そのような記憶デバイスは、例えば、ハードディスク、コンパクトディスク(compact disc、CD)、デジタル多用途ディスク(digital versatile disc、DVD)、若しくは他の大量記憶デバイス、又はそのような記憶デバイスのアレイを含む記憶システム(例えば、独立ディスクの冗長アレイ(redundant array of independent disk、RAID)システム若しくは光学記憶ジュークボックス)であってもよい。そのような記憶デバイスはまた、そのような物理記憶デバイス及び/又は記憶システム上に実装される仮想又は論理記憶デバイスであってもよい。例えば、そのような記憶デバイスは、RAID記憶システム上に実装される論理ボリュームであり得る。加えて、そのような記憶デバイスは、1つ以上の記憶デバイスを含むことができる。記憶デバイスはまた、ソリッドステート媒体(例えば、フラッシュドライブ)、光学媒体(例えば、CD及びDVD)、並びに磁気媒体(例えば、ハードディスク又は磁気テープ)を含む1つ以上の種類の記憶媒体を含むことができる。いくつかの実施形態では、そのような記憶デバイスは、クラウドストレージを使用して実装することができ、クラウドストレージでは、記憶デバイスは、必要に応じて及び/又は契約に応じて物理記憶デバイス(複数可)が割り当てられる論理記憶デバイスである。
いくつかの仮想マシン(例えば、VM156(1)〜(3)、166(1)〜(3)、及び176(1)(3))は、1つ以上のVMDK(例えば、記憶デバイス150(4)に記憶されたVMDK180(1)〜(N))と同様に、記憶デバイス150のうちの1つ以上(例えば、記憶デバイス150(1)〜(3))に記憶することができる。プロビジョニングモジュール121は、これらの仮想マシンのうちの1つ以上に関する情報を取得し、当該の仮想マシン(複数可)をプロビジョニングすることができる。プロビジョニングモジュール121はまた、当該の仮想マシン(複数可)を記憶するために、仮想マシン115のうちの1つ以上に関する情報を取得することができる。図1に描写するように、記憶デバイス150(1)は、重複排除モジュール154を含むファイルシステム152を実装する。ファイルシステム152は、仮想マシン156を含む、内部に記憶されたデータの重複排除をサポートする。この例では、仮想マシン156(1)〜156(3)が重複排除される。すなわち、各仮想マシン156は、一組のデータから形成される。特定の実施形態では、仮想マシン156は、仮想マシン156の別のデータと同一のデータを含む。これは、2つ以上の仮想マシン156が同一のアプリケーション及び/又はオペレーティングシステムを含む場合に起こり得る。複数の仮想マシン156が同一のデータを含む場合、記憶デバイス150(1)は、同一のデータの単一のコピーのみを記憶する。したがって、重複排除データ158は、仮想マシン156を構成するデータのどの部分が仮想マシン間で共有されているか、例えば、2つ以上の仮想マシン156間で同一であるかを識別する情報を含む。プロビジョニングモジュール121は、重複排除データ158を使用して、仮想マシン156のうちの1つをホストするための物理マシンを選択することができる。
そのような記憶デバイスはまた、記憶された仮想マシンの指紋を計算し、このようにして生成された指紋を指紋データとして記憶デバイス150のうちの1つ以上に記憶することができる1つ以上の指紋モジュールを含むことができる。仮想マシンの指紋を計算することは、仮想マシンイメージ及び仮想マシンに関係するデータをチャンクに分割することと、各チャンクの指紋を計算することと、を伴う。チャンクは、データの固定又は可変長の部分である。指紋モジュール162は、各チャンクの署名又は指紋を生成するために様々な機能を利用することができる。そのような機能としては、例えば、セキュアハッシュアルゴリズム(Secure Hash Algorithm、SHA)、メッセージダイジェストアルゴリズム5(Message-Digest Algorithm5、MD5)、ラビンハッシュ、巡回冗長検査(Cyclic Redundancy Check、CRC)などのうちの1つ以上を挙げることができる。例えば、署名は、特定のチャンクを処理し、それに応答してハッシュ(例えば、SISレベル署名)を計算するSHA−1などのハッシュ関数によって生成されるハッシュであってもよい。
そのようなシナリオでは、プロビジョニングモジュール121は、得られた指紋データにどのような指紋が記憶されているかに関する情報を記憶デバイス150から受信する。記憶デバイス150のうちの1つ以上は、新しい指紋の追加に応答して(例えば、新しい仮想マシンが記憶デバイス150のうちの1つに記憶される場合)、及び/又はプロビジョニングモジュール121による要求に応答して、指紋に関する情報をプロビジョニングモジュール121に定期的に送信することができる。そのような要求は、指紋データがプロビジョニングモジュール121に送信されるべき1つ以上の仮想マシンを指定することができる。
コンピューティング環境100などの環境では、本明細書に記載されるものなどの方法及びシステムは、上述のように、管理モジュール120を構成する管理モジュールのうちの1つ以上によって提供されるオーケストレーション機能をサポートするために、属性グラフ作成モジュール125及び属性グラフ分析モジュール126、並びに作成/分析された属性グラフデータ(例えば、属性グラフデータ127)を含む。本開示に照らして理解されるように、属性グラフ作成モジュール125は、属性グラフデータ127などの属性グラフデータの作成を容易にする機能を提供する。属性グラフ分析モジュール126は、そのような属性グラフデータの分析を容易にする機能を提供し、並びに1つ以上のオーケストレーションシステムによる使用に適した形式の情報を生成する。そのような機能の例を、例えば、図8、図9、及び図10に関連して(属性グラフ作成モジュール125に関して)、並びに図8、図11、及び図12に関連して(属性グラフ分析モジュール126及びその出力を使用するオーケストレーションシステムに関して)与える。
図2は、物理マシン110のブロック図である。物理マシン110は、メモリ200及びプロセッサ202を含む。物理マシン110はまた、いくつかの仮想マシン115(1)〜115(3)を含む。3つの仮想マシンが示されているが、物理マシン110は、より多い又はより少ない仮想マシンをサポートすることができる。
メモリ200は、オペレーティングシステム205を含む。オペレーティングシステム205は、物理マシン110のハードウェアを制御し、クライアント物理マシン110上で実行されるアプリケーション及び仮想マシンに様々なサービスを提供する。例えば、仮想マシン115が(仮想化モジュール225(例えば、ハイパーバイザなど)などの仮想化モジュールを介して)あるページをメモリ200にロードすることを要求すると、オペレーティングシステム205は、その要求をファイルシステム210に中継することができ、ファイルシステム210は、例えば、記憶デバイス150のうちの1つのファイルデータからそのページを読み出すことを要求することができる。ファイルシステム210は、ページを受信し、ページをメモリ200に、例えば、仮想マシンデータ240に書き込むことができる。ファイルシステム210は、記憶デバイス150のうちの1つのファイルデータなどのデータをファイル及びディレクトリに整理することができる。ファイルシステム210は、記憶デバイス150のうちの1つ以上にあるファイル及びデータの物理的位置のリストを維持することができる。
メモリ200は、重複排除モジュール230を含む。重複排除モジュール230は、仮想マシンデータ240を含むメモリ200に関係する重複排除動作を実行することができる。指定されたデータユニット、例えばページをメモリ200に読み込むとき、重複排除モジュール230は、同一のデータを含むデータユニットがメモリ200内に既に存在するかどうかを判定し、例えば、そのデータが物理マシン110上にホストされた別の仮想マシンによって要求されていることがあり、そのデータへのアクセスを可能にする。
一実施形態では、重複排除モジュール230は、ファイルシステム210によるページ要求について通知される。ページがメモリ内に既に存在するかどうかを判定するために、重複排除モジュール230は、ページの署名、例えば指紋を計算し、その指紋を仮想マシンデータ240に記憶された指紋のリストと比較する。指紋がリスト内に存在する場合、ページは冗長であり、重複排除モジュール230は、読み込みをキャンセルするようにファイルシステム210に通知することができる。指紋が見つからない場合、ページは、仮想マシンデータ240に既に記憶されておらず、重複排除モジュール230は、その指紋を指紋のリストに追加し、読み込みを続行させる。仮想マシンデータ240は、仮想マシン115によって使用されるデータ、並びにデータの指紋のリストを含む。
メモリ200は、仮想化モジュール225を含む。仮想化モジュール225は、仮想マシン及び仮想マシンのためのリソースの作成及び管理に関係する動作を実行する。仮想化モジュール225は、スタンドアローンモジュールとして例示されているが、オペレーティングシステム205に含まれてもよい。仮想化モジュール225は、仮想マシン115などの1つ以上の仮想マシンを同時にサポートする能力を物理マシン110に提供する。仮想化モジュール225は、仮想マシンが物理的コンピュータと同様に動作するように、コンピュータリソース(例えば、処理パワー、メモリなど)の仮想マシンへの分配を調整することによって、この能力を提供する。仮想化モジュール225は、仮想マシンの代わりに命令の実行をサポートするようにプロセッサリソースを調整し、仮想マシンがホストコンピュータのシステムメモリを効果的に共有することを保証するようにメモリ管理を実行することによって、仮想マシンをサポートするように設計することができる。更に、仮想化モジュール225の特定の実施形態は、ホストオペレーティングシステムを必要としない(一般に「ベアメタルハイパーバイザ」などと呼ばれる)。
メモリ200は、クラスタモジュール235を含む。一実施形態では、複数の仮想マシンの配置又はマイグレーション決定を一度に行うことが望ましい場合がある。そのような実施形態では、配置サーバは、同様に位置する仮想マシンのクラスタを形成することができる。クラスタのサイズは、各物理マシン上の利用可能なリソース、仮想マシンのリソース要件などの様々な要因に依存し得る。様々なアルゴリズムをクラスタ化に使用することができる。
物理マシン110はまた、仮想マシン115(1)〜115(3)を含む。一般的な用語では、仮想マシン115は、物理コンピュータシステムとして機能するソフトウェア構造体である。例えば、仮想マシン1115は、アプリケーションを含み、アプリケーションを実行し、サービスを提供し、コマンドを処理することができる。仮想マシンは、Microsoft Windows(登録商標)、Unix(登録商標)などのそれ自体のオペレーティングシステムを有し、物理マシン110上に設けられた仮想化モジュール225などのホスト上の仮想化ソフトウェアとインターフェース接続することができる。
アーキテクチャの特徴及びその表現構造体の例
図3は、一実施形態による、コンピューティング環境分析アーキテクチャの一例を例示するブロック図である。上述のように、本明細書に記載されるものなどの方法及びシステムは、以下に記載されるものなどの要素を提供する。
1.コンピューティング環境内の様々なエンティティの表現
2.エンティティの注釈
3.依存性マッピングの識別
4.依存性マッピングのための標準インターフェース
エンティティ及び関係の表現に関して、本明細書に記載されるものなどの方法及びシステムは、1つ以上の抽出/変換/読み込み(extract/transform/load、ETL)プロセスによって供給されるエンティティ記録を属性グラフなどの表現構造体へと表現する。この結果、エンティティがそのような属性グラフの頂点として表され、それらの関係がそのような属性グラフのエッジとして表された、エンティティ及びそれらの互いとの関係のグラフ抽象化が得られる。
そのような方法及びシステム、並びに表現構造体は、エンティティの注釈を提供する。オーケストレーションすることができるエンティティ(例えば、アップダウン、有効化無効化などの操作インターフェースをサポートするエンティティ)は、注釈を付けることができる。そのようなエンティティの例は、アプリケーション、仮想マシン、ファイルシステム、データストア、アレイ整合性グループなどである。
そのような注釈としては、例えば、以下のものを挙げることができる:
・_ecosystem(_e):エンティティに対して可能な動作によるエンティティのグループ化。例としては、計算、記憶、ネットワーク、複製、クラウドなどが挙げられる。
・_technology(_t):エコシステムを可能にする技術の名称。例としては、VMエンティティ、複製エンティティ、クラウドエンティティなどが挙げられる。
特定のエンティティは、オーケストレーション、特定のオーケストレーション動作、若しくは特定のシステム動作中のオーケストレーションに適していない場合があり、又はオーケストレーションに決して適していない場合がある(例えば、ユニットを物理的に移動させることによる場合を除いて、物理マシンをマイグレーションさせることができない)。その結果、そのようなエンティティは、オーケストレーションされる必要がない(又はそれどころかできない)場合がある(例えば、物理サーバ、エンクロージャ、ハイパーバイザなど)。
したがって、データ転送(複製/コピー)のために構成されたエンティティは、属性で注釈を付けることができる。
・_replicated:例えば、複製されたエンティティの注釈は、_replicatedである。そのようなエンティティの例は、複製されたLUN、帯域外複製を使用して複製されたバックアップイメージ、複製されたデータストアなどである。
・_copy:スナップショット及びバックアップコピーは、加えて、_copyで注釈を付けられる。
本明細書に記載されるものなどの方法及びシステムは、依存性マッピングの識別もサポートする。必要とされる依存性マッピングの識別は、所与のワークロードに対するエンティティ及び関係の最適な順序付けられた集合を識別する反復的プロセスである。
・システムは、ソースデータセンター上の選択されたワークロードから開始して、エンティティの階層を横断する。
・システムは、_technologyで注釈を付けられたエンティティを記録する。
・_replicatedで注釈を付けられたエンティティは、ソースデータセンターのマイグレーション接触点として記録される。
・そのようなエンティティについては、システムは、関係を精査すること、及び_replicatedで注釈を付けられた経路を選択することによって、ターゲットデータセンター上の関係するエンティティを探し、ターゲットデータセンター上のマイグレーション接触点としてそれらを記録する。
・複製/コピーがどのように構成されるかに応じて、2つ以上の遠隔ターゲットが存在し得る。
・システムは、ターゲットデータセンター上のマイグレーション接触点から開始して、エンティティの階層を横断する。
・システムは、_technologyで注釈を付けられたエンティティを記録する。
本明細書に記載されるものなどの方法及びシステムはまた、標準表現を提供する。そのようなプロセスは、ソース及びターゲットデータセンター上のエンティティの順序付けられたリストを提供する。次いで、システムは、エンティティをエコシステム及び技術のグループに統合して、オーケストレーションされ得る様々な層のビューを提供する。
単純に述べると、属性グラフを表現構造体として使用するとき、頂点及びエッジの両方が属性を有する(キーが属性名であるキー値ペア)そのような属性グラフを使用して、上述のように、エンティティ及びそれらの関係に関する情報を維持することができる。ここでの利点は、そのような表現構造体はエッジ上にも属性を有するので、横断は、経路/関係の特性を考慮に入れることもでき、横断は、後で分析中に使用することができる永久的又は一時的なタグとして、エッジ/関係上に属性を刻印することができることである。そのような表現構造体が含むことができる情報の種類(及びしたがって特性)の一例としては、以下のとおりである:
頂点1:

_type:“ホスト”
id:“12345231”
_technology:“VMware”
_environment:“仮想化”
プラットフォーム:“ESXi”
ncpu:16

頂点2:

_type:“ディスク”
id:“98345231”
_environment:“仮想化”
サイズ:“16GB”
種類:“SSD”

頂点3:

_type:“ディスク”
id:“98345232”
_environment:“仮想化”
サイズ:“16GB”
種類:“SSD”

頂点1と頂点2との間のエッジ:

ラベル:“包含”
モード:“読み書き”

頂点1と頂点3との間のエッジ:

ラベル:“包含”
モード:“リードオンリー”
上記に見られるように、特定の特性(_type、_environmentなど)を使用して、所与のエンティティの適切な管理について決定を行い、それらの間の依存性を判定することができる。
前述のことを考慮して、図3は、コンピューティング環境分析アーキテクチャ300を描写する。コンピューティング環境分析アーキテクチャ300は、本開示に照らして理解されるように、例えば別個のモジュールとして実装することができるいくつかのソフトウェア及び/又はハードウェア層を含む。更に、図3に描写される層のうちの1つ以上は、同図に示される他の層と組み合わされ、除去され、他の層によって拡張されてもよい。コンピューティング環境分析アーキテクチャ300の層としては、図3に描写するように、マイグレーション層310、ワークフロー作成層320、及びエンティティ表現層(オーケストレーション)330、接触点識別層340、依存性識別層350、エンティティ表現層360、エンティティ注釈層370、並びにETL(抽出/変換/ロード)処理層380が挙げられる。所与のコンピューティング環境のエンティティのうちの1つ以上に対してオーケストレーションを実行するための必要条件として、所与のコンピューティング環境の様々な仮想及び物理ハードウェア及びソフトウェアユニットを表す、本明細書に記載される属性グラフなどの構造体(又は同等のそのような構造体)は、エンティティ及びそのような構造体におけるそれらの関係として表される。これらのエンティティ及び関係は、例えば、データセンターなどのコンピューティング環境内の様々なハードウェア及びソフトウェアユニットを表す。そのような構造体は、所与のエンティティの特性で注釈を付けることができ、次いで、そのような情報は、オーケストレーションシステムによって、それらのエンティティをオーケストレーションするために使用され得る。そのようなエンティティの注釈としては、エンティティのエコシステム、技術、エンティティが複製されているかどうか、エンティティがコピーされているかどうか、及び他のそのような特性を識別する情報を挙げることができる。そのような構造体、本明細書に記載されるものなどの方法及びシステムの使用により、所与のワークロードの接触点に基づいて、依存性マッピングの識別及び影響されるエンティティのマイグレーションが提供される。その場合、そのような構造体は、ソースコンピューティング環境(例えば、データセンター)内で横断することができ、したがって、そのようなエンティティ及びそれらの関係に関する情報の記録を可能にする。例えば、所与のマーカ(例えば、技術)でマーキングされたエンティティは、分析プロセス(例えば、本明細書に記載されるような属性グラフ分析プロセス)が、所与のオーケストレーションシステムの動作の一環としてその後マイグレーションすることができるエンティティに関する情報を記録することを可能にする。そのような横断はまた、複製されている又はコピーされているとしてマーキングされたエンティティに基づいて、ターゲットコンピューティング環境(例えば、データセンター)に切り替わることもできる。そのようにすることで、そのような横断は、データセンター間の境界を横断することができる。
その結果、そのような例では、属性グラフをターゲットデータセンターに横断することができ、所与の技術に関連付けられているとしてマーキングされたターゲットデータセンター内のエンティティ(例えば、マイグレーションすることができる仮想デバイス)の記録を可能にする。更に、横断経路は、外部のプラガブルなルール、並びに分析システムのための他の手動で入力されたガイダンスを考慮に入れるように、(例えば、管理者に提示されるユーザインターフェースによって)カスタマイズすることができる。属性グラフなどのワークフローに優しい表現を使用することにより、本明細書に記載されるような分析システムは、例えば、ソース及びターゲットデータセンター上のエンティティの順序付けられたリストを提供することができる。更に、そのような表現は、エンティティをエコシステム及び技術のグループに統合して、所与のオーケストレーションシステムによってオーケストレーションされ得る様々な層のビューを提供する。
図4は、一実施形態による、コンピューティング環境の一例を例示するブロック図である。したがって、図4は、コンピューティング環境400を描写し、コンピューティング環境400は、境界415によって分離されたソースシステム405とターゲットシステム410とを含む。境界415などの境界の例は、論理的(例えば、異なる仮想ネットワーク、異なるネットワークドメインなど)又は物理的(例えば、距離によって物理的に分離されている、物理的に別個のネットワークなど)であり得る。その場合、コンピューティング環境400などのコンピューティング環境における依存性を分析する際に直面する課題のうちの1つとしては、境界415などの境界を越えた依存性を判定する必要性が挙げられる。
コンピューティング環境400は、図4に描写するように、ワークロード420として示されるエンティティを含む。ワークロード420は、エンティティ422及び424、並びにエンティティ430との関係を有する。ソースシステム405はまた、エンティティ432、434、440、442、及び444を含む。描写されるように、エンティティ430は、エンティティ432、434、及び440との関係を有する。エンティティ440は、エンティティ442及び444との関係を有する。エンティティ440はまた、ターゲットシステム410内のエンティティ(図4にエンティティ450として描写される)との関係を有する。エンティティ450は、ターゲットシステム410のエンティティ452及び454との関係を有するだけでなく、エンティティ460にも関係し、エンティティ460は、図4にリソース470として描写されるエンティティに関係する。図4に描写されるコンピューティング環境400の表現は、同図に描写されるエンティティ及び関係の横断を可能にする。最適な依存性マッピング及びインフラストラクチャ接触点の識別は、アプリケーション及びデータセンターの災害復旧及びマイグレーションなどのオーケストレーション操作をサポートするワークフローを構築するために重要である。そのような依存性は、図4において、特定のエンティティ及び関係に使用されるより太い線幅によって例示される。例えば、ワークロード420は、エンティティ430に依存し、エンティティ430は、エンティティ440に依存する。ソースシステム405内のエンティティ440は、ターゲットシステム410内のエンティティ450に依存する。依存関係は、ターゲットシステム410内のリソース470、エンティティ460、及びエンティティ450との間にも存在する。したがって、これらのエンティティ及びそれらの関係を表す構造体を横断することによって、本明細書に記載される方法及びシステムによる依存性分析システムは、当該のエンティティの順序付けられた表現を生成し、よって、それによって表されるハードウェア及びソフトウェアユニット上でのオーケストレーション動作をサポートすることができる。
図5は、一実施形態による、複数の接触点を有するコンピューティング環境の一例を例示するブロック図である。ワークロード520は、エンティティ522及び524、並びにエンティティ530との関係を有する。ソースシステム505はまた、エンティティ532、534、540、542、及び544を含む。描写されるように、エンティティ530は、エンティティ532、534、及び540との関係を有する。エンティティ540は、エンティティ542及び544との関係を有する。エンティティ540はまた、ターゲットシステム510内のエンティティ(図5にエンティティ550として描写される)との関係を有する。エンティティ550は、ターゲットシステム510のエンティティ552及び554との関係を有するだけでなく、エンティティ560にも関係し、エンティティ560は、図5にリソース570として描写されるエンティティに関係する。
図5に描写されるコンピューティング環境500の表現は、前述の様式で、同図に描写されるエンティティ及び関係の横断を可能にする。最適な依存性マッピング及びインフラストラクチャ接触点の識別は、アプリケーション及びデータセンターの災害復旧及びマイグレーションなどのオーケストレーション動作をサポートするワークフローを構築するために重要である。そのような依存性は、図5において、特定のエンティティ及び関係に使用されるより太い線幅によって例示される。例えば、ワークロード520は、エンティティ530に依存し、エンティティ530は、エンティティ540に依存する。ソースシステム505内のエンティティ540は、ターゲットシステム510内のエンティティ550に依存する。依存関係は、ターゲットシステム510内のリソース570、エンティティ560、及びエンティティ550との間にも存在する。したがって、これらのエンティティ及びそれらの関係を表す構造体を横断することによって、本明細書に記載される方法及びシステムによる依存性分析システムは、当該のエンティティの順序付けられた表現を生成し、よって、それによって表されるハードウェア及びソフトウェアユニット上でのオーケストレーション動作をサポートすることができる。図5には、エンティティ524とリソース580との関係も描写されている。本開示に照らして理解されるように、エンティティ524とリソース580との間の関係は、境界515を横切る。この情報は、エンティティ540とエンティティ550との間の関係の様式で、エンティティ524とリソース580との間のエッジに関連付けられる。
図6は、一実施形態による、コンピューティング環境内のハードウェア及びソフトウェアエンティティの一例を例示するブロック図である。描写されるように、図6のコンピューティング環境は、境界606によって分離されたデータセンター602とデータセンター604とを含む。上述のように、境界606などの境界は、データセンター602と604との間の論理的分離、物理的分離、及び他のそのような状況から生じ得る。理解されるように、境界606によって表される分離は、典型的には、災害復旧計画などの結果として意図的である。データセンター602は、例えば、物理マシン610及び記憶システム612を含む。同様に、データセンター604は、物理マシン616及び記憶システム618を含むものとして描写されている。データセンター602及び604は、広域ネットワーク620によって互いに通信可能に結合される。データセンター602内のエンティティは、企業ネットワーク622を介して互いに通信することができ、企業ネットワーク622は、広域ネットワーク620に結合される。同様の方式で、データセンター604は、企業ネットワーク624を含み、企業ネットワーク624は、データセンター604のエンティティ(例えば、物理マシン616及び記憶システム618)を互いに結合する。データセンター604はまた、企業ネットワーク624によって広域ネットワーク620に通信可能に結合される。
図6に描写される物理マシン(物理マシン610及び616)は、様々なハードウェア及びソフトウェアユニットをサポートする。例えば、物理マシン610は、プロセッサ630、ネットワークインターフェース632、及びメモリ634を含む。図6に描写するように、様々なソフトウェアモジュールがメモリ634内に記憶される(かつ、メモリ634から実行される)。そのようなソフトウェアモジュールは、例えば、オペレーティングシステム650、仮想化モジュール652、及び1つ以上の仮想マシン(図6に仮想マシン(VM)654(1)〜(N)として描写される)を含むことができる。仮想化モジュール652は、例えば、仮想マシン654(1)〜(N)をサポートするためのハイパーバイザ又は同等の構造体として実装することができ、仮想マシン654(1)〜(N)は、1つ以上のアプリケーション(図6にアプリケーション655(1)〜(6)として描写される)の実行をサポートする。記憶システム612は、1つ以上の関連付けられた仮想マシン(例えば、仮想マシン654(1)〜(N))のための記憶を提供する仮想マシンディスク(VMDK)658(1)〜(N)を含む。
同様の方式で、物理マシン616は、プロセッサ660、ネットワークインターフェース662、及びメモリ664などのコンポーネントを提供する。メモリ634の様式で、メモリ664は、オペレーティングシステム670、仮想化モジュール672、及びいくつかの仮想マシン(図6に仮想マシン674(1)〜(N)として描写される)などのソフトウェアモジュールを記憶し、その実行を可能にする。仮想マシン674(1)〜(N)は、いくつかのアプリケーション(図6にアプリケーション675(1)〜(4)として描写される)をサポートすることができる。記憶システム618は、1つ以上の関連付けられた仮想マシン(例えば、仮想マシン654(1)〜(N))のための記憶を提供する仮想マシンディスク(VMDK)678(1)〜(N)を含む。
図7は、一実施形態による、図6のコンピューティング環境の部分を表す属性グラフの表現の一例を例示するブロック図である。図7では、図6のコンピューティング環境600などのコンピューティング環境は、属性グラフ700(又は同様の構造体)によって表される。前と同様に、データセンター602及びデータセンター604は、境界606によって分離されている。属性グラフ700において、データセンター602及びデータセンター604内のエンティティは、図7に描写するように、記憶情報グループ720と記憶情報グループ725との間の複製関係710を介して互いに関係を有する。見られるように、これら及び他のエンティティは、図6には示されないが、物理的又は論理的に存在するため、属性グラフ700に表現される。上述の様式で、属性グラフ700は、図6に示すエンティティ間の関係も表す。例えば、アプリケーション655(1)は、アプリケーション655(2)に依存する。アプリケーション655(1)及び655(2)は、仮想マシン654(1)に依存する。仮想マシン654(1)は、仮想化モジュール652に依存し、仮想マシンディスクのうちの1つ(仮想マシンディスク658(1))にも依存する。アプリケーション655(1)及び655(2)は、論理ストレージ識別子740によって識別される記憶ユニット735上に記憶されたデータセット730にも依存し、これらは全て記憶システム612内に存在する。記憶システム612の記憶ユニット(例えば、論理ストレージ識別子740によって識別される記憶ユニット735)は、ストレージグループ情報720によってストレージグループのメンバーであると識別され、その結果、データセンター604内のストレージグループ情報725を介してデータセンター604内のストレージとの複製関係(複製関係710)が得られる。データセンター602と同様の様式で、データセンター604は、例えば、論理ストレージ識別子760によって識別される記憶ユニット755に記憶されたデータセット750を記憶システム618内に含めることによって、複製関係710に対するサポートを提供する。
表現構造体の作成及び分析のための例示的なプロセス
図8は、一実施形態による、属性グラフの実装のための例示的なプロセスを描写するフローチャートである。図8は、属性グラフ実装プロセス800を描写する。属性グラフ実装プロセス800は、810における属性グラフの作成から始まる。必要な属性グラフ(複数可)が作成されると、それによって表されるハードウェア及びソフトウェアコンポーネントの分析を実行することができる。したがって、属性グラフ分析は、工程820で実行される。当該のコンピューティング環境のハードウェア及びソフトウェアコンポーネントが、そこに記載されるものなどの方法及びシステムを使用して分析されたので、それらのハードウェア及びソフトウェアコンポーネントのオーケストレーションをこれより実行することができる。このようにして実行された属性グラフ分析の1つ以上の結果に基づくオーケストレーションが、次いで工程830で達成される。
図9は、一実施形態による、属性グラフ作成のための例示的なプロセスを描写するフローチャートである。属性グラフ(又は1つ以上の属性グラフ)の作成は、図9に描写されるような属性グラフ作成プロセス900によって達成することができる。属性グラフ作成プロセス900は、属性グラフ(又はその一部分)を作成するための開始点としてのエンティティ(例えば、データセンター内のハードウェア及び/又はソフトウェアコンポーネント)の識別から始まり、それは910で選択されている。選択されたエンティティについて、選択されたエンティティのエンティティ情報が既に収集されているかどうかについて判定が行われる(920)。選択されたエンティティのエンティティ情報がまだ収集されていない場合、選択されたエンティティに関するエンティティ情報が収集され、選択されたエンティティを表す属性グラフ内のノードと関連付けて記憶される(930)。必要なエンティティ情報が収集され記憶されると(又はそのような収集及び記憶が既に実行されており、したがって必要ではないと判定されると)、選択されたエンティティが、属性グラフ内のノードの作成を必要とする最後のエンティティであるかどうかについて判定が行われる(940)。選択されたノードが実際に最後のエンティティであった場合、プロセスは終了する。
あるいは、追加のエンティティが残っている場合、管理ソフトウェアは、これらのエンティティを属性グラフに追加するために、選択されたエンティティが他のエンティティとの間で有し得る関係を横断する(950)。そのような関係を横断するためのプロセスの一例を、以下の図10に描写されるプロセスに関連して説明する。管理システムが選択されたエンティティから次のエンティティへと横断すると、次のエンティティが分析のための次の選択されたエンティティとして選択される(960)。次いで、このプロセスは、(現在)選択されたエンティティについてエンティティ情報が既に収集されているかどうかについての判定に戻る(920)。このプロセスは、当該のエンティティに関するエンティティ情報が収集され、属性グラフ内のエンティティに関連して記憶されるまで継続する。
図10は、一実施形態による、属性グラフを作成するために、一実施形態による、エンティティ及びそれらの関係を横断するための例示的なプロセスを描写するフローチャートである。上述のように、管理ソフトウェアは、そのようなコンポーネント及びその関係を表す構造体(例えば、属性グラフ)を構築するために、ハードウェア及びソフトウェアコンポーネント及びそれらの関係を横断することになる。この目的のために、管理プロセスは、図10に描写されるように、属性グラフ作成横断プロセス1000によって、そのようなコンポーネントをそれらの関係によって横断することになる。属性グラフ作成横断プロセス1000は、現在のエンティティが他のエンティティとの間で有する(すなわち、当該のコンポーネントが、所与のデータセンター又は他のデータセンター内の他のコンポーネントとの間で有する)1つ以上の関係の識別から始まる(1010)。次に、これらのエンティティ関係のうちの1つが選択される(1020)。次いで、選択されたエンティティ関係(すなわち、当該のコンポーネント間の関係)に関する関係情報を収集し、この関係を表す属性グラフのエッジと関連付けて記憶する(1030)。次いで、属性グラフに追加されるべき現在のエンティティ(コンポーネント)と他のそのようなエンティティ(コンポーネント)との間の他のエンティティ関係が残っているかどうかについて判定が行われる(1040)。更なる関係が存在せず、したがって作成を必要としない場合、プロセスは、存在するエンティティが関係を有するどの次のエンティティが選択されるべきかの点に進む(1050)。次いで、プロセスは終了する。あるいは、属性グラフに追加されるべき追加のエンティティ関係が残っている場合(1040)、属性グラフ作成横断プロセス1000は、図9に描写される属性グラフ作成プロセス(属性グラフ作成プロセス900)の実行に進み、残りのエンティティ関係(S)を表す必要なリンク(SM)の作成を可能にし、開始エンティティは現在選択されているエンティティ(1060)である旨の表示が行われる。そのようにすることで、本開示に照らして理解されるように、属性グラフ作成横断プロセス1000(及びしたがって属性グラフ作成プロセス900)における1つ以上の残りのリンクを作成するプロセスは、本質的に再帰的であり、したがって、本明細書に記載されるものなどの方法及びシステムによるグラフの作成を提供する様式で、コンポーネント及びそれらの関係を探索する。したがって、所与のコンポーネントが他のコンポーネントとの間で有し得る複数の関係として、エッジ(リンク)は、得られる属性グラフに作成され得、したがって、コンピューティング環境におけるコンポーネント及びそれらの関係の正確な表現を提供することができる。
図11は、一実施形態による、1つ以上の属性グラフを分析するための例示的なプロセスを描写するフローチャートである。したがって、属性グラフ分析は、例えば、属性グラフ分析プロセス1100によって実行することができる。属性グラフ分析プロセス1100は、オーケストレーションされるべきワークロードを表す所与の属性グラフ内のノードの識別から始まる(1110)。そのようにすることで、属性グラフ分析プロセス1100は、このノードを依存性分析の開始点として識別する。次に、属性グラフ内のノードに関連付けられたエンティティ情報を分析する(1120)。選択されたノードに関連付けられたエンティティ情報は、エンティティ(ノード)が生成されている依存性チェーンの一部であるべきであることを示すかどうかについて判定が行われる(1130)。エンティティ情報が、エンティティが依存性チェーンの一部とされる必要がないことを示す場合、選択されたノードが、所与の依存性チェーンについて分析されるべき最後のそのようなノードであるかどうかについて判定が行われる(1140)。当該のノードが最後のそのようなノードである場合、プロセスは終了する。あるいは、エンティティ情報が、ノードが依存性チェーン内に含まれるべきであることを示す場合、そのようなエンティティ情報は、収集され、記録されている依存情報に記憶される(1150)。前と同様に、次いで、選択されたノードが依存性チェーン内の最後のノードであるかどうかについて判定が行われる(1140)。選択されたノードが依存性チェーン内の最後のノードである場合、プロセスは終了する。あるいは、分析されるべき更なるノードが残っている場合、プロセスは、適切なリンク(複数可)及び属性グラフの横断に進み、依存性チェーン(1160)内に含まれるべきである可能性がある次のノード(複数可)に到達する。次のノードへの横断において実行することができる動作の一例を、以下の図12に関連して詳細に論じる。分析されるべき属性グラフ内の次のノードに横断すると、属性グラフ分析プロセス1100は、当該のノードを選択し、その分析に進む(1170)。したがって、プロセスは、この選択されたノードの分析に戻り(1120)、属性グラフ分析プロセス1100のプロセスは継続する。
図12は、一実施形態による、属性グラフを分析する一環として属性グラフを横断するための例示的なプロセスを描写するフローチャートである。したがって、属性グラフ分析横断プロセス1200が描写されており、属性グラフ内の現在のノードから属性グラフ内の他のノードへの1つ以上のエッジの識別から始まる(1210)。この時点で、属性グラフ分析横断プロセス1200は、そのエンティティの、属性グラフで表される別のエンティティとの関係を表す現在のノードからのエッジを選択する(1220)。次いで、エッジ(関係)に関係するエッジ情報が、エッジが依存性チェーン(1230)に含まれることになる1つ以上のノードにつながることを示すかどうかについて判定が行われる。所与のエッジがそのようなノードにつながっていない(したがって、属性グラフを通るこの経路に沿った更なる分析が必要でないと結論付けることができる)場合、そのような経路に沿った横断は続行する必要はない旨の表示が行われる(1240)。次いで、プロセスは終了する。あるいは、当該のエッジ情報が、エッジが依存性チェーンの一部であるべき1つ以上のノードにつながることを示す場合、属性グラフ内の現在のノードからの他のエッジが横断される必要があるかどうかについて判定が行われる(1250)。現在のノードからの他のエッジが横断される必要がない場合、エッジが接触点(接触点)を表すかどうかについて判定が行われ、そうである場合には、接触点情報が依存性データに記録される(1260)。次いで、横断はそのように識別された次のノードに進むことができる旨の表示が行われる(1270)。次いで、プロセスは終了する。
あるいは、横断されるべき属性グラフ内の現在のノードからの他のエッジが残っている場合(1250)、属性グラフ分析横断プロセス1200は、残りのエッジについて属性グラフ分析(属性グラフ分析横断プロセス1100)を実行し、そのような分析の開始ノードが現在のノードである旨を表示する(1280)。前述したものと同様の様式で、このプロセスは、本質的に再帰的であり、したがって、全ての必要なノード(及びしたがってエンティティ)が、災害復旧などの管理タスクを実行するためにオーケストレーションソフトウェアによって使用され得る順序付けられた依存情報に含まれることを確実にするような様式で、当該の属性グラフを横断することが理解されるであろう。前と同様に、現在のエッジが接触点を表す場合、この接触点に関する情報は、オーケストレーションソフトウェアによる使用のために、依存性データに記録される(1260)。また前と同様に、次いで、当該の属性グラフの横断が、そのように識別された次のノードに進むことができる旨の表示が行われる(1270)。次いで、プロセスは終了する。
表現構造体の例
図13は、低レベルの複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。図13の例では、仮想マシンは、LUNレベル複製で保護される(仮想マシンは、ストレージアレイレベルで複製されたLUN上にあるデータストアに常駐するため、保護される)。したがって、属性グラフ1300は、図13に描写されており、前と同様に、境界1306によって分離されたデータセンター1302及びデータセンター1304内のエンティティの表現を含む。図13に描写されるエンティティ(ノード)によって表されるデータセンター1302内のコンポーネントとしては、仮想マシン1310、仮想マシンディスク1315、及びデータセット1317が挙げられる。仮想マシン1310、仮想マシンディスク1315、及びデータセット1317は、仮想化モジュール1320によってサポートされる。データセット1317は、エンクロージャ1335内の記憶ユニット1330上に記憶される。記憶ユニット1330は、論理ユニット番号1340によって識別される。記憶ユニット1330に記憶された情報は、データセンター1302内の整合性グループオブジェクト1350とデータセンター1304内の整合性グループオブジェクト1355との間で複製される。複製動作は、低レベル複製関係1360によって表される。データセット1317の複製が実行され、したがって、データセット1317内のデータは、エンクロージャ1375内の記憶ユニット1370に記憶され、論理ユニット番号1380によって識別されるデータセット1316に複製される。データセット1360は、仮想化モジュール1390によってサポートされる。
図13に描写するように、属性グラフ1300のノードによって表される様々なエンティティは、(例えば、災害復旧の場合に)マイグレーションすることができ、オーケストレーションシステムがそのようなマイグレーションを実行することを可能にするのは、エンティティの識別及び特定の他の特性の判定である。その場合、より太い線の太さを有する図13に描写される要素は、図11の属性グラフ分析プロセス1100などの属性グラフ分析プロセス中に識別されたエンティティ及びそれらの関係を表す。例えば、VM1310は、VMDK1315との関係を有し、VMDK1315は、データセット1317との関係を有することが分かる。記憶ユニット1330及びエンクロージャ1335(並びに記憶ユニット1330の識別子(論理ユニット番号1340))は、マイグレーションのための適切な候補ではなく、そのためより太い線幅では示されない。低レベルの複製関係1360によって互いに関連付けられた整合性グループオブジェクト1350及び1355は、そのような属性グラフ分析プロセスがデータセンター1304内のエンティティに関する判定を行うことを可能にする。その場合、そのようなプロセスは、データセット1360も(潜在的に)マイグレーションの対象となることを識別する。この例では、記憶ユニット1370(論理ユニット番号1380によって識別される)及びエンクロージャ1375、並びに仮想化モジュール1390は、マイグレーションに不適切であるとみなされる。
図13に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
DC1{
Ecosystems:{
Compute:[
{Tech:vmware,Objects:{VM1}}
],
Storage:[
{Tech:vmware,Objects:{vmdk1,DS1}}
],
Replication:[
{Tech:srdf,Objects:{CG1}}


},
DC2{
Ecosystems:{
Replication:[
{Tech:srdf,Objects:{CG2}}
],
Storage:[
{Tech:vmware,Objects:{DS2}}
],

図14は、高レベルのコピー作成が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。図14に描写する例では、仮想マシンは、帯域外複製技術を使用して保護される。したがって、属性グラフ1400が、図14に描写されており、この場合もデータセンター1402、データセンター1404、及びそれらの間の境界(図14に境界1406として描写される)などの共通の要素を含む。図14に描写するシナリオでは、VM1410、VMDK1415、及びデータセット1417は、記憶ユニット1420と同様にエンクロージャ1425内で互いとの関係において描写されており、論理ユニット番号1430によって識別される。前と同様に、仮想化モジュール1440は、記憶ユニット1420内のVMDK1415内に記憶されたVM1410及びデータセット1417をサポートする。データセット1417のコピーは、エンクロージャ1465内の記憶ユニット1460に記憶され、論理ユニット番号1467によって識別され、仮想化モジュール1470によってサポートされたデータセット1450としてデータセンター1404内に存在する。データセット1450は、データセット1470のコピーであり、コピープロセス1482とコピープロセス1484との間の高レベルのコピー関係1480によって作成される。コピープロセス1482は、マスタプロセス1490の制御下にあり、コピープロセス1484は、マスタプロセス1492の制御下にある。図13に提示される例と同様に、図14に描写される例は、波打つ線幅を用いて、所与の例においてオーケストレーションの対象となる属性グラフ1400内のノードを示す。その場合、データセンター1402内のVM1410、VMDK1415、及びデータセット1417は、そのようなオーケストレーションの対象となる。しかしながら、属性グラフ1400を横断することによって、データセット1450もそのようなオーケストレーションの対象となると判定することができる。本開示に照らして理解されるように、マイグレーションは、これらのエンティティの全て、又はその一部を含み得る。例えば、データセンター1402内にあるオーケストレーションの対象となるエンティティは、例えば災害復旧シナリオにおいて、データセンター1404内のエンティティ(例えば、データセット1450)との関係を維持しながら、別のデータセンターにマイグレーションされ得る。
図14に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
DC1{
Ecosystems:{
Compute:[
{Tech:vmware,Objects:{VM1}}
],
Copy:[
{Tech:nbu,Objects:{vm1copy}}


},
DC2{
Ecosystems:{
copy[
{Tech:nbu,Objects:{vm1copy}}


図15は、高レベルの同期される物理複製が実装される一実施形態による、属性グラフの表現の一例を例示するブロック図である。したがって、図15は、境界1506によって分離されたデータセンター1502とデータセンター1504とを含む属性グラフ1500を描写する。図15に提示されるシナリオでは、データセンター1502は、エンクロージャ1530内の記憶ユニット1525上のファイルシステム1520に記憶され、論理ユニット番号1535によって識別される1つ以上のファイル(複数可)1515を含むデータベース1510をサポートする。ファイルシステム1520内のデータベース1510及びそのファイル(複数可)1515は、ホストコンピューティングシステム1540によってサポートされる。データベース1510は、データセンター1504に複製され、エンクロージャ1580内の記憶ユニット1575上のファイルシステム1570内の1つ以上のファイル(複数可)1565を含むデータベース1560としてデータセンター1504に示され、論理ユニット番号1585によって識別される。データセンター1502と同様の方式で、データセンター1504は、1つ以上のホストコンピューティングシステム(図15にホストコンピューティングシステム1585として描写される)上のデータベース1560、ファイル(複数可)1565、及びファイルシステム1570をサポートし、同期関係(図15に高レベルの同期関係1590として描写される)、データセンター1502及び1504内のコンポーネントに影響を及ぼし、同期される物理複製モジュール1592及び同期される物理複製モジュール1594を含む。同期される物理複製モジュール1592及び1594は、属性グラフ1500に表され、図11の属性グラフ分析プロセス1100などの属性グラフ分析プロセスによって分析することができる高レベルの同期関係1590をサポートする。そのため、より太い線幅で図15に描写されるエンティティは、そのような属性グラフ分析の対象となるエンティティであり、したがって、例えば、(例えば、災害復旧シナリオが発生した場合に)そのようなエンティティのマイグレーションを実行するためにオーケストレーションシステムによって使用され得るオーケストレーション情報に示される。したがって、データベース1510、そのファイル(複数可)(ファイル(複数可)1515)、及びファイルシステム1520は、災害からの復旧を容易にするために、別のデータセンターにマイグレーションすることができる。そのような場合、同期される物理複製モジュール1592をマイグレーションさせるか、又はそのようなモジュールを新たなデータセンター内で適切に設定することによって、高レベルの同期関係1590を維持しながら、これらのエンティティのマイグレーションを実行することができる。
図13に描写されるエンティティを横断することによって、属性グラフに使用する情報を集めることができる。
DC1{
Ecosystems:{
App:[
{Tech:oracle,Objects:{Oradb1}}
],
Replication:[
{Tech:dataguard,Objects:{DGuard2}}


},
DC2{
Ecosystems:{
Replication:[
{Tech:dataguard,Objects:{DGuard2}}
],
App:[
{Tech:oracle,Objects:{Oradb2}}
],


表現構造体を使用した例示的なオーケストレーションアーキテクチャ
図16は、本明細書に記載されるものなどの方法及びシステムによる、管理及びオーケストレーションアーキテクチャのブロック図である。上述のように、図16に例示される(及び同図にITRPアーキテクチャ1600として描写される)ものなどのITRPアーキテクチャは、集中アーキテクチャとして(例えば、図1に描写するような(ITRPサーバ120及びそのモジュール))、分散アーキテクチャとして(例えば、本明細書に記載されるものなどの、そのようなアーキテクチャの特徴の多くと共に記載されているような)、又はそれらの何らかの組み合わせとして、実装することができる。その場合、図16のITRPアーキテクチャ1600の描写は、同図に例示される要素の論理表現であり、その実装は、手近な状況に好適な任意の方式で分散され得る。
図16に見られるように、ITRPアーキテクチャ1600は、ITRPシステム1605を含み、ITRPシステム1605は、回復マネージャ1610及びインフラストラクチャ管理サービス1615を含む。本明細書に記載されるものなどの方法及びシステムによるインフラストラクチャ管理サービス1615は、分散管理機能を提供し、この分散管理機能は、特定の実施形態では、2層のサービスセットも含むことができる。インフラストラクチャ管理サービス1615は、1つ以上の層を含む。図16に描写するように、インフラストラクチャ管理サービス1615は、アグリゲータ層1620及びエージェント層1630として例示される2つの層を含む。しかしながら、本開示に照らして、インフラストラクチャ管理サービス1615は、3つ以上の層を有するように構成することができ、遭遇する状況に適切であり得る任意の数のそのような層を実装することができることが理解されるであろう。
アグリゲータ層1620は、「上部」層として機能し、サポートされるハードウェア及びソフトウェア要素について、発見されたアセット、均一な動作層、及び永続的状態の統合された概要を提供する能力を提供する。アグリゲータ層1620をサポートするエージェント層1630は、「底部」層として機能し、サポートされるハードウェア要素(例えば、ストレージアレイ)並びにソフトウェア要素(例えば、データベース(database、DB)及び/又はデータベース管理システム(database management system、DBMS)のインスタンス(複数可))を発見、監視、及び操作する能力を提供する。
上述のように、インフラストラクチャ管理サービス1615は、回復マネージャ1610も含む。回復マネージャ1610は、集中管理機能を提供するように構成することができ、この集中管理機能は、特定の実施形態では、2層のサービスセットを含む。しかしながら、インフラストラクチャ管理サービス1615と同様に、回復マネージャ1610は、3つ以上の層を有するように構成することができ、遭遇する状況に適切であり得る任意の数のそのような層を実装することができる。図16に描写するように、回復マネージャ1610は、ビジネス層1640を含む。ビジネス層1640は、「上部」層として機能し、いくつかのモジュールを含むことができ、その例は、ワークロード管理サービスモジュール1642、復旧自動化サービスモジュール1644、及び報告サービスモジュール1646として図16に描写される。
回復マネージャ1610は、コア層1650も含む。コア層1650は、ビジネス層1640をサポートするために「底部」層として機能し、例えば、プロビジョニングモジュール1660、ERサービスモジュール1661、データベース(DB)サービスモジュール1662、メッセージングサービスモジュール1663、通信及びデータファーデードサービスモジュール1664、認証及び認可サービスモジュール1665、ロギング及び監査サービスモジュール1666、ライセンス許諾サービスモジュール1667、並びにワークフローサービスモジュール1668などのモジュールを含むことによって、いくつかのサービスを提供する。本開示に照らして理解されるように、そのようなモジュール(及びそれらが提供するサービス)は、その単なる例に過ぎず、ビジネス層1640をサポートするために提供され得る他の多くの機能及びサービスに数えられる。
例示的なコンピューティング及びネットワーク環境
上述のように、本明細書に記載されるシステムは、様々なコンピュータシステム及びネットワークを使用して実装することができる。そのようなコンピューティング及びネットワーク環境の例を、図17及び18を参照して以下に説明する。
図17は、本明細書に記載されるシステムなどの態様を実装するのに好適なコンピュータシステム1710のブロック図を描写する。コンピュータシステム1710は、中央処理装置1714、システムメモリ1717(典型的にはRAMであるが、ROM、フラッシュRAMなども含む)、入出力コントローラ1718などのコンピュータシステム1710の主要サブシステム、オーディオ出力インターフェース1722を介したスピーカーシステム1720などの外部オーディオデバイス、ディスプレイアダプタ1726を介したディスプレイスクリーン1724、シリアルポート1722及び1730、(キーボードコントローラ1733を介してインターフェース接続される)キーボード1732、ストレージインターフェース1734、フロッピーディスク1738を収容するように動作するフロッピーディスクドライブ1737、ファイバチャネルネットワーク1790と接続するように動作するホストバスアダプタ(host bus adapter、HBA)インターフェースカード1735A、SCSIバス1739と接続するように動作するホストバスアダプタ(HBA)インターフェースカード1735B、並びに光ディスク1742を収容するように動作する光ディスクドライブ1740などの外部デバイス、を相互接続するバス1712を含んでもよい。マウス1746(又はシリアルポート1722を介してバス1712に結合された他のポイントアンドクリックデバイス)、(シリアルポート1730を介してバス1712に結合された)モデム1747、及び(バス1712に直接結合された)ネットワークインターフェース1748も含まれる。
バス1712は、中央処理装置1714と、上述のようにリードオンリーメモリ(read-only memory、ROM)又はフラッシュメモリ(どちらも図示せず)及びランダムアクセスメモリ(RAM)(図示せず)を含み得るシステムメモリ1717との間のデータ通信を可能にする。RAMは、一般に、オペレーティングシステム及びアプリケーションプログラムが読み込まれるメインメモリである。ROM又はフラッシュメモリは、他のコードの中でも、周辺コンポーネントとの相互作用などの基本的なハードウェア動作を制御する基本入出力システム(Basic Input-Output system、BIOS)を含んでもよい。コンピュータシステム1710と共に常駐するアプリケーションは、一般に、ハードディスクドライブ(例えば、固定ディスク1744)、光学ドライブ(例えば、光学ドライブ1740)、フロッピーディスクユニット1737、又は他のコンピュータ可読記憶媒体などのコンピュータ可読記憶媒体に記憶され、それらからアクセスされる。
ストレージインターフェース1734は、コンピュータシステム1710の他のストレージインターフェースと同様に、情報の記憶及び/又は取り出しのために、固定ディスクドライブ1744などの標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ1744は、コンピュータシステム1710の一部であってもよく、又は別個であり、かつ他のインターフェースシステムを介してアクセスされてもよい。モデム1747は、電話リンクを介した遠隔サーバへの直接接続、又はインターネットサービスプロバイダ(internet service provider、ISP)を介したインターネットへの直接接続を提供してもよい。ネットワークインターフェース1748は、POP(point of presence、ポイントオブプレゼンス)を介したインターネットへの直接的なネットワークリンクを介して、遠隔サーバへの直接接続を提供してもよい。ネットワークインターフェース1748は、デジタルセルラー電話接続、セルラーデジタルパケットデータ(Cellular Digital Packet Data、CDPD)接続、デジタル衛星データ接続などを含む無線技術を使用して、そのような接続を提供してもよい。
多くの他のデバイス又はサブシステム(図示せず)は、同様の様式で接続されてもよい(例えば、ドキュメントスキャナ、デジタルカメラなど)。逆に、本明細書に記載されるシステムを実施するために、図17に示されるデバイスの全てが存在する必要はない。デバイス及びサブシステムは、図17に示されるものとは異なる方法で相互接続されてもよい。図17に示されるものなどのコンピュータシステムの動作は、当該技術分野において容易に知られており、本出願では詳細に論じない。本明細書に記載されるシステムのモジュールを実装するためのコードは、システムメモリ1717、固定ディスク1744、光ディスク1742、又はフロッピーディスク1738のうちの1つ以上などのコンピュータ可読記憶媒体内に記憶されてもよい。コンピュータシステム1710上で提供されるオペレーティングシステムは、MS−WINDOWS(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は他のオペレーティングシステムであってもよい。
更に、本明細書に記載される信号に関して、当業者であれば、信号が第1のブロックから第2のブロックに直接送信され得るか、又は信号がブロック間で修正(例えば、増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、又は他の方法で修正)され得ることを認識するであろう。上述の実施形態の信号は、1つのブロックから次のブロックに送信されることを特徴とするが、他の実施形態は、信号の情報及び/又は機能的側面がブロック間で送信される限り、そのような直接送信される信号の代わりに修正された信号を含んでもよい。ある程度まで、第2のブロックにおける信号入力は、関与する回路の物理的制限に起因して、第1のブロックから出力される第1の信号に由来する第2の信号として概念化することができる(例えば、必然的にいくらかの減衰及び遅延が存在することになる)。したがって、本明細書で使用するとき、第1の信号に由来する第2の信号は、回路の制限に起因して、又は第1の信号の情報及び/又は最終機能的側面を変化させない他の回路要素を通過することに起因して、第1の信号又は第1の信号に対する修正を含む。
更に、本開示に照らして理解されるように、本明細書に記載される動作のそれぞれは、モジュール(例えば、ソフトウェアモジュール)若しくはモジュールの一部分、又はコンピュータシステムユーザによって実行されてもよい。したがって、上述の方法、その動作、及びそのためのモジュールは、方法の動作を実行するように構成されたコンピュータシステム上で実行されてもよく、かつ/又はコンピュータ可読記憶媒体から実行されてもよい。方法は、方法を実行するようにコンピュータシステムを構成ために機械可読及び/又はコンピュータ可読記憶媒体内に具現化されてもよい。したがって、ソフトウェアモジュールは、モジュールの機能を実行するようにコンピュータシステムを構成するためにコンピュータシステムメモリ内に記憶され、かつ/又はコンピュータシステムメモリに送信されてもよい。
本明細書に記載されるソフトウェアモジュールは、コンピュータシステムによって、例えば、コンピュータ可読記憶媒体から受信されてもよい。そのようなコンピュータ可読記憶媒体は、コンピュータシステムに永続的に、取り外し可能に、又は遠隔で結合されてもよい。コンピュータ可読記憶媒体は、例えば、磁気記憶媒体(ディスク及びテープ記憶媒体を含む)と、コンパクトディスク媒体(例えば、CD ROM、CD Rなど)及びデジタルビデオディスク記憶媒体などの光学記憶媒体と、フラッシュメモリ、EEPROM、EPROM、ROM又は特定用途向け集積回路などの半導体ベースのメモリユニットを含む不揮発性メモリ記憶メモリと、揮発性記憶媒体(レジスタ、バッファ又はキャッシュ、メインメモリ、RAMなどを含む)と、を任意の数で非排他的に含んでもよい。UNIX(登録商標)ベースの実施形態では、ソフトウェアモジュールは、デバイス、端末、ローカル若しくは遠隔のファイル、ソケット、又は他のそのような要素であり得るファイル内に具現化されてもよい。他の新しい及び様々な種類のコンピュータ可読記憶媒体を使用して、本明細書で論じるソフトウェアモジュールを記憶することもできる。
多くの他のデバイス又はサブシステム(図示せず)は、同様の様式で接続されてもよい(例えば、バーコードリーダー、ドキュメントスキャナ、デジタルカメラなど)。逆に、本発明を実施するために、図17に示されるデバイスの全てが存在する必要はない。デバイス及びサブシステムは、図17に示されるものとは異なる方法で相互接続されてもよい。図17に示されるようなコンピュータシステムの動作は、当該技術分野において容易に知られており、本出願では詳細に論じない。本発明を実装するためのコードは、システムメモリ1716、固定ディスク1744、CD−ROM1742、又はフロッピーディスク1738のうちの1つ以上などのコンピュータ可読記憶媒体内に記憶されてもよい。加えて、コンピュータシステム1710は、任意の種類のコンピューティングデバイスであってもよく、したがって、携帯情報端末(personal data assistant、PDA)、ネットワーク機器、Xウィンドウ端末、又は他のそのようなコンピューティングデバイスを含む。コンピュータシステム1710上で提供されるオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は他の公知のオペレーティングシステムであってもよい。コンピュータシステム1710は、例えば、Netscape Navigator(登録商標)、Microsoft Internet Explorer(登録商標)などのJavaScript(登録商標)インタプリタを有するHTTP準拠ウェブブラウザを含む、いくつかのインターネットアクセスツールもサポートする。
更に、本明細書に記載される信号に関して、当業者であれば、信号が第1のブロックから第2のブロックに直接送信され得るか、又は信号がブロック間で修正(例えば、増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、又は他の方法で修正)され得ることを認識するであろう。上述の実施形態の信号は、1つのブロックから次のブロックに送信されることを特徴とするが、本発明の他の実施形態は、信号の情報及び/又は機能的側面がブロック間で送信される限り、そのような直接送信される信号の代わりに修正された信号を含んでもよい。ある程度まで、第2のブロックにおける信号入力は、関与する回路の物理的制限に起因して、第1のブロックから出力される第1の信号に由来する第2の信号として概念化することができる(例えば、必然的にいくらかの減衰及び遅延が存在することになる)。したがって、本明細書で使用するとき、第1の信号に由来する第2の信号は、回路の制限に起因して、又は第1の信号の情報及び/又は最終機能的側面を変化させない他の回路要素を通過することに起因して、第1の信号又は第1の信号に対する修正を含む。
図18は、クライアントシステム1810、1820、及び1830、並びにストレージサーバ1840A及び1840B(いずれもコンピュータシステム1810を使用して実装することができる)がネットワーク1850に結合されたネットワークアーキテクチャ1800を描写するブロック図である。ストレージサーバ1840Aは、直接取り付けられた記憶デバイス1860A(1)〜(N)を有するものとして更に描写され、ストレージサーバ1840Bは、直接取り付けられた記憶デバイス1860B(1)〜(N)と共に描写されている。ストレージサーバ1840A及び1840Bはまた、SANファブリック1870に接続されているが、ストレージエリアネットワークへの接続は、動作に必要ではない。SANファブリック1870は、ストレージサーバ1840A及び1840Bによる、したがってネットワーク1850を介したクライアントシステム1810、1820、及び1830による記憶デバイス1820(1)〜(N)へのアクセスをサポートする。インテリジェントストレージアレイ1890も、SANファブリック1870を介してアクセス可能な特定の記憶デバイスの一例として示されている。
コンピュータシステム1710を参照すると、クライアントシステム1810、1820、及び1830のそれぞれからネットワーク1850への接続を提供するために、モデム1747、ネットワークインターフェース1748、又は何らかの他の方法が使用されてもよい。クライアントシステム1810、1820、及び1830は、ストレージサーバ1840A又は1840B上の情報に、例えば、ウェブブラウザ又は他のクライアントソフトウェア(図示せず)を使用してアクセスすることができる。そのようなクライアントは、クライアントシステム1810、1820、及び1830が、ストレージサーバ1840A若しくは1840B、又は記憶デバイス1860A(1)〜(N)、1860B(1)〜(N)、及び/若しくは1820(1)〜(N)のうちの1つ、又はインテリジェントストレージアレイ1890によってホストされたデータにアクセスすることを可能にする。図18は、データをやり取りするためのインターネットなどのネットワークの使用を描写するが、本明細書に記載されるシステムは、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
異なるコンポーネントが、異なる他のコンポーネント(例えば、後述するコンピュータシステム1710のコンポーネントとして示される様々な要素)内に含まれる、前述の実施形態。そのような描写されるアーキテクチャは単なる例であり、実際には、同じ機能を達成する多くの他のアーキテクチャを実装することができることを理解されたい。抽象的であるが、依然として明確な意味において、同じ機能を達成するためのコンポーネントのいかなる配置も、所望の機能が達成されるように、効果的に「関連付け」されている。したがって、特定の機能を達成するために本明細書で組み合わされたいかなる2つのコンポーネントも、アーキテクチャ又は中間コンポーネントに関係なく、所望の機能が達成されるように、互いに「関連付けられた」ものとして見ることができる。同様に、そのように関連付けられたいかなる2つのコンポーネントも、所望の機能を達成するように、「動作可能に接続された」又は「動作可能に結合された」ものとして見ることもできる。
他の実施形態
本明細書に記載されるシステムは、言及された利点及びそれに付随する他の利点を達成するように十分に適合されている。そのようなシステムが、描写され、記載され、特定の説明を参照することによって定義されているが、そのような参照は特許請求の範囲に対する限定を暗示するものではなく、そのような限定は推測されるべきではない。本明細書に記載されるシステムは、本開示を考慮すると当業者には想到されるように、形式及び機能における相当な修正、変更、及び等価物が可能である。描写され記載された実施形態は、単なる例であり、決して特許請求の範囲の範囲を網羅するものではない。
前述の詳細な説明は、ブロック図、フローチャート、及び例の使用を介して本明細書に記載されるシステムの様々な実施形態を論述している。例の使用によって例示される各ブロック図のコンポーネント、フローチャートの工程、動作及び/又はコンポーネントは、広範なハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって(個々に及び/又は集合的に)実装され得ることが、当業者に理解されるであろう。
本明細書に記載されるシステムは、完全に機能するコンピュータシステムの文脈で説明されている。しかしながら、当業者であれば、本明細書に記載されるシステムは、様々な形式でプログラム製品として配布することができること、及び本明細書に記載されるシステムは、配布を実際に実行するために使用される特定の種類のコンピュータ可読媒体にかかわらず等しく適用されることを理解するであろう。コンピュータ可読媒体の例としては、コンピュータ可読記憶媒体、並びに将来開発される媒体記憶及び配布システムが挙げられる。
上述の実施形態は、実施形態に関連付けられた1つ以上のタスクを実行するソフトウェアモジュールによって実装することができる。本明細書で論じられるソフトウェアモジュールは、スクリプト、バッチ、又は他の実行可能ファイルを含んでもよい。ソフトウェアモジュールは、磁気フロッピーディスク、ハードディスク、半導体メモリ(例えば、RAM、ROM、及びフラッシュタイプ媒体)、光学ディスク(例えば、CD−ROM、CD−R、及びDVD)、又は他の種類のメモリモジュールなどの機械可読又はコンピュータ可読記憶媒体上に記憶されてもよい。一実施形態による、ファームウェア又はハードウェアモジュールを記憶するために使用される記憶デバイスは、マイクロプロセッサ/メモリシステムに永久的に、取り外し可能に、又は遠隔で結合され得る半導体ベースのメモリも含むことができる。したがって、モジュールは、モジュールの機能を実行するようにコンピュータシステムを構成するために、コンピュータシステムメモリ内に記憶することができる。他の新しい及び様々な種類のコンピュータ可読記憶媒体を使用して、本明細書で論じるモジュールを記憶することができる。
上記の説明は、例示的であることを意図しており、限定的であると解釈すべきではない。本開示に照らして理解されるように、他の実施形態が可能である。当業者であれば、本明細書に開示される構造及び方法を提供するために必要な工程を容易に実装し、プロセスパラメータ及び工程のシーケンスは、単に例として与えられており、所望の構造並びに特許請求の範囲の範囲内にある修正を達成するために変更され得ることを理解するであろう。本明細書に開示される実施形態の変形例及び修正形は、特許請求の範囲の範囲から逸脱することなく、全ての点においてその等価物を完全に考慮に入れて、本明細書に論述される説明に基づいて行うことができる。
本明細書に記載されるシステムをいくつかの実施形態と関連して説明してきたが、これらの実施形態及びその説明は、本明細書に論述される特定の形式に限定されることを意図しない。逆に、そのような実施形態は、添付の特許請求の範囲の範囲内に合理的に含まれ得るような代替形態、修正形、及び等価物を扱うことを意図する。

Claims (21)

  1. コンピュータ実装方法であって、
    属性グラフ内の複数のノードのうちのノードを選択することであって、
    前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
    前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの1つ以上のリンクによって、前記複数のノードのうちの少なくとも1つの他のノードに結合され、
    前記1つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも1つの他のノードとの間の関係を表す、選択することと、
    前記ノードと関連付けられたエンティティ情報を分析することであって、
    前記エンティティ情報が、前記エンティティに関する情報である、分析することと、
    前記分析することに応答して、前記エンティティ情報を依存情報に記憶することであって、
    前記依存情報が、前記複数のエンティティのうちの1つ以上のオーケストレーションを容易にするように構成された、記憶することと、を含む、コンピュータ実装方法。
  2. 前記1つ以上のリンクが境界を横切るかどうかを判定することと、
    前記1つ以上のリンクのうちの1つが境界を横切ることに応答して、前記依存情報内に接触点を記録することと、を更に含む、請求項1に記載の方法。
  3. 前記属性グラフのリンクを前記ノードから前記複数のノードのうちの別のノードに横断させることであって、
    前記リンクが、前記複数のリンクのうちの1つである、横断させること、を更に含む、請求項1に記載の方法。
  4. 前記リンクが境界を横切るかどうかを判定することと、
    前記リンクが前記境界を横切るとの判定に応答して、前記依存情報内に接触点を記録することと、を更に含む、請求項3に記載の方法。
  5. 前記ノードが、前記属性グラフ内の開始点として選択され、
    前記ノード及び前記別のノードが、互いに依存関係を有する、請求項3に記載の方法。
  6. 前記リンクが接触点を表すかどうかを判定することと、
    前記リンクが前記接触点を表すとの判定に応答して、前記依存情報内に前記接触点を記録することと、を更に含む、請求項5に記載の方法。
  7. 前記横断させることが、
    前記別のノードが前記依存情報に含まれるべきかどうかを判定することと、
    前記別のノードが前記依存情報に含まれるべきであるとの判定に応答して、前記横断させることを実行することと、
    前記別のノードが前記依存情報に含まれるべきではないとの判定に応答して、前記横断させることを防止することと、を含む、請求項3に記載の方法。
  8. 前記ノードと後続ノードとの間に別のリンクが存在するかどうかを判定することと、
    前記後続ノードが前記依存情報に含まれるべきであるとの判定に応答して、前記横断させることを再帰的に実行することと、を更に含む、請求項7に記載の方法。
  9. 前記複数のエンティティのそれぞれのエンティティは、
    仮想コンピューティングコンポーネント、
    仮想記憶コンポーネント、
    物理コンピューティングコンポーネント、又は
    物理記憶コンポーネント、のうちの1つである、請求項1に記載の方法。
  10. コンピュータプログラム製品であって、
    複数の命令であって、
    属性グラフ内の複数のノードのうちのノードを選択するように構成された、コンピュータシステム上で実行可能な第1の命令セットであって、
    前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
    前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの1つ以上のリンクによって、前記複数のノードのうちの少なくとも1つの他のノードに結合され、
    前記1つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも1つの他のノードとの間の関係を表す、第1の命令セットと、
    前記ノードに関連付けられたエンティティ情報を分析するように構成された、前記コンピュータシステム上で実行可能な第2の命令セットであって、
    前記エンティティ情報が、前記エンティティに関する情報である、第2の命令セットと、
    前記第2の命令セットの結果に応答して、前記エンティティ情報を依存情報内に記憶するように構成された、前記コンピュータシステム上で実行可能な第3の命令セットであって、
    前記依存情報が、前記複数のエンティティのうちの1つ以上のオーケストレーションを容易にするように構成された、第3の命令セットと、を含む、複数の命令と、
    非一時的コンピュータ可読記憶媒体であって、前記命令が、前記非一時的コンピュータ可読記憶媒体内に符号化された、非一時的コンピュータ可読記憶媒体と、を含む、コンピュータプログラム製品。
  11. 前記命令が、
    前記ノードと前記複数のノードのうちの別のノードとの間のリンクが接触点を表すかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第4の命令セットと、
    前記リンクが前記接触点を表すことに応答して、前記依存情報内に前記接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第5の命令セットと、を更に含む、請求項10に記載のコンピュータプログラム製品。
  12. 前記命令が、
    前記ノードから前記複数のノードのうちの別のノードへの前記属性グラフのリンクを横断するように構成された、前記コンピュータシステム上で実行可能な第4の命令セットであって、
    前記リンクが、前記複数のリンクのうちの1つである、第4の命令セット、を更に含む、請求項10に記載のコンピュータプログラム製品。
  13. 前記命令が、
    前記リンクが境界を横切るかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第5の命令セットと、
    前記リンクが前記境界を横切るとの判定に応答して、前記依存情報内に接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第6の命令セットと、を更に含む、請求項12に記載のコンピュータプログラム製品。
  14. 前記ノードが、前記属性グラフ内の開始点として選択され、
    前記ノード及び前記別のノードが、互いに依存関係を有する、請求項12に記載のコンピュータプログラム製品。
  15. 前記第4の命令セットが、
    前記リンクが接触点を表すかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第1の命令サブセットと、
    前記リンクが前記接触点を表すとの判定に応答して、前記依存情報内に前記接触点を記録するように構成された、前記コンピュータシステム上で実行可能な第2の命令サブセットと、を含む、請求項14に記載のコンピュータプログラム製品。
  16. 前記第4の命令セットが、
    前記別のノードが前記依存情報内に含まれるべきかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第1の命令サブセットと、
    前記別のノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記第4の命令セットを実行するように構成された、前記コンピュータシステム上で実行可能な第2の命令サブセットと、
    前記別のノードが前記依存情報内に含まれるべきではないとの判定に応答して、前記第4の命令セットの実行を防止するように構成された、前記コンピュータシステム上で実行可能な第3の命令サブセットと、を含む、請求項12に記載のコンピュータプログラム製品。
  17. 前記命令が、
    前記ノードと後続ノードとの間に別のリンクが存在するかどうかを判定するように構成された、前記コンピュータシステム上で実行可能な第5の命令セットと、
    前記後続ノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記第4の命令セットを再帰的に実行するように構成された、前記コンピュータシステム上で実行可能な第6の命令セットと、を更に含む、請求項16に記載のコンピュータプログラム製品。
  18. コンピュータシステムであって、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサに結合されたコンピュータ可読記憶媒体と、
    複数の命令であって、前記コンピュータ可読記憶媒体内に符号化され、前記1つ以上のプロセッサに、
    属性グラフ内の複数のノードのうちのノードを選択することであって、
    前記複数のノードのそれぞれのノードが、複数のエンティティのうちのエンティティを表し、
    前記複数のノードの前記各ノードが、前記属性グラフの複数のリンクのうちの1つ以上のリンクによって、前記複数のノードのうちの少なくとも1つの他のノードに結合され、
    前記1つ以上のリンクのそれぞれが、前記各ノードと前記少なくとも1つの他のノードとの間の関係を表す、選択することと、
    前記ノードと関連付けられたエンティティ情報を分析することであって、
    前記エンティティ情報が、前記エンティティに関する情報である、分析することと、
    前記1つ以上のプロセッサに分析させるように構成された前記命令の結果に応答して、前記エンティティ情報を依存情報内に記憶することであって、
    前記依存情報が、前記複数のエンティティのうちの1つ以上のオーケストレーションを容易にするように構成された、記憶することと、をさせるように構成された、複数の命令と、を備える、コンピュータシステム。
  19. 前記複数の命令が、前記1つ以上のプロセッサに、
    前記ノードから前記複数のノードのうちの別のノードへの前記属性グラフのリンクを横断することであって、
    前記リンクが、前記複数のリンクのうちの1つである、横断すること、をさせるように更に構成された、請求項18に記載のコンピュータシステム。
  20. 前記複数の命令が、前記1つ以上のプロセッサに、
    前記リンクが境界を横切るかどうかを判定することと、
    前記リンクが境界を横切るとの判定に応答して、前記依存情報内に接触点を記録することと、をさせるように更に構成された、請求項19に記載のコンピュータシステム。
  21. 前記1つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令は、前記1つ以上のプロセッサに、
    前記別のノードが前記依存情報内に含まれるべきかどうかを判定することと、
    前記別のノードが前記依存情報内に含まれるべきであるとの判定に応答して、前記1つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令を実行させることと、
    前記別のノードが前記依存情報内に含まれるべきではないとの判定に応答して、前記1つ以上のプロセッサに前記リンクを横断させるように構成された前記複数の命令の実行を防止することと、をさせるように更に構成された、請求項19に記載のコンピュータシステム。
JP2019542185A 2017-02-05 2018-01-29 オーケストレーションのためのワークロードの依存性分析のための方法及びシステム Active JP7065864B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762454871P 2017-02-05 2017-02-05
US62/454,871 2017-02-05
US15/844,359 2017-12-15
US15/844,359 US10909097B2 (en) 2017-02-05 2017-12-15 Method and system for dependency analysis of workloads for orchestration
PCT/US2018/015697 WO2018144377A1 (en) 2017-02-05 2018-01-29 Method and system for dependency analysis of workloads for orchestration

Publications (3)

Publication Number Publication Date
JP2020507852A true JP2020507852A (ja) 2020-03-12
JP2020507852A5 JP2020507852A5 (ja) 2021-03-04
JP7065864B2 JP7065864B2 (ja) 2022-05-12

Family

ID=63037741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019542185A Active JP7065864B2 (ja) 2017-02-05 2018-01-29 オーケストレーションのためのワークロードの依存性分析のための方法及びシステム

Country Status (5)

Country Link
US (2) US10909097B2 (ja)
EP (1) EP3577563A1 (ja)
JP (1) JP7065864B2 (ja)
CN (1) CN110603524B (ja)
WO (1) WO2018144377A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909097B2 (en) 2017-02-05 2021-02-02 Veritas Technologies Llc Method and system for dependency analysis of workloads for orchestration
US10474508B2 (en) * 2017-07-04 2019-11-12 Vmware, Inc. Replication management for hyper-converged infrastructures
US10789139B2 (en) 2018-04-12 2020-09-29 Vmware, Inc. Method of rebuilding real world storage environment
US10936354B2 (en) * 2018-04-13 2021-03-02 Vmware, Inc. Rebuilding a virtual infrastructure based on user data
US10860368B2 (en) * 2018-09-28 2020-12-08 Juniper Networks, Inc. Migrating workloads in multicloud computing environments
US11893127B2 (en) * 2018-12-21 2024-02-06 Acronis International Gmbh System and method for indexing and searching encrypted archives
US11233747B2 (en) * 2019-01-23 2022-01-25 Servicenow, Inc. Systems and methods for acquiring server resources at schedule time
US11099941B2 (en) 2019-04-23 2021-08-24 EMC IP Holding Company LLC System and method for accelerating application service restoration
US11119685B2 (en) 2019-04-23 2021-09-14 EMC IP Holding Company LLC System and method for accelerated data access
US11163647B2 (en) 2019-04-23 2021-11-02 EMC IP Holding Company LLC System and method for selection of node for backup in distributed system
US11036400B2 (en) * 2019-04-26 2021-06-15 EMC IP Holding Company LLC System and method for limiting restoration access
US10776223B1 (en) 2019-04-26 2020-09-15 EMC IP Holding Company LLC System and method for accelerated point in time restoration
US11106544B2 (en) 2019-04-26 2021-08-31 EMC IP Holding Company LLC System and method for management of largescale data backup
US10776041B1 (en) 2019-05-14 2020-09-15 EMC IP Holding Company LLC System and method for scalable backup search
US11061732B2 (en) 2019-05-14 2021-07-13 EMC IP Holding Company LLC System and method for scalable backup services
US11201835B1 (en) * 2019-05-23 2021-12-14 C/Hca, Inc. Systems and methods for multi-tier resource and subsystem orchestration and adaptation
US11429640B2 (en) 2020-02-28 2022-08-30 Veritas Technologies Llc Methods and systems for data resynchronization in a replication environment
CN113448493B (zh) * 2020-03-27 2024-04-26 伊姆西Ip控股有限责任公司 用于备份数据的方法、电子设备和计算机可读介质
US11663038B2 (en) * 2020-05-01 2023-05-30 Salesforce.Com, Inc. Workflow data migration management
US11595320B1 (en) 2020-07-01 2023-02-28 C/Hca, Inc. Multi-tier resource, subsystem, and load orchestration
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
US11755543B2 (en) * 2020-12-29 2023-09-12 International Business Machines Corporation Optimization of workflows with dynamic file caching
CN113986128B (zh) * 2021-10-26 2024-05-28 杭州宏杉科技股份有限公司 Lun数据复制方法及装置
US20230367627A1 (en) * 2022-05-10 2023-11-16 Google Llc Seamless Multi Asset Application Migration Between Platforms
US11941024B1 (en) * 2022-10-14 2024-03-26 Oracle International Corporation Orchestration service for database replication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049365A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US7386752B1 (en) * 2004-06-30 2008-06-10 Symantec Operating Corporation Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
JP2013520749A (ja) * 2010-02-26 2013-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェーブを用いたオブジェクト・マイグレーションのためのシステム及び方法
WO2017018435A1 (ja) * 2015-07-27 2017-02-02 日本電気株式会社 リソース監視装置、仮想ネットワークファンクション管理システム、リソース監視方法及びプログラム

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263154A (en) 1992-04-20 1993-11-16 International Business Machines Corporation Method and system for incremental time zero backup copying of data
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5875479A (en) 1997-01-07 1999-02-23 International Business Machines Corporation Method and means for making a dual volume level copy in a DASD storage subsystem subject to updating during the copy interval
US5915098A (en) 1997-10-24 1999-06-22 Digital Equipment Corp. System for compressing bit maps to be shared and displayed in collaborative tool by client and server systems
US6757797B1 (en) 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US20030014523A1 (en) 2001-07-13 2003-01-16 John Teloh Storage network data replicator
US7054890B2 (en) 2001-09-21 2006-05-30 Sun Microsystems, Inc. Method and apparatus for managing data imaging in a distributed computer system
US7139885B2 (en) 2001-12-27 2006-11-21 Hitachi, Ltd. Method and apparatus for managing storage based replication
US6779093B1 (en) 2002-02-15 2004-08-17 Veritas Operating Corporation Control facility for processing in-band control messages during data replication
US7747576B2 (en) 2002-02-20 2010-06-29 International Business Machines Corporation Incremental update control for remote copy
US6728898B2 (en) 2002-03-06 2004-04-27 Marathon Technologies Corporation Producing a mirrored copy using incremental-divergence
US7103796B1 (en) 2002-09-03 2006-09-05 Veritas Operating Corporation Parallel data change tracking for maintaining mirrored data consistency
US7039661B1 (en) 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
US7987368B2 (en) 2005-10-28 2011-07-26 Microsoft Corporation Peer-to-peer networks with protections
US7617253B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Destination systems and methods for performing data replication
US8169974B2 (en) * 2007-04-13 2012-05-01 Hart Communication Foundation Suspending transmissions in a wireless network
US8453165B2 (en) 2008-01-22 2013-05-28 International Business Machines Corporation Distributing event processing in event relationship networks
US8346743B2 (en) 2008-09-18 2013-01-01 International Business Machines Corporation Configuring data collection rules in a data monitoring system
US8037341B2 (en) 2008-12-29 2011-10-11 International Business Machines Corporation Determining recovery time for interdependent resources in heterogeneous computing environment
US20110126197A1 (en) 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US20120066487A1 (en) * 2010-09-09 2012-03-15 Novell, Inc. System and method for providing load balancer visibility in an intelligent workload management system
US9268811B1 (en) 2010-10-25 2016-02-23 Symantec Corporation Replay of writes in replication log
US9442806B1 (en) 2010-11-30 2016-09-13 Veritas Technologies Llc Block-level deduplication
US9910904B2 (en) 2011-08-30 2018-03-06 International Business Machines Corporation Replication of data objects from a source server to a target server
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9357034B2 (en) * 2012-09-07 2016-05-31 Oracle International Corporation System and method for orchestration of services for use with a cloud computing environment
US8874508B1 (en) 2012-10-02 2014-10-28 Symantec Corporation Systems and methods for enabling database disaster recovery using replicated volumes
US9087088B1 (en) * 2012-11-13 2015-07-21 American Express Travel Related Services Company, Inc. Systems and methods for dynamic construction of entity graphs
US9378068B2 (en) * 2013-03-13 2016-06-28 International Business Machines Corporation Load balancing for a virtual networking system
US9740422B1 (en) 2013-03-14 2017-08-22 EMC IP Holding Company LLC Version-based deduplication of incremental forever type backup
US9575789B1 (en) 2013-06-26 2017-02-21 Veritas Technologies Systems and methods for enabling migratory virtual machines to expedite access to resources
US9690546B2 (en) 2014-03-26 2017-06-27 Software Ag Method and system for transitive traversal service discovery
US9912546B2 (en) 2014-03-28 2018-03-06 Sciencelogic, Inc. Component detection and management using relationships
US9509697B1 (en) 2014-09-15 2016-11-29 Symantec Corporation Systems and methods for authorizing attempts to access shared libraries
WO2016121802A1 (ja) * 2015-01-28 2016-08-04 日本電気株式会社 仮想化管理・オーケストレーション装置、仮想化管理・オーケストレーション方法、および、プログラム
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US9710189B2 (en) 2015-06-18 2017-07-18 Infinidat Ltd. Resynchronization of a remote storage site after replication failure
WO2017014814A1 (en) 2015-07-22 2017-01-26 Hewlett Packard Enterprise Development Lp Replicating memory volumes
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
EP3353952B1 (en) 2016-01-29 2021-05-05 Hewlett Packard Enterprise Development LP Managing groups of servers
WO2017171734A1 (en) * 2016-03-29 2017-10-05 United States Infrastructure Management Company Advanced infrastructure management
US10313382B2 (en) * 2016-03-29 2019-06-04 The Mitre Corporation System and method for visualizing and analyzing cyber-attacks using a graph model
US10108803B2 (en) * 2016-03-31 2018-10-23 International Business Machines Corporation Automatic generation of data-centric attack graphs
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US10157613B2 (en) * 2016-11-17 2018-12-18 BrainofT Inc. Controlling connected devices using a relationship graph
US10691751B2 (en) * 2017-01-23 2020-06-23 The Trade Desk, Inc. Data processing system and method of associating internet devices based upon device usage
US10909097B2 (en) 2017-02-05 2021-02-02 Veritas Technologies Llc Method and system for dependency analysis of workloads for orchestration
US11310137B2 (en) 2017-02-05 2022-04-19 Veritas Technologies Llc System and method to propagate information across a connected set of entities irrespective of the specific entity type
US20180285201A1 (en) 2017-03-28 2018-10-04 Commvault Systems, Inc. Backup operations for large databases using live synchronization
US10496674B2 (en) 2017-08-07 2019-12-03 International Business Machines Corporation Self-describing volume ancestry for data synchronization
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US11347694B2 (en) 2019-07-26 2022-05-31 Cisco Technology, Inc. Efficient change block tracking in a distributed generation-id (GID) based log structured file system (LSFS)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049365A1 (en) * 2002-09-11 2004-03-11 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US7386752B1 (en) * 2004-06-30 2008-06-10 Symantec Operating Corporation Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
JP2013520749A (ja) * 2010-02-26 2013-06-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェーブを用いたオブジェクト・マイグレーションのためのシステム及び方法
WO2017018435A1 (ja) * 2015-07-27 2017-02-02 日本電気株式会社 リソース監視装置、仮想ネットワークファンクション管理システム、リソース監視方法及びプログラム

Also Published As

Publication number Publication date
CN110603524B (zh) 2023-08-18
WO2018144377A1 (en) 2018-08-09
CN110603524A (zh) 2019-12-20
US10909097B2 (en) 2021-02-02
US11748319B2 (en) 2023-09-05
US20210200727A1 (en) 2021-07-01
JP7065864B2 (ja) 2022-05-12
EP3577563A1 (en) 2019-12-11
US20180225311A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
JP7065864B2 (ja) オーケストレーションのためのワークロードの依存性分析のための方法及びシステム
US11924034B2 (en) Migration of an existing computing system to new hardware
US11611479B2 (en) Migration of existing computing systems to cloud computing sites or virtual machines
US9451023B2 (en) Information management of virtual machines having mapped storage devices
US10146636B1 (en) Disaster recovery rehearsals
US8473462B1 (en) Change tracking for shared disks
US9613040B2 (en) File system snapshot data management in a multi-tier storage environment
US9697093B2 (en) Techniques for recovering a virtual machine
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US10372547B1 (en) Recovery-chain based retention for multi-tier data storage auto migration system
US8495178B1 (en) Dynamic bandwidth discovery and allocation to improve performance for backing up data
US10146471B1 (en) Offloaded data protection based on virtual machine snapshots
US10628055B2 (en) Management of storage replication consistency groups using automatic replication group identifiers
US11057264B1 (en) Discovery and configuration of disaster recovery information
US11188235B2 (en) Reducing data replications among storage locations
US12008011B2 (en) Computing resource migration across cloud environments
US20240134670A1 (en) Management of duplicative virtual machine entries for a data management system
US20240045770A1 (en) Techniques for using data backup and disaster recovery configurations for application management
US20240012717A1 (en) Protecting configuration data in a clustered container system
US20230342373A1 (en) Computing resource migration across cloud environments
US10628075B1 (en) Data protection compliance between storage and backup policies of virtual machines

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220426

R150 Certificate of patent or registration of utility model

Ref document number: 7065864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150