Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4550869B2 - データ同期システム及びデータ同期プログラム - Google Patents
[go: Go Back, main page]

JP4550869B2 - データ同期システム及びデータ同期プログラム - Google Patents

データ同期システム及びデータ同期プログラム Download PDF

Info

Publication number
JP4550869B2
JP4550869B2 JP2007183541A JP2007183541A JP4550869B2 JP 4550869 B2 JP4550869 B2 JP 4550869B2 JP 2007183541 A JP2007183541 A JP 2007183541A JP 2007183541 A JP2007183541 A JP 2007183541A JP 4550869 B2 JP4550869 B2 JP 4550869B2
Authority
JP
Japan
Prior art keywords
identifier
data
synchronization
fragment
fragment data
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.)
Expired - Fee Related
Application number
JP2007183541A
Other languages
English (en)
Other versions
JP2009020753A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2007183541A priority Critical patent/JP4550869B2/ja
Publication of JP2009020753A publication Critical patent/JP2009020753A/ja
Application granted granted Critical
Publication of JP4550869B2 publication Critical patent/JP4550869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、同期元装置及び同期先装置において、データを同期させるデータ同期システム及びデータ同期プログラムに関する。
近年、例えば社外に持ち出した情報機器の盗難、紛失による情報漏えい、またはセキュリティ事故への対策方法として、例えば社外に持ち出す情報機器のディスクに格納されるデータ、例えばOS(Operation System)やアプリケーションを含むディスクボリュームイメージには、予め確認または承認されたイメージを使用する方法が提案されている。このような方法によれば、例えば社外で作成または保存されたデータは、電源が落とされるとともに消去される。また、保存が必要なデータは、ネットワーク越しに会社に転送されて保存または例えば秘密分散法等の手法を用いて保存される。
このような1つのボリュームイメージを同期元から同期先に同期(コピー)する技術には、例えば学校の計算機演習質またはコールセンター等で多数のPC(パーソナルコンピュータ)のシステムイメージを統一するための配布(デプロイ)方法が適用できる。
例えば同期元装置は、当該同期元装置が有する記憶部(例えばHDD等の記憶メディア)に格納されているボリュームイメージを読み込み、通信路を経由して同期先(装置)に転送する。同期先装置では、転送されたボリュームイメージが当該同期先装置の記憶部に書き込まれる。これにより、同期処理が実行される。なお、同期元装置とは、例えば同期するディスクボリュームイメージ(マスタイメージ)を作成する情報機器である。一方、同期先装置は、例えば同期元装置で作成されたディスクボリュームイメージを同期する際の同期先となる情報機器である。
ここで、例えば同期元装置の記憶部に格納されているボリュームイメージが更新された場合を想定する。この場合であっても、この後に同期処理が実行されると、例えばボリュームイメージを構成するブロック(ボリュームイメージが分割された断片)1つずつの更新の有無に関わらず、ボリュームイメージ全体が同期先装置に転送されることになる。つまり、同期元装置及び同期先装置において、同一のブロックが両方の記憶部に格納されている場合、当該ブロックについては既に同期処理された状態にあるにもかかわらず当該ブロックについても転送される。このように、例えばボリュームイメージを構成するブロックのうち、更新されていないブロック(既に同期状態にあるブロック)についても転送されるため同期処理が低速となる。
そこで、更新されたブロックについてのみ処理することで、より高速に同期処理を実行する技術として差分転送技術がある。この差分転送技術には、例えばボリュームイメージを構成するブロック毎に関する更新マップを利用して、更新されたブロックを検出する技術(以下、第1の技術と表記)がある。
また、例えばボリュームイメージを構成するブロック毎のデータのハッシュ値のような識別子を転送(同期)元または先で比較することで、更新されたブロックを検出する技術(以下、第2の技術と表記)がある。この第2の技術では、同期元装置及び同期先装置において、現在のボリュームイメージ(現在同期元装置の記憶部及び同期先装置の記憶部に格納されているボリュームイメージ)の各断片(ブロック)の識別子が生成される。例えば、ボリュームイメージが固定量のセクタ単位で読み込まれ、そのハッシュ値が生成される。そして、例えば同期元装置において、対応するハッシュ値(識別子)を比較し、互いのハッシュ値が異なっているセクタのデータが同期先装置に転送され、当該データが上書きされる。第2の技術によれば、このように識別子の違いにより、同期先装置及び同期元装置に格納されているボリュームイメージのうち、更新された部分(以下、差分と表記)を検出することができる。
上記したような差分転送技術により、同期元装置においてボリュームの更新があった場合に、ボリュームイメージ全体を転送することなく差分のみの転送を実現することが可能となる。
上記したような差分転送技術について、レプリケーションに要する時間の短縮に好適な技術が開示されている(例えば、特許文献1を参照)。この技術によれば、レプリケーション先へバックアップメディアを搬送しバックアップ装置からバックアップし、差分データのみをコピーする。
特開2006−268740号公報
しかしながら、上記したような第1の技術のような差分転送技術では、例えば転送先PC(同期先装置)が複数存在し、バージョンが異なる複数のボリュームイメージを有する場合、それぞれのバージョンに合わせて差分マップを管理する必要がある。また、任意のバージョンの差分マップが欠けてしまうと、そのバージョン以降のボリュームイメージを復元することは完全に不可能である。その場合、同期元装置において更新されたボリュームイメージの差分を転送することができないため、同期先装置では、同期(配布)されるボリュームイメージを全て読み込む必要がある。また、差分マップが欠けると差分を転送することができないため、例えば古いバージョンの差分マップであっても容易に捨てる(削除する)ことはできない。
一方、上記した第2の技術のような差分転送技術では、例えば配布を開始する時点での転送元(同期元)と転送先(同期先)それぞれのボリュームイメージの識別子が必要となる。このため、同期を開始する時点で、それぞれにボリュームイメージ全体を読み込み、当該ボリュームイメージの識別子の生成処理を行う必要がある。このとき、例えば通信路に対するアクセスが、同期元装置または同期先装置が有する記憶部へのアクセスと比較して十分高速な場合には、ボリュームイメージ全体の読み込み処理がボトルネックとなる。これにより、結果的に差分転送による同期処理の高速化の効果は小さくなる。
これに対して、例えば同期元装置及び同期先装置において予め同期しておき、かつ、ボリュームイメージの書き換えが発生しないことを条件として、同期先装置でのボリュームイメージ全体の読み込み処理または識別子の生成処理を取り除くことで、差分転送での高速化の効果をより大きくする技術がある。しかしながら、この技術では、同期先装置における書込み保護の仕組みを設ける必要がある。つまり、同期先装置においてデータの書き込みを行うことができない。また、この技術では、初期同期と更新同期の2種類の同期方法を使い分けなければならない。
本発明の目的は、予め同期しておく必要がなく、かつ、同期先装置においてデータ書き込みが行われた場合であっても、正しく同期処理を実行することが可能なデータ同期装置及びデータ同期プログラムを提供することにある。
本発明の第1の態様によれば、第1のデータを格納する第1の格納手段を有する同期元装置と、第2のデータを格納する第2の格納手段を有する同期先装置とを備え、前記同期元装置が有する第1の格納手段に格納される第1のデータ及び前記第2の格納手段に格納される第2のデータを同期させるデータ同期システムにおいて、前記同期元装置は、前記第1の格納手段に前記第1のデータが書き込まれる際に、当該第1のデータが分割された複数の第1の断片データの各々に対応する第1の識別子を生成する第1の生成手段を含み、前記同期先装置は、前記第2の格納手段に前記第2のデータが書き込まれる際に、当該第2のデータが分割された複数の第2の断片データの各々に対応する第2の識別子を生成する第2の生成手段と、前記第1の格納手段に格納されている第1のデータ及び前記第2の格納手段に格納されている第2のデータを同期させる際に、前記第1の生成手段によって生成された第1の識別子及び当該第1の識別子に対応する前記第2の生成手段によって生成された第2の識別子が一致するかを判定する識別子判定手段と、前記第1の識別子及び当該第1の識別子に対応する前記第2の識別子が一致しないと判定された場合、当該第1の識別子に対応する前記第1の断片データを前記第2の格納手段に書き込む書き込み手段とを含み、前記第2の生成手段は、前記書き込み手段によって書き込まれた前記第1の断片データに対応する前記第1の識別子を生成し、前記第2の格納手段は、前記第2の生成手段によって生成された前記第1の識別子を、前記書き込み手段によって書き込まれた前記第1の断片データに対応付けて格納することを特徴とするデータ同期システムが提供される。
本発明によれば、予め同期しておく必要がなく、かつ、同期先装置においてデータ書き込みが行われた場合であっても、正しく同期処理を実行することを可能とする。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係るデータ同期システムを構成する同期元装置または同期先装置のハードウェア構成を示すブロック図である。なお、図1では、同期元装置について説明するが、同期先装置についても同様の構成である。以下、同期先装置の構成についても、図1を用いて説明する。
図1に示すように、コンピュータ10は、例えばハードディスクドライブ(HDD)のような外部記憶装置20と接続されている。この外部記憶装置20は、コンピュータ10によって実行されるプログラム21を格納する。コンピュータ10及び外部記憶装置20は、同期元装置30を構成する。
図2は、本実施形態に係るデータ同期システムの主として機能構成を示すブロック図である。データ同期システム100は、同期元装置30及び同期先装置50から構成される。同期元装置30及び同期先装置50は、例えば通信路を通して通信可能に接続されている。このデータ同期システム100では、同期元装置30の内部に格納されているデータ(第1のデータ)及び同期先装置50の内部に格納されているデータ(第2のデータ)を同期させる。以下、この処理を同期処理と称する。また、同期処理の対象となるデータは、例えばOS(Operating System)やアプリケーションを含むディスクボリュームイメージ(以下、単にボリュームイメージと表記)である。
同期元装置30は、データアクセス部31、識別子生成部32、同期制御部33及び転送部34を含む。本実施形態において、各部31乃至34は、図1に示されるコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプラグラム21が例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、同期元装置30は、記憶(格納)部22を含む。本実施形態において、記憶部22は、外部記憶装置20に格納される。
データアクセス部31は、例えばファイルシステムやデータベース(DB)等の上位レイヤに対して、記憶部22に対する書き込みまたは読み込みのアクセス機能を提供する。この場合、上位レイヤへのインタフェースとしては、例えばSCSI(Small Computer System Interface)等が利用できる。
データアクセス部31は、データの書き込みの際には、例えば論理ブロックアドレス(LBA:Logical Block Address)及びボリュームイメージ(セクタ単位)を入力する。データアクセス部31は、入力されたボリュームイメージを固定セクタ長の複数のデータ断片(以下、断片データと表記)として切り出し(分割し)、識別子生成部32に渡す。ボリュームイメージが分割された複数の断片データは、例えば任意の論理ブロックアドレス間隔毎に設定されている。ここでは、断片データの切り出しセクタ長を例えば1セクタ長とする。データアクセス部31は、入力されたボリュームイメージ(が分割された複数の断片データ)及び当該複数の断片データの各々に対応する識別子を記憶部22に書き込む。
また、データアクセス部31は、データの読み込みの際には、ボリュームイメージ(データ)の読み込みと識別子の読み込みの2種類のインタフェースを有する。データアクセス部31は、例えば論理ブロックアドレスを入力し、ボリュームイメージまたは識別子を出力する。
識別子生成部32は、データアクセス部31によって渡されたボリュームイメージが分割された複数の断片データ(第1の断片データ)の各々に対応する識別子(第1の識別子)を生成する。識別子生成部32は、複数の断片データの各々に対応する識別子として、当該複数の断片データの各々のハッシュ値を生成する。識別子生成部32は、例えばMD5またはSHA−1のようなハッシュ関数を用いてハッシュ値を生成する。
記憶部22は、例えばHDDのような記憶媒体であって、上記したボリュームイメージ(第1のデータ)を格納する。また、記憶部22は、識別子生成部32によって生成された識別子を格納する。記憶部22は、ボリュームイメージが分割された複数の断片データ及び当該断片データの各々に対応する識別子を対応付けて格納する。記憶部22は、ボリュームイメージ及び識別子を格納するのに十分な記憶容量を有する。
記憶部22にボリュームイメージ及び識別子(群)を格納する方法として、例えば当該ボリュームイメージ及び識別子群を別々のパーティションに格納する方法がある。この方法によれば、識別子群が格納されているパーティションは、例えばデータアクセス部31以外からは直接書き込みができないように保護される。
同期制御部33は、例えば同期先装置50より、例えば同期処理を開始するための要求(以下、同期開始要求と表記)を受け付ける。同期制御部33は、同期開始要求を受け付けると、例えばデータアクセス部31を介して、例えば記憶部22に格納されている識別子を読み込む。同期制御部33は、データアクセス部31を介して、例えば記憶部22に格納されているボリュームイメージ(が分割された断片データ)を読み込む。
転送部34は、例えば同期制御部33によって読み込まれたボリュームイメージ(を構成する断片データ)及び識別子を同期先装置50に対して転送(読み取り・書き込み)する。この通信方法として、例えばiSCSI(Internet Small Computer System Interface)が利用可能である。
同期先装置50は、データアクセス部51、識別子生成部52、同期制御部53及び転送部54を含む。本実施形態において、各部51乃至54は、図1に示されるコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。
また、同期先装置50は、記憶部23を含む。本実施形態において、記憶部23は、外部記憶装置20に格納される。
データアクセス部51は、上記したデータアクセス部31と同様に、例えばファイルシステムやDB等の上位レイヤに対して、記憶部23に対する書き込みまたは読み込みのアクセス機能を提供する。この場合、上位レイヤへのインタフェースとしては、例えば上記したSCSI等が利用できる。なお、同期先装置50におけるデータの書き込みまたは読み込みの際の処理については、上記したデータアクセス部31と同様である。
識別子生成部52は、ボリュームイメージが分割された複数の断片データ(第2の断片データ)の各々に対応する識別子(第2の識別子)を生成する。識別子生成部52は、複数の断片データの各々に対応する識別子として、当該複数の断片データの各々のハッシュ値を生成する。識別子生成部52は、例えばMD5またはSHA−1のようなハッシュ関数を用いてハッシュ値を生成する。
記憶部23は、例えばHDDのような記憶媒体であって、上記したボリュームイメージ(第2のデータ)を格納する。また、記憶部23は、識別子生成部52によって生成された識別子を格納する。記憶部23は、ボリュームイメージが分割された複数の断片データ及び当該断片データの各々に対応する識別子を対応付けて格納する。記憶部23は、ボリュームイメージ及び識別子を格納するのに十分な記憶容量を有する。
記憶部23にボリュームイメージ及び識別子(群)を格納する方法として、上記した記憶部22と同様に、例えば当該ボリュームイメージ及び識別子群を別々のパーティションに格納する方法がある。この方法によれば、識別子群が格納されているパーティションは、例えばデータアクセス部51以外からは直接書き込みができないように保護される。
同期制御部53は、例えばデータ同期システム100の管理者等または上位アプリケーションより同期開始の指示を受け付ける。同期制御部53は、同期開始の指示を受け付けると、例えば同期処理を開始するための要求(同期開始要求)を同期元装置30に対して送信する。
同期制御部53は、同期元装置30から送信された識別子(第1の識別子)を、転送部54を介して入力する。同期制御部53は、例えばデータアクセス部51を介して、記憶部23に格納されている識別子(第2の識別子)を読み込む。同期制御部53は、入力された識別子及び読み込まれた識別子が一致するか否かを判定する。同期制御部53は、一致しないと判定された場合、同期元装置30から送信された識別子に対応する断片データを、転送部54を介して同期元装置30の記憶部22から取得する。同期制御部53は、取得された断片データを、データアクセス部51を介して記憶部23に格納する。
図3は、記憶部22または記憶部23における断片データ及び識別子の格納構造の一例を示す。ここで、記憶部22について説明するものとする。また、記憶部22に格納されているボリュームイメージは、ボリュームイメージxであるものとして説明する。
図3に示すように、記憶部22には、データパーティション221、識別子群パーティション222及びパーティションテーブル223が含まれる。
データパーティション221には、ボリュームイメージxが格納される。このデータパーティション221に格納されるボリュームイメージxは、例えば複数(n個)の断片データx0、x1、…、xn-1に断片化(分割)して管理される。ここで、nは、データパーティション221のセクタ数である。
また、識別子群パーティション222には、断片データx0、x1、…、xn-1の各々に対応する識別子h0、h1、…、hn-1が格納される。なお、識別子群パーティション222に格納される識別子h0、h1、…、hn-1を識別子群hと称する。
また、パーティションテーブル223には、例えばデータパーティション221及び識別子群パーティション222へのオフセットが保持されている。
なお、識別子群パーティション222における各識別子へのオフセットは、例えば識別子の長さから求めることができる。例えば識別子がハッシュ関数SHA−1を用いて生成された場合を想定する。この場合、セクタ1に対応する識別子の格納先オフセットは、例えば0ビットよりカウントした場合、識別子群パーティション222の先頭から160ビット目である。
図3に示す例では、データパーティション221に含まれる領域221aに格納されている断片データx0に対応する識別子は、識別子群パーティション222に含まれる領域222aに格納されている識別子h0であり、当該断片データx0及び識別子h0は対応付けられている。つまり、識別子h0は、断片データx0を入力として例えばハッシュ関数を用いて生成された識別子(ハッシュ値)である。また、断片データx0及び識別子h0以外についても同様である。
次に、図4を参照して、同期元装置30または同期先装置50におけるデータ(ボリュームイメージ)の書き込みアクセスの処理動作について説明する。ここでは、同期元装置30について説明する。なお、図4に示すデータアクセス部31、識別子生成部32及び記憶部22は、例えばブロックデバイスのレイヤで機能を実現する。
図4に示すように、書き込みアクセスでは、書き込まれるデータ(書き込みデータ)の書き込み先アドレス(論理ブロックアドレス)、書き込みデータのデータ長(セクタ単位)及び書き込みデータが、例えばファイルシステムやDB等の上位レイヤからデータアクセス部31に対して入力される(ステップS1)。
識別子生成部32は、データアクセス部31に対して入力された書き込みデータが分割された複数の断片データの各々に対応する識別子(群)を生成する(ステップS2)。
データアクセス部31は、例えば入力されたアドレス及びデータ長に基づいて、書き込みデータ(が分割された複数の断片データ)を記憶部22に書き込む(ステップS3)。また、データアクセス部31は、識別子生成部32によって生成された識別子を記憶部22に書き込む(ステップS3)。書き込みデータが分割された複数の断片データ及び当該断片データの各々に対応する識別子は対応付けて記憶部22に書き込まれる。
次に、図5のフローチャートを参照して、例えば同期元装置30に対する書き込みアクセス処理の処理手順について説明する。この書き込みアクセス処理は、上記したように書き込み先アドレス、データ長及び書き込みデータがデータアクセス部31によって入力されることにより実行される。ここでは、書き込みデータは、書き込みデータxであるものとする。また、書き込みデータxは、n個の断片データx0、x1、…、xn-1から構成(に分割)されるものとして説明する。
まず、識別子生成部32は、データアクセス部31に入力された書き込みデータxが分割されたn個の断片データx0、x1、…、xn-1のうち、断片データxi(i=0、1、…、n−1)に対応する識別子hi(i=0、1、…、n−1)を生成する(ステップS11)。
次に、データアクセス部31は、断片データxiを記憶部22に書き込む(ステップS12)。
データアクセス部31は、識別子hiを記憶部22に書き込む(ステップS13)。このとき、データアクセス部31は、断片データxi及び識別子hiを対応付けて記憶部22に書き込む。
書き込みデータxが分割されたn個の断片データ(x0、x1、…、xn-1)の全てについて上記した処理が実行されていない場合(ステップS14のNO)、ステップS11に戻って処理が繰り返される。
一方、ステップS14において書き込みデータxが分割されたn個の断片データの全てについて処理が実行された場合、書き込みアクセス処理は終了される。
次に、図6を参照して、例えば同期元装置30における読み込みアクセスの処理動作について説明する。読み込みアクセスには、データ(ボリュームイメージ)の読み込み及び識別子の読み込みの2種類のインタフェースがある。読み込みアクセスでは、読み込みコマンドの種別(データまたは識別子)がデータアクセス部31に入力される。ここでは、データの読み込みアクセスの処理動作について説明する。なお、ここでは同期元装置30について説明するが、同期先装置50においても同様である。
まず、読み込みコマンドの種別(ここでは、データ読み込みコマンド)、読み込まれるデータ(読み込みデータ)の読み込み先アドレス(論理ブロックアドレス)及び読み込みデータのデータ長(セクタ単位)が、例えばファイルシステムやDB等の上位レイヤからデータアクセス部31に対して入力される(ステップS21)。データアクセス部31は、例えば入力された読み込みコマンドの種別がデータ読み込みコマンドである場合、データの読み込み処理を実行する。
次に、データアクセス部31は、入力された読み込み先アドレス及びデータ長に応じて特定される読み込みデータを、記憶部22から読み込む(ステップS22)。
データアクセス部31は、読み込まれた読み込みデータを例えば上位レイヤに対して出力する(ステップS23)。
次に、図7のフローチャートを参照して、例えば同期元装置30における読み込みアクセス処理の処理手順について説明する。ここでは、図6と同様に、データの読み込みアクセス処理について説明する。このデータの読み込みアクセス処理は、上記したように読み込みコマンドの種別(ここでは、データ読み込みコマンド)、読み込み先アドレス及びデータ長がデータアクセス部31によって入力されることにより実行される。なお、ここでは同期元装置30について説明するが、同期先装置50においても同様である。
ここでは、読み込みデータは、読み込みデータxであるものとする。また、読み込みデータxは、n個の断片データx0、x1、…、xn-1に分割されるものとして説明する。
データアクセス部31は、例えば入力された読み込みコマンドの種別がデータ読み込みコマンドである場合、データの読み込み処理を実行する。
まず、データアクセス部31は、入力された読み込み先アドレス及びデータ長に応じて特定されるデータ(読み込みデータx)が分割されたn個の断片データx0、x1、…、xn-1のうち、断片データxi(i=0、1、…、n−1)を記憶部22から読み込む(ステップS31)。
読み込みデータxが分割されたn個の断片データ(x0、x1、…、xn-1)の全てについて読み込み処理が実行されていない場合(ステップS32のNO)、ステップS31に戻って処理が繰り返される。
一方、ステップS32において読み込みデータxが分割されたn個の断片データの全てについて読み込み処理が実行された場合、例えば読み込まれたn個の断片データを出力して、読み込みアクセス処理は終了される。
次に、図8を参照して、例えば同期元装置30における識別子の読み込みアクセスの処理動作について説明する。なお、ここでは同期元装置30について説明するが、同期先装置50においても同様である。
まず、読み込みコマンド種別(ここでは、識別子読み込みコマンド)、読み込みデータの読込先アドレス及び読み込みデータのデータ長が、例えば上位レイヤからデータアクセス部31に対して入力される(ステップS41)。データアクセス部31は、例えば入力された読み込みコマンドの種別が識別子読み込みコマンドである場合、識別子の読み込み処理を実行する。
次に、データアクセス部31は、入力された読み込み先アドレス及びデータ長に応じて特定される読み込みデータに対応する識別子(群)を、記憶部22から読み込む(ステップS42)。
データアクセス部31は、読み込まれた識別子群を例えば上位レイヤに対して出力する(ステップS43)。
次に、図9のフローチャートを参照して、例えば同期元装置30における読み込みアクセス処理の処理手順について説明する。ここでは、図8と同様に、識別子の読み込みアクセス処理について説明する。この識別子の読み込みアクセス処理は、上記したように読み込みコマンドの種別(ここでは、識別子読み込みコマンド)、読み込み先アドレス及びデータ長がデータアクセス部31によって入力されることにより実行される。なお、ここでは同期元装置30について説明するが、同期先装置50においても同様である。
ここでは、読み込みデータは、読み込みデータxであるものとする。また、読み込みデータxは、n個の断片データx0、x1、…、xn-1に分割されるものとして説明する。
データアクセス部31は、例えば入力された読み込みコマンドの種別が識別子読み込みコマンドである場合、識別子読み込み処理を実行する。
まず、データアクセス部31は、入力された読み込み先アドレス及びデータ量に応じて特定される読み込みデータxが分割されたn個の断片データx0、x1、…、xn-1のうち、断片データxi(i=0、1、…、n−1)に対応する識別子hi(i=0、1、…、n−1)を記憶部22から読み込む(ステップS51)。
読み込みデータxが分割されたn個の断片データ(x0、x1、…、xn-1)の各々に対応する識別子の全て(n個の識別子群h)について読み込み処理が実行されていない場合(ステップS52のNO)、ステップS51に戻って処理が繰り返される。
一方、ステップS52において読み込みデータxが分割されたn個の断片データの各々に対応する識別子の全てについて読み込み処理が実行された場合、例えば読み込まれたn個の識別子群hを出力して、読み込みアクセス処理は終了される。
次に、図10及び図11を参照して、データ同期システム100における同期処理の動作について説明する。ここで、同期処理とは、同期元装置30の記憶部22に格納されているデータ(ボリュームイメージ)及び同期先装置50の記憶部23に格納されているデータ(ボリュームイメージ)を同期させる処理である。
図10に示すように、まず、同期先装置50の同期制御部53は、同期元装置30の記憶部22に格納されている識別子群を取得する(ステップS61)。このとき、記憶部22に格納されている識別子群は、同期元装置30の同期制御部33によって読み出され、転送部34を介して同期先装置50(の同期制御部53)に送信される。同期制御部53は、同期元装置30から送信された識別子群を取得する。
次に、同期制御部53は、データアクセス部51を介して、記憶部23に格納されている識別子群を読み込む(ステップS62)。
同期制御部53は、同期元装置30の記憶部22から取得された識別子群及び記憶部23から読み込まれた識別子群のそれぞれ対応する識別子を比較する。これにより、同期制御部53は、比較された識別子が一致するか否かを判定する。
ここで、比較された識別子が一致しない場合を想定する。この場合、図11に示すように、同期制御部53は、一致しないと判定された識別子(同期元装置30の記憶部22から取得された識別子)に対応する断片データを記憶部22から取得する。この場合、断片データは、同期元装置30の同期制御部33によって記憶部22から読み出され、転送部34を介して同期先装置50に送信される。同期制御部53は、同期元装置30から送信された断片データを取得する。データアクセス部51は、同期制御部53によって取得された断片データを記憶部23に書き込む(ステップS63)。
また、識別子生成部52は、同期制御部53によって取得された断片データの識別子を生成する。データアクセス部51は、識別子生成部52によって生成された識別子を、データアクセス部51によって書き込まれた断片データに対応付けて記憶部23に書き込む(ステップS64)。これにより、断片データの書き込みが行われる際に、当該断片データに対応する識別子の更新も実行される。
なお、同期処理中において、同期制御部53(データアクセス部51)以外からの書き込みが発生することを抑止する必要がある。このために、例えば
1)データ(ボリュームイメージ)自体からブートしない(別のブートイメージからブートする)
2)データ(ボリュームイメージ)自体からブートする場合、書き込みをドライバレベル(フィルタドライバ)でブロック(抑止)する(同期による書き込みのみ許可する)
のような環境で行う必要がある。
次に、図12のフローチャートを参照して、データ同期システム100における同期処理の際の同期先装置50の処理手順について説明する。この同期処理は、例えば同期先装置50の同期制御部53が例えばデータ同期システム100の管理者または上位アプリケーションより同期開始の指示を受け付けたときに実行される。
なお、同期元装置30の記憶部22に格納されているボリュームイメージはボリュームイメージxであるものとし、当該ボリュームイメージxが分割された複数の断片データはn個の断片データx0、x1、…、xn-1であるものとする。また、記憶部22に格納されているボリュームイメージxに対応する識別子群は識別子群hであるものとし、識別子群hはn個の識別子h0、h1、…、hn-1であるものとする。この場合、例えば断片データx0及び識別子h0は対応する。断片データx1及び識別子h1のような他の断片データ及び識別子についても同様である。
一方、同期先装置50の記憶部23に格納されているボリュームイメージはボリュームイメージx´であるものとし、当該ボリュームイメージx´が分割された複数の断片データはn個の断片データx0´、x1´、…、xn-1´であるものとする。また、記憶部23に格納されているボリュームイメージx´に対応する識別子群は識別子群h´であるものとし、識別子群h´はn個の識別子h0´、h1´、…、hn-1´であるものとする。この場合、例えば断片データx0´及び識別子h0´は対応する。断片データx1´及び識別子h1´のような他の断片データ及び識別子についても同様である。
上記したように、同期元装置30の記憶部22及び同期先装置50の記憶部23における断片データ及び識別子の格納構造は同一である。つまり、例えば断片データx0及び断片データx0´は対応し、識別子h0及び識別子h0´は対応する。断片データx1及び断片データx1´、識別子h1及び識別子h1´のような他の断片データ及び識別子についても同様である。
まず、同期先装置50の同期制御部53は、同期開始の指示を受け付けると、例えば同期処理を開始するための要求(同期開始要求)を同期元装置30に対して送信する。この同期開始要求は、転送部54を介して送信される。
同期元装置30で同期先装置50から送信された同期開始要求が受け付けられると、同期制御部33は、記憶部22に格納されている識別子群h(識別子h0、h1、…、hn-1)のうち、識別子hi(i=0、1、…、n−1)を読み込む。同期制御部33は、読み込まれた識別子hiを、転送部34を介して同期先装置50に対して送信する。
同期先装置50の同期制御部53は、転送部54を介して、同期元装置30から送信された識別子hiを取得する(ステップS71)。
次に、同期制御部53は、データアクセス部51を介して、記憶部23に格納されている識別子群h´のうち、取得された識別子hiに対応する識別子hi´を当該記憶部23から読み込む。
なお、上記したように例えば識別子h0が取得された場合には当該識別子h0に対応する識別子h0´が読み込まれ、例えば識別子h1が取得された場合には当該識別子h1に対応する識別子h1´が読み込まれる。
同期制御部53は、取得された識別子hi及び読み込まれた識別子hi´が一致するか否かを判定する(ステップS73)。
識別子hi及び識別子hi´が一致しない(異なっている)と判定された場合(ステップS73のNO)、同期制御部53は、当該識別子hiに対応する断片データxiを、同期元装置30の記憶部22から取得する(ステップS74)。このとき、同期制御部53は、同期元装置30の同期制御部33及び転送部34を介して、断片データxiを取得する。
ここで取得された断片データxiが、記憶部22に格納されているボリュームイメージx及び記憶部23に格納されているボリュームイメージx´において異なる部分を示す差分データである。
データアクセス部51は、同期制御部53によって取得された断片データxi(差分データ)を、記憶部23に書き込む(ステップS75)。このとき、データアクセス部51は、同期制御部53によって取得された断片データxiを、当該断片データxiに対応する断片データxi´に上書きする。
次に、識別子生成部52は、記憶部23に書き込まれた断片データxiに対応する識別子hiを生成する(ステップS76)。この識別子hiは、例えばSHA−1のようなハッシュ関数を用いて生成される。
データアクセス部51は、識別子生成部52によって生成された識別子hiを、記憶部23に書き込む(ステップS77)。このとき、データアクセス部51は、識別子生成部52によって生成された識別子hiを、記憶部23に書き込まれた断片データxiに対応付けて書き込む。つまり、識別子hiは、上記した識別子hi´に上書きされる。
記憶部22に格納されている識別子群h及び記憶部23に格納されている識別子群h´に含まれる全ての識別子について上記した処理が実行されたか否かが判定される(ステップS78)。
全ての識別子について処理が実行されていないと判定された場合(ステップS78のNO)、ステップS71に戻って処理が繰り返される。
一方、ステップS78において全ての識別子について処理が実行されたと判定された場合、同期処理は終了される。
また、ステップS73において識別子hi及び識別子hi´が一致すると判定された場合、ステップS78の処理が実行される。
なお、上記した同期処理では、差分データである断片データxiが記憶部23に書き込まれると、当該断片データxiに対応する識別子hiが記憶部23に書き込まれるものとして説明したが、当該断片データxiに対応する識別子として無効を示す識別子(無効識別子)が書き込まれる構成でも構わない。この場合、この後の同期処理において例えば無効識別子が検出された場合には、強制的に記憶部22に格納されている断片データが取得され、当該断片データが記憶部23に書き込まれる。これにより、常に識別子を生成する必要がないため、同期先装置50における処理量を軽減することが可能となる。
また、無効識別子が検出された場合には、当該無効識別子に対応する断片データに対応する識別子が生成される構成であってもよい。これにより、無効識別子を有効な値(識別子)に置き換えることが可能となる。また、無効識別子を検出する処理は、同期処理時に限られない。例えば定期的に例えば記憶部23に格納されている識別子群hを読み込んで走査(チェック)する構成であっても構わない。
上記したように本実施形態においては、同期元装置30においては、例えば記憶部22に格納されているボリュームイメージx(が分割された例えばn個の断片データx0、x1、…、xn-1)に対応する識別子群h(n個の識別子h0、h1、…、hn-1)が生成される。一方、同期先装置50においても、例えば記憶部23に格納されているボリュームイメージx´(が分割された例えばn個の断片データx0´、x1´、…、xn-1´)に対応する識別子群h(n個の識別子h0´、h1´、…、hn-1´)が生成される。この識別子群h及び識別子群h´が同期処理時に比較されることにより、ボリュームイメージx及びボリュームイメージx´において異なる断片データ(差分データ)のみを同期(コピー)することが可能となる。よって、同期処理の際の同期元装置30から同期先装置50に送信(転送)するデータ量を少なくすることにより同期処理の高速化を図ることが可能となる。
つまり、本実施形態においては、同期元装置30及び同期先装置50において予め同期しておく必要がなく、かつ、例えば同期先装置においてデータの書き込みアクセスが行われた場合であっても正しく同期処理を実行することが可能となる。
また、本実施形態においては、識別子としてハッシュ値を用いる構成により、例えば固有の識別子を生成するために同期済みの全データパターンを記憶(格納)しておく必要がない。
なお、本実施形態においては、識別子hi及び識別子hi´の比較処理を同期先装置50の同期制御部53が実行するものとして説明したが、当該比較処理を同期元装置30の同期制御部33が実行する構成であっても構わない。この場合、同期制御部33は、識別子hiを記憶部22から読み出し、識別子hi´を同期先装置50の記憶部23から取得することによって、比較処理を実行する。
また、同期元装置30及び同期先装置50と接続された例えば記憶装置が別に設けられる構成であっても構わない。この場合、同期元装置30では、例えば同期処理の対象となるボリュームイメージx及び当該ボリュームイメージxに対応する識別子群hを予め記憶装置にアップロードしておくことで、例えば同期元装置30及び同期先装置50の各々が独立して同期処理を実行することが可能となる。
[第1の変形例]
次に、図13を参照して、本実施形態の第1の変形例について説明する。なお、本変形例に係るデータ同期システムの構成は、前述した図2に示すデータ同期システム100の構成と同様であるため、図2を用いて説明する。以下の各変形例についても同様にして図2を用いて説明する。
本変形例に係るデータ同期システム100の特徴は、同期処理において例えば差分データであると判定された断片データが同期先装置50の記憶部23に書き込まれた場合、前述した実施形態とは異なり、例えば明示的に指定された識別子を当該断片データに対応付けて記憶部23に書き込む点にある。具体的には、例えば同期元装置30の記憶部22から取得された識別子が、書き込まれた断片データに対応付けて記憶部23に書き込まれる。
図13を参照して、本変形例に係るデータ同期システム100における同期処理の動作について説明する。
図13に示すように、まず、同期先装置50の同期制御部53は、同期元装置30の記憶部22に格納されている識別子群を取得する(ステップS81)。このとき、記憶部22に格納されている識別子群は、同期元装置30の同期制御部33によって読み出され、転送部34を介して同期先装置50(の同期制御部53)に送信される。同期制御部53は、同期元装置30から送信された識別子群を取得する。
次に、同期制御部53は、データアクセス部51を介して、記憶部23に格納されている識別子群を読み込む(ステップS82)。
同期制御部53は、同期元装置30の記憶部22から取得された識別子群及び記憶部23から読み込まれた識別子群のそれぞれ対応する識別子を比較する。これにより、同期制御部53は、比較された識別子が一致するか否かを判定する。
ここで、比較された識別子が一致しない場合を想定する。この場合、図13に示すように、同期制御部53は、一致しないと判定された識別子(同期元装置30の記憶部22から取得された識別子)に対応する断片データを記憶部22から取得する。この場合、断片データは、同期元装置30の同期制御部33によって記憶部22から読み出され、転送部34を介して同期先装置50に送信される。同期制御部53は、同期元装置30から送信された断片データを取得する。データアクセス部51は、同期制御部53によって取得された断片データを記憶部23に書き込む(ステップS83)。
データアクセス部51は、同期制御部53によって一致しないと判定された識別子(同期元装置30の記憶部22から取得された識別子)を、記憶部23に書き込まれた断片データに対応付けて書き込む(ステップS84)。
次に、図14のフローチャートを参照して、データ同期システム100における同期処理の際の同期先装置50の処理手順について説明する。前述したように、同期処理は、例えば同期先装置50の同期制御部53が例えばデータ同期システム100の管理者または上位アプリケーションより同期開始の指示を受け付けたときに実行される。
なお、前述した図12に示す同期処理手順の場合と同様に、同期元装置30の記憶部22に格納されているボリュームイメージはボリュームイメージxであるものとし、当該ボリュームイメージxが分割された複数の断片データはn個の断片データx0、x1、…、xn-1であるものとする。また、記憶部22に格納されているボリュームイメージxに対応する識別子群は識別子群hであるものとし、識別子群hはn個の識別子h0、h1、…、hn-1であるものとする。この場合、例えば断片データx0及び識別子h0は対応する。断片データx1及び識別子h1のような他の断片データ及び識別子についても同様である。
一方、同期先装置50の記憶部23に格納されているボリュームイメージはボリュームイメージx´であるものとし、当該ボリュームイメージx´が分割された複数の断片データはn個の断片データx0´、x1´、…、xn-1´であるものとする。また、記憶部23に格納されているボリュームイメージx´に対応する識別子群は識別子群h´であるものとし、識別子群h´はn個の識別子h0´、h1´、…、hn-1´であるものとする。この場合、例えば断片データx0´及び識別子h0´は対応する。断片データx1´及び識別子h1´のような他の断片データ及び識別子についても同様である。
上記したように、同期元装置30の記憶部22及び同期先装置50の記憶部23における断片データ及び識別子の格納構造は同一である。つまり、例えば断片データx0及び断片データx0´は対応し、識別子h0及び識別子h0´は対応する。断片データx1及び断片データx1´、識別子h1及び識別子h1´のような他の断片データ及び識別子についても同様である。
まず、図12に示すステップS71〜ステップS74の処理に相当するステップS91〜ステップS94の処理が実行される。
データアクセス部51は、同期制御部53によって取得された断片データxi(差分データ)及び識別子hiを対応付けて記憶部23に書き込む(ステップS95)。このとき、データアクセス部51は、同期制御部53によって取得された断片データxiを、当該断片データxiに対応する断片データxi´に上書きする。また、データアクセス部51は、同期制御部53によって取得された識別子hiを、当該識別子hiに対応する識別子hi´に上書きする。
次に、図12に示すステップS78の処理に相当するステップS96の処理が実行される。
上記したように本変形例においては、同期処理において断片データが同期先装置50の記憶部23に書き込まれた場合、同期元装置30の記憶部22から取得された識別子が同期先装置50の記憶部23に書き込まれる。これにより、同期処理の際、同期先装置50において記憶部23に書き込まれる断片データに対応する識別子を生成する必要がないため、当該同期先装置50の処理量を軽減することが可能となる。
[第2の変形例]
次に、図15を参照して、本実施形態の第2の変形例について説明する。前述した実施形態及び第1の変形例では、ブロックデバイス(ブロックデバイスのドライバ)のレイヤにおいて機能が提供されているのに対し、本変形例では、ファイルシステム(ファイルシステムのドライバ)のレイヤにおいて機能が提供されている。
図15を参照して、本変形例に係るデータ同期システム100の同期元装置30または同期先装置50におけるデータの書き込みアクセスの処理動作について説明する。ここでは、同期元装置30について説明する。
本変形例においては、データアクセス部31及び識別子生成部32は、例えばファイルシステム(またはファイルシステム上位側フィルタドライバ)の中で機能する。この場合、同期元装置30において扱われるデータは、例えばファイル等である。
図15に示すように、データアクセス部31に対して例えば書き込みアクセス(または読み込みアクセス)を実行するのは、例えばユーザアプリケーション等である(ステップS101)。
識別子生成部32は、書き込みアクセスによって指定される書き込みデータが分割された複数の断片データの各々に対応する識別子群を生成する(ステップS102)。この複数の断片データは、例えばファイルまたはディレクトリエントリ毎に設定される。または、ファイルまたはディレクトリエントリを更に任意のバイト間隔毎(固定長)に設定されてもよい。
データアクセス部31は、書き込みデータ及び識別子生成部32によって生成された識別子群を記憶部22に書き込む(ステップS103)。このとき、識別子群は、例えばファイルシステムのメタデータや、ユーザからの直接編集からは保護されたシステムファイルに格納される。
なお、図15には図示されていないが、例えば同期処理においては、同期制御部33及び転送部34は、例えばファイルシステムに対してアクセスする。
また、本変形例においては、前述した実施形態と同様に同期処理が実行される。なお、前述した第1の変形例と同様の同期処理が実行されても構わない。
上記したように本変形例においては、例えばデータアクセス部31及び識別子生成部32がファイルシステムレイヤにおいて機能するため、ファイルシステムデータの高速な同期処理を実現することが可能となる。
なお、本変形例においては、同期元装置30の同期制御部33または同期先装置50の同期制御部53は、例えばファイルシステム上のファイル(記憶部22または記憶部23に格納されているデータ)に付加されているタイムスタンプを定期的または指定されたときに監視する構成であってもよい。この場合、ファイルに付加されているタイムスタンプが前回監視時と異なっているときは、例えば当該ファイルに対応する識別子(群)を比較する。比較結果により識別子が一致しない(異なっている)場合には、当該識別子に対応する断片データ(例えばファイル)が同期先装置50の記憶部23に書き込まれる。
また、例えば同期元装置30においてファイルまたはディレクトリが削除/新規作成されたときには、当該同期元装置30にあわせて識別子(群)または断片データが同期先装置50において格納/削除される。
なお、本願発明は、上記実施形態またはその各変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその各変形例に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態またはその各変形例に亘る構成要素を適宜組合せてもよい。
本発明の実施形態に係るデータ同期システムを構成する同期元装置のハードウェア構成を示すブロック図。 本実施形態に係るデータ同期システムの主として機能構成を示すブロック図。 記憶部22または記憶部23における断片データ及び識別子の格納構造の一例を示す図。 同期元装置30におけるデータの書き込みアクセスの処理動作について説明するための図。 同期元装置30に対する書き込みアクセス処理の処理手順を示すフローチャート。 同期元装置30におけるデータの読み込みアクセスの処理動作について説明するための図。 同期元装置30におけるデータの読み込みアクセス処理の処理手順を示すフローチャート。 同期元装置30における識別子の読み込みアクセスの処理動作について説明するための図。 同期元装置30における識別子の読み込みアクセス処理の処理手順を示すフローチャート。 データ同期システム100における同期処理の動作について説明するための図。 データ同期システム100における同期処理の動作について説明するための図。 データ同期システム100における同期処理の際の同期先装置50の処理手順を示すフローチャート。 本実施形態の第1の変形例に係るデータ同期システム100における同期処理の動作について説明するための図。 データ同期システム100における同期処理の際の同期先装置50の処理手順を示すフローチャート。 本実施形態の第2の変形例に係るデータ同期システム100の同期元装置30または同期先装置50におけるデータの書き込みアクセスの処理動作について説明するための図。
符号の説明
10…コンピュータ、20…外部記憶装置、22…記憶部(第1の格納手段)、23…記憶部(第2の格納手段)、30…同期元装置、31…データアクセス部、32…識別子生成部(第1の生成手段)、33…同期制御部、34…転送部、50…同期先装置、51…データアクセス部(書き込み手段)、52…識別子生成部(第2の生成手段)、53…同期制御部(判定手段)、54…転送部。

Claims (12)

  1. 第1のデータを格納する第1の格納手段を有する同期元装置と、第2のデータを格納する第2の格納手段を有する同期先装置とを備え、前記同期元装置が有する第1の格納手段に格納される第1のデータ及び前記第2の格納手段に格納される第2のデータを同期させるデータ同期システムにおいて、
    前記同期元装置は、
    前記第1の格納手段に前記第1のデータが書き込まれる際に、当該第1のデータが分割された複数の第1の断片データの各々に対応する第1の識別子を生成する第1の生成手段を含み、
    前記同期先装置は、
    前記第2の格納手段に前記第2のデータが書き込まれる際に、当該第2のデータが分割された複数の第2の断片データの各々に対応する第2の識別子を生成する第2の生成手段と、
    前記第1の格納手段に格納されている第1のデータ及び前記第2の格納手段に格納されている第2のデータを同期させる際に、前記第1の生成手段によって生成された第1の識別子及び当該第1の識別子に対応する前記第2の生成手段によって生成された第2の識別子が一致するかを判定する識別子判定手段と、
    前記第1の識別子及び当該第1の識別子に対応する前記第2の識別子が一致しないと判定された場合、当該第1の識別子に対応する前記第1の断片データを前記第2の格納手段に書き込む書き込み手段と
    を含み、
    前記第2の生成手段は、前記書き込み手段によって書き込まれた前記第1の断片データに対応する前記第1の識別子を生成し、
    前記第2の格納手段は、前記第2の生成手段によって生成された前記第1の識別子を、前記書き込み手段によって書き込まれた前記第1の断片データに対応付けて格納する
    ことを特徴とするデータ同期システム。
  2. 前記識別子判定手段は、
    前記第1の生成手段によって生成された第1の識別子を取得する取得手段を含み、
    前記取得された第1の識別子及び当該第1の識別子に対応する前記第2の識別子が一致するかを判定し、
    前記第2の格納手段は、前記取得された第1の識別子及び当該第1の識別子に対応する前記第2の識別子が一致しないと判定された場合、当該取得された第1の識別子を、前記書き込み手段によって書き込まれた前記第1の断片データに対応付けて格納する
    ことを特徴とする請求項1記載のデータ同期システム。
  3. 前記第1の生成手段は、前記第1の格納手段に前記第1のデータが書き込まれる際に、当該第1のデータが分割された複数の第1の断片データの各々に対応する第1の識別子が無効であることを表す無効識別子を生成し、
    前記第2の生成手段は、前記第2の格納手段に前記第2のデータが書き込まれる際に、当該第2のデータが分割された複数の第2の断片データの各々に対応する第2の識別子が無効であることを表す無効識別子を生成し、
    前記識別子判定手段は、前記第1の格納手段に格納されている第1のデータ及び前記第2の格納手段に格納されている第2のデータを同期させる際に、前記第1の生成手段によって生成された第1の識別子または当該第1の識別子に対応する前記第2の生成手段によって生成された第2の識別子が無効識別子であるかを判定し、
    前記書き込み手段は、前記第1の識別子または当該第1の識別子に対応する前記第2の識別子が無効識別子であると判定された場合、当該第1の識別子に対応する前記第1の断片データを前記第2の格納手段に書き込む
    ことを特徴とする請求項1記載のデータ同期システム。
  4. 前記第1の生成手段は、前記第1の識別子が無効識別子であると判定された場合、当該無効識別子に対応する第1の断片データに対応する第1の識別子を生成し、
    前記第2の生成手段は、前記第2の識別子が無効識別子であると判定された場合、当該無効識別子に対応する第2の断片データに対応する第2の識別子を生成する
    ことを特徴とする請求項記載のデータ同期システム。
  5. 前記第1の格納手段は、前記第1の生成手段によって生成された第1の識別子を、当該第1の識別子に対応する第1の断片データに対応付けて格納し、
    前記第2の格納手段は、前記第2の生成手段によって生成された第2の識別子を、当該第2の識別子に対応する第2の断片データに対応付けて格納し、
    前記同期元装置は、前記第1の格納手段に格納されている第1の識別子のうち無効識別子を検出するために定期的に走査する第1の走査手段を更に含み、
    前記第1の生成手段は、前記第1の走査手段によって無効識別子が検出された場合、当該無効識別子に対応する第1の断片データに対応する第1の識別子を生成し、
    前記同期先装置は、前記第2の格納手段に格納されている第2の識別子のうち無効識別子を検出するために定期的に走査する第2の走査手段を更に含み、
    前記第2の生成手段は、前記第2の走査手段によって無効識別子が検出された場合、当該無効識別子に対応する第2の断片データに対応する第2の識別子を生成する
    ことを特徴とする請求項記載のデータ同期システム。
  6. 前記第1の生成手段は、前記複数の第1の断片データの各々に対応する第1の識別子として、当該複数の第1の断片データの各々のハッシュ値を生成し、
    前記第2の生成手段は、前記複数の第2の断片データの各々に対応する第2の識別子として、当該複数の第2の断片データの各々のハッシュ値を生成する
    ことを特徴とする請求項1記載のデータ同期システム。
  7. 前記同期元装置及び前記同期先装置とは別に設けられ、前記第1のデータ及び当該第1のデータが分割された複数の第1の断片データの各々に対応する第1の識別子を格納するための第3の格納手段を更に具備し、
    前記同期先装置は、前記第1の識別子及び前記第1のデータが分割された第1の断片データを、前記第3の格納手段から取得する取得手段を更に含み、
    前記識別子判定手段は、前記取得された第1の識別子及び当該第1の識別子に対応する前記第2の生成手段によって生成された第2の識別子が一致するかを判定し、
    前記書き込み手段は、前記取得された第1の識別子に対応する第1の断片データを前記第2の格納手段に書き込む
    ことを特徴とする請求項1記載のデータ同期システム。
  8. 前記第1のデータは第1のボリュームイメージであり、前記第2のデータは第2のボリュームイメージであり、
    前記第1の断片データは、前記第1のボリュームイメージの予め設定された論理ブロックアドレス間隔で設定され、
    前記第2の断片データは、前記第2のボリュームイメージの前記論理ブロックアドレス間隔で設定される
    ことを特徴とする請求項1記載のデータ同期システム。
  9. 前記第1のデータは複数の第1のファイルであり、前記第2のデータは複数の第2のファイルであり、
    前記第1の断片データは、前記複数の第1のファイルのファイル毎に設定され、
    前記第2の断片データは、前記複数の第2のファイルのファイル毎に設定される
    ことを特徴とする請求項1記載のデータ同期システム。
  10. 前記第1のデータは複数の第1のファイルであり、前記第2のデータは複数の第2のファイルであり、
    前記第1の断片データは、前記複数の第1のファイルの任意のバイト間隔毎に設定され、
    前記第2の断片データは、前記複数の第2のファイルの任意のバイト毎に設定される
    ことを特徴とする請求項1記載のデータ同期システム。
  11. 前記第1のファイル及び前記第2のファイルにはタイムスタンプが付加されており、
    前記同期元装置は、前記タイムスタンプを監視することにより、前記第1の断片データに対応する第1の識別子を再生成する必要があるかを判定する第1のタイムスタンプ判定手段を更に含み、
    前記第1の生成手段は、前記第1の識別子を再生成する必要があると判定された場合、新たな第1の識別子を生成し、
    前記同期先装置は、前記タイムスタンプを監視することにより、前記第2の断片データに対応する第2の識別子を再生成する必要があるかを判定する第2のタイムスタンプ判定手段を更に含み、
    前記第2の生成手段は、前記第2の識別子を再生成する必要があると判定された場合、
    新たな第2の識別子を生成する
    ことを特徴とする請求項または10記載のデータ同期システム。
  12. 第1のデータを格納する第1の格納手段を有する同期元装置と、第2のデータを格納する第2の格納手段をする同期先装置とを備え、前記同期元装置が有する第1の格納手段に格納されている第1のデータ及び前記第2の格納手段に格納されている第2のデータを同期させるデータ同期システムのコンピュータにより実行されるデータ同期プログラムであって、
    前記第1の格納手段に前記第1のデータが書き込まれる際に、当該第1のデータが分割された複数の第1の断片データの各々に対応する第1の識別子を生成するステップと、
    前記第2の格納手段に前記第2のデータが書き込まれる際に、当該第2のデータが分割された複数の第2の断片データの各々に対応する第2の識別子を生成するステップと、
    前記第1の格納手段に格納されている第1のデータ及び前記第2の格納手段に格納されている第2のデータを同期させる際に、前記第1の生成手段によって生成された第1の識別子及び当該第1の識別子に対応する前記第2の生成手段によって生成された第2の識別子が一致するかを判定するステップと、
    前記第1の識別子及び当該第1の識別子に対応する前記第2の識別子が一致しないと判定された場合、当該第1の識別子に対応する前記第1の断片データを前記第2の格納手段に書き込むステップと
    前記書込まれた前記第1の断片データに対応する前記第1の識別子を生成するステップと、
    前記生成された前記書込まれた前記第1の断片データに対応する前記第1の識別子を、当該第1の断片データに対応付けて前記第2の格納手段に格納するステップと
    を実行させるデータ同期プログラム。
JP2007183541A 2007-07-12 2007-07-12 データ同期システム及びデータ同期プログラム Expired - Fee Related JP4550869B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007183541A JP4550869B2 (ja) 2007-07-12 2007-07-12 データ同期システム及びデータ同期プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007183541A JP4550869B2 (ja) 2007-07-12 2007-07-12 データ同期システム及びデータ同期プログラム

Publications (2)

Publication Number Publication Date
JP2009020753A JP2009020753A (ja) 2009-01-29
JP4550869B2 true JP4550869B2 (ja) 2010-09-22

Family

ID=40360336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007183541A Expired - Fee Related JP4550869B2 (ja) 2007-07-12 2007-07-12 データ同期システム及びデータ同期プログラム

Country Status (1)

Country Link
JP (1) JP4550869B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5339432B2 (ja) * 2009-02-25 2013-11-13 日本電気株式会社 ストレージシステム
WO2014076838A1 (ja) * 2012-11-19 2014-05-22 株式会社日立システムズ 仮想マシン同期システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10111822A (ja) * 1996-10-04 1998-04-28 Nec Corp システム構成情報を用いたバージョン管理方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
JP2003216471A (ja) * 2002-01-28 2003-07-31 Seiko Epson Corp データ更新方法、データ更新機能付装置及びネットワークシステム
JP4215542B2 (ja) * 2002-03-19 2009-01-28 ネットワーク アプライアンス, インコーポレイテッド 2つのスナップショット間の変化を判定して宛先スナップショットに送信するシステム及び方法
JP4568532B2 (ja) * 2004-05-13 2010-10-27 日本無線株式会社 無線装置制御システム、無線装置および制御装置
JP2006004277A (ja) * 2004-06-18 2006-01-05 Ricoh Co Ltd 情報共有装置および情報送信方法、情報受信方法

Also Published As

Publication number Publication date
JP2009020753A (ja) 2009-01-29

Similar Documents

Publication Publication Date Title
US20230117542A1 (en) Remote Data Replication Method and System
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US8924354B2 (en) Block level data replication
US7421551B2 (en) Fast verification of computer backup data
JP5065295B2 (ja) 異なる仮想マシン・イメージ間でファイルを共有するための方法、システム、およびコンピュータ読み取り可能媒体
US9626518B2 (en) Avoiding encryption in a deduplication storage
CN115098299B (zh) 一种虚拟机的备份方法、容灾方法、装置及设备
US10496674B2 (en) Self-describing volume ancestry for data synchronization
JP5644777B2 (ja) ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
JP2007507030A (ja) データを同期させるための方法、システム及びプログラム
US10120595B2 (en) Optimizing backup of whitelisted files
CN111158858B (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
US7904422B2 (en) System for deploying data from deployment-source device to deployment-destination device
JP4419884B2 (ja) データ複製装置、方法及びプログラム並びに記憶システム
EP2669806B1 (en) Storage system
JP4550869B2 (ja) データ同期システム及びデータ同期プログラム
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP2013058134A (ja) データ書き込み装置
US10423494B2 (en) Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
US20120059986A1 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
JP2005316708A (ja) 階層記憶装置、その復旧方法、及び復旧プログラム
JP2019159721A (ja) ストレージ装置、制御方法及び制御プログラム
CN114925019B (zh) 虚拟机快照保存、读取方法、装置、电子设备及存储介质
US20110320753A1 (en) Data processing apparatus, computer program therefor, and data processing method
JP2007034551A (ja) データの二重化管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100608

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100708

R150 Certificate of patent or registration of utility model

Ref document number: 4550869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees