(57)【特許請求の範囲】
【請求項１】
コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、
前記コピー先ストレージ装置が記憶する情報と前記要約情報との照合結果を前記コピー先ストレージ装置から取得し、
前記照合結果が照合不一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送する、
制御部と、
前記コピー対象データの転送履歴を記憶する記憶部と、を備え、
前記制御部は、
前記転送履歴にもとづいて前記要約情報を前記コピー先ストレージ装置に転送することなしに、前記コピー対象データを前記コピー先ストレージ装置に転送する、
ストレージ制御装置。
【請求項２】
前記制御部は、
前記照合結果が照合一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送することなしに前記コピー対象データのコピーを完了とする、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、
複数の前記コピー対象データの各々に対応する複数の前記要約情報を含む要約情報群を前記コピー先ストレージ装置に転送し、
前記コピー先ストレージ装置から複数の前記要約情報ごとの複数の前記照合結果を含む照合結果群を取得する、
請求項１記載のストレージ制御装置。
【請求項４】
前記転送履歴は、前記コピー対象データの転送回数であり、
前記制御部は、
前記コピー先ストレージ装置が記憶する情報の更新に関する更新情報を取得し、前記転送回数を補正する、
請求項１記載のストレージ制御装置。
【請求項５】
コンピュータに、
コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、
前記コピー先ストレージ装置が記憶する情報と前記要約情報との照合結果を前記コピー先ストレージ装置から取得し、
前記要約情報と前記コピー先ストレージ装置が記憶する情報とが照合不一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送し、
前記要約情報および前記コピー対象データの転送では、前記コピー対象データの転送履歴を記憶する記憶部に記憶された前記転送履歴にもとづいて前記要約情報を前記コピー先ストレージ装置に転送することなしに、前記コピー対象データを前記コピー先ストレージ装置に転送する、
処理を実行させるストレージ制御プログラム。
【請求項６】
第１のストレージ装置が、コピー対象データの要約情報を第２のストレージ装置に転送し、
前記第２のストレージ装置が、前記要約情報と前記第２のストレージ装置が記憶する情報とを照合し、照合結果を前記第１のストレージ装置に転送し、
前記第１のストレージ装置が、前記照合結果が不一致の場合に、前記コピー対象データを前記第２のストレージ装置に転送してリモートコピーをおこない、
前記第１のストレージ装置は、前記要約情報および前記コピー対象データの転送では、前記コピー対象データの転送履歴を記憶する記憶部に記憶された前記転送履歴にもとづいて前記要約情報を前記第２のストレージ装置に転送することなしに、前記コピー対象データを前記第２のストレージ装置に転送する、
ストレージシステム。
【請求項７】
前記照合結果が一致の場合に、
前記第１のストレージ装置は、前記第２のストレージ装置への前記コピー対象データの転送をスキップして前記コピー対象データのコピーを完了とし、
前記第２のストレージ装置は、前記要約情報に対応するデータを前記コピー対象データとしてアクセス可能にする、
請求項６記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムに関する。
【背景技術】
【０００２】
ストレージ装置（ＲＡＩＤ（Redundant Arrays of Independent Disks））においてディスク容量を削減するための技術として、データの重複排除（Deduplication）機能がある。たとえば、サーバから書き込まれるデータをブロック単位で比較し、同じデータパターンが存在する場合に、参照先を同じにしてディスクにデータを保持する重複排除機能が知られている。
【０００３】
また、ストレージ装置間でデータをコピーすることによりミラーリングやバックアップをおこなうリモートコピーが知られている。
ストレージ装置間においてリモートコピーをおこなう場合、仮想ボリュームの任意の部分をリモートコピー対象にして、重複排除されたデータを転送することがおこなわれる。このようなリモートコピーは、ストレージプール上の重複排除済みデータを転送対象とすることで転送量を削減できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５１７２５号公報
【特許文献２】特開２００８−６５４２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ストレージプール上の重複排除済みデータを転送対象とする場合、ストレージ装置は、ストレージプール上の割当て済みブロックのすべてをコピー対象とすることとなる。そのため、このようなリモートコピーは、バックアップ不要な仮想ボリュームを含めて転送対象とすることから、バックアップ不要なデータが多い場合に、データ転送量を不必要に増大させることとなる。また、このようなリモートコピーは、コピー先ストレージ装置のストレージプールをコピー元ストレージ装置のストレージプールと同じ容量だけ消費させることとなる。
【０００６】
これに対して、リモートコピーの転送対象を仮想ボリュームの一部または全部に対して設定できれば、データ転送量の抑制とコピー先ストレージ装置で確保しなければならないストレージプールの容量の抑制とをおこなうことができる。
【０００７】
しかしながら、仮想ボリュームを転送対象とするリモートコピーは、仮想ボリューム上に展開された重複排除されていないデータを転送対象とする。そのため、仮想ボリュームを転送対象とするリモートコピーは、重複排除されたデータを転送対象とする場合と比較して転送量が大きくなる傾向がある。
【０００８】
１つの側面では、本発明は、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できるストレージ制御装置、ストレージ制御プログラム、およびストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、以下に示すようなストレージ制御装置が提供される。ストレージ制御装置は、制御部と記憶部とを備える。制御部は、コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、コピー先ストレージ装置が記憶する情報と要約情報との照合結果をコピー先ストレージ装置から取得し、照合結果が照合不一致の場合に、コピー対象データをコピー先ストレージ装置に転送する。記憶部は、コピー対象データの転送履歴を記憶する。制御部は、転送履歴にもとづいて要約情報をコピー先ストレージ装置に転送することなしに、コピー対象データをコピー先ストレージ装置に転送する。
【００１０】
また、１つの態様では、コンピュータに処理を実行させるストレージ制御プログラムが提供される。また、１つの態様では、ストレージシステムが提供される。
【発明の効果】
【００１１】
一態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムにおいて、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
【図４】第２の実施形態のストレージプールのイメージの一例を示す図である。
【図５】第２の実施形態のリモートコピーシーケンスの一例を示す図である。
【図６】（Ａ）が第２の実施形態のデータログのデータ構造の一例を示す図であり、（Ｂ）がハッシュ値転送の送信フォーマットの一例を示す図であり、（Ｃ）がハッシュ値転送の受信フォーマットの一例を示す図である。
【図７】第２の実施形態のコピー元処理のフローチャートを示す図である。
【図８】第２の実施形態のデータ送信処理のフローチャートを示す図である。
【図９】第２の実施形態のコピー先処理のフローチャートを示す図である。
【図１０】第３の実施形態のデータログのデータ構造の一例を示す図である。
【図１１】第３の実施形態のリモートコピーシーケンスの一例を示す図である。
【図１２】第３の実施形態の第２コピー元処理のフローチャートを示す図である。
【図１３】第３の実施形態の第２データ送信処理のフローチャートを示す図である。
【図１４】第４の実施形態の再同期処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１４】
ストレージシステム１は、複数のストレージ装置２ａ，２ｂを含む。ストレージシステム１は、ストレージ装置２ａからストレージ装置２ｂへのデータのコピー、すなわちリモートコピーを実行可能である。
【００１５】
ストレージ装置２ａは、リモートコピーにおけるコピー元ストレージ装置である。ストレージ装置２ｂは、リモートコピーにおけるコピー先ストレージ装置である。
ストレージ装置２ａは、ストレージ制御装置３ａと、データを格納可能な１以上のディスク８ａを含む。ストレージ制御装置３ａは、ストレージ装置２ａを制御対象とする。また、ストレージ装置２ｂは、ストレージ制御装置３ｂと、データを格納可能な１以上のディスク８ｂを含む。ストレージ制御装置３ｂは、ストレージ装置２ｂを制御対象とする。
【００１６】
ストレージ制御装置３ａは、情報処理装置の１つであり、たとえばストレージ装置２ａがＲＡＩＤ装置であるときにコントローラモジュールである。ストレージ制御装置３ａは、制御部４ａを含む。制御部４ａは、たとえば、コントローラモジュールに備えられたプロセッサであり、リモートコピー等を制御する。
【００１７】
また、ストレージ制御装置３ｂは、情報処理装置の１つであり、たとえばストレージ装置２ｂがＲＡＩＤ装置であるときにコントローラモジュールである。ストレージ制御装置３ｂは、制御部４ｂを含む。制御部４ｂは、たとえば、コントローラモジュールに備えられたプロセッサであり、リモートコピー等を制御する。
【００１８】
制御部４ａは、ストレージ装置２ａが記憶するコピー対象データ５ａの要約情報６ａをストレージ装置２ａからストレージ装置２ｂに転送する。要約情報６ａは、コピー対象データ５ａに対して一意に定まる値である。要約情報６ａは、たとえば、コピー対象データ５ａに対するハッシュ値であり、ハッシュ関数を用いて算出される。
【００１９】
ストレージ装置２ｂは、要約情報６ａを取得する。なお、ストレージ装置２ｂは、データ５ｂと要約情報６ｂとをあらかじめディスク８ｂに記憶する。要約情報６ｂは、データ５ｂに対して一意に定まる値である。要約情報６ｂは、たとえば、データ５ｂに対するハッシュ値であり、要約情報６ａの算出に用いられるハッシュ関数と同じハッシュ関数を用いて算出される。
【００２０】
制御部４ｂは、要約情報６ｂと要約情報６ａとを照合する。制御部４ｂは、要約情報６ａと要約情報６ｂとが一致する場合に照合一致とする照合結果７を生成し、要約情報６ａと要約情報６ｂとが一致しない場合に照合不一致とする照合結果７を生成する。制御部４ｂは、ストレージ装置２ｂからストレージ装置２ａに照合結果７を転送する。
【００２１】
ストレージ装置２ａは、照合結果７を取得する。制御部４ａは、照合結果７が照合不一致の場合に、コピー対象データ５ａをストレージ装置２ｂに転送して、リモートコピーを完了とする。一方、制御部４ａは、照合結果７が照合一致の場合に、すなわちコピー対象データ５ａとデータ５ｂとが等価である場合に、コピー対象データ５ａをストレージ装置２ｂに転送することなしにリモートコピーを完了とする。
【００２２】
したがって、ストレージ制御装置３ａは、コピー対象データ５ａを、ストレージ装置２ｂが保持していない場合に、すなわちコピー対象データ５ａとデータ５ｂとが等価でない場合に限定して、コピー対象データ５ａをストレージ装置２ｂに転送することができる。したがって、ストレージ制御装置３ａは、リモートコピーにおけるデータ転送量を削減し、リモートコピーの実行効率を向上できる。また、ストレージ制御装置３ａは、重複排除機能が有効な環境においても、データ転送量を削減し、リモートコピーの実行効率を向上できる。
【００２３】
このようにして、ストレージシステム１は、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できる。
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２４】
ストレージシステム１０は、ホスト１１と、ネットワーク１２を介してホスト１１と接続するＲＡＩＤ装置１３ａ，１３ｂを備える。ストレージシステム１０は、ＲＡＩＤ装置１３ａ，１３ｂのうちいずれか一方をコピー元ＲＡＩＤ装置とし、他方をコピー先ＲＡＩＤ装置として、リモートコピーをおこなう。たとえば、ストレージシステム１０は、ＲＡＩＤ装置１３ａをコピー元ＲＡＩＤ装置とし、ＲＡＩＤ装置１３ｂをコピー先ＲＡＩＤ装置としてリモートコピーをおこなう。
【００２５】
リモートコピーの実行制御は、ＲＡＩＤ装置１３ａ，１３ｂがおこなう。なお、ＲＡＩＤ装置１３ａ，１３ｂに代えてホスト１１がリモートコピーの制御をおこなうものであってもよい。
【００２６】
次に、ＲＡＩＤ装置１３ａのハードウェア構成について図３を用いて説明する。図３は、第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
ＲＡＩＤ装置１３ａは、コントローラモジュール２１と、ＤＥ（Drive Enclosure）２０を含む。なお、ＲＡＩＤ装置１３ａは、複数のコントローラモジュール２１と複数のＤＥ２０を備えてもよい。
【００２７】
コントローラモジュール２１は、ホストインタフェース１４と、プロセッサ１５と、ＲＡＭ（Random Access Memory）１６と、ＨＤＤ（Hard Disk Drive）１７と、機器接続インタフェース１８と、ディスクインタフェース１９を含む。
【００２８】
コントローラモジュール２１は、プロセッサ１５によって装置全体が制御されている。プロセッサ１５には、バスを介してＲＡＭ１６と複数の周辺機器が接続されている。プロセッサ１５は、２以上のプロセッサからなるマルチコアプロセッサであってもよい。なお、コントローラモジュール２１が複数ある場合、コントローラモジュール２１は主従関係を定め、主となるコントローラモジュール２１が従となるコントローラモジュール２１およびＲＡＩＤ装置１３ａ全体を制御してもよい。
【００２９】
プロセッサ１５は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。
【００３０】
ＲＡＭ１６は、コントローラモジュール２１の主記憶装置として使用される。ＲＡＭ１６には、プロセッサ１５に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、ＲＡＭ１６には、プロセッサ１５による処理に必要な各種データが格納される。また、ＲＡＭ１６は、プロセッサ１５のキャッシュメモリとして機能する。
【００３１】
バスに接続されている周辺機器としては、ホストインタフェース１４、ＨＤＤ１７、機器接続インタフェース１８、およびディスクインタフェース１９がある。ホストインタフェース１４は、ネットワーク１２を介してホスト１１やＲＡＩＤ装置１３ｂとの間でデータの送受信をおこなう。
【００３２】
ＨＤＤ１７は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。ＨＤＤ１７は、ＲＡＩＤ装置１３ａの補助記憶装置として使用される。ＨＤＤ１７には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することができる。
【００３３】
機器接続インタフェース１８は、コントローラモジュール２１に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース１８には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェース１８との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
【００３４】
また、機器接続インタフェース１８には、図示しない表示部を接続してもよい。その場合、機器接続インタフェース１８は、プロセッサ１５からの命令にしたがって、情報を表示部に表示させる機能を有する。
【００３５】
また、機器接続インタフェース１８は、図示しないキーボードやマウスを接続してもよい。その場合、機器接続インタフェース１８は、キーボードやマウスから送られてくる信号をプロセッサ１５に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することができる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３６】
また、機器接続インタフェース１８は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３７】
ディスクインタフェース１９は、ＤＥ２０との間でデータの送受信をおこなう。コントローラモジュール２１は、ディスクインタフェース１９を介してＤＥ２０と接続する。
ＤＥ２０は、１以上のディスクを備え、たとえばディスク３０ａ，３０ｂ，…を備える。ディスク３０ａ，３０ｂは、記憶装置であり、コントローラモジュール２１からの指示にもとづきデータを格納する。ディスク３０ａ，３０ｂは、たとえば、ＨＤＤやＳＳＤ（Solid State Drive）である。
【００３８】
ディスク３０ａ，３０ｂには、１以上のＬＵ（Logical Unit）、たとえばＬＵ４０ａ，４０ｂ，…が論理的に割り当てられている。ＬＵ４０ａ，４０ｂは、ＬＵを一意に特定可能なＬＵＮ（Logical Unit Number）が付され、ＬＢＡ（Logical Block Address）で特定されるアドレスにデータを格納する。したがって、ディスク３０ａ，３０ｂに記憶されたデータは、ＬＵＮとＬＢＡとで特定される。なお、ディスク３０ａ，３０ｂにＬＵ４０ａ，４０ｂが論理的に割り当てられている態様について、後で図４を用いて説明する。
【００３９】
以上のようなハードウェア構成によって、ＲＡＩＤ装置１３ａの処理機能を実現することができる。
ＲＡＩＤ装置１３ａは、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、ＲＡＩＤ装置１３ａの処理機能を実現する。ＲＡＩＤ装置１３ａに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、ＲＡＩＤ装置１３ａに実行させるプログラムをＨＤＤ１７に格納しておくことができる。プロセッサ１５は、ＨＤＤ１７内のプログラムの少なくとも一部をＲＡＭ１６にロードし、プログラムを実行する。また、ＲＡＩＤ装置１３ａに実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくことができる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１５からの制御により、ＨＤＤ１７にインストールされた後、実行可能となる。またプロセッサ１５が、可搬型記録媒体から直接プログラムを読み出して実行することができる。
【００４０】
なお、ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａと同様のハードウェア構成であることからＲＡＩＤ装置１３ａの説明に代えてＲＡＩＤ装置１３ｂの説明を省略する。
次に、第２の実施形態のストレージプールのイメージについて図４を用いて説明する。図４は、第２の実施形態のストレージプールのイメージの一例を示す図である。
【００４１】
ＲＡＩＤ装置１３ａにおいて、ＬＵ４０ａ，４０ｂがディスク３０ａ，３０ｂに論理的に割り当てられている態様について説明する。なお、ＲＡＩＤ装置１３ｂもＲＡＩＤ装置１３ａと同様であるため、代表してＲＡＩＤ装置１３ａについて説明する。
【００４２】
ＲＡＩＤ装置１３ａは、アドレス変換テーブル４１とストレージプール４３とを有する。ストレージプール４３は、ディスク３０ａ，３０ｂのそれぞれの記憶領域をまとめて、論理的に大きな記憶領域として取り扱うものである。ＲＡＩＤ装置１３ａは、ストレージプール４３から取り出した論理的な記憶領域を、ＬＵ４０ａ，４０ｂに割り当てる。ホスト１１は、ＬＵ４０ａ，４０ｂにアクセスすることで、ディスク３０ａ，３０ｂに記憶されたデータを読み出したり、ディスク３０ａ，３０ｂにデータを書き込んだりできる。
【００４３】
アドレス変換テーブル４１は、データブロック４２ａ，４２ｂ，４２ｃを含む。データブロック４２ａ，４２ｂ，４２ｃは、ＬＵＮとＬＢＡとで指定されたアドレスの参照先の変換に用いられる情報である。ストレージプール４３は、データログ４４ａ，４４ｂを含む。データログ４４ａ，４４ｂは、データブロック４２ａ，４２ｂ，４２ｃを用いて変換されたアドレスの参照先となる情報である。データログ４４ａ，４４ｂは、ディスク３０ａ，３０ｂが記憶するデータと、その管理情報とを含む。
【００４４】
ここで、ＲＡＩＤ装置１３ａの重複排除機能について説明する。
ＲＡＩＤ装置１３ａは、ディスク３０ａ，３０ｂに記憶されているデータと同じデータの書き込みを指示されたとき、データの書き込みに代えて参照元から記憶されるデータを参照可能にすることでデータの重複を排除する。ＲＡＩＤ装置１３ａは、データログ４４ａ，４４ｂがディスク３０ａ，３０ｂに記憶されているデータと一対一に対応し、データログ４４ａ，４４ｂがデータブロック４２ａ，４２ｂ，４２ｃと一対多で対応することにより重複排除機能を実現する。
【００４５】
たとえば、データログ４４ａは、ディスク３０ａのデータと対応し、データブロック４２ａ，４２ｃと対応する。これにより、ＬＵ４０ａ（ＬＢＡ指定を含む）は、データブロック４２ａを介してデータログ４４ａと対応するディスク３０ａのデータを指定できる。また、ＬＵ４０ｂ（ＬＢＡ指定を含む）は、データブロック４２ｃを介してＬＵ４０ａ（ＬＢＡ指定を含む）と同じデータを指定できる。
【００４６】
これにより、ＬＵ４０ａ（ＬＢＡ指定を含む）が指定するデータをＬＵ４０ｂ（ＬＢＡ指定を含む）にコピーするとき、ＲＡＩＤ装置１３ａは、データブロック４２ｃの参照先をデータログ４４ａに設定するだけでよい。そのため、ディスク３０ａ，３０ｂは、同じデータによる記憶容量の消費が抑制される。
【００４７】
次に、第２の実施形態のリモートコピーシーケンスについて図５を用いて説明する。図５は、第２の実施形態のリモートコピーシーケンスの一例を示す図である。以下、ＲＡＩＤ装置１３ａをコピー元ＲＡＩＤ装置とし、ＲＡＩＤ装置１３ｂをコピー先ＲＡＩＤ装置とするリモートコピーについて説明する。
【００４８】
［シーケンスＳｑ１０１］ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂにコピー対象となるデータのハッシュ値を送信する。ＲＡＩＤ装置１３ａは、ハッシュ値と併せて、コピー対象となるデータの特定に用いる情報（ＬＵＮ，ＬＢＡ等）を送信する。ハッシュ値は、ＲＡＩＤ装置１３ａが、コピー対象データについてハッシュ関数を用いて求めた値である。ＲＡＩＤ装置１３ａは、所定単位（たとえば、４Ｋｂｙｔｅ）のコピー対象データごとにハッシュ値を算出し、コピー対象データのサイズに応じて１以上のハッシュ値を送信する。
【００４９】
［シーケンスＳｑ１０２］ＲＡＩＤ装置１３ｂは、受信したハッシュ値と、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値とを比較する。ここで、受信したハッシュ値と、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値とが一致する場合、ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ｂがコピー対象データを既に記憶していることを判定できる。また、受信したハッシュ値と、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値とが一致しない場合、ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ｂがコピー対象データを未だ記憶していないことを判定できる。
【００５０】
［シーケンスＳｑ１０３］ＲＡＩＤ装置１３ｂは、受信したハッシュ値のうち、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値と一致したハッシュ値について、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値に対応するデータを受信データとする。ＲＡＩＤ装置１３ｂは、ＬＵＮおよびＬＢＡ（コピー対象となるデータの特定に用いる情報）から一致したハッシュ値に対応するデータにアクセスできるように、アドレス変換テーブルを更新する。
【００５１】
［シーケンスＳｑ１０４］ＲＡＩＤ装置１３ｂは、アドレス変換テーブルの更新に伴い、対応するリファレンスカウンタを更新する。リファレンスカウンタは、データログに含まれる管理情報の１つであり、重複排除されたデータの参照元の数を示す情報である。なお、リファレンスカウンタの詳細については、図６を用いて後で説明する。
【００５２】
［シーケンスＳｑ１０５］ＲＡＩＤ装置１３ｂは、受信したハッシュ値ごとに、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値との比較結果をＲＡＩＤ装置１３ａに送信する。なお、ＲＡＩＤ装置１３ｂは、ハッシュ値と併せて受信した、コピー対象となるデータの特定に用いる情報（ＬＵＮ，ＬＢＡ等）を比較結果に付すことができる。また、ＲＡＩＤ装置１３ｂは、受信したハッシュ値ごとの「一致／不一致」を１ビットで示すビットマップを比較結果として用いるものであってもよい。
【００５３】
［シーケンスＳｑ１０６］ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから受信した比較結果にもとづいて、送信対象データを選択する。送信対象データは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データである。ＲＡＩＤ装置１３ａは、比較結果が「一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することなしにコピー完了とする。
【００５４】
［シーケンスＳｑ１０７］ＲＡＩＤ装置１３ａは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データをＲＡＩＤ装置１３ｂに送信する。ＲＡＩＤ装置１３ａは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することによってコピー完了とする。
【００５５】
［シーケンスＳｑ１０８］ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａから受信したデータをストレージプールに格納する。なお、ＲＡＩＤ装置１３ｂは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
【００５６】
なお、ＲＡＩＤ装置１３ａが実行する処理については、図７および図８を用いて後で説明する。また、ＲＡＩＤ装置１３ｂが実行する処理については、図９および図１０を用いて後で説明する。
【００５７】
このように、ＲＡＩＤ装置１３ａは、データを送信する前に、ハッシュ値のみをＲＡＩＤ装置１３ｂに送信する。ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂからハッシュ値の比較結果を受信し、比較結果が「不一致」のデータのみを送信対象データとして送信する。ＲＡＩＤ装置１３ａは、コピー対象のすべてのデータを送信することに代えて、コピー対象データのうちＲＡＩＤ装置１３ｂが記憶していないデータを送信対象データとすることができる。たとえば、ＲＡＩＤ装置１３ａは、同一データパターンを複数回転送するときに、２回目以降のデータ転送量の削減幅を大きくすることができる。
【００５８】
これにより、ＲＡＩＤ装置１３ａからＲＡＩＤ装置１３ｂへのデータ転送量を削減できる。したがって、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ａとＲＡＩＤ装置１３ｂが接続するネットワークにかかる負荷を軽減できる。
【００５９】
また、ＲＡＩＤ装置１３ａは、重複排除されたデータをコピー対象とすることができるので、ストレージプール４３のすべてをコピー対象とすることを要しない。したがって、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂに対してリモートコピーを効率よく実行できる。このようなＲＡＩＤ装置１３ａは、データマイグレーションの実行効率を向上できる。
【００６０】
次に、第２の実施形態のデータログのデータ構造と、ハッシュ値転送の送信フォーマットと、ハッシュ値転送の受信フォーマットについて図６を用いて説明する。図６は、（Ａ）が第２の実施形態のデータログのデータ構造の一例を示す図であり、（Ｂ）がハッシュ値転送の送信フォーマットの一例を示す図であり、（Ｃ）がハッシュ値転送の受信フォーマットの一例を示す図である。
【００６１】
図６（Ａ）は、データログ４４ａ，４４ｂのデータ構造（以下、データログデータ構造）を示す。データログデータ構造は、実データ格納領域と、ハッシュ値格納領域と、リファレンスカウンタ格納領域とを含む。実データ格納領域は、ユーザデータを格納可能な領域であり、たとえば４Ｋｂｙｔｅの大きさを有する。
【００６２】
ハッシュ値格納領域は、実データ格納領域に格納されたデータから算出されたハッシュ値を格納する領域であり、たとえば２０ｂｙｔｅの大きさを有する。なお、ハッシュ値格納領域の大きさは、異なるデータから同じ値のハッシュ値が算出される可能性が無視できるほどに小さくなるように設定される。なお、ＲＡＩＤ装置１３ａは、ストレージプールの大きさ（すなわち、ハッシュ値の衝突確率）に応じてハッシュ値格納領域の大きさを可変にしてもよい。リファレンスカウンタ格納領域は、実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば４ｂｙｔｅの大きさを有する。
【００６３】
図６（Ｂ）は、ハッシュ値転送の送信フォーマットを示す。ハッシュ値転送の送信フォーマットは、リモートコピーシーケンスのシーケンスＳｑ１０１におけるハッシュ値送信時に用いられる通信フォーマットである。ハッシュ値転送の送信フォーマットは、ＬＵＮとＬＢＡとハッシュ値とを送信情報に含む。たとえば、ＬＵＮは４ｂｙｔｅ、ＬＢＡは８ｂｙｔｅ、ハッシュ値は２０ｂｙｔｅの大きさの情報である。
【００６４】
図６（Ｃ）は、ハッシュ値転送の受信フォーマットを示す。ハッシュ値転送の受信フォーマットは、リモートコピーシーケンスのシーケンスＳｑ１０５における比較結果の受信時に用いられる通信フォーマットである。ハッシュ値転送の受信フォーマットは、ＬＵＮとＬＢＡとハッシュ値比較結果とを受信情報に含む。たとえば、ＬＵＮは４ｂｙｔｅ、ＬＢＡは８ｂｙｔｅ、ハッシュ値比較結果は１ｂｙｔｅの大きさの情報である。なお、ハッシュ値転送の受信フォーマットは、用途が定められていないリザーブ情報を含むものであってもよい。たとえば、ハッシュ値転送の受信フォーマットは、リザーブ情報の大きさを１９ｂｙｔｅとして、ハッシュ値転送の送信フォーマットの大きさと同じ合計３２ｂｙｔｅの大きさとしてもよい。
【００６５】
次に、第２の実施形態のコピー元処理について図７を用いて説明する。図７は、第２の実施形態のコピー元処理のフローチャートを示す図である。
コピー元処理は、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）がＲＡＩＤ装置１３ｂ（コピー先ＲＡＩＤ装置）に送信するコピー対象データのハッシュ値と、ＲＡＩＤ装置１３ｂが記憶するデータのハッシュ値との比較結果に応じてデータ転送をおこなう処理である。ＲＡＩＤ装置１３ａの制御部（プロセッサ１５）は、ホスト１１からリモートコピーの実行指示を受けて、コピー元処理を実行する。
【００６６】
［ステップＳ１１］制御部は、リモートコピー条件を取得する。リモートコピー条件は、リモートコピーの実行条件を規定する各種情報である。たとえば、リモートコピー条件は、コピー対象となるデータに関する情報として、コピー対象データ、データのコピー元、データのコピー先、コピー経路などを含む。なお、制御部は、ＨＤＤ１７に格納されたリモートコピー条件を取得してもよいし、保守員が入力するコマンドからリモートコピー条件を取得してもよい。
【００６７】
［ステップＳ１２］制御部は、コピー対象データのハッシュ値を取得する。たとえば、制御部は、コピー対象データに対応するデータブロック４２ａを介しデータログ４４ａを特定し、データログ４４ａからハッシュ値を取得することができる。
【００６８】
［ステップＳ１３］制御部は、コピー対象データのハッシュ値をＲＡＩＤ装置１３ｂに送信する。なお、制御部は、図６（Ｂ）に示した通信フォーマットにしたがい、ハッシュ値に加えてコピー対象データのＬＵＮとＬＢＡを送信する。
【００６９】
［ステップＳ１４］制御部は、コピー対象データのハッシュ値をすべてＲＡＩＤ装置１３ｂに送信済みか否かを判定する。たとえば、ハッシュ値の算出単位となるデータブロックの大きさが４Ｋｂｙｔｅ、コピー対象データの大きさが３２Ｍｂｙｔｅである場合、コピー対象データのハッシュ値の数は、８１９２個（＝３２Ｍ／４Ｋ）となる。８１９２個のハッシュ値は、２５６Ｋｂｙｔｅ（＝３２ｂｙｔｅ×８１９２）の大きさであり、たとえば、ＲＡＩＤ装置１３ａは、８１９２個のハッシュ値（ハッシュ値群）を１回の通信でＲＡＩＤ装置１３ｂに送信できる。したがって、ＲＡＩＤ装置１３ａは、８１９２個を超えるハッシュ値を２回以上の通信によってＲＡＩＤ装置１３ｂに送信できる。
【００７０】
制御部は、すべてのハッシュ値が送信済みである場合にステップＳ１５にすすみ、すべてのハッシュ値が送信済みでない場合にステップＳ１１にすすむ。このようにして、制御部は、すべてのハッシュ値をＲＡＩＤ装置１３ｂに送信する。
【００７１】
［ステップＳ１５］制御部は、ＲＡＩＤ装置１３ｂから、ハッシュ値の比較結果を受信する。なお、制御部は、図６（Ｃ）に示した通信フォーマットにしたがい、ハッシュ値の比較に加えてコピー対象データのＬＵＮとＬＢＡを受信する。なお、ハッシュ値の比較結果は、ステップＳ１４で送信したハッシュ値群に対応する比較結果群として受信することができる。
【００７２】
［ステップＳ１６］制御部は、データ送信処理を実行する。データ送信処理は、ＲＡＩＤ装置１３ａの制御部が、ハッシュ値の比較結果にもとづいてコピー対象データをＲＡＩＤ装置１３ｂに送信する処理である。データ送信処理の詳細は、図８を用いて後で説明する。
【００７３】
次に、第２の実施形態のデータ送信処理について図８を用いて説明する。図８は、第２の実施形態のデータ送信処理のフローチャートを示す図である。
データ送信処理は、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）の制御部（プロセッサ１５）が、ハッシュ値の比較結果にもとづいてコピー対象データをＲＡＩＤ装置１３ｂ（コピー先ＲＡＩＤ装置）に送信する処理である。データ送信処理は、コピー元処理のステップＳ１６において制御部が実行する処理である。
【００７４】
［ステップＳ２１］制御部は、ＲＡＩＤ装置１３ｂから受信した比較結果が「一致」であるか否かを判定する。すなわち、制御部は、ＲＡＩＤ装置１３ａが送信したハッシュ値がＲＡＩＤ装置１３ｂで記憶するデータのハッシュ値と一致するか否かを判定する。制御部は、比較結果が「一致」である場合にステップＳ２３にすすみ、比較結果が「一致」でない場合、すなわち比較結果が「不一致」の場合にステップＳ２２にすすむ。なお、ＲＡＩＤ装置１３ｂから受信した比較結果が複数のハッシュ値の比較結果を含む場合、制御部は、ハッシュ値の比較結果ごとに判定をおこなう。
【００７５】
［ステップＳ２２］制御部は、ハッシュ値が「不一致」であったコピー対象データ（データブロック単位）を送信対象データとして選択して、ＲＡＩＤ装置１３ｂに送信する。
［ステップＳ２３］制御部は、受信したハッシュ値の比較結果すべてについてハッシュの「一致／不一致」を確認したか否かを判定する。制御部は、比較結果すべてをチェックしていない場合はステップＳ２１にもどり、比較結果すべてをチェックした場合はデータ送信処理を終了する。
【００７６】
このように、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから受信した比較結果（照合結果）が一致する場合に、ＲＡＩＤ装置１３ｂへのコピー対象データの送信をスキップする。これにより、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂへのデータ転送量を低減できる。
【００７７】
次に、第２の実施形態のコピー先処理について図９を用いて説明する。図９は、第２の実施形態のコピー先処理のフローチャートを示す図である。
コピー先処理は、ＲＡＩＤ装置１３ｂ（コピー先ＲＡＩＤ装置）が、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）から受信したハッシュ値と、ＲＡＩＤ装置１３ｂが記憶するハッシュ値とを比較し、比較結果をＲＡＩＤ装置１３ａに送信する処理である。ＲＡＩＤ装置１３ｂの制御部（プロセッサ１５）は、ＲＡＩＤ装置１３ａからハッシュ値を受信して、コピー先処理を実行する。
【００７８】
［ステップＳ３１］制御部は、受信したハッシュ値とＲＡＩＤ装置１３ｂが記憶するデータのハッシュ値とを比較する。たとえば、制御部は、受信したハッシュ値のうちの１つを検索キーとして選択し、ＲＡＩＤ装置１３ｂが記憶するデータログに含まれるハッシュ値を探索する。制御部は、探索結果が「ヒット」の場合に選択したハッシュ値について比較結果を「一致」として、探索結果が「ミス」の場合に選択したハッシュ値について比較結果を「不一致」とする。
【００７９】
［ステップＳ３２］制御部は、比較結果が一致したか否かを判定する。制御部は、比較結果が「一致」の場合にステップＳ３３にすすみ、比較結果が「不一致」の場合にステップＳ３６にすすむ。
【００８０】
［ステップＳ３３］制御部は、比較結果が「一致」したハッシュ値に対応するＬＵＮとＬＢＡからハッシュ値が一致したデータログを参照するように、アドレス変換テーブルを更新する。
【００８１】
［ステップＳ３４］制御部は、比較結果が「一致」したハッシュ値に対応するＬＵＮとＬＢＡから参照されるデータログのリファレンスカウンタを「１」加算して更新する。これにより、参照先のデータログは、参照元が「１」増えたことを記録できる。
【００８２】
［ステップＳ３５］制御部は、選択したハッシュ値の比較結果（送信用）に「一致」を設定する。たとえば、制御部は、図６（Ｃ）に示した通信フォーマットのハッシュ値比較結果に「一致」を設定する。
【００８３】
［ステップＳ３６］制御部は、選択したハッシュ値の比較結果（送信用）に「不一致」を設定する。たとえば、制御部は、図６（Ｃ）に示した通信フォーマットのハッシュ値比較結果に「不一致」を設定する。
【００８４】
これにより、制御部は、選択したハッシュ値の比較結果を設定した送信用データを生成できる。
［ステップＳ３７］制御部は、すべてのハッシュ値について比較済みであるか否かを判定する。制御部は、すべてのハッシュ値について比較済みである場合にステップＳ３８にすすみ、すべてのハッシュ値について比較済みでない場合にステップＳ３１にすすむ。
【００８５】
［ステップＳ３８］制御部は、ステップＳ３５またはステップＳ３６で生成した送信用データをハッシュ値の比較結果としてＲＡＩＤ装置１３ａに送信する。
［ステップＳ３９］制御部は、ＲＡＩＤ装置１３ａに送信した比較結果が「不一致」を含むか否かを判定する。制御部は、ＲＡＩＤ装置１３ａに送信した比較結果が「不一致」を含む場合にステップＳ４０にすすみ、比較結果が「不一致」を含まない場合にコピー先処理を終了する。
【００８６】
［ステップＳ４０］制御部は、比較結果が「不一致」のハッシュ値に対応するコピー対象データをＲＡＩＤ装置１３ａから受信する。
［ステップＳ４１］制御部は、ＲＡＩＤ装置１３ａから受信した比較結果が「不一致」のハッシュ値に対応するコピー対象データを格納し、コピー先処理を終了する。このとき、制御部は、必要に応じて、データログの生成とアドレス変換テーブルの更新とをおこなう。
【００８７】
［第３の実施形態］
第３の実施形態のリモートコピーは、コピー元ＲＡＩＤ装置からコピー先ＲＡＩＤ装置に送信するハッシュ値の絞り込みをおこなう点で第２の実施形態と相違する。そのため、第３の実施形態は、第２の実施形態と異なるデータログデータ構造を採用する。なお、第３の実施形態のリモートコピーの説明は、第２の実施形態のリモートコピーとの相違点を中心にして説明し、第２の実施形態のリモートコピーと同様である点について説明を省略する。
【００８８】
まず、第３の実施形態のデータログのデータ構造（データログデータ構造）について図１０を用いて説明する。図１０は、第３の実施形態のデータログのデータ構造の一例を示す図である。
【００８９】
データログデータ構造は、実データ格納領域と、ハッシュ値格納領域と、コピー元リファレンスカウンタ格納領域と、コピー先リファレンスカウンタ格納領域とを含む。実データ格納領域は、ユーザデータを格納可能な領域であり、たとえば４Ｋｂｙｔｅの大きさを有する。ハッシュ値格納領域は、実データ格納領域に格納されたデータから算出されたハッシュ値を格納する領域であり、たとえば２０ｂｙｔｅの大きさを有する。
【００９０】
コピー元リファレンスカウンタ格納領域は、実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば４ｂｙｔｅの大きさを有する。コピー元リファレンスカウンタ格納領域は、第２の実施形態におけるコピー元ＲＡＩＤ装置のリファレンスカウンタ格納領域に相当する。
【００９１】
コピー先リファレンスカウンタ格納領域は、コピー先ＲＡＩＤ装置における実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば４ｂｙｔｅの大きさを有する。コピー先リファレンスカウンタ格納領域は、第２の実施形態におけるコピー先ＲＡＩＤ装置のリファレンスカウンタ格納領域に相当する。
【００９２】
なお、コピー元ＲＡＩＤ装置は、コピー先リファレンスカウンタを参照することで、コピー先ＲＡＩＤ装置がコピー先リファレンスカウンタに対応するデータを記憶しているか否かを推定できる。たとえば、コピー元ＲＡＩＤ装置は、コピー先リファレンスカウンタの値が「１」以上の場合、コピー先ＲＡＩＤ装置が対応するデータを記憶していると推定できる。また、コピー元ＲＡＩＤ装置は、コピー先リファレンスカウンタの値が「０」の場合、コピー先ＲＡＩＤ装置が対応するデータを記憶していないと推定できる。
【００９３】
なお、ストレージシステム１０がＲＡＩＤ装置１３ａからＲＡＩＤ装置１３ｂへのリモートコピーによってミラーリングをおこなっている場合、コピー先リファレンスカウンタの値は、リモートコピーの回数とみなすことができる。すなわち、コピー先リファレンスカウンタは、コピー元ＲＡＩＤ装置からコピー先ＲＡＩＤ装置へのデータ転送の履歴情報であるとみなすことができる。
【００９４】
次に、第３の実施形態のリモートコピーシーケンスについて図１１を用いて説明する。図１１は、第３の実施形態のリモートコピーシーケンスの一例を示す図である。以下、ＲＡＩＤ装置１３ａをコピー元ＲＡＩＤ装置とし、ＲＡＩＤ装置１３ｂをコピー先ＲＡＩＤ装置とするリモートコピーについて説明する。
【００９５】
［シーケンスＳｑ２０１］ＲＡＩＤ装置１３ａは、コピー対象データのデータログにあるコピー先リファレンスカウンタを参照する。
［シーケンスＳｑ２０２］ＲＡＩＤ装置１３ａは、コピー先リファレンスカウンタの値が「１」未満である場合、対応するコピー対象データをＲＡＩＤ装置１３ｂに送信する。このように、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂにおいてハッシュヒットしない可能性の高いコピー対象データをハッシュ値送信の対象から外すことで、ハッシュ値転送が空振りすることによるデータ転送量の増大を抑制する。
【００９６】
［シーケンスＳｑ２０３］ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａから受信したデータをストレージプールに格納する。なお、ＲＡＩＤ装置１３ｂは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
【００９７】
［シーケンスＳｑ２０４］ＲＡＩＤ装置１３ａは、シーケンスＳｑ２０２でＲＡＩＤ装置１３ｂに送信したコピー対象データに対応するコピー先リファレンスカウンタを「１」加算して更新する。
【００９８】
［シーケンスＳｑ２０５］ＲＡＩＤ装置１３ａは、シーケンスＳｑ２０２で送信していないコピー対象データのハッシュ値を選択する。言い換えれば、ＲＡＩＤ装置１３ａは、データログにあるコピー先リファレンスカウンタの値が「１」以上のコピー対象データのハッシュ値を選択する。
【００９９】
［シーケンスＳｑ２０６］ＲＡＩＤ装置１３ａは、選択したハッシュ値をＲＡＩＤ装置１３ｂに送信する。ＲＡＩＤ装置１３ａは、ハッシュ値と併せて、コピー対象となるデータの特定に用いる情報（ＬＵＮ，ＬＢＡ等）を送信する。
【０１００】
［シーケンスＳｑ２０７］ＲＡＩＤ装置１３ｂは、受信したハッシュ値と、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値とを比較する。
［シーケンスＳｑ２０８］ＲＡＩＤ装置１３ｂは、受信したハッシュ値のうち、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値と一致したハッシュ値について、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値に対応するデータを受信データとする。ＲＡＩＤ装置１３ｂは、ＬＵＮおよびＬＢＡ（コピー対象となるデータの特定に用いる情報）から一致したハッシュ値に対応するデータにアクセスできるように、アドレス変換テーブルを更新する。
【０１０１】
［シーケンスＳｑ２０９］ＲＡＩＤ装置１３ｂは、アドレス変換テーブルの更新に伴い、対応するコピー元リファレンスカウンタを更新する。
［シーケンスＳｑ２１０］ＲＡＩＤ装置１３ｂは、受信したハッシュ値ごとに、ＲＡＩＤ装置１３ｂがあらかじめ保持するハッシュ値との比較結果をＲＡＩＤ装置１３ａに送信する。
【０１０２】
［シーケンスＳｑ２１１］ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから受信した比較結果にもとづいて、送信対象データを選択する。ＲＡＩＤ装置１３ａは、比較結果が「一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することなしにコピー完了とする。
【０１０３】
［シーケンスＳｑ２１２］ＲＡＩＤ装置１３ａは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データをＲＡＩＤ装置１３ｂに送信する。ＲＡＩＤ装置１３ａは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することによってコピー完了とする。
【０１０４】
［シーケンスＳｑ２１３］ＲＡＩＤ装置１３ａは、シーケンスＳｑ２１２でＲＡＩＤ装置１３ｂに送信したコピー対象データに対応するコピー先リファレンスカウンタを「１」加算して更新する。
【０１０５】
［シーケンスＳｑ２１４］ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａから受信したデータをストレージプールに格納する。なお、ＲＡＩＤ装置１３ｂは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
【０１０６】
このように、ＲＡＩＤ装置１３ａは、ハッシュヒットする可能性の高いハッシュ値をＲＡＩＤ装置１３ｂに送信する。
たとえば、同一データパターンがほとんど存在しないランダムデータの場合にすべてのハッシュ値をＲＡＩＤ装置１３ｂに送信しても、ＲＡＩＤ装置１３ｂは、ハッシュヒットしないことが多い。このようなハッシュ値転送の空振りは、ハッシュ値転送による通信量が増えるだけで全体としてデータ転送量が減らない。しかしながら、ＲＡＩＤ装置１３ａは、ハッシュヒットする可能性の高いハッシュ値を選択して、ＲＡＩＤ装置１３ｂにハッシュ値を送信するので、全体としてデータ転送量を削減することができる。
【０１０７】
したがって、ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ａとＲＡＩＤ装置１３ｂが接続するネットワークにかかる負荷を軽減できる。
次に、第３の実施形態の第２コピー元処理について図１２を用いて説明する。図１２は、第３の実施形態の第２コピー元処理のフローチャートを示す図である。第２コピー元処理は、第２の実施形態のコピー元処理に相当する処理である。第２コピー元処理は、コピー先リファレンスカウンタに関する処理を含む点で、第２の実施形態のコピー元処理と相違する。
【０１０８】
ＲＡＩＤ装置１３ａの制御部（プロセッサ１５）は、ホスト１１からリモートコピーの実行指示を受けて、第２コピー元処理を実行する。なお、制御部は、コピー対象データのすべてを、１回の第２コピー元処理の実行対象としてもよいし、データサイズや処理時間などの条件に応じて２回以上の第２コピー元処理の実行対象に分割してもよい。
【０１０９】
［ステップＳ５１］制御部は、リモートコピー条件を取得する。
［ステップＳ５２］制御部は、コピー対象データに対応するコピー先リファレンスカウンタの値を参照する。
【０１１０】
［ステップＳ５３］制御部は、コピー先リファレンスカウンタの値が「１」以上か否かを判定する。制御部は、コピー先リファレンスカウンタの値が「１」以上である場合にステップＳ５４にすすみ、「１」以上でない場合にステップＳ５５にすすむ。
【０１１１】
なお、コピー先リファレンスカウンタの値が「１」以上である場合、コピー先ＲＡＩＤ装置のデータログにおいて、コピー対象データと同じデータの存在可能性を示唆する。また、コピー先リファレンスカウンタが「１」以上でない場合、すなわち「０」である場合、コピー対象データと同じデータの不存在可能性を示唆する。
【０１１２】
［ステップＳ５４］制御部は、コピー先リファレンスカウンタに対応するハッシュ値を送信対象として選択する。
［ステップＳ５５］制御部は、コピー先リファレンスカウンタに対応するコピー対象データを、ＲＡＩＤ装置１３ｂへ送信する。
【０１１３】
［ステップＳ５６］制御部は、送信したコピー対象データに対応するコピー先リファレンスカウンタに「１」を加算して更新する。
［ステップＳ５７］制御部は、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査したか否かを判定する。制御部は、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査した場合にステップＳ５８にすすみ、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査していない場合にステップＳ５２にすすむ。
【０１１４】
［ステップＳ５８］制御部は、コピー範囲において、ステップＳ５４で選択されたハッシュ値のすべてをＲＡＩＤ装置１３ｂに送信する。なお、制御部は、図６（Ｂ）に示した通信フォーマットにしたがい、ハッシュ値に加えてコピー対象データのＬＵＮとＬＢＡを送信する。
【０１１５】
［ステップＳ５９］制御部は、ＲＡＩＤ装置１３ｂから、ハッシュ値の比較結果を受信する。なお、制御部は、図６（Ｃ）に示した通信フォーマットにしたがい、ハッシュ値の比較に加えてコピー対象データのＬＵＮとＬＢＡを受信する。
【０１１６】
［ステップＳ６０］制御部は、第２データ送信処理を実行する。第２データ送信処理は、ＲＡＩＤ装置１３ａの制御部が、ハッシュ値の比較結果にもとづいてコピー対象データをＲＡＩＤ装置１３ｂに送信する処理である。第２データ送信処理の詳細は、図１３を用いて後で説明する。
【０１１７】
次に、第３の実施形態の第２データ送信処理について図１３を用いて説明する。図１３は、第３の実施形態の第２データ送信処理のフローチャートを示す図である。
第２データ送信処理は、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）の制御部（プロセッサ１５）が、ハッシュ値の比較結果にもとづいてコピー対象データをＲＡＩＤ装置１３ｂ（コピー先ＲＡＩＤ装置）に送信する処理である。第２データ送信処理は、第２コピー元処理のステップＳ６０において制御部が実行する処理である。
【０１１８】
［ステップＳ７１］制御部は、ＲＡＩＤ装置１３ｂから受信した比較結果が「一致」であるか否かを判定する。すなわち、制御部は、ＲＡＩＤ装置１３ａが送信したハッシュ値がＲＡＩＤ装置１３ｂで記憶するデータのハッシュ値と一致するか否かを判定する。制御部は、比較結果が「一致」である場合にステップＳ７３にすすみ、比較結果が「一致」でない場合、すなわち比較結果が「不一致」の場合にステップＳ７２にすすむ。なお、ＲＡＩＤ装置１３ｂから受信した比較結果が複数のハッシュ値の比較結果を含む場合、制御部は、ハッシュ値の比較結果ごとに判定をおこなう。
【０１１９】
［ステップＳ７２］制御部は、ハッシュ値が「不一致」であったコピー対象データ（データブロック単位）を送信対象データとして選択して、ＲＡＩＤ装置１３ｂに送信する。
［ステップＳ７３］制御部は、送信したコピー対象データに対応するコピー先リファレンスカウンタに「１」を加算して更新する。
【０１２０】
［ステップＳ７４］制御部は、受信したハッシュ値の比較結果すべてについてハッシュの「一致／不一致」を確認したか否かを判定する。制御部は、比較結果すべてをチェックしていない場合はステップＳ７１にもどり、比較結果すべてをチェックした場合は第２データ送信処理を終了する。
【０１２１】
なお、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）は、ホスト１１から書込要求（ＷＲＩＴＥ Ｉ／Ｏ）を受け付けて書込対象データのコピー元リファレンスカウンタの値に変更が生じた場合、コピー先リファレンスカウンタの値も更新する。たとえば、ＲＡＩＤ装置１３ａは、書込要求により対象データの参照数が「１」減少した場合、コピー元リファレンスカウンタの値とコピー先リファレンスカウンタの値をそれぞれ「１」減算して更新する。これにより、ＲＡＩＤ装置１３ａは、ホスト１１から書込要求があっても、リモートコピー時にコピー先ＲＡＩＤ装置に送信するハッシュ値を適切に選択することができる。
【０１２２】
なお、コピー元ＲＡＩＤ装置のコピー先リファレンスカウンタと、コピー先ＲＡＩＤ装置のコピー元リファレンスカウンタとで不整合が生じ得る。しかしながら、このような不整合は、コピー元ＲＡＩＤ装置とコピー先ＲＡＩＤ装置とのリモートコピーによりミラーリングを確立させることで解消可能である。
【０１２３】
［第４の実施形態］
第４の実施形態のリモートコピーは、コピー元ＲＡＩＤ装置のコピー先リファレンスカウンタと、コピー先ＲＡＩＤ装置のコピー元リファレンスカウンタとを、定期または不定期に同期する処理を含む点で、第３の実施形態と相違する。なお、第４の実施形態のリモートコピーの説明は、第３の実施形態のリモートコピーとの相違点を中心にして説明し、第３の実施形態のリモートコピーと同様である点について説明を省略する。
【０１２４】
コピー元ＲＡＩＤ装置とコピー先ＲＡＩＤ装置とでミラーリングが確立している状態では、コピー元ＲＡＩＤ装置のコピー先リファレンスカウンタと、コピー先ＲＡＩＤ装置のコピー元リファレンスカウンタとは原則として同じ値をとる。これにより、コピー元ＲＡＩＤ装置は、リモートコピー時にコピー先ＲＡＩＤ装置に送信するハッシュ値を適切に選択することができる。しかしながら、コピー元ＲＡＩＤ装置とコピー先ＲＡＩＤ装置とでミラーリングが停止している状態では、コピー元ＲＡＩＤ装置のコピー先リファレンスカウンタと、コピー先ＲＡＩＤ装置のコピー元リファレンスカウンタとで不一致となる場合がある。そこで、コピー元ＲＡＩＤ装置は、定期または不定期に再同期処理を実行する。
【０１２５】
再同期処理について図１４を用いて説明する。図１４は、第４の実施形態の再同期処理のフローチャートを示す図である。再同期処理は、ＲＡＩＤ装置１３ａ（コピー元ＲＡＩＤ装置）の制御部（プロセッサ１５）が、コピー元ＲＡＩＤ装置のコピー先リファレンスカウンタと、コピー先ＲＡＩＤ装置のコピー元リファレンスカウンタとを同期させる処理である。再同期処理は、制御部が所定の実行条件の成立を契機に定期または不定期に実行する処理である。所定の実行条件は、たとえば、タイマのタイムアップやスケジューリングなどによる定期実行や、ホスト１１からの同期指示の受付や、ハッシュヒット率が所定の閾値以下に低下したことを検出などによる不定期実行がある。
【０１２６】
［ステップＳ８１］制御部は、ＲＡＩＤ装置１３ｂ（コピー先ＲＡＩＤ装置）に更新情報を要求する。ＲＡＩＤ装置１３ｂは、更新情報の要求を受け付けて更新情報を生成し、ＲＡＩＤ装置１３ａに応答する。
【０１２７】
なお、更新情報は、データ格納場所を示す情報（論理アドレス、物理アドレス等）とデータ更新の有無を示す情報とを含む。更新情報は、たとえば、所定範囲のデータの更新の有無を、所定サイズのブロック単位で表わしたビットマップ形式のデータである。
【０１２８】
［ステップＳ８２］制御部は、ＲＡＩＤ装置１３ｂから更新情報を取得する。
［ステップＳ８３］制御部は、取得した更新情報にもとづいてコピー先リファレンスカウンタを更新する。たとえば、制御部は、ＲＡＩＤ装置１３ａにおいて、ＲＡＩＤ装置１３ｂで更新がおこなわれた箇所のデータログを更新情報から特定し、コピー先リファレンスカウンタを「１」減算して更新（補正）する。制御部は、コピー先リファレンスカウンタの更新後に、再同期処理を終了する。
【０１２９】
これにより、制御部は、コピー元ＲＡＩＤ装置とコピー先ＲＡＩＤ装置とでミラーリングが停止している状態におけるリモートコピー時の通信量削減効率の低下を抑制できる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置３ａ，３ｂ、ＲＡＩＤ装置１３ａ，１３ｂが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１３２】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１３３】
１，１０  ストレージシステム
２ａ，２ｂ  ストレージ装置
３ａ，３ｂ  ストレージ制御装置
４ａ，４ｂ  制御部
５ａ  コピー対象データ
５ｂ  データ
６ａ，６ｂ  要約情報
７  照合結果
８ａ，８ｂ，３０ａ，３０ｂ  ディスク
１１  ホスト
１２  ネットワーク
１３ａ，１３ｂ  ＲＡＩＤ装置
１４  ホストインタフェース
１５  プロセッサ
１６  ＲＡＭ
１７  ＨＤＤ
１８  機器接続インタフェース
１９  ディスクインタフェース
２０  ＤＥ
２１  コントローラモジュール
４０ａ，４０ｂ  ＬＵ
【図１】
0006558059.tif 000002
【図２】
0006558059.tif 000003
【図３】
0006558059.tif 000004
【図４】
0006558059.tif 000005
【図５】
0006558059.tif 000006
【図６】
0006558059.tif 000007
【図７】
0006558059.tif 000008
【図８】
0006558059.tif 000009
【図９】
0006558059.tif 000010
【図１０】
0006558059.tif 000011
【図１１】
0006558059.tif 000012
【図１２】
0006558059.tif 000013
【図１３】
0006558059.tif 000014
【図１４】
0006558059.tif 000015