JP2018531445A - コピーリダイレクト・オン・ライト - Google Patents

コピーリダイレクト・オン・ライト Download PDF

Info

Publication number
JP2018531445A
JP2018531445A JP2018511112A JP2018511112A JP2018531445A JP 2018531445 A JP2018531445 A JP 2018531445A JP 2018511112 A JP2018511112 A JP 2018511112A JP 2018511112 A JP2018511112 A JP 2018511112A JP 2018531445 A JP2018531445 A JP 2018531445A
Authority
JP
Japan
Prior art keywords
volume
point
time copy
copy
snapshot
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
JP2018511112A
Other languages
English (en)
Other versions
JP6722277B2 (ja
JP2018531445A6 (ja
Inventor
ビーケン、クリストファー、バリー
ブラウン、ジョアンナ
フェンテ、カルロス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2018531445A publication Critical patent/JP2018531445A/ja
Publication of JP2018531445A6 publication Critical patent/JP2018531445A6/ja
Application granted granted Critical
Publication of JP6722277B2 publication Critical patent/JP6722277B2/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/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/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
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】 ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステム、方法及びコンピュータプログラム製品を提供すること。
【解決手段】 ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステム、方法及びコンピュータプログラム製品であって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、各ボリュームは、ホスト部分を有し、ここで、ソース・ボリュームのホスト部分とスナップショット・ボリュームのホスト部分とをスワップするためのスワップ・コンポーネントと、ソース・コンポーネントのグレイン内の第1のデータ値を第2のデータ値で上書きするI/O要求に応答して、第2のデータ値をスナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むため、及び、クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが第1のデータ値を含んでいないことに応答して、第1のデータ値をクローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインへとコピーするための、I/Oコンポーネントとを含む、システム、方法及びコンピュータプログラム製品。
【選択図】 図6

Description

本発明は、コンピュータ・ストレージ・システムに関し、より具体的にはポイント・イン・タイム・コピー機能を提供する高機能ストレージ・システムに関する。
コンピュータ・ストレージ・システムの分野において、「高機能(advanced functions)」と説明されるようになってきたものに対する需要が高まっている。このような機能は、従来のストレージ制御システムの単純な入力/出力(I/O)機能を超えたものである。高機能は、当該分野で周知であり、システム内に格納されている実データ又は「ユーザ」データに関する状態データを保持するために使用されるメタデータの制御に依存する。高機能を使用する可用な操作は、実データをユーザアプリケーションによる使用のために可用な状態にしたままで、データの仮想イメージに様々なアクションを迅速に適用することを可能にする。このような周知の高機能の1つは、ポイント・イン・タイム・コピー(point−in−time copy)である。ポイント・イン・タイム・コピーの一例は、IBM(登録商標)のFlashCopy(登録商標)である。IBM及びFlashCopyは、全世界の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
ポイント・イン・タイム・コピーは、様々なストレージデバイス上でサポートされる特徴であり、全論理ボリューム又はデータセットのほぼ瞬時のポイント・イン・タイム・コピーを作成することを可能にする。ポイント・イン・タイム機能は、データの完全ボリューム・コピーを作成することを可能にする機能であり、そのコピーは読出し又は書込みアクセスに対して即時に可用である。コピーをコンピューティング環境内で可用な標準的なバックアップツールと共に使用して、テープ上にバックアップ・コピーを作成することができる。
「スナップショット」は、任意の所与の瞬間にストレージデバイスの状態を記録し、ストレージデバイスが万一故障した場合に復元するためのガイドとしてそのスナップショットを保存する能力を表す、一般的な業界用語である。スナップショットは、主としてデータのポイント・イン・タイム・コピーを作成する。典型的には、スナップショット・コピーは瞬時に行われ、データ保護、データ解析及び報告、並びにデータ複製アプリケーション等のその他のアプリケーションによる使用に対して可用になる。データのオリジナル・コピーは、中断せずにそれらアプリケーションに対して引き続き可用であり、その一方で、スナップショット・コピーは、データに対して他の機能を行うために使用される。スナップショットは、一次ディスクに依存するポイント・イン・タイム・コピーである。スナップショットは、例えばコピー・オン・ライト(copy−on−write)手順を用いて達成することができ、その場合、一次ディスク上の領域に現在存在しているデータは、一次ディスク上のその領域に書込みが行われているときにバックアップ・ディスクに書き込まれる。それゆえバックアップ・ディスクは、一次ディスクの完全なコピーではなく、一次ディスク上では既に上書きされたデータを収容することになる。このタイプのバックアップ・コピーは、典型的にはシン・プロビジョニング・ボリューム(thinly provisioned volume)をもたらし、これはストレージを低減する。一連のスナップショット・コピーを共にカスケードして、様々な時刻における一次ディスクを表すことができる。しかしながら、スナップショット・コピーは、典型的には一次ディスクに依存したままで一次ディスクの完全コピーを再度組み立てる。したがって、スナップショットは、ターゲットがソースのポイント・イン・タイム・コピーを提示するのに必要な変更されたデータのみを保持する、ポイント・イン・タイム・コピーである。データは、ソース上でデータが変更された場合にのみターゲット・ディスクにコピーされる。ターゲット・ディスクは一般に、ポイント・イン・タイム・コピーを提示するために、ソース・ディスク上のデータの一部に常時依存する。
対照的に、「クローン」は、一次ディスクに依存しないポイント・イン・タイム・コピーである。クローンは、例えば、ディスクの領域を順次バックアップ・ディスクにコピーするバックグラウンド・コピー手順を実行すること、及び、書込みによりまさに上書きされようとしているが未だバックグラウンド・コピー手順によって処理されていない一次ディスク領域を即時にコピーする、コピー・オン・ライト手順を実行することによって作成することができる。クローンは、典型的には、コピーが必要とされ、かつ、そのコピーに対する入力/出力(I/O)が一次ボリュームに対するI/Oにいかなる影響も与えてはならない場合に使用される。クローンは、ソースに対する可用性によってコピーが影響を受けるべきでない場合にも使用することができる。クローンは、カスケード内で使用することもできる。
したがって、クローンは、ポイント・イン・タイム・コピーが開始されたときにソース・ディスク上にあったデータの完全なコピーをターゲット・ディスクが保持するPITコピーである。ソースからターゲットへのデータのコピーが完了すると、ターゲット・ディスクはソースに依存しない。
米国特許第7,386,695号明細書 米国特許第8,688,937号明細書 米国特許第8,793,453号明細書 米国特許第8,868,860号明細書
本発明の目的は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステム、方法及びコンピュータプログラム製品を提供することである。
第1の態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステムであって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記システムは、ソース・ボリュームのホスト部分とスナップショット・ボリュームのホスト部分とをスワップするためのスワップ・コンポーネントと、ソース・コンポーネントのグレイン内の第1のデータ値を第2のデータ値で上書きするI/O要求に応答して、第2のデータ値をスナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むため、及び、クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが第1のデータ値を含んでいないことに応答して、第1のデータ値をクローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインへとコピーするための、I/Oコンポーネントとを含む、システムを提供する。
更なる態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケード内のストレージ・ボリュームを管理するための方法であって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記方法は、ソース・ボリュームのホスト部分とスナップショット・ボリュームのホスト部分とをスワップすることと、ソース・コンポーネントのグレイン内の第1のデータ値を第2のデータ値で上書きするI/O要求に応答して、第2のデータ値をスナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むことと、クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが第1のデータ値を含んでいないことに応答して、第1のデータ値をクローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインへとコピーすることと、を含む、方法を提供する
更なる態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのコンピュータプログラム製品であって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記コンピュータプログラム製品は、本発明のステップを行うための方法を行うために処理回路が実行するための命令を格納する、処理回路によって可読のコンピュータ可読ストレージ媒体を含む、コンピュータプログラム製品を提供する。
更なる態様から見ると、本発明は、コンピュータ可読媒体上に格納された、デジタルコンピュータの内部メモリ内にロード可能なコンピュータプログラムであって、該プログラムがコンピュータ上で実行されるとき本発明のステップを行うための方法を行うためのソフトウェアコード部分を含む、コンピュータプログラムを提供する。
ここで本発明を以下の図面に示すような好ましい実施形態を参照して単に例示の目的で説明する。
従来技術による、本発明の好ましい実施形態を実装することができる、ストレージ・コントローラ及び2つのストレージ・ディスクを使用するバックアップ・プロセスを示す。 従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マップによってリンクされた、3つのストレージ・ボリュームのポイント・イン・タイム・コピー・カスケードの例を示す。 (a)〜(e)は、従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マッピングを示す。 従来技術による、本発明の好ましい実施形態を実装することができる、例示的なマップのカスケードを示す。 (a)、(b)、(c)は、コピー・カスケードにデータを書込むのに使用される関係を示す。 ポイント・イン・タイム・コピー・カスケード内でソース・ボリュームGに書き込むための方法を示す。 ソース・ディスクの初期データを示す。 それぞれのvdisk及びpdiskが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。 それぞれのvdisk及びpdiskが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。 それぞれのvdisk及びpdiskが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。 書込みシステムのコンポーネントを示す。 従来技術による、本発明の好ましい実施形態を実装することができる、汎用コンピュータデバイスの形態のクラウド・コンピューティング・ノード内のコンピュータ・システム/サーバを示す。 従来技術による、本発明の好ましい実施形態を実装することができる、例示的なクラウド・コンピューティング環境を示す。 従来技術による、本発明の好ましい実施形態を実装することができる、図13のクラウド・コンピューティング環境によって提供される機能的抽象層の組を示す。 従来技術による、本発明の好ましい実施形態を実装することができる、本明細書で説明するコンピューティング動作を行うことが可能なコンピュータ・システムの単純化された例である、情報処理システムを示す。
ポイント・イン・タイム・コピーは、ターゲット・ディスクが後で更なるポイント・イン・タイム・コピーのためのソース・ディスクになり又はその逆も成り立つカスケード実装において使用することも可能である。ストレージ・ボリュームのカスケード構成は、引用によりその全体が本明細書に組み入れられる特許文献1に詳述されており、これはターゲットI/Oを犠牲にしてソース書込みを最適化するポイント・イン・タイム・コピー機能を実装するためのアルゴリズムを記載している。これは、更なる読出し及び書込みにするポイント・イン・タイム・コピーを維持するために必要とされる付加的なI/Oを制限する一方で、単一のソースから無限のポイント・イン・タイム・コピー・イメージを作成することを可能にするという利点を有する。
引用によりその全体が本明細書に組み入れられる特許文献1(Fuente, Carlos F.「Storage System with Multiple Copy Targeting」、2008年6月10日)は、ホストコンピュータ装置及び複数の制御されたストレージ装置と協働可能なストレージ・コントローラを開示し、このストレージ・コントローラは、上記複数の制御されたストレージ装置の1つにおいてデータオブジェクトをソースデータ・イメージに書き込むように動作可能なホスト・ライト・コンポーネントと、第1のメタデータ状態に応答して、上記複数の制御されたストレージ装置の1つにおいて第1のターゲットデータ・イメージへのデータオブジェクトのコピーを制御するように動作可能な第1のコピー・コンポーネントと、第2のメタデータ状態に応答する第2のストレージ・コピー・コンポーネントとを含み、第2のストレージ・コピー・コンポーネントは、上記複数の制御されたストレージ装置の1つにおける第2のターゲットデータ・イメージへのデータオブジェクトのコピーを制御すること、及び、第1のコピー・コンポーネントに第1のターゲットデータ・イメージへの第2のターゲットデータ・イメージのコピーを実行させること、のうちの1つを行うように動作可能である。
引用によりその全体が本明細書に組み入れられる特許文献2(Agombar,John P.他、「Method for Optimizing Cleaning of Maps in FlashCopy Cascades Containing Incremental Maps」、2014年4月1日)は、ポイント・イン・タイム・コピー・カスケードにおけるマップのクリーニングを最適化する方法であって、マップのターゲット・ディスクが、下流ディスクが利用できない、カスケード内の上流ディスクからのデータを含むか否かを判定し、下流ディスクがそのデータのコピーを有するか否かを検出することを含む、方法を開示する。
引用によりその全体が本明細書に組み入れられる特許文献3(Agombar,J.P.他、「Multiple Cascaded Backup Process」、2014年7月29日)は、バックアップ・プロセスの処理を開示する。命令により、複数のバックアップ・プロセスのうちの1つを使用するソース・ボリュームからターゲット・ボリュームへの新たなバックアップが開始される。
引用によりその全体が本明細書に組み入れられる特許文献4(Beeken,C.「Restore in Cascaded Copy Environment」、2014年10月21日)は、多重バックアップ・プロセスの処理を開示し、これは、定められたストレージ・ボリュームがストレージ・ボリュームの第1のカスケード内に存在することを検出することと、定められたストレージ・ボリュームがストレージ・ボリュームの第2のカスケード内に存在することを検出することと、ストレージ・ボリュームの第1のカスケード内の最後のストレージ・ボリュームに対するデータ書込みを受け取ることと、ストレージ・ボリュームの第2のカスケード内の定められたストレージ・ボリューム上で、受け取ったデータ書込みに対応するクリーニング・データ書込みを行うことと、を含む。
ポイント・イン・タイム・コピー動作が開始されると、ソース・ボリュームとターゲット・ボリュームとの間にポイント・イン・タイム関係が生成される。それゆえ、ポイント・イン・タイム関係は、ポイント・イン・タイム・ソース・ボリュームとポイント・イン・タイム・ターゲット・ボリュームとの「マッピング」である。このマッピングは、ソース・ボリュームのポイント・イン・タイム・コピーが関連付けられたターゲット・ボリュームへとコピーされることを可能にする。ポイント・イン・タイム関係は、ポイント・イン・タイム動作が開始されたときから、ストレージユニットがすべてのデータをソース・ボリュームからターゲット・ボリュームへとコピーするまで又はポイント・イン・タイム関係が削除されるまで、このボリュームペア間に存在する。さらに、カスケード・ポイント・イン・タイム構成は、1つのマップのソース・ディスクが別のマップのターゲット・ディスクであるような構成である。例えば、ソース・ディスクAとターゲット・ディスクBとで定められた1つのマップと、ソース・ディスクBとターゲット・ディスクCとで定められた別のマップとが存在することができる。カスケードは、3つのディスクA、B及びCと、2つのマップとを含むことになる。ひとたびコピーが作成されると、それらコピーは、読出し及び書込みアクセスの両方に対して即時に可用になる。
データが物理的にコピーされるとき、バックグラウンドプロセスは、ソース・ボリュームからトラック(又はグレイン(grain))をターゲット・ボリュームへとコピーする。バックグラウンド・コピーを完了するのに要する時間量は、数ある因子の中でもとりわけ、例えば、コピーされるデータの量、ストレージ・システム上で行われているバックグラウンド・コピー・プロセス及び行われているその他のアクティビティの数に依存する。
あるポイント・イン・タイム動作がソース・ボリュームからターゲット・ボリュームにデータをコピーするとき、そのソース・ボリュームは、同時に1つより多くのポイント・イン・タイム関係に関与することができる(多重関係ポイント・イン・タイム(multiple relationship point−in−time)として知られる)。すなわち、多重関係ポイント・イン・タイム機能は、1つのソース・ボリュームが多数のターゲットを同時に有することを可能にする。あるボリューム上のトラックが既存のポイント・イン・タイム関係のターゲット・トラックでない場合、それは新たなポイント・イン・タイム関係におけるターゲットになることができる。
それゆえ、例えば、同じデータの複数のコピーが必要とされる場合、この多重関係ポイント・イン・タイム機能は、ポイント・イン・タイム・ボリュームが確立されるとすぐに単一のソース・ボリュームを異なるターゲット・ボリュームへと複数回コピーすることを可能にする。例えば、あるポイント・イン・タイムを用いてボリュームAをボリュームBにコピーすると仮定する。そのポイント・イン・タイム関係が確立されるとすぐに、ボリュームAをボリュームCにコピーすることができる。ひとたびその関係が確立されると、ボリュームAをボリュームDへとコピーすることができ、以下同様である。加えて、単一ボリューム内での多重セッションが可能である。
カスケードを用いて、単一のデータソースの多重ポイント・イン・タイム・コピーを実装することができる。例えば、データソースP及び時刻t1、t2及びt3で取得されたPのポイント・イン・タイム・コピーでは、時刻t1において、データ・ターゲットT1を用いてポイント・イン・タイム・コピーが取得され、その結果カスケードP→T1が得られる。次に時刻t2において、データ・ターゲットT2を用いて第2のポイント・イン・タイム・コピーが取得され、その結果カスケードP→T2→T1が得られる。事実上、T1は、T2のコピーとして確立され、これはこの瞬間、Pと同一であり、T2はPのコピーである。T2によって保持されるPとのその差分を記述するビットマップは、T1とのその差分も正確に記述する。Pの更新は、PからT2へとコピーするコピー動作のみを必要とする。逆に、T2の更新は、PからT2へ及びT2からT1への2つのコピー動作を必要とする。なぜなら連鎖の中間部の更新は両側での関係のコピーを強制するからである。t3において第3のバックアップT3を追加すると、カスケードP→T3→T2→T1が生成される。
この技術は、多くの利点を有する。しかしながらこれは、データ・ターゲット間に、従来の多重ターゲット実装においては存在し得ない依存性を導入することにもなる。このターゲット依存性の副作用は、ポイント・イン・タイム・コピーが停止された又は完了したときにターゲットを「クリーニング」することを必要とすることであり得る。例えば、ポイント・イン・タイム・コピーP→T2が停止されると、ターゲットT2をカスケードから除去することができるようになる前に、T1によって必要とされるT2上のあらゆるデータが典型的にはT2からT1へコピーされる。多くの状況においてこれは問題にはならないが、それは、ユーザはおそらくT1が時刻t1におけるPの完全コピーを保持することを所望しており、すなわちバックアップ・プロセスP→T1がクローンであることを意味するからである。しかしながら、P→T1の意図が単に時刻t1におけるPのスナップショットを生成することである場合、このT2からT1への余分なコピーは、ユーザの問題を引き起こすことがある。さらに、データ・ターゲットT1がシン・プロビジョニング(空間効率的(space efficient)としても知られる)であった場合、上記挙動によって生じる問題は、T1に対する不必要なストレージの割当てを引き起こすことがある。いくつかのアプリケーションにおいては、このことが、ユーザがスナップショット及びクローンを維持する能力及びそのバックアップを管理する能力を低下させることがある。
クリーニングにおいてT2からT1へのように1つのボリュームから別のボリュームへとコピーされるデータ量を削減することを試みるいくつかの既存の技術が存在し、その成功の程度は様々である。しかしながら、このようなソリューションの多くは、様々なデータ・ターゲットのコンテンツを追跡するために使用されるメタデータの量を劇的に増大させ得る。
多重ターゲット・ポイント・イン・タイム・コピーは、カスケード方法論を用いて実装された場合、コピー数の観点で多大なスケーラビリティを提供すると同時に、コピーのコピーを作成する能力もユーザに与える。しかしながら、カスケード方法論を用いて実装された多重ターゲット・ポイント・イン・タイムは、ポイント・イン・タイム・マップをカスケードから除去できるようになる前にこれを「クリーニング」する必要があるという望ましくない概念もまた導入することになる。クリーニング・プロセスは、除去されるマップのターゲット・ディスクに依存するディスクがカスケード内に存在しないことを保証する。クリーニング・プロセスは、完了するのにかなりの時間量がかかることがある。
加えて、ポイント・イン・タイムは、空間効率的ボリュームを利用することができる。ポイント・イン・タイム空間効率的(SE)特徴は、ターゲット・ボリューム上の空間をそれが実際にソース・ボリュームからトラック(又はグレイン)をターゲット・ボリュームへとコピーするときにのみ使用することによって、ストレージ空間を「必要に応じて(as−needed)」割当てる。空間効率的ボリュームを利用しなければ、ポイント・イン・タイム機能は、ターゲット・ボリューム上のすべての空間がそこにコピーされるデータがない場合であっても割当てられること及び可用であることを必要とする。しかしながら、空間効率的ボリュームを利用すると、ポイント・イン・タイムは、ポイント・イン・タイム関係の寿命中に変更されたデータを書込むのに必要とされる数のトラック(又はグレイン)のみを使用するので、空間の割当ては「必要に応じて」行われる。空間効率的ポイント・イン・タイム・ボリュームは、ソース・ボリュームと厳密に同じサイズのターゲット・ボリュームは必要としないので、ポイント・イン・タイムSE特徴は、システムストレージのより有効な使用の可能性を高める。
空間効率属性は、ボリューム作成プロセス中にターゲット・ボリュームに対して定義することができる。空間効率的ボリュームは、既に作成された空間効率的ストレージを有する任意のエクステント・プールから作成することができる。空間効率的なソース・ボリューム及びターゲット・ボリュームが既に作成されており可用である限りにおいて、これらをポイント・イン・タイム関係が作成されるときに選択することができる。
それゆえ、上述のように、ポイント・イン・タイムSE特徴は、システムストレージのより効果的な使用の可能性を高める。しかしながら、多重ターゲット・ポイント・イン・タイムを空間効率的ボリュームと組み合わせることは、クリーニング・プロセスに対して別の問題を付加することになる。すなわち、顧客が日毎のバックアップ・コピーを有しており、例えば毎日、顧客がこのバックアップの新たな空間効率的コピーを作成するような状況を考える。カスケード及び多重ターゲット・ポイント・イン・タイム及び空間効率的ボリュームは、このセットアップを可能にする。また、日毎のバックアップを完了するのにかかる時間を短縮するために、ポイント・イン・タイム・マップはインクリメンタルに作成されるものと考える。このシナリオにおけるクリーニング・プロセスに伴う問題は、クリーニング・プロセスが、日毎のバックアップからすべてのデータを最新の空間効率的コピーへとコピーすることを必要とすることである。しかしながら、日毎のコピーは完全コピーなので、これは空間効率的コピーの全体を割り当てることを必要とする。それゆえ、このシナリオでは、空間効率的ボリュームの利用は、カスケード・クリーニング方法論によって「分断」される。
従来技術のソリューションは、単一ボリュームの多数のポイント・イン・タイム・コピーをどのように実行するかを示すものであり、コストはこのようなコピーの数に依存しない。関連したポイント・イン・タイム・コピーの連鎖が許容される。このようなアルゴリズムは、標準的なコピー・オン・ライト・アルゴリズムを最適化するものであるが、それでもなお、ROW実装では必要とされない付加的なI/Oを必要とする。このI/Oは、最新のポイント・イン・タイム・イメージを維持するために必要とされるスプリット書込みの形態で提供される。
複数のストレージ・プールにわたるポイント・イン・タイム・コピー・イメージを提供する従来技術のソリューションの柔軟性を提供するのみならず、ストレージがすべて1つのプール内にあるスナップショットに対するROWアルゴリズムの書込みI/O効率も提供するアルゴリズムを有することは有利であろう。
いくつかのストレージ・コントローラは、ユーザが所与のソースに対して1つより多くのターゲットを構成することを可能にする。これは多数の用途を有する。例えば、ターゲットの各々に対して異なる実験を実行することができる。あるいは、おそらくはウイルスによって生じ得る等のなんらかのデータ破損からの復旧を目的として、ターゲットを異なる時刻(例えば週の異なる曜日)に取得することができ、ディスクに対する履歴的アクセスを可能にする。
図1は、ストレージ・コントローラ8及び2つのストレージ・ディスク10、12を使用するバックアップ・プロセスを示す。ディスク10及び12は、より大きなディスクアレイの一部を形成することができ、企業のストレージ・ソリューションの一部を形成し得る。ディスク10及び12は、例えば商用ウェブサイトに関連したストレージ・ソリューションの一部であり得る。vdisk1のコンテンツのバックアップを作成する必要がある場合にはいつでも、ポイント・イン・タイム・コピー命令をストレージボリューム・コントローラ8からそのディスク10に送ることができ、その命令は、ソース・ディスク10(vdisk1)を定め、ポイント・イン・タイム・コピーのターゲットであるターゲット・ディスク12(vdisk2)も定める。ポイント・イン・タイム・コピー命令は、ソース・ディスク10である特定のvdiskのイメージのポイント・イン・タイム・コピーを作成する。
図1の実施形態において、第1のポイント・イン・タイム・コピー命令のソース・ディスク10は、vdisk1 10であり、ターゲット・ディスク12は、vdisk2 12である。ポイント・イン・タイム・コピー命令は、ポイント・イン・タイム・コピー・プロセスを開始し、それはソース・ディスク10からターゲット・ディスク12へのマップ14を作成する。このマップは、図1においてマップ1と表示されている。この特定のポイント・イン・タイムにおけるvdisk1のイメージは、今やvdisk2上で可用である。これはvdisk1上のデータのバックアップを作成するとともに、検査及びその他の管理タスクを、オリジナルデータが元のソース・ディスク上に保存されているのでオリジナルデータの損失という付随する危険を伴わずに、vdisk1のデータ上で実行することも可能にする。
ポイント・イン・タイム・コピーが作成されるとき、それはマップ14で定められるように2つのディスク10と12との間にリンクを生成する。データは、今や付加的な要件を伴ってバックグラウンドで横断的にコピーすることができ、その付加的な要件は、vdisk2(ターゲット・ディスク12としての)へのなんらかのアクセスは、即時にvdisk1のイメージの該当部分の横断的なコピーを行わせることができ、また、vdisk1へのなんらかのアクセスであってそのディスク10によって格納されたイメージに対する変更をもたらすことになるものもまた、その変更が行われる前に、未変更のデータのターゲット・ディスク12への横断的なコピーを即時に行わせるということである。このようにすると、上記の状況下においてのみデータは物理的に横断的にコピーされ得るのであるが、vdisk2は、外部ユーザにとってはvdisk1のポイント・イン・タイム・コピーを格納していることになる。
ポイント・イン・タイム・コピー機能等のバックアップ・プロセスのターゲット・ボリュームであるストレージ・ボリュームは、更なるバックアップ・プロセスのソース・ボリュームになることもでき、したがって、ストレージ・ボリュームのカスケードが生成される。
図2は、ポイント・イン・タイム・コピー・マップ14によってリンクされた3つのストレージ・ボリューム10、12及び16のポイント・イン・タイム・コピー・カスケードの例を示す。「上流」ボリュームは、現在のディスクB12を基準として用いて一次ボリュームに近い方のボリュームであり、「下流」ボリュームは、現在のディスクB12を基準として用いて一次ボリュームから遠い方のボリュームである。例えば、ディスクA10は、ディスクB12の上流であり、ディスクC16は、ディスクB12の下流である。各マップ14は、ソース・ボリュームからターゲット・ボリュームへのバックアップ・プロセスを定める。ディスクBは、ディスクA10のバックアップを提供しており、ディスクC16もまた、ディスクB12を通してディスクA10のバックアップを提供している。異なるストレージ・ボリュームをリンクするポイント・イン・タイム・コピー機能14は、異なる時刻に開始されてもよく、それはそれぞれのストレージ・ボリュームによって格納されたイメージの異なるポイント・イン・タイム・コピーを作成し、又は、同時に開始されてもよい。
ポイント・イン・タイム・コピー・カスケードA→B→Cにおいて、図2に示すようにA10、B12及びC16がカスケード内のディスクであり、矢印がポイント・イン・タイム・コピー・マップであるとき、[A,B]はディスクA10からディスクB12へのポイント・イン・タイム・コピー・マッピングを表し、カスケードは、マップ[A,B]及び[B,C]を有する。このカスケードの実装において、ディスクA10に対するあらゆる新たなデータ書込みは、それぞれのポイント・イン・タイム・コピー機能に従って、ディスクB12上のイメージを維持するのに必要とされるディスクB12に対する「コピー・ライト」である書込みを生じさせる。このディスクB12への書込みは、しばしば「クリーン・リード」と称されるディスクB12の更なる読出しを生じさせ、次いでディスクC16への別のコピー・ライトが生じる。このようにして、カスケード内の第1のストレージ・ボリューム10への単一の書込みの結果として、カスケード全体にわたって複数のI/Oクリーニング動作が生じ得る。
カスケードが生成されるとき、新たなマップ及び新たなストレージ・ボリュームは、カスケードの端に追加されるのではなく、カスケード内へ挿入される。図2に示すカスケードにおいて、開始される第1のバックアップ・プロセスは、A→Cである。次いでバックアップ・プロセスA→Bが開始されるとき、新たなターゲット・ストレージ・ボリュームB12は、既存のソース・ストレージボリュームA10と既存のターゲット・ストレージ・ボリュームC16との間に効果的に「挿入」される。この「挿入」は、ターゲット・ディスクC16がディスクA10からではなくディスクB12からデータ書込みを受け取ることを示す、純粋な論理構造である。これは、カスケード実装と、ディスクA10からの2つの独立したマップを有することになる従来の配置との違いである。
ストレージ・コントローラ8は、クローンとスナップショットとが異なる依存性連鎖又はカスケードに分離されるようディスク及びマップが配置されるべく動作することができる。より詳細に後述するように、クローンとスナップショットとを異なるカスケードに分離することの1つの特徴は、コピー動作の停止によって生じるクリーニング動作を低減し又は排除することである。
図3(a)〜図3(e)は、従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マッピングを示す。例えば、本説明の文脈内で、図3(a)のマップ1はクローンとして開始され、後のマップ2はスナップショットとして開始される。結果として得られる、ターゲットイメージを維持するために用いられるソース・ボリュームP、クローン・ボリュームC1、及びスナップショット・ボリュームS1についてのグラフ構造は、図3(a)に示すようになる。この構造は、依存関係グラフ(dependency graph)である。
図3(a)に示すグラフにおいて、ディスクPへのデータ書込みは、それぞれのバックアップ・プロセスのターゲット・ディスク上のそれらのイメージを維持するために、C1及び/又はS1へのコピー・オン・ライトを必要とし得る。ストレージボリューム・コントローラ8がマップ3をスナップショットとして開始すると、得られる依存関係グラフは図3(b)に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクPに隣接して配置することができるので、マップ3の新たなターゲット・ディスクS2は、カスケードP→S2→S1内に配置され、ここでマップ3及びマップ2の2つのマップは両方ともスナップショットである。分離したカスケードP→C1において、マップ1はクローンである。
これに続くPのスナップショット又はクローンのいずれかとしてのバックアップ・プロセスは、クローン及び/又はスナップショット連鎖の長さをPから出るエッジの数を増大させずに延長するので、Pへの書込みに関連付けられたクリーニング動作I/Oの数を増大させない。図3(b)のグラフは、更なるスナップショット及びクローンを含めるように延長することができる。カスケードタイプの分離を維持するために、特定のバックアップ・プロセス・タイプ(クローン又はスナップショット)のためのカスケードが存在している場合には、ターゲット・ストレージ・ボリュームは上記識別されたバックアップ・プロセス・タイプのための既存のカスケードに追加され、又は、上記識別されたバックアップ・プロセス・タイプのためのカスケードが存在していない場合には、ターゲット・ストレージ・ボリューム及びソース・ストレージボリュームからなる新たなカスケードが開始される。このようにすると、特定のソース・ディスクから取得されたクローン及びスナップショットは、その特定のソース・ディスクからの同じカスケード内には出現しない。
図3(c)は、更なるバックアップC2が取得された後のストレージ・ボリュームの論理配置を示す。ストレージボリューム・コントローラ8がマップ4をクローンとして開始すると、得られる依存関係グラフは図3(c)に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクPに対して隣接して配置されるので、マップ4の新たなターゲット・ディスクC2は、カスケードP→C2→C1内に配置され、ここでマップ4及びマップ1の2つのマップは両方ともクローンである。分離したカスケードP→S2→S1において、マップ3及びマップ2の2つのマップは両方ともスナップショットである。
図3(d)は、更なるクローンバックアップC3及びスナップショットバックアップS3が取得された後のストレージ・ボリュームの論理配置を示す。ストレージボリューム・コントローラ8は、クローンとしてマップ6、及びスナップショットとしてマップ7を開始し、その結果得られる依存関係グラフは図3(d)に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクPに対して隣接して配置されるので、マップ6の新たなターゲット・ディスクC3は、カスケードP→C3→C2→C1(図3(d))内に配置され、ここでマップ6、マップ4及びマップ1の3つのマップは各々クローンである。マップ7の新たなターゲット・ディスクS3は、カスケードP→S3→S2→S1(図3(d))内に配置され、ここでマップ7、マップ3及びマップ2の3つのマップは各々スナップショットである。
異なるタイプが取得される順序は、S1、S2、S3、C1、C2、C3の任意の順列とすることができ、但し、スナップショットが他のスナップショットに対して正しい順序にあり、かつ、クローンが他のクローンに対して正しい順序にあることを条件とする。例えば、開始順序はS1、C1、S2、S3、C2、C3とすることができる。これらのカスケードは、図3(d)に示すように根ノードPを持つツリーと考えることができる。
多重ターゲット・ポイント・イン・タイム・コピーによるそれぞれのポイント・イン・タイム・コピー機能に従って、依存関係グラフ内のディスクに対する書込みは、ディスク上の他のイメージを維持するために、読出し、スプリット書込み及びクライアント書込みを生じさせることになる。例えば、上記依存関係グラフにおけるPに対するクライアント(又はホスト)書込みは、1)書き込まれている位置がP上にあるためデータがS3又はC3によって必要とされる場合には、読出し、すなわちPの読出し、2)スプリット書込み、すなわちa)S3がPに依存する場合にはPから読み出したデータのS3への書込み、及びb)C3がPに依存する場合にはPから読み出したデータのC3への書込み(これは第2のアクションと並行して行うことができる)、並びに3)クライアント書込み、すなわちPへのクライアント書込み自体、を生じさせることができる。Pへの各書込みに対するこれらのクリーニング動作の結果として、ボリュームS3及びC3は各々、これらのバックアップが開始されてから変更されたいずれのグレインにも依存しない。
クローン及びスナップショットを異なるカスケードに分離することの1つの特徴は、不要バックアップの終了を促進して、停止自体に関連付けられたクリーニングを低減し又は排除することである。例えば、図3(d)の依存関係グラフにおいてマップ4が停止されると、ストレージボリューム・コントローラ8は、C3からC1までのデータを「クリーニング」する。これは必ずしも付加的なクリーニング動作であると考える必要はなく、なぜならC1もまたクローンであり、データはその上にコピーされることが意図されているからである。スナップショットS3、S2、S1は影響を受けない。
逆に、スナップショットが停止されたとき、ターゲット・スナップショット・ディスクのすべてのスナップショット及びクローンは、クローン・カスケードから分離されているので、停止に起因する付加的なクリーニングを伴わずに容易に停止することができる。さらに、クローンが停止されたとき、ターゲット・クローン・ディスクのすべてのスナップショットもまた停止することができる。スナップショットは典型的にはそのソースに依存しているので、この手法を取ることができる。従って、スナップショットのクローン・ソースが破壊された場合、依存したスナップショットは、おそらくほとんど又は全く役に立たなくなる。このようにして、クローンとスナップショットとを異なるカスケードに分離することによって、付加的なクリーニング動作を低減し又は排除することができる。
ここで例えばディスクPが破損していることが発見され、管理者がディスクPを既存の例えばディスクS1等のディスクから復元することを所望する場合、マップ8、すなわちS1→Pが作成されて開始され、これはカスケードS1→Pをもたらす(図3(e))。復元動作のための分離したカスケードを使用すると、3つの分離したカスケードが生じることになる。例えば、PをS1から復元すると、P→S3→S2→S1及びP→C3→C2→C1(図3(d))並びにS1→P(図3(e))が生じる。ディスクPの復元を、図4、図5(a)、図5(b)、図5(c)、図5(d)を参照して後述する。
システムはまた、あるディスクが同じカスケード内又は分離したカスケード内に複数回存在することも可能にする。一例として、S3、S2及びS1がPのスナップショットとして作成される。S1はユーザのオリジナルデータを収容し、他方S3及びS2は更なるスナップショットを収容し、それらに対する2つの異なるシミュレーションが実行された。ユーザは、S2に対するシミュレーションの結果が有益であると決定することができ、S2からPを復元することを決定する。システムは、S1内にオリジナルデータの未変更のバックアップを未だ維持している一方で、ユーザが新たなマップS2→Pを開始することを可能にする。
しかしながら、あるディスクがカスケード内に出現する回数が多いほど、ホスト起源のI/Oを完全にホストに戻すことができる前に、ポイント・イン・タイム・コピー・レベルにおいてより多くのI/O動作(クリーニングI/O)が必要とされ得る。あるいは、マップを逆転するために、管理者は、単に反対方向のマップ14を作成して開始することができる。
図4は、従来技術による、本発明の好ましい実施形態を実装することができる、例示的なマップのカスケードを示す。より詳細には、図4は、2つのディスク405及び410の表示を示す。図4に示すように、ディスクの上部分は、それぞれのディスクから例えばホストに提示されるデータを示す。ホストに提示されるときのディスクは「vdisk」と称される。vdiskは、ストレージ仮想化において使用される用語であり、ホストコンピュータ又はホストコンピュータ・アプリケーションがI/O動作を行う、仮想論理ディスク又はボリュームを示す。図4はまた、それぞれのディスク上に実際に収容されたデータを示すディスクの表示の下部分を示す。これらのディスクの下部分は、「pdisk」と称される。pdiskは、物理ストレージに直接接続されるオブジェクトである。当業者は、pdiskそれ自体が、Redundant Array of Independent Disks(RAID)アレイ上に位置する仮想ボリュームであり得ることを理解するであろう。当業者はまた、ストレージ・コントローラ8が仮想レベルでコピーを管理すること、しかし論理ディスクに対する読出し及び書込みが物理ディスクに対するそれぞれ読出し及び書込みをもたらすことを認識するであろう。それゆえ、ディスク1 405は、4つのグレイン(又はトラック)のデータA、B、C、Dをユーザに提示し、実際にディスク1 405上に格納されたこれらグレインA、B、C、Dを有する。対照的に、ディスク2 410は、4つのグレインのデータA、F、C、Dをユーザに提示する。しかしながら、ディスク2 410の下部分に示すように、ディスク2 410は、実際にはその上に格納されたグレイン2及び4(それぞれF及びD)のみを有し、ディスク1 405上に格納されたデータに依拠してホストにグレインA及びCを提示する。第4のグレイン(D)は、同じデータがディスク1 405上で可用であるけれども、例えばディスク1 405上でデータDが以前に再書き込みされたことに起因して、ディスク2 410に格納されている。
図4において付加的に示されているように、マップ2 420は、ディスク1 405とディスク2 410との間のインクリメンタル・マップである。すなわち、マップ2 420は、スプリット・ビットマップ(スプリット)422及び差分ビットマップ(差分)424を含む。本発明の実施形態によれば、スプリット・ビットマップ422は、ポイント・イン・タイム・プロセスにおいてデータの位置を追跡するために使用される。より詳細には、スプリット・ビットマップ422における「0」は、データがソース・ディスク上に位置していることを示し、スプリット・ビットマップ422における「1」は、データがターゲット・ディスク上に位置していることを示す。さらに、差分ビットマップ424は、ポイント・イン・タイム・コピー・プロセスにおいてソース・ディスクとターゲット・ディスク、例えば仮想ディスクとの間の差分を追跡するために使用される。より詳細には、差分ビットマップ424における「0」は、ソース・ディスク上に位置するデータとターゲット・ディスク上に位置するデータとの間に差分がないことを示し、差分ビットマップ424における「1」は、ソース・ディスク上に位置するデータとターゲット・ディスク上に位置するデータとの間に差分があることを示す。
それゆえ、図4の例を参照すると、マップ2 420のスプリット・ビットマップ422は、グレインA及びCがソース・ディスク(ディスク1 405)上に位置し、グレインF及びDがターゲット・ディスク(ディスク2 410)上に位置することを示す。さらに、マップ2 420の差分ビットマップ424は、ソースディスク(ディスク1 405)とターゲットディスク(ディスク2 410)との間で第1、第3及び第4のグレインに差分がないことを示す。すなわち、第1、第3及び第4グレインは、ソース・ディスクとターゲット・ディスクとの間で同じままであり、すなわちそれぞれA、C及びDである。しかしながら、マップ2 420の差分ビットマップ424は、ソースディスク(ディスク1 405)とターゲットディスク(ディスク2 410)との間で第2のグレインに差分があることを示す。すなわち、図4に示すように、第2のグレインは、ディスク1 405上のBからディスク2 410上のFに変更されている。それゆえ、ポインタ425は、ターゲット・ディスク410が、ディスク2 410の物理的コンテンツではなくスプリット・ビットマップ422のコンテンツに基づいてソース・ディスク405を参照することを示す。有利には、従来技術によれば、ビットマップ422、424の使用は、ストレージ・コントローラ8が、コピーが追加されたとき又はシステムから削除されたときのデータコンテンツの管理を含めて、ストレージ・ディスク・ボリュームの仮想コピー及び物理コピーに対するアクセスを管理することを可能にする。コピーが連鎖から削除されたとき、データ更新を表すコンテンツを、ビットマップ422、424のコンテンツに基づいて、残りの連鎖内の別のコピー上に「クリーニング」することができる。
図5(a)、図5(b)、図5(c)は、コピー・カスケードにデータを書込むのに使用される関係を示す。
ポイント・イン・タイム・ソリューションを実装するのに使用される2つの重要なアルゴリズムがあり、これらはリダイレクト・オン・ライト(ROW)及びコピー・オン・ライト(COW)である。これらの両アルゴリズムの詳細は、多くのオープンに利用可能なソースから見いだすことができる。
図5(a)は、初期状態のコピー・カスケードを示す。ソース・ディスクG505のホストビュー(vdisk)は、データA、B、C、Dを伴う4つのグレインを有する。データは、物理ディスクGp520上に物理的に格納されている。vdiskグレインは、物理ディスクGp520内のそれぞれのグレインにリンク550、552を通して関連している。ソース・ディスクG505は、クローン又はスナップショット・ポイント・イン・タイム・コピー510を有する。初期には、クローン又はスナップショット・ポイント・イン・タイム・コピー510は、物理ディスクS1p/C1p525内に分離した物理データを有していないが、代わりにデータアクセスのための物理ストレージ位置Gp520を指示する。例えば、S1/C1 510の第1のグレインは、リンク554を通してGp520の第1のグレインを指示する。
図5(b)は、クローン・ポイント・イン・タイム・コピーC1 511を有するソース・ディスクG505によるコピー・カスケードであって、データがなんらかのバックグラウンド・コピー・プロセスを通じてC1 511へとコピーされる前のものを示す。図5(b)は、COWアルゴリズムを使用してデータ「E」がG505の第1のグレインに書き込まれた後のコピー・カスケードを示す。G505の第1のグレインへの書込みI/O動作を受けると、リンク554は、新たなリンク555で物理ディスクC1p527の第1のグレインを指示するようにリダイレクトされる。以前Gp520の第1のグレインにあったデータ「A」は、物理ディスクC1p527の第1のグレインへと書き込まれる(528)。
データ「E」は、Gp520の第1のグレインへと書き込まれる(529)。典型的には、Gp520は、第1のストレージ・プール540内にあり、C1p527は、第2のストレージ・プール545内にある。あるいは、Gp520及びC1p527は、同じストレージ・プール540、545内にある。G505についてホストに提示されるデータは(E、B、C、D)であり、C1 511についてホストに提示されるデータは、(A、B、C、D)である。Gp520は、G505についてのライブ・データを収容する。クローン・データは、C1p527が第2のストレージ・プール545内にある場合であっても容易に追跡することができるので、COWアルゴリズムは、クローン・ポイント・イン・タイム・コピーの場合に有利である。あるいは、物理ストレージC1p527は、第2のストレージ・プール545へと容易に移動させることができる。データの位置を追跡するために、COWアルゴリズムは、典型的には等価のROW実装よりも少ないメタデータを使用する。
図5(c)は、スナップショット・ポイント・イン・タイム・コピーS1 513を有するソース・ディスクG505によるコピー・カスケードを示す。図5(c)は、ROWアルゴリズムを使用してデータ「E」がG505の第1のグレインへと書き込まれた後のコピー・カスケードを示す。G505の第1のグレインへの書込みI/O動作を受けると、リンク552は、新たなリンク553で物理ディスクS1p537の第1のグレインを指示するようにリダイレクトされる。データ「E」は、S1p537の第1のグレインへと書き込まれる(538)。典型的には、Gp520及びS1p537は、同じストレージ・プール547内にある。G505についてホストに提示されるデータは(E、B、C、D)であり、S1 513についてホストに提示されるデータは(A、B、C、D)である。G505についてのライブ・データは、Gp520及びS1p537内に収容される。最初に既存データをポイント・イン・タイム・コピーへとコピーする必要はなく、1回の書込みのみが必要とされるので、ROWアルゴリズムは、スナップショット・ポイント・イン・タイム・コピーの場合に有利である。データの追跡は、ROW構成の方が困難であるが、単一のストレージ・プール内で管理可能である。
ROW及びCOWは両方とも、得られる製品の実装者及び最終的にはユーザにとって有利点及び不利点を有する。ROWは、新たな書込みデータを、その書込みデータを適用する前に既存データを移動させることなく新たな領域に書き込むので、書込みI/Oオーバーヘッドに関してより効率的であり得る。復帰(revert)/復元(restore)等の多くの先進的な特徴がROW環境においてより簡単であることもまたこれに当てはまる。COWに比べたROWの不利点は、すべてのイメージについてのデータが通常は単一のストレージ・プールからのものでなければならないことである。このことは、ROWがポイント・イン・タイム・コピーのスナップショット・バージョンに対して最適であることが多いことを意味する。他方、クローン及びバックアップの場合、ポイント・イン・タイム・コピーが分離したストレージ・プール内にあることを必要とすることが多いので、COWがより適したアルゴリズムになる。
ROWアルゴリズムは、二重書込みというCOWの不利益を有さない。オリジナルボリュームに対する新たな書込みは、スナップショットのために保留された別の位置にリダイレクトされる。書込みをリダイレクトする利点は、書込みが1回しか行われないことであり、他方、コピー・オン・ライトでは、2回の書込みが行われる(1回はストレージ・スペースへのオリジナルデータのコピーであり、もう1回は変更されたデータのコピーである)。ROWでは、オリジナル・コピーは、ポイント・イン・タイム・データ、すなわちスナップショットを収容し、変更されたデータは、スナップショット・ストレージ上に存在する。スナップショットが削除されたとき、スナップショット・ストレージからのデータをオリジナルボリュームへと戻してリコンシリエーションしなければならない。さらに、多数のスナップショットが作成されるにつれて、オリジナルデータへのアクセス、スナップショット及びオリジナルボリューム内のデータの追跡、並びにスナップショットが削除されたときのリコンシリエーションがさらに複雑になる。スナップショットは、データのオリジナル・コピーに依拠し、オリジナルデータセットは、急速にフラグメント化することになり得る。
実際には、クローン・ポイント・イン・タイム・コピーに対してCOWを使用し、スナップショット・ポイント・イン・タイム・コピーに対してROWを使用する混合構成を有することは、それ自体の複雑さを導入するので、典型的には両方のタイプのポイント・イン・タイム・コピーに対してCOWの1つのアルゴリズムを使用する。一方について複雑さが上乗せされることを他方に対する複雑さが減ることによって均衡を取る。
有利には、本発明は、ROWアルゴリズムとCOWアルゴリズムとを組み合わせて、スナップショットを作成するときに使用するための新たなアルゴリズムにする方式を導入する。この新たなアルゴリズムは、1つのストレージ・プール内で動作するときにはROWの書込みI/Oの利点を有する一方で、必要なときには複数のストレージ層を使用することを可能にするCOWアルゴリズムを使用する。
図6は、図7、図8、図9、図10及び図11との関連で解釈すべきであり、ポイント・イン・タイム・コピー・カスケードにおいてソース・ボリュームGへ書き込むための方法を示す。図7は、ソース・ディスクGの初期データを示す。図8、図9、図10は、本発明の好ましい実施形態による方法において使用されるマッピングを示し、それぞれのvdisk及びpdiskが描かれている。図11は、書込みシステム900のコンポーネントを示し、これは好ましい実施形態においてストレージ・コントローラ8のコンポーネントである。代替的な実施形態において、復旧システム900は、ストレージ・コントローラ8とは別に設けられる。
有利には、本発明は、データを格納するために使用される物理デバイスからデータのホストビューを分離することによって機能する。すなわち、ボリュームは、ホスト・システムに提示されるvdiskと、データを保持するのに使用される実際のストレージであるpdiskとで構成される。
図7は、ソース・ディスクG 705の初期データを示す。G755としてホストに提示されるデータは、データ[A,B]を含む。物理ディスクGp757上に格納されるデータもまたデータ[A,B]を含む。物理ソース・ディスクGp757は、データの2つのグレインを有し、第1のグレイン内のデータ「A」は、「Gp−0」で示され、第2のグレイン内のデータ「B」は「Gp−1」で示される。当業者は、ディスク自体は、例えばRAIDアレイ内に含まれる、論理ディスクであり得ることを理解するであろう。
方法は、ステップ601で開始する。ステップ605において、コピー・コンポーネント905は、ソース・ボリューム705をコピーしてスナップショット・ポイント・イン・タイム・コピー765を作成する。スナップショット・ポイント・イン・タイム・コピー765は、ホストビュー(vdisk)S1 759及び物理ディスクS1p761を含む。ステップ610において、マップ・コンポーネント910は、ボリュームをコピー・カスケードにマッピングして、マップ8−1 805を提供する。
ステップ615において、スワップ・コンポーネント906は、ポイント・イン・タイム・コピー・ボリューム765がスナップショット・ポイント・イン・タイム・コピー・ボリューム765であるか否かを判断する。マップ8−2 810に示すように、ポイント・イン・タイム・コピー・ボリューム765がスナップショット・ポイント・イン・タイム・コピー・ボリューム765であるので、ステップ620において、スワップ・コンポーネント906は、2つのvdiskビューであるヘッドG755及びS1 759をスワップする(890)。マップ・コンポーネント910は、スワップ890をマッピングして、マップ8−3a 815を提供する。マップ8−3a 815は、マップ8−3b 820でより詳細に描かれている。S1p761のコンテンツは、S1p761のコンテンツへの書込みが未だ行われていないので、Gp757と同じストレージ位置にリンクする。G755についてホストに提示されるデータは[A,B]であり、S1 759についてホストに提示されるデータは、[A,B]である。この状況において、I/Oについてのホストビューは変更されず、S1 765は、G705のポイント・イン・タイム・コピー・ボリューム・イメージである。G705に対する書込みI/Oは、このI/Oのための新たな空間を割り当てることになるので、したがって標準的なROWアルゴリズムのI/O性能に適合する。G705及びS1 765が両方とも同じストレージ・プールからプロビジョニングされるので、ボリュームの本質的な特性は、ユーザの管理の観点から変更されない。
ステップ625において、I/Oコンポーネント915は、データ「C」をG755の第1のグレインに書き込む書込み要求を受け取る。マップ・コンポーネント910は、書込みをマッピングしてマップ8−4 825を作成する。ヘッドG755及びS1 759は既にスワップされているので、G705への書込みはS1p−0へ向けられる。ステップ630において、I/Oコンポーネントは、COWアルゴリズムを使用して、別のグレイン位置に最初に書き込む必要があるか否かを判断する。マップ8−4 825の構成において下流コピー・ボリュームは存在せず、したがってステップ640においてデータ「C」はS1p−0に書き込まれる。方法はステップ699において終了する。
有利なことに、書込みの時点で使用されるCOWアルゴリズムを変更することなく、スナップショット・ポイント・イン・タイム・コピーの場合にROW挙動が達成された。
代替的な実施形態において、スナップショット・ポイント・イン・タイム・コピー765は既に存在する。ステップ605において、コピー・コンポーネント905は、スナップショット・ポイント・イン・タイム・コピー・ボリューム765をコピーして、クローン・ポイント・イン・タイム・コピー770を作成する。クローン・ポイント・イン・タイム・コピー770は、ホストビュー(vdisk)C1 772及び物理ディスクC1p 774を含む。ステップ610において、マップ・コンポーネント910は、ボリュームをコピー・カスケードにマッピングして、マップ8−5a 834を提供する。ステップ615において、スワップ・コンポーネント906は、ポイント・イン・タイム・コピー・ボリューム・ボリューム770がスナップショット・ポイント・イン・タイム・コピー・ボリューム・ボリューム770であるか否かを判断する。しかしながらポイント・イン・タイム・コピー・ボリューム770はスナップショット・ポイント・イン・タイム・コピー770ではないので、ステップ615において「NO」出口を経由し、換言すればステップ620を経由しない。S1p761のコンテンツにもC1p774にも未だ書込みが行われていないので、C1p774のコンテンツは、S1p761と同じストレージ位置にリンクし、そのS1p761はGp757と同じストレージ位置にリンクする。G755についてホストに提示されるデータは[A,B]であり、S1 759についてホストに提示されるデータは、[A,B]であり、C1 772についてホストに提示されるデータもまた[A,B]である。
ステップ625において、I/Oコンポーネント915は、データ「C」をG755の第1のグレインへと書き込む書込み要求を受け取る。マップ・コンポーネント910は、書込みをマッピングして、マップ8−5b 836を作成する。ヘッドG755及びS1 759は既にスワップされているので、G705への書込みはS1p−0へ向けられる。ステップ630において、I/Oコンポーネントは、COWアルゴリズムを使用して、別のグレイン位置に最初に書き込む必要があるか否かを判断する。マップ8−5b 836の構成において下流コピー・ボリュームが存在し、したがって出口YESを経由してステップ635に至る。ステップ635において、データ「A」がGp−0からC1p−0へコピーされる(838)。次いでステップ640において、データ「C」がS1p−0に書き込まれる(839)。方法はステップ699において終了する。有利なことに、書込みの時点で使用されるCOWアルゴリズムを変更することなく、クローン・ポイント・イン・タイム・コピーの場合にCOW挙動が達成された。
さらに別の代替的な実施形態において、スナップショット・ポイント・イン・タイム・コピー765は既に存在する。ステップ605において、コピー・コンポーネント905は、G/S1pポイント・イン・タイム・コピー・ボリューム765をコピーして、スナップショット・ポイント・イン・タイム・コピーを作成する。新たなスナップショット・ポイント・イン・タイム・コピーは、ホストビュー(vdisk)S2 773及び物理ディスクS2p 777を含む。ステップ615において、スワップ・コンポーネント906は、新たなポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであるか否かを判断する。新たなポイント・イン・タイム・コピー・ボリュームはスナップショット・ポイント・イン・タイム・コピー・ボリュームであるので、ステップ615において「YES」出口を経由する。ステップ620において、スワップ・コンポーネント906は、2つのvdiskビューであるヘッドG755及びS2 773をスワップする。マップ・コンポーネント910は、スワップをマッピングして、マップ8−6 841を提供する。S2p777のコンテンツは、S1p761又はS2p777のいずれのコンテンツへの書込みも未だ行われていないので、Gp757と同じストレージ位置にリンクする。G755についてホストに提示されるデータは[A,B]であり、S1 759についてホストに提示されるデータは、[A,B]であり、S2 773についてホストに提示されるデータは[A,B]である。この状況において、I/Oについてのホストビューは変更されず、S2は、G705のポイント・イン・タイム・コピー・ボリューム・イメージである。G705に対する書込みI/Oは、このI/Oのための新たな空間を割り当てることになるので、したがって標準的なROWアルゴリズムのI/O性能に適合する。G705、S1 765、及びS2が両方とも同じストレージ・プールからプロビジョニングされるので、ボリュームの本質的な特性は、ユーザの管理の観点から変更されない。I/O処理は、ステップ625、630、640を用いて続けることができる。方法はステップ699において終了する。
更なるスナップショット・ポイント・イン・タイム・コピーを作成することができ、プロダクション・ボリュームG705は常にI/OをROW方式で処理することが当業者には明らかである。
有利には、vdisk部分は、ホストI/O及びポイント・イン・タイム・コピー処理を扱うのに対して、pdisk部分は、データを格納する。有利には、本発明の好ましい実施形態によれば、ホストによって提示されポイント・イン・タイム・コピー・アルゴリズムによって管理される論理イメージと、データを保持するために使用される物理ストレージとの間にスプリットが導入される。各ストレージ・ボリュームは、「vdisk」部分及び「pdisk」部分を含む。vdisk部分は「ホスト」部分と考えられる。vdisk部分は、ホストI/O及びポイント・イン・タイム処理を扱い、pdiskはデータを格納する。有利には、システムは、ユーザの要求時に常にロールフォワード復旧動作を行うことができ、放棄された復旧をバックグラウンドで整理することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータプログラム命令によって実装することができることが理解されるであろう。
これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。
代替的な実施形態において、本発明は、クラウド・コンピューティング環境内で実現することができる。この開示はクラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で述べられる教示の実装はクラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、現在知られている又は後で開発されることになる他の任意の型式のコンピューティング環境と共に実装することが可能である。
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で、迅速にプロビジョニング及びリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、及び少なくとも4つの配備モデルを含むことができる。
特性は以下の通りである。
オンデマンドのセルフサービス:クラウド・コンシューマは、サーバ時間及びネットワーク・ストレージ等のコンピューティング能力を、人間とサービスのプロバイダとの対話を要することなく、必要に応じて自動的に、一方向にプロビジョニングすることができる。
広範なネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマに供されるようにプールされ、異なる物理リソース及び仮想リソースが要求に応じて動的に割当て及び再割当てされる。コンシューマは、一般に提供されるリソースの正確な位置についての制御又は知識を有さないという点で位置の独立(location independence)の意味があるが、より高次の抽象レベル(例えば、国、州、又はデータセンタ)において位置を指定することができる場合がある。
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングされてすばやくスケールアウトし、迅速に解放されてすばやくスケールインすることができる。コンシューマにとっては、プロビジョニングに利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象レベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、及び報告して、利用するサービスのプロバイダとコンシューマの両方に対して透明性を提供することができる。
サービス・モデルは以下の通りである。
Software as a Service(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ等のシン・クライアント・インタフェースを通じて、種々のクライアント・デバイスからアクセス可能である(例えば、ウェブ・ベースの電子メール)。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は、更には個々のアプリケーション能力をも含む基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成されたコンシューマ作成又は取得のアプリケーションを、クラウド・インフラストラクチャ上に配備することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び、場合によってはアプリケーション・ホスティング環境構成に対する制御を有する。
Infrastructure as a Service(IaaS):コンシューマに提供される能力は、コンシューマがオペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備して実行させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び、場合によってはネットワーキング・コンポーネント(例えば、ホストのファイアウォール)選択に対する限定的な制御を有する。
配備モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、一組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を共有する特定のコミュニティをサポートする。これは、それらの組織又は第三者により管理することができ、オンプレミス又はオフプレミスで存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままではあるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷平衡のためのクラウド・バースティング)によって互いに結び付けられた、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の組合せである。
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性(statelessness)、疎結合性(low coupling)、モジュール性(modularity)、及び意味的相互運用性(semanticinteroperability)に焦点を合わせている。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
ここで図12を参照すると、クラウド・コンピューティング・ノードの一例の模式図が示されている。クラウド・コンピューティング・ノード1000は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される実施形態の使用又は機能の範囲に関してなんらかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード1000は、上述された機能のいずれかを実装及び/又は実施することができる。
クラウド・コンピューティング・ノード1000内には、コンピュータ・システム/サーバ1012が存在し、これは多数のその他の汎用又は専用コンピューティング・システム環境又は構成と共に動作可能である。コンピュータ・システム/サーバ1012と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ1012は、コンピュータ・システムによって実行される、プログラムモジュール等のコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ1012は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実行することができる。分散型クラウド・コンピューティング環境においては、プログラムモジュールは、メモリ・ストレージ・デバイスを含むローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
図12に示されるように、クラウド・コンピューティング・ノード1000内のコンピュータ・システム/サーバ1012は、従来技術による、本発明の好ましい実施形態を実装することができる、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ1012のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット1016、システム・メモリ1028、及びシステム・メモリ1028を含む種々のシステム・コンポーネントをプロセッサ1016に結合するバス1018を含むことができるが、これらに限定されない。バス1018は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
コンピュータ・システム/サーバ1012は、典型的には種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ1012によってアクセス可能なあらゆる利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体両方、並びに取外し可能媒体及び取外し不能媒体の両方を含む。
システム・メモリ1028は、ランダム・アクセス・メモリ(RAM)1030及び/又はキャッシュ・メモリ1032等の揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ1012は、その他の取外し可能/取外し不能な揮発性/不揮発性コンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読出し及び書込みのために、ストレージ・システム1034を設けることができる。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読出し及び書込みのための磁気ディスク・ドライブ、並びに、CD−ROM、DVD−ROM又はその他の光媒体等の取外し可能な不揮発性光ディスクとの間の読出し及び書込みのための光ディスク・ドライブを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インタフェースによってバス1018に接続することができる。以下でさらに示され、説明されるように、メモリ1028は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラムモジュール1042の組(少なくとも1つ)を有するプログラム/ユーティリティ1040を、限定ではなく例として、オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラムモジュール、及びプログラムデータと共にメモリ1028内に格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラムモジュール、及びプログラムデータ、又はそれらの幾つかの組合せの各々は、ネットワーキング環境の実装を含むことができる。プログラムモジュール1042は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。
コンピュータ・システム/サーバ1012は、キーボード、ポインティング・デバイス、ディスプレイ1024、ディスク・ドライブ等の1つ又は複数の外部デバイス1014、ユーザがコンピュータ・システム/サーバ1012と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータ・システム/サーバ1012が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワークカード、モデムなど)と通信することもできる。このような通信は、入力/出力(I/O)インタフェース1022を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ1012は、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)等の1つ又は複数のネットワークと、ネットワーク・アダプタ1020を介して通信することができる。図示されるように、ネットワーク・アダプタ1020は、バス1018を介してコンピュータ・システム/サーバ1012の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ1012と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用することができることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
図13は、従来技術による、本発明の好ましい実施形態を実装することができる、例示的なクラウド・コンピューティング環境1150を示す。図示されるように、クラウド・コンピューティング環境1150は、クラウド・コンシューマによって用いられる例えば携帯情報端末(PDA)又は携帯電話1154A、デスクトップ・コンピュータ1154B、ラップトップ・コンピュータ1154C、及び/又は自動車コンピュータ・システム1154N等のローカル・コンピューティング・デバイスが通信することができる1つ又は複数のクラウド・コンピューティング・ノード1110を含む。ノード1110は、互いに通信することができる。これらを物理的又は仮想的にグループ化(図示せず)して、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド若しくはハイブリッド・クラウド又はこれらの組合せ等の1つ又は複数のネットワークにすることができる。これによりクラウド・コンピューティング環境1150は、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することができるようになる。図13に示されるコンピューティング・デバイス1154A−Nのタイプは単なる例示として意図されており、コンピューティング・ノード1110及びクラウド・コンピューティング環境1150は、あらゆるタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いて)を介して、あらゆるタイプのコンピュータ化された装置と通信することができることが理解される。
図14は、従来技術による、本発明の好ましい実施形態を実装することができる、図13のクラウド・コンピューティング環境1150によって提供される機能抽象化層の組を示す。図14に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層121は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、IBM(登録商標)zSeries(登録商標)システムを一例とするメインフレーム1202、IBM pSeries(登録商標)システムを一例とするRISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ1204、IBM xSeries(登録商標)システム1206、IBM BladeCenter(登録商標)システム1208、ストレージデバイス1210、ネットワーク及びネットワーキング・コンポーネント1212を含む。ソフトウェア・コンポーネントの例は、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェア1214、及びIBM DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェア1216を含む。IBM、zSeries、pSeries、xSeries、BladeCenter、i2、Analysts Notebook、Tivoli、Netcool、WebSphere及びDB2は、世界中の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
仮想化層123は、仮想エンティティティの以下の例、すなわち、仮想サーバ1222、仮想ストレージ1224、仮想プライベート・ネットワークを含む仮想ネットワーク1226、仮想アプリケーション及びオペレーティング・システム1228、並びに仮想クライアント1230を提供することができる抽象層を提供する。
一例において、管理層125は、以下で説明される機能を提供することができる。リソース・プロビジョニング1242は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定1244は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータル1246は、コンシューマ及びシステム管理者に対してクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理1248は、必要なサービスレベルが満たされるようにクラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント(SLA)計画及び履行1250は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
ワークロード層127は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーション1262、ソフトウェア開発及びライフサイクル管理1264、仮想教室教育配信1266、データ解析処理1268、トランザクション処理1270、並びに本発明の好ましい実施形態の復旧システム900処理1272を含む。あるいは、復旧システム900処理1252は、管理層125において実行することができる。
図15は、従来技術による、本発明の好ましい実施形態を実装することができる、本明細書において説明されるコンピューティング動作を実行することができるコンピュータ・システムの簡略化された例である、情報処理システム1300を示す。情報処理システム1300は、プロセッサ・インターフェース・バス1312に結合した1つ又は複数のプロセッサ1310を含む。プロセッサ・インターフェース・バス1312は、メモリ・コントローラ・ハブ(MCH)としても知られるノースブリッジ(Northbridge)1315にプロセッサ1310を接続する。ノースブリッジ1315は、システム・メモリ1320に接続し、プロセッサ1310がシステム・メモリにアクセスするための手段を与える。グラフィックス・コントローラ1325もまたノースブリッジ1315に接続している。1つの実施形態において、PCI Expressバス1318がノースブリッジ1315をグラフィックス・コントローラ1325に接続する。グラフィックス・コントローラ1325は、コンピュータ・モニタ等の表示デバイス1330に接続する。ノースブリッジ1315及びサウスブリッジ(Southbridge)1335は、バス1319を用いて互いに接続する。1つの実施形態において、このバスは、ノースブリッジ1315とサウスブリッジ1335との間で両方向に高速でデータを転送するDirect Media Interface(DMI)バスである。別の実施形態においては、周辺装置相互接続(PCI)バスがノースブリッジとサウスブリッジとを接続する。I/Oコントローラ・ハブ(ICH)としても知られるサウスブリッジ1335は、一般にノースブリッジが与える能力よりも低い速度で動作する能力を実装するチップである。サウスブリッジ1335は、典型的には種々のコンポーネントを接続するために用いられるバスを提供する。これらのバスは、例えば、PCI及びPCI Expressバス、ISAバス、システム管理バス(SMBus又はSMB)、及び/又はLow Pin Count(LPC)バス1392を含む。LPCバスは、ブートROM1396及び「レガシー」I/Oデバイス(「スーパーI/O」チップを用いる)等の低帯域幅のデバイスを接続することが多い。「レガシー」I/Oデバイス(1398)は、例えば、シリアル及びパラレル・ポート、キーボード、マウス、及び/又はフロッピィ・ディスク・コントローラを含むことができる。LPCバスはまた、サウスブリッジ1335をTrusted Platform Module(TPM)1395にも接続する。サウスブリッジ1335に含まれることが多いその他のコンポーネントには、ダイレクト・メモリ・アクセス(DMA)コントローラ、プログラム可能割り込みコントローラ(PIC)、及び、バス1384を用いてサウスブリッジ1335をハード・ディスク・ドライブ等の不揮発性ストレージデバイス1385と接続するストレージ・デバイス・コントローラが含まれる。
ExpressCard1355は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ExpressCard1355は、ユニバーサル・シリアル・バス(USB)とPCI Expresバスの両方を用いてサウスブリッジ1335に接続しているのでPCI ExpressとUSBの両方の接続をサポートする。サウスブリッジ1335は、USBに接続するデバイスにUSB接続を提供するUSBコントローラ1340を含む。これらのデバイスには、ウェブカム(カメラ)1350、赤外線(IR)レシーバ1348、キーボード及びトラックパッド1344、並びにワイヤレス・パーソナル・エリア・ネットワーク(PAN)を提供するBluetoothデバイス1346が含まれる。USBコントローラ1340は、マウス、取り外し可能不揮発性ストレージデバイス1345、モデム、ネットワークカード、ISDNコネクタ、ファックス、プリンタ、USBハブ、及びその他多数のタイプのUSB接続デバイス等のその他の種々のUSB接続デバイス1342にもUSB接続を提供する。取り外し可能不揮発性ストレージデバイス1345はUSB接続デバイスとして示されているが、取り外し可能不揮発性ストレージデバイス1345は、ファイアワイヤ・インターフェース等の異なるインタフェースを用いて接続することができる。
無線ローカル・エリア・ネットワーク(LAN)デバイス1375は、PCI又はPCI Expressバス1372を介してサウスブリッジ1335に接続する。LANデバイス1375は、典型的には、情報処理システム1300と別のコンピュータ・システム又はデバイスとの間で全てが同じプロトコルを用いて無線通信を行う無線変調技術のIEEE.802.11規格のうちの1つを実装する。光ストレージデバイス1390は、シリアルATA(SATA)バス1388を用いてサウスブリッジ1335に接続する。シリアルATAアダプタ及びデバイスは、高速シリアル・リンク上で通信する。シリアルATAバスは、サウスブリッジ1335を、ハード・ディスク・ドライブ等のその他の形態のストレージデバイスにも接続する。サウンド・カード等の音声回路1360は、バス1358を介してサウスブリッジ1335に接続する。音声回路1360は、音声ライン入力及び光デジタル音声入力ポート1362、光デジタル出力及びヘッドホン・ジャック1364、内蔵スピーカ1366、並びに内蔵マイクロフォン1368等の機能も提供する。イーサネット・コントローラ1370は、PCI又はPCI Expressバス等のバスを用いてサウスブリッジ1335に接続する。イーサネット・コントローラ1370は、情報処理システム1300を、ローカル・エリア・ネットワーク(LAN)、インターネット、並びにその他のパブリック及びプライベート・コンピュータ・ネットワーク等のコンピュータ・ネットワークに接続する。
図15は1つの情報処理システム1300を示しているが、情報処理システムは、多くの形態を取ることができる。例えば、情報処理システムは、デスクトップ、サーバ、携帯型、ラップトップ、ノートブック、又はその他のフォームファクタのコンピュータ又はデータ処理システムの形態を取ることができる。さらに、情報処理システムは、携帯情報端末(PDA)、ゲーム機、ATM機、携帯電話デバイス、通信デバイス又はその他プロセッサ及びメモリを含むデバイス等のその他のフォームファクタを取ることができる。図15に示されかつ本明細書で説明されるセキュリティ機能を提供するためのTrusted Platform Module(TPM1395)は、ハードウェア・セキュリティ・モジュール(HSM)の一例に過ぎない。従って、本明細書において説明され、特許請求されるTPMは、「Trusted Platform Module(TPM)仕様バージョン1.2」という名称のTrusted Computing Groups(TCG)規格に準拠するハードウェア・セキュリティ・デバイスを含むがそれらに限定されない任意のタイプのHSMを含む。TPMは、図15に概略が示されているような任意の数の情報処理システムに組み入れることができるハードウェア・セキュリティ・サブシステムである。
本発明は、システム、方法、及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカード若しくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び/又は無線ネットワークを経由して、外部コンピュータ若しくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び/又はエッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Java(登録商標)、Smalltalk、若しくはC++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む1つ若しくは複数のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。Java及び全てのJavaに基づく商標及びロゴは、Oracle及び/又はその系列会社の商標又は登録商標である。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。代替的な実施形態において、本発明は、問題を解決するためにハードウェアに接続された媒体内に格納されたコンピュータプログラム(又はアプリケーション)において実装することができる
本発明は、システム、方法、及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータプログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
疑義を避けるために、「含む」という用語は、本明細書において説明及び特許請求の範囲を通して使用されるとき、「...のみから成る」ことを意味すると解釈すべきではない。
422:スプリット・ビットマップ
424:差分ビットマップ
425:ポインタ
505:ソース・ディスクG
510:クローン又はスナップショット・ポイント・イン・タイム・コピー
511:クローン・ポイント・イン・タイム・コピーC1
513:スナップショット・ポイント・イン・タイム・コピーS1
520:物理ディスクGp
525:物理ディスクS1p/C1p
527:物理ディスクC1p
528、538:書込み
537:物理ディスクS1p
540:第1のストレージ・プール
545:第2のストレージ・プール
547:ストレージ・プール
550、552、553、554、555:リンク
705:ソース・ディスク
765:スナップショット・ポイント・イン・タイム・コピー
755、759、772、773:ホストビュー(vdisk)
757、761、774、777:物理ディスク
770:クローン・ポイント・イン・タイム・コピー
838:コピー
839:書込み
890:スワップ
900:書込みシステム、復旧システム
905:コピー・コンポーネント
906:スワップ・コンポーネント
910:マップ・コンポーネント
915:I/Oコンポーネント
1000:クラウド・コンピューティング・ノード
1040:プログラム/ユーティリティ
1110:クラウド・コンピューティング・ノード
1150:クラウド・コンピューティング環境
1154:ローカル・コンピューティング・デバイス
1202:メインフレーム
1204:RISCアーキテクチャ・ベースのサーバ
1206:IBM xSeries(登録商標)システム1206
1208:IBM BladeCenter(登録商標)システム1208
1210:ストレージデバイス
1212:ネットワーク及びネットワーキング・コンポーネント
1214:ネットワーク・アプリケーション・サーバ・ソフトウェア
1216:データベース・ソフトウェア
1222:仮想サーバ
1224:仮想ストレージ
1226:仮想ネットワーク
1228:仮想アプリケーション及びオペレーティング・システム
1230:仮想クライアント
1242:リソース・プロビジョニング
1244:計量及び価格設定
1246:ユーザ・ポータル
1248:サービスレベル管理
1250:サービスレベル・アグリーメント(SLA)計画及び履行
1252、1272:復旧システム900処理
1262:マッピング及びナビゲーション
1264:ソフトウェア開発及びライフサイクル管理
1266:仮想教室教育配信
1268:データ解析処理
1270:トランザクション処理
1300:情報処理システム
1344:キーボード及びトラックパッド
1348:赤外線(IR)レシーバ
1346:Bluetoothデバイス
1345:取り外し可能不揮発性ストレージデバイス
1350:ウェブカム(カメラ)
1355:ExpressCard
1360:音声回路
1362:音声ライン入力及び光デジタル音声入力ポート
1364:光デジタル出力及びヘッドホン・ジャック
1366:内蔵スピーカ
1368:内蔵マイクロフォン
1375:LANデバイス
1385:不揮発性ストレージデバイス
1390:光ストレージデバイス
1398:レガシーI/Oデバイス

Claims (10)

  1. ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステムであって、前記カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、前記システムは、
    前記ソース・ボリュームの前記ホスト部分と前記スナップショット・ボリュームの前記ホスト部分とをスワップするためのスワップ・コンポーネントと、
    前記ソース・コンポーネントのグレイン内の第1のデータ値を第2のデータ値で上書きするI/O要求に応答して、前記第2のデータ値を前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むため、及び
    前記クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが前記第1のデータ値を含んでいないことに応答して、前記第1のデータ値を前記クローン・ポイント・イン・タイム・コピー・ボリュームの前記対応するグレインへとコピーするための、I/Oコンポーネントと
    を含む、システム。
  2. 前記スナップショット・ボリューム及び前記ソース・ボリュームは、第1のストレージ・プール内にあり、前記クローンは、第2のストレージ・プール内にある、請求項1に記載のシステム。
  3. 前記カスケードにおいてボリュームの更なるポイント・イン・タイム・コピー・ボリュームを作成するためのコピー・コンポーネントをさらに含み、
    前記更なるポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであることに応答して、前記スワップ・コンポーネントは、前記ボリュームの前記ホスト部分と前記更なるポイント・イン・タイム・コピー・ボリュームのホスト部分とをスワップするようにさらに動作可能である、
    前記請求項のいずれかに記載のシステム。
  4. 前記更なるポイント・イン・タイム・コピー・ボリュームの作成に応答して、前記更なるポイント・イン・タイム・コピー・ボリュームを前記カスケードに追加するための、マップ・コンポーネントをさらに含む、請求項3に記載のシステム。
  5. ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するための方法であって、前記カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、前記方法は、
    前記ソース・ボリュームの前記ホスト部分と前記スナップショット・ボリュームの前記ホスト部分とをスワップすることと、
    前記ソース・コンポーネントのグレイン内の第1のデータ値を第2のデータ値で上書きするI/O要求に応答して、
    前記第2のデータ値を前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むことと、
    前記クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが前記第1のデータ値を含んでいないことに応答して、前記第1のデータ値を前記クローン・ポイント・イン・タイム・コピー・ボリュームの前記対応するグレインへとコピーすることと、
    を含む、方法。
  6. 前記スナップショット・ボリューム及び前記ソース・ボリュームは、第1のストレージ・プール内にあり、前記クローンは、第2のストレージ・プール内にある、請求項5に記載の方法。
  7. 前記カスケードにおいてボリュームの更なるポイント・イン・タイム・コピー・ボリュームを作成することと、
    前記更なるポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであることに応答して、前記ボリュームの前記ホスト部分と前記更なるポイント・イン・タイム・コピー・ボリュームのホスト部分とをスワップすることと、
    を含む、請求項5又は請求項6のいずれかに記載の方法。
  8. 前記更なるポイント・イン・タイム・コピー・ボリュームの作成に応答して、前記更なるポイント・イン・タイム・コピー・ボリュームを前記カスケードに追加すること、
    をさらに含む、請求項7に記載の方法。
  9. ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのコンピュータプログラムであって、前記カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、前記コンピュータプログラムは、
    請求項5から請求項8までのいずれかに記載の方法を行うために処理回路が実行するための命令を格納する、コンピュータプログラム。
  10. コンピュータ可読媒体上に格納され、デジタルコンピュータの内部メモリ内にロード可能なコンピュータプログラムであって、前記プログラムがコンピュータ上で実行されるときに請求項5から請求項8までのいずれかの方法を行うためのソフトウェアコード部分を含む、コンピュータプログラム。
JP2018511112A 2015-09-21 2016-08-24 コピーリダイレクト・オン・ライト Active JP6722277B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/859,385 US9940041B2 (en) 2015-09-21 2015-09-21 Copy-redirect on write
US14/859,385 2015-09-21
PCT/IB2016/055040 WO2017051270A1 (en) 2015-09-21 2016-08-24 Copy-redirect on write

Publications (3)

Publication Number Publication Date
JP2018531445A true JP2018531445A (ja) 2018-10-25
JP2018531445A6 JP2018531445A6 (ja) 2018-12-13
JP6722277B2 JP6722277B2 (ja) 2020-07-15

Family

ID=58282625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018511112A Active JP6722277B2 (ja) 2015-09-21 2016-08-24 コピーリダイレクト・オン・ライト

Country Status (6)

Country Link
US (2) US9940041B2 (ja)
JP (1) JP6722277B2 (ja)
CN (1) CN107924293B (ja)
DE (1) DE112016003120B4 (ja)
GB (1) GB2558478B (ja)
WO (1) WO2017051270A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017039580A1 (en) * 2015-08-28 2017-03-09 Hewlett Packard Enterprise Development Lp Collision handling during an asynchronous replication
US9747171B2 (en) 2015-09-16 2017-08-29 International Business Machines Corporation Point-in-time copy restore
US9940041B2 (en) 2015-09-21 2018-04-10 International Business Machines Corporation Copy-redirect on write
JP7122969B2 (ja) * 2016-02-29 2022-08-22 ルネサス エレクトロニクス アメリカ インコーポレイテッド マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
US20190050163A1 (en) * 2017-08-14 2019-02-14 Seagate Technology Llc Using snap space knowledge in tiering decisions
CN108733514B (zh) * 2018-05-24 2022-07-08 郑州云海信息技术有限公司 一种异构存储间快照实现的方法、系统及设备
CN109032507B (zh) * 2018-06-28 2021-11-19 郑州云海信息技术有限公司 一种生成源卷存储快照的方法、系统及相关组件
US10671486B2 (en) 2018-07-25 2020-06-02 International Business Machines Corporation Flashcopy tracking for storage optimization
CN109324929B (zh) * 2018-09-17 2021-11-09 郑州云海信息技术有限公司 一种快照创建方法、装置、设备及可读存储介质
CN109597707B (zh) * 2018-10-25 2024-04-23 平安科技(深圳)有限公司 克隆卷数据拷贝方法、装置及计算机可读存储介质
CN109460319A (zh) * 2018-11-01 2019-03-12 郑州云海信息技术有限公司 一种可写快照的创建方法、装置、系统、设备及存储介质
US10649952B1 (en) 2019-01-23 2020-05-12 Cohesity, Inc. Using a secondary storage system to maintain functionality of a database during database migration
US11429318B2 (en) * 2019-07-30 2022-08-30 EMC IP Holding Company LLC Redirect-on-write snapshot mechanism with delayed data movement
US11467775B2 (en) 2019-10-15 2022-10-11 Hewlett Packard Enterprise Development Lp Virtual persistent volumes for containerized applications
CN110781133B (zh) * 2019-10-25 2023-03-21 深信服科技股份有限公司 一种row快照方法、系统、设备及计算机可读存储介质
CN110795389B (zh) * 2019-10-28 2022-09-30 深信服科技股份有限公司 基于存储快照的拷贝方法、用户设备、存储介质及装置
CN110968645B (zh) * 2019-12-03 2023-05-12 携程旅游网络技术(上海)有限公司 分布式系统的数据读写方法、系统、设备和存储介质
CN111124756A (zh) * 2019-12-18 2020-05-08 浪潮(北京)电子信息产业有限公司 一种快照关系的展示方法、装置、设备及介质
CN111338850A (zh) * 2020-02-25 2020-06-26 上海英方软件股份有限公司 一种基于cow模式多快照下提高备份效率的方法及系统
CN111399774B (zh) * 2020-03-09 2021-09-14 星辰天合(北京)数据科技有限公司 分布式存储系统下基于快照的数据处理方法和装置
US11429495B2 (en) * 2020-03-16 2022-08-30 International Business Machines Corporation Data recovery mechanisms in deduplication-enabled storage facilities
US11687267B2 (en) 2020-04-14 2023-06-27 Hewlett Packard Enterprise Development Lp Containerized application manifests and virtual persistent volumes
US11693573B2 (en) 2020-06-18 2023-07-04 Hewlett Packard Enterprise Development Lp Relaying storage operation requests to storage systems using underlying volume identifiers
US11960773B2 (en) * 2020-07-31 2024-04-16 Hewlett Packard Enterprise Development Lp Modifying virtual persistent volumes based on analysis of performance metrics
CN112416245B (zh) * 2020-09-18 2023-02-24 济南浪潮数据技术有限公司 一种基于多架构容器云平台的存储卷管理方法及相关组件
US11467735B2 (en) * 2020-12-01 2022-10-11 International Business Machines Corporation I/O operations in log structured arrays
CN113448774B (zh) * 2021-06-04 2023-01-24 山东英信计算机技术有限公司 优化写时拷贝存储快照管理的方法、系统、设备及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349139C (zh) * 2004-02-19 2007-11-14 华为技术有限公司 一种快照过程中向源卷写数据的方法
GB0428108D0 (en) 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
US7404051B2 (en) 2005-04-18 2008-07-22 Hitachi, Ltd. Method for replicating snapshot volumes between storage systems
CN101140536B (zh) * 2007-05-21 2012-09-05 中兴通讯股份有限公司 一种支持级联快照的快照系统及其快照处理方法
US8650145B2 (en) 2008-10-07 2014-02-11 Hewlett-Packard Development Company, L.P. Creating snapshots of data using a selected one of different snapshot algorithms
US8285679B2 (en) 2010-03-11 2012-10-09 International Business Machines Corporation Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship
US8533411B2 (en) 2010-03-11 2013-09-10 International Business Machines Corporation Multiple backup processes
US8549242B2 (en) 2010-04-21 2013-10-01 International Business Machines Corporation Volume swapping of point-in-time read-only target volumes
US8788770B2 (en) 2010-05-25 2014-07-22 International Business Machines Corporation Multiple cascaded backup process
US8868869B2 (en) 2011-08-08 2014-10-21 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US8868860B2 (en) 2011-09-23 2014-10-21 International Business Machines Corporation Restore in cascaded copy environment
US8719523B2 (en) 2011-10-03 2014-05-06 International Business Machines Corporation Maintaining multiple target copies
US9304946B2 (en) 2012-06-25 2016-04-05 Empire Technology Development Llc Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
US9940041B2 (en) 2015-09-21 2018-04-10 International Business Machines Corporation Copy-redirect on write

Also Published As

Publication number Publication date
CN107924293A (zh) 2018-04-17
DE112016003120T5 (de) 2018-04-05
GB2558478B (en) 2019-01-23
US20170083250A1 (en) 2017-03-23
US9940041B2 (en) 2018-04-10
GB201806312D0 (en) 2018-05-30
GB2558478A (en) 2018-07-11
JP6722277B2 (ja) 2020-07-15
WO2017051270A1 (en) 2017-03-30
DE112016003120B4 (de) 2023-01-19
CN107924293B (zh) 2021-05-11
US20180165027A1 (en) 2018-06-14
US10209910B2 (en) 2019-02-19

Similar Documents

Publication Publication Date Title
JP6722277B2 (ja) コピーリダイレクト・オン・ライト
JP2018531445A6 (ja) コピーリダイレクト・オン・ライト
US11132264B2 (en) Point-in-time copy restore
US11093142B2 (en) Optimizing off-loaded input/output (I/O) requests
US9514004B2 (en) Restore in cascaded copy environment
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
US10042714B2 (en) Point-in-time copy on write for golden image
US11163728B2 (en) Sharing container images utilizing a shared storage system
US9632724B1 (en) Point-in-time copy with chain cloning
US9760449B2 (en) Restoring a point-in-time copy
US9760450B2 (en) Restoring a clone point-in-time copy
JP2023536896A (ja) データの論理的破損保護
US11030100B1 (en) Expansion of HBA write cache using NVDIMM
US10698631B2 (en) Point-in-time copy with target write optimization
US11799945B2 (en) Pipelined file server based data transmission
US20210365411A1 (en) Asynchronous host file system based data replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200619

R150 Certificate of patent or registration of utility model

Ref document number: 6722277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150