JP2018532184A - 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法 - Google Patents

頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法 Download PDF

Info

Publication number
JP2018532184A
JP2018532184A JP2018512624A JP2018512624A JP2018532184A JP 2018532184 A JP2018532184 A JP 2018532184A JP 2018512624 A JP2018512624 A JP 2018512624A JP 2018512624 A JP2018512624 A JP 2018512624A JP 2018532184 A JP2018532184 A JP 2018532184A
Authority
JP
Japan
Prior art keywords
image segment
cache
provisioning
image
hosted
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
JP2018512624A
Other languages
English (en)
Other versions
JP6677803B2 (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 JP2018532184A publication Critical patent/JP2018532184A/ja
Application granted granted Critical
Publication of JP6677803B2 publication Critical patent/JP6677803B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための開示されたコンピュータ実装方法は、(1)記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを、記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶することと、(2)イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させることと、(3)イメージセグメントについての使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定することと、(4)イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングすることと、(5)イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングすることと、を含んでもよい。様々な別の方法、システム、及びコンピュータ可読媒体もまた開示される。

Description

クラウドコンピューティングの普及の増大は、個人及び組織が自らのニーズに基づいて仮想コンピューティングデバイスをプロビジョニング及びデプロビジョニングすることを可能にしてきた。組織は、時間をかけて手動で物理マシンを設定するのではなく、記憶されたイメージから何十もの新たなデバイスを数分でスピンアップできる場合がある。イメージはまた、重要データ用のバックアップとして、又は、様々な従業員タイプのためのデフォルトシステム構成として使用される場合がある。新規雇用された開発者が、自身の新たなラップトップにプロビジョニングされた1つのイメージを有し、一方、会計係が、自身のデスクトップにプロビジョニングされた異なるイメージを有する場合がある。効率的にイメージを作成及び記憶することは重要な課題であるが、効率的にイメージをプロビジョニングすることも同様に重要である。エンドユーザも管理者も、低速のプロビジョニングシステムに起因するような遅延には特に我慢できない。
イメージからシステムをプロビジョニングするための従来のシステムは、重大な故障の後に、臨時にバックアップを回復させるように設計されている場合があり、頻繁にイメージをプロビジョニングするように選択的に設計されてはいない場合がある。いくつかの例では、従来のシステムは、セグメントではなくむしろ完全なイメージからイメージをプロビジョニングするように設計されている場合があり、そして、イメージセグメントからプロビジョニングするように最適に構成されていない場合がある。したがって、本開示は、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための追加的で改善されたシステム及び方法に関する必要性を識別して対象にする。
以下でより詳細に説明するように、本開示は、イメージセグメントが使用される回数の経過を追跡し、最も頻繁に使用されるイメージセグメントをキャッシュまで移動させることによって、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための様々なシステム及び方法について説明する。
一例では、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのコンピュータ実装方法は、(1)記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶することと、(2)イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させることと、(3)イメージセグメントについての使用カウンタの現在値が頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定することと、(4)イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングすることと、(5)イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングすることと、を含んでもよい。
一実施形態では、イメージセグメントをキャッシュにホスティングすることは、イメージセグメントのフィンガープリントをキャッシュにホスティングされたイメージセグメントのフィンガープリントのリストに追加することを含んでもよい。この実施形態では、イメージセグメントをキャッシュからプロビジョニングすることは、キャッシュにホスティングされたイメージセグメントのフィンガープリントのリスト内にイメージセグメントのフィンガープリントが存在することに基づいて、イメージセグメントがキャッシュにホスティングされることを判定することを含んでもよい。
一実施形態では、頻繁なイメージセグメントプロビジョニングのための所定閾値は、最も頻繁にプロビジョニングされたイメージセグメントの所定割合に基づいて計算されてもよい。いくつかの例では、コンピュータ実装方法は、イメージセグメントについての使用カウンタの現在値が頻繁なイメージセグメントプロビジョニングについての所定閾値をもはや満たしていないことを判定することに応じて、イメージセグメントをキャッシュから除去することを更に含んでもよい。
いくつかの実施形態では、イメージセグメントをキャッシュにホスティングすることは、イメージセグメントと一緒に頻繁にプロビジョニングされ、また、キャッシュにホスティングされる少なくとも1つの追加のイメージセグメントの少なくとも1つの場所に関する情報を記憶することを含んでもよい。いくつかの例では、イメージセグメントをキャッシュからプロビジョニングすることは、追加のイメージセグメントの位置に関する記憶された情報を使用することにより追加のイメージセグメントをキャッシュから効率的にプロビジョニングすることを含んでもよい。一実施形態では、イメージセグメントは、仮想マシンのバックアップの一部分を含んでもよい。
一実施形態では、上記の方法を実装するためのシステムは、(1)メモリに記憶された記憶モジュールであって、記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリストに記憶する記憶モジュールと、(2)メモリに記憶された増加モジュールであって、イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させる増加モジュールと、(3)メモリに記憶された判定モジュールであって、イメージセグメントについての使用カウンタの現在値が頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定する判定モジュールと、(4)メモリに記憶されたホスティングモジュールであって、イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングするホスティングモジュールと、(5)メモリに記憶されたプロビジョニングモジュールであって、イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングするプロビジョニングモジュールと、(6)記憶モジュール、増加モジュール、判定モジュール、ホスティングモジュール、及びプロビジョニングモジュールを実行させるように構成された少なくとも1つの物理プロセッサと、を含んでもよい。
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ若しくは2つ以上のコンピュータ実行可能命令を含んでもよく、これらの命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイスに、(1)記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶することと、(2)イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させることと、(3)イメージセグメントについての使用カウンタの現在値が頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定することと、(4)イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングすることと、(5)イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングすることと、を行わせてもよい。
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明とともに、これらの図面は、本開示の種々の原理を実証及び説明する。
頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なシステムのブロック図である。 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための追加の例示的なシステムのブロック図である。 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的な方法の流れ図である。 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なコンピューティングシステムのブロック図である。 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なコンピューティングシステムのブロック図である。 本明細書で説明及び/又は図示される実施形態のうちの1つ若しくは2つ以上を実装することができる例示的コンピューティングシステムのブロック図である。 本明細書で説明及び/又は図示される実施形態のうちの1つ若しくは2つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
例示的な実施形態の詳細な説明
本開示は、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法を概して対象とする。以下でより詳細に説明するように、どのイメージセグメントが頻繁にプロビジョニングされるかを追跡することと、頻繁にプロビジョニングされたイメージセグメントをキャッシュまで移動させることによって、本明細書に記載されたシステム及び方法は、プロビジョニングの速度を向上させ得る。それに加えて、どのイメージセグメントが一緒に頻繁にプロビジョニングされるかを追跡することと、それらのイメージセグメントの位置をキャッシュに記憶することとによって、本明細書で提供されるシステム及び方法は、プロビジョニングの速度及び効率を更に増大し得る。
以下において、図1、図2、図4、及び図5を参照して、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なシステムについての詳細な説明がなされる。対応するコンピュータ実装方法についての詳細な説明もまた、図3に関連して提供される。それに加えて、本明細書で説明する実施形態のうちの1つ若しくは2つ以上を実装できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、図6及び図7と関連してそれぞれ提供される。
図1は、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なシステム100のブロック図である。この図に示すように、例示的なシステム100は、1つ若しくは2つ以上のタスクを実施するための1つ若しくは2つ以上のモジュール102を含んでもよい。例えば、そして、以下でより詳細に説明するように、例示的なシステム100は、記憶モジュール104を含んでもよく、このモジュールは、記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを、記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶する。例示的なシステム100は、増加モジュール106を追加的に含んでもよく、このモジュールは、イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させる。例示的なシステム100はまた、判定モジュール108を含んでもよく、このモジュールは、イメージセグメントについての使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定する。例示的なシステム100は、ホスティングモジュール110を含んでもよく、このモジュールは、イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングする。例示的なシステム100はまた、プロビジョニングモジュール112を含んでもよく、このモジュールは、イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングする。別個の要素として例解されるが、図1のモジュール102のうちの1つ若しくは2つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
特定の実施形態では、図1のモジュール102のうちの1つ若しくは2つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ若しくは2つ以上のタスクを実施させてもよい1つ若しくは2つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、そして、以下でより詳細に説明するように、1つ若しくは2つ以上のモジュール102は、図2のコンピューティングデバイス202、図6のコンピューティングシステム610、及び/又は図7の例示的なネットワークアーキテクチャ700の部分等の、1つ若しくは2つ以上のコンピューティングデバイス上で走るように記憶及び構成されるソフトウェアモジュールを表してもよい。図1のモジュール102のうちの1つ若しくは2つ以上はまた、1つ若しくは2つ以上のタスクを実施するように構成された1つ若しくは2つ以上の特殊目的のコンピュータの全て又は部分を表してもよい。
図1の例示的なシステム100は、様々な態様で実装されてもよい。例えば、例示的なシステム100の全て又は一部分は、図2の例示的なシステム200の部分を表してもよい。図2に示すように、システム200は、コンピューティングデバイス202を含んでもよい。一例では、コンピューティングデバイス202は、1つ若しくは2つ以上のモジュール102によってプログラミングされてもよい。
一実施形態では、図1のモジュール102のうちの1つ若しくは2つ以上は、コンピューティングデバイス202の少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイス202が、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングすることを可能にする。例えば、そして、以下でより詳細に説明するように、記憶モジュール104は、記憶システムにホスティングされるイメージセグメント208についての表示210及び使用カウンタ212を、記憶システムにホスティングされたイメージセグメントについてのリスト214内に記憶してもよい。増加モジュール106は、イメージセグメント208が記憶システムからプロビジョニングされる度に、リスト214内のイメージセグメント208についての使用カウンタ212の現在値を増加させてもよい。その後に、判定モジュール108は、イメージセグメント208についての使用カウンタ212の現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定してもよい。次に、ホスティングモジュール110は、イメージセグメント208を、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュ216にホスティングしてもよい。その後、プロビジョニングモジュール112は、イメージセグメント208をプロビジョニングすることの要求に応じて、イメージセグメント208をキャッシュ216からプロビジョニングしてもよい。
コンピューティングデバイス202は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。コンピューティングデバイス202の例として、限定することなく、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器(PDA)、マルチメディアプレイヤー、組込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラス等)、ゲーム機、これらのもののうちの1つ若しくは2つ以上の組合せ、図6の例示的なコンピューティングシステム610、又は任意の別の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
図3は、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的なコンピュータ実装方法300の流れ図である。図3に示すステップは、任意の好適なコンピュータ実行可能なコード及び/又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図3に示すステップは、図1のシステム100、図2のシステム200、図6のコンピューティングシステム610、及び/又は図7の例示的なネットワークアーキテクチャ700の部分の構成要素のうちの1つ若しくは2つ以上によって実施されてもよい。
図3に示すように、ステップ302において、本明細書に記載されるシステムのうちの1つ若しくは2つ以上が、記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを、記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶してもよい。例えば、記憶モジュール104は、図2のコンピューティングデバイス202の部分として、記憶システムにホスティングされるイメージセグメント208についての表示210及び使用カウンタ212を、記憶システムにホスティングされたイメージセグメントについてのリスト214内に記憶してもよい。
用語「イメージセグメント」とは、本明細書で使用されるとき、イメージの任意の部分を概して指す。用語「イメージ」とは、本明細書で使用されるとき、仮想化されたコンピューティングシステム及び/又はアプリケーションについての任意の表示を概して指し、この表示は、仮想化されたコンピューティングシステム及び/又はアプリケーションの新たなインスタンスを生成するために使用され得る。いくつかの実施形態では、イメージは、仮想マシンのバックアップを含んでもよい。いくつかの例では、仮想マシンは、WINDOWS(登録商標、以下同じ)及び/又はMAC OS等の完全なオペレーティングシステムを走らせるコンピューティングデバイスの仮想化を表してもよいオペレーティングシステム仮想マシンであってもよい。一実施形態では、イメージセグメントは、仮想マシンのバックアップの一部分を含んでもよい。
いくつかの例では、イメージセグメントは、2つ以上の完全なバックアップイメージの部分として使用されてもよい。例えば、図4に示すように、仮想マシンイメージ402は、イメージセグメント412、414、416、及び/又は418から構成されてもよい。一実施形態では、仮想マシンイメージ402は、WINDOWS XP HOME仮想マシンを表してもよい。いくつかの例では、仮想マシンイメージ406は、イメージセグメント412、414、416、及び/又は420から構成されてもよく、及び/又はWINDOWS XP PROFESSIONAL仮想マシンを表してもよい。WINDOWS XP HOMEとWINDOWS XP PROFESSIONALとは、共通の多くのコードを有し得るので、仮想マシンイメージ402と406とは、いくつかのイメージセグメント、例えばイメージセグメント412、414、及び/又は416を共有してもよい。いくつかの例では、仮想マシンイメージ408は、イメージセグメント412、414、422、及び/又は424から構成されてもよく、及び/又はWINDOWS VISTA仮想マシンを表してもよい。WINDOWS VISTAは、WINDOWS XPの2つのエディションのオペレーティングシステムが互いに共有するよりも少ないコードをそれらと共有するので、仮想マシンイメージ408は、仮想マシンイメージ402及び/又は406と共通するイメージセグメントをより少なく有してもよい。いくつかの実施形態では、仮想マシンイメージ410は、OS X仮想マシンを表してもよく、及び/又はイメージセグメント430、432、434、及び/又は436から構成されてもよい。OS Xは、WINDOWSとは異なるコードベース及びアプリケーションの組を有するので、仮想マシンイメージ410は、仮想マシンイメージ402、406、及び/又は408とコードセグメントを共有しないことがある。
用語「表示」とは、本明細書で使用されるとき、イメージセグメントを一意的に識別する任意のデータを概して指す。いくつかの実施形態では、表示は、イメージセグメントのハッシュ及び/又は部分的ハッシュであってもよい。別の実施形態において、表示は、名前、識別番号、及び/又はトークン等のイメージセグメントを表す文字列であってもよい。追加的に又は代替案として、表示は、イメージセグメントのフィンガープリントであってもよい。
用語「使用カウンタ」とは、本明細書で使用されるとき、イメージセグメントがプロビジョニングされた回数の経過を追跡する任意の手段を概して指す。いくつかの実施形態では、使用カウンタは、整数であってもよい。いくつかの実施形態では、使用カウンタは、何時それぞれの使用が生じたか、及び/又は何時より古い使用が満了したかを追跡してもよい。例えば、使用カウンタは、イメージセグメントが前週に12回だけ、及び/又は前月に100回だけプロビジョニングされたことを追跡してもよい。追加的に又は代替案として、使用カウンタは、イメージセグメントが別のイメージセグメントと一緒にプロビジョニングされた回数を追跡してもよい。例えば、使用カウンタは、あるイメージセグメントが1つの特定のイメージセグメントと一緒に40回だけプロビジョニングされ、そして、別の特定のイメージセグメントとは43回だけプロビジョニングされたことを追跡してもよい。
用語「記憶システム」とは、本明細書で使用されるとき、データを記憶するのに使用されるコンピューティングデバイス及び/又はアプリケーションの任意の集合を概して指す。いくつかの実施形態では、記憶システムは、リモートサーバの集合(すなわち、クラウドコンピューティング環境)にホスティングされてもよい。別の実施形態では、記憶システムは、データセンターにホスティングされてもよい。いくつかの例では、記憶システムは、イメージ及び/又はイメージセグメントを記憶してもよい。記憶システムの例として、VELOCITY CLOUD BACKUP、GOOGLE CLOUD STORAGE、AMAZON CLOUD STORAGE、及び/又はSYMANTEC NETBACKUPが挙げられ得る。
記憶モジュール104は、イメージセグメントについての表示及び使用カウンタを様々な態様で記憶してもよい。例えば、記憶モジュール104は、イメージセグメントのフィンガープリント、イメージセグメントについての使用カウンタ、及び/又はイメージセグメントの記憶場所をハッシュに記憶してもよい。いくつかの実施形態では、記憶モジュール104は、表示及び/又は使用カウンタをフラットファイルに記憶してもよい。別の実施形態では、記憶モジュール104は、表示及び/又は使用カウンタをデータベースに記憶してもよい。一実施形態では、記憶モジュール104は、表示及び使用カウンタのリストが最初に開始されるときに、複数のイメージセグメントを表す1組の表示と使用カウンタを受け取ってもよい。別の実施形態では、記憶モジュール104は、イメージセグメントがプロビジョニングされるときはいつでも、リストをチェックしてもよく、イメージセグメントについての表示及び使用カウンタがリスト内にまだ存在しない場合、イメージセグメントについての表示及び使用カウンタを追加してもよい。
ステップ304において、本明細書に記載されるシステムのうちの1つ若しくは2つ以上は、イメージセグメントが記憶システムからプロビジョニングされる度に、表示及び使用カウンタのリスト内のイメージセグメントについての使用カウンタの現在値を増加させてよい。例えば、増加モジュール106は、図2のコンピューティングデバイス202の部分として、イメージセグメント208が記憶システムからプロビジョニングされる度に、リスト214内のイメージセグメント208についての使用カウンタ212の現在値を増加させてもよい。
増加モジュール106は、様々な局面で使用カウンタを増加させてもよい。例えば、増加モジュール106は、プロビジョニングシステムの部分であってもよく、イメージセグメントがプロビジョニングシステムによってプロビジョニングされるときはいつでも、使用カウンタを増加させてもよい。別の実施形態では、増加モジュール106は、プロビジョニングシステムへの、及び/又はそれからのコールを監視してもよく、コールがイメージセグメントについての情報を含むときはいつでも、使用カウンタを増加させてもよい。追加的に又は代替案として、増加モジュール106は、記憶システムの部分であってもよく、イメージセグメントが記憶システムからプロビジョニングされるときはいつでも、使用カウンタを増加させてもよい。
ステップ306において、本明細書に記載されるシステムのうちの1つ若しくは2つ以上は、イメージセグメントについての使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定してもよい。例えば、判定モジュール108は、図2のコンピューティングデバイス202の部分として、イメージセグメント208についての使用カウンタ212の現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定してもよい。
判定モジュール108は、使用カウンタが様々な態様の所定閾値を満たしたことを判定してもよい。例えば、判定モジュール108は、使用カウンタが、100回使用又は1000回使用等の全体使用に対する静的閾値を上回ったことを判定してもよい。別の例では、判定モジュール108は、使用カウンタが最近の使用に対して閾値を上回ったことを判定してもよい。例えば、判定モジュール108は、イメージセグメントが最後の月に200回だけプロビジョニングされたことを判定してもよい。
一実施形態では、頻繁なイメージセグメントプロビジョニングのための所定閾値は、最も頻繁にプロビジョニングされたイメージセグメントの所定割合に基づいて計算されてもよい。例えば、判定モジュール108は、使用カウンタが使用カウンタの上位10%のうちの1つであること、したがって、イメージセグメントが10%の最も頻繁にプロビジョニングされたイメージセグメントのうちの1つであることを判定してもよい。
ステップ308において、本明細書に記載されるシステムのうちの1つ若しくは2つ以上は、イメージセグメントを、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングしてもよい。例えば、ホスティングモジュール110は、図2のコンピューティングデバイス202の部分とし、記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュ216にイメージセグメント208をホスティングしてもよい。
用語「キャッシュ」とは、本明細書で使用されるとき、効率的な取出しのためにデータを記憶するコンピューティングシステムの任意のメモリを概して指す。いくつかの実施形態では、ホスティングモジュール110は、キャッシュを使用して、頻繁にプロビジョニングされるイメージセグメントのコピーを記憶してもよい。別の実施形態では、ホスティングモジュール110は、キャッシュを使用して、頻繁にプロビジョニングされるイメージセグメントへのポインタを記憶してもよい。追加的に又は代替案として、キャッシュは、イメージセグメントに関する追加のデータ、例えば1つのイメージセグメントから別のイメージセグメントへのポインタを記憶してもよい。
いくつかの例では、ホスティングモジュール110は、イメージセグメントについての使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値をもはや満たしていないことを判定することに応じて、イメージセグメントをキャッシュから除去してもよい。例えば、判定モジュール108は、昨年の大部分の間の各月に少なくとも200回だけプロビジョニングされた後にキャッシュに置かれたイメージセグメントが、ここ2ヵ月間の各月に30回未満だけプロビジョニングされたことを判定してもよい。この例では、ホスティングモジュール110は、そのイメージセグメントのコピーをキャッシュから除去してもよい。別の例では、判定モジュール108は、イメージセグメントについての使用カウンタが、使用カウンタの上位10%のうちの1つではもはやなく、ホスティングモジュール110がイメージセグメントをキャッシュから除去してもよいことを判定してもよい。追加的に又は代替案として、ホスティングモジュール110は、キャッシュがそれ自体の記憶容量の限度に達しており、最も使用頻度が少ないイメージセグメントをキャッシュから除去してもよいことを判定してもよい。
ステップ310において、本明細書に記載されるシステムのうちの1つ若しくは2つ以上は、イメージセグメントをプロビジョニングすることの要求に応じて、イメージセグメントをキャッシュからプロビジョニングしてもよい。例えば、プロビジョニングモジュール112は、図2のコンピューティングデバイス202の部分として、イメージセグメント208をプロビジョニングすることの要求に応じて、イメージセグメント208をキャッシュ216からプロビジョニングしてもよい。
プロビジョニングモジュール112は、様々な局面でイメージセグメントをキャッシュからプロビジョニングしてもよい。例えば、プロビジョニングモジュール112は、プロビジョニングシステムの部分であってもよく、イメージセグメントに対する要求を受け取ってもよく、イメージセグメントがキャッシュにあることを判定してもよく、次に、イメージセグメントをキャッシュからプロビジョニングしてもよい。別の実施形態では、プロビジョニングモジュール112は、記憶システムの部分であってもよく、イメージセグメントをキャッシュからプロビジョニングすることの要求を受け取ってもよい。
いくつかの実施形態では、プロビジョニングモジュール112は、どのイメージセグメントがキャッシュにあるかについてのリストへのアクセスを有してもよい。これらの実施形態では、ホスティングモジュール110は、イメージセグメントのフィンガープリントをキャッシュにホスティングされたイメージセグメントのフィンガープリントのリスト内に追加してもよく、プロビジョニングモジュール112は、キャッシュにホスティングされたイメージセグメントのフィンガープリントのリスト内にイメージセグメントのフィンガープリントが存在することに基づいてイメージセグメントがキャッシュにホスティングされていることを判定することによって、イメージセグメントをキャッシュからプロビジョニングしてもよい。いくつかの例では、イメージセグメントが後にキャッシュから除去される場合、イメージセグメントのフィンガープリントもまた、キャッシュにあるイメージセグメントのフィンガープリントのリストから除去されてもよい。
いくつかの実施形態では、プロビジョニングモジュール112は、イメージセグメントに関する追加の情報へのアクセスを有してもよい。これらの実施形態において、ホスティングモジュール110は、イメージセグメントと一緒に頻繁にプロビジョニングされ、またキャッシュにホスティングされる少なくとも1つの追加のイメージセグメントの少なくとも1つの位置に関する情報を記憶してもよく、プロビジョニングモジュール112は、追加のイメージセグメントの位置に関する記憶された情報を使用することにより追加のイメージセグメントをキャッシュからまたプロビジョニングすることによって、イメージセグメントをキャッシュからプロビジョニングしてもよい。図5に示すように、記憶システム500は、記憶デバイス506、508、510、及び/又は522を含んでもよい。いくつかの例では、記憶デバイス506は、イメージセグメント512及び/又は520をホスティングしてもよく、記憶デバイス508は、イメージセグメント514をホスティングしてもよく、及び/又は、記憶デバイス510は、イメージセグメント516及び/又は518をホスティングしてもよい。
いくつかの例では、イメージセグメント512、514、516、518、及び/又は520は、頻繁に一緒にプロビジョニングされてもよい。いくつかの実施形態では、このことは、イメージセグメント512、514、516、518、及び/又は520が全て同一又は類似の仮想マシンイメージのセグメントであることが理由であってもよい。いくつかの例では、仮想マシンイメージが記憶システムに追加され、記憶システムから除去されるときに、時間の経過とともに、同一又は類似の仮想マシンイメージの部分であるイメージセグメントが、記憶デバイス全体にわたって散乱して終わってもよい。一例では、イメージセグメント512、514、516、518、及び/又は520は、記憶デバイス522のキャッシュ524にホスティングされるのに十分な程頻繁にプロビジョニングされてもよい。一実施形態では、キャッシュ524は、イメージセグメント512とイメージセグメント514との間等の、それぞれのイメージセグメントと次のイメージセグメントとの間のポインタを記憶することにより、より効率的にイメージセグメントを一緒にプロビジョニングしてもよい。いくつかの実施形態では、キャッシュ524、及び/又はキャッシュ524と通信する別のシステムは、それぞれのセグメントとそれぞれの別のセグメントとの間のリンクを記憶してもよい。
上記の方法300と関連して説明すると、本明細書に記載されるシステムは、記憶システムのイメージセグメントをそれぞれ表す1組のフィンガープリントと使用カウンタを生成してもよい。イメージセグメントがプロビジョニングされる度に、本明細書に記載されるシステムは、そのイメージセグメントについての使用カウンタを増加させてもよい。好適な訓練期間が経過した後に、本明細書に記載されるシステムは、使用カウンタに基づいて、最も頻繁にプロビジョニングされたイメージセグメントを判定してもよく、それらのイメージセグメントをキャッシュにホスティングしてもよい。本明細書に記載されるシステムはまた、どのイメージセグメント同士が一緒に頻繁にプロビジョニングされるかを追跡してもよく、それらのイメージセグメント同士の間の関係についての情報を記憶してもよい。頻繁に使用されるイメージセグメントをキャッシュにホスティングすることによって、本明細書に記載されるシステムは、最も一般的にプロビジョニングされる仮想マシンについてのプロビジョニング時間を減少させて、効率及びユーザ満足度を増加させてもよい。同一又は類似の仮想マシンの部分を表すイメージセグメント同士の間の関係を記憶することによって、本明細書に記載されるシステムは、断片的な記憶システムによって散乱したイメージセグメントを捜すことを回避してもよく、したがって、一般的に使用される仮想マシンをプロビジョニングするのに要する時間を更に低減できるかもしれない。
図6は、本明細書に記載及び/又は図示する実施形態のうちの1つ若しくは2つ以上を実装できる例示的なコンピューティングシステム610のブロック図である。例えば、コンピューティングシステム610の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書において説明されるステップのうちの1つ若しくは2つ以上(図3に例示するステップのうちの1つ若しくは2つ以上等)を実施してもよく、及び/又は実施するための手段であってもよい。コンピューティングシステム610の全て又は一部分はまた、本明細書に記載された及び/又は図示された任意の別のステップ、方法、又はプロセスを実施してもよく、及び/又は実施するための手段であってもよい。
コンピューティングシステム610は、コンピュータ可読命令を実行することができる任意の単一又はマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム610の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型計算システム、携帯用デバイス、又は任意の別のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム610は、少なくとも1つのプロセッサ614と、システムメモリ616と、を含んでもよい。
プロセッサ614は、データを処理すること、又は命令を解釈して実行することができる任意のタイプ又は形式の物理処理ユニット(例えば、ハードウェア実装中央処理ユニット)を概して表す。特定の実施形態では、プロセッサ614は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、プロセッサ614に、本明細書に記載及び/又は図示する例示的な実施形態のうちの1つ若しくは2つ以上の機能を実施させてもよい。
システムメモリ616は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は非揮発性記憶デバイス若しくは媒体を概して表す。システムメモリ616の例としては、限定することなく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態においてコンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616等)、及び非揮発性記憶デバイス(例えば、以下で詳細に説明するような1次記憶デバイス632等)の両方を含んでもよい。一例では、図1からのモジュール102のうちの1つ若しくは2つ以上は、システムメモリ616にロードされてもよい。
特定の実施形態では、例示的なコンピューティングシステム610はまた、プロセッサ614及びシステムメモリ616に加えて、1つ若しくは2つ以上の構成要素又は要素を含んでもよい。例えば、図6に示すように、コンピューティングシステム610は、メモリコントローラ618と、入力/出力(I/O)コントローラ620と、通信インターフェース622と、を含んでもよく、これらのそれぞれは、通信インフラストラクチャ612を介して相互接続されてもよい。通信インフラストラクチャ612は、コンピューティングデバイスの1つ若しくは2つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ612の例としては、限定することなく、通信バス(業界標準アーキテクチャ(ISA)、周辺構成要素相互接続(PCI)、PCIエクスプレス(PCIe)、又は類似のバス等)、及びネットワークが挙げられる。
メモリコントローラ618は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム610の1つ若しくは2つ以上の構成要素の間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。例えば、特定の実施形態においてメモリコントローラ618は、通信インフラストラクチャ612を介して、プロセッサ614、システムメモリ616、及びI/Oコントローラ620の間の通信を制御してもよい。
I/Oコントローラ620は、コンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態においてI/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、表示アダプタ626、入力インターフェース630、及び記憶インターフェース634等のコンピューティングシステム610の1つ若しくは2つ以上の要素の間のデータの転送を制御してもよく、又は容易にしてもよい。
通信インターフェース622は、例示的なコンピューティングシステム610と、1つ若しくは2つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態において通信インターフェース622は、コンピューティングシステム610と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にしてもよい。通信インターフェース622の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカード等)、無線ネットワークインターフェース(無線ネットワークインターフェースカード等)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネット等のネットワークへの直接的なリンクを介して、リモートサーバへの直接的な接続を提供してもよい。通信インターフェース622はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワーク等)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してもよい。
特定の実施形態では、通信インターフェース622はまた、外部バス又は通信チャネルを介して、コンピューティングシステム610と、1つ若しくは2つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース(SCSI)ホストアダプタ、ユニバーサルシリアルバス(USB)ホストアダプタ、米国電気電子技術者協会(IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(ATA)、パラレルATA(PATA)、シリアルATA(SATA)、及びエクスターナルSATA(eSATA)ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース622はまた、コンピューティングシステム610が分散又は遠隔コンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース622は、実行のために、遠隔デバイスから命令を受信するか、又は遠隔デバイスに命令を送信してもよい。
図6に示すように、コンピューティングシステム610はまた、表示アダプタ626を介して、通信インフラストラクチャ612に連結される少なくとも1つの表示デバイス624を含んでもよい。表示デバイス624は、表示アダプタ626によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ626は、表示デバイス624上に表示するために、通信インフラストラクチャ612から(又は当該技術分野において既知のように、フレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
図6に示すように、例示的なコンピューティングシステム610はまた、入力インターフェース630を介して、通信インフラストラクチャ612に連結される少なくとも1つの入力デバイス628を含んでもよい。入力デバイス628は、コンピュータ又はヒトのいずれかによって生成された入力を、例示的なコンピューティングシステム610に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス628の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
図6に示すように、例示的なコンピューティングシステム610はまた、記憶インターフェース634を介して、通信インフラストラクチャ612に連結される1次記憶デバイス632及びバックアップ記憶デバイス633を含んでもよい。記憶デバイス632及び633は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス632及び633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ等であり得る。記憶インターフェース634は、コンピューティングシステム610の記憶デバイス632及び633と、他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。
特定の実施形態では、記憶デバイス632及び633は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取るように、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス632及び633はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム610にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス632及び633は、ソフトウェア、データ、他のコンピュータ可読情報を読み取る、及び書き込むように構成されてもよい。記憶デバイス632及び633は、コンピューティングシステム610の部分であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
多くの他のデバイス又はサブシステムは、コンピューティングシステム610に接続されてもよい。逆に、図6に示す構成要素及びデバイスの全てが、本明細書において説明及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図6に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム610はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波等の伝送タイプ媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及びBLU−RAY(登録商標)ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)等の非一時的タイプ媒体、並びに他の分散システムが挙げられる。
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム610にロードされてもよい。次いで、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全て又は一部分は、システムメモリ616及び/又は記憶デバイス632及び633の種々の部分に記憶されてもよい。プロセッサ614によって実行されるとき、コンピューティングシステム610にロードされたコンピュータプログラムは、本明細書において説明及び/又は図示する例示的な実施形態のうちの1つ若しくは2つ以上の機能をプロセッサ614に実施させてもよく、及び/又はそれらを実施するための手段であってもよい。追加的に又は代替案として、本明細書において説明及び/又は図示される例示的な実施形態のうちの1つ若しくは2つ以上は、ファームウェア及び/又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム610は、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成されてもよい。
図7は、クライアントシステム710、720、及び730、並びにサーバ740及び745がネットワーク750に連結されてもよい例示的なネットワークアーキテクチャ700のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ700の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書において開示される工程のうちの1つ若しくは2つ以上(図3に例示する工程のうちの1つ若しくは2つ以上等)を実施してもよく、及び/又は実施するための手段であってもよい。ネットワークアーキテクチャ700の全て又は一部分はまた、本開示において記載された他の工程及び機能を実施するために使用されてもよく、及び/又は実施するための手段であってもよい。
クライアントシステム710、720、及び730は、図6の例示的なコンピューティングシステム610等の任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ740及び745は、種々のデータベースサービスを提供するように、及び/又は特定のソフトウェアアプリケーションを走らせるように構成されたアプリケーションサーバ又はデータベースサーバ等のコンピューティングデバイス又はシステムを概して表す。ネットワーク750は、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム710、720、及び/又は730、並びに/あるいはサーバ740及び/又は745は、図1からのシステム100の全て又は一部分を含んでもよい。
図7に示すように、1つ若しくは2つ以上の記憶デバイス760(1)〜(N)は、サーバ740に直接取設されてもよい。同様に、1つ若しくは2つ以上の記憶デバイス770(1)〜(N)は、サーバ745に直接取設されてもよい。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。特定の実施形態では、記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、ネットワークファイルシステム(NFS)、サーバメッセージブロック(SMB)、又は共通インターネットファイルシステム(CIFS)等の種々のプロトコルを使用して、サーバ740及び745と通信するように構成されたネットワーク接続型記憶(NAS)デバイスを表してもよい。
サーバ740及び745はまた、ストレージエリアネットワーク(SAN)ファブリック780に接続されてもよい。SANファブリック780は、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。SANファブリック780は、サーバ740及び745と、複数の記憶デバイス790(1)〜(N)及び/又は知的記憶アレイ795との間の通信を容易にしてもよい。SANファブリック780はまた、デバイス790(1)〜(N)及びアレイ795が、クライアントシステム710、720、及び730にローカルに取設されたデバイスとして見えるような態様で、ネットワーク750並びにサーバ740及び745を介して、クライアントシステム710、720、及び730と、記憶デバイス790(1)〜(N)及び/又は知的記憶アレイ795との間の通信を容易にしてもよい。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)と同様に、記憶デバイス790(1)〜(N)及び知的記憶アレイ795は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
特定の実施形態では、図6の例示的なコンピューティングシステム610を参照すると、図6の通信インターフェース622等の通信インターフェースは、それぞれのクライアントシステム710、720、及び730と、ネットワーク750との間の接続性を提供するために使用されてもよい。クライアントシステム710、720、及び730は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ740又は745上の情報にアクセスすることが可能であってもよい。かかるソフトウェアは、クライアントシステム710、720、及び730が、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、又は知的記憶アレイ795によってホストされるデータにアクセスすることを可能にしてもよい。図7は、データを交換するためのネットワーク(インターネット等)の使用を描写するが、本明細書において説明及び/又は例示する実施形態は、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
少なくとも1つの実施形態において、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上の全て又は一部分は、コンピュータプログラムとしてコード化されてもよく、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、知的記憶アレイ795、又はこれらの任意の組み合わせにロードされ、これらによって実行されてもよい。本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ740内に記憶され、サーバ745によって実行され、ネットワーク750を通じてクライアントシステム710、720、及び730に分散されてもよい。
上記で詳述したように、コンピューティングシステム610及び/又はネットワークアーキテクチャ700の1つ若しくは2つ以上の構成要素は、単独又は他の要素との組合せのいずれかで、頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするための例示的な方法の1つ若しくは2つ以上のステップを実施してもよく、及び/又は実施するため手段であってもよい。
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び/又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、及び/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
いくつかの例では、図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
種々の実施形態において、図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるソフトウェアモジュールは、本明細書において説明される機能のうちの1つ若しくは2つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書において説明されるソフトウェアモジュールのうちの1つ若しくは2つ以上は、2つ若しくは3つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの1つ若しくは2つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
種々の実施形態によれば、図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び/又はデータは、仮想マシン内に存在し得る、及び/又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。追加的に又は代替案として、本明細書において説明されるモジュール及び/又はデータは、仮想化層内に存在し得る、及び/又はそこで実行し得る。本明細書において使用される際、「仮想化層」という用語は、概して、オペレーティングシステム環境に重なる、及び/又はそれから抽象化される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び/又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
一部の実施例において、図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)能力などを制限する、制限されたプラットフォームを含む、1つ若しくは2つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
加えて、図1の例示的なシステム100の全て又は一部分は、情報管理のための1つ若しくは2つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び/又はそれらによって消費されるデータを生成し得る。本明細書において使用される際、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
いくつかの実施形態では、図1の例示的なシステム100の全て又は一部分は、情報セキュリティのための1つ若しくは2つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び/又はそれらと通信し得る。本明細書において使用される際、「情報セキュリティ」という用語は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
いくつかの例によれば、図1の例示的なシステム100の全て又は一部分は、エンドポイントセキュリティのための1つ若しくは2つ以上のシステムの一部分を表し得る、それらと通信し得る、及び/又はそれらから保護を受け得る。本明細書において使用される際、「エンドポイントセキュリティ」という用語は、不法及び/又は違法な使用、アクセス、及び/又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
本明細書において説明及び/又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び/又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び/又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの1つ若しくは2つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ若しくは2つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書において開示される例示的な実施形態のうちの1つ若しくは2つ以上を実施するように、コンピューティングシステムを構成し得る。
加えて、本明細書において説明されるモジュールのうちの1つ若しくは2つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書で列挙したモジュールのうちの1つ若しくは2つ以上は、変換されるべきイメージセグメント使用データを受け取ることと、イメージセグメント使用データをカウンタに変換することと、変換の結果をカウンタのリストに出力することと、変換の結果を使用してイメージセグメント利用を追跡することと、変換の結果をリストに記憶することと、を行ってもよい。追加的に又は代替案として、本明細書において列挙されるモジュールのうちの1つ若しくは2つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び/又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理コンピューティングデバイスのプロセッサ、揮発性メモリ、非揮発性メモリ、及び/又は任意の他の部分を1つの形式からもう1つの形式に変換してもよい。
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
別途記載されない限り、「〜に接続される(connected to)」及び「〜に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、直接的及び間接的(即ち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。

Claims (20)

  1. 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
    記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを、前記記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶することと、
    前記イメージセグメントが前記記憶システムからプロビジョニングされる度に、前記表示及び使用カウンタのリスト内の前記イメージセグメントについての前記使用カウンタの現在値を増加させることと、
    前記イメージセグメントについての前記使用カウンタの現在値が頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定することと、
    前記イメージセグメントを、前記記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングすることと、
    前記イメージセグメントをプロビジョニングすることの要求に応じて、前記イメージセグメントを前記キャッシュからプロビジョニングすることと、
    を含む、コンピュータ実装方法。
  2. 前記イメージセグメントを前記キャッシュにホスティングすることは、前記イメージセグメントのフィンガープリントを、前記キャッシュにホスティングされたイメージセグメントのフィンガープリントのリストに追加することを含み、
    前記イメージセグメントを前記キャッシュからプロビジョニングすることは、前記キャッシュにホスティングされた前記イメージセグメントのフィンガープリントのリスト内に前記イメージセグメントのフィンガープリントが存在することに基づいて、前記イメージセグメントが前記キャッシュにホスティングされることを判定することを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記頻繁なイメージセグメントプロビジョニングについての所定閾値は、最も頻繁にプロビジョニングされたイメージセグメントの所定割合に基づいて計算される、請求項1に記載のコンピュータ実装方法。
  4. 前記イメージセグメントについての前記使用カウンタの現在値が、前記頻繁なイメージセグメントプロビジョニングについての所定閾値をもはや満たしていないことを判定することに応じて、前記イメージセグメントを前記キャッシュから除去することを更に含む、請求項3に記載のコンピュータ実装方法。
  5. 前記イメージセグメントを前記キャッシュにホスティングすることは、前記イメージセグメントと一緒に頻繁にプロビジョニングされ、また、前記キャッシュにホスティングされる少なくとも1つの追加のイメージセグメントの少なくとも1つの位置に関する情報を記憶することを含む、請求項1に記載のコンピュータ実装方法。
  6. 前記イメージセグメントを前記キャッシュからプロビジョニングすることは、前記追加のイメージセグメントの位置に関する前記記憶された情報を使用することによって、前記追加のイメージセグメントを前記キャッシュから効率的にプロビジョニングすることを含む、請求項5に記載のコンピュータ実装方法。
  7. 前記イメージセグメントは、仮想マシンのバックアップの一部分を含む、請求項1に記載のコンピュータ実装方法。
  8. 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステムであって、前記システムは、
    メモリに記憶された記憶モジュールであって、記憶システムにホスティングされるについての表示及び使用カウンタを、イメージセグメント前記記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶する記憶モジュールと、
    メモリに記憶された増加モジュールであって、前記イメージセグメントが前記記憶システムからプロビジョニングされる度に、前記表示及び使用カウンタのリスト内の前記イメージセグメントについての前記使用カウンタの現在値を増加させる増加モジュールと、
    メモリに記憶された判定モジュールであって、前記イメージセグメントについての前記使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定する判定モジュールと、
    メモリに記憶されたホスティングモジュールであって、前記イメージセグメントを、前記記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングするホスティングモジュールと、
    メモリに記憶されたプロビジョニングモジュールであって、前記イメージセグメントをプロビジョニングすることの要求に応じて、前記イメージセグメントを前記キャッシュからプロビジョニングするプロビジョニングモジュールと、
    前記記憶モジュール、前記増加モジュール、前記判定モジュール、前記ホスティングモジュール、及び前記プロビジョニングモジュールを実行させるように構成された少なくとも1つの物理プロセッサと、
    を備える、システム。
  9. 前記ホスティングモジュールは、前記イメージセグメントのフィンガープリントを、前記キャッシュにホスティングされたイメージセグメントのフィンガープリントのリストに追加することによって、前記イメージセグメントを前記キャッシュにホスティングし、
    前記プロビジョニングモジュールは、前記キャッシュにホスティングされた前記イメージセグメントのフィンガープリントのリスト内に前記イメージセグメントのフィンガープリントが存在することに基づいて、前記イメージセグメントが前記キャッシュにホスティングされることを判定することよって、前記イメージセグメントを前記キャッシュからプロビジョニングする、
    請求項8に記載のシステム。
  10. 前記頻繁なイメージセグメントプロビジョニングについての所定閾値は、最も頻繁にプロビジョニングされたイメージセグメントの所定割合に基づいて計算される、請求項8に記載のシステム。
  11. 前記ホスティングモジュールは、前記イメージセグメントについての前記使用カウンタの現在値が、前記頻繁なイメージセグメントプロビジョニングについての所定閾値をもはや満たしていないことを判定することに応じて、前記イメージセグメントを前記キャッシュから除去する、請求項10に記載のシステム。
  12. 前記ホスティングモジュールは、前記イメージセグメントと一緒に頻繁にプロビジョニングされ、また、前記キャッシュにホスティングされる少なくとも1つの追加のイメージセグメントの少なくとも1つの位置に関する情報を記憶することによって、前記イメージセグメントを前記キャッシュにホスティングする、請求項8に記載のシステム。
  13. 前記プロビジョニングモジュールは、前記追加のイメージセグメントの位置に関する前記記憶された情報を使用することにより前記追加のイメージセグメントを前記キャッシュから効率的にプロビジョニングすることによって、前記イメージセグメントを前記キャッシュからプロビジョニングする、請求項12に記載のシステム。
  14. 前記イメージセグメントは、仮想マシンのバックアップの一部分を含む、請求項8に記載のシステム。
  15. 1つ若しくは2つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
    記憶システムにホスティングされるイメージセグメントについての表示及び使用カウンタを、前記記憶システムにホスティングされたイメージセグメントについての表示及び使用カウンタのリスト内に記憶することと、
    前記イメージセグメントが前記記憶システムからプロビジョニングされる度に、前記表示及び使用カウンタのリスト内の前記イメージセグメントについての前記使用カウンタの現在値を増加させることと、
    前記イメージセグメントについての前記使用カウンタの現在値が、頻繁なイメージセグメントプロビジョニングについての所定閾値を満たしたことを判定することと、
    前記イメージセグメントを、前記記憶システムが可能にするよりも迅速なプロビジョニングを可能にするキャッシュにホスティングすることと、
    前記イメージセグメントをプロビジョニングすることの要求に応じて、前記イメージセグメントを前記キャッシュからプロビジョニングすることと、を行わせる、非一過性コンピュータ可読媒体。
  16. 前記1つ若しくは2つ以上のコンピュータ可読命令は、前記コンピューティングデバイスに、
    前記イメージセグメントのフィンガープリントを、前記キャッシュにホスティングされたイメージセグメントのフィンガープリントのリストに追加することによって、前記イメージセグメントを前記キャッシュにホスティングすることと、
    前記キャッシュにホスティングされた前記イメージセグメントのフィンガープリントのリスト内に前記イメージセグメントのフィンガープリントが存在することに基づいて、前記イメージセグメントが前記キャッシュにホスティングされることを判定することによって、前記イメージセグメントを前記キャッシュからプロビジョニングすることと、
    を行わせる、請求項15に記載の非一過性コンピュータ可読媒体。
  17. 前記頻繁なイメージセグメントプロビジョニングについての所定閾値は、最も頻繁にプロビジョニングされたイメージセグメントの所定割合に基づいて計算される、請求項15に記載の非一過性コンピュータ可読媒体。
  18. 前記1つ若しくは2つ以上のコンピュータ可読命令は、前記イメージセグメントについての前記使用カウンタの現在値が、前記頻繁なイメージセグメントプロビジョニングについての所定閾値をもはや満たしていないことを判定することに応じて、前記コンピューティングデバイスに前記イメージセグメントを前記キャッシュから除去させる、請求項17に記載の非一過性のコンピュータ可読媒体。
  19. 前記1つ若しくは2つ以上のコンピュータ可読命令は、前記イメージセグメントと一緒に頻繁にプロビジョニングされ、また、前記キャッシュにホスティングされる少なくとも1つの追加のイメージセグメントの少なくとも1つの位置に関する情報を記憶することによって、前記コンピューティングデバイスに前記イメージセグメントを前記キャッシュにホスティングさせる、請求項15に記載の非一過性コンピュータ可読媒体。
  20. 前記1つ若しくは2つ以上のコンピュータ可読命令は、前記追加のイメージセグメントの位置に関する前記記憶された情報を使用することにより前記追加のイメージセグメントを前記キャッシュから効率的にプロビジョニングすることによって、前記コンピューティングデバイスに前記イメージセグメントを前記キャッシュからプロビジョニングさせる、請求項19に記載の非一過性のコンピュータ可読媒体。
JP2018512624A 2015-09-17 2016-09-09 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法 Active JP6677803B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/856,586 US9983796B2 (en) 2015-09-17 2015-09-17 Systems and methods for provisioning frequently used image segments from caches
US14/856,586 2015-09-17
PCT/US2016/051170 WO2017048603A1 (en) 2015-09-17 2016-09-09 Systems and methods for provisioning frequently used image segments from caches

Publications (2)

Publication Number Publication Date
JP2018532184A true JP2018532184A (ja) 2018-11-01
JP6677803B2 JP6677803B2 (ja) 2020-04-08

Family

ID=57113678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018512624A Active JP6677803B2 (ja) 2015-09-17 2016-09-09 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法

Country Status (5)

Country Link
US (1) US9983796B2 (ja)
EP (1) EP3350715B1 (ja)
JP (1) JP6677803B2 (ja)
CN (1) CN108139868A (ja)
WO (1) WO2017048603A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089135B2 (en) 2016-08-09 2018-10-02 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template
US11599424B2 (en) 2019-08-15 2023-03-07 Cisco Technology, Inc. Dynamic hardware resource shadowing and memory error protection
US11989586B1 (en) 2021-06-30 2024-05-21 Amazon Technologies, Inc. Scaling up computing resource allocations for execution of containerized applications
US11995466B1 (en) 2021-06-30 2024-05-28 Amazon Technologies, Inc. Scaling down computing resource allocations for execution of containerized applications

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217595A (ja) * 2008-03-11 2009-09-24 Nec Corp ストレージエリアネットワーク、コンピュータ、ストレージ装置、ipアドレス競合回避方法およびプログラム
US20120209814A1 (en) * 2011-02-11 2012-08-16 Xianbo Zhang Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
JP2012226586A (ja) * 2011-04-20 2012-11-15 Nec Corp リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法
JP2013065259A (ja) * 2011-09-20 2013-04-11 Hitachi Solutions Ltd データ転送システム、転送元システム及び転送先システム並びにプログラム
JP2013088931A (ja) * 2011-10-14 2013-05-13 Hitachi Solutions Ltd 検索装置、文書管理方法、及び文書検索システム
US20140050407A1 (en) * 2012-08-17 2014-02-20 International Business Machines Corporation Virtual Machine Image Access De-Duplication
JP2014038364A (ja) * 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
JP2014085826A (ja) * 2012-10-23 2014-05-12 Fujitsu Ltd キャッシュ領域管理プログラム及び方法、並びに情報処理装置
JP2015143908A (ja) * 2014-01-31 2015-08-06 国立大学法人 東京大学 キャッシュ装置及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US6338115B1 (en) 1999-02-16 2002-01-08 International Business Machines Corporation Advanced read cache management
US7051038B1 (en) * 2002-06-28 2006-05-23 Microsoft Corporation Method and system for a reporting information services architecture
US7788206B2 (en) * 2007-04-30 2010-08-31 Lsi Corporation State machine compression using multi-character state transition instructions
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8984503B2 (en) * 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
US8914581B2 (en) * 2010-05-20 2014-12-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accessing cache memory
US8868839B1 (en) * 2011-04-07 2014-10-21 Symantec Corporation Systems and methods for caching data blocks associated with frequently accessed files
US9195658B2 (en) * 2012-12-12 2015-11-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing direct attached cache and remote shared cache
US9361028B2 (en) * 2013-05-07 2016-06-07 Veritas Technologies, LLC Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9710173B2 (en) * 2014-05-20 2017-07-18 Micron Technology, Inc. Read cache memory with DRAM class promotion
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置
US10067981B2 (en) * 2014-11-21 2018-09-04 Sap Se Intelligent memory block replacement

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217595A (ja) * 2008-03-11 2009-09-24 Nec Corp ストレージエリアネットワーク、コンピュータ、ストレージ装置、ipアドレス競合回避方法およびプログラム
JP2014038364A (ja) * 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US20120209814A1 (en) * 2011-02-11 2012-08-16 Xianbo Zhang Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
JP2012226586A (ja) * 2011-04-20 2012-11-15 Nec Corp リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法
JP2013065259A (ja) * 2011-09-20 2013-04-11 Hitachi Solutions Ltd データ転送システム、転送元システム及び転送先システム並びにプログラム
JP2013088931A (ja) * 2011-10-14 2013-05-13 Hitachi Solutions Ltd 検索装置、文書管理方法、及び文書検索システム
US20140050407A1 (en) * 2012-08-17 2014-02-20 International Business Machines Corporation Virtual Machine Image Access De-Duplication
JP2014085826A (ja) * 2012-10-23 2014-05-12 Fujitsu Ltd キャッシュ領域管理プログラム及び方法、並びに情報処理装置
JP2015143908A (ja) * 2014-01-31 2015-08-06 国立大学法人 東京大学 キャッシュ装置及びプログラム

Also Published As

Publication number Publication date
EP3350715A1 (en) 2018-07-25
JP6677803B2 (ja) 2020-04-08
US9983796B2 (en) 2018-05-29
CN108139868A (zh) 2018-06-08
WO2017048603A1 (en) 2017-03-23
US20170083446A1 (en) 2017-03-23
EP3350715B1 (en) 2021-06-23

Similar Documents

Publication Publication Date Title
US10079850B1 (en) Systems and methods for provisioning cyber security simulation exercises
JP6589054B2 (ja) データを不透明データバックアップストリームから復元するためのシステム及び方法
JP6205062B2 (ja) サブシステム出力信号に変動を導入してデバイスフィンガープリンティングを防止するためのシステム及び方法
JP6596596B2 (ja) ドメイン名サービストラフィック分析を介してマルウェア感染を検出するためのシステム及び方法
US9256612B1 (en) Systems and methods for managing references in deduplicating data systems
US9626120B1 (en) Systems and methods for dynamically adjusting batch request sizes
EP3022647B1 (en) Systems and methods for instantly restoring virtual machines in high input/output load environments
US9298561B1 (en) Systems and methods for prioritizing restoration speed with deduplicated backups
US10061683B2 (en) Systems and methods for collecting error data to troubleshoot product errors
JP6677803B2 (ja) 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法
US11061603B1 (en) Systems and methods for switching replication modes in a volume replication system
US9710386B1 (en) Systems and methods for prefetching subsequent data segments in response to determining that requests for data originate from a sequential-access computing job
US11449637B1 (en) Systems and methods for providing web tracking transparency to protect user data privacy
JP7121146B2 (ja) データ漏洩を識別するためのシステム及び方法
US9753810B1 (en) Systems and methods for backing up virtual machines deployed in virtual storage area networks
US9203850B1 (en) Systems and methods for detecting private browsing mode
US11461462B1 (en) Systems and methods for producing adjustments to malware-detecting services
US9830230B1 (en) Systems and methods for storing updated storage stack summaries
US11436372B1 (en) Systems and methods for protecting user privacy
US11100226B1 (en) Systems and methods for identifying a malicious user interface
US9852200B1 (en) Systems and methods for restoring data files
US10616214B1 (en) Systems and methods for preventing loss of possession factors
US10176055B1 (en) Systems and methods for generating full backups of applications
US9800647B1 (en) Systems and methods for provisioning computing systems with applications
US10869089B1 (en) Systems and methods for preventing display of blocked content

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180308

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200313

R150 Certificate of patent or registration of utility model

Ref document number: 6677803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250