JP5689507B2 - ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム - Google Patents

ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム Download PDF

Info

Publication number
JP5689507B2
JP5689507B2 JP2013164864A JP2013164864A JP5689507B2 JP 5689507 B2 JP5689507 B2 JP 5689507B2 JP 2013164864 A JP2013164864 A JP 2013164864A JP 2013164864 A JP2013164864 A JP 2013164864A JP 5689507 B2 JP5689507 B2 JP 5689507B2
Authority
JP
Japan
Prior art keywords
transaction
storage device
device driver
data
flash copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013164864A
Other languages
English (en)
Other versions
JP2013242921A (ja
Inventor
ダグラス ハチソン ゴードン
ダグラス ハチソン ゴードン
ジェイムズ マカリスター キャメロン
ジェイムズ マカリスター キャメロン
ロウ ルーシー
ロウ ルーシー
ジェイムズ スミス ブルース
ジェイムズ スミス ブルース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013242921A publication Critical patent/JP2013242921A/ja
Application granted granted Critical
Publication of JP5689507B2 publication Critical patent/JP5689507B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ・デバイス上のデータ書き込みを実行する方法及びシステムに関するものである。一実施形態において、本発明は、ストレージ・サブシステムがトランザクション・ロールバックに参加することを可能にするメカニズムを提供する。
大規模組織におけるデータの記憶は、データの信頼性とハードウェア障害発生時のデータ・リカバリ能力の両面で極めて重要である。ストレージ・エリア・ネットワーク(SAN)は、膨大な量のデータを確実且つ安全な形で記憶する必要がある場合に使用されるアーキテクチャである。この技術を用いると、ディスク・アレイのような遠隔のコンピュータ・ストレージ・デバイスとサーバとの間の接続がオペレーティング・システムから見てローカル接続に見えるようにサポートするネットワークを確立することが可能となる。これらのネットワークでは一般に、データ・ストレージと個々のコンポーネント間のハードウェア接続の両面で高い冗長性が確保される。
データ冗長性を実現する方法には様々なものが存在する。例えば、フラッシュコピー(flashcopy)機能のような機能を用いると、管理者は、読み取り又は書き込みアクセスに
直ちに利用可能なコピーを用いてポイント・イン・タイムのフル・ボリューム・データ・コピーを作成することが可能となる。フラッシュコピーは、テープ上でバックアップ・コピーを作成する各環境において利用可能な標準的なバックアップ・ツールと共に使用され得る。フラッシュコピーは、ソース・ボリュームのコピーをターゲット・ボリューム上に作成する。このコピーは、ポイント・イン・タイム・コピーと呼ばれる。
フラッシュコピー操作が開始されると、ソース・ボリュームとターゲット・ボリュームの間の関係が作成される。この関係は、ソース・ボリュームとターゲット・ボリュームの「マッピング」である。このマッピングを用いることにより、該当するソース・ボリュームのポイント・イン・タイム・コピーを関連するターゲット・ボリュームにコピーすることが可能となる。このボリューム・ペアの関係は、フラッシュコピー操作が開始された時点からストレージ・ユニットがすべてのデータをソース・ボリュームからターゲット・ボリュームにコピーするまで又はボリューム・ペアの関係自体が削除されるまで存続する。
データが物理的にコピーされるときは、トラックがバックグラウンド・プロセスによってソース・ボリュームからターゲット・ボリュームにコピーされる。バックグラウンド・コピーが完了するまでの時間は、以下の条件、即ちコピーされるデータの量、実行中のバックグラウンド・コピー・プロセスの数、及び現在実行中の他のアクティビティに依存する。
記憶時に、ユーザは、いくつかのストレージ・ディスクのポイント・イン・タイム・バックアップを取得するフラッシュコピーを作成することができる。後にユーザのストレージに問題が生じた場合、ユーザは、フラッシュコピーを反転させてデータの保存バージョンをリストアすることができる。フラッシュコピー関係の方向は反転させることができ、反転させた場合は、反転以前にターゲットとして定義されていたボリュームが、反転以前にソースとして定義されていた(反転後にターゲットとなる)ボリュームのソースとなる。変更されたデータは、反転以前にソースとして定義されていたボリュームにコピーされる。
管理者は、各自がフラッシュコピー操作を実行する以前のソース・ボリューム(ボリュームA)をリストアしたいと望んだ場合は、フラッシュコピー関係を反転させることができる。事実上、管理者は、フラッシュコピー操作が発生しなかった場合と同様のソース・ボリュームが得られるようにフラッシュコピー操作の反転を実行する。フラッシュコピー操作のバックグラウンド・コピー・プロセスが完了しない限り、ボリュームAをソースに反転させ、ボリュームBをターゲットに反転させることはできない。
一定の状況下では、当初のフラッシュコピー関係を反転させることが望まれる。例えば、ソース・ボリュームAとターゲット・ボリュームBの間のフラッシュコピー関係が作成されたときに、ソース・ボリュームA上でデータ損失が発生する可能性がある。この場合は、フラッシュコピー関係を反転させてボリュームBがボリュームAにコピーされるようにすることができる。
残念ながら、データ・ストレージのこのような操作方法にはいくつかの欠点が存在する。例えば、フラッシュコピー機能を使用するとフラッシュコピーが取得されたポイント・イン・タイムへのリストアが容易となるが、データ・リカバリの実行が試行中という文脈では、適時のリストアが常に実現されるとは限らない。同様に、システム内の事象に基づいてコピーが取られるのではなく、クロック・タイムに応じてバックグラウンド・タスクとしてコピーが取られる場合、実際のポイント・イン・タイムがデータ・リカバリのために役立てられない可能性がある。継続的データ保護が自動化されておらず、バックアップを取得する妥当なタイミングがいつであるかの概念も存在しない。これに加え、多数のインターリーブ・システムが動作する性質上、また、すべてのシステム間の整合性を保つ必要もあるため、コピーの容量が大きくなり、多数のディスク・セットが含まれる傾向がある。このため処理及び記憶負荷が増大する。システムは、モノリシック形式で静止させフラッシュ(flush)する必要がある。大部分のフラッシュコピー・シナリオでは、フラッ
シュコピーに先立ってアプリケーションが停止され、デバイス・ドライバがキャッシュ・データをフラッシュする。これにより、他のvdisk用にキャッシュされたデータとフラッシュコピーに関与しないアプリケーションとを含み得るフラッシュコピー対象のvdiskのクリーン・イメージを作成するために、すべてのアプリケーション・データがストレージ・デバイスにフラッシュされることになる。
また、ユーザがフラッシュコピーを使用して仮想ディスクのポイント・イン・タイム・バックアップ・コピーを作成するときは、(ディスク上に記憶されている)ビジネス・データ・セット全体のバックアップ・コピーを取得するビジネス要件を特定のポイント・イン・タイムにおいて満足させようと試みる。このような試みには問題がある。というのも、場合によっては例えばアプリケーション及びウェブ・サーバ・ミドルウェア、データベース、ファイル・システム、及びマルチパス・デバイス・ドライバを含めた多数のキャッシュ・レイヤが存在するからである。ビジネス・データ・セットのフラッシュコピーを取得する現行の手法は、ストレージ・ディスクを使用しているすべてのアプリケーション及びミドルウェア作業を停止させ、(典型的には)関連するミドルウェア・サーバをシャット・ダウンさせるものであり、このため、すべてのデータをディスクに記憶することが強いられる。その後このディスクをフラッシュコピーすることにより、バックアップ可能な整合性のあるビジネス・データ・セットを作成することが可能となる。
このことは、ユーザがビジネス・データのポイント・イン・タイム・コピーを取得することを望むが、アプリケーション又はアプリケーション・サーバを停止又はシャット・ダウンすることは望まない場合に問題となる。つまり、整合性のあるデータ・セットを取得することが望まれるため、ユーザが作業単位の途中でデータのフラッシュコピーを取得することを望まないことを意味するが、これらの作業単位の発生は非常に急速であり、すべての作業単位は「マシン速度」で開始及び停止されるので、アプリケーションが整合性のあるビジネス状態に達した正確なポイント・イン・タイムにおいてボタンを押下することあるいは実際にフラッシュコピーを開始することは不可能である。
したがって、本発明の一目的は、既知の技術を改良することである。
本発明の第1の態様によれば、ストレージ・デバイス上のデータ書き込みを実行する方法であって、前記ストレージ・デバイスに関するデバイス・ドライバに前記ストレージ・デバイスに対するデータ書き込みを実行するよう命令するステップと、前記デバイス・ドライバをトランザクション参加者としてトランザクション・コーディネータに登録するステップと、前記ストレージ・デバイスのフラッシュコピーを実行するステップと、前記ストレージ・デバイス上の前記データ書き込みを実行するステップと、前記デバイス・ドライバと前記トランザクション・コーディネータとの間の2フェーズ・コミットを実行するステップと、を含む方法が提供される。
本発明の第2の態様によれば、ストレージ・デバイス上のデータ書き込みを実行するためのシステムであって、前記ストレージ・デバイスに関するデバイス・ドライバに前記ストレージ・デバイスに対するデータ書き込みを実行するよう命令するように構成されたファイル・システムと、前記デバイス・ドライバをトランザクション参加者として登録するように構成されたトランザクション・コーディネータと、ストレージ・デバイスと、前記ストレージ・デバイスに関するデバイス・ドライバと、を備え、前記デバイス・ドライバは、前記ストレージ・デバイスのフラッシュコピーを実行し、前記ストレージ・デバイス上の前記データ書き込みを実行し、前記トランザクション・コーディネータとの間の2フェーズ・コミットを実行するように構成される、システムが提供される。
本発明の第3の態様によれば、ストレージ・デバイスに関するデバイス・ドライバを操作するための、コンピュータ可読媒体上のコンピュータ・プログラム製品であって、前記ストレージ・デバイスに対するデータ書き込みを実行する命令が受信された後に、前記デバイス・ドライバをトランザクション参加者としてトランザクション・コーディネータに登録する命令と、前記ストレージ・デバイスのフラッシュコピーを実行する命令と、前記ストレージ・デバイス上の前記データ書き込みを実行する命令と、前記トランザクション・コーディネータとの間の2フェーズ・コミットを実行する命令と、を含むコンピュータ・プログラム製品が提供される。
本発明の第4の態様によれば、ストレージ・デバイスのフラッシュコピーをスケジューリングする方法であって、ストレージ・デバイス上のフラッシュコピーを実行する命令を受信するステップと、前記ストレージ・デバイスに関する現在のトランザクションを確認するステップと、前記ストレージ・デバイスに関するデバイス・ドライバを前記現在のトランザクションのトランザクション参加者としてトランザクション・コーディネータに登録するステップと、前記トランザクション・コーディネータからトランザクション完了インジケーションを受信するステップと、前記ストレージ・デバイスに関する前記フラッシュコピーを実行するステップと、を含む方法が提供される。
本発明の第5の態様によれば、ストレージ・デバイスのフラッシュコピーをスケジューリングするためのシステムであって、トランザクション・コーディネータと、ストレージ・デバイスと、前記ストレージ・デバイスに関するデバイス・ドライバと、を備え、前記デバイス・ドライバは、ストレージ・デバイス上のフラッシュコピーを実行する命令を受信し、前記ストレージ・デバイスに関する現在のトランザクションを確認し、前記現在のトランザクションのトランザクション参加者として前記トランザクション・コーディネータに登録され、前記トランザクション・コーディネータからトランザクション完了インジケーションを受信し、前記ストレージ・デバイスに関する前記フラッシュコピーを開始するように構成される、システムが提供される。
本発明の第6の態様によれば、ストレージ・デバイスのフラッシュコピーをスケジューリングするための、コンピュータ可読媒体上のコンピュータ・プログラム製品であって、ストレージ・デバイス上のフラッシュコピーを実行する命令を受信する命令と、前記ストレージ・デバイスに関する現在のトランザクションを確認する命令と、前記ストレージ・デバイスに関するデバイス・ドライバを前記現在のトランザクションのトランザクション参加者としてトランザクション・コーディネータに登録する命令と、前記トランザクション・コーディネータからトランザクション完了インジケーションを受信する命令と、前記ストレージ・デバイスに関する前記フラッシュコピーを実行する命令と、を含むコンピュータ・プログラム製品が提供される。
本発明によれば、ストレージ・エリア・ネットワークのようなトランザクション・システムに接続されたストレージ・デバイス上でデータ完全性を維持することが可能となる方法を提供することができる。本発明は、(データ書き込みを含む)トランザクションが失敗した場合に過度の処理又は記憶負荷を必要とせずにデータがリストア可能となる、有効且つ効率的な方法を提供する。
一実施形態において、本発明は、マーク付けされたストレージ・ボリュームに関して、コントローラ・ボリューム用に使用されるマルチパス/デバイス・ドライバ・ソフトウェアが、例えばDB2(R)又はWebSphere(R)を使用してミドルウェアの調整下でトランザクション参加者となることを可能にするメカニズムである。本発明を用いると、ネットワーク・ストレージ・ディスクを、ロールバック対象のストレージ・システムに書き込まれているすべてのデータがトランザクション・ロールバックによってトランザクション開始時点の状態にリストアされるトランザクション・ファイル・サービスとすることが可能となる。デバイス・ドライバは、トランザクションに参加することができる。特定のスレッドに関するトランザクションの開始がデバイス・ドライバに知らされた場合、デバイス・ドライバは、当該スレッドで更新されるストレージ・ディスクに対するすべてのアクセスを認識することができる。デバイス・ドライバは、最初のデータ書き込みの実行に先立って、反転可能なフラッシュコピーをタイムスタンプを用いて作成するトランザクションをストレージ・コントローラに知らせることができる。
準備(prepare)の際は、必要に応じて任意のキャッシュをディスクにフラッシュする
ことができるが、必ずしも従来のモノリシック・フラッシュのようにすべてのデータを対象とする必要はなく、当該トランザクションの一環として更新されたブロックのみを対象とすることも可能である。システムは静止させる必要はない。このように、本発明を用いると、フラッシュコピー対象のvdisk(単数又は複数)に書き込まれているデータを含むトランザクションに関与したデータのみをフラッシュすることが可能となり、トランザクションに関与しない他のデータはキャッシュ内に残すことが可能となる。というのも、各トランザクションのキャッシュ・データは独立してフラッシュすることが可能であり、必ずしもすべてのデータをフラッシュする必要はなく、したがって他のトランザクションに関する新しい作業を受け入れる前にすべての作業単位が停止するのを待つ必要もないため、デバイス・ドライバ及びアプリケーション・サーバは、本発明の動作中に他のトランザクションに関する新しい作業を引き続き受け入れることができるからである。トランザクション・プロトコルは、ドライバとストレージ・コントローラとの間で送信されるデータ・トラフィック・メタデータの形でトンネリングされ得る。ファイル・システム内の適切な構成オプションを用いることにより、ユーザは、所望のvdisk及びトランザクション調整を設定することが可能となる。
フラッシュコピーは、フラッシュコピーが最後にトリガされた時点以降に変更されたデータだけが全体的にコピー(又はコピー・バック)される増分型とすることができる。これが最も効率的な形のフラッシュコピー操作である。また、(トランザクション中に)アプリケーション書き込みによって「分割(split)」されたグレインだけをコピー・バッ
クすればよく、バックグラウンド・コピー・プロセスによって宛先に転送されるデータ・セットの他の部分は決してコピー・バックされないため、バックグラウンド・コピー・プロセスも必要とされない。
本方法は更に、ロールバックを実行する命令を受信するステップと、その後フラッシュコピーに従ってデータ書き込みを反転させるステップと、を含むことが好ましい。ロールバックが送信されると、デバイス・ドライバは、フラッシュコピーの方向を切り替えることにより、デバイス・ドライバがトランザクション開始時点で有していた内容にデータ・セットをリストアすることができる。トランザクションをコミットする命令を受信した後は、デバイス・ドライバはフラッシュコピーを破棄することができる。トランザクションが完了すると、フラッシュコピーは破棄され得る。
有利なことに、ストレージ・デバイス上のデータ書き込みを実行するステップの直後に、ストレージ・デバイスのフラッシュコピーが開始される。これにより、ストレージ・デバイスから取得されたフラッシュコピーがソース・ボリュームに対する書き込みの実際のアクションの直前のポイント・イン・タイムにおいて確実に取得されることになる。したがって、将来発生し得る任意のロールバック中にフラッシュコピーを使用することにより、ストレージ・デバイス上に記憶されているデータがデータ書き込みの開始直前に元の状態に戻ることが保証される。
理想的には、デバイス・ドライバをトランザクション参加者としてトランザクション・コーディネータに登録するステップは、デバイス・ドライバによって実行される。好ましい実施形態では、デバイス・ドライバ自体がトランザクション・コーディネータに登録される。本実施形態の利点は、デバイス・ドライバが正しいトランザクションのトランザクション参加者として登録されることを保証するプロセスが簡略化されることである。
更に、本発明によれば、フラッシュコピーを整合データ・ポイントと自動的に整合させるとともに、アプリケーションの実行を停止させる必要なくホスト・キャッシュ・フラッシュを処理することが可能なシステムを提供することができる。本方法及びシステムの中核をなす発明は、ストレージvdiskに対するすべてのIOを停止させ、且つホストのキャッシュを手動でフラッシュし、その後フラッシュコピーを作成する必要がある現状に対してより優れた解決策を提供することを可能にする。本質的に、本発明のシステムは、フラッシュコピーが要求された正確なポイントでフラッシュコピーを実際に発行する代わりに、該当するvdisk(単数又は複数)がアプリケーションのトランザクション・アクティビティによって定義される整合点(point of consistency)の隣にあるポイントでフラッシュコピーを作成する。
フラッシュコピーのタイミングをとる本方法において、システムは、前述のようにフラッシュコピーの準備/取得を設定するが、vdiskに対するIOを処理するデバイス・ドライバは、ユーザがフラッシュコピーの取得コマンドを発行したときにIOが発生している現在のトランザクションを認識する。フラッシュコピーはすぐには実行されず、次のトランザクション境界で実行される。本発明によれば、デバイス・ドライバがvdiskに関する待ち状態のフラッシュコピー要求があることを知らされたときに、デバイス・ドライバは現在のトランザクションの参加者として登録される。トランザクション完了2フェーズ・コミット・プロトコルからデバイス・ドライバに「prepare」メッセージが送信
されると、すべてのローカル・キャッシュ(存在する場合)がストレージ・コントローラにフラッシュされることが保証される。例えばウェブ・アプリケーション・サーバ/データベース等、トランザクションの他のすべての参加者もこれと同じことを行い、それぞれが強化したいデータに関する「fflush」の等価物も発行する。トランザクション参加者に送信されるprepareの「順序」は定義されないが、デバイス・ドライバがそのトランザク
ションのprepareを受信すると、デバイス・ドライバのキャッシュが当該トランザクショ
ンのライト・スルーを開始し、したがってすべての書き込みはサーバに流入する。
したがって、ストレージ・ディスクに対するすべての書き込みがデバイス・ドライバを通過することになり、これらの書き込みはキャッシュされることはない。デバイス・ドライバがトランザクション完了インジケーションを受信すると、デバイス・ドライバは、トランザクションによってディスク上のデータが完成され且つそのディスクに対する後続のIOがまだ許可されていないポイント・イン・タイムにおいてフラッシュコピーが実際に開始可能となったことを知らせる通知を(ファイバ・チャネル・ケーブル上のトンネリング・プロトコルを介して)システムに送信する。この利点は、フラッシュコピー・タイムがビジネス・アプリケーションの整合点及びトランザクション境界に関連する実際のポイント・イン・タイムと整合されること、ならびにフロント・エンド・アプリケーションを停止させる必要なく有用なフラッシュコピーを取得する能力が提供されることである。
本発明は、以下のステップで実施することができる。ステップ1で、フラッシュコピーが新しいフラグ(「flashcopy to use transactionboundaries」(トランザクション境界を使用するフラッシュコピー))と共に作成される。ステップ2で、フラッシュコピーが準備され、ステップ3で、フラッシュコピーが「開始」され(これによってフラッシュコピーが実際に開始されるわけではない)、(直前のフラッシュコピー以降に)vdiskに関するIOを作成しているデバイス・ドライバ(単数又は複数)には、待ち状態のトランザクション・フラッシュコピーがあることが知らされる。ステップ4で、デバイス・ドライバは、現在のトランザクションが存在するかどうかを確認する。存在しない場合には、デバイス・ドライバは通常の動作を継続する。存在する場合には、デバイス・ドライバは、現在のトランザクションの参加者として登録され、IOを引き続きサービスするが、2フェーズ・コミットによるトランザクションの完了を待つ。デバイス・ドライバがprepareを受信した時点で該当するvdiskに関するIOを受信している場合、デバイス・
ドライバは、commitを受信したときに(あるいはrollbackを受信したときに、あるいはユーザ指定のタイム・アウトに達した場合に)すべての/任意のキャッシュをフラッシュし、後続の書き込みは、ストレージ・コントローラに対するライト・スルーに追加される。デバイス・ドライバは、そのポイント・イン・タイムにおいてフラッシュコピーを実際に取得することをストレージ・コントローラに指示する(ダウン・ファイバ・チャネル)。
ストレージ・コントローラは、フラッシュコピーをすぐに取得するのではなく、待ち状態のフラッシュコピーがあることをデバイス・ドライバに知らせ、その後、デバイス・ドライバは、現在のトランザクションの終了時に次のコミット・ポイントが得られた時点で(その後データ整合が得られるので)、そのポイント・イン・タイムを始点とするフラッシュコピーを取得することをストレージ・コントローラに知らせる応答をストレージ・コントローラに返す。ディスクに対する「イン・フライト(in-flight)」状態のトランザ
クションが複数存在する場合、デバイス・ドライバは、そのセット内の最後のトランザクションが完了したときに通知を送出することができる。以前のトランザクションに関する登録からその完了までの期間中に、まったく新しいトランザクションの下で実行される同じディスクに対するIOがデバイス・ドライバにおいて発生した場合は、(ユーザの裁量で)そのトランザクションに関するIOを、フラッシュコピーが開始された時点でイン・フライト状態であったトランザクションが完了するまで遅延させることができる。そうしない場合には、絶えず重複する一連のトランザクションによってフラッシュコピーの開始が無期限に遅延される可能性があり、また、ディスク上に存在するデータが十分に整合性のあるビジネス・データ・セットとなっていないポイントでフラッシュコピーを開始せざるを得なくなる可能性もある。
以下では単なる例示として、添付図面を参照しながら本発明の諸実施形態について説明する。
ストレージ・デバイス上のデータ書き込みを実行するためのシステムの概略 図である。 システム内のデータ・フローを詳しく示した図1のシステムの概略図である 。 システム内のデータ・フローを詳しく示した図1のシステムの概略図である 。 システム内のデータ・フローを詳しく示した図1のシステムの概略図である 。 ストレージ・デバイス上のデータ書き込みを実行する方法を示すフローチャ ートである。 好ましい実施形態の一改良例に係る様々なシステム・アクションを詳しく示 した図1のシステムの概略図である。 好ましい実施形態の一改良例に係る様々なシステム・アクションを詳しく示 した図1のシステムの概略図である。 好ましい実施形態の一改良例に従ってストレージ・デバイスのフラッシュコ ピーをスケジューリングする方法を示すフローチャートである。
図1は、データ書き込みを実行するためのシステムを概略的に示す。ファイル・システム10は、ストレージ・デバイス14に固有のドライバであるデバイス・ドライバ12と通信する。デバイス・ドライバ12は、トランザクション・コーディネータ16とも通信する。ファイル・システム10及びトランザクション・コーディネータ16は、ストレージ・デバイス14と共にストレージ・エリア・ネットワーク(SAN)を含む1つ又は複数のサーバ上に位置するソフトウェア・コンポーネントである。本発明の実際的な一実施形態では、多数のサーバ及びストレージ・デバイスが相互接続されて全体のネットワークが形成される。デバイス・ドライバ12は、単独のソフトウェア・コンポーネントであっても、ソフトウェア・コンポーネント及び物理レイヤから構成されてもよい。
ファイル・システム10及びトランザクション・コーディネータ16の各ソフトウェア・コンポーネントは、やはりストレージ・エリア・ネットワーク内で実行される外部アプリケーションとの間のアプリケーション・インターフェースを有する。例えば、ネットワークは、商品購入の注文を受け取るための組織の商用ウェブサイトを管理することができ、ストレージ・デバイス14は、ウェブサイトを介して顧客注文が行われたときにそれらの顧客注文を記憶する。本例では、注文を受け取り、その後ストレージ・デバイス14によって記憶される注文の作成のような必要なアクションを実行する、ウェブサイトを介したユーザ・インターフェースを有するアプリケーションがネットワーク内で実行される。このアプリケーションは、ファイル・システム10と相互作用してデータをストレージ・デバイス14に書き込むタスクを実行する。
トランザクション・コーディネータ16は、ネットワーク内で実行される任意のアクションが所望のレベルのトランザクション処理に適合することを保証するソフトウェア・コンポーネントである。トランザクション処理は、システム上で実行される任意の相互依存動作がすべて無事完了する又はすべて無事キャンセルされることを保証することにより、本例で論じるネットワークのようなコンピュータ・システムを既知の整合状態に維持するように設計される。ネットワーク内の各作業単位は、各作業単位の整合性を保証するトランザクション・コーディネータ16を介して処理される。トランザクション処理は、トランザクションが未完了のままとなり、ネットワークが未知の非整合状態となる恐れがあるハードウェア・エラー及びソフトウェア・エラーの発生を防止する。ネットワーク(あるいはネットワーク内の任意のコンポーネント又は接続)の障害がトランザクションの途中で発生した場合、トランザクション・コーディネータ16は、コミットされていない(即ち処理が完了していない)トランザクションのすべての動作がキャンセルされることを保証する。
図2は、データをストレージ・デバイス14に書き込むことを必要とするネットワーク内の何らかの作業単位がトリガされた後の図1のシステムを示す。これは、上述のとおりネットワーク内で実行されているアプリケーションによって何らかのアクションが実行された結果であり、例えば当該ネットワークが維持するエンタープライズ・システムによって管理されるウェブサイト上でエンド・ユーザが買い物を行った結果である。したがって、ユーザの注文は、その注文に関する情報が記憶されるストレージ・デバイス14に記憶する必要がある。
1番目のアクション(1)では、ファイル・システム10がストレージ・デバイス14に関するデバイス・ドライバ12にストレージ・デバイス14に対するデータ書き込みを実行するよう命令する。これに応答して、2番目のアクション(2)では、デバイス・ドライバ12がトランザクション参加者としてトランザクション・コーディネータ16に登録される。このアクション(2)は、デバイス・ドライバ12自体によって実行されるように図示されているが、実際には、デバイス・ドライバ12のトランザクション・コーディネータ16への登録は、ファイル・システム10のようなシステム内の異なるコンポーネントによって実行される可能性もある。
この登録の目的は、デバイス・ドライバ12を、登録に付随するすべてのアテンダント要件を備えたトランザクション処理システム内の参加者とすることである。この時点で、デバイス・ドライバ12は、デバイス・ドライバ12がデータ書き込みに関して実行するアクションをトランザクション・コーディネータ16に確認しなければならないシステムの一部となり、トランザクション処理の意味の範囲では、より大きいトランザクションの一部を形成する。
データ書き込み処理の次の段階は、図3に示されている。ここで、デバイス・ドライバ12は、トランザクション・コーディネータ16に登録された後にストレージ・デバイス14のフラッシュコピーを実行するように構成される。このアクションは、図中のアクション(3)として示され、このアクションの結果、ストレージ・デバイス14のボリュームが新しいストレージ位置18にレプリケートされる。新しいストレージ位置18は、異なるハードウェアであることも、全体のネットワーク内の単純に新しい論理位置であることもある。フラッシュコピー機能の性質は、ストレージ・デバイス14に記憶されたデータのコピーが特定のポイント・イン・タイムに関して作成されるようになることである。フラッシュコピー機能は、ストレージ・デバイス14によって記憶されているデータを利用可能な帯域幅に従って決定されるレートで新しいストレージ位置18にコピーするバックグラウンド・タスクを作成する。また、ストレージ・デバイス14内のデータに対する変更又は新しいストレージ位置18のデータ要求が行われたときは、ストレージ・デバイス14から新しいストレージ位置18にデータが自動的にコピーされる。
デバイス・ドライバ12は、ストレージ・デバイス14に対する書き込みが行われる前にストレージ・デバイス14の内容のフラッシュコピーを開始する。実際、デバイス・ドライバが中間アクションを経ずにデータ書き込みの実行に直接移行することは、新しいストレージ位置18に保持されるコピーが、新しいデータ書き込みを実行する前とまったく同じデータのコピーとなることを保証する上で有利である。事実上、デバイス・ドライバ12は、特定のデータ書き込みが一部を形成するトランザクションの障害に備えて、ストレージ・デバイス14によって記憶されるデータのリカバリ・コピーを準備する。
図4には、ストレージ・デバイス14上のデータ書き込みを実行するアクション(4)と、デバイス・ドライバ12とトランザクション・コーディネータ16との間の2フェーズ・コミットを実行するアクション(5)と、を含むデータ書き込み処理の最後の2つのアクションが示されている。2つのアクションのうちの1番目のアクション(4)は、デバイス・ドライバ12からストレージ・デバイス14に対する従来のデータ書き込みである。これにより、ストレージ・デバイス14内の上書きデータがまだバックグラウンド・タスクによって全体的にコピーされていない場合は、フラッシュコピー機能の制御下で、当該データを図3の新しいストレージ位置18にコピーする処理もトリガされる。
2つのアクションのうちの2番目のアクション、即ち、デバイス・ドライバ12とトランザクション・コーディネータ16との間の2フェーズ・コミットを実行するアクション(5)は、先に図2を参照して詳述したアクション(2)においてトランザクション・コーディネータ16にトランザクション参加者として登録されたデバイス・ドライバ12の要求である。このアクションは、2つのコンポーネント12及び16間の双方向通信として図示されている。2フェーズ・コミットは、ストレージ・デバイス14に対するデータ書き込みを含む現在の作業単位内の各作用コンポーネントに必要とされる。
2フェーズ・コミット・プロトコルは、分散ネットワーク内のすべてのコンポーネントがトランザクションの完了前にトランザクションをコミットすることに同意することを保証する分散アルゴリズムである。このプロトコルの結果は、すべてのコンポーネントがトランザクションをコミットするか、すべてのコンポーネントがトランザクションをアボートするかのいずれかである。上記のアルゴリズムには2つのフェーズがあり、まずコミット要求フェーズでトランザクション・コーディネータ16が参加コンポーネントを準備し、コミット・フェーズでトランザクション・コーディネータ16がトランザクションを完了させる。
デバイス・ドライバ12に対する2フェーズ・コミットの影響は、アクション(4)のデータ書き込みが無事完了したか否かに関わらず、デバイス・ドライバ12がトランザクション・コーディネータ16に対して同意メッセージ又はアボート・メッセージを発行する必要が生じることである。また、デバイス・ドライバ12は、2フェーズ・コミット・プロセスを完了させるために、トランザクション・コーディネータ16からのコミット・メッセージ又はロールバック・メッセージを待つ必要もある。デバイス・ドライバ12は、データ書き込みをロールバックするよう命令された場合は、ロールバックを正しく実行するために上書きされたオリジナル・データのフラッシュコピーにアクセスすることができる。
図2乃至図4に例示したプロセスの概要を図5のフローチャートに示す。ストレージ・デバイス14上のデータ書き込みを実行する本方法は、まずステップS1として、ストレージ・デバイス14に関するデバイス・ドライバ12にストレージ・デバイス14に対するデータ書き込みを実行するよう命令するステップを含む。このステップが完了すると、2番目のステップであるステップS2で、デバイス・ドライバ12がトランザクション参加者としてトランザクション・コーディネータ16に登録される。デバイス・ドライバ12が登録されると、次のステップのステップS3で、ストレージ・デバイス14のフラッシュコピーが実行される。フラッシュコピーが開始されると、次のステップS4で、ストレージ・デバイス14上のデータ書き込みが実行され、ステップS5で、デバイス・ドライバ12とトランザクション・コーディネータ16との間の2フェーズ・コミットが実行される。
2フェーズ・コミット・プロセスの2つの可能な結果は、相互に排他的な2つのステップS6及びS7によって表される。1つ目の可能性はステップS6であり、ステップS6は、ロールバックを実行する命令を受信するステップと、データ書き込みをフラッシュコピーに従って反転させるステップと、を含む。2つ目の可能性はステップS7であり、ステップS7は、トランザクションをコミットする命令を受信するステップと、フラッシュコピーを破棄するステップと、を含む。図2乃至図4を参照して上述した最初のステップS1〜S5の主な利点は、デバイス・ドライバが2フェーズ・コミットにおいて「no」の投票を行ったこと、又はトランザクション・コーディネータ16が(異なる参加者が「no」の投票を行った後に)ロールバックを命令したことによってロールバックが発生した場合に、フラッシュコピーを使用してストレージ・デバイス14上のデータを再構築することができることである。フラッシュコピーにより、ストレージ・デバイス14によって記憶されているデータのポイント・イン・タイム・コピーが第2のストレージ位置18にコピーされ、これを反転させることによってデータ書き込みを効果的に取り消すことができる。現在の作業単位を含むトランザクションをコミットすることが決定された場合は、フラッシュコピーを破棄することができる。
図6は、好ましい実施形態の一改良例に係る図1のシステムを示す。ここでは、ストレージ・デバイスのフラッシュコピーを実行する命令が(図中のアクション1として示すように)受信される。このフラッシュコピー命令は、アプリケーションによって自動的に生成されることも、システム管理者のようなユーザによって生成されることもある。ストレージ・デバイス14によって保持されるデータのポイント・イン・タイム・コピーが要求される。従来のシステムでは、この時点でストレージ・デバイス14によって定義されるソース・ボリュームのフラッシュコピーが取得されているはずである。一方、図6に示すシステムは、フラッシュコピー(バックアップ)命令が受信されたときは命令のソースに関わらず常に適合された様式で動作する。
命令(1)が受信された後、デバイス・ドライバは、ストレージ・デバイス14に関する現在のトランザクションを確認する。このアクションは、図中の(2)として示されている。これに応答して、3番目のアクション(3)では、(2)で識別された現在のトランザクションに関して、デバイス・ドライバ12がトランザクション参加者としてトランザクション・コーディネータ16に登録される。このアクション(3)は、デバイス・ドライバ12自体によって実行されるように図示されているが、実際には、デバイス・ドライバ12のトランザクション・コーディネータ16への登録は、ファイル・システム10のようなシステム内の異なるコンポーネントによって実行される可能性もある。この登録の目的は、デバイス・ドライバ12を、登録に付随するすべてのアテンダント要件を備えたトランザクション処理システム内の参加者とすることである。この時点で、デバイス・ドライバ12は、デバイス・ドライバ12がデータ書き込みに関して実行するアクションをトランザクション・コーディネータ16に確認しなければならないシステムの一部となり、トランザクション処理の意味の範囲では、より大きいトランザクションの一部を形成する。
フラッシュコピーのスケジューリングの次の段階は、図7に示されている。ここで、デバイス・ドライバ12は、トランザクション・コーディネータ16に登録された後にトランザクション・コーディネータ16からトランザクション完了インジケーションを受信する(4)ように構成される。事実上、デバイス・ドライバ12は、デバイス・ドライバ12が現在のトランザクションに関してトランザクション・コーディネータ16へのそれ自体の登録を済ませ、その後現在のトランザクションが完了し、したがってストレージ・デバイス14上のデータが整合状態となったことを示すインジケーション(4)をトランザクション・コーディネータ16から受信しない限り、命令されたフラッシュコピーの実行をすぐに開始することはない。
インジケーション(4)が受信された後、デバイス・ドライバ12によって実行される次のアクションは、ストレージ・デバイス14のフラッシュコピーの実行を開始するアクション(5)である。このアクションは、図7のアクション(5)として示され、このアクションの結果、ストレージ・デバイス14のボリュームが新しいストレージ位置18にレプリケートされる。新しいストレージ位置18は、異なるハードウェアであることも、全体のネットワーク内の単純に新しい論理位置であることもある。フラッシュコピー機能の性質は、ストレージ・デバイス14に記憶されたデータのコピーが特定のポイント・イン・タイムに関して作成されるようになることである。フラッシュコピー機能は、ストレージ・デバイス14によって記憶されているデータを利用可能な帯域幅に従って決定されるレートで新しいストレージ位置18にコピーするバックグラウンド・タスクを作成する。また、ストレージ・デバイス14内のデータに対する変更又は新しいストレージ位置18のデータ要求が行われたときは、ストレージ・デバイス14から新しいストレージ位置18にデータが自動的にコピーされる。
デバイス・ドライバ12は、ストレージ・デバイス14が整合状態にあるときにストレージ・デバイス14の内容のフラッシュコピーを開始する。実際、デバイス・ドライバ12が中間アクションを経ずにフラッシュコピーの開始に直接移行することは、新しいストレージ位置18に保持されるコピーが、フラッシュコピー命令受信当初のポイント・イン・タイムにできるだけ近いポイント・イン・タイムにおいてストレージ・デバイス14が保持するデータのレプリカとなることを保証する上で有利である。
この処理は、先に図6を参照して詳述したアクション(3)においてトランザクション・コーディネータ16にトランザクション参加者として登録されたデバイス・ドライバ12の要求である、デバイス・ドライバ12とトランザクション・コーディネータ16との間の2フェーズ・コミットの実行を含む。このアクションは、2つのコンポーネント12及び16間の双方向通信である。2フェーズ・コミットは、現在のトランザクション内の各作用コンポーネントに必要とされる。
2フェーズ・コミット・プロトコルは、分散ネットワーク内のすべてのコンポーネントがトランザクションの完了前にトランザクションをコミットすることに同意することを保証する分散アルゴリズムである。このプロトコルの結果は、すべてのコンポーネントがトランザクションをコミットするか、すべてのコンポーネントがトランザクションをアボートするかのいずれかである。上記のアルゴリズムには2つのフェーズがあり、まずコミット要求(準備)フェーズでトランザクション・コーディネータ16が参加コンポーネントを準備し、コミット・フェーズでトランザクション・コーディネータ16がトランザクションを完了させる。
デバイス・ドライバ12に対する2フェーズ・コミットの影響は、デバイス・ドライバ12がトランザクション・コーディネータ16に対して同意メッセージ又はアボート・メッセージを発行する必要が生じることである。また、デバイス・ドライバ12は、2フェーズ・コミット・プロセスを完了させるために、トランザクション・コーディネータ16からのコミット・メッセージ又はロールバック・メッセージを待つ必要もある。デバイス・ドライバ12は、ロールバックを行うよう命令された場合は、ロールバックを正しく実行するために上書きされたオリジナル・データのフラッシュコピーにアクセスすることができる。2フェーズ・コミットが使用される場合は、トランザクション・コーディネータからトランザクション完了インジケーションを受信する前に、prepareメッセージが受信
され、それによってすべてのローカル・キャッシュがフラッシュされる。
好ましい実施形態の一改良例に係るフラッシュコピーのスケジューリング方法の概要を図8に示す。1番目のステップS1は、ストレージ・デバイス14上のフラッシュコピーを実行する命令を受信するステップであり、次のステップS2では、デバイス・ドライバ12がストレージ・デバイス14に関する現在のトランザクションを確認する。この確認が行われると、次のステップS3で、(ストレージ・デバイス14に関する)デバイス・ドライバ12が現在のトランザクションのトランザクション参加者としてトランザクション・コーディネータ16に登録される。この結果、デバイス・ドライバは、ストレージ・デバイス14に関して実行される現在のトランザクションに追加される。現在のトランザクションが完了すると、次のステップS4で、トランザクション・コーディネータ16からのトランザクション完了インジケーションがデバイス・ドライバ12において受信される。本方法は、ストレージ・デバイス14に関するフラッシュコピーを実行するステップを含むステップS5によって完了する。この実行は、デバイス・ドライバ12によって開始され、ストレージ・コントローラによって実行される。

Claims (7)

  1. ストレージ・デバイスのフラッシュコピーをスケジューリングする方法であって、コンピュータが、
    ストレージ・デバイス上のフラッシュコピーを実行する命令を受信するステップと、
    前記ストレージ・デバイスに関する現在のトランザクションを確認するステップと、
    前記ストレージ・デバイスに関するデバイス・ドライバを前記現在のトランザクションのトランザクション参加者としてトランザクション・コーディネータに登録するステップであって、前記登録の結果、前記ストレージ・デバイスに関する前記デバイス・ドライバは、前記ストレージ・デバイスに関して実行される前記現在のトランザクションに追加される、前記登録するステップと、
    前記現在のトランザクションが完了することに応じて、前記トランザクション・コーディネータからトランザクション完了インジケーションを前記デバイス・ドライバにおいて受信するステップと、
    前記トランザクション完了インジケーションの受信に応じて、前記デバイス・ドライバによって前記ストレージ・デバイスに関する前記フラッシュコピーを開始し、そして前記フラッシュコピーを実行するステップと、
    を実行することを含む、前記方法。
  2. 前記コンピュータが、
    前記トランザクション・コーディネータからトランザクション完了インジケーションを受信する前に、prepareメッセージを受信し、すべてのローカル・キャッシュをフラッシュするステップ
    を更に実行することを含む、請求項1に記載の方法。
  3. 前記コンピュータが、
    2フェーズ・コミットを実行するステップ
    を更に実行することを含み、
    前記トランザクション・コーディネータからの前記トランザクション完了インジケーションは、前記2フェーズ・コミットの一部を形成する、
    請求項1又は2に記載の方法。
  4. ストレージ・デバイスのフラッシュコピーをスケジューリングするためのシステムであって、
    トランザクション・コーディネータと、
    ストレージ・デバイスと、
    前記ストレージ・デバイスに関するデバイス・ドライバと
    を備えており
    前記デバイス・ドライバは、ストレージ・デバイス上のフラッシュコピーを実行する命令を受信し、前記ストレージ・デバイスに関する現在のトランザクションを確認し、前記ストレージ・デバイスに関するデバイス・ドライバを前記現在のトランザクションのトランザクション参加者として前記トランザクション・コーディネータに登録し、前記登録の結果、前記ストレージ・デバイスに関する前記デバイス・ドライバは、前記ストレージ・デバイスに関して実行される前記現在のトランザクションに追加され、前記現在のトランザクションが完了することに応じて、前記トランザクション・コーディネータからトランザクション完了インジケーションを前記デバイス・ドライバにおいて受信し、前記トランザクション完了インジケーションの受信に応じて、前記デバイス・ドライバによって前記ストレージ・デバイスに関する前記フラッシュコピーを開始し、そして前記フラッシュコピーを実行するように構成される、
    前記システム。
  5. 前記デバイス・ドライバは、前記トランザクション・コーディネータからトランザクション完了インジケーションを受信する前に、prepareメッセージを受信し、すべてのローカル・キャッシュをフラッシュするように更に構成される、請求項4に記載のシステム。
  6. 前記デバイス・ドライバは、2フェーズ・コミットを実行するように構成され、前記トランザクション・コーディネータからの前記トランザクション完了インジケーションは、前記2フェーズ・コミットの一部を形成する、請求項4又は5に記載のシステム。
  7. ストレージ・デバイスのフラッシュコピーをスケジューリングするコンピュータ・プログラムであって、コンピュータに、請求項1〜3のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
JP2013164864A 2008-10-30 2013-08-08 ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム Active JP5689507B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP08167942.5 2008-10-30
EP08167942 2008-10-30
EP08167943 2008-10-30
EP08167943.3 2008-10-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011533698A Division JP5425922B2 (ja) 2008-10-30 2009-10-26 ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2013242921A JP2013242921A (ja) 2013-12-05
JP5689507B2 true JP5689507B2 (ja) 2015-03-25

Family

ID=41557567

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011533698A Active JP5425922B2 (ja) 2008-10-30 2009-10-26 ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
JP2013164864A Active JP5689507B2 (ja) 2008-10-30 2013-08-08 ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011533698A Active JP5425922B2 (ja) 2008-10-30 2009-10-26 ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム

Country Status (7)

Country Link
US (4) US8904127B2 (ja)
EP (1) EP2304569B1 (ja)
JP (2) JP5425922B2 (ja)
KR (1) KR20110086690A (ja)
CN (1) CN102203741B (ja)
AT (1) ATE525695T1 (ja)
WO (1) WO2010049391A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110086690A (ko) 2008-10-30 2011-07-29 인터내셔널 비지네스 머신즈 코포레이션 저장 장치에 데이터 쓰기를 실행하는 방법 및 시스템
US8255648B2 (en) * 2008-10-30 2012-08-28 International Business Machines Corporation Maintaining storage device backup consistency
KR20110094764A (ko) * 2010-02-17 2011-08-24 삼성전자주식회사 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
US9710865B1 (en) 2011-08-15 2017-07-18 Amazon Technologies, Inc. Coordinating distributed order execution
CN102830941B (zh) * 2012-06-15 2016-03-30 记忆科技(深圳)有限公司 固态硬盘的驱动方法及其存储系统
US9405704B2 (en) 2012-10-16 2016-08-02 International Business Machines Corporation Establishing a point-in-time copy relationship between source logical addresses and target logical addresses
US9116852B2 (en) 2012-10-16 2015-08-25 International Business Machines Corporation Processing a copy command directed to a first storage architecture for data that is stored in a second storage architecture
US9135121B2 (en) 2012-10-16 2015-09-15 International Business Machines Corporation Managing updates and copying data in a point-in-time copy relationship expressed as source logical addresses and target logical addresses
WO2014193407A1 (en) * 2013-05-31 2014-12-04 Empire Technology Development Llc Dynamic insulation
US9405628B2 (en) 2013-09-23 2016-08-02 International Business Machines Corporation Data migration using multi-storage volume swap
US9619331B2 (en) 2014-01-18 2017-04-11 International Business Machines Corporation Storage unit replacement using point-in-time snap copy
US9952805B2 (en) 2014-09-11 2018-04-24 Hitachi, Ltd. Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails
CN105653539A (zh) * 2014-11-13 2016-06-08 腾讯数码(深圳)有限公司 索引分布式存储的实现方法和装置
US10394483B2 (en) * 2016-11-28 2019-08-27 International Business Machines Corporation Target volume shadow copy
CN109697110B (zh) * 2017-10-20 2023-01-06 阿里巴巴集团控股有限公司 事务协调处理系统、方法、装置及电子设备
US10956318B2 (en) * 2018-06-19 2021-03-23 Macronix International Co., Ltd. Overlapping ranges of pages in memory systems
US11055013B2 (en) * 2019-01-25 2021-07-06 International Business Machines Corporation Recovering from data loss using copy services relationships between volumes
CN112087501B (zh) * 2020-08-28 2023-10-24 北京明略昭辉科技有限公司 保持数据一致性的传输方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397227B1 (en) * 1999-07-06 2002-05-28 Compaq Computer Corporation Database management system and method for updating specified tuple fields upon transaction rollback
US6769074B2 (en) * 2000-05-25 2004-07-27 Lumigent Technologies, Inc. System and method for transaction-selective rollback reconstruction of database objects
TW507148B (en) 2001-05-18 2002-10-21 Mitac Int Corp Verification method for replying work sheets in a collaboration transaction system
TWI234095B (en) 2001-08-08 2005-06-11 E Ten Information Sysems Co Lt Transmission-type electronic device and its system with real-time patching function for stock transaction data
US7043507B2 (en) * 2002-02-28 2006-05-09 Veritas Operating Corporation System and method for validated indirect data backup using operating system I/O Operations
US7124323B2 (en) * 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation
US6996586B2 (en) * 2003-06-18 2006-02-07 International Business Machines Corporation Method, system, and article for incremental virtual copy of a data block
JP4604032B2 (ja) 2003-08-01 2010-12-22 オラクル・インターナショナル・コーポレイション 非共有データベースシステムにおける1段階コミット
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
JP2008536202A (ja) * 2005-03-04 2008-09-04 イーエムシー コーポレイション チェックポイント・マーカおよび整合性マーカ
US7991971B2 (en) * 2005-09-09 2011-08-02 Microsoft Corporation State management for transactional backup consistency
US20070136328A1 (en) * 2005-11-25 2007-06-14 International Business Machines Corporation System and method for managing files to be attached to and detached from an electronic document
US7509308B2 (en) * 2006-01-09 2009-03-24 International Business Machines Corporation Method, apparatus and system for business performance monitoring and analysis using metric network
CN100520747C (zh) * 2006-02-28 2009-07-29 环达电脑(上海)有限公司 一种快速读写存储卡的方法
US20070255763A1 (en) * 2006-04-27 2007-11-01 International Business Machines Corporation Database replication method and system
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability
CN100538617C (zh) 2006-07-11 2009-09-09 任永坚 存储介质处理方法及系统
TWI326070B (en) 2006-12-07 2010-06-11 Inventec Corp Method for automatically adjusting the cow(copy on write) disk space of the snapshot device
US7975138B2 (en) * 2007-07-18 2011-07-05 Oracle International Corporation Systems and methods for mutually authenticated transaction coordination messages over insecure connections
US8255648B2 (en) * 2008-10-30 2012-08-28 International Business Machines Corporation Maintaining storage device backup consistency
KR20110086690A (ko) * 2008-10-30 2011-07-29 인터내셔널 비지네스 머신즈 코포레이션 저장 장치에 데이터 쓰기를 실행하는 방법 및 시스템
US8806270B2 (en) * 2011-11-14 2014-08-12 International Business Machines Corporation Method, apparatus and product for testing transactions

Also Published As

Publication number Publication date
US9940067B2 (en) 2018-04-10
US8904127B2 (en) 2014-12-02
EP2304569A2 (en) 2011-04-06
CN102203741B (zh) 2013-12-11
WO2010049391A2 (en) 2010-05-06
US20160357444A1 (en) 2016-12-08
US20150033069A1 (en) 2015-01-29
CN102203741A (zh) 2011-09-28
JP2013242921A (ja) 2013-12-05
EP2304569B1 (en) 2011-09-21
KR20110086690A (ko) 2011-07-29
US9448891B2 (en) 2016-09-20
WO2010049391A3 (en) 2010-07-15
JP5425922B2 (ja) 2014-02-26
JP2012507097A (ja) 2012-03-22
US20120278559A1 (en) 2012-11-01
US20110219192A1 (en) 2011-09-08
ATE525695T1 (de) 2011-10-15
US8904130B2 (en) 2014-12-02

Similar Documents

Publication Publication Date Title
JP5689507B2 (ja) ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
US10802921B2 (en) Systems and methods including committing a note to master and slave copies of a data volume based on sequential operation numbers
US8103937B1 (en) Cas command network replication
US9256605B1 (en) Reading and writing to an unexposed device
US9535801B1 (en) Xcopy in journal based replication
US9940205B2 (en) Virtual point in time access between snapshots
US8954645B2 (en) Storage writes in a mirrored virtual machine system
EP2795476B1 (en) Application consistent snapshots of a shared volume
US9875042B1 (en) Asynchronous replication
US10067694B1 (en) Replication ordering
US8392680B1 (en) Accessing a volume in a distributed environment
JP5124183B2 (ja) 非同期リモートコピーシステムの制御方法及び非同期リモートコピーシステム
US7694086B1 (en) Method and system for incremental backup of data volumes
US7577867B2 (en) Cross tagging to data for consistent recovery
US10152267B1 (en) Replication data pull
US10223007B1 (en) Predicting IO
US10592128B1 (en) Abstraction layer
US9367409B2 (en) Method and system for handling failures by tracking status of switchover or switchback
US10296517B1 (en) Taking a back-up software agnostic consistent backup during asynchronous replication
JP5665518B2 (ja) データベースシステム、その情報処理方法、およびそのプログラム
TWI468930B (zh) 於儲存裝置執行資料寫入
EP3293635A1 (en) Electronic device and method of controlling the same
US10185503B1 (en) Consistency group fault tolerance
US11080242B1 (en) Multi copy journal consolidation
JP2013037611A (ja) 記憶装置、記憶方法およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141002

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141002

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150105

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150128

R150 Certificate of patent or registration of utility model

Ref document number: 5689507

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150