以下、本発明の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図1〜図16は、本発明の実施の形態1におけるストレージ装置を説明するための図である。図1は、本発明の各実施の形態に係わるストレージ装置全体のハードウェア外観構成を示す。図2は、本発明の実施の形態1におけるストレージ装置1を含んで構成されるコンピュータシステムの機能ブロック構成を示す図である。実施の形態1のストレージ装置1は、ストレージ装置内の記憶領域に記憶ボリュームのデータについての複製(レプリカ)を異なる複数の記憶ボリュームへと作成する複数複製作成機能を備えるものであり、特にその際に正ボリュームのデータについての退避ボリュームを設けて退避処理を行う場合に対応した処理形態である。
<ストレージ装置>
まず、本発明の各実施の形態に係わるストレージ装置の全体構成について説明する。図1において、このストレージ装置600は、一形態として制御装置筐体100と二つの記憶装置筐体300とが接続された形態である。ストレージ装置600は、主に、制御装置筐体100と、複数の記憶装置筐体300とから構成されるコンピュータである。ストレージ装置600の制御装置筐体100は、記憶装置筐体300の提供する記憶領域に対し所定のRAIDレベルに対応したRAID制御が可能である。
制御装置筐体100は、保守員が使用する管理端末160が備えられている。管理端末160はストレージ装置600を各種保守・管理するための処理を行うコンピュータであり、一形態としてノート型PCの形態である。管理端末160はカバーで覆われており、カバーを開けることで管理端末160を使用できる。管理端末160の下部には、チャネル制御部110等の回路基板を装着するためのスロットが設けられている。各スロットには一つの回路基板が着脱可能である。ストレージ装置600は後述の通信手段によりホストとなる処理装置に接続される。
記憶装置筐体300は、多数の記憶装置となるディスクドライブ(物理ディスク)を備えて構成され、ホストとなる処理装置に対して記憶領域を提供する。処理対象となる記憶ボリュームは、記憶装置により提供される物理的な記憶領域である物理ボリュームと、この物理ボリューム上に論理的に設定される記憶領域である論理ボリューム(LU)とを含む。記憶ボリュームにおいて、ホストとなる処理装置から直接的に入出力アクセスされオリジナルデータを記憶する記憶ボリュームを正ボリューム(プライマリボリューム)、正ボリュームのデータのコピーを格納する記憶ボリュームを副ボリューム(セカンダリボリューム)と称することとする。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。記憶装置筐体300は、例えば複数のディスクドライブによりディスクアレイを構成することもできる。この場合、処理装置に対して提供される記憶領域は、RAIDにより管理された複数のディスクドライブ(RAIDグループ)により提供されるようにすることができる。制御装置筐体100は、RAIDに関する制御も行う。
制御装置筐体100と記憶装置筐体300との間は、直接接続される形態にもできるし、ネットワークを介して接続される形態にもできる。更に記憶装置筐体300を制御装置筐体100と一体化構成にもできる。
管理端末160は、内部LANを通じて、制御装置筐体100における制御装置を構成する各回路基板に接続される。保守員は、管理端末160を操作して各種保守・管理の業務を行う。管理端末160を操作することにより、例えば記憶装置筐体300における物理ディスク構成やLUの設定、チャネル制御部110等の回路基板において実行されるプログラムのインストール等が可能である。物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、RAID構成の変更等を行うことができる。また管理端末160は、LANや電話回線等を通じて外部の保守センタと接続されており、障害が発生した場合に迅速に対応できる。これらの設定や制御は、管理端末160で動作するWebサーバが提供するWebページをユーザインターフェイスとして保守員により行われる。管理端末160は、制御装置筐体100に内蔵される形態とすることもできるし、外付けされる形態とすることもできる。また管理端末160は、制御装置筐体100及び記憶装置筐体300の保守・管理を専用に行うコンピュータの形態にも、汎用コンピュータに保守・管理機能を持たせた形態にもできる。管理端末160は、制御装置筐体100に内蔵された形態とすることもできるし、制御装置筐体100に通信線で接続される別装置の形態とすることもできる。また、管理端末160は、ストレージ装置600の保守・管理を専用に行う装置の形態とすることもできるし、PC等の汎用情報処理装置に保守・管理機能を備えた形態とすることもできる。
<コンピュータシステム>
図2において、実施の形態1のストレージ装置1を含んで構成されるコンピュータシステムは、一つ以上のストレージ装置1と、一つ以上の処理装置4とがネットワーク3で接続された構成である。図2では例として、ネットワーク3に、二つのストレージ装置1,2が接続されている。ストレージ装置2の構成はストレージ装置1と同様であるのでストレージ装置1を代表的に説明する。処理装置4は、ユーザ(個人や企業等)側の使用するコンピュータであり、ストレージ装置1に対するホストとなる。例えば、処理装置4は、ストレージ装置1の備えるデータ記憶制御の機能を用いてデータを記憶領域に記憶させ、当該データを用いてオンライン業務を行う。また別のストレージ装置2を用いてデータの複製等が行われる。ストレージ装置1とストレージ装置2の間は、近距離での配置が可能であると共に、例えば災害対策等のために遠隔のサイトに配置することも可能であり、その間で記憶ボリュームのデータについてのリモートコピー処理等が可能である。図2の場合、ストレージ装置1はプライマリサイトに配置され、ストレージ装置2はそれとは遠隔のセカンダリサイトに配置されるものとする。ストレージ装置2は、特にリモートコピー機能及び複数複製作成機能におけるコピー先/複製先として利用される。処理装置4とストレージ装置1の制御装置5との間は、ポート及びネットワーク3を介して所定のパスにより接続され相互に通信可能である。ストレージ装置1,2の制御装置5の間も、ポート及びネットワーク3を介して所定のパスにより接続され相互に通信可能である。
ネットワーク3は、例えばLAN(Local Area Network)やSAN(Storage Area Network)などである。単一種類のネットワーク3や処理装置4に限らず、異種プラットフォームを混在して接続可能である。その場合、制御装置5に各種のプラットフォームに対応した複数のチャネル制御部(CHA7)を備え、個別に対応する。処理装置4とストレージ装置1は、ネットワーク3上のプロトコルに対応した通信インターフェイスを備える。
ネットワーク3として例えばLANを介して制御装置5と処理装置4とが接続される。LANは、インターネットとすることもできるし、専用ネットワークとすることもできる。LANを介した通信は、例えばTCP/IPプロトコルに従って行われる。LAN上では、処理装置4からストレージ装置1に対して、ファイル名指定によるデータアクセス要求(ファイルアクセス要求)が送信される。
また、ネットワーク3には、バックアップデバイス900が接続される。バックアップデバイス900は、具体的には、MOやCD−R、DVD−RAMなどのディスク系デバイス、DATテープ、カセットテープ、オープンテープ、カートリッジテープなどのテープ系デバイスである。ネットワーク3を介した通信により、バックアップデバイス900に、ストレージ装置1内の記憶装置6に記憶されているデータのバックアップデータが記憶される。バックアップ処理については後述する。
またネットワーク3として例えばSANを介して制御装置5と処理装置4とが接続される。SANは、記憶装置6が提供する記憶領域におけるデータ管理単位であるブロックを単位として処理装置4との間でデータの授受を行うためのネットワークである。SANを介して行われる処理装置4と制御装置5との間の通信は、一般にファイバチャネルプロトコルに従って行われる。処理装置4からは、ストレージ装置1に対してファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求(ブロックアクセス要求)が送信される。
ネットワーク3がSANの場合には、バックアップデバイス900としてSAN対応バックアップデバイスが接続される。SAN対応バックアップデバイスは、SANを介して制御装置5との間で通信を行うことにより、記憶装置6に記憶されているデータのバックアップデータを記憶する。
<制御装置>
図2に示すように、制御装置5(前記100に対応する)は、CHA(チャネル制御部)7(前記110に対応する)、キャッシュメモリ8、共用メモリ9、DKA(ディスク制御部)10、接続部11等により構成される。制御装置5を構成するCHA7、キャッシュメモリ8、共用メモリ9、DKA10等は、例えばそれぞれ単一の回路基板として実装される。これら回路基板がそれぞれ一枚以上、ストレージ装置1のスロットに装着される。
制御装置5は、ストレージ装置1全体を制御し、主に処理装置4と記憶装置6の間でのデータ入出力を制御する。制御装置5は、その制御プログラムを実行するためのプロセッサとメモリを備え、プロセッサにより制御プログラムが実行されることにより後述の各処理が実現される。制御装置5が実行する制御プログラムには、複数複製作成プログラム20が含まれる。複数複製作成プログラム20は、複数複製作成機能を実現するためのプログラムであり、ストレージ装置1に、処理装置4からの複数複製作成命令の受領に基づき複数複製作成処理を行わせる。
制御装置5は、ネットワーク3を介した通信手段を通じて接続される処理装置4から受信した命令に従って個々の記憶装置6に対する制御を行う。例えば処理装置4からのデータ入出力命令を受信して、記憶装置6の記憶領域に記憶されているデータの入出力のための処理を行う。ストレージ装置1では、LU及びその部分データを単位として複製の制御が可能である。また制御装置5は、処理装置4との間で、ストレージ装置1を管理するための各種命令の授受も行う。
CHA7は、ネットワーク3を介して処理装置4や他のストレージ装置2との間で通信を行うための通信インターフェイスを備え、処理装置4との間でリード/ライト等のデータ入出力命令を授受する機能を備える。CHA7は、図示しないプロセッサ、メモリ、ポート(通信制御部)等を備え、処理装置4や他のストレージ装置2との間で論理的なポート及びパスの設定を介して通信の制御を行う。また、CHA7は、接続部11を介して、DKA10とのデータ入出力の制御を行う。CHA7は、処理装置4の複製管理プログラム46からの命令やデータを受領する処理を行い、また、処理装置4に対し命令に対する応答やデータを返す処理を行う。
CHA7は、一体的にユニット化された回路基板上に形成されたハードウェア及びこのハードウェアにより実行されるOS及びOS上で動作するアプリケーションプログラムなどのソフトウェアにより実現される。各CHA7は、管理端末160と共に内部LANで接続されており相互に通信を行うことが可能である。これによりCHA7に実行させるプログラムを管理端末160から送信してインストールすることが可能となっている。
CHA7は、例えばNAS(Network Attached Storage)としての機能を提供する構成(CHN)にすることができる。制御装置5は、前記CHNにより、ネットワーク3としてLANを介して処理装置4やバックアップデバイス900との間で通信を行う。例えば、CHA7は、処理装置4からのファイルアクセス要求を受け付ける。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するI/O要求を出力することにより、記憶装置6へのアクセスを行う。なおI/O要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセス種別が含まれている。またデータの書き込みの場合にはI/O要求には書き込みデータが含まれるようにすることができる。
またCHA7は、例えばSANに対応した機能を提供する構成(CHF)にすることができる。制御装置5は、前記CHFにより、SANを介して処理装置4及びSAN対応バックアップデバイス(900)との間の通信を行う。処理装置4からは、ストレージ装置1に対してファイバチャネルプロトコルに従ってブロックアクセス要求が送信される。例えば、CHA7は、処理装置4からのブロックアクセス要求を受け付ける。これにより、ストレージ装置1は高速アクセス可能なデータ記憶サービスを処理装置4に対し提供できる。
またCHA7は、例えば前記LANやSAN等を介さずに処理装置4が制御装置5に接続される構成に対応した機能を提供する構成にすることができる。この場合、処理装置4と制御装置5との間の通信は、例えばFICON(Fibre Connection)(登録商標)などの通信プロトコルに従って行われる。処理装置4からは、ストレージ装置1に対して前記FICON等のプロトコルに従ってブロックアクセス要求が送信される。例えば、CHA7は、処理装置4からのブロックアクセス要求を受け付ける。これによりストレージ装置1は、メインフレームコンピュータとしての処理装置4に対してデータ記憶サービスを提供できる。
CHA7として、前記CHN、CHF等を混在させることにより、異種ネットワークに接続されるストレージ装置1を実現できる。具体的には、ストレージ装置1として、CHNを用いてLANに接続され、かつCHFを用いてSANに接続される、SAN−NAS統合ストレージシステムの構成が可能である。
接続部11は、CHA7、共用メモリ9、キャッシュメモリ9、DKA10を相互に接続する。CHA7、共用メモリ9、キャッシュメモリ9、DKA6の間でのデータや命令の授受は接続部11を介することで行われる。接続部11は、例えば高速スイッチングによりデータ伝送を行うクロスバースイッチなどの高速バスで構成される。またCHA7間が接続されることにより高速なフェイルオーバなどが可能である。
キャッシュメモリ8は、CHA7、DKA10からアクセス可能であり、主にデータ(ユーザデータ)を記憶するために利用される。例えば、CHA7とDKA10の間で転送対象となる入出力データ、すなわち、処理装置4からのライトデータや記憶装置6からのリードデータ等が一時的に格納される。
共用メモリ9は、CHA7、DKA10からアクセス可能であり、主に制御情報や命令等を記憶するために利用される。例えばLU情報やペア管理情報等の制御情報を格納する。実施の形態1の場合、共用メモリ9には、複数複製作成プログラム20による処理に基づき、後述するコピー元退避情報22とコピー先更新情報23を含む制御情報が格納・管理される。なお、この制御情報を共用メモリ9以外のメモリ、例えばキャッシュメモリ8や記憶装置6上のシステムデバイス等に格納する処理形態にしてもよい。
DKA10は、記憶装置6の制御を行う。DKA10は、図示しないプロセッサ、メモリ、ポート(通信制御部)等を備え、CHA7からの指示に基づき、記憶装置6上の記憶領域へのデータのリード/ライト等の制御を行う。また、DKA10は、複数の記憶装置6に対するRAID制御が可能である。ストレージ装置1,2内あるいはストレージ装置1,2間では、LU内の特定の部分データ、例えばブロックやトラックやファイル等を単位としてデータコピー処理が可能である。
DKA10は、例えば前記CHA7が処理装置4から受信したライト命令に従って記憶装置6へデータの書き込みを行う。また、CHA7により送信された論理アドレス指定によるLUへのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶装置6における物理ディスクがRAIDにより管理されている場合には、RAID構成に従ったデータアクセスを行う。複数の記憶装置6により、所定のRAIDレベルに対応したRAIDグループを構成可能である。前記RAIDグループは、例えばRAID1+0やRAID5等のRAIDレベルに応じて複数の記憶装置から構成される。ストレージ装置1内では、記憶装置6に対し、前記RAIDグループに対応した論理デバイス(LDEV)を単位としてデータ記憶の処理を行う。制御装置5で特にDKA10によってLUとLDEVが対応付けされる。
記憶装置6上に設定されるLUは、処理装置4からアクセス可能でユーザデータの格納に使用されるユーザLU(データデバイスともいう)や、CHA7等によるシステム制御のために制御情報の格納に使用されるシステムLU(システムデバイスともいう)等がある。
また各LUには、CHA7等が制御ユニット(CU)として対応付けられている。前記CUはCU番号により識別される。これによりCHA7ごとにアクセス可能なLUが割り当てされる。また複数のCHA7で一つのLUを共用するように対応付けることもできる。処理装置4の複製管理プログラム46からもCU番号によりCUを指定や識別が可能である。
またDKA10は、記憶装置6に記憶されたデータの複製管理の制御やバックアップ制御等も行う。更にDKA10は、障害発生時のデータ消失防止(ディザスタリカバリ)等を目的としてプライマリサイトのストレージ装置1のデータについての複製をセカンダリサイトのストレージ装置2に記憶する制御(リモートコピー機能)等も行う。各DKA10は、管理端末160と共に内部LANで接続されており相互に通信を行うことが可能である。これによりDKA10に実行させるプログラムを管理端末160から送信してインストールすることが可能となっている。DKA10に対して、記憶装置6は、ストレージ装置1内部で通信線で直接接続される。また記憶装置6がネットワークを介して制御装置5に接続される形態とすることもできる。また記憶装置6を制御装置5と一体化構成とすることもできる。
なお本実施の形態では共用メモリ9及びキャッシュメモリ8がCHA7及びDKA10に対して独立に設けられている構成について記載したが、これに限らず、共用メモリ9、キャッシュメモリ8がCHA7、DKA10の各々に分散されて設けられる形態も可能である。この場合、接続部11は、分散された共用メモリまたはキャッシュメモリを有するCHA及びDKAを相互に接続させる。
制御装置5の備えるプロセッサは、CHA7とDKA10の有するプロセッサに対応する。すなわち本実施の形態の場合、CHA7とDKA10に有するプロセッサにより複数複製作成プログラム20を含む制御プログラムが実行されることで複数複製作成機能が実現される。
制御装置5は、制御情報として、LUについて管理するための情報、すなわち論理ボリューム番号や論理アドレス範囲、容量、RAIDレベル、正・副の状態情報等の情報をストレージ装置1内のメモリ例えば共用メモリ9等に格納・管理する。またLUに対応する論理デバイス(LDEV)の管理のための論理デバイス番号や対応付けの情報も管理する。ストレージ装置1内で、各種制御情報は、必要に応じて動的に割当及び開放される。
処理装置4と記憶装置6の間でのデータ入出力の処理は例えば以下のようになる。例えば、あるCHA7がある処理装置4から受信したデータ入出力命令がライト命令であった場合、当該CHA7は、ライト命令を共用メモリ9に書き込むと共に、処理装置4から受信したライトデータをキャッシュメモリ8に書き込む。一方、DKA10は、共用メモリ9を監視しており、共用メモリ9にライト命令が書き込まれたことを検出すると、当該命令に従ってキャッシュメモリ8からライトデータを読み出して記憶装置6に書き込む。
また、あるCHA7がある処理装置4から受信したデータ入出力命令がリード命令であった場合、当該CHA7は、リード命令を共用メモリ9に書き込むと共に、読み出し対象となるデータがキャッシュメモリ8に存在するかどうか調べる。ここでキャッシュメモリ8に読み出し対象データが存在すれば、CHA7はそのデータを処理装置4に送信する。一方、読み出し対象データがキャッシュメモリ8に存在しない場合は、共用メモリ9を監視することによりリード命令が共用メモリ9に書き込まれたことを検出したDKA10が、記憶装置6から読み出し対象データを読み出してこれをキャッシュメモリ8に書き込むと共に、その旨を共用メモリ9に書き込む。そして、CHA7は、共用メモリ9を監視することで読み出し対象データがキャッシュメモリ8に書き込まれたことを検出すると、そのデータを処理装置4に送信する。
なお、このようにCHA7からDKA10に対するデータの書き込みや読み出しの指示を、共用メモリ9を介在させて間接に行う構成の他に、例えばCHA7からDKA10に対してデータの書き込みや読み出しの指示を、共用メモリ9を介さずに直接行う構成とすることもできる。
<処理装置>
図3は、処理装置4の機能ブロック構成を示す図である。処理装置4は、CPU41、メモリ42、ポート43を有するコンピュータであり、キーボードやマウス等の入力装置44、ディスプレイ等の出力装置45が接続されている。処理装置4は、例えばパーソナルコンピュータやワークステーション、あるいはメインフレームコンピュータ、サーバ専用コンピュータ等である。メモリ42内に、複製管理プログラム46と、アプリケーションプログラム47とが格納され、CPU41は、これらプログラムを実行することにより各種機能を実現する。複製管理プログラム46は、ストレージ装置1内にデータの複数の複製を作成させるための複数複製作成機能を含むストレージ装置1の各種機能を実現するために、ストレージ装置1に対する命令の発行処理とそのためのユーザインターフェイスの提供とを行うプログラムである。アプリケーションプログラム47は、処理装置4における通常の業務処理等を行うためのプログラムである。業務処理としては例えば銀行の自動預金預け払いシステムの処理等がある。ポート43は、ネットワーク3に接続されてストレージ装置1や他の処理装置4等と通信を行うための通信インターフェイスである。
通常時、処理装置4は、ストレージ装置1に対してリード命令やライト命令等のデータ入出力命令を送信することで、記憶装置6上に記憶されているデータの読み出しや記憶装置6上へのデータの書き込みを行う。複製管理プログラム46やアプリケーションプログラム47は、図示しないCD−ROM等の記憶媒体や外部記憶装置から読み込んで、あるいはネットワーク3を通じて外部から受信して、メモリ42に格納される。
処理装置4のオペレータ(ユーザ)は、入力装置44、出力装置45、複製管理プログラム46上のユーザインターフェイスを通じて、ストレージ装置1に対し、データの記憶や複製に関する処理を行わせるための指示を入力する。例えば複数複製作成処理を行わせるための指示を入力する。複製管理プログラム46上のユーザインターフェイスは、例えばWebブラウザ等のGUIや、コマンドユーザインターフェイス(CUI)等の形式である。複製管理プログラム46は、オペレータによる指示入力に基づき、対応する命令を発行する。処理装置4は、発行された命令をポート43、ネットワーク3を経由して処理の要求先となるストレージ装置1の制御装置5に送信する処理を行う。処理の要求先は、制御ユニット(CU)番号やネットワークアドレスなどで識別される。前記CU番号は、命令に対応する処理を担当するCHA7等を識別する情報である。送信された命令は、制御装置5のCHA7のポートで受信される。複製管理プログラム46では、LUを単位として複数複製作成を要求できる。処理装置4を使用するオペレータ(ユーザ)は、複製管理プログラム46上のユーザインターフェイスを通じて、LU単位で処理を指定可能である。例えば、複製対象となるコピー元ボリュームや複製先となるコピー先ボリュームを指定する場合に、論理ボリューム番号を指定する。複製管理プログラム46は、ストレージ装置1で管理している各種情報を一覧表示する処理を処理装置4に行わせる。例えば、ストレージ装置1に確保されているユーザが利用可能なLUを一覧表示可能であり、ユーザはこの中から複製対象等を選択できる。
<ペア制御状態>
ストレージ装置1におけるペア制御状態について説明する。ストレージ装置1では、処理装置4の複製管理プログラム46から発行される命令等に応じて、記憶ボリュームのペアについての制御状態(ペア制御状態)を遷移させ、当該制御状態及び遷移に応じた処理及び制御を実行する。ストレージ装置1での内部処理により、処理装置4のオペレータに指示された通りに、記憶ボリュームのペアが確立・作成される。本実施の形態の場合、複数複製作成にあたっては、複数のペアを確立させるためのペア作成命令による処理を行う必要はない。ストレージ装置1では、複数複製作成に係わる記憶ボリューム及び記憶ボリュームのペアについての制御状態として、「シンプレックス」状態、「過渡中」状態、「スプリット」状態等を有する。
まず、従来のペアについての制御に関して簡単に説明しておく。ストレージ装置1は従来のペアの制御を行う機能も備える。従来のペアの制御では、ペア制御状態として、「ペア」状態、「コピー中」状態、「スプリット」状態等を有する。ストレージ装置1では、処理装置4の複製管理プログラム46から発行される命令等に応じて、正ボリュームと副ボリュームのペアについてのペア制御状態を前記「ペア」状態や「スプリット」状態の間で遷移させる。なおここでいう「ペア」状態とは、前記ペア制御状態のうちの一つであることに注意しておく。またペアになっていない一つの記憶ボリュームの状態を「シンプレックス」状態と称する。従来のペアの制御では、処理装置4からの命令(ペア作成命令)等に応じて、ストレージ装置1で正ボリュームと副ボリュームのペアを確立する処理が行われる。例えば、ストレージ装置1内の記憶領域上にペアとなる記憶ボリュームが新たに確保されるか、あるいは既存の設定済み記憶ボリュームの中から指定される。ストレージ装置1は、コピー元となる記憶ボリュームからコピー先となる記憶ボリュームへとデータをコピーする初期コピー処理を行う。そして、当該ペアの記憶ボリュームを「正」−「副」の状態で関連付け、ペア制御状態を「ペア」状態として対応付ける。「ペア」状態は、正ボリュームのデータ内容が更新されるのに応じて当該更新が副ボリュームのデータ内容に反映されるように二つの記憶ボリュームの関係を対応付けた制御状態である。「ペア」状態の記憶ボリュームでは、更新データ量や更新経過時間等の条件に基づくタイミングで実行される更新反映処理により、副ボリュームのデータ内容は正ボリュームのデータ内容に近くなる。「ペア」状態では、処理装置4からの副ボリュームへの更新アクセスは禁止される。
「ペア」状態は、例えば、処理装置4からペアの分割のための命令(ペア分割命令)をストレージ装置1が受領した場合に解除され、これによりペア制御状態が「ペア」状態から過渡中状態である「コピー中」状態を経由して「スプリット」状態に遷移される。この遷移では、正ボリュームと副ボリュームのデータ内容を同期化させるペア分割処理が行われる。前記ペア分割命令の受領に応じたペア分割処理によって、副ボリュームのデータ内容が正ボリュームのデータ内容に完全に一致するようにデータ内容を確定させるために、必要に応じて正副の記憶ボリューム間の差分データについてのデータコピー処理が行われる。「スプリット」状態になった直後は、副ボリュームのデータ内容が正ボリュームと同一となる。「スプリット」状態は、ペアの記憶ボリュームにおいて、正ボリュームのデータ内容の更新と副ボリュームのデータ内容の更新が個別となるように関係が対応付けられた制御状態である。「スプリット」状態では、「ペア」状態において禁止されていた副ボリュームへのアクセスが許可される。「スプリット」状態では、正ボリュームの更新が副ボリュームに反映されないように制御される。「スプリット」状態では、正ボリュームとは別に副ボリュームをデータのバックアップ等の処理に利用できる。このように「ペア」状態での制御で正副の記憶ボリュームのデータ内容を近くしておき、「スプリット」状態に遷移させる際には正副の記憶ボリューム間の差分データについての反映処理で済むので、速やかに複製の作成が完了できる。
「スプリット」状態では、正ボリュームへの更新が副ボリュームに反映されないので、例えばこの「スプリット」状態の間に正ボリュームへの更新により生じた副ボリュームへ未反映のデータを差分データとしてストレージ装置1内に保存しておく制御が行われる。そして「スプリット」状態から再度「ペア」状態に遷移させる際に、そのための命令(ペアリシンク命令)に基づき、前記差分データにより副ボリュームのデータ内容を正ボリュームと一致させる再同期化処理が行われる。これによりペア制御状態が「スプリット」状態から過渡中状態である「コピー中(リシンク中)」状態を経由して「ペア」状態に遷移される。
次に本実施の形態の場合のペア制御状態について説明する。本実施の形態のストレージ装置1の場合、複数の複製を作成するにあたって、前記「ペア」状態を経由する必要は必ずしも無く、処理対象の記憶ボリュームを「シンプレックス」状態から「スプリット」状態へ直接遷移させる制御を行う。単一の複数複製作成命令の受領に基づく複数複製作成処理を通じて、結果的に複数のペアがまとめて確立され、各ペアのペア制御状態が「スプリット」状態となる。
図4は、ペア制御状態に関連して、制御装置5が管理するペア管理テーブル31を示す。ペア管理テーブル31は、記憶ボリュームのペアを管理するためのペア管理情報を保持する。ペア管理情報として、ペア番号、正ボリューム番号、副ボリューム番号、ペア制御状態、グループ番号等の情報を保持する。なお番号を#で表わす。ペア番号は、ペアを識別する情報であり、処理装置4側からこのペア番号を用いて処理対象となる論理ボリュームを指定可能である。正ボリューム番号、副ボリューム番号は、それぞれ正ボリューム、副ボリュームを識別する情報であり、複数複製作成命令で指定されるコピー元ボリュームとコピー先ボリュームにそれぞれ対応する。ペア制御状態は、ストレージ装置1におけるペアについての制御状態を示す情報である。ペア制御状態としては、「過渡中」、「スプリット」等の値を有する。グループ番号は、当該ペアが属するコンシステンシーグループを識別する情報である。
前記図4に示す例では、ペア番号#1のペアは、正ボリューム番号#1と副ボリューム番号#1の記憶ボリュームから成り、そのペア制御状態は「スプリット」状態で、グループ番号#1のコンシステンシーグループに属する。ストレージ装置1において、ペア番号#1〜#nのn個のペアは、複数複製作成命令で指定されたことに基づき、同一コンシステンシーグループが設定される。例としてグループ#1について複数複製作成処理中で、ペア#1のみ複製処理(後述)が完了していて「スプリット」状態で、ペア#2〜#nについては複製処理が完了しておらず「過渡中」状態である。
ペア制御状態として、前記「過渡中」状態は、記憶ボリュームを「シンプレックス」状態等から「スプリット」状態へと遷移させる途中の処理の状態である。複数複製作成処理の開始後、コンシステンシーグループ内の各ペアは「過渡中」の状態に遷移される。「スプリット」状態は、複製処理が完了後の状態である。複製処理完了直後は正ボリュームと副ボリュームのデータ内容が同一となる。「スプリット」状態では、副ボリュームへの更新アクセスが許可され、正ボリュームと副ボリュームの更新が独立して扱われる制御が行われる。「スプリット」状態の間は、副ボリュームへのアクセスが許可されるので、例えば、処理装置4が正ボリュームのデータを利用してオンライン業務を継続しながら、それとは別に副ボリュームのデータを利用してバックアップ等の処理を行わせることができる。副ボリュームを利用したバックアップ処理例については後述する。ペア制御状態としてはその他「リシンク中」等の状態を有する。「リシンク中」状態は、「スプリット」状態から「ペア」状態に遷移させる場合における途中の処理の状態である。「スプリット」状態から「ペア」状態に遷移させるための命令(ペアリシンク命令)の受領に応じて、ストレージ装置1で、「スプリット」状態の間に正ボリュームに対して発生した更新に対応する差分データを副ボリュームに反映してデータ内容を一致させる再同期化処理が行われる。
ペア制御状態の遷移は、処理装置4のオペレータが複製管理プログラム46を通じて指示入力して対応する命令を発行することにより実行可能である。制御装置4は、ペア制御状態の遷移に伴いペア管理テーブル31のペア制御状態を更新する。なおペア制御状態の遷移は、処理装置4のオペレータからの指示入力に基づき開始される以外にも、所定時刻に自動的に開始されるように複製管理プログラム46を通じて設定することもできる。また、処理装置4の複製管理プログラム46がネットワーク3を通じて接続される他の処理装置4からの指示を受信してそれに基づき開始させることもできる。
ストレージ装置1では、複数複製作成処理中における一つの「コピー元ボリューム−コピー先ボリューム」のペアについての複製処理の完了に伴い、そのペア制御状態を「スプリット」状態へと遷移させる。
<コンシステンシーグループ>
ストレージ装置1における制御情報の一つであるコンシステンシーグループについて説明する。複数複製作成の際、処理装置4からのコピー元ボリュームとその複数のコピー先ボリュームとの指定に応じて、一つのコンシステンシーグループが形成される。このコンシステンシーグループは、複数複製作成処理の際にデータ整合性の保障の対象となる複数のペアの集まりである。複数複製作成処理の際は、このコンシステンシーグループにおける複数のペアについてそれぞれ複製処理が行われるが、この際、各ペアの「スプリット」状態への遷移において、関連する複数の記憶ボリューム間のデータ整合性が保障されるように制御される。ストレージ装置1は、複数複製作成処理中にこれと時間的に近いタイミングでコピー元やコピー先のデータに対する処理装置4からの更新や参照のアクセスが発生した場合にも関連の記憶ボリュームのデータ整合性が保障されるように、後述する更新/参照処理を実行する。
複数複製作成処理中に処理装置4からコンシステンシーグループ内の記憶ボリュームのデータに対しデータの更新や参照すなわちリードやライトのアクセスが発生した場合を考える。例えば、データ整合性保障の機構が無い場合を仮定すると、コピー元ボリュームに対しデータのライトが発生した場合、この更新データは、複製処理済みで「スプリット」状態であるペアのコピー先ボリュームには反映されないが、複製処理が未処理のペアのコピー先ボリュームには複製処理で反映されることとなり、コピー先ボリューム同士においてデータ不一致が生じてしまう。このようなデータ不一致の発生は避けなければならない。一方、本実施の形態の場合、複数複製作成機能においてデータ整合性保障の機構を有し、複製処理中にコピー元ボリュームやコピー先ボリュームに更新や参照のアクセスが発生した場合に、その時点での状況すなわち関連の記憶ボリュームのデータ状態に応じてデータ整合性を保障した更新/参照処理が行われる。前記関連の記憶ボリュームのデータ状態についての把握のために、後述のコピー元退避情報22やコピー先更新情報23等の制御情報を用いる。
図5は、制御装置5が管理するグループ管理テーブル32を示す。グループ管理テーブル32は、コンシステンシーグループを管理するためのグループ管理情報を保持する。グループ管理情報として、グループ番号、命令受領フラグ等の情報を保持する。なお番号を#で表わす。グループ番号は、コンシステンシーグループを識別する情報である。命令受領フラグは、処理装置4から複数複製作成命令を受領した際に、処理装置4側から指定されたコピー元ボリュームとコピー先ボリュームに対してコンシステンシーグループが設定されると共に設定される情報である。あるいは、命令受領フラグは、処理装置4側から複数複製作成処理対象となるコンシステンシーグループの指定を受けた際に設定されるようにしてもよい。複数複製作成処理において、命令受領フラグは、コピー元とコピー先を含んだコンシステンシーグループについて複数複製作成処理を開始する際にONされ、またその複数複製作成処理を完了した際にOFFされる。制御装置5は、グループ管理テーブル32の命令受領フラグの参照により、記憶ボリュームについて複数複製作成処理中であるかどうかを識別できる。制御装置5は、複数複製作成処理中に記憶ボリュームに対する更新/参照のアクセスを受領した際は、命令受領フラグを参照して判断を行い、各状況に応じて更新/参照処理を行う。
前記ペア管理テーブル31やグループ管理テーブル32は、制御装置5によりストレージ装置1内のメモリ例えば共用メモリ9に格納され管理される。
<複数複製作成機能>
ストレージ装置1の有する複数複製作成機能による複数複製作成処理について説明する。図6は、ストレージ装置1及びこれを含むコンピュータシステムにおける複数複製作成機能に係わる機能ブロック構成を示す図である。ストレージ装置1は、制御装置5のCHA7とDKA10に複数複製作成プログラム20を有し、複数複製作成プログラム20は、命令受領処理51、複製処理52、転送処理53、更新/参照処理54を含む処理を実行させる。ストレージ装置1内のメモリとして例えば共用メモリ9に、複数複製作成プログラム20が扱う情報として、命令受領情報21、ペア管理情報31及びグループ管理情報32他の管理情報、コピー元退避情報22、コピー先更新情報23等が格納される。また、記憶装置6により提供される記憶領域60に、複数複製作成処理で処理対象となる、関連する複数のLUからなるグループ61が含まれる。グループ61には、コピー元ボリュームM、退避ボリュームS、コピー先ボリュームR{R1〜Rn}を含む。すなわち、グループ61は、コンシステンシーグループと退避ボリュームSとを含む。処理装置4は、ストレージ装置1に対し、リード/ライト命令(R/W命令)を発行する他、複製管理プログラム46から、複数複製作成命令(複製命令)を発行する。
ストレージ装置1の制御装置5、特にCHA7は、ネットワーク3を介して、処理装置4の複製管理プログラム46から発行された単一の複製命令を受信する。複製命令には、処理装置4のオペレータによる、一つのコピー元ボリュームMとその複数のコピー先ボリュームRの指定が含まれている。制御装置5で動作する複数複製作成プログラム20は、まず命令受領処理51を行う。命令受領処理51として、CHA7は、受信した複製命令に基づき、複製命令を受領したことを示す情報(あるいは受信命令自体)と、命令内に含まれているコピー元ボリュームMとコピー先ボリュームRの指定情報とを含む命令受領情報21をストレージ装置1内のメモリ例えば共用メモリ9に格納する。前記命令受領情報21には、命令受領時刻等を含めてもよい。
次に制御装置5上の複数複製作成プログラム20は、前記コピー元ボリュームMとコピー先ボリュームRの指定に基づき、それら複数のLUが含まれたコンシステンシーグループを設定する。複数複製作成プログラム20は、グループ管理テーブルにおけるグループ管理情報32を設定する。また、対応してペア管理テーブルにおけるペア管理情報31を設定する。例えば図5に示すように、グループ#1のコンシステンシーグループを新たに設定する。そして、例えば図4に示すように、グループ#1のコンシステンシーグループに、ペア#1〜ペア#nのn個のペアを設定して、各ペアの正ボリュームを正ボリューム#1、副ボリュームを副ボリューム#1〜#nと設定する。また、複製命令を受領しているので、グループ管理情報32におけるグループ#1の命令受領フラグをONにする。そしてペア管理情報31におけるグループ#1に含まれるペア#1〜#nのペア制御状態をすべて「過渡中」状態に設定する。
グループ#1の命令受領フラグがONとなったことで、グループ#1に含まれるペアについての複数複製作成処理が開始された状態であることが識別される。以後、この複数複製作成処理中に処理装置4から複製処理対象LUに対する更新や参照のアクセスが発生した場合は、データ整合性保障のための更新/参照処理54を実行することで、関連のLUのデータにおけるデータ整合性を保障しながら複数の複製が指定のコピー先に作成される。
前記命令受領フラグをONにした後、複数複製作成プログラム20は、命令元の処理装置4に対して、複数複製作成処理が正常に行われることを示す応答を返す処理を行う。CHA7は、命令元の処理装置4に対して当該応答を送信する。
一処理例として、複数複製作成プログラム20は、複製命令受領後における指定の各ペアについての複製処理52を、当該ペアのLUに対する更新/参照のアクセスを受領した時点で開始する。すなわち、複製ボリュームの実体(複製データ)を作成する処理は、処理装置4側からその複製ボリューム(実体なし)に対するアクセスが発生した際に開始すればよい。前記複製ボリュームの実体を作成する処理とは、すなわちコピー元ボリュームM(正ボリューム)からコピー先ボリュームR(副ボリューム)へと必要なデータコピー処理を行って正ボリュームとデータ内容が一致した副ボリュームのデータを作成する処理である。
また、前記複製ボリュームの実体を作成する処理は、前記命令受領情報21に基づき当該コンシステンシーグループに含まれる複数のペアについて一つずつ順番に複製処理52を行うことによってもなされる。複数のペアについて順次に複製処理52を行う複数複製作成処理例については後述する。
<複数複製作成の際の記憶ボリューム>
図7は、実施の形態1のストレージ装置1で複数複製作成の際に処理対象となるLUと制御情報とについて示す説明図である。各実施の形態では、複数複製作成処理に係わるLUとして、コピー元ボリュームM、複数のコピー先ボリュームR{R1,R2,……,Rn}、退避ボリュームSがある。複数複製作成プログラム20は、一回の複数複製作成処理において処理対象となる複数のペア(ペア#1〜#n)について、指定のコピー元ボリュームMに格納されている複製対象データの複製を、複数の異なるコピー先ボリュームR{R1,R2,……,Rn}へ作成する処理、すなわち複数回の複製処理52を行う。各実施の形態では、例として、複数複製作成の際の複製単位をLUとする。すなわち、指定のコピー元ボリュームMとなるLUに格納されているすべてのデータを複製対象データとし、この複製対象データと同一データがn個のコピー先ボリュームRとなるLUにそれぞれ格納される。なお複数のコピー先ボリュームを区別しない場合をRで表わす。コピー元ボリュームM、コピー先ボリュームRは、それぞれペアにおける正ボリューム、副ボリュームに対応する。また各実施の形態では、コピー元ボリュームMとコピー先ボリュームRのペアの関係は、ツリー状すなわち一つのコピー元ボリュームMに対して複数のコピー先ボリュームRがペアとして対応付けされる関係である。一つのコピー元ボリュームMと複数のコピー先ボリュームRとで一つのコンシステンシーグループが形成される。
コピー元ボリュームMは、複数複製作成の際にコピー元データが格納されているLUである。コピー先ボリュームRは、複数複製作成の際にコピー先データが格納されるLUである。退避ボリュームSは、複数複製作成の際に、複製命令を制御装置5で受領した時点のコピー元データについて後述のデータ整合性保障のために退避処理するために確保及び使用されるLUである。コピー元ボリュームMまたはそれに含まれるコピー元データと、コピー先ボリュームRとは、処理装置4からの複製命令内において指定される。退避ボリュームSは、ストレージ装置1における退避処理を行うかどうかの設定に基づき記憶装置6上の記憶領域に確保される。例えば退避ボリュームSは、退避処理の実行が必要な時にストレージ装置1内で自動的に確保されて使用される。
コピー元ボリュームMと複数のコピー先ボリュームRとで、複数(n個)のペア{ペア#1、ペア#2、……、ペア#n}となる。これら複数のペアが、複数複製作成を開始しようとする時点では確立されていなくても構わない。処理装置4からの単一の複製命令において、これら複数のペアに対応するコピー元とコピー先についての指定さえ行われればよく、ストレージ装置1側の処理で複数のペアが確立される。複数複製作成処理におけるコピー元ボリュームMとコピー先ボリュームRの各ペアについての複製処理52により、二つの記憶ボリュームの各「シンプレックス」状態から、ペア制御状態として「過渡中」状態を経由して「スプリット」状態へと遷移される。複数複製作成処理における一つのペアについての複製処理52は、従来の複製機能で言えばペア分割処理に対応するが、「ペア」状態を経由する必要なしに「スプリット」状態へと遷移すること等が異なる。
コピー先ボリュームRは、コピー元ボリュームMと同一ストレージ装置1内に配置されてもよいし、他のストレージ装置2内に配置されてもよい。また複数のストレージ装置に跨って配置されてもよい。また、コピー先ボリュームRは、既に設定済みのLUが対象であってもよいし、複数複製作成にあたり新規に設定されるLUとしてもよい。また、ストレージ装置1内または他のストレージ装置2内に、コピー元ボリュームMについての退避ボリュームSが確保される。以下では例としてコピー元ボリュームM、複数のコピー先ボリュームR、退避ボリュームSがすべて同一ストレージ装置1内に確保されるものとして説明するが、これら複数の記憶ボリュームは、複数のストレージ装置間に跨った配置が可能である。複数のストレージ装置間に跨った配置の場合、例えばストレージ装置間で、転送処理53により、例えばCHA7の制御を通じたデータ転送処理が行われる。
実施の形態1のストレージ装置1では、ストレージ装置1を含むコンピュータシステムにおけるデータ記憶に関するポリシーに基づき、正ボリュームすなわち前記コピー元ボリュームMについてのデータ退避処理が行われる。このデータ退避処理は、複数複製作成処理における関連の複数のLUにおけるデータ整合性の保障に係わる処理である。データ退避処理は、主にコピー元ボリュームMのデータに対するライト命令等の更新のアクセスが発生した際に更新前データを退避ボリュームSにコピーすることで退避する処理である。データの退避後にコピー元ボリュームMに更新後データがライトされる。データ退避処理を行うか行わないかは処理装置4を使用するユーザが選択できる。退避処理を行う場合、ストレージ装置1内に、コピー元ボリュームMのデータについての退避用の記憶ボリュームである退避ボリュームSを設ける。
<複数複製作成の際の制御情報>
前記図7において、ストレージ装置1は、複数複製作成のために使用する制御情報として、コピー元ボリュームMに対応してコピー元退避情報22を制御装置5の共用メモリ9内に作成して保持する。また、複数のコピー先ボリュームRに対応してコピー先更新情報23{23−1,23−2,……,23−n}を制御装置5の共用メモリ9内に作成して保持する。制御装置5で複製命令を受領後に命令受領情報21を共用メモリ9に格納する際に、指定のコピー元・コピー先となるLUにそれぞれ対応してコピー元退避情報22とコピー先更新情報23が新規作成される。制御装置5は、前記制御情報(22,23)を参照することで複数複製作成に係わる記憶ボリュームにおけるデータ退避の状態とデータ更新の状態をそれぞれ判断する。
コピー元退避情報22は、コピー元ボリュームMに格納されているデータについての退避の状態についてビットマップ形式で管理・識別するために使用される制御情報である。コピー元退避情報22は、一つのコピー元ボリュームMにつき一つ作成・保持される。このビットマップでは、コピー元ボリュームM内の部分データ1個ごとにON(“1”)/OFF(“0”)の1ビットが対応する。前記部分データは、例えばブロックやトラックやファイルなどが単位である。
コピー先更新情報23は、コピー先ボリュームRに格納されているデータについての更新の状態についてビットマップ形式で管理・識別するために使用される制御情報である。なお前記コピー先ボリュームRに格納されているデータについての更新とは、処理装置4からのデータのライト命令等による更新を指す。これは複製処理52でコピー元ボリュームM側からデータがコピーされることによる更新ではないことに注意しておく。コピー先更新情報23は、一つのコピー先ボリュームRにつき一つ作成・保持される。このビットマップでは、コピー先ボリュームR内の部分データ1個ごとにON(“1”)/OFF(“0”)の1ビットが対応する。
なお本実施の形態ではコピー元退避情報22、コピー先更新情報23等の制御情報をビットマップ形式としたが、前記データ退避やデータ更新の状態が識別できれば他の形式としてもよい。
図8は、前記複数複製作成のための制御情報であるコピー元退避情報22とコピー先更新情報23の更新条件について示す表である。制御装置5は、コピー元退避情報22を、コピー元ボリュームM単位で作成して共用メモリ9に格納する。また制御装置5は、コピー先更新情報23を、コピー先ボリュームR単位で作成して共用メモリ9に格納する。制御装置5は、コピー元退避情報22におけるビットを、処理装置4からの複製命令の受領時にON(“1”)にする。すなわちコピー元退避情報22の新規作成時にはビットがすべてONとなる。制御装置5は、コピー元ボリュームM内のある部分データについて退避ボリュームSへの退避が発生した場合に、コピー元退避情報22における該当部分データに対応するビットを更新すなわちOFF(“0”)にする。コピー元ボリュームMのデータへの更新アクセスの発生時、コピー元退避情報22を参照して対応ビットがOFFであった場合は、退避済み状態であるのでそれ以上はデータ退避処理を行わず、対応ビットもOFFのままとする。
同様に、制御装置5は、コピー先更新情報23におけるビットを、処理装置4からの複製命令の受領時にON(“1”)にする。すなわちコピー先更新情報23の新規作成時にはビットがすべてONとなる。制御装置5は、コピー先ボリュームR内のある部分データについての更新が発生した場合に、コピー先更新情報23における該当部分データに対応するビットを更新すなわちOFF(“0”)する。コピー先ボリュームRのデータへの更新アクセスの発生時、コピー先更新情報23を参照して対応ビットがOFFであった場合は既に更新済み状態であり、更なる更新処理を行っても対応ビットをOFFのままとする。
前記図7では、ストレージ装置1での複製命令の受領時の初期状態について示している。例として、コピー元ボリュームM内の部分データとしてデータaが格納されている。複製処理52は未開始であるので、複数のコピー先ボリュームRは初期状態であり、前記コピー元ボリュームMのデータaに対応する部分データにおいてデータ無しの状態である。退避ボリュームSも初期状態であり対応する部分データにおいてデータ無しの状態である。また、制御情報として、コピー元退避情報22の各ビットはすべてON(“1”)の状態であり、コピー先更新情報23の各ビットはすべてON(“1”)の状態である。
<複数複製作成命令>
処理装置4上の複製管理プログラム46から発行される複製命令には、命令名や、命令元、命令先の情報に加えて、コピー元ボリュームMとコピー先ボリュームRの複数の指定情報が含まれる。例えば前記コピー元とコピー先の指定情報は、処理対象のLUである{M,R1,……,Rn}についての識別情報、例えばLU番号が含まれ、これにより複数のペア(ペア#1〜#n)が指定される。あるいは、前記コピー元とコピー先の指定情報は、設定済みのコンシステンシーグループが指定される形式でもよい。また、コピー元ボリュームMの指定情報とその複製数nを指定する形式や、複数のコピー先ボリュームRを作成する対象となる記憶領域範囲などを指定する形式でもよい。ストレージ装置1の複数複製作成プログラム20は、コピー先ボリュームRの指定が前記複製数nの指定のようにLU番号等による直接的な指定ではない形式にも対応する。複数複製作成プログラム20は、前記各形式に対応して、適宜、複製ボリュームとなるLUを選択あるいは新規に確保する処理等を行う。
複数複製作成の際、処理装置4のオペレータは、複製管理プログラム46上のユーザインターフェイスを通じて、ストレージ装置1で確保されていて利用可能なLUについての情報(LU情報)を画面に表示して確認する。複製管理プログラム46は、前記LU情報以外にも、前記ペア管理情報31やグループ管理情報32等に関連する各種情報をコンピュータシステム内のストレージ装置1から取得して表示可能である。処理装置4のオペレータは、前記制御情報の確認に基づき、目的のデータについて複数の複製を作成させるための指定情報を入力する。例えばユーザインターフェイスがCUIの場合、コマンドラインにおいて、複製命令における命令名、前記コピー元とコピー先の複数の指定情報となるLU番号などを入力する。また例えばユーザインターフェイスがGUIの場合、Webブラウザ等において、メニューから複製命令を選択し、またLU管理情報の中からコピー元やコピー先となるLU番号を選択して、その他関連情報を確認してから実行ボタンを押す。処理装置4のオペレータは、画面に表示されるLU情報あるいはペアやコンシステンシーグループに関する情報等の中から、コピー元ボリュームMやコピー先ボリュームRとなるLUの項目を選択する。これら指示入力に対応して、複製管理プログラム20の処理によって単一の複製命令が発行され、ネットワーク3を通じて、処理要求先となるコピー元ボリュームMを有するストレージ装置1に対し送信される。
<更新/参照処理>
ストレージ装置1における複数複製作成処理のうちの更新/参照処理54について説明する。図9〜図15は、更新/参照処理54について説明するための図である。複数複製作成プログラム20は、複数複製作成処理中にコピー元ボリュームMあるいはコピー先ボリュームRに対し処理装置4からデータの更新または参照のアクセスが発生した場合に、更新/参照処理54を行う。更新/参照処理54では、基本的な処理方針として、コンシステンシーグループにおける複製処理52において、複製命令の受領及び複数複製作成処理開始の時点におけるコピー元ボリュームMのデータの状態をもとに、処理装置4からの更新や参照のアクセスを処理する。複数複製作成プログラム20は、更新/参照処理54として、更新/参照のアクセス対象となるLU(データ)についてのペア(アクセス対象ペア)が複製処理52済みか未処理かで異なる処理を行う。例えば、後述するように複数のペアについての順次の複製処理52中に更新/参照のアクセスが発生した場合に、前記アクセス対象ペアについて先に複製処理52を済ませてから該当データのライト処理/リード処理を行う等の制御を行う。
複数複製作成プログラム20は、処理対象LUに対する更新/参照アクセスの発生時、前記アクセス対象ペアにおけるLUについて、前記制御情報(22,23)を参照してデータの退避や更新の状態を判断する。そして複数複製作成プログラム20は、アクセス対象やアクセス種類や関連LU(前記グループ61)におけるデータ状態等に応じて、コピー元ボリュームMにおけるデータ退避処理及びリード/ライト処理、コピー元からコピー先へのデータコピー処理、及び、コピー先ボリュームRにおけるリード/ライト処理等を行う。またこれら処理に伴い前記制御情報(22,23)の値を更新する。複数複製作成プログラム20は、更新/参照処理54の発生に応じて処理対象ペアを適宜選択して複製処理52を行いながら、コンシステンシーグループ内のすべてのペアについて複製処理52を完了する。
複製命令と、関連LUに対する更新/参照の命令との順序については、例えば前記命令受領フラグのON/OFFの参照等により判断する。すなわち、制御装置5でリード命令やライト命令を受領した際に、共用メモリ9のグループ管理情報32における命令受領フラグの値を参照して判断する。またペアについて複製処理52済みか未処理かについてはペア管理情報31のペア制御状態の参照等により判断する。ペア制御状態が「スプリット」状態である場合は、そのペアについては複製処理52済みであるとわかる。
図9は、更新/参照処理54に係わる複数複製作成処理例について示す説明図であり、前記図7に対応した複数複製作成処理中の一状態を示している。複数複製作成プログラム20は、複数のペア(ペア#1〜#n)について、指定のコピー元ボリュームMに格納されている複製対象データの複製を、n個の異なるコピー先ボリュームR{R1〜Rn}へと作成するための複数回の複製処理52(P1〜Pn)を行う。この処理例では、複製処理52として、ペア#1についてコピー元ボリュームM内の複製対象データをコピー先ボリュームR1の対応領域にコピーする複製処理P1、ペア#2についてコピー元ボリュームM内の複製対象データをコピー先ボリュームR2の対応領域にコピーする複製処理P2、同様にペア#nについてコピー元ボリュームM内の複製対象データをコピー先ボリュームRnの対応領域にコピーする複製処理Pnまでを行う。複数複製作成プログラム20は、前記複製処理52(P1〜Pn)を、例えば一つのペアずつ選択しながら順次に実行する。
前記図7に示すように、コピー元退避情報22、コピー先更新情報23{23−1〜23−n}は、複製命令の受領時点では、ビットがすべてON(“1”)となる。例えば、前記図6のようにコピー元ボリュームMのある部分データに初期データaが格納されている状態で、コピー元ボリュームM内のデータaを複製対象として複数のコピー先ボリュームRへ複製を作成させる指定を含んだ複製命令が発行されたものとする。制御装置5での命令受領処理51後、指定の複数のペア(ペア#1〜#n)について、例えば順次に複製処理52(P1〜Pn)が開始される。複製処理52により、コピー元ボリュームM内のデータaがコピー先ボリュームRにおける対応領域へコピーされる。例えば、図9に示すように、複製処理P1,P2で、順にコピー先ボリュームR1,R2へのデータaのコピーが終わる。これによりペア#1,#2が「スプリット」状態に遷移される。ペア制御状態が「スプリット」状態であることを点線で示す。この時、その他のコピー先ボリュームRは対応領域においてデータ無しの状態である。
例えば前記P1,P2までの複製処理52が完了後に、コピー元ボリュームM内のデータaに対し処理装置4から更新のアクセスとして更新データbを書き込ませるためのライト命令が発生したとする。その場合、複数複製作成プログラム20は、前記ライト命令を受領後、まずコピー元ボリュームMの指定位置から更新前データaを退避ボリュームSの対応位置へ退避処理し、コピー元退避情報22中の対応ビットをOFF(“0”)してから、コピー元ボリュームMの指定位置に更新後データbを上書きする処理を行う。その後、前記コピー元ボリュームMに関する複製処理52は、退避ボリュームS内の更新前データaを用いて行われる。すなわち、例えばペア#2の次のペア#3(図示しない)に対する複製処理52で、コピー元ボリュームMにおける前記更新後データbを用いてコピー先へのコピー処理が行われてしまうとコピー先ボリュームR間でデータaとデータbとでデータ不整合が生じてしまうが、退避ボリュームS内の前記更新前データaを用いてコピーを行えばデータ不整合が生じない。
また例えば、ペア#3についての複製処理52中、処理装置4から、コピー先ボリュームR1内の前記データaの部分すなわちコピー処理済みの部分に対し更新のアクセスとしてデータcを書き込ませるためのライト命令が発生したとする。その場合、複数複製作成プログラム20は、コピー先ボリュームR1がその時点で複製処理52済みであるので、そのままコピー先ボリュームR1のデータaに対し更新データcを書き込んで更新し、コピー先更新情報23−1中の対応ビットをOFF(“0”)にする。
図10(a)〜(d)は、実施の形態1のストレージ装置1における複数複製作成処理のうちの更新/参照処理54について、制御情報(22,23)と実行処理との対応をまとめた表である。更新または参照のアクセスの発生時におけるコピー元ボリュームMのデータ状態(退避済みか否か)とコピー先ボリュームRのデータ状態(更新済みか否か)によって実行処理が異なる。図10に示す処理は、図11〜14に示すフローチャート、図15に示す状態遷移図にそれぞれ対応している。ストレージ装置1で各状況に応じた処理を実行することで、コンシステンシーグループにおけるデータ整合性が保障される。
図10(a)は、コピー元ボリュームMについて更新アクセスが発生した際にストレージ装置1で実行する更新処理を示す。制御装置5は、一つのコピー元ボリュームMのデータについて更新するためのライト命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。表に示すように、コピー元退避情報22における対応ビット、すなわちコピー元ボリュームMにおける前記ライト命令によるライト指定位置に対応するビットがON(“1”)である場合、以下の処理を行う。前記コピー元退避情報22のビットがONであることは、コピー元ボリュームMにおける対応データが未退避の状態であること、すなわち当該複数複製作成処理においてコピー元ボリュームMにおける対応位置に対して退避処理を一回も実行したことがない状態を示している。この場合は、まず、コピー元ボリュームM内の更新前データについて退避ボリュームSへ退避すなわちライト処理し、コピー元退避情報22の前記対応ビットをON(“1”)からOFF(“0”)に更新する。そして、前記更新前データの退避後に、コピー元ボリュームMの対応データを更新後データすなわち処理装置4からのライトデータにより上書きして更新する。一方、前記コピー元退避情報22の対応ビットがOFF(“0”)である場合、以下の処理を行う。前記コピー元退避情報22の対応ビットがOFF(“0”)であることは、コピー元ボリュームMにおける対応データが退避済み状態であること、すなわち、当該複数複製作成処理においてコピー元ボリュームMにおける対応位置に対して退避処理を実行したことがある状態を示している。この場合は、コピー元ボリュームM内の更新前データについて退避は行わずに更新後データにより上書きして更新する。複数複製作成処理中、前記更新アクセスの発生及び対応処理の実行後においては、ペアについての複製処理52を、退避ボリュームSへの退避データすなわち複数複製作成処理開始時点における状態のコピー元ボリュームMのデータを用いて行う。これによりコンシステンシーグループにおけるデータ整合性が保障される。
図10(b)は、コピー先ボリュームRについて更新アクセスが発生した際にストレージ装置1で実行する更新処理を示す。制御装置5は、一つのコピー先ボリュームRのデータについて更新するためのライト命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。コピー元退避情報22の対応ビットがONでコピー先更新情報23の対応ビットがONの場合は、以下の処理を行う。前記コピー先更新情報23の対応ビットがONであることは、コピー先ボリュームRにおける対応データが未更新の状態であること、すなわち当該複数複製作成処理においてコピー先ボリュームRにおける対応位置に対してライト命令によるデータ更新処理を一回も実行したことがない状態を示している。この場合は、まず、コピー元ボリュームMの更新前データについて退避ボリュームSへ退避し、コピー元退避情報22の対応ビットをONからOFFに更新する。そして、指定のコピー先ボリュームRの対応データを更新後データすなわち処理装置4からのライトデータによりライト処理して更新し、コピー先更新情報23の対応ビットをONからOFFに更新する。また、コピー元退避情報22の対応ビットがOFFでコピー先更新情報23の対応ビットがONの場合は、指定のコピー先ボリュームRの対応データを同様にライト処理して更新し、コピー先更新情報23の対応ビットをONからOFFに更新する。また、コピー先更新情報23の対応ビットがOFFの場合は、コピー先ボリュームRの対応データをライト処理して更新する。コピー先更新情報23の対応ビットはOFFのままである。
図10(c)は、コピー元ボリュームMについて参照アクセスが発生した際にストレージ装置1で実行する参照処理を示す。制御装置5は、一つのコピー元ボリュームMのデータについて参照するためのリード命令を処理装置4から受領すると、制御情報であるコピー元退避情報22とコピー先更新情報23の状態に係わらず、指定のコピー元ボリュームMのデータをリード処理して命令元の処理装置4に対して返す処理を行う。リード対象データに対し既に更新が発生しているなら更新済みの最新データがリードデータとして返されることとなる。
図10(d)は、コピー先ボリュームRについて参照アクセスが発生した際にストレージ装置1で実行する参照処理を示す。制御装置5は、一つのコピー先ボリュームRのデータについて参照するためのリード命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。コピー元退避情報22の対応ビットがONでコピー先更新情報23の対応ビットがONの場合は、コピー元ボリュームMの更新前データについて退避ボリュームSへ退避し、コピー元退避情報22の対応ビットをONからOFFに更新する。そして、制御装置5は、退避データ(更新前データ)を退避ボリュームSからリード処理して処理装置4に対して返す処理を行う。この場合、コピー先ボリュームRとして複数複製作成処理開始時点のコピー元ボリュームMのデータ(例えば前記データa)を返すことが目的となるので、上記処理を実行することで対応できる。また、コピー元退避情報22の対応ビットがOFFでコピー先更新情報23の対応ビットがONの場合は、退避済み状態であるので、退避ボリュームSから対応する退避データをリード処理して処理装置4に対して返す処理を行う。また、コピー先更新情報23の対応ビットがOFFの場合は、指定のコピー先ボリュームRのリード対象データをリード処理して処理装置4に対し返す。リード対象データに対し既に更新が発生しているので更新済みの最新データがリードデータとして返されることとなる。コピー先更新情報23の対応ビットはOFFのままである。
次に、図11〜図14のフローを参照しながら各場合における更新/参照処理54の処理手順について説明する。
図11は、前記図10(a)に対応したコピー元更新処理のフローを示す。複数複製作成プログラム20は、複数複製作成処理中に、コピー元ボリュームMのデータについて更新するためのライト命令を処理装置4から受領した場合、まず、コピー元退避情報22における更新対象データに対応するビットを確認する(S111)。前記コピー元退避情報22の対応ビットがONである場合すなわち未退避状態の場合は、コピー元ボリュームMの更新前データについて退避ボリュームSへ退避し(S112)、コピー元退避情報22の対応ビットをONからOFFに更新する(S113)。そして、コピー元ボリュームMの更新前データを更新後データすなわち処理装置4からのライトデータにより上書きして更新する(S114)。前記S111でコピー元退避情報22がOFFである場合すなわち退避済み状態の場合は、コピー元ボリュームMの対応データを退避は行わずに更新後データにより更新する(S114)。
図12は、前記図10(b)に対応したコピー先更新処理のフローを示す。複数複製作成プログラム20は、複数複製作成処理中に、コピー先ボリュームRのデータについて更新するためのライト命令を処理装置4から受領した場合、まず、コピー先更新情報23における更新対象データに対応するビットを確認する(S121)。前記コピー先更新情報23の対応ビットがONの場合すなわち未更新状態の場合、更に、コピー元退避情報22の対応ビットを確認する(S122)。前記コピー元退避情報22の対応ビットがONの場合すなわち未退避状態の場合、コピー元ボリュームMの対応データについて退避ボリュームSへ退避し(S123)、コピー元退避情報22の対応ビットをONからOFFに更新する(S124)。そして、コピー先ボリュームRの更新対象データを更新後データすなわち処理装置4からのライトデータにより上書きして更新し(S125)、コピー先更新情報23の対応ビットをONからOFFに更新する(S126)。前記S122でコピー元退避情報22がOFFである場合すなわち退避済み状態の場合は、前記コピー元ボリュームMの対応データの退避は行わずに、前記コピー先ボリュームRの更新対象データの更新処理とコピー先更新情報23の更新を行う(S125,S126)。前記S121で前記コピー先更新情報23の対応ビットがOFFの場合すなわち更新済み状態の場合、コピー先ボリュームRにおける更新対象データを更新後データにより上書きして更新する処理を行う(S127)。
図13は、前記図10(c)に対応したコピー元参照処理のフローを示す。複数複製作成プログラム20は、複数複製作成処理中に、コピー元ボリュームMのデータについて参照するためのリード命令を処理装置4から受領した場合、制御情報であるコピー元退避情報22とコピー先更新情報23の状態に係わらず、指定のコピー元ボリュームMからリード対象となるデータをリード処理して命令元の処理装置4に対して返す処理を行う(S131)。
図14は、前記図10(d)に対応したコピー先参照処理のフローを示す。複数複製作成プログラム20は、複数複製作成処理中に、コピー先ボリュームRのデータについて参照するためのリード命令を処理装置4から受領した場合、まず、コピー先更新情報23におけるリード対象データに対応するビットを確認する(S141)。前記コピー先更新情報23の対応ビットがONの場合すなわち未更新状態の場合、更に、コピー元退避情報22の対応ビットを確認する(S142)。前記コピー元退避情報22の対応ビットがONの場合すなわち未退避状態の場合、コピー元ボリュームMの対応データについて退避ボリュームSへ退避し(S143)、コピー元退避情報22の対応ビットをONからOFFに更新する(S144)。そして、退避ボリュームSから対応する退避データ(更新前データ)をリード処理して処理装置4に対して返す処理を行う(S145)。前記S142でコピー元退避情報22の対応ビットがOFFである場合は、退避済み状態であるので退避処理は行わずに、前記退避ボリュームSから退避データをリード処理して返す処理を行う(S145)。前記S141で、コピー先更新情報23の対応ビットがOFFの場合すなわち更新済み状態の場合は、指定のコピー先ボリュームRのリード対象データをリード処理して処理装置4に対し返す処理を行う(S146)。
図15は、複数複製作成処理において更新/参照処理52が行われた場合の、コピー元退避情報22とコピー先更新情報23の状態についての状態遷移図である。図中の「ON―ON」の状態は、左側でコピー元退避情報22のビットがONでありかつ右側でコピー先更新情報23の対応ビットがOFFである状態を示す。他の状態も同様にコピー元退避情報22のビットとコピー先更新情報23のビットとのON・OFFの組み合わせを示す。図中の矢印は処理装置4からのアクセスの発生及び前記更新/参照処理54に伴う状態の遷移を示す。例えば前記「ON―ON」の状態で、コピー元ボリュームMへの参照アクセスでは状態は変化せず、コピー元ボリュームMへの更新アクセスの場合及びコピー先ボリュームRへの参照アクセスの場合は状態が「OFF−ON」へと遷移し、コピー先ボリュームRへの更新アクセスの場合は状態が「OFF−OFF」へと遷移する。他の状態についても前記更新/参照処理54に伴って図中に示すように状態が遷移される。
<複数複製作成処理フロー>
図16は、実施の形態1のストレージ装置1での複数複製作成処理の手順を示すフローチャートであり、特に、指定の複数のペアについて順次に複製処理52を実行する場合の処理手順例を示す。この処理手順では、前記命令受領情報21に基づきコンシステンシーグループに属する複数のペアについて一つのペアずつ順番に複製処理52を行う。コピー元からコピー先へ必要なデータコピー処理を行って複製ボリュームを作成する複製処理52を行って、各ペアを順に「スプリット」状態へと遷移させる。複数複製作成プログラム20は、コピー元退避情報22やコピー先更新情報23、及びペア管理情報31やグループ管理情報32等の制御情報を参照してコピー元ボリュームMやコピー先ボリュームRにおけるデータの退避や更新の状態を判断しながら、前記複数のペアについて順次に複製処理52を実行する。前記順次の複製処理52におけるペアの処理順序については、前記更新/参照処理52の発生等に応じて適宜選択可能である。
まず、制御装置5上の複数複製作成プログラム20は、処理装置4からの複製命令を受信して、命令受領情報21をストレージ装置1内に格納する命令受領処理を行う(S1)。例えば処理装置4から複製命令を受信したCHA7は、共用メモリ9に、コピー元とコピー先の指定情報等を含む命令受領情報21を格納する処理を行う。次に、複数複製作成プログラム20は、命令受領情報21をもとに、グループ管理情報32において、コピー元ボリュームMと複数のコピー先ボリュームRを含んだコンシステンシーグループを設定する。そして、そのグループの命令受領フラグをONにする。また、必要に応じて、前記グループに対応したコピー元退避情報22やコピー先更新情報23等の制御情報を作成して共用メモリ9に格納する処理を行う(S2)。
複数複製作成プログラム20は、前記命令受領フラグのONにより複数複製作成処理を開始する(S3)。例えばDKA10は、共用メモリ9に新たな命令受領情報21が格納されている場合は、その命令受領情報21を参照して複数複製作成処理を開始する。以後のステップ(S4〜S8)で、前記コンシステンシーグループに含まれる複数のペアについて、一つずつ順次に複製処理52を実行する。
複数複製作成プログラム20は、一つのペアについての複製処理52を実行する前に、複製命令の受領以後にコピー元ボリュームMやコピー先ボリュームRに対する更新/参照のアクセスが発生しているかどうかを確認する(S4)。更新/参照のアクセスが発生している場合(S4−Yes)、コンシステンシーグループにおけるデータ整合性を保障するために、各種アクセス発生時点の関連LUのデータ状態に応じた更新/参照処理54を実行する(S5)。例えば処理装置4からライト命令やリード命令をCHA7で受信して当該命令が共用メモリ9に格納されている場合にDKA10が前記更新/参照処理54を実行する。
更新/参照のアクセスが発生していない場合は(S4−No)、任意に選択した一つのペアについての複製処理52を実行する(S6)。複製処理52では、コピー元ボリュームMを有するストレージ装置1は、コピー処理位置を示すポインタをもとに、コピー元ボリュームM内の複製対象データを所定データ単位例えばトラック単位等で順にコピー先ボリュームR内の対応位置へとコピーする処理を行う。例えばDKA10は、記憶装置6上のコピー元ボリュームMに対応するLDEVから複製対象データをまずキャッシュメモリ8上に読み出し、読み出したデータを記憶装置6上のコピー先ボリュームRに対応するLDEVに書き込む処理を行う。コピー先ボリュームRがコピー元とは別のストレージ装置2内にある場合は、転送処理53により、CHA7及びネットワーク3を通じて複製対象データの転送を行い、転送先のストレージ装置2で、CHA7が一旦データをキャッシュしてから、ストレージ装置2内のコピー先ボリュームRへデータのライト処理を行わせる。
複製処理52において一つのペアについてデータコピー処理が終了して複製ボリュームが作成されたら、複数複製作成プログラム20は、ペア管理情報31において該当ペアのペア制御状態を「過渡中」状態から「スプリット」状態へと遷移させる(S7)。
複製処理52後、コンシステンシーグループに属するすべてのペアについて複製処理52が完了したかどうかをペア制御状態の参照等により確認し(S8)、すべて完了するまで前記複製処理52を繰り返す。すべてのペアについての複製処理52の完了後(S8−Yes)、複数複製作成プログラム20は、前記グループ管理情報32における命令受領フラグをOFFにする(S9)。命令受領フラグをOFFにすることで該当コンシステンシーグループにおける複数複製作成処理が完了したことが識別される。そして、複数複製作成プログラム20は、例えばCHA7により命令元の処理装置4に対し、指定された複数の複製の作成を完全に完了したことを報告する応答を返す(S10)。
なお、前記更新/参照処理54(S5)に関して、複製処理52中に更新/参照のアクセスが発生しても該当データの更新/参照を処理せずに、すべてのペアについての複製処理52が完了してから前記データの更新/参照を処理するように制御してもよい。この制御の場合はその分処理装置4に対する前記データの更新/参照についての応答が遅くなる。
以上のような処理により、実施の形態1のストレージ装置1では、処理装置4の複製管理プログラム46から複数の複製を作成させるための命令を発行させる時点で、複数のLUについてペアを確立させるための複数回のペア作成命令を発行する必要がない。単一の複製命令によってコピー元とコピー先を複数指定するだけで、ストレージ装置1で複数のペアが確立され、「スプリット」状態すなわち正ボリュームに対する複数の複製ボリュームとなる副ボリュームが作成されて正ボリュームと独立してアクセス可能となる状態になる。またこの複数複製作成処理の際に同タイミングで関連LUに対して更新/参照のアクセスが行われても、データ整合性が保障されながらデータの更新/参照が処理される。また、複数複製作成機能により作成した複数の複製を利用してバックアップ処理を行う等、有用な処理を実現できる。
<複数の複製を用いた処理例>
図17は、記憶ボリュームのデータについて複数複製作成機能により作成される複数の複製ボリュームを利用した処理の例として、バックアップ処理について示す説明図である。例えば、ストレージ装置1にネットワーク3を介して接続されている処理装置4a,4bが有る。処理装置4aは、ストレージ装置1内のコピー元ボリュームMを利用して、無休で継続するオンライン業務を行っている。すなわち、処理装置4aは、コピー元ボリュームMに対し、複数の複製を作成する前後において、データのリード/ライト等のアクセスを行っている。コピー元ボリュームMについて複数の複製をコピー先ボリュームRへと作成したい場合、いずれかの処理装置4例えば処理装置4bから、コピー元ボリュームMを有するストレージ装置1に対して複製命令を発行する。そして、ストレージ装置1あるいはストレージ装置1と他のストレージ装置2までを含めた複数複製作成処理によって、コピー元ボリュームMについての複数の複製ボリューム#1〜#nを作成させる。例えばストレージ装置1内の記憶領域に複数の複製ボリューム#1〜#nが作成される。この複数複製作成処理の間も処理装置4a,4bはコピー元ボリュームMに対する更新/参照のアクセスが可能である。処理装置4bは、複数複製作成処理によって作成された複数の複製ボリューム#1〜#nのそれぞれについて、コピー元ボリュームMとは別に利用可能となる。例えば、複製ボリューム#1を用いてバックアップデバイス900へのデータのバックアップ処理を行うことができる。またその他の複製ボリューム#2〜#nをテスト用やバッチ処理用等の他の処理に使い分けることができる。
バックアップ処理としては、例えば、バックアップデバイス900を処理装置4bと接続して処理装置4bを中心にバックアップ処理を行うことができる。この場合、処理装置4bを介して、ストレージ装置1に記憶されている複製ボリューム#1のバックアップデータを取得して、処理装置4bからバックアップデバイス900に対しバックアップデータを格納する。また例えば、処理装置4bを介さずにストレージ装置1から直接、ネットワーク3を介してバックアップデバイス900に対してデータの転送を行ってバックアップデータを格納することもできる。また例えば、ストレージ装置1あるいはコピー元ボリュームMを利用している処理装置4aは、作成された複製ボリュームのLU番号を、バックアップ処理を行う処理装置4bに対し通知してバックアップ処理を行わせることができる。
複数複製作成機能の用途としては、前記バックアップ等の各種処理を実行したい場合以外でも、例えば、ライトデータが単一の記憶ボリュームに収まらないサイズを持つために複数の記憶ボリュームに跨って格納される場合や、一つのファイルデータを複数の記憶ボリュームに自動的に格納する制御を行いたい場合などにも有効である。
(実施の形態2)
次に、本発明の実施の形態2におけるストレージ装置について説明する。図18〜27は、実施の形態2のストレージ装置1Bを説明するための図である。実施の形態2のストレージ装置1Bは、複数複製作成処理の際にコピー元ボリュームMのデータについての退避処理を行わず退避ボリュームSも設けない場合に対応した処理形態である。実施の形態2のストレージ装置1Bでは、コピー元ボリュームMやコピー先ボリュームRのデータに対する更新や参照のアクセスが発生した際にもコピー元ボリュームMのデータについてのデータ退避処理は行わずに前記更新や参照を処理する。実施の形態2のストレージ装置1B及びこれを含んだコンピュータシステムのハードウェア構成は、前記図2他に示す実施の形態1の構成と同様である。
図18は、実施の形態2のストレージ装置1B及びこれを含むコンピュータシステムにおける複数複製作成機能に係わる機能ブロック構成を示す図である。処理装置4やネットワーク3を含むコンピュータシステムにおいて、プライマリサイトにストレージ装置1B、セカンダリサイトにストレージ装置2Bを有する。ストレージ装置1Bは、制御装置5で複数複製作成プログラム20Bを実行する。複数複製作成プログラム20Bは、命令受領処理51B、複製処理52B、転送処理53B、更新/参照処理54Bを含む処理を実行させる。ストレージ装置1B内の共用メモリ9に、複数複製作成プログラム20Bが扱う情報として、命令受領情報21B、ペア管理情報31及びグループ管理情報32他の管理情報、コピー情報24等が格納される。また、記憶装置6により提供される記憶領域60Bに、複数複製作成処理で処理対象となる、関連する複数のLUからなるグループ61Bが含まれる。グループ61Bには、コピー元ボリュームM、コピー先ボリュームR{R1〜Rn}を含む。すなわち、グループ61は、コンシステンシーグループを含む。処理装置4は、ストレージ装置1に対し、リード/ライト命令(R/W命令)を発行する他、複製管理プログラム46Bから、複数複製作成命令(複製命令)を発行する。実施の形態1と異なるのは主に、共用メモリ9にコピー情報24が格納され、記憶装置6上の記憶領域に退避ボリュームSを設けないこと等である。複数複製作成プログラム20Bは、退避ボリュームSを用いない複数複製作成処理を行う。コピー情報24は、複製処理52Bに係わるコピー元ボリュームMからコピー先ボリュームRへのデータコピーの状態について識別するための制御情報である。
複数複製作成プログラム20Bにより実行する処理の概要は実施の形態1の場合と同様である。すなわち、複数複製作成プログラム20Bは、処理装置4の複製管理プログラム46Bから単一の複製命令を受領して、命令受領処理51Bを行い、コピー元ボリュームMとコピー先ボリュームRの指定情報を含む命令受領情報21Bを共用メモリ9に格納する。また、前記コピー元とコピー先の指定に基づき、複数のLUが含まれたコンシステンシーグループを、グループ管理情報32やペア管理情報31において設定する。また、グループ管理情報32における命令受領フラグをONにする。そしてペア管理情報31における複数のペアのペア制御状態をすべて「過渡中」状態に設定する。命令受領フラグのONにより複数複製作成処理を開始し、複製処理52B及び転送処理53Bによって複数のペアについて複製ボリュームを作成する処理を行う。以後、この複数複製作成処理中に処理装置4から複製処理対象LUに対する更新や参照のアクセスが発生した場合は、データ整合性保障のための更新/参照処理54Bを実行することで、関連LUのデータにおけるデータ整合性を保障しながら複数の複製が指定のコピー先に作成される。複数複製作成プログラム20Bは、複製命令受領後における各ペアについての複製処理52を、当該ペアのLUに対する更新/参照のアクセスを受領した時点で開始する。また、前記複製ボリュームの実体を作成する処理は、命令受領情報21Bに基づき当該コンシステンシーグループに含まれる複数のペアについて一つずつ順番に複製処理52Bを行うことによってもなされる。
図19は、実施の形態2のストレージ装置1Bで複数複製作成の際に処理対象となるLUと制御情報とについて示す説明図である。複数複製作成処理に係わるLUとして、コピー元ボリュームM、複数のコピー先ボリュームR{R1,R2,……,Rn}がある。複数複製作成プログラム20Bは、一回の複数複製作成処理において処理対象となる複数のペア(ペア#1〜#n)について、指定のコピー元ボリュームMに格納されている複製対象データの複製を、複数の異なるコピー先ボリュームR{R1,R2,……,Rn}へ作成する処理を行う。一つのコピー元ボリュームMと複数のコピー先ボリュームRとで一つのコンシステンシーグループが形成される。ストレージ装置1における退避処理を行うかどうかの設定に基づき記憶装置6上の記憶領域に退避ボリュームSは確保されない。コピー元ボリュームMと複数のコピー先ボリュームRとで、複数(n個)のペア{ペア#1、ペア#2、……、ペア#n}となる。コピー元ボリュームMとコピー先ボリュームRの各ペアについての複製処理52Bにより、二つの記憶ボリュームの各「シンプレックス」状態から、ペア制御状態として「過渡中」状態を経由して「スプリット」状態へと遷移される。
前記図19において、ストレージ装置1Bは、複数複製作成のために使用する制御情報として、コピー元ボリュームMに対応してコピー情報24を共用メモリ9内に作成して保持する。コピー情報24は、コピー元ボリュームMに格納されているデータについてのコピー先へのデータコピーの状態についてビットマップ形式で管理・識別するために使用される制御情報である。コピー情報24は、一つのコピー元ボリュームMにつき一つ作成・保持される。このビットマップでは、コピー元ボリュームM内の部分データ1個ごとにON(“1”)/OFF(“0”)の1ビットが対応する。前記部分データは、例えばブロックやトラックやファイルなどが単位である。制御装置5で複製命令を受領後に命令受領情報21Bを共用メモリ9に格納する際に、指定のコピー元となるLUに対応してコピー情報24が新規作成される。制御装置5は、前記制御情報(24)を参照することで複数複製作成に係わる記憶ボリュームにおける、コピー元からコピー先へのデータコピーの状態を判断する。
図20は、コピー情報24の更新条件について示す表である。複数複製作成プログラム20Bは、コピー情報24におけるビットを、処理装置4からの複製命令の受領時にON(“1”)にする。すなわちコピー情報24の新規作成時にはビットがすべてONとなる。複数複製作成プログラム20Bは、コピー元ボリュームM内のある部分データについての複数のコピー先ボリュームR{R1〜Rn}へのデータコピーが発生した場合に、コピー情報24における該当部分データに対応するビットを更新すなわちOFF(“0”)にする。すなわち、コピー元ボリュームM内の部分データについて複数のコピー先ボリュームR{R1〜Rn}の対応領域へのデータコピーが終了したら、コピー情報24における対応ビットをOFFにする。
前記図19では、ストレージ装置1Bでの複製命令の受領時の初期状態について示している。例として、コピー元ボリュームM内の部分データとしてデータaが格納されている。複製処理52Bは未開始であるので、複数のコピー先ボリュームRは初期状態であり、前記コピー元ボリュームMのデータaに対応する部分データにおいてデータ無しの状態である。また、コピー情報24の各ビットはすべてON(“1”)の状態である。
更新/参照処理54Bについて説明する。図21〜図27は、更新/参照処理54Bについて説明するための図である。複数複製作成プログラム20Bは、複数複製作成処理中にコピー元ボリュームMあるいはコピー先ボリュームRに対し処理装置4からデータの更新または参照のアクセスが発生した場合に、更新/参照処理54Bを行う。更新/参照処理54Bでは、基本的な処理方針として、コンシステンシーグループにおける複製処理52Bにおいて、複製命令の受領及び複数複製作成処理開始の時点におけるコピー元ボリュームMのデータの状態をもとに、処理装置4からの更新や参照のアクセスを処理する。複数複製作成プログラム20Bは、更新/参照処理54Bとして、更新/参照のアクセス対象となるLU(データ)についてのペア(アクセス対象ペア)が複製処理52B済みか未処理かで異なる処理を行う。例えば、複数のペアについての順次のデータコピー処理中に更新/参照のアクセスが発生した場合に、前記アクセス対象ペアについて先にデータコピー処理を済ませてから該当データのライト処理/リード処理を行う等の制御を行う。
複数複製作成プログラム20Bは、処理対象LUに対する更新/参照アクセスの発生時、前記アクセス対象ペアにおけるLUについて、前記制御情報(24)を参照してデータコピーの状態を判断する。そして複数複製作成プログラム20Bは、アクセス対象やアクセス種類や関連LU(前記グループ61B)におけるデータ状態等に応じて、コピー元ボリュームMにおけるリード/ライト処理、コピー元からコピー先へのデータコピー処理、及び、コピー先ボリュームRにおけるリード/ライト処理等を行う。またこれら処理に伴い前記制御情報(24)の値を更新する。複数複製作成プログラム20Bは、更新/参照処理54Bの発生に応じて処理対象ペアを適宜選択して複製処理52Bを行いながら、コンシステンシーグループ内のすべてのペアについて複製処理52Bを完了する。
図21は、更新/参照処理54Bに係わる複数複製作成処理例について示す説明図であり、前記図19に対応した複数複製作成処理中の一状態を示している。複数複製作成プログラム20Bは、複数のペア(ペア#1〜#n)について、指定のコピー元ボリュームMに格納されている複製対象データの複製を、n個の異なるコピー先ボリュームR{R1〜Rn}へと作成するための複製処理52B(P)を行う。複数複製作成プログラム20Bは、複製処理52B(P)において、指定のコピー元ボリュームM内の部分データを、n個のコピー先ボリュームR{R1〜Rn}へとコピーするための複数のコピー処理(p1〜pn)を行う。この処理例では、ペア#1についてコピー元ボリュームM内の部分データをコピー先ボリュームR1の対応領域にコピーするコピー処理p1、ペア#2についてコピー元ボリュームM内の部分データをコピー先ボリュームR2の対応領域にコピーするコピー処理p2、同様にペア#nについてコピー元ボリュームM内の部分データをコピー先ボリュームRnの対応領域にコピーするコピー処理pnまでを続けて行う。複数複製作成プログラム20Bは、前記コピー処理(p1〜pn)を、例えば一つのペアずつ選択しながら順次にまとめて実行する。
例えば、前記図19のようにコピー元ボリュームMのある部分データに初期データaが格納されている状態で、コピー元ボリュームM内のデータaを複製対象として複数のコピー先ボリュームRへ複製を作成させる指定を含んだ複製命令が発行されたものとする。制御装置5での命令受領処理51B後、複製処理52Bとして、指定の複数のペア(ペア#1〜#n)について、例えば順次にデータコピー処理(p1〜pn)が開始される。データコピー処理52Bにより、コピー元ボリュームM内のデータaがコピー先ボリュームRにおける対応領域へコピーされる。例えば、図21に示すように、データコピー処理p1〜pnで、順にコピー先ボリュームR1〜Rnへのデータaのコピーが終わる。これによりペア#1〜#nが「スプリット」状態に遷移される。ペア制御状態が「スプリット」状態であることを点線で示す。
また例えば前記データコピー処理(p1〜pn)中に、コピー元ボリュームM内のデータaに対し処理装置4から更新のアクセスとして更新データbを書き込ませるためのライト命令が発生したとする。その場合、複数複製作成プログラム20Bは、前記ライト命令を受領後、前記データコピー処理(p1〜pn)が終了するまで待つ。前記データコピー処理が終了したらコピー情報24中の対応ビットをOFF(“0”)してから、コピー元ボリュームMの指定位置に更新後データbを上書きする処理を行う。例えば、前記複数のペアについてのデータコピー処理(p1〜pn)中、例えばペア#2に対するデータコピー処理p2中に、コピー元ボリュームMのデータaに対する更新のアクセスが発生したとする。この際に更新前データaをすぐに更新後データbで更新してしまうと、前記更新後データbを用いてコピー先ボリュームRへのコピー処理が行われ、コピー先ボリュームR間でデータaとデータbとでデータ不整合が生じてしまう。従って、前記データコピー処理(p1〜pn)が終了するまで待ってから、コピー元ボリュームMの指定位置に更新後データbを上書きする処理を行えば、データ不整合が生じない。
また例えば、前記データコピー処理(p1〜pn)中に、コピー先ボリュームR例えばコピー先ボリュームR2内の対応データ(複製対象データaに対応する位置のデータ)に対し処理装置4から更新のアクセスとして更新データcを書き込ませるためのライト命令が発生したとする。その場合、複数複製作成プログラム20Bは、前記ライト命令を受領後、前記データコピー処理(p1〜pn)が終了するまで待つ。あるいは、アクセス対象のコピー先ボリュームR(R2)に対するデータコピー処理が終了するまで待つ。あるいは、アクセス対象のコピー先ボリュームR(R2)に対するデータコピー処理を優先的に実行する。そして、複数複製作成プログラム20Bは、前記データコピー処理が終了したら、アクセス対象のコピー先ボリュームR(R2)の対応データ(データa)に対し、その時点でデータコピー処理(p2)済みであるので、更新データcを書き込んで更新する。
図22(a)〜(d)は、実施の形態2のストレージ装置1Bにおける複数複製作成処理のうちの更新/参照処理54Bについて、制御情報(24)と実行処理との対応をまとめた表である。更新または参照のアクセスの発生時におけるコピー元ボリュームMからコピー先ボリュームRへのデータコピーの状態(コピー済みか否か)によって実行処理が異なる。図22に示す処理は、図23〜26に示すフローチャート、図27に示す状態遷移図にそれぞれ対応している。ストレージ装置1Bで各状況に応じた処理を実行することで、コンシステンシーグループにおけるデータ整合性が保障される。
図22(a)は、コピー元ボリュームMについて更新アクセスが発生した際にストレージ装置1で実行する更新処理を示す。制御装置5は、一つのコピー元ボリュームMのデータについて更新するためのライト命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。表に示すように、コピー情報24における対応ビット、すなわちコピー元ボリュームMにおける前記ライト命令によるライト指定位置に対応するビットがON(“1”)である場合、以下の処理を行う。前記コピー情報24のビットがONであることは、コピー元ボリュームMにおける対応データ(更新対象データ)が未コピー状態であること、すなわち当該複数複製作成処理においてコピー元ボリュームMの対応データについて複数のコピー先ボリュームRの対応位置に対するデータコピー処理を実行していない又は完了していない状態を示している。この場合は、まず、コピー元ボリュームM内の対応データについて複数のコピー先ボリュームRへデータコピー処理し、コピー情報24の対応ビットをON(“1”)からOFF(“0”)に更新する。そして、前記更新対象データについてのデータコピー処理後に、コピー元ボリュームMの対応データを更新後データすなわち処理装置4からのライトデータにより上書きして更新する。一方、前記コピー情報24の対応ビットがOFF(“0”)である場合、以下の処理を行う。前記コピー情報24の対応ビットがOFF(“0”)であることは、コピー元ボリュームMにおける対応データがコピー済み状態であること、すなわち当該複数複製作成処理において複数のコピー先ボリュームRの対応位置に対するデータコピー処理を完了済みである状態を示している。この場合は、コピー元ボリュームM内の更新対象データについてそのまま更新後データにより上書きして更新する。コピー情報24の対応ビットはOFFのままである。このように、複数のコピー先ボリュームRへすべてデータコピーしてからコピー元ボリュームMの対象データへの更新が処理される。
図22(b)は、コピー先ボリュームRについて更新アクセスが発生した際にストレージ装置1で実行する更新処理を示す。制御装置5は、一つのコピー先ボリュームRのデータについて更新するためのライト命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。コピー情報24の対応ビットがONは、以下の処理を行う。この場合は、まず、コピー元ボリュームM内の対応データについて複数のコピー先ボリュームRへデータコピー処理し、コピー情報24の対応ビットをONからOFFに更新する。そして、前記対応データについてのデータコピー処理後に、指定のコピー先ボリュームRの対応データ(更新対象データ)を更新後データすなわち処理装置4からのライトデータにより上書きして更新する。一方、前記コピー情報24の対応ビットがOFFである場合、コピー先ボリュームR内の更新対象データについてそのまま更新後データにより上書きして更新する。コピー情報24の対応ビットはOFFのままである。このように、複数のコピー先ボリュームRへすべてデータコピーしてからコピー先ボリュームRの対象データへの更新が処理される。あるいは指定のコピー先ボリュームRへのデータコピー処理が終了してから対象データへの更新が処理される。
図22(c)は、コピー元ボリュームMについて参照アクセスが発生した際にストレージ装置1で実行する参照処理を示す。制御装置5は、一つのコピー元ボリュームMのデータについて参照するためのリード命令を処理装置4から受領すると、コピー情報24の状態に係わらず、指定のコピー元ボリュームMのデータをリード処理して命令元の処理装置4に対して返す処理を行う。
図22(d)は、コピー先ボリュームRについて参照アクセスが発生した際にストレージ装置1で実行する参照処理を示す。制御装置5は、一つのコピー先ボリュームRのデータについて参照するためのリード命令を処理装置4から受領すると、共用メモリ9に保持している制御情報を確認する。コピー情報24の対応ビットがONの場合は、以下の処理を行う。この場合は、まず、コピー元ボリュームM内の対応データについて複数のコピー先ボリュームRへデータコピー処理し、コピー情報24の対応ビットをONからOFFに更新する。そして、前記対応データについてのデータコピー処理後に、指定のコピー先ボリュームRの対応データ(リード対象データ)をリード処理して命令元の処理装置4に対して返す処理を行う。一方、前記コピー情報24の対応ビットがOFFである場合、指定のコピー先ボリュームR内の対応データについてそのままリード処理して命令元の処理装置4に対して返す処理を行う。
次に、図23〜図26のフローを参照しながら各場合における更新/参照処理54Bの処理手順について説明する。
図23は、前記図22(a)に対応したコピー元更新処理のフローを示す。複数複製作成プログラム20Bは、複数複製作成処理中に、コピー元ボリュームMのデータについて更新するためのライト命令を処理装置4から受領した場合、まず、コピー情報24における更新対象データに対応するビットを確認する(S231)。前記コピー情報24の対応ビットがONである場合すなわち未コピー状態の場合は、コピー元ボリュームMの対応データについてコピー先ボリュームの対応位置へデータコピー処理し(S232)、コピー情報24の対応ビットをONからOFFに更新する(S233)。そして、コピー元ボリュームMの対応データを更新後データすなわち処理装置4からのライトデータにより上書きして更新する(S234)。前記S231でコピー情報24がOFFである場合すなわちコピー済み状態の場合は、コピー元ボリュームMの対応データをそのまま更新後データにより更新する(S234)。
図24は、前記図22(b)に対応したコピー先更新処理のフローを示す。複数複製作成プログラム20Bは、複数複製作成処理中に、コピー先ボリュームRのデータについて更新するためのライト命令を処理装置4から受領した場合、まず、コピー情報24における更新対象データに対応するビットを確認する(S241)。前記コピー情報24の対応ビットがONの場合すなわち未コピー状態の場合、コピー元ボリュームMの対応データについて複数のコピー先ボリュームRへデータコピー処理し(S242)、コピー情報24の対応ビットをONからOFFに更新する(S243)。そして、コピー先ボリュームRの対応データを更新後データすなわち処理装置4からのライトデータにより上書きして更新する(S244)。前記S241でコピー情報24がOFFである場合すなわちコピー済み状態の場合は、前記コピー先ボリュームRにの対応データをそのまま更新後データにより更新する(S244)。
図25は、前記図22(c)に対応したコピー元参照処理のフローを示す。複数複製作成プログラム20Bは、複数複製作成処理中に、コピー元ボリュームMのデータについて参照するためのリード命令を処理装置4から受領した場合、コピー情報24の状態に係わらず、指定のコピー元ボリュームMからリード対象となるデータをリード処理して命令元の処理装置4に対して返す処理を行う(S251)。
図26は、前記図22(d)に対応したコピー先参照処理のフローを示す。複数複製作成プログラム20Bは、複数複製作成処理中に、コピー先ボリュームRのデータについて参照するためのリード命令を処理装置4から受領した場合、まず、コピー情報24におけるリード対象データに対応するビットを確認する(S261)。前記コピー情報24の対応ビットがONの場合すなわち未コピー状態の場合、コピー元ボリュームMの対応データについて複数のコピー先ボリュームRへデータコピー処理し(S262)、コピー情報24の対応ビットをONからOFFに更新する(S263)。そして、コピー元ボリュームMから対応する対応データ(リード対象データ)をリード処理して命令元の処理装置4に対して返す処理を行う(S264)。前記S261でコピー情報24の対応ビットがOFFである場合は、前記コピー元ボリュームMから対応データをリード処理して返す処理を行う(S261)。
図27は、複数複製作成処理において更新/参照処理52Bが行われた場合の、コピー情報24の状態についての状態遷移図である。図中の「ON」の状態は、コピー情報24のビットがONである状態を示す。また「OFF」の状態は、コピー情報24のビットがOFFである状態を示す。図中の矢印は処理装置4からのアクセスの発生及び前記更新/参照処理54Bに伴う状態の遷移を示す。例えば前記「ON」の状態で、コピー元ボリュームMへの参照アクセスでは状態は変化せず、コピー元ボリュームMへの更新アクセスの場合及びコピー先ボリュームRへの更新アクセスの場合及びコピー先ボリュームへの参照アクセスの場合は、状態が「OFF」へと遷移する。前記「OFF」の状態についても前記更新/参照処理54Bに伴って図中に示すように状態が遷移される。
以上のような処理により、実施の形態2のストレージ装置1Bでも、実施の形態1と同様に、複数回のペア作成命令を発行する必要がない。また複数複製作成処理の際にデータ整合性が保障されながらデータの更新/参照が処理される。また、複数複製作成機能により作成した複数の複製を利用してバックアップ処理を行う等、有用な処理を実現できる。
<記憶ボリュームの配置パターン>
次に、図28(a),(b)は、前記各実施の形態での複数複製作成処理に係わるLUの配置パターンについて示す表である。図28(a)は、実施の形態1に対応し、ストレージ装置1に退避ボリュームSを設けて退避処理を行う場合のLUの配置パターンを示す。パターンAとパターンBは、コピー先ボリュームRがコピー元ボリュームMと同一ストレージ装置1(「筐体1」)内に作成される場合である。パターンCとパターンDは、コピー先ボリュームRがコピー元ボリュームMと異なるストレージ装置2(「筐体2」)内に作成される場合である。また、パターンAとパターンCは、退避ボリュームSがコピー元ボリュームMと同一ストレージ装置1(「筐体1」)内に作成される場合である。パターンBとパターンDは、退避ボリュームSがコピー元ボリュームMと異なるストレージ装置2(「筐体2」)内に作成される場合である。複数複製作成処理の際、コピー元ボリュームMとコピー先ボリュームRの配置が複数のストレージ装置間に跨る場合、前記転送処理52等によりストレージ装置間でのデータ転送の制御が行われる。
退避ボリュームSを設けた処理形態(実施の形態1)の場合、その分記憶リソースを消費することとなるが、代わりに、コピー元ボリュームMのデータに更新が発生した際の更新前データの保護が十分に行われるので、複数複製作成における応答が早くなる。すなわち処理時間が短くなる。退避ボリュームSを設けない処理形態(実施の形態2)の場合、その分記憶リソースを節約できるが、代わりに、コピー元ボリュームMのデータに更新が発生した際の更新前データの退避は行わないことから、その分複数複製作成における応答が遅くなる。すなわち処理時間が長くなる。
コピー元ボリュームMとコピー先ボリュームRが同一ストレージ装置内に作成される場合は、複数複製作成の際にLU間のデータコピーをストレージ装置内で完結させるので処理に要する時間が短くて済む利点がある。コピー元ボリュームMとコピー先ボリュームRが異なるストレージ装置内に作成される場合は、その分LUのデータコピー処理に時間を要する代わりに、一方のストレージ装置で災害等による障害の発生によりLUのデータが失われた場合でも、他方のストレージ装置でのLUを用いてリカバリが可能である利点がある。退避ボリュームSの配置についても同様であり、コピー元ボリュームMと退避ボリュームSが同一ストレージ装置内に作成される場合は、複数複製作成の際にデータ退避処理をストレージ装置内で完結させるので処理に要する時間が短くて済む。コピー元ボリュームMと退避ボリュームSが異なるストレージ装置内に作成される場合は、その分退避処理に時間を要する代わりに、一方のストレージ装置で障害の発生により退避に関するデータが失われた場合でも、他方のストレージ装置でのLUのデータを用いてリカバリが可能である。
図28(b)は、実施の形態2に対応し、ストレージ装置1Bに退避ボリュームSを設けず退避処理を行わない場合の記憶ボリュームの配置パターンを示す。パターンEは、コピー先ボリュームRがコピー元ボリュームMと同一ストレージ装置1B(「筐体1」)内に作成される場合である。パターンFは、コピー先ボリュームRがコピー元ボリュームMと異なるストレージ装置2B(「筐体2」)内に作成される場合である。前記図28(a)と同様に、各パターンの利点がある。
<処理変形例>
前記各実施の形態に係わる処理変形例について説明する。まず、ストレージ装置において、前記退避ボリュームSを設ける場合の複数複製作成処理(実施の形態1)と設けない場合の複数複製作成処理(実施の形態2)を混在させた処理を行うことが可能である。例えば前記退避ボリュームSを設ける場合の複数複製作成処理と設けない場合の処理を識別する情報をもとにストレージ装置で複数複製作成処理を選択する。例えば処理装置4のユーザは、複製管理プログラム46上のユーザインターフェイスにおいて退避ボリュームSを用いた複数複製作成を行うか否かを指示入力し、複製管理プログラム46がこれに対応する命令をストレージ装置1に対して発行する。
図29は、複数複製作成処理におけるコピー元ボリュームMとコピー先ボリュームRのペアにおける他の関係を示す説明図である。前記各実施の形態での複数複製作成処理において、コピー元ボリュームMとコピー先ボリュームRのペアの関係は、前述した例のようなツリー状に限らず、一つのコピー元ボリュームMと一つのコピー先ボリュームRのペアが複数並列となる関係も可能である。複数のコピー元ボリュームM{M1,M2,……,Mn}のそれぞれについてコピー先ボリュームR{R1,R2,……,Rn}が対応し、複数のペア{ペア#1、ペア#2、……、ペア#n}となる。各コピー元ボリュームMについて退避処理を行う場合、一つのコピー元ボリュームM単位で一つのコピー元退避情報22が作成され、また一つのコピー先ボリュームRに対し一つのコピー先更新情報23が作成されて、前記実施の形態1と同様にデータの退避や更新の状態が管理される。同様に、コピー元ボリュームMについて退避処理を行わない場合、各コピー元ボリュームMに対し前記コピー情報24に相当する情報が作成され、前記実施の形態2と同様にコピー元からコピー先へのデータコピーの状態が管理される。
また、処理装置4側から前記複製命令を受ける対象となるLUは正ボリュームに限らなくともよく、前記複製命令を受ける対象が副ボリュームであっても動作可能である。複製命令内にコピー元ボリュームMとコピー先ボリュームRの指定情報が含まれるので、例えば、処理装置4から副ボリュームを処理要求先として複製命令を発行しても、複数のストレージ装置側で前記複製命令の解釈を行って適切な処理を実行する。
また、前記処理装置4上の複製管理プログラム46におけるユーザインターフェイスとして、複数複製作成処理対象となるデータに関し、コピー元ボリュームMやコピー先ボリュームRの実体を見せる形態とすることもできるし、見せない形態とすることもできる。前記実体を見せる形態とは、ストレージ装置内におけるLUの配置や制御情報などをオペレータに対し提示して操作可能にすることである。また、前記実体を見せない形態とは、ストレージ装置内での実際のデータの配置や制御情報などは見せず、データの番号や名称、複製の番号や名称といった情報のみをオペレータに対し提示して操作可能にすることである。
また、複数複製作成処理対象となるLUの容量は、コピー元ボリュームMとコピー先ボリュームRとで容量を同一にすることには限らない。例えば、ある容量のコピー元ボリュームMにおいて、それに含まれる部分的なデータセットすなわち前記コピー元ボリュームMの容量よりも少ない容量のデータを複製対象として複数の複製を作成する場合に、コピー元ボリュームMの容量と同一のコピー先ボリュームRに複製を作成するのではなく、異なる容量のコピー先ボリュームRへと複製を作成すること等が可能である。
<前提技術との比較>
本発明の実施の形態との比較のために、本発明の発明者が発明の前提技術として検討した複製機能について、図30を参照して説明する。図30(a),(b)は、前提技術となる複製機能についての概要を示す説明図である。(a)は、記憶ボリュームのデータについての複数の複製を作成する際の記憶ボリュームの関係を示す。(b)は、複数の複製を作成する際のデータ整合性保障機構が無い場合の処理順序の例を示す。(a)に示すように、例として一つのコピー元ボリュームMに対しその複製として二つのコピー先ボリュームR1,R2を作成する場合について説明する。
複製の作成にあたって、まず、二つの「コピー元ボリューム−コピー先ボリューム」のペアとなるペア#1とペア#2を確立する必要がある。(b)に示すように、ホストとなる処理装置における当該複製機能実行のための管理プログラムを通じて、ストレージ装置に対し、時系列で順に、ペア作成命令C1、ペア作成命令C2、ペア分割命令C3を発行する必要がある。ペア作成(ペアクリエイト)命令C1は、コピー元ボリュームMとコピー先ボリュームR1のペア#1を確立させるための命令である。ペア作成命令C2は、コピー元ボリュームMとコピー先ボリュームR2のペア#2を確立させるための命令である。ペア分割(ペアスプリット)命令C3は、命令C1,C2で指定及び確立されるペア#1,#2について必要なデータコピーを行って複製データを作成させるための命令である。処理装置のオペレータはこれら命令C1〜C3を発行させるための指示を管理プログラム上のユーザインターフェイスを通じて順に入力する。入力に基づき管理プログラムから対応する命令が発行されて、ストレージ装置に対し送信される。
前記ペア作成命令C1,C2を処理装置から受領したストレージ装置は、指定されたペア#1、ペア#2の作成処理を行う。すなわち、ストレージ装置内で、各ペアにおいて正ボリュームと副ボリュームとして対応付けされ、ペア制御状態が「ペア」状態となる。このペア作成処理により、「コピー元ボリューム−コピー先ボリューム」のペア#1、ペア#2が確立された状態となる。続けて、ストレージ装置は、前記命令C3の受領に対応して、前記ペア#1、ペア#2について、ストレージ装置内部でのコピー処理により、コピー元ボリュームMのデータの複製を二つのコピー先ボリュームR1,R2へと作成するペア分割処理を行う。すなわち、コピー元ボリュームMからコピー先ボリュームR1へ必要なデータをコピーする処理1、及びコピー元ボリュームMからコピー先ボリュームR2へ必要なデータをコピーする処理2を順に行う。例えば、コピー元ボリュームM内に格納されている複製対象データaが、コピー先ボリュームR1内の対応領域、コピー先ボリュームR2内の対応領域へそれぞれ順にコピーされる。
上記命令C1〜C3による処理を通じて作成された二つのペア#1,#2は、「ペア」状態を経由して「スプリット」状態となり、それぞれ個別に利用して更新/参照が可能となる。その後、前記コピー元ボリュームMのデータに発生した更新を複数のコピー先ボリュームR1,R2に反映させてデータ内容を一致させる処理を行わせたい場合は、そのための命令(ペアリシンク命令)の発行に基づきデータ再同期化処理が行われる。なお、ここでは一つのコピー元ボリュームに対する複数のコピー先ボリュームを作成する場合について示したが、複数のコピー元ボリュームに対してそれぞれのコピー先ボリュームを作成したい場合についても同様である。
ここで、前記命令C3による処理開始時点から、関連する複数の記憶ボリュームからなるグループ{M,R1,R2}におけるデータ整合性を保障する必要がある。例えば、(b)に示すように、前記命令C3の発行後、ストレージ装置内部の処理1によりコピー元ボリュームMのデータaがコピー先ボリュームR1にコピーされた直後、処理装置からの命令C4によってコピー元ボリュームMのデータaに対する更新、例としてデータbのライトが発生したものとする。データ整合性保障のための機構が無い場合、前記更新のための命令C4に対応するストレージ装置内部の処理2で、コピー元ボリュームMのデータaに対しデータbがライトされた後、処理3でコピー元ボリュームMのデータbが、コピー先ボリュームR2にコピーされる。そのため、コピー先ボリュームR1のデータaとコピー先ボリュームR2のデータbとでデータ内容が不一致の状態となってしまう。
上記前提技術に比べて本発明の各実施の形態のストレージ装置では、複数の複製を作成したい場合に、処理装置4から前記命令C1,C2のような複数のペアを確立させるための命令を時系列で発行する必要がなく、単一の複数複製作成命令の発行で済む。従ってオペレータ及び処理装置4の負担が削減される。また、複数複製作成処理の際に前記更新/参照処理54等によってデータ整合性を保障しながら複製を作成できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
1,1B,2,2B,600…ストレージ装置、3…ネットワーク、4,4a,4b…処理装置、5…制御装置、6…記憶装置、7…CHA、8…キャッシュメモリ、9…共用メモリ、10…DKA、11…接続部、20…複数複製作成プログラム、21,21B…命令受領情報、22…コピー元退避情報、23…コピー先更新情報、24…コピー情報、31…ペア管理情報、32…グループ管理情報、41…CPU、42…メモリ、43…ポート、44…入力装置、45…出力装置、46,46B…複製管理プログラム、47…アプリケーションプログラム、51,51B…命令受領処理、52,52B…複製処理、53,53B…転送処理、54,54B…更新/参照処理、60,60B…記憶領域、61,61B…グループ、100…制御装置筐体、160…管理端末、300…記憶装置筐体、900…バックアップデバイス。