JP6183876B2 - レプリケーション装置、レプリケーション方法及びプログラム - Google Patents

レプリケーション装置、レプリケーション方法及びプログラム Download PDF

Info

Publication number
JP6183876B2
JP6183876B2 JP2012081713A JP2012081713A JP6183876B2 JP 6183876 B2 JP6183876 B2 JP 6183876B2 JP 2012081713 A JP2012081713 A JP 2012081713A JP 2012081713 A JP2012081713 A JP 2012081713A JP 6183876 B2 JP6183876 B2 JP 6183876B2
Authority
JP
Japan
Prior art keywords
journal
replication
block
blocks
roll forward
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
JP2012081713A
Other languages
English (en)
Other versions
JP2013210919A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012081713A priority Critical patent/JP6183876B2/ja
Publication of JP2013210919A publication Critical patent/JP2013210919A/ja
Application granted granted Critical
Publication of JP6183876B2 publication Critical patent/JP6183876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、レプリケーション装置、レプリケーション方法及びプログラムに関し、例えばジャーナルの転送完了を待ち合わせることなくロールフォワードを実施できるレプリケーション技術に関する。
BCP(Business Continuity Plan:事業継続計画)対策の一つとして、メインサイトと同じデータを持つリモートサイトを予め準備しておき、災害等の発生時にリモートサイトを利用して事業を継続する手法が知られている。メインサイトに生じたデータの変更をリモートサイトに反映する方法の一つとして、レプリケーションという技術が多く利用されている(例として特許文献1参照)。
レプリケーションとは、メインサイトのマスタボリューム(以降、MVという)から、リモートサイトの複製ボリューム(以降、RVという)に対し、MVの更新データを転送し、リモートサイトがその更新データに基づいて複製ボリュームを更新する技術である。レプリケーション方式の一つに、MVにおけるデータ書き込み順序を保持したままRVにおいてもデータを書き込む、順序型レプリケーションがある。
順序型レプリケーションの特長は、RPO(Recovery Point Objective)が短くリモートサイトでの業務を早期に再開できることである。
また、順序型レプリケーションとともに用いられる方式の一つとして、メインサイトのストレージ装置が、MVの更新ログ(以降、ジャーナルという)のみをリモートサイトに転送し、リモートサイトのストレージ装置が、その更新ログに基づいてロールフォワード処理を行い、RVを更新する方式がある。
この方式は、転送対象をジャーナルに絞ることで転送量を減らすことが出来るという利点がある。
特許第4731975号公報
一方、上述の方式では、ジャーナルの転送がストレージ装置間で行われる。そのため、メインサイトおよびリモートサイトにおいてデータベース(以降、DBという)更新処理を担当するホスト装置においては、ジャーナルの転送の進行中、ジャーナルの転送がどこまで完了したかを把握することができない。そのため、リモートサイト側において、受信したジャーナルの記憶領域への書き込みと、ロールフォワードのためのジャーナルの読み込みとが衝突すると、ロールフォワード実行側において書き込み途中のジャーナルを読み込んでしまい、その結果、DBの不正反映が発生してしまうことがあった。
よって、ロールフォワードを実施する際は、ジャーナルの転送の完了を待ち合わせる必要があり、このことがRTO(Recovery Time Objective)の増大を招いていた。
本発明は、このような問題点を解決するためになされたものであり、ジャーナルの転送完了を待ち合わせることなく、高速かつ整合性を保った状態でロールフォワードを実施できるレプリケーション装置、レプリケーション方法及びプログラムを提供することを目的とする。
本発明に係るレプリケーション装置は、複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信手段と、前記ジャーナルブロックを、受信した順に一定数格納する格納領域を含むジャーナルボリュームと、前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワード手段とを有し、前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、前記ロールフォワード手段は、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止するものである。
本発明に係るレプリケーション方法は、複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信ステップと、前記ジャーナルブロックを、受信した順にジャーナルボリュームの格納領域に一定数格納する格納ステップと、前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワードステップとを有し、前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、前記ロールフォワードステップにおいては、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止するものである。
本発明に係るプログラムは、コンピュータに、複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信ステップと、前記ジャーナルブロックを、受信した順にジャーナルボリュームの格納領域に一定数格納する格納ステップと、前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワードステップとを実行させるためのプログラムであって、前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、前記ロールフォワードステップにおいては、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止するものである。
本発明により、ジャーナルの転送完了を待ち合わせることなく、高速かつ整合性を保った状態でロールフォワードを実施できるレプリケーション装置、レプリケーション方法及びプログラムを提供することができる。
本発明の実施の形態の構成を示す図である。 本発明の実施の形態の構成を示す図である。 本発明の実施の形態の構成を示す図である。 本発明の実施の形態の構成を示す図である。 本発明の実施の形態の構成を示す図である。 本発明の実施の形態の構成を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態の処理を示す図である。 本発明の実施の形態の処理を示す図である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
まず、図1を用いて、本発明の実施の形態にかかるレプリケーション装置110の構成について説明する。
レプリケーション装置110は、図示しないメインサイトにおけるMVの更新を反映する、リモートサイトを構成する装置である。レプリケーション装置110は、典型的にはサーバコンピュータ等により構成され、中央演算処理装置(CPU)、揮発性メモリ、不揮発性メモリ、通信装置及び入出力装置等のハードウェアを含む。CPUは、揮発性メモリ又は不揮発性メモリに格納された制御プログラム(ソフトウェア)に基づいて後述する各種処理を実行する。レプリケーション装置110は、物理的に単一の装置である必要はなく、複数の装置により後述の機能が分散的に実現される構成であってもよい。
また、レプリケーション装置110は、典型的にはホスト及びストレージ装置を含む。ストレージ装置は、主にジャーナルの管理を行う装置であり、レプリケーション情報受信手段118及びジャーナルボリューム120を含む。ホストは、主にRVの更新処理を実行する装置であり、ロールフォワード手段111を含む。
レプリケーション情報受信手段118は、複製元ボリュームすなわちMVを有するメインサイトと通信可能に接続されており、MVの更新ログであるジャーナルを逐次受信する。ここで、ジャーナルは、複数の更新ログ(ジャーナルレコード)を含むジャーナルブロックの形で送受信されるものとする。
ジャーナルボリューム120は、レプリケーション情報受信手段118が受信したジャーナルブロックを格納するための複数の格納領域を有する。ジャーナルブロックは、受信されたものから順次これらの格納領域に格納される。なお、ジャーナルブロックの受信時点において、既に全ての格納領域が利用済みである場合は、最も古い、すなわち最も早い時刻に受信したジャーナルブロックが格納されている格納領域に、受信したジャーナルブロックが格納されていくものとする。これを、以降、循環書き込みという。
ここで、ある格納領域においてこの循環書込みがなされた累積回数、換言すれば世代を管理するために、本実施の形態では、ジャーナルブロックに、この循環書込みの累積回数を示す循環回数を記録するためのセクターを設ける。
ロールフォワード手段111は、ジャーナルボリューム120からジャーナルブロックを順次読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームすなわちRVを更新する処理、すなわちロールフォワードを実行する。
ここで、ロールフォワード手段111は、ジャーナルボリューム120からジャーナルブロックを順次読出した際、ジャーナルブロックに記録された循環回数に基づいて、ジャーナルボリューム120における最新のジャーナルブロックがどのジャーナルブロックであるかを判別する。ロールフォワード手段111は、最新のジャーナルブロックが判別できたならば、そのジャーナルブロックをRVに反映した後、ロールフォワードを停止する。
なお、上記ホスト、ストレージ装置及び各種手段等は、いずれも必ずしも物理的に独立した装置である必要はなく、レプリケーション装置110が有する上述のハードウェアとソフトウェアとの協働により論理的に実現されるものであって良い。
図2乃至図6を用いて、レプリケーション装置110のより具体的な実装例について説明する。
リモートサイトとしてのレプリケーション装置110は、メインサイト100と通信手段117及び105を介して接続される。
メインサイト100は、複製元ボリュームとしてのDB(MV)109と、ホスト及びストレージ装置を含む。ホストは、DB(MV)109に対する更新処理を行うDB更新手段101を含む。ストレージ装置は、DB(MV)109の更新ログすなわちジャーナルを格納するジャーナルボリューム(MV)108と、ジャーナルをリモートサイトとしてのレプリケーション装置110に送信するレプリケーション情報送信手段104とを含む。
リモートサイトとしてのレプリケーション装置110は、複製ボリュームとしてのDB(RV)121と、ホスト及びストレージ装置を含む。ホストは、メインサイト100から受信するジャーナルに基づいてDB(RV)121のロールフォワード処理を行うロールフォワード手段111を含む。ストレージ装置は、メインサイト100からジャーナルを受信するレプリケーション情報受信手段119と、ジャーナルを格納するジャーナルボリューム(RV)120と、ジャーナルボリューム(RV)120に対するアクセスの排他制御を行う排他手段114とを含む。
以下に、これらの構成要素及び本実施の形態で用いられるデータ構造について詳細に説明する。
<ジャーナルブロック>
ジャーナルブロックは、DB更新手段101が、DB(MV)109の更新内容を記したログ、すなわちジャーナルレコードを、ジャーナルボリューム(MV)108へ書き込むときに用いるデータ構造である。
まず、図3を用いて、ジャーナルブロックの出力機序について説明する。
図3に、ジャーナルボリューム(MV)108及びジャーナルボリューム(RV)120を模式化した、ジャーナルボリューム201を示す。ジャーナルブロック203乃至207は、ジャーナルボリューム201に事前に確保されたアドレス領域202(以降、ジャーナル領域202という)に出力される。この構造は、ジャーナルボリューム(MV)108及びジャーナルボリューム(RV)120に共通である。
ジャーナルブロックが大量に出力され、格納を要求される事態に対処するため、ジャーナル領域202は循環使用される。すなわち、ジャーナル領域202に、ジャーナルブロック203、204・・207が順に格納されてゆき、次のジャーナルブロックを格納するに足る領域が無くなった場合、次のジャーナルブロックは、これらのジャーナルブロックのうち最も古い、すなわち最も早く格納されたジャーナルブロック203に上書きされる形で格納される。
本実施の形態では、ジャーナルブロックは固定長とする。すなわち、ジャーナルブロック203乃至207は全て同じサイズとする。これにより、ジャーナル領域202を循環使用した場合でも、ジャーナルブロックの格納位置は一意に定まる。すなわち、循環する度にジャーナル領域202におけるジャーナルブロックの格納位置が変動することが無い。これにより、メインサイト100及びレプリケーション装置110は、ジャーナルブロックを書き込み及び読み出すべきアドレスを容易かつ高速に特定することができる。
つぎに、図4を用いて、ジャーナルブロックの内部構造について説明する。
ジャーナルブロックは、ジャーナルブロックの出力がジャーナル領域を何回循環したか(循環回数)を示す1個の数値、すなわち循環通番と、DB(MV)109の更新内容を記録した1以上のジャーナルレコードとを含む。図4の例では、ジャーナルブロックは、先頭の循環通番301に続き、ジャーナルレコード302乃至305を含んでいる。ここで、ジャーナルレコード302乃至305は可変長であって良い。但し、ジャーナルレコードは1個のジャーナルブロック内に収めること、すなわち複数のジャーナルブロックにまたがって出力しないこととする。よって、ジャーナルブロックの終端には未使用領域306が追加される場合がある。
循環通番301は、ジャーナルブロックが所定数出力されてジャーナル領域の終端(以降、領域終端という)に達し、新たなジャーナルブロックの出力アドレスがジャーナル領域の先頭に戻るときに加算される。循環通番301は、ジャーナル領域がこのように循環使用される場合において、最新の、すなわち最後に出力されたジャーナルブロック(以降、ジャーナル終端という)を特定するために用いられる。
ジャーナルレコードには、DBの更新内容を含むジャーナル(以降、更新ジャーナルレコードという)のほかに、トランザクションの開始を示すジャーナルレコード(以降、開始ジャーナルレコードという)、トランザクションの終了を示すジャーナルレコード(以降、終了ジャーナルレコードという)がある。開始ジャーナルレコード、0個以上の更新ジャーナルレコード、及び終了ジャーナルレコードの組によって、1つのトランザクションが表される。開始ジャーナルレコードに対応する終了ジャーナルレコードが無いことは、その開始ジャーナルレコードにかかるトランザクションは完了していないことを意味する。よって、このトランザクションにかかるジャーナルレコードは、ロールフォワード時にDBへ反映してはならないものである。なお、開始ジャーナルレコードと終了ジャーナルレコードとは、異なるジャーナルブロックに含まれても良い。
ジャーナルブロックにこのような構造を持たせることにより、リモートサイト110側においては容易にジャーナル終端を特定でき、ロールフォワードを適切に制御することができる。すなわち、本実施の形態によれば、ジャーナルブロックのみの転送で、リモートサイト110側のDB(RV)121を容易に最新の状態に保つことが可能である。
<ストレージコントローラ103及び113>
ストレージコントローラ103及び113は、メインサイト100又はリモートサイト110のストレージ装置102又は112が有する手段である。ストレージコントローラ103又は113は、DB更新手段101による書き込み要求又はロールフォワード手段111による読み込み要求を受け付け、ストレージ装置103又は113が有するジャーナルボリューム(MV)108又はジャーナルボリューム(RV)120へのアクセスを制御する機能を有する。
メインサイト100のストレージコントローラ103は、レプリケーション状態の管理機能及びジャーナルの送信機能を有するレプリケーション情報送信手段104を含む。リモートサイト110のストレージコントローラ113は、レプリケーション状態及びレプリケーション速度の管理機能、並びにジャーナルの受信機能を有するレプリケーション情報受信手段118を含む。また、リモートサイト110のストレージコントローラ113は、さらにジャーナルボリューム(RV)120に対するアクセスの排他制御を行う排他手段114を含む。
図6を用いて、ストレージコントローラ103及び113が、DB更新手段101による書き込み要求又はロールフォワード手段111による読み込み要求に基づいて行う、ジャーナルボリューム(MV)108又はジャーナルボリューム(RV)120へのアクセス制御の機序を説明する。
DB更新手段101による書き込み要求は、書きこみ先ボリューム501、書きこみ始点アドレス502、書きこみ終点アドレス503、および、書きこみイメージ504にて構成するものとする。書き込みイメージ504は、ジャーナルブロックを1個以上含む。また、ロールフォワード手段111による読み込み要求は、読み込み先ボリューム508、読み込み始点アドレス509、読み込み終点アドレス510にて構成するものとする。なお、ここでいうアドレスとは、ボリューム上の位置を一意に特定する情報である。例えば、目的のジャーナルブロックが、先頭のジャーナルブロックから見て何個先のジャーナルブロックであるかを示す数を、この格納領域における相対的なアドレスとして用いることができる。
<レプリケーション情報送信手段104>
レプリケーション情報送信手段104は、メインサイト100のストレージコントローラ103が有する手段である。レプリケーション情報送信手段104は、ストレージコントローラ103がホストから受け取ったジャーナルボリューム(MV)108へのジャーナルブロックの書き込み要求を、リモートサイト110へ転送する機能を有する。
<レプリケーション情報受信手段118>
レプリケーション情報受信手段118は、リモートサイト110のストレージコントローラ113が有する手段である。レプリケーション情報受信手段118は、メインサイト100のレプリケーション情報送信手段104から転送されてきた書き込み要求を受け取り、ストレージコントローラ113の機能を用いて、ジャーナルボリューム(RV)120へジャーナルブロックを書き込む機能を有する。
レプリケーション情報受信手段118は、ジャーナルボリューム(RV)120へ書き込んでいる途中のジャーナルブロックを、後述するロールフォワード手段111が読み込まないよう、後述する排他手段114を用いて書き込みの排他を取得する。排他の単位は、ホスト側による書き込み単位であるジャーナルブロックとする。
また、レプリケーション情報受信手段118と、上述のレプリケーション情報送信手段104とは、順序を保障されないレプリケーションによるDBの不正更新を防ぐために、現在のレプリケーション状態を、レプリケーション状態情報119として保持する。レプリケーション状態情報119は、順序型レプリケーションが実施されている状態(以降、SYNC状態という)と、レプリケーションは動作しているがメインホストでの書き込み順序がわからず順序型レプリケーションが実施できない状態(以降、REPLICATE状態という)の2つの状態を判別可能なデータを含むものとする。
レプリケーション情報受信手段118は、このレプリケーション状態情報119を参照し、これがREPLICATE状態である場合、書き込み順序が不明なジャーナルブロックをロールフォワードすることによってDBの不正更新が発生しないよう、後述する排他手段114によってジャーナルボリューム(RV)120のジャーナル領域全体を排他し、ロールフォワードの進行を抑止する。
さらに、レプリケーション情報受信手段118は、メインサイト100とのレプリケーション速度、すなわちジャーナルの転送速度を示す情報を、レプリケーション速度情報126として保持する。レプリケーション情報受信手段118は、レプリケーション速度情報126を、排他手段116に要求する排他制御の範囲を決定する情報として利用する。レプリケーション情報受信手段118とロールフォワード手段111とは、レプリケーション速度情報126に応じ、出来るだけ多くのジャーナルブロックを一度に排他する。これにより、排他手段114の使用頻度を削減することが可能となる。具体的には、現在のレプリケーション速度が過去のレプリケーション速度より向上している場合、多くのジャーナルブロックを一度に読み書きすることが出来るため、一度に排他するジャーナルブロックの数を増加させる。一方、現在のレプリケーション速度が過去のレプリケーション速度より低下している場合、ロールフォワード手段111が排他待ちによってロールフォワードを進行できなくなることを防ぐために、一度に排他するジャーナルブロックの数を減らす。
<排他手段114>
排他手段114は、リモートサイト110のストレージコントローラ114が有する手段である。排他手段114は、レプリケーション情報受信手段118による、ジャーナルボリューム(RV)120へのジャーナルブロックの書き込みと、ロールフォワード手段111による、ジャーナルボリューム(RV)120からのジャーナルブロックの読み込みとが衝突しないよう、ジャーナルブロック単位で排他制御を行う機能を有する。
排他手段114は、レプリケーション情報受信手段118から排他要求を受け取る際、同時に排他範囲を示す情報として書き込みボリューム、書き込み始点アドレス及び書き込み終点アドレスを受け取り、これらの情報を排他情報116に登録する。
また、排他手段114は、ロールフォワード手段111からの排他要求を受け取る際、同時に排他範囲を示す情報として読み込みボリューム、読み込み始点アドレス及び読み込み終点アドレスを受け取り、これらの情報が排他情報116に登録されている書きこみボリューム、書き込み始点アドレス及び書き込み終点アドレスと重なる部分があるかどうか、つまり競合の有無を確認し、競合が無ければ読み込みの許可を、競合があれば読み込みの拒否をロールフォワード手段111に通知する。
<通信手段105及び117>
通信手段105及び117は、メインサイト100又はリモートサイト110のストレージ装置102又は112が有する手段である。通信手段105及び117は、ストレージ装置102及び112を接続し、レプリケーションに関する各種データを送受信する。
<DB更新手段101>
メインサイト100のホストが、DB(MV)109を更新するために用いる手段である。DB更新手段101は、DB更新する際、その更新内容を記したジャーナルレコードをジャーナルブロックに格納して、ジャーナルボリューム(MV)108へ出力する。DB更新手段101は、上述したジャーナルブロックのデータ構造に対応して、ジャーナルブロックをジャーナル領域内で循環出力する機能を有する。
図5を用いて、DB更新手段101がジャーナルブロックを循環出力する動作について説明する。
図5は、例としてジャーナルブロック5個分のアドレス領域を有するジャーナル領域を示している。
時刻tにおいて、ジャーナルブロック402乃至406の循環通番が、順に「2」「2」「2」「1」「1」であるとする。この場合、ジャーナルブロック404が、時刻tの時点で最後に出力されたジャーナルブロックであり、ジャーナル終端はジャーナルブロック404と405の間となる。
DB更新手段は、時刻tにおいて、ジャーナル終端の次の位置、つまりジャーナルブロック405の位置に最新のジャーナルブロックを出力する。
時刻(t+1)は、時刻tの後、DB更新手段101がジャーナルブロック404及び405に新たなジャーナルブロックを出力し、さらに新たなジャーナルブロックを出力しようとしている状態を示している。しかし、このときジャーナル終端は領域終端に達しているため、DB更新手段101は、上述した循環使用のルールに従って、新たなジャーナルブロックの循環通番を「2」から「3」に加算した上、新たなジャーナルブロックの出力位置をジャーナル領域の先頭にあるジャーナルブロック402と決定する。
時刻(t+2)は、ジャーナル領域の先頭に位置するジャーナルブロック402に、新たなジャーナルブロックを書き込んだ状態である。
ここで、DB更新手段101は、ジャーナルブロックの最後の出力位置を、ジャーナルブロック最終書込位置122として保持するものとする。
<ロールフォワード手段111>
ロールフォワード手段111は、リモートサイト110のホストが有する手段である。ロールフォワード手段111は、ジャーナルボリューム(RV)120からジャーナルブロックを読み出し、DB(RV)121へ反映することにより、DB(RV)121をDB(MV)109とレプリケートされた最新の状態に保つ。ロールフォワード手段111は、上述したジャーナルブロックのデータ構造に対応して、ジャーナルブロックをジャーナル領域内から循環入力する機能を有する。
図5を用いて、ロールフォワード手段111がジャーナルブロックを循環入力する動作について説明する。
時刻tにおいて、ロールフォワード手段111は、ジャーナル終端であるジャーナルブロック404までをDB(RV)121へ反映する。一方、その次のジャーナルブロック405の循環通番「1」は、ジャーナルブロック404の持つ循環通番「2」より小さい。このとき、ロールフォワード手段111は、ジャーナル終端を越えたと判断し、ジャーナルブロックのDB(RV)121への反映を停止する。
時刻が(t+1)へ進み、ジャーナルブロック405及び406に新たなジャーナルブロックが書き込まれ、ジャーナル終端が移動すると、ロールフォワード手段111は、ジャーナルブロックの読み込みと、DB(RV)121への反映とを再開する。
時刻(t+2)において、ロールフォワード手段111は、ジャーナルブロックを読み進めた結果、領域終端に達すると、DB更新手段101と同様に、循環通番を「3」に加算した上、ジャーナル領域先頭のジャーナルブロック402からジャーナルブロックの読み込みを開始する。ロールフォワード手段111は、これ以降のジャーナル終端の検出は、この加算された循環通番に基づいて実施する。
ここで、ロールフォワード手段111は、ロールフォワードの進行を管理するための情報として、ジャーナルブロック最終読込位置123、未反映ジャーナルレコード位置情報124、ロールフォワード対象循環通番125を保持するものとする。
ジャーナルブロック最終読込位置123は、ロールフォワード手段111の前回の動作時に読み込んだジャーナルブロックの最終位置を示す情報である。未反映ジャーナルレコード位置情報124は、最も古い未反映ジャーナルレコードのあるジャーナルブロックの位置を示す情報である。ロールフォワード対象循環通番125は、最も古い未反映ジャーナルレコードを含むジャーナルブロックが持つ循環通番を示す情報である。
ジャーナル領域401においては、ロールフォワード手段111による読み込みほかに、レプリケーション情報受信手段118による書き込みが行われている。そのため、双方の読み書きが衝突する可能性がある。この読み書きの衝突を防ぐため、ロールフォワード手段111は、読み込み実施前に排他手段114を用い、読み込み対象のジャーナルブロックの排他制御を行う。ここで、読み込み対象のジャーナルブロックが、レプリケーション情報受信手段118により排他されている場合は、レプリケーション情報受信手段118がその排他を開放するまで、ロールフォワード手段111はジャーナルブロックの読み込みを待ち合わせる。
なお、ロールフォワード手段111が未だ読み込んでいないジャーナルブロックを、レプリケーション情報受信手段118が新たなジャーナルブロックによって上書きし、ロールフォワード手段111がロールフォワードを正常に実施できない状態とならないために、本実施の形態では、ロールフォワード手段111は、レプリケーション情報受信手段118より十分に速く動作し、ロールフォワード手段111がレプリケーション情報受信手段118を常に「後追い」する状態であることを前提とする。この前提は、サイト間のやりとりが必要なレプリケーション手段118と、リモートサイト110内で全ての処理が完結するロールフォワード手段111の処理内容を比較すると、十分現実的である。
<DB(MV)109>
メインサイト100で使用されるDBのボリュームである。本実施の形態では、DB(MV)109自体はレプリケーションの対象でないため、図示しない任意のストレージ装置に配置することができる。
<ジャーナルボリューム(MV)108>
DB(MV)109のジャーナルが記録されるボリュームであり、レプリケーション機能を持つストレージ装置102内に配置する必要がある。<ジャーナルブロック>の項において述べたとおり、ボリューム内にはジャーナルを出力する領域が予め確保されている。ジャーナルボリューム(MV)108に対する書き込みは、一連のレプリケーション処理によって、ジャーナルボリューム(RV)120へ転送、反映される。
<DB(RV)121>
リモートサイト110で使用されるDBのボリュームである。例えば災害等の発生時に、リモートサイト110を利用して業務を行う場合は、DB(MV)109に代わってDB(RV)121が用いられる。DB(RV)121は、DB(MV)109同様、レプリケーションの対象でないため、図示しない任意のストレージ装置に配置することができる。DB(RV)121は、ロールフォワード手段111により、ジャーナルボリューム(RV)120に格納されるジャーナルを用いて最新の状態に保たれる。
<ジャーナルボリューム(RV)120>
DB(RV)121を最新の状態に保つためのジャーナルが保存されているボリュームである。ジャーナルボリューム(RV)120は、ジャーナルボリューム(MV)108を含むストレージ装置102との間でレプリケーション処理が実施できる、ストレージ装置112内に配置する必要がある。
つづいて、図2、及び図7乃至図12を用いて、本実施の形態の動作について説明する。
まず、図2及び図7を用いて、DB更新手段101がDB(MV)109を更新する際、ジャーナルボリューム(MV)108に対するジャーナルブロックを出力する動作について説明する。
DB更新手段101は、はじめに、ジャーナルブロックの出力位置を決定するために、前回のジャーナルブロックの最終書き込み位置を取得する(ステップ601)。DB更新手段101が起動直後の場合は、<ジャーナルブロック>の項において述べたジャーナル終端を特定する方法によってこれを決定する。一方、DB更新手段101が既に動作しており、ジャーナルブロックを出力している場合には、ジャーナルブロック最終書き込み位置122よりこれを取得する。
ステップ601にて取得した前回のジャーナルブロックの出力位置が領域終端に達している場合、DB更新手段101は、出力位置を領域の先頭へ戻した(ステップ602)上、循環通番を加算する(ステップ603)。一方、ジャーナルブロックの出力位置が領域終端に達していない場合は、DB更新手段101は、出力位置を前回のジャーナルブロックの最終書き込み位置の次のジャーナルブロックとする(ステップ605)。
DB更新手段101は、ジャーナルブロックの出力位置を決定したならば、ジャーナルボリューム(MV)109の出力位置へジャーナルブロックの書きこみを行い(ステップ606)、その出力位置をジャーナルブロック最終書込位置122へ保存し(ステップ607)、次回動作時のステップ601にて取得できるようにする。
ここで、ステップ606におけるジャーナルボリューム(MV)109への書きこみについて、メインホストのストレージ装置102の動作について、図2と図8を用いて詳細に説明する。
ストレージ装置102が有するストレージコントローラ103は、DB更新手段101からジャーナルブロックの書き込み要求(図6参照)を受領し(ステップ701)、その受領した書き込み要求をそのままレプリケーション情報送信手段104を用いてリモートホストへ転送する(ステップ702)。その後、ジャーナルボリューム(MV)108へジャーナルブロックの書きこみを行い(ステップ703)、DB更新手段101へ書き込み要求に対する応答を返却する(ステップ704)。
以上の動作により、DB更新手段101が出力したジャーナルが、リモートサイト110へ転送される。
つづいて、図2及び図9を用いて、レプリケーション情報受信手段118が、メインサイト100から転送されたジャーナルブロックをジャーナルボリューム(RV)120に書き込む動作について説明する。
レプリケーション情報受信手段118は、はじめに、メインサイト100から転送されてきた書き込み要求を受信する(ステップ801)と、レプリケーション状態情報119として保持されている現在のレプリケーション状態を確認する(ステップ802)。<レプリケーション情報受信手段>の項において述べたとおり、レプリケーション状態には、順序型レプリケーションが動作しているSYNC状態と、順序型レプリケーションが動作していないREPLICATE状態とがあり、REPLICATE状態下にて書き込まれたジャーナルブロックでロールフォワードを実施すると、DB(RV)121が不正な状態となってしまう。これを防ぐため、レプリケーション情報受信手段118は、REPLICATE状態の時には、排他手段114を利用してジャーナル領域の全体(ジャーナル領域の先頭に位置するジャーナルブロックのアドレスから、ジャーナル領域の終端に位置するジャーナルブロックのアドレスまで)を排他した(ステップ811)後、ストレージコントローラ113の機能を用いて、ジャーナルボリューム(RV)120へジャーナルブロックの書き込みを行う(ステップ812)。これにより、ロールフォワード手段111によるジャーナルボリューム(RV)120の読み込みが抑止され、DB(RV)121へのジャーナル不正反映を防ぐことが出来る。
一方、レプリケーション状態がSYNC状態である場合、レプリケーション情報受信手段118は、レプリケーション速度情報126を取得し(ステップ803)、現在のレプリケーション速度と、図示しないメモリ等に保存しておいた前回のレプリケーション速度との比較を実施する(ステップ804)。この比較の結果、現在のレプリケーション速度が以前に取得したレプリケーション速度より上昇していた場合、レプリケーション情報受信手段118は、一度に排他するジャーナルの個数を増やす(ステップ805)。一方、現在のレプリケーション速度が以前のレプリケーション速度より低下していた場合、レプリケーション情報受信手段118は、一度に排他するジャーナルブロックの個数を減らす(ステップ806)。<ジャーナルブロック>の項において述べたとおり、ジャーナルブロックの位置は一意、すなわち固定されているので、排他するジャーナルブロック数の増減は、排他手段114へ要求する書き込み終点アドレスを増減することで実現できる。ステップ803にて取得したレプリケーション速度は、次回のレプリケーション速度比較のために図示しないメモリ等に保存しておく(ステップ807)。
レプリケーション情報受信手段118は、排他するジャーナルブロックの個数が決定したならばら、排他手段114に、排他の範囲として書き込み先ボリューム、書き込み始点アドレス及び書き込み終点アドレスを与え、ジャーナルブロックの排他制御を要求する(ステップ808)。なお、ステップ811によってジャーナル領域の全体が排他されている場合は、今回排他する範囲を残し、他の範囲の排他を開放する。
排他手段114の詳細な動作については後述するが、排他手段114は、ステップ808にて要求された排他の範囲を排他情報116として記録する。そして、排他手段114は、ロールフォワード手段111による排他要求時に、排他情報116が既に登録されていないか、つまり、レプリケーション情報受信手段118が排他を取得中でないかを確認し、確認結果に応じてロールフォワード手段111へ読み込みの許可又は拒否を返答する。排他手段114は、これらの動作により、レプリケーション情報受信手段118によるジャーナルブロックの書き込みと、ロールフォワード手段111によるジャーナルブロックの読み込みが衝突しないよう制御する。
ステップ808による排他が完了したならば、レプリケーション情報受信手段118は、ストレージコントローラ113の機能を用いて書き込み命令を発行し、ジャーナルボリューム(RV)120にジャーナルブロックを書き込み(ステップ809)、排他手段114に対し排他の開放を要求する(ステップ810)。
なお、レプリケーション情報受信手段118によるジャーナルブロック書き込みと、ロールフォワード手段111によるジャーナルブロック読み込みが衝突していた場合、ロールフォワード手段111は、このステップ809の終了をもって、排他を要求しているジャーナルブロックへのアクセスが許可されることとなる。
以上の動作により、メインサイト100から転送されてきたジャーナルブロックの書き込み要求が、ジャーナルボリューム(RV)120へ反映される。
つぎに、図2及び図10を用いて、ロールフォワード手段111がジャーナルボリューム(RV)120からジャーナルブロックを読み込み、DB(RV)121へ反映する手段について詳細に説明する。
ロールフォワード手段111は、はじめに、ジャーナルレコードの読み込み位置を特定するために、ロールフォワード手段111の前回の動作時の情報を取得する(ステップ901)。ここで取得する情報は、前回読み込んだジャーナルブロックの終端位置、未反映トランザクションの開始ジャーナルレコードの位置(どこのジャーナルブロックの何番目のレコードか)、未反映ジャーナルレコードのあるジャーナルブロックが持つ循環通番である。これらの情報は、ロールフォワード手段111の起動時においては、ディスク等に保存された情報から取得し、ロールフォワード手段111が既に動作している場合にあっては、ジャーナルブロック最終読込位置123、未反映ジャーナルレコード位置情報124、ロールフォワード対象循環通番125より取得することができる。
ロールフォワード手段111は、つぎに、レプリケーション速度情報126を取得し(ステップ902)、現在のレプリケーションの速度と前回のレプリケーション速度とを比較して、レプリケーション速度が上昇していれば一度に排他するジャーナルの個数を増やし(ステップ904)、レプリケーション速度が低下していれば一度に排他するジャーナルの個数を減らす(ステップ905)。そして、次回の比較のためにステップ902で取得したレプリケーション速度を図示しないメモリ等に保存する(ステップ906)。
ロールフォワード手段111は、つづいて、レプリケーション情報受信手段118によるジャーナルブロック書き込みとの衝突を防ぐために、ストレージコントローラ113が持つ排他手段114に対し、排他の範囲として読み込み先ボリューム読み込み始点アドレス及び読み込み終点アドレスを与え、排他を要求する(ステップ907)。排他手段114に要求する読み込み始点アドレスは、ステップ901にて取得した未反映ジャーナルレコードがあるジャーナルブロックのアドレスである。また、読み込み終点アドレスは、読み込み始点アドレスから見て、ステップ904と905で決定された排他するジャーナルブロックの個数分進んだアドレスとなる。ここで、読み込み終点アドレスが領域終端を越える場合は、読み込み終点アドレスを領域終端にそろえ、ジャーナル領域の先頭に位置するジャーナルブロックのアドレスから残りのジャーナルブロックの個数分を排他する要求を行えばよい。
ステップ907での排他要求に対し、排他手段114が排他要求を拒否した場合、すなわち排他の取得に失敗した場合は、読み込もうとしたジャーナルブロックはレプリケーション情報受信手段118による書き込み中であるため、ロールフォワード手段111は、待ち合わせを行った(ステップ908)後、再度ステップ907による排他要求を行う。ステップ908における待ち合わせは、ロールフォワード手段111が一定時間スリープ状態になる方法や、レプリケーション情報受信手段118が排他の開放を排他手段114に要求したことを、排他手段114から通知してもらう方法などが考えられる。本実施の形態では、ロールフォワード手段111が一定時間スリープ状態になる方法を採用している。
一方、排他手段114が排他要求を許可した場合、ロールフォワード手段111は、ジャーナルブロックを一つ読み込み(ステップ909)、ステップ901にて取得したロールフォワード対象の循環通番との比較によるジャーナル終端の判断を行う(ステップ910)。もし、循環通番の数が減少したこと、すなわちジャーナル終端を越えた事を検出したならば、最後に読み込んだジャーナルブロックはDB(RV)121へ反映してはいけないものである上、これ以上ジャーナルブロックを読み込んでもロールフォワードは進行できないので、最後に読み込んだジャーナルブロックの位置をジャーナルブロック最終読込位置123へ保存し(ステップ918)、処理を終了する。
他方、ステップ910においてジャーナル終端を越えていなかった場合、ロールフォワード手段111は、ジャーナルブロックに含まれるジャーナルレコードをDB(RV)121へ反映できるかどうかを判断する(ステップ911)。
このステップ911の判断について、図11を用いて詳細に説明する。
図11は、ロールフォワード手段111が前回の動作時に読み込んだジャーナルブロック1000と、今回の動作で読み込んだジャーナルブロック1010を示している。
ジャーナルブロック1000においては、ジャーナルレコード1002で開始するトランザクション2(TR2)は、終了ジャーナルレコード1004をもって終了する。よって、ロールフォワード手段111はTR2にかかるジャーナルレコード1002、1003及び1004をDB(RV)121へ反映する(ステップ912)。
一方、ジャーナルレコード1001で開始するトランザクション1(TR1)、及びジャーナルレコード1005で開始するトランザクション3(TR3)は、ジャーナルブロック1000内においては終了していない。よって、ロールフォワード手段111はTR1にかかるジャーナルレコード1001、及びTR3にかかるジャーナルレコード1105をDB(RV)121へ反映することができない。したがって、ロールフォワード手段111は、次回の動作時にジャーナルブロック1000を再度読み込む必要がある。後述するように、ロールフォワード手段111は、ステップ913において、次回の動作のために、DB(RV)121へ反映できなかったトランザクショの開始ジャーナルレコードの位置を保存し、ステップ918において、管理していたジャーナルレコードのうち最も前に位置するジャーナルレコードの位置を未反映ジャーナルレコード位置情報124へ、そのジャーナルレコードの属するジャーナルブロックの循環通番をロールフォワード対象循環通番125へ保存する。図11に示す例の場合、ロールフォワード手段111は、ジャーナルレコード1001の位置を未反映ジャーナルレコード位置情報124へ、ジャーナルブロック1000が持つ循環通番をロールフォワード対象循環通番125へ保存することとなる。
ロールフォワード手段111は、次回の動作の際、未反映ジャーナルレコード位置124を参照し、前回未反映のジャーナルレコード1001の位置を取得し(ステップ901)、ジャーナルブロック1000を再度読み込む(ステップ909)。このとき、ロールフォワード手段111は、ジャーナルレコード1002、1003及び1004も再度読み込んでしまうこととなるが、これらのジャーナルレコードは、この前回読み込んだジャーナルブロック内で完結しているトランザクションにかかるものであるため、既にDB(RV)121に反映済みと判断できる。よって、これらのジャーナルレコード1002、1003及び1004については、ロールフォワード手段111はDB(RV)121への反映は行わない。
ついで、ロールフォワード手段111は、次のジャーナルブロック1010を読み込む。ここで、ロールフォワード手段111は、TR1の終了を示すジャーナルレコード1014を発見したならば、TR1にかかるジャーナルレコード1001、1011及び1014をDB(RV)121に反映する(ステップ912)。また、ロールフォワード手段111は、未反映ジャーナルレコード位置情報124から開始ジャーナル1001の位置を削除する(ステップ913)。
同様にして、ロールフォワード手段111がジャーナルブロック1010の持つジャーナルレコードを全て処理すると、未反映ジャーナルレコード位置情報124が管理する開始ジャーナルレコードの位置は、TR3の開始ジャーナルレコード1005の位置となる。ロールフォワード手段111は、さらに次回のロールフォワード手段の動作に備えて、このジャーナルレコード1005の位置を未反映ジャーナルレコード位置124に保持する(ステップ918)。
ステップ912が終了したならば、ロールフォワード手段111は、未反映ジャーナルレコード位置情報124を更新する(ステップ913)。上述したとおり、ステップ909にて読み込んだ現在のジャーナルブロック中に、対応するトランザクション終了ジャーナルのないトランザクション開始ジャーナルが存在すれば、その位置(どのジャーナルブロック何番目か)を記憶し、トランザクション終了ジャーナルがあれば、記憶済のトランザクション開始ジャーナルの中から対応するものを探し、そのトランザクション開始ジャーナルの位置情報を削除する。
ステップ909において読み込んだジャーナルブロックの処理が終了したならば、ロールフォワード手段111は、ステップ907において排他を要求した範囲のジャーナルブロックを全て処理したかを確認する(ステップ914)。排他した範囲の全ジャーナルブロックの処理が完了しているならば、ロールフォワード手段111は、今回の動作にかかる情報、すなわち今回読み込んだジャーナルブロックの終端であるジャーナルブロック最終読込位置123、未反映ジャーナルレコード位置124、及びそのジャーナルレコードが属するジャーナルブロックの循環通番であるロールフォワード対象循環通番125を保存して処理を終了する(ステップ918)。
一方、排他範囲の全ジャーナルブロックが処理されていない場合は、ロールフォワード手段111は、ジャーナルブロックの読み込み位置を先に進め(ステップ915)、読み込み位置が領域終端に達していないか確認する(ステップ916)。領域終端に達していた場合は、次の読み込み位置をジャーナル領域の先頭に位置するジャーナルブロックの位置まで戻した上、循環通番を1増やし、ステップ909から処理を再開する。
最後に、図2及び図12を用いて、排他手段114の動作について説明する。
排他手段114は、まず、レプリケーション情報受信手段118又はロールフォワード手段111から排他要求を受け取ると(ステップ1101)、どちらの手段からの要求であるかを判別する(ステップ1102)。レプリケーション情報受信手段118による要求である場合、排他手段114はその要求種別を判別し(ステップ1103)、書き込みのための排他取得である場合は、レプリケーション情報受信手段118が通知してきた書き込みボリューム、書き込み始点アドレス及び書き込み終点アドレスを、排他情報116として登録する(ステップ1104)。このとき、前述のステップ811によりジャーナル領域全体が排他されていた場合は、ジャーナル領域全体にかかる排他情報を、レプリケーション情報受信手段118から要求された内容で更新する。また、要求種別が書き込み完了後の排他開放であった場合は、排他情報116に登録されている中から一致する情報を削除する(ステップ1105)。
一方、排他要求がロールフォワード手段111によるものであった場合、排他手段114は、要求対象の読み込み先ボリューム、読み込み始点アドレス及び読み込み終点アドレスと、レプリケーション情報受信手段118の排他要求に基づいて排他情報116に登録されている書き込み先ボリューム、書き込み始点アドレス及び書き込み終点アドレスとの照合を行う(ステップ1106)。ここで双方の排他要求領域に重複部分がある場合、排他手段114は、ロールフォワード手段111に対してアクセス拒否を通知する(ステップ1107)。他方、重複部分が無い場合は、ロールフォワード手段111に対しアクセス許可を通知する(ステップ1108)。
本実施の形態においては、ジャーナルボリューム(RV)120が、レプリケーション情報受信手段118により書き込まれた最新のジャーナルブロックの位置を、ロールフォワード手段111が速やかに特定できる循環型のジャーナル構造を採用している。これにより、ロールフォワード手段111は、レプリケーションがどこまで終了したかを速やかに判別し、最新のジャーナルブロック以降のジャーナルブロックがDB(RV)121に不正に反映されることを防ぎ、常に最新のジャーナルをDBに反映できる。
また、本実施の形態においては、排他手段114が、ジャーナルブロック単位でアクセス排他制御を行う。これにより、レプリケーション情報受信手段118が書き込み途中のジャーナルを、ロールフォワード手段111が読み込む事を防止し、両者のアクセス衝突によるDB(RV)121の不正反映を防ぎ、整合性を維持することができる。
また、本実施の形態においては、レプリケーション情報受信手段118にレプリケーション速度を管理する機能を持たせ、レプリケーション情報受信手段118及びロールフォワード手段111が、レプリケーション速度に応じて一度に排他するジャーナルブロックの個数を変更できるようにした。これにより、レプリケーション速度が速い場合は、排他制御によるオーバヘッドを最小限に抑え、高速なレプリケーションを実現することができる。一方、レプリケーション速度が低下した場合、レプリケーション情報受信手段118及びロールフォワード手段111が、一度に排他するジャーナルの個数を減らす。これにより、ロールフォワード手段111は、最新のジャーナルブロックの直近までレプリケーションを進行できる。したがって、排他待ちによりロールフォワードが進行せず、RPOが伸びてしまうという事態を回避することができる。
また、本実施の形態においては、レプリケーション情報受信手段118に順序型レプリケーションの動作状態を管理する機能を持たせ、順序型レプリケーションが動作していないときは、レプリケーション情報受信手段118がジャーナルブロック(RV)120全体に排他をかけることで、ロールフォワード手段111によるジャーナル読み込みを抑止する。これにより、レプリケーション開始時や回線障害時などレプリケーションが順序型とならない状態においては、書き込み順序が不明のジャーナルによるDB(RV)121の不正反映を防ぎ、整合性を維持することができる。また、このときロールフォワード手段111は、レプリケーション状態に関係なく稼動させたままにしておいても、DB(RV)121に悪影響を及ぼすことが無いため、リモートサイト110の運用の簡易化を実現できる。
さらに、本実施の形態は、現在のストレージ装置のストレージコントローラが持つプログラム(ファームウェア)を置換し、その機能を変更することによって容易に実装することができる。
すなわち、本発明により、ジャーナルのみをストレージ装置間で転送しレプリケーションを行う方式において、RPOの短縮と低ランニングコストとを両立することができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
例えば、上述の実施の形態では、本発明を主にハードウェアにより構成されるものとして説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより論理的に実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
100 メインサイト
101 DB更新手段
102 ストレージ装置
103 ストレージコントローラ
104 レプリケーション情報送信手段
105 通信手段
106 レプリケーション状態情報
107 ジャーナルブロック
108 ジャーナルボリューム(MV)
109 DB(MV)
110 リモートサイト
111 ロールフォワード手段
112 ストレージ装置
113 ストレージコントローラ
114 排他手段
116 排他情報
118 レプリケーション情報受信手段
119 レプリケーション状態情報
120 ジャーナルボリューム(RV)
121 DB(RV)
123 ジャーナルブロック最終読込位置
124 未反映ジャーナルレコード位置
125 ロールフォワード対象循環通番
126 レプリケーション速度情報

Claims (6)

  1. 複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信手段と、
    前記ジャーナルブロックを、受信した順に一定数格納する格納領域を含むジャーナルボリュームと、
    前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワード手段とを有し、
    前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、
    前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、
    前記ロールフォワード手段は、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止し、
    前記ジャーナルボリュームに前記ジャーナルブロックが格納される際、前記ジャーナルブロックに対する排他制御を行う排他手段をさらに有し、
    前記ロールフォワード手段は、前記ジャーナルブロックの受信速度に応じ、一度に前記排他制御を実行する前記ジャーナルブロックの数を変化させる
    レプリケーション装置。
  2. 前記排他手段はさらに、前記ロールフォワード手段が前記ジャーナルブロックを読出す際、前記ジャーナルブロックに対する排他制御を行う
    請求項1に記載のレプリケーション装置。
  3. 前記レプリケーション情報受信手段は、前記ジャーナルブロックの受信状態が、レプリケーション順序が保証されない状態である場合、前記ジャーナルブロックに対する排他制御に代えて、前記ジャーナルボリューム全体に対する排他制御を行う
    請求項1又は2に記載のレプリケーション装置。
  4. 複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信ステップと、
    前記ジャーナルブロックを、受信した順にジャーナルボリュームの格納領域に一定数格納する格納ステップと、
    前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワードステップとを有し、
    前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、
    前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、
    前記ロールフォワードステップにおいては、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止し、
    前記ジャーナルボリュームに前記ジャーナルブロックが格納される際、前記ジャーナルブロックに対する排他制御を行う第1の排他ステップをさらに有し、
    前記ロールフォワードステップにおいては、前記ジャーナルブロックの受信速度に応じ、一度に前記排他制御を実行する前記ジャーナルブロックの数を変化させる
    レプリケーション方法。
  5. 前記ロールフォワードステップにおいて前記ジャーナルブロックを読出す際、前記ジャーナルブロックに対する排他制御を行う第2の排他ステップをさらに有する
    請求項4に記載のレプリケーション方法。
  6. コンピュータに、
    複製元ボリュームの更新情報を含むジャーナルブロックを受信するレプリケーション情報受信ステップと、
    前記ジャーナルブロックを、受信した順にジャーナルボリュームの格納領域に一定数格納する格納ステップと、
    前記格納領域から前記ジャーナルブロックを順に読出し、読出した前記ジャーナルブロックに基づいて複製ボリュームを更新するロールフォワードを実行するロールフォワードステップとを実行させるためのプログラムであって、
    前記格納領域は、格納済みの前記ジャーナルブロックが前記一定数を超えた場合、格納済みの前記ジャーナルブロックが、古いものから順に、新たな前記ジャーナルブロックによって上書きされる循環構造であり、
    前記ジャーナルブロックはそれぞれ、前記循環構造において前記上書きが一巡した回数を示す循環回数を含んでおり、
    前記ロールフォワードステップにおいては、前記格納された前記ジャーナルブロックを読出した際、前記循環回数に基づいて最新の前記ジャーナルブロックを判別し、前記最新の前記ジャーナルブロックを以て前記ロールフォワードを停止し、
    前記ジャーナルボリュームに前記ジャーナルブロックが格納される際、前記ジャーナルブロックに対する排他制御を行う第1の排他ステップをさらに有し、
    前記ロールフォワードステップにおいては、前記ジャーナルブロックの受信速度に応じ、一度に前記排他制御を実行する前記ジャーナルブロックの数を変化させる
    プログラム。
JP2012081713A 2012-03-30 2012-03-30 レプリケーション装置、レプリケーション方法及びプログラム Active JP6183876B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012081713A JP6183876B2 (ja) 2012-03-30 2012-03-30 レプリケーション装置、レプリケーション方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012081713A JP6183876B2 (ja) 2012-03-30 2012-03-30 レプリケーション装置、レプリケーション方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2013210919A JP2013210919A (ja) 2013-10-10
JP6183876B2 true JP6183876B2 (ja) 2017-08-23

Family

ID=49528666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012081713A Active JP6183876B2 (ja) 2012-03-30 2012-03-30 レプリケーション装置、レプリケーション方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6183876B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103649901A (zh) * 2013-07-26 2014-03-19 华为技术有限公司 数据发送方法、数据接收方法和存储设备
KR102509540B1 (ko) * 2015-06-30 2023-03-14 삼성전자주식회사 저장 장치 및 그것의 가비지 컬렉션 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62285148A (ja) * 1986-06-03 1987-12-11 Nec Corp 格納フアイル管理方式
JPH08339341A (ja) * 1995-06-12 1996-12-24 Hitachi Ltd 主記憶ページ選択方法
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
JP2004295563A (ja) * 2003-03-27 2004-10-21 Fujitsu Ltd データの整合性を保つための高信頼化されたデータ管理方法
JP4582297B2 (ja) * 2004-06-25 2010-11-17 日本電気株式会社 レプリケーションシステム、装置、方法、およびプログラム
JP4738941B2 (ja) * 2005-08-25 2011-08-03 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
JP2007079728A (ja) * 2005-09-12 2007-03-29 Sony Corp 記録方法、記録装置及びファイル切替記録プログラム
JP4236677B2 (ja) * 2006-09-20 2009-03-11 株式会社日立製作所 Cdpを用いたリカバリ方法
JP4964714B2 (ja) * 2007-09-05 2012-07-04 株式会社日立製作所 ストレージ装置及びデータの管理方法

Also Published As

Publication number Publication date
JP2013210919A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
US20170212708A1 (en) Dynamic garbage collection p/e policies for redundant storage blocks and distributed software stacks
US8407435B2 (en) Efficiently creating a snapshot of a large consistency group using multiple commands including a snapshot preparation command
JP2006293947A (ja) リモートコピーペアの移行を行うシステム
US8555012B2 (en) Data storage apparatus
US9817719B2 (en) Efficient Flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation with reuse and from a shared resource pool
US20180364915A1 (en) Method and system for distributed storage using client-side global persistent cache
US9959046B2 (en) Multi-streaming mechanism to optimize journal based data storage systems on SSD
US10776044B2 (en) Storage apparatus, data management method, and non-transitory computer readable medium
JP2005322237A (ja) データ・ストレージ・システム間でのポイント・イン・タイム・コピー
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JP2002132554A (ja) データベースアクセス方法
US7114046B2 (en) Storage system, backup system, and backup method
JP6183876B2 (ja) レプリケーション装置、レプリケーション方法及びプログラム
US9823852B2 (en) Memory system with nonvolatile memory
CN111158955A (zh) 一种基于卷复制的高可用系统以及多服务器数据同步方法
US20160070491A1 (en) Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output
US9817718B2 (en) Efficient flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation from a shared resource pool
US9003129B1 (en) Techniques for inter-storage-processor cache communication using tokens
CN111176559B (zh) 数据写入方法及装置、双活系统
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
US20100325373A1 (en) Duplexing Apparatus and Duplexing Control Method
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
US10209926B2 (en) Storage system and control method therefor
JP2011192053A (ja) ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法
US20070118605A1 (en) Method and computer system for information notification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160916

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160926

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20161111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170720

R150 Certificate of patent or registration of utility model

Ref document number: 6183876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150