JP6558059B2 - ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム - Google Patents

ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム Download PDF

Info

Publication number
JP6558059B2
JP6558059B2 JP2015094021A JP2015094021A JP6558059B2 JP 6558059 B2 JP6558059 B2 JP 6558059B2 JP 2015094021 A JP2015094021 A JP 2015094021A JP 2015094021 A JP2015094021 A JP 2015094021A JP 6558059 B2 JP6558059 B2 JP 6558059B2
Authority
JP
Japan
Prior art keywords
copy
data
storage device
raid device
target 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.)
Active
Application number
JP2015094021A
Other languages
English (en)
Other versions
JP2016212551A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015094021A priority Critical patent/JP6558059B2/ja
Priority to US15/090,663 priority patent/US10209919B2/en
Publication of JP2016212551A publication Critical patent/JP2016212551A/ja
Application granted granted Critical
Publication of JP6558059B2 publication Critical patent/JP6558059B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency

Landscapes

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

Description

本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムに関する。
ストレージ装置(RAID(Redundant Arrays of Independent Disks))においてディスク容量を削減するための技術として、データの重複排除(Deduplication)機能がある。たとえば、サーバから書き込まれるデータをブロック単位で比較し、同じデータパターンが存在する場合に、参照先を同じにしてディスクにデータを保持する重複排除機能が知られている。
また、ストレージ装置間でデータをコピーすることによりミラーリングやバックアップをおこなうリモートコピーが知られている。
ストレージ装置間においてリモートコピーをおこなう場合、仮想ボリュームの任意の部分をリモートコピー対象にして、重複排除されたデータを転送することがおこなわれる。このようなリモートコピーは、ストレージプール上の重複排除済みデータを転送対象とすることで転送量を削減できる。
特開2009−251725号公報 特開2008−65425号公報
しかしながら、ストレージプール上の重複排除済みデータを転送対象とする場合、ストレージ装置は、ストレージプール上の割当て済みブロックのすべてをコピー対象とすることとなる。そのため、このようなリモートコピーは、バックアップ不要な仮想ボリュームを含めて転送対象とすることから、バックアップ不要なデータが多い場合に、データ転送量を不必要に増大させることとなる。また、このようなリモートコピーは、コピー先ストレージ装置のストレージプールをコピー元ストレージ装置のストレージプールと同じ容量だけ消費させることとなる。
これに対して、リモートコピーの転送対象を仮想ボリュームの一部または全部に対して設定できれば、データ転送量の抑制とコピー先ストレージ装置で確保しなければならないストレージプールの容量の抑制とをおこなうことができる。
しかしながら、仮想ボリュームを転送対象とするリモートコピーは、仮想ボリューム上に展開された重複排除されていないデータを転送対象とする。そのため、仮想ボリュームを転送対象とするリモートコピーは、重複排除されたデータを転送対象とする場合と比較して転送量が大きくなる傾向がある。
1つの側面では、本発明は、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できるストレージ制御装置、ストレージ制御プログラム、およびストレージシステムを提供することを目的とする。
上記目的を達成するために、以下に示すようなストレージ制御装置が提供される。ストレージ制御装置は、制御部と記憶部とを備える。制御部は、コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、コピー先ストレージ装置が記憶する情報と要約情報との照合結果をコピー先ストレージ装置から取得し、照合結果が照合不一致の場合に、コピー対象データをコピー先ストレージ装置に転送する。記憶部は、コピー対象データの転送履歴を記憶する。制御部は、転送履歴にもとづいて要約情報をコピー先ストレージ装置に転送することなしに、コピー対象データをコピー先ストレージ装置に転送する。
また、1つの態様では、コンピュータに処理を実行させるストレージ制御プログラムが提供される。また、1つの態様では、ストレージシステムが提供される。
一態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージシステムにおいて、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できる。
第1の実施形態のストレージシステムの構成の一例を示す図である。 第2の実施形態のストレージシステムの構成の一例を示す図である。 第2の実施形態のRAID装置のハードウェア構成の一例を示す図である。 第2の実施形態のストレージプールのイメージの一例を示す図である。 第2の実施形態のリモートコピーシーケンスの一例を示す図である。 (A)が第2の実施形態のデータログのデータ構造の一例を示す図であり、(B)がハッシュ値転送の送信フォーマットの一例を示す図であり、(C)がハッシュ値転送の受信フォーマットの一例を示す図である。 第2の実施形態のコピー元処理のフローチャートを示す図である。 第2の実施形態のデータ送信処理のフローチャートを示す図である。 第2の実施形態のコピー先処理のフローチャートを示す図である。 第3の実施形態のデータログのデータ構造の一例を示す図である。 第3の実施形態のリモートコピーシーケンスの一例を示す図である。 第3の実施形態の第2コピー元処理のフローチャートを示す図である。 第3の実施形態の第2データ送信処理のフローチャートを示す図である。 第4の実施形態の再同期処理のフローチャートを示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージシステムについて図1を用いて説明する。図1は、第1の実施形態のストレージシステムの構成の一例を示す図である。
ストレージシステム1は、複数のストレージ装置2a,2bを含む。ストレージシステム1は、ストレージ装置2aからストレージ装置2bへのデータのコピー、すなわちリモートコピーを実行可能である。
ストレージ装置2aは、リモートコピーにおけるコピー元ストレージ装置である。ストレージ装置2bは、リモートコピーにおけるコピー先ストレージ装置である。
ストレージ装置2aは、ストレージ制御装置3aと、データを格納可能な1以上のディスク8aを含む。ストレージ制御装置3aは、ストレージ装置2aを制御対象とする。また、ストレージ装置2bは、ストレージ制御装置3bと、データを格納可能な1以上のディスク8bを含む。ストレージ制御装置3bは、ストレージ装置2bを制御対象とする。
ストレージ制御装置3aは、情報処理装置の1つであり、たとえばストレージ装置2aがRAID装置であるときにコントローラモジュールである。ストレージ制御装置3aは、制御部4aを含む。制御部4aは、たとえば、コントローラモジュールに備えられたプロセッサであり、リモートコピー等を制御する。
また、ストレージ制御装置3bは、情報処理装置の1つであり、たとえばストレージ装置2bがRAID装置であるときにコントローラモジュールである。ストレージ制御装置3bは、制御部4bを含む。制御部4bは、たとえば、コントローラモジュールに備えられたプロセッサであり、リモートコピー等を制御する。
制御部4aは、ストレージ装置2aが記憶するコピー対象データ5aの要約情報6aをストレージ装置2aからストレージ装置2bに転送する。要約情報6aは、コピー対象データ5aに対して一意に定まる値である。要約情報6aは、たとえば、コピー対象データ5aに対するハッシュ値であり、ハッシュ関数を用いて算出される。
ストレージ装置2bは、要約情報6aを取得する。なお、ストレージ装置2bは、データ5bと要約情報6bとをあらかじめディスク8bに記憶する。要約情報6bは、データ5bに対して一意に定まる値である。要約情報6bは、たとえば、データ5bに対するハッシュ値であり、要約情報6aの算出に用いられるハッシュ関数と同じハッシュ関数を用いて算出される。
制御部4bは、要約情報6bと要約情報6aとを照合する。制御部4bは、要約情報6aと要約情報6bとが一致する場合に照合一致とする照合結果7を生成し、要約情報6aと要約情報6bとが一致しない場合に照合不一致とする照合結果7を生成する。制御部4bは、ストレージ装置2bからストレージ装置2aに照合結果7を転送する。
ストレージ装置2aは、照合結果7を取得する。制御部4aは、照合結果7が照合不一致の場合に、コピー対象データ5aをストレージ装置2bに転送して、リモートコピーを完了とする。一方、制御部4aは、照合結果7が照合一致の場合に、すなわちコピー対象データ5aとデータ5bとが等価である場合に、コピー対象データ5aをストレージ装置2bに転送することなしにリモートコピーを完了とする。
したがって、ストレージ制御装置3aは、コピー対象データ5aを、ストレージ装置2bが保持していない場合に、すなわちコピー対象データ5aとデータ5bとが等価でない場合に限定して、コピー対象データ5aをストレージ装置2bに転送することができる。したがって、ストレージ制御装置3aは、リモートコピーにおけるデータ転送量を削減し、リモートコピーの実行効率を向上できる。また、ストレージ制御装置3aは、重複排除機能が有効な環境においても、データ転送量を削減し、リモートコピーの実行効率を向上できる。
このようにして、ストレージシステム1は、コピー元ストレージ装置からコピー先ストレージ装置へのデータ転送量を低減してリモートコピーを実行できる。
[第2の実施形態]
次に、第2の実施形態のストレージシステムについて図2を用いて説明する。図2は、第2の実施形態のストレージシステムの構成の一例を示す図である。
ストレージシステム10は、ホスト11と、ネットワーク12を介してホスト11と接続するRAID装置13a,13bを備える。ストレージシステム10は、RAID装置13a,13bのうちいずれか一方をコピー元RAID装置とし、他方をコピー先RAID装置として、リモートコピーをおこなう。たとえば、ストレージシステム10は、RAID装置13aをコピー元RAID装置とし、RAID装置13bをコピー先RAID装置としてリモートコピーをおこなう。
リモートコピーの実行制御は、RAID装置13a,13bがおこなう。なお、RAID装置13a,13bに代えてホスト11がリモートコピーの制御をおこなうものであってもよい。
次に、RAID装置13aのハードウェア構成について図3を用いて説明する。図3は、第2の実施形態のRAID装置のハードウェア構成の一例を示す図である。
RAID装置13aは、コントローラモジュール21と、DE(Drive Enclosure)20を含む。なお、RAID装置13aは、複数のコントローラモジュール21と複数のDE20を備えてもよい。
コントローラモジュール21は、ホストインタフェース14と、プロセッサ15と、RAM(Random Access Memory)16と、HDD(Hard Disk Drive)17と、機器接続インタフェース18と、ディスクインタフェース19を含む。
コントローラモジュール21は、プロセッサ15によって装置全体が制御されている。プロセッサ15には、バスを介してRAM16と複数の周辺機器が接続されている。プロセッサ15は、2以上のプロセッサからなるマルチコアプロセッサであってもよい。なお、コントローラモジュール21が複数ある場合、コントローラモジュール21は主従関係を定め、主となるコントローラモジュール21が従となるコントローラモジュール21およびRAID装置13a全体を制御してもよい。
プロセッサ15は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。
RAM16は、コントローラモジュール21の主記憶装置として使用される。RAM16には、プロセッサ15に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、RAM16には、プロセッサ15による処理に必要な各種データが格納される。また、RAM16は、プロセッサ15のキャッシュメモリとして機能する。
バスに接続されている周辺機器としては、ホストインタフェース14、HDD17、機器接続インタフェース18、およびディスクインタフェース19がある。ホストインタフェース14は、ネットワーク12を介してホスト11やRAID装置13bとの間でデータの送受信をおこなう。
HDD17は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。HDD17は、RAID装置13aの補助記憶装置として使用される。HDD17には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することができる。
機器接続インタフェース18は、コントローラモジュール21に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース18には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェース18との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
また、機器接続インタフェース18には、図示しない表示部を接続してもよい。その場合、機器接続インタフェース18は、プロセッサ15からの命令にしたがって、情報を表示部に表示させる機能を有する。
また、機器接続インタフェース18は、図示しないキーボードやマウスを接続してもよい。その場合、機器接続インタフェース18は、キーボードやマウスから送られてくる信号をプロセッサ15に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することができる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
また、機器接続インタフェース18は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
ディスクインタフェース19は、DE20との間でデータの送受信をおこなう。コントローラモジュール21は、ディスクインタフェース19を介してDE20と接続する。
DE20は、1以上のディスクを備え、たとえばディスク30a,30b,…を備える。ディスク30a,30bは、記憶装置であり、コントローラモジュール21からの指示にもとづきデータを格納する。ディスク30a,30bは、たとえば、HDDやSSD(Solid State Drive)である。
ディスク30a,30bには、1以上のLU(Logical Unit)、たとえばLU40a,40b,…が論理的に割り当てられている。LU40a,40bは、LUを一意に特定可能なLUN(Logical Unit Number)が付され、LBA(Logical Block Address)で特定されるアドレスにデータを格納する。したがって、ディスク30a,30bに記憶されたデータは、LUNとLBAとで特定される。なお、ディスク30a,30bにLU40a,40bが論理的に割り当てられている態様について、後で図4を用いて説明する。
以上のようなハードウェア構成によって、RAID装置13aの処理機能を実現することができる。
RAID装置13aは、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、RAID装置13aの処理機能を実現する。RAID装置13aに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、RAID装置13aに実行させるプログラムをHDD17に格納しておくことができる。プロセッサ15は、HDD17内のプログラムの少なくとも一部をRAM16にロードし、プログラムを実行する。また、RAID装置13aに実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくことができる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ15からの制御により、HDD17にインストールされた後、実行可能となる。またプロセッサ15が、可搬型記録媒体から直接プログラムを読み出して実行することができる。
なお、RAID装置13bは、RAID装置13aと同様のハードウェア構成であることからRAID装置13aの説明に代えてRAID装置13bの説明を省略する。
次に、第2の実施形態のストレージプールのイメージについて図4を用いて説明する。図4は、第2の実施形態のストレージプールのイメージの一例を示す図である。
RAID装置13aにおいて、LU40a,40bがディスク30a,30bに論理的に割り当てられている態様について説明する。なお、RAID装置13bもRAID装置13aと同様であるため、代表してRAID装置13aについて説明する。
RAID装置13aは、アドレス変換テーブル41とストレージプール43とを有する。ストレージプール43は、ディスク30a,30bのそれぞれの記憶領域をまとめて、論理的に大きな記憶領域として取り扱うものである。RAID装置13aは、ストレージプール43から取り出した論理的な記憶領域を、LU40a,40bに割り当てる。ホスト11は、LU40a,40bにアクセスすることで、ディスク30a,30bに記憶されたデータを読み出したり、ディスク30a,30bにデータを書き込んだりできる。
アドレス変換テーブル41は、データブロック42a,42b,42cを含む。データブロック42a,42b,42cは、LUとLBAとで指定されたアドレスの参照先の変換に用いられる情報である。ストレージプール43は、データログ44a,44bを含む。データログ44a,44bは、データブロック42a,42b,42cを用いて変換されたアドレスの参照先となる情報である。データログ44a,44bは、ディスク30a,30bが記憶するデータと、その管理情報とを含む。
ここで、RAID装置13aの重複排除機能について説明する。
RAID装置13aは、ディスク30a,30bに記憶されているデータと同じデータの書き込みを指示されたとき、データの書き込みに代えて参照元から記憶されるデータを参照可能にすることでデータの重複を排除する。RAID装置13aは、データログ44a,44bがディスク30a,30bに記憶されているデータと一対一に対応し、データログ44a,44bがデータブロック42a,42b,42cと一対多で対応することにより重複排除機能を実現する。
たとえば、データログ44aは、ディスク30aのデータと対応し、データブロック42a,42cと対応する。これにより、LU40a(LBA指定を含む)は、データブロック42aを介してデータログ44aと対応するディスク30aのデータを指定できる。また、LU40b(LBA指定を含む)は、データブロック42cを介してLU40a(LBA指定を含む)と同じデータを指定できる。
これにより、LU40a(LBA指定を含む)が指定するデータをLU40b(LBA指定を含む)にコピーするとき、RAID装置13aは、データブロック42cの参照先をデータログ44aに設定するだけでよい。そのため、ディスク30a,30bは、同じデータによる記憶容量の消費が抑制される。
次に、第2の実施形態のリモートコピーシーケンスについて図5を用いて説明する。図5は、第2の実施形態のリモートコピーシーケンスの一例を示す図である。以下、RAID装置13aをコピー元RAID装置とし、RAID装置13bをコピー先RAID装置とするリモートコピーについて説明する。
[シーケンスSq101]RAID装置13aは、RAID装置13bにコピー対象となるデータのハッシュ値を送信する。RAID装置13aは、ハッシュ値と併せて、コピー対象となるデータの特定に用いる情報(LUN,LBA等)を送信する。ハッシュ値は、RAID装置13aが、コピー対象データについてハッシュ関数を用いて求めた値である。RAID装置13aは、所定単位(たとえば、4Kbyte)のコピー対象データごとにハッシュ値を算出し、コピー対象データのサイズに応じて1以上のハッシュ値を送信する。
[シーケンスSq102]RAID装置13bは、受信したハッシュ値と、RAID装置13bがあらかじめ保持するハッシュ値とを比較する。ここで、受信したハッシュ値と、RAID装置13bがあらかじめ保持するハッシュ値とが一致する場合、RAID装置13bは、RAID装置13bがコピー対象データを既に記憶していることを判定できる。また、受信したハッシュ値と、RAID装置13bがあらかじめ保持するハッシュ値とが一致しない場合、RAID装置13bは、RAID装置13bがコピー対象データを未だ記憶していないことを判定できる。
[シーケンスSq103]RAID装置13bは、受信したハッシュ値のうち、RAID装置13bがあらかじめ保持するハッシュ値と一致したハッシュ値について、RAID装置13bがあらかじめ保持するハッシュ値に対応するデータを受信データとする。RAID装置13bは、LUNおよびLBA(コピー対象となるデータの特定に用いる情報)から一致したハッシュ値に対応するデータにアクセスできるように、アドレス変換テーブルを更新する。
[シーケンスSq104]RAID装置13bは、アドレス変換テーブルの更新に伴い、対応するリファレンスカウンタを更新する。リファレンスカウンタは、データログに含まれる管理情報の1つであり、重複排除されたデータの参照元の数を示す情報である。なお、リファレンスカウンタの詳細については、図6を用いて後で説明する。
[シーケンスSq105]RAID装置13bは、受信したハッシュ値ごとに、RAID装置13bがあらかじめ保持するハッシュ値との比較結果をRAID装置13aに送信する。なお、RAID装置13bは、ハッシュ値と併せて受信した、コピー対象となるデータの特定に用いる情報(LUN,LBA等)を比較結果に付すことができる。また、RAID装置13bは、受信したハッシュ値ごとの「一致/不一致」を1ビットで示すビットマップを比較結果として用いるものであってもよい。
[シーケンスSq106]RAID装置13aは、RAID装置13bから受信した比較結果にもとづいて、送信対象データを選択する。送信対象データは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データである。RAID装置13aは、比較結果が「一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することなしにコピー完了とする。
[シーケンスSq107]RAID装置13aは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データをRAID装置13bに送信する。RAID装置13aは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することによってコピー完了とする。
[シーケンスSq108]RAID装置13bは、RAID装置13aから受信したデータをストレージプールに格納する。なお、RAID装置13bは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
なお、RAID装置13aが実行する処理については、図7および図8を用いて後で説明する。また、RAID装置13bが実行する処理については、図9および図10を用いて後で説明する。
このように、RAID装置13aは、データを送信する前に、ハッシュ値のみをRAID装置13bに送信する。RAID装置13aは、RAID装置13bからハッシュ値の比較結果を受信し、比較結果が「不一致」のデータのみを送信対象データとして送信する。RAID装置13aは、コピー対象のすべてのデータを送信することに代えて、コピー対象データのうちRAID装置13bが記憶していないデータを送信対象データとすることができる。たとえば、RAID装置13aは、同一データパターンを複数回転送するときに、2回目以降のデータ転送量の削減幅を大きくすることができる。
これにより、RAID装置13aからRAID装置13bへのデータ転送量を削減できる。したがって、RAID装置13aは、RAID装置13aとRAID装置13bが接続するネットワークにかかる負荷を軽減できる。
また、RAID装置13aは、重複排除されたデータをコピー対象とすることができるので、ストレージプール43のすべてをコピー対象とすることを要しない。したがって、RAID装置13aは、RAID装置13bに対してリモートコピーを効率よく実行できる。このようなRAID装置13aは、データマイグレーションの実行効率を向上できる。
次に、第2の実施形態のデータログのデータ構造と、ハッシュ値転送の送信フォーマットと、ハッシュ値転送の受信フォーマットについて図6を用いて説明する。図6は、(A)が第2の実施形態のデータログのデータ構造の一例を示す図であり、(B)がハッシュ値転送の送信フォーマットの一例を示す図であり、(C)がハッシュ値転送の受信フォーマットの一例を示す図である。
図6(A)は、データログ44a,44bのデータ構造(以下、データログデータ構造)を示す。データログデータ構造は、実データ格納領域と、ハッシュ値格納領域と、リファレンスカウンタ格納領域とを含む。実データ格納領域は、ユーザデータを格納可能な領域であり、たとえば4Kbyteの大きさを有する。
ハッシュ値格納領域は、実データ格納領域に格納されたデータから算出されたハッシュ値を格納する領域であり、たとえば20byteの大きさを有する。なお、ハッシュ値格納領域の大きさは、異なるデータから同じ値のハッシュ値が算出される可能性が無視できるほどに小さくなるように設定される。なお、RAID装置13aは、ストレージプールの大きさ(すなわち、ハッシュ値の衝突確率)に応じてハッシュ値格納領域の大きさを可変にしてもよい。リファレンスカウンタ格納領域は、実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば4byteの大きさを有する。
図6(B)は、ハッシュ値転送の送信フォーマットを示す。ハッシュ値転送の送信フォーマットは、リモートコピーシーケンスのシーケンスSq101におけるハッシュ値送信時に用いられる通信フォーマットである。ハッシュ値転送の送信フォーマットは、LUNとLBAとハッシュ値とを送信情報に含む。たとえば、LUNは4byte、LBAは8byte、ハッシュ値は20byteの大きさの情報である。
図6(C)は、ハッシュ値転送の受信フォーマットを示す。ハッシュ値転送の受信フォーマットは、リモートコピーシーケンスのシーケンスSq105における比較結果の受信時に用いられる通信フォーマットである。ハッシュ値転送の受信フォーマットは、LUNとLBAとハッシュ値比較結果とを受信情報に含む。たとえば、LUNは4byte、LBAは8byte、ハッシュ値比較結果は1byteの大きさの情報である。なお、ハッシュ値転送の受信フォーマットは、用途が定められていないリザーブ情報を含むものであってもよい。たとえば、ハッシュ値転送の受信フォーマットは、リザーブ情報の大きさを19byteとして、ハッシュ値転送の送信フォーマットの大きさと同じ合計32byteの大きさとしてもよい。
次に、第2の実施形態のコピー元処理について図7を用いて説明する。図7は、第2の実施形態のコピー元処理のフローチャートを示す図である。
コピー元処理は、RAID装置13a(コピー元RAID装置)がRAID装置13b(コピー先RAID装置)に送信するコピー対象データのハッシュ値と、RAID装置13bが記憶するデータのハッシュ値との比較結果に応じてデータ転送をおこなう処理である。RAID装置13aの制御部(プロセッサ15)は、ホスト11からリモートコピーの実行指示を受けて、コピー元処理を実行する。
[ステップS11]制御部は、リモートコピー条件を取得する。リモートコピー条件は、リモートコピーの実行条件を規定する各種情報である。たとえば、リモートコピー条件は、コピー対象となるデータに関する情報として、コピー対象データ、データのコピー元、データのコピー先、コピー経路などを含む。なお、制御部は、HDD17に格納されたリモートコピー条件を取得してもよいし、保守員が入力するコマンドからリモートコピー条件を取得してもよい。
[ステップS12]制御部は、コピー対象データのハッシュ値を取得する。たとえば、制御部は、コピー対象データに対応するデータブロック42aを介しデータログ44aを特定し、データログ44aからハッシュ値を取得することができる。
[ステップS13]制御部は、コピー対象データのハッシュ値をRAID装置13bに送信する。なお、制御部は、図6(B)に示した通信フォーマットにしたがい、ハッシュ値に加えてコピー対象データのLUNとLBAを送信する。
[ステップS14]制御部は、コピー対象データのハッシュ値をすべてRAID装置13bに送信済みか否かを判定する。たとえば、ハッシュ値の算出単位となるデータブロックの大きさが4Kbyte、コピー対象データの大きさが32Mbyteである場合、コピー対象データのハッシュ値の数は、8192個(=32M/4K)となる。8192個のハッシュ値は、256Kbyte(=32byte×8192)の大きさであり、たとえば、RAID装置13aは、8192個のハッシュ値(ハッシュ値群)を1回の通信でRAID装置13bに送信できる。したがって、RAID装置13aは、8192個を超えるハッシュ値を2回以上の通信によってRAID装置13bに送信できる。
制御部は、すべてのハッシュ値が送信済みである場合にステップS15にすすみ、すべてのハッシュ値が送信済みでない場合にステップS11にすすむ。このようにして、制御部は、すべてのハッシュ値をRAID装置13bに送信する。
[ステップS15]制御部は、RAID装置13bから、ハッシュ値の比較結果を受信する。なお、制御部は、図6(C)に示した通信フォーマットにしたがい、ハッシュ値の比較に加えてコピー対象データのLUNとLBAを受信する。なお、ハッシュ値の比較結果は、ステップS14で送信したハッシュ値群に対応する比較結果群として受信することができる。
[ステップS16]制御部は、データ送信処理を実行する。データ送信処理は、RAID装置13aの制御部が、ハッシュ値の比較結果にもとづいてコピー対象データをRAID装置13bに送信する処理である。データ送信処理の詳細は、図8を用いて後で説明する。
次に、第2の実施形態のデータ送信処理について図8を用いて説明する。図8は、第2の実施形態のデータ送信処理のフローチャートを示す図である。
データ送信処理は、RAID装置13a(コピー元RAID装置)の制御部(プロセッサ15)が、ハッシュ値の比較結果にもとづいてコピー対象データをRAID装置13b(コピー先RAID装置)に送信する処理である。データ送信処理は、コピー元処理のステップS16において制御部が実行する処理である。
[ステップS21]制御部は、RAID装置13bから受信した比較結果が「一致」であるか否かを判定する。すなわち、制御部は、RAID装置13aが送信したハッシュ値がRAID装置13bで記憶するデータのハッシュ値と一致するか否かを判定する。制御部は、比較結果が「一致」である場合にステップS23にすすみ、比較結果が「一致」でない場合、すなわち比較結果が「不一致」の場合にステップS22にすすむ。なお、RAID装置13bから受信した比較結果が複数のハッシュ値の比較結果を含む場合、制御部は、ハッシュ値の比較結果ごとに判定をおこなう。
[ステップS22]制御部は、ハッシュ値が「不一致」であったコピー対象データ(データブロック単位)を送信対象データとして選択して、RAID装置13bに送信する。
[ステップS23]制御部は、受信したハッシュ値の比較結果すべてについてハッシュの「一致/不一致」を確認したか否かを判定する。制御部は、比較結果すべてをチェックしていない場合はステップS21にもどり、比較結果すべてをチェックした場合はデータ送信処理を終了する。
このように、RAID装置13aは、RAID装置13bから受信した比較結果(照合結果)が一致する場合に、RAID装置13bへのコピー対象データの送信をスキップする。これにより、RAID装置13aは、RAID装置13bへのデータ転送量を低減できる。
次に、第2の実施形態のコピー先処理について図9を用いて説明する。図9は、第2の実施形態のコピー先処理のフローチャートを示す図である。
コピー先処理は、RAID装置13b(コピー先RAID装置)が、RAID装置13a(コピー元RAID装置)から受信したハッシュ値と、RAID装置13bが記憶するハッシュ値とを比較し、比較結果をRAID装置13aに送信する処理である。RAID装置13bの制御部(プロセッサ15)は、RAID装置13aからハッシュ値を受信して、コピー先処理を実行する。
[ステップS31]制御部は、受信したハッシュ値とRAID装置13bが記憶するデータのハッシュ値とを比較する。たとえば、制御部は、受信したハッシュ値のうちの1つを検索キーとして選択し、RAID装置13bが記憶するデータログに含まれるハッシュ値を探索する。制御部は、探索結果が「ヒット」の場合に選択したハッシュ値について比較結果を「一致」として、探索結果が「ミス」の場合に選択したハッシュ値について比較結果を「不一致」とする。
[ステップS32]制御部は、比較結果が一致したか否かを判定する。制御部は、比較結果が「一致」の場合にステップS33にすすみ、比較結果が「不一致」の場合にステップS36にすすむ。
[ステップS33]制御部は、比較結果が「一致」したハッシュ値に対応するLUNとLBAからハッシュ値が一致したデータログを参照するように、アドレス変換テーブルを更新する。
[ステップS34]制御部は、比較結果が「一致」したハッシュ値に対応するLUNとLBAから参照されるデータログのリファレンスカウンタを「1」加算して更新する。これにより、参照先のデータログは、参照元が「1」増えたことを記録できる。
[ステップS35]制御部は、選択したハッシュ値の比較結果(送信用)に「一致」を設定する。たとえば、制御部は、図6(C)に示した通信フォーマットのハッシュ値比較結果に「一致」を設定する。
[ステップS36]制御部は、選択したハッシュ値の比較結果(送信用)に「不一致」を設定する。たとえば、制御部は、図6(C)に示した通信フォーマットのハッシュ値比較結果に「不一致」を設定する。
これにより、制御部は、選択したハッシュ値の比較結果を設定した送信用データを生成できる。
[ステップS37]制御部は、すべてのハッシュ値について比較済みであるか否かを判定する。制御部は、すべてのハッシュ値について比較済みである場合にステップS38にすすみ、すべてのハッシュ値について比較済みでない場合にステップS31にすすむ。
[ステップS38]制御部は、ステップS35またはステップS36で生成した送信用データをハッシュ値の比較結果としてRAID装置13aに送信する。
[ステップS39]制御部は、RAID装置13aに送信した比較結果が「不一致」を含むか否かを判定する。制御部は、RAID装置13aに送信した比較結果が「不一致」を含む場合にステップS40にすすみ、比較結果が「不一致」を含まない場合にコピー先処理を終了する。
[ステップS40]制御部は、比較結果が「不一致」のハッシュ値に対応するコピー対象データをRAID装置13aから受信する。
[ステップS41]制御部は、RAID装置13aから受信した比較結果が「不一致」のハッシュ値に対応するコピー対象データを格納し、コピー先処理を終了する。このとき、制御部は、必要に応じて、データログの生成とアドレス変換テーブルの更新とをおこなう。
[第3の実施形態]
第3の実施形態のリモートコピーは、コピー元RAID装置からコピー先RAID装置に送信するハッシュ値の絞り込みをおこなう点で第2の実施形態と相違する。そのため、第3の実施形態は、第2の実施形態と異なるデータログデータ構造を採用する。なお、第3の実施形態のリモートコピーの説明は、第2の実施形態のリモートコピーとの相違点を中心にして説明し、第2の実施形態のリモートコピーと同様である点について説明を省略する。
まず、第3の実施形態のデータログのデータ構造(データログデータ構造)について図10を用いて説明する。図10は、第3の実施形態のデータログのデータ構造の一例を示す図である。
データログデータ構造は、実データ格納領域と、ハッシュ値格納領域と、コピー元リファレンスカウンタ格納領域と、コピー先リファレンスカウンタ格納領域とを含む。実データ格納領域は、ユーザデータを格納可能な領域であり、たとえば4Kbyteの大きさを有する。ハッシュ値格納領域は、実データ格納領域に格納されたデータから算出されたハッシュ値を格納する領域であり、たとえば20byteの大きさを有する。
コピー元リファレンスカウンタ格納領域は、実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば4byteの大きさを有する。コピー元リファレンスカウンタ格納領域は、第2の実施形態におけるコピー元RAID装置のリファレンスカウンタ格納領域に相当する。
コピー先リファレンスカウンタ格納領域は、コピー先RAID装置における実データ格納領域に格納されたデータの参照元の数を格納する領域であり、たとえば4byteの大きさを有する。コピー先リファレンスカウンタ格納領域は、第2の実施形態におけるコピー先RAID装置のリファレンスカウンタ格納領域に相当する。
なお、コピー元RAID装置は、コピー先リファレンスカウンタを参照することで、コピー先RAID装置がコピー先リファレンスカウンタに対応するデータを記憶しているか否かを推定できる。たとえば、コピー元RAID装置は、コピー先リファレンスカウンタの値が「1」以上の場合、コピー先RAID装置が対応するデータを記憶していると推定できる。また、コピー元RAID装置は、コピー先リファレンスカウンタの値が「0」の場合、コピー先RAID装置が対応するデータを記憶していないと推定できる。
なお、ストレージシステム10がRAID装置13aからRAID装置13bへのリモートコピーによってミラーリングをおこなっている場合、コピー先リファレンスカウンタの値は、リモートコピーの回数とみなすことができる。すなわち、コピー先リファレンスカウンタは、コピー元RAID装置からコピー先RAID装置へのデータ転送の履歴情報であるとみなすことができる。
次に、第3の実施形態のリモートコピーシーケンスについて図11を用いて説明する。図11は、第3の実施形態のリモートコピーシーケンスの一例を示す図である。以下、RAID装置13aをコピー元RAID装置とし、RAID装置13bをコピー先RAID装置とするリモートコピーについて説明する。
[シーケンスSq201]RAID装置13aは、コピー対象データのデータログにあるコピー先リファレンスカウンタを参照する。
[シーケンスSq202]RAID装置13aは、コピー先リファレンスカウンタの値が「1」未満である場合、対応するコピー対象データをRAID装置13bに送信する。このように、RAID装置13aは、RAID装置13bにおいてハッシュヒットしない可能性の高いコピー対象データをハッシュ値送信の対象から外すことで、ハッシュ値転送が空振りすることによるデータ転送量の増大を抑制する。
[シーケンスSq203]RAID装置13bは、RAID装置13aから受信したデータをストレージプールに格納する。なお、RAID装置13bは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
[シーケンスSq204]RAID装置13aは、シーケンスSq202でRAID装置13bに送信したコピー対象データに対応するコピー先リファレンスカウンタを「1」加算して更新する。
[シーケンスSq205]RAID装置13aは、シーケンスSq202で送信していないコピー対象データのハッシュ値を選択する。言い換えれば、RAID装置13aは、データログにあるコピー先リファレンスカウンタの値が「1」以上のコピー対象データのハッシュ値を選択する。
[シーケンスSq206]RAID装置13aは、選択したハッシュ値をRAID装置13bに送信する。RAID装置13aは、ハッシュ値と併せて、コピー対象となるデータの特定に用いる情報(LUN,LBA等)を送信する。
[シーケンスSq207]RAID装置13bは、受信したハッシュ値と、RAID装置13bがあらかじめ保持するハッシュ値とを比較する。
[シーケンスSq208]RAID装置13bは、受信したハッシュ値のうち、RAID装置13bがあらかじめ保持するハッシュ値と一致したハッシュ値について、RAID装置13bがあらかじめ保持するハッシュ値に対応するデータを受信データとする。RAID装置13bは、LUNおよびLBA(コピー対象となるデータの特定に用いる情報)から一致したハッシュ値に対応するデータにアクセスできるように、アドレス変換テーブルを更新する。
[シーケンスSq209]RAID装置13bは、アドレス変換テーブルの更新に伴い、対応するコピー元リファレンスカウンタを更新する。
[シーケンスSq210]RAID装置13bは、受信したハッシュ値ごとに、RAID装置13bがあらかじめ保持するハッシュ値との比較結果をRAID装置13aに送信する。
[シーケンスSq211]RAID装置13aは、RAID装置13bから受信した比較結果にもとづいて、送信対象データを選択する。RAID装置13aは、比較結果が「一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することなしにコピー完了とする。
[シーケンスSq212]RAID装置13aは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データをRAID装置13bに送信する。RAID装置13aは、比較結果が「不一致」だったハッシュ値に対応するコピー対象データについては、コピー対象データを送信することによってコピー完了とする。
[シーケンスSq213]RAID装置13aは、シーケンスSq212でRAID装置13bに送信したコピー対象データに対応するコピー先リファレンスカウンタを「1」加算して更新する。
[シーケンスSq214]RAID装置13bは、RAID装置13aから受信したデータをストレージプールに格納する。なお、RAID装置13bは、格納したデータに対応して、データログの生成とアドレス変換テーブルの更新とをおこなう。
このように、RAID装置13aは、ハッシュヒットする可能性の高いハッシュ値をRAID装置13bに送信する。
たとえば、同一データパターンがほとんど存在しないランダムデータの場合にすべてのハッシュ値をRAID装置13bに送信しても、RAID装置13bは、ハッシュヒットしないことが多い。このようなハッシュ値転送の空振りは、ハッシュ値転送による通信量が増えるだけで全体としてデータ転送量が減らない。しかしながら、RAID装置13aは、ハッシュヒットする可能性の高いハッシュ値を選択して、RAID装置13bにハッシュ値を送信するので、全体としてデータ転送量を削減することができる。
したがって、RAID装置13aは、RAID装置13aとRAID装置13bが接続するネットワークにかかる負荷を軽減できる。
次に、第3の実施形態の第2コピー元処理について図12を用いて説明する。図12は、第3の実施形態の第2コピー元処理のフローチャートを示す図である。第2コピー元処理は、第2の実施形態のコピー元処理に相当する処理である。第2コピー元処理は、コピー先リファレンスカウンタに関する処理を含む点で、第2の実施形態のコピー元処理と相違する。
RAID装置13aの制御部(プロセッサ15)は、ホスト11からリモートコピーの実行指示を受けて、第2コピー元処理を実行する。なお、制御部は、コピー対象データのすべてを、1回の第2コピー元処理の実行対象としてもよいし、データサイズや処理時間などの条件に応じて2回以上の第2コピー元処理の実行対象に分割してもよい。
[ステップS51]制御部は、リモートコピー条件を取得する。
[ステップS52]制御部は、コピー対象データに対応するコピー先リファレンスカウンタの値を参照する。
[ステップS53]制御部は、コピー先リファレンスカウンタの値が「1」以上か否かを判定する。制御部は、コピー先リファレンスカウンタの値が「1」以上である場合にステップS54にすすみ、「1」以上でない場合にステップS55にすすむ。
なお、コピー先リファレンスカウンタの値が「1」以上である場合、コピー先RAID装置のデータログにおいて、コピー対象データと同じデータの存在可能性を示唆する。また、コピー先リファレンスカウンタが「1」以上でない場合、すなわち「0」である場合、コピー対象データと同じデータの不存在可能性を示唆する。
[ステップS54]制御部は、コピー先リファレンスカウンタに対応するハッシュ値を送信対象として選択する。
[ステップS55]制御部は、コピー先リファレンスカウンタに対応するコピー対象データを、RAID装置13bへ送信する。
[ステップS56]制御部は、送信したコピー対象データに対応するコピー先リファレンスカウンタに「1」を加算して更新する。
[ステップS57]制御部は、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査したか否かを判定する。制御部は、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査した場合にステップS58にすすみ、コピー範囲のすべてのコピー先リファレンスカウンタの値を検査していない場合にステップS52にすすむ。
[ステップS58]制御部は、コピー範囲において、ステップS54で選択されたハッシュ値のすべてをRAID装置13bに送信する。なお、制御部は、図6(B)に示した通信フォーマットにしたがい、ハッシュ値に加えてコピー対象データのLUNとLBAを送信する。
[ステップS59]制御部は、RAID装置13bから、ハッシュ値の比較結果を受信する。なお、制御部は、図6(C)に示した通信フォーマットにしたがい、ハッシュ値の比較に加えてコピー対象データのLUNとLBAを受信する。
[ステップS60]制御部は、第2データ送信処理を実行する。第2データ送信処理は、RAID装置13aの制御部が、ハッシュ値の比較結果にもとづいてコピー対象データをRAID装置13bに送信する処理である。第2データ送信処理の詳細は、図13を用いて後で説明する。
次に、第3の実施形態の第2データ送信処理について図13を用いて説明する。図13は、第3の実施形態の第2データ送信処理のフローチャートを示す図である。
第2データ送信処理は、RAID装置13a(コピー元RAID装置)の制御部(プロセッサ15)が、ハッシュ値の比較結果にもとづいてコピー対象データをRAID装置13b(コピー先RAID装置)に送信する処理である。第2データ送信処理は、第2コピー元処理のステップS60において制御部が実行する処理である。
[ステップS71]制御部は、RAID装置13bから受信した比較結果が「一致」であるか否かを判定する。すなわち、制御部は、RAID装置13aが送信したハッシュ値がRAID装置13bで記憶するデータのハッシュ値と一致するか否かを判定する。制御部は、比較結果が「一致」である場合にステップS73にすすみ、比較結果が「一致」でない場合、すなわち比較結果が「不一致」の場合にステップS72にすすむ。なお、RAID装置13bから受信した比較結果が複数のハッシュ値の比較結果を含む場合、制御部は、ハッシュ値の比較結果ごとに判定をおこなう。
[ステップS72]制御部は、ハッシュ値が「不一致」であったコピー対象データ(データブロック単位)を送信対象データとして選択して、RAID装置13bに送信する。
[ステップS73]制御部は、送信したコピー対象データに対応するコピー先リファレンスカウンタに「1」を加算して更新する。
[ステップS74]制御部は、受信したハッシュ値の比較結果すべてについてハッシュの「一致/不一致」を確認したか否かを判定する。制御部は、比較結果すべてをチェックしていない場合はステップS71にもどり、比較結果すべてをチェックした場合は第2データ送信処理を終了する。
なお、RAID装置13a(コピー元RAID装置)は、ホスト11から書込要求(WRITE I/O)を受け付けて書込対象データのコピー元リファレンスカウンタの値に変更が生じた場合、コピー先リファレンスカウンタの値も更新する。たとえば、RAID装置13aは、書込要求により対象データの参照数が「1」減少した場合、コピー元リファレンスカウンタの値とコピー先リファレンスカウンタの値をそれぞれ「1」減算して更新する。これにより、RAID装置13aは、ホスト11から書込要求があっても、リモートコピー時にコピー先RAID装置に送信するハッシュ値を適切に選択することができる。
なお、コピー元RAID装置のコピー先リファレンスカウンタと、コピー先RAID装置のコピー元リファレンスカウンタとで不整合が生じ得る。しかしながら、このような不整合は、コピー元RAID装置とコピー先RAID装置とのリモートコピーによりミラーリングを確立させることで解消可能である。
[第4の実施形態]
第4の実施形態のリモートコピーは、コピー元RAID装置のコピー先リファレンスカウンタと、コピー先RAID装置のコピー元リファレンスカウンタとを、定期または不定期に同期する処理を含む点で、第3の実施形態と相違する。なお、第4の実施形態のリモートコピーの説明は、第3の実施形態のリモートコピーとの相違点を中心にして説明し、第3の実施形態のリモートコピーと同様である点について説明を省略する。
コピー元RAID装置とコピー先RAID装置とでミラーリングが確立している状態では、コピー元RAID装置のコピー先リファレンスカウンタと、コピー先RAID装置のコピー元リファレンスカウンタとは原則として同じ値をとる。これにより、コピー元RAID装置は、リモートコピー時にコピー先RAID装置に送信するハッシュ値を適切に選択することができる。しかしながら、コピー元RAID装置とコピー先RAID装置とでミラーリングが停止している状態では、コピー元RAID装置のコピー先リファレンスカウンタと、コピー先RAID装置のコピー元リファレンスカウンタとで不一致となる場合がある。そこで、コピー元RAID装置は、定期または不定期に再同期処理を実行する。
再同期処理について図14を用いて説明する。図14は、第4の実施形態の再同期処理のフローチャートを示す図である。再同期処理は、RAID装置13a(コピー元RAID装置)の制御部(プロセッサ15)が、コピー元RAID装置のコピー先リファレンスカウンタと、コピー先RAID装置のコピー元リファレンスカウンタとを同期させる処理である。再同期処理は、制御部が所定の実行条件の成立を契機に定期または不定期に実行する処理である。所定の実行条件は、たとえば、タイマのタイムアップやスケジューリングなどによる定期実行や、ホスト11からの同期指示の受付や、ハッシュヒット率が所定の閾値以下に低下したことを検出などによる不定期実行がある。
[ステップS81]制御部は、RAID装置13b(コピー先RAID装置)に更新情報を要求する。RAID装置13bは、更新情報の要求を受け付けて更新情報を生成し、RAID装置13aに応答する。
なお、更新情報は、データ格納場所を示す情報(論理アドレス、物理アドレス等)とデータ更新の有無を示す情報とを含む。更新情報は、たとえば、所定範囲のデータの更新の有無を、所定サイズのブロック単位で表わしたビットマップ形式のデータである。
[ステップS82]制御部は、RAID装置13bから更新情報を取得する。
[ステップS83]制御部は、取得した更新情報にもとづいてコピー先リファレンスカウンタを更新する。たとえば、制御部は、RAID装置13aにおいて、RAID装置13bで更新がおこなわれた箇所のデータログを更新情報から特定し、コピー先リファレンスカウンタを「1」減算して更新(補正)する。制御部は、コピー先リファレンスカウンタの更新後に、再同期処理を終了する。
これにより、制御部は、コピー元RAID装置とコピー先RAID装置とでミラーリングが停止している状態におけるリモートコピー時の通信量削減効率の低下を抑制できる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置3a,3b、RAID装置13a,13bが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1,10 ストレージシステム
2a,2b ストレージ装置
3a,3b ストレージ制御装置
4a,4b 制御部
5a コピー対象データ
5b データ
6a,6b 要約情報
7 照合結果
8a,8b,30a,30b ディスク
11 ホスト
12 ネットワーク
13a,13b RAID装置
14 ホストインタフェース
15 プロセッサ
16 RAM
17 HDD
18 機器接続インタフェース
19 ディスクインタフェース
20 DE
21 コントローラモジュール
40a,40b LU

Claims (7)

  1. コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、
    前記コピー先ストレージ装置が記憶する情報と前記要約情報との照合結果を前記コピー先ストレージ装置から取得し、
    前記照合結果が照合不一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送する、
    制御部と、
    前記コピー対象データの転送履歴を記憶する記憶部と、を備え、
    前記制御部は、
    前記転送履歴にもとづいて前記要約情報を前記コピー先ストレージ装置に転送することなしに、前記コピー対象データを前記コピー先ストレージ装置に転送する、
    トレージ制御装置。
  2. 前記制御部は、
    前記照合結果が照合一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送することなしに前記コピー対象データのコピーを完了とする、
    請求項1記載のストレージ制御装置。
  3. 前記制御部は、
    複数の前記コピー対象データの各々に対応する複数の前記要約情報を含む要約情報群を前記コピー先ストレージ装置に転送し、
    前記コピー先ストレージ装置から複数の前記要約情報ごとの複数の前記照合結果を含む照合結果群を取得する、
    請求項1記載のストレージ制御装置。
  4. 前記転送履歴は、前記コピー対象データの転送回数であり、
    前記制御部は、
    前記コピー先ストレージ装置が記憶する情報の更新に関する更新情報を取得し、前記転送回数を補正する、
    請求項記載のストレージ制御装置。
  5. コンピュータに、
    コピー元ストレージ装置が記憶するコピー対象データの要約情報をコピー先ストレージ装置に転送し、
    前記コピー先ストレージ装置が記憶する情報と前記要約情報との照合結果を前記コピー先ストレージ装置から取得し、
    前記要約情報と前記コピー先ストレージ装置が記憶する情報とが照合不一致の場合に、前記コピー対象データを前記コピー先ストレージ装置に転送
    前記要約情報および前記コピー対象データの転送では、前記コピー対象データの転送履歴を記憶する記憶部に記憶された前記転送履歴にもとづいて前記要約情報を前記コピー先ストレージ装置に転送することなしに、前記コピー対象データを前記コピー先ストレージ装置に転送する、
    処理を実行させるストレージ制御プログラム。
  6. 第1のストレージ装置が、コピー対象データの要約情報を第2のストレージ装置に転送し、
    前記第2のストレージ装置が、前記要約情報と前記第2のストレージ装置が記憶する情報とを照合し、照合結果を前記第1のストレージ装置に転送し、
    前記第1のストレージ装置が、前記照合結果が不一致の場合に、前記コピー対象データを前記第2のストレージ装置に転送してリモートコピーをおこな
    前記第1のストレージ装置は、前記要約情報および前記コピー対象データの転送では、前記コピー対象データの転送履歴を記憶する記憶部に記憶された前記転送履歴にもとづいて前記要約情報を前記第2のストレージ装置に転送することなしに、前記コピー対象データを前記第2のストレージ装置に転送する、
    ストレージシステム。
  7. 前記照合結果が一致の場合に、
    前記第1のストレージ装置は、前記第2のストレージ装置への前記コピー対象データの転送をスキップして前記コピー対象データのコピーを完了とし、
    前記第2のストレージ装置は、前記要約情報に対応するデータを前記コピー対象データとしてアクセス可能にする、
    請求項記載のストレージシステム。
JP2015094021A 2015-05-01 2015-05-01 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム Active JP6558059B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015094021A JP6558059B2 (ja) 2015-05-01 2015-05-01 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US15/090,663 US10209919B2 (en) 2015-05-01 2016-04-05 Storage control apparatus and system for copying data to remote locations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015094021A JP6558059B2 (ja) 2015-05-01 2015-05-01 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム

Publications (2)

Publication Number Publication Date
JP2016212551A JP2016212551A (ja) 2016-12-15
JP6558059B2 true JP6558059B2 (ja) 2019-08-14

Family

ID=57204941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015094021A Active JP6558059B2 (ja) 2015-05-01 2015-05-01 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム

Country Status (2)

Country Link
US (1) US10209919B2 (ja)
JP (1) JP6558059B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6558059B2 (ja) * 2015-05-01 2019-08-14 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US9959062B1 (en) * 2016-02-05 2018-05-01 Datadirect Networks, Inc. Low latency and reduced overhead data storage system and method for sharing multiple storage devices by high performance computing architectures
US9996434B2 (en) * 2016-10-28 2018-06-12 International Business Machines Corporation Data mirror volume verification
JP7248267B2 (ja) * 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム
JP7181059B2 (ja) * 2018-11-16 2022-11-30 富士通株式会社 データ転送制御装置,ストレージシステム及びプログラム
US11475035B2 (en) * 2020-03-06 2022-10-18 Dropbox, Inc. Live data conversion and migration for distributed data object systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5049881A (en) * 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
JP4327831B2 (ja) 2006-09-05 2009-09-09 株式会社日立製作所 ストレージシステム、管理計算機及びコピーペア監視方法
JP2009251725A (ja) 2008-04-02 2009-10-29 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
US9419801B2 (en) * 2009-05-12 2016-08-16 Infrascale Inc. System and method for transmitting needed portions of a data file between networked computers
US8914457B2 (en) * 2009-10-06 2014-12-16 Red Hat, Inc. Caching of nodes in cache cluster
US9323758B1 (en) * 2009-12-22 2016-04-26 Emc Corporation Efficient migration of replicated files from a file server having a file de-duplication facility
US8281182B2 (en) * 2010-03-12 2012-10-02 Cleversafe, Inc. Dispersed storage unit selection
WO2012081099A1 (ja) * 2010-12-15 2012-06-21 富士通株式会社 データ移行プログラム、計算機およびデータ移行方法
SG191378A1 (en) 2010-12-29 2013-08-30 Amazon Tech Inc Receiver-side data deduplication in data systems
WO2014083591A1 (en) * 2012-11-29 2014-06-05 Hitachi, Ltd. Storage system and file management method
US9218314B2 (en) * 2013-02-01 2015-12-22 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
JP6558059B2 (ja) * 2015-05-01 2019-08-14 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム

Also Published As

Publication number Publication date
US10209919B2 (en) 2019-02-19
JP2016212551A (ja) 2016-12-15
US20160320975A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
JP6558059B2 (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US20210004355A1 (en) Distributed storage system, distributed storage system control method, and storage medium
JP4838878B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
US9733862B1 (en) Systems and methods for reverse point-in-time copy management in a storage system
US10248322B2 (en) Memory system
US9569367B1 (en) Cache eviction based on types of data stored in storage systems
JP6600698B2 (ja) 計算機システム
US10860239B2 (en) Fan-out asynchronous replication caching
US10705753B2 (en) Fan-out asynchronous replication logical level caching
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
US20130325804A1 (en) Replica identification and collision avoidance in file system replication
US8230191B2 (en) Recording medium storing allocation control program, allocation control apparatus, and allocation control method
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US9842057B2 (en) Storage apparatus, storage system, and data read method
CN105027069A (zh) 卷区域的重复数据删除
JP5780067B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US6101574A (en) Disk control unit for holding track data in non-volatile cache memory
US20130054727A1 (en) Storage control method and information processing apparatus
JP4398464B2 (ja) 1つのターゲット・ボリュームと1つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するためのシステム、方法、及びプログラム
US11099768B2 (en) Transitioning from an original device to a new device within a data storage array
US7549029B2 (en) Methods for creating hierarchical copies
JP7054001B2 (ja) 情報処理システム、管理装置および制御方法
US8909886B1 (en) System and method for improving cache performance upon detecting a migration event
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20150135004A1 (en) Data allocation method and information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190701

R150 Certificate of patent or registration of utility model

Ref document number: 6558059

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150