JP2005004719A - ロールバックによるデータレプリケーション方式 - Google Patents

ロールバックによるデータレプリケーション方式 Download PDF

Info

Publication number
JP2005004719A
JP2005004719A JP2004024992A JP2004024992A JP2005004719A JP 2005004719 A JP2005004719 A JP 2005004719A JP 2004024992 A JP2004024992 A JP 2004024992A JP 2004024992 A JP2004024992 A JP 2004024992A JP 2005004719 A JP2005004719 A JP 2005004719A
Authority
JP
Japan
Prior art keywords
volume
data
virtual
request
storage
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
JP2004024992A
Other languages
English (en)
Inventor
Shoji Kodama
昇司 児玉
Kenji Yamakami
憲司 山神
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2005004719A publication Critical patent/JP2005004719A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】
データの多重アクセスに於ける現行システムでのデータの再ロード、その他の不便を回避するシステムと方法が必要である。更に又、生成データの特殊処理を必要としているアプリケーションが稼動できる、システムと方法が必要である。
【解決手段】
本発明は、現行システムの欠点を解決したデータの多重アクセスを可能にする。本発明は、一つ以上の処理システム又は処理システムアプリケーションの、一つ以上の中間又はその他の更新結果に対する保存、抽出、転送又はその他のアクセス等を可能にする。かくして、本発明は、データマイニング、データ共用、データ分配、データバックアップ、ソフトウエアテスト、バッチ処理等多様なアプリケーションで活用できる。
【選択図】図2

Description

本発明は一般的にコンピュータシステムに係わり、特にデータのレプリケーションを行う方法とシステムに関連する。
今日のエンタープライズコンピューティングシステムは、多重アクセス要求に対応できるものの、小型コンピューティングシステムが行ってきた方法と同じ動作を踏襲している。
例えば、図1に示すエンタープライズコンピューティングシステムでは、ストレージ102に格納されたデータにアクセスするアプリケーションプログラムを実行するアプリケーションサーバ101を有する。ストレージ102は更にRAID(Redundant Array of Independent Disk)として構成されるディスクアレイを有する。
ディスクアレイ102は、サーバ111a〜cがデータボリューム122a〜c、123に発行するリード/ライト要求を実行する為の、アレイコントローラ121を有する。このようなデータアクセスの実行のために、アレイコントローラ121はデータルーテイング、キャッシング、冗長制御、パリティーチェッキング等の制御動作を行う。
本アレイコントローラ121は、データ発生サーバ111a〜cが記録したデータを、一つ以上のデータ利用アプリケーションサーバで稼動しているアプリケーションが独立に利用できる様に、データアクセス機能を提供する。本アレイコントローラ121は、データ発生サーバ111からのデータ保存要求に応えて“オリジナル”データをオリジナル又は“プライマリ”ボリュームに書き込む。
本アレイコントローラ121は、データ利用サーバ112からの最初のデータ要求に対して、オリジナルボリュームを“セカンダリ”ボリューム123にコピーし、その後のサーバ112からのデータ書き込み要求では、このセカンダリボリュームのデータを本サーバ112データで置き換える。対応するプライマリボリュームはこのようにして、サーバ112からは更新されず、他のデータ利用アプリケーションサーバからも同様に使用できる。
このような多重アクセス構成は、利用は拡大されているものの、格納データの利用法次第では不効率である事が判ってきた。
例えば、データバックアップアプリケーションでは、アプリケーションサーバ111からのデータ書き込み要求により、アレイコントローラ121はデータベースをプライマリボリューム122に書き込む。
バックアップサーバ、例えばサーバ112はデータベースのバックアップをデバイス113(例えばテープバックアップ)に行うと、アレイコントローラ121は本データベースをセカンダリボリューム123にコピーする。コピー中にも本データベースを使用するため、セカンダリボリュームを検証することが望ましい。然しながら、検証作業中のセカンダリボリュームのデータ変更は、セカンダリボリュームでのバックアップデータに不整合を発生させる為、本検証は不可能である本発明は一般的にコンピュータシステムに係わり、特にデータのレプリケーションを行う方法とシステムに関連する。
ソフトウエアテスト作業に於いては、アプリケーションサーバ101は、対象ソフトウエアを格納する開発システム111a、テスト環境を整える環境生成器111b及びテスト条件を生成する条件生成器111cとなり、対象ソフトウエア及びテスト環境とテスト条件を(“テストデータ”と共に)プライマリボリューム122に保存することになる。
アレイコントローラ121は、テスタ112からの要求により、テストデータをセカンダリボリューム123にコピーし、以降の引き続くテスタ112からの書き込み要求により、セカンダリボリュームのデータをテスタ112からの引き続く更新データで置き換える事になる。不幸にして、ソフトウエア、環境、又は何かの原因でテストに失敗したり、又は更新要求があると、大量になりかねないテストデータをしばしばリモートソースから再ロードする必要が発生する。
バッチ処理環境では、アプリケーションサーバ101は、プライマリボリューム122にデータベースデータを格納するデータベース生成サーバ111とバッチプロセッサ112となる。
バッチプロセッサ112の最初のデータベース要求で、アレイコントローラ121はデータをセカンダリボリューム123にコピーし、バッチプロセッサ112のサブプロセスからの引き続くデータ書き込み要求により、サブプロセスからのデータでセカンダリボリュームの更新を継続する事になる。不運にも途中で、本サブプロセスがエラーになると、本サブプロセスの訂正処理に引き続いてソースデータは再度ロードされ、全体のバッチ処理は再実行しなければならない。
従って、データの多重アクセスに於ける現行システムでのデータの再ロード、その他の不便を回避するシステムと方法が必要である。更に又、生成データの特殊処理を必要としているアプリケーションが稼動できる、システムと方法が必要である。
本発明は、現行システムの欠点を解決したデータの多重アクセスを可能にする。本発明は、一つ以上の処理システム又は処理システムアプリケーションの、一つ以上の中間又はその他の更新結果に対する保存、抽出、転送又はその他のアクセス等を可能にする。かくして、本発明は、データマイニング、データ共用、データ分配、データバックアップ、ソフトウエアテスト、バッチ処理等多様なアプリケーションで活用できる。
本発明の一実施例では、アプリケーションサーバのアプリケーションがストレージデバイスに保存(断続的な保存を含めて)する一つ以上のデータセットを選択的にレプリケートし又は取り戻す事が出来る。
更に本発明では、ストレージデバイスは、アプリケーションサーバからの書き込み要求(又は“コマンド”)に対応して、プライマリ又はセカンダリボリュームのリアルデータスペースのデータをバーチュアルデータスペースに一回以上に亘りレプリケートし、又は以前にレプリケートしたバーチュアルデータスペースからのデータをリアルデータスペースにロールバック(取り戻す)することが出来る。
更に本発明では、バーチュアルコピー時刻、日付、名前等の一つ以上の指定により選択的にロールバックをすることが出来る。
更に本発明では、リアル及び対応するバーチュアルデータコピーに対して、同じサイズのストレージ媒体のような変動するメカニズムを使用する、バーチュアルデータコピー保存のため一つ以上のエクステントを使用する、上書きされたバーチュアルデータ及び(又は)バーチュアルボリューム生成を表す一つ以上のログ表示を保持するといった各方式が可能である。
本発明でのデータレプリケーション方式では、データストレージデバイスは、バーチュアルコピー要求を受信すると、バーチュアルストレージを生成し、その後新データを含むデータ保存要求を受信すると、バーチュアルストレージの一部を対応するリアルストレージ中のリアルデータで置き換え、リアルデータの一部を新データで置き換える。
データレプリケーションシステムは、プライマリ、セカンダリ等のリアルデータスペースに対するデータの読み書きを管理するストレージコントローラと、レプリケートされたデータを保存するバーチュアルデータスペースを管理するバーチュアルストレージマネージャを有する。
バーチュアルストレージマネージャは、後のデータレプリケーションに備えてバーチュアルデータスペースを事前に割り当てたり、バーチュアルデータスペースを必要になったときに保存と同時に割り当てたり、エクステントを用いたり、ログボリュームを使用したりすることの一つ以上が可能である。
本発明の効果により、全更新データを保存して不必要にストレージスペースを使用する事無く多数の中間的データの保存、回復を選択的に実施する事が出来る。
本機能はストレージデバイスの基本的なデータ処理機能に変更を加える事なしに実現することが出来る。本発明の更に別の面では、一つ以上の中間的データの選択的な保存と抽出が可能で、一つ以上の処理システムやアプリケーション間でデータの検索や分配が可能になる。他の効果については、以降の説明や図面により更に明確になる。
本発明のデータレプリケーションの為のシステムと方法では、継続してデータ格納されるストレージデバイス内の例えばセカンダリボリュームのデータスペースのデータが、全部又は一部分が更に“バーチュアル”コピーに保存退避される事を可能にする。
更に本発明では、更新されたデータスペースを、以前のデータスペースの選択された部分に“ロールバック”することを可能にする。
本発明は更に、柔軟な管理方法により、同サイズのリアルとバーチュアルボリューム方式、エクステント方式、及びログ方式等の多様なバーチュアルコピーが可能になる。
本発明では、更に、バーチュアルコピーへのデータの限定又は選択された入出力、ストレージデバイスによるエンタープライズ又は他のアプリケーションの遂行又はセキュリティーを可能にする。
ここでは、“又は”は特に注記されない限り、“及び/又は”の意味で使用されることに注意願いたい。
更にアプリケーションサーバは“発生”又は“更新”サーバとして参照され、システム/処理は特定のデバイス又はデバイスタイプに適用する事で本発明の理解を容易にしている。更にデータストレージは一般的に“ボリューム”とも呼ばれる。
然しながら、サーバや他のデバイスは多様な又は多重の処理を実施可能であり、又データを生成し処理可能な事にも注意願いたい。本発明は多様なデバイスタイプに適用可能であり、データスペース参照に実装次第によっては、ボリューム以外の用語を用いる事もある。以上の用語は限定的と看做してならない。
図2での本発明は、アプリケーションの要求に従う多様なシステム構成で使用可能なデータレプリケーションとロールバック方法を可能にする。ここで説明するシステム200は、ネットワーク213と202を介して結合する、一つ以上のコンピューティングデバイスとデータレプリケーション可能なストレージデバイスを備える。
レプリケーションシステム200は、データレプリケーション可能なディスクアレイ211、アプリケーションサーバ212,214a〜b、215aーb及びネットワークサーバ216等の、イントラネット213により互いに結合したデバイス群201を有する。
システム200は更に、同様に結合したアプリケーションサーバ203と他のコンピューティングシステム204を有する。システム200は更に、具体的実装の要求に従って、一つ以上のファイヤウオール217、ルータ、キャッシュ、冗長/負荷均衡システム、バックアップシステム、又は結合している他のネットワーク要素(図示していない)を含む。
データレプリケーションは、ストレージデバイスで、もっと典型的には“RAID”(Redundant Array of Independent Disk)構成によるディスクアレイ211等の共有(“多重アクセス”)ストレージで実行される。
然しながら、レプリケーション可能なデバイスは、本発明での説明に整合するロールバックによるデータレプリケーションを可能にする一つ以上の単機能又は多重機能のストレージにより構成されることに注意が必要である。
ディスクアレイ211はディスクアレイコントローラ211a、バーチュアルボリュームマネージャ211b及びストレージ媒体のアレイ211cを有する。ディスクアレイ211は、その他実装上の要求によりキャッシング、冗長回路、パリティーチェック、その他ストレージ又はサポート機能(図示していない)等の為のコンポーネントを含む。
この様なコンポーネントは、慣用的なディスクアレイやその他のストレージシステムに見られるものを含んでもよく、慣用的な構成でもよく、又特定アプリケーションの要求に従った構成でも良い。
アレイコントローラ211aは、以降の例でも見られる本発明の方法又はアプリケーションの要求に従う方法で実行される“リアルデータセット”に関連する、ディスクアレイの管理を出来るようにする。
このような管理により、例えば、システム200の他のデバイスとの交信、ファイル、フォルダ、デイレクトリ等のようなデータスペース中のアプリケーションデータの保存、抽出、削除、又はストレージに対するプライマリ又はセカンダリボリューム等の多重参照等が可能になる。
データスペースは、特に注記されない限り“ボリューム”を意味し;通常の又は慣用的データストレージのデータスペースは更に、以降で説明する“バーチュアル”ボリュームとは対照的に“リアル”ボリュームと呼ばれることを明確化のために注記する。
アレイコントローラ211aはもっと具体的には、ソースデータを提供するデータ発生サーバ及び本ソースデータを使用するデータ更新サーバからの要求に従い、ディスクアレイ211のリアルボリュームを管理する。
アレイコントローラ211aは、データ発生サーバのアプリケーションからの要求に対応して“オリジナルボリューム”に対する生成、読み取り、書き込み、又は削除を行う。アレイコントローラ211aは更に、ユーザ又はデータ発生サーバ又はデータ更新サーバ からの“ペア生成”、“ペアスプリット”等の要求に応える。
一般的に、以降の“ペア生成”要求処理又はディスクアレイの(自動的)初期化処理に於いては、アレイコントローラ211aは、プライマリボリュームに対応するセカンダリボリューム(が存在しない場合は)を生成し、アレイコントローラ211aは更にセカンダリボリュームへのデータの読み書きを抑止して、オリジナルボリューム内のデータをセカンダリボリュームにコピーして、セカンダリボリュームをオリジナルボリュームに同期化する。
アレイコントローラ211aは、ペアスプリット要求に対して、セカンダリボリュームへのデータの読み書きを可能にするが、オリジナルボリュームからセカンダリボリュームへのデータ同期は行わない。
アレイコントローラ211aはデータ更新サーバからのデータ更新要求に対して、対応するセカンダリボリュームの生成、読み書き、及び削除を行う。
ペア生成要求は、更新サーバがデータの読み書き要求を発行する前に発行され、プライマリボリュームに対するセカンダリボリュームを生成し、セカンダリボリュームはプライマリボリュームのコピーを保存し、次いでペアスプリット要求が発生し、セカンダリボリュームは読み書き可能となる。
これ以上のペア生成要求はその後発生しないとして、アレイコントローラ211aは後続する更新サーバからの更新要求に対して、セカンダリボリュームのデータを本サーバからの送信データで置き換えるが、オリジナルボリュームのデータは不変のままである。アレイコントローラ211aは、データ読み取り要求に対して指定ボリュームからのデータを送信し、削除コマンドに対しては指定されたセカンダリボリュームを削除する。
従って、セカンダリボリュームはまた“コピー”ボリューム(ペアコピーを反映している)と呼ばれ、セカンダリボリューム上のデータは又“結果データ”(即ち更新結果を反映している)とも呼ばれ、オリジナルとセカンダリボリュームは併せて、デバイス211に関連して、既に述べた“リアルボリューム”を構成する。
(非初期でのペア生成又は“再同期”要求は更に、セカンダリボリュームへのアクセスを抑止して、オリジナルからセカンダリボリュームへのコピーを行い、更新されたセカンダリボリュームを対応するプライマリボリュームのソースデータに同期化する。
然しながら、典型的には以降に更に述べるように、プライマリボリュームの前回でのコピー時点以降の変更部分のみがセカンダリボリュームへコピーされる。
かくのごとく、部分的なデータコピーが可能な環境では、初期のペア生成要求がプライマリボリュームの全データを対応するセカンダリボリュームへコピーするが;これは言い換えると、コピー処理が、コピーされていない部分を全てセカンダリボリュームへコピーする機能を持っており、プライマリボリュームをそのよう(全ての部分がコピーされていない)に指定する事により、単一のペア生成コマンドが初期、非初期含めて同様に動作する事が出来る。)
アレイコントローラ211aは、キャッシング、冗長処理、パリティーチェック、その他のストレージ又はサポート機能等を含む、しかしこれらに限定されない、その他のディスクアレイコンポーネントの管理を実行する。アレイコントローラ211aは、特定の実装に従って様々なエクステントに対して、バーチュアルボリュームマネージャ211bとの連係動作を持つより以上又はより以下に統合的な実装も可能である。
より以上に統合化された構成では、アレイコントローラ211aはアプリケーションサーバからの要求をバーチュアルボリュームマネージャ211bに依頼し、更にははバーチュアルボリュームマネージャ211bからの応答をアプリケーションサーバに転送しても良い。
アレイコントローラ211aは更にバーチュアルボリュームコマンドの通訳を行い又はバーチュアルボリュームマネージャ211bからの要求に基づいて、ストレージに対する保存、抽出等を行ってもよい。アレイコントローラ211aは更に、ディスクコントローラ又は他のコンポーネントの中に組み込まれてもよい。
(バーチュアルボリューム管理の中により以上に組み込めば、一般的な目的でのストレージデバイスコントロール機能の中で本発明にも適用できる機能について、重複を排除出来るが、組み込みが少ない程、現行のストレージ又はホストデバイス実装との互換性は向上する。従ってこの組み込みにもトレードオフが存在することに注意願いたい。)
バーチュアルボリューム(V.Vol)マネージャ211bは、一つ以上のバーチュアルボリュームに対する生成、書き込み、読み取り、削除、又は管理を行い、又は典型的にはストレージ媒体211c内のバーチュアルボリュームデータに対する選択的格納と抽出等の管理業務を行う。
バーチュアルボリュームは他のボリュームタイプと同様に、ストレージ媒体211c上にアプリケーションデータを格納し、システム200の各要素が(ネットワーク213,202経由で)参照可能なストレージエリア又は“データスペース”が割り当てられる。
更新アプリケーションサーバからの“スナップショット”処理では、セカンダリボリュームに継続的に格納されたデータは、異なった時刻に異なったバーチュアルボリュームにレプリケートされ、要求に従って選択的にとり戻される。
ディスクアレイ211のバーチュアルボリュームは、オリジナル又は更新データのみならず一時的に生成された多種多様のデータ又はバーチュアルボリュームに書き込む前のセカンダリボリュームのデータの変更部分のみを、選択的に事前格納することが出来る。
そのようなデータは、例えば、一つ以上のセグメントを含む。(セグメントはデータの連続、非連続的部分を含み、そのサイズと数はアプリケーションの要求により決まり、ボリュームを定義する。)従って、バーチュアルボリュームデータは、選択されたデータが、オリジナル、一時的、更新又は更に処理済みデータか否かを問わず、又部分的に又は全体的にレプリケートされたデータか否かを問わず、特に注記されない限り、ここでは“中間的データ”と呼ばれる。
バーチュアルボリュームは、アプリケーション、ユーザの選択又は使用されているセキュリティー機能又はパラメータに従って、又は特定のアプリケーションに従って、自動的に、例えばプログラム的に、又は選択的に管理される。
例えば、バーチュアルボリュームマネージャ211bはリアルボリュームへのアクセス、アレイコントローラの動作をモニタでき(他の慣用的デバイスモニタ、イベント/データ転送技術を用いる事に相当する)、データバックアップ、データマインニング等の操作によって発生する、当該ボリュームの生成、データの保存、抽出その他に対して自動的に応答する事が出来る。
バーチュアルボリュームマネージャ211bは更に、一つ以上のアプリケーションに含まれるオペレーション、例えばプログラム命令等を、これまでの慣用的アプリケーションサーバと同様に、スタートアップ、又は一つ以上のユーザ、サーバ、イベント、タイミング等に応答して、格納し実行を開始することが出来る(図3〜4を参照)。
バーチュアルボリュームマネージャ211bは、例えば、バーチュアルストレージに存在した時点のアプリケーションデータが再構築できるように、異なったサーバからのアプリケーションデータのスナップショットをバーチュアルボリュームに格納することにより、又はデータの部分を格納することにより、モニタされたデータアクセスに応答することが出来る。
バーチュアルボリュームマネージャ211bは、更にバーチュアルボリュームデータを一つ以上のアプリケーションサーバに分配する事が出来る。自動動作に加えてサーバ起動の場合でもその他の選択肢の組合せについて同様に構成することが出来る。
もっと典型的には、バーチュアルボリュームマネージャ211bは、アプリケーションサーバからの要求即ち“コマンド”に対応して、バーチュアルボリュームを管理する。
そのようなコマンドはアレイコントローラ211aに従って、個別的にも一般的にも構成することが出来き、これにより、既存のアレイコントローラの動作に広範囲に互換性を持たせることが出来る。
バーチュアルボリュームマネージャ211bは、バーチュアルボリュームの生成(以下の“チェックポイント”要求を参照)、セカンダリボリュームのデータをバーチュアルボリュームにレプリケート、バーチュアルボリュームのデータをセカンダリボリュームにレプリケート即ちセカンダリボリュームを以前の値にロールバックする、又はバーチュアルボリューム削除に対する応答等、コマンドに対してかなり制限された方法で応答する。
レプリケーション可能デバイスのより大きな処理/ストレージ能力は、コマンドと機能を広範に組み合わせて、本発明での開示(限定した範囲でしか紹介できないが)をより広範に利用できるようにする事が出来る。
バーチュアルボリュームマネージャ211bは、アプリケーションサーバと直接に交信する、又は例えばアレイコントローラ211aを通して、より間接的に管理を実行する、何れの実装も可能である。
例えば、アレイコントローラ211aが直接アプリケーションと交信し、バーチュアルボリュームマネージャ211bは、より統合的な実装に於いてコマンドをアレイコントローラ211a経由で受け取り、アレイコントローラ211aを通して応答する事も出来る。
バーチュアルボリュームマネージャ211bは、更にアレイコントローラが書き込み、読み取り、削除等の動作を実行するのをモニタして、コマンドを受け取ってもよく、又バーチュアルボリュームの生成、データ格納、データ抽出や他の管理業務を実行するためのコマンドをアレイコントローラ211aに依頼してもよい。
バーチュアルボリュームマネージャ211bは、データの管理に関してはかなり慣用的な方法、即ち慣用的なアレイコントローラが“リアルボリューム”を管理するのと同様な方法で、キャッシュその他のディスクアレイ211のコンポーネントを利用する事が出来る。
アレイコントローラ211a又はバーチュアルボリュームマネージャ211bは、図3〜4で説明するように、定常的にもダイナミックにも、実装又はアプリケーションに対応した別の選択肢が存在する事に注意が必要である。
ディスクアレイ211の他のコンポーネントについては、ストレージ媒体211cは、データを保存できる物理記憶媒体であり一つ以上のハードディスク、オプテイカルまたは他の可搬/固定媒体、キャッシュ又はアプリケーションに対応できるその他のストレージ媒体を含む。
他のコンポーネントとしては、例えばエラー検出回路、キャッシュ又はその他のストレージ又はアプリケーション依存のコンポーネントを含む。(このようなコンポーネントとしては、マス又は多重アクセスストレージとしてのリアルボリュームとして共通的に使用される、例えばディスクアレイ、又はネットワーク結合又はスタンドアロンのプロセッシングシステムが含まれる。)
アプリケーションサーバ214a〜b、215a〜b,203,204はユーザ/システムにシステム200内での処理を提供し、ストレージ211へのデータ保存機能を持つデバイスを含み、アプリケーションに対応してバーチュアルボリュームマネージャ211bと連携する。
そのようなデバイスには、一つ以上のワークステーション、パーソナルコンピュータ“PC“、ハンドヘルドコンピュータ、セットトップボックス、パーソナルデータアシスタンス“PDA”、パーソナル情報端末“PIM”、セルフォン、コントローラ、所謂“スマート”デバイス、その他のエレクトロメカニカルデバイスが含まれる。
システム200に残っているコンポーネントとしては、ネットワーク213と202は、スタティック又は再構築可能なローカル又は広域ネットワーク(“LAN”、“WAN”)、バーチュアルネットワーク(例えばVPN)、その他アプリケーションに対応した結合が含まれる。
ネットワークサーバ216は、ネットワークサーバオペレーション(例えば、ネットワークアクセス、e−Mail,システム管理等)の為に慣用的に構成された一つ以上のアプリケーションサーバで成り立つ。
図3では、システム200(図2)の要素の一つ以上を構成する処理システムを示す。他の代替構成が可能であるが、簡単の為にシステム200の要素は、特に注記しない限り、ハードウエア、ソフトウエア、又は一つ以上の処理システムの組合せとする。
処理システム300は、一つ以上の汎用又は専用のプロセッサ302、例えばPentium(R),PowerPC(R),DSP(Digital Signal Processor)等を含めた通信チャネル301に結合した要素で成り立つ。
システム300は更に、アプリケーションの要求に対応して、一つ以上の入力装置303(マウス、キーボード、マイクロフォン、ペン等)と出力装置304(ディスプレイ、スピーカ、アクチュエータ等)を有する。
システム300は更に、ストレージ/メモリデバイス、又はハード又はリムーバブルストレージ/メモリデバイス等の、コンピュータ読み取り可能ストレージ媒体306とその読み取り装置305を有する。
そのようなデバイス又は媒体は、独立のストレージ308やメモリ309としても使用され、アプリケーションの要求に従ってハードディスク、フロッピ/コンパクトディスク、ディジタル多様ディスク(“DVD”)、スマートカード、ROM,ランダムアクセスメモリ、キャッシュメモリ等を含む。
モデム、DSL,赤外線又は対応可能なトランシーバ等の一つ以上の通信デバイス307が更に含まれ、直接のデバイス間通信又は一つ以上のプライベート又はパブリックネットワークを介した交信を可能にする(これらに限定されるものでない)。
使用中に読み込まれ保存されるシステム200の実装要素として、ワーキングメモリ310は、更にオペレーティングシステム(“OS”)311とアプリケーションプログラム、モバイルコード、データ等のプログラム312を含む。
OSは、アプリケーションに対応したデバイスと機能に依存する(即ち、Windows、Mac、Linux、Unix、Palm OS、専用OS等)。多様なプログラム言語又はツールが利用される。
更に又、ワーキングメモリ310の内容である、OS311とその他のプログラム312は、ユーザのアプリケーションによってかなり影響を受ける事に注意願いたい。
ソフトウエア(即ち、一部又は全体を含めて、アプリケーションプログラム、オブジェクト、エージェント、ダウンロード可能、サーブレット等)で実装されている場合は、システム200の要素はローカル又はリモートストレージからメモリ(又はキャッシュメモリ等)に実行する為のデータを一時的又は永続的に格納させ、又はその他の適切なメカニズムが使用され、要素はコンパイル状態かインタープリタ方式で実行される。
入力された中間的又は最終的データ又は機能要素は更に一時的又は永続的に、ストレージ媒体、キャッシュ又は他の揮発性、不揮発性メモリ(即ちストレージデバイス308、メモリ309)にアプリケーションに応じて保存される。
図4は、専用ホストと共にディスクアレイを使用して、如何にデータレプリケーションが実行されるかを説明する。図4は更に、プロセッサベースのアレイコントローラとバーチュアルボリュームマネージャのより以上に統合したアレイマネージャ403を示す。
図示されるように、レプリケーションシステム400は、ホスト401とストレージデバイス402及びネットワーク406を含む。ホスト401は図3のシステム300に対応し簡単の為に簡略化して表示しており、他方、同様に図3のシステム300に対応するプロセッサベースのストレージデバイス402は大いに詳細に示されている。
ホスト401は、I/Oインターフェース411と431、結合4aを通して、ストレージデバイス402と結合し、ストレージデバイス402に要求を発行する。
結合4aは、例えば、“SCSI”(Small Computer System Interface)インターフェース、ファイバチャネル、“ESCON”(Enterprise System Connection)、“FICON”(Fiber Connectivity)、イーサネットを含み、インターフェース411は一つ以上のプロトコル、SCSI、iSCSI、ESCON、ファイバFICON等を使用する。ホスト401とストレージデバイス402は更に各々のネットワークインターフェース412、432と結合4b、4cを通してネットワーク406に結合する。
この様なネットワーク結合は、例えば、ファイバチャネル、イーサネット、インタネットプロトコル(“IP”)、非同期転送モード(“ATM”)等の一つ以上のプロトコルで実装される。
本ネットワーク結合は、ホスト401とストレージデバイス402がネットワーク406に結合しているその他のデバイス即ち図2のアプリケーションサーバ212,214a〜b,215a〜b、216,203及び204等と交信することを可能にする。(インターフェース411,412,431,432,433及び434は図3の通信インターフェース307に対応する。)ストレージデバイス402はインターフェース431〜434に加えてアレイマネージャ403とストレージ媒体404を有する。
アレイマネージャ403内のCPU435はメモリ405とキャッシュメモリ451内に格納されたコントロール情報452に基づき、内部バス436とストレージコントロールとデータレプリケーションを実行するための為の他の図示された結合を通して動作する。(既に述べたように、自動的動作又はストレージデバイス主導のリアル/バーチュアルのボリューム管理は、メモリ405に受信され格納されている情報に従って実行される。)
キャッシュメモリ451はホスト401からの受信データ、ホスト401への送信データを一時的に保管するために使用される。キャッシュメモリ451は更にホストから要求されたシーケンシャルなリード/ライトデータの事前格納の為にも使用される。
ストレージ媒体404はアレイマネージャ403に、I/Oインターフェース433、434と結合4fを経由して結合し、交信する。
ストレージ媒体404はアプリケーションからの要求に従い、一つ以上のRAID、JBOD(Just a Bunch of Disk)、その他の相応しい構成から成るディスクドライブ441のアレイを含む。
ストレージ媒体404は、内部バス436と結合4d〜4fを通してCPU435に固有に結合し、本CPU435は本ディスクの部分をボリューム(即ちプライマリ、セカンダリ、バーチュアルボリューム)として管理し、ホストからのストレージ媒体へのアクセスは本ボリューム(即ち、物理媒体に対してではなく)を通してのみ可能となる。CPU435は更に既に述べたセキュリティー、アプリケーション又は実装によって必要になる機能を実行する。
図5は本発明に従う、より統合度の低いデータレプリケーションシステムを説明するフローダイアグラムである。システム500はアプリケーションサーバ501とディスクアレイ502で構成される。
アプリケーションサーバ501は更に、データ生成アプリケーションサーバ511a〜b、データ更新アプリケーションサーバ512a〜b及びその他のデバイス513を有し、ディスクアレイ502は、更に、アレイマネージャ502a、ストレージ媒体502b、及びネットワーク又は入出力インターフェース(“I/O”)502cを有する。
アレイマネージャ502aは、アレイコントローラ521aとバーチュアルボリュームマネージャ521bを含み、ストレージ媒体502bは、プライマリボリューム522a〜522b、セカンダリボリューム523a〜523b及びバーチュアルボリューム524a〜524bと524c〜524dの各々の一式以上を有する。
明確のために、システム500内の信号パスは実線の矢印で描き、コンポーネント間の主要なデータの流れは点線の矢印で示す。加えて、アプリケーションサーバ501は、他のサーバが利用する為のオリジナルデータを独占的に供給し(オリジナルアプリケーションサーバ1〜M 511a〜511b)、他のアプリケーションサーバから供給されたデータを利用する(更新アプリケーションサーバ1〜N 512a〜512b)。各アプリケーションサーバ511a〜511b、512a〜512bは、データアクセスを要求する“コマンド”をI/Oバス502cを経由してアレイマネージャ502aに送信する。
オリジナルアプリケーションサーバ511a〜bのアプリケーションが、データ書き込み要求(“データライト”)をアレイコントローラ521aに発行し、アレイコントローラ521aはオリジナルデータを(指定された)プライマリボリューム、例えば522aに書き込む。
オリジナルアプリケーションサーバ511a〜bのアプリケーションは更に、データ読み出し要求(“データリード”)を発行し、アレイコントローラ521aは、オリジナルボリュームから要求データを読み出し要求サーバに返送する。オリジナル又は更新サーバのアプリケーションはペア生成、ペアスプリット要求を既に述べたように発行可能である。(ボリュームのリード/ライト部分も類似して実行されることに注意願いたい。)
オリジナルアプリケーションサーバ511a〜bは一般的にはバーチュアルボリュームマネージャ521bとは交信する必要はない。
更に、サーバ511a〜bはデータの更新は行わず、プライマリボリュームのデータは、コピーを通してセカンダリボリューム532a〜bから利用できる為に、プライマリボリューム522a〜bはバーチュアルボリュームマネージャ521bに結合する必要はない。かくして、実装上特別な要求が発生しない限り、システム500は、そのような機能なしでディスクアレイ502(又は他の使用するかも知れないストレージデバイス)を構成することによって簡略化出来る。
更新アプリケーションサーバ512a〜bのアプリケーションは、セカンダリボリュームに対して、以降説明するペア生成要求は除いて(上記を参照)データの読み書きを行うために、データリード及びデータライトコマンドを発行する事が出来る。
更新サーバは更にチェックポイント、ロールバック、データ保存、及びバーチュアルボリューム削除等を含むバーチュアルボリュームに影響を及ぼす簡略化したコマンドセットを発行する事が出来き、これによりバーチュアルボリュームの操作の複雑性が最小になる。
チェックポイント要求に対して、バーチュアルボリュームマネージャ521bは、指定されたセカンダリボリュームに対するバーチュアルボリューム(即ち、バーチュアルボリューム1−1,524a)を生成する。これ以降は、バーチュアルボリュームマネージャ521bは、データライト要求に対して、指定されたセカンダリボリュームセグメントのデータを最後に生成されたバーチュアルボリュームに保存する。
典型的には、生成と保存時点のタイムスタンプを含む一つ以上のバーチュアルボリューム識別子がバーチュアルボリュームに関連付けられる。
ロールバック要求を受け取ると、バーチュアルボリュームマネージャ521bは、少なくとも一つのバーチュアルボリュームの少なくとも一部分をセカンダリボリュームにレプリケートして、セカンダリボリュームを回復する。
最後に、バーチュアルボリュームマネージャ521bは、バーチュアルボリューム削除要求に対して、指定のバーチュアルボリュームを削除する。(以降説明するように、対象リアルボリュームがバーチュアルボリュームからレプリケート(ロールバック)され上書きされる前に、当該部分のデータを新たなバーチュアルボリュームに保存するために、適用対象セグメントの決定と一つ以上のバーチュアルボリュームからセグメントをコピーする事が、必要である;同様に、セカンダリボリュームの書き込みセグメントを唯一保存しているバーチュアルボリュームを削除する場合には、削除指定されたバーチュアルボリュームのセグメントをコピーして保存しておく必要がある。これにより、残ったバーチュアルボリュームはリアルボリュームのロールバックに使用可能として残る事が出来る。)
各種の代替案が可能である事に注意願いたい。例えば、セカンダリボリュームのスナップショットは、チェックポイントコマンドに対応して、バーチュアルボリュームにレプリケートする事も出来る。
然しながら、バーチュアルボリュームの生成とそれへのポピュレート(実際にデータを住まわせる即ち書き込むこと)を分離する事は、柔軟性を増大するメリットがある。
これにより例えば、バーチュアルボリュームを生成する事は、バーチュアルボリュームをポピュレートさせる事とは分離したメカニズム(例えば、プログラム機能で、更には分離したアプリケーション、又は分離したアプリケーションサーバで)で行う事も可能になる。
単純な単一スナップショットを使用することに比べて、更なる柔軟性は、セカンダリデータに対するチェックポイントコマンドで以降のセカンダリボリュームセグメントに対するデータライト要求が、追加コマンドなしで、レプリケーションを開始する事によりもたらされる。バーチュアルボリュームの一つ以上のセグメントに対する継続するデータ格納は、同じバーチュアルボリュームに対して、継続するデータライト要求がレプリケートされる事により簡便化される。
図6は、既に述べたコマンドを発行するためのコマンドフォーマットの一例を説明する。本例では、下記の項目を有する。コマンド601;(一般に最初の受領でアサインされるユーザが指定する参照名である)名前603;グループや第一又はソースボリュームに対するアドレス可能なデータ部IDを指定する第一の識別子605;第二又はデスティネーションボリュームに対するアドレス可能なIDを指定する第二の識別子607;コマンドに含まれるデータ又はコマンドによりアクセスされるデータのサイズのような任意の適用可能なパラメータ609;及び含まれるデータそのもの611。
かくして、本フォーマットに従うペア生成(Pair Create)コマンドは、Pair Createコマンド601、ユーザが当該コマンドに指定し今後に参照される名前603、オリジナルボリュームID605、コピーボリュームID(本ペアを指定する識別子)607で構成される。図6のコマンドフォーマットに対応するコマンドセットは後続する表1で更に説明する。
図7a〜7cは、アレイコントローラ521aとバーチュアルボリュームマネージャ521bの各々が、リアルとバーチュアルディスクアレイの動作管理を如何により独立して、又はあまり統合されないで実行するかを示す。
図示する通り、アレイコントローラ521aは、アレイエンジン701を含み、本エンジンが、ボリュームマップ702によって与えられるプライマリとセカンダリボリュームとアプリケーションサーバ及び物理媒体とのマッピングを用いてアレイコントロール動作を実行する。
バーチュアルボリュームマネージャ521bはバーチュアルボリュームエンジン703を含み、本エンジンがボリュームマップ704、更にはオプションとしてセキュリティーマップ705を使用してバーチュアルボリューム管理動作を実行する。バーチュアルボリュームマネージャ521bは更に7aの結合を通して、ローカル又はリモートの時刻と日付情報とに接続する。
各アレイコントローラ521aとバーチュアルボリュームマネージャ521bは、リアル、バーチュアルの対応関係を、要求に伴うデータ、格納済みデータ(図3〜4を参照)により、更には各々のリアル、バーチュアルのマップを維持する事により、決定する事が出来る。
バーチュアルボリュームマネージャ521bは、コマンド実行に先立って、リアルボリュームマップ702を参照し(又は基本的マップは起動時に求めて、変更分はバーチュアルボリュームコントローラが維持してもよい)、アレイコントローラ521aによるセカンダリボリュームの割り当てと共に、バーチュアルボリュームを参照する為にセカンダリボリュームとの対応関係を決める事が出来る。(例えば前に述べた同時係属中の出願を参照。)
バーチュアルボリュームマネージャ521bは、マップ704に更に上記の対応関係を追加し、自らのバーチュアルボリューム割り当てを追加する。バーチュアルボリュームマネージャ521bは、必要に応じて上記の複合マッピングを検索する事により(言い換えると、両方のマップを参照する事により)、セカンダリボリュームとバーチュアルボリュームとの対応関係を決定することが出来る。実際の実装によってはその他の決定/参照メカニズムを用いる事が出来る。
Figure 2005004719
バーチュアルボリュームマネージャ521bは更に、アプリケーションサーバ、アプリケーション、ユーザ等々からのアクセス要求を、マップ704に蓄えられている各アクセスの許諾を示す事前決定ルール/パラメータと比較する事により、セキュリティープロトコルを実行する事が出来る。
この対象になる要求には、一般的又はより具体的特性に対応して、ロールバック又はバーチュアルボリュームの削除等が含まれる。アレイコントローラ521aは、マップ702に関して以上と同様に動作する事が出来る。(マップ704と702の例は、図7bと図7cに示す。)
ロールバックでのレプリケーションについて、アレイコントローラとバーチュアルボリュームマネージャがアレイマネージャの中で結合して動作する(図4を参照)、より以上に統合的な例を説明する。ディスクコントローラは、更にアレイマネージャの中に統合されてもよく、又は直接ディスクアレイを制御する低レベルの機能を実行するのに、分離されて実装されてもよい。
RAID構成が、本発明がよりよく理解されるように、再度描かれいる。(リアルボリュームに関する管理は、基本的にアレイコントローラによってなされ、バーチュアルボリュームに関する管理は、基本的にバーチュアルボリュームマネージャによってなされ、その他の管理は実装に対応して、必要に応じて割り当てられる。自動的オペレーションは、これまでに述べてきた事と実質的には同様であるが、以降の実施例によってより統合的に実行される。)
図8から始めると、サーバ801aは結合8bを経由して、ディスクアレイ802に結合しており、本ディスクアレイはアレイマネージャ802aとデータストレージ構造802bを有している。データストレージ構造802bは更に、リアルデータストレージ821とフリーストレージプール802d及びバーチュアルデータストレージ802eを有する。リアルデータストレージ821は更に;オリジナルボリューム822a、オリジナルボリューム(ビット)マップ822b、コピーボリューム823a、コピーボリューム(ビット)マップ823b、及び同期/スプリットステータス表示子824の各々の少なくとも一つ以上を有する。
バーチュアルデータストレージは更に、フリーストレージプール802dとバーチュアルボリューム802eの各々の少なくとも一つを有する。(アレイマネージャは複数セット存在してもよく、各アレイマネージャは、バーチュアルボリュームとペアステータス表示子に関連して一台以上のオリジナルとコピーボリュームペアを管理可能である。)
コンポーネント802a〜eはこれまでに述べてきたのと同様に動作する。一般的に言って、アレイマネージャ802aはオリジナルボリュームビットマップ822b、コピーボリュームビットマップ823b及びペアステータス824をオリジナル、コピーボリュームの管理に使用する。
アレイマネージャ802aは更に、フリーストレージ802dの一部分を一つ以上のバーチュアルボリュームに割り当て、本バーチュアルボリュームを各コピーボリュームに対応して選択的に生成し、時刻/日時情報827を含むバーチュアルボリューム構成情報によって管理する。
オリジナルボリューム822a、コピーボリューム823a及びバーチュアルボリューム824a〜dは、各々、オリジナル、コピー又は更新データ、及びバーチュアル又は、一つのデータ部分を対応するコピーボリュームにロールバックするのに十分な一時的データ部分を格納する。
オリジナルボリュームビットマップ822bは、オリジナルデータが書き込まれたオリジナルボリュームの部分を、例えばビット、ブロック、グループ又はその他の単位で表示した表示子を保持し、一方、コピーボリュームビットマップ823bは、オリジナル又は更新データがコピーされたコピーボリュームの部分を表示する表示子を保持する。
同期/スプリットステータス824は、各ペア822a,823aに対応するペア生成、ペアスプリット状態を表示するオリジナルーコピーの同期表示子を表示する。
フリーストレージプール802dは、コピーボリューム823aに対応するバーチュアルボリュームを割り当てるための各ディスクアレイの(“Free”)部分を提供する。フリーストレージプールはボリュームの一部か物理ディスク/ドライブの一部等の形で論理的に表示する。
図9は、受信した要求に対するアレイマネージャの応答を示す。ステップ901で要求を受信し、ステップ902で要求タイプを(要求を検索するか、自動起動オペレーションの場合はメモリ中の格納情報に基づいて)判定する。
以下に於いては、アレイマネージャは結合しているサーバから要求を受け取ったものとし、自動起動オペレーションの場合も本記述に矛盾しない形で実行されるものとする。
本I/O要求種類にはボリュームI/O要求、ペアオペレーション及びバーチュアルボリュームオペレーション(又は“スナップショット”)がある。ボリュームI/O要求には、データリード(ステップ907)とデータライト(ステップ908)がある。ペアオペレーションには、ペア生成(ステップ903)、ペアスプリット(ステップ904)、ペア(再)同期(“Resync”) (ステップ905)及びペア削除(ステップ906)がある。
スナップショットオペレーションには、チェックポイント(ステップ909)、ロールバック(ステップ910)、及びチェックポイント削除(ステップ911)がある。サポートしていない要求に対しては、アレイマネージャはエラー終了する(ステップ912)。
(以上の要求やエラー表示は、図6のコマンド構成と合致し、特定の実装の場合は他の構成になることもある。
更には、以上のオペレーションは対応するボリューム部分例えばセグメントに対して実行され、本実行も要求時に一気に実行するか、継続して実行するか又は都合のよい時刻か何かのイベントを契機に実行することにより、限定されたシステム処理能力を多様なアプリケーションの要求に対応できるようにする。)
一般的に、データリード、データライトの要求は、サーバ(図8の801a)に対して、各々オリジナル又はセカンダリボリュームに対するデータの読み書きを可能にする。ペア生成、ペアスプリット、ペア再同期、及びペア削除の各要求は;最初にオリジナルボリュームに対するI/O要求を抑制して、オリジナルボリュームに対応するコピーボリュームを生成して、オリジナルボリュームをコピーボリュームにコピーして両者を同一内容にし;
プライマリからセカンダリへの同期を抑制し;
リードライト要求を抑制して、更新されたオリジナルボリュームの部分を対応するセカンダリボリュームにコピーし;
更に、存在するオリジナルボリュームとコピーボリュームのペアステータスを“削除”する。(ペア削除要求は、コピーボリュームとバーチュアルボリュームを切断して、同期を抑止するためにも使用されることに注意。反対にユーザはペア状態を維持することも選択できる。)
チェックポイント、ロールバック、及びチェックポイント削除の要求は各々、バーチュアルボリュームを生成して、そこへリアルデータをレプリケートし;
バーチュアルボリュームの一つ以上の部分を対応するリアルデータにコピーし、本バーチュアルボリュームがリアルボリュームの昔の一時点でのスナップショットを提供し;
バーチュアルボリュームを削除する。
データ管理実装の比較
図8、図9を参照しながら図10に続けると、本発明では多様なレプリケーションシステム構成が可能になる。各々が図9で説明した“インストラクションセット”の受信に対応する、三つの実装方式を詳細に検討する。
各実装に於いて、図8のデータレプリケーションシステムが使用され、アレイマネージャ802aがサーバ801aからの要求に基づいて、ディスクアレイオペレーションを実行するものとする。異なった実装例についても検討するが、互いに組合せ可能なこれらの事例は、本発明の多様な面をよりよく理解するのに有効である。
これら三つの実装方式は、バーチュアルボリュームに書き込みまた管理する方法で大きく異なる。然しながら各方式は組合せ可能で、更に特定の実装に合わせて仕立てをする事が可能である。
最初の“同一ボリュームサイズ”データレプリケーション方式(図10〜20b)は、対応するコピーボリュームと実質的に同じサイズのバーチュアルボリュームを使用する。
第二の“エクステント”方式(図10と21〜25b)のデータレプリケーションでは上書き部分のデータ保存に“エクステント”を利用する。
第三の“ログ”データレプリケーション方式(図10と26〜32b)では、レプリケートされた上書き又は“更新”データのログを利用する。
「同一ボリュームサイズ」方式
図10は図9のステップ901,902,903に対応し、ペア生成要求に対するアレイマネージャの応答を示し、“同一ボリュームサイズ”方式と“エクステント”方式に対して適用可能である。本要求では、オリジナルボリュームと対応するコピーボリュームを指定し、本指定は例えばSCSIのLUN(Logical Unit Number)で行ってもよい。
ステップ1001に示すように、ボリューム管理構造が生成され、セグメント表示子と共に保存され、実質的エラーは無かったことを条件に正常終了が要求元に返送される(ステップ1002)。
(本正常終了表示と他の関連データは、他のアプリケーション、デバイス等にも転送され他の管理、エラーリカバリ、バックアップ等に供される。デスティネーション表示等他のデータ、パラメータ、指示、結果も転送してもよい。)
図11は本実施例での、“同一ボリュームサイズ”方式にてアレイマネージャが使用可能なデータ管理構造の一例を示す。
本実施例では、コピーボリュームと実質的に同一サイズのバーチュアルボリュームは、コピーボリュームと実質的に等しいシャドーボリュームデータを格納する“シャドー”ボリュームとして稼動する。
コピーボリュームのサイズは予め判明しているために、シャドーボリュームはライト要求が受信される前に事前割当しておくことが可能である。(然しながら、コピーボリュームとバーチュアルボリュームとの組合せが異なれば、異なったサイズを持つことが出来る。更にセグメントサイズも異なったコピーボリュームとバーチュアルボリュームに対応して、同じボリュームサイズに対しても異なることも可能である。)
システム1100は、ペア情報(“ペア情報”)1101、バーチュアルボリューム情報(“バーチュアルボリューム情報”)1102、及びセグメント情報(バーチュアルボリュームセグメント“リスト”)1103を有する。各オリジナルとコピーボリュームのペア及びバーチュアルボリュームに対して代替のデータ構造が同様に定義できる事に注意する事。
ペア情報1101は、オリジナルボリューム1111、オリジナルボリュームに対応するコピーボリューム1112及びコピーボリュームに対応して使用可能な(0〜n)バーチュアルボリューム1113に対応する合計三つのエントリを持つ。
オリジナルとコピーボリュームのエントリは、要求者が各リアルボリュームペアに対して指定した要求者ID(“LUN0”及び“LUN1”)1114とアレイマネージャが内部的に各ボリュームをアクセスする時に使用する内部ID(“Vol0”及び“Vol1”)1115を有する。
ペア情報1101は、更に、最初のバーチュアルボリューム管理構造(各順番に並んだバーチュアルボリュームに対応して次々にリンクする)をポイントするバーチュアルボリューム識別子1116を有する。
(本事例に対して他の多様なデータ構造が可能であり、例えば、一つ以上のn次元の配列、直接アドレス、間接アドレス、リンク付きリスト、テーブル等の変形が可能である事に注意願いたい。)
各々のバーチュアルボリューム情報1102は、バーチュアルボリューム名1121、バーチュアルボリューム(又は“前”の)データ1122、セグメントテーブルへのポインタ1123、日時情報を保管するタイムスタンプ1124、及び次のボリュームのバーチュアルボリューム情報へのリンク1125より構成される。
本例では、要求者によるバーチュアルボリューム名は、要求者が本ボリュームを識別できるようにした一つ以上のバーチュアルボリューム名(ここではバーチュアルボリュームA〜N)を指定し、バーチュアルボリュームの生成時刻又は日付、これに最も近い時刻又は日付、又は要求者が指定する時刻又は日付を決定することが出来る。(内部的な“Vol0,Vol1”等の値は要求者指定のバーチュアルボリューム名A―Nにマップされる。)
(最後の日時事例に於いては、対応するバーチュアルボリュームを、要求日時表示をバーチュアルボリュームが生成されたタイムスタンプ1124と比較して、選択指定に従ってより遅い、早い又は最も近いバーチュアルボリュームを選択する等のメカニズムを用いて選択することが出来る。他の組合せについては、アプリケーションに対応して使用することが出来る。)
バーチュアルボリューム情報の残りの部分については、バーチュアルボリュームデータ1122は、レプリケートされた又は“前”のコピーボリュームを示す。
セグメントテーブル識別子1123は、本バーチュアルボリュームに対応するセグメントテーブルへのポインタである。次へのボリュームリンク1125は、(次に又は直前に生成された)バーチュアルボリューム情報へのポインタである。
セグメントリスト1103は対応するバーチュアルボリューム情報で指定されるシャドーボリュームの状態を示す。各セグメントリストのエントリは、セグメント表示子とレプリケーションを示す二つの欄を有する。
既に説明したように、ボリュームはセグメントと呼ばれる一つ以上の部分に分割されており、各セグメントは、ペア生成に従ってコピーボリュームにコピーされるか、各コピーボリュームセグメントリストの更新結果に従ってバーチュアルボリュームにレプリケートされる。
図11の実施例では、各テーブルは、セグメント番号1131(ここでシーケンシャルなセグメント番号はバーチュアルボリュームに対応する)とレプリケート又は“書き込み済み”状態フラグ1132の欄を有する。各フラグが、本セグメントが、対応するコピーボリュームセグメントからシャドーボリュームセグメントにレプリケートされた(“1”)か否(“0”)かを表示する。
図12は、ペアスプリット要求に対するアレイマネージャの応答を示し、本応答は、同一ボリュームサイズ方式、エクステント方式、及びログ方式の何れにも適用可能で、図9のステップ901,902,904に対応する。本要求では、既に述べたペア生成要求と同じく、オリジナルボリュームと対応するコピーボリュームが指定される。
図示するようにアレイマネージャは、ステップ1201にてペアステータスをペアスプリット状態に変更し、実質的エラーが無かった条件で、ステップ1202にて正常終了表示が要求者に返送される。
図13、図14a、図14bはペア同期要求に対するアレイマネージャの応答を示し、本応答は、同一ボリュームサイズ方式、エクステント方式、及びログ方式の何れにも適用可能で、図9のステップ901,902,905に対応する。本要求では、既に述べたペア生成要求と同じく、オリジナルボリュームと対応するコピーボリュームのペアが指定される。
図13では、アレイマネージャ(例えば802a)は、ペアステータスをペアスプリット状態からペア同期状態に変更(ステップ1301)し、一時的ビットマップテーブルを生成する(ステップ1302、図14aを参照)。一時的ビットマップテーブルは、ペアスプリット状態中での更新セグメントを示す(ステップ1302)。
このコピーされたボリュームセグメントはオリジナルボリュームから上書きされ、コピーボリュームはオリジナルボリュームに同期化される(ステップ1304〜1305)。
次いで、ビットマップテーブルはリセットされて、全ての更新オリジナルボリュームはコピーボリュームにコピーされたことを示し(ステップ1306)、実質的エラーが無かったとして、ステップ1307にて、正常終了表示が要求者に返送される。
図14aは、一時的ビットマップテーブル1403が如何にして、オリジナルボリュームビットマップテーブル(“ビットマップ−O”1401)とコピーボリュームビットマップテーブル(“ビットマップ−C”1402)から生成される(図13のステップ1302)かを示す。
図示するように、テーブル1401〜1403は、各ボリュームに対応するセグメントエントリを持ち、各々のセグメントが、前回のコピー又はレプリケーション以来更新されたか(“Yes”)否(“No”)かを示す。
テーブル1404に示すように、一時ビットマップテーブル1403は、ビットマップ−Oとビットマップ−Cの対応する行の“Yes”に対するOR操作で実施される。一度一時的ビットマップテーブル1403が生成されると、本テーブルに基づいて、コピーボリュームはオリジナルボリュームに同期化され、テーブル1401,1402のフラグは“No”にリセットされる。
図14aに関連して、図13と図14bは更に、コピーボリュームの同期方法を説明する。本セグメントコピー動作(図13のステップ1304〜1305)では、前回のセグメントコピー以降に更新になったセグメント(図14aの一時的ビットマップ1403で示される)がオリジナルボリュームからコピーボリュームにコピーされる。
もっと具体的に記すと、コピーは既に述べたように一時的ビットマップの“Yes”フラグを持つセグメントがオリジナルボリュームからコピーボリュームにコピーされる。(例えば、図13のようにオリジナルボリュームの対象セグメントのデータを読み込み、対応するコピーボリュームのセグメントに書き込むか、又は以下に説明するようにオリジナルボリュームからコピーボリュームにデータを書き込む、といった一つ以上のコピー動作を用いてコピーされる。)
一時的ビットマップテーブル1403では、例えば、セグメント0(A)、2(C)、3(D)、4(E)がYesフラグを持っており、他のセグメント1(B)、5(F)はNoフラグを持っている。一時的ビットマップ1403(図14a)に従い、Yesフラグを持っているセグメントがオリジナルボリューム1411(図14b)からコピーボリューム1412にコピーされる。
もっと具体的に記すと、セグメント0は(“A”から“G”に)、セグメント2は(“C”から“H”に)、セグメント3は(“D”から“I”に)、セグメント4は(“E”から“J”に)変更されたとする。
引き続くコピーの結果、コピーボリュームのセグメント0,2,3,4の内容は各々“G”,“H”,“I”,“J”になり、他のセグメント1,5は元のまま(“B”,“F”)である。結果として、コピーボリュームはオリジナルボリュームと同一の内容となる。
図15は、ペア削除要求に対するアレイマネージャの応答を示し、本応答は、同一サイズボリューム方式、エクステント方式、及びログ方式の何れにも適用可能で、図9のステップ901,902,906に対応する。本要求では対象となるコピーボリュームが指定される。
ステップ1501で示すように、アレイマネージャは当該ボリュームペア(及び関連するバーチュアルボリューム)に対応する、ペア情報、バーチュアルボリューム情報、ビットマップテーブル等のデータ構造を削除する。
ステップ1502で、更にアレイマネージャは各資源の割り当てを解除し、開放されたデータスペースをフリーストレージプールに返却する。かくして、「同一ボリュームサイズ」方式では、指定されたコピーボリューム及びバーチュアルボリュームの為に使用されていたデータスペースは開放される。(同様に、以下に説明するエクステント及び関連するログが返却される。)最後に、実質的エラーが無かったとして、ステップ1503にて正常終了表示が要求者に返送される。
図16では、データリード要求に対する応答を示し、本応答は同一サイズボリューム方式、エクステント方式、及びログ方式の何れにも適用可能である(図9のステップ901,902,907に対応する)。本要求では対象ボリュームが指定され、コマンドタイプとしてデータリードが指定される。
ステップ1601にて、アレイマネージャは要求ボリューム指定情報を解析して、対象ボリュームがオリジナルボリュームかコピーボリュームかを判定する。
ステップ1601にて対象ボリュームがオリジナルボリュームと判定されれば、ステップ1602にて、アレイマネージャはオリジナルボリュームから読み取る;反対にコピーボリュームだと判定されれば、ステップ1603にてコピーボリュームから読み取りを行う。アレイマネージャは、ステップ1604にて、リードデータと正常終了報告(実質的エラーがなかったとして)を要求者に返送する。
図17aと図17bは、データライト要求に対する応答の例を示し、本応答は、同一サイズボリューム方式、エクステント方式、及びログ方式の何れにも適用可能である(図9のステップ901,902,908に対応する)。本要求では、対象ボリュームの指定と、コマンドタイプとしてデータライトが指定される。
ステップ1701(図17a)にて、アレイマネージャは、現在のオリジナルーコピーボリュームペアのペアステータスを判定する。
本ステータスがペア同期中なら、アレイマネージャはステップ1702にて指定されたデータを指定されたオリジナルボリュームに書き込み、ステップ1703にて、WRITE_SUBプロセスをコールする。ステップ1708にて、正常終了報告(実質的エラーがなかったとして)を要求者に返送する。
現在のペアステータスがペアスプリット状態なら、アレイマネージャはステップ1704にて書き込み対象のボリュームタイプを判定する。
オリジナルボリュームなら、アレイマネージャは更に、判定された本ボリュームに要求されたデータを書き込み(ステップ1705)、本ボリュームに対してビットマップフラグOをセットする(ステップ1706)。
コピーボリュームに対しては、WRITE_SUBプロセスをコールする(ステップ1707)。何れのケースでも、正常終了報告(実質的エラーがなかったとして)を要求者に返送する(ステップ1708)。
図17bは、WRITE_SUBプロセスを示し、同一サイズボリューム方式で、アレイマネージャが対応するコピーボリュームに対して、最初の書き込みを含めて行う処理ステップを示す。
アレイマネージャはステップ1721にて、本セグメントに対する書き込みは前回バーチュアルボリュームが生成さた以降最初の書き込みか否かを判定する。アレイマネージャは、最後に生成されたバーチュアルボリュームに関連するセグメントリスト中の書き込みフラグを更に調べて、“Yes”フラグが存在れば、本書き込みは最初の書き込みではないと判断して、指定されたデータをコピーボリュームに書き込み(ステップ1722)、対応するセグメントのビットマップにフラグをセットする(ステップ1723)。
反対に本書き込みが生成されたボリュームのセグメントに対する最初の書き込みだと判断した場合は、アレイマネージャは、最初にコピーボリュームの対象セグメント中に存在する書き込みデータを保護するために“シャドー”ボリューム(最後に生成されたバーチュアルボリューム)にレプリケートする(ステップ1724)。
次いで要求の書き込みデータをコピーボリュームに書き込み(ステップ1725)、対応するビットマップにフラグをセットする(ステップ1726)。更に、アレイマネージャは最後に生成されたシャドーボリュームに対応する書き込み済みフラグをセットする(ステップ1727)。
図18a〜図18cは、チェックポイント要求に対する応答を示し、本応答は同一サイズボリューム方式に対して適用可能である(図9のステップ901,902,909に対応する)。本要求では、対象コピーボリュームとコマンドタイプとしてチェックポイントを指定する。チェックポイント要求は指定されたコピーボリュームに対してバーチュアルボリュームを生成する。
図18aでは、ステップ1801でアレイマネージャは、バーチュアルボリューム管理構造即ちバーチュアルボリューム情報を生成し、本情報には本新しいバーチュアルボリュームの為の新しい構造を含み、既存のバーチュアルボリュームの構造(存在すれば)に対するリンクを設定する。
アレイマネージャは更に、バーチュアルボリューム名とタイムスタンプを割り当て(ステップ1802)、全てのフラグがリセットされているセグメントリストを生成してこれに対するリンクを設定し(ステップ1803)、フリーストレージプールよりシャドーボリューム(データスペース)を割り当てる(ステップ1804)。(既に述べた通り、シャドーボリュームのサイズはコピーボリュームに等しいと決まっているために、シャドーボリュームはこの時点で割り当てる事が出来る。)本チェックポイント作業中に実質的エラーがなかったとして、正常終了報告を要求者に返送する。
(既に述べたように本発明のチェックポイントについては更なる代替案がある。本案では、新バーチュアルボリュームを生成し更に対応するコピーボリュームのスナップショットを本新バーチュアルボリュームに書き込むことを単一の要求で実施する。)
図18bと図18cは、チェックポイントとデータライトの組合せに対するアレイコントローラの動作例を示す。
図18aでは、本事例のチェックポイント要求は単に新しいバーチュアルボリュームを生成するのみで当該ボリュームへのデータ書き込みは行わない。加えて、本事例では、明確にするためにバーチュアルボリュームの生成とデータ保存のみに着目しており、バーチュアルボリュームの生成と関連する管理は上記に述べた通りに実行される。
図18bではチェックポイントと関連する書き込みの処理流れを図示する。
ステップ(1)、(2)でチェックポイント要求を示し、(1)バーチュアルボリューム生成要求を受信してこれに応答する。(2)フリーストレージプールよりシャドーボリュームを割り当てる。
(3)〜(5)のステップで対応するコピーボリュームへのデータライト要求を説明する;(3)コピーボリュームへの書き込み要求を受け取りこれに応答し;
(4)対応するコピーボリュームのデータをシャドーボリュームに書き込み;
更に(5)要求されたデータをコピーボリュームへ書き込む。
図18cでは、図18bの例に対応し、要求1841a〜hが、データライト要求の対象になるコピーボリューム1842を配下に有するディスクアレイのアレイコントローラによって連続的に、実行される。コピーボリューム1842のセグメント0〜5は、時刻=0に於いて“A”―“F”のデータを保有している。
コピーボリューム1843は、1841a〜hが実行された後のコピーボリューム1842の状態である。
最初に、データライト要求1841a,1841bにより、セグメント0(“A”),1(“B”)をデータ“G”,“H”で各々置き換える。
チェックポイント要求1841cがシャドーボリューム1844を生成し、この後次のチェックポイント要求迄に発生するデータライト要求が本シャドーボリューム1844にシャドーされる。
次のデータライト要求1841d(“I”をセグメント0に)がセグメント0(現在“G”)をシャドーボリューム1844のセグメントにレプリケートし、次いでコピーボリュームのセグメント0(“G”)は“I”で置き換えられる。
コピーボリューム1842のセグメント2に対する、データライト要求1841e(“J”をセグメント2に)も同様に、現データ“C”をシャドーボリューム1844のセグメント2に保存し、コピーボリューム1842のセグメント2はデータ“J”で置き換えられる。
チェックポイント要求1841fがシャドーボリューム1845を生成し、この後次のチェックポイント要求までに発生するデータライト要求がシャドーボリューム1845にシャドーされる。
次のデータライト要求1841g(“K”をセグメント0に)でセグメント0(現在“I”)がシャドーボリューム1845のセグメントでレプリケートされ、次いでコピーボリュームのセグメント0(“G”)は“K”で置き換えられる。
コピーボリューム1842のセグメント3に対する、データライト要求1841hも同様に、現データ“D”をシャドーボリューム1845のセグメント3に保存し、コピーボリューム1842のセグメント3はデータ“L”で置き換えられる。
結果として、コピーボリューム1843のセグメント0〜5は(即ち1842の1841a〜h実行後)は、“K”,“H”,“J”,“L”,“E”,“F”を保有する事になる。最初のチェックポイント要求に対応するタイムスタンプをもつシャドーボリューム1844は、セグメント0,2にデータ“G”,“C”を各々持つ。
次のチェックポイント要求に対応するタイムスタンプをもつシャドーボリューム1845は、セグメント0,3にデータ“I”,“D”を各々持つことになる。
図19aと図19bはロールバック要求に対する応答を示す。本応答は、同一サイズボリューム方式に対して適用可能である(図9のステップ901,902,910に対応する)。本要求は、対象となるコピーボリューム、バーチュアル又はシャドーボリューム(名前、時刻等)とコマンドタイプとして、ロールバックを指定する。
ロールバック要求は、指定されたコピーボリュームを前に保存していたバーチュアルボリュームの状態に戻す(ロールバックする)。既に述べた様に、バーチュアルボリュームを戻す事は、同じコピーボリュームからのデータを含むことになる。
バーチュアルボリュームは更に、他のサーバ/アプリケーションよりの既存データを含む事が出来、ロールバック又は他のバーチュアルボリュームに影響する要求は、既に述べた他のオペレーションを開始するかも知れないことには注意が必要である。
図19aでは、ステップ1901で、アレイマネージャはステップ1902,1903を、前回の同一コピーボリュームに対するチェックポイント要求以降に、指定されたコピーボリュームからシャドーボリュームに移された全てのセグメントに対して、実行する。
ステップ1902にて、アレイマネージャは要求に対応する最古(指定時刻又は対応するバーチュアルボリューム以降最初に保存された)のシャドーボリュームセグメントを判定し、当該最古のセグメントより読み取る。次いで、ステップ1903でアレイマネージャは既に述べたWRITE_SUBプロセスをコールして、対応するコピーボリュームのセグメントを要求に対応する最古のセグメントで置き換える。実質的エラーがなければ正常終了報告が要求者に返送される。
図19bは、これまでの説明に適用できる一般的なロールバック動作を説明する(ステップ1930〜1932)。本例では、コピーボリュームセグメントを(指定されたバーチュアルボリュームのデータに)取り戻す前に、本セグメント(又は上書きされるデータについてのみ)はバーチュアルボリュームに(本ボリューム又は他のボリュームに)保護(レプリケート)される。
ここでは、本ロールバック要求は、ロールバック要求が対象とするコピーボリューム1911とシャドーボリューム1912〜1915を配下に有するディスクアレイのアレイコントローラにより、成功裏に実行されるものとする。
コピーボリューム1911の時刻=0のセグメント0〜8は、各々データ“A”〜“I”を持っている。コピーボリューム1911bはロールバック実行後のコピーボリューム1911aを反映する。
ステップ1930で“バーチュアル(シャドー)ボリュームBへのロールバック”要求を受信後、アレイマネージャは、本ロールバックはコピーボリューム1911のセグメント0〜2を置き換えることを判定し、新しいバーチュアルボリューム“D”1916を生成して、対応セグメント“A”,“B”,“C”を本新しいバーチュアルボリュームのセグメント0〜2に保存する(ステップ1931)。
他の例と同様に、このような決定には、ロールバック要求内の一つ以上のセグメントを指定する指定子を使用することが含まれる。又はもっと典型的には、変更なしデータに対応して要求の指定データ内に空の値を含んでもよい。
アレイマネージャは次いで、コピーボリュームのセグメント0〜2をバーチュアルボリュームのセグメントと置き換える(ステップ1932)。もっと具体的には、アレイマネージャはコピーボリュームのセグメント0〜2を要求に対応するセグメントで最古のバーチュアルボリュームのセグメントで置き換える。
ここでの例では、シャドーボリュームBのセグメント0(データ“J”);,シャドーボリュームCのセグメント1(データ“N”(“K”ではない)),シャドーボリュームDのセグメント2(データ“Q”)に置き換える。
図19bの例は更なるメリットが存在する。即ちリアルーボリューデータは、実質的に全てのケースで保護され、更に将来バーチュアルボリュームデータをリストアする事により、望み通りに利用する事が出来る。コントール情報を含む他のデータも要求者の間にリストア又は転送する事が出来、追加の要求もアレイマネージャによって実行することが出来る。
かくして、例えば、ソース又はデスティネーションが、バーチュアルボリューム管理情報以外からは知る必要がない形で、バーチュアルボリュームは、上記(連続した要求、ターゲット又は処理情報等)の転送を実行する為に、利用可能である。
更に又これまでのことより、ストレージデバイスの登録や他のメカニズムは、代わって又はある種のアプリケーションに関連して採用できるとしても、本バーチュアルボリュームの実装では、このようなストレージデバイスの登録や他のメカニズムの必要性を低減し、他にも利用価値のあるもっと本質的なカニズムをもっと有効に活用できるようにする。
ロールバックは更に、セキュリティー、アプリケーション、分散デスティネーション等を含む、要求例(単独又は他の指示事項含めて)に対応できる。
例えば、セキュリティーについてはチェックポイント、ロールバック、削除又はレプリケーション等のオペレーションに対して事前設定されたセキュリティー識別子を用いて制限することも出来(図7b〜cを参照)、又は要求者との追加の交信を行う事も出来る。
これらに対する応答は、要求者、アプリケーション、又は含まれた一つ以上のデスティネーション(又はバーチュアルボリューム内のアプリケーション/デスティネーション表示子)によって異なる。リアルボリュームにリストアされ又は更に他のボリュームに分配される可能性のあるバーチュアルボリューム、サーバ又はアプリケーションは生きたデータ又は制御情報を含む可能性があり、ロールバックは特にそのような代替案に影響を受け易い。
図20a〜bはチェックポイント削除要求に対する応答で、本応答は同一ボリュームサイズ方式に対して適用可能である(図9のステップ901,902,911に対応する)。本要求は対象となるバーチュアル又は“シャドー”ボリュームを指定し、コマンドタイプとしてチェックポイント削除を含み、指定したシャドーボリュームをバーチュアルボリューム管理構造から削除する。
チェックポイント削除は更に、部分的データストレージ実装に於いて、削除ボリュームセグメント(他の少なくとも一つの関連バーチュアルボリュームでは役立たない)を分配するのに利用され、これにより、ロールバックが、削除に続いて、そのような要求に使用されるのを保護される。(今回の事例では、その様なセグメントは当該チェックポイントの削除に先立って前のバーチュアルボリュームに移動する。)
図20aでは、ステップ2001で、アレイマネージャは指定されたバーチュアルボリュームの前のバーチュアルボリュームは存在するかを判定する。
もしその様なバーチュアルボリュームが存在しなければ、ステップ2007に進む。存在すれば、チェックポイント削除はステップ2002に進み、2003〜2005間のステップを、対象バーチュアルボリュームで本ボリュームのチェックポイント期間(即ち次のチェックポイントに先立つデータライト期間)の間に移動したセグメントの全てについて繰り返す。
ステップ2003にて、アレイマネージャは前のバーチュアルボリューム管理構造が削除すべきセグメントのエントリを持っているかを判定すつ。もし持っていなければ、対象バーチュアルボリュームの現セグメントのデータが読み出され(ステップ2004)、前のバーチュアルボリュームの同一セグメントに書き込まれる(ステップ2005)。
もし持っていれば、本チェックポイント削除処理は、次に該当するセグメントの為に、ステップ2003に移動する。
ステップ2006に於いて、対象バーチュアルボリュームの為のバーチュアルボリューム管理構造は削除され、対象バーチュアルボリュームの割り当ては解除される(ステップ2007)。実質的にエラーがなかったとして、正常終了報告が要求者に返送される(図示していない)。
チェックポイント削除要求の処理を図20bに可視的に示す。本実施例では、同一ボリュームサイズ方式に適用可能であり、指定バーチュアルボリュームを含むチェックポイント削除要求が受信され、本対象バーチュアルボリュームは一つ以上の、前のバーチュアルボリュームにはポピュレート(書き込み)されていない“単独にポピュレートされた”セグメントを一つ以上持っているとする。
本処理では、単独にポピュレートしたセグメントを前のバーチュアルボリュームにコピーすることによって保護し、対象バーチュアルボリュームの割り当てと関連する管理構造を解除する。
(ここでは、割り当て解除は同時に解除された情報をも削除しているとしても、本発明では余分な削除ステップを避ける事も出来、解除済み資源の情報で依然として存在している情報を、アプリケーションの要求によっては利用する事が出来る。
更に又、解除は単に、対象ボリュームを依然としてアクティブとみなされるのを防ぐのみであり、解除済みボリュームを意図せずにアクセスしてしまう事を防止するために、アプリケーションに対応した適切なメカニズムが必要であることに注意願いたい。)
本事例ではチェックポイント削除要求は現又は直前のバーチュアル又は“シャドー”ボリュームB2013とA2011を配下に持つアレイコントローラによって、成功裏に実行されるとする。シャドーボリューム2011は、チェックポイント削除以前(2011a)と以後(2011b)とで二度描かれている。
ステップ2021にて、“バーチュアルボリュームB削除”要求を受信後、アレイコントローラは、バーチュアルボリュームBがポピュレートされたセグメント0と1(データ“B”と“F”)を持っている事を単純な比較により判定し、対応するバーチュアルボリュームAのセグメント0がポピュレート(データA)されていて、セグメント1がされていない事を判定する。(バーチュアルボリュームBのセグメント1は従って、セグメント1に対する現在の削除要求に関して、単独にポピュレートされている。)
従って、図20bのステップ(2)にて、バーチュアルボリュームBのセグメント1は、バーチュアルボリュームAのセグメント1にコピーされ、この結果、バーチュアルボリュームAのセグメント0,1はデータ(“A”,“F”)を含むようになる。次いで、ステップ(3)にて、バーチュアルボリュームBは割り当て解除される。
「エクステント」実装方式
第二のエクステント方式でも、バーチュアルボリューム情報やその他のデータを格納する為に、フリーストレージプールより割り当てたデータスペースを利用する。
然しながら、同一ボリュームサイズ方式のシャドーボリュームとは異なって、データスペースは対応するコピーボリュームと同じとして事前割当をする訳にはいかない。
代わってエクステントは、対応するコピーボリュームセグメントのサイズに従って個別に割り当てされる。本実施例(他の実施例でも同様に適用可能)では、データスペースは、少なくとも一つ以上のバーチュアルボリュームセグメントを保存する要求に基づいて割り当てされる。
以下の実施例では、再度、ペアオペレーション(ペア生成、ペアスプリット、ペア再同期、及びペア削除を含む)、ボリュームI/O要求(データリード及びデータライトを含む)及びスナップショットオペレーション(チェックポイント、ロールバック、及びチェックポイント削除を含む)を含み、未サポートの要求に対しては、図9の時と同様にエラー終了する。
下記の要求に対しては、エクステント方式に於いても、同一ボリュームサイズ方式と同様に実行される;即ち、図10のペア生成;図12のペアスプリット;図13のペア再同期;図15のペア削除;図16のデータリード;及び図17のデータライト。
図21に、エクステント方式のボリューム管理構造を同一ボリュームサイズ方式と比較しながら示す。
本管理構造には、ペア情報(“ペア情報”)2101、バーチュアルボリューム情報(“バーチュアルボリューム情報”)2102及びバーチュアルボリュームセグメント“リスト”としてのセグメント情報2103が同様に含まれる。
このようなデータ構造は各オリジナル及びコピーボリュームペアについて、全ての適用可能なバーチュアルボリューム含めて同様であり、本実装例ではペア情報2101も又前に示した同一ボリュームサイズ方式のものと同一である。
本事例では、然しながらバーチュアルボリューム情報(2102)は4エントリで、バーチュアルボリューム名2121、セグメントテーブルポインタ2122、タイムスタンプ2123及び次ボリュームへのリンク2124により構成される。
要求者のバーチュアルボリューム名には、一つ以上のユニークなバーチュアルボリューム名2121(バーチュアルボリュームA〜N)を含むことでバーチュアルボリュームを特定でき、タイムスタンプ2123により、同一ボリュームサイズ方式と同様に、バーチュアルボリュームの生成時刻、要求に最も近い時刻を決定することが出来る。
最後に、セグメントテーブルポインタ2122は本バーチュアルボリュームに対応するエクステントテーブルへのポインタであり、次のボリュームへのリンク2124は、次につながる、即ち本ボリュームの一つ前に生成されたバーチュアルボリュームの(存在すれば)バーチュアルボリューム情報をリンクするポインタである。
エクステントセグメント又はエクステント“リスト”(2103)は各コピーボリュームのバーチュアルボリューム対応に生成され、対応するバーチュアルボリュームのバーチュアルボリューム情報2102により指定される。
各エクステントリストは各セグメントに対応して、セグメント識別子(セグメントの順序番号)2131と使用するエクステント(本エクステントの内部ロケーション)を指定するエクステント識別子2132より構成される。エクステントはフリーストレージプールにプールされている。
図22はエクステント方式での書き込み処理プロセスを示す。ステップ2201に示すようにアレイマネージャは本書き込み要求が本バーチュアルボリューム生成以来の当該セグメントへの最初の要求かを判定する。
アレイマネージャは本ボリュームのエクステントの書き込み済みフラグを精査して;“Yes”表示があることは本ボリュームに対する最初の書き込みではないと判断する。もし最初でない場合には、指定されたデータをコピーボリュームに書き込み(ステップ2202)対応するフラグを“Yes”にセットする(ステップ2203)。
反対に、本書き込みが当該ボリューム生成以来の初めての書き込みの場合は、データスペースを要求サイズに対応して割り当てる。これにより事前割当を行う必要はなくなる。
かくして、アレイコントローラは、フリーストレージプールより必要なエクステントを割り当て(ステップ2204)、エクステントが割り当てられたことを表示するためにそれ以前のエクステントリストを(例えばエクステントリストポインターにより)更新する(ステップ2205)。
以降は同一ボリュームサイズ方式と同様に進行する。即ち、アレイコントローラはコピーボリュームの対応するセグメントを現エクステントにレプリケートする(ステップ2206)事により保護して、指定されたデータをコピーボリュームに書き込み(ステップ2207)、対応する書き込み済みフラグを書き込み済みにセットする(ステップ2208)。
図23a〜図23cは、本エクステント方式に適用できる、チェックポイント要求に対する応答を示す(図9のステップ901〜902,909に対応する)。
本要求には、対象となるコピーボリューム名とコマンドタイプとしてチェックポイント要求が含まれる。本チェックポイント要求は、指定されたコピーボリュームに対して、エクステントタイプのバーチュアルボリュームを生成する。
図23aでは、ステップ2301にて、アレイマネージャは新しいバーチュアルボリューム構造を含むバーチュアルボリューム情報を生成し、既に存在する構造に対してリンクを張る。更に、アレイマネージャはバーチュアルボリューム名とタイムスタンプを生成し、格納(ステップ2302)して、エクステントリストを生成する(ステップ2303)。
本チェックポイント操作中に実質的エラーがなかった条件でアレイマネージャは正常終了報告を要求者に返送する。
図23bと図23cは、チェックポイントとデータライト要求の組み合わせに対するアレイコントローラの動作を説明する。図23aに示す如く、チェックポイント要求は、単に新しいバーチュアルボリュームを生成するだけで、データの書き込みは行わない。
更に簡単のために、本事例ではバーチュアルボリュームの生成とデータ保存のみを対象とし、本発明のよりよい理解のために、関連するデータ構造の例示的管理のみが考慮されている。
図23bに示されるように、
(1)バーチュアルボリュームの作成即ちチェックポイント要求が受け取られる。
(2)対応するコピーボリューム2312を指示したデータライト要求が受け取られる。
(3)これに対して、新しいエクステントタイプのバーチュアルボリュームが割り当てられる。
(4)コピーボリュームの書き込み対象セグメントが本新しいエクステントに書き込まれる。
(5)含まれるデータがコピーボリュームに書き込まれる。
図23cは図23bの事例を仮定して、更に要求2341a〜hが、データライト要求がアドレスしているコピーボリューム2531を配下に持つ、アレイコントローラにより継続的に実行されると仮定する。
コピーボリューム2351の時刻=0でのセグメント0〜5の値は、各々、“A”〜“F”となっている。コピーボリューム2351aとbはコピーボリューム2351の要求2341a〜h実行前と実行後の状態である。
最初に、バーチュアルボリュームは未だ存在していないから、データライト要求2341a、bでは、単にセグメント0,1のデータ“A”,“B”を要求データ“G”,“H”で各々置き換えるのみである。
チェックポイント要求2341cは、管理構造を、エクステントタイプバーチュアルボリューム2352に対応して、初期化する。データライト要求2341d(データ“I”をセグメント0に)は、コピーボリューム2351、セグメント0に対する最初のチェックポイント後の書き込み要求で、エクステントe1(2352)を割り当て、コピーボリューム2351セグメント0(今やデータ“G”を保有)を最新のエクステント(e1)セグメント0に移動させる。
データライト要求に指定されているデータ(“I”)は次にコピーボリューム2351セグメント0に書き込まれる。コピーボリューム2351のセグメント2に対する、データライト要求2341e(データ“J”をセグメント2に)も同様に、現データ“C”をエクステント(e1)のセグメント2に保存し、コピーボリューム2351のセグメント2はデータ“J”で置き換えられる。
チェックポイント要求2341fはエクステント2353に対する管理構造を生成する。次のデータライト要求2341g(“K”をセグメント0に)はコピーボリューム2351セグメント0に対するチェックポイント要求後の最初の書き込み要求であるため、エクステント−e2 2353aを割り当て、コピーボリューム2351セグメント0(現在データ“I”を保有)を最新のエクステント(e2)セグメント0にコピーさせる。
含まれているデータ(“K”)は次いで、コピーボリューム2351のセグメント0に書き込まれる。
データライト要求2341h(データ“L”をセグメント3に)はコピーボリューム2351セグメント3に対するチェックポイント要求後の最初の書き込み要求であるため、エクステントe3を割り当て、コピーボリューム2351セグメント3をエクステントe3に書き込む。次いで含まれているデータ(“L”)はコピーボリューム2351セグメント3に書き込まれる。
図24aと図24bは、ロールバック要求に対する応答を示し、本応答はエクステント方式で使用可能である(図9のステップ901,902,910を参照)。本要求は、対象コピーボリューム、エクステントタイプバーチュアルボリューム指定子(名前、時刻等)及びコマンドタイプとしてロールバックを指定する。
本ロールバック要求では、指定されたコピーボリュームのデータを前に保存されたバーチュアルボリュームにリストア又は“ロールバック”する。既に指摘した通り、バーチュアルボリュームをリストアする事は、典型的に同じコピーボリュームからのデータを含む。
図24aでは、ステップ2401にて、アレイマネージャはステップ2402〜2403を、指定されたコピーボリュームに対する前回のチェックポイント要求以来、本コピーボリュームからエクステントタイプのバーチュアルボリュームにコピーされた各セグメントに対して実行する。
ステップ2402にて、アレイマネージャは、要求に対応する最古のセグメント(指定時刻又は対応するバーチュアルボリュームID以降に最初に保存された)に対応するエクステントセグメントを決定し、本最古のセグメントを読み込む。次いで、ステップ2403にて、既に記したエクステントタイプ書き込みプロセス(図22)を使用して、対応するコピーボリュームセグメントを本要求に対応する最古のセグメントで置き換える。
本ロールバック操作中に実質的なエラーが発生しなかったとして、正常終了報告が要求者に返送される(図示していない)。
図24bの事例では、ロールバック要求は、本ロールバックが対象とするコピーボリューム2411及びエクステント2412―2416を配下に持つ、アレイコントローラによって成功裏に実行されるとする。
コピーボリューム2411の時刻=0でのセグメント0〜8のデータは各々“A”〜“I”とする。コピーボリューム2411a、bはコピーボリューム2411のロールバック前、後の状態を反映している。
前回のチェックポイント以降、“バーチュアルボリュームBへのロールバック”要求をステップ2421で受信するまでに移動したバーチュアルボリュームBのセグメントは、バーチュアルボリュームB、CのS0,バーチュアルボリュームCのS1,及びバーチュアルボリュームDのS2を含む。
バーチュアルボリュームBのS0はバーチュアルボリュームCのS0より古い為、バーチュアルボリュームBのS0が選択される。次いで、S0、S1、S2への書き込みは最初の書き込みの為、アレイマネージャはその最新のバーチュアルボリュームのために三つのエクステントを割り当て、コピーボリュームのセグメントS0,S1、S2(後に上書きされる予定になっている)は割り当てられたエクステントに移動する。次に検出されたバーチュアルボリュームセグメントはコピーボリュームに書き込まれる。
図25aと図25bは、エクステント方式に適用可能な、チェックポイント削除要求に対する応答を示す。(図9のステップ901,902,911を参照)。
本要求では、対象バーチュアルボリュームとコマンドタイプとして、チェックポイント削除を含み、指定されたバーチュアルボリュームをバーチュアルボリューム管理構造から削除する。
チェックポイント削除は更に、部分的データストレージ実装に於いて、削除ボリュームセグメント(他の少なくとも一つの関連バーチュアルボリュームでは役立たない)を分配するのに利用され、これにより、ロールバックが、削除に続いて、そのような要求に使用されるのを保護される。(今回の事例では、その様なセグメントは当該チェックポイントの削除に先立って前のバーチュアルボリュームに移動する。)
図25aでは、ステップ2501にて、アレイマネージャは指定バーチュアルボリュームより前のバーチュアルボリュームが存在するかを判定する。
もし該当バーチュアルボリュームが存在しなければ、本処理はステップ2508に続く;
存在すれば、ステップ2502に続き、ステップ2503〜2507が、対象バーチュアルボリュームのチェックポイント期間(次のチェックポイント前のデータライト期間)の間に移動した全てのセグメントに対して繰り返される。
ステップ2503にて、アレイマネージャは、前のバーチュアルボリュームが削除対象のセグメントを持っているかを判定する。もし持っていなければ、アレイマネージャはフリーストレージプールよりエクステントを割り当て(ステップ2504)、対応するエクステントリストが割り当て済みエクステントを含むようにエクステントリストを修正する(ステップ2505)。
更にアレイマネージャは検出されたセグメントを前のバーチュアルボリュームのエクステントに移動し(ステップ2506〜2507)、対応するバーチュアルボリューム情報を削除し(ステップ2508)、対象エクステントの割り当てを解除する(ステップ2509)。反対に、前のバーチュアルボリュームが対応セグメントを持っておれば、アレイマネージャはステップ2502に戻り次のセグメントについてチェックする。
本ロールバック操作中に実質的なエラーが発生しなかったとして、正常終了報告が要求者に返送される(図示していない)。
チェックポイント削除動作の図的な説明が図25bに示されている。本事例では、バーチュアルボリュームを指定するチェックポイント削除要求が受信され、指定バーチュアルボリュームは一つ以上の“自ボリュームにのみポピュレート”され、前のバーチュアルボリュームには“ポピュレート”されていないセグメントを有する。
このため、少なくとも“自ボリュームにのみポピュレート”されているセグメントの少なくとも一部分を、新しいバーチュアルボリュームにコピーする事によって、保護して、指定バーチュアルボリュームと関連管理構造の割り当てを解除する。
本事例では、バーチュアルボリュームB2522が削除される。アレイマネージャは、バーチュアルボリュームBに割り当てられているエクステントをサーチして、セグメントS0(データ“B”を保有),S1(データ“F” を保有)を検出する。バーチュアルボリュームA2521はデータつきのセグメントS0を持っているため、アレイマネージャはS1のためにバーチュアルボリュームAのエクステントを割り当てて、データ(“F”)を持ったS1を割り当てたエクステントに移動する。
アレイマネージャは次いで、バーチュアルボリュームBに割り当てたエクステントと関連する管理構造の割り当てを解除する。
「ログ」方式
第3のログ方式でもフリーストレージプールから割り当てられたデータスペースをバーチュアルボリューム情報やデータの記憶に使用する。然しながら、シャドーボリュームやエクステント方式と異なり、データストレージや管理はログを通して実行される。
以下の実施例では、再度、ペアオペレーション(ペア生成、ペアスプリット、ペア再同期、およびペア削除を含む)、ボリュームI/O要求(データリード及びデータライトを含む)及びスナップショットオペレーション(チェックポイント、ロールバック、及びチェックポイント削除を含む)を含み、未サポートの要求に対しては、図9の時と同様にエラー終了する。下記の要求に対しては、ログ方式に於いても、同一ボリュームサイズ方式および下記の図に示すのと同様に実行される。
ペアスプリット(図12)、ペア再同期(図13)、ペア削除(図15)、データリード(図16)、及びデータライト(図17a)。
図26はログタイプバーチュアルボリューム2601を示し、一つ以上のチェックポイント開始表示子2611及びログエントリ2612で構成される二つのエントリにより成り立っている。(一つ以上のログを使用することが出来、各ログは名前を持つことが出来る。例えば実装方法次第で、バーチュアルボリュームは一つ以上のログを持つことができ、又一つ以上のバーチュアルボリュームが一つのログを共有することができる。)
チェックポイントエントリ2611は、対象バーチュアルボリューム名2611a及びタイムスタンプ2611bを含むログエントリ情報を保存する。各ログエントリ、例えば2612は、データがレプリケートされ(更に上書きされ)たリアルボリュームに対応するコピーボリュームを指定するセグメント表示子2612aとレプリケートされたデータ2612bを含む。
例えば、ログエントリ2612“ブロック2:C”は、対応するコピーボリューム2602セグメント2(ここではブロック)からコピーされた事を示し、そのデータ“C”が含まれる。
図27では、ペア情報2701(“ペア情報”)とバーチュアルボリューム情報2702(“バーチュアルボリューム情報”)によるログ方式でのボリューム管理構造の一例を示す。本バーチュアルボリューム管理構造はログ内にチェックポイントとセグメント情報を含む(図26での説明を参照)。
各オリジナルとコピーボリュームのペアに対しても、使用するバーチュアルボリューム含めて同様のデータ構造を採用する事が出来る。
より具体的には、本ペア情報2701は各オリジナル2711と対応するコピーボリューム2712の各エントリに対して、同一ボリュームサイズ方式で説明したように、外部参照2715と内部参照2716を含む。
本ペア情報2701は更に、ログボリューム表示(図26で説明済み)と最初のバーチュアルボリューム情報へのポインタを含む。既に説明したようにバーチュアルボリューム情報は順番にリンクされるテーブルの並びになっている。(既に述べたように、ログボリュームのサイズは事前決定可能で、実際の実装に対応して、チェックポイントやデータライトでのデータストレージ要求を契機に割り当てる事が出来る。)
各バーチュアルボリューム情報2702は、バーチュアルボリューム名2721、タイムスタンプ2722及び次のボリュームへの“リンク”2723の3エントリにより構成される。
図28のフローチャートは、ペア生成要求に対するアレイマネージャの応答の一例を示し、本応答はログ方式に適用可能であり、ペアを生成する(図9のステップ901〜902、903を参照)。本要求には、オリジナルボリューム及び対応するコピーボリュームの指定子(SCSIのLUNやその他実装に従った指定子)が含まれる。
ステップ2801にてペア情報が生成され、オリジナル及びコピーボリューム情報が移植され、ステップ2802にて、フリーストレージプールよりログが割り当てられ、本ログボリュームの指定子が本ペア情報にセットされる。最後に実質的エラーが無かったとして、正常終了報告が返送される(ステップ2803)。
図29に本ログ方式で使用する書き込み処理プロセスの事例を示す。ステップ2901にて、アレイマネージャは、指定されたコピーボリュームに対するバーチュアルボリューム生成以降最初の当該セグメントへの書き込みか否かを判定する。
アレイマネージャは対応するログボリュームのログエントリをより詳細に精査する。もし、判定2901の結果が“No”であれば、アレイマネージャは指定されたデータをコピーボリュームに書き込み(ステップ2902)、本コピーボリュームのビットマップ−Cテーブルの書き込み済みフラグをセットする(ステップ2903)。
反対に判定2901の結果が“Yes”であれば、アレイマネージャは、指定セグメントのデータをログエントリに書き込み(ステップ2904)、指定されたデータをコピーボリュームに書き込み(ステップ2905)、本コピーボリュームのビットマップ−Cテーブルの書き込み済みフラグをセットする(ステップ2906)。
図30a〜図30b及び図26は、チェックポイント要求に対する応答を示し、本応答は、ログ方式に適用可能である(図9のステップ901,902,909を参照)。本要求は対象コピーボリュームとコマンドタイプとしてチェックポイント要求を含む。本チェックポイント要求は指定されたコピーボリュームに対してログタイプのバーチュアルボリュームを生成する。
図30aでは、ステップ3001にて、アレイマネージャは新しいバーチュアルボリュームを含むバーチュアルボリューム情報を生成して、既に存在するテーブルの最後尾に対してリンクする。さらに、バーチュアルボリューム名を割り当てて保存し、タイムスタンプとして現時刻を書き込み(ステップ3002)、対応するチェックポイントをログボリュームに書き込む(ステップ3003)。最後に本処理中に実質的エラーが無かったとして、正常終了報告が返送される。
図30bと図26は、一つ以上のチェックポイントとデータライト要求の組み合わせに対するアレイコントローラの動作を説明する。簡単の為に、本事例はバーチュアルボリュームの生成とデータ保存に向けられるとして、本発明のよりよい理解の為に、関連管理構造の事例管理のみを対象に説明する。
図30bにて、ペア生成時にログボリュームがフリーストレージプール3013より割り当てられる(ステップ3021)。本バーチュアルボリュームを生成するチェックポイント要求が受信される(ステップ3022)と、アレイマネージャはログボリュームのチェックポイントエントリを書き込む(ステップ3023)。
次いでステップ3024でデータライト要求が受信されると、アレイマネージャは必要によりコピーボリュームのセグメントのログボリュームにログエントリを書き込み(ステップ3025)、上書きされるセグメントを保護する。
最後に、アレイマネージャはコピーボリュームセグメントに要求データを上書きする(ステップ3026)。
図26に戻って、本図では図30aに基づく動作を前提とし、更に要求2621a〜hが連続的に、本データライト要求が対象とするコピーボリューム2602を配下に持つ、アレイコントローラによって実行されるとする。コピーボリュームの時刻=0でのセグメント0〜5は、“A”〜“F”のデータを各々持つものとする。
コピーボリューム2602aはコピーボリューム2602の要求2621a〜h実行前の状態を示し、コピーボリューム2602bとログボリューム2601は要求2621a〜h実行後の状態を示す。
データライト2621a〜bが(“G”を0に、“H”を1に)処理され、この時点ではバーチュアルボリュームが存在しない為、データ“G”と“H”がコピーボリューム2602のセグメント(ここではブロック)0と1に単純に書き込まれる。
チェックポイント要求2621cが受信され、時刻“8/1/2002 1:00AM”で処理されると、アレイマネージャはログ2601を生成し、チェックポイントに対応するログ2611に書き込む。
次にデータライト要求2621d(“I”を0にライト)が処理され、アレイマネージャは、本要求はコピーボリューム2602のセグメント0への最初の書き込みである事を判定し、コピーボリュームセグメント0(データ“G”)をログエントリに書き込んで本データを保護し、指定されたデータ(“I”)をコピーボリューム2602セグメント0に書き込む。
同様にアレイマネージャはデータライト要求2621e(“J”を2にライト)を、コピーボリューム2602セグメント2のデータ“C”をログ2611に保護し、指定されたデータ“J”をコピーボリューム2602セグメント2に書き込む。
チェックポイント要求2621fが受信され、時刻“8/1/2002 3:00AM”で処理されると、アレイマネージャはログ2601を生成し、ログ2601に対応するチェックポイントエントリを書き込む。
次にデータライト要求2621g(“K”を0にライト)が受信されると、アレイマネージャは、本書き込みはコピーボリューム2602セグメント0に対する最新のチェックポイント要求からの最初の書き込みであると判断し、ログエントリに書き込み、コピーボリュームセグメント0(データ“I”)を保護し、指定されたデータ(“K”)をコピーボリューム2602セグメント0に書き込む。
アレイマネージャは、データライト要求2621h(“L”を0にライト)を同様に処理するが、本書き込みは二回目の書き込みで初回では無いため、アレイマネージャは単純に指定されたデータ(“L”)をコピーボリューム2602セグメント0に書き込む。
図31aと図31bは、ロールバック要求に対する応答を示し、本応答はログ方式に対して適用できる(図9のステップ901,902,910を参照)。
本要求には、対象コピーボリューム指定子、ログタイプバーチュアルボリューム指定子(名前、時刻等)及びコマンドタイプとしてロールバックを含む。本ロールバック要求は指定コピーボリュームを前回のバーチュアルボリュームの状態にリストア又は“ロールバック”する。既に述べたように、バーチュアルボリュームをリストアすると典型的には同じコピーボリュームからのデータを含む。
図31aでは、ステップ3101にて、アレイマネージャはステップ3102〜3103を、当該コピーボリュームに対する前回のチェックポイント以降より、指定されたコピーボリュームから指定されたログタイプボリュームに移動した、各セグメントについて実行する。
ステップ3102にて、アレイマネージャは、本要求に対応する最古のセグメント(即ち、指定された時刻又は対応するバーチュアルボリュームID以降最初にログに保存されたセグメント)を決定し、本最古のセグメントを読み込む。
次にステップ3103にて、アレイマネージャは上記で述べたログタイプ書き込みプロセスを使用して、対応するコピーボリュームのセグメントを本最古のセグメントで置き換える。最後に本処理中に実質的エラーが無かったとして、正常終了報告が返送される(図示していない)。
図31bでは、ロールバック操作は、本ロールバック要求が指定するコピーボリューム3111とログ3112を配下に持つアレイコントローラにより、成功裏に実行されるとする。コピーボリューム3111のセグメント0〜8の時刻=0での各セグメントの内容は“A”〜“I”とする。
コピーボリューム3111a、3111bはコピーボリューム3111のロールバック実行前、後の状態を示している。
ステップ3121の“バーチュアルボリュームBへのロールバック”受信に先立って、バーチュアルボリュームは“チェックポイント”Bが生成されておりブロックベースセグメント0(データ“J”を含む)を含み、既に生成されているチェックポイントCはブロック0−1(データ“K”と“N”を含む)を含み、既に生成されているチェックポイントDはブロック0−2(データ“A”と“B”と“Q”を含む)を含んでいる。
アレイマネージャは、構造上の位置又は日にちを比較して、バーチュアルボリュームB〜Dが対象で、ポピュレートしているバーチュアルボリュームのセグメント0−2がコピーボリューム3111をリプレースすると決定する。
アレイマネージャは更に、指定されたチェックポイントBに始まるチェックポイントブロックを比較して、ブロック0はCP(チェックポイント)−Bの“J”が,ブロック1はCP−Cの“N”が,ブロック2に対してはCP−Dの“Q”が最古又は“ロ−ルバック”対象セグメントでコピーボリューム3111にロ−ルバックされる必要があると判断する。
従って、アレイコントローラは新しいCPを生成して、コピーボリュームセグメント0−2を本新しいCPに退避し、次いでロ−ルバックセグメントをコピーボリューム3111の対応するセグメントにコピーする。
図32aと図32bは、チェックポイント削除要求に対する本ログ方式に適用できる応答を示す。(図9のステップ901,902,911を参照)。本要求では対象のバーチュアルボリュームとコマンドタイプとしてチェックポイント削除が含まれ、指定されたバーチュアルボリュームがバーチュアルボリューム管理構造から削除される。
チェックポイント削除は更に、部分的データストレージ実装に於いて、削除ボリュームセグメント(他の少なくとも一つの関連バーチュアルボリュームでは役立たない)を分配するのに利用され、これにより、残った選択的ロールバックを保護する。
図32aでは、ステップ3201にて、アレイマネージャは指定されたバーチュアルボリューム以前に生成されたバーチュアルボリュームが存在するかを判定する。もし存在すれば、アレイマネージャは指定されたバーチュアルボリュームのログエントリを検索(ステップ3202)し、各“検出”されたログエントリに対して、前のバーチュアルボリュームが現在のログエントリと同じセグメント(ここでは使用する“ブロック”)のログエントリを持っているかを判定する(ステップ3203)。もし持っておれば、現在のログエントリを削除し(ステップ3204)、持っていなければ、本ログエントリを保持する。
引き続くステップ3205にて又は前のバーチュアルボリュームがステップ3201にて生成されていないと判断した場合は、アレイマネージャは指定されたバーチュアルボリューム情報を削除し、チェックポイントエントリを本ログより削除する(ステップ3206)。
チェックポイント削除要求の処理を図32bに図的に示す。この事例では、バーチュアルボリューム−B3221が削除対象である。アレイマネージャはバーチュアルボリューム−B3221と少なくとも一つ前のバーチュアルボリューム(ここではA)のログエントリを検索し、バーチュアルボリューム−Bのポピュレートされているセグメントは前のバーチュアルボリュームにもポピュレートされているかを判定する。
本事例では下記のセグメントが検出される;バーチュアルボリューム−Bがブロック0(データBを保有)を、バーチュアルボリューム−Aもブロック−0を保有している。
バーチュアルボリューム−Aがブロック0を保有しているため、アレイマネージャはバーチュアルボリューム−Bブロック0をログから削除する。(バーチュアルボリューム−Bが他のセグメントも持っておれば、他のセグメントについても検索して、双方にポピュレートしているセグメントの削除を繰り返す。)アレイマネージャは次いで、指定されたチェックポイントエントリ(ここではバーチュアルボリューム−Bの)を削除し、本バーチュアルボリューム−Bに対応する管理構造の割り当てを解除する。
図33aと図33bは、バーチュアルボリュームマネージャ3300とアレイコントローラ3320の各々より独立した構成例を示している。
図33aでは、バーチュアルボリュームマネージャ3300は、バーチュアルボリュームエンジン3301、参照エンジン3303、アレイコントローラインターフェース3305、アプリケーションインターフェース3307、コマンドエンジン3309、アプリケーションエンジン3311、モニタ3313、セキュリティーエンジン3315、バーチュアルボリュームマップ3317、及びセキュリティーマップ3319を有する。
バーチュアルボリュームエンジン3301は、バーチュアルボリューム要求に対する契機を受信し、バーチュアルボリュームのコンポーネントを初期化する。参照エンジン3303は、各実装に於いて使用される、バーチュアルボリュームIDと例えばセカンダリボリューム、アプリケーションサーバ、アプリケーション、ユーザ等との参照関係を管理する。
既に述べたようにこのような参照はダウンロード可能で、参照エンジンによりアサインされ、又はバーチュアルボリューム契機の一部として提供されアレイコントローラにより保存され、バーチュアルボリュームマップ3319の中に全体又はその一部が保存される。
参照エンジンは更に、既に説明したように参照の抽出と決定を行う。アレイコントローラインターフェース3305は、バーチュアルボリュームマネージャ3300がアレイコントローラと交信出来る様にし、例えば、バーチュアルボリュームコマンドを受信し、コマンドをアレイコントローラに発行して、データアクセスやサポート機能(キャッシング、エラー訂正等)を実行させる。
コマンドエンジン3307はバーチュアルボリュームコマンドを解釈し実行する(即ち、参照エンジン3303、アレイコントローラインターフェース3305、アプリケーションエンジン3311又はセキュリティーエンジン3315を起動して)。
アプリケーションエンジン3311は、外部コントロール又はバーチュアルボリュームマネージャ3300からの要求による特殊アプリケーションの実行を推進する。
アプリケーションエンジン3311は更に、Javaバーチュアルマシーン、アクティブ−Xその他の特定アプリケーションからの要求に従う為のインターフェースを提供する。そのようなアプリケーションにはデータバックアップ、ソフトウエア開発又はバッチ処理等が含まれる。
その他のコンポーネントとして、モニタエンジン3313はホストデバイス、アプリケーションサーバ、アレイコントローラ等を含むストレージ動作をモニタする。
セキュリティーエンジン3315はセキュリティーマップ3319と共に許可、認証等のセキュリティーオペレーションを実行する。バーチュアルボリュームマップ3317とセキュリティーマップ3319は、具体的実装に対応して、バーチュアルボリューム参照とセキュリティー情報を提供する。
アレイコントローラ3320(図33b)は既に説明したアレイコントロール機能を有するアレイエンジン3321を有する。アレイコントローラ3320は更にバーチュアルボリュームインターフェース3323とセキュリティーエンジン3325を有する。
バーチュアルボリュームインターフェース3323は、バーチュアルボリュームマネージャとのインターフェースを提供し、本バーチュアルボリュームマネージャがデータスペース共有、コマンド解釈、バーチュアルボリュームキャッシングを行い、エラー訂正等その他のサポート機能を実行できるようにする。
最後にセキュリティーエンジン3325はセキュリティーマップ3327と共に、既に図33aのバーチュアルボリュームマネージャ3300の対応する要素について述べたと同様な動作を、プライマリとセカンダリボリュームのアレイデータスペースに関して実施する。
特定の実施例に基づいて本発明を説明してきたが、ある範囲の改変、及び各種の変更と置き換えは既に述べた開示の範囲に含まれる。本発明の事例のある機能は、対応する他の機能を使用する事無く、又本発明の範囲と精神から離れる事無く採用できる事に注意願いたい。
は、現行データストレージを例示するフローダイアグラムである。 は、本発明の一実施例に基づくデータレプリケーションシステム例を採用するシステムの結合を示すフローダイアグラムである。 は、本発明の一実施例に基づく図2のデータレプリケーションシステムを実現する処理システム又はその要素を説明するフローダイアグラムである。 は、本発明の一実施例に基づくデータレプリケーション処理システム例を説明するフローダイアグラムである。 は、本発明の一実施例に基づくデータレプリケーションシステムのオペレーション例を示すフローダイアグラムである。 は、本発明の一実施例に基づくコマンドの構成例を説明する。 は、本発明の一実施例に基づくアレイコントロールとバーチュアルボリュームの内部動作例を説明するフローダイアグラムである。 は、本発明の一実施例に基づくバーチュアルボリュームマップを示す。 は、本発明の一実施例に基づくリアルボリュームマップを示す。 は、本発明の一実施例に基づくより統合的なレプリケーションシステムを示すフローダイアグラムである。 は、本発明の一実施例に基づくバーチュアルボリューム操作に関連するコマンドへの応答方式を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式又はエクステント方式で使用可能なボリュームペア生成処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式でのデータレプリケーションで使用可能なボリューム管理構造例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式、エクステント方式又はログ方式で使用可能なボリュームペアスプリット処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式、エクステント方式又はログ方式で使用可能なボリューム(再)同期処理例を示すフローチャートである。 は、本発明の一実施例に基づく一時的ビットマップの形成方法を示すフローダイグラムである。 は、本発明の一実施例に基づく一時的ビットマップを使用可能なコピーボリューム(再)同期処理を示すフローダイアグラムである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式、エクステント方式又はログ方式で使用可能なボリュームペア削除処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式、エクステント方式又はログ方式で使用可能なボリューム読み取り処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式、エクステント方式又はログ方式で使用可能なボリューム書き込み処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能な書き込み処理プロセス例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なチェックポイント処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なチェックポイントとデータ書き込み処理を示すフローダイアグラムである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なチェックポイントとデータ書き込み処理の組み合わせ処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なロールバック処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なロールバック処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なチェックポイント削除処理例を示すフローチャートである。 は、本発明の一実施例に基づく同一ボリュームサイズ方式で使用可能なチェックポイント削除処理例の一例を示す。 は、本発明の一実施例に基づくエクステント方式で使用可能なデータ管理構造例を示す。 は、本発明の一実施例に基づくエクステント方式で使用可能な書き込みプロセス例を示すフローチャートである。 は、本発明の一実施例に基づくエクステント方式で使用可能なチェックポイント処理例を示すフローチャートである。 は、本発明の一実施例に基づくエクステント方式で使用可能なチェックポイントとデータ書き込み処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくエクステント方式で使用可能なチェックポイントとデータ書き込み処理の組み合わせ処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくエクステント方式で使用可能なロールバック処理例を示すフローチャートである。 は、本発明の一実施例に基づくエクステント方式で使用可能なロールバック処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくエクステント方式で使用可能なチェックポイント削除処理例を示すフローチャートである。 は、本発明の一実施例に基づくエクステント方式で使用可能なチェックポイント削除処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくログ方式で使用可能なログタイプバーチュアルボリューム及びチェックポイントと書き込み処理の組み合わせ処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくログ方式で使用可能なボリューム管理方式例を示すフローダイアグラムである。 、本発明の一実施例に基づくログ方式で使用可能なペア生成処理例を示すフローチャートである。 は、本発明の一実施例に基づくログ方式で使用可能な書き込みプロセス例を示すフローチャートである。 は、本発明の一実施例に基づくログ方式で使用可能なチェックポイント処理例を示すフローチャートである。 は、本発明の一実施例に基づくログ方式で使用可能なチェックポイントとデータ書き込み処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくログ方式で使用可能なロールバック処理例を示すフローチャートである。 は、本発明の一実施例に基づくログ方式で使用可能なロールバック処理の一例を示す。 は、本発明の一実施例に基づくログ方式で使用可能なチェックポイント削除処理例を示すフローチャートである。 は、本発明の一実施例に基づくログ方式で使用可能なチェックポイント削除処理例を示すフローダイアグラムである。 は、本発明の一実施例に基づくバーチュアルボリュームマネージャの構成を示す。 は、本発明の一実施例に基づくアレイコントローラの構成を示す。
符号の説明
202・・・ネットワーク(インターネット)
203・・・アプリケーションサーバ(オリジナル/更新)
204・・・その他のコンピューティングシステム
211・・・ディスクアレイ
211a・・・アレイコントローラ
211b・・・バーチュアルボリューム(V.Vol)マネージャ
211c・・・ストレージ媒体
211d・・・その他のコンポーネント
212・・・アプリケーションサーバ1(管理)
213・・・ネットワーク(企業内イントラネット)
214a・・・アプリケーションサーバ2(OAS)
214b・・・OAS(オリジナルアプリケーションサーバ)−m
215a・・・アプリケーションサーバ3(更新)
215b・・・MAS(更新アプリケーションサーバ)−n

Claims (24)

  1. (a)データ管理システムを初期化し、少なくともストレージデバイスの第一のリアルデータストレージデータスペースに対応する一つ以上のバーチュアルストレージデータスペースへのアクセス管理の表示子を保存するステップと、
    (b)一つ以上の第一の契機に応答して、一つ以上のデータ部分を、前記第一のリアルストレージデータスペースから対応する前記バーチュアルストレージデータスペースの一つにレプリケートするステップと、
    (c)一つ以上の第二の契機に応答して、前記レプリケートされたデータ部分の少なくとも一つを、前記一つ以上のバーチュアルストレージデータスペースから第二のリアルストレージデータスペースに移動するステップと、
    (d)前記データ管理システムを更新して、前記レプリケーションと移動の少なくとも一つを表示するステップと、
    から成ることを特徴とする、ストレージデバイスにより実行される方法。
  2. 前記ストレージデバイスは、プライマリリアルボリューム(“プライマリボリューム”)、セカンダリリアルボリューム(“セカンダリボリューム”)及び、該プライマリボリュームのプライマリボリューム部分を該セカンダリボリュームにコピーする手段を有する多重アクセスストレージデバイスを備えることを特徴とする請求項1の方法。
  3. 前記第一、第二のリアルボリュームは、前記多重アクセスストレージデバイスの同じセカンダリボリュームであることを特徴とする請求項2の方法。
  4. 前記データ管理システムは、バーチュアルボリュームマネージャとボリュームデータ管理構造を備えることを特徴とする請求項1の方法。
  5. 前記初期化のステップと前記一つ以上の第一の契機に応答するステップの少なくとも一つは、更に、バーチュアルストレージデータスペースを割り当て、該割り当てと前記レプリケーションの少なくとも一つに対応したタイムスタンプを保存するステップから成ることを特徴とする請求項1の方法。
  6. 前記一つ以上の第二の契機に応答するステップは、更に、前記レプリケートされたデータ部分の少なくとも一つの前記移動に先立って、一つ以上の第二のデータ部分を、前記第一のリアルストレージデータスペースから一つ以上の前記バーチュアルストレージデータスペースに移動させるステップから成ることを特徴とする請求項1の方法。
  7. 前記一つ以上の第一の契機に応答するステップは、
    バーチュアルストレージデータスペース生成要求に応答して、対応するバーチュアルストレージデータスペースを生成するステップと、
    引き続く一つ以上のリアルストレージデータスペースへのデータを含むデータ書き込み要求に応答して、該データを前記バーチュアルストレージデータスペースにレプリケートするステップと、
    から成ることを特徴とする請求項1の方法。
  8. 前記アクセス管理は、
    前記第一のリアルストレージデータスペースと同じサイズのバーチュアルストレージデータスペース;
    レプリケートしたデータ部分を一つ以上のエクステントとして保存するバーチュアルストレージデータスペース;
    一つ以上のログ内にレプリケートしたデータ部分を保存するバーチュアルボリューム;
    の少なくとも一つを割り当てるステップを含むことを特徴とする請求項1の方法。
  9. 前記一つ以上の第一の契機は、データをリアルストレージデータスペースに書き込む要求を含み、前記割り当てが該データ書き込み要求に先立って実施されることを特徴とする請求項8の方法。
  10. 前記アクセス管理は、
    バーチュアルストレージデータスペースの生成時に対応するタイムスタンプを含むバーチュアルストレージデータスペース生成表示子と、
    セグメント識別子とレプリケートされたデータセグメントを含む書き込みエントリと、
    をログに格納することを含むことを特徴とする請求項8の方法。
  11. 一つ以上の第一の契機に応答して、一つ以上のデータ部分を第一のリアルストレージデータスペースから対応する一つ以上のバーチュアルストレージデータスペースにレプリケートし、一つ以上の第二の契機に応答して、該レプリケートされたデータ部分の少なくとも一つを、該一つ以上のバーチュアルストレージデータスペースから第二のリアルストレージデータスペースに移動させるバーチュアルボリュームエンジンと、
    前記一つ以上のバーチュアルストレージデータスペースへのアクセスを表示するようにストレージ表示子を初期化し、前記レプリケーションと移動の少なくとも一つを表示するように該表示子を更新するデータ管理システムと、
    を含むことを特徴とするストレージデバイス。
  12. プライマリボリュームとセカンダリボリューム及び、該プライマリボリュームのプライマリボリューム部分を該セカンダリボリュームにコピーする手段を有する多重アクセスストレージデバイスを備えることを特徴とする請求項11のストレージデバイス。
  13. 前記第一、第二のリアルボリュームは、前記多重アクセスストレージデバイスの同じセカンダリボリュームであることを特徴とする請求項12のストレージデバイス。
  14. 前記初期化と前記一つ以上の第一の契機に対する前記応答の少なくとも一つは、更に、バーチュアルストレージデータスペースの割り当てと、該割り当てと前記レプリケーションの少なくとも一つに対応するタイムスタンプの保存とを含むことを特徴とする請求項11のストレージデバイス。
  15. 前記一つ以上の第二の契機への前記応答は、更に、前記レプリケートされたデータ部分の少なくとも一つの前記移動に先立って、一つ以上の第二のデータ部分を前記第一のリアルストレージデータスペースから一つ以上の前記バーチュアルストレージデータスペースに移動させることを含むことを特徴とする請求項11のストレージデバイス。
  16. 前記一つ以上の第一の契機に対する前記応答は、
    バーチュアルストレージデータスペース生成要求に応答して、対応するバーチュアルストレージデータスペースを生成し、更に
    引き続く一つ以上のリアルストレージデータスペースへのデータを含むデータ書き込み要求に応答して、該データを前記バーチュアルストレージデータスペースにレプリケートする、ことを含むことを特徴とする請求項11のストレージデバイス。
  17. 前記バーチュアルボリュームエンジンは、
    前記第一のリアルストレージデータスペースと同じサイズのバーチュアルストレージデータスペース;
    レプリケートしたデータ部分を一つ以上のエクステントとして保存するバーチュアルストレージデータスペース;
    一つ以上のログ内にレプリケートしたデータ部分を保存するバーチュアルボリューム;
    の少なくとも一つとしてバーチュアルストレージデータスペースを割り当てることを特徴とする請求項11のストレージデバイス。
  18. 前記一つ以上の第一の契機は、データをリアルストレージデータスペースに書き込む要求を含み、前記バーチュアルボリュームエンジンは、該データ書き込み要求に先立って、バーチュアルストレージデータスペースを割り当てることを特徴とする請求項17のストレージデバイス。
  19. 前記データ管理システムは、
    バーチュアルストレージデータスペースの生成時に対応するタイムスタンプを含むバーチュアルストレージデータスペース生成表示子と、
    セグメント識別子とレプリケートされたデータセグメントを含む書き込みエントリと、
    をログに格納することを特徴とする請求項17のストレージデバイス。
  20. (a)データ管理システムを初期化し、少なくともストレージデバイスの第一のリアルデータストレージデータスペースに対応する一つ以上のバーチュアルストレージデータスペースへのアクセス管理の表示子を保存するステップと、
    (b)一つ以上の第一の契機に応答して、一つ以上のデータ部分を、前記第一のリアルストレージデータスペースから対応する前記バーチュアルストレージデータスペースの一つにレプリケートするステップと、
    (c)一つ以上の第二の契機に応答して、前記レプリケートされたデータ部分の少なくとも一つを、前記一つ以上のバーチュアルストレージデータスペースから第二のリアルストレージデータスペースに移動するステップと、
    (d)前記データ管理システムを更新して、前記レプリケーションと移動の少なくとも一つを表示するステップと、
    から成るステップをコンピュータに実行させることを特徴とするコンピュータ保存プログラム。
  21. 第一のボリュームと該第一のボリュームをレプリケートした第二のボリュームを備えるステップと、
    第一の時点で前記第二のボリュームのコピーを生成するステップと、
    少なくとも書き込み要求に応答して前記第二のボリュームを更新するステップと、
    前記コピーを利用して、前記第二のボリュームを前記第一の時点の内容に戻すステップと、
    から成ることを特徴とする、ストレージシステムにより実行される方法。
  22. 第一のボリュームと該第一のボリュームをレプリケートした第二のボリュームを備えるストレージシステムにより実行される方法において、
    第三のボリュームを備えるステップと、
    第一の時点以来データ更新されていない前記第二のボリュームの第一ロケーションに、第一のデータ更新要求がなされたら、該第一ロケーションに書かれているのと同じデータを前記第三のボリュームに書き込むステップと、
    前記第一のデータ更新要求に応答して、前記第一ロケーションに更新データを書き込むステップと、
    前記第一の時点での前記第二のボリュームを前記第三のボリュームに保存されたデ―タを用いて取り戻すステップと、
    から成ることを特徴とする方法。
  23. 第四のボリュームを備えるステップと、
    後の時点である第二の時点以来データ更新されていない前記第二のボリュームの第二ロケーションにデータ更新要求がなされたら、前記第二ロケーションに書かれているのと同じデータを前記第四のボリュームに書き込むステップと、
    前記第二のデータ更新要求に応答して、前記第二ロケーションへ更新データを書き込むステップと、
    前記第四のボリュームに保存されたデータを使用して、前記第二の時点での前記第二のボリュームを取り戻すステップと、
    をさらに含むことを特徴とする請求項22の方法。
  24. 前記第一ロケーションは、前記第二ロケーションと同じであることを特徴とする請求項23の方法。
JP2004024992A 2003-06-12 2004-02-02 ロールバックによるデータレプリケーション方式 Pending JP2005004719A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/459,743 US20040254964A1 (en) 2003-06-12 2003-06-12 Data replication with rollback

Publications (1)

Publication Number Publication Date
JP2005004719A true JP2005004719A (ja) 2005-01-06

Family

ID=33510858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004024992A Pending JP2005004719A (ja) 2003-06-12 2004-02-02 ロールバックによるデータレプリケーション方式

Country Status (2)

Country Link
US (1) US20040254964A1 (ja)
JP (1) JP2005004719A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908077A (zh) * 2010-08-27 2010-12-08 华中科技大学 一种适用于云备份的重复数据删除方法

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003092166A1 (en) * 2002-04-25 2003-11-06 Kashya Israel Ltd. An apparatus for continuous compression of large volumes of data
JP4149315B2 (ja) * 2003-06-12 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップシステム
US7124323B2 (en) * 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation
JP4325849B2 (ja) * 2003-06-27 2009-09-02 株式会社日立製作所 記憶システム、バックアップシステム及びバックアップ方法
US7523276B1 (en) * 2003-06-30 2009-04-21 Veritas Software Corporation Synchronization of selected data from snapshots stored on different storage volumes
US7240080B2 (en) * 2003-07-30 2007-07-03 International Business Machines Corporation Method and apparatus for determining using least recently used protocol if one or more computer files should be written to one or more information storage media and synchronously providing one or more computer files between first and storage devices
US7467266B2 (en) * 2003-08-05 2008-12-16 International Business Machines Corporation Snapshot management method apparatus and system
JP4426275B2 (ja) 2003-12-16 2010-03-03 株式会社日立製作所 リモートコピー制御方法
US7039661B1 (en) 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US8689185B1 (en) * 2004-01-27 2014-04-01 United Services Automobile Association (Usaa) System and method for processing electronic data
US7409510B2 (en) * 2004-05-27 2008-08-05 International Business Machines Corporation Instant virtual copy to a primary mirroring portion of data
US7165160B2 (en) * 2004-09-08 2007-01-16 Hitachi, Ltd. Computing system with memory mirroring and snapshot reliability
JP2006092124A (ja) * 2004-09-22 2006-04-06 Fujitsu Ltd 記憶装置、記憶制御方法および記憶制御プログラム
JP2006106985A (ja) * 2004-10-01 2006-04-20 Hitachi Ltd 計算機システム、ストレージ装置及びストレージ管理方法
JP4643590B2 (ja) * 2004-11-29 2011-03-02 富士通株式会社 仮想ボリューム移築プログラム
US7657578B1 (en) * 2004-12-20 2010-02-02 Symantec Operating Corporation System and method for volume replication in a storage environment employing distributed block virtualization
US9009114B1 (en) * 2005-10-31 2015-04-14 Symantec Operating Corporation Version mapped incremental backups
US8060713B1 (en) 2005-12-21 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Consolidating snapshots in a continuous data protection system using journaling
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US7849361B2 (en) * 2005-12-22 2010-12-07 Emc Corporation Methods and apparatus for multiple point in time data access
JP4877921B2 (ja) * 2006-01-25 2012-02-15 株式会社日立製作所 ストレージシステム、記憶制御装置及び記憶制御装置のリカバリポイント検出方法
US7603529B1 (en) * 2006-03-22 2009-10-13 Emc Corporation Methods, systems, and computer program products for mapped logical unit (MLU) replications, storage, and retrieval in a redundant array of inexpensive disks (RAID) environment
GB0606639D0 (en) * 2006-04-01 2006-05-10 Ibm Non-disruptive file system element reconfiguration on disk expansion
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
JP2007323218A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd バックアップシステム
US8620970B2 (en) * 2006-10-03 2013-12-31 Network Appliance, Inc. Methods and apparatus for changing versions of a filesystem
GB0625698D0 (en) * 2006-12-21 2007-01-31 Ibm Rollback support in distributed data management systems
JP4990066B2 (ja) * 2007-08-21 2012-08-01 株式会社日立製作所 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
US8166476B2 (en) * 2007-08-24 2012-04-24 Symantec Corporation On-demand access to a virtual representation of a physical computer system
US8738575B2 (en) * 2007-09-17 2014-05-27 International Business Machines Corporation Data recovery in a hierarchical data storage system
US7840536B1 (en) 2007-12-26 2010-11-23 Emc (Benelux) B.V., S.A.R.L. Methods and apparatus for dynamic journal expansion
US7860836B1 (en) 2007-12-26 2010-12-28 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to recover data in a continuous data protection environment using a journal
US8041940B1 (en) 2007-12-26 2011-10-18 Emc Corporation Offloading encryption processing in a storage area network
US9501542B1 (en) 2008-03-11 2016-11-22 Emc Corporation Methods and apparatus for volume synchronization
JP4893716B2 (ja) * 2008-08-28 2012-03-07 富士通株式会社 バックアップ装置、バックアップ方法およびバックアッププログラム
JP2012505439A (ja) * 2009-02-25 2012-03-01 株式会社日立製作所 ストレージ装置及びその制御方法
US8489799B2 (en) 2009-12-13 2013-07-16 International Business Machines Corporation Efficient loading of data into memory of a computing system
US8392680B1 (en) 2010-03-30 2013-03-05 Emc International Company Accessing a volume in a distributed environment
US8332687B1 (en) 2010-06-23 2012-12-11 Emc Corporation Splitter used in a continuous data protection environment
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8433869B1 (en) 2010-09-27 2013-04-30 Emc International Company Virtualized consistency group using an enhanced splitter
US8478955B1 (en) 2010-09-27 2013-07-02 Emc International Company Virtualized consistency group using more than one data protection appliance
US8335771B1 (en) 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US8694700B1 (en) 2010-09-29 2014-04-08 Emc Corporation Using I/O track information for continuous push with splitter for storage device
KR101035302B1 (ko) * 2010-10-11 2011-05-19 (주)이스트소프트 클라우드 시스템 및 클라우드 시스템에서 파일 압축 및 전송 방법
US8335761B1 (en) 2010-12-02 2012-12-18 Emc International Company Replicating in a multi-copy environment
US8949558B2 (en) 2011-04-29 2015-02-03 International Business Machines Corporation Cost-aware replication of intermediate data in dataflows
US9256605B1 (en) 2011-08-03 2016-02-09 Emc Corporation Reading and writing to an unexposed device
US20130047261A1 (en) * 2011-08-19 2013-02-21 Graeme John Proudler Data Access Control
US8898112B1 (en) 2011-09-07 2014-11-25 Emc Corporation Write signature command
US9223659B1 (en) 2012-06-28 2015-12-29 Emc International Company Generating and accessing a virtual volume snapshot in a continuous data protection system
US10235145B1 (en) 2012-09-13 2019-03-19 Emc International Company Distributed scale-out replication
US9336094B1 (en) 2012-09-13 2016-05-10 Emc International Company Scaleout replication of an application
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9141680B2 (en) * 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US9442993B2 (en) 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US8996460B1 (en) 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9383937B1 (en) 2013-03-14 2016-07-05 Emc Corporation Journal tiering in a continuous data protection system using deduplication-based storage
US9110914B1 (en) 2013-03-14 2015-08-18 Emc Corporation Continuous data protection using deduplication-based storage
US9696939B1 (en) 2013-03-14 2017-07-04 EMC IP Holding Company LLC Replicating data using deduplication-based arrays using network-based replication
US9152339B1 (en) 2013-03-15 2015-10-06 Emc Corporation Synchronization of asymmetric active-active, asynchronously-protected storage
US9081842B1 (en) 2013-03-15 2015-07-14 Emc Corporation Synchronous and asymmetric asynchronous active-active-active data access
US9244997B1 (en) 2013-03-15 2016-01-26 Emc Corporation Asymmetric active-active access of asynchronously-protected data storage
US9069709B1 (en) 2013-06-24 2015-06-30 Emc International Company Dynamic granularity in data replication
US9087112B1 (en) 2013-06-24 2015-07-21 Emc International Company Consistency across snapshot shipping and continuous replication
US9354991B2 (en) * 2013-06-25 2016-05-31 Microsoft Technology Licensing, Llc Locally generated simple erasure codes
US9146878B1 (en) 2013-06-25 2015-09-29 Emc Corporation Storage recovery from total cache loss using journal-based replication
US9367260B1 (en) 2013-12-13 2016-06-14 Emc Corporation Dynamic replication system
US9405765B1 (en) 2013-12-17 2016-08-02 Emc Corporation Replication of virtual machines
US9158630B1 (en) 2013-12-19 2015-10-13 Emc Corporation Testing integrity of replicated storage
US9189339B1 (en) 2014-03-28 2015-11-17 Emc Corporation Replication of a virtual distributed volume with virtual machine granualarity
US9274718B1 (en) 2014-06-20 2016-03-01 Emc Corporation Migration in replication system
US10082980B1 (en) 2014-06-20 2018-09-25 EMC IP Holding Company LLC Migration of snapshot in replication system using a log
US9619543B1 (en) 2014-06-23 2017-04-11 EMC IP Holding Company LLC Replicating in virtual desktop infrastructure
US10437783B1 (en) 2014-09-25 2019-10-08 EMC IP Holding Company LLC Recover storage array using remote deduplication device
US10324798B1 (en) 2014-09-25 2019-06-18 EMC IP Holding Company LLC Restoring active areas of a logical unit
US10101943B1 (en) 2014-09-25 2018-10-16 EMC IP Holding Company LLC Realigning data in replication system
US9910621B1 (en) 2014-09-29 2018-03-06 EMC IP Holding Company LLC Backlogging I/O metadata utilizing counters to monitor write acknowledgements and no acknowledgements
US9529885B1 (en) 2014-09-29 2016-12-27 EMC IP Holding Company LLC Maintaining consistent point-in-time in asynchronous replication during virtual machine relocation
US10496487B1 (en) 2014-12-03 2019-12-03 EMC IP Holding Company LLC Storing snapshot changes with snapshots
US9600377B1 (en) 2014-12-03 2017-03-21 EMC IP Holding Company LLC Providing data protection using point-in-time images from multiple types of storage devices
US9405481B1 (en) 2014-12-17 2016-08-02 Emc Corporation Replicating using volume multiplexing with consistency group file
US10303782B1 (en) 2014-12-29 2019-05-28 Veritas Technologies Llc Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
US9632881B1 (en) 2015-03-24 2017-04-25 EMC IP Holding Company LLC Replication of a virtual distributed volume
US9411535B1 (en) 2015-03-27 2016-08-09 Emc Corporation Accessing multiple virtual devices
US10296419B1 (en) 2015-03-27 2019-05-21 EMC IP Holding Company LLC Accessing a virtual device using a kernel
US9678680B1 (en) 2015-03-30 2017-06-13 EMC IP Holding Company LLC Forming a protection domain in a storage architecture
US10853181B1 (en) 2015-06-29 2020-12-01 EMC IP Holding Company LLC Backing up volumes using fragment files
US9684576B1 (en) 2015-12-21 2017-06-20 EMC IP Holding Company LLC Replication using a virtual distributed volume
US10235196B1 (en) 2015-12-28 2019-03-19 EMC IP Holding Company LLC Virtual machine joining or separating
US10067837B1 (en) 2015-12-28 2018-09-04 EMC IP Holding Company LLC Continuous data protection with cloud resources
US10133874B1 (en) 2015-12-28 2018-11-20 EMC IP Holding Company LLC Performing snapshot replication on a storage system not configured to support snapshot replication
US10579282B1 (en) 2016-03-30 2020-03-03 EMC IP Holding Company LLC Distributed copy in multi-copy replication where offset and size of I/O requests to replication site is half offset and size of I/O request to production volume
US10152267B1 (en) 2016-03-30 2018-12-11 Emc Corporation Replication data pull
US10235087B1 (en) 2016-03-30 2019-03-19 EMC IP Holding Company LLC Distributing journal data over multiple journals
US10235060B1 (en) 2016-04-14 2019-03-19 EMC IP Holding Company, LLC Multilevel snapshot replication for hot and cold regions of a storage system
US10235090B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Validating replication copy consistency using a hash function in a storage system
US10019194B1 (en) 2016-09-23 2018-07-10 EMC IP Holding Company LLC Eventually consistent synchronous data replication in a storage system
US10235091B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Full sweep disk synchronization in a storage system
US10146961B1 (en) 2016-09-23 2018-12-04 EMC IP Holding Company LLC Encrypting replication journals in a storage system
US10210073B1 (en) 2016-09-23 2019-02-19 EMC IP Holding Company, LLC Real time debugging of production replicated data with data obfuscation in a storage system
US11281693B2 (en) 2017-10-31 2022-03-22 Ab Initio Technology Llc Managing a computing cluster using replicated task results
US10613946B2 (en) 2017-11-30 2020-04-07 International Business Machines Corporation Device reservation management for overcoming communication path disruptions
US10282258B1 (en) 2017-11-30 2019-05-07 International Business Machines Corporation Device reservation state preservation in data mirroring
US10521147B2 (en) 2017-11-30 2019-12-31 International Business Machines Corporation Device reservation state synchronization in data mirroring

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04139544A (ja) * 1990-10-01 1992-05-13 Fujitsu Ltd データ復元方法
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
US5857208A (en) * 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5845292A (en) * 1996-12-16 1998-12-01 Lucent Technologies Inc. System and method for restoring a distributed checkpointed database
US6061770A (en) * 1997-11-04 2000-05-09 Adaptec, Inc. System and method for real-time data backup using snapshot copying with selective compaction of backup data
US6212531B1 (en) * 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6078932A (en) * 1998-01-13 2000-06-20 International Business Machines Corporation Point-in-time backup utilizing multiple copy technologies
US6131148A (en) * 1998-01-26 2000-10-10 International Business Machines Corporation Snapshot copy of a secondary volume of a PPRC pair
US6493825B1 (en) * 1998-06-29 2002-12-10 Emc Corporation Authentication of a host processor requesting service in a data processing network
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
JP4651230B2 (ja) * 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
US6457109B1 (en) * 2000-08-18 2002-09-24 Storage Technology Corporation Method and apparatus for copying data from one storage system to another storage system
US6691245B1 (en) * 2000-10-10 2004-02-10 Lsi Logic Corporation Data storage with host-initiated synchronization and fail-over of remote mirror
US6557089B1 (en) * 2000-11-28 2003-04-29 International Business Machines Corporation Backup by ID-suppressed instant virtual copy then physical backup copy with ID reintroduced
US6594744B1 (en) * 2000-12-11 2003-07-15 Lsi Logic Corporation Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US6771843B1 (en) * 2001-05-11 2004-08-03 Lsi Logic Corporation Data timeline management using snapshot volumes
US6990111B2 (en) * 2001-05-31 2006-01-24 Agilent Technologies, Inc. Adaptive path discovery process for routing data packets in a multinode network
US7613806B2 (en) * 2001-06-28 2009-11-03 Emc Corporation System and method for managing replication sets of data distributed over one or more computer systems
US7155463B1 (en) * 2001-09-20 2006-12-26 Emc Corporation System and method for replication of one or more databases
US6732244B2 (en) * 2002-01-22 2004-05-04 International Business Machines Corporation Instant virtual copy technique with expedited creation of backup dataset inventory from source dataset inventory
US6757778B1 (en) * 2002-05-07 2004-06-29 Veritas Operating Corporation Storage management system
US8219777B2 (en) * 2002-10-03 2012-07-10 Hewlett-Packard Development Company, L.P. Virtual storage systems, virtual storage methods and methods of over committing a virtual raid storage system
US6857057B2 (en) * 2002-10-03 2005-02-15 Hewlett-Packard Development Company, L.P. Virtual storage systems and virtual storage system operational methods
US6981114B1 (en) * 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
US7231544B2 (en) * 2003-02-27 2007-06-12 Hewlett-Packard Development Company, L.P. Restoring data from point-in-time representations of the data
US6959369B1 (en) * 2003-03-06 2005-10-25 International Business Machines Corporation Method, system, and program for data backup

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908077A (zh) * 2010-08-27 2010-12-08 华中科技大学 一种适用于云备份的重复数据删除方法

Also Published As

Publication number Publication date
US20040254964A1 (en) 2004-12-16

Similar Documents

Publication Publication Date Title
JP2005004719A (ja) ロールバックによるデータレプリケーション方式
US7302536B2 (en) Method and apparatus for managing replication volumes
US8209507B2 (en) Storage device and information management system
US7404051B2 (en) Method for replicating snapshot volumes between storage systems
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
JP4581518B2 (ja) スナップショット取得方法
US7526668B2 (en) Failover method of remotely-mirrored clustered file servers
EP1624376B1 (en) Storage system and data processing system
US7873809B2 (en) Method and apparatus for de-duplication after mirror operation
US7865772B2 (en) Management device and management method
US7165163B2 (en) Remote storage disk control device and method for controlling the same
US7424497B1 (en) Technique for accelerating the creation of a point in time prepresentation of a virtual file system
US20080072000A1 (en) Method and apparatus incorporating virtualization for data storage and protection
US20050060507A1 (en) Remote storage disk control device with function to transfer commands to remote storage devices
JP2002049575A (ja) ファイルシステム
JP2005062928A (ja) 複数のサイトにリモートコピーを行うシステム
EP1536336A2 (en) Method, system and server for performing backup in a computer system with multiple file servers
US11709780B2 (en) Methods for managing storage systems with dual-port solid-state disks accessible by multiple hosts and devices thereof
US20040254962A1 (en) Data replication for enterprise applications
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US20030191917A1 (en) Apparatus and method of maintaining reliable offline mirror copies in virtual volume groups
JP2007172365A (ja) データ複製システム、複製データ処理プログラムおよび複製データ処理方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424