JP2015052844A - コピー制御装置,コピー制御方法及びコピー制御プログラム - Google Patents
コピー制御装置,コピー制御方法及びコピー制御プログラム Download PDFInfo
- Publication number
- JP2015052844A JP2015052844A JP2013184185A JP2013184185A JP2015052844A JP 2015052844 A JP2015052844 A JP 2015052844A JP 2013184185 A JP2013184185 A JP 2013184185A JP 2013184185 A JP2013184185 A JP 2013184185A JP 2015052844 A JP2015052844 A JP 2015052844A
- Authority
- JP
- Japan
- Prior art keywords
- copy
- data
- area
- copy source
- update
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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
- G06F11/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
Abstract
【課題】退避領域の容量を削減する。
【解決手段】コピー元領域12からコピー先領域へのコピーの停止中において、コピー元領域12のデータの更新が発生した場合に、更新箇所を示す更新箇所情報13を格納する更新箇所情報格納部121と、更新箇所情報13に基づき、更新箇所に対応するコピー元領域12のデータをコピー先領域22へコピーする制御を行なうコピー処理部11とを備え、更新箇所情報13が、コピー元領域12を所定の領域毎に区分し、コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、コピー処理部11が、更新回数が所定数以上の領域についての前記コピーを抑止する。
【選択図】図1
【解決手段】コピー元領域12からコピー先領域へのコピーの停止中において、コピー元領域12のデータの更新が発生した場合に、更新箇所を示す更新箇所情報13を格納する更新箇所情報格納部121と、更新箇所情報13に基づき、更新箇所に対応するコピー元領域12のデータをコピー先領域22へコピーする制御を行なうコピー処理部11とを備え、更新箇所情報13が、コピー元領域12を所定の領域毎に区分し、コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、コピー処理部11が、更新回数が所定数以上の領域についての前記コピーを抑止する。
【選択図】図1
Description
本発明は、コピー制御装置,コピー制御方法及びコピー制御プログラムに関する。
遠隔地にあるストレージ筐体間でデータのコピーをする際、コピー元LUN(Logical Unit Number)にライトされたデータの整合性の保証が求められることがある。データベースなどの「その時点でのデータ全体の整合性がとれていないと無意味となるデータ」のコピーがそれにあたる。
例えば、データベースの遠隔地へのバックアップにおいて、更新日時,更新データA及び更新データBで意味のある1セットとなるデータが含まれている場合について考える。コピー元LUNからコピー先LUNへ、単純にボリュームの先頭からコピーする場合に、回線の障害等の理由でコピーが中断されてしまった際に、更新日時と更新データAのみがコピーされ、更新データBがコピー前のデータで残ってしまう状態となることがある。
例えば、データベースの遠隔地へのバックアップにおいて、更新日時,更新データA及び更新データBで意味のある1セットとなるデータが含まれている場合について考える。コピー元LUNからコピー先LUNへ、単純にボリュームの先頭からコピーする場合に、回線の障害等の理由でコピーが中断されてしまった際に、更新日時と更新データAのみがコピーされ、更新データBがコピー前のデータで残ってしまう状態となることがある。
この時点でコピー先LUNに保存されているデータは1セットの整合性が保てず、コピーが再開され完了するまで意味をなさないデータ群となる。そして、この状態で、地震や火災等の災害や、ディスク故障などによりコピー元LUNが失われてしまえば、最新の状態に更新することも以前の状態に戻すこともできなくなる。すなわち、1セット全部のデータが完全にロストしてしまうこととなる。従って、コピー元において被災や障害などでコピーできない状況となってしまっても、コピー先において、常に整合性のある状態となっているコピー方法が求められている。
そこで、データの整合性を保証する筐体間コピーとして、バッファを用いることでデータの整合性を維持したままで更新順にコピーしていく方法が知られている。
図18は従来の筐体間コピー手法を示す図であり、バッファを用いた筐体間コピー手法を示している。
この図18に示すストレージシステム100においては、コピー元筐体200とコピー先筐体300とのそれぞれに備えられた図示しないメモリに、複数のバッファ210,310がそれぞれ備えられている。コピー元筐体200のコピー元LUN1,2がコピー先筐体300のコピー先LUN1,2にコピーされる。
図18は従来の筐体間コピー手法を示す図であり、バッファを用いた筐体間コピー手法を示している。
この図18に示すストレージシステム100においては、コピー元筐体200とコピー先筐体300とのそれぞれに備えられた図示しないメモリに、複数のバッファ210,310がそれぞれ備えられている。コピー元筐体200のコピー元LUN1,2がコピー先筐体300のコピー先LUN1,2にコピーされる。
このようなストレージシステム100において、コピー元LUN1とコピー先LUN1とが、又、コピー元LUN2とコピー先LUN2とがそれぞれ等価状態となっている場合に、コピー元LUN1,2で更新されたデータがバッファ210に更新順に格納されていく。
このバッファ210に格納されたデータは、バッファ210の枯渇もしくは一定時間の経過を契機としてバッファ単位でコピー先筐体300に転送される。それぞれのバッファ210にはコピーするデータが更新順に格納されているため、整合性のあるデータのまとまりでコピー先LUN1,2にデータが書き込まれることとなり、コピー先筐体300においては、整合性のあるデータがコピーされていることになる。
このバッファ210に格納されたデータは、バッファ210の枯渇もしくは一定時間の経過を契機としてバッファ単位でコピー先筐体300に転送される。それぞれのバッファ210にはコピーするデータが更新順に格納されているため、整合性のあるデータのまとまりでコピー先LUN1,2にデータが書き込まれることとなり、コピー先筐体300においては、整合性のあるデータがコピーされていることになる。
なお、コピー処理の開始から終了までのひとまとまりをコピーセッションといい、コピー元先のバッファ210,310はそれぞれ筐体間コピーのコピーセッションの数だけ用意される。
図18に示すストレージシステム100においては、コピー元先の各LUN1,2が1つのバッファ210,310を共用している。そのため、それぞれのLUN内の整合性だけでなく、LUN1とLUN2との間の整合性も保つことが可能となる。コピー元LUN1からコピー先LUN1へのコピーと、コピー元LUN2からコピー先LUN2へのコピーとを合わせて1つのコピーセッションとして設定することにより、コピーセッション内のLUNはコピー元先の筐体200,300内で常に整合性のある状態が保たれているということがいえる。
図18に示すストレージシステム100においては、コピー元先の各LUN1,2が1つのバッファ210,310を共用している。そのため、それぞれのLUN内の整合性だけでなく、LUN1とLUN2との間の整合性も保つことが可能となる。コピー元LUN1からコピー先LUN1へのコピーと、コピー元LUN2からコピー先LUN2へのコピーとを合わせて1つのコピーセッションとして設定することにより、コピーセッション内のLUNはコピー元先の筐体200,300内で常に整合性のある状態が保たれているということがいえる。
図19は従来の筐体間コピー手法を示す図であり、差分ビットマップを用いた筐体間コピー手法を示している。
コピーセッション開始直後や回線障害、データ更新の過多などによるバッファ210の枯渇(ホルト(HALT)状態)等、バッファ210,310によるデータの更新順序を保証できなくなる場合がある。このような状態では、コピー元筐体200においてデータの整合性を保証できなくなる。
コピーセッション開始直後や回線障害、データ更新の過多などによるバッファ210の枯渇(ホルト(HALT)状態)等、バッファ210,310によるデータの更新順序を保証できなくなる場合がある。このような状態では、コピー元筐体200においてデータの整合性を保証できなくなる。
そのため、バッファ210のホルト状態においては、バッファ210を用いずに、バッファ210内に記録された更新データ箇所及びコピーセッション復旧までのデータ更新箇所を差分ビットマップ(Bitmap)211に記録する手法が知られている。
コピーセッションが復旧されると、図19に示すように、コピー元先のLUN1,2が再び等価状態となるまで、差分ビットマップ211を参照して、更新された箇所のデータがコピー先のLUN1,2にコピー(差分コピー)される。この差分コピーにおいては、更新された箇所のデータが順序性を意識することなくコピーされる。
コピーセッションが復旧されると、図19に示すように、コピー元先のLUN1,2が再び等価状態となるまで、差分ビットマップ211を参照して、更新された箇所のデータがコピー先のLUN1,2にコピー(差分コピー)される。この差分コピーにおいては、更新された箇所のデータが順序性を意識することなくコピーされる。
そのため、この差分コピーを実行している間、すなわち、差分コピーが完了するまでの間は、コピー先筐体300におけるデータは整合性の保証がない状態になる。
従って、この状態でコピー元LUN1,2のデータが被災や障害などで失われてしまうと、コピー先LUN1,2では整合性のない無意味なデータしか残らず、データロストが発生してしまうこととなる。
従って、この状態でコピー元LUN1,2のデータが被災や障害などで失われてしまうと、コピー先LUN1,2では整合性のない無意味なデータしか残らず、データロストが発生してしまうこととなる。
図20は従来の筐体間コピー手法を示す図であり、退避領域を用いることで差分コピー中の整合性を維持する筐体間コピー手法を示している。
図20に示すストレージシステム100においては、コピー先筐体300に、複数の退避領域311が備えられている。
コピー先筐体300においては、差分コピーの実行中に、コピー先LUN1,2における、コピー元LUN1,2から送信されるデータによって更新される箇所にある更新前のデータを退避領域311に退避させる。退避領域311は、例えば、メモリ上やパリティトラック、スペアディスクに形成され、差分コピーが終了しコピーセッションの復旧が終わるまで更新前のデータを保持し続ける。
図20に示すストレージシステム100においては、コピー先筐体300に、複数の退避領域311が備えられている。
コピー先筐体300においては、差分コピーの実行中に、コピー先LUN1,2における、コピー元LUN1,2から送信されるデータによって更新される箇所にある更新前のデータを退避領域311に退避させる。退避領域311は、例えば、メモリ上やパリティトラック、スペアディスクに形成され、差分コピーが終了しコピーセッションの復旧が終わるまで更新前のデータを保持し続ける。
差分コピー中にコピー元LUN1,2のデータが被災や障害等で失われても、コピー先筐体300において、退避領域311に退避させておいたデータをコピー先LUN1,2に書き戻す。これにより、少なくともコピー先筐体300において、差分コピー前の整合性のあるデータを復旧することができ、データロストを阻止できる。
このようなストレージシステム100において、データ退避をする際に行なわれるコピー先LUNから退避領域311へのコピーは、データの更新要求に対して、要求があった部分のみの更新前データを退避領域に退避させる。このため、LUN全体をコピーするよりも少ない容量と短い時間でのデータコピーを実現させている。従って、整合性のあるデータを保持するための退避領域311としては、1つのLUNに対して、ある程度の大きさのものを用意すればよい。
このようなストレージシステム100において、データ退避をする際に行なわれるコピー先LUNから退避領域311へのコピーは、データの更新要求に対して、要求があった部分のみの更新前データを退避領域に退避させる。このため、LUN全体をコピーするよりも少ない容量と短い時間でのデータコピーを実現させている。従って、整合性のあるデータを保持するための退避領域311としては、1つのLUNに対して、ある程度の大きさのものを用意すればよい。
しかしながら、図20に示すような従来のストレージシステム100において、コピー先LUNに対して、退避領域311の容量以上のデータ更新要求が来た場合は、更新前データの退避及び保持ができないので、コピーセッションがエラー状態となる。
コピー元LUNのデータ更新頻度が高ければ、それだけ退避領域311の容量も多く用意する必要がある。
コピー元LUNのデータ更新頻度が高ければ、それだけ退避領域311の容量も多く用意する必要がある。
例えば、バッファ210,310間のデータ転送が間に合わなくなる頻度のデータ更新が行なわれてホルト状態になり、差分コピー中にもコピー元LUNに高頻度の更新がかかり続けている場合を考える。
このような場合には、差分コピーが完了するまでにコピー元LUNのほぼ全領域にデータの更新が来る可能性もあり得るので、退避領域311としてコピー元LUNと同程度の容量が必要となる。つまり、コピー先筐体300において、退避領域311を含めたボリューム容量として現状の2倍の容量を用意する必要があるということになる。
このような場合には、差分コピーが完了するまでにコピー元LUNのほぼ全領域にデータの更新が来る可能性もあり得るので、退避領域311としてコピー元LUNと同程度の容量が必要となる。つまり、コピー先筐体300において、退避領域311を含めたボリューム容量として現状の2倍の容量を用意する必要があるということになる。
従って、複数の筐体間のコピーセッションでデータの整合性を保とうとした場合には、コピー先筐体300に多大な容量(例えば、数TB以上)の退避領域311が必要となり、製造コストが増大するという課題がある。
1つの側面では、本発明は、退避領域の容量を削減できるようにすることを目的とする。
1つの側面では、本発明は、退避領域の容量を削減できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、このコピー制御装置は、コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御装置であって、前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止する。
一実施形態によれば、退避領域の容量を抑制することができる。
以下、図面を参照して本コピー制御装置,コピー制御方法及びコピー制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としてのストレージシステム1の機能構成を模式的に示す図、図2はそのハードウェア構成を例示する図である。
実施形態の一例としてのストレージシステム1は、図1に示すように、ネットワーク(Network;NW)50を介して複数(図1に示す例では4つ)のストレージ装置10−1,10−2,10−3,20が通信可能に接続されている。なお、図2中においては、便宜上、ストレージ装置10−1及びストレージ装置20の構成だけを示している。
実施形態の一例としてのストレージシステム1は、図1に示すように、ネットワーク(Network;NW)50を介して複数(図1に示す例では4つ)のストレージ装置10−1,10−2,10−3,20が通信可能に接続されている。なお、図2中においては、便宜上、ストレージ装置10−1及びストレージ装置20の構成だけを示している。
ネットワーク50は、データを通信可能に接続する通信回線であって、例えばLAN(Local Area Network)やWAN(Wide Area Network)等のTCP/IP等の規格に基づきデータ転送を実現する。
ストレージ装置10−1,10−2,10−3,20は、ホスト装置2,3に対して記憶領域を提供するものであり、例えば、RAID(Redundant Arrays of Inexpensive Disks)装置である。ストレージ装置10−1,10−2,10−3,20は、それぞれ1つ以上の記憶装置131,231を備え、この記憶装置131,231にデータやプログラムを格納する。
ストレージ装置10−1,10−2,10−3,20は、ホスト装置2,3に対して記憶領域を提供するものであり、例えば、RAID(Redundant Arrays of Inexpensive Disks)装置である。ストレージ装置10−1,10−2,10−3,20は、それぞれ1つ以上の記憶装置131,231を備え、この記憶装置131,231にデータやプログラムを格納する。
また、本ストレージシステム1は、ストレージ装置10−1,10−2,10−3のボリューム(論理ボリューム)のデータをストレージ装置20にデータ転送することによりコピー(移行)する、データコピー機能をそなえる。
本実施形態においては、ストレージ装置10−1〜10−3をコピー元筐体(コピー元装置)とし、ストレージ装置20をコピー先筐体(コピー先装置)とする。以下、データコピーとして、ストレージ装置10−1,10−2,10−3のディスク装置131のデータをストレージ装置20にデータ転送して、ストレージ装置20のディスク装置231に格納する例について説明する。
本実施形態においては、ストレージ装置10−1〜10−3をコピー元筐体(コピー元装置)とし、ストレージ装置20をコピー先筐体(コピー先装置)とする。以下、データコピーとして、ストレージ装置10−1,10−2,10−3のディスク装置131のデータをストレージ装置20にデータ転送して、ストレージ装置20のディスク装置231に格納する例について説明する。
なお、コピー元筐体であるストレージ装置10−1,10−2,10−3は互いに同様の構成を備える。
以下、コピー元筐体であるストレージ装置を示す符号としては、複数のストレージ装置のうち1つを特定する必要があるときには符号10−1〜10−3を用いるが、任意のストレージ装置を指すときには符号10を用いる。
以下、コピー元筐体であるストレージ装置を示す符号としては、複数のストレージ装置のうち1つを特定する必要があるときには符号10−1〜10−3を用いるが、任意のストレージ装置を指すときには符号10を用いる。
図1に示す例においては、便宜上、ストレージ装置10−1の構成だけを図示し、ストレージ装置10−2,10−3の構成の図示を省略している。
なお、ストレージ装置10とストレージ装置20との間におけるネットワーク50を介したデータ転送をリモート転送という場合がある。又、以下、ストレージ装置10をコピー元筐体10と、又、ストレージ装置20をコピー先筐体20とそれぞれいう場合がある。
なお、ストレージ装置10とストレージ装置20との間におけるネットワーク50を介したデータ転送をリモート転送という場合がある。又、以下、ストレージ装置10をコピー元筐体10と、又、ストレージ装置20をコピー先筐体20とそれぞれいう場合がある。
図2に示す例においては、ストレージ装置10−1に上位装置としてのホスト装置2が接続され、又、ストレージ装置20に上位装置としてのホスト装置3が接続されている。
ホスト装置2,3は、情報処理装置であり、例えば、図示しない、CPU(Central Processing Unit)やRAM(Random Access Memory),ROM(Read Only Memory)等をそなえたコンピュータである。
ホスト装置2,3は、情報処理装置であり、例えば、図示しない、CPU(Central Processing Unit)やRAM(Random Access Memory),ROM(Read Only Memory)等をそなえたコンピュータである。
ホスト装置2は、接続されたストレージ装置10のボリュームであるコピー元LUN(Logical Unit Number)12−1,12−2にデータの書き込みや読み出しを行なう。例えば、ホスト装置2はストレージ装置10の業務ボリュームであるコピー元LUN12−1,12−2に対してリードやライトのデータアクセス要求を行なう。ストレージ装置10は、このデータアクセス要求に応じてコピー元LUN12−1,12−2に対するデータアクセスを行ない、ホスト装置2に対して応答を行なう。
また、ホスト装置2は、ストレージ装置10におけるコピーセッションについてのセッション情報の作成等を行なう。
セッション情報は、コピーセッションに関する情報であって、例えば、セッションID(Session ID),コピー元のLUN(Logical Unit Number)及び開始LBA(Logical Block Address),コピー先のLUN及び開始LBA及びBC(Block Count)である。セッション情報は既知の手法を用いて作成することができる。
セッション情報は、コピーセッションに関する情報であって、例えば、セッションID(Session ID),コピー元のLUN(Logical Unit Number)及び開始LBA(Logical Block Address),コピー先のLUN及び開始LBA及びBC(Block Count)である。セッション情報は既知の手法を用いて作成することができる。
また、ホスト装置2によって作成されたセッション情報は、ストレージ装置10に送信され、このストレージ装置10のRAM121等に保持される。
なお、図2中においては、便宜上、ストレージ装置10−1にホスト装置2が、又、ストレージ装置20にホスト装置3がそれぞれ接続された状態を示しているが、各ストレージ装置10,20に2以上のホスト装置が接続されてもよい。
なお、図2中においては、便宜上、ストレージ装置10−1にホスト装置2が、又、ストレージ装置20にホスト装置3がそれぞれ接続された状態を示しているが、各ストレージ装置10,20に2以上のホスト装置が接続されてもよい。
ストレージ装置10,20は、図2に示すように、CM111,211及びディスクエンクロージャ130,230をそなえる。CM111,211はストレージ装置10,20における種々の制御を行なうものであり、上位装置であるホスト装置2,3からのストレージアクセス要求(アクセス制御信号)に従って、ディスクエンクロージャ130,230のディスク装置131,231へのアクセス制御等、各種制御を行なう。
ディスクエンクロージャ130,230は、1以上のディスク装置131,231をそなえる。ディスク装置131,231は、例えば、HDD(Hard Disk Drive)である。ストレージ装置10,20においては、このHDD131,231の記憶領域が論理ボリュームに対して割り当てられる。
図1に示す例においては、コピー元筐体10−1には、コピー元LUN12−1とコピー元LUN12−2とが論理ボリュームとして備えられている。以下、コピー元LUN12−1をコピー元LUN#1という場合があり、コピー元LUN12−2をコピー元LUN#2という場合がある。
図1に示す例においては、コピー元筐体10−1には、コピー元LUN12−1とコピー元LUN12−2とが論理ボリュームとして備えられている。以下、コピー元LUN12−1をコピー元LUN#1という場合があり、コピー元LUN12−2をコピー元LUN#2という場合がある。
コピー元LUN#1,#2は、例えば、ホスト装置2の業務データを格納する業務ボリュームであり、ホスト装置2からのディスクアクセス要求に基づき、データの書き込み等の更新が行なわれる。そして、本ストレージシステム1においては、これらのコピー元LUN#1,#2のデータがコピーが行なわれるバックアップ対象である。すなわち、コピー元LUN#1,#2は、コピー元データを記憶するコピー元領域として機能する。
一方、コピー先筐体20には、コピー先LUN22−1,コピー先LUN22−2及びコピー先LUN22−3が論理ボリュームとして備えられている。以下、コピー先LUN22−1をコピー先LUN#1をという場合がある。同様に、コピー先LUN22−2をコピー先LUN#2と、又、コピー先LUN22−3をコピー先LUN#3という場合がある。
コピー先LUN#1は、コピー元LUN#1のコピー先として用いられるボリュームであり、コピー元LUN#1のデータ(コピー元データ)が複写されバックアップデータとして記憶される。すなわち、コピー先LUN#1は、コピー元LUN#1のデータに対応するバックアップデータが記憶されるコピー先領域として機能する。
同様に、コピー先LUN#2は、コピー元LUN#2のコピー先として用いられるボリュームであり、コピー元LUN#2のデータ(コピー元データ)が複写されバックアップデータとして記憶される。すなわち、コピー先LUN#2は、コピー元LUN#2のデータに対応するバックアップデータが記憶されるコピー先領域として機能する。
同様に、コピー先LUN#2は、コピー元LUN#2のコピー先として用いられるボリュームであり、コピー元LUN#2のデータ(コピー元データ)が複写されバックアップデータとして記憶される。すなわち、コピー先LUN#2は、コピー元LUN#2のデータに対応するバックアップデータが記憶されるコピー先領域として機能する。
なお、以下、コピー元LUNを示す符号としては、複数のコピー元LUNのうち1つを特定する必要があるときには符号12−1,12−2もしくは#1,#2を用いるが、任意のコピー元LUNを指すときには符号12を用いる。
同様に、以下、コピー先LUNを示す符号としては、複数のコピー先LUNのうち1つを特定する必要があるときには符号22−1,22−2もしくは#1,#2を用いるが、任意のコピー先LUNを指すときには符号22を用いる。
同様に、以下、コピー先LUNを示す符号としては、複数のコピー先LUNのうち1つを特定する必要があるときには符号22−1,22−2もしくは#1,#2を用いるが、任意のコピー先LUNを指すときには符号22を用いる。
コピー元筐体10内には、コピー先筐体20にコピーするデータが格納されたコピー元LUN12が1つ以上含まれる。
CM111,211は、図2に示すように、CA(Channel Adapter)124,224,ネットワークインタフェース(NW I/F)125,225,CPU110,210,ROM122,222及びRAM121,221をそなえる。なお、図2に示す例においては、各ストレージ装置10,20に1つのCM111,211がそなえられているが、これに限定されるものではなく、それぞれ2以上のCM111,211をそなえてもよい。
CM111,211は、図2に示すように、CA(Channel Adapter)124,224,ネットワークインタフェース(NW I/F)125,225,CPU110,210,ROM122,222及びRAM121,221をそなえる。なお、図2に示す例においては、各ストレージ装置10,20に1つのCM111,211がそなえられているが、これに限定されるものではなく、それぞれ2以上のCM111,211をそなえてもよい。
また、CM111,211は、ストレージ装置10とストレージ装置20との間におけるデータコピーの制御を行なうコピー制御装置として機能する。
CA124,224は、ホスト装置2,3と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。
そして、例えばオペレータがホスト装置2から、ストレージ装置10からストレージ装置20へのデータコピー指示を入力すると、CA124がデータコピー指示を受信する受信部として機能する。
CA124,224は、ホスト装置2,3と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。
そして、例えばオペレータがホスト装置2から、ストレージ装置10からストレージ装置20へのデータコピー指示を入力すると、CA124がデータコピー指示を受信する受信部として機能する。
ネットワークインタフェース125,225は、ネットワーク50を介して他のストレージ装置20,10と通信可能に接続するインタフェースコントローラであり、例えば、LANカードやファイバチャネルアダプタである。
RAM121,221は、種々のデータやプログラムを一時的に格納するメモリ(記憶領域)である。
RAM121,221は、種々のデータやプログラムを一時的に格納するメモリ(記憶領域)である。
RAM121,221における所定の領域には、例えば、他のストレージ装置20,10に対して送信するデータが一時的に格納され、これによりRAM121,221は、REC(Remote Equivalent Copy)バッファ121a,221aとして機能する。
これらのRECバッファ121a,221aは、データの読み書き処理の順序性を保証するため、複数の領域に分割して管理される。分割した個々の領域は世代として管理する。
これらのRECバッファ121a,221aは、データの読み書き処理の順序性を保証するため、複数の領域に分割して管理される。分割した個々の領域は世代として管理する。
例えば、図1に示す例においては、RECバッファ121a,221aは、8つの領域を備えており、これらの領域は世代1〜8の各世代にそれぞれ対応する。各世代は時系列で管理される。又、各世代はストレージ装置10,20間のコピー処理の完了後に開放される。開放とは、当該世代にデータを格納可能な状態であることである。
以下、RECバッファ121aをコピー元バッファ121aという場合があり、RECバッファ221aをコピー先バッファ221aという場合がある。
以下、RECバッファ121aをコピー元バッファ121aという場合があり、RECバッファ221aをコピー先バッファ221aという場合がある。
RAM121内に用意されているRECバッファ121a(コピー元バッファ)は、コピー元LUN12に更新されたデータ(更新データ)を一時的に格納する、RECバッファ121aは、前述の如く世代と呼ばれる複数に区分けされた領域を有する。
このように、RAM121,221は、リモート転送時に、他のストレージ装置20,10に対して転送するデータを一時的に格納する転送データバッファとして機能する。
このように、RAM121,221は、リモート転送時に、他のストレージ装置20,10に対して転送するデータを一時的に格納する転送データバッファとして機能する。
ホスト装置2等によりコピー元LUN12にデータの更新が行なわれた場合は、RECバッファ121aに更新データが格納される。
以下、本ストレージシステム(コピー制御システム)1において、コピー元LUN12からコピー先LUN22へ、コピー元バッファ121a(RECバッファ121a)及びコピー先バッファ221a(RECバッファ221a)を介してデータ転送する手法をバッファ転送という。
以下、本ストレージシステム(コピー制御システム)1において、コピー元LUN12からコピー先LUN22へ、コピー元バッファ121a(RECバッファ121a)及びコピー先バッファ221a(RECバッファ221a)を介してデータ転送する手法をバッファ転送という。
また、RAM121,221における他の所定の領域には、差分ビットマップ(更新箇所情報)13−1,13−2が格納されている。
差分ビットマップ13−1,13−2は、RECバッファ121aを用いたデータ転送を行なうことができない状態において、コピー元LUN#1,#2に行なわれた更新箇所を示す。
差分ビットマップ13−1,13−2は、RECバッファ121aを用いたデータ転送を行なうことができない状態において、コピー元LUN#1,#2に行なわれた更新箇所を示す。
RECバッファ121aを用いたデータ転送を行なうことができない状態とは、例えば、ネットワーク50の回線障害が生じた場合や、コピー元LUN12に過剰な更新が行なわれRECバッファ121aの空き容量がなくなった場合である。これらの場合には、RECバッファ121aを用いたデータ転送を行なうことができない。
以下、差分ビットマップを示す符号としては、複数の差分ビットマップのうち1つを特定する必要があるときには符号13−1,13−2を用いるが、任意の差分ビットマップを指すときには符号13を用いる。
以下、差分ビットマップを示す符号としては、複数の差分ビットマップのうち1つを特定する必要があるときには符号13−1,13−2を用いるが、任意の差分ビットマップを指すときには符号13を用いる。
差分ビットマップ13は、コピー元LUN12毎に備えられ、差分ビットマップ13−1はコピー元LUN#1に、又、差分ビットマップ13−2はコピー元LUN#2に、それぞれ対応して備えられる。
具体的には、コピー元LUN12を予め所定の領域(単位領域)毎に区分し、差分ビットマップ13においては、これらの単位領域毎に更新状況を示す複数ビット(例えば2ビット)が割り当てられている。
具体的には、コピー元LUN12を予め所定の領域(単位領域)毎に区分し、差分ビットマップ13においては、これらの単位領域毎に更新状況を示す複数ビット(例えば2ビット)が割り当てられている。
従来のストレージシステムにおいては、単位領域毎に1ビットが割り当てられ、対応する単位領域について「0」もしくは「1」の2種類の状態のみ取ることができる。すなわち更新の有無のみを記録していた。
一方、本ストレージシステム1においては、差分ビットマップ13において、各単位領域に複数ビット(ビット列)を割り当てることにより、各単位領域に対して、その単位領域に対して何度更新が行なわれたかという情報を記録することを可能とする。
一方、本ストレージシステム1においては、差分ビットマップ13において、各単位領域に複数ビット(ビット列)を割り当てることにより、各単位領域に対して、その単位領域に対して何度更新が行なわれたかという情報を記録することを可能とする。
例えば、差分ビットマップ13において、単位領域に対して2ビットのビット列を割り当てる場合を考えると、各単位領域に対してビット列が取りうる状態は「00」,「01」,「10」及び「11」の4種類となる。
ここで、例えば、単位領域に更新が無かった場合に「00」を、1回更新があった場合に「01」を、2回更新があった場合に「10」を、3回以上更新があった場合に「11」を、それぞれ設定する。すなわち、差分ビットマップ13は、コピー元LUN12に対して行なわれる更新回数情報を所定の領域毎に記憶する。以下、コピー元LUN12に更新が行なわれることを、更新が入ると表現する場合がある。
ここで、例えば、単位領域に更新が無かった場合に「00」を、1回更新があった場合に「01」を、2回更新があった場合に「10」を、3回以上更新があった場合に「11」を、それぞれ設定する。すなわち、差分ビットマップ13は、コピー元LUN12に対して行なわれる更新回数情報を所定の領域毎に記憶する。以下、コピー元LUN12に更新が行なわれることを、更新が入ると表現する場合がある。
このように、本ストレージシステム1においては、従来の差分ビットマップにおいて単位領域毎に対して更新の有無を示す1ビットのフラグを関連付けていた代わりに、2ビットのビット列が関連付けられている。すなわち、本ストレージシステム1においては、差分ビットマップ13において、コピー元LUN12における更新状況を示す領域を従来の1ビットから2ビットに拡張していると言える。本ストレージシステム1においては、従来手法の差分ビットマップの1ビットのフラグ領域を複数倍(本実施形態においては2倍)に拡張している。この従来手法に対して拡張している割合(本実施形態では2倍(200%))を拡張倍率という。
従来手法の差分ビットマップのフラグが1ビットであるので、差分ビットマップ13において、単位領域に対応付けられるビット列のビット数(サイズ)がそのまま拡張倍率として用いることができる。この拡張倍率は、例えば、コピー元筐体10のRAM121や記憶装置131等に予め記憶されている。
差分ビットマップ13におけるビット列が示す値により、差分ビットマップ13を1度走査する間に、各単位領域にどれだけの頻度で更新が行なわれたかを知ることができ、これにより、各単位領域に対して行なわれる更新頻度を推測することもできる。すなわち、差分ビットマップ13を1度走査する間に、多く(所定回数以上)の更新が行なわれた単位領域には、これからも高い頻度で更新が行なわれると推測することができる。
差分ビットマップ13におけるビット列が示す値により、差分ビットマップ13を1度走査する間に、各単位領域にどれだけの頻度で更新が行なわれたかを知ることができ、これにより、各単位領域に対して行なわれる更新頻度を推測することもできる。すなわち、差分ビットマップ13を1度走査する間に、多く(所定回数以上)の更新が行なわれた単位領域には、これからも高い頻度で更新が行なわれると推測することができる。
そして、後述するコピースケジューラ11は、コピー元LUN12における更新状況に応じて、差分ビットマップ13の対応する単位領域の更新回数情報を更新(計数)する。
また、コピー元LUN12とコピー先LUN22との間で、RECバッファ121aを用いたデータ転送を行なうことができるようになると、後述するコピースケジューラ11は、差分ビットマップ13を参照して、送信データをキャッシュ14に格納してコピー先筐体20に送信する。
また、コピー元LUN12とコピー先LUN22との間で、RECバッファ121aを用いたデータ転送を行なうことができるようになると、後述するコピースケジューラ11は、差分ビットマップ13を参照して、送信データをキャッシュ14に格納してコピー先筐体20に送信する。
RAM121,221における他の所定の領域は、コピー先筐体20もしくはコピー元筐体10に送信するデータを格納するキャッシュ14,24としても機能する。
キャッシュ14,24は、コピー元筐体10及びコピー先筐体20のそれぞれに備えられる。コピー元筐体10のキャッシュ(コピー元キャッシュ)14はコピー先筐体20に送信するデータを一時的に格納する。コピー先筐体20のキャッシュ(コピー先キャッシュ)24はコピー元筐体10から送信されるデータを一時的に格納する。
キャッシュ14,24は、コピー元筐体10及びコピー先筐体20のそれぞれに備えられる。コピー元筐体10のキャッシュ(コピー元キャッシュ)14はコピー先筐体20に送信するデータを一時的に格納する。コピー先筐体20のキャッシュ(コピー先キャッシュ)24はコピー元筐体10から送信されるデータを一時的に格納する。
キャッシュ14には、RECバッファ121aから格納されるデータと、コピー元LUN12から差分ビットマップ13を参照して格納されるデータとが格納される。なお、RECバッファ121aを介して送信(バッファ処理)されたデータであるか、差分ビットマップ13を用いて送信(ビットマップ処理)で送信されたデータであるかをコピー先筐体20において判定できるよう、送信されるデータは識別情報を備える。この識別情報は、例えば、コピースケジューラ11によってデータヘッダ等に付される。
コピー元LUN12において更新されたデータ(更新データ)は、RECバッファ121aにおける1つの世代に順次格納されていく。一定時間の経過もしくは1つの世代が更新データで全て埋まった場合に、RECバッファ121aにおいてデータを格納する世代が変更されるとともに、世代内に格納されたデータ(送信データ)は、キャッシュ14に格納される。
このキャッシュ14に格納された送信データがネットワーク50を介してコピー先筐体20へ送信され、このコピー先筐体20のキャッシュ24に格納された後、RECバッファ(コピー先バッファ)221aに格納される。
RECバッファ221aも、RECバッファ121aと同様に世代で区分けされた領域を持ち、RECバッファ121aから送られた同一世代のデータは同じ世代に格納される。コピー元筐体10とコピー先筐体20との間においては、世代ごとにデータが転送される。このため、転送データはそれぞれの世代で半端なデータになることなく、コピー先筐体20においては、整合性のあるデータが保たれることとなる。
RECバッファ221aも、RECバッファ121aと同様に世代で区分けされた領域を持ち、RECバッファ121aから送られた同一世代のデータは同じ世代に格納される。コピー元筐体10とコピー先筐体20との間においては、世代ごとにデータが転送される。このため、転送データはそれぞれの世代で半端なデータになることなく、コピー先筐体20においては、整合性のあるデータが保たれることとなる。
RECバッファ121a,221aの数は整合性を保ちたいコピーセッションの数だけ用意される。例えば、コピー元筐体10に2つのコピー元LUN12があり、これらの2つのコピー元LUN12を合わせて整合性のあるデータを保ちたい場合は、これらの2つのコピー元LUN12で1つのRECバッファ121aを共有し、同時に整合性を保つこととなる。
RAM121,221における他の所定の領域には、ホスト装置2,3から受信したデータや、ホスト装置2,3に対して送信するデータが一時的に格納され、これによりRAM121,221はバッファメモリとしても機能する。
さらに、RAM121,221における他の所定の領域には、後述するCPU110,210がプログラムを実行する際に、データやプログラムが一時的に格納・展開される。
さらに、RAM121,221における他の所定の領域には、後述するCPU110,210がプログラムを実行する際に、データやプログラムが一時的に格納・展開される。
また、RAM121における他の所定の領域には、図示しないリモート転送ビットマップが格納される。リモート転送ビットマップは、コピー元のストレージ装置10とコピー先のストレージ装置20との間におけるリモートデータ転送に関して、データ転送対象についてのデータ転送状態を管理する情報である。
ROM122,222は、CPU110,210が実行するプログラムや種々のデータを格納する記憶装置である。
ROM122,222は、CPU110,210が実行するプログラムや種々のデータを格納する記憶装置である。
CPU110,210は、種々の制御や演算を行なう処理装置であり、ROM122等に格納されたプログラムを実行することにより、種々の機能を実現する。すなわち、CPU110はコピースケジューラ11として機能し、CPU210はコピースケジューラ21として機能する(図1参照)。
なお、コピースケジューラ11,21としての機能を実現するためのコピー制御プログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
なお、コピースケジューラ11,21としての機能を実現するためのコピー制御プログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
コピースケジューラ11としての機能を実現する際には、内部記憶装置(本実施形態ではRAM121やROM122)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
同様に、コピースケジューラ21としての機能を実現する際には、内部記憶装置(本実施形態ではRAM221やROM222)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
同様に、コピースケジューラ21としての機能を実現する際には、内部記憶装置(本実施形態ではRAM221やROM222)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
コピースケジューラ11は、コピー元LUN12とコピー先LUN22との間のデータ転送(コピー)を制御する。
コピースケジューラ11は、コピー元LUN12において更新されたデータを、RECバッファ121aにおける1つの世代に順次格納させる。一定時間の経過もしくは1つの世代が更新データで全て埋まった場合に、コピースケジューラ11は、データを格納する世代を変更し、又、世代に格納されたデータをキャッシュ14に格納させる。
コピースケジューラ11は、コピー元LUN12において更新されたデータを、RECバッファ121aにおける1つの世代に順次格納させる。一定時間の経過もしくは1つの世代が更新データで全て埋まった場合に、コピースケジューラ11は、データを格納する世代を変更し、又、世代に格納されたデータをキャッシュ14に格納させる。
キャッシュ14に格納された送信データがネットワーク50を介してコピー先筐体20に送信される。
また、コピー元筐体10においてRECバッファ121aの空き容量が枯渇した場合には、コピースケジューラ11は、データの更新箇所を、各コピー元LUN12毎に用意されている、差分ビットマップ13に記録をすることで管理する。
また、コピー元筐体10においてRECバッファ121aの空き容量が枯渇した場合には、コピースケジューラ11は、データの更新箇所を、各コピー元LUN12毎に用意されている、差分ビットマップ13に記録をすることで管理する。
前述の如く、差分ビットマップ13は、コピー元LUN12の単位領域毎に2つ以上のビットからなるビット列が割り当てられており、コピースケジューラ11は、コピー元LUN12における単位領域の範囲内に更新があった場合に対応するビット列の状態を変化させる。又、後述の如く、コピースケジューラ11は、RECバッファ121a内の更新データについてもその更新箇所を差分ビットマップ13に反映させることもある。
また、コピースケジューラ11は、差分ビットマップ13を更新する機能を備える。
図3は実施形態の一例としてのストレージシステム1における差分ビットマップ13の更新手法を説明する図である。
この図3においては、コピー元LUN12における6箇所(図中の黒丸点参照)で更新が行なわれた例を示している。
図3は実施形態の一例としてのストレージシステム1における差分ビットマップ13の更新手法を説明する図である。
この図3においては、コピー元LUN12における6箇所(図中の黒丸点参照)で更新が行なわれた例を示している。
コピースケジューラ11は、RECバッファ121aが枯渇等している状態においてコピー元LUN12に変更が入ると、差分ビットマップ13において、これらの変更箇所に対応する各ビット列の値をインクリメントメントさせる。
すなわち、コピースケジューラ11は、差分ビットマップ13における対象の単位領域のビット列が「00」だった場合は「01」にする。同様に、差分ビットマップ13における対象のビット列が「01」だった場合は「10」にし、「10」だった場合は「11」にする。ただし、差分ビットマップ13における対象のビット列が「11」だった場合は、コピースケジューラ11は、ビット列の値を操作(変更)せずに「11」の状態に維持する。
すなわち、コピースケジューラ11は、差分ビットマップ13における対象の単位領域のビット列が「00」だった場合は「01」にする。同様に、差分ビットマップ13における対象のビット列が「01」だった場合は「10」にし、「10」だった場合は「11」にする。ただし、差分ビットマップ13における対象のビット列が「11」だった場合は、コピースケジューラ11は、ビット列の値を操作(変更)せずに「11」の状態に維持する。
このように、差分ビットマップ13において単位領域に対して2ビットのビット列を対応付けることにより、その箇所への更新が1回,2回もしくは3回以上来たことを差分ビットマップ13に記録することが可能となる。
そして、コピースケジューラ11は、コピー先筐体20にデータを転送できる状態になると、差分ビットマップ13においてビット列の値が「01」の単位領域についてのみ、コピー元LUN12の更新データをコピー先筐体20にコピー(データ転送)する。すなわち、差分ビットマップ13においてビット列の値が「01」以外の単位領域については、そのデータをコピー先筐体20へ転送する処理(コピー処理)を行なわない。
そして、コピースケジューラ11は、コピー先筐体20にデータを転送できる状態になると、差分ビットマップ13においてビット列の値が「01」の単位領域についてのみ、コピー元LUN12の更新データをコピー先筐体20にコピー(データ転送)する。すなわち、差分ビットマップ13においてビット列の値が「01」以外の単位領域については、そのデータをコピー先筐体20へ転送する処理(コピー処理)を行なわない。
また、コピースケジューラ11は、コピー先筐体20にデータ転送を行なうと差分ビットマップ13を更新する。すなわち、差分ビットマップ13におけるデータ転送を行なった単位領域のビット列が「01」だった場合は、データ転送処理後、ビット列の値を「00」に戻す。
また、差分ビットマップ13におけるビット列が「10」及び「11」の単位領域については、コピー処理を行なわずにビット列の値をデクリメントして、1つ前の段階の値である「01」及び「10」に戻す。なお、差分ビットマップ13におけるビット列が「00」の単位領域については、コピー処理を行なわず、又、ビット列の値のデクリメントも行なわない。
また、差分ビットマップ13におけるビット列が「10」及び「11」の単位領域については、コピー処理を行なわずにビット列の値をデクリメントして、1つ前の段階の値である「01」及び「10」に戻す。なお、差分ビットマップ13におけるビット列が「00」の単位領域については、コピー処理を行なわず、又、ビット列の値のデクリメントも行なわない。
差分ビットマップ13におけるビット列の値が所定数(例えば、2)以上である、「10」又は「11」の単位領域は、更新が頻繁に行なわれているおそれがある。従って、当該箇所のデータをコピー元LUN12からコピー先LUN22へ転送しても、その後、更に当該箇所のデータが更新され、再度、データ転送を行なう必要が生じる蓋然性が高い。
そこで、本ストレージシステム1においては、コピースケジューラ11は、すなわち、差分ビットマップ13におけるデータ転送を行なった単位領域のビット列が「01」の単位領域についてだけ、当該箇所のデータをコピー元LUN12からコピー先LUN22へ転送させる。
そこで、本ストレージシステム1においては、コピースケジューラ11は、すなわち、差分ビットマップ13におけるデータ転送を行なった単位領域のビット列が「01」の単位領域についてだけ、当該箇所のデータをコピー元LUN12からコピー先LUN22へ転送させる。
また、コピースケジューラ11は、差分ビットマップ13に基づきコピー元LUN12からコピー先LUN22へデータ転送を行なうと、差分ビットマップ13におけるデータ転送を行なった単位領域に対応するビット列の値の更新も行なう。
具体的には、コピースケジューラ11は、差分ビットマップ13におけるデータ転送を行なった単位領域のビット列が「01」だった場合は、データ転送処理後、ビット列の値を「00」にデクリメントする。又、差分ビットマップ13におけるビット列が「10」及び「11」の単位領域については、データ転送処理は行なわずにビット列の値だけ変更して、1つ前の段階の値である「01」及び「10」にデクリメントする。なお、差分ビットマップ13におけるビット列が「00」の単位領域については、データ転送処理を行なわず、又、ビット列の値のデクリメントも行なわない。
具体的には、コピースケジューラ11は、差分ビットマップ13におけるデータ転送を行なった単位領域のビット列が「01」だった場合は、データ転送処理後、ビット列の値を「00」にデクリメントする。又、差分ビットマップ13におけるビット列が「10」及び「11」の単位領域については、データ転送処理は行なわずにビット列の値だけ変更して、1つ前の段階の値である「01」及び「10」にデクリメントする。なお、差分ビットマップ13におけるビット列が「00」の単位領域については、データ転送処理を行なわず、又、ビット列の値のデクリメントも行なわない。
このように、頻繁に更新されるとみなされる箇所については、差分ビットマップ13における更新された回数(ビット列の値)をデクリメントさせるだけにとどめ、当該箇所のデータ転送を抑止する。これにより、コピー元LUN12からコピー先LUN22に対して、同一の単位領域のデータを何度も送信することを阻止し、差分ビットマップコピーの回数を低減することができ、結果的に差分コピーに要する時間を減らすことができる。
図4(a),(b),(c)は実施形態の一例としてのストレージシステム1における差分コピー手法を説明する図であり、図4(a)はその1巡目を、図4(b)はその2巡目を、図4(c)はその3巡目を示す。
差分コピーにおいては、コピースケジューラ11は、差分ビットマップ13を走査し、そのビット列が「01」の単位領域を特定し、コピー元LUN12における当該領域のデータをコピー先LUN22に転送する。コピースケジューラ11はこれらの処理を繰り返し行なう。
差分コピーにおいては、コピースケジューラ11は、差分ビットマップ13を走査し、そのビット列が「01」の単位領域を特定し、コピー元LUN12における当該領域のデータをコピー先LUN22に転送する。コピースケジューラ11はこれらの処理を繰り返し行なう。
図4(a)に例示する差分ビットマップ13の走査の1巡目においては、ビット列の値が「01」である3箇所の単位領域について、そのコピー元LUN12の対応するデータをコピー先LUN22に転送する。
コピースケジューラ11は、コピー先筐体20にデータ転送を行なうと、差分ビットマップ13を更新する。これにより、図4(b)に示すように、2巡目においては、図4(a)に示す1巡目では「01」であったビット列が「00」に、又、「10」であったビット列が「01」に、更に、「11」であったビット列が「10」に、それぞれ更新される。
コピースケジューラ11は、コピー先筐体20にデータ転送を行なうと、差分ビットマップ13を更新する。これにより、図4(b)に示すように、2巡目においては、図4(a)に示す1巡目では「01」であったビット列が「00」に、又、「10」であったビット列が「01」に、更に、「11」であったビット列が「10」に、それぞれ更新される。
コピースケジューラ11は、この図4(b)に例示する更新後の差分ビットマップ13を走査し、そのビット列が「01」の単位領域を特定し(図4(b)では1箇所)、コピー元LUN12における当該領域のデータをコピー先LUN22に転送する。
コピースケジューラ11は、コピー先筐体20にデータ転送を行なうと、差分ビットマップ13を更新する。これにより、図4(c)に示すように、3巡目においては、例えば、図4(b)において「01」であったビット列が「00」に、又、「10」であったビット列が「01」に、それぞれ更新される。
コピースケジューラ11は、コピー先筐体20にデータ転送を行なうと、差分ビットマップ13を更新する。これにより、図4(c)に示すように、3巡目においては、例えば、図4(b)において「01」であったビット列が「00」に、又、「10」であったビット列が「01」に、それぞれ更新される。
また、この間にもコピー元LUN12はホスト装置2により更新される。図4(c)に示す例においても、コピー元LUN12に新たに更新が行なわれ、差分ビットマップ13のビット列がインクリメントされている箇所が存在している。
コピースケジューラ11は、差分ビットマップ13の走査と、そのビット列が「01」の単位領域について、コピー元LUN12における当該領域のデータのコピー先LUN22への転送と、差分ビットマップ13の更新とを繰り返し行なう。
コピースケジューラ11は、差分ビットマップ13の走査と、そのビット列が「01」の単位領域について、コピー元LUN12における当該領域のデータのコピー先LUN22への転送と、差分ビットマップ13の更新とを繰り返し行なう。
上述した実施形態においては、差分ビットマップ13において、各単位領域に対して2ビット(従来手法の2倍)のビット列を用いているが、これに限定されるものではなく、3ビット以上のビット列を用いてもよく、例えば、RAM121の使用状況等に応じて種々変形して実施することができる。
例えば、差分ビットマップ13において、各単位領域に対して、従来手法の1ビットを4倍(4ビット)や8倍(8ビット)に拡大にしたビット列を割り当てることで、1つの単位領域につき15回や255回の更新回数まで記録することができる。
例えば、差分ビットマップ13において、各単位領域に対して、従来手法の1ビットを4倍(4ビット)や8倍(8ビット)に拡大にしたビット列を割り当てることで、1つの単位領域につき15回や255回の更新回数まで記録することができる。
すなわち、本ストレージシステム1においては、差分ビットマップ13において、単位領域に対して、従来の1ビットの領域を複数倍(例えば2倍の2ビット)に拡張したビット列を備え、このビット列に各単位領域の更新回数を記録している。
また、コピースケジューラ11は、バッファ転送を行なう際に、ホルト発生時点のRECバッファ121a内の複数世代における最終データをコピー先筐体20に転送する機能を備える。これにより、整合性を保証するための退避コピー量を削減し、退避領域26の容量の削減に寄与する。なお、このRECバッファ121a内の最終データの転送は、RECバッファ121aの記録量やコピー元LUN12への更新量,ネットワーク50の伝送速度(回線速度)等に基づいて行なわれる。以下にその詳細を説明する。
また、コピースケジューラ11は、バッファ転送を行なう際に、ホルト発生時点のRECバッファ121a内の複数世代における最終データをコピー先筐体20に転送する機能を備える。これにより、整合性を保証するための退避コピー量を削減し、退避領域26の容量の削減に寄与する。なお、このRECバッファ121a内の最終データの転送は、RECバッファ121aの記録量やコピー元LUN12への更新量,ネットワーク50の伝送速度(回線速度)等に基づいて行なわれる。以下にその詳細を説明する。
本ストレージシステム1においては、コピー元LUN12とコピー先LUN22とを等価にするデータ転送手法は、差分ビットマップ処理動作とバッファ優先処理動作との2種類の動作で実現可能であり、いずれかの動作を選択して実行する。
ここで、差分ビットマップ処理動作においては、RECバッファ121a内の記録領域を差分ビットマップ13に反映する処理を行なう。一方、バッファ優先処理動作においては、先にRECバッファ121a内のデータをコピー先筐体20に転送した後で(優先して処理した後で)、残りの差分ビットマップ13によって示されるデータをコピー先筐体20に転送する処理を行なう。
ここで、差分ビットマップ処理動作においては、RECバッファ121a内の記録領域を差分ビットマップ13に反映する処理を行なう。一方、バッファ優先処理動作においては、先にRECバッファ121a内のデータをコピー先筐体20に転送した後で(優先して処理した後で)、残りの差分ビットマップ13によって示されるデータをコピー先筐体20に転送する処理を行なう。
図5は実施形態の一例としてのストレージシステム1におけるコピー元バッファ121a枯渇時のコピー元バッファ121a内のデータの取り扱いを説明する図である。
差分ビットマップ処理動作においては、図5の矢印A1に示すように、RECバッファ121aが枯渇した場合に、RECバッファ121aに保持されているデータの更新箇所を参照し、それに対応する差分ビットマップ13を生成する(立てる)。そして、この差分ビットマップ13に、RECバッファ121a内の更新データの箇所を反映させることで、差分ビットマップ13を用いた差分ビットマップコピーに切り替える。
差分ビットマップ処理動作においては、図5の矢印A1に示すように、RECバッファ121aが枯渇した場合に、RECバッファ121aに保持されているデータの更新箇所を参照し、それに対応する差分ビットマップ13を生成する(立てる)。そして、この差分ビットマップ13に、RECバッファ121a内の更新データの箇所を反映させることで、差分ビットマップ13を用いた差分ビットマップコピーに切り替える。
なお、本ストレージシステム1においては、前述の如く、差分ビットマップ13は単位領域に対して、2ビットのビット列が割り当てられている。すなわち、従来手法の差分ビットマップに比べて2倍以上に拡張されているため、差分ビットマップ13の更新回数を1回増やす処理を行なう。
また、この差分ビットマップ処理動作では、差分ビットマップ13への反映後にRECバッファ121a内のデータは消去され、コピー元LUN12とコピー先LUN22とが等価状態となった段階で再度使用可能となる。
また、この差分ビットマップ処理動作では、差分ビットマップ13への反映後にRECバッファ121a内のデータは消去され、コピー元LUN12とコピー先LUN22とが等価状態となった段階で再度使用可能となる。
一方、バッファ優先処理動作においては、図5の矢印A2に示すように、コピー元バッファ121aの記録領域を差分ビットマップ13に反映させずに、コピー元バッファ121aの中身を、キャッシュ14を介して、先にコピー先筐体20のコピー先バッファ221aへ送信する。
コピー元バッファ121a及びコピー先バッファ221a内のデータは世代ごとに整合性のある状態で管理されているため、バッファ転送によるコピーにおいてはコピー先筐体20でのデータの退避処理が不要となる。すなわち、退避領域26を必要としない。そのため、差分ビットマップ13を用いた差分コピーの転送量を減らすことで退避領域26の必要な容量を抑制することが可能となる。
コピー元バッファ121a及びコピー先バッファ221a内のデータは世代ごとに整合性のある状態で管理されているため、バッファ転送によるコピーにおいてはコピー先筐体20でのデータの退避処理が不要となる。すなわち、退避領域26を必要としない。そのため、差分ビットマップ13を用いた差分コピーの転送量を減らすことで退避領域26の必要な容量を抑制することが可能となる。
ここで、バッファ優先処理動作が差分ビットマップ処理動作に比べて退避領域26の必要な容量の抑制に有効となる条件としては、例えば以下のようなものがある。
(1)コピー元バッファ121aに記録されている更新箇所が大きい場合
例えば、コピー元バッファ121aの記録データ量が、当該コピー元バッファ121aと差分ビットマップ13の更新箇所とが重複する領域のデータ量よりも大きい場合である。このような場合には、コピー元バッファ121aから差分ビットマップ13に書き戻すデータの量が多くなるので、差分ビットマップ13に登録される領域が増大し、差分ビットマップ処理動作では必要な退避領域26が増加してしまうからである。
(1)コピー元バッファ121aに記録されている更新箇所が大きい場合
例えば、コピー元バッファ121aの記録データ量が、当該コピー元バッファ121aと差分ビットマップ13の更新箇所とが重複する領域のデータ量よりも大きい場合である。このような場合には、コピー元バッファ121aから差分ビットマップ13に書き戻すデータの量が多くなるので、差分ビットマップ13に登録される領域が増大し、差分ビットマップ処理動作では必要な退避領域26が増加してしまうからである。
(2)コピー元LUN12への新規更新箇所の増加が小さい場合
例えば、新規更新箇所の増加量がネットワーク50の回線速度の半分以下である場合である。このような場合には、コピー元バッファ121aのデータ転送中における差分ビットマップ13に登録されるデータの増分が小さくなり、バッファ転送に時間をかけても退避領域26の必要量が大きくなりにくい。
例えば、新規更新箇所の増加量がネットワーク50の回線速度の半分以下である場合である。このような場合には、コピー元バッファ121aのデータ転送中における差分ビットマップ13に登録されるデータの増分が小さくなり、バッファ転送に時間をかけても退避領域26の必要量が大きくなりにくい。
(3)ネットワーク50の回線速度が大きい場合
例えば、ネットワーク50の回線速度が新規更新箇所の増加量の倍以上である場合である。このような場合には、コピー元バッファ121aからのデータ転送に要する時間が少なくなり、それだけ早く差分コピーに切り替えることができ、退避領域26の必要量の増加を防ぐことができるからである。
例えば、ネットワーク50の回線速度が新規更新箇所の増加量の倍以上である場合である。このような場合には、コピー元バッファ121aからのデータ転送に要する時間が少なくなり、それだけ早く差分コピーに切り替えることができ、退避領域26の必要量の増加を防ぐことができるからである。
(4)コピー元バッファ121aに記録されている更新箇所と差分ビットマップ13に記録されている更新箇所との重なりが小さい場合
例えば、コピー元バッファ121aに記録されている更新箇所と差分ビットマップ13に記録されている更新箇所とが重なった領域部分が、コピー元バッファ121aの記録領域全体の半分以下の場合である。これらの重なりが大きい場合は、コピー元バッファ121aからのバッファ転送時に送られるデータのうち、その後の差分コピーによって上書きされてしまう部分が大きくなる。その一方で、逆に差分ビットマップ13にコピー元バッファ121aの状態を反映しても差分ビットマップ13の増加量はあまり大きくならないからである。
例えば、コピー元バッファ121aに記録されている更新箇所と差分ビットマップ13に記録されている更新箇所とが重なった領域部分が、コピー元バッファ121aの記録領域全体の半分以下の場合である。これらの重なりが大きい場合は、コピー元バッファ121aからのバッファ転送時に送られるデータのうち、その後の差分コピーによって上書きされてしまう部分が大きくなる。その一方で、逆に差分ビットマップ13にコピー元バッファ121aの状態を反映しても差分ビットマップ13の増加量はあまり大きくならないからである。
なお、差分ビットマップ処理動作とバッファ優先処理動作との2種類の動作のどちらを選択するかは、例えば、オペレータが手動でいずれかを選択してもよく、又、ホルト復帰時に必要なパラメータを採取し、必要とされる退避領域26の容量が少なくなる方を自動選択してもよく、種々変形して実施することができる。
また、ホルト状態からの復帰時のバッファ転送は、正常時と異なり、早急にコピー元LUN12とコピー先LUN22とを等価にすることが求められる。そのため、転送するデータはコピー元バッファ121a内の全世代である必要はなく、最新世代を送り終わった時点で反映されるべき更新データのみを転送すればよいこととなる。
また、ホルト状態からの復帰時のバッファ転送は、正常時と異なり、早急にコピー元LUN12とコピー先LUN22とを等価にすることが求められる。そのため、転送するデータはコピー元バッファ121a内の全世代である必要はなく、最新世代を送り終わった時点で反映されるべき更新データのみを転送すればよいこととなる。
図6は実施形態の一例としてのストレージシステム1における、コピー元バッファ121a内の各世代の更新記録箇所及び実際に転送される箇所を例示する図である。
この図6に示す例においては、0-5000の領域(アドレス)を持つ1つのLUNについて4世代あるコピー元バッファ121aを使用して筐体間コピーを行なう場合を想定している。世代は第1世代が最も古い更新で、第4世代が最も新しい更新を記録している。
この図6に示す例においては、0-5000の領域(アドレス)を持つ1つのLUNについて4世代あるコピー元バッファ121aを使用して筐体間コピーを行なう場合を想定している。世代は第1世代が最も古い更新で、第4世代が最も新しい更新を記録している。
また、図中の横線はコピー元LUN12内の更新箇所を示しており、点線はその世代で更新のない箇所を、又、太実線はその世代での更新がある箇所であり、その世代のコピー元バッファ121a内に保持されているデータの箇所を示している。
例えば、コピー元バッファ121aの第1世代に含まれるデータはLUN内の1000-2000の位置に更新されたデータであり、第2世代に含まれるデータは第2世代の記録後にLUN内の1500-3000の位置に更新されたデータとなる。
例えば、コピー元バッファ121aの第1世代に含まれるデータはLUN内の1000-2000の位置に更新されたデータであり、第2世代に含まれるデータは第2世代の記録後にLUN内の1500-3000の位置に更新されたデータとなる。
この図6に示す例では、4つの世代があるが、第1世代と第2世代とでは1500-2000の位置(符号B1参照)で更新箇所が重なっている(重複更新箇所)。これは2つの世代で1500-2000の箇所に重複して更新があったことを示している。このような重複更新箇所は、第1世代での更新部分のうち1500-2000のデータはその次の第2世代で書き換わってしまうため、コピー元バッファ121aの中身をすべて転送し最新の状態にする場合には送信する必要のないデータとなる。
同様に第3世代や第4世代においても、重複更新箇所については新しい世代の方のデータを優先し、古い世代の方のデータの送信を抑止することで、重複して送信されるデータ量を減らすことができる。
コピースケジューラ11は、コピー元バッファ121aに格納された複数世代のデータのうち、コピー元LUN12において重複する領域のデータについては、最新のデータ以外の送信を抑止する。
コピースケジューラ11は、コピー元バッファ121aに格納された複数世代のデータのうち、コピー元LUN12において重複する領域のデータについては、最新のデータ以外の送信を抑止する。
図6中において、転送箇所の行には、全世代の重なり(重複更新箇所)を考慮して最終的に送信されるべき箇所が示されている。又、コピー先バッファ内更新記録箇所の列には、重複更新箇所を考慮して実際にコピー先筐体20に転送されるべき各世代のデータが示されている。
新しい方の世代で重複のない第4世代、第3世代についてはコピー元バッファ121aに記録されたデータをすべて転送しているが、第3世代との重複がある第2世代については、コピー元バッファ121aに記録された部分の一部(1800-3000)のみの転送でよいことが分かる。又、第1世代においては第2世代及び第3世代との重複を考慮すると、全てのデータが書き換わっていることとなるので、送信されるべきデータは無いとみなすことができる。
新しい方の世代で重複のない第4世代、第3世代についてはコピー元バッファ121aに記録されたデータをすべて転送しているが、第3世代との重複がある第2世代については、コピー元バッファ121aに記録された部分の一部(1800-3000)のみの転送でよいことが分かる。又、第1世代においては第2世代及び第3世代との重複を考慮すると、全てのデータが書き換わっていることとなるので、送信されるべきデータは無いとみなすことができる。
なお、正常時のバッファ転送は1世代ごとにデータを転送し、転送が終わり次第、記憶装置231にデータを反映させていくが、このバッファ転送方式を用いる際には全世代のデータを転送し、転送が完了した時点で記憶装置231にデータを反映させていくこととなる。重複更新箇所のデータを転送しないことで、1つの世代のみではデータの整合性が保てなくなるためである。このバッファ転送においては、退避領域26は不要である。
また、前述した図1に示す例においては、便宜上、コピー元筐体10−1に備えられたコピー元LUN12からコピー先筐体20のコピー先LUN22へのコピーを示しているが、これに限定されるものではない。
すなわち、コピー元筐体10は1つに限らず、複数のコピー元筐体10をコピー元としたコピーセッションが1つのコピー先筐体20に向けて作られている構成も対象としている。その場合は、コピー先筐体20内に、それぞれのコピー元筐体10から作られるコピーセッションのコピー元LUN12の合計数に対応したコピー先LUN22を準備する。又、コピー先筐体20においては、コピーセッション毎に退避領域26が用意される。
すなわち、コピー元筐体10は1つに限らず、複数のコピー元筐体10をコピー元としたコピーセッションが1つのコピー先筐体20に向けて作られている構成も対象としている。その場合は、コピー先筐体20内に、それぞれのコピー元筐体10から作られるコピーセッションのコピー元LUN12の合計数に対応したコピー先LUN22を準備する。又、コピー先筐体20においては、コピーセッション毎に退避領域26が用意される。
図7は実施形態の一例としてのストレージシステム1においてコピー先筐体20に対して複数のコピー元筐体10から差分コピーを行なう例を示す図である。
この図7に示す例では、3つのコピー元筐体10−1〜10−3から1つのコピー先筐体20に向けてそれぞれコピーセッションが張られている状態を示している。
コピー元筐体10−1とコピー先筐体20との間では、2つのコピー元LUN12−1,12−2からのコピーがされており、これらの2つのコピー元LUN12は両方合わせて整合性を保っている。
この図7に示す例では、3つのコピー元筐体10−1〜10−3から1つのコピー先筐体20に向けてそれぞれコピーセッションが張られている状態を示している。
コピー元筐体10−1とコピー先筐体20との間では、2つのコピー元LUN12−1,12−2からのコピーがされており、これらの2つのコピー元LUN12は両方合わせて整合性を保っている。
また、コピー元筐体10−2,10−3とコピー先筐体20との間では、それぞれ1つのコピー元LUN12−3,12−4からのコピーがされている。
なお、コピー元筐体10−1〜10−3の間で整合性の関連はないものとする。すなわち、各コピー元筐体10からそれぞれ張られたコピーセッションは互いに独立している。
図7に示すように、複数(図7に示す例では3つ)のコピー元筐体10とコピー先筐体20との間の各コピーセッションについて同時に差分コピーを実行する際に、各コピー元LUN12への更新量やネットワーク50の回線速度等から、コピー元筐体10毎(セッション毎)に優先度(重み)を設定する。
なお、コピー元筐体10−1〜10−3の間で整合性の関連はないものとする。すなわち、各コピー元筐体10からそれぞれ張られたコピーセッションは互いに独立している。
図7に示すように、複数(図7に示す例では3つ)のコピー元筐体10とコピー先筐体20との間の各コピーセッションについて同時に差分コピーを実行する際に、各コピー元LUN12への更新量やネットワーク50の回線速度等から、コピー元筐体10毎(セッション毎)に優先度(重み)を設定する。
本ストレージシステム1においては、これらの複数のコピー元筐体10からの差分コピーのうち、優先度が高いコピー元筐体10からの差分コピーを優先して実行する。具体的には、後述の如く、本ストレージシステム1においては、優先度が高いコピー元筐体10からの差分コピーについては、優先度が低いコピー元筐体10からの差分コピーよりもデータ転送量や頻度を大きくすることで、優先して処理を行なわせる。
これにより、早い段階でコピー元筐体10とコピー先筐体20とで等価にしておきたい差分コピーを優先して実行させることで、他の差分コピーよりも先に等価にする。
図7に示す例においては、コピー元筐体10−1においてはコピー元LUN12−1,12−2に多量の更新がかかっており(更新量大)、コピー元筐体10−2のコピー元LUN12−3への更新量は少ない(更新量小)。又、コピー元筐体10−3のコピー元LUN12−4にはその中間程度の更新量がかかっているものとする(更新量中)。
図7に示す例においては、コピー元筐体10−1においてはコピー元LUN12−1,12−2に多量の更新がかかっており(更新量大)、コピー元筐体10−2のコピー元LUN12−3への更新量は少ない(更新量小)。又、コピー元筐体10−3のコピー元LUN12−4にはその中間程度の更新量がかかっているものとする(更新量中)。
コピー先筐体20に接続された3つのコピー元筐体10−1,10−2,10−3について、ホルト状態からの復旧時に関して、各更新量に応じて「高」,「低」,「中」の優先度がそれぞれ設定されている。すなわち、3つのコピー元筐体10−1,10−2,10−3に対して、優先度(重み付け)1,3,2がそれぞれ設定されている。
そして、この状態で全てのホルト状態が復旧し、それぞれのコピーセッションで差分コピーが働くと、全てのコピー先LUN22−1〜22−4について退避領域26−1〜26−4が作成される。
そして、この状態で全てのホルト状態が復旧し、それぞれのコピーセッションで差分コピーが働くと、全てのコピー先LUN22−1〜22−4について退避領域26−1〜26−4が作成される。
コピーセッションが増加すると、これらのコピーセッションに応じて多数の退避領域26が必要になる。ここで、コピーセッションにおいて、コピー元LUN12への更新量と退避領域26としての必要な容量とには相関関係が見出せる。
すなわち、コピー元LUN12への更新量が少ないコピーセッションは退避領域26として必要な容量が増え難いが、更新量が多いコピーセッションは時間をかけるだけ退避領域26としての必要な容量が増え易い。コピー先筐体20における退避領域26として必要な容量は、各コピーセッションで差分コピーのために確保されている退避領域26の合計であるため、退避領域26の増加量が大きくなるコピーセッションはできるだけ早く処理することが望ましい。
すなわち、コピー元LUN12への更新量が少ないコピーセッションは退避領域26として必要な容量が増え難いが、更新量が多いコピーセッションは時間をかけるだけ退避領域26としての必要な容量が増え易い。コピー先筐体20における退避領域26として必要な容量は、各コピーセッションで差分コピーのために確保されている退避領域26の合計であるため、退避領域26の増加量が大きくなるコピーセッションはできるだけ早く処理することが望ましい。
本ストレージシステム1においては、差分コピーを実行する前に、コピー先筐体20のコピースケジューラ21が各コピー元筐体10から、更新量や回線速度などの情報を取得する。コピースケジューラ21は、これらの情報から各コピー元筐体10毎に優先度を決定し、この優先度に応じたデータ転送条件情報をコピー元筐体10に伝達する。
データ転送条件情報は、データ転送時に用いられるデータ伝送のパラメータであり、例えばデータ転送量と頻度とが含まれる。データ転送量は、データ伝送に使用されるネットワーク50での使用可能な回線速度を示す値であり、例えば、回線速度の上限である最高回線速度のうち使用可能な割合を示す。すなわち、データ転送量は、コピー元筐体10からコピー先筐体20へのデータ転送にネットワーク50の回線速度の上限値の何割までの使用を許可するかを示す。頻度は、所定期間内にデータ転送が実施される回数である。差分コピーにおいては、コピー元筐体10からコピー先筐体20へのデータ転送について、所定期間内にデータ伝送を行なう回数の上限値(最高頻度)が予め設定されている。頻度は、コピー元筐体10からコピー先筐体20へのデータ転送に最高頻度の何割までのデータ送信回数を許可するかを示す。
データ転送条件情報は、データ転送時に用いられるデータ伝送のパラメータであり、例えばデータ転送量と頻度とが含まれる。データ転送量は、データ伝送に使用されるネットワーク50での使用可能な回線速度を示す値であり、例えば、回線速度の上限である最高回線速度のうち使用可能な割合を示す。すなわち、データ転送量は、コピー元筐体10からコピー先筐体20へのデータ転送にネットワーク50の回線速度の上限値の何割までの使用を許可するかを示す。頻度は、所定期間内にデータ転送が実施される回数である。差分コピーにおいては、コピー元筐体10からコピー先筐体20へのデータ転送について、所定期間内にデータ伝送を行なう回数の上限値(最高頻度)が予め設定されている。頻度は、コピー元筐体10からコピー先筐体20へのデータ転送に最高頻度の何割までのデータ送信回数を許可するかを示す。
図8は実施形態の一例としてのストレージシステム1における優先度設定テーブルを例示する図である。
コピースケジューラ21は、この図8に例示するような優先度設定テーブルを参照して、コピーセッションの優先度を決定し、その優先度に応じたデータ送信量と頻度とを読み出す。優先度設定テーブルは、例えば、コピー先筐体20のRAM221や記憶装置231等に予め格納されている。
コピースケジューラ21は、この図8に例示するような優先度設定テーブルを参照して、コピーセッションの優先度を決定し、その優先度に応じたデータ送信量と頻度とを読み出す。優先度設定テーブルは、例えば、コピー先筐体20のRAM221や記憶装置231等に予め格納されている。
例えば、自身が備えるコピー元LUN12の更新量が全コピー元筐体10のうち、上位2割以内にあるような更新量の大きいコピー元筐体10は、その優先度が高く設定される(優先度;高)。又、コピー先筐体20とのネットワーク50を介した回線速度が全コピー元筐体10中上位2割以内にあるような回線速度が速いコピー元筐体10も、その優先度が高く設定される(優先度;高)。
このように優先度が高いコピー元筐体10については、データ送信量として、コピー元筐体10とコピー先筐体20との間のネットワーク50の回線速度の上限値が設定され、この上限値の回線速度でのデータ送信が許可される。
また、このように優先度が高いコピー元筐体10については、頻度として、コピー元筐体10からコピー先筐体20へのデータ転送について最高頻度の値が設定され、この最高頻度でのデータ送信が許可される。
また、このように優先度が高いコピー元筐体10については、頻度として、コピー元筐体10からコピー先筐体20へのデータ転送について最高頻度の値が設定され、この最高頻度でのデータ送信が許可される。
コピースケジューラ21は、優先度テーブルを参照して、各コピー元筐体10筐体に対するデータ送信量と頻度とを決定し、決定した値をコピー元筐体10に通知する。
コピー元筐体10はそれぞれに指定されたデータ送信量及び頻度(データ転送条件情報)で、以降のデータ送信を行なう。
すなわち、本ストレージシステム1においては、優先度の高いコピーセッションは転送量や頻度を大きくして、できる限り高速に差分コピーを実施する。一方、優先度の低いコピーセッションは転送量や頻度を抑えたり、場合によっては等価処理自体を一時停止したりすることで、優先度の高いコピーセッションに回線帯域及び等価コピーを優先的して実行する。
コピー元筐体10はそれぞれに指定されたデータ送信量及び頻度(データ転送条件情報)で、以降のデータ送信を行なう。
すなわち、本ストレージシステム1においては、優先度の高いコピーセッションは転送量や頻度を大きくして、できる限り高速に差分コピーを実施する。一方、優先度の低いコピーセッションは転送量や頻度を抑えたり、場合によっては等価処理自体を一時停止したりすることで、優先度の高いコピーセッションに回線帯域及び等価コピーを優先的して実行する。
なお、どのようなバランスで各コピーセッションに優先度を設定するかは、例えば、オペレータ等が手動で各コピーセッションに対する優先度を設定してもよく、又、ホルト復帰時にコピー先筐体20で必要なパラメータを採取し、よりセッション合計の退避領域26が少なくなるような優先度付けを設定してもよく、種々変形して実施することができる。
複数のコピー元筐体10に対する優先度が予め手動で設定されている場合や、優先度の設定自体がない場合は、予め指定されたデータ送信量及び頻度でデータ転送が行なわれる。例えば、優先度の設定自体がない場合は、デフォルト値である回線速度上限(最高速値)及び最高頻度でデータ転送が行なわれ、優先度とは無関係にどのコピー元筐体10からも処理速度・回線速度に従った頻度でデータが転送されることとなる。
上述の如く構成された実施形態の一例としてのストレージシステム1におけるホルト発生時の処理を、図9に示すシーケンス図に従って説明する。この図9においては、コピー元筐体10とコピー先筐体20とにおいて、筐体間の整合性を保ったコピーセッションについて、ホルトが発生した際の処理を示す。
コピー元LUN12とコピー先LUN22との間においてコピーセッションが張られ(符号C1参照)、その後、経路閉塞やI/Oの過負荷等の理由でコピー元バッファ121aが枯渇しホルトが発生したとする(符号C2参照)。
コピー元LUN12とコピー先LUN22との間においてコピーセッションが張られ(符号C1参照)、その後、経路閉塞やI/Oの過負荷等の理由でコピー元バッファ121aが枯渇しホルトが発生したとする(符号C2参照)。
コピー先LUN22は、以降の差分コピーに備えて、退避領域26にコピー先バッファ221aの現在のデータをコピーする準備をする(符号C3参照)。以後、ホルト事象が解決されるまでの間、コピー元LUN12の更新箇所は差分ビットマップ13に記録されていく。
ホルト事象が解決すると(符号C4参照)、コピースケジューラ11は、コピー先バッファ221aの中身や差分ビットマップ13の更新箇所を参照し、差分コピーを実行する。この際、コピー先LUN22内の整合性のあるデータ部分は、コピー元LUN12から送信されたデータによって更新される前に退避領域26にコピーされる。
ホルト事象が解決すると(符号C4参照)、コピースケジューラ11は、コピー先バッファ221aの中身や差分ビットマップ13の更新箇所を参照し、差分コピーを実行する。この際、コピー先LUN22内の整合性のあるデータ部分は、コピー元LUN12から送信されたデータによって更新される前に退避領域26にコピーされる。
差分コピーが働いている間はコピー先LUN22単体ではデータの整合性がとれないものの、退避領域26に保持されているコピー前のデータ部分と合わせることで、コピー前の整合性のあるデータを復元することが可能となる。
そのため、差分コピーを実行している間にコピー元LUN12が被災等により失われても、退避領域26に退避したデータをコピー先LUN22に書き戻すことで整合性のあるデータを復旧することができる。
そのため、差分コピーを実行している間にコピー元LUN12が被災等により失われても、退避領域26に退避したデータをコピー先LUN22に書き戻すことで整合性のあるデータを復旧することができる。
差分コピーが完了し、コピーセッションが再開されると(符号C5参照)、コピー先LUN22においては再び整合性のあるデータが保たれることとなる。そのため、退避領域26内のコピー前のデータは不要となるため、データの退避処理を終了するとともに退避領域26内のデータをクリアする。
なお、上記ホルトの発生(符号C2)からコピーセッションの再開(符号C5)までの処理は、ホルト事象が発生するたびに繰り返し実行される。
なお、上記ホルトの発生(符号C2)からコピーセッションの再開(符号C5)までの処理は、ホルト事象が発生するたびに繰り返し実行される。
次に、実施形態の一例としてのストレージシステム1におけるホルト発生時のコピー元筐体10の処理を、図10に示すフローチャート(ステップS101〜S106)に従って説明する。
コピー元バッファ121aが枯渇してホルト状態が発生した場合には、先ず、ステップS101において、差分ビットマップ13の更新処理を開始する。なお、この差分ビットマップ13の更新処理の詳細については図11を用いて後述する。
コピー元バッファ121aが枯渇してホルト状態が発生した場合には、先ず、ステップS101において、差分ビットマップ13の更新処理を開始する。なお、この差分ビットマップ13の更新処理の詳細については図11を用いて後述する。
次に、ステップS102において、コピー元バッファ121aの転送動作の選択を自動で行なう設定になっているか否かを確認する。すなわち、コピー元バッファ121aの転送動作の選択を自動で行なうか手動で行なうかを確認する。なお、コピー元バッファ121aの転送動作の選択を自動で行なうか手動で行なうかは、予め設定され、パラメータとしてRAM121や記憶装置131に記憶されている。
バッファの転送動作の選択を自動設定にしている場合には(ステップS102のYESルート参照)、ステップS103において、コピー元バッファ121aの記録箇所と差分ビットマップ13の記録箇所との重なり量を計測する。又、ステップS104において、コピー元LUN12の更新量を計測する。なお、これらのステップS103,S104の処理の順序はこれに限定されるものではなく、順序を入れ替えて実行してもよく、又、並行して行なってもよい。
その後、ステップS106において、ホルト状態から復旧しているか否かを判断し、復旧していない場合には(ステップS106のNOルート参照)、ステップS101に戻る。なお、ホルト状態から復旧しているか否かは、既知の手法で確認することができ、その説明は省略する。
一方、コピー元バッファ121aの転送動作選択を自動設定にしていない場合には(ステップS102のNOルート参照)、ステップS105において、複数のコピー元筐体10での優先度付けを自動で行なう設定になっているか否かを確認する。
一方、コピー元バッファ121aの転送動作選択を自動設定にしていない場合には(ステップS102のNOルート参照)、ステップS105において、複数のコピー元筐体10での優先度付けを自動で行なう設定になっているか否かを確認する。
優先度付けを自動で行なう設定になっている場合には(ステップS105のYESルート参照)、ステップS104に移行する。このように、コピー元バッファ121aの転送動作選択を手動で設定している場合でも、複数のコピー元筐体10での優先度付け自動設定になっている場合は、コピー元LUN12の更新量の計測を行なう。優先度付けを自動で行なう設定になっていない場合には(ステップS105のNOルート参照)、ステップS106に移行する。
また、ホルト状態から復旧している場合には(ステップS106のYESルート参照)、処理を終了し、図12のフローチャートに後述する等価処理へ移行する。
次に、実施形態の一例としてのストレージシステム1における差分ビットマップ13の更新手法を、図11に示すフローチャート(ステップS201〜S206)に従って説明する。
次に、実施形態の一例としてのストレージシステム1における差分ビットマップ13の更新手法を、図11に示すフローチャート(ステップS201〜S206)に従って説明する。
ステップS201において、コピースケジューラ11は、RAM121や記憶装置131から差分ビットマップ13の拡張倍率を読み出して取得する。
ステップS202において、コピースケジューラ11は、コピー元LUN12に更新が行なわれたか否かを確認する。コピー元LUN12に更新がある場合には(ステップS202のYESルート参照)、コピースケジューラ11は、ステップS203において、拡張倍率に従って、差分ビットマップ13における更新があった単位領域に対応するビット列を選択する(読み出す)。
ステップS202において、コピースケジューラ11は、コピー元LUN12に更新が行なわれたか否かを確認する。コピー元LUN12に更新がある場合には(ステップS202のYESルート参照)、コピースケジューラ11は、ステップS203において、拡張倍率に従って、差分ビットマップ13における更新があった単位領域に対応するビット列を選択する(読み出す)。
その後、ステップS204において、コピースケジューラ11は、ステップS202で読み出した対象領域の更新回数情報を示すビット列において、全て1が立っているか否かを確認する。例えば、拡張倍率が“2”の場合には、コピースケジューラ11は、差分ビットマップ13において、更新が行なわれた単位領域のビット列の値が“11”であるか否かを確認する。
対象領域の少なくとも1つに0が立っている場合には(ステップS204のNOルート参照)、ステップS206において、その対象領域のビット列の値(更新回数)を1つインクリメントした後、ステップS205に移行する。
一方、対象領域に全て1が立っている場合には(ステップS204のYESルート参照)、ステップS205において、差分ビットマップ13への記録終了の指示があるか否かを確認する。対象領域のビットがすべて立っている場合は、記録された更新回数が上限に達しているためそれ以上インクリメントすることはない。
一方、対象領域に全て1が立っている場合には(ステップS204のYESルート参照)、ステップS205において、差分ビットマップ13への記録終了の指示があるか否かを確認する。対象領域のビットがすべて立っている場合は、記録された更新回数が上限に達しているためそれ以上インクリメントすることはない。
また、コピー元LUN12に更新がない場合には(ステップS202のNOルート参照)、ステップS204〜S204及びS206をスキップして、ステップS205に移行する。
差分ビットマップ13への記録終了の指示がない場合には(ステップS205のNOルート参照)、ステップS202に戻る。
差分ビットマップ13への記録終了の指示がない場合には(ステップS205のNOルート参照)、ステップS202に戻る。
差分ビットマップ13への記録終了の指示がある場合には、(ステップS205のYESルート参照)、処理を終了する。すなわち、差分ビットマップ13の更新処理は、差分コピーが完了する際の差分ビットマップ13の記録終了の指示があるまで続けられる。
次に、実施形態の一例としてのストレージシステム1におけるコピー元筐体10における等価処理を、図12に示すフローチャート(ステップS301〜S308)に従って説明する。なお、コピー先筐体20における等価処理は、図16に示すフローチャートに従って後述する。
次に、実施形態の一例としてのストレージシステム1におけるコピー元筐体10における等価処理を、図12に示すフローチャート(ステップS301〜S308)に従って説明する。なお、コピー先筐体20における等価処理は、図16に示すフローチャートに従って後述する。
図10に示したホルト状態から復帰した場合に、ホルト中の動作を終了し、コピー元LUN12とコピー先LUN22との等価処理が開始される。
先ず、ステップS301において、コピースケジューラ11は、複数のコピー元筐体10についての優先度付けが自動で行なう設定になっているか否かを確認する。
複数筐体での優先度付けが自動設定になっている場合は(ステップS301のYESルート参照)、コピー元筐体10とコピー先筐体20との間で通信が行なわれる。そして、ステップS302において、コピースケジューラ11は、コピー先筐体20に対して、当該コピー元筐体10におけるコピー元LUN12への更新量やコピー先筐体20との間の回線速度等の情報を送信する。コピー先筐体20においては、コピースケジューラ21が、コピー元筐体10から受信した情報に基づいて優先度を決定し、この優先度に応じたデータ転送条件情報(データ転送量及び頻度)を決定してコピー元筐体10に送信する。
先ず、ステップS301において、コピースケジューラ11は、複数のコピー元筐体10についての優先度付けが自動で行なう設定になっているか否かを確認する。
複数筐体での優先度付けが自動設定になっている場合は(ステップS301のYESルート参照)、コピー元筐体10とコピー先筐体20との間で通信が行なわれる。そして、ステップS302において、コピースケジューラ11は、コピー先筐体20に対して、当該コピー元筐体10におけるコピー元LUN12への更新量やコピー先筐体20との間の回線速度等の情報を送信する。コピー先筐体20においては、コピースケジューラ21が、コピー元筐体10から受信した情報に基づいて優先度を決定し、この優先度に応じたデータ転送条件情報(データ転送量及び頻度)を決定してコピー元筐体10に送信する。
ステップS303において、コピースケジューラ11は、コピー先筐体20から受信したデータ転送量及び頻度を記憶(設定)する。以後、コピー元筐体10においては、この設定されたデータ転送量及び頻度に従ってコピー先筐体20に対するデータ送信を行なう。
ステップS304において、コピースケジューラ11は、コピー元バッファ121aの転送動作の選択を自動で行なう設定になっているか否かを確認する。
ステップS304において、コピースケジューラ11は、コピー元バッファ121aの転送動作の選択を自動で行なう設定になっているか否かを確認する。
バッファの転送動作の選択を自動設定にしている場合には(ステップS304のYESルート参照)、ステップS306において、コピー元バッファ121a内の更新量を採取する。そして、コピースケジューラ11は、これまでに採取・計測した情報に基づき、予め規定された基準に従って、差分ビットマップ処理動作とバッファ優先処理動作といずれかを選択する。例えば、コピースケジューラ11は、差分ビットマップ処理動作とバッファ優先処理動作とのうち、必要とされる退避領域26の容量が少なくなる方の動作を選択する。
ステップS306における自動選択の結果がバッファ優先処理動作を選択したものであるかを確認する(ステップS307)。確認の結果、バッファ優先処理動作が選択されている場合には(ステップS307のYESルート参照)、処理を終了して、図13のフローチャートより後述するバッファ優先処理動作での処理に移行する。又、確認の結果、バッファ優先処理動作が選択されていない場合には(ステップS307のNOルート参照)、処理を終了して、図14のフローチャートより後述する差分ビットマップ処理モードでの処理に移行する。
一方、複数筐体での優先度付けが自動設定になっていない場合は(ステップS301のNOルート参照)、ステップS305において、コピースケジューラ11は、予め指定されているデータ転送量及び頻度を設定し、ステップS304に移行する。
また、バッファの転送動作の選択を自動設定にしていない場合には(ステップS304のNOルート参照)、ステップS308において、バッファ優先処理動作がオペレータ等により手動で選択されているか否かを確認する。
また、バッファの転送動作の選択を自動設定にしていない場合には(ステップS304のNOルート参照)、ステップS308において、バッファ優先処理動作がオペレータ等により手動で選択されているか否かを確認する。
確認の結果、バッファ優先処理動作が手動で選択されている場合には(ステップS308のYESルート参照)、処理を終了して、図13のフローチャートより後述するバッファ優先処理動作に移行する。一方、確認の結果、バッファ優先処理動作が選択されていない場合には(ステップS308のNOルート参照)、処理を終了して、図14のフローチャートより後述する差分ビットマップ処理動作に移行する。
すなわち、バッファ優先処理モードが手動で選択されている場合はバッファ優先処理モードを実行し、自動設定でもバッファ優先処理モードでもない場合は差分ビットマップ処理モードを、それぞれ情報の採取をせずに実行する。
次に、実施形態の一例としてのストレージシステム1におけるバッファ優先処理動作におけるコピー元筐体10の処理を、図13に示すフローチャート(ステップS401〜S408)に従って説明する。
次に、実施形態の一例としてのストレージシステム1におけるバッファ優先処理動作におけるコピー元筐体10の処理を、図13に示すフローチャート(ステップS401〜S408)に従って説明する。
先ず、ステップS401において、コピースケジューラ11は、コピー元バッファ121aの最終世代を選択する。次に、ステップS402において、コピースケジューラ11は、ステップS401で選択した世代に含まれるデータのコピー元LUN12内での位置(更新箇所)を算出して読み出す。
コピースケジューラ11は、ステップS402で選択中の世代よりも前の世代の更新箇所を算出して読み出す。そして、ステップS403において、コピースケジューラ11は、ステップS402で選択中の世代更新箇所と、このステップS402で選択中の世代よりも前の世代の更新箇所とを比較し、重複する部分があるか否かを確認する。
コピースケジューラ11は、ステップS402で選択中の世代よりも前の世代の更新箇所を算出して読み出す。そして、ステップS403において、コピースケジューラ11は、ステップS402で選択中の世代更新箇所と、このステップS402で選択中の世代よりも前の世代の更新箇所とを比較し、重複する部分があるか否かを確認する。
ステップS402で選択中の世代更新箇所と、このステップS402で選択中の世代よりも前の世代の更新箇所とが重複する場合には(ステップS403のYESルート参照)、ステップS404において、更新箇所から重複部分を削除する。具体的には、例えば、ステップS402で選択した世代以前の更新箇所から重複部分を削除し、それ以降の世代のバッファのデータに重複がないようにする。
例えば、図6に示した、コピー元バッファ121a内の各世代の更新記録箇所及び実際に転送される箇所を例示する図において、その左側欄(コピー元バッファ内更新記録箇所)では、第3世代の更新箇所900-1800は、それ以前の第2世代の更新箇所1500-3000や第1世代の更新箇所1000-2000と重複する(重複更新箇所)。
コピースケジューラ11は、第2世代の更新箇所1500-3000から第3世代の更新箇所900-1800との重複箇所1500-1800を削除して、第2世代のコピー先バッファ内更新記録箇所として、更新箇所1800-3000を生成する。同様に、コピースケジューラ11は、第1世代の更新箇所1000-2000から第3世代の更新箇所900-1800との重複箇所1500-1800を削除して、第1世代のコピー先バッファ内更新記録箇所として、更新箇所1800-2000を生成する。なお、この第1世代のコピー先バッファ内更新記録箇所として生成された更新箇所1800-2000は、その後、第2世代についてステップS403,S404の処理を行なう際に、第2世代の更新箇所1500-3000との重複箇所として削除される。
コピースケジューラ11は、第2世代の更新箇所1500-3000から第3世代の更新箇所900-1800との重複箇所1500-1800を削除して、第2世代のコピー先バッファ内更新記録箇所として、更新箇所1800-3000を生成する。同様に、コピースケジューラ11は、第1世代の更新箇所1000-2000から第3世代の更新箇所900-1800との重複箇所1500-1800を削除して、第1世代のコピー先バッファ内更新記録箇所として、更新箇所1800-2000を生成する。なお、この第1世代のコピー先バッファ内更新記録箇所として生成された更新箇所1800-2000は、その後、第2世代についてステップS403,S404の処理を行なう際に、第2世代の更新箇所1500-3000との重複箇所として削除される。
また、ステップS402で選択中の世代の更新箇所と、このステップS402で選択中の世代よりも前の世代の更新箇所とが重複しない場合には(ステップS403のNOルート参照)、ステップS404をスキップしてステップS405に移行する。
ステップS405において、選択されている世代がコピー元バッファ121aにおいて最も古い世代であるか否かを確認する。選択されている世代が最も古い世代でない場合は(ステップS405のNOルート参照)、ステップS406において、更に1つ前の世代を選択し、ステップS402に移行して、その世代の更新箇所を読み取る。
ステップS405において、選択されている世代がコピー元バッファ121aにおいて最も古い世代であるか否かを確認する。選択されている世代が最も古い世代でない場合は(ステップS405のNOルート参照)、ステップS406において、更に1つ前の世代を選択し、ステップS402に移行して、その世代の更新箇所を読み取る。
一方、選択されている世代が最も古い世代である場合は(ステップS405のYESルート参照)、コピー元バッファ121a内の複数世代のデータにおいては、世代間における重複更新箇所が無い状態となっている。ステップS407において、このようにコピー先バッファ221a内の重複更新箇所がない状態の全世代のデータを、キャッシュ14を通じてコピー元バッファ121aに送信する。この際、コピースケジューラ11は、コピー元筐体10から送信するデータのヘッダ等に、コピー元バッファ121aから送信されたデータであることを示す識別子を挿入して送信する。
コピー先筐体20においては、受信したコピー元バッファ121aの各世代のデータを、各世代に対応して設けられたコピー先バッファ121bの世代にそれぞれ格納していく。コピー先筐体20において、コピー元筐体10から送信されたデータがすべてコピー先バッファ121bに格納されると、コピー先バッファ121b内のデータをコピー先LUN22に反映させる。コピー先筐体20は、コピー先バッファ121b内のデータのコピー先LUN22への展開が完了すると、コピー元筐体10に対してバッファ反映完了通知を送信する。なお、このコピー先筐体20における処理については、図17を用いて後述する。
コピー元筐体10においては、ステップS408において、コピースケジューラ11が、コピー先筐体20からバッファ反映完了通知を受信したか否かを確認し、受信していない場合には(ステップS408のNOルート参照)、ステップS407に戻る。コピースケジューラ11は、コピー先筐体20からバッファ反映完了通知を受信したことを確認すると(ステップS408のYESルート参照)、バッファ処理の完了とみなし、差分ビットマップ13の転送処理を開始する。
次に、実施形態の一例としてのストレージシステム1における差分ビットマップ処理動作やバッファ優先処理動作の完了後のコピー先筐体20における処理を、図14に示すフローチャート(ステップS501〜S510)に従って説明する。
差分ビットマップ処理動作が完了した後においては、ステップS501において、コピースケジューラ11が、先ず、コピー元バッファ121a内の情報からデータの更新箇所を差分ビットマップ13に反映させる。
差分ビットマップ処理動作が完了した後においては、ステップS501において、コピースケジューラ11が、先ず、コピー元バッファ121a内の情報からデータの更新箇所を差分ビットマップ13に反映させる。
一方、バッファ優先処理動作の完了後においては、コピー元バッファ121aの中身のデータを送信し終えた後なので、差分ビットマップ13への反映は不要であり、ステップS502に移行する。
ステップS502において、コピー元バッファ121aの中身を削除してクリアした後、ステップS503において、拡張倍率に従って差分ビットマップ13の先頭箇所を選択してする。
ステップS502において、コピー元バッファ121aの中身を削除してクリアした後、ステップS503において、拡張倍率に従って差分ビットマップ13の先頭箇所を選択してする。
ステップS504において、選択されている領域のビットを処理する。ここで、このステップS504における選択された領域のビット処理を、図15に示すフローチャート(ステップS601〜S606)に従って説明する。
ステップS601において、選択されている領域のビットが1つ以上立っているか否かを確認する。選択した領域のビットが1つ以上立っている場合は(ステップS601のYESルート参照)、ステップS602において、コピースケジューラ11は、RAM121の所定の領域に周回繰り返しフラグに例えば“1”を設定する。
ステップS601において、選択されている領域のビットが1つ以上立っているか否かを確認する。選択した領域のビットが1つ以上立っている場合は(ステップS601のYESルート参照)、ステップS602において、コピースケジューラ11は、RAM121の所定の領域に周回繰り返しフラグに例えば“1”を設定する。
ここで、周回繰り返しフラグは、差分ビットマップ13における更新点の有無を示す情報であり、この周回繰り返しフラグに例えば“1”が設定されている場合には、その時点において、差分ビットマップ13において少なくとも1か所以上の更新点がることを示している。
コピー元LUN12とコピー先LUN22とが等価になるためには、コピー先LUN22に反映されていない更新点が1つもない状態となるまで、差分ビットマップ13に示されるデータ転送を続ける必要がある。このため、差分ビットマップ13における更新点がある場合に、周回繰り返しフラグに“1”を設定する。
コピー元LUN12とコピー先LUN22とが等価になるためには、コピー先LUN22に反映されていない更新点が1つもない状態となるまで、差分ビットマップ13に示されるデータ転送を続ける必要がある。このため、差分ビットマップ13における更新点がある場合に、周回繰り返しフラグに“1”を設定する。
コピースケジューラ11は、差分ビットマップ13において選択した領域のビット列が、その末尾のみが1になっているかを確認する。
選択した領域のビット列が、その末尾のみが1になっている場合には(ステップS603のYESルート参照)、当該単位領域の更新回数(更新回数情報)が1であり、更新頻度の低い領域としてみなされる。そこで、ステップS604において、コピースケジューラ11は、対象領域のデータをコピー元LUN12からキャッシュ14にコピーし、コピー先筐体20に送信していく。この際、送信するデータには差分ビットマップ13に基づいて送信されたデータであることを示す識別子を挿入して送信する。
選択した領域のビット列が、その末尾のみが1になっている場合には(ステップS603のYESルート参照)、当該単位領域の更新回数(更新回数情報)が1であり、更新頻度の低い領域としてみなされる。そこで、ステップS604において、コピースケジューラ11は、対象領域のデータをコピー元LUN12からキャッシュ14にコピーし、コピー先筐体20に送信していく。この際、送信するデータには差分ビットマップ13に基づいて送信されたデータであることを示す識別子を挿入して送信する。
コピー先筐体20においては、受信したデータ内の情報に従ってコピー先LUN22の指定された領域に受信データを更新していく。コピー先筐体20は、受信したデータのコピー先LUN22への展開が完了すると、コピー元筐体10に対して反映完了通知を送信する。なお、このコピー先筐体20における処理については、図17を用いて後述する。
コピー元筐体10においては、ステップS605において、コピースケジューラ11が、コピー先筐体20から送信データに対する反映完了通知を受信したか否かを確認し、受信していない場合には(ステップS605のNOルート参照)、ステップS604に戻る。コピースケジューラ11は、コピー先筐体20から送信データに対する反映完了通知を受信したことを確認すると(ステップS605のYESルート参照)、ステップS606において、差分ビットマップ13における選択されている領域のビット列の値を1つデクリメントする。その後、処理を終了し、図14のステップS505に移行する。
コピー元筐体10においては、ステップS605において、コピースケジューラ11が、コピー先筐体20から送信データに対する反映完了通知を受信したか否かを確認し、受信していない場合には(ステップS605のNOルート参照)、ステップS604に戻る。コピースケジューラ11は、コピー先筐体20から送信データに対する反映完了通知を受信したことを確認すると(ステップS605のYESルート参照)、ステップS606において、差分ビットマップ13における選択されている領域のビット列の値を1つデクリメントする。その後、処理を終了し、図14のステップS505に移行する。
ステップS505において、コピースケジューラ11は、差分ビットマップ13において、選択している領域が末尾であるか否かを確認する。選択されている領域が差分ビットマップ13の末尾でない場合には(ステップS505のNOルート参照)、ステップS506において次の領域を選択した後、ステップS504に戻る。
選択されている領域が差分ビットマップ13の末尾である場合には(ステップS505のYESルート参照)、ステップS507において、周回繰り返しフラグの確認を行なう。
選択されている領域が差分ビットマップ13の末尾である場合には(ステップS505のYESルート参照)、ステップS507において、周回繰り返しフラグの確認を行なう。
周回繰り返しフラグに“1”が設定されている場合には(ステップS507のYESルート参照)、ステップS508において、この周回繰り返しフラグに“0”を設定することで戻し、ステップS503に戻り、再度、差分ビットマップ13の先頭からビットの処理を行なう。
周回繰り返しフラグに“1”が設定されていない場合には(ステップS507のNOルート参照)、コピー元LUN12とコピー先LUN22とが等価になったとみなすことができる。ステップS509において、コピースケジューラ11は、コピー先筐体20に対してコピー元LUN12とコピー先LUN22とが等価状態となったことを通知する。そして、ステップS510において、コピースケジューラ11は、差分ビットマップ13への記録を終了し、正常なコピー状態に戻ることとなる。
周回繰り返しフラグに“1”が設定されていない場合には(ステップS507のNOルート参照)、コピー元LUN12とコピー先LUN22とが等価になったとみなすことができる。ステップS509において、コピースケジューラ11は、コピー先筐体20に対してコピー元LUN12とコピー先LUN22とが等価状態となったことを通知する。そして、ステップS510において、コピースケジューラ11は、差分ビットマップ13への記録を終了し、正常なコピー状態に戻ることとなる。
なお、コピー先筐体20においても、又、図17を用いて後述するように、コピー元筐体10から等価状態の通知が来た場合は等価処理を終了し、正常なコピー状態に戻る。その際、退避領域26内のコピー前のデータは不要なものとなるため削除する。
次に、実施形態の一例としてのストレージシステム1におけるコピー先筐体20における等価処理を、図16に示すフローチャート(ステップS701〜S705)に従って説明する。
次に、実施形態の一例としてのストレージシステム1におけるコピー先筐体20における等価処理を、図16に示すフローチャート(ステップS701〜S705)に従って説明する。
ステップS701において、コピースケジューラ21は、複数のコピー元筐体10間における優先度付けが自動設定になっているか否かを確認する。
ここで、複数のコピー元筐体10間における優先度付けが自動設定になっていない場合には(ステップS701のNOルート参照)、処理を終了する。
複数のコピー元筐体10間における優先度付けが自動設定になっている場合は(ステップS701のYESルート参照)、ステップS702において、コピー元筐体10とコピー先筐体20との間で通信を行ない、コピー先筐体20は各コピー元筐体10のデータの更新量及び回線情報を受信する。
ここで、複数のコピー元筐体10間における優先度付けが自動設定になっていない場合には(ステップS701のNOルート参照)、処理を終了する。
複数のコピー元筐体10間における優先度付けが自動設定になっている場合は(ステップS701のYESルート参照)、ステップS702において、コピー元筐体10とコピー先筐体20との間で通信を行ない、コピー先筐体20は各コピー元筐体10のデータの更新量及び回線情報を受信する。
ステップS703において、必要な情報(例えば、データの更新量及び回線情報)を全てのコピー元筐体10から受信したかを確認する。全てのコピー元筐体10からの情報取得が完了していない場合には(ステップS703のNOルート参照)、ステップS702に戻り、再度、情報収集を行なう。
全てのコピー元筐体10からの情報取得が完了した場合には(ステップS703のYESルート参照)、ステップS704において、ステップS702において受信した情報(データの更新量及び回線情報)に基づき、各コピー元筐体10の各コピーセッションの優先度を決定する。そして、ステップS705において、コピースケジューラ21は、決定した優先度に基づいて、上述した優先度設定テーブル(図8参照)を参照して、データ送信量・頻度を決定し、これらのデータ送信量・頻度をコピー元筐体10に送信し、処理を終了する。コピー元筐体10においては、それぞれに指定されたデータ転送量及び頻度で以降のデータを処理する。
全てのコピー元筐体10からの情報取得が完了した場合には(ステップS703のYESルート参照)、ステップS704において、ステップS702において受信した情報(データの更新量及び回線情報)に基づき、各コピー元筐体10の各コピーセッションの優先度を決定する。そして、ステップS705において、コピースケジューラ21は、決定した優先度に基づいて、上述した優先度設定テーブル(図8参照)を参照して、データ送信量・頻度を決定し、これらのデータ送信量・頻度をコピー元筐体10に送信し、処理を終了する。コピー元筐体10においては、それぞれに指定されたデータ転送量及び頻度で以降のデータを処理する。
次に、実施形態の一例としてのストレージシステム1のコピー先筐体20における処理を、図17に示すフローチャート(ステップS801〜S810)に従って説明する。
先ず、ステップS801において、コピースケジューラ21は、コピー元筐体10からキャッシュ24にデータを受信したか否かを確認する。
コピー元筐体10からキャッシュ24にデータを受信した場合には(ステップS801のYESルート参照)、ステップS802において、コピースケジューラ21は、次に、受信データの識別子を参照して、その受信データがコピー元バッファ121aを介して送信されたものであるか否かを確認する。
先ず、ステップS801において、コピースケジューラ21は、コピー元筐体10からキャッシュ24にデータを受信したか否かを確認する。
コピー元筐体10からキャッシュ24にデータを受信した場合には(ステップS801のYESルート参照)、ステップS802において、コピースケジューラ21は、次に、受信データの識別子を参照して、その受信データがコピー元バッファ121aを介して送信されたものであるか否かを確認する。
受信データがコピー元バッファ121aを介して送信されたものである場合には(ステップS802のYESルート参照)、ステップS803において、コピースケジューラ21は、受信データをコピー先バッファ121bの指定された世代に格納させる。すなわち、コピースケジューラ21は、コピー元バッファ121aの各世代に対応するコピー先バッファ221aの各世代にそれぞれ受信データを格納する。
かかる処理はコピー元バッファ121aのデータがすべてコピー先バッファ121bに格納されるまで継続される。すなわち、ステップS804において、コピースケジューラ21は、コピー元バッファ121aの全てのデータがコピー先バッファ121bに格納されたかを確認する。
コピー元バッファ121aの全てのデータがコピー先バッファ121bに格納されていない場合には(ステップS804のNOルート参照)、ステップS801に戻る。
コピー元バッファ121aの全てのデータがコピー先バッファ121bに格納されていない場合には(ステップS804のNOルート参照)、ステップS801に戻る。
一方、コピー元バッファ121aの全てのデータがコピー先バッファ121bに格納された場合には(ステップS804のYESルート参照)、ステップS805において、コピー先バッファ121b内のデータをコピー先LUN22に格納(更新)する。
コピー先バッファ121b内の更新データを反映させた後は、コピー先LUN22においては整合性のあるデータが保持される。これにより、コピースケジューラ21は、退避領域26への退避処理を行なうことなく、そのままコピー先LUN22に書き込んでいく。そのため、この処理においては退避領域26の必要な容量が増加することがない。
コピー先バッファ121b内の更新データを反映させた後は、コピー先LUN22においては整合性のあるデータが保持される。これにより、コピースケジューラ21は、退避領域26への退避処理を行なうことなく、そのままコピー先LUN22に書き込んでいく。そのため、この処理においては退避領域26の必要な容量が増加することがない。
コピースケジューラ21は、コピー先バッファ121b内の全てのデータをコピー先LUN22に反映し終えると、ステップS806において、コピー元筐体10にバッファ反映完了通知を送信する。
一方、受信データがコピー元バッファ121aを介して送信されたものでない場合には(ステップS802のNOルート参照)、受信データは、差分ビットマップ13に基づいて送信されたデータである。ステップS808において、コピースケジューラ21は、コピー先LUN22における指定された領域に対して受信データを更新する。この際、コピースケジューラ21は、コピー先LUN22における更新対象の領域のデータを退避領域26へ退避させる処理も行なう。
一方、受信データがコピー元バッファ121aを介して送信されたものでない場合には(ステップS802のNOルート参照)、受信データは、差分ビットマップ13に基づいて送信されたデータである。ステップS808において、コピースケジューラ21は、コピー先LUN22における指定された領域に対して受信データを更新する。この際、コピースケジューラ21は、コピー先LUN22における更新対象の領域のデータを退避領域26へ退避させる処理も行なう。
そして、ステップS809において、コピースケジューラ21は、コピー元筐体10に対して、送信データに対する反映完了通知を送信する。
その後、ステップS807において、コピースケジューラ21は、コピー元筐体10から等価状態の通知を受信したか否かを確認する。コピー元筐体10から等価状態の通知を受信していない場合には(ステップS807のNOルート参照)、ステップS801に戻る。又、コピー元筐体10から等価状態の通知を受信した場合には(ステップS807のYESルート参照)、ステップS810において、退避領域26内のデータを削除して、処理を終了する。
その後、ステップS807において、コピースケジューラ21は、コピー元筐体10から等価状態の通知を受信したか否かを確認する。コピー元筐体10から等価状態の通知を受信していない場合には(ステップS807のNOルート参照)、ステップS801に戻る。又、コピー元筐体10から等価状態の通知を受信した場合には(ステップS807のYESルート参照)、ステップS810において、退避領域26内のデータを削除して、処理を終了する。
なお、コピー元筐体10からキャッシュ24にデータを受信していない場合には(ステップS801のNOルート参照)、ステップS807に移行する。
このように、実施形態の一例としてのストレージシステム1によれば、差分ビットマップ13を2ビット以上のビット列として拡張することにより、差分ビットマップ13において、各単位領域の更新数を記録することができる。
このように、実施形態の一例としてのストレージシステム1によれば、差分ビットマップ13を2ビット以上のビット列として拡張することにより、差分ビットマップ13において、各単位領域の更新数を記録することができる。
そして、コピースケジューラ11が、この差分ビットマップ13のビット列が示す更新数を参照して、更新数が所定値以下(例えば1以下)である更新頻度が低い部分のデータだけを、コピー元筐体10からコピー先筐体20へ差分コピーで転送する。一方、更新数が所定値よりも大きい、更新頻度が高い部分については、コピー元LUN12からコピー先LUN22へのデータの送信(差分コピーの実行)を抑止し、差分ビットマップ13における更新回数のデクリメントだけを行なう。
これにより、差分ビットマップ13を用いた差分コピーに要する時間を短縮することができ、この間にコピー元LUN12に行なわれる更新量を減らすことで、退避領域26に退避させるデータを削減する。従って、退避領域26の容量を削減することができる。
本ストレージシステム1においては、差分ビットマップ13を用いた差分コピーに際して、差分ビットマップ13においてビット列が「01」の単位領域についてのみ、コピー元LUN12における当該領域のデータをコピー先LUN22へ転送する。これにより、筐体間コピーセッション間でコピーされる領域の大きさ(データ量)を削減し、差分コピーに要する時間を短縮することができる。従って、最終的にはコピー先LUN22の整合性を保つための退避領域26について実際に確保するボリューム容量を減らすことが可能となる。
本ストレージシステム1においては、差分ビットマップ13を用いた差分コピーに際して、差分ビットマップ13においてビット列が「01」の単位領域についてのみ、コピー元LUN12における当該領域のデータをコピー先LUN22へ転送する。これにより、筐体間コピーセッション間でコピーされる領域の大きさ(データ量)を削減し、差分コピーに要する時間を短縮することができる。従って、最終的にはコピー先LUN22の整合性を保つための退避領域26について実際に確保するボリューム容量を減らすことが可能となる。
差分コピーの時間を短縮することにより、コピー元筐体10からコピー先筐体20への筐体間コピーセッションのコピーされる領域の大きさを抑制することができる。これにより、最終的には、コピー先LUN22の整合性を保つための退避領域26において実際に確保する容量を低減することができる。
また、差分ビットマップ13を2ビット以上のビット列として拡張することにより、各単位領域に対して管理可能な更新数を増やすことができる。
また、差分ビットマップ13を2ビット以上のビット列として拡張することにより、各単位領域に対して管理可能な更新数を増やすことができる。
さらに、先にコピー元バッファ121a内のデータをコピー先バッファ221aに転送した後で、残りの差分ビットマップ13を転送する、バッファ処理優先動作を行なうことで、コピー元バッファ121a内のデータを差分ビットマップ13に反映させずに、コピー先バッファ221aへ送信する。
コピー元バッファ121a内のデータは世代毎に整合性のある状態で管理されているので、バッファ転送によるコピーにおいてはコピー先筐体20において退避領域26を用いたデータの退避処理が不要である。従って、差分ビットマップ13を用いた差分コピーの転送量を低減することができ、退避領域26の必要な容量を抑制することができる。
コピー元バッファ121a内のデータは世代毎に整合性のある状態で管理されているので、バッファ転送によるコピーにおいてはコピー先筐体20において退避領域26を用いたデータの退避処理が不要である。従って、差分ビットマップ13を用いた差分コピーの転送量を低減することができ、退避領域26の必要な容量を抑制することができる。
また、コピースケジューラ11は、ホルト状態からの復帰時における、コピー元バッファ121aからコピー先バッファ221aへのバッファ転送において、反映されるべき更新データのみを送信する。すなわち、コピー元バッファ121aの複数世代における重複更新箇所については、新しい世代のデータだけを送信し、古い世代のデータの転送を抑止する。これにより、送信するデータ量を低減し、バッファ転送に要する時間を短縮することができる。
さらに、複数のコピー元筐体10からの差分コピーのうち、優先度が高いコピー元筐体10からの差分コピーを優先して実行する。これにより、早い段階でコピー元筐体10とコピー先筐体20とで等価にしておきたい差分コピーを優先して実行させることで、他の差分コピーよりも先に等価にすることができる。特に、更新量が多いコピーセッションの優先度を高くすることにより、退避領域26としての必要な容量が削減することができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
上述した実施形態においては、差分ビットマップ13において、各単位領域に対して更新回数情報として2ビットのビット列を割り当てる例を示しているが、これに限定されるものではなく、更新回数情報として、各単位領域に対して3ビット以上のビット列を割り当ててもよい。
上述した実施形態においては、差分ビットマップ13において、各単位領域に対して更新回数情報として2ビットのビット列を割り当てる例を示しているが、これに限定されるものではなく、更新回数情報として、各単位領域に対して3ビット以上のビット列を割り当ててもよい。
また、上述した実施形態においては、差分ビットマップ13におけるビット列の値が所定の閾値である“2”以上の単位領域については、更新が頻繁に行なわれている箇所とみなして、当該箇所のデータのコピー元LUN12からコピー先LUN22への転送を抑止しているが、これに限定されるものではない。すなわち、更新が頻繁に行なわれている箇所としてみなす閾値を“3”以上の他の値としてもよく、種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御装置であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、
前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、
前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止することを特徴とするコピー制御装置。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御装置であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、
前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、
前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止することを特徴とするコピー制御装置。
(付記2)
前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域と、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する重複抑止部と
を備えることを特徴とする、付記1記載のコピー制御装置。
前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域と、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する重複抑止部と
を備えることを特徴とする、付記1記載のコピー制御装置。
(付記3)
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
前記コピー処理部が、各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記1又は2記載のコピー制御装置。
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
前記コピー処理部が、各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記1又は2記載のコピー制御装置。
(付記4)
コピー対象データを格納するコピー元領域と、
前記コピー元領域のコピー対象データを格納するコピー先領域とを備えるコピーシステムであって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、
前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、
前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止することを特徴とするコピーシステム。
コピー対象データを格納するコピー元領域と、
前記コピー元領域のコピー対象データを格納するコピー先領域とを備えるコピーシステムであって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、
前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、
前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止することを特徴とするコピーシステム。
(付記5)
前記コピー処理部が前記コピー元領域のデータを前記コピー先領域へコピーする際に、コピーされる前の前記コピー先領域のデータを格納する退避領域を備えることを特徴とする、付記4記載のコピーシステム。
(付記6)
前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域と、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する重複抑止部と
を備えることを特徴とする、付記4又は5記載のコピーシステム。
前記コピー処理部が前記コピー元領域のデータを前記コピー先領域へコピーする際に、コピーされる前の前記コピー先領域のデータを格納する退避領域を備えることを特徴とする、付記4記載のコピーシステム。
(付記6)
前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域と、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する重複抑止部と
を備えることを特徴とする、付記4又は5記載のコピーシステム。
(付記7)
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
前記コピー処理部が、各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記4〜6のいずれか1項に記載のコピーシステム。
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
前記コピー処理部が、各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記4〜6のいずれか1項に記載のコピーシステム。
(付記8)
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御方法であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照する処理と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする処理と、
前記更新回数が所定数以上の領域についての前記コピーを抑止する処理と
を備えることを特徴とするコピー制御方法。
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御方法であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照する処理と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする処理と、
前記更新回数が所定数以上の領域についての前記コピーを抑止する処理と
を備えることを特徴とするコピー制御方法。
(付記9)
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する処理
を備えることを特徴とする、付記8記載のコピー制御方法。
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する処理
を備えることを特徴とする、付記8記載のコピー制御方法。
(付記10)
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記8又は9記載のコピー制御方法。
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、付記8又は9記載のコピー制御方法。
(付記11)
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御機能をコンピュータに実行させるコピー制御プログラムであって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照し、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーし、
前記更新回数が所定数以上の領域についての前記コピーを抑止する
処理を前記コンピュータに実行させることを特徴とするコピー制御プログラム。
コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御機能をコンピュータに実行させるコピー制御プログラムであって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照し、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーし、
前記更新回数が所定数以上の領域についての前記コピーを抑止する
処理を前記コンピュータに実行させることを特徴とするコピー制御プログラム。
(付記12)
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する
処理を前記コンピュータに実行させることを特徴とする、付記11記載のコピー制御プログラム。
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する
処理を前記コンピュータに実行させることを特徴とする、付記11記載のコピー制御プログラム。
(付記13)
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーする
処理を前記コンピュータに実行させることを特徴とする、付記11又は12記載のコピー制御プログラム。
前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーする
処理を前記コンピュータに実行させることを特徴とする、付記11又は12記載のコピー制御プログラム。
1 ストレージシステム(コピー制御システム)
2,3 ホスト装置
10,10−1,10−2,10−3 コピー元筐体(ストレージ装置)
11,21 コピースケジューラ
12,12−1〜12−4 コピー元LUN
13,13−1,13−2 差分ビットマップ
14 キャッシュ
20 コピー先筐体(ストレージ装置)
22,22−1〜22−4 コピー先LUN
26,26−1〜26−4 退避領域
50 ネットワーク
110,210 CPU
111,211 CM(コピー制御装置)
121,221 RAM
121a コピー元バッファ(RECバッファ)
221a コピー先バッファ(RECバッファ)
122,222 ROM
124,224 CA
125,225 ネットワークインタフェース
126,226 DA
130,230 ディスクエンクロージャ
131,231 ディスク装置
2,3 ホスト装置
10,10−1,10−2,10−3 コピー元筐体(ストレージ装置)
11,21 コピースケジューラ
12,12−1〜12−4 コピー元LUN
13,13−1,13−2 差分ビットマップ
14 キャッシュ
20 コピー先筐体(ストレージ装置)
22,22−1〜22−4 コピー先LUN
26,26−1〜26−4 退避領域
50 ネットワーク
110,210 CPU
111,211 CM(コピー制御装置)
121,221 RAM
121a コピー元バッファ(RECバッファ)
221a コピー先バッファ(RECバッファ)
122,222 ROM
124,224 CA
125,225 ネットワークインタフェース
126,226 DA
130,230 ディスクエンクロージャ
131,231 ディスク装置
Claims (7)
- コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御装置であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、更新箇所を示す更新箇所情報を格納する更新箇所情報格納部と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする制御を行なうコピー処理部とを備え、
前記更新箇所情報が、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶し、
前記コピー処理部が、前記更新回数が所定数以上の領域についての前記コピーを抑止することを特徴とするコピー制御装置。 - 前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域と、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する重複抑止部と
を備えることを特徴とする、請求項1記載のコピー制御装置。 - 前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
前記コピー処理部が、各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、請求項1又は2記載のコピー制御装置。 - コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御方法であって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照する処理と、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーする処理と、
前記更新回数が所定数以上の領域についての前記コピーを抑止する処理と
を備えることを特徴とするコピー制御方法。 - 前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、前記コピー元領域において更新されたデータを更新順に世代毎に格納するコピー元バッファ領域に格納された複数世代のデータのうち、前記コピー元領域において重複する領域のデータについては、最新のデータ以外の送信を抑止する処理
を備えることを特徴とする、請求項4記載のコピー制御方法。 - 前記コピー元領域が複数ある場合において、
前記コピー元領域から前記コピー先領域へのコピーの停止状態からの復帰時に、
各コピー元領域に対して設定された優先度に応じたパラメータに従って、各コピー元領域のデータをそれぞれ前記コピー先領域へコピーすることを特徴とする、請求項4又は5記載のコピー制御方法。 - コピー元領域に格納されたデータをコピー先領域にコピーする制御を行なうコピー制御機能をコンピュータに実行させるコピー制御プログラムであって、
前記コピー元領域から前記コピー先領域へのコピーの停止中において、前記コピー元領域のデータの更新が発生した場合に、前記コピー元領域を所定の領域毎に区分し、前記コピー元領域に対して行なわれる更新回数情報を前記所定の領域毎に記憶する更新箇所情報を参照し、
前記更新箇所情報に基づき、前記更新箇所に対応する前記コピー元領域のデータを前記コピー先領域へコピーし、
前記更新回数が所定数以上の領域についての前記コピーを抑止する
処理を前記コンピュータに実行させることを特徴とするコピー制御プログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013184185A JP2015052844A (ja) | 2013-09-05 | 2013-09-05 | コピー制御装置,コピー制御方法及びコピー制御プログラム |
| US14/332,724 US9348711B2 (en) | 2013-09-05 | 2014-07-16 | Copy control apparatus and copy control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013184185A JP2015052844A (ja) | 2013-09-05 | 2013-09-05 | コピー制御装置,コピー制御方法及びコピー制御プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2015052844A true JP2015052844A (ja) | 2015-03-19 |
Family
ID=52584921
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013184185A Pending JP2015052844A (ja) | 2013-09-05 | 2013-09-05 | コピー制御装置,コピー制御方法及びコピー制御プログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9348711B2 (ja) |
| JP (1) | JP2015052844A (ja) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10338827B2 (en) * | 2015-04-17 | 2019-07-02 | Johann George | Digitally lending content without reproduction |
| US10365852B2 (en) * | 2016-07-29 | 2019-07-30 | Vmware, Inc. | Resumable replica resynchronization |
| JP6833644B2 (ja) * | 2017-09-13 | 2021-02-24 | 株式会社東芝 | 転送装置、転送方法及びプログラム |
| US10459849B1 (en) * | 2018-08-31 | 2019-10-29 | Sas Institute Inc. | Scheduling operations in an access-controlled region of memory |
| US11079958B2 (en) * | 2019-04-12 | 2021-08-03 | Intel Corporation | Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator |
| US11494304B2 (en) * | 2020-03-13 | 2022-11-08 | International Business Machines Corporation | Indicating extents of tracks in mirroring queues based on information gathered on tracks in extents in cache |
| CN113986129B (zh) * | 2021-10-26 | 2023-04-25 | 杭州宏杉科技股份有限公司 | Lun数据复制方法及装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1115604A (ja) | 1997-06-25 | 1999-01-22 | Hitachi Ltd | データ多重化方法 |
| JP4689137B2 (ja) * | 2001-08-08 | 2011-05-25 | 株式会社日立製作所 | リモートコピー制御方法、及びストレージシステム |
| DE60204687T2 (de) * | 2002-09-06 | 2006-05-18 | Sun Microsystems, Inc., Santa Clara | Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird |
| JP4267420B2 (ja) | 2003-10-20 | 2009-05-27 | 株式会社日立製作所 | ストレージ装置及びバックアップ取得方法 |
| JP4688617B2 (ja) | 2005-09-16 | 2011-05-25 | 株式会社日立製作所 | 記憶制御システム及び方法 |
| JP4774085B2 (ja) | 2008-07-31 | 2011-09-14 | 富士通株式会社 | ストレージシステム |
| US8996827B1 (en) * | 2011-12-27 | 2015-03-31 | Emc Corporation | Creating and maintaining clones in continuous data protection |
-
2013
- 2013-09-05 JP JP2013184185A patent/JP2015052844A/ja active Pending
-
2014
- 2014-07-16 US US14/332,724 patent/US9348711B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20150067282A1 (en) | 2015-03-05 |
| US9348711B2 (en) | 2016-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8108597B2 (en) | Storage control method and system for performing backup and/or restoration | |
| US10725878B2 (en) | Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused | |
| US9524220B1 (en) | Memory optimization for configuration elasticity in cloud environments | |
| US9128621B2 (en) | Storage system control method | |
| US9703504B2 (en) | Storage system, recording medium storing data rebalancing program, and data rebalancing method | |
| US9678686B2 (en) | Managing sequentiality of tracks for asynchronous PPRC tracks on secondary | |
| JP2015052844A (ja) | コピー制御装置,コピー制御方法及びコピー制御プログラム | |
| JP6064608B2 (ja) | ストレージ装置、バックアッププログラム、およびバックアップ方法 | |
| GB2534956A (en) | Storage system and storage control method | |
| JP2008065503A (ja) | ストレージシステム及びバックアップ/リカバリ方法 | |
| JP2009122873A (ja) | ストレージシステム間でのリモートコピーを管理する装置 | |
| TWI531901B (zh) | 群組表資料沖除技術 | |
| US20100082924A1 (en) | Storage controller having virtual volume | |
| JP4911198B2 (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御方法 | |
| US9342418B2 (en) | Storage system, storage control device and data transfer method | |
| JP2005202942A (ja) | 情報記録媒体、データ処理装置及びデータ処理方法 | |
| JP4813872B2 (ja) | 計算機システム及び計算機システムのデータ複製方法 | |
| US20160139842A1 (en) | Storage control apparatus and storage system | |
| US8972634B2 (en) | Storage system and data transfer method | |
| JP2005092308A (ja) | ディスク管理方法およびコンピュータシステム | |
| JP4245021B2 (ja) | ストレージ装置、ストレージシステム、ストレージ装置の制御方法 | |
| US20130031320A1 (en) | Control device, control method and storage apparatus | |
| US8930485B2 (en) | Information processing apparatus and non-transitory computer-readable recording medium having program stored thereon | |
| US20160357479A1 (en) | Storage control apparatus | |
| JP6912105B2 (ja) | ディスクアレイシステム、ディスクアレイシステムの制御方法、および、ディスクアレイ装置 |