JP2007515725A - 記憶領域における選択されたデータに対する処理を実行するための方法及び装置 - Google Patents

記憶領域における選択されたデータに対する処理を実行するための方法及び装置 Download PDF

Info

Publication number
JP2007515725A
JP2007515725A JP2006545555A JP2006545555A JP2007515725A JP 2007515725 A JP2007515725 A JP 2007515725A JP 2006545555 A JP2006545555 A JP 2006545555A JP 2006545555 A JP2006545555 A JP 2006545555A JP 2007515725 A JP2007515725 A JP 2007515725A
Authority
JP
Japan
Prior art keywords
storage
data
storage locations
volume
locations
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.)
Pending
Application number
JP2006545555A
Other languages
English (en)
Other versions
JP2007515725A5 (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 JP2007515725A publication Critical patent/JP2007515725A/ja
Publication of JP2007515725A5 publication Critical patent/JP2007515725A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Abstract

記憶領域中の選択データを処理する方法、システム、記憶媒体及びコンピュータシステムである。記憶領域内の記憶位置は、該記憶位置のデータのみに処理を行う目的のためリクエスタにより特定される。データを管理するアプリケーション(例えば、データベースアプリケーション、ファイルシステム、ユーザアプリケーションプログラム)あるいは記憶マネージャを該リクエスタとすることができる。データが記憶される該記憶位置は、記憶マネージャやボリュームマネージャ等、処理を行うソフトウェアや、記憶マネージャと連携して動作する記憶領域複製機能等のアプリケーションによって求められる。処理を行うソフトウェアは、特定された位置に対してのみ処理を行うため、特定された記憶位置に記憶されたデータにのみ影響を与える。リクエスタは、実行される動作、及び特定された記憶位置のサブセットに対して処理を行う許可を与えられた要素を特定する。

Description

本発明は、記憶ボリューム等の記憶領域に記憶された選択データの処理に関する。
情報は事業を動かす原動力である。データ・センターに障害が発生すると、数日間あるいは数週間にわたる予定外のダウンタイムや組織の生産性を脅かしかねないデータ損失を招く。日常の業務でデータや情報にますます依存するようになっている企業にとって、このような予定外のダウンタイムは企業の評価を下げ、企業収益に打撃を与える可能性がある。企業はますますコストを意識してきており、障害を予測し復旧するための対策をとっている。
多くの場合、上記のような対策としては、企業の業務に利用される「実」データである一次データあるいは製造データを保護する。様々な物理的記憶装置上であって多くの場合は遠隔地にある一次データのコピーを作成し、確実に該一次データの1バージョンを、一貫して、連続的に利用できるようにする。このようなデータのコピーは出来るだけ頻繁に更新し、一次データが破損した場合や復元する必要がある場合に該複製を利用できるようにすることが好ましい。
ハードウェアあるいはソフトウェアの障害が発生した場合やその後の復旧作業における2つの関心事は、データ損失を防止することと、一次データ記憶領域とバックアップ・データ記憶領域との間で一貫性を保つことである。一貫性により、たとえ一次データのバックアップコピーが一次データと同一でない場合でも(例えば、バックアップコピーに対する更新が一次データに対する更新に遅れをとる場合がある)、バックアップコピーが過去の時点で実際に起きた一次データの状態を常に表すことが保証される。アプリケーションが一次データに対する一連の書き込み作業A、B、Cを実行する場合、バックアップコピーに対してこれらの書き込み作業を同様の順序で実行することにより一貫性を保つことができる。バックアップコピーは、一次データにおいて実際に発生していない状態、例えば、書き込み作業Cが書き込み作業Bの前に実行された場合に起こり得た状態を反映することはない。
一貫性を実現し、データ損失を回避する方法の1つには、一次データに対する各更新を、好ましくはリアルタイムで、バックアップコピーに対しても行う方法がある。このように「重複した」更新は、一次データを管理するアプリケーション・プログラムと同様のプログラムによって、一次データの1以上の「ミラー」コピーに対して局所的に行う。しかしながら、ミラーリングされたコピーを局部的に作成してもデータ損失を防止することはできないため、多くの場合は一次データを二次的な場所に複製する。一次データが破損しており、一次データを破損した更新の結果を複製によりデータのバックアップコピーに反映させる場合、作成されたデータのコピー毎に、破損したデータを「バックアウト」し一次データを以前の状態に復元することが必要である。以前は、このような問題を、一次データの破損前に作成されたバックアップコピーから一次データを復元することにより解決していた。一次データが一旦復元されると、一次データ全体が各バックアップコピーにコピーされ、一次データとバックアップコピーの間における一貫性を確保する。その後ようやく一次データを用いて更新や複製等の通常の処理を行うことができるのである。
一次データ全体を各バックアップコピーにコピーする上述の技術により、一次的な場所と二次的な場所の間におけるデータの一貫性が確保される。しかしながら、一次データ全体を二次的な場所における各バックアップコピーにコピーする方法では、一次データのうち小さいサブセットのみが変更された場合にネットワークの帯域幅を無駄に使用してしまうことになる。更に、ネットワークを介して一次データ全体をコピーする場合、特にテラバイト単位のデータのようにデータ量が大きい場合は、データのバックアップコピーを作成するために膨大な時間がかかる。更に、ボリュームの記憶位置全てに有用なデータが記憶されているわけではない。ボリュームを使用するアプリケーション(ファイル・システムやデータベース等)は、一般的に、内容の重要性が低く通常アクセスできないフリーブロックを有する。このような記憶箇所を二次ノードにコピーする必要はない。したがって、一次データ全体を二次ノードの各バックアップコピーにコピーすると、通常の処理の開始が遅れてしまい、ダウンタイムが発生するために企業が多額の費用を負担しなくてはならない場合がある。
より小さいデータを複製する方法の1つに、データのコピーを記憶している別の記憶領域中の領域に対して変更されている各記憶領域中の領域を常時監視し、変更領域のみをコピーする方法がある。変更領域を常時監視する方法の一つに、ビットマップ(ここでは変更マップあるいはマップとも呼ぶ)を利用する方法がある。ここで、記憶領域(ボリューム)は各領域に分割されており、ビットマップ中の各ビットは記憶領域(ボリューム)の特定の領域に対応する。データのバックアップコピーに対して各領域におけるデータが変更された場合、各ビットは論理1に設定される。バックアップコピーの作成以降データが変更されていない場合、各ビットは論理0に設定される。論理1に設定されているビットを有する領域のみを複製する。しかしながら、この方法にも問題点がある。64Kの領域中で1つのビットのみが変更される場合、64Kのデータ全体が各二次ノードにコピーされる。記憶領域(ボリューム)全体をコピーする場合と比較すれば改善はされているが、上記方法は依然として必要以上のデータを複製するものである。データ変更マップの使用については、図2を参照して以下で更に詳しく説明する。
更に、このようなデータ変更の常時監視は、データの論理的構成に対してよりもむしろ、選択ファイル等、記憶ボリュームの各領域に対して実行される。記憶ボリュームの全変更領域は上述のデータ変更マップを用いて同期がとられる。選択ファイルの一部は記憶ボリューム上の複数領域に分散している場合があるため、データ変更を常時監視する方法では、単一のファイルにおける変更部分等、異なるボリューム上で論理的な1組のデータの一部を選択的に同期させることはできない。
このような制限はデータが非常に大きい場合に問題となる。例えば、ボリューム上の20個の大きいファイルのうち1個のファイルのみが破損すると仮定する。上述のデータ変更マップを用い、20個の大きいファイルのうち何れかの一部を記憶している全変更領域を同期させる。更に、破損していないファイルに対する変更が無駄に「バックアウト」されてしまい、これらのファイルは同期処理の間は利用することができない。例えば、ファイルがデータベースを含む場合、データを同期させる間、ボリュームの変更領域に記憶されている全てのデータベースを利用することができなくなる。これらのデータベースはオフラインにしてからオンラインに戻し、データベースがオフラインであった間に発生したトランザクションのログを各データベースに適用させる必要があるだろう。破損していないファイルを処理すると、同期処理を大幅に遅らせてしまうとともにリソースを無駄遣いしてしまう。
データの一部のみを二次ノードに複製することが望ましいが、殆どの複製機能は、記憶位置に記憶されているデータの種類や趣旨を考慮せずに記憶位置の内容をコピーするように構成されている。データの種類や趣旨を考慮した処理を実行するためには、通常、アプリケーション特有のソフトウェアを利用する。例えば、個々のファイルのみをコピーするには、各ファイルに含まれている記憶位置、すなわち複製機能では通常利用できない情報について知ることが必要である。個々のファイルはXCOPYのようなファイルコピー・ユーティリティによりコピーすることが可能であるが、このようなユーティリティは、通常、ファイルの選択部分に対して実行されるものではない。例えば、1ギガバイトのデータを記憶しているファイルにおいて1ビットのみが変更された場合、ファイルコピー・ユーティリティは、該1ギガバイトのデータ全体をコピーして変更を取り込まなくてはならない。大量のデータ及び/またはファイルから選択されたデータを、より高速に復元及び/または同期させることが必要である。
単一のファイルにおける変更部分やその他の論理的な一組のデータ等、異なる記憶領域に記憶された1以上のバージョンのデータから選択されたデータのみを同期させる機能が求められている。この方法では、不必要なデータをコピーせずに選択データのみを同期させることが好ましい。また、この方法では、1以上のスナップショットを有するデータを用いてアプリケーションのパフォーマンスに対する影響を最小限にすべきである。また、記憶領域に記憶された他のデータが、同期されている選択データの一部ではない場合、該他のデータを利用できるようにし、加えられた変更を保持できるようにするべきである。
本発明は、記憶領域における選択データを処理する方法、システム、コンピュータにより読み取り可能な記憶媒体、及びコンピュータ・システムを含む。記憶領域中の記憶位置は、データを管理するアプリケーション(例えば、データベース・アプリケーション、ファイル・システム、ユーザ・アプリケーション・プログラム)により、該記憶位置のデータのみに対して処理を行う目的で特定される。そして、データが記憶されている該記憶位置は、記憶マネージャやボリューム・マネージャ等、処理を行うソフトウェアや、記憶マネージャやボリューム・マネージャと連携して動作する記憶領域複製機能等のアプリケーションに送られる。上記処理を行うソフトウェアは、特定された位置に対してのみ処理を行うため、特定された記憶位置に記憶されたデータにのみ影響を与え、その他特定されていない記憶位置のデータには影響を与えることはない。
本発明は、添付図面を参照することでより良く理解できるとともに、その多くの目的、特徴及び利点を当業者に明らかにすることができる。
別々の図面中で同一の符号が用いられている場合は、類似する要素あるいは同一の要素を示す。
本発明を十分に理解するためには、図面を参照しながら添付請求項とともに以下の詳細な説明を参照する。本発明はいくつかの実施例に関連して説明されているが、本発明はここに挙げる実施例に限定されるものではなく、添付請求項によって定義されるような本発明の範囲内に無理なく含まれるような代案、変更、及び等価要素を包含するものである。
以下の説明では、本発明を十分に理解できるように多くの詳細な具体策を説明のために示す。しかしながら、このような詳細な具体策がなくても本発明を実施できることは当業者に明らかであろう。
明細書中における「1の実施例」や「実施例」という語は、該実施例に関連して説明される特定の特徴、構造、あるいは特性が、本発明の少なくとも1実施例に含まれることを意味する。明細書中に「1の実施例において」という語句があっても、それは必ずしも同一の実施例を示すものではなく、相互に他の実施例を除外する別々の実施例あるいは代替的な実施例を示すものでもない。更に、様々な特徴について説明するが、それらは、ある実施例で見られる特徴であり、その他の実施例ではみられない特徴である場合がある。同様に、様々な要件が説明されているが、それらはいくつかの実施例についての要件であり、その他の実施例についての要件ではない場合がある。
専門用語について
記憶装置は記憶領域の種類によって異なるものであり、ブロック、バイト範囲、ファイル、ファイル・クラスタ、あるいはその他の記憶対象の種類に応じた単位で規定できることを当業者は理解できるであろう。ここで、「記憶領域」及び「記憶ボリューム」という語はあらゆる種類の記憶領域あるいは対象を広く示すために用いられ、「領域」及び/またはブロックという語は、記憶ボリューム上の記憶位置を示すために用いられる。ボリューム、領域、ブロック、及び/または位置という語は限定的なものではなく、ここではあらゆる種類の記憶対象を広く示すために用いられている。
記憶ボリュームの各ブロックは、通常、一定のサイズを有する。例えば、512バイトのブロック・サイズが一般的に用いられている。よって、1,000メガバイトの容量を有するボリュームは512バイトのブロックを2,048,000個含む。これらのブロックはブロック番号(ブロック・アドレスとも呼ばれる)を指定することにより読み出し・書き込むことができる。通常、1ブロックは、全体として読み出し・書き込みを行わなければならない。ブロックは各領域にグループ化されており、例えば、一般的な領域のサイズは32キロバイトである。なお、ブロック及び領域は一定のサイズを有する一方で、ファイル・サイズは可変にすることができる。したがって、単一ファイル内でデータを同期させる際には、複数の領域からデータをコピーすること必要な場合がある。
各記憶ボリュームは、該ボリュームの各領域に加えられた変更を追跡するためのデータ変更マップをそれぞれ有する。なお、データ変更マップをビットマップとして構成することは必ずしも必要ではない。データ変更マップは、1組の論理変数や、領域の指標テーブルとして、あるいは、記憶ボリュームの領域内のデータに加えられた変更を追跡する手段を用いて構成することができる。
多くの環境において、複製データは、該複製データが作成された時点における一次ボリュームの画像を保存するために変更されない。このように変更されない複製ボリュームは静的複製ボリュームと呼ばれることがあり、複製データは静的複製データと呼ばれる。静的複製ボリュームにデータが誤って書き込まれることがあるが、この場合、各データ変更マップは該複製ボリュームが変更されたことを示す。
その他の環境においては、複製データが作成された後に複製データを独立して更新できるようにするのが望ましい。例えば、一次ボリューム及び複製ボリュームは、通常、分散システムにおける別々のノードによって管理され、同一の更新トランザクションを両ボリュームに適用することができる。一方のボリューム上のデータを管理するノードに異常が発生すると、他方のボリュームを用いて、異常が起きたボリュームを現在のデータの状況に同期させる。別々に更新された複製は、複製ボリュームについて別個のビットマップを保持することによりサポートされる。
序論
本発明は、記憶領域における選択データを処理する方法、システム、コンピュータで読み取り可能な記憶媒体、及びコンピュータ・システムを含む。記憶領域内の記憶位置は、該記憶位置のデータのみに処理を行う目的でリクエスタ(requester: リクエスト手段)により特定される。データを管理するアプリケーション(例えば、データベース・アプリケーション、ファイル・システム、ユーザ・アプリケーション・プログラム)や記憶マネージャを上記リクエスタとすることができる。データが記憶されている該記憶位置は、記憶マネージャやボリューム・マネージャ等、処理を行うソフトウェアや、記憶マネージャと連携して動作する記憶領域複製機能等のアプリケーションによって求められる。処理を行うソフトウェアは、特定された位置に対してのみ処理を行うため、特定された記憶位置に記憶されたデータにのみ影響を与え、その他の特定されていない記憶位置のデータには影響を与えることはない。リクエスタは、実行される動作、及び、特定された記憶位置のサブセットに対して処理を行う許可を与えられた要素を特定する。
図1は、本発明が動作できるシステム環境の一例を示す。2つのノード、すなわち一次ノード110A及び二次ノード110Bが示されている。ソフトウェア・プログラム・アプリケーション115A及び記憶マネージャ/リプリケータ120Aが一次ノード110A上で動作する。アプリケーション115Aは、変更ログ130A及びデータ記憶装置140Aに記憶することができる一次データを管理する。
変更ログ130Aは、データに加えられた変更がデータ記憶装置140Aに書き込まれる前に該変更が書き込まれる「ステージング領域」と考えられる。変更ログ130A等の変更ログは単にログとも呼ばれ、いくつかの異なる方法で構成することができる。例えば、ログのエントリにより、データの特定された領域に対して実行される処理を表すことができる。または、ログを、各領域に対する一組の処理を保持するように構成してもよい。その他のログ構造も可能であり、本発明を実施するために特定の変更ログ構造が要求されることはない。本発明は、ログがなくても実施することが可能であるが、ログを用いることが好ましい。
記憶マネージャ/リプリケータ120Aは、アプリケーション115Aによる一次データへの書き込み動作をインターセプトし、該一次データへの変更を二次ノード110Bに複製する。記憶マネージャ/リプリケータ120Aにより行われる複製は、一次データ記憶装置及び二次データ記憶装置の両方に更新が一貫して適用される限り、同期的、非同期的、及び/または周期的に行うことができる。
アプリケーション115A及び記憶マネージャ/リプリケータ120Aは、一次ノード110A等、同一のコンピュータ・システム上で動作できるが、一次ノード110Aによって表されるハードウェア及びソフトウェア構成は多様である。アプリケーション115A及び記憶マネージャ/リプリケータ120Aは、別々のコンピュータ・システム上で動作することもできる。更に、アプリケーション115A及び記憶マネージャ/リプリケータ120Aを、相互に連携して動作する別個の記憶管理モジュール及び複製モジュールとして構成することもできる。アプリケーション115A自体が何らかの記憶管理機能を提供することもできる。
変更ログ130Aは、非永続的あるいは永続的な記憶装置に記憶することができ、データ記憶装置140Aは、1以上の物理的記憶装置を含むことができる論理記憶装置上に記憶された1組のデータの論理的表現である。更に、図中ではアプリケーション115A、記憶マネージャ/リプリケータ120A、変更ログ130A、及びデータ記憶装置140Aが、一次ノード110A内で相互に連結されているが、このような連結状態は単なる例示であり、他の連結構造を採用することも可能であることを当業者は理解できるであろう。例えば、アプリケーション115A、記憶マネージャ/リプリケータ120A、変更ログ130A、及びデータ記憶装置140Aのうち1以上の要素を、物理的には一次ノード110Aによって表されるノードの外部であって該ノードに結合することができる。
二次データ記憶装置140Bは一次データ記憶装置140Aから論理的に分離されているが、物理的に分離することも可能である。一次ノード110Aの記憶マネージャ/リプリケータ120Aは、複製リンク120Cを介して二次ノード110Bの記憶マネージャ/リプリケータ120Bと通信を行う。また、二次ノード110Bは、変更ログ130B及び一次データの複製を記憶するためのデータ記憶装置140Bを有し、二次ノード110Bのハードウェア及びソフトウェア構成は上記と同様に種々の構成をとることができる。変更ログ130B等の変更ログは、二次ノード110等の二次ノード上に必ずしも存在していなくてもよい。
図2は、2つの時点における一次データの例を示し、一次データ210Aは時点Aに現れた一次データを示し、二次データ210Bは時点Bに現れた一次データを示す(時点Bは時点Aより後)。また、時点Bにおける一次データの8つの領域を示す対応データ変更マップ220が説明のため示されている。データ変更マップ220に示すように、領域2、3及び7における一次データが時点Aと時点Bの間で変更されている。データのスナップショットを時点Aで撮ったと仮定する。その後に一次データが破損すると、一次データをスナップショットが撮られた時点におけるデータの状態に復元することができる。この復元処理は、領域2、3、及び7(データ変更マップでは値1を有する領域として特定されている)をコピーすることにより行われる。あるいは、スナップショットを最新の状態にするために領域2、3及び7を時点Bにおける一次データ210Bからスナップショットへコピーすることもできる。この方法によれば、全てのデータ(例えば、非常に大きいファイルにおける全てのデータ)を一組のデータから別のデータにコピーせずに、データの2つのコピーを同期させることが可能になる。
上記のように、変更の局所的な追跡は非効率的な場合がある。本発明は、選択された記憶位置のみに対する処理を可能にするため、「ボリュームふるい」あるいは単に「ふるい」と称する機構の使用を提案する。ふるいについては、以下の段落で更に詳しく説明する。
ふるい
概念的には、ふるいは、記憶領域(ボリューム)のユーザ(人あるいはアプリケーション・プログラム)が該記憶領域(ボリューム)の選択された記憶位置に対して(記憶領域全体に対してだけではなく)どの処理を実行すべきか示すことができるようにする機構である。ふるいは、きめ細かいアクセス・処理制御機構及びフィルタとして機能する。ボリュームふるいは多くの用途に利用され、例えば、記憶領域(ボリューム)中の選択された記憶データのみを複製したり、選択された各組のデータを複数の二次ノードへ複製(一対多数、多数対多数、多数対一)したり、クラスタ・アクセス制御や低レベルのデータ機密保護等を行う。
一般的に、ふるいは、特性、及び該特性によって示される処理が実行される1以上の位置から成る集合という2つの構成要素から成ると考えられる。該特性は、記憶領域(ボリューム)に対して実行される処理を抽象化したものである。処理の例としては、複製、バックアップ、読み出し、書き込み、クラスタ内のデータへのアクセス、圧縮、暗号化、ミラーリング、チェックサムによるデータの照合等が挙げられる。特性は、例えば、上記処理を実行するソフトウェアにより実行される一組の指示で構成することができる。このような一組の指示は、コールバック機能として実現することができ、該コールバック機能では、別のモジュールが処理の実行を要求した場合に、処理を実行するソフトウェアが処理の実行を要求する上記別のモジュールに、呼び出す機能の名称を提供する。
1以上の記憶位置から成る一組の記憶位置は、1以上の範囲から成る一組の範囲として表すことができる。ファイル範囲は、物理的な記憶ボリューム上の物理的な記憶位置のレイアウトを含む。ファイル範囲は、通常、ファイル中の開始位置を示すアドレス及びサイズ(該アドレスから始まる一連の記憶位置の数)を含む。単一のファイルにはいくつかの非連続部分(その各々が開始位置とサイズを有する)を含めることができる。ファイル範囲はファイル・クラスタ等の記憶単位で表すことができるが、ここでは簡略化のためにボリューム上の位置として示すことを当業者は理解できるだろう。
一組の範囲は、基となるボリュームの一部を示す範囲マップ(あるいはビットマップ)として表すことができる。範囲(アドレス範囲)がふるいの範囲マップにある場合、ふるいの特性をそのアドレス範囲における記憶位置に適用することが可能である。マップに存在しない範囲は、ふるいの特性で表される処理による影響を受けない。例えば、ふるいは、複製の特性、及び複製されるボリュームの一部を示す範囲により形成されるが、ふるいで示されていないボリュームの一部は複製されない。
以下の段落において、ふるいにより実行される処理の例について説明し、ふるいの実施例について更に詳細に説明する。
ふるいによる処理例
図3Aは、全てのデータが全ての二次ノードに複製され際の1つの一次記憶ボリューム及び2つの二次記憶ボリュームに対するデータの例を示す。複製ボリューム310A、310B及び一次ボリューム310Cは9つの記憶位置に対するデータを示し、3つの領域R1、R2、R3はそれぞれ3つの記憶位置を含む。記憶ボリューム310A、310B、310Cにおいて、領域R1の記憶位置1、2、3には、それぞれ値「A」、「z」、「G」を有するデータが記憶されている。領域R2の記憶位置4、5、6には、それぞれ値「B」、「9」、「?」を有するデータが記憶されている。領域R3の記憶位置7、8、9には、それぞれ値「q」、「C」、「@」を有するデータを記憶されている。二次記憶ボリューム310A、310Bは一次ボリューム310Cと同期する。
図3Bは、ボリュームふるいを用いて複製されたデータの一例を示す。ふるい320Aは、位置1から始まる6つの位置から成る一組の位置に適用される複製ボリューム#1(複製ボリューム310A)への複製処理を示す特性を有する。本例では、ふるい320Aは、それぞれ値「q」、「C」、「@」を有する領域R3の記憶位置7、8、9に適用される。
ふるい320Bは、位置1から始まる6つの位置から成る一組の位置に適用される複製ボリューム#2(複製ボリューム310B)への複製処理を示す特性を有する。本例では、ふるい320Aは、それぞれ値「A」、「z」、「G」を有する領域R1の記憶位置1〜3、及び領域2の記憶位置4〜6に適用される。
図3Cは、一部重複するボリュームふるいを用いて複製されたデータの一例を示す。ふるい320Aは、位置5から始まる5つの位置から成る一組の位置に適用される複製ボリューム#1(複製ボリューム310A)への複製処理を示す特性を有する。本例では、ふるい320Aは、それぞれ値「B」、「9」、「q」、「C」、「@」を有する領域R2、R3の記憶位置5、6、7、8、9に適用される。
ふるい320Bは、位置1から始まる6つの位置から成る一組の位置に適用される複製ボリューム#2(複製ボリューム310B)への複製処理を示す特性を有する。本例では、ふるい320Aは、それぞれ値「A」、「z」、「G」を有する領域R1の記憶位置1〜3、及びそれぞれ「B」、「9」、「?」を有する領域2の記憶位置4〜6に適用される。記憶位置5、6は複製ボリューム310A、310Bの両方に複製される。
図3Dは、変更データのみを複製するボリュームふるいを用いて複製されたデータの一例を示す。本例において、ふるい320A、320Bは図3中に示したのと同様であるが、特性は複製処理が変更された記憶位置のみに適用されることを規定している。変更された記憶位置のデータのみが複製される。本例では、領域5のビットのみが変更されていることを示すデータ変更マップ330が示すように、値「9」から値「2」へ変更された記憶位置5のデータのみが変更されている。値「2」は、複製ボリューム310A、310Bの両方に複製される。
図3Eは、複数の特性(複数の動作を示す)を有するボリュームふるいを用いて複製されたデータの一例を示す。ふるい320Aは、圧縮及び複製ボリューム#1(複製ボリューム310A)への複製処理を示す特性を有する。上記処理は両方とも、位置5から始まる5つの位置から成る一組の位置に適用されるが、これらの位置が変更されるデータを格納している場合のみ、上記処理が実行される。本例において、ふるい320Aは、それぞれ値「2」、「?」、「q」、「C」、「@」を有する領域R2、R3の記憶位置5、6、7、8、9に適用される。データ変更マップ330は記憶位置5のデータのみが変更されていることを示す。一次ボリューム310Cの記憶位置5におけるデータは圧縮され、その後複製ボリューム310Aに複製される。
また、ふるい320Bは、位置1から始まる6つの位置から成る一組の位置が変更されるデータを記憶している場合のみ、これらの位置に適用される圧縮及び複製ボリューム#2(複製ボリューム310B)への複製処理を示す特性を有する。ふるい320Bは、それぞれ値「A」、「z」、「G」を有する領域R1の記憶位置1〜3、及び、それぞれ値「B」、「9」、「?」を有する領域R2の記憶位置4〜6に適用される。記憶位置5におけるデータは圧縮され、その後複製ボリューム310Bに複製される。
図3Fは、単一のボリューム上のボリュームふるいを用いて複製されたデータの一例を示す。ふるい310A−1は、位置3、4、5に記憶されたデータに対して実行されるデータの圧縮を示す特性を有する。ふるい310A−2は、複製ボリューム#1への複製を示す特性を有する。複製される一組の位置は、位置1から始まる6つの位置を含む。両方のふるいを適用する際、位置3、4、5のデータがふるい310A−1にしたがって圧縮され、位置1〜6のデータがふるい310A−1にしたがって複製ボリューム310Aに複製される。記憶位置3、4、5のデータは複製処理の前に圧縮されるが、記憶位置1、2、6のデータは複製処理の前に圧縮されない。
図3Gは、コールバック機能を用いて複製されたデータの一例を示す。ふるい320Aは、位置5から始まる5つの位置から成る一組の位置のうちデータが変更されている位置に適用される複製ボリューム#1(複製ボリューム310A)への複製処理を示す特性を有する。更に、Callback_Function1を呼び出す指示がふるいに含まれている。本例において、ふるい320Aは、それぞれ値「B」、「9」、「q」、「C」、「@」を有する領域R2、R3の記憶位置5、6、7、8、9に適用される。データ変更マップ330は記憶位置5のデータのみが変更されていることを示す。Callback_Function1はデータが複製される前に呼び出される。
ふるい320Bは、位置1から始まる6つの位置から成る一組の位置のうち変更されたデータを記憶している位置に適用される複製ボリューム#2(複製ボリューム310B)への複製処理を示す特性を有する。更に、Callback_Function2を呼び出す指示がふるいに含まれている。ふるい320Bは、それぞれ値「A」、「z」、「G」を有する領域R1の記憶位置1〜3、及び、それぞれ値「B」、「9」、「?」を有する領域R2の記憶位置4〜6に適用される。したがって、記憶位置5のデータは、Callback_Function2の呼び出し後、複製ボリューム310Bに複製される。
図4は、本発明を実施するための方法を示すフローチャートである。「処理が実行される記憶領域における指定された一組の位置を求める」ステップ410で、指定された一組の位置が求められる。これらの記憶位置は、記憶領域におけるデータの種類及内容を知っているアプリケーションにより提供されることが好ましい。指定される記憶位置は、処理が実行されるデータを記憶している記憶位置のみである。該処理は、「実行する処理を決定する」ステップ420において決定される。例えば、ふるいの特性にアクセスすることにより、実行する処理を決定することができる。そして、制御は「指定された一組の位置に対してのみ処理を実行する」ステップ430に進み、該ステップ430では、指定された一組の位置に対してのみ処理が実行される。指定されていないその他の記憶位置におけるデータは処理による影響を受けない。
以下の段落でふるいの実施例について説明するが、これは単なる一例であって、本発明の範囲を限定するものではない。
ふるいの実施例
ボリュームふるいは、特性及び該特性によって示される処理が実行される1以上の記憶位置から成る一組の記憶位置といえる。ふるいの特性はビット列として表すことができ、該ビット列中の各ビットは予想されるボリューム処理のうちの1つに対応する。ある特定のビットが設定されると、対応する特性がアクティブとなり、基になる記憶領域(ボリューム)に記憶されたデータに対して対応する処理が実行される。ビット列に2以上のビットが設定されている場合、ふるいは複数の特性を表す。たとえば、複製の特性に対応するビット位置がVOL_SIEVE_PROPERTY_REPLICATEであり、圧縮に対応するビット位置がVOL_SIEVE_PROPERTY_COMPRESSである場合、ボリュームふるいの特性を(VOL_SIEVE_PROPERTY_REPLICATE/VOL_SIEVE_PROPERTY_COMPRESS)に設定することにより、ボリュームの関連部分の複製を圧縮すべきであることを示すことができる。
複数のふるいを様々な特性により記憶領域(ボリューム)に適用することができる。また、ふるいは、ふるいの特性によって示される処理を特定の一組の位置に対してだけでなくクラスタ中の特定のデータ、複製用の二次ノード、及び/またはその他の同様な要素に適用することを示す他の要素を有する場合がある。したがって、例えば、いくつかの二次ノードの各々に複製されるボリュームの領域を、データの特定部分にアクセスすることができるクラスタ中のノードとともに示すことができる。
ふるいの第2の構成要素は、特性によって示される処理が適用される1以上の記憶位置からなる一組の記憶位置である。1の実施例において、ふるいは、メモリに読み込まれる際に、範囲リスト(オフセット−長さの組み合わせ)として永続的に記憶され、ビットマップに展開することができる(各ビットは一定のサイズのボリューム領域/ブロックを現す)。各ビットが領域を表しているビットマップをより速く、より容易に操作し、検索することが可能であるため、所属の問い合わせに対してより迅速に応答できる。範囲リストはビットマップを圧縮したもの(長さがコード化されているもの)と考えることができる。範囲リストはビットマップよりも小さいため永続的な記憶により適している。範囲マップの代わりに時間ツリー・ベース表現を採用することもできるが、この場合、高速の索引付けが可能であるものの操作はより難しくなる。
上記のように、1以上のふるいをある所定のボリュームに適用することができる。例えば、上述のような圧縮した複製ふるいを考えてみる。特性の組み合わせを有する単一のふるいを適用する代わりに、ユーザは(人あるいはアプリケーション・プログラム)、記憶領域(ボリューム)における指定された位置のデータのみが圧縮後に複製され、他の記憶位置のデータは圧縮されずに送られるよう、2つのふるい(1つはVOL_SIEVE_PROPERTY_REPLICATEに対応し、一方はVOL_SIEVE_PROPERTY_COMPRESSに対応する)を適用することを選択することができる。複数のふるい特性の間で競合が発生する場合や、特性の組み合わせに意味がない場合がある。このような問題は、所定の処理を許可するか中途で終了するか決定する指示でふるいを実行することにより解決できる。各処理は、開始前に、該処理に対応する何れかのふるいに照会し、領域(ボリューム)アドレス空間における指定された一組の位置に対して該処理を実行するべきか否か確認するように構成される。
特性及び一組の位置を有する上述のふるいは、ボリューム・アドレス空間のみを表しているという点で、一次元的なものと考えられる。ふるい機構の機能及び能力を向上するために、ふるいに他の側面を追加することができる。追加する側面としては、例えば、(所定の範囲について)古い特性をある要素に適用することが挙げられ、この要素が追加の側面を形成する。追加する側面の意味は、それをふるい特性と組み合わせることによって示すことができ(該側面はメタ特性と考えられる)、該側面の要素自体はそれらを範囲リストに加えることにより指定することができる。
例えば、(VOL_SIEVE_PROPERTY_WRITE/VOL_SIEVE_PROPERTY_CLUSTER)というふるい特性と、{[20,45,(N1)},[1000,*,(N1,N2,N3)}}という二次元的な範囲リストに対し、ふるいがクラスタ処理に適用され、側面自体がタプル(N1)及び(N1,N2,N3)によって表されることを示すVOL_SIEVE_PROPERTY_CLUSTERというメタ特性により追加の側面が表される。このふるいは、クラスタ内の1つのノードN1がアドレス範囲[20,45]に書き込める一方、アドレス範囲1000からボリュームの末尾まではノードN1,N2,N3のいずれかによって書き込めることを示す。
その他、追加の側面を表す別の方法として、側面中の各要素に対してそれぞれ一次元的なふるいを持つ方法がある。この表現方法では、1つの範囲マップが各追加側面における各要素に対して存在する。上記の例では、VOL_SIEVE_PROPERTY_CLUSTERという追加側面に対して、ノードN1は{[20,45],[1000,*]}、ノードN2は{[1000,*]}、ノードN3は{[1000,*]}というふるいを有する。この表現方法は重複的であり、上述の表現方法より大きい記憶空間を必要とするが解釈はより容易である。
1の実施例では、構成データベースにおける記憶領域(ボリューム)のレコードを介して、ふるいが記憶領域に対応付けられている。ふるいに対してトランザクション処理を実行できるよう、ふるいは新しいタイプの構成レコードとして表される。1の実施例では、ふるいはデータ管理ソフトウェア及び/または複製ユーティリティのホストとして働くコンピュータ・システムのカーネル・メモリに読み込まれるが、これは殆どのふるい特性は記憶領域(ボリューム)へのI/Oパスに影響するからである。
ある特定の記憶領域(ボリューム)が多数のふるいを有する場合があるため、別の実施例では、ふるいを記憶するためのボリュームを複数組設ける。1組のボリュームは、ソースデータ・ボリュームの他にボリュームに対するメタデータを記憶するための独立したボリュームを含む。ふるいはソースデータ・ボリュームに対するメタデータを含むものと考えられる。
1の実施例では、管理者コマンドやアプリケーション・プログラミング・インターフェース(ioctlやライブラリ・コールを使用するAPI)を介して、ふるいを変更することができる(たとえば、ふるい特性を設定あるいは変更したり、範囲リストを追加、変更、削除したりすることができる)。1の実施例では、ふるいは、変更キーにより保護され、正しい変更キーが提供された場合にのみふるいを変更することができる。該変更キーはNULLに設定することができ、この場合は、ふるいを変更するためにキーを提供してはならない。本例では、ふるいは、システム(例えば、Unixにおけるルートディレクトリ)(Unixは商標)の管理者、あるいはシステムの権利を有するアプリケーション(例えば、カリフォルニア州マウンテンビューのベリタスソフトウェア株式会社が提供するベリタス・ファイル・システム(VxFS)等のファイル・システム)によってのみ、ふるいを変更することができる。
ふるいの応用例
上記のように、複製ユーティリティは記憶領域(ボリューム)全体の内容を複製するように設計されている。しかしながら、何れかのデータのみが重要であるため記憶領域(ボリューム)に記憶されている全データを複製する必要がない場合や、ユーザがデータの一部のみを特定の二次ノードへ複製したい場合がある。このような場合において、複製特性を有するふるいを用いて、記憶領域(ボリューム)に記憶されているデータを選択的あるいは部分的に複製することができる。側面(複製が実行される二次ノードを示す)を追加して、どの二次ノードがデータのどの部分を受け取るか示すことができる。
アプリケーション・データの一部のみが複製される場合(例えば、ファイル・システムのファイルやディレクトリ)、アプリケーションは、二次ノード上に論理的に一貫性のある(部分的にではあるが)画像を作成するために複製されるべきボリュームの範囲(あるいは領域)を決定することができる。例えば、複製されるファイルやディレクトリに対する全てのデータ及びメタデータの範囲を決定することにより、二次ファイル・システムに指定されたファイルやディレクトリのみをマウントすることができる。そして、これらの範囲が複製ふるいに加えられる。データが変更されたり新しいデータが追加されると、アプリケーションは適宜ふるいを変更したり、範囲を追加したりする。
企業が発展し多数のソフトウェア製品を販売するようになり、各製品が独自のデータ・リポジトリ(ソースコード・リポジトリ、顧客レコード、関連ドキュメント等)を有するケースについて考える。リポジトリは一箇所で(例えば、セントラルサーバで)維持することができるが、製品開発及び販売業務は世界中に分散して行われる。製品開発及び販売グループは各地に広がっており、独自のローカルサーバ(より高速なアクセスのために)を持つ。更に、開発グループにおける各開発チームは独自のキャッシュサーバを持つことができる。
このようなケースでは、関連ファイル/ディレクトリのみを関連するサーバに複製する選択的なファイル複製が有効である。例えば、/projectディレクトリにセントラルサーバ上のソース・リポジトリ全てを格納すると仮定する。選択的なファイル複製により、/project/unixソースコード・ツリーのみがUnixチームのサーバに複製され、/project/Windows(Windowsは商標)ツリーのみがWindowsチームのサーバに複製される。開発者がソースコードを中央のリポジトリに送信するたびに、新たなソースコードを関連サーバのみに選択的に複製することができる。例えば、Unixソースコード・ツリーに入れられたソースコードはUnixサーバのみに複製される。
また、選択的なファイルの複製はデータ機密保護の点でも有効である。例えば、遠隔ノードがファイル・システムの全データへのアクセスを必要としない場合があるが、このような場合には、必要とされるファイル及びディレクトリのみを遠隔ノードに複製する。
また、選択的なファイル複製によりクラスタ内または交換ネットワーク上の負荷を分散することができ、この場合はボリューム(仮想LUN)の一部が1のスイッチ/ホストに複製され、別の部分が別のスイッチ/ホストに複製される。このような選択的な複製により一対多数あるいは多数対多数の分割複製を実現することができ、二次ノード上の複製負荷を分散する上で有効である。記憶領域が非常に大きく、変更が全域に分散している場合、一次的な場所(例えば、クラスタや交換ネットワーク)のノードがそれらの間でアドレス空間を分割し、負荷を分散させる。この場合、各ノードはソース・ボリューム内の特定の記憶領域のみを複製する。二次ノードは複製ストリーム(多数対一)を組み合わせたり、あるいは上述のように多数対多数の分割複製を行ったりできる。
ボリュームふるい機構の他の用途として、クラスタ・ノードによるデータへのアクセスを制限することが挙げられる。多次元的なふるいを作成し、クラスタ内のどのノードが記憶領域(ボリューム)のどの指定記憶位置にアクセス(読み出し/書き込み)できるかを示す。また、ボリュームふるい機構を用いて圧縮や暗号化等の処理をサポートすることができる。ふるいのビットあるいは範囲により、処理中に所定の領域や範囲を圧縮すべきか、暗号化すべきか示すことができる。現在のバックアップ周期においてバックアップされる範囲を示すためにバックアップふるいを用いることができる。
また、ふるいを用いて記憶領域(ボリューム)の一部のみに対する読み出し/書き込みアクセスを可能にすることができる。このふるい機構は最低レベルでのデータ機密保護が可能になり、ファイル・システム(あるいはその他のアプリケーション)で利用することができるため、不用意なあるいは悪意のある変更/アクセスから重要なデータを保護することができる。変更キーあるいは同様な機構を用いることにより、ふるいを更に保護することができる。
ふるいを用いてデータを記憶している特定の記憶位置のみをミラーリングすることにより、重要なデータのみをミラーリングすることができる。更に、ふるいを用いてコピー・オン・ライト(copy−on−write)動作を防止することができる。このようなふるいを用いて、古いデータがスナップショットに残すほど重要でない場合や有用でない場合に該古いデータをスナップショットに送ることを防止することができる。最後に、ふるいを用いて部分的なスナップショットや画像を作成することができる。ふるいを用いて元のアドレス空間の一部のみを含むボリュームの画像を作成することができる。また、スナップショットがこの機構を用いることにより、ソース記憶領域(ボリューム)の特定の記憶位置のみを(コピー・オン・ライト(copy−on−write)動作により)保存することができる。
本発明は、論理的な一組のデータの記憶ボリューム上の物理的な位置を求めることができる限り、該論理的な一組のデータに適用することができる。このような物理的な位置を記憶ボリューム上の変更領域にマッピングし、論理的な一組のデータの変更部分のみを同期させることができる。更に、選択されたデータのみが同期処理による影響を受ける。記憶ボリューム上のその他のデータは利用可能であり、同期処理により変更されない。
本発明には多くの利点がある。本発明によって、アプリケーションは、記憶領域における選択された記憶位置に対する処理を独自の目的のために制御できるようになる。従来は、複製等の処理が記憶領域ソフトウェア及び/または複製機能により内部で制御されていたが、このような処理はファイル・システムやデータベース管理システム等のアプリケーションレベルのソフトウェアでは困難であった。
本発明によれば、アプリケーション・ソフトウェアが記憶領域全体に対してではなく記憶領域中の選択された一組の記憶位置に対してのみ処理を行うように指示を行うことが可能になる。必ずしも連続的なアドレスを持たない1以上の記憶位置から成る一組の記憶位置は、単一の不可分ブロックから記憶領域全体まで、いかなる大きさにすることもできる。一組の記憶位置に対して行う処理はアプリケーションによって決定されるが、記憶マネージャ及びその周辺要素(複製機能等)により実行される。
更に、アプリケーションは、記選択された一組の記憶位置のデータに対して実行される一組の指示を出すこともできる。この場合、一組の指示は、記憶マネージャが実行できない処理に対するものとすることができる。一組の指示は、コールバック機能や同様の機構として実行することができ、この場合、記憶領域は処理を実行するアプリケーションを呼び出すことができる。アプリケーションがコールバック機能を記憶マネージャに登録する前は、記憶マネージャは一組の指示(例えば、コールバック機能)について知らないか、持たない。
その他の実施例
図3A〜3Gまでに示した機能は、その他多くのソフトウェア及びハードウェア構成により提供することが可能である。当業者は、複製及び同期機能についてここで説明した機能が、該機能を提供するモジュール、指示、及び/またはその他の手段により実行できることを認めるだろう。
図1Aの記憶マネージャ/リプリケータ120Aの記憶マネージャ機能は様々な方法により実現することができる。例えば、図1Aにおいて記憶マネージャ/リプリケータ120Aはアプリケーション115Aとデータ記憶装置140Aとの間に示されており、I/O動作の発信元、ここではアプリケーション115Aと、該I/O動作の出力先、ここではデータ記憶装置140Aとの間の入力/出力ストリームについて「帯域内で」動作する。市販されている帯域内記憶マネージャには、例えば、カリフォルニア州マウンテンビューのベリタス・ソフトウェア株式会社により製造されているベリタス・ボリューム・マネージャやクラスタ・ボリューム・マネージャがあるが、その他の市販されている製品も帯域内管理機能を提供しており、本発明は上記例に限定されない。
あるいは、記憶マネージャ機能は、I/O動作の発信元と該I/O動作の出力先との間の入力/出力ストリームについて「帯域外」動作することもできる。例えば、I/O動作は、ファイバー・チャンネル・ストレージ・エリア・ネットワーク(SAN)構造の記憶アレイ、記憶装置、あるいはスイッチ内に埋め込まれた記憶マネージャとして実現されたデータ記憶装置を出力先とすることができる。帯域外記憶マネージャの一例としては、カリフォルニア州マウンテンビューのベリタスソフトウェア株式会社により製造されているSANボリューム・マネージャがあるが、その他の市販されている製品も帯域内管理機能を提供しており、本発明は上記例に限定されない。
また、記憶マネージャ機能は、ネットワーク全域あるいはクラスタ内の帯域内及び/または帯域外記憶マネージャに配分することもできる。分離した記憶管理タスクは、別個のノード上で動作する記憶マネージャに割り当てることが出来る。例えば、1つのネットワークあるいはクラスタ内の1つのノード上で動作する記憶マネージャがI/Oストリームを直接送る機能を提供し、該ネットワークあるいはクラスタ内の別のノード上で動作する別の記憶マネージャが1以上の物理的記憶装置への論理データ記憶領域の論理対物理のマッピングを制御することができる。
更に、何らかの記憶マネージャ機能を含むモジュールが、別の記憶マネージャ機能を含む別のモジュールにサービスを要求してもよい。例えば、I/Oストリームをローカル記憶装置に直接送信する上の段落で説明した記憶マネージャが、他の記憶マネージャに、該ローカル記憶装置に書き込みを行う前に論理データ記憶装置の論理対物理のマッピングを行うよう要求してもよい。
更に、決定モジュールが記憶ボリューム内の選択データに対する物理的位置を決定してもよく、別の特定モジュールが記憶ボリュームの変更領域を特定してもよい(例えば、ここで説明したデータ変更マップを用いて)。別の判断モジュールにより、いつ物理的位置と変更領域が一致するか判断してもよい。また、別の同期モジュールが一次ボリューム上の選択データに対する位置におけるデータをスナップショット・ボリューム上の選択データに対する対応位置におけるデータに同期させてもよく、その方向はどちらでも構わない。
あるいは、単一のモジュールを用いて、記憶ボリューム内の選択データに対する物理的位置を決定し、記憶ボリュームの変更領域を特定してもよい。該単一のモジュールは、いつ物理的位置と変更領域が一致するか判断することもできる。また、この単一のモジュールが一次ボリューム上の選択データに対する位置におけるデータをスナップショット・ボリューム上の選択データに対する対応位置におけるデータに同期させてもよく、その方向はどちらでも構わない。同様の機能を実行するためのその他の構成は本発明の範囲内にあるものとする。
図4で説明した動作は、例えば、図1に示す一次ノード110A及び二次ノード110B等、指示を実行するように構成されたメモリ及びプロセッサを含むコンピュータ・システム、例えば、集積回路(例えば、それらの動作を実行するように構成されたFPGA(フィールド・プログラマブル・ゲート・アレイ)やASIC(特定用途向け集積回路))や、あるいはネットアプライアンス等、機能を実行するように構成された機械的装置により実行することができる。
本発明は、上記利点やそれらに内在する利点を実現するために適している。本発明は、特定の実施例を参照して描写、説明、定義したが、そのような参照は本発明を限定するものではなく、そのような限定が推測されるものでもない。本発明は、関連技術分野の当業者によりなされ得るように、形式及び機能の点で相当な改良や変更、均等物による差し替えを行うことができる。描写され、説明された実施例は単なる例示であり本発明の範囲を網羅するものではない。
上述した実施例は、例えばふるい及びデータを含む記憶領域のように、他の構成要素に含まれる構成要素を含む。このような構造は単なる例示であり、実際には、同様の機能を実現するその他数多くの構造を実施することができる。抽象的ではあるが限定的な意味で、同様の機能を実現する構成要素の構成は、所望の機能が実現されるように効果的に「関連付け」られている。したがって、ここで特定の機能を実現するために組み合わせられた何れか2つの構成要素は、構造や中間要素に関わらず、該所望の機能を実現するように相互に関連付けられている。同様に、このように相互に関連付けられた何れか2つの構成要素は、所望の機能を実現するよう相互に「動作可能に接続され」、あるいは「動作可能に連結され」ていると考えることができる。
上記詳細な説明では、ブロック図、フローチャート、及び例により本発明の各種実施例を説明した。当業者は、各ブロック図の構成要素、フローチャートの工程、処理、及び/または例示された構成要素を、個々に及び/または一括して、幅広いハードウェア、ファームウェア、あるいはこれらの組み合わせにより実現できることを理解するであろう。
本発明は、完全に機能するコンピュータ・システムに照らして説明したが、本発明は様々な形式のプログラム製品として配布することができ、本発明は、実際に配布を行うために用いられる信号が記録されている媒体の種類に関わらず適用されることを当業者は理解するだろう。信号が記録されている媒体の例としては、フレキシブル磁気ディスクやCD−ROMのような書き込み可能な媒体、ディジタル・アナログ通信リンクのような通信型の媒体、及び将来開発される媒体記憶配信システムが挙げられる。
上述の実施例は、何らかのタスクを実行するソフトウェア・モジュールにより実施することができる。ここで、ソフトウェア・モジュールには、スクリプト、バッチ、またはその他の実行可能なファイルを含めることができる。ソフトウェア・モジュールは、マシンで読み取り可能な、あるいはコンピュータで読み取り可能なディスク・ドライブ等の記憶媒体上に記憶することができる。本発明の実施例に従いソフトウェア・モジュールを記憶するための記憶装置としては、例えば、磁気フロッピーディスク、ハードディスク、CD−ROMやCD−R等の光ディスクがある。また、本発明の実施例に従いファームウェアあるいはハードウェア・モジュールを記憶するための記憶装置は、マイクロプロセッサ/メモリ・システムに恒久的に、取り外し可能に、あるいは遠隔的に連結される半導体ベースのメモリとしてもよい。したがって、モジュールをコンピュータ・システム・メモリ内に記憶し、該コンピュータ・システムがモジュールの機能を実行するように構成することができる。その他、コンピュータで読み取り可能な新しい種類の様々な記憶媒体を用いて上述のモジュールを記憶してもよい。
上で開示した構造及び方法を提供するために必要とされる工程を容易に実施するとともに、工程の処理パラメータや順序は一例として示されただけであり、所望の構造を実現するために変更し、本発明の範囲内で改良できることを当業者は理解するであろう。ここで開示した実施例は、ここで行った説明に基づき変更及び改良することができる。したがって、本発明は、あらゆる側面における均等物を十分に考慮し、添付請求項の範囲のみによって限定されるものである。
本発明が動作することができるシステム環境の一例を示す。 一次データ及び該一次データの変更を追跡するためのデータ変更マップを示す。 全てのデータが全ての二次ノードに複製される場合の1つの一次記憶ボリューム及び2つの二次記憶ボリュームのデータの一例を示す。 ボリュームふるいを用いて複製されたデータの一例を示す。 一部重複するボリュームふるいを用いて複製されたデータの一例を示す。 変更されたデータのみを複製するボリュームふるいを用いて複製されたデータの一例を示す。 複数の特性(複数の動作を示す)を有するボリュームふるいを用いて複製されたデータの一例を示す。 単一のボリューム上のボリュームふるいを用いて複製されたデータの一例を示す。 コールバック機能を用いて複製されたデータの一例を示す。 本発明を実施するための方法を示すフローチャートである。

Claims (19)

  1. 複数の記憶位置から成る記憶領域に対する処理を実行する要求に応じて、該複数の記憶位置のうち、各記憶位置が前記処理の判断基準に合致している第1の一組の記憶位置を特定し、
    前記第1の一組の記憶位置を第2の一組の記憶位置と比較し、
    前記記憶領域における第3の一組の記憶位置に対して前記処理を実行することを特徴とする方法。
  2. 更に、各記憶位置が前記第1の一組の記憶位置及び前記第2の一組の記憶位置の両方に含まれる前記第3の一組の記憶位置を作成することを特徴とする請求項1に記載した方法。
  3. 前記第2の一組の記憶位置はアプリケーション・プログラムによって指定されることを特徴とする請求項1に記載した方法。
  4. 前記処理は複製であることを特徴とする請求項1に記載した方法。
  5. 更に、一組の要素を求め、前記第1の一組の記憶位置は複数の記憶位置のサブセットから成り、前記一組の要素のうち1の要素は、前記複数の記憶位置のサブセットのうち少なくとも1のサブセットにおける各データに対して処理を行うことが許可されていることを特徴とする請求項1に記載した方法。
  6. 前記第2の一組の記憶位置はリクエスト手段によって指定されることを特徴とする請求項1に記載した方法。
  7. 更に、実行される処理を指定することを特徴とする請求項6に記載した方法。
  8. 前記リクエスト手段は前記記憶領域のデータを管理することを特徴とする請求項6に記載した方法。
  9. 前記リクエスト手段は前記記憶領域に対する一組の管理機能のうち1の管理機能を実行することを特徴とする請求項6に記載した方法。
  10. 前記リクエスト手段は前記第2の一組の記憶位置の各記憶位置に対応する前記記憶領域中の各物理的記憶位置を特定することを特徴とする請求項6に記載した方法。
  11. 前記第2の一組の記憶位置の各記憶位置は、開始記憶位置と、該開始記憶位置から開始する連続する記憶位置の数によって指定されることを特徴とする請求項6に記載した方法。
  12. 前記第2の一組の記憶位置の各記憶位置は一組の指標によって指定され、該一組の指標は、前記複数の記憶位置の各記憶位置に対する指標から成り、前記一組の指標の各指標は、前記指標に対する前記各記憶位置が前記第2の一組の記憶位置に含まれているか否かを示すことを特徴とする請求項6に記載した方法。
  13. 更に、第4の一組の記憶位置を求め、前記第3の一組の記憶位置に対して前記処理を実行した後で、前記第4の一組の記憶位置に対する第2の処理を実行することを特徴とする請求項6に記載した方法。
  14. 前記第2の一組の記憶位置はリクエスト手段によって指定され、前記処理及び前記第2の処理はリクエスタによって指定されることを特徴とする請求項13に記載した方法。
  15. 前記記憶領域に対するふるいは、前記処理から成り、前記ふるいが指定されている場合、前記ふるいの各処理が前記第3の一組の記憶位置に対して実行されることを特徴とする請求項6に記載した方法。
  16. 複数の記憶位置から成る記憶領域に対して処理を実行する要求に応じて、該複数の記憶位置のうち、各記憶位置が前記処理の判断基準に合致している第1の一組の記憶位置を特定する特定モジュールと、
    前記第1の一組の記憶位置を第2の一組の記憶位置と比較する比較モジュールと、
    前記記憶領域における第3の一組の記憶位置に対して前記処理を実行する実行モジュールと、
    から成るシステム。
  17. 更に、各記憶位置が前記第1の一組の記憶位置及前記第2の一組の記憶位置の両方に含まれる前記第3の一組の記憶位置を作成する作成モジュールから成る請求項16に記載したシステム。
  18. 前記第2の一組の記憶位置はリクエスト手段によって指定されることを特徴とする請求項16に記載したシステム。
  19. 更に、実行される処理を指定する指定モジュールから成る請求項16に記載したシステム。
JP2006545555A 2003-12-19 2004-12-20 記憶領域における選択されたデータに対する処理を実行するための方法及び装置 Pending JP2007515725A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/742,128 US20050138306A1 (en) 2003-12-19 2003-12-19 Performance of operations on selected data in a storage area
PCT/US2004/042809 WO2005064468A1 (en) 2003-12-19 2004-12-20 Method and apparatus for performing operations on selected data in a storage area

Publications (2)

Publication Number Publication Date
JP2007515725A true JP2007515725A (ja) 2007-06-14
JP2007515725A5 JP2007515725A5 (ja) 2010-08-19

Family

ID=34678368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006545555A Pending JP2007515725A (ja) 2003-12-19 2004-12-20 記憶領域における選択されたデータに対する処理を実行するための方法及び装置

Country Status (6)

Country Link
US (1) US20050138306A1 (ja)
EP (1) EP1702267B1 (ja)
JP (1) JP2007515725A (ja)
CN (1) CN100472463C (ja)
DE (1) DE602004008808T2 (ja)
WO (1) WO2005064468A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028393A (ja) * 2009-07-22 2011-02-10 Nec Corp データ複製システム及びデータ処理方法

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2548542C (en) 2003-11-13 2011-08-09 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US9497109B2 (en) * 2005-02-11 2016-11-15 Hewlett Packard Enterprise Development Lp Switching mesh with user-configurable paths
US7467265B1 (en) 2005-06-30 2008-12-16 Symantec Operating Corporation System and method for block conflict resolution within consistency interval marker based replication
US8401997B1 (en) 2005-06-30 2013-03-19 Symantec Operating Corporation System and method for replication using consistency interval markers in a distributed storage environment
US7506003B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7689533B1 (en) * 2005-08-29 2010-03-30 Symantec Operating Corporation Method and apparatus for using storage properties in a file system
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
CA2632935C (en) 2005-12-19 2014-02-04 Commvault Systems, Inc. Systems and methods for performing data replication
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
US7991965B2 (en) 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
US9026679B1 (en) * 2006-03-30 2015-05-05 Emc Corporation Methods and apparatus for persisting management information changes
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8549236B2 (en) * 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
US9471449B2 (en) * 2008-01-03 2016-10-18 Hewlett Packard Enterprise Development Lp Performing mirroring of a logical storage unit
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US8386438B2 (en) * 2009-03-19 2013-02-26 Symantec Corporation Method for restoring data from a monolithic backup
US8356017B2 (en) * 2009-08-11 2013-01-15 International Business Machines Corporation Replication of deduplicated data
US8135928B2 (en) 2009-10-26 2012-03-13 Symantec Operating Corporation Self-adjusting change tracking for fast resynchronization
US8504517B2 (en) * 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8572038B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Systems and methods for performing data replication
AU2011293014B2 (en) * 2010-08-25 2014-08-14 Intel Corporation Method and system for extending data storage system functions
US8725692B1 (en) * 2010-12-16 2014-05-13 Emc Corporation Replication of xcopy command
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
CN104735119B (zh) * 2013-12-23 2018-05-04 伊姆西公司 用于数据拷贝避免的方法和装置
US9836515B1 (en) * 2013-12-31 2017-12-05 Veritas Technologies Llc Systems and methods for adding active volumes to existing replication configurations
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
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
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
US11892913B2 (en) * 2015-01-05 2024-02-06 Rubrik, Inc. Data lineage based multi-data store recovery
DE102015211320A1 (de) * 2015-06-19 2016-12-22 Robert Bosch Gmbh Speichereinheit zum automatischen Multiplizieren des Inhalts einer Speicherstelle, und Datennetz mit Speichereinheit
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
CN106657411A (zh) * 2017-02-28 2017-05-10 北京华云网际科技有限公司 分布式系统中卷的访问方法和装置
US10754557B2 (en) * 2017-09-26 2020-08-25 Seagate Technology Llc Data storage system with asynchronous data replication
US10416923B1 (en) * 2017-09-29 2019-09-17 EMC IP Holding Company LLC Fast backup solution for cluster shared volumes shared across a cluster of nodes using extent sets as parallel save streams
US11086901B2 (en) * 2018-01-31 2021-08-10 EMC IP Holding Company LLC Method and system for efficient data replication in big data environment
US10761765B2 (en) * 2018-02-02 2020-09-01 EMC IP Holding Company LLC Distributed object replication architecture
US10509675B2 (en) * 2018-02-02 2019-12-17 EMC IP Holding Company LLC Dynamic allocation of worker nodes for distributed replication
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242437A (ja) * 1998-12-24 2000-09-08 Hitachi Ltd データのコピーを作成する記憶装置システム
JP2001318833A (ja) * 2000-05-09 2001-11-16 Hitachi Ltd ボリューム複製機能を有する記憶装置サブシステム、および、それを用いたコンピュータシステム
JP2003099306A (ja) * 2001-09-25 2003-04-04 Hitachi Ltd 計算機システムおよび計算機システムにおけるバックアップ方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204954A (en) * 1987-11-18 1993-04-20 International Business Machines Corporation Remote storage management mechanism and method
US5659747A (en) * 1993-04-22 1997-08-19 Microsoft Corporation Multiple level undo/redo mechanism
US5652864A (en) * 1994-09-23 1997-07-29 Ibm Concurrent storage allocations or returns without need to lock free storage chain
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5794252A (en) * 1995-01-24 1998-08-11 Tandem Computers, Inc. Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing
SG118132A1 (en) * 1997-11-13 2006-01-27 Hyperspace Communications Inc File transfer system
WO2000004483A2 (en) * 1998-07-15 2000-01-27 Imation Corp. Hierarchical data storage management
US6564219B1 (en) * 1998-11-19 2003-05-13 Emc Corporation Method and apparatus for obtaining an identifier for a logical unit of data in a database
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
US6804755B2 (en) * 2000-06-19 2004-10-12 Storage Technology Corporation Apparatus and method for performing an instant copy of data based on a dynamically changeable virtual mapping scheme
US6665815B1 (en) * 2000-06-22 2003-12-16 Hewlett-Packard Development Company, L.P. Physical incremental backup using snapshots
US6839721B2 (en) * 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US6823436B2 (en) * 2001-10-02 2004-11-23 International Business Machines Corporation System for conserving metadata about data snapshots
EP1349088B1 (en) * 2002-03-19 2010-11-03 Network Appliance, Inc. System and method for determining and transmitting changes in snapshots
US20030208511A1 (en) * 2002-05-02 2003-11-06 Earl Leroy D. Database replication system
JP4250914B2 (ja) * 2002-06-03 2009-04-08 株式会社日立製作所 記憶装置システム
US6907505B2 (en) * 2002-07-31 2005-06-14 Hewlett-Packard Development Company, L.P. Immediately available, statically allocated, full-logical-unit copy with a transient, snapshot-copy-like intermediate stage
US7664771B2 (en) * 2002-10-16 2010-02-16 Microsoft Corporation Optimizing defragmentation operations in a differential snapshotter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242437A (ja) * 1998-12-24 2000-09-08 Hitachi Ltd データのコピーを作成する記憶装置システム
JP2001318833A (ja) * 2000-05-09 2001-11-16 Hitachi Ltd ボリューム複製機能を有する記憶装置サブシステム、および、それを用いたコンピュータシステム
JP2003099306A (ja) * 2001-09-25 2003-04-04 Hitachi Ltd 計算機システムおよび計算機システムにおけるバックアップ方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028393A (ja) * 2009-07-22 2011-02-10 Nec Corp データ複製システム及びデータ処理方法

Also Published As

Publication number Publication date
EP1702267A1 (en) 2006-09-20
CN100472463C (zh) 2009-03-25
DE602004008808T2 (de) 2008-06-19
EP1702267B1 (en) 2007-09-05
WO2005064468A1 (en) 2005-07-14
US20050138306A1 (en) 2005-06-23
DE602004008808D1 (de) 2007-10-18
CN1894672A (zh) 2007-01-10

Similar Documents

Publication Publication Date Title
EP1702267B1 (en) Method and apparatus for performing operations on selected data in a storage area
US11740974B2 (en) Restoring a database using a fully hydrated backup
US7552358B1 (en) Efficient backup and restore using metadata mapping
US7596713B2 (en) Fast backup storage and fast recovery of data (FBSRD)
US7194487B1 (en) System and method for recording the order of a change caused by restoring a primary volume during ongoing replication of the primary volume
US6981114B1 (en) Snapshot reconstruction from an existing snapshot and one or more modification logs
US8230195B2 (en) System and method for performing auxiliary storage operations
US7523276B1 (en) Synchronization of selected data from snapshots stored on different storage volumes
JP2012190471A (ja) 複製環境における協調記憶管理操作
EP3796174B1 (en) Restoring a database using a fully hydrated backup
US10146637B1 (en) Intelligent snapshot rollbacks
US7631020B1 (en) Method and system of generating a proxy for a database
US11899540B2 (en) Regenerating a chain of backups
KR102089710B1 (ko) 연속 데이터 관리 시스템 및 방법
US11934275B2 (en) Backup copy validation as an embedded object
US11880283B2 (en) Backup copy validation as a workflow
US11899538B2 (en) Storage integrated differential block based backup
US11782799B2 (en) Using bitmaps to validate data
US11698884B2 (en) File level incremental continuous data protection
US20230205641A1 (en) Disaster recovery drills based on checksum validations
US20230205643A1 (en) Differential checksum validation
Mayer Data recovery: Choosing the right technologies
Kuhn et al. Oracle RMAN Pocket Reference: RMAN Syntax and Procedures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100629

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110426