JP2020514879A - 特定のエンティティタイプにかかわらず接続されたエンティティセットにわたって情報を伝播するためのシステム及び方法 - Google Patents

特定のエンティティタイプにかかわらず接続されたエンティティセットにわたって情報を伝播するためのシステム及び方法 Download PDF

Info

Publication number
JP2020514879A
JP2020514879A JP2019542403A JP2019542403A JP2020514879A JP 2020514879 A JP2020514879 A JP 2020514879A JP 2019542403 A JP2019542403 A JP 2019542403A JP 2019542403 A JP2019542403 A JP 2019542403A JP 2020514879 A JP2020514879 A JP 2020514879A
Authority
JP
Japan
Prior art keywords
node
propagation
eligible
event
network
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
JP2019542403A
Other languages
English (en)
Other versions
JP6841921B2 (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 JP2020514879A publication Critical patent/JP2020514879A/ja
Application granted granted Critical
Publication of JP6841921B2 publication Critical patent/JP6841921B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • 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
    • 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/2358Change logging, detection, and notification
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5076Update or notification mechanisms, e.g. DynDNS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3048Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the topology of the computing system or computing system component explicitly influences the monitoring activity, e.g. serial, hierarchical systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

データセンター又は他のネットワーク環境の全体にわたって情報を伝播するための種々のシステム及び方法が提供される。例えば、特定の実施形態では、本明細書に開示される機能は、伝播ルールを決定し、次いで、データセンター又は他のネットワーク環境の全体にわたってそれらのルールを記憶及び/又は伝播することのいずれかを含む。伝播ルールは、本明細書に記載されるシステムなどのシステム全体にわたる情報の伝播を管理する種々の条件又は他の変数を定義する。次いで、伝播ルールを使用して、種々の他の機能を実行することができる。例えば、本明細書に記載される機能を使用して、エンティティへの更新を処理することができる。本明細書に記載される機能はまた、伝播メタデータへの更新を処理するために使用することができる。更に、本明細書に記載される機能を使用して、新しい関係の作成を処理することができる。本明細書に記載される機能はまた、オブジェクト及び/又は関係の削除を処理するために使用することができる。前述の機能の全てを自動的に実行することができる。

Description

(関連出願)
本出願は、「System and Method to Propagate Information Across a Connected Set of Entities Irrespective of the Specific Entity Type」と題され、Tushar Bandopadhyay and Bharat Digheを発明者として有する、2017年12月17日に出願された米国特許仮出願第62/599,783号に対する米国特許法第119条(e)の下での利益を主張するものである。本出願はまた、「Resilient Information Technology Platform Management Across Heterogeneous Systems」と題され、Tushar Bandopadhyay,Naresh Moorthy,Bharat Dighe,Meenal Binwade,Swanand Vaidya,Shrikant Ghare,Ankit Jain,Anish Vaidya,Rohan Kumar Kayan,Kushal Shah,Devdas Kumkar,Soumya Sakha Tripathy,Sunil Hasbe,Aditya Deshpande,Dhiraj Maheshwari,Anuj Gupta,Vishwanath Kitekar,and Pooja Singhを発明者として有する、2017年2月5日に出願された米国特許仮出願第62/454,871号に対する米国特許法第119条(e)の下での利益を主張するものである。上記の出願は、あたかも本明細書に完全に記載されているかのように、それらの全体が全ての目的のために、本明細書に参照により組み込まれる。
努力の分野
本開示は、コンピュータ技術に関し、より具体的には、データセンター又は類似のコンピューティング環境全体にわたって情報を自動的に伝播及び/又は無効化することに関する。
技術の現状
データセンターは、他の潜在的な特徴及び機能の中でも、ハードウェアデバイス、ソフトウェア構成要素、アプリケーションインスタンス、及びビジネスアプリケーションを含むエンティティの集合を含むことができる。このようなエンティティ間には、相互依存性が存在する。このような相互依存性は、直接的な相互依存性又は間接的な相互依存性であり得る。このようなエンティティ間の関係は動的であり得る。したがって、これらのエンティティに対するいかなる更新、修正、追加、削除、又は他の変更(総称的に、「変更」及びその同語源のもの)も、データセンター内の他のエンティティ、特にこれに限定されないが変更されるエンティティに直接関係するエンティティ、の挙動及び要件に影響を及ぼし得る。このような機能を使用することによって生じる問題の1つは、汎用的な、したがってデータセンター又はネットワーク内の種々のタイプのエンティティから独立した(ただしそれらによって依然として使用可能である)様式で、このようなエンティティ間で情報を効率的に伝播する方法の必要性である。
本開示は、概して、データセンター又は他のネットワーク環境全体にわたって情報を伝播することを提供する方法、コンピュータプログラム製品、コンピュータシステムなどを含む。一実施形態では、本明細書に開示される機能は、伝播ルールを決定することと、次いでそれらのルールを記憶すること、及び/又はそれらのルールをデータセンター又は他のネットワーク環境全体にわたって伝播することを含む。伝播ルールは、本明細書に記載されるシステムなどのシステム全体にわたる情報の伝播を管理する種々の条件又は他の変数を定義する。一実施形態では、これらの伝播ルールは、少なくとも以下の5つの因子を含み得る:(1)開始条件、(2)伝播の方向、(3)スキップ条件、(4)反転条件、及び(5)終了条件。種々の実施形態では、これらの因子のうちの1つ以上を除外することができ、1つ以上の追加の因子を追加することができる。伝播ルールが決定されると、それらのルールは、(例えば、例えば管理サーバ内に見出され得るような効率的なキャッシュ内などに)記憶されてもよく、及び/又はシステム全体にわたって伝播するかのいずれかでもよい。
伝播ルールの作成及び記憶に続いて、それらのルールを使用して、本明細書に記載されるような種々の他の機能を実行することができる。例えば、特定の実施形態では、本明細書に記載される機能を使用して、エンティティへの更新を処理することができる。特定の実施形態では、本明細書に記載される機能を使用して、伝播メタデータへの更新を処理することができる。特定の実施形態では、本明細書に記載される機能を使用して、新しい関係の作成を処理することができる。特定の実施形態では、本明細書に記載される機能を使用して、オブジェクト及び/又は関係の削除を処理することができる。本明細書に記載される機能の全ては、例えば、データセンター又は他のシステム若しくはネットワークへの追加又は変更を検出した際などに、自動的に実行することができる。前述の機能は、以下でより詳細に論じる。
前述の事項は要約であり、したがって、必要に応じて、簡略化、一般化、及び詳細の省略を含むため、当業者は、この要約が例示的なものに過ぎず、いかなる方法でも限定することを意図するものではないことを理解するであろう。特許請求の範囲によってのみ規定されるような、本開示の他の態様、本発明の機能、及び利点は、下記に示す非限定的な詳細な説明において明瞭になるであろう。
添付図面を参照することによって、本開示の実施形態はより良く理解され得、その多数の目的、特徴、及び利点が当業者に明らかになる。
本開示の一実施形態による、管理機能を含むコンピューティング環境の一例を例示するブロック図である。
本開示の一実施形態による、属性グラフの更なる詳細を提供するブロック図である。
本開示の一実施形態による、本明細書に記載されるシステム及び方法によって実行され得る種々のアクションの概要を描写するフロー図である。
本開示の一実施形態による、1つ以上のエンティティに対する更新を受信又は検出した際に実行され得る種々のアクションを描写するフロー図である。
本開示の一実施形態による、オブジェクト上の伝播メタデータに対する更新及び/又は追加を受信又は検出した際に実行され得る種々のアクションを描写するフロー図である。
本開示の一実施形態による、1つ以上のノード、オブジェクト、又は関係を作成した際に実行され得る種々のアクションを描写するフロー図である。
本開示の一実施形態による、1つ以上のノード、オブジェクト、又は関係を削除又は除去した際に実行され得る種々のアクションを描写するフロー図である。
本開示の一実施形態による、本開示の特定の特徴がどのように実装され得るかを例示する、コンピューティングデバイスのブロック図である。
本開示の一実施形態による、種々のコンピューティングデバイスがどのようにネットワークを介して通信し得るかを例示する、ネットワーク化されたシステムのブロック図である。
本開示の実施形態は、種々の修正形及び代替形式が可能であるが、特定の実施形態が、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、実施形態を開示された特定の形式に限定することを意図しないことを理解されたい。そうではなく、本開示は、添付の特許請求の範囲によって規定されるような本開示の趣旨及び範囲内にある全ての修正形、等価物、及び代替形態を包含することを意図する。
上述のように、データセンターは、他の潜在的な特徴及び機能の中でも、ハードウェアデバイス、ソフトウェア構成要素、アプリケーションインスタンス、及びビジネスアプリケーションを含むエンティティとして見ることができる。このようなエンティティ間には、相互依存性が存在する。このような相互依存性は、直接的な相互依存性又は間接的な相互依存性であり得る。これらの相互依存性は、エンティティ及びそれらの間の関係の複雑なグラフ(本明細書では「属性グラフ」と称される)として可視化することができる。このようなエンティティ間の関係は動的である。したがって、これらのエンティティに対するいかなる更新、修正、追加、削除、又は他の変更(総称的に、「変更」及びその同語源のもの)も、データセンター内の他のエンティティ、特にこれに限定されないが変更されるエンティティに直接関係するエンティティ、の挙動及び要件に影響を及ぼし得る。このような機能を使用することによって生じる問題の1つは、汎用的な、したがってデータセンター又はネットワーク内の種々のタイプのエンティティから独立した(ただしそれらによって依然として)様式で、このようなエンティティ間で情報を効率的に伝播する方法の必要性である。
本明細書に開示されるシステム及び方法は、データセンター及び同様のシステムに対する種々の利益及び改善を提供する。例えば、本開示は、新しいエンティティがシステムに導入されるときに、エンティティの動的な修正を可能にする。更に、本明細書に開示される方法で情報を伝播することは、ソースエンティティとターゲットエンティティとの間の経路(又はそれに接続されたデバイス)のいかなる変更にも依存しない。更に、ソースエンティティからターゲットエンティティへの伝播は、1つ以上の新たなエンティティの追加が、ソースエンティティとターゲットエンティティとの間の新しい経路をもたらすときに自動的に発生するように構成することができる。別の例として、本明細書で提供される開示は、その情報を、影響を受けるエンティティに自動的に伝播することによって、エンティティに対する変更の効率的な評価を可能にする。
本明細書に記載される機能は、少なくとも部分的に、伝播ルールの使用によって達成される。伝播ルールは、以下でより詳細に説明し論じる図1Bに示される経路などの、ソースエンティティからターゲットエンティティへの1つ以上の伝播経路に関する情報を提供する。一実施形態では、システムは、ソースエンティティとターゲットエンティティとの間の経路を定義する伝播ルールセットをロードすることができる。一実施形態では、このような情報はルックアップテーブル内に記憶され得る。このようなルールは、エンティティ及び関係への更新を評価するために、並びにそのような情報が伝播されるべき経路が存在するかどうかをチェックするために、システム(又はその構成要素)によって使用することができる。評価されるべき複数の経路が存在する種々の実施形態では、システムは、各経路が完全にかつ適切に評価され得るまで、一時的キュー内に種々の経路を記憶することができる。
図1Aは、コンピューティング環境100のブロック図である。本明細書での論述目的のために1つの例示的な実施形態が提供されているが、代替的な実施形態は、異なる数の物理マシン、異なる数の物理マシンごとの仮想マシンを実装することができ、同じシステムは、同じ環境内の他の物理マシンとは異なる数の仮想マシンをそれぞれ実装する1つ以上の物理マシンを含むことができる。
示すように、コンピューティング環境100は、いくつかの物理マシン110(1)〜110(n)(コンピューティングシステム)を含む。物理マシン110は、コンピューティングデバイス又はコンピューティングデバイスの一部であり、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などの任意の種類のコンピューティングデバイスであり得る。いくつかの実施形態では、そのような物理マシンは、メモリ及びプロセッササイクルなどの物理コンピューティングリソースが必要に応じて及び/又は契約に応じて割り当てられるクラウドコンピューティング環境に含まれる。物理マシン110のリソースは、物理マシン上に実装された仮想マシンによって共有される。物理マシン110はそれぞれ、メモリ112を含む。メモリ112は、一実施形態では、ランダムアクセスメモリ(random access memory、RAM)である。メモリ112は、いくつかのページに編成される。ページは、一般に、メモリの固定サイズ部分、例えばメモリの4キロバイト(kilobyte、Kb)部分である。物理マシン110は、ネットワーク140によって管理サーバ120及びいくつかの記憶デバイス150(1)〜150(4)に連結されている。ネットワーク140としては、他のそのような構造体及びシステムの中でも、インターネットなどのWAN(広域ネットワーク、Wide Area Network)、1つ以上のLAN(ローカルエリアネットワーク、Local Area Network)、及び/又は1つ以上のSAN(ストレージエリアネットワーク、Storage Area Network)を挙げることができる。
本開示全体にわたって使用されるように、文字n及びiは、可変数のデバイス又は構成要素を示すために使用される。文字n及びiは、これらの異なるデバイス及び構成要素のそれぞれの可変数のインスタンスを記述するのに使用されるが、文字n及びiの繰り返し使用は、必ずしも、各デバイス及び構成要素が、本明細書で論じられる例示的なシステムにおいて、又は本発明のいかなる他の実施形態においても、実装された同じ数のn又はiインスタンスを有することを必ずしも示すものではない。むしろ、これらの変数識別子は、一連の関係又は類似する要素(例えば、物理マシン)の最終要素(例えば、物理マシン110(n))をより単純に指定するために使用される。そのような変数識別子の繰り返し使用は、そのような一連の要素のサイズ間の相関関係を暗示することを意図するものではないが、そのような相関関係が存在してもよい。
各物理マシン110は、いくつかの仮想マシン115(1)〜115(i)をホストする。仮想マシン115は、例えば、組織に関連付けられたユーザにコンピューティングリソースを提供するために使用することができる。ユーザ、例えばある組織の情報技術(information technology、IT)専門家が追加のリソースを要求する場合、クラウドベンダーの管理者(例えば、IT専門家)は、追加のリソースの要求を満たすために1つ以上の追加の仮想マシンをプロビジョニングすることができる。
管理サーバ120は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末、携帯電話などのコンピューティングデバイス又はコンピューティングデバイスの一部であってもよい。管理サーバ120は、新たな又はマイグレーションされた仮想マシンをホストするためのターゲット物理マシンを選択することができる。管理サーバ120は、プロビジョニングモジュール121及びプロビジョニングデータ122を含む。管理サーバ120は、以下で図1Bに関連してより詳細に論じられる属性グラフ130などの属性グラフを作成、更新、及び維持するために使用することができる。管理サーバ120はまた、このような機能を属性グラフ130上で実行するために使用することができる多数の構成要素を含む。
一実施形態では、プロビジョニングモジュール121を用いて、コンピューティングリソースの要求においてユーザによって指定された要件を検出することができる。プロビジョニングデータ122を使用してその機能を実行するプロビジョニングモジュール121は、要求に応答して仮想マシンを自動的に作成又は配置し、仮想マシンを物理マシン110のうちの1つ上にプロビジョニングさせることができる。見られるように、プロビジョニングモジュール121(及びそれに関連付けられたプロビジョニングデータ122)、並びに属性グラフ作成モジュール125及び属性グラフ分析モジュール126(及び関連付けられた属性グラフデータ127)は、管理サーバ120によってサポートされるモジュールに数えられる(これらのモジュールは、図1Aでは、例として、管理モジュール129として描写されている)。属性グラフ作成モジュール125及び属性グラフ分析モジュール126などのシステムの動作を、以下で説明する。
管理者(又は自動化されたプロセス)はまた、1つ以上の仮想マシンを第1の物理マシンから代替の物理マシンに移動させることもできる。例えば、管理者(又は自動化されたプロセス)は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は1つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出したことに応答して、1つ以上の仮想マシンを異なる(ターゲット)物理マシンに移動(マイグレーション)することができる。一実施形態では、プロビジョニングモジュール121は、物理マシンで障害が発生しつつある、障害が発生した、若しくは過負荷状態にあること、又は1つ以上の仮想マシンを現在ホストしている物理マシンとは異なる物理マシン上で追加のリソースが利用可能であることを検出するなど、仮想マシンがマイグレーションされるべきであることを示す状態を自動的に検出することができる。プロビジョニングモジュール121は、オーケストレーションサービスを提供することの一環として、そのような条件を検出したことに応じて、1つ以上の仮想マシンを自動的にマイグレーションさせることができる。
プロビジョニングモジュール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 disks、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つ以上に関する情報を取得することができる。図1Aに描写するように、記憶デバイス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つ以上のオーケストレーションシステムによる使用に適した形式の情報を生成する。
図1Bは、属性グラフ130などの例示的な属性グラフの更なる詳細を提供するブロック図である。本明細書での論述目的のために1つの例示的な実施形態が提供されているが、代替的な実施形態は、異なる数の物理マシン、異なる数の物理マシンごとの仮想マシンを実装することができ、同じシステムは、同じ環境内の他の物理マシンとは異なる数の仮想マシンをそれぞれ実装する1つ以上の物理マシンを含むことができる。
示すように、属性グラフ130は、ソースノード131、整合性グループ132、及びディスク133を含む。これらのエンティティ間、及び図1Bの他のエンティティ間の矢印は、これらのノード間の一般的な「内」方向の流れを示し、これについては以下でより詳細に論じる。属性グラフ130はまた、種々のノード134(1)〜134(n)を含む。これらのノードは、本明細書の他の箇所に記載されるタイプのコンピューティングデバイスなどの、任意のタイプのコンピューティングデバイスであり得る。本明細書の他の箇所に記載される機能の1つの重要な特徴は、これらの方法が、ディスク133とデータベース135との間にあるノード134などの特定のエンティティに依存しないことである。したがって、本明細書に記載される伝播ルールは、ノード134のタイプに使用することができる。最後に、属性グラフ120はまた、この例示的な属性グラフが完結するターゲットノード136を示す。
図2は、本明細書に開示されるシステム及び技術の一実施形態に関連して実行される種々のアクションを例示する方法200のフロー図である。本開示に照らして理解されるように、この方法は、代替的な実施形態を導出するために修正されてもよい。更に、本実施形態のステップは連続的な順序で示されているが、特定のステップは、示されている順序とは異なる順序で行われてもよく、特定のステップは同時に実行されてもよく、特定のステップは他のステップと組み合わされてもよく、特定のステップは、別の実施形態では省略されてもよい。方法200を、図1A及び図1Bに関連して説明した要素などの要素を参照して説明する。一実施形態では、方法200は、例えば管理サーバ120などの管理サーバによって実行される。更に、方法200の論述は、図1B及び属性グラフ130と併せて読むと、最も良く理解されるであろう。
方法200は、本開示の個々の、しかし関係する部分である種々の動作を実施するために実行することができる動作の概要を提供する。図200は、線形様式で発生する方法200の種々の動作を描写するが、このような線形機能は、実務では必ずしも必要とされない。むしろ、個々のステップは、動作が必ずこの順序で実行されなければならないという基礎要件のためではなく、本明細書における論理的論述を容易にするために、このように示されている。
前述の事項を条件として、方法200は、一般に、システムが伝播ルールを決定する210で始まる。伝播ルールは、本明細書に記載されるシステムなどのシステム全体にわたる情報の伝播を管理する種々の条件又は他の変数を定義する。一実施形態では、これらの伝播ルールは、少なくとも以下の5つの因子を含み得る:(1)開始条件、(2)伝播の方向、(3)スキップ条件、(4)反転条件、及び(5)終了条件。本明細書の他の箇所でより詳細に記載されるように、これらの因子は、新しい、修正された、又は削除された情報をそのシステム全体にわたっていつ、どのように伝播するかを決定するために、システムによって使用ことができる。
「開始条件」は、伝播をトリガすることができる値又は条件である。開始条件は、2つ以上のパラメータをとることができる。例えば、一実施形態では、開始条件は文字列値及びブール値をとる。この実施形態では、文字列値は、ルールが適用する情報のタイプを指定することができる「タイプ」属性である。例えば、いくつかの潜在的なタイプは、「バックアップ_ポリシー」、「ファイル」、及び「整合性グループ」である。(明確にすると、本明細書に列挙される潜在的なタイプは、単なる例である。更に、略称などの他の名前付け慣行を使用することができる。)一実施形態では、ブール値は、所与のノード又は他のエンティティが複製されたかどうかを示すために使用され得る「複製」属性とすることができる。他の実施形態では、他の値が可能である。更に、本明細書の論述を容易にするために特定の例が提供されているが、開始条件の正確な意味及びパラメータは、本開示全体に影響を及ぼすことなく、実装ごとに変更することができる。同じことは、本明細書で論じられる条件(例えば、因子)のそれぞれについても、本開示の種々の実装において追加、変更、除去などをすることができる条件(例えば、因子)自体に関しても、当てはまる。
「伝播の方向」は、システム100などのシステム全体にわたって情報が伝播される方向を示す。他の可能性が存在するが、この因子は、一般に単一のパラメータをとる。一実施形態では、パラメータは、方向が「内」又は「外」であるかどうかを示し、それによって、情報がネットワーク内又はネットワーク外に伝播されるべきかどうかを示す。「内」に設定されると、情報は、図1Bに示されるように、情報が一般にソース110からターゲット160に流れるように、ネットワーク内に伝播される。「外」に設定されると、情報は、図1Bに示されるように、情報が一般にターゲット160からソース110に流れるように、ネットワーク外に伝播される。他の実施形態では、他の値(例えば、多くの他の選択肢の中でも1及び0)を使用して、伝播の方向を示すことができる。更に、本明細書の論述を容易にするために特定の例が提供されているが、この因子の正確な意味及びパラメータは、本開示全体に影響を及ぼすことなく、実装ごとに変更することができる。
「スキップ条件」は、条件が満たされると、伝播に所与のノードをスキップさせる条件を示す。他の可能性が存在するが、この因子は、一般に複数のパラメータをとる。例えば、一実施形態では、この条件は、「タイプ」を示すパラメータ及び「ハイパーバイザ」が存在するか又は別の方法で使用されているかを示すブール値をとる。他の実施形態では、この条件は、2つ以上の「タイプ」パラメータを受け入れることができる。特定の実施形態では、この条件は、「タイプ」が仮想マシンを指す場合、「ハイパーバイザ」ブール値のみを必要とする。当然ながら、他の可能なパラメータ及び値も可能である。いずれにしても、ルールによって定義された条件が満たされると、伝播は、関連するノードをスキップする。上記のパラメータの場合と同様に、本明細書の論述を容易にするために特定の例が提供されているが、この因子の正確な意味及びパラメータは、本開示全体に影響を及ぼすことなく、実装ごとに変更することができる。
「反転条件」は、条件が満たされると、システムに伝播の方向を反転させる条件を示す。他の可能性が存在するが、この因子は、一般に1つのパラメータをとる。一実施形態では、パラメータは、「整合性グループ」の略語である「cg」又は「バックアップ_ポリシー」など、伝播が終了するノードの「タイプ」を示す。当然ながら、他の可能なパラメータ及び値も可能である。いずれにしても、ルールによって定義された条件が満たされると、伝播の方向はその時点で反転される。上記のパラメータの場合と同様に、本明細書の論述を容易にするために特定の例が提供されているが、この因子の正確な意味及びパラメータは、本開示全体に影響を及ぼすことなく、実装ごとに変更することができる。
「終了条件」は、条件が満たされると、伝播を終了させる条件を示す。他の可能性が存在するが、この因子は、一般に単一のパラメータをとる。一実施形態では、パラメータは、「アプリケーション」又は「仮想マシン」など、伝播が終了するノードの「タイプ」を示す。当然ながら、他の可能なパラメータ及び値も可能である。上記のパラメータの場合と同様に、本明細書の論述を容易にするために特定の例が提供されているが、この因子の正確な意味及びパラメータは、本開示全体に影響を及ぼすことなく、実装ごとに変更することができる。
いくつかの例を提供すると、1つの潜在的な伝播ルールを、「isApplicationReplicatedRule」と呼ぶことができる。この例のために、isApplicationReplicatedRuleは、「タイプ」パラメータ及び「複製」ブールパラメータを必要とする開始条件と;単一のパラメータをとる方向と;単一の「タイプ」パラメータをとる反転条件と;「ハイパーバイザ」ブールパラメータとペアリングされた「タイプ」パラメータを、第1の「タイプ」パラメータ及び「ハイパーバイザ」ブールパラメータに必ずしも関係しない第2の「タイプ」パラメータと共にとるスキップ条件と;単一の「タイプ」パラメータをとる終了条件と、を有し得る。この伝播ルールはまた、「終了アクション」を含んでもよい。
この例示的な伝播ルールを続けると、ルールは、前述の値に関連付けられた以下の値を有してもよい:開始条件の「タイプ」は「整合性グループ」を示してもよく、「複製」ブールパラメータは「真」の値を有してもよく、方向は、「内」に設定された値を有するパラメータを有してもよく、反転条件の「タイプ」パラメータは、「整合性グループ」も示す値を有してもよく、スキップ条件のパラメータペア(「タイプ」パラメータ及び「ハイパーバイザ」ブールパラメータ)は、「クラスタ」を示す値を有する第2の「タイプ」パラメータと共に、それぞれ「ホスト」及び「真」に設定された値を有してもよく、終了条件の「タイプ」パラメータは、「アプリケーション」の値を有してもよく、終了アクションは、「$entity.replicated=true」などの値を有してもよい。(上述のように、これらのパラメータ及び値は、単なる例として提供されており、いかなる方法でも限定することを意図するものではない。)
上記の例を続けると、必要な場合は図1A及び図1Bを参照すると、前述の例示的な伝播ルールは、この例示的な伝播ルールによって必要とされるように、整合性グループが複製としてマーキングされていると仮定すると、整合性グループ120から情報の伝播を開始する。次いで、関連する情報は、ネットワーク「内」に、すなわちディスク130の方向に、次いでノード140(1)などへ伝播される。他の条件は、各後続ノード(又はより一般的に他のエンティティ)において、又はそれに対して評価され、「アプリケーション」に到達したときに伝播は最終的に停止する。その時点で、終了アクションを実行することができる。
図2及び方法200の論述を続けると、伝播ルールの初期伝播は、220で実行される。この方法の第1のパスでは、伝播ルールそれ自体を、必要に応じてシステム全体にわたって伝播することができる。管理サーバが使用される場合などの他の実施形態では、管理サーバは、伝播ルールの開始条件の効率的なキャッシュを維持し、伝播ルールの全てを効率的なキャッシュ内又は別のメモリ構造内に記憶することができる。したがって、ルールを常にシステム全体にわたって伝播する必要はないので、ステップ220は必ずしも実行される必要はない(多くの場合、実行されない)。しかしながら、このような実施形態では、ルールは、必要に応じて後でアクセス及び使用するために利用可能であるように、適切な場所に、ある様式又は別の様式で記憶される。それらの初期の記憶又は伝播の後、伝播ルールは、サービスインターフェースとしてその場で追加、修正、削除、又は他の方法で変更することができる。修正及び削除は、既存のルール(複数可)を無効にすることができる。このような機能については、以下でより詳細に論じる。
ステップ230において、方法200は、エンティティに対する更新を処理する。この機能は、図3及び方法300の論述において、以下ではるかに詳細に論じられており、したがってここでは繰り返さない。ステップ240において、方法200は、伝播メタデータに対する更新を処理する。この機能は、図4及び方法400の論述において、以下ではるかに詳細に論じられており、したがってここでは繰り返さない。ステップ250において、方法200は、新しい関係の作成を処理する。この機能は、図5及び方法500の論述において、以下ではるかに詳細に論じられており、したがってここでは繰り返さない。ステップ260において、方法200は、オブジェクト及び/又は関係の削除を処理する。この機能は、図6及び方法600の論述において、以下ではるかに詳細に論じられており、したがってここでは繰り返さない。
上述したように、方法200は、本開示の個々の、しかし関係する部分である種々の動作を実施するために実行することができる動作の概要を提供する。図200は、線形様式で発生する方法200の種々の動作を描写するが、このような線形機能は、実務では必ずしも必要とされない。むしろ、個々のステップは、動作が必ずこの順序で実行されなければならないという基礎要件のためではなく、本明細書における論理的論述を容易にするために、このように示されている。これは、概ね互いから独立したはっきり異なる方法である230、240、250、及び260に特に当てはまる。これらの方法のそれぞれを、以下でより詳細に論じる。
図3は、本明細書に開示されるシステム及び技術の一実施形態に関連して実行される種々のアクションを例示する方法300のフロー図である。本開示に照らして理解されるように、この方法は、代替的な実施形態を導出するために修正されてもよい。更に、本実施形態のステップは連続的な順序で示されているが、特定のステップは、示されている順序とは異なる順序で行われてもよく、特定のステップは同時に実行されてもよく、特定のステップは他のステップと組み合わされてもよく、特定のステップは、別の実施形態では省略されてもよい。方法300を、図1A、図1B、及び図2に関連して説明した要素などの要素を参照して説明する。一実施形態では、方法300は、例えば管理サーバ120などの管理サーバによって実行される。他の実施形態では、方法300は、図1A及び図1Bに示される他の個々の要素のうちの種々のもの上に局在化することができるように、管理サーバ120とははっきり異なる1つ以上のスレッド、デーモン、プロセス、又は他のそのような構造体(総称的に「スレッド」)によって実行される。更に、方法300の論述は、図1B及び属性グラフ130と併せて読むと、最も良く理解されるであろう。
方法300を始める前に、典型的な実施形態では少なくともステップ210が実行され、伝播ルールは、システム又はネットワーク内の少なくとも1つの場所に記憶されている。したがって、管理サーバ(又は何らかの他のシステム有能な)は、一般に、方法300を始める前にルールのベースラインバージョンを有する。システムはまた、一般に、方法300を始める前に、例えば属性グラフ130などの属性グラフのベースラインバージョンを有する。
方法300は、ステップ310で始まり、方法は、エンティティに対する更新及び/又は追加(総称的に「更新(複数可)」)をリッスンする。方法300は、320において、そのような更新が受信されたかどうかを判定する。方法300が、320において、更新がまだ受信されていないと判定した場合、方法300は、330に進み、更新を引き続きリッスンする。方法300が、320において、更新が受信されたと判定した場合、方法300は、340に進む。
340において、方法300は、更新を評価して、1つ以上の伝播ルールの開始条件が満たされたかどうかを判定する。所与の伝播ルールの開始条件が任意の所与のオブジェクトに関して満たされていない場合、方法300は、350に進み、将来のイベントを待機する。示される実施形態では、将来のイベントを待機することは、350に示すように、更新を引き続きリッスンすることを含む。図3に明示的に示されていない別の実施形態では、将来のイベントを待機することは、そのようなイベントが発生した場合に350に直接戻ることを含み得る。特定の実施形態では、方法300は、この時点で終了するか、又はオブジェクトに関して異なる伝播ルールを評価することに移行することもできる。所与の伝播ルールの開始条件が任意の所与のオブジェクトに関して満たされている場合、方法300は、360において、伝播メタデータ(propagation metadata、PMD)をそのオブジェクトに追加する。種々の実施形態において、伝播メタデータは、少なくとも以下の情報を含む:伝播を引き起こしたか又はもたらしたルールの識別、開始エンティティの識別、及び伝播を引き起こしたか又はもたらした兄弟の識別リスト。いくつかの例として、そのような伝播メタデータは、仮想マシンのバックアップポリシーが無効化されたときに「リスクがある」として仮想マシン内のアプリケーションをマーキングするために、又はビジネスアプリケーションの文脈における任意の記憶媒体の分類に基づいて所与の分類タイプ内のビジネスアプリケーションをマーキングするために、使用することができる。伝播ルールは、(伝播を引き起こす又は制御するために人間の相互作用の必要がないことに関して)自動的及び(基盤となるタイプのエンティティ及び他のインフラストラクチャ構成要素に関して)非依存的の両方であるような様式で、データセンター(又は他のシステム)全体にわたって種々の形式の情報をリアルタイムで伝播するために使用することもできる。
図4は、本明細書に開示されるシステム及び技術の一実施形態に関連して実行される種々のアクションを例示する方法400のフロー図である。本開示に照らして理解されるように、この方法は、代替的な実施形態を導出するために修正されてもよい。更に、本実施形態のステップは連続的な順序で示されているが、特定のステップは、示されている順序とは異なる順序で行われてもよく、特定のステップは同時に実行されてもよく、特定のステップは他のステップと組み合わされてもよく、特定のステップは、別の実施形態では省略されてもよい。方法400を、図1A、図1B、及び図2に関連して説明した要素などの要素を参照して説明する。一実施形態では、方法400は、例えば管理サーバ120などの管理サーバによって実行される。他の実施形態では、方法400は、図1A及び図1Bに示される他の個々の要素のうちの種々のもの上に局在化することができるように、管理サーバ120とははっきり異なる1つ以上のスレッド、デーモン、プロセス、又は他のそのような構造体(総称的に「スレッド」)によって実行される。更に、方法400の論述は、図1B及び属性グラフ130と併せて読むと、最も良く理解されるであろう。
方法400は、410で始まり、方法は、オブジェクト上の伝播メタデータ(「PMD」)に対する更新及び/又は追加(総称的に「更新(複数可)」)をリッスンする。動作中のこの方法の例示的な例示を提供するために、ノード134(1)の観点から、この方法のステップを考察する。方法400は、420において、例えばノード134(1)などにおいてそのような更新が受信されたかどうかを判定する。方法400が、420において、評価されている所与のノードで更新がまだ受信されていないと判定した場合、方法400は、430に進み、更新を引き続きリッスンする。方法400が、420において、評価されている所与のノードで更新が受信されたと判定した場合、方法400は、440に進む。
440において、方法400は、更新を評価して、オブジェクトが1つ以上の伝播ルールの終了条件を満たすかどうかを判定する。所与の伝播ルールの終了条件が任意の所与のオブジェクトに関して満たされていない場合、方法400は、430に進み、更新を引き続きリッスンする。特定の実施形態では、方法400は、この時点で終了するか、又はオブジェクトに関して異なる伝播ルールを評価することに移行することもできる。所与の伝播ルールの終了条件が任意の所与のオブジェクトに関して満たされている場合、方法400は、450内の任意の適格な兄弟ノードを識別する。この例のために、ノード134(1)はアプリケーションではないと仮定する。したがって、本明細書で提供されている例示のために、ノード134(1)の観点から、終了条件はこの時点では満たされず、方法400は、450に進み、ノード134(1)の適格な兄弟を識別する。
用語「兄弟」が本明細書で使用されるとき、「兄弟」は、任意の所与のノードに直接接続されたノードを意味することを意図する。例えば、図1Bに示される例示的な伝播グラフを使用すると、ディスク133、ノード134(2)、及びノード134(3)は、ノード134(1)の兄弟であり、ノード134(1)及びノード134(4)は、ノード134(2)の兄弟であり、ノード134(1)及びノード134(4)は、ノード134(3)の兄弟であり、ノード134(2)、ノード134(3)、及びノード134(n)は、ノード134(4)の兄弟であり、以下同様である。所与の属性グラフ内の他のエンティティはまた、エンティティを有することができる。例えば、図1Bに示される例示的な伝播グラフを使用すると、整合性グループ132及びノード134(1)は、ディスク133の兄弟であり、属性グラフ130を通じて以下同様である。
適格な兄弟は、2つの条件に関して任意の所与のノードの兄弟を評価することによって決定される:第1に、兄弟は、ルールの「伝播の方向」基準に関して評価される。第2に、兄弟は、スキップ条件の基準に関して評価され、その結果、1つ以上の適格な兄弟がスキップされる結果をもたらし得る。そのため、上記に提供された例示的なルールを使用し、ノード134(1)の観点からそのルールの適用を考察すると、ディスク133、ノード134(2)、及びノード134(3)は全てノード134(1)の兄弟であることを我々は既に示している。しかしながら、ノード134(2)及びノード134(3)のみが、方向が「内」に設定されたときに「伝播の方向」条件を満たす。したがって、ノード134(2)及びノード134(3)のみが、ノード134(1)の潜在的に適格な兄弟であり、それらのノードの両方は、それらのノードの各々がスキップ条件によって除外されない限り、適格な兄弟として識別される。しかしながら、この例のために、ノード134(2)はスキップ条件の基準を満たし、ノード134(1)はスキップ条件の基準を満たさないと仮定する。そのシナリオでは、ノード134(2)は適格な兄弟ではなく、それによってノード134(3)がノード134(1)の唯一の適格な兄弟となる。
方法400が、450において所与のノードの適格な兄弟(複数可)を識別した後、方法400は、460に進む。460では、方法400は、識別された適格な兄弟上の伝播メタデータ(「PMD」)を更新する。したがって、上記で提供された例を続けると、方法400は、ノード134(3)上のPMDを更新する。この時点で、方法400は、470において、処理を継続するかどうか、例えば更なる更新を引き続きリッスンするかどうかを判定する。方法400が処理を継続しないことを決定した場合、方法400はこの時点で終了する。しかしながら、方法400が470において処理を継続することを決定する通常の状況では、方法400は410に戻る。上記の特定の例を続けると、ノード134(3)は460に従って更新され、これは、今度はノード134(3)の観点から、方法400の別の反復をトリガする。
図5は、本明細書に開示されるシステム及び技術の一実施形態に関連して実行される種々のアクションを例示する方法500のフロー図である。本開示に照らして理解されるように、この方法は、代替的な実施形態を導出するために修正されてもよい。更に、本実施形態のステップは連続的な順序で示されているが、特定のステップは、示されている順序とは異なる順序で行われてもよく、特定のステップは同時に実行されてもよく、特定のステップは他のステップと組み合わされてもよく、特定のステップは、別の実施形態では省略されてもよい。方法500を、図1A、図1B、及び図2に関連して説明した要素などの要素を参照して説明する。一実施形態では、方法500は、例えば管理サーバ120などの管理サーバによって実行される。他の実施形態では、方法500は、図1A及び図1Bに示される他の個々の要素のうちの種々のもの上に局在化することができるように、管理サーバ120とははっきり異なる1つ以上のスレッド、デーモン、プロセス、又は他のそのような構造体(総称的に「スレッド」)によって実行される。更に、方法500の論述は、図1B及び属性グラフ130と併せて読むと、最も良く理解されるであろう。
方法500は、510で始まり、方法は、ノード(又は他のエンティティ)間の新しい関係の作成をリッスンする。方法500は、属性グラフによって表されるネットワーク内で新しい関係が作成されたかどうかを判定する(520)。方法500が、520において、属性グラフによって表されるネットワーク内で新しい関係が作成されていないと判定した場合、方法500は、530に進み、新しい関係の作成を引き続きリッスンする。方法500が、520において、新しい関係が最近作成されたと判定した場合、方法500は、540に進む。方法500を例示するために、ノード134(3)は、以前は属性グラフ130の一部ではなかったが、新たに追加された(属性グラフ130内の現在位置においてであるが)と仮定する。この例では、方法500は、520において、2つの新しい関係、すなわち、(1)ノード134(3)とノード134(1)との間の関係、及び(2)ノード134(3)とノード134(4)との間の関係が追加されたことを判定する。したがって、この例では、方法500は540に進む。
540では、方法500は、新しいオブジェクトが伝播メタデータ又は「PMD」を有するかどうかを判定する。方法500が、540において、新しいオブジェクトがPMDを有していないと判定した場合、方法500は、530に進み、新しい関係の作成を引き続きリッスンする。方法500が、540において、新しいオブジェクトがPMDを有すると判定した場合、方法500は、550に進む。
550では、方法500は、適格な兄弟ノードを識別する。ノード134(3)の作成及び上記定義に基づいて例を続けると、方法500は、この時点でノード134(3)の適格な兄弟を識別する。方法400の場合と同様に、適格な兄弟は、2つの条件に関して任意の所与のノードの兄弟を評価することによって決定される:第1に、兄弟は、ルールの「伝播の方向」基準に関して評価される。第2に、兄弟は、スキップ条件の基準に関して評価され、その結果、1つ以上の適格な兄弟がスキップされる結果をもたらし得る。そのため、上記に提供された例示的なルールを使用し、ノード134(3)の観点からそのルールの適用を考察すると、ノード134(1)、及びノード134(4)はノード134(3)の兄弟であることを我々は既に示している。しかしながら、ノード134(4)のみが、方向が「内」に設定されるとき、「伝播の方向」条件を満たす。したがって、ノード134(4)は、再びこの例で新たに追加されたノードであるノード134(3)の唯一の潜在的に適格な兄弟である。その結果、ノード134(4)は、ノード134(4)がスキップ条件によって除外されない限り、適格な兄弟として識別される。しかしながら、この例のために、ノード134(4)はスキップ条件の基準を満たさないと仮定する。そのシナリオでは、ノード134(4)は、この例の例示のために再び我々がネットワーク及び/又は属性グラフに新たに追加されたものとして取り扱っているノード134(3)の適格な兄弟として識別される。
方法500が、550において所与のノードの適格な兄弟(複数可)を識別した後、方法500は、560に進む。560では、方法500は、識別された適格な兄弟上の伝播メタデータ(「PMD」)を更新する。したがって、上記で提供された例を続けると、方法500は、ノード134(4)上のPMDを更新する。この時点で、方法500は、570において、処理を継続するかどうか、例えば更なる処理が必要かどうかを判定する。方法500がこの時点で処理を継続しないことを決定した場合、方法500はこの時点で終了する。しかしながら、方法500が570において処理を継続することを決定する通常の状況では、方法500は510に戻る。更に、図4又は図5に明示的に示されていないが、ステップ560において適格な兄弟上のPMDが更新されるとき、その更新は、次いで一般に、その更新された情報もノード134(4)の任意の他の適格な兄弟に伝播されるべきかどうかを判定するように、新たに更新されたノード(この例では、ノード134(4))に関して図4及び方法400の別のパスをトリガする。
図6は、本明細書に開示されるシステム及び技術の一実施形態に関連して実行される種々のアクションを例示する方法600のフロー図である。本開示に照らして理解されるように、この方法は、代替的な実施形態を導出するために修正されてもよい。更に、本実施形態のステップは連続的な順序で示されているが、特定のステップは、示されている順序とは異なる順序で行われてもよく、特定のステップは同時に実行されてもよく、特定のステップは他のステップと組み合わされてもよく、特定のステップは、別の実施形態では省略されてもよい。方法600を、図1A、図1B、及び図2に関連して説明した要素などの要素を参照して説明する。一実施形態では、方法600は、例えば管理サーバ120などの管理サーバによって実行される。他の実施形態では、方法600は、図1A及び図1Bに示される他の個々の要素のうちの種々のもの上に局在化することができるように、管理サーバ120とははっきり異なる1つ以上のスレッド、デーモン、プロセス、又は他のそのような構造体(総称的に「スレッド」)によって実行される。更に、方法600の論述は、図1B及び属性グラフ130と併せて読むと、最も良く理解されるであろう。
方法600は、610で始まり、方法は、オブジェクト及び/又は関係(総称的に「オブジェクト(複数可)」)の削除又は除去(総称的に「削除」及びその活用形)をリッスンする。方法600は、620において、削除されたオブジェクトが伝播メタデータ、又は「PMD」を有していたかどうかを判定する。方法600が、620において、削除されたオブジェクトがPMDを有さなかったと判定した場合、方法600は、630に進み、別のオブジェクトの削除を引き続きリッスンする。方法600が、620において、削除されたオブジェクトがPMDを有していたと判定した場合、方法600は、640に進む。方法600を例示するために、ノード134(3)が削除されたと仮定する。ノード134(3)がPMDを含んでいたと更に仮定する。この例では、方法600は、620において、ノード134(3)がPMDを有していたと判定し、したがって、方法600は、この例では640に進む。
640では、方法600は、適格な兄弟ノードを識別する。ノード134(3)の削除及び上記に提供された定義に基づいて例を続けると、方法600は、この時点でノード134(3)の適格な兄弟を識別する。方法400及び500の場合と同様に、適格な兄弟は、2つの条件に関して任意の所与のノードの兄弟を評価することによって決定される:第1に、兄弟は、ルールの「伝播の方向」基準に関して評価される。第2に、兄弟は、スキップ条件の基準に関して評価され、その結果、1つ以上の適格な兄弟がスキップされる結果をもたらし得る。そのため、上記に提供された例示的なルールを使用し、ノード134(3)の観点からそのルールの適用を考察すると、ノード134(1)、及びノード134(4)はノード134(3)の兄弟であることを我々は既に示している。しかしながら、ノード134(4)のみが、方向が「内」に設定されるとき、「伝播の方向」条件を満たす。したがって、ノード134(4)は、再びこの例で新たに追加されたノードであるノード134(3)の唯一の潜在的に適格な兄弟である。その結果、ノード134(4)は、ノード134(4)がスキップ条件によって除外されない限り、適格な兄弟として識別される。しかしながら、この例のために、ノード134(4)はスキップ条件の基準を満たさないと仮定する。そのシナリオでは、ノード134(4)は、この例の例示のために再び我々がネットワーク及び/又は属性グラフから最近削除されたものとして取り扱っているノード134(3)の適格な兄弟として識別される。
方法600が、640において所与のノードの適格な兄弟(複数可)を識別した後、方法600は、650に進む。650では、方法600は、識別された適格な兄弟上の伝播メタデータ(「PMD」)を消去する。したがって、上記で提供された例を続けると、方法600は、ノード134(4)上のPMDを消去する。この時点で、方法600は、660において、処理を継続するかどうか、例えば更なる処理が必要かどうかを判定する。方法600がこの時点で処理を継続しないことを決定した場合、方法600はこの時点で終了する。しかしながら、方法600が660において処理を継続することを決定する通常の状況では、方法600は610に戻る。
図7は、上述の動作の1つ以上を実行することができるコンピューティングシステム700のブロック図である。コンピューティングシステム700は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサコンピューティングデバイスあるいはシステムを広く表す。コンピューティングシステム700の例としては、限定することなく、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、携帯用デバイス(例えば、携帯情報端末及び携帯電話)、ネットワーク機器、ストレージコントローラ(例えば、アレイコントローラ、テープドライブコントローラ、又はハードディスクコントローラ)などを含む様々なデバイスのうちの1つ以上が挙げられる。その最も基本的な構成において、コンピューティングシステム700は、少なくとも1つのプロセッサ714と、メモリ716と、を含んでもよい。管理モジュール129若しくは属性グラフ130のうちの1つ以上又は本開示と整合するそれらの任意の修正を呼び出すソフトウェアを実行することによって、コンピューティングシステム700は、上述の様式で動作を実行するように構成された専用コンピューティングデバイスになる。
プロセッサ714は、データの処理、又は命令の解釈及び実行が可能な任意のタイプ又は形式の処理ユニットを概して表す。特定の実施形態では、プロセッサ714は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ714に、本明細書に記載及び/又は例示する実施形態のうちの1つ以上の機能を実行させてもよい。例えば、プロセッサ714は、本明細書に記載する動作を実行してもよく、及び/又は実行するための手段であってもよい。プロセッサ714はまた、本明細書に記載若しくは例示する任意の他の動作、方法、若しくはプロセスを実行してもよく、及び/又は実行するための手段であってもよい。
メモリ716は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性記憶デバイス又は媒体を概して表す。例としては、限定することなく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(read only memory、ROM)、フラッシュメモリ、ハードディスクドライブ、又は任意の他の好適なメモリデバイスが挙げられる。必須でないが、特定の実施形態では、コンピューティングシステム700は、揮発性メモリユニット及び不揮発性記憶デバイスの両方を含んでもよい。一例では、に実装するプログラム命令又は本明細書に記載される更なる動作を実装が、メモリ710にロードされてもよい。
特定の実施形態では、コンピューティングシステム700はまた、プロセッサ714及びメモリ716に加えて、1つ以上の構成要素又は要素を含んでもよい。例えば、図7に例示するように、コンピューティングシステム700は、メモリコントローラ718、入力/出力(Input/Output、I/O)コントローラ720、及び通信インターフェース722を含んでもよく、これらの各々は、通信インフラストラクチャ712を介して相互接続されてもよい。通信インフラストラクチャ712は、コンピューティングデバイスの1つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ712の例としては、限定することなく、通信バス(業界標準アーキテクチャ(Industry Standard Architecture、ISA)、周辺構成要素相互接続(Peripheral Component Interconnect、PCI)、PCIエクスプレス(PCI express、PCIe)、又は類似のバスなど)、及びネットワークが挙げられる。
メモリコントローラ718は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム700の1つ以上の構成要素間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。例えば、特定の実施形態では、メモリコントローラ718は、通信インフラストラクチャ712を介して、プロセッサ714、メモリ716、及びI/Oコントローラ720間の通信を制御してもよい。特定の実施形態では、メモリコントローラ718は、本明細書に記載及び/又は例示する1つ以上の動作又は機能を単独又は他の要素との組み合わせのいずれかで実行してもよく、及び/又は実行するための手段であってもよい。
I/Oコントローラ720は、コンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態では、I/Oコントローラ720は、プロセッサ714、メモリ716、通信インターフェース722、ディスプレイアダプタ726、入力インターフェース730、及びストレージインターフェース734などのコンピューティングシステム700の1つ以上の要素間のデータの転送を制御してもよく、又はそれを容易にしてもよい。
通信インターフェース722は、コンピューティングシステム700と、1つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態において通信インターフェース722は、コンピューティングシステム700と追加のコンピューティングシステムを含むプライベート又は公衆ネットワークとの間の通信を容易にしてもよい。通信インターフェース722の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース722は、インターネットなどのネットワークへの直接的なリンクを介して、遠隔サーバへの直接的な接続を提供してもよい。通信インターフェース722はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してもよい。
特定の実施形態では、通信インターフェース722はまた、外部バス又は通信チャネルを介して、コンピューティングシステム700と、1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース(Small Computer System Interface、SCSI)ホストアダプタ、ユニバーサルシリアルバス(Universal Serial Bus、USB)ホストアダプタ、米国電気電子技術者協会(Institute of Electrical and Electronics Engineers、IEEE)1894ホストアダプタ、シリアルアドバンストテクノロジーアタッチメント(Serial Advanced Technology Attachment、SATA)及びエクスターナルSATA(external SATA、eSATA)ホストアダプタ、アドバンスドテクノロジーアタッチメント(Advanced Technology Attachment、ATA)、及びパラレルATA(Parallel ATA、PATA)ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット(登録商標)アダプターなどが挙げられる。
通信インターフェース722はまた、コンピューティングシステム700が分散又は遠隔コンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース722は、実行のために、遠隔デバイスから命令を受信するか、又は遠隔デバイスに命令を送信してもよい。
図7に例示するように、コンピューティングシステム700はまた、ディスプレイアダプタ726を介して通信インフラストラクチャ712に連結されている少なくとも1つのディスプレイデバイス724を含んでもよい。ディスプレイデバイス724は、ディスプレイアダプタ726によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、ディスプレイアダプタ726は、ディスプレイデバイス724上に表示するために、通信インフラストラクチャ712から(又はフレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
図7に例示するように、コンピューティングシステム700はまた、入力インターフェース730を介して通信インフラストラクチャ712に連結されている少なくとも1つの入力デバイス728を含んでもよい。入力デバイス728は、コンピュータ又は人間のいずれかによって生成された入力を、コンピューティングシステム700に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス728の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
図7に例示するように、コンピューティングシステム700はまた、ストレージインターフェース734を介して通信インフラストラクチャ712に連結されている記憶デバイス732を含んでもよい。記憶デバイス732は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス732は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。記憶インターフェース734は、コンピューティングシステム700の記憶デバイス732と他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。記憶デバイス732のような記憶デバイスは、本明細書に記載されるデータ構造、並びにコンピュータシステムに本明細書に記載される動作のうちの1つ以上を実行させることが可能な1つ以上のコンピュータ可読プログラミング命令などの情報を記憶することができる。
特定の実施形態では、記憶デバイス732は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能なストレージユニットから読み取るように、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス732はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム700にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス732は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、及び書き込むように構成されてもよい。記憶デバイス732はまた、コンピューティングシステム500の一部であってもよく、又は他のインターフェースシステムを通じてアクセスされる別個のデバイスであってもよい。
多くの他のデバイス又はサブシステムは、コンピューティングシステム700に接続されてもよい。逆に、図7に例示する構成要素及びデバイスの全てが、本明細書において説明及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図7に示すものとは異なる方法で相互接続されてもよい。
コンピューティングシステム700はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される実施形態のうちの1つ以上は、非一過性コンピュータ可読記憶媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。非一過性コンピュータ可読記憶媒体の例としては、磁気記憶媒体(例えば、ハードディスクドライブ及びフロッピーディスク)、光学的記憶媒体(例えば、CD−、又はDVD−ROM)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)などが挙げられる。そのようなコンピュータプログラムはまた、インターネットなどのネットワークを介してメモリに又はキャリア媒体に記憶するためにコンピューティングシステム700に転送されてもよい。
コンピュータプログラミング命令を含む非一過性コンピュータ可読記憶媒体は、コンピューティングシステム700にロードされてもよい。非一過性コンピュータ可読記憶媒体上に記憶されたコンピュータプログラミング命令の全部又は一部分は、次いで、メモリ716及び/又は記憶デバイス732の種々の部分に記憶されてもよい。プロセッサ714によって実行されるとき、コンピューティングシステム700にロードされたコンピュータプログラムは、本明細書において説明及び/又は例示する実施形態のうちの1つ以上の機能をプロセッサ714に実行させてもよく、及び/又はそれらを実行するための手段であってもよい。付加的に又は代替的に、本明細書に説明及び/又は例示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装され得る。例えば、コンピューティングシステム700は、本明細書において開示される実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(application specific integrated circuit、ASIC)として構成されてもよい。
図8は、クライアントシステム810、820、及び830、並びにサーバ840及び845がネットワーク850に連結されてもよいネットワークアーキテクチャ800のブロック図である。クライアントシステム810、820、及び830は、図7のコンピューティングシステム700などの任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。
同様に、サーバ840及び845は、種々のデータベースサービスを提供するように、及び/又は特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを概して表す。ネットワーク850は、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(personal area network、PAN)、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一実施例では、クライアントシステム810、820、及び/又は830のうちの1つ以上は、管理モジュール129及び/若しくは属性グラフ130、並びに/又はそれらの1つ以上の構成要素若しくはスレッドのうちの1つ以上を実行するように構成されたソフトウェアを含んでもよい。
図8に例示するように、1つ以上の記憶デバイス860(1)〜(N)は、サーバ840に直接取設されてもよい。同様に、1つ以上の記憶デバイス870(1)〜(N)は、サーバ845に直接取設されてもよい。記憶デバイス860(1)〜(N)及び記憶デバイス870(1)〜(N)は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。特定の実施形態では、記憶デバイス860(1)〜(N)及び記憶デバイス870(1)〜(N)は、ネットワークファイルシステム(Network File System、NFS)、サーバメッセージブロック(Server Message Block、SMB)、又は共通インターネットファイルシステム(Common Internet File System、CIFS)など種々のプロトコルを使用して、サーバ840及び845と通信するように構成されたネットワーク接続型記憶(network-attached storage、NAS)デバイスを表してもよい。このような記憶デバイスは、上述のようにバックアップ情報及び記憶構成情報を記憶することができる。
サーバ840及び845はまた、ストレージエリアネットワーク(SAN)ファブリック880に接続されてもよい。SANファブリック880は、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。SANファブリック880は、サーバ840及び845と、複数の記憶デバイス890(1)〜(N)及び/又はインテリジェント記憶アレイ895との間の通信を容易にしてもよい。SANファブリック880はまた、デバイス890(1)〜(N)及びアレイ895が、クライアントシステム810、820、及び830にローカルに取設されたデバイスとして見えるような様式で、ネットワーク850並びにサーバ840及び845を介して、クライアントシステム810、820、及び830と、記憶デバイス890(1)〜(N)及び/又はインテリジェント記憶アレイ895との間の通信を容易にしてもよい。記憶デバイス860(1)〜(N)及び記憶デバイス870(1)〜(N)と同様に、記憶デバイス890(1)〜(N)及びインテリジェント記憶アレイ895は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
特定の実施形態では、図7のコンピューティングシステム700を参照すると、図7の通信インターフェース722などの通信インターフェースは、それぞれのクライアントシステム810、820、及び830と、ネットワーク850との間の接続性を提供するために使用されてもよい。クライアントシステム810、820、及び830は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ840又は845上の情報にアクセスすることが可能であってもよい。かかるソフトウェアは、クライアントシステム810、820、及び830が、サーバ840、サーバ845、記憶デバイス860(1)〜(N)、記憶デバイス870(1)〜(N)、記憶デバイス890(1)〜(N)、又はインテリジェント記憶アレイ895によってホストされるデータにアクセスすることを可能にしてもよい。図8は、データを交換するためのネットワーク(インターネットなど)の使用を描写するが、本明細書において説明及び/又は例示する実施形態は、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
少なくとも1つの実施形態において、本明細書において開示される実施形態のうちの1つ以上の全て又は一部分は、コンピュータプログラムとしてコード化されてもよく、サーバ840、サーバ845、記憶デバイス840(1)〜(N)、記憶デバイス870(1)〜(N)、記憶デバイス890(1)〜(N)、インテリジェント記憶アレイ895、又はこれらの任意の組み合わせにロードされ、これらによって実行されてもよい。本明細書において開示される実施形態のうちの1つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ840内に記憶され、サーバ845によって実行され、ネットワーク850を通じてクライアントシステム810、820、及び830に分散されてもよい。
いくつかの例では、図1A、図1B、図7、及び図8のシステムのうちの1つの全部又は一部分は、クラウドコンピューティング又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
加えて、本明細書に記載の構成要素のうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、ある形式から他の形式に変換し得る。例えば、本明細書に記載される動作のうちの1つ以上は、本明細書に記載される種々の動作を実行することができるように、コンピュータシステムの挙動を変換することができる。
本発明をいくつかの実施形態と関連して説明してきたが、本発明は、本明細書で述べた特定の形式に限定されることを意図しない。逆に、本発明は、添付の特許請求の範囲によって規定されるような本発明の範囲内に合理的に含まれ得るような代替形態、修正形態、及び等価物を包含することを意図する。

Claims (20)

  1. イベントの発生がないかネットワークを監視することであって、
    前記ネットワークが複数のノードを含み、
    前記複数のノードが、少なくとも第1のノード及び第2のノードを含む、監視することと、
    前記イベントの前記発生を検出することであって、
    前記イベントが情報と関連付けられる、検出することと、
    第1の伝播ルールを決定することであって、
    前記第1の伝播ルールが少なくとも第1の条件を含む、決定することと、
    前記イベントの前記発生を検出したことに応答して、前記情報を第2のノードに伝播することであって、
    前記情報を伝播することが、前記第1の伝播ルールの前記第1の条件を評価することを含む、伝播することと、を含む、方法。
  2. 前記イベントが、第1のエンティティに対する更新である、請求項1に記載の方法。
  3. 前記イベントが、第1のオブジェクト上の伝播メタデータに対する更新である、請求項1に記載の方法。
  4. 前記イベントが、前記ネットワーク内の新しい関係の作成である、請求項1に記載の方法。
  5. 前記イベントが、前記ネットワーク内の関係の削除である、請求項1に記載の方法。
  6. 適格な兄弟ノードを決定すること、を更に含む、請求項1に記載の方法。
  7. 伝播メタデータを第1のオブジェクトに追加すること、を更に含む、請求項1に記載の方法。
  8. 適格な兄弟ノードを決定することと、
    前記適格な兄弟ノード上の前記伝播メタデータを更新することと、を更に含む、請求項3に記載の方法。
  9. 適格な兄弟ノードを決定することと、
    前記適格な兄弟ノードから前記伝播メタデータを消去することと、を更に含む、請求項5に記載の方法。
  10. マイクロプロセッサと、
    前記マイクロプロセッサによって実行可能なコンピュータ命令を含む非一過性コンピュータ可読記憶媒体であって、前記コンピュータ命令が、
    イベントの発生がないかネットワークを監視するステップであって、
    前記ネットワークが複数のノードを含み、
    前記複数のノードが、少なくとも第1のノード及び第2のノードを含む、監視するステップと、
    前記イベントの前記発生を検出するステップであって、
    前記イベントが情報と関連付けられる、検出するステップと、
    第1の伝播ルールを決定するステップであって、
    前記第1の伝播ルールが少なくとも第1の条件を含む、決定するステップと、
    前記イベントの前記発生を検出したことに応答して、前記情報を第2のノードに伝播するステップであって、
    前記情報を伝播することが、前記第1の伝播ルールの前記第1の条件を評価することを含む、伝播するステップと、
    を含む方法を実行するように構成されている、非一過性コンピュータ可読記憶媒体と、
    を含む、システム。
  11. 前記イベントが、第1のエンティティに対する更新である、請求項10に記載のシステム。
  12. 前記イベントが、第1のオブジェクト上の伝播メタデータに対する更新である、請求項10に記載のシステム。
  13. 前記イベントが、前記ネットワーク内の新しい関係の作成である、請求項10に記載のシステム。
  14. 前記イベントが、前記ネットワーク内の関係の削除である、請求項10に記載のシステム。
  15. 伝播メタデータを第1のオブジェクトに追加すること、を更に含む、請求項10に記載のシステム。
  16. 適格な兄弟ノードを決定することと、
    前記適格な兄弟ノード上の前記伝播メタデータを更新することと、を更に含む、請求項13に記載のシステム。
  17. 適格な兄弟ノードを決定することと、
    前記適格な兄弟ノードから前記伝播メタデータを消去することと、を更に含む、請求項14に記載のシステム。
  18. 非一過性コンピュータ可読記憶媒体上に記憶された複数の命令を含むコンピュータプログラム製品であって、前記命令が、
    イベントの発生がないかネットワークを監視するステップであって、
    前記ネットワークが複数のノードを含み、
    前記複数のノードが、少なくとも第1のノード及び第2のノードを含む、監視するステップと、
    前記イベントの前記発生を検出するステップであって、
    前記イベントが情報と関連付けられる、検出するステップと、
    第1の伝播ルールを決定するステップであって、
    前記第1の伝播ルールが少なくとも第1の条件を含む、決定するステップと、
    前記イベントの前記発生を検出したことに応答して、前記情報を第2のノードに伝播するステップであって、
    前記情報を伝播することが、前記第1の伝播ルールの前記第1の条件を評価することを含む、伝播するステップと、
    を含む方法を実行するように構成されている、非一過性コンピュータ可読記憶媒体と、を含む、コンピュータプログラム製品。
  19. 前記方法が、
    適格な兄弟ノードを決定することであって、
    前記適格な兄弟ノードを前記決定することが、前記イベントが前記ネットワーク内の新しい関係の作成であると判定することに応答して実行される、決定することと、
    前記適格な兄弟ノード上の前記伝播メタデータを更新することと、を更に含む、請求項18に記載のコンピュータプログラム製品。
  20. 前記方法が、
    適格な兄弟ノードを決定することであって、
    前記適格な兄弟ノードを前記判定することが、前記イベントが前記ネットワーク内の関係の削除であると判定することに応答して実行される、決定することと、
    前記適格な兄弟ノードから前記伝播メタデータを消去することと、を更に含む、請求項18に記載のコンピュータプログラム製品。
JP2019542403A 2017-02-05 2018-01-31 特定のエンティティタイプにかかわらず接続されたエンティティセットにわたって情報を伝播するためのシステム及び方法 Active JP6841921B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762454871P 2017-02-05 2017-02-05
US62/454,871 2017-02-05
US201762599783P 2017-12-17 2017-12-17
US62/599,783 2017-12-17
US15/857,577 US11310137B2 (en) 2017-02-05 2017-12-28 System and method to propagate information across a connected set of entities irrespective of the specific entity type
US15/857,577 2017-12-28
PCT/US2018/016064 WO2018144492A1 (en) 2017-02-05 2018-01-31 System and method to propagate information across a connected set of entities irrespective of the specific entity type

Publications (2)

Publication Number Publication Date
JP2020514879A true JP2020514879A (ja) 2020-05-21
JP6841921B2 JP6841921B2 (ja) 2021-03-10

Family

ID=63038114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019542403A Active JP6841921B2 (ja) 2017-02-05 2018-01-31 特定のエンティティタイプにかかわらず接続されたエンティティセットにわたって情報を伝播するためのシステム及び方法

Country Status (5)

Country Link
US (1) US11310137B2 (ja)
EP (1) EP3590041B1 (ja)
JP (1) JP6841921B2 (ja)
CN (1) CN110582752B (ja)
WO (1) WO2018144492A1 (ja)

Families Citing this family (3)

* 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
CN111158676A (zh) * 2019-12-31 2020-05-15 山东蚁动网络科技有限公司 基于变量传播技术的构件关联性分析方法及设备、介质
US11429640B2 (en) 2020-02-28 2022-08-30 Veritas Technologies Llc Methods and systems for data resynchronization in a replication environment

Family Cites Families (49)

* 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
US7505872B2 (en) 2002-09-11 2009-03-17 International Business Machines Corporation Methods and apparatus for impact analysis and problem determination
US7665063B1 (en) * 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
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
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
US7853998B2 (en) * 2007-03-22 2010-12-14 Mocana Corporation Firewall propagation
US8660108B2 (en) 2007-04-13 2014-02-25 Hart Communication Foundation Synchronizing timeslots in a wireless communication protocol
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
US8577850B1 (en) 2010-11-15 2013-11-05 Symantec Corporation Techniques for global data deduplication
US9442806B1 (en) 2010-11-30 2016-09-13 Veritas Technologies Llc Block-level deduplication
CN102238178A (zh) * 2011-05-30 2011-11-09 李牧森 基于互联网技术应用的多层次传播信息的客户端桌面媒体
US9910904B2 (en) 2011-08-30 2018-03-06 International Business Machines Corporation Replication of data objects from a source server to a target server
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
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
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
WO2017131783A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Managing groups of servers
US10620834B2 (en) 2016-03-25 2020-04-14 Netapp, Inc. Managing storage space based on multiple dataset backup versions
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
US10496494B1 (en) 2016-03-31 2019-12-03 EMC IP Holding Company LLC Multilayer manifest for data storage systems
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US20180285201A1 (en) 2017-03-28 2018-10-04 Commvault Systems, Inc. Backup operations for large databases using live synchronization
US10592149B1 (en) 2017-10-06 2020-03-17 EMC IP Holding Company LLC Dynamic de-duplication methodologies for efficient resource utilization on de-duplication system
JP6884128B2 (ja) 2018-09-20 2021-06-09 株式会社日立製作所 データ重複排除装置、データ重複排除方法、及びデータ重複排除プログラム
US10936216B2 (en) 2018-09-26 2021-03-02 EMC IP Holding Company LLC Method and system for storage exhaustion estimation

Also Published As

Publication number Publication date
EP3590041A1 (en) 2020-01-08
WO2018144492A1 (en) 2018-08-09
EP3590041B1 (en) 2021-03-31
US11310137B2 (en) 2022-04-19
US20180227205A1 (en) 2018-08-09
CN110582752B (zh) 2023-05-30
JP6841921B2 (ja) 2021-03-10
CN110582752A (zh) 2019-12-17

Similar Documents

Publication Publication Date Title
JP7065864B2 (ja) オーケストレーションのためのワークロードの依存性分析のための方法及びシステム
US9116803B1 (en) Placement of virtual machines based on page commonality
AU2013266122B2 (en) Backup image duplication
US9128948B1 (en) Integration of deduplicating backup server with cloud storage
US8364716B2 (en) Methods and apparatus for incrementally computing similarity of data sources
US11620075B2 (en) Providing application aware storage
US11693604B2 (en) Administering storage access in a cloud-based storage system
US10620866B1 (en) Representation-based partitioning of distributed computing environments
US10380074B1 (en) Systems and methods for efficient backup deduplication
US11789651B2 (en) Compliance monitoring event-based driving of an orchestrator by a storage system
US11625181B1 (en) Data tiering using snapshots
US20220365821A1 (en) Fingerprint-Based Database Container Deployment
US20170199893A1 (en) Storing data deduplication metadata in a grid of processors
US20220365908A1 (en) Compliance Monitoring for Datasets Stored at Rest
JP6841921B2 (ja) 特定のエンティティタイプにかかわらず接続されたエンティティセットにわたって情報を伝播するためのシステム及び方法
US9684668B1 (en) Systems and methods for performing lookups on distributed deduplicated data systems
US10705752B2 (en) Efficient data migration in hierarchical storage management system
US8954780B1 (en) Systems and methods for transferring input/output operations within computer clusters
JP2024521617A (ja) サービスとしてのストレージのためのロールエンフォースメント

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190828

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210114

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: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210218

R150 Certificate of patent or registration of utility model

Ref document number: 6841921

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250