JP2014178827A - レプリケーションシステム - Google Patents

レプリケーションシステム Download PDF

Info

Publication number
JP2014178827A
JP2014178827A JP2013051757A JP2013051757A JP2014178827A JP 2014178827 A JP2014178827 A JP 2014178827A JP 2013051757 A JP2013051757 A JP 2013051757A JP 2013051757 A JP2013051757 A JP 2013051757A JP 2014178827 A JP2014178827 A JP 2014178827A
Authority
JP
Japan
Prior art keywords
data
replica
transfer
storage system
feature amount
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.)
Granted
Application number
JP2013051757A
Other languages
English (en)
Other versions
JP6083268B2 (ja
Inventor
Jiajun Gu
佳駿 顧
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 JP2013051757A priority Critical patent/JP6083268B2/ja
Publication of JP2014178827A publication Critical patent/JP2014178827A/ja
Application granted granted Critical
Publication of JP6083268B2 publication Critical patent/JP6083268B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】レプリケーションにおけるデータ転送の高速化を図る。
【解決手段】本発明のレプリケーションシステムは、マスタ側ストレージシステムがそれぞれが並列にレプリカ側ストレージシステムに対してデータを転送する複数のデータ転送手段を備えると共に、各データ転送手段は、転送候補であるデータの内容に基づくデータ特徴量情報を生成して、当該データ特徴量情報が、レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータのデータ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストにデータ特徴量情報が存在している転送候補のデータはレプリカ側ストレージシステムに転送せず、転送データリストにデータ特徴量情報が存在していない転送候補のデータはレプリカ側ストレージシステムに転送する。
【選択図】図22

Description

本発明は、レプリケーションシステムにかかり、特に、重複記憶を排除するレプリケーションシステムに関する。
近年、ITシステムの「災害対策・遠隔バックアップ」の必要性への認識が高まり、レプリケーションの帯域のコストも重視され、高速、かつ効率的なレプリケーションが求められる。
通常のストレージシステムでは、図1に示すように、マスタサイト1000からレプリカサイト1200に対して、当該レプリカサイト1200に存在しないファイルのみを転送する(符号1113)ことにより、転送量を低減している。さらに、マスタサイト1000におけるマルチスレッドレプリケーションにより、異なるファイルを各スレッド1110が独立に処理し、同時に転送することにより、レプリケーションを高速化している。
また、近年では、ストレージシステムにおいて、ファイルをブロックデータに分割して格納する際に、同一内容のブロックデータに関しては、既に記憶されているブロックデータを参照することで、重複記憶を排除することが行われている。このような重複排除ストレージシステムでは、図2に示すように、マスタサイト1100とレプリカサイト1200間でブロックデータの重複をチェックし(図2の符号1112)、レプリカサイト1200に存在しないブロックデータのみを転送している。このため、一部が変更されたファイルについては、変更されたブロックデータのみの転送となり、転送量をさらに低減することができる。
なお、レプリケーションにおけるデータ転送量の低減に関する技術が特許文献1に開示されている。特許文献1では、重複するデータを一回転送するだけでデータ転送を完了させることが記載されている。
特開2006−146580号公報
ここで、重複排除ストレージシステムでのレプリケーションでは、重複するブロックデータを転送しないという前提がある。また、図2に示すようなマルチスレッドレプリケーションでは、各スレッド1110が独立に処理するブロックデータがレプリカサイト1200に存在するか否かを判断し(符号1112)、存在しない場合に転送している(符号1113)。このため、各スレッド1110が同時に処理するブロックデータ間が重複し、レプリカサイト1200にブロックデータがまだ存在しない場合は、重複が判断できず、ブロックデータを重複して転送してしまう。つまり、重複排除ストレージシステムにおけるマルチスレッドレプリケーションでは、重複するブロックデータを送信してしまう可能性があり、データ転送量を低減し、データ転送の高速化を図ることができない、という問題があった。
このため、本発明の目的は、上述した課題である、マルチスレッドレプリケーションにおけるデータ転送量の低減、及び、データ転送の高速化を図ることができないこと、を解決することができるレプリケーションシステムを提供することにある。
本発明の一形態であるレプリケーションシステムは、
マスタ側記憶装置を備えたマスタ側ストレージシステムと、レプリカ側記憶装置を備えたレプリカ側ストレージシステムと、がネットワークを介して接続されており、
前記マスタ側ストレージシステムは、前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を備えると共に、
前記レプリカ側ストレージシステムは、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成するレプリカ手段を備え、
前記マスタ側ストレージシステムの前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
という構成をとる。
また、本発明の他の形態であるレプリケーション方法は、
マスタ側記憶装置を備えたマスタ側ストレージシステムと、レプリカ側記憶装置を備えたレプリカ側ストレージシステムと、がネットワークを介して接続されたレプリケーションシステムによるレプリケーション方法であって、
前記マスタ側ストレージシステムが、前記マスタ側記憶装置に記憶されたデータを、複数のデータ転送手段にて並列に前記レプリカ側ストレージシステムに対して転送する際に、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送し、
前記レプリカ側ストレージシステムが、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成する、
という構成をとる。
また、本発明の他の形態であるマスタ側ストレージシステムは、
装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージシステムであって、
前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を備えると共に、
前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
という構成をとる。
また、本発明の他の形態であるプログラムは、
装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージ装置に、
前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を実現すると共に、
前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
ことを実現させるためのプログラムである。
本発明は、以上のように構成されることにより、レプリケーションにおけるデータ転送量の低減、及び、データ転送の高速化を図ることができる。
本発明に関連するレプリケーションシステムの構成及び動作の概略を示すブロック図である。 本発明の関連するレプリケーションシステムの構成及び動作の概略を示すブロック図である。 本発明の実施形態1におけるレプリケーションシステムの構成及び動作の概略を示すブロック図である。 図3に開示したマスタサイトあるいはレプリカサイトを構成するストレージシステムの構成の概略を示すブロック図である。 図3に開示したマスタサイトあるいはレプリカサイトの構成を示すブロック図である。 図4に開示したマスタシステムあるいはレプリカシステムにおけるデータ書き込み処理の様子を説明するための説明図である。 図4に開示したマスタシステムあるいはレプリカシステムデータ書き込み処理の様子を説明する説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の動作を示すフローチャートである。 図3に開示したレプリケーションシステムによるレプリケーション処理の動作を示すフローチャートである。 図3に開示したレプリケーションシステムによるレプリケーション処理の動作を示すフローチャートである。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 図3に開示したレプリケーションシステムによるレプリケーション処理の様子を示す説明図である。 本発明の付記1におけるストレージシステムの構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図3乃至図21を参照して説明する。図3は、レプリケーションシステム全体の構成を示すブロック図であり、図4乃至図5は、レプリケーションシステムを構成するストレージシステムの構成を示すブロック図である。図6乃至図7は、レプリケーションシステムにおけるデータ書き込み処理の動作を説明するための説明図である。図8A乃至図8Cは、レプリケーションシステムにおけるレプリケーションの動作を示すフローチャートである。図9乃至図21は、レプリケーション処理の様子を説明する説明図である。
ここで、本実施形態は、後述する付記に記載のレプリケーションシステムを構成するマスタ側ストレージシステム及びレプリカ側ストレージシステムの具体的な一例を示すものである。そして、以下では、各ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるレプリケーションシステムを構成する各ストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
[構成]
図3に示すように、本実施形態におけるレプリケーションシステムは、ストレージシステムであるマスタサイト100及びレプリカサイト200がネットワークN(レプリケーション回線)を介して接続されて構成されている。そして、レプリケーションシステムは、マスタサイト100に記憶されているファイル(データ)を、レプリカサイト200に転送してレプリケーションするものである。
ここで、図3に開示したレプリケーションシステムの構成及びレプリケーション処理の流れの概略について説明する。マスタサイト100は、レプリケーションを行う複数のスレッド110を備えており、各スレッド110は、レプリケーション対象ファイルリスト101を参照してファイルであるデータ103を記憶装置から読み出し、レプリケーション処理を行う。
このとき、各スレッド110は、スレッド間において重複してレプリケーションを行うブロックデータのチェック111をそれぞれ行う。特に、各スレッド110は、実行中のレプリケーションジョブにて、自身が転送するブロックデータと、他のスレッド110が転送中または転送済みのブロックデータと、の重複チェックを行う。
また、各スレッド110は、転送候補であるブロックデータがレプリカサイト200に存在するか否かを、当該レプリカサイトに確認するチェック112を行う。そして、各スレッド110は、上述したスレッド間のチェック111とサイト間のチェック112の結果に基づいて、対象となるブロックデータ又はブロックデータのメタデータを複製して、レプリカサイト200に転送する(符号113)。
具体的には、本実施形態では、マスタサイト100にブロックデータの情報を記録する構成を用意する。ここでは、ブロックデータの一意性を識別するためのハッシュ値を記録するハッシュテーブルとする。なお、チェックサム値等を利用することも考えられる。ハッシュテーブルには、「転送中」カテゴリと「転送済み」カテゴリを設ける。
レプリケーションジョブを開始した際に、複数のブロックデータを各スレッド110が同時に処理し、ブロックデータのハッシュ値を計算し、マスタサイト100にあるハッシュテーブルに確認し、その結果に応じて下記の処理を行う。
・マスタサイト100のハッシュテーブルにハッシュ値のエントリーが存在しない場合は、レプリカサイト200にあるブロックデータリスト201と比較し、存在するかを確認する。
・レプリカサイト200にハッシュ値が存在する場合は、ハッシュテーブルの「転送済み」カテゴリに登録し、ブロックデータのメタデータのみを転送する。転送が完了になると、該当ブロックデータの処理は完了し、次のブロックデータを処理する。
・レプリカサイト200にハッシュ値が存在しない場合は、「転送中」カテゴリに処理中のブロックデータのハッシュ値を登録し、当該ブロックデータを転送する。転送が完了になると、「転送中」カテゴリのエントリーを「転送済み」カテゴリに移動する。これにより、該当ブロックデータの処理は完了し、次のブロックデータを処理する。
・「転送中」カテゴリにエントリーが存在している場合は、転送待ちキャッシュにブロックデータのメタデータを登録する。これにより、該当ブロックデータの処理は完了し、次のブロックデータを処理する。
・「転送済み」カテゴリにエントリーが存在している場合は、該当ブロックデータはレプリカサイト200に存在するため、ブロックデータを転送せずに、ブロックデータのメタデータのみを転送する。転送が完了になると、該当ブロックデータの処理は完了し、次のブロックデータを処理する。
各スレッド110は、上記のようにブロックデータの処理を繰り返し、全てのブロックデータの処理が完了になると、転送待ちキャッシュに登録しているエントリーを処理し、該当メタデータを転送する。
レプリカサイト200では、上記マスタサイト100から転送されてきたブロックデータまたはブロックデータのメタデータを受信し(符号211)、記憶装置に保存する(符号203)。レプリカサイト200は、ブロックデータが保存された後に、ブロックデータリスト201を更新する。また、レプリカサイト200は、ブロックデータとブロックデータのメタデータをもとにファイルを生成し、ファイルリスト202を更新する。
上記の処理にて、各スレッドは、ハッシュテーブルや転送待ちキャッシュへ参照/更新が同時に行われる可能性があるため、参照/更新ロックにより、排他制御を行う。ここでは、類似する処理として、参照/更新操作に矛盾を生じないように各スレッドに優先度を付与すること等も考えられる。
また、通信障害等の障害により、ブロックデータあるいはブロックデータのメタデータの転送が正常に完了できなかった場合は、かかる転送が完了するように、再送が行われる。
以上のように、レプリケーションシステムでは、各スレッドが転送中または転送済みのブロックデータの情報を記録する構成(ハッシュテーブル)と、転送しようとするブロックデータのメタデータを記録する構成(転送待ちキャッシュ)と、をそれぞれマスタサイト100に用意している。そして、各スレッドは、新しいブロックデータの処理時に、ハッシュテーブル及び転送待ちキャッシュに確認し、エントリーが存在した場合、ブロックデータを転送しないことで、レプリケーション回線Nに重複してブロックデータを転送せず、レプリケーション処理を効率化つまり高速化を図ることができる。
次に、マスタサイト100及びレプリカサイト200を構成するストレージシステム1の詳細な構成を、図4乃至図5を参照して説明する。まず、図4に示すように、マスタサイト100及びレプリカサイト200であるストレージシステムは、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード2と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード3と、を備えている。なお、アクセラレータノード2の数とストレージノード3の数は、図4に示したものに限定されず、さらに多くの各ノード2,3が接続されて構成されていてもよい。
さらに、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。
なお、以下では、ストレージシステム1が1つのシステムであるとして、当該ストレージシステム1が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム1が有する構成及び機能は、アクセラレータノード2あるいはストレージノード3のいずれに備えられていてもよい。なお、ストレージシステム1は、図4に示すように、必ずしもアクセラレータノード2とストレージノード3とを備えていることに限定されず、いかなる構成であってもよく、例えば、1台のコンピュータにて構成されていてもよい。さらには、ストレージシステム1は、コンテンツアドレスストレージシステムであることにも限定されず、重複排除機能を有しているストレージシステムであればよい。
図5は、マスタサイト100及びレプリカサイト200であるストレージシステム1の詳細な構成を示す機能ブロックである。ストレージシステム1は、演算装置で構成された制御装置10と、記憶装置で構成されたデータ記憶部40と、レプリカサイト200あるいはマスタサイト100とデータ通信するための通信部50と、を備えている。
上記データ記憶部40は、データを保存する場所であり、ファイルが分割されたブロックデータ44、当該ブロックデータによるファイル構成を表すメタデータ43、後述するハッシュテーブル41、転送待ちキャッシュ42、などを格納する領域を形成している。また、制御装置10は、プログラムが組み込まれることにより構築された、データを重複排除してデータ記憶部40に格納するための重複圧縮制御部31、メタデータ制御部32、ブロックデータ制御部33、を備える。さらに、制御装置10は、プログラムが組み込まれることにより構築された、データをレプリケーションするためのレプリケーション制御部20を備えており、当該レプリケーション制御部20は、スレッド間制御部21、スレッド毎制御部22、ハッシュテーブル制御部23、転送待ちキャッシュ制御部24、差分チェック制御部25、レプリケーション送受信制御部26、を備えている。
そして、マスタサイト100を構成するストレージシステム1(マスタ側ストレージシステム)における上記レプリケーション制御部20によるレプリケーション処理を行うための機能は、図3で示すように、複数のスレッド110(データ転送手段)として起動し、それぞれが並列にレプリケーション処理を行う。また、レプリカサイト200を構成するストレージシステム1(レプリカ側ストレージシステム)における上記レプリケーション制御部20によるレプリケーション処理を行うための機能は、マスタサイト100から転送されたデータに基づいて当該マスタサイト100に記憶されているデータのレプリカを生成する処理を行う(レプリカ手段)。
上述したように、マスタサイト100及びレプリカサイト200であるストレージシステム1が備える構成の機能は、以下の動作説明にて詳細に説明する。
[動作]
まず、マスタサイト100及びレプリカサイト200であるストレージシステム1による、重複記憶を排除するデータ書き込み処理、及び、データ読み出し処理の動作について、図6乃至図7を参照して説明する。なお、以下に説明する動作は、ストレージシステム1が備える重複圧縮制御部31、メタデータ制御部32、ブロックデータ制御部33等の処理によるものである。
まず、図6及び図7の矢印Y1に示すように、ストレージシステム1が書き込み要求されたファイルAの入力を受ける。すると、図6及び図7の矢印Y2に示すように、ファイルAを所定容量(例えば、64KB)のブロックデータDに分割する。
続いて、分割されたブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値H(データ特徴量情報)を算出する(図7の矢印Y3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
続いて、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図7の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたブロックデータDのコンテンツアドレスCAとして返却する。
そして、返却されたコンテンツアドレスCAが参照する既に格納されているデータを、書き込み要求されたブロックデータDとして使用する。つまり、書き込み要求されたブロックデータDの格納先として、返却されたコンテンツアドレスCAが参照する領域を指定することで、当該書き込み要求されたブロックデータDを記憶したこととする。これにより、書き込み要求にかかるブロックデータDを、実際に記憶装置内に記憶する必要がなくなる。
また、書き込み要求にかかるブロックデータDがまだ記憶されていないと判断された場合には、以下のようにして書き込み要求にかかるブロックデータDの書き込みを行う。まず、書き込み要求にかかるブロックデータDを圧縮して、図7の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図6の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ91)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ91に追加する。例えば、図6の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ92)を追加する。これにより、9つの分割データ91と、3つの冗長データ92とにより構成される12個のフラグメントデータからなるデータセット90を生成する。
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図6に示すように、12個のフラグメントデータD1〜D12を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータD1〜D12を1つずつそれぞれ格納する(図7の矢印Y6参照)。
続いて、ストレージシステム1は、上述したように格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム1内のファイルシステムに返却する(図7の矢印Y7)。すると、ストレージシステム1は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理する。
また、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード3がMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード2やストレージノード3の記憶装置に格納される。
さらに、ストレージシステム1は、上述したように格納したファイルを読み出す制御を行う。例えば、ストレージシステム1に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して返却する。
次に、上述したように重複排除機能を有するマスタサイト100(マスタ側ストレージシステム)の記憶装置内に書き込まれたデータを、同じく重複排除機能を有するレプリカサイト200(レプリカ側ストレージシステム)の記憶装置にレプリケーションするときの動作を説明する。
マスタサイト100を構成するストレージシステム1の差分チェック制御部25は、データ記憶部40に格納されているファイルであるレプリケーション対象ファイルリスト(図3の符号101)を特定する(図8AのステップS1)。レプリケーション対象ファイルリスト101を特定する方法としては、レプリケーションジョブを開始した時点のマスタサイト100とレプリカサイト100とのファイルシステムのスナップショットを取り、両スナップショットを比較し、更新ファイルを特定する方法や、マスタサイト100におけるファイルの変更履歴により、更新ファイルを特定する方法、などが考えられる。
そして、スレッド間制御部21は、レプリケーション対象ファイルリスト101に対し、各スレッド(図3の符号110)の処理対象を均等に決めておく(図8AのステップS2)。各スレッド110が異なるファイルを処理するために、例えば、ファイルのinode情報をもとにし、処理対象を決めると考えられる。これは事前に処理対象を決めておく方法であるが、別の方法としては、各スレッド110が処理したファイルに対して処理済みのフラグ等を設定しておき、次回処理対象を選択する時に、処理済みのフラグが設定されていないファイルのみを選択する方法も考えられる。
続いて、スレッド間制御部21及びスレッド毎制御部22により、各スレッド110にて同時にレプリケーション処理を開始する(図8AのステップS3,・・・,Sn)。つまり、各スレッド110にて、図8Bの処理が順次実行される。また、ここでは、図9に示すように、スレッド数を4、ファイル数を4にし、各スレッド110がファイルを1つずつ処理する場合を説明する。なお、各ファイル1,2,3,4は、図9に示すように、各ブロックデータ(A,B,C,C’等)の組み合わせにより構成されていることとする。
まず、各スレッドは、ブロックデータ制御部33により、処理するファイルをブロックデータに分割し、当該ブロックデータ(転送候補のデータ:分割データ)のハッシュ値(データ特徴量情報)を計算する(図8BのステップS11)。ここでは、ブロックデータのチェックサムを計算する方法も考えられる。続いて、ブロックデータのハッシュ値をハッシュテーブル制御部23を通じて、ハッシュテーブル41に存在確認を行う。このとき、参照/更新の衝突が生じないように、ハッシュテーブル41への操作は参照/更新ロックを取得して行われる。以下では、説明を簡単にするため、各スレッドの処理順番をスレッド1,2,3,4の順とする。
図9に示すように、スレッド1は、ファイル1を処理対象とし、当該ファイル1を構成するブロックデータAのハッシュ値H(A)をハッシュテーブル41(転送データリスト)に確認する(図8BのステップS12)。この場合は、ハッシュテーブル41に存在しないため(図8BのステップS12:存在なし)、重複圧縮制御31を通じて、レプリカサイト200を構成するストレージシステムにあるブロックデータリスト201(レプリカデータリスト)と比較する(図8BのステップS13)。すると、図9に示すように、レプリカサイト200にはH(A)に対応するブロックデータAが存在しない(図8BのステップS13:存在なし)。このため、スレッド1は、図10に示すように、ハッシュテーブル41の「転送中」にH(A)を登録し(図8BのステップS14)、H(A)に対応するブロックデータAのレプリカサイト200への転送を始める(図8BのステップS15)。
続いて、図11に示すように、スレッド2は、ファイル2を処理対象とし、当該ファイル2を構成するブロックデータA(R21)のハッシュ値H(A)をハッシュテーブル41に確認する(図8BのステップS12)。この場合は、ハッシュテーブル41の「転送中」に既に存在しているため(図8BのステップS12:「転送中」に存在)、H(A)に対応するブロックデータAを転送せずに、図11に示すように、当該ブロックデータA(R21)のメタデータM(A)を転送待ちキャッシュ42に登録する(図8BのステップS20)。
そして、スレッド2は、ファイル2を構成する次のブロックデータB(R22)の処理を始める(ステップS19:No)。スレッド2は、図11に示すように、ブロックデータB(R22)のハッシュ値H(B)がハッシュテーブル41に存在しないため(ステップS12:存在なし)、重複圧縮制御31を通じて、レプリカサイト200を構成するストレージシステムにあるブロックデータリスト201と比較する(図8BのステップS13)。すると、図11に示すように、レプリカサイト200にはH(B)に対応するブロックデータBが存在しないため(図8BのステップS13:存在なし)、ハッシュテーブル41の「転送中」にH(B)を登録し(図8BのステップS14)、H(B)に対応するブロックデータB(R22)のレプリカサイト200への転送を始める(図8BのステップS15)。
続いて、図12に示すように、スレッド3は、ファイル3を処理対象とし、当該ファイル3を構成するブロックデータA(R31)のハッシュ値H(A)をハッシュテーブル41に確認する(図8BのステップS12)。この場合は、ハッシュテーブル41の「転送中」に既に存在しているため(図8BのステップS12:「転送中」に存在)、H(A)に対応するブロックデータAを転送せずに、図12に示すように、当該ブロックデータA(R31)のメタデータM(A)を転送待ちキャッシュ42に登録する(図8BのステップS20)。続いて、スレッド3は、ファイル3を構成する次のブロックデータB(R32)の処理を始めるが(図8BのステップS19:No)、当該ブロックデータBのハッシュ値H(B)も「転送中」に既に存在しているため、ブロックデータBを転送せずに、当該ブロックデータB(R32)のメタデータM(B)を転送待ちキャッシュ42に登録する。
さらに、スレッド3は、ファイル3を構成するさらに次のブロックデータC’(R33)の処理を始める(ステップS19:No)。この場合、ブロックデータC’(R33)のハッシュ値H(C’)がハッシュテーブル41に存在しないため(ステップS12:存在なし)、重複圧縮制御31を通じて、レプリカサイト200を構成するストレージシステムにあるブロックデータリスト201と比較する(図8BのステップS13)。すると、図12に示すように、レプリカサイト200にはH(C’)に対応するブロックデータC’が存在しないため(図8BのステップS13:存在なし)、ハッシュテーブル41の「転送中」にH(C’)を登録し(図8BのステップS14)、H(C’)に対応するブロックデータC’のレプリカサイト200への転送を始める(図8BのステップS15)。
続いて、図13に示すように、スレッド4は、ファイル4を処理対象とするが、当該ファイル4を構成するブロックデータA(R41)、ブロックデータB(R42)のハッシュ値H(A),H(B)がハッシュテーブル41の「転送中」に既に存在している。このため、上述同様に、ブロックデータA,Bを転送せずに、メタデータM(A),M(B)を転送待ちキャッシュ42に登録する。そして、スレッド4、ファイル4を構成するさらに次のブロックデータC(R43)の処理を始めるが、当該ブロックデータCのハッシュ値H(C)がハッシュテーブル41に存在しないため(図8BのステップS12:存在なし)、重複圧縮制御31を通じて、レプリカサイト200を構成するストレージシステムにあるブロックデータリスト201と比較する。すると、図13に示すように、レプリカサイト200にはH(C)に対応するブロックデータCが存在しないため(図8BのステップS13:存在なし)、ハッシュテーブル41の「転送中」にH(C)を登録し(図8BのステップS14)、H(C)に対応するブロックデータCのレプリカサイト200への転送を始める(図8BのステップS15)。
その後、図14に示すように、スレッド1は、ブロックデータA(R11)のレプリカサイト100への転送を完了し(図8BのステップS15)、当該ブロックデータAのメタデータの転送も完了すると(図8BのステップS16)、ハッシュテーブル41のH(A)を「転送中」から「転送済み」に移動する(図8BのステップS17)。これに応じて、レプリカサイト200は、図14に示すように、マスタサイト100から受信したブロックデータA(R51)を保存し、ブロックデータリスト201を更新する(図8BのステップS18)。そして、スレッド1は、ファイル1を構成する次のブロックデータB(R12)の処理を始める(図8BのステップS19:No)。
続いて、スレッド1は、次のブロックデータB(R12)の処理を始めるが、当該ブロックデータB(R12)のハッシュ値H(B)がハッシュテーブル41の「転送中」に既に存在しているため(図8BのステップS12:「転送中」に存在)、上述同様に、ブロックデータBを転送せずに、メタデータM(B)を転送待ちキャッシュ42に登録する(図8BのステップS20)。その後、さらに次のブロックデータC(R13)の処理を始めるが、当該ブロックデータCのハッシュ値H(C)もハッシュテーブル41の「転送中」に既に存在しているため(図8BのステップS12:「転送中」に存在)、ブロックデータCを転送せずに、メタデータM(C)を転送待ちキャッシュ42に登録する(図8BのステップS20)。これにより、スレッド1は、ファイル1を構成するすべてのブロックデータA,B,Cの処理が完了したため(図8BのステップS19:Yes)、図14に示すようにスレッド1の状態は完了となる。
続いて、図15に示すように、スレッド2は、ブロックデータB(R22)のレプリカサイト100への転送を完了し(図8BのステップS15)、当該ブロックデータBのメタデータの転送も完了すると(図8BのステップS16)、ハッシュテーブル41のH(B)を「転送中」から「転送済み」に移動する(図8BのステップS17)。これに応じて、レプリカサイト200は、図15に示すように、マスタサイト100から受信したブロックデータB(R61)を保存し、ブロックデータリスト201を更新する(図8BのステップS18)。そして、スレッド2は、ファイル2を構成する次のブロックデータA(R23)の処理を始める(図8BのステップS19:No)。
そして、スレッド2は、次のブロックデータA(R23)の処理を始めるが、当該ブロックデータA(R23)のハッシュ値H(A)は上述したスレッド1による転送により、ハッシュテーブル41の「転送済み」に既に存在している(図8BのステップS12:「転送済み」に存在)。このため、スレッド2は、ブロックデータAを転送せずに、当該ブロックデータAのメタデータM(A)のみをレプリカサイト200に転送する処理を始める(図8BのステップS22)。
続いて、図16に示すように、スレッド3は、ブロックデータC’(R33)のレプリカサイト100への転送を完了し(図8BのステップS15)、当該ブロックデータC’のメタデータの転送も完了すると(図8BのステップS16)、ハッシュテーブル41のH(C’)を「転送中」から「転送済み」に移動する(図8BのステップS17)。これに応じて、レプリカサイト200は、図16に示すように、マスタサイト100から受信したブロックデータC’(R71)を保存し、ブロックデータリスト201を更新する(図8BのステップS18)。これにより、スレッド3は、ファイル3を構成するすべてのブロックデータA,B,C’の処理が完了したため(図8BのステップS19:Yes)、図16に示すようにスレッド3の状態は完了となる。
続いて、図17に示すように、スレッド4は、ブロックデータC(R43)のレプリカサイト100への転送を完了し(図8BのステップS15)、当該ブロックデータCのメタデータの転送も完了すると(図8BのステップS16)、ハッシュテーブル41のH(C)を「転送中」から「転送済み」に移動する(図8BのステップS17)。これに応じて、レプリカサイト200は、図17に示すように、マスタサイト100から受信したブロックデータC(R81)を保存し、ブロックデータリスト201を更新する(図8BのステップS18)。これにより、スレッド4は、ファイル4を構成するすべてのブロックデータA,B,Cの処理が完了したため(図8BのステップS19:Yes)、図17に示すようにスレッド4の状態は完了となる。
その後、図18に示すように、スレッド2は、ブロックデータA(R23)のメタデータM(A)のレプリカサイト100への転送を完了する(図8BのステップS22)。これに応じて、レプリカサイト200は、転送されたメタデータM(A)(R62参照)を保存する(図8BのステップS23)。これにより、スレッド2は、ファイル2を構成するすべてのブロックデータA,B,Aの処理が完了したため(図8BのステップS19:Yes)、図18に示すようにスレッド2の状態は完了となる。
以上のように、すべてのスレッド1,2,3,4の状態は完了となると(図8CのステップS31)、マスタサイト100は、転送待ちキャッシュ制御部24により、転送待ちキャッシュ42にあるメタデータを処理し、すべてをレプリカサイト200転送する(図8CのステップS32)。レプリカサイト200は、図19に示すように、受信したメタデータ(R52,R53,R63,R72,R73,R82,R83参照)を保存する(図8CのステップS33)。
マスタサイト100は、最後に、図20に示すように、ハッシュテーブル41と転送待ちキャッシュ42をすべてクリアする(図8CのステップS34)。そして、レプリカサイト200は、ブロックデータ制御部33とメタデータ制御部32により、図21に示すように、受け取ったブロックデータとメタデータをもとに、各ファイル1,2,3,4を生成し、ファイルリスト202の更新を行う(図8CのステップS35)。これにより、レプリケーション処理はすべて完了し、本レプリケーションジョブは完了となる。
以上のように、本発明におけるレプリケーションシステムによると、まず、ネットワークN(レプリケーション回線)には重複してブロックデータを一切転送することがない。このため、レプリケーション回線を有効に利用でき、レプリケーション処理の効率化、高速化を図ることができる。特に、同じレプリケーションジョブにおけるレプリケーション対象ファイルに重複ブロックデータが存在している場合であっても、レプリケーション回線Nを経由してレプリカサイト200に確認する必要がなく、マスタサイト200にて重複判断ができる。このため、レプリケーション回線Nでのやり取りがなくなるため、レプリケーション処理の効率化及び高速化を図ることができる。
ここで、上記では、事前に各スレッドにレプリケーション対象ファイルを均等に配置する場合を例示したが、各スレッドは毎回、レプリケーション対象ファイルを取得するよう構成してもよい。これにより、レプリケーション対象ファイルの特徴(サイズ/重複率等)によって一部のスレッドが早く完了し、マルチスレッド処理の効率が低下することを抑制することができる。
また、転送待ちキャッシュ42にあるメタデータを処理する別の方法として、すべてのブロックデータの処理を完了したスレッドは、転送待ちキャッシュ42にある自スレッドが登録したメタデータに対し、定期的に、ハッシュテーブル41の「転送済み」に確認し、ブロックデータのハッシュ値のエントリーが存在している場合は、登録したメタデータをレプリカサイト200に転送する方法も考えられる。
また、レプリケーションジョブが完了後、ハッシュテーブル41をクリアするが、レプリケーションジョブにより、ハッシュテーブル41にエントリーが膨大になり、検索が重くなった場合は、レプリケーションジョブ中でも最適化により一部またはすべてのエントリーをクリアする実装が考えられる。また、マスタサイト200における重複判断のヒット率が高めるため、検索速度とヒット率のバランスを考慮し、複数のレプリケーションジョブが完了した後に、最適化により一部またはすべてのエントリーをクリアする実装も考えられる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるレプリケーションシステム(図22参照)、マスタ側ストレージシステム、プログラム、レプリケーション方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
マスタ側記憶装置301を備えたマスタ側ストレージシステム300と、レプリカ側記憶装置401を備えたレプリカ側ストレージシステム400と、がネットワークNを介して接続されており、
前記マスタ側ストレージシステム300は、前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段302を備えると共に、
前記レプリカ側ストレージシステム400は、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成するレプリカ手段402を備え、
前記マスタ側ストレージシステム300の前記各データ転送手段301は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
レプリケーションシステム。
(付記2)
付記1に記載のレプリケーションシステムであって、
前記各データ転送手段は、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
レプリケーションシステム。
(付記3)
付記2に記載のレプリケーションシステムであって、
前記各データ転送手段は、前記分割データの前記データ特徴量情報が前記転送データリストに存在しない場合に、当該分割データの前記データ特徴量情報が、前記レプリカ側記憶装置に記憶されている前記分割データの前記データ特徴量情報が登録されたレプリカデータリストに存在するか否かを調べ、当該レプリカデータリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記レプリカデータリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
レプリケーションシステム。
(付記4)
付記2又は3に記載のレプリケーションシステムであって、
前記各データ転送手段は、前記分割データを前記レプリカ側ストレージシステムに転送しない場合に、当該分割データの分割前における前記所定単位のデータを構築するための情報を少なくとも含むメタデータを前記レプリカ側ストレージシステムに転送し、
前記レプリカ側ストレージシステムの前記レプリカ手段は、前記マスタ側ストレージシステムから転送された前記分割データ及び前記メタデータに基づいて、前記マスタ側記憶装置に記憶されているデータのレプリカを生成する、
レプリケーションシステム。
(付記5)
付記4に記載のレプリケーションシステムであって、
前記各データ転送手段は、前記分割データを前記レプリカ側ストレージシステムに転送中である場合に、当該分割データの前記データ特徴量情報を転送中である旨の情報と共に前記転送データリストに登録し、前記分割データを前記レプリカ側ストレージシステムに転送済みである場合に、当該分割データの前記データ特徴量情報を転送済みである旨の情報と共に前記転送データリストに登録し、
前記転送データリストに転送中である旨の情報と共に登録されて存在する前記データ特徴量情報に対応する前記分割データの前記メタデータは、当該分割データの前記データ特徴量情報が転送済みである旨の情報と共に前記転送データリストに登録された後に前記レプリカ側ストレージシステムに転送する、
レプリケーションシステム。
(付記6)
マスタ側記憶装置を備えたマスタ側ストレージシステムと、レプリカ側記憶装置を備えたレプリカ側ストレージシステムと、がネットワークを介して接続されたレプリケーションシステムによるレプリケーション方法であって、
前記マスタ側ストレージシステムが、前記マスタ側記憶装置に記憶されたデータを、複数のデータ転送手段にて並列に前記レプリカ側ストレージシステムに対して転送する際に、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送し、
前記レプリカ側ストレージシステムが、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成する、
レプリケーション方法。
(付記7)
付記6に記載のレプリケーション方法であって、
前記各データ転送手段が、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
レプリケーション方法。
(付記8)
装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージシステムであって、
前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を備えると共に、
前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
マスタ側ストレージシステム。
(付記9)
付記8に記載のマスタ側ストレージシステムであって、
前記各データ転送手段は、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
マスタ側ストレージシステム。
(付記10)
装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージ装置に、
前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を実現すると共に、
前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
ことを実現させるためのプログラム。
(付記11)
付記10に記載のプログラムであって、
前記各データ転送手段は、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
プログラム。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
1 ストレージシステム
2 アクセラレータノード
3 ストレージノード
10 制御装置
20 レプリケーション制御部
21 スレッド間制御部
22 スレッド毎制御部
23 ハッシュテーブル制御部
24 転送待ちキャッシュ制御部
25 差分チェック制御部
26 レプリケーション送受信制御部
31 重複圧縮制御部
32 メタデータ制御部
33 ブロックデータ制御部
40 データ記憶部
41 ハッシュテーブル
42 転送待ちキャッシュ
43 メタデータ
44 ブロックデータ
50 通信部
100 マスタサイト
200 レプリカサイト
300 マスタ側ストレージシステム
301 マスタ側記憶装置
302 データ転送手段
400 レプリカ側ストレージシステム
401 レプリカ側記憶装置
402 レプリカ手段

Claims (10)

  1. マスタ側記憶装置を備えたマスタ側ストレージシステムと、レプリカ側記憶装置を備えたレプリカ側ストレージシステムと、がネットワークを介して接続されており、
    前記マスタ側ストレージシステムは、前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を備えると共に、
    前記レプリカ側ストレージシステムは、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成するレプリカ手段を備え、
    前記マスタ側ストレージシステムの前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
    レプリケーションシステム。
  2. 請求項1に記載のレプリケーションシステムであって、
    前記各データ転送手段は、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
    レプリケーションシステム。
  3. 請求項2に記載のレプリケーションシステムであって、
    前記各データ転送手段は、前記分割データの前記データ特徴量情報が前記転送データリストに存在しない場合に、当該分割データの前記データ特徴量情報が、前記レプリカ側記憶装置に記憶されている前記分割データの前記データ特徴量情報が登録されたレプリカデータリストに存在するか否かを調べ、当該レプリカデータリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記レプリカデータリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
    レプリケーションシステム。
  4. 請求項2又は3に記載のレプリケーションシステムであって、
    前記各データ転送手段は、前記分割データを前記レプリカ側ストレージシステムに転送しない場合に、当該分割データの分割前における前記所定単位のデータを構築するための情報を少なくとも含むメタデータを前記レプリカ側ストレージシステムに転送し、
    前記レプリカ側ストレージシステムの前記レプリカ手段は、前記マスタ側ストレージシステムから転送された前記分割データ及び前記メタデータに基づいて、前記マスタ側記憶装置に記憶されているデータのレプリカを生成する、
    レプリケーションシステム。
  5. 請求項4に記載のレプリケーションシステムであって、
    前記各データ転送手段は、前記分割データを前記レプリカ側ストレージシステムに転送中である場合に、当該分割データの前記データ特徴量情報を転送中である旨の情報と共に前記転送データリストに登録し、前記分割データを前記レプリカ側ストレージシステムに転送済みである場合に、当該分割データの前記データ特徴量情報を転送済みである旨の情報と共に前記転送データリストに登録し、
    前記転送データリストに転送中である旨の情報と共に登録されて存在する前記データ特徴量情報に対応する前記分割データの前記メタデータは、当該分割データの前記データ特徴量情報が転送済みである旨の情報と共に前記転送データリストに登録された後に前記レプリカ側ストレージシステムに転送する、
    レプリケーションシステム。
  6. マスタ側記憶装置を備えたマスタ側ストレージシステムと、レプリカ側記憶装置を備えたレプリカ側ストレージシステムと、がネットワークを介して接続されたレプリケーションシステムによるレプリケーション方法であって、
    前記マスタ側ストレージシステムが、前記マスタ側記憶装置に記憶されたデータを、複数のデータ転送手段にて並列に前記レプリカ側ストレージシステムに対して転送する際に、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送し、
    前記レプリカ側ストレージシステムが、前記マスタ側ストレージシステムから送信されたデータを前記レプリカ側記憶装置に記憶して前記マスタ側記憶装置に記憶されているデータのレプリカを生成する、
    レプリケーション方法。
  7. 請求項6に記載のレプリケーション方法であって、
    前記各データ転送手段が、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
    レプリケーション方法。
  8. 装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージシステムであって、
    前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を備えると共に、
    前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
    マスタ側ストレージシステム。
  9. 請求項8に記載のマスタ側ストレージシステムであって、
    前記各データ転送手段は、それぞれが異なる所定単位のデータを分割した分割データを転送候補とし、前記分割データの内容に基づく当該分割データの特徴量を表す前記データ特徴量情報を生成して前記転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している前記分割データは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない前記分割データは前記レプリカ側ストレージシステムに転送すると共に当該分割データの前記データ特徴量情報を前記転送データリストに登録する、
    マスタ側ストレージシステム。
  10. 装備されたレプリカ側記憶装置に転送されたデータのレプリカを生成するレプリカ側ストレージシステムにネットワークを介して接続され、マスタ側記憶装置を備えたマスタ側ストレージ装置に、
    前記マスタ側記憶装置に記憶されたデータを、それぞれが並列に前記レプリカ側ストレージシステムに対して転送する複数のデータ転送手段を実現すると共に、
    前記各データ転送手段は、前記レプリカ側ストレージシステムに対する転送候補であるデータの内容に基づく当該データの特徴量を表すデータ特徴量情報を生成して、当該転送候補であるデータの前記データ特徴量情報が、前記レプリカ側ストレージシステムに対して転送中あるいは転送済みのデータの前記データ特徴量情報が記憶された転送データリストに存在するか否かを調べ、当該転送データリストに前記データ特徴量情報が存在している転送候補のデータは前記レプリカ側ストレージシステムに転送せず、前記転送データリストに前記データ特徴量情報が存在していない転送候補のデータは前記レプリカ側ストレージシステムに転送する、
    ことを実現させるためのプログラム。
JP2013051757A 2013-03-14 2013-03-14 レプリケーションシステム Active JP6083268B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013051757A JP6083268B2 (ja) 2013-03-14 2013-03-14 レプリケーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013051757A JP6083268B2 (ja) 2013-03-14 2013-03-14 レプリケーションシステム

Publications (2)

Publication Number Publication Date
JP2014178827A true JP2014178827A (ja) 2014-09-25
JP6083268B2 JP6083268B2 (ja) 2017-02-22

Family

ID=51698729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013051757A Active JP6083268B2 (ja) 2013-03-14 2013-03-14 レプリケーションシステム

Country Status (1)

Country Link
JP (1) JP6083268B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017090517A1 (ja) * 2015-11-24 2017-06-01 日本電気株式会社 ソフトウェアストレージユニット、バックアップ方法、およびバックアップ制御プログラムが記録された記録媒体
WO2018029820A1 (ja) * 2016-08-10 2018-02-15 株式会社日立製作所 計算機システム
JP2021082036A (ja) * 2019-11-20 2021-05-27 株式会社バッファロー 情報処理装置、ウイルス駆除方法、および、コンピュータプログラム
WO2022190681A1 (ja) * 2021-03-09 2022-09-15 富士フイルム株式会社 ストレージシステム、データ処理方法、及びデータ処理プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122167A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ転送プログラム、データ転送方法およびデータ転送装置
JP2010250760A (ja) * 2009-04-20 2010-11-04 Makoto Goto ファイル格納システム、サーバ装置及びプログラム
JP2011070636A (ja) * 2009-08-27 2011-04-07 Nippon Telegr & Teleph Corp <Ntt> データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム
JP2012164185A (ja) * 2011-02-08 2012-08-30 Nec System Technologies Ltd サーバ、クライアント、これらを有するバックアップシステム、及びこれらのバックアップ方法
WO2013029173A1 (en) * 2011-08-30 2013-03-07 International Business Machines Corporation Replication of data objects from a source server to a target server
JP2014511129A (ja) * 2010-12-29 2014-05-08 アマゾン・テクノロジーズ・インコーポレーテッド データシステムにおける受信器側データの重複排除

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122167A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ転送プログラム、データ転送方法およびデータ転送装置
JP2010250760A (ja) * 2009-04-20 2010-11-04 Makoto Goto ファイル格納システム、サーバ装置及びプログラム
JP2011070636A (ja) * 2009-08-27 2011-04-07 Nippon Telegr & Teleph Corp <Ntt> データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム
JP2014511129A (ja) * 2010-12-29 2014-05-08 アマゾン・テクノロジーズ・インコーポレーテッド データシステムにおける受信器側データの重複排除
JP2012164185A (ja) * 2011-02-08 2012-08-30 Nec System Technologies Ltd サーバ、クライアント、これらを有するバックアップシステム、及びこれらのバックアップ方法
WO2013029173A1 (en) * 2011-08-30 2013-03-07 International Business Machines Corporation Replication of data objects from a source server to a target server
JP2014522044A (ja) * 2011-08-30 2014-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション レプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法(レプリケーション元サーバからレプリケーション先サーバへのデータ・オブジェクトのレプリケーション)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017090517A1 (ja) * 2015-11-24 2017-06-01 日本電気株式会社 ソフトウェアストレージユニット、バックアップ方法、およびバックアップ制御プログラムが記録された記録媒体
US10733062B2 (en) 2015-11-24 2020-08-04 Nec Corporation Software storage unit, backup method, and recording medium storing backup control program
WO2018029820A1 (ja) * 2016-08-10 2018-02-15 株式会社日立製作所 計算機システム
JPWO2018029820A1 (ja) * 2016-08-10 2018-08-09 株式会社日立製作所 計算機システム
US10359967B2 (en) 2016-08-10 2019-07-23 Hitachi, Ltd. Computer system
JP2021082036A (ja) * 2019-11-20 2021-05-27 株式会社バッファロー 情報処理装置、ウイルス駆除方法、および、コンピュータプログラム
JP7315844B2 (ja) 2019-11-20 2023-07-27 株式会社バッファロー 情報処理装置、ウイルス駆除方法、および、コンピュータプログラム
WO2022190681A1 (ja) * 2021-03-09 2022-09-15 富士フイルム株式会社 ストレージシステム、データ処理方法、及びデータ処理プログラム

Also Published As

Publication number Publication date
JP6083268B2 (ja) 2017-02-22

Similar Documents

Publication Publication Date Title
US11461202B2 (en) Remote data replication method and system
JP6344798B2 (ja) データ送信方法、データ受信方法、及びストレージデバイス
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
JP4715774B2 (ja) レプリケーション方法、レプリケーションシステム、ストレージ装置、プログラム
JP6475304B2 (ja) トランザクション処理方法および装置
JP6083268B2 (ja) レプリケーションシステム
US10162720B2 (en) Copy-on-read process in disaster recovery
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
US8825603B2 (en) Ordering volumes and tracks for data transfer based on usage characteristics
JP5170169B2 (ja) ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム
JP5459388B2 (ja) ストレージ装置
JP6697101B2 (ja) 情報処理システム
JP2015095015A (ja) データ配置方法、データ配置プログラムおよび情報処理システム
JP6201340B2 (ja) レプリケーションシステム
WO2015198371A1 (ja) ストレージシステム及び記憶制御方法
JPWO2015141219A1 (ja) ストレージシステム、制御装置、データアクセス方法およびプログラム
JP6172294B2 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
JP2016189105A (ja) ストレージシステム
WO2021189315A1 (en) Proxy server crash recovery in object storage system using enhanced meta structure
WO2021189314A1 (en) Data server crash recovery in object storage system using enhanced meta structure
JP4715777B2 (ja) レプリケーション方法及びストレージ装置並びにプログラム
JP6343952B2 (ja) ストレージシステム
JP2017173979A (ja) データ管理装置、方法、及びプログラム
JP2016181214A (ja) データベースシステム、情報処理方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161213

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: 20161227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170109

R150 Certificate of patent or registration of utility model

Ref document number: 6083268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150