(57)【要約】【課題】ＯＰＣコピーにおいて一部のデータが他のボリュームにコピーされない状況の発生を抑制すること。【解決手段】受付部３ａは、第１のボリューム４ａに記憶されたデータＡをデータＣで更新する指示を受け付ける。複写処理部３ｂは、受付部３ａの更新指示の受け付けに応じて第２のボリューム４ｂについてのデータＡの複写を開始し、第１のボリューム４ａに記憶されているデータＡ、Ｂの第２のボリューム４ｂへの複写が完了するまでの間、第２のボリューム４ｂから第３のボリューム４ｃへのデータＡの複写の開始を制限する。【選択図】図１
2013029911.tif 000002
【特許請求の範囲】
【請求項１】
第１のボリュームに記憶された第１のデータを第２のデータで更新する指示を受け付ける受付部と、
前記受付部の更新指示の受け付けに応じて第２のボリュームについての前記第１のデータの複写を開始し、前記第１のボリュームに記憶されているデータの前記第２のボリュームへの複写が完了するまでの間、前記第２のボリュームから第３のボリュームへの前記第１のデータの複写の開始を制限する複写処理部と、
を有することを特徴とする制御装置。
【請求項２】
前記複写処理部は、前記第１のボリュームに記憶されている前記第１のデータの前記第２のボリュームへの複写が完了したとき、前記第１のボリュームの前記第１のデータを前記第２のデータで更新することを許可することを特徴とする請求項１記載の制御装置。
【請求項３】
前記複写処理部は、前記第１のボリュームに記憶されているデータの前記第２のボリュームへの複写が完了すると、前記第２のボリュームに記憶されているデータを前記第３のボリュームへ複写することを許可することを特徴とする請求項１記載の制御装置。
【請求項４】
前記受付部が前記第１のボリュームに記憶されている前記第１のデータを前記第２のデータで更新する指示を受け付けると、
前記複写処理部は、前記第１のデータの前世代の第３のデータが前記第２のボリュームに存在するか否かを判断し、前記第３のデータが前記第２のボリュームに存在する場合、前記第２のボリュームに記憶されている前記第３のデータの前記第３のボリュームへの複写が完了するまで、前記第１のボリュームから前記第２のボリュームへの前記第１のデータの複写の開始を制限することを特徴とする請求項１記載の制御装置。
【請求項５】
前記複写処理部は、前記受付部が前記更新指示を受け付けた時点で前記第１のボリュームに記憶されていたデータの前記第２のボリュームへの複写が完了する前に、前記第１のボリュームに記憶されているデータを複写する指示を受け付けると、新たな第４のボリュームを用意し、用意した前記第４のボリュームに前記第１のボリュームに前記複写する指示を受けた時点で記憶されているデータの複写を開始することを特徴とする請求項１記載の制御装置。
【請求項６】
第１のボリュームに記憶された第１のデータを第２のデータで更新する指示を受け付け、
更新指示の受け付けに応じて第２のボリュームについての前記第１のデータの複写を開始し、前記第１のボリュームに記憶されているデータの前記第２のボリュームへの複写が完了するまでの間、前記第２のボリュームから第３のボリュームへの前記第１のデータの複写の開始を制限する、
ことを特徴とする制御方法。
【請求項７】
データが記憶される複数のボリュームを構成する記憶装置と、前記複数のボリュームと通信回線を介して接続され、前記複数のボリュームへの情報の書き込みを制御する制御装置とを備えるストレージ装置において、
前記制御装置は、
第１のボリュームに記憶された第１のデータを第２のデータで更新する指示を受け付ける受付部と、
前記受付部の更新指示の受け付けに応じて第２のボリュームについての前記第１のデータの複写を開始し、前記第１のボリュームに記憶されているデータの前記第２のボリュームへの複写が完了するまでの間、前記第２のボリュームから第３のボリュームへの前記第１のデータの複写の開始を制限する複写処理部と、
を有することを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、制御方法およびストレージ装置に関する。
【背景技術】
【０００２】
ストレージ装置において、ある時点のボリュームの全データを複製ボリュームにコピーする機能であるＯＰＣ（One Point Copy）が知られている。ＯＰＣでは、必要になった時点でデータを業務ボリュームから複製ボリュームへ論理コピーし、物理コピー完了を待つことなく、業務ボリュームで業務を継続しながら、複製ボリュームをテープ装置へバックアップすることが可能である。
【０００３】
また、バックアップ取得周期（世代周期）毎に記録媒体を切り替えて世代別データのバックアップを行う技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２８４６０９号公報
【特許文献２】特開２００９−２２３５０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＯＰＣでは、原本データを全面コピーする。すなわち、次にバックアップを採取する際には、更新分をコピーするには最初から全面コピーを行う。このため、バックアップ世代を増やす等の目的でボリューム間のＯＰＣが完了する前に、後の世代のＯＰＣを起動すると、一部のデータが他のボリュームにコピーされない状況が発生するという問題がある。
【０００６】
本発明はこのような点に鑑みてなされたものであり、ＯＰＣコピーにおいて一部のデータが他のボリュームにコピーされない状況の発生を抑制する制御装置、制御方法およびストレージ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、開示の制御装置が提供される。この制御装置は、受付部と複写処理部とを有している。
受付部は、第１のボリュームに記憶された第１のデータを第２のデータで更新する指示を受け付ける。
【０００８】
複写処理部は、受付部の更新指示の受け付けに応じて第２のボリュームについての第１のデータの複写を開始し、第１のボリュームに記憶されているデータの第２のボリュームへの複写が完了するまでの間、第２のボリュームから第３のボリュームへの第１のデータの複写の開始を制限する。
【発明の効果】
【０００９】
ＯＰＣコピーにおいて一部のデータが他のボリュームにコピーされない状況の発生を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】第２の実施の形態の制御モジュールの機能を示すブロック図である。
【図４】ＯＰＣ処理部のＯＰＣ処理を説明する図である。
【図５】世代管理情報を説明する図である。
【図６】ＯＰＣ管理情報を説明する図である。
【図７】書き込み要求処理部の処理を説明するフローチャートである。
【図８】ＯＰＣ起動処理を説明するフローチャートである。
【図９】ＯＰＣ処理を説明するフローチャートである。
【図１０】ＯＰＣ処理を説明するフローチャートである。
【図１１】具体例１を説明する図である。
【図１２】具体例１を説明する図である。
【図１３】具体例２を説明する図である。
【図１４】具体例３を説明する図である。
【図１５】具体例３を説明する図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。第１の実施の形態において、開示のストレージ装置の実施の形態について説明し、その後、第２の実施の形態において、開示のストレージ装置をより具体的に説明する。
【００１２】
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ装置を示す図である。
第１の実施の形態のストレージ装置１は、電気通信回線や、光通信回線等を介してホスト装置２に接続されている。
【００１３】
ストレージ装置１は、制御装置（コンピュータ）３と、記憶装置４を有している。記憶装置４は、情報を記憶可能な記憶領域を有する。この記憶装置４は、１つまたは複数のＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）等を有している。
【００１４】
図１の吹き出しの内部は、制御装置３の処理の推移を示している。図１に示すボリューム４ａ、４ｂ、４ｃは、それぞれ記憶装置４の一部の記憶領域によって形成された論理的なボリュームである。ボリューム４ａは、第１のボリュームの一例であり、ボリューム４ｂは、第２のボリュームの一例である。ボリューム４ｃは、第３のボリュームの一例である。
【００１５】
制御装置３は、各ボリューム４ａ、４ｂ、４ｃと非同期の状態を保つ。制御装置３は、例えばボリューム４ａからボリューム４ｂへのデータの複写指示をホスト装置２が受け付けた時点でボリューム４ａに記憶されているデータをボリューム４ｂに複写する。図１に示すボリューム４ａには、第１の世代であるデータＡおよびデータＢが記憶されている。
【００１６】
制御装置３は、受付部３ａと複写処理部３ｂとを有している。受付部３ａおよび複写処理部３ｂは、制御装置３が有する図示しないＣＰＵ（Central Processing Unit）が備える機能により実現することができる。
【００１７】
受付部３ａは、ボリューム４ａに記憶されているデータＡをデータＡの世代より後の第２の世代のデータＣで更新する指示をホスト装置２から受け付ける。
複写処理部３ｂは、受付部３ａの更新指示の受け付けに応じてボリューム４ｂにデータＡおよびデータＢを複写する処理（以下、「第１の複写処理」と言う）を開始する。具体的には、複写処理部３ｂは、ボリューム４ａに記憶されているデータＡおよびデータＢのボリューム４ｂへの複写の進捗状況を示すビットマップ５ａを用意する。ビットマップ５ａの図１中上側のビットは、データＡのボリューム４ｂへの複写（物理コピー）が完了しているか否かを示す値（完了を示す「０」または未完了を示す「１」）が設定される。ビットマップ５ａの図１中下側のビットは、データＢのボリューム４ｂへの複写が完了しているか否かを示す値が設定される。なお、図１では、制御装置３の処理の説明を分かり易くするために、ボリューム４ａの近傍にビットマップ５ａを図示している。
【００１８】
複写処理部３ｂが第１の複写処理を開始した後に、受付部３ａが、ボリューム４ａに記憶されているデータＡをデータＣで更新する指示をホスト装置２から受け付けると、複写処理部３ｂは、ビットマップ５ａのデータＡのコピーの進捗状況を確認する。そして、複写処理部３ｂは、ボリューム４ａに記憶されているデータＡのボリューム４ｂへの複写が完了したことを確認すると、ボリューム４ａのデータＡが記憶されている記憶領域へのデータＣの書き込みを許可する。但し、複写処理部３ｂは、ボリューム４ａに記憶されているデータＡのボリューム４ｂへの複写が完了するまでボリューム４ｂからボリューム４ｃへのデータＡの複写の開始を制限する。データＡの複写の開始を制限することにより、複写が未完了なままボリューム４ｃにデータＡだけが複写されることを抑制することで、データの複写によるデータの世代のずれを抑制することができる。
【００１９】
その後、受付部３ａが、ボリューム４ａに記憶されているデータＢをデータＤで更新する指示をホスト装置２から受け付けると、複写処理部３ｂは、ビットマップ５ａのデータＢのコピーの進捗状況を確認する。そして、複写処理部３ｂは、ボリューム４ａに記憶されているデータＢのボリューム４ｂへの複写が完了したことを確認すると、ボリューム４ａのデータＢが記憶されている記憶領域へのデータＤの書き込みを許可する。
【００２０】
複写処理部３ｂは、ビットマップ５ａを参照し、ボリューム４ａに記憶されている全てのデータＡおよびデータＢのボリューム４ｂへの複写が完了したことを確認すると、ボリューム４ｂの複写先のボリューム４ｃへのデータの複写（「第２の複写処理」）の開始を許可する。また、複写処理部３ｂは、ボリューム４ｂに記憶されているデータＡおよびデータＢの、ボリューム４ｃへのコピーの進捗状況を示すビットマップ５ｂを用意する。
【００２１】
その後、ホスト装置２の指示に応じてボリューム４ａに記憶されているデータＣおよびデータＤを、ボリューム４ｂに複写する処理（「第３の複写処理」）を開始する。複写処理部３ｂは、ボリューム４ａに記憶されているデータＣおよびデータＤの、ボリューム４ｂへのコピーの進捗状況を示すビットマップ５ｃを用意する。
【００２２】
このストレージ装置１によれば、複写が未完了なままボリューム４ｃにデータＡだけがコピーされることを抑制することができる。従って、データの複写によるデータの世代のずれを抑制することができる。
【００２３】
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
ストレージシステム１０００は、ホスト装置３０と、このホスト装置３０にファイバチャネル（ＦＣ：Fibre Channel）スイッチ３１を介して接続されたストレージ装置１００とを有している。なお、図２では１つのホスト装置３０がストレージ装置１００に接続されているが、複数のホスト装置が、ストレージ装置１００に接続されていてもよい。
【００２４】
ストレージ装置１００は、それぞれが複数のＨＤＤ２０を備えるドライブエンクロージャ（ＤＥ：Drive Enclosure）２０ａと、このドライブエンクロージャ２０ａの物理記憶領域をＲＡＩＤ（Redundant Arrays of Inexpensive/Independent Disks）によって管理する制御モジュール（ＣＭ：Controller Module）１０ａ、１０ｂとを有している。なお、本実施の形態では、ドライブエンクロージャ２０ａが備える記憶媒体としては、ＨＤＤ２０を例示したが、ＨＤＤ２０に限らず、ＳＳＤ等、他の記憶媒体を用いてもよい。以下、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０を区別しない場合は、「ＨＤＤ２０群」と言う。ＨＤＤ２０群の総容量は、例えば６００ＧＢ（Giga Byte）〜２４０ＴＢ（Tera Byte）である。
【００２５】
ストレージ装置１００は、制御モジュール１０ａ、１０ｂを運用に使用することで、冗長性が確保されている。なお、ストレージ装置１００が備える制御モジュールの数は、２つに限定されず、３つ以上の制御モジュールにより冗長性が確保されていてもよいし、制御モジュール１０ａのみを使用した構成であってもよい。
【００２６】
制御モジュール１０ａ、１０ｂは、それぞれ制御装置の一例であり、制御モジュール１０ａ、１０ｂは、それぞれ同じハードウェア構成によって実現される。
制御モジュール１０ａ、１０ｂは、それぞれ、ホスト装置３０からのデータアクセス要求に応じてドライブエンクロージャ２０ａが有するＨＤＤ２０の物理記憶領域へのデータアクセスをＲＡＩＤによって制御する。
【００２７】
制御モジュール１０ａ、１０ｂは、それぞれ同じハードウェア構成によって実現されるため、代表的に、制御モジュール１０ａのハードウェア構成を説明する。
制御モジュール１０ａは、ＣＰＵ１０１と、ＲＡＭ（Random Access Memory）１０２と、フラッシュＲＯＭ（Read Only Memory）１０３と、キャッシュメモリ１０４と、チャネルアダプタ（ＣＡ：Channel Adapter）１０５ａと、デバイスインタフェース（ＤＩ：Device Interface）１０６ａ、１０６ｂとを備えている。
【００２８】
ＣＰＵ１０１は、フラッシュＲＯＭ１０３等に記憶されたプログラムを実行することにより、制御モジュール１０ａ全体を統括的に制御する。ＲＡＭ１０２は、ＣＰＵ１０１に実行させるプログラムの少なくとも一部や、プログラムによる処理に必要な各種データを一時的に記憶する。フラッシュＲＯＭ１０３は、不揮発性のメモリであり、ＣＰＵ１０１により実行されるプログラムや、プログラムの実行に必要な各種のデータ等を記憶する。
【００２９】
また、フラッシュＲＯＭ１０３は、ストレージ装置１００の停電時等にキャッシュメモリ１０４に記憶されているデータの退避先となる。
キャッシュメモリ１０４は、ＨＤＤ２０群に書き込まれているデータやＨＤＤ２０群から読み出したデータを一時的に記憶する。
【００３０】
そして、制御モジュール１０ａは、例えばホスト装置３０からのデータ読み出し命令を受けたときに、読み出し対象のデータがキャッシュメモリ１０４に記憶されているか否かを判断する。読み出し対象のデータがキャッシュメモリ１０４に記憶されていれば、制御モジュール１０ａは、キャッシュメモリ１０４に記憶されている読み出し対象のデータをホスト装置３０に送る。読み出し対象のデータをＨＤＤ２０群から読み出す場合に比べ、データを迅速にホスト装置３０に送ることができる。
【００３１】
また、キャッシュメモリ１０４には、ＣＰＵ１０１による処理に必要なデータが一時的に記憶されてもよい。このキャッシュメモリ１０４としては、例えば、ＳＲＡＭ（Static Random Access Memory）等の揮発性の半導体装置が挙げられる。また、キャッシュメモリ１０４の記憶容量は、特に限定されないが、一例として２〜６４ＧＢ程度である。
【００３２】
チャネルアダプタ１０５ａは、ファイバチャネルスイッチ３１に接続され、ファイバチャネルスイッチ３１を介してホスト装置３０のチャネルに接続される。チャネルアダプタ１０５ａは、ホスト装置３０と制御モジュール１０ａとの間でデータを送受信するインタフェース機能を提供する。
【００３３】
デバイスインタフェース１０６ａ、１０６ｂは、ドライブエンクロージャ２０ａに接続されている。このデバイスインタフェース１０６ａ、１０６ｂは、ドライブエンクロージャ２０ａが備えるＨＤＤ２０群とキャッシュメモリ１０４との間でデータを送受信するインタフェース機能を提供する。制御モジュール１０ａは、デバイスインタフェース１０６ａ、１０６ｂを介してドライブエンクロージャ２０ａが備えるＨＤＤ２０群との間でデータの送受信を行う。
【００３４】
制御モジュール１０ａ、１０ｂは、ルータ３２を介して互いに接続されている。例えば、ＨＤＤ２０群に書き込みを要求するデータがホスト装置３０からチャネルアダプタ１０５ａを介して制御モジュール１０ａに送信されると、ＣＰＵ１０１は、受信したデータをキャッシュメモリ１０４に格納する。また、ＣＰＵ１０１はデータの格納と共に、受信したデータを、ルータ３２を介して制御モジュール１０ｂに送信する。そして、制御モジュール１０ｂは、制御モジュール１０ｂが有するＣＰＵが受信したデータを制御モジュール１０ｂが有するキャッシュメモリに格納する。この処理によって、制御モジュール１０ａ内のキャッシュメモリ１０４と制御モジュール１０ｂ内のキャッシュメモリとに同一のデータが記憶される。
【００３５】
ドライブエンクロージャ２０ａには、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０のうち、１つ、または複数のＨＤＤ２０により構成されたＲＡＩＤグループが形成されている。このＲＡＩＤグループは、「論理ボリューム」「仮想ディスク」「ＲＬＵ（RAID Logical Unit）」等と呼ばれる場合もある。
【００３６】
図２では、ＲＡＩＤ５を構成する２つのＲＡＩＤグループ２１、２２を示している。なお、ＲＡＩＤグループ２１、２２のＲＡＩＤ構成は、一例であり、図示のＲＡＩＤ構成に限定されない。例えば、ＲＡＩＤグループ２１、２２は、任意の個数のＨＤＤ２０を有することができる。また、ＲＡＩＤグループ２１、２２は、ＲＡＩＤ６等、任意のＲＡＩＤ方式で構成することができる。
【００３７】
次に、制御モジュール１０ａの機能を説明する。
図３は、第２の実施の形態の制御モジュールの機能を示すブロック図である。
制御モジュール１０ａは、論理ボリューム作成部１１と、世代管理情報格納部１２と、書き込み要求処理部１３と、ＯＰＣ処理部１４と、ＯＰＣ管理情報格納部１５とを有している。なお、書き込み要求処理部１３は、受付部の一例であり、ＯＰＣ処理部１４は、複写処理部の一例である。
【００３８】
ストレージ装置１００は、ドライブエンクロージャ２０ａが有する一部または全部のＨＤＤ２０で構成されたストレージプール（仮想的な記憶領域）２０ｂを備えている。
論理ボリューム作成部１１は、ＯＰＣ処理部１４が発行した論理ボリューム作成指示に応じてストレージプール２０ｂの記憶領域の一部を割り当てた論理ボリュームを作成する。論理ボリューム作成部１１は、ＨＤＤ２０の物理的な境界に制約されることなくストレージプール２０ｂの容量を割り当てた論理ボリュームを作成することができる。図３では、論理ボリューム４１、４２、４３が作成されている。
【００３９】
世代管理情報格納部１２には、ＲＡＩＤグループ２１、２２に記憶されているデータの世代を管理する情報（世代管理情報）が格納されている。なお、世代管理情報については後に詳述する。
【００４０】
書き込み要求処理部１３は、ホスト装置３０が発行するデータの書き込み要求を確認すると、書き込み要求に含まれるデータを書き込む箇所を特定する情報（例えば、ＬＢＡ（Logical Block Address）等）に基づいて、データ書き込み対象の論理ボリュームおよび書き込み対象領域を特定する。そして、書き込み要求処理部１３は、データ書き込み対象の論理ボリュームを含むＯＰＣセッション（ＯＰＣを実行するセッション）が確立されているか否かを判断する。データ書き込み対象の論理ボリュームを含むＯＰＣセッションが確立されている場合、ＯＰＣおいてコピー対象領域を特定するビットマップのビットが「１」（コピー未完了）から「０」（コピー完了）に設定されるのを待機する。データ書き込み対象ビットマップのビットが「０」に設定されると、書き込み要求処理部１３は、ホスト装置３０が書き込みを要求したデータを、書き込み対象の論理ボリュームの特定した書き込み対象領域に書き込む。
【００４１】
ＯＰＣ処理部１４は、ホスト装置３０が発行するＯＰＣ起動要求に応じて論理ボリューム間のＯＰＣセッションを確立し、ＯＰＣを実行する。そして、コピー対象領域のコピーが完了すると、完了したコピー対象領域のビットマップのビットを「０」に設定する。
【００４２】
また、ＯＰＣ処理部１４は、複数の世代においてＯＰＣセッションが確立されている場合、ある世代（当該世代）のデータのＯＰＣを開始する前に、１つ前の世代のデータのコピーが完了したことを確認した後に当該世代のデータのＯＰＣを開始する。この処理により、コピー対象のデータの一部だけがコピーされた論理ボリュームをコピー元とするＯＰＣが開始されることを抑制することができる。
【００４３】
ＯＰＣ管理情報格納部１５には、ＯＰＣセッションを確立している論理ボリュームに関する情報が格納されている。
以上、制御モジュール１０ａの機能を説明したが、制御モジュール１０ｂも制御モジュール１０ａと同様の機能を有している。
【００４４】
次に、ＯＰＣ処理を説明する。
図４は、ＯＰＣ処理部のＯＰＣ処理を説明する図である。
図４（ａ）では、第１の世代のデータＡ、Ｂが論理ボリューム４３に記憶されており、第２の世代のデータＣ、Ｄが論理ボリューム４２に記憶されており、第３の世代のデータＥ、Ｆが論理ボリューム４１に記憶されている。
【００４５】
ここで、第１の世代のデータＡ、Ｂは、当初論理ボリューム４１に記憶されていたが、ホスト装置３０からのデータＣ、Ｄの書き込み要求に応じてＯＰＣ処理部１４がＯＰＣを実行することにより論理ボリューム４２にコピーされ、さらに、ホスト装置３０からのデータＥ、Ｆの書き込み要求に応じてＯＰＣ処理部１４がＯＰＣを実行することにより論理ボリューム４３にコピーされたデータである。
【００４６】
第２の世代のデータＣ、Ｄは、ホスト装置３０からのデータＣ、Ｄの書き込み要求に応じて書き込み要求処理部１３が処理を行った結果、論理ボリューム４１に書き込まれ、その後、ホスト装置３０からのデータＥ、Ｆの書き込み要求に応じてＯＰＣ処理部１４がＯＰＣを実行することにより論理ボリューム４２にコピーされたデータである。
【００４７】
第３の世代のデータＥ、Ｆは、ホスト装置３０からのデータＥ、Ｆの書き込み要求に応じて書き込み要求処理部１３が書き込み処理を行った結果、論理ボリューム４１に書き込まれたデータである。
【００４８】
本実施の形態では、データＡ、Ｂから見たデータＣ、ＤおよびデータＣ、Ｄから見たデータＡ、Ｂをそれぞれ横世代のデータと言う。また、データＡ、Ｂから見たデータＣ、Ｄを後横世代のデータと言う。データＣ、Ｄから見たデータＡ、Ｂを前横世代のデータと言う。
【００４９】
図４（ｂ）では、第１の世代のデータＡ、Ｂが論理ボリューム４２に記憶されており、第１の世代のデータＢおよび第２の世代のデータＣが論理ボリューム４３に記憶されており、第３の世代のデータＤ、Ｅが論理ボリューム４１に記憶されている。
【００５０】
ここで、論理ボリューム４２に記憶されている第１の世代のデータＡ、Ｂは、当初論理ボリューム４１に記憶されていたが、ホスト装置３０からのデータＤ、Ｅの書き込み要求に応じてＯＰＣ処理部１４がＯＰＣを実行することにより論理ボリューム４２にコピーされたデータである。
【００５１】
また、論理ボリューム４３に記憶されている第１の世代のデータＢおよび第２の世代のデータＣは、第１の世代のデータＡ、Ｂの論理ボリューム４２へのＯＰＣ実行中に、ホスト装置３０の要求によりＯＰＣ処理部１４がＯＰＣを実行することにより論理ボリューム４１に書き込まれたデータＣと当初論理ボリューム４１に記憶されていたデータＢとが論理ボリューム４２にコピーされたデータである。
【００５２】
第３の世代のデータＤ、Ｅは、ホスト装置３０からのデータＤ、Ｅの書き込み要求に応じて書き込み要求処理部１３が処理を行った結果、論理ボリューム４１に書き込まれたデータである。
【００５３】
本実施の形態では、データＡ、Ｂから見たデータＣ、ＢおよびデータＣ、Ｂから見たデータＡ、Ｂを縦世代のデータと言う。また、データＡ、Ｂから見たデータＣ、Ｂを後縦世代のデータと言う。データＣ、Ｂから見たデータＡ、Ｂを前縦世代のデータと言う。
【００５４】
図５は、世代管理情報を説明する図である。
世代管理情報格納部１２には、データの世代を管理する情報がテーブル化して格納されている。
【００５５】
図５に示す世代管理テーブル１２ａには、ＯＬＵ番号（OLU＿NUMBER）、世代番号（GENERATION＿NUMBER）、割り込み世代番号（INTERRUPT＿GENERARION＿NUMBER）、プール番号（POOL＿NUMBER）、プール内物理ボリューム番号（POOL＿SSLU＿NUMBER）、全世代数（TOTAL＿GENERATION）、全横世代数（TOTAL＿WIDTH＿GENERATION）、全縦世代数（TOTAL＿HEIGHT＿GENERATION）、前横世代番号（PREV＿WIDTH＿GENERATION＿OLU＿NUMBER）、後横世代番号（NEXT＿WIDTH＿GENERATION＿OLU＿NUMBER）、前縦世代番号（PREV＿HEIGHT＿GENERATION＿OLU＿NUMBER）、および後縦世代番号（NEXT＿HEIGHT＿GENERATION＿OLU＿NUMBER）が設定されている。
【００５６】
ＯＬＵ番号の欄には、当該世代のデータが格納されている論理ボリュームを、ホスト装置３０が識別可能な番号が設定される。
世代番号の欄には、世代を識別する番号が設定される。この世代番号は、ホスト装置３０から書き込み要求処理部１３がデータを受け付ける際に、書き込み要求処理部１３が設定する。
【００５７】
割り込み世代番号の欄は、後述する割り込み処理により当該世代が作成された場合、当該世代が縦世代であることを示す番号が設定される。例えば、図４（ｂ）では、論理ボリューム４３に記憶されているデータＣ、Ｂは、論理ボリューム４２に記憶されているデータＡ、Ｂに対し、割り込み世代の関係にある。
【００５８】
プール番号の欄には、ストレージプール２０ｂを識別する番号が設定される。
プール内物理ボリューム番号の欄には、ストレージプール２０ｂ内に存在するＲＡＩＤグループを識別する番号が設定される。
【００５９】
全世代数の欄には、当該世代のデータより古い世代のデータの数が設定される。
全横世代数の欄には、当該世代を含み、横方向の世代の数が設定される。
全縦世代数の欄には、当該世代を含み、縦方向の世代の数が設定される。
【００６０】
前横世代番号の欄には、当該世代の１つ前の横世代の世代番号が設定される。当該世代の１つ前の横世代が存在しない場合は、当該欄は空欄である。
後横世代番号の欄には、当該世代の１つ後の横世代の世代番号が設定される。当該世代の１つ後の横世代が存在しない場合は、当該欄は空欄である。
【００６１】
前縦世代番号の欄には、当該世代の１つ前の縦世代の世代番号が設定される。当該世代の１つ前の縦世代が存在しない場合は、当該欄は空欄である。
後縦世代番号の欄には、当該世代の１つ後の縦世代の世代番号が設定される。当該世代の１つ後の縦世代が存在しない場合は、当該欄は空欄である。
【００６２】
次に、ＯＰＣ管理情報格納部１５に格納されているＯＰＣ管理情報を説明する。
図６は、ＯＰＣ管理情報を説明する図である。
世代管理情報格納部１２には、ＯＰＣ管理情報がテーブル化して格納されている。
【００６３】
図６に示すＯＰＣ管理テーブル１５ａには、セッション名、コピー元論理ボリューム名、コピー先論理ボリューム名、およびビットマップの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００６４】
セッション名の欄には、ＯＰＣセッションを識別する名前が設定されている。
コピー元論理ボリューム名の欄には、ＯＰＣセッションを確立するデータコピー元の論理ボリュームのＯＬＵ番号が設定される。
【００６５】
コピー先論理ボリューム名の欄には、ＯＰＣセッションを確立するデータコピー先の論理ボリュームのＯＬＵ番号が設定される。
ビットマップの欄には、ＯＰＣの進捗を識別する情報が、記憶領域毎に設定される。ＯＰＣ処理部１４は、ホスト装置３０からコピー元論理ボリュームを特定したＯＰＣ起動許可を受け付けると、ＯＰＣ管理テーブル１５ａの、受け付けたコピー元論理ボリュームに対応するビットマップ中の全てのビットを「１」に設定し、ＯＰＣを開始する。
【００６６】
次に、書き込み要求処理部１３の処理を、フローチャートを用いて説明する。
図７は、書き込み要求処理部の処理を説明するフローチャートである。
［ステップＳ１］  書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照し、ホスト装置３０が指定したデータ書き込み先の論理ボリューム（以下、図７の説明において「当該論理ボリューム」と言う）に他の論理ボリュームとのＯＰＣセッションが設定されているか否かを判断する。当該論理ボリュームに他の論理ボリュームとのＯＰＣセッションが設定されている場合（ステップＳ１のＹｅｓ）、ステップＳ２に遷移する。当該論理ボリュームに他の論理ボリュームとのＯＰＣセッションが設定されていない場合（ステップＳ１のＮｏ）、ステップＳ４に遷移する。
【００６７】
［ステップＳ２］  書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのビットマップの欄を参照し、書き込み要求に含まれる書き込み対象領域に対応するビットマップのビットが「０」か否かを判断する。書き込み要求に含まれる書き込み対象領域に対応するビットマップのビットが「０」である場合（ステップＳ２のＹｅｓ）、ステップＳ４に遷移する。書き込み要求に含まれる書き込み対象領域に対応するビットマップのビットが「０」ではない場合（ステップＳ２のＮｏ）、ステップＳ３に遷移する。
【００６８】
［ステップＳ３］  書き込み要求処理部１３は、書き込み要求をキューに並ばせて５秒待機させる。なお、５秒は一例である。５秒経過した後に、ステップＳ２に遷移する。
［ステップＳ４］  書き込み要求処理部１３は、書き込み要求のデータの書き込み対象領域への書き込みを開始する。書き込みが完了すると、ステップＳ５に遷移する。
【００６９】
［ステップＳ５］  書き込み要求処理部１３は、ステップＳ４にて書き込んだデータに関する世代管理テーブル１２ａを作成する。また、当該書き込みに関連する他の世代管理テーブル１２ａの内容を更新する。その後、図７の処理を終了する。
【００７０】
次に、ＯＰＣ処理部１４のＯＰＣ起動処理を説明する。
図８は、ＯＰＣ起動処理を説明するフローチャートである。
［ステップＳ１０］  ＯＰＣ処理部１４は、コピー先の論理ボリュームが存在するか否かを判断する。具体的には、ＯＰＣ処理部１４は、世代管理テーブル１２ａの前横世代番号の欄を参照し、前横世代番号が存在する場合、コピー先の論理ボリュームが存在すると判断する。コピー先の論理ボリュームが存在する場合（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。コピー先の論理ボリュームが存在しない場合（ステップＳ１０のＮｏ）、ステップＳ１２に遷移する。
【００７１】
［ステップＳ１１］  ＯＰＣ処理部１４は、コピー元論理ボリュームのビットマップを参照し、コピー元論理ボリュームに未コピー領域（ビットマップのビットが「１」の領域）が存在するか否かを判断する。コピー元論理ボリュームに未コピー領域が存在する場合（ステップＳ１１のＹｅｓ）、割り込み処理を実行するためにステップＳ１２に遷移する。コピー元論理ボリュームに未コピー領域が存在しない場合（ステップＳ１１のＮｏ）、ステップＳ１５に遷移する。
【００７２】
［ステップＳ１２］  ＯＰＣ処理部１４は、ストレージプール２０ｂから新たな論理ボリュームを割り当てるよう論理ボリューム作成部１１に依頼する。その後、ステップＳ１３に遷移する。
【００７３】
［ステップＳ１３］  ＯＰＣ処理部１４は、ステップＳ１２の依頼に基づいて論理ボリューム作成部１１が作成した新たな論理ボリュームの論理ボリューム番号、コピー元論理ボリュームとの関係および割り込み世代番号を設定した世代管理テーブル１２ａを作成する。その後、ステップＳ１４に遷移する。
【００７４】
［ステップＳ１４］  ＯＰＣ処理部１４は、ステップＳ１３にて作成した世代管理テーブル１２ａの内容を、既存の世代管理テーブル１２ａに反映させる。具体的には、ＯＰＣ処理部１４は、コピー元論理ボリュームに記憶されているデータに対応する世代管理テーブル１２ａの前横世代の欄を参照する。そして、ＯＰＣ処理部１４は、前横世代の欄に設定された前横世代番号に一致する番号が自世代番号に設定された世代管理テーブル１２ａの後横世代番号の欄に、作成した世代管理テーブル１２ａの世代番号を設定する。その後、ステップＳ１５に遷移する。
【００７５】
［ステップＳ１５］  ＯＰＣ処理部１４は、ホスト装置３０が指定した論理ボリュームをコピー元論理ボリュームとするＯＰＣセッションを確立してＯＰＣを開始し、コピー対象領域のビットマップのビットをセットする。その後、ステップＳ１６に遷移する。
【００７６】
［ステップＳ１６］  ＯＰＣ処理部１４は、ステップＳ１５にて開始したＯＰＣに関する情報を設定したレコードをＯＰＣ管理テーブル１５ａに追加する。その後、ステップＳ１７に遷移する。
【００７７】
［ステップＳ１７］  ＯＰＣ処理部１４は、ＯＰＣ処理を行う。なお、ＯＰＣ処理については後に詳述する。ＯＰＣ処理が終了すると、図８の処理を終了する。
以上でＯＰＣ起動処理の説明を終了する。
【００７８】
次に、ステップＳ１７のＯＰＣ処理を説明する。
図９および図１０は、ＯＰＣ処理を説明するフローチャートである。
［ステップＳ１７ａ］  ＯＰＣ処理部１４は、コピー元論理ボリュームに記憶されているコピー対象領域のデータを処理対象データに設定する。その後、ステップＳ１７ｂに遷移する。
【００７９】
［ステップＳ１７ｂ］  ＯＰＣ処理部１４は、ステップＳ１７ａにて設定した処理対象データに対応する世代管理テーブル１２ａの前横世代の欄を参照し、処理対象データの前横世代のデータが存在するか否かを判断する。処理対象データの前横世代のデータが存在する場合（ステップＳ１７ｂのＹｅｓ）、ステップＳ１７ｃに遷移する。処理対象データの前横世代のデータが存在しない場合（ステップＳ１７ｂのＮｏ）、図１０のステップＳ１７ｄに遷移する。
【００８０】
［ステップＳ１７ｃ］  ＯＰＣ処理部１４は、処理対象データの識別情報をバッファに一時記憶し、処理対象データの前横世代のデータを新たな処理対象データに設定する。その後、ステップＳ１７ｂに遷移する。
【００８１】
［ステップＳ１７ｄ］  ＯＰＣ処理部１４は、処理対象データのコピーが完了するのを待機する。その後、ステップＳ１７ｅに遷移する。
［ステップＳ１７ｅ］  ＯＰＣ処理部１４は、コピーが完了したコピー対象領域のビットマップのビットを「０」に設定する。その後、ステップＳ１７ｆに遷移する。
【００８２】
［ステップＳ１７ｆ］  ＯＰＣ処理部１４は、処理対象データに対応する世代管理テーブル１２ａの縦世代の欄を参照し、処理対象データの縦世代のデータが存在するか否かを判断する。処理対象データの縦世代のデータが存在する場合（ステップＳ１７ｆのＹｅｓ）、ステップＳ１７ｇに遷移する。処理対象データの縦世代のデータが存在しない場合（ステップＳ１７ｆのＮｏ）、ステップＳ１７ｉに遷移する。
【００８３】
［ステップＳ１７ｇ］  ＯＰＣ処理部１４は、ＯＰＣ管理テーブル１５ａの各レコードを参照し、処理対象データの全ての縦世代のデータについてコピーが完了したか否かを判断する。具体的には、ＯＰＣ処理部１４は、縦世代のデータに関するＯＰＣセッションが、ＯＰＣ管理テーブル１５ａに設定されているか否かを判断する。処理対象データの全ての縦世代のデータについてコピーが完了した場合（ステップＳ１７ｇのＹｅｓ）、ステップＳ１７ｉに遷移する。処理対象データの全ての縦世代のデータについてコピーが完了していない場合（ステップＳ１７ｇのＮｏ）、ステップＳ１７ｈに遷移する。
【００８４】
［ステップＳ１７ｈ］  ＯＰＣ処理部１４は、未処理の縦世代のデータを新たな処理対象データとする。その後、図９のステップＳ１７ｂに遷移し、ステップＳ１７ｂ以降の処理を引き続き行う。
【００８５】
［ステップＳ１７ｉ］  ＯＰＣ処理部１４は、ビットマップを参照し、全領域のコピーが完了したＯＰＣセッションが存在するか否か判断する。全領域のコピーが完了したＯＰＣセッションが存在する場合（ステップＳ１７ｉのＹｅｓ）、ステップＳ１７ｊに遷移する。全領域のコピーが完了したＯＰＣセッションが存在しない場合（ステップＳ１７ｉのＮｏ）、ステップＳ１７ｄに遷移する。
【００８６】
［ステップＳ１７ｊ］  ＯＰＣ処理部１４は、処理対象データの識別情報がバッファに存在するか否か、すなわち、図９のステップＳ１７ｃにて一時記憶した識別情報が存在するか否かを判断する。識別情報がバッファに存在する場合（ステップＳ１７ｊのＹｅｓ）、ステップＳ１７ｋに遷移する。識別情報がバッファに存在しない場合（ステップＳ１７ｊのＮｏ）、ステップＳ１７ｐに遷移する。
【００８７】
［ステップＳ１７ｋ］  ＯＰＣ処理部１４は、コピーが完了したＯＰＣセッションを停止する。また、ＯＰＣ処理部１４は、ＯＰＣ管理テーブル１５ａの、ＯＰＣセッションを停止したセッション名に一致するレコードを削除する。その後、ステップＳ１７ｍに遷移する。
【００８８】
［ステップＳ１７ｍ］  ＯＰＣ処理部１４は、バッファに記憶された識別情報により識別されるデータを処理対象データとする。その後、ステップＳ１７ｎに遷移する。
［ステップＳ１７ｎ］  ＯＰＣ処理部１４は、処理対象データのＯＰＣを開始する。その後、図９のステップＳ１７ｄに遷移する。
【００８９】
［ステップＳ１７ｐ］  ＯＰＣ処理部１４は、コピーが完了したコピー先論理ボリュームをコピー元論理ボリュームとするＯＰＣの開始をホスト装置３０に依頼する。その後、ステップＳ１７ｑに遷移する。
【００９０】
［ステップＳ１７ｑ］  ＯＰＣ処理部１４は、コピーが完了したＯＰＣセッションを停止する。また、ＯＰＣ処理部１４は、ＯＰＣ管理テーブル１５ａの、ＯＰＣセッションを停止したセッション名に一致するレコードを削除する。その後、ＯＰＣ処理を終了する。
【００９１】
以上でＯＰＣ処理の説明を終了する。
図９、図１０のＯＰＣ処理では、全領域のＯＰＣが完了した場合、コピーが完了したコピー先論理ボリュームをコピー元論理ボリュームとするＯＰＣの開始をホスト装置３０に依頼する。従って、コピー対象のデータの一部だけがコピーされた論理ボリュームをコピー元とするＯＰＣが開始されることを抑制することができる。また、前の世代のデータのＯＰＣが完了した後に、後の世代のＯＰＣを開始するので、ＯＰＣ間におけるデータコピーを開始するタイミングの連携を取ることができる。
【００９２】
以下、書き込み要求処理部１３およびＯＰＣ処理部１４が実行する処理を、具体例を用いて説明する。
＜具体例１＞
図１１および図１２は、具体例１を説明する図である。
【００９３】
図１１では、書き込み要求処理部１３の処理が図１１（ａ）、図１１（ｂ）、図１１（ｃ）、図１１（ｄ）の順に遷移している様子を示している。
図１１（ａ）は、ＯＰＣ処理部１４が、ホスト装置３０のＯＰＣ起動要求に応じて論理ボリューム４１と論理ボリューム４２との間にＯＰＣセッション名がＯＰＣ１のＯＰＣセッション（以下、ＯＰＣセッションＯＰＣ１と言う）を確立し、書き込み要求処理部１３が論理ボリューム４１に記憶されている全てのデータＡ、Ｂを論理ボリューム４２にコピーを行っている状態を示している。なお、図１１（ａ）に示すビットマップＢ１は、ＯＰＣ管理テーブル１５ａのセッション名がＯＰＣ１のビットマップの欄に設定されたビットマップに対応する。また、図１１（ａ）では、ＯＰＣセッションＯＰＣ１のＯＰＣを実行している状態を「ＯＰＣ１実行中」と表記する。この状態で、書き込み要求処理部１３が、論理ボリューム４１のデータＡが記憶されている領域にデータＣを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１１に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ１が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ１のビットマップの欄を５秒毎に参照し、データＡのビットマップのビットが「０」に設定されるまで待機する（ステップＳ２、Ｓ３の処理）。
【００９４】
ＯＰＣセッションＯＰＣ１を用いたデータＡのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４１のデータＡが記憶されている領域に対応するビットマップＢ１のビットを「１」から「０」に設定する（ステップＳ１７ｅの処理）。ビットマップのビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＡが記憶されている領域にデータＣの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【００９５】
その後、図１１（ｂ）に示すように、書き込み要求処理部１３が、論理ボリューム４１のデータＢが記憶されている領域にデータＤを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１１（ｂ）に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ１が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ１のビットマップの欄を参照し、データＢのビットマップのビットが「０」に設定されるまで待機する（ステップＳ２、Ｓ３の処理）。
【００９６】
その後、図１１（ｃ）に示すように、データＢのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４１のデータＢが記憶されている領域に対応するビットマップＢ１のビットを「１」から「０」に設定する（ステップＳ１７ｅの処理）。ビットマップのビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＢが記憶されている領域にデータＤの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【００９７】
また、ＯＰＣ処理部１４は、ビットマップＢ１の全てのビットが「０」であることを確認すると（ステップＳ１７ｉのＹｅｓの処理）、ＯＰＣ管理テーブル１５ａを参照し、セッション名ＯＰＣ１のコピー先論理ボリューム名の欄に設定された論理ボリューム名「ＯＬＵ２」をコピー元論理ボリュームとするＯＰＣセッションの確立をホスト装置３０に要求する（ステップＳ１７ｐの処理）。その後、ＯＰＣ処理部１４は、ＯＰＣ管理テーブル１５ａからセッション名ＯＰＣ１のレコードを削除する（ステップＳ１７ｑの処理）。
【００９８】
その後、ＯＰＣ処理部１４は、ＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４２から論理ボリューム４３へのデータコピー要求を受け付けると、ＯＰＣ起動処理を行う。具体的には、ＯＰＣ処理部１４は、論理ボリューム４２と論理ボリューム４３との間にＯＰＣセッション名がＯＰＣ２であるＯＰＣセッションＯＰＣ２を確立し、ビットマップＢ２を用意する（ステップＳ１５の処理）。また、確立したＯＰＣセッションＯＰＣ２に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【００９９】
その後、ＯＰＣ処理部１４は、論理ボリューム４１から論理ボリューム４２へのデータコピー要求をホスト装置３０から受け付けると、ＯＰＣ起動処理を行う。具体的には、ＯＰＣ処理部１４は、論理ボリューム４１と論理ボリューム４２との間にＯＰＣセッション名がＯＰＣ３であるＯＰＣセッションＯＰＣ３を確立し、ビットマップＢ３を用意する（ステップＳ１５の処理）。また、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ３に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ３を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１００】
その後、書き込み要求処理部１３が、論理ボリューム４１のデータＣが記憶されている領域にデータＥを上書きする書き込み要求、および論理ボリューム４１のデータＤが記憶されている領域にデータＦを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄およびコピー先論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１１（ｄ）に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ３が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ３のビットマップの欄を参照し、データＣおよびデータＤのビットマップのビットがいずれも「０」に設定されるのを待機する（ステップＳ２、Ｓ３の処理）。
【０１０１】
ところで、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ３のＯＰＣを行う際に、まず、データＣおよびデータＤを処理対象データに設定する（ステップＳ１７ａの処理）。ＯＰＣ処理部１４は、処理対象データの前横世代のデータが存在するか否かを判断すると（ステップＳ１７ｂの処理）、データＡおよびデータＢが存在する。このため、ＯＰＣ処理部１４は、データＡおよびデータＢを処理対象データとする（ステップＳ１７ｃの処理）。データＡおよびデータＢの前横世代のデータは存在しないので、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２を用いたデータＡおよびデータＢのコピーの完了を待機する（ステップＳ１７ｄの処理）。ＯＰＣセッションＯＰＣ２を用いたデータＡおよびデータＢコピーが完了すると、ＯＰＣ処理部１４は、論理ボリューム４２のデータＡおよびデータＢが記憶されている領域に対応するビットマップＢ２のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。論理ボリューム４２のデータＡおよびデータＢが記憶されている領域に対応するビットマップＢ２のビットが「１」から「０」に更新されることにより、ＯＰＣ処理部１４は、論理ボリューム４１のデータＣが記憶されている領域にデータＥの上書きが可能となる。また、ＯＰＣ処理部１４は、論理ボリューム４１のデータＤが記憶されている領域にデータＦの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【０１０２】
ＯＰＣセッションＯＰＣ２を用いた全領域のコピーが完了したので、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２のコピー先の論理ボリューム４３をＯＰＣセッション元とするＯＰＣコピーの開始をホスト装置３０に依頼する（ステップＳ１７ｐの処理）。その後、ＯＰＣ処理部１４は、５秒以上待機した後に、ＯＰＣ管理テーブル１５ａからセッション名ＯＰＣ２のレコードを削除する。
【０１０３】
その後、ＯＰＣ処理部１４は、データＣおよびデータＤを処理対象データに設定する（ステップＳ１７ｍの処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ３を用いたデータＣおよびデータＤのコピーの完了を待機する（ステップＳ１７ｄの処理）。
【０１０４】
ＯＰＣセッションＯＰＣ３を用いたデータＣおよびデータＤのコピーが完了すると、ＯＰＣ処理部１４は、論理ボリューム４１のデータＣおよびデータＤが記憶されている領域に対応するビットマップＢ３のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。論理ボリューム４１のデータＣおよびデータＤが記憶されている領域に対応するビットマップＢ３のビットが「１」から「０」に更新されることにより、ＯＰＣ処理部１４は、論理ボリューム４１のデータＣが記憶されている領域にデータＥの上書きが可能となる。また、ＯＰＣ処理部１４は、論理ボリューム４１のデータＤが記憶されている領域にデータＦの上書きが可能となる。
【０１０５】
ＯＰＣセッションＯＰＣ３を用いた全領域のコピーが完了したので、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ３のコピー先の論理ボリューム４２をＯＰＣセッション元とするＯＰＣコピーの開始をホスト装置３０に依頼する（ステップＳ１７ｐの処理）。その後、ＯＰＣ処理部１４は、５秒以上待機した後に、ＯＰＣ管理テーブル１５ａからセッション名ＯＰＣ３のレコードを削除する（ステップＳ１７ｑの処理）。
【０１０６】
ところで、ＯＰＣ処理部１４は、ＯＰＣ処理部１４自身が発行した論理ボリューム４３をＯＰＣセッション元とするＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４３のデータコピー要求を受け付けると、ＯＰＣ起動処理を実行する。具体的には、ＯＰＣ処理部１４は、コピー先論理ボリュームが存在しないので（ステップＳ１０の処理）ストレージプール２０ｂからの新しい論理ボリュームの割り当てを論理ボリューム作成部１１に依頼する（ステップＳ１２の処理）。論理ボリューム作成部１１は、ＯＰＣ処理部１４の依頼に応じて図１２に示すように論理ボリューム４４を作成する。ＯＰＣ処理部１４は、作成した論理ボリューム４４と論理ボリューム４３との関係を世代管理テーブル１２ａに登録する（ステップＳ１３の処理）。また、ＯＰＣ処理部１４は、コピー先の世代管理テーブル１２ａを更新する（ステップＳ１４の処理）。そして、ＯＰＣ処理部１４は、論理ボリューム４３と論理ボリューム４４との間にＯＰＣセッション名がＯＰＣ４であるＯＰＣセッションＯＰＣ４を確立し、ビットマップＢ４を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ４に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ４を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１０７】
また、ＯＰＣ処理部１４は、ＯＰＣ処理部１４自身が発行した論理ボリューム４２をＯＰＣセッション元とするＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４２のデータコピー要求を受け付けると、ＯＰＣ起動処理を実行する。具体的には、ＯＰＣ処理部１４は、論理ボリューム４２と論理ボリューム４３との間にＯＰＣセッション名がＯＰＣ５であるＯＰＣセッションＯＰＣ５を確立し、ビットマップＢ５を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ５に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ５を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１０８】
＜具体例２＞
次に、制御モジュール１０ａが実行するＯＰＣ処理の他の具体例について説明する。
図１３は、具体例２を説明する図である。
【０１０９】
図１３では、書き込み要求処理部１３の処理が図１３（ａ）、図１３（ｂ）、図１３（ｃ）の順に遷移している様子を示している。
図１３（ａ）は、ＯＰＣ処理部１４が、ホスト装置３０のデータコピー要求に応じてＯＰＣ起動処理を実行し、論理ボリューム４１と論理ボリューム４２との間にＯＰＣセッション名がＯＰＣ１１のＯＰＣセッションＯＰＣ１１を確立し、論理ボリューム４１に記憶されている全てのデータＡ、Ｂを論理ボリューム４２にコピーする処理を行っている状態を示している。この状態で、書き込み要求処理部１３が、論理ボリューム４１のデータＡが記憶されている領域にデータＣを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１３に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ１１が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ１のビットマップの欄を５秒毎に参照し、データＡのビットマップのビットが「０」に設定されるのを待機する（ステップＳ２、Ｓ３の処理）。
【０１１０】
ＯＰＣセッションＯＰＣ１１を用いたデータＡのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４１のデータＡが記憶されている領域に対応するビットマップＢ１１のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。ビットマップのビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＡが記憶されている領域にデータＣの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【０１１１】
その後、図１３（ｂ）に示すように、ＯＰＣセッションＯＰＣ１１が実行されている途中に、ホスト装置３０から論理ボリューム４１のデータバックアップ指示を受け付けると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄およびコピー先論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１３（ｂ）に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ１１が設定されている。このため、ＯＰＣセッションＯＰＣ１１のビットマップＢ１１を参照し、コピーが完了していない領域が存在するか否かを判断する（ステップＳ１１の処理）。図１３（ｂ）に示す具体例では、コピーが完了していない領域が存在する。このため、ＯＰＣ処理部１４は、ストレージプール２０ｂからの新しい論理ボリュームの割り当てを論理ボリューム作成部１１に依頼する（ステップＳ１２の処理）。
【０１１２】
論理ボリューム作成部１１は、ＯＰＣ処理部１４の依頼に応じて論理ボリューム４５を作成する。ＯＰＣ処理部１４は、作成した論理ボリューム４５と論理ボリューム４１との関係を世代管理テーブル１２ａに登録する（ステップＳ１３の処理）。具体的には、ＯＰＣ処理部１４は、世代管理テーブル１２ａの割り込み世代番号の欄に、データＡ、Ｂの世代の割り込み世代であることを識別する情報を格納する。また、ＯＰＣ処理部１４は、コピー先の世代管理テーブル１２ａを更新する（ステップＳ１４の処理）。そして、ＯＰＣ処理部１４は、論理ボリューム４１と論理ボリューム４５との間にＯＰＣセッション名がＯＰＣ１２であるＯＰＣセッションＯＰＣ１２を確立し、ビットマップＢ１２を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ１２に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ１２を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１１３】
その後、ＯＰＣセッションＯＰＣ１１を用いたコピーが終了する前に、図１３（ｃ）に示すように、書き込み要求処理部１３が、論理ボリューム４１のデータＢが記憶されている領域にデータＤを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１３に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ１１およびＯＰＣセッションＯＰＣ１２が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ１１のビットマップの欄を５秒毎に参照し、データＢのビットマップのビットがいずれも「０」に設定されるのを待機する（ステップＳ２、Ｓ３の処理）。
【０１１４】
ＯＰＣセッションＯＰＣ１１を用いたデータＢのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４１のデータＢが記憶されている領域に対応するビットマップＢ１１のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。また、ＯＰＣセッションＯＰＣ１２を用いたデータＢのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４１のデータＢが記憶されている領域に対応するビットマップＢ１２のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。データＢのビットマップのビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＢが記憶されている領域にデータＤの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【０１１５】
また、ＯＰＣ処理部１４は、ビットマップＢ１１の全てのビットが「０」であることを確認すると（ステップＳ１７ｆの処理）、全領域のコピーが完了したＯＰＣセッションが存在するか否かを判断する（ステップＳ１７ｉの処理）。本具体例では、全領域のコピーが完了したＯＰＣセッションＯＰＣ１１が存在するため、ＯＰＣセッション先の論理ボリューム４２をＯＰＣセッション元とするＯＰＣコピーの開始をホスト装置３０に依頼する（ステップＳ１７ｐの処理）。
【０１１６】
その後、ＯＰＣ処理部１４は、ＯＰＣ管理テーブル１５ａからセッション名ＯＰＣ１１のレコードを削除する（ステップＳ１７ｑの処理）。
ＯＰＣ処理部１４は、ＯＰＣ処理部１４自身が発行した論理ボリューム４２をＯＰＣセッション元とするＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４２のデータコピー要求を受け付けると、ＯＰＣ起動処理を実行する。具体的には、ＯＰＣ処理部１４は、論理ボリューム４２と論理ボリューム４３との間にＯＰＣセッション名がＯＰＣ１３であるＯＰＣセッションＯＰＣ１３を確立し、ビットマップＢ１３を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ１３に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ１３を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１１７】
この具体例２によれば、ＯＰＣセッションＯＰＣ１１を用いた書き込みが実行されている途中でも論理ボリューム４１に記憶されている最新のデータのバックアップをとることができる。
【０１１８】
＜具体例３＞
次に、制御モジュール１０ａが実行するＯＰＣ処理の他の具体例について説明する。
図１４および図１５は、具体例３を説明する図である。
【０１１９】
図１４では、書き込み要求処理部の処理が図１４（ａ）、図１４（ｂ）、図１４（ｃ）の順に遷移している様子を示している。
図１４（ａ）は、ＯＰＣ処理部１４が、ホスト装置３０のＯＰＣ起動要求に応じて論理ボリューム４２と論理ボリューム４３との間にＯＰＣセッション名がＯＰＣ２１のＯＰＣセッションＯＰＣ２１を確立し、書き込み要求処理部１３が論理ボリューム４２に記憶されている全てのデータＡ、Ｂを論理ボリューム４３にコピーする処理を行っている状態を示している。この状態でＯＰＣ処理部１４は、論理ボリューム４１から論理ボリューム４２へのデータコピー要求をホスト装置３０から受け付けると、ＯＰＣ起動処理を行い、ＯＰＣ管理テーブル１５ａにレコードを追加する（ステップＳ１６の処理）。そして、論理ボリューム４１と論理ボリューム４２との間にＯＰＣセッション名がＯＰＣ２２であるＯＰＣセッションＯＰＣ２２を確立する。ＯＰＣ処理部１４は、ビットマップＢ２２を用意し、ＯＰＣセッションＯＰＣ２２を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１２０】
その後、図１４（ｂ）に示すように、書き込み要求処理部１３が、論理ボリューム４１のデータＣが記憶されている領域にデータＥを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１４に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ２２が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ２２のビットマップの欄を参照し、データＣのビットマップのビットが「０」に設定されるのを待機する（ステップＳ２、Ｓ３の処理）。そして、ＯＰＣセッションＯＰＣ２２を用いたデータＣのコピーが完了すると、ＯＰＣ処理部１４は、論理ボリューム４２のデータＣが記憶されている領域に対応するビットマップＢ２２のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。論理ボリューム４２のデータＣが記憶されている領域に対応するビットマップＢ２２のビットが「１」から「０」に更新されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＣが記憶されている領域にデータＥの上書きが可能となる（ステップＳ２のＹｅｓ→ステップＳ４以降の処理）。
【０１２１】
その後、図１４（ｃ）に示すように、ＯＰＣセッションＯＰＣ２２が実行されている途中に、ホスト装置３０から論理ボリューム４２のＯＰＣ起動要求を受け付けると、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２１のビットマップＢ２１を参照し、コピーが完了していない領域が存在するか否かを判断する（ステップＳ１１の処理）。図１４（ｃ）に示す具体例では、コピーが完了していない領域が存在する。このため、ＯＰＣ処理部１４は、ストレージプール２０ｂから新しい論理ボリュームの割り当てを論理ボリューム作成部１１に依頼する（ステップＳ１２の処理）。
【０１２２】
論理ボリューム作成部１１は、ＯＰＣ処理部１４の依頼に応じて論理ボリューム４６を作成する。ＯＰＣ処理部１４は、作成した論理ボリューム４６と論理ボリューム４２との関係を世代管理テーブル１２ａに登録する（ステップＳ１３の処理）。具体的には、ＯＰＣ処理部１４は、世代管理テーブル１２ａの割り込み世代番号の欄に、データＡ、Ｂの世代の割り込み世代であることを識別する情報を格納する。また、ＯＰＣ処理部１４は、コピー先の世代管理テーブル１２ａを更新する（ステップＳ１４の処理）。そして、ＯＰＣ処理部１４は、論理ボリューム４２と論理ボリューム４６との間にＯＰＣセッション名がＯＰＣ２３であるＯＰＣセッションＯＰＣ２３を確立し、ビットマップＢ２３を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ２３に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２３を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１２３】
その後、書き込み要求処理部１３が、論理ボリューム４１のデータＤが記憶されている領域にデータＦを上書きする書き込み要求をホスト装置３０から受け取ると、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのコピー元論理ボリューム名の欄を参照して論理ボリューム４１を含むＯＰＣセッションが設定されているか否かを判断する（ステップＳ１の処理）。図１４に示す具体例では、論理ボリューム４１を含むＯＰＣセッションＯＰＣ２２が設定されている。このため、書き込み要求処理部１３は、ＯＰＣ管理テーブル１５ａのセッション名ＯＰＣ２２のビットマップの欄を５秒毎に参照し、データＤのビットマップのビットが「０」に設定されるのを待機する（ステップＳ２、Ｓ３の処理）。
【０１２４】
ＯＰＣセッションＯＰＣ２１を用いたデータＢのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４２のデータＢが記憶されている領域に対応するビットマップＢ２１のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。また、ＯＰＣセッションＯＰＣ２３を用いたデータＢのコピーが完了すると（ステップＳ１７ｄの処理）、ＯＰＣ処理部１４は、論理ボリューム４２のデータＢが記憶されている領域に対応するビットマップＢ２３のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。データＢのビットマップのビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４２のデータＢが記憶されている領域にデータＤの上書きが可能となる。
【０１２５】
また、ＯＰＣセッションＯＰＣ２１を用いた全領域のコピーが完了したので、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２１のコピー先の論理ボリューム４３をＯＰＣセッション元とするＯＰＣコピーの開始をホスト装置３０に依頼する（ステップＳ１７ｐの処理）。その後、ＯＰＣ処理部１４は、５秒以上待機した後に、ＯＰＣ管理テーブル１５ａからセッション名ＯＰＣ２１のレコードを削除する（ステップＳ１７ｑの処理）。
【０１２６】
その後、ＯＰＣ処理部１４は、ＯＰＣ処理部１４自身が発行した論理ボリューム４３をＯＰＣセッション元とするＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４３のデータコピー要求を受け付けると、ＯＰＣ起動処理を実行する。具体的には、ＯＰＣ処理部１４は、コピー先論理ボリュームが存在しないので（ステップＳ１０の処理）ストレージプール２０ｂからの新しい論理ボリュームの割り当てを論理ボリューム作成部１１に依頼する（ステップＳ１２の処理）。論理ボリューム作成部１１は、ＯＰＣ処理部１４の依頼に応じて図１５に示すように論理ボリューム４７を作成する。ＯＰＣ処理部１４は、作成した論理ボリューム４７と論理ボリューム４３との関係を世代管理テーブル１２ａに登録する（ステップＳ１３の処理）。また、ＯＰＣ処理部１４は、コピー先の世代管理テーブル１２ａを更新する（ステップＳ１４の処理）。そして、ＯＰＣ処理部１４は、論理ボリューム４３と論理ボリューム４７との間にＯＰＣセッション名がＯＰＣ２４であるＯＰＣセッションＯＰＣ２４を確立し、ビットマップＢ２４を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ２４に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２４を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。
【０１２７】
ところで、ＯＰＣセッションＯＰＣ２２を用いたデータＤのコピーが完了すると、ＯＰＣ処理部１４は、論理ボリューム４１のデータＤが記憶されている領域に対応するビットマップＢ２２のビットを「１」から「０」に更新する（ステップＳ１７ｅの処理）。ビットマップＢ２２のビットが「１」から「０」に設定されることにより、書き込み要求処理部１３は、論理ボリューム４１のデータＤが記憶されている領域にデータＦの上書きが可能となる。
【０１２８】
その後、ＯＰＣ処理部１４は、論理ボリューム４２をＯＰＣセッション元とするＯＰＣセッションの確立要求に応じて、ホスト装置３０が発行した論理ボリューム４３のデータコピー要求をホスト装置３０から受け取ると、ＯＰＣ起動処理を実行する。具体的には、ＯＰＣ処理部１４は、論理ボリューム４２と論理ボリューム４３との間にＯＰＣセッション名がＯＰＣ２５であるＯＰＣセッションＯＰＣ２５を確立し、ビットマップＢ２５を用意する（ステップＳ１５の処理）。次に、ＯＰＣ処理部１４は、確立したＯＰＣセッションＯＰＣ２５に関するレコードをＯＰＣ管理テーブル１５ａに追加する（ステップＳ１６の処理）。そして、ＯＰＣ処理部１４は、ＯＰＣセッションＯＰＣ２５を用いてＯＰＣ処理を開始する（ステップＳ１７の処理）。以上で具体例３の処理の説明を終了する。
【０１２９】
なお、本実施の形態では、ストレージ装置１００内でのＯＰＣ（筐体内コピー）の場合を説明したが、筐体間でのコピーにも適用することができる。
以上、本発明の制御装置、制御方法およびストレージ装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１３０】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置３および制御モジュール１０ａ、１０ｂが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１３１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【符号の説明】
【０１３４】
１、１００  ストレージ装置
２、３０  ホスト装置
３  制御装置
３ａ  受付部
３ｂ  複写処理部
４  記憶装置
４ａ〜４ｃ  ボリューム
５ａ〜５ｃ、Ｂ１〜Ｂ５、Ｂ１１〜Ｂ１３、Ｂ２１〜Ｂ２５  ビットマップ
１０ａ、１０ｂ  制御モジュール
１１  論理ボリューム作成部
１２  世代管理情報格納部
１２ａ  世代管理テーブル
１３  書き込み要求処理部
１４  ＯＰＣ処理部
１５  ＯＰＣ管理情報格納部
１５ａ  ＯＰＣ管理テーブル
２０ａ  ドライブエンクロージャ
２０ｂ  ストレージプール
４１〜４７  論理ボリューム
【図１】
2013029911.tif 000003
【図２】
2013029911.tif 000004
【図３】
2013029911.tif 000005
【図４】
2013029911.tif 000006
【図５】
2013029911.tif 000007
【図６】
2013029911.tif 000008
【図７】
2013029911.tif 000009
【図８】
2013029911.tif 000010
【図９】
2013029911.tif 000011
【図１０】
2013029911.tif 000012
【図１１】
2013029911.tif 000013
【図１２】
2013029911.tif 000014
【図１３】
2013029911.tif 000015
【図１４】
2013029911.tif 000016
【図１５】
2013029911.tif 000017