JP2013540314A - スナップショットアーカイブの柔軟な格納および取り出しを提供するためのシステムおよび方法 - Google Patents

スナップショットアーカイブの柔軟な格納および取り出しを提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2013540314A
JP2013540314A JP2013531617A JP2013531617A JP2013540314A JP 2013540314 A JP2013540314 A JP 2013540314A JP 2013531617 A JP2013531617 A JP 2013531617A JP 2013531617 A JP2013531617 A JP 2013531617A JP 2013540314 A JP2013540314 A JP 2013540314A
Authority
JP
Japan
Prior art keywords
storage
block
snapshot
backup
copy
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
JP2013531617A
Other languages
English (en)
Other versions
JP5760088B2 (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 JP2013540314A publication Critical patent/JP2013540314A/ja
Application granted granted Critical
Publication of JP5760088B2 publication Critical patent/JP5760088B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ブロックストレージサービスを実現するためにコンピュータ群が構成される。ブロックストレージサービスは、個別のユーザのセットの個別のコンピューティングインスタンスのセットからのデータを格納するためのブロックレベルストレージを含む。インターフェースは、個別のユーザのセットが、これらの個別のユーザ用のブロックレベルストレージに格納されている各データのバックアップコピーを格納するそれぞれの格納先を指定できるように構成される。それぞれの格納先のうちの少なくともいくつかは、互いに遠く離れた場所にある異なるストレージシステムのためのものである。ブロックレベルストレージに格納されているデータのバックアップコピーを、個別のユーザのセットの個別のコンピューティングインスタンスのセットによって作成するためのバックアップコピー機能が提供される。このバックアップコピーは、複数の個別のユーザのそれぞれがインターフェースを介して指定した種々の格納先の場所に格納される。
【選択図】図5

Description

近年、ハードウェアリソース、ソフトウェア、情報ストレージの仮想化をネットワーク上でダイナミックに共有する技術の変革によって、信頼性、スケーラビリティ、およびコスト効率性が増した。より詳細には、この仮想化の出現によって得られた仮想コンピューティングリソースをオンデマンドで提供する機能により、リソース処理を行う消費者が、コンピューティングの必要性を認識した直後にコンピューティング費用を柔軟に構築できるようになった。このような仮想化により、顧客は、これまでのように準備サイクル中に固定ハードウェアを購入またはリースし、このハードウェアの製造および展開配置の遅延やコストに左右されるのではなく、プロセッササイクルおよび関連のリソースをオンデマンドで瞬時に購入できるようになった。また、ユーザは、コンピューティングの可用性を決定する上で将来の需要の予測の正確性に頼るのではなく、むしろ「必要な時に即」というベースでコンピューティングリソースの使用を購入できる。
しかし、コンピューティングリソースをオンデマンドで提供する仮想化された環境では、バックアップオペレーションなどに見られるように、仮想化されたコンピューティングシステムとの間でのデータのインポートおよびエクスポートに伴う難点と非柔軟性が依然として残る。大きなデータセグメントのインポートおよびエクスポートに対する現行の解決策は手間のかかる回避策ばかりであり、これらは時間がかかるため苛立たしく、また信頼性の低いものであることがわかっている。コンピューティングパワーへのアクセスがより柔軟になった一方で、データをコンピューティングプロセスへ移動させ、コンピューティングプロセスからエクスポートするための方法は満足できる状態に進化していない。
仮想化されたコンピューティングを実現するように構成されるシステムの例示的な実施形態を示す。 複数のコンピューティングシステムがプログラムを実行し、ストレージにアクセスする例示的な実施形態のネットワーク図を示す。 一実施形態に従ってストレージ操作を行うブロックストレージサービスを示す。 一実施形態に従ってボリュームのバックアップコピーを作成および格納するプロセスステップの高レベルフローチャートである。 一実施形態に従ってボリュームのバックアップコピーを作成および格納するプロセスステップの高レベルフローチャートである。 一実施形態に従って、バックアップコピーを取り出し、ボリュームを再作成するまたはインポートするプロセスステップの高レベルフローチャートである。 一実施形態に従ってボリュームスナップショットの一連のバックアップコピーを格納するための一連のストレージの対話を示す高レベルブロック図である。 一実施形態に従ってボリュームの各部分の一連のバックアップコピーを格納するための一連のストレージの対話を示す高レベルブロック図である。 一実施形態に従って一連のボリュームスナップショットを復元するための一連のストレージの対話を示す高レベルブロック図である。 一実施形態に従って部分的なバックアップコピーからボリュームを復元するための一連のストレージの対話を示す高レベルブロック図である。 一実施形態の実現に適したコンピューティングシステム構成要素の構成を示す高レベルブロック線図である。
本明細書で述べる技術は様々な改良および代替形を許容し得るが、その特定の実施形態が例示により図面に示され、本明細書中で詳細に説明される。しかし、図面および詳細な説明は、本開示を開示された特定の形態に限定することを意図するものではないことを理解されたい。むしろ、添付の特許請求の範囲によって定義される本開示の趣旨および範囲に含まれる全ての改良形態、均等物、および代替形態を網羅するものである。
序文
クラウドコンピューティングサービスまたは他の仮想化されたコンピューティングに伴うオンデマンドストレージを提供する環境においては、ブロックストレージサービスが、個別ユーザのセット用の個別のコンピューティングインスタンスのセットにブロックレベルストレージを提供する。コンピューティングインスタンスはブロックレベルストレージと共に、または相互に常駐している必要はない。実施形態は、個別ユーザのセット用の個別のコンピューティングインスタンスのセットがブロックレベルストレージに格納したデータのバックアップコピーを作成するためのバックアップコピー機能と、バックアップコピーを個別ユーザのセットのそれぞれが指定した種々の格納先の場所に格納するためのストレージ機能との両方を提供する。
したがって、実施形態は、クラウドコンピューティングサービスの個別のコンピューティングインスタンスが使用しているブロックレベルストレージからのデータエクスポートに伴う従来の難点を軽減する上で役立つ。また本発明の実施形態によれば、データのバックアップコピーをブロックレベルストレージから複数の格納先へ送る柔軟性が得られる。いくつかの実施形態において、複数の格納場所はブロックレベルストレージおよび互いの格納場所から遠く離れた場所にある。一実施形態において、ブロックストレージサービスは、個別ユーザのセットのうちの特定の1人から、この個別ユーザのセットのうちの特定の1人のブロックレベルストレージに格納されているデータの少なくとも一部分のバックアップコピーを格納する特定の格納先が指定された入力を受信する。ブロックストレージサービスは、複数の個別ユーザのセットのうちこの特定の1人のブロックレベルストレージに格納されているデータの一部分のバックアップコピーを作成し、この個別ユーザのセットのうちこの特定の1人のブロックレベルストレージに格納されているデータの一部分のバックアップコピーを特定の格納先に格納する。
同様に、ブロックストレージサービスは、上記個別ユーザのセットのうちの別の1人から、個別ユーザのセットのうちのこの別の1人のブロックレベルストレージに格納されているデータの一部分のバックアップコピーを格納するための、先の1人のものとは異なる格納先を指定する入力を受信する。ブロックストレージサービスはこれを受信すると、この個別ユーザのセットのうちのこの別の1人のブロックレベルストレージに格納されているデータの一部分のバックアップコピーを作成し、この個別ユーザのセットのうちのこの別の1人のブロックレベルストレージに格納されているデータの一部分のバックアップコピーを上記の異なる格納先に格納する。いくつかの実施形態において、特定の格納先およびこれと異なる格納先は、互いに遠く離れた場所に存在する異なった格納システムである。
仮想化されたコンピューティングの概要
概して、仮想化されたコンピューティング(「仮想コンピューティング」または「仮想化」とも呼ばれることがある)とは、ソフトウェアからは、複数の独立した「仮想」コンピュータシステムと同様に動作しているように見える物理コンピュータシステムを構成する技術を指すものであってよい。仮想化されたコンピューティングは、従来のマルチタスクオペレーティングシステム(OS)とは区別され得る。典型的なOSは、その内部において種々のプロセスを互いに干渉し合うことなく実行させることが可能な多数の保護されたメモリスペースと、ならびにこれらプロセスの実行を管理し、システムリソースへのアクセスを調整する共通の特権ルーチンの組とを提供する。これに対し、仮想化されたコンピューティング技術を採用して複数の仮想マシンを構成すれば、仮想マシンの各々がそれぞれ異なった専用のOSを実行できるようになる。これにより、これらマシンへのアクセスをネットワーク上の異なるユーザ間で分散できるようになる。
仮想マシンの構成と演算を、仮想マシンを実行している下層の物理ハードウェアから分離すれば、仮想化されたコンピューティングによって、ユーザは定義された仕様に従って仮想マシンを構成し、先に構成された仮想マシンを、下層の物理ハードウェアの構成を何ら変更することなく後に再現できるようになる。以下に述べる実施形態を用いることで、インポート可能なスナップショットの他の使用の中でもとりわけ、仮想マシンの使用容量を再現するために使用するスナップショットイメージをインポートできるようになる。
図1に、仮想化されたコンピューティングの実現のために構成できるシステムの一例を示す。図示した実施形態では、物理システム100はシステムメモリ120に接続したプロセッサ110を含む。例えば、プロセッサ110は、x86/x64 ISA、PowerPC(登録商標)ISA、SPARC(登録商標)ISA、ARM(登録商標)ISA、もしくはあらゆる他の適切なISAなどの、特定の命令セットアーキテクチャ(ISA)が定義した命令を実行するように構成されたあらゆるタイプのマイクロプロセッサに対応可能である。システムメモリ120は、プロセッサ110が実行できるデータおよび命令を格納するよう構成されたあらゆるタイプのストレージデバイスに対応できる。例えば、システムメモリ120は多様なランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、不揮発メモリ(例えばフラッシュメモリ)、磁気メモリ、または他のあらゆる適切なタイプのメモリのうちのいずれを含んでいてもよい。
システムメモリ120は、プロセッサ110または別のプロセッサで実行されると、オペレーティングシステム150および仮想化モジュール160を実現するべく構成された命令およびデータを格納するように構成されてよい。概して、オペレーティングシステム150はあらゆる適切なタイプのオペレーティングシステム、例えば或るバージョンのMicrosoft Windows(登録商標)、Apple MacOS(登録商標)、Unix(登録商標)、Linux(登録商標)、または別のオペレーティングシステムであってよい。典型的に、オペレーティングシステム150は、例えばメモリ、大容量ストレージデバイス、通信デバイス、システムサービスなどのような、コンピュータシステムが提供するアプリケーションとリソース間をつなぐインターフェースとして機能するように構成できる。
仮想化モジュール160は、複数の異なる仮想マシンが動作可能な環境を実現するように構成できる。仮想化モジュール160、ハイパーバイザあるいは仮想マシンモニタとも称される。図示の実施形態において、仮想化モジュール160はオペレーティングシステム150からの個別のソフトウェア層として実現することができ、この構成は「ホステッドハイパーバイザ」と称される。他の実施形態において、仮想化モジュール160は個別層内で実行されるのではなく、「ネイティブハイパーバイザ」と呼ばれる構成のオペレーティングシステム150に統合される。仮想化モジュール160のホステッドハイパーバイザ実現の数例には、VMware ESX/ESXi(登録商標)、VMware Fusion(登録商標)、Microsoft VirtualPC(登録商標)、VirtualBox(登録商標)およびParallels Desktop(登録商標)がある。ネイティブハイパーバイザ実現のいくつかの例には、Xen、VMware Infrastructure(登録商標)、Logical Domains Hypervisor(登録商標)、およびParallels Server(登録商標)がある。他の例も実施可能であり、予測される。
図示の実施形態において、仮想化モジュール160は、多数の仮想モジュール180a〜n、ならびに仮想ネットワーク175、仮想ストレージ165、ウェブサービスインターフェース190を実現するように構成される。これらエレメントの各々の例について順に述べてゆくが、その個数と構成は変更できる点に留意されたい。様々な実施形態において、様々なエレメントは代替用語を用いて称することができる。例えば、個々の仮想マシン180は「インスタンス」に相当し、様々な仮想マシン180の状態(例えばそれらのアプリケーション、データ、および構成)は「マシンイメージ」またはMIに対応する。これらのインスタンスは個別ユーザをサポートすることができる。
仮想マシン180、仮想ネットワーク175、仮想ストレージ165といった様々な仮想化されたエレメントを実現するプロセスは、仮想化モジュール160自体とは異なる物理ハードウェア上で実行可能である点に留意されたい。例えば、リモートプロシージャコールまたは他の技術を採用することで、特定の仮想マシン180やあらゆる他の仮想化されたエレメントに対応したプロセスまたはスレッドを、恐らくは物理システム100と構成の異なる物理システム上で実行するように、仮想化モジュール160を構成することが可能である。
下層の物理システム100ならびに仮想化モジュール160のリソース能力に応じて任意数の仮想マシン180を展開させることができる。概して、各仮想マシン180はオペレーティングシステムおよびアプリケーションの独自コピーを所有でき、このコピーは他の仮想マシン180に関係なく実行できる。例えば、図1は仮想オペレーティングシステム185ならびに1つ以上のアプリケーション195を含む仮想マシン180nを示す。仮想オペレーティングシステム185は、上記でオペレーティングシステム150に関連して述べたタイプのオペレーティングシステムが全てを含むあらゆる適切なオペレーティングシステムに相当する。仮想オペレーティングシステム185は、物理コンピュータシステム100上で実行される下層のオペレーティングシステム150と違うものであってよい。例えば、仮想オペレーティングシステム185とオペレーティングシステム150は完全に異なるオペレーティングシステムであってよい。あるいは、両者は同タイプのオペレーティングシステムに相当するが、それぞれデータ構造および/または実行可能なコードの個別のコピーを所有し、別々に実行されるように構成されていてもよい。
各仮想マシン180は、仮想マシン180に割り当てられた物理システム100のリソースを処理する独立した物理マシンであるかのように動作することができる。例えば、仮想マシン180aは、或るバージョンのMicrosoft Windows(登録商標)および1つ以上のWindowsのアプリケーションを実行するように構成され、仮想マシン180nは、或るバージョンのLinuxおよび1つ以上のLinuxのアプリケーションを実行するように構成される。いくつかの実施形態において、仮想マシン180上で実行される所与のオペレーティングシステムとアプリケーションは、物理システムではなく仮想システムで実行されていることを識別できないかもしれない。したがって、仮想化は各仮想マシン180に関して透過的に実行することができる。
様々な実施形態において、仮想化モジュール160は、仮想化モジュール160が例えば物理システム100外のクライアントから受け取った構成要求に応じて仮想マシン180a〜nをインスタンス化および破棄するように構成され得る。クライアントは、物理システム100上、またはネットワークなどの物理システム100と通信するよう構成された異なるシステム上で、ユーザに代わって実行されるプロセスに相当する。
様々な実施形態において、クライアントの要求は、要求先の所与の仮想マシン180のための構成パラメータを含んでいてよい。例えば、クライアントは、メモリ量や特定レベルのプロセッサパフォーマンスなどのような特定のリソースを所与の仮想マシン180に指定できる。あるいはクライアントは、利用できる構成のセットの中から特定のタイプまたはクラスの仮想マシン180を指定することができる。例えば、仮想化モジュール160は、クライアントが選べる「小型」、「中型」、「大型」、および/またはこれ以外のタイプの属性の仮想マシン構成を呈することができ、これらの各々にメモリ、パフォーマンス、および/または他の特徴が定義されている。いくつかの実施形態において、こうした特徴は、仮想ストレージ165の一部分のバックアップコピーや、仮想マシン180に関連してその他のデータ構造のバックアップコピーを格納する1つ以上の格納先の場所を含んでいてよい。いくつかの実施形態において、こうした特徴は、仮想ストレージ165の一部分のバックアップコピーや、仮想マシン180関連の他のデータ構造のバックアップコピーを取り出すための1つ以上のソース場所を含んでいてよい。このようなソース場所および格納先の場所は物理システム100内でローカルにホストされるか、あるいは例えばネットワーク上で遠隔地からアクセスされることが可能である。
いくつかの実施形態において、クライアントの要求は、所与の仮想マシン180の状態をどのように初期化すべきかに関する情報を含むこともできる。例えば、要求は、ブートすべきオペレーティングシステム185、利用可能なアプリケーション(1つ以上)195、および/またはあらゆるデータ、ライブラリ、あるいはクライアントの計算実行に必要な他の入力を指定することができる。様々な実施形態において、クライアントは、多数の選択肢から初期状態を選択することや(例えば、利用可能なオペレーティングシステムのリストの中から選択)、または所与の仮想マシン180の望ましい初期状態を反映した(例えば、実行可能なコードおよび/またはデータを反映した)詳細なメモリイメージを提供すること、あるいはこれらおよび他の技術の組み合わせが可能である。様々な実施形態において、仮想ストレージ165の一部分や仮想マシン180に関連する他のデータ構造を格納するための1つ以上のインポート場所に格納されているバックアップコピーの中から、この初期状態を取り出すことができる。
所与の仮想マシン180を作成または初期化せよとの要求に応答して、仮想化モジュール160を、例えば所与の仮想マシン180が使用する特定量のシステムメモリ120を自己の仮想システムメモリとして使用することを除外することで、所与の仮想マシン180への物理システム100のリソース割り当てを行うように構成できる。仮想化モジュール160は所与の仮想マシン180の初期化も行える。例えば、所与の仮想マシン180を、クライアントの指定に従って、あるいはデフォルト状態に初期化することが可能である。
構成および初期化が終わると(これらは同時に、または同一の演算の一部として行われる)、所与の仮想マシン180は動作を開始することができる。例えば、オペレーティングシステム185は過去に定義された状態からブートまたは再開することができる。アプリケーション(1つ以上)195は対話方式(つまり操作中にクライアントから入力を受信する)での実行および自律的な実行の両方が可能である。様々な実施形態において、以下に述べるように、仮想化モジュール160は所与の仮想マシン180にストレージへのアクセスや仮想ネットワークへのアクセスを提供することができ、これにより、所与の仮想マシン180が他の仮想マシン180と通信できるようになる。
何らかの時点で、所与の仮想マシン180を終了させる要求が発生する。例えばクライアントは、所与の仮想マシン180に構成されたタスクが完了した時に、あるいは何らかの他の理由で、このような要求を開始することができる。あるいは仮想化モジュール160は、例えばマシンが不安定になるか、またはクライアントの利用条件の何らかの面の違反が生じた時に、同様の要求を開始する。これに応答して所与の仮想マシン180が終了し、さらにそのリソースは解放されて他の仮想マシンが使用できるようになる。例えば、可能であれば、仮想化モジュール160は所与の仮想マシン180のシャットダウンを順序立てて実行しようと試みる。そして、所与の仮想マシン180の状態、仮想コンピューティング環境における仮想マシン180の構成に関する情報、および/または他の顕著な情報をアーカイブあるいは保存する。これらまたはあらゆる他のハウスキーピングタスクが完了すると、所与の仮想マシン180は完全に消滅される。
仮想化モジュール160は、仮想マシン180の構成および操作を提供する以外にも、仮想ネットワーク175上における仮想マシン180間の仮想化されたネットワーク接続性を提供するように構成される。例えば、ローカルエリアネットワーク(LAN)や他の適切なタイプあるいはトポロジーのネットワークをエミュレートするように仮想ネットワーク175を構成できる。仮想ネットワーク175を介することで、複数の仮想マシン180をあたかも物理ネットワークに接続した物理マシンであるかのように相互に通信するように構成できる。
いくつかの実施形態において、複数の異なる物理システム上に実現された仮想ネットワーク間をブリッジするように仮想化モジュール160を構成することで、より大規模の仮想ネットワークを実現することが可能である。とは言え、例えば個別の物理システム100上に実現された仮想マシン180は、1つの全体的な仮想ネットワーク175の一部として相互に通信することが可能である。このような実施形態では、異なる仮想化モジュール160のインスタンスを、これらインスタンスのそれぞれの物理システム100をつなぐ物理ネットワークを介して相互に情報通信を行うように構成することで、仮想マシン180間での仮想ネットワーク通信を実現できる。
さらに仮想化モジュール160は、仮想ストレージ165として図示された大容量ストレージへのアクセスを仮想マシン180に提供するように構成してもよい。例えば、仮想ストレージ165は、ブロックストレージデバイス(例えば論理ストレージ容量)、ファイルシステム、データベースとして、あるいは、コンピュータシステムに提供されるあらゆる他の適切なタイプの大容量ストレージとして構成できる。仮想ストレージ165の実施形態は系統的に大容量ストレージリソースとも称される。いくつかの実施形態において、仮想ストレージ165は、仮想ネットワーク175上で複数の仮想マシン180へのアクセスが可能な、仮想ネットワークに接続したデバイスとして構成される。例えば、仮想ストレージ165は、仮想化されたネットワークに接続したストレージ(NAS)デバイス、仮想化されたストレージエリアネットワーク(SAN)、インターネットプロトコルを介してアクセスできるストレージサービス(例えば、ウェブサービスベースのストレージサービスとして)として、またはあらゆる他の適切な様式において構成できる。いくつかの実施形態において、仮想ストレージ165は、ローカルに実現されたサービスまたはネットワーク上でリモートアクセスが可能なサービスを介して実現される。
いくつかの実施形態において、仮想ストレージ165の管理は仮想化モジュール160が直接行うことができる。例えば、仮想化モジュール160は、仮想化された容量サーバ、ファイルサーバ、または他タイプの大容量ストレージアーキテクチャの実現に必要な機能性を含んでいてよい。他の実施形態では、仮想化モジュール160は代わりにインターフェースを提供し、仮想マシン180が、このインターフェースを介して仮想モジュール160の外部に存在および管理されているストレージにアクセスできるようにしている。例えば、物理システム100または別のシステム上で実行されているいくつかの他のソフトウェア構成要素は、大容量ストレージとストレージにアクセスするためのアプリケーションプログラミングインターフェース(API)とを提供するように構成される。こうすることで、仮想化モジュール160を、仮想マシン180からこの外部APIへストレージアクセス要求を送るように構成できるようになる。
仮想化モジュール160は、クライアントが特定の仮想マシン180と対話するために用いる多数かつ多様なインターフェースをサポートするように構成される。例えば、仮想化モジュール160は、ベーシックな端末エミュレーションを実行することで、クライアントが仮想マシン180にテキスト入力を提供し、さらにテキスト出力をクライアントに戻して表示させることができるように構成される。所与の仮想マシン180が、所与の仮想マシン180内で実行されるソフトウェアによってホストされるウィンドウシステムや他タイプのグラフィックユーザインターフェース(GUI)といった高性能のユーザインターフェースをサポートしている場合には、仮想化モジュール160は、クライアントの入力デバイス(例えばキーボード、ポインティングデバイスなど)からの入力を所与の仮想マシン180へ送り、グラフィカルな出力をクライアントへ送るように構成される。
いくつかの実施形態において、仮想化されたコンピューティングをクライアント向けのオンデマンドの有料サービスとして提供してもよい。例えば、或る企業は、仮想化されたコンピューティングの実現に使用する様々なハードウェアおよびソフトウェア構成要素のアセンブリングおよび維持を実施して、様々な料金モデル(例えば従量制、加入制の料金など)に基づいてこれらリソースへのアクセスをクライアントに提供できる。そのため、クライアントは、これらのリソースの実現に必要なインフラストラクチャを準備し維持する労力および費用を負うことなく、幅広い仮想コンピューティングリソースにアクセスできる。概して、仮想化されたコンピューティングサービスをクライアントに提供するために、仮想化モジュール160は、仮想化されたコンピューティングサービスAPIをクライアントに対して呈示し、クライアントはこれを介して仮想化されたコンピューティングサービスへの多様な要求を提出できるように構成される。例えば、後で詳細に述べるように、クライアントは仮想化されたコンピューティングサービスAPIを介して、仮想化されたコンピューティングリソースをインスタンス化、初期化、および/または削除するための要求を提出できる。さらに、クライアントは、仮想化されたコンピューティングリソースに様々な計算を実行させる要求を提出することもできる。
図1に示す実施形態では、仮想化モジュール160は、仮想マシン180のような仮想化されたコンピューティングリソースを、ウェブサービスインターフェース190を介したウェブサービスの一部としてクライアントに対し呈示するように構成される。概して、ウェブサービスとは、クライアントからの1つ以上のウェブサービスエンドポイントへのコールによって利用できるコンピューティング機能であると言及できる。この際、クライアントは、アプリケーションレベルや、ハイパーテキスト転送プロトコル(HTTP)のようなインターネットベースの転送プロトコルに従って、ウェブサービスエンドポイントをアドレス指定できる。例えば、或るウェブサービスエンドポイントは、クライアントが要求するウェブサービスオペレーションを定義する特定のAPIを実現する。いくつかの実施形態において、ウェブサービスインターフェース190は、アドレス指定可能なウェブサービスエンドポイントを実現するように構成され、またさらに、クライアントに関連したウェブサービス要求および応答情報の送受信を行うように構成された機能性を含んでいる。
ウェブサービスに特定のオペレーションを実行するよう要求する場合、クライアントは要求をAPI指定の形式でフォーマットし、この要求をアドレス指定可能なエンドポイントに伝達する。例えば、エンドポイントを、virtualcomputing.company.comのような「endpoint.domainname.toplevel」形式のユニフォームリソースインジケータ(URI)に従ってアドレス指定できる。あるいは、エンドポイントは、例えばIPアドレスのような数字形式のアドレスによりアドレス指定することも可能である。
様々な実施形態において、ウェブサービスインターフェース190は、クライアントが多数の適切な方法のいずれかによって呼び出すことができる。例えば、ウェブサービスインターフェース190は、レプレゼンテーショナルステートトランスファ(REST)形式のウェブサービスアーキテクチャを実現するように構成される。概して、RESTアーキテクチャでは、要求されたウェブサービスオペレーションとその様々なパラメータを、伝送プロトコルに従ってウェブサービスエンドポイントに掛けられるウェブサービスコールに付加することができる。例えば、要求されたオペレーションの詳細は、GET、PUT、またはPOSTのようなHTTP要求方法のパラメータとして含めることができる。あるいは、ウェブサービスインターフェース190は、ドキュメントまたはメッセージ指向のアーキテクチャを実現するように構成される。例えば、要求されたオペレーションの詳細をクライアントによって拡張マークアップ言語文書としてフォーマットし、或るバージョンのSimple Object Access Protocol(SOAP)を使用してカプセル化することができる。ウェブサービスインターフェース190は、このような文書を受信すると、要求されたウェブサービスオペレーションの詳細を抽出して、オペレーションの実行を試みるように構成される。
ウェブサービスとしての仮想化されたコンピューティングの面において、ウェブサービスインターフェース190により実現されたAPIは、仮想化モジュール160によりクライアントに利用可能となったあらゆるまたは全てのタイプのオペレーションをサポートできると考えられる。ここで、上記のオペレーションには、容量のバックアップコピー作成要求またはバックアップコピーからの容量の復元要求の実行といったストレージオペレーションが含まれる。例えば、APIは上で述べたように仮想モジュール180の構成、初期化、終了をサポートすることができる。さらに、いくつかの実施形態において、APIは、クライアントと仮想マシン180または他の仮想化されたリソースとの間での入力および出力(テキスト、グラフィック、音声、その他)の交換をサポートすることもできる。
データセンターとバックアップストレージ
次に図2Aを参照すると、複数のコンピューティングシステムがプログラムを実行しストレージにアクセスする例示的な一実施形態のネットワーク図を示す。プログラム実行サービスは、データセンター200内の様々なホストコンピューティングシステム上におけるプログラムの実行を管理し、またブロックストレージサービスは、データセンターにおける複数の他のストレージシステムと協働して、実行中のプログラムにブロックレベルストレージを提供する。複数のリモート/ローカルストレージシステムを使用して、いくつかのブロックデータ容量の少なくともいくつかの部分のバックアップコピーといったさらなるコピーを格納する。
この例示的実施形態では、データセンター200は多数のラック205を含んでおり、各ラックは多数のホストコンピューティングシステム、ならびに任意のラックサポートコンピュータシステム222を含む。図示のラック205上にあるホストコンピューティングシステム210a〜cの各々は、1つ以上の仮想マシン220と、そのホストコンピューティングシステム上の仮想マシンに対応した個別ノードマネージャモジュール215とをホストする。ノードマネージャモジュール215は、常駐先であるホストコンピューティングシステムに関連した仮想マシンを管理する。この例では、1つ以上の他のホストコンピューティングシステム235も、それぞれ1つ以上の仮想マシン220をホストしている。各仮想マシン220は、或るユーザ(図示せず)について1つ以上のプログラムコピー(図示せず)を実行する独立したコンピューティングインスタンスとして機能できる。この場合、このユーザは、例えば図1に関連して述べたウェブサービスインターフェース190のようなウェブサービスインターフェースを介してアクセスしたプログラム実行サービスの顧客である。
さらに、図2Aの例証的なデータセンター200はホストコンピューティングシステム230a〜bを含んでおり、このホストコンピューティングシステムは個別の仮想マシンを含まないが、しかしそれぞれが、或るユーザについて実行されている1つ以上のプログラム(図示せず)用のコンピューティングノードとして機能できる。ホストコンピューティングシステム230a〜bおよび235とは異なるコンピュータシステム(図示せず)上で実行されているノードマネージャモジュール225は、ホストコンピューティングシステム230a〜bおよび235に対応して、ホストコンピューティングシステムが提供したコンピュータノードを、ホストコンピューティングシステム210についてノードマネージャモジュール215が行う様式と類似した様式で管理する。ロックサポートコンピュータシステム222は、ラック205域内の他のコンピューティングシステム、ならびに恐らくはデータセンター内に設置されている他のコンピュータシステムに対して、様々なユーティリティサービスを提供する(例えば、長期ストレージ、プログラム実行の測定および他の監視、および/または他のコンピューティングシステムが実行するローカルラックへの非ローカルブロックデータストレージアクセス)。各コンピューティングシステム210、230、235は、実行中のプログラムや様々な他の構成要素が作成したあるいは使用しているプログラムおよび/またはデータのローカルコピーを格納するための、1つ以上のローカルアタッチされたストレージデバイス(図示せず)をさらに設けていてよい。
さらに、任意のプログラム実行サービス(PES)システムマネージャ240も図示されている。PESシステムマネージャ240は、PESシステムマネージャモジュールを実行するコンピューティングシステムであり、ホストコンピューティングシステム210、230、および235が提供するコンピューティングノード上でのプログラム実行の管理を補助する(あるいは任意で、1つ以上の他のデータセンター260内に位置するコンピューティングシステム(図示せず)上のプログラム、もしくはネットワーク270上で利用可能な他のリモートコンピューティングシステム(図示せず)上のプログラムの管理を補助する)。PESシステムマネージャ240はプログラム実行管理の他にも、ユーザアカウントの管理(例えば支払いの作成、削除、請求、集金など)を含む様々なサービスを提供できる。PESシステムマネージャ240はさらに、実行するプログラムの登録、格納、配布や、プログラム実行に関するパフォーマンスと監査データの収集ならびに処理を提供する。いくつかの実施形態において、PESシステムマネージャ240はノードマネージャモジュール215、225と協働し、ノードマネージャモジュール215、225に関連したコンピューティングノード上でプログラム実行を管理する。
データセンター200は、ブロックストレージサービス265をさらに含む(以降で図2Bを参照してより詳細に説明する)。このブロックストレージサービス265は、データセンター200内に位置するホストコンピューティングシステム210、230、235、あるいは任意で1つ以上の他のデータセンター260内のコンピューティングシステム(図示せず)、またはネットワーク270上で利用可能な他のリモートコンピューティングシステム(図示せず)が提供するコンピューティングノード上で実行中のプログラムにブロックレベルのデータ格納を提供する。
いくつかの実施形態において、データセンター200は、リモートストレージシステム297と通信する。リモートストレージシステム297は、データストアマネージャ247をサポートするオペレーティングシステム245を含む。リモートストレージシステム297は、ローカルストレージシステム292と同一のエンティティの制御下、またはこれと異なるエンティティの制御下にあってよい。データ格納マネージャは、ブロックストレージサービス265からスナップショットコピー295を受信して格納する。いくつかの実施形態において、リモートストレージシステム297内でブロックストレージアダプタ250を実行することで、ブロックストレージサービス265との通信を促進している。
図2Bは、一実施形態に従って格納操作を実行するためのブロックストレージサービスを示す。ブロックストレージサービス265はストレージシステムであって、1つ以上のボリューム255ならびに1つ以上のスナップショット256を格納するためのブロックレベルストレージを提供する複数サーバデータブロックストレージシステムのプール(簡素化のため図示省略)で構成されている。スナップショット256は、ボリューム255の状態のフィックストポイントインタイム表示である。いくつかの実施形態において、スナップショットをバックアップ目的で使用する。他の実施形態において、スナップショットを全ての形式のファイルオペレーションに使用することで、システムリソースの解放を早め、並行操作のパフォーマンスを向上させている。さらにスナップショットは、コンピューティングタスクの実行にデータの複製セットが役立つ多くのオペレーションにおいて使用される。ブロックストレージサービス265はブロックレベルストレージマネージャ275を実行し、ブロックストレージサービス265のオペレーションを補助する。具体的には、そして再び図2Aを参照すると、ブロックレベルストレージマネージャ275は、データセンター200内のホストコンピューティングシステム210、230、235、あるいは任意で1つ以上の他のデータセンター260内のコンピューティングシステム(図示せず)、もしくはネットワーク270上で利用可能な他のリモートコンピューティングシステム(図示せず)、が提供するコンピューティングノード上で実行中のプログラムへのブロックデータストレージの可用性の管理を補助するものである。図2A、図2Bに示す実施形態では、ボリュームコピー255へのアクセスは、ノード210、235上で実行しているプログラムへの内部ネットワーク285によって提供される。ブロックレベルストレージマネージャ275はブロックレベルストレージ機能に関連した様々なサービスを提供し、これにはユーザアカウントの管理(例えば支払いの作成、削除、請求、集金など)が含まれる。ブロックレベルストレージマネージャ275はさらに、ブロックストレージサービス265上にあるボリューム255およびスナップショット256の作成、使用、削除に関連したサービスを提供する。ブロックレベルストレージマネージャ275はまた、ボリューム255とそのボリュームのスナップショット256の使用に関するパフォーマンスおよび監査データの収集ならびに処理に関連したサービスも提供する。
図2Bに戻ると、ブロックレベルストレージマネージャ275はさらにバックアップマネージャ280を含んでいる。バックアップマネージャ280は、スナップショット256や、ブロックストレージサービス265のボリューム255内に格納されているデータの他のバックアップイメージの作成、格納、管理、インポートを行うインターフェースを提供する。いくつかの実施形態において、バックアップマネージャモジュール280は、例えばスナップショットコピー290をローカルストレージシステム292上に、そしてスナップショットコピー295をリモートストレージシステム297上にというように、ストレージシステムへのスナップショットの格納を行う。バックアップマネージャ280はバックアップストレージ機能の提供に関連した様々なサービスを提供し、これにはユーザアカウントの管理(例えば支払いの承認、作成、削除、請求、集金など)が含まれる。一実施形態において、バックアップマネージャ280は、リモートストレージシステム297をコンピューティングインスタンスに関連付けする際に承認の証明を必要とする。さらに、バックアップマネージャ280は、特定のストレージシステム上のパフォーマンス特有のオペレーションに関連した請求率が、特定タスクのパフォーマンスを格納するストレージシステムを選ぶ上で影響する「料金体系に影響される選択」を提供する。例えば、ローカルストレージシステム292上へのスナップショットコピー290の格納の方が料金が高いことに基づいて、リモートストレージシステム297上へのスナップショットコピー295の格納を、ローカルストレージシステム292上へのスナップショットコピー290の格納よりも優先して実行するように、バックアップマネージャ280をプログラミングすることができる。
バックアップマネージャモジュール280は、バックアップオペレーションのパフォーマンスを発行せよとの要求を、コンピューティングインスタンスから、またはウェブサービスインターフェース(例えば図1のウェブサービスインターフェース190)のユーザから受信するためのバックアップマネージャインターフェース278を含んでいる。一実施形態において、こうした要求は、ブロックストレージサービス265がコンピューティングインスタンス(例えば仮想マシン220のうちの1つ)のユーザに提供しているブロックレベルストレージのボリューム255に格納されているデータの少なくとも一部のスナップショットコピー290の格納先(例えばローカルストレージシステム292)や他の構成パラメータなどを指定する。またこうした要求は、ウェブサービスインターフェース(例えば図1のウェブサービスインターフェース190)からのAPIコールとして実施されてもよい。以降で述べるように、この要求は格納場所、ストレージ粒度、または他のパラメータを指定できる。バックアップマネージャインターフェース278は、リモートストレージシステム297上のスナップショット(例えばスナップショットコピー295)や他のバックアップコピーから、そしてローカルストレージシステム292上のスナップショットコピー290から、ボリューム255をブロックストレージサービス265内に復元せよとの要求を受信するように構成することもできる。
ストレージ粒度とは、特定の場所に作成および格納するよう要求されたバックアップまたは一連のバックアップの個数、頻度、サイズ、または包括性を意味する。或る粒度設定では、選択されたボリュームの全一連のフルバックアップスナップショットを特定の場所に格納することができる。あるいは、別の粒度設定では、ボリュームのスナップショットの各部分を1つの場所において作成および格納することができる。これらのデータ部分は、例えばファイルや、特定のバックアップパラメタを満たすべく定義されたブロック範囲(例えば任意のブロックスキーム、または前回のバックアップからデータが変更されているブロック範囲のみ)のように、特定のデータ構造を含むことができる。さらに、ストレージ粒度を柔軟に指定する機能は、ボリュームまたはボリュームの一部分を表す第1スナップショットが第1格納場所に格納されることや、同ボリュームの第2スナップショット、または或るボリュームの一部分の(または同ボリュームの異なる部分)の第2スナップショットが第2場所へ送られることを指定する機能を含む。構成ファイル252は、様々なバックアップ操作および復元操作の実行に関する詳細を含んでいる。こうした詳細は、特定のストレージシステムに関連したAPIのフォーマット、特定の格納先やインポート場所におけるストレージシステムの場所、あるいはバックアップの特徴(例えばバックアップ粒度)、を指定する情報を含む。
バックアップマネージャモジュール280は、ボリュームのスナップショット、またはボリュームの各部のスナップショットを、バックアップマネージャインターフェース278経由で受信した入力の指定どおりに作成するためのバックアップ作成モジュール276をさらに含む。バックアップマネージャモジュールはまた、バックアップストレージマネージャ282を含む。バックアップストレージマネージャ282は、ローカルストレージシステム292内のスナップショットコピー290またはリモートストレージシステム297内のスナップショットコピー295のようなスナップショットの伝送および格納を実行する。バックアップストレージマネージャ282は、多種多様なトランスポート層プロトコル(例えばTCP、UDPなど)およびアプリケーション層プロトコル(例えばHTTP、FTP、XML−RPC、SOAPなど)のいずれかを使用して、ローカルストレージシステム292およびリモートストレージシステム297と通信するように構成される。なお、上記プロトコルは実施形態ごとに異なる。いくつかの実施形態において、バックアップストレージマネージャ282は、ローカルネットワーク285経由でスナップショットコピー290をローカルストレージシステム292へ伝送する。同様に、バックアップストレージマネージャ282は、ネットワーク270経由でスナップショットコピー295をリモートストレージシステム297へ伝送する。
いくつかの実施形態において、バックアップストレージマネージャ282は、バックアップストレージマネージャ282とデータストアマネージャ247の両方がサポートしているストレージコールのAPIプロトコルを使用して、データストアマネージャ247と直接通信するように構成される。他の実施形態において、バックアップストレージマネージャ282が使用するストレージコールのAPIプロトコルは、データストアマネージャ247上で直接サポートされておらず、ブロックストレージアダプタ250またはバックアップストレージ251を使用することで、データストアマネージャ247およびバックアップストレージマネージャ282の相互運用性を促進している。いくつかの実施形態において、同じホストノード上にある異なるコンピューティングインスタンスが、個別のAPIプロトコルを使用して、異なるストレージトランザクションについてストレージシステムと通信する。バックアップマネージャ280は、ローカルアーカイブストレージシステム292から受け取ったスナップショットコピー290としてのボリュームまたはボリュームの各部分を、あるいはリモートアーカイブストレージシステム297から受け取ったスナップショットコピー295を、復元またはインポートするためのデータインポートマネージャ284をさらに含んでいる。
バックアップストレージと相互作用するためのプロセスステップ
以降で図3A〜図4を参照して述べるプロセスステップは、個別ユーザ群をサポートするコンピューティングインスタンスに対し、ブロックレベルストレージに格納されているデータのバックアップコピーのバックアップサービスを提供するシステムの一実施形態によって実行される様々なステップを例証するものである。このようなシステムの実施形態は、個別ユーザ用のコンピューティングインスタンスによって、ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、さらにこのバックアップコピーを、個別ユーザの各々が指定した異なる格納先の場所に格納するためのバックアップコピー機能を提供する。
図3Aは、一実施形態に従ってスナップショットを作成および格納するプロセスステップの高レベルフローチャートである。バックアップ先の格納場所(他のバックアップ詳細と共に)を指定するユーザ入力を受信する(ブロック300)。一実施形態では、このようなユーザ入力を、図1のウェブサービスインターフェース190のようなウェブサービスインターフェースから受信する。ユーザ入力で提供する詳細は、特定の場所において作成および格納するように要求されたスナップショットまたは一連のスナップショットの個数、頻度、サイズ、または包括性を含んでいてよい。さらにバックアップのタイミングを含むこともできる。あるいは、このようなユーザ入力は、図1の仮想マシン180のような仮想マシンから受信される。受信した詳細から抽出したバックアップについての詳細を、図2Bの構成ファイル252のような構成ファイルに記録する(ブロック305)。次に、構成ファイルからの詳細に従ってバックアップコピーを作成する(ブロック310)。一実施形態では、図2Bのバックアップ作成モジュール276のようなバックアップ作成モジュールでボリュームのスナップショットを生成することで、バックアップコピーを作成する。次に、このバックアップを、構成ファイルに指定されている1つ以上の場所に格納する(ブロック315)。これでプロセスが終了する。
図3Bは、一実施形態に従ってボリュームのバックアップコピーを作成および格納するプロセスステップの高レベルフローチャートである。サーバブロックデータストレージ内にスナップショットを作成する(ブロック320)。一実施形態では、サーバブロックデータストレージは、図2Aのブロックストレージサービス265のようなブロックストレージサービスにより提供される。図2Bの構成ファイル252のような構成ファイルを精査することで、ストレージ構成が決定される(ブロック325)。一実施形態では、このストレージ構成はストレージ粒度に関する情報、つまりスナップショットを1つの全体的なスナップショットイメージとして格納するのか、あるいはファイルや、アドレスレンジを反映するデータチャンク、または他のフォーマットとして格納するのかの情報を含む。また、バックアップが一連のスナップショットの一部であるか、一連のスナップショットの各部分を1つの格納場所に集中させるのか、それとも複数の格納情報間に分散させるのか、1つのバックアップコピーの各部分を集中させるのか、それとも複数のサーバに分配するのか、どのエンティティで様々なバックアップ格納場所を制御するのか、さらに、バックアップを認証および保全する方法、といった他の情報を決定することも可能である。次に、格納先についてのストレージシステムパラメータを確定する(ブロック330)。一実施形態では、ストレージシステムパラメータは、特定のストレージシステムに関連したAPIのフォーマットと、特定の格納先におけるストレージシステムの場所と、この格納先と通信する上でバックアップストレージアダプタまたはブロックストレージアダプタが必要かどうかの情報とを含む。ストレージ伝送を実行する(ブロック335)。ストレージ伝送において、スナップショットは全体のままあるいは指定されたコンポーネント部分に分割されて、格納先へ伝送される。いくつかの実施形態において、受信確認を受信する(ブロック340)。これでプロセスは終了である。
図4は、一実施形態に従ってボリュームスナップショットを取り出してボリュームを復元するプロセスステップの高レベルフローチャートである。復元要求を受信する(ブロック400)。一実施形態では、このような復元要求を、図1のウェブサービスインターフェース190のようなウェブサービスインターフェースから受信する。復元要求で提供される詳細は、インポート場所と復元先(特定の仮想マシンホストなど)を含んでいてよい。さらに、アイドル状態のマシンサイクルの利用が可能である場合は、オペレーション実行の遅延のような復元のタイミングを含んでいてもよい。あるいは、このようなユーザ入力は、図1の仮想マシン180のような仮想マシンから受信される。復元要求に必要な構成を決定する(ブロック405)。一実施形態では、この必要な構成には、特定のストレージシステムに関連したAPIのフォーマットを含んでいるパラメータと、特定の格納先におけるストレージシステムの場所と、格納先と通信する上でバックアップストレージアダプタまたはブロックストレージアダプタ必要かどうかについての情報とが含まれる。受信側ボリュームを作成する(ブロック410)。一実施形態では、受信側ボリュームは空のボリュームであり、この中に受信したデータを格納する。ボリュームをホストするストレージシステムに取り出し要求を送信する(ブロック415)。スナップショットデータを受信する(ブロック420)。一実施形態では、受信したデータは完全な1つのスナップショットとして、受信側ボリュームをホストするブロックレベルストレージ上に格納される。データを受信側ボリュームにインポートする(ブロック425)。プロセスはこれで終了である。
図4の処理は、明瞭化の目的から、直線的な一連のオペレーションとして示している。しかし、本開示を読了した当業者であれば、図4のオペレーションを繰り返し実行することで複数の要求を処理できることに気付くだろう。繰り返し実行できるオペレーションの一例として、要求オペレーション、受信オペレーション、インポートオペレーション(415〜425)を繰り返しループ様式で、全ての要求したデータが受信されるまで実行することができる。このような繰り返しパフォーマンスを提供する実施形態は本開示の範囲から逸脱するものではない。
さらに、明瞭化のために図4の説明から省略されたいくつかのオペレーションは実施形態の一部として実現される。明瞭化のために図4から省略されたオペレーションの一例として、本開示を読了した当業者は、図4の手法は受信認証ステップを含んでいてよく、また、選択したソースからのデータ受信の失敗に応答して、あるいはソースからのデータ受信の最適以下の遅延に応答して、データ受信の代わりのデータソースからインポートを選択する機能を含んでいてよいことを理解するだろう。このようなさらなるオペレーションを提供する実施形態は本開示の範囲から逸脱するものではない。
バックアップストレージとの対話を例証する格納例
図5〜図8は、個別ユーザ群をサポートするコンピューティングインスタンスに、ブロックレベルストレージに格納されているデータのバックアップコピーを提供し、またバックアップコピーに関連した取り出しサービスと復元サービスを提供するシステムの実施形態を採用する様々な使用例を示す。
図5は、一実施形態に従ってボリュームスナップショットの一連のバックアップコピーを格納するための一連の格納時の対話を示す高レベルブロック図である。ブロックストレージサービス565は、一連のボリューム555a〜555nを格納し、その各々は1つ以上のコンピューティングインスタンスにアタッチされ、さらにスナップショットのセット556al〜556an、556bl〜556b2、および556nlを作成する。ストレージシステム592は、スナップショットコピー557a1〜557anならびにスナップショットコピー557b1、およびスナップショットコピー557n1を格納する。一実施形態では、スナップショット556a1〜556anおよびスナップショットコピー557a1〜557anは、スナップショットコピー間でブロックが共有される増分スナップショットである。そのため、スナップショットA1 556a1とスナップショットA1コピー557a1は、ボリュームA556aの復元に必要なブロックの完全なセットを包含していてよい。しかし、その次のスナップショットA2 556a2とスナップショットA2コピー557a2は、特定のスナップショットA1 556a1とその次のスナップショットA2 556a2作成との間で変更されたブロックのみを包含できる。こうした実施形態では、スナップショットA2コピー557a2からのボリュームA 555aの復元に、スナップショットA2コピー557a2の全てのブロックと、スナップショットA1コピー557a1のブロックのうちの、スナップショットA1556a1の作成とその次のスナップショットA2 556a2の作成の間で変更のなかったものとを使用できる。
一実施形態において、ストレージシステム592は図2Aのローカルストレージシステム292と類似している。ストレージシステム592は内部ネットワーク585を使用してブロックストレージサービス565と通信する。同様に、ストレージシステム597はスナップショットコピー557n1およびスナップショットコピー557b2を格納する。一実施形態において、ストレージシステム597は図2Aのストレージシステム297と類似している。ストレージシステム597は、ネットワーク570および内部ネットワーク585を使用してブロックストレージサービス565と通信する。一実施形態では、ブロックストレージアダプタ550は、ストレージシステム597がサポートするAPIを使用して、ブロックストレージシステム565からのAPIコールを受信してこれに応答する機能をストレージシステム597に提供する。一方、ストレージシステム592は、ストレージシステム597が使用したものとは異なり、またブロックストレージサービス565が使用しているAPIを使用する。
一実施形態において、一連のスナップショットコピー(例えば、ストレージシステム592上に格納されているスナップショットコピー557a1〜557an)は、ブロックストレージサービス565がサポートする1つ以上のボリュームにアタッチされているコンピューティングインスタンスのユーザからの、バックアップ要求のセットのような入力から得られる。このようなバックアップ要求は、ブロックストレージサービス565のブロックレベルストレージ上のボリュームA555aに格納されているデータのバックアップコピーのセットの全てを格納する特定の格納先(例えばストレージシステム592)を指定することができる。スナップショットコピー557a1〜557anとして示す一連のスナップショットコピーは、ユーザが一連のボリュームスナップショット全体を要求することによって得られ、この場合、スナップショットコピー557a1〜557anの各々は、特定の時間点におけるボリュームA555aの完全な状態を表す。
このような要求に応答し、ブロックストレージサービス565は、図2Bのバックアップ作成モジュール276(上述のもの)のようなバックアップ作成モジュールを使用して、時間t1においてスナップショットA1 556a1を作成し、さらに、図2Bのバックアップストレージマネージャ282のようなバックアップストレージマネージャを使用して、スナップショットA1コピー557a1を内部ネットワーク585経由でストレージシステム592上に格納する。こうして、スナップショットコピーA1 557a1が、時間t1におけるボリュームA555aの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットA1 556a1を削除または解放する。
次に時間t2において、ブロックストレージサービス565がスナップショットA2 556a2を作成し、スナップショットA2コピー557a2を内部ネットワーク585経由でストレージシステム592上に格納する。こうして、スナップショットA2コピー557a2が、時間t2におけるボリュームA555aの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットA2 556a2を削除または解放する。
次に、時間tnにおいて、ブロックストレージサービス565がスナップショットAn556anを作成し、スナップショットAnコピー557anを内部ネットワーク585経由でストレージシステム592上に格納する。こうして、スナップショットAnコピー557anが、時間tnにおけるボリュームA555aの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットAn556anを削除または解放する。こうして、ユーザからのストレージシステム592上の一連のボリュームバックアップコピー全体を要求するユーザ要求が、スナップショットコピー557a1〜557anの作成および格納によって満たされる。スナップショットコピー557a1〜557anの各々は、特定の時間点におけるボリュームA555aの完全な状態を表す。
さらに一実施形態では、例えばストレージシステム592上に格納されたスナップショットコピー557b1およびスストレージシステム597上に格納されたナップショットコピー557b2のような一連のスナップショットコピーは、例えばブロックストレージサービス565がサポートする別のコンピューティングインスタンスを採用している別ユーザからのバックアップ要求といった入力によって得られる。こうしたバックアップ要求では、ブロックストレージサービス565のブロックレベルストレージ上のボリュームB555b内にあるデータのバックアップコピーセットの交互の要素を格納するための格納先群に、例えばストレージシステム592およびストレージシステム597を指定することができる。スナップショットコピー557b1〜557b2として示された一連のスナップショットコピーは、ユーザが一連のボリュームスナップショット全体を要求することで得られ、この場合、スナップショットコピー557b1〜557b2の各々は、特定の時間点におけるボリュームB555bの完全な状態を表す。したがって、スナップショットコピー557b1〜557b2を作成することで、例えばストレージシステム592とストレージシステム597といった複数の格納先間で交互にローディングを行うバックアップコピーセットが得られる。
このような要求に応じて、ブロックストレージサービス565が、時間t1においてスナップショットB1 556b1を作成し、スナップショットB1コピー557b1を内部ネットワーク585経由でストレージシステム592上に格納する。こうして、スナップショットB1コピー557b1が、時間t1におけるボリュームB555bの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットB1 556b1を削除または解放する。
次に時間t2において、ブロックストレージサービス565がスナップショットB2 556b2を作成し、スナップショットB2コピー557b2を内部ネットワーク585およびネットワーク570経由でストレージシステム597上に格納する。こうして、スナップショットB2コピー557b2が、時間t2におけるボリュームB555bの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットB2 556b2を削除または解放する。こうして、ストレージシステム592およびストレージシステム597上の一連のボリュームバックアップコピー全てを要求するユーザ要求が、スナップショットコピー557b1〜557b2の作成および格納によって満たされた。スナップショットコピー557b1〜557b2の各々は、特定の時間点におけるボリュームB555bの完全な状態を示している。
さらに一実施形態では、例えばストレージシステム597上に格納されたスナップショットN1コピー557n1およびストレージシステム592上に格納されたスナップショットN2コピー557n2といった一連のスナップショットコピーは、ブロックストレージサービス565がサポートする別のコンピューティングインスタンスを採用しているさらに別のユーザからのバックアップ要求のような入力によって得られる。こうしたバックアップ要求は、ブロックストレージサービス565のブロックレベルストレージ上のボリュームN555n内に格納されているデータのバックアップコピーセットの複製要素を格納するための格納先群に、例えばストレージシステム592およびストレージシステム597を指定できる。スナップショットコピー557n1〜557bnとして示されている一連の複製スナップショットコピーは、一連のボリュームスナップショット全体を要求するユーザ要求から得られ、この場合、スナップショットコピー557n1〜557n2の各々は同一の時間点におけるボリュームN555nの完全な状態を表す。したがって、スナップショットコピー557n1〜557n2を作成することで、ストレージシステム592とストレージシステム597の間に冗長的な可用性を提供するバックアップコピーセットが得られる。
このような要求に応答して、ブロックストレージサービス565が時間t1においてスナップショットN1 556n1を作成し、スナップショットN1コピー557n1を内部ネットワーク585およびネットワーク570経由でストレージシステム597上に格納する。こうして、スナップショットコピーN1 557n1が、時間t1におけるボリュームN555nの状態のバックアップコピーとして保存される。次にブロックストレージサービス565は、スナップショットN1コピー557n2を内部ネットワーク585経由でストレージシステム592上に格納する。こうして、スナップショットN1コピー557n2が、時間t1におけるボリュームN555nの状態のバックアップコピーとして保存される。いくつかの実施形態において、その後、ブロックストレージサービス565上のスペースを維持するために、ブロックストレージサービス565がスナップショットN1 556n1を削除または解放する。
図6は、一実施形態に従ってボリューム部分の一連のバックアップコピーを格納するための一連の格納時の対話を示す高レベルブロック図である。ブロックストレージサービス665は一連のボリューム655a〜655nを格納し、スナップショット656a〜656nのセットを作成する。ボリュームA655aはチャンク655a1〜655anに分割され、スナップショットA656aはチャンク656a1〜656anに分割される。チャンク655a1〜655anおよびチャンク656a〜656nの各々は、例えばあらゆる特定のチャンク内に格納されたデータ項目間になんらの必要な論理関係も持たない、固定サイズレンジのブロックストレージアドレスのような、ボリュームA655aのデータのサブセットを表す。これに対し、ボリュームB655bおよびスナップショットB656bは複数のファイルに分割される。ボリュームB655bはファイル655b1〜655bnに、スナップショットB656bはファイル656b1〜656bnに分割される。ファイル655b1〜655bnおよびファイル656b1〜656bnは、ボリュームB655bのデータの論理サブセットをそれぞれ表す。
ストレージシステム697aは、スナップショット656aからのチャンクコピー657a1〜657a2、ならびにスナップショット656bからのファイルコピー657b1〜657bnを格納する。一実施形態において、ストレージシステム697aは図2Aのストレージシステム297と類似している。ストレージシステム697aは、ネットワーク670を使用してブロックストレージサービス665と通信する。同様に、ストレージシステム697bは、スナップショット656aからのチャンクコピー657a3〜657an、ならびにスナップショット656bからのファイルコピー658b1〜658bnを格納する。一実施形態において、ストレージシステム697bは図2のストレージシステム297と類似している。ストレージシステム697bは、ネットワーク670を使用してブロックストレージサービス665と通信する。一実施形態において、バックアップストレージアダプタ650により、ブロックストレージサービス665は、要求をAPIコールとしてストレージシステム697aへ送り、またストレージAPIフォーマットにてストレージシステム697aが送ってくるストレージAPIコールへの応答を受信できるようになる。ストレージAPIフォーマットはストレージシステム697aが使用するフォーマットであるが、ストレージサービス665はストレージアダプタ650がないとこれを使用することができない。一実施形態では、ストレージシステム697bおよびブロックストレージサービス665は、共通のAPIフォーマットを使用することで、バックアップストレージアダプタ650のサービスを受けなくても通信できる。代替実施形態において、バックアップストレージアダプタ650により、ブロックストレージサービス665は、要求をAPIコールとしてストレージシステム697bへ送り、またストレージAPIフォーマットにてストレージシステム697bが送ってくるストレージAPIコールへの応答を受信できるようになる。ストレージAPIフォーマットはストレージシステム697bが使用するフォーマットであるが、ストレージサービス665はストレージアダプタ650がないとこれを使用することができない。ストレージシステム697aおよびストレージシステム697bは、同一または異なるエンティティによって制御される。
一実施形態において、一連のチャンクコピー、例えばストレージシステム697aおよびストレージシステム697b上に格納されているチャンクコピー657a1〜657anは、例えばブロックストレージサービス665によりサポートされたファイルまたはデータチャンクへのアクセスを提供している1つ以上のボリュームにアタッチされているコンピューティングインスタンスのユーザからのバックアップ要求のような入力によって得られる。このようなバックアップ要求は、ブロックストレージサービス665のブロックレベルストレージ上のボリュームA655aに格納されたデータの各部分のバックアップコピーのセットの各バックアップコピーを格納する格納先に、例えばストレージシステム697aおよびストレージシステム697bを指定することができる。チャンクコピー657a1〜657anは、ブロックレンジにより定義されたスナップショットの各部分を複数のストレージシステムに分散させよとユーザが要求することで得られたものである。チャンクコピー657a1〜657anを合わせると、特定の時間点における1つの状態にあるボリュームA655aの完全なスナップショットを表す。
ブロックストレージサービス665は、上記のような要求に応答して、時間t1におけるスナップショットA656aを作成し、また、ストレージシステム697a上へのチャンク657a1〜657a2の格納と、ストレージシステム697b上へのチャンク657a3〜657anの格納の両方を行う。こうして、チャンク657a1〜657anが、時間t1におけるボリュームA655aの状態のバックアップコピーとして保存される。いくつかの実施形態において、この後に、ブロックストレージサービス665上のスペースを維持するために、ブロックストレージサービス665がスナップショットA656aを削除または解放する。
一実施形態ではさらに、例えばストレージシステム697a上に格納されたファイルコピー657b1〜657bnならびにストレージシステム697b上に格納されたファイルコピー658b1〜658bnといった一連のバックアップファイルコピーは、ブロックストレージサービス665がサポートする1つ以上のボリュームにアタッチされたコンピューティングインスタンスのユーザがバックアップ要求のような入力を行うことで得られる。こうしたバックアップ要求は、ブロックストレージサービス665のブロックレベルストレージ上のボリュームB655bに格納されたデータのバックアップコピーのセットの複写要素のための宛先群を、ストレージシステム697aおよびストレージシステム697bのように指定できる。ファイルコピー657b1〜657bnおよびファイルコピー658b1〜658bnとして示される一連のバックアップコピーは、ユーザからのスナップショット作成要求によって得られ、この場合、スナップショット内の各ファイルが2つの場所に別々に複写され、また、ファイルコピー657b1〜657bnのセットおよびファイルコピー658b1〜658bnのセットの両方によって特定の時間点におけるボリュームB655bの完全な状態が表される。したがって、ファイルコピー657b1〜657bnおよびファイルコピー658b1〜658bnを作成することで、ボリュームB655bの冗長的なバックアップを提供するバックアップコピーのセットが得られる。
ブロックストレージサービス665は上記のような要求に応答し、時間t1におけるスナップショットB656bを作成し、ファイルコピー657b1〜657bnをネットワーク670経由でストレージシステム697a上に格納する。ブロックストレージサービス665は、ファイルコピー658b1〜658bnをネットワーク670経由でストレージシステム697b上に格納する。こうして、ファイルコピー657b1〜657bnおよびファイルコピー658b1〜658bnが、時間t1におけるボリュームB655bの状態の冗長的なバックアップコピーとして保存される。いくつかの実施形態において、この後に、ブロックストレージサービス665上のスペースを維持するために、ブロックストレージサービス665がスナップショットB656bを削除または解放する。
図7は、一実施形態に従って一連のボリュームスナップショットを復元するための一連のストレージの対話を示す高レベルブロック図である。ブロックストレージサービス765は、ネットワーク770上でストレージシステム797aおよびストレージシステム797bと通信する。一実施形態において、ストレージシステム797aは図2Aの格納システム297と類似している。ストレージシステム797aは、スナップショットコピー757a1〜757anを保持しており、その各々が特定の時間点におけるボリュームAの完全な状態を表す。一実施形態において、スナップショットコピー757a1〜757anは、スナップショットコピー557a1〜557anに関連して上で述べたものと類似の方法で作成される。ストレージシステム797aはさらにスナップショットB1コピー757b1を保持する。
ブロックストレージサービス765がサポートするコンピューティングインスタンスのユーザは、例えばコンピューティングインスタンスのユーザが見たいと思うボリュームAの復元の時間点に基づいて、スナップショットコピー757a1〜757anから特定の1つを選択することで、スナップショットコピー757a1〜757anのうちの1つからボリュームAを復元するように要求できる。ブロックストレージサービス765はこうした要求に応答して、ボリュームAの作成に必要な構成を決定する。この構成は、例えばスナップショットコピー757al〜757anのうち好みの1つのインポート場所、例えばスナップショットAnコピー757anであってよい。ブロックストレージサービス765は、ボリュームA755aとラベル付けした空の受信側ボリュームを作成する。次にブロックストレージサービス765は、スナップショットAnコピー757anのコンテンツをブロックストレージサービス765へ送信するように要求する取り出し要求をストレージシステム797aへ送信する。一実施形態において、ブロックストレージサービス765がスナップショットAnコピー757のコンテンツを受信すると、このスナップショットコピー757のコンテンツがスナップショットAN756aとしてデポジットされ、つづいてボリュームA755aへ転送される。一実施形態において、受信されてボリュームA755aへ転送されたこのコンテンツは、スナップショットコピー757anからスナップショットAN756n内への全てのデータの受信が完了する前に利用可能となり、コンピュータインスタンスのユーザに供給される。さらに一実施形態では、ストレージシステム797aおよびブロックストレージシステム765は、これらが共有するAPIプロトコルを使用して通信することができる。
同様に、ストレージシステム797aはスナップショットコピー757b1を、ストレージシステム797bはスナップショットコピー757b2を保持し、各々のスナップショットコピーは特定時点におけるボリュームBの完全な状態を表す。一実施形態では、スナップショットコピー757b1〜757b2は、図5のスナップショットコピー557b1〜557b2に関連して上述したものと類似の方法で作成される。
ブロックストレージサービス765がサポートするコンピューティングインスタンスのユーザは、例えばコンピューティングインスタンスのユーザが見たいと思うボリュームBの復元の時間点に基づいてスナップショットコピー757b1〜757b2のうちの特定の1つを選択することで、スナップショットコピー757b1〜757b2のうちの1つからボリュームBの復元を要求することができる。ブロックストレージサービス765はこうした要求に応答して、ボリュームBの作成に必要な構成、例えばスナップショット757b1〜757b2の適切な1つをインポートする場所を決定する。ブロックストレージサービス765は、ボリュームB755bとラベル付けした空の受信側ボリュームを作成する。次にブロックストレージサービス765は、スナップショットコピー757b1のコンテンツをブロックストレージサービス765へ送信せよと要求する取り出し要求をストレージシステム797aに送信する。一実施形態において、ブロックストレージサービス765がスナップショットコピー757b1のコンテンツを受信すると、スナップショットコピー757b1のコンテンツがスナップショットB1 756bとしてデポジットされ、その後、ボリュームB755bへ転送される。
さらに、ストレージシステム797bが、各々が特定の時間点におけるボリュームNの完全な状態を表したスナップショットコピー757n1〜757n2を保持する。一実施形態では、スナップショットコピー757n1〜757n2は、図5のスナップショットコピー557n1〜557n2に関連して上述したものと類似の方法で作成される。
ブロックストレージサービス765がサポートするコンピューティングインスタンスのユーザは、例えばコンピューティングインスタンスのユーザが見たいと思うボリュームNの復元の時間点に基づいて、スナップショットコピー757n1〜757n2から特定の1つを選択することで、スナップショットコピー757nl〜757n2のうちの1つからボリュームNの復元を要求することができる。ブロックストレージサービス765がこうした要求に応答して、ボリュームNの作成に必要な構成、例えばスナップショットコピー757n1〜757n2のインポート場所を決定する。ブロックストレージサービス765は、ボリュームN755nとラベル付けした空の受信側ボリュームを作成する。次にブロックストレージサービス765が、スナップショットN2コピー757n2のコンテンツを取り出してブロックストレージサービス765へ送信するように要求する取り出し要求をストレージシステム797bへ送る。一実施形態において、ブロックストレージサービス765がスナップショットN2コピー757n2のコンテンツを受信すると、スナップショットコピー757n2のコンテンツがスナップショットN2 756nとしてデポジットされ、その後ボリュームN755nへ転送される。一実施形態では、ブロックストレージシステム765が使用するプロトコル向けのフォーマットのAPI要求をストレージシステム797bが使用するプロトコル向けのフォーマットのAPI要求にトランスレートするために、ストレージシステム797bとブロックストレージシステム765がブロックストレージアダプタ760を使用して通信することができるようになっている。
図8は、一実施形態に従ってボリューム部分の一連のバックアップコピーを復元するための一連のストレージの対話を示す高レベルブロック図である。ブロックストレージサービス865は、ネットワーク870経由でストレージシステム897aおよびストレージシステム897bと通信する。一実施形態において、ストレージシステム897aは図2のストレージシステム297と類似している。ストレージシステム897aは、チャンクコピー857al〜857a2ならびにファイルコピー857b1〜857bnを格納する。同様に、ストレージシステム897bは、チャンクコピー857a3〜857anならびにファイルコピー858b1〜858bnを格納する。一実施形態において、ストレージシステム897bは図2のストレージシステム297と類似している。ストレージシステム897bは、ネットワーク870を使用してブロックストレージサービス865と通信する。一実施形態において、バックアップストレージアダプタ850は、ブロックストレージサービス865が要求をストレージシステム897aへAPIコールとして送り、またストレージAPIフォーマットにてストレージシステム897aが送ってくるストレージAPIコールへの応答を受信できるようにする。ストレージAPIフォーマットはストレージシステム897aが使用するフォーマットであるが、ストレージサービス865はストレージアダプタ850がないとこれを使用することができない。一実施形態において、ストレージシステム897bおよびブロックストレージサービス865は、共通のAPIフォーマットを使用することにより、バックアップストレージアダプタ850のサービスを受けずに通信できる。代替実施形態において、バックアップストレージアダプタ850は、ブロックストレージサービス865が、ストレージシステム897bへ要求をAPIコールとして送り、またストレージAPIフォーマットにてストレージシステム897bが送ってくるストレージAPIコールへの応答を受信できるようにする。ストレージAPIフォーマットはストレージシステム897bが使用するフォーマットであるが、ストレージサービス865はストレージアダプタ850がないとこれを使用することができない。ストレージシステム897aおよびストレージシステム897bは、同一または異なるエンティティによって制御される。
ブロックストレージサービス865がサポートするコンピューティングインスタンスのユーザは、チャンクコピー857a1〜857anで構造されたスナップショットからボリュームAを復元するように要求できる。ブロックストレージサービス865がこの要求に応答し、ボリュームAの作成に必要な構成、例えばストレージシステム897aおよびストレージシステム897b上のチャンクコピー857al〜857anのインポート場所を決定する。ブロックストレージサービス865は、ボリュームA855aとラベル付けした空の受信側ボリュームを作成する。次にブロックストレージサービス865が、チャンクコピー857al〜857anのコンテンツをブロックストレージサービス865へ送信するように要求する取り出し要求を、ストレージシステム897aおよびストレージ897bへ送信する。
一実施形態において、ブロックストレージサービス865がチャンクコピー857al〜857anのコンテンツを受信すると、チャンクコピー857a1〜857anのコンテンツが、チャンク856a1〜856anを含んだスナップショットA856aとしてデポジットされ、その後、チャンク855a1〜855anとしてボリュームAへ転送される。一実施形態において、受信されボリュームA855aへ転送されたコンテンツは、チャンクコピー857a1〜857anからの全データがスナップショットA856A内に受信完了となる前に、利用可能となりコンピューティングインスタンスのユーザに供給される。
ブロックストレージサービス865がサポートするコンピューティングインスタンスのユーザは、ファイルコピー857b1〜857bnならびに858b1〜858bnで構造されたスナップショットB856bからボリュームB855bを復元するよう要求することができる。ブロックストレージサービス865はこうした要求に応答して、ボリュームBの作成に必要な構成、例えばストレージシステム897aおよびストレージシステム897b上のファイルコピー857b1〜857bnおよび858b1〜858bnをインポートする場所を決定する。一実施形態において、ファイルコピー857b1〜857bnおよび858b1〜858bnの各々のインポート元の場所を、ストレージシステム897aおよびストレージシステム897bへのローディングの分散や、あるいはサーバの信頼性や応答性といった他の基準に基づいて決定することができる。
詳細には、ストレージシステム897a上に常駐するファイルコピー857b1〜857bnと、ストレージシステム897b上に常駐するファイルコピー858b1〜858bnとで構造されたスナップショットB856bからボリュームB855bを復元する機能によって、複数形式のストレージ柔軟性が得られる。例えば、ストレージシステム897a上に常駐するファイルコピー857b1〜857bnの取り出しが遅速化するか、またはストレージシステム897aが全く応答しなくなった場合には、ストレージシステム897b上に常駐するファイルコピー858b1〜858bnを取り出すことで、スナップショットB856bについてのデータのインポートを加速することが可能である。あるいは、ファイルコピー857b1〜857bnがストレージシステム897a上に、またファイルコピー858b1〜858bnがストレージシステム897b上に常駐していることで、ファイルコピーがまず高速なストレージサーバ上で作成され、その後により遅速なサーバへ低速でコピーされて、最終的には時間と共に(いくつかの実施形態では、前回使用の時間または作成の時間から計測される)高速なサーバから削除されるというストレージ管理が可能になる。同様に、実施形態は、本開示の範囲から逸脱することなく、ストレージシステム897aに常駐のファイルコピー857b1〜857bnならびにストレージシステム897b上に常駐のファイルコピー858b1〜858bnの分散および使用と類似した複数コピーチャンクの分散を実行する。
ブロックストレージサービス865は、ボリュームB855bとラベル付けした空の受信側ボリュームを作成する。次にブロックストレージサービス865が、ストレージシステム897aおよびストレージシステム897bのうちの選択した一方のコンテンツをブロックストレージサービス865へ送信するよう要求する取り出し要求を、ストレージシステム897aおよびストレージシステム897bへ送信する。
一実施形態において、ファイルコピー857b1〜857bnおよび858b1〜858bnから選択された1つのファイルコピーのコンテンツがブロックストレージサービス865によって受信されると、ファイルコピー857b1〜857bnおよび858b1〜858bnから選択された1つのファイルコピーのコンテンツが、ファイル856b1〜856bnを含むスナップショットB856bとしてデポジットされ、その後、ファイル855b1〜855bnとしてボリュームB855bへ転送される。一実施形態において、受信されボリュームB855bへ転送されたコンテンツは、ファイルコピー857b1〜857bnおよび858b1〜858bnのうちの選択された1つからの全データがスナップショットB856B内に受信完了する前に利用可能となりコンピューティングインスタンスのユーザに供給される。
コンピュータシステム実施形態の例
いくつかの実施形態において、上述した方法、技術、または構成要素はいずれも、コンピュータからアクセスできる媒体経由での格納ならびに伝達が可能な命令およびデータとして実現できるものとみなされる。このような方法または技術には、例えば、また限定なく、個別のユーザのセットの個別のコンピューティングインスタンスのセットに対しブロックレベルストレージを提供するブロックストレージサービスの様々な方法が含まれる。この場合、実施形態は、個別のユーザのセットの個別のコンピューティングインスタンスのセットによって、ブロックレベルストレージに格納されているデータのバックアップコピーを作成するためのバックアップコピー機能と、バックアップコピーを個別のユーザのセットのそれぞれが指定した異なる格納先の場所に格納するための格納機能との両方を提供し、またこれらの機能は、上で述べ、図1〜図7に示したエレメントおよび方法によって、あるいはこのようなエレメントおよび方法の適切な応用形によって実行されるものである。このような命令は、特定の目的(例えば、ウェブサービストラフィックの処理、高精度の数字演算を行うなど)、ならびに高位機能(例えばオペレーティングシステム機能性、仮想化機能性、ネットワーク通信機能性、アプリケーション機能性、および/またはあらゆる他の適切な方法)にあつらえた特定の計算機能を行うために実行される。
コンピュータシステムの例示的な一実施形態は、図9に示すコンピュータからアクセスできる媒体を含む。コンピュータシステム900は、図1の物理コンピュータシステム100の例示的な構成に相当する。これと同様に、様々な実施形態では、上述した様々なモジュールまたは方法のいずれの機能性も(例えば、オペレーティングシステム150、仮想化モジュール160、仮想マシン180、および/または上述した他のエレメントが提供するもの)、コンピュータシステム900の1つ以上のインスタンスによって実現され得る。同様、データセンター200の様々なエレメント、例えばノード210、コンピューティングシステム230、ブロックストレージサービス265、ローカルストレージサービス292、およびデータセンター200のような他の機能ユニットを、コンピュータシステム900の1つ以上複数のインスタンスで実現することができる。
特に、図1に示したシステムの異なる複数のエレメントを異なる複数のコンピュータシステム900によって実現できる点に留意されたい。例えば、仮想化モジュール160を1つのコンピュータ900上で実現し、一方で、仮想マシン200をこれとは異なるコンピュータシステム900上で、仮想化モジュール160の制御下において実現できる。同様に、複数のノード210ならびに複数のコンピューティングシステム230をそれぞれ異なるコンピュータシステム900によって実現し、一方で、ブロックストレージサービス265、リモートストレージシステム297、ローカルストレージシステム292をそれぞれ異なるコンピュータシステム900によって実現することができる。コンピューティングシステムの様々な実施形態において、図9に示す様々な部分を除いた個々のコンピューティングシステム、ならびに図9中では省略されている他の部分を追加した個々のコンピューティングシステムが組み立てられる。
図示の実施形態において、コンピュータシステム900は、入出力(I/O)インターフェース930経由でシステムメモリ920に接続した1つ以上のプロセッサ910を含む。コンピュータシステム900は、I/Oインターフェース930に接続したネットワークインターフェース940をさらに含む。様々な実施形態において、コンピュータシステム900は1つのプロセッサ910を含むユニプロセッサシステム、あるいは複数のプロセッサ910(例えば2、4、8個、または別の適切な個数)を含むマルチプロセッサシステムであってよい。プロセッサ910は、命令を実行できるあらゆる適切なプロセッサであってよい。例えば、様々な実施形態において、プロセッサ910は汎用プロセッサまたは組み込みプロセッサであり、x86、PowerPC(登録商標)、SPARC(登録商標)、またはMIPS(登録商標)ISAのような様々な命令セットアーキテクチャ(ISA)、あるいは他のあらゆる適切なISAを実現する。マルチプロセッサシステムにおいて、通常、各プロセッサ910は同一のISAを実現できるが、しかし必ずしもそうでなくてもよい。
システムメモリ920は、プロセッサ910からアクセスできる命令およびデータを格納するように構成される。様々な実施形態において、システムメモリ920はあらゆる適切なメモリ技術、例えばスタティックランダムアクセスメモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、またはその他のあらゆるタイプのメモリを使用して実現される。図示の実施形態では、上述したような望ましい機能、方法、技術を実現する命令およびデータが、システムメモリ920内にコード925として格納される。いくつかの実施形態において、コード925は、プロセッサ910による直接の実行は不可能であるが、トランスレートすることでプロセッサ910が直接実行できる命令になる抽象形式で表示または符号化されるという望ましい機能を実現する命令およびデータを含んでいてよい。例えば、コード925は、プロセッサ910やプロセッサ910上で実行できる他のコード925によってエミュレートされ得るISA内で指定された命令を含んでいてよい。あるいは、コード925は、コンパイルまたは実行中に解釈される抽象プログラミング言語にて実現できる命令、手順または文を含んでいてもよい。非限定的な例として、コード925は、CまたはC++のような手順指向またはオブジェクト指向の言語、Perlのようなスクリプト言語、HTMLまたはXMLマークアップ言語、もしくは他のあらゆる適切な言語にて指定されたコードを含むことができる。
一実施形態において、I/Oインターフェース930は、プロセッサ910と、システムメモリ920と、そしてネットワークインターフェース940や他の周辺インターフェースを含むデバイス内のあらゆる周辺デバイスとの間でI/Oトラフィックを調整するように構成される。いくつかの実施形態において、I/Oインターフェース930はあらゆる必要なプロトコル、タイミングを実行するか、あるいは、データ信号を或る構成要素(例えばシステムメモリ920)から別の構成要素(例えばプロセッサ910)での使用に適したフォーマットに変換するための他のデータ転換を実行する。いくつかの実施形態において、I/Oインターフェース930は、様々なタイプの周辺バスを介してアタッチされたデバイスのサポートを含んでいてよい。こうした周辺バスには、例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス標準またはユニバーサルシリアルバス(USB)標準の応用形がある。いくつかの実施形態において、I/Oインターフェース930の機能を、例えばノースブリッジおよびサウスブリッジといった2つ以上の別々の構成要素に分割することができる。また、いくつかの実施形態において、例えばシステムメモリ920につないだインターフェースのようなI/Oインターフェース930の機能性のいくつかまたは全てを、プロセッサ910内に直接取り入れることができる。
ネットワークインターフェース940は、コンピュータシステム900とネットワーク120にアタッチされた他のデバイス(例えば他のコンピュータシステム)との間でデータ交換を行えるように構成される。様々な実施形態において、ネットワークインターフェース940は、有線または無線式の汎用データネットワーク、例えばあらゆる適切なタイプのイーサネット(登録商標)ネットワークを介して、アナログ音声ネットワークやデジタルファイバ通信ネットワークのような遠隔通信/電話ネットワーク経由、ファイバチャネルSANのようなストレージエリアネットワーク経由、あるいは他のあらゆる適切なタイプのネットワークおよび/またはプロトコル経由で通信をサポートする。
いくつかの実施形態において、システムメモリ920は、上で述べたような命令およびデータを格納するように構成された、コンピュータからアクセスできるストレージ媒体の一実施形態であってよい。しかし、他の実施形態では、命令および/またはデータは、コンピュータからアクセスできる多様なタイプのストレージ媒体上で受信、送信、格納される。概して、コンピュータからアクセスできるストレージ媒体には、I/Oインターフェース930を介してコンピュータシステム900に接続したディスクやCD/DVD−ROMといった、磁気または光学媒体のようなストレージ媒体またはメモリ媒体が含まれる。コンピュータからアクセスできるストレージ媒体には、コンピュータシステム900のいくつかの実施形態の中にシステムメモリ920または別タイプのメモリとして含まれているあらゆる揮発性または不揮発性ストレージ媒体、例えばRAM(SDRAM、DDR、SDRAM、RDRAM、SRAMなど)、ROMなどが含まれる。コンピュータからアクセスできるストレージ媒体には、総体的に、ネットワークインターフェース940を介して実現されるネットワークおよび/または無線リンクのような通信媒体経由で伝達される送信媒体または信号(電気信号、電磁信号、デジタル信号など)を介してアクセスできる。
上記で実施形態を非常に詳細に説明したが、上述の開示を十分に理解した当業者には多数の応用形および改良形が明白となるだろう。以下の請求項は、こうした応用形および改良形の全てを包括するものと解釈されることが意図される。
付記1.方法であって、
ブロックストレージサービスにより、複数の個別のユーザ用の複数の個別のコンピューティングインスタンスにブロックレベルストレージを提供することと、
上記ブロックレベルストレージ内に格納されたデータのバックアップコピーを上記複数の個別のユーザ用の上記複数の個別のコンピューティングインスタンスで作成し、このバックアップコピーを上記複数の個別のユーザがそれぞれ指定した異なる格納先に格納するバックアップコピー機能をブロックストレージサービスによって提供することと、
上記複数の個別のユーザのうちの特定の1人用のブロックレベルストレージに格納されているデータの少なくとも一部分のバックアップコピーを格納するために、上記複数の個別のユーザのうちの特定の1人からの、特定の格納先を指定する入力をブロックストレージサービスによって受信することと、
上記複数の個別のユーザの上記特定の1人用のブロックレベルストレージに格納されているデータの少なくとも一部分のバックアップコピーを作成し、上記複数の個別のユーザのうちの上記特定の1人用のブロックレベルストレージに格納されているデータの少なくとも一部分のバックアップコピーを特定の格納先に格納することと、
ブロックストレージサービスによって、上記複数の個別のユーザのうちの別の1人からの、上記複数の個別のユーザのうちの別の1人用ブロックレベルストレージに格納されたデータの少なくとも一部分のバックアップコピーを格納するために、異なる格納先を指定する入力を受信することと、
上記複数の個別のユーザのうちの上記別の1人用のブロックレベルストレージに格納されたデータの少なくとも一部分のバックアップコピーを作成し、上記複数の個別のユーザのうちの上記別の1人用のブロックレベルストレージに格納されたデータの少なくとも一部分のバックアップコピーを、異なる格納先に格納することと、を含み、
特定の格納先と異なる格納先とは、互いに遠く離れた場所にある異なるストレージシステムのためのものである、方法。
付記2.バックアップコピー用であるデータの少なくとも一部分を、上記特定のユーザ用の上記複数の個別のコンピューティングインスタンスのうちの1つにアタッチされるブロックレベルストレージボリュームとして指定する入力を、上記特定のユーザから受信することをさらに含む、付記1に記載の方法。
付記3.バックアップコピー用であるデータの少なくとも一部分を、ブロックレベルストレージに格納された1つ以上のファイルとして指定する入力を、特定のユーザから受信することをさらに含む、付記1に記載の方法。
付記4.バックアップコピー用であるデータの少なくとも一部分をブロックレベルストレージ内のデータ場所レンジとして指定する入力を、特定のユーザから受信することをさらに含む、付記1に記載の方法。
付記5.上記特定のユーザ用のブロックレベルストレージに格納されているデータの少なくとも一部分は、上記特定のユーザ用の上記複数の個別のコンピューティングインスタンスのうちの少なくとも1つにアタッチされたブロックレベルストレージボリュームであり、上記方法は、上記ブロックレベルストレージボリュームのポイントインタイムスナップショットを作成することをさらに含み、上記バックアップコピーはこのポイントインタイムスナップショットのコピーである、付記1に記載の方法。
付記6.バックアップコピーを格納するために少なくとも1つの別の格納先を指定する入力を、特定のユーザから受信することと、
ブロックストレージサービスによって、上記特定の格納先に加え、バックアップコピーを少なくとも1つの別の格納先に格納することと、をさらに含む、付記1に記載の方法
付記7.方法であって、
上記特定のユーザ用のブロックレベルストレージに格納されているデータの別の部分のバックアップコピーを格納するために少なくとも1つの他の格納先を指定する入力を、特定のユーザから受信することと、
ブロックストレージサービスによって、データの別の部分のバックアップコピーを他の格納先に格納することと、を含む、付記1に記載の方法。
付記8.上記特定の格納先は、ブロックストレージサービスと同一のエンティティによって操作されるストレージシステムのためのものであり、
異なる格納先は、異なるエンティティによって操作されるストレージシステムのためのものである、付記1に記載の方法。
付記9.特定の格納先への格納と、上記異なる格納先への格納の両方は、共通のアプリケーションプログラミングインターフェース(API)に従って実行される、付記1に記載の方法。
付記10.特定の格納先への上記格納と、異なる格納先への上記格納とは、異なるAPIに従って実行される、付記1に記載の方法。
付記11.上記特定のユーザから、特定の格納先にデータを格納するためにインターフェースモジュールを受信することをさらに含み、上記インターフェースモジュールは、特定の格納先のためのストレージAPIに従ってストレージオペレーションを実行する、付記10に記載の方法。
付記12.ブロックレベルストレージ内に特定のユーザ用のストレージボリュームを作成または復元することをさらに含み、上記作成することは、上記特定の格納先から上記バックアップコピーを取り出すことを含む、付記1に記載の方法。
付記13.システムであって、
ブロックストレージサービスを実現するように構成された1つ以上のコンピュータを備え、このブロックストレージサービスは、
或るユーザ用のコンピューティングインスタンスからデータを格納するブロックレベルストレージと、
上記ユーザが、上記ユーザ用のブロックレベルストレージ内に格納されている各データのバックアップコピーを格納するために格納先をそれぞれ指定できるように構成されたインターフェースであって、上記それぞれの格納先の少なくともいくつかは、互いに遠く離れた場所にある異なるストレージシステムのためのものであるインターフェースと、
上記ユーザ用の上記複数の個別のコンピューティングインスタンスによって、上記ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、このバックアップコピーを上記インターフェース経由で上記ユーザが指定した異なる格納先の場所に格納するためのバックアップコピー機能と、を備える、システム。
付記14.ブロックレベルストレージは、複数の個別のユーザ用の複数の個別のコンピューティングインスタンスからのデータを格納するようにさらに構成されており、
インターフェースは、上記複数の個別のユーザが、上記複数の個別のユーザ用のブロックレベルストレージに格納されている上記各データの上記バックアップコピーを格納するために、上記格納先をそれぞれ指定できるようにさらに構成されており、
バックアップコピー機能は、上記複数の個別のユーザ用の上記ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、このバックアップコピーを、上記複数の個別のユーザのうちの各ユーザが上記インターフェース経由で指定した異なる格納先の場所に格納するようにさらに構成されている、付記13に記載のシステム。
付記15.ブロックレベルストレージは、各々が上記複数の個別のコンピューティングインスタンスの少なくとも1つにアタッチされた1つ以上のブロックレベルストレージボリュームを格納し、ブロックストレージサービスは、1つ以上のブロックレベルストレージボリュームのポイントインタイムスナップショットを作成するようにさらに構成されており、上記バックアップコピーはこのポイントインタイムスナップショットのコピーである、付記14に記載のシステム。
付記16.上記インターフェースは、上記複数の個別のユーザのうちの所与の1人が、上記ブロックレベルストレージ内に上記複数の個別のユーザのうちの所与の1人のために格納されているデータのバックアップコピーを格納するために、複数の個別の格納先を指定できるようにさらに構成されている、付記14に記載のシステム。
付記17.それぞれの格納先のうちの1つは、ブロックストレージサービスと同一のエンティティによって動作されるストレージシステムのためのものであり、それぞれの格納先のうちの別の1つは、上記とは異なるエンティティによって動作されるストレージシステムのためのものである、付記14に記載のシステム。
付記18.上記ブロックストレージサービスは、バックアップコピーを、共通のアプリケーションプログラミングインターフェース(API)に従ってそれぞれの格納先に格納するように構成されている、付記14に記載のシステム。

付記19.上記ブロックストレージサービスは、バックアップコピーを、異なるAPIに準拠してそれぞれの格納先に格納するように構成されている、付記14に記載のシステム。
付記20.ブロックストレージサービスは、上記特定のユーザから、特定の格納先へのデータを格納するためのプラガブルモジュールを受容するように構成され、プラガブルモジュールは、特定の格納先のためのストレージAPIに準拠してストレージ操作を実行する、付記19に記載のシステム。
付記21.方法であって、
ブロックストレージサービスによって、ストレージボリュームのスナップショットコピーの取り出し元である特定のインポート場所を指定する入力を受信することと、
ブロックストレージサービスによって、スナップショットコピーを特定のインポート場所から取り出すことと、
スナップショットコピーに基づいて、ブロックストレージサービスのブロックレベルストレージ内にブロックレベルストレージボリュームを作成または復元することと、
複数の個別のユーザのうちの特定のユーザにブロックレベルストレージボリュームを提供することと、
複数の個別のユーザのうちの別の1人のための異なるインポート場所からの別のスナップショットコピーについて、上記受信すること、上記取り出すこと、上記作成または復元すること、および上記提供することを繰り返すことと、を含む、システム。
付記22.複数の個別のユーザのうちの特定のユーザにブロックストレージ容量を提供することは、この複数の個別のユーザのうちの特定のユーザ用のコンピューティングインスタンスにブロックストレージボリュームを提供することをさらに含む、付記21に記載の方法。
付記23.ブロックストレージサービスによって、スナップショットコピーを特定のインポート場所から取り出すことは、
コンピューティングインスタンスから受信した、選択されたデータをブロックレベルストレージボリュームから読み出しせよとの要求に応答して、選択されたデータを特定のインポート場所から取り出すことと、
選択されていないデータを特定のインポート場所から取り出すことと、をさらに含む、付記22に記載の方法。
付記24.選択されていないデータを特定のインポート場所から取り出すことは、選択されていないデータを、予測される要求のパターンを表すために決定された順序で特定のインポート場所から取り出すことをさらに含む、付記23に記載の方法。
付記25.コンピューティングインスタンスにブロックレベルストレージボリュームを提供することは、選択されていないデータの取り出しが完了する前に、選択されたデータを提供することをさらに含む、付記23に記載の方法。
付記26.特定のインポート場所は、ブロックストレージサービスと同一のエンティティによって動作されるストレージシステムのためのものであり、これと異なるインポート場所は異なるエンティティによって動作されるストレージシステムのためのものである、付記22に記載の方法。
付記27.上記取り出すことと、上記取り出しを上記繰り返すことは、両方とも共通のアプリケーションプログラミングインターフェース(API)に準拠して行われる、付記22に記載の方法。
付記28.上記取り出すことと、上記取り出しを繰り返すこととは、異なるAPIに準拠して行われる、付記22に記載の方法。
付記29.特定のインポート場所からデータを取り出すために、インターフェースモジュールを上記入力に関連した特定のユーザから受信することをさらに含み、上記インターフェースモジュールは、特定のインポート場所のためのストレージAPIに準拠して、取り出しオペレーションを行う、付記22に記載の方法。
付記30.プログラム命令を格納する非一時的なコンピュータ可読媒体であって、上記プログラム命令は1つ以上のコンピュータ上で実行されると、
複数の個別のユーザ用の複数の個別のコンピューティングインスタンスからのデータを格納するブロックレベルストレージと、
上記複数の個別のユーザが、上記個別のユーザ用のブロックレベルストレージに格納されているそれぞれのデータのバックアップコピーを格納するために、それぞれの格納先を指定できるように構成されたインターフェースであって、それぞれの格納先の少なくともいくつかは、互いから遠く離れた場所にある異なるストレージシステムのためのものであるインターフェースと、
上記複数の個別のユーザ用の上記複数の個別のコンピューティングインスタンスによって、上記ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、このバックアップコピーを、上記複数の個別のユーザのうちの各1人がインターフェース経由で指定した異なる格納先の場所に格納するバックアップコピー機能とを実現する、非一時的なコンピュータ可読媒体。
付記31.ブロックレベルストレージは、上記複数の個別のコンピューティングインスタンスのうちの少なくとも1つにそれぞれアタッチされた1つ以上のブロックレベルストレージボリュームを格納し、ブロックストレージサービスは、この1つ以上のブロックレベルストレージボリュームのポイントインタイムスナップショットを作成するようにさらに構成されており、上記バックアップコピーはこのポイントインタイムスナップショットのコピーである、付記30に記載の方法。
付記32.上記インターフェースは、上記複数の個別のユーザのうちの所与の1人が、上記複数の個別のユーザのうちの上記1人のために上記ブロックレベルストレージに格納されているデータのバックアップコピーを格納するために、複数の個別の格納先を指定できる、付記30に記載の媒体。
付記33.それぞれの格納先のうちの1つは、ブロックストレージサービスと同一のエンティティによって動作されるストレージシステムのためのものであり、それぞれの格納先のうちの別の1つは、上記とは異なるエンティティによって動作されるストレージシステムのためのものである、付記30に記載の媒体。

Claims (15)

  1. システムであって、
    ブロックストレージサービスを実現するように構成された1つ以上のコンピュータを備え、
    前記ブロックストレージサービスは、
    或るユーザ用のコンピューティングインスタンスからのデータを格納するブロックレベルストレージと、
    前記ユーザが前記ユーザ用の前記ブロックレベルストレージに格納されているそれぞれのデータのバックアップコピーを格納するために、それぞれの格納先を指定できるように構成されたインターフェースであって、前記それぞれの格納先の少なくともいくつかが、互いに遠く離れた場所にある異なるストレージシステムのためのものである、インターフェースと、
    前記ユーザ用の前記コンピューティングインスタンスによって、前記ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、前記バックアップコピーを、前記ユーザにより前記インターフェースを介して指定された異なる格納先の場所に格納するバックアップコピー機能と、を備えている、システム。
  2. 前記ブロックレベルストレージは、複数の個別のユーザ用の複数の個別のコンピューティングインスタンスからのデータを格納するようにさらに構成されており、
    前記インターフェースは、前記複数の個別のユーザが、前記複数の個別のユーザ用の前記ブロックレベルストレージに格納されている前記それぞれのデータの前記バックアップコピーを格納するための前記それぞれの格納先を指定できるようにさらに構成されており、
    前記バックアップコピー機能は、前記複数の個別のユーザ用の前記ブロックレベルストレージに格納されているデータのバックアップコピーを作成し、前記バックアップコピーを、前記複数の個別のユーザのそれぞれにより前記インターフェースを介して指定された異なる格納先の場所に格納するようにさらに構成されている、請求項1に記載のシステム。
  3. 前記ブロックレベルストレージは、前記複数の個別のコンピューティングインスタンスのうちの少なくとも1つにそれぞれ付属されている1つ以上のブロックレベルストレージボリュームを格納し、前記ブロックストレージサービスは、前記1つ以上のブロックレベルストレージボリュームのポイントインタイムスナップショットを作成するようにさらに構成されており、前記バックアップコピーは前記ポイントインタイムスナップショットのコピーである、請求項2に記載のシステム。
  4. 前記インターフェースは、前記複数の個別のユーザのうちの所与の1人が、前記複数の個別のユーザのうちの前記所与の1人用に前記ブロックレベルストレージに格納されているデータのバックアップコピーを格納するための複数の個別の格納先を指定できるようにさらに構成されている、請求項2に記載のシステム。
  5. 前記それぞれの格納先のうちの1つは、前記ブロックストレージサービスと同一のエンティティによって動作されるストレージシステム用であり、前記それぞれの格納先のうちの別の1つは、異なるエンティティによって動作されるストレージシステム用である、請求項2に記載のシステム。
  6. 前記ブロックストレージサービスは、共通のアプリケーションプログラミングインターフェース(API)に従って、前記バックアップコピーを前記それぞれの格納先に格納するように構成されている、請求項2に記載のシステム。
  7. 前記ブロックストレージサービスは、異なるAPIに従って、前記バックアップコピーを前記それぞれの格納先に格納するように構成されている、請求項2に記載のシステム。
  8. 前記ブロックストレージサービスは、前記特定のユーザから、データを特定の格納先に格納するプラガブルモジュールを受容するようにさらに構成されており、前記プラガブルモジュールは、前記特定の格納先についてのストレージAPIに従って格納操作を実行する、請求項7に記載のシステム。
  9. ブロックストレージサービスによって、ストレージボリュームのスナップショットコピーを取り出す特定のインポート場所を指定する入力を受信することと、
    前記ブロックストレージサービスによって、前記特定のインポート場所から前記スナップショットコピーを取り出すことと、
    前記スナップショットコピーに基づいて、前記ブロックストレージサービスのブロックレベルストレージ内にブロックレベルストレージボリュームを作成または復元することと、
    前記ブロックレベルストレージボリュームを複数の個別のユーザのうちの特定の1ユーザに提供することと、
    前記複数の個別のユーザのうちの別の1人用の異なるインポート場所からの別のスナップショットコピーについて、前記受信、前記取り出し、前記作成または復元、および前記提供を繰り返すことと、を含む、方法。
  10. 複数の個別のユーザのうちの特定のユーザに前記ブロックストレージボリュームを提供することは、前記ブロックストレージボリュームを前記複数の個別のユーザのうちの前記特定のユーザ用のコンピューティングインスタンスに提供することをさらに含む、請求項9に記載の方法。
  11. 前記特定のインポート場所から前記ブロックストレージサービスによって前記スナップショットコピーを取り出すことは、
    前記コンピューティングインスタンスから受信した、前記ブロックレベルストレージボリュームから選択されたデータを読み出す旨の要求に応答して、選択されたデータを前記特定のインポート場所から取り出すことと、
    選択されていないデータを前記特定のインポート場所から取り出すことと、
    をさらに含む、請求項10に記載の方法。
  12. 前記選択されていないデータを前記特定のインポート場所から取り出すことは、前記選択されていないデータを、予測される要求のパターンを示すために決められた順序で前記特定のインポート場所から取り出すことをさらに含む、請求項11に記載の方法。
  13. 前記ブロックレベルストレージボリュームを前記コンピューティングインスタンスに提供することは、前記選択されていないデータの取り出しが完了する前に前記選択されたデータを提供することをさらに含む、請求項11に記載の方法。
  14. 前記特定のインポート場所は、前記ブロックストレージサービスと同一のエンティティによって動作されるストレージシステム用であり、前記異なるインポート場所は、異なるエンティティによって動作されるストレージシステム用である、請求項10に記載の方法。
  15. 前記特定のインポート場所からデータを取り出すためのインターフェースモジュールを、前記入力に関連する特定のユーザから受信することをさらに含み、前記インターフェースモジュールは、前記特定のインポート場所についてのストレージAPIに従って取り出し操作を実行する、請求項10に記載の方法。
JP2013531617A 2010-09-28 2011-09-12 スナップショットアーカイブの柔軟な格納および取り出しを提供するためのシステムおよび方法 Active JP5760088B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/892,735 2010-09-28
US12/892,735 US9304867B2 (en) 2010-09-28 2010-09-28 System and method for providing flexible storage and retrieval of snapshot archives
PCT/US2011/051221 WO2012047451A1 (en) 2010-09-28 2011-09-12 System and method for providing flexible storage and retrieval of snapshot archives

Publications (2)

Publication Number Publication Date
JP2013540314A true JP2013540314A (ja) 2013-10-31
JP5760088B2 JP5760088B2 (ja) 2015-08-05

Family

ID=45871855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013531617A Active JP5760088B2 (ja) 2010-09-28 2011-09-12 スナップショットアーカイブの柔軟な格納および取り出しを提供するためのシステムおよび方法

Country Status (8)

Country Link
US (2) US9304867B2 (ja)
EP (1) EP2622489B1 (ja)
JP (1) JP5760088B2 (ja)
CN (1) CN103140842B (ja)
CA (2) CA3030497C (ja)
ES (1) ES2568258T3 (ja)
SG (1) SG189147A1 (ja)
WO (1) WO2012047451A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018110003A (ja) * 2013-11-11 2018-07-12 アマゾン テクノロジーズ インコーポレイテッド 仮想マシンインスタンスのための自動ディレクトリ結合
US10375013B2 (en) 2013-11-11 2019-08-06 Amazon Technologies, Inc. Managed directory service connection
US10509663B1 (en) 2015-02-04 2019-12-17 Amazon Technologies, Inc. Automatic domain join for virtual machine instances

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
KR20120036209A (ko) * 2010-10-07 2012-04-17 삼성전자주식회사 컴퓨팅 시스템에서 부트 이미지의 크기를 최적화하는 부팅이미지 생성방법
JP5870999B2 (ja) * 2011-06-28 2016-03-01 富士通株式会社 データ処理方法およびデータ処理システム
US9635132B1 (en) 2011-12-15 2017-04-25 Amazon Technologies, Inc. Service and APIs for remote volume-based block storage
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9298715B2 (en) * 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9110600B1 (en) 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
US9201887B1 (en) * 2012-03-30 2015-12-01 Emc Corporation Cluster file server proxy server for backup and recovery
US8745010B2 (en) * 2012-04-12 2014-06-03 Hewlett-Packard Development Company, L.P. Data storage and archiving spanning multiple data storage systems
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9237195B2 (en) * 2012-04-27 2016-01-12 Netapp, Inc. Virtual storage appliance gateway
US9246996B1 (en) 2012-05-07 2016-01-26 Amazon Technologies, Inc. Data volume placement techniques
US9823840B1 (en) 2012-05-07 2017-11-21 Amazon Technologies, Inc. Data volume placement techniques
US11379354B1 (en) 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
US9503517B1 (en) 2012-05-07 2016-11-22 Amazon Technologies, Inc. Data volume placement techniques
US9804993B1 (en) 2012-05-07 2017-10-31 Amazon Technologies, Inc. Data volume placement techniques
US9489354B1 (en) * 2012-06-27 2016-11-08 Amazon Technologies, Inc. Masking content while preserving layout of a webpage
US9710475B1 (en) 2012-07-16 2017-07-18 Tintri Inc. Synchronization of data
CN102917077A (zh) * 2012-11-20 2013-02-06 无锡城市云计算中心有限公司 云计算系统中的资源分配方法
US9286086B2 (en) 2012-12-21 2016-03-15 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US20140181038A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to categorize unprotected virtual machines
US9069594B1 (en) * 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US9058299B2 (en) * 2013-01-08 2015-06-16 Red Hat Israel, Ltd. Efficient copying between storage devices
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US20140201162A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Systems and methods to restore selected files from block-level backup for virtual machines
US9286110B2 (en) 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall in a data storage system
US9503268B2 (en) * 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system
US9336013B2 (en) * 2013-02-08 2016-05-10 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US8732135B1 (en) 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US8874527B2 (en) * 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US8682870B1 (en) 2013-03-01 2014-03-25 Storagecraft Technology Corporation Defragmentation during multiphase deduplication
US9817835B2 (en) 2013-03-12 2017-11-14 Tintri Inc. Efficient data synchronization for storage containers
JP2014191399A (ja) * 2013-03-26 2014-10-06 Fujitsu Ltd 情報処理システム、記憶装置、およびバックアップ方法
US9582297B2 (en) * 2013-05-16 2017-02-28 Vmware, Inc. Policy-based data placement in a virtualized computing environment
US9417815B1 (en) * 2013-06-21 2016-08-16 Amazon Technologies, Inc. Capturing snapshots of storage volumes
US10235392B1 (en) 2013-06-26 2019-03-19 EMC IP Holding Company LLC User selectable data source for data recovery
US10353783B1 (en) 2013-06-26 2019-07-16 EMC IP Holding Company LLC Pluggable recovery in a data protection system
US9904606B1 (en) 2013-06-26 2018-02-27 EMC IP Holding Company LLC Scheduled recovery in a data protection system
US9641486B1 (en) * 2013-06-28 2017-05-02 EMC IP Holding Company LLC Data transfer in a data protection system
US9703618B1 (en) 2013-06-28 2017-07-11 EMC IP Holding Company LLC Communication between a software program that uses RPC with another software program using a different communications protocol enabled via proxy
US9280372B2 (en) * 2013-08-12 2016-03-08 Amazon Technologies, Inc. Request processing techniques
US9348634B2 (en) 2013-08-12 2016-05-24 Amazon Technologies, Inc. Fast-booting application image using variation points in application source code
US10346148B2 (en) 2013-08-12 2019-07-09 Amazon Technologies, Inc. Per request computer system instances
US9384150B2 (en) * 2013-08-20 2016-07-05 Janus Technologies, Inc. Method and apparatus for performing transparent mass storage backups and snapshots
US10628378B2 (en) * 2013-09-03 2020-04-21 Tintri By Ddn, Inc. Replication of snapshots and clones
US20150074536A1 (en) * 2013-09-12 2015-03-12 Commvault Systems, Inc. File manager integration with virtualization in an information management system, including user control and storage management of virtual machines
US9563385B1 (en) 2013-09-16 2017-02-07 Amazon Technologies, Inc. Profile-guided data preloading for virtualized resources
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US8751454B1 (en) 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
US20150227602A1 (en) * 2014-02-13 2015-08-13 Actifio, Inc. Virtual data backup
US10250673B1 (en) 2014-03-14 2019-04-02 Amazon Technologies, Inc. Storage workload management using redirected messages
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
US11416459B2 (en) 2014-04-11 2022-08-16 Douglas T. Migliori No-code, event-driven edge computing platform
US9471283B2 (en) * 2014-06-11 2016-10-18 Ca, Inc. Generating virtualized application programming interface (API) implementation from narrative API documentation
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US9697268B1 (en) 2014-09-16 2017-07-04 Amazon Technologies, Inc. Bulk data distribution system
US9710465B2 (en) 2014-09-22 2017-07-18 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US9417968B2 (en) 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US10747730B2 (en) * 2014-10-10 2020-08-18 Sap Se Providing extended file storage for applications
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
GB2533342A (en) * 2014-12-17 2016-06-22 Ibm Checkpointing module and method for storing checkpoints
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US10657004B1 (en) * 2015-03-23 2020-05-19 Amazon Technologies, Inc. Single-tenant recovery with a multi-tenant archive
US9998537B1 (en) * 2015-03-31 2018-06-12 EMC IP Holding Company LLC Host-side tracking of data block changes for incremental backup
US10353780B1 (en) * 2015-03-31 2019-07-16 EMC IP Holding Company LLC Incremental backup in a distributed block storage environment
US9756020B2 (en) * 2015-04-27 2017-09-05 Microsoft Technology Licensing, Llc Persistent uniform resource locators (URLs) for client applications acting as web services
CN105302664B (zh) * 2015-09-22 2019-01-04 上海爱数信息技术股份有限公司 一种存储快照管理方法及系统
CN106933699B (zh) * 2015-12-30 2021-11-30 中移(苏州)软件技术有限公司 一种快照删除方法及装置
US10452286B2 (en) * 2016-02-17 2019-10-22 Quest Software Inc. Leveraging continuous replication to copy snapshot backup image
US10592350B2 (en) 2016-03-09 2020-03-17 Commvault Systems, Inc. Virtual server cloud file system for virtual machine restore to cloud operations
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
US10019571B2 (en) * 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
US10025790B2 (en) 2016-06-03 2018-07-17 Portworx, Inc. Chain file system
US10747630B2 (en) 2016-09-30 2020-08-18 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node
US10210048B2 (en) 2016-10-25 2019-02-19 Commvault Systems, Inc. Selective snapshot and backup copy operations for individual virtual machines in a shared storage
US10152251B2 (en) 2016-10-25 2018-12-11 Commvault Systems, Inc. Targeted backup of virtual machine
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
US11010064B2 (en) * 2017-02-15 2021-05-18 Amazon Technologies, Inc. Data system with flush views
US10896100B2 (en) 2017-03-24 2021-01-19 Commvault Systems, Inc. Buffered virtual machine replication
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
CN108701048B (zh) * 2017-09-29 2020-09-11 华为技术有限公司 数据加载方法及装置
US10503444B2 (en) 2018-01-12 2019-12-10 Vmware, Inc. Object format and upload process for archiving data in cloud/object storage
US10705922B2 (en) 2018-01-12 2020-07-07 Vmware, Inc. Handling fragmentation of archived data in cloud/object storage
US10503602B2 (en) * 2018-01-12 2019-12-10 Vmware Inc. Deletion and restoration of archived data in cloud/object storage
US10783114B2 (en) 2018-01-12 2020-09-22 Vmware, Inc. Supporting glacier tiering of archived data in cloud/object storage
JP7158864B2 (ja) * 2018-02-13 2022-10-24 キヤノン株式会社 システムおよびそれを用いる方法
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US10877928B2 (en) 2018-03-07 2020-12-29 Commvault Systems, Inc. Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
US10768835B1 (en) 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US10860608B2 (en) 2018-10-25 2020-12-08 EMC IP Holding Company LLC Any point in time replication to the cloud
US11526405B1 (en) * 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US10853208B2 (en) * 2018-12-11 2020-12-01 EMC IP Holding Company LLC Transferring a writable data set to a cloud service that is separate from the writable data set and terminate a snapshot after transfer
US10642698B1 (en) * 2018-12-21 2020-05-05 EMC IP Holding Company LLC System and method for consumption based tagging of resources
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US10996974B2 (en) 2019-01-30 2021-05-04 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
CN111913832B (zh) * 2019-05-10 2024-07-09 杭州信核数据科技股份有限公司 一种基于对象存储的块级cdp数据存储容灾方法和设备
US11620056B2 (en) * 2019-06-28 2023-04-04 EMC IP Holding Company LLC Snapshots for any point in time replication
US11169723B2 (en) 2019-06-28 2021-11-09 Amazon Technologies, Inc. Data storage system with metadata check-pointing
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11288131B2 (en) * 2020-02-27 2022-03-29 EMC IP Holding Company LLC Extending snapshot retention
US12039474B2 (en) * 2020-02-28 2024-07-16 Uber Technologies, Inc. Storage location selection according to query evaluation
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11500669B2 (en) 2020-05-15 2022-11-15 Commvault Systems, Inc. Live recovery of virtual machines in a public cloud computing environment
US11182096B1 (en) 2020-05-18 2021-11-23 Amazon Technologies, Inc. Data storage system with configurable durability
US11368306B2 (en) 2020-08-14 2022-06-21 Oracle International Corporation Techniques for using signed nonces to secure cloud shells
US11374792B2 (en) 2020-08-14 2022-06-28 Oracle International Corporation Techniques for utilizing multiple network interfaces for a cloud shell
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
EP4196899A1 (en) * 2020-08-14 2023-06-21 Oracle International Corporation Techniques for persisting data across instances of a cloud shell
US11681443B1 (en) 2020-08-28 2023-06-20 Amazon Technologies, Inc. Durable data storage with snapshot storage space optimization
US11262918B1 (en) 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US12032516B1 (en) 2021-03-30 2024-07-09 Amazon Technologies, Inc. File-level snapshot access service
WO2022248047A1 (en) * 2021-05-27 2022-12-01 Huawei Technologies Co., Ltd. Method of continuous data protection (cdp) in a data storage system using delta compression
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004053696A1 (ja) * 2002-12-11 2004-06-24 Fujitsu Limited バックアップシステム,バックアップ制御装置,バックアップデータ管理方法,バックアップ制御プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US20100011178A1 (en) * 2008-07-14 2010-01-14 Vizioncore, Inc. Systems and methods for performing backup operations of virtual machine files
US20100049930A1 (en) * 2008-08-25 2010-02-25 Vmware, Inc. Managing Backups Using Virtual Machines

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784883A (ja) 1993-09-17 1995-03-31 Hitachi Ltd 仮想計算機システムのアドレス変換バッファパージ方法
US6269431B1 (en) * 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6463509B1 (en) 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
CA2322601A1 (en) 2000-10-06 2002-04-06 Ibm Canada Limited-Ibm Canada Limitee System and method for generating a filtered product list from a master product list in a contract
US7958199B2 (en) 2001-11-02 2011-06-07 Oracle America, Inc. Switching systems and methods for storage management in digital networks
US7580972B2 (en) 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
CA2380762A1 (en) 2002-04-04 2003-10-04 Intrinsyc Software, Inc. Internet-enabled device provisioning, upgrade and recovery mechanism
JP4257834B2 (ja) 2003-05-06 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 磁気ディスク装置、ファイル管理システム及びその方法
US7302536B2 (en) 2003-06-17 2007-11-27 Hitachi, Ltd. Method and apparatus for managing replication volumes
US8392612B2 (en) * 2003-12-24 2013-03-05 Apple Inc. Replication server selection method
US8825591B1 (en) 2003-12-31 2014-09-02 Symantec Operating Corporation Dynamic storage mechanism
US7536424B2 (en) 2004-05-02 2009-05-19 Yoram Barzilai System and methods for efficiently managing incremental data backup revisions
US7546323B1 (en) * 2004-09-30 2009-06-09 Emc Corporation System and methods for managing backup status reports
US7702830B2 (en) * 2005-10-12 2010-04-20 Storage Appliance Corporation Methods for selectively copying data files to networked storage and devices for initiating the same
US20070180207A1 (en) * 2006-01-18 2007-08-02 International Business Machines Corporation Secure RFID backup/restore for computing/pervasive devices
CN101632068B (zh) 2007-12-28 2015-01-14 株式会社东芝 半导体存储装置
US7487219B1 (en) 2008-02-15 2009-02-03 International Business Machines Corporation Virtual storage device from multiple online accounts
JP5642338B2 (ja) 2008-03-10 2014-12-17 富士通株式会社 ジョブ管理プログラムおよびジョブ管理方法
US8261317B2 (en) 2008-03-27 2012-09-04 Juniper Networks, Inc. Moving security for virtual machines
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8285687B2 (en) 2008-08-27 2012-10-09 Netapp, Inc. System and method for file system level compression using compression group descriptors
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
CN101351006B (zh) * 2008-09-05 2011-12-14 宇龙计算机通信科技(深圳)有限公司 一种移动终端的通信数据备份方法及系统
CN102160035A (zh) 2008-09-18 2011-08-17 马维尔国际贸易有限公司 至少部分地在引导期间向存储器预加载应用
US8190832B2 (en) 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US8190811B2 (en) 2009-06-09 2012-05-29 Seagate Technology, Llc Defragmentation of solid state memory
US8402140B2 (en) 2010-01-13 2013-03-19 Nec Laboratories America, Inc. Methods and apparatus for coordinated energy management in virtualized data centers
US8903773B2 (en) * 2010-03-31 2014-12-02 Novastor Corporation Computer file storage, backup, restore and retrieval
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US8874991B2 (en) 2011-04-01 2014-10-28 Cleversafe, Inc. Appending data to existing data stored in a dispersed storage network
US9021475B2 (en) 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004053696A1 (ja) * 2002-12-11 2004-06-24 Fujitsu Limited バックアップシステム,バックアップ制御装置,バックアップデータ管理方法,バックアップ制御プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US20100011178A1 (en) * 2008-07-14 2010-01-14 Vizioncore, Inc. Systems and methods for performing backup operations of virtual machine files
US20100049930A1 (en) * 2008-08-25 2010-02-25 Vmware, Inc. Managing Backups Using Virtual Machines

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200900033003; 中田 敦: 'Close Up' 日経コンピュータ 第717号, 20081115, pp.108-112, 日経BP社 *
JPN6014050493; 中田 敦: 'Close Up' 日経コンピュータ 第717号, 20081115, pp.108-112, 日経BP社 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018110003A (ja) * 2013-11-11 2018-07-12 アマゾン テクノロジーズ インコーポレイテッド 仮想マシンインスタンスのための自動ディレクトリ結合
US10375013B2 (en) 2013-11-11 2019-08-06 Amazon Technologies, Inc. Managed directory service connection
US10447610B1 (en) 2013-11-11 2019-10-15 Amazon Technologies, Inc. Techniques for network redirection
US10511566B2 (en) 2013-11-11 2019-12-17 Amazon Technologies, Inc. Managed directory service with extension
US10530742B2 (en) 2013-11-11 2020-01-07 Amazon Technologies Inc. Managed directory service
US10908937B2 (en) 2013-11-11 2021-02-02 Amazon Technologies, Inc. Automatic directory join for virtual machine instances
US10509663B1 (en) 2015-02-04 2019-12-17 Amazon Technologies, Inc. Automatic domain join for virtual machine instances

Also Published As

Publication number Publication date
US9886213B2 (en) 2018-02-06
JP5760088B2 (ja) 2015-08-05
CN103140842A (zh) 2013-06-05
EP2622489A4 (en) 2015-03-18
US9304867B2 (en) 2016-04-05
ES2568258T3 (es) 2016-04-28
US20160216896A1 (en) 2016-07-28
CA3030497C (en) 2021-02-16
CA3030497A1 (en) 2012-04-12
EP2622489B1 (en) 2016-04-06
CA2812912C (en) 2019-02-26
CN103140842B (zh) 2016-06-15
WO2012047451A1 (en) 2012-04-12
SG189147A1 (en) 2013-05-31
CA2812912A1 (en) 2012-04-12
US20120079221A1 (en) 2012-03-29
EP2622489A1 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
JP5760088B2 (ja) スナップショットアーカイブの柔軟な格納および取り出しを提供するためのシステムおよび方法
US11368519B2 (en) Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
US11507466B2 (en) Method and apparatus of managing application workloads on backup and recovery system
US11030053B2 (en) Efficient disaster rollback across heterogeneous storage systems
US11467755B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
US11199971B2 (en) Managing operational parameters for migrating data for resized volumes
AU2015229684B2 (en) Page cache write logging at block-based storage
US10372561B1 (en) Block storage relocation on failure
US10740133B2 (en) Automated data migration of services of a virtual machine to containers
US10754741B1 (en) Event-driven replication for migrating computing resources
US8498997B2 (en) Server image migration
US10120764B1 (en) Efficient disaster recovery across heterogeneous storage systems
US9946565B2 (en) Management of cloud-computing facility through a virtual infrastructure management server
JP2018513510A (ja) データボリュームの動的な構成
US11748133B2 (en) Methods and systems for booting virtual machines in the cloud
US11269926B1 (en) Flexible storage volumes
US10339011B1 (en) Method and system for implementing data lossless synthetic full backups
US11853783B1 (en) Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140407

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140414

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140507

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150608

R150 Certificate of patent or registration of utility model

Ref document number: 5760088

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250