(57)【要約】【課題】特定時点におけるデータの凍結イメージにアクセスする従来技術はいくつか存在するが、そのいずれもユーザにとっての利便性が保証されているとは言えない。【解決手段】プライマリ、セカンダリボリュームを１対のペアとして制御し、アクセスすべきデータがいずれのボリュームに保持されているかを示す論理スナップショット管理表を設けることにより、論理的な凍結イメージへの即時アクセスを可能とする。【選択図】  図１
2004258944.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータからのコマンドに応答して動作するストレージ装置であって、記憶領域と、前記記憶領域内の第１の記憶領域に前記記憶領域内の第２の記憶領域を対応付け、前記第２の記憶領域のデータに対するＲｅａｄ命令に応答して、前記第１の記憶領域から前記第２の記憶領域への前記データの複写を許容するように制御するための第１のコマンドと、前記第１の記憶領域と前記第２の記憶領域との前記対応付けの解消を制御するための第２のコマンドとに応答して動作する制御装置とを含むストレージ装置。
【請求項２】
請求項１のストレージ装置において、前記データの複写を制御する前記制御装置は、前記第１の記憶領域からデータを読み出し、該読み出したデータを前記コンピュータへ出力した後に、前記読み出したデータを前記第２の記憶領域への書き込むように制御するストレージ装置。
【請求項３】
請求項１のストレージ装置において、前記制御装置は、前記第１のコマンドに応答して、前記第１の記憶領域から前記第２の記憶領域へ複写したデータがある場合、該データを無意にするように制御するストレージ装置。
【請求項４】
請求項１のストレージ装置において、前記第１のコマンドは、さらに前記第２の記憶領域に対するＷｒｉｔｅ命令に応答して、前記第１の記憶領域から前記第２の記憶領域へのデータの複写を許容するように制御するためのコマンドであるストレージ装置。
【請求項５】
請求項４のストレージ装置において、前記制御装置は、前記第２の記憶領域へ複写されたデータの上に、前記Ｗｒｉｔｅ命令で指示されたデータを書き込むように制御するストレージ装置。
【請求項６】
請求項５のストレージ装置において、前記制御装置は、前記第２のコマンドに応答して、前記第２の記憶領域に書き込まれた、前記Ｗｒｉｔｅ命令で指示されたデータの前記第１の記憶領域への複写を制御するストレージ装置。
【請求項７】
請求項４のストレージ装置において、前記制御装置は、前記第２のコマンドに応答して、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からのデータの複写を制御するストレージ装置。
【請求項８】
請求項１のストレージ装置において、前記制御装置は、前記第２のコマンドに応答して、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からのデータの複写を制御するストレージ装置。
【請求項９】
請求項１のストレージ装置において、前記制御装置は、前記第１のコマンドに応答して、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理するための管理情報を生成し、前記第２のコマンドに応答して、前記管理情報を解放するストレージ装置。
【請求項１０】
請求項１のストレージ装置において、前記制御装置は、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からのデータの複写と、前記第１の記憶領域と前記第２の記憶領域との前記対応付けの解消を制御するための第３のコマンドとに応答する制御装置とを含むストレージ装置。
【請求項１１】
請求項１０のストレージ装置において、前記制御装置は、前記コンピュータから選択的に発行される前記第２のコマンドと前記第３のコマンドとに応答するストレージ装置。
【請求項１２】
コンピュータからのコマンドに応答して動作するストレージ装置であって、記憶領域と、前記記憶領域内の第１の記憶領域に前記記憶領域内の第２の記憶領域を対応付け、前記第２の記憶領域のデータに対するＲｅａｄ命令に応答した、前記第１の記憶領域から前記第２の記憶領域への前記データの複写と、前記第２の記憶領域に対するＷｒｉｔｅ命令に応答して、前記第２の記憶領域へ前記Ｗｒｉｔｅ命令で指示されたデータの書き込みを許容するように制御するための第１のコマンドに応答して動作し、前記第２の記憶領域に前記書き込まれたデータの前記第１の記憶領域への複写を制御する制御装置とを含むストレージ装置。
【請求項１３】
請求項１２のストレージ装置において、前記制御装置は、Ｒｅａｄ命令に応答した前記データの複写を、前記第１の記憶領域から前記データを読み出し、該読み出したデータを前記コンピュータの出力した後に、前記読み出したデータを前記第２の記憶領域への書き込むように制御するストレージ装置。
【請求項１４】
請求項１２のストレージ装置において、前記制御装置は、前記第１の記憶領域への前記書き込まれたデータの複写を第２のコマンドとに応答して制御するする制御装置であるストレージ装置。
【請求項１５】
請求項１２のストレージ装置において、前記制御装置は、前記第１のコマンドに応答して、前記Ｗｒｉｔｅ命令で指示されたデータの書き込みの前に、前記Ｗｒｉｔｅ命令で指示された前記第２の記憶領域に前記第１の記憶領域のデータの複写を制御するストレージ装置。
【請求項１６】
請求項１２のストレージ装置において、前記制御装置は、前記第１のコマンドに応答して、前記第１の記憶領域から前記第２の記憶領域へ複写したデータがある場合、該データを無意にするように制御するストレージ装置。
【請求項１７】
請求項１２のストレージ装置において、前記制御装置は、前記第１の記憶領域と前記第２の記憶領域との前記対応付けの解消を制御するための第３のコマンドに応答するストレージ装置。
【請求項１８】
請求項１７のストレージ装置において、前記制御装置は、前記第１のコマンドに応答して、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理するための管理情報を生成し、前記第３のコマンドに応答して、前記管理情報を解放するストレージ装置。
【請求項１９】
ストレージ装置であって、記憶領域と、前記記憶領域内の第１の記憶領域に前記記憶領域内の第２の記憶領域を対応付け、前記第２の記憶領域のデータに対するＲｅａｄ命令に応答して、前記第１の記憶領域から前記第２の記憶領域への前記データの複写を許容する第１の制御状態と、前記第１の記憶領域と前記第２の記憶領域との前記対応付けを解消した第２の制御状態との遷移を制御する制御装置とを含むストレージ装置。
【請求項２０】
請求項１９のストレージ装置において、前記データの複写を制御する前記制御装置は、前記第１の記憶領域からデータを読み出し、該読み出したデータを前記コンピュータへ出力した後に、前記読み出したデータを前記第２の記憶領域への書き込むように制御するストレージ装置。
【請求項２１】
請求項１９のストレージ装置において、前記制御装置は、前記第１の制御状態で、前記第２の記憶領域に対するＷｒｉｔｅ命令に応答して、前記第１の記憶領域から前記第２の記憶領域へのデータの複写を許容するように制御するストレージ装置。
【請求項２２】
請求項１９のストレージ装置において、前記制御装置は、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からのデータの複写を制御するストレージ装置。
【請求項２３】
請求項１９のストレージ装置において、前記制御装置は、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第１の記憶領域に前記第２の記憶領域からのデータが複写されていない領域に、前記第２の記憶領域からのデータを複写するストレージ装置。
【請求項２４】
請求項１９のストレージ装置において、前記制御装置は、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理するための管理情報を生成し、前記第２の制御状態から前記第１の制御状態へ遷移させるときに、前記管理情報を解放するストレージ装置。
【請求項２５】
記憶領域を有するストレージ装置の管理方法であって、コンピュータからの第１のコマンドに応答して、前記記憶領域内の第１の記憶領域に前記記憶領域内の第２の記憶領域を対応付け、前記第２の記憶領域のデータに対する、コンピュータからのＲｅａｄ命令に応答して、前記第１の記憶領域から前記第２の記憶領域への前記データの複写し、前記コンピュータからの第２のコマンドに応答して、前記第１の記憶領域と前記第２の記憶領域との前記対応付けを解消するストレージ装置の管理方法。
【請求項２６】
請求項２５のストレージ装置の管理方法において、前記データを複写するステップは、前記第１の記憶領域からデータを読み出し、該読み出したデータを前記コンピュータへ出力し、前記読み出したデータを前記第２の記憶領域への書き込むストレージ装置の管理方法。
【請求項２７】
請求項２５のストレージ装置の管理方法において、前記第１のコマンドに応答して、前記第１の記憶領域から前記第２の記憶領域へ複写したデータがある場合、該データを無意にするストレージ装置の管理方法。
【請求項２８】
請求項２７のストレージ装置において、前記第２の記憶領域に対するＷｒｉｔｅ命令に応答して、前記第１の記憶領域から前記第２の記憶領域へのデータを複写するストレージ装置の管理方法。
【請求項２９】
請求項２８のストレージ装置において、前記第２の記憶領域へ複写されたデータの上に、前記Ｗｒｉｔｅ命令で指示されたデータを書き込むストレージ装置の管理方法。
【請求項３０】
請求項２９のストレージ装置の管理方法において、前記第２のコマンドに応答して、前記第２の記憶領域に書き込まれた、前記Ｗｒｉｔｅ命令で指示されたデータを前記第１の記憶領域へ複写するストレージ装置の管理方法。
【請求項３１】
請求項２９のストレージ装置の管理方法において、前記第２のコマンドに応答して、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からデータを複写するストレージ装置の管理方法。
【請求項３２】
請求項２５のストレージ装置の管理方法において、前記第２のコマンドに応答して、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からデータを複写するストレージ装置の管理方法。
【請求項３３】
請求項２５のストレージ装置の管理方法において、前記第１のコマンドに応答して、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理するための管理情報を生成し、
前記第２のコマンドに応答して、前記管理情報を解放するストレージ装置の管理方法。
【請求項３４】
請求項２５のストレージ装置の管理方法において、前記制御装置は、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からデータを複写し、前記第１の記憶領域と前記第２の記憶領域との前記対応付けを解消するストレージ装置の管理方法。
【請求項３５】
請求項３４のストレージ装置の管理方法において、前記コンピュータから選択的に発行される前記第２のコマンドと前記第３のコマンドとに応答するストレージ装置の管理方法。
【請求項３６】
記憶領域を有するストレージ装置の管理方法であって、前記記憶領域内の第１の記憶領域に前記記憶領域内の第２の記憶領域を対応付け、前記第２の記憶領域のデータに対する、コンピュータからのＲｅａｄ命令に応答して、前記第１の記憶領域から前記第２の記憶領域へ前記データを複写し、前記第２の記憶領域に対する、前記コンピュータからのＷｒｉｔｅ命令に応答して、前記第２の記憶領域へ前記Ｗｒｉｔｅ命令で指示されたデータの書き込み、前記第２の記憶領域に前記書き込まれたデータを前記第１の記憶領域へ複写するストレージ装置の管理方法。
【請求項３７】
請求項３６のストレージ装置の管理方法において、前記データを複写するステップは、前記第１の記憶領域から前記データを読み出し、該読み出したデータを前記コンピュータの出力し、前記読み出したデータを前記第２の記憶領域への書き込むストレージ装置の管理方法。
【請求項３８】
請求項３６のストレージ装置の管理方法において、前記書き込まれたデータの前記第１の記憶領域へ複写するステップは、前記コンピュータからのコマンドとに応答して実行するストレージ装置の管理方法。
【請求項３９】
請求項３６のストレージ装置の管理方法において、前記Ｗｒｉｔｅ命令で指示されたデータの書き込みの前に、前記Ｗｒｉｔｅ命令で指示された前記第２の記憶領域に前記第１の記憶領域のデータを複写するストレージ装置の管理方法。
【請求項４０】
請求項３６のストレージ装置の管理方法において、前記コンピュータからのコマンドに応答して、前記第１の記憶領域から前記第２の記憶領域へ複写したデータがある場合、該データを無意にするように制御するストレージ装置の管理方法。
【請求項４１】
請求項３６のストレージ装置の管理方法において、前記コンピュータからのコマンドに応答して、前記第１の記憶領域と前記第２の記憶領域との前記対応付けを解消するストレージ装置の管理方法。
【請求項４２】
請求項４１のストレージ装置の管理方法において、前記第１の記憶領域に前記第２の記憶領域の対応付けのステップは、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理する管理情報を生成するステップを含み、前記コマンドに応答して、前記管理情報を解放するストレージ装置の管理方法。
【請求項４３】
記憶領域を有するストレージ装置の管理方法であって、前記記憶領域内の第１の記憶領域と前記記憶領域内の第２の記憶領域とを対応付けた第１の制御状態と、前記第１の記憶領域と前記第２の記憶領域との前記対応付けを解消した第２の制御状態との遷移を制御し、前記第１の制御状態において、前記第２の記憶領域のデータに対するＲｅａｄ命令に応答して、前記第１の記憶領域から前記第２の記憶領域への前記データを複写するストレージ装置の管理方法。
【請求項４４】
請求項４３のストレージ装置の管理方法において、前記データを複写するステップは、前記第１の記憶領域からデータを読み出し、該読み出したデータを前記コンピュータへ出力し、前記読み出したデータを前記第２の記憶領域への書き込むストレージ装置の管理方法。
【請求項４５】
請求項４３のストレージ装置の管理方法において、前記第１の制御状態において、前記第２の記憶領域に対するＷｒｉｔｅ命令に応答して、前記第１の記憶領域から前記第２の記憶領域へデータを複写するストレージ装置の管理方法。
【請求項４６】
請求項４３のストレージ装置の管理方法において、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第２の記憶領域に前記第１の記憶領域からのデータが複写されていない領域に、前記第１の記憶領域からデータを複写するストレージ装置の管理方法。
【請求項４７】
請求項４３のストレージ装置の管理方法において、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第１の記憶領域に前記第２の記憶領域からのデータが複写されていない領域に、前記第２の記憶領域からのデータを複写するストレージ装置の管理方法。
【請求項４８】
請求項４３のストレージ装置の管理方法において、前記第１の制御状態から前記第２の制御状態へ遷移させるときに、前記第１の記憶領域と前記第２の記憶領域との対応付けを管理するための管理情報を生成し、前記第２の制御状態から前記第１の制御状態へ遷移させるときに、前記管理情報を解放するストレージ装置の管理方法。
【請求項４９】
ストレージ装置であって、記憶領域と、前記記憶領域内の第１の記憶領域と前記記憶領域内の第２の記憶領域とが対応付けられて制御される第１の状態から前記対応付けを解消して制御される第２の状態への遷移制御するために、前記対応付けを解消する第１の制御モードと前記第１の記憶領域のデータを前記第２の記憶領域に複写した後に、前記対応付けを解消する第２の制御モードを有し、前記第１の制御モードと前記第２の制御モードを選択的に実行する制御装置とを備えたストレージ装置。
【請求項５０】
ストレージ装置であって、記憶領域と、前記記憶領域内の第１の記憶領域と前記記憶領域内の第２の記憶領域とが対応付けられて制御される第１の状態から前記対応付けを解消して制御される第２の状態への遷移制御するために、前記対応付けを解消する第１の制御モードと前記第２の記憶領域のデータを前記第１の記憶領域に複写した後に、前記対応付けを解消する第２の制御モードを有し、前記第１の制御モードと前記第２の制御モードを選択的に実行する制御装置とを備えたストレージ装置。
【請求項５１】
ストレージ装置であって、記憶領域と、メモリに格納されている管理情報を前記記憶領域内の第１の記憶領域と前記記憶領域内の第２の記憶領域との対応付けを管理するのための制御情報、および前記第１の記憶領域へのアクセスに伴うデータの状態と前記第２の記憶領域へのアクセスに伴うデータの状態との対応付けを管理するのための制御情報として共通的に用い、前記データが格納されている前記第１の記憶領域及び前記第２の記憶領域を管理する制御装置とを備えたストレージ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストレージ装置およびその管理方法に関する。
【０００２】
【従来の技術】
コンピュータシステムに用いられるストレージ装置に格納されたデータは、装置障害、誤操作などにより喪失したデータを回復するために、磁気テープ等に定期的にバックアップデータとして保存される。バックアップデータは、バックアップのために保存される場合の他に、バッチ処理のデータとして、あるいはアプリケーションプログラムのテストデータ等として用いられる。
【０００３】
このようにして用いられるバックアップデータは、ある特定の時点のデータであることが重要であり、それが保証されなければならない。バックアップ処理中に、そのデータの一部が更新されると、データの不整合が生じる。
【０００４】
バックアップデータを得る処理は、データのコピー処理が繰り返されるもので長時間を要する。データの不整合を生じないようにするためには、データが更新されないようにするためにバックアップ以外の処理を停止すればよいが、オンライン処理を行うシステムでは長時間の処理の中断は許されない。
【０００５】
（第１の従来技術）バックアップデータを得る方法として、ミラーリングという技術がある（例えば、特許文献１参照）。  これは、ストレージ装置内のボリュームを物理的に二重化する技術である。データの一致のためにコピー処理を行うが、コピー中にデータを更新する場合は双方のボリュームのデータを更新する。ミラーリングはこのようにしてバックアップデータを得る技術である。
（第２の従来技術）バックアップデータを得る他の方法として、バックアップ処理中にデータが更新される場合、データの更新に先立ち、更新されるデータを他の領域に退避する方法が開示されている。バックアップ処理では更新されたデータに代えて退避データをバックアップする方法もある（例えば、特許文献２参照）。
（第３の従来技術）バックアップデータを得るさらに他の方法として、バックアップ対象のデータがあるボリュームの他に、そのボリューム（主ボリューム）と主副関係を持った仮想的な副ボリュームを用意し、バックアップ処理中に主ボリュームのデータが更新される場合、更新されるデータを副ボリュームに退避する方法がある（例えば、特許文献３参照）。更新されたデータに関するバックアップ処理は、第２の従来技術と同様である。
【０００６】
第１の従来技術がコピー生成終了時点以降を特定時点としており、第２および第３の従来技術がデータ退避の開始時点を特定時点としているところが顕著な差である。
【０００７】
【特許文献１】米国特許５，８４５，２９５号公報
【特許文献２】米国特許５，５５５，３８９号公報
【特許文献３】米国特許５，６４９，１５２号公報
【発明が解決しようとする課題】
バックアップデータのような特定時点のデータを凍結イメージのデータ又は単に凍結イメージと呼ぶ。さらに凍結イメージをスナップショットと呼ぶことがある。凍結イメージは、バックアップデータとして保存しておく以外に、バッチ処理プログラム等のアプリケーションプログラムによって使用される。オンラインプログラム等の実行中に、これらのアプリケーションプログラムを実行することが必要な場合があり、特に２４時間稼動を求められるコンピュータシステムでは、凍結イメージの生成はきわめて重要な課題である。
【０００８】
このようなコンピュータシステムの利用環境において、第１の従来技術は既に述べたようにデータのコピーに要する時間が許容されない状況が発生している。また凍結イメージの取得および使用は、コピーの生成終了時点以降に限られるため、凍結イメージの生成を指示するコンピュータから見ると、特定時点の選択に制限があるという問題がある。
【０００９】
一方、第２および第３の従来技術では、特定時点はホストコンピュータが凍結イメージ生成を指示し、データ退避を開始した時点となる。第２および第３の従来技術では、凍結イメージをバックアップデータとして保存する場合は、改めてコピー処理が必要となる。このコピー処理時には、ストレージ装置の制御負荷が集中し、オンラインプログラムの応答時間に影響を及ぼしかねない。
【００１０】
そこで、本発明の目的は、ホストコンピュータの多様な使用環境においてもストレージあるいはホストに多大な負荷をかけずバックアップデータを取得するという利便性を持つストレージ装置およびその制御方法を提供することにある。
【００１１】
本発明の他の目的は、ホストコンピュータの稼動状況への影響を少なくしたストレージ装置およびその制御方法を提供することにある。
本発明の更に他の目的は、本明細書および添付の図面の開示から明らかになる。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、本発明では、アクセスすべきデータの所在を示す論理スナップショット管理表を設け、論理的な凍結イメージ（スナップショット）の即時使用が可能な状態へ、単一のコマンドにより遷移することを可能とする。
【００１３】
【発明の実施の形態】
以下、本発明の実施例を図面を用いて詳細に説明する。
【００１４】
図１は、第１の実施例のシステム構成図である。図１において、１はストレージ装置、２はホストコンピュータ、３は管理用装置である。ストレージ装置１は制御装置１１、プライマリボリューム１３及びセカンダリボリューム１４を含む。制御装置１１は、図示を省略してあるがプロセッサ及びメモリを有し、内部で発生するイベントやホストコンピュータからの種々のコマンドやプライマリボリューム１３及びセカンダリボリューム１４へのアクセス（書き込み、読み出し）命令を、メモリ上の情報を参照しながら実行する。メモリ領域上の情報の一部として、本実施例では論理スナップショット管理表１１１がある。本実施例でフローチャートを用いて説明する処理は、いずれも制御装置１１で実行される。
【００１５】
ホストコンピュータ２は、図１ではストレージ装置１と直接接続しているが、ネットワークを介して接続しても良い。また、ホストコンピュータ２はファイルサーバ、パーソナルコンピュータ、ワークステーション等のコンピュータであり、複数台でも良い。管理用装置３は、ストレージ装置１の構成を定義したり、変更したりするための装置であり、コンピュータにその機能を持たせたものでも良い。本実施例では、後に詳述するホストコンピュータ２から発行される制御コマンドを管理用装置３から発行しても良い。ホストコンピュータ２からストレージ装置１に発行可能なコマンド、命令等は、管理用装置３からも発行できるようにしている。
【００１６】
プライマリボリューム１３及びセカンダリボリューム１４の各々は、物理的なボリュームであっても論理的なボリュームであっても良い。いずれにしても本実施例では、プライマリボリューム１３とセカンダリボリューム１４とが対をなすものであれば良い。対は１対１の関係でなく、１：ｎの関係、すなわち一つのプライマリボリューム１３に複数のセカンダリボリューム１４を対応付けた構成であっても良い。さらに３つのボリュームを用意し、第１のボリュームを第１のプライマリボリューム、第２のボリュームを第１のプライマリボリュームに対応するセカンダリボリュームとすると共に第２のプライマリボリュームとし、第３のボリュームを第２のセカンダリボリュームとするカスケード関係にあっても良い。ここでは、説明を簡単にするためにセカンダリボリューム１４が一つでプライマリボリューム１３と対応付けられている場合について説明する。対応付けられた、プライマリボリューム１３とセカンダリボリューム１４との対をペアボリュームと呼ぶ。
【００１７】
一例として、本実施例のプライマリボリューム１３は、ホストコンピュータ２で実行されるオンラインプログラムのようなアプリケーションプログラムによってアクセスされる。セカンダリボリューム１４は、ホストコンピュータ２で実行されるバックアッププログラムによってアクセスされる。プライマリボリューム１３及びセカンダリボリューム１４の各々の使い分けは、ホストコンピュータ２を用いる用途によって異なっても良いし、複数のホストコンピュータ２によって使い分けられても良い。
【００１８】
なお、プライマリボリューム１３及びセカンダリボリューム１４のそれぞれは第１のボリューム、第２のボリューム、あるいは第１の記憶領域、第２の記憶領域と呼ぶことがある。
【００１９】
図２は、本実施例におけるストレージ装置の制御を概観するための状態遷移図である。ストレージ装置１は、図２に示すＳｉｍｐｌｅｘ状態２１０、Ｓｎａｐ状態２２０およびＤｅｌｅｔｉｎｇ状態２３０の３つの状態を有する。すなわち、複数のペアボリュームを持つストレージ装置１では、ペアボリュームごとに制御状態は異なる。ここでは、説明を分かりやすくするために、ストレージ装置１には一つのペアボリュームがある場合を例に説明する。
【００２０】
図２に矢印で示すように、幾つかのコマンド又はストレージ装置１の動作に応じて、これらの状態間に遷移が発生するように制御装置１１により制御する。本実施例では、各状態はボリューム単位（ファイル単位等の他の単位であっても良い。）に制御するものとして、また説明を簡単にするために、ストレージ装置１には１対のプライマリボリューム１３とセカンダリボリューム１４とがあるものとして、説明する。  図２に示す３つの状態を説明する。Ｓｉｍｐｌｅｘ状態２１０は、プライマリボリューム１３とセカンダリボリューム１４とが独立した状態である。たとえば、ホストコンピュータ２のあるアプリケーションプログラム（たとえば、オンラインプログラム）による第１の記憶領域（プライマリボリューム１３）へのアクセスと、他のアプリケーションプログラム（たとえば、バックアップ等のバッチ処理プログラム）による第２の記憶領域（セカンダリボリューム１４）へのアクセスが何ら関係を持たずに実行可能な状態である。なお、厳密には、Ｓｉｍｐｌｅｘ状態２１０ではこれらのボリュームはプライマリ、セカンダリという関係にはないため、便宜的に第１、第２の記憶領域と呼称した。
【００２１】
Ｓｎａｐ状態２２０は、詳細は後述するが、プライマリボリューム１３とセカンダリボリューム１４とがペア状態をなし、制御上は主従関係にある状態である。
【００２２】
Ｄｅｌｅｔｉｎｇ状態２３０は、Ｓｎａｐ状態２２０からＳｉｍｐｌｅｘ状態２１０に遷移する際の過渡的な状態である。詳細は、Ｓｎａｐ状態２２０の詳細とあわせて後述する。
【００２３】
本実施例では、Ｓｎａｐコマンド２４０、Ｒｅｓｔｏｒｅコマンド２６０およびＤｅｌｅｔｅコマンド２７０の３種類の制御コマンドを、ホストコンピュータ２がストレージ装置１に向けて発行し、ストレージ装置１の制御装置１１が実行するコマンドとして用意している。
【００２４】
Ｓｎａｐコマンド２４０は、図２に示すように、第１、第２の記憶領域をＳｎａｐ状態２２０にするためのコマンドである。Ｓｉｍｐｌｅｘ状態２１０でＳｎａｐコマンド２４０が実行されると第１、第２の記憶領域は対となり、Ｓｎａｐ状態２２０に遷移する。Ｓｎａｐ状態２２０でＳｎａｐコマンド２４０が実行されるとペアボリュームはＳｎａｐ状態２２０を保つ。
【００２５】
Ｒｅｓｔｏｒｅコマンド２６０は、詳細は後述するが、Ｓｎａｐ状態２２０でプライマリボリューム１３とセカンダリボリューム１４間でデータを操作するために発行されるコマンドであって、図２に示すようにペアボリュームの状態遷移を発生させるものではない。
【００２６】
Ｄｅｌｅｔｅコマンド２７０は、図２ではＳｎａｐ状態２２０からＤｅｌｅｔｉｎｇ状態２３０への遷移を発生させるコマンドとして示してあるが、Ｄｅｌｅｔｉｎｇ状態２３０が過渡的な状態であるので、Ｄｅｌｅｔｅコマンド２７０を発行するホストコンピュータ２から見れば、ペアボリュームをＳｎａｐ状態２２０からＳｉｍｐｌｅｘ状態２１０へ遷移させるコマンドである。
【００２７】
なお、Ｄｅｌｅｔｉｎｇ状態２３０を過渡的なものではなく、ストレージ装置の状態をホストコンピュータ２から分かるようにした上で、新たなコマンド等を用意し、ストレージ装置１の状態をＤｅｌｅｔｉｎｇ状態２３０からＳｉｍｐｌｅｘ状態２１０に遷移させることも可能である。
【００２８】
図３にビットマップで表した論理スナップショット管理表１１１を示す。論理スナップショット管理表１１１は、本実施例で一例として示すビットマップに限らず、リスト構造や、物理アドレスを示すポインタ等であっても、管理情報または制御情報として、以下に説明するようなプライマリボリューム１３とセカンダリボリューム１４との対応付けの管理又は制御ができればよい。論理スナップショット管理表１１１で管理されるプライマリボリューム１３とセカンダリボリューム１４との対が前述のペアボリュームである。
【００２９】
論理スナップショット管理表１１１は、Ｓｎａｐコマンド２４０の実行による、ストレージ装置１のＳｉｍｐｌｅｘ状態２１０からＳｎａｐ状態２２０への遷移に伴い作成される。論理スナップショット管理表１１１は、Ｄｅｌｅｔｅコマンド２７０の実行による、ストレージ装置１のＳｉｍｐｌｅｘ状態２１０への遷移に伴い解放される。論理スナップショット管理表１１１を参照することにより、アクセスすべきデータの所在（物理アドレス）を知ることができる。
【００３０】
プライマリボリュームＢＭ（Ｐ）３００がプライマリボリューム１３のデータの保持状態を示し、セカンダリボリュームＢＭ（Ｓ）３０１がセカンダリボリューム１４のデータの保持状態を示す。図３に説明の便宜上付けた座標、たとえばプライマリボリュームＢＭ（Ｐ）の（ｘｐ１，ｙｐ１）が示すプライマリボリューム１３のデータとセカンダリボリュームＢＭ（Ｓ）３０１の（ｘｓ１，ｙｓ１）が示すセカンダリボリューム１４の記憶領域が対応する。プライマリボリュームＢＭ（Ｐ）３００、セカンダリボリュームＢＭ（Ｓ）３０１夫々のビットにより表現されるデータの単位はブロック、ないしトラックなどであり、例えばデータの単位がトラックの場合、座標（ｘｐ１，ｙｐ１）の示すプライマリボリュームＢＭ（Ｐ）、セカンダリボリュームＢＭ（Ｓ）３０１はそれぞれプライマリボリューム１３のシリンダ番号ｘｐ１、ヘッド番号ｙｐ１で一意に定められるトラックのデータ状態、セカンダリボリューム１４のシリンダ番号ｘｐ１、ヘッド番号ｙｐ１で一意に定められるトラックのデータ状態を示す。
【００３１】
図３は、例えば、Ｓｉｍｐｌｅｘ状態２１０でＳｎａｐコマンド２４０が実行され、ストレージ装置１がＳｎａｐ状態２２０に遷移した直後の論理スナップショット管理表１１１の内容を示す。このとき、プライマリボリューム１３に記憶されている内容をスナップショット、あるいは凍結イメージ（ｓｔａｔｉｃ  ｉｍａｇｅ）としてセカンダリボリュームに仮想的に取得する。すなわちセカンダリボリュームへ仮想的にスナップショットが存在するようにビットマップを用いて管理し、セカンダリボリュームへのアクセスにより、当該スナップショットにアクセスできるようにする。
【００３２】
論理スナップショット管理表の一例であるビットマップにより、アクセス対象のデータの所在を知ることができる。セカンダリボリュームとプライマリボリュームが１：１に対応づけられた本実施例では、ビットマップの各ビットの意味は、「０」は対応する自ボリュームの領域にデータがあることを示し、「１」は対応する自ボリュームの領域にデータがないことを示す。
【００３３】
したがって、図３に示す状態ではアクセスすべきデータはすべてプライマリボリューム１３にある。この凍結状態にある時点のデータを、磁気テープ等の記憶媒体に格納することにより、その時点（Ｓｉｍｐｌｅｘ状態２１０からＳｎａｐ状態２２０に遷移した直後の時点）のバックアップがとれることになる。
【００３４】
図４には以下に説明する、Ｓｎａｐ状態２２０におけるアクセスすべきデータの所在の変化に伴う論理スナップショット管理表１１１の内容の一例を示す。
【００３５】
論理スナップショット管理表１１１は、制御装置１１内のメモリ上の設けられる制御情報として重要であり、メモリが揮発性メモリの場合は、不揮発性メモリに論理スナップショット管理表１１１のバックアップを取っておくことも必要である。
【００３６】
以下の説明では、プライマリボリュームＢＭ（Ｐ）の（ｘｐｉ，ｙｐｊ）の値（０又は１）とセカンダリボリュームＢＭ（Ｓ）３０１の（ｘｓｉ，ｙｓｊ）の値（０又は１）との関係をＢＭ（Ｐ，Ｓ）と表記する。ｉおよびｊは１，２，３，・・・であり、上限はボリューム各々のサイズで決まる値である。また以下の説明では、ＢＭ（Ｐ，Ｓ）の変化は，ホストコンピュータ２からのアクセスやコマンドによって生ずる。当該変化は、ビットマップを構成する各ビットによって管理されるデータの大きさごとに起こる。従って、ホストコンピュータ２からのアクセスのデータサイズとは必ずしも一致しない。
【００３７】
Ｓｎａｐ状態２２０においてビットマップは、ホストコンピュータ２からのプライマリボリューム１３及びセカンダリボリューム１４へのアクセス（書き込み、読み出し）命令や前述した制御コマンドによって変化する。以下、ビットマップの変化について説明する。
【００３８】
図５は、ホストコンピュータ２からプライマリボリューム１３またはセカンダリボリューム１４へのアクセス（書き込み、読み出し）に応じたプライマリボリューム１３及びセカンダリボリューム１４のデータの保有状態の変化を、論理スナップショット管理表１１１のＢＭ（Ｐ，Ｓ）の遷移として表したものである。図５の実行前の状態はＲｅａｄ（読み出し）又はＷｒｉｔｅ（書込み）のアクセスを受ける前のＢＭ（Ｐ，Ｓ）を表し、アクセス処理実行後の状態はＲｅａｄ（読み出し）又はＷｒｉｔｅ（書込み）の処理完了後のＢＭ（Ｐ，Ｓ）を表す。
【００３９】
ＢＭ（Ｐ，Ｓ）は、（０，０）、（０，１）、（１，０）および（１，１）の４状態があるが、ＢＭ（Ｐ，Ｓ）＝（１，１）はプライマリボリューム１３、セカンダリボリューム１４のいずれにもアクセスすべきデータがない場合を示し、本実施例では存在し得ない。本実施例を具体化する上では、ＢＭ（Ｐ，Ｓ）＝（１，１）の状態で、ホストコンピュータ２からアクセスやコマンドを受けた場合は、それらを拒否する意味のエラー報告をホストコンピュータ２に送る。
【００４０】
最初に、図５のＢＭ（Ｐ，Ｓ）＝（０，１）の状態で、アクセスを受けた場合について説明する。ＢＭ（Ｐ，Ｓ）＝（０，１）はたとえば、Ｓｉｍｐｌｅｘ状態２１０でＳｎａｐコマンド２４０が実行され、ペアボリュームがＳｎａｐ状態２２０に遷移した直後に取りうる状態である。この状態のときにプライマリボリューム１３へのＲｅａｄ処理が実行されても、すなわちホストコンピュータ２からのＲｅａｄ命令で指定されたアドレスからデータを読み出し、そのデータをホストコンピュータ２へ送っても、プライマリボリューム１３及びセカンダリボリューム１４のデータ保持状況のいずれも変化しないので、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態が保たれる。
【００４１】
図５のＢＭ（Ｐ，Ｓ）＝（０，１）の状態における、プライマリボリューム１３へのＷｒｉｔｅ  処理を、図６を用いて説明する。ホストコンピュータ２からプライマリボリューム１３へＷｒｉｔｅ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｗｒｉｔｅ命令により特定されるプライマリボリューム１３の領域に対応するＢＭ（Ｐ，Ｓ）をチェックする（ステップ６００）。ＢＭ（Ｐ，Ｓ）＝（０，１）であり、セカンダリボリューム１４にアクセスすべきデータが存在しないので、プライマリボリューム１３の領域にあるデータをセカンダリボリューム１４の対応する領域へコピーする（ステップ６１０）。コピーを完了したら、論理スナップショット管理表１１１をＢＭ（Ｐ，Ｓ）＝（０，１）からＢＭ（Ｐ，Ｓ）＝（０，０）に更新する（ステップ６１５）。これらの処理の後に、Ｗｒｉｔｅ命令で指示されるデータをプライマリボリューム１３の所定の領域に書き込む（ステップ６２０）。
【００４２】
上述のＢＭ（Ｐ，Ｓ）＝（０，１）の状態における、プライマリボリューム１３へのＷｒｉｔｅ  処理において、プライマリボリューム１３へデータ（新データ）を書き込む前に、その領域に格納されているデータ（旧データ）をセカンダリボリューム１４の対応領域に退避（コピー）したことになる。したがって、Ｗｒｉｔｅ  処理完了後にプライマリボリューム１３は新データに更新されているが、旧データはセカンダリボリューム１４に格納されており、凍結イメージの時点のデータは保存されていることになる。
【００４３】
ここで、論理スナップショット管理表１１１の各ビットが管理対象としているデータ領域のサイズ（たとえば、トラック単位）と書き込まれるデータ（新データ）のサイズとで前者の方が大きいか等しい場合は当該ビットが処理対象となり、書き込まれるデータの方が大きい場合は対応する複数ビットが処理対象になる。
【００４４】
上記の図６の説明では、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態を起点として説明したが、ＢＭ（Ｐ，Ｓ）＝（１，０）の状態を起点とする場合は、ステップ６０５及びステップ６１０におけるデータのコピー方向が逆になる。この点については後述する。
【００４５】
図５のＢＭ（Ｐ，Ｓ）＝（０，１）の状態において、セカンダリボリューム１４へのＲｅａｄ処理を、図７を用いて説明する。ホストコンピュータ２からセカンダリボリューム１４へＲｅａｄ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｒｅａｄ命令により特定されるセカンダリボリューム１４の領域に対応するＢＭ（Ｐ，Ｓ）をチェックする（ステップ７００）。ＢＭ（Ｐ，Ｓ）＝（０，１）であるので、セカンダリボリューム１４にはアクセスすべきデータがなく（ステップ７０５）、アクセスすべきデータはプライマリボリューム１３の対応する領域にあるので、その有意なデータをセカンダリボリューム１４の当該領域にコピーする（ステップ７１０）。その後、論理スナップショット管理表１１１の（Ｐ，Ｓ）＝（０，１）を（Ｐ，Ｓ）＝（０，０）に更新する（ステップ７１５）。引き続いて、セカンダリボリューム１４の当該領域にコピーしたデータを読み出し（ステップ７２０）、ホストコンピュータ２に送る。
【００４６】
図７では、セカンダリボリューム１４の当該領域にデータがない場合、セカンダリボリューム１４にコピーしたデータを読み出し、ホストコンピュータに送るように説明したが、コピー動作の際に制御装置１１にプライマリボリューム１３からデータを読み出すので、その読み出したデータをホストコンピュータ２に送ることとしてもよい。これにより、ホストコンピュータ２から見ると、Ｒｅａｄ命令に対する応答時間が短くなる。Ｒｅａｄ命令に対してコピー動作を伴う同様の処理が以下でも説明されるが、以上と同様の処理により、応答時間を短くすることができる。
【００４７】
セカンダリボリューム１４の当該領域にアクセスすべきデータがある（Ｐ，Ｓ）＝（０，０）または（Ｐ，Ｓ）＝（１，０）の場合は、ステップ７０５においてステップ７２０に分岐し、当該データを読み出し、ホストコンピュータに送る。
【００４８】
図７の処理において、セカンダリボリューム１４にアクセスすべきデータがない場合に、対応するプライマリボリューム１３のデータをセカンダリボリューム１４にコピーすることを省略する処理であっても良い。この場合の処理を、図８を用いて説明する。図８のステップ８００およびステップ８０５は、図７のステップ７００およびステップ７０５と同じであるので、説明を省略する。ステップ８０５において、Ｒｅａｄ命令で特定される、セカンダリボリューム１４の当該領域にデータがないならば（ＢＭ（Ｐ，Ｓ）＝（０，１））、プライマリボリューム１３の対応する領域のデータを読み出し（ステップ８１０）、ホストコンピュータ２に送る。一方、セカンダリボリューム１４にアクセスすべきデータがあるならば（ＢＭ（Ｐ，Ｓ）＝（０，０）又は（Ｐ，Ｓ）＝（１，０））、セカンダリボリューム１４の当該領域のデータを読み出し（ステップ８１５）、ホストコンピュータに送る。
【００４９】
図８の処理によっても、バックアップをとるという観点では、図７の処理と同じになる。図８の処理では、セカンダリボリューム１４にコピーされているデータは、プライマリボリューム１３のうち、Ｓｎａｐコマンド受領後に更新された領域の旧データと、Ｓｎａｐコマンド受領後に更新されたセカンダリボリューム１４のデータのみであるので、セカンダリボリューム１４の容量は少なくて済む。言い換えれば、凍結イメージがプライマリボリューム１３にあるデータについては、対応する領域をセカンダリボリューム１４に確保しなくて済む。具体的には、セカンダリボリュームの容量を、用途等を考慮した統計的予測手法を用いて決定し、容量を削減することが可能となる。また、セカンダリボリューム１４へのコピーが必要な都度、領域を確保することでも小容量のセカンダリボリューム１４を実現できる。
【００５０】
図７及び図８の処理は、ストレージ装置１の役割、すなわちホストコンピュータ２の用途や機能により使い分けできることが望ましい。そこで、本実施例では、制御装置１１に図７及び図８双方の処理機能を持たせ、ユーザによってホストコンピュータ２又は管理用装置３から選択できるようにしている。
【００５１】
本実施例はＳｎａｐ状態においても、ホストコンピュータ２からセカンダリボリューム１４へのＷｒｉｔｅ命令の発行を許す。
図５のＢＭ（Ｐ，Ｓ）＝（０，１）の状態において、セカンダリボリューム１４へのＷｒｉｔｅ処理を、図９を用いて説明する。ホストコンピュータ２からセカンダリボリューム１４へＷｒｉｔｅ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｗｒｉｔｅ命令により特定されるセカンダリボリューム１４の領域のＢＭ（Ｐ，Ｓ）をチェックする（ステップ９００）。ＢＭ（Ｐ，Ｓ）＝（０，１）であるので、セカンダリボリューム１４の当該領域にはアクセスすべきデータがなく（ステップ９０５）、プライマリボリューム１３の対応する領域にアクセスすべきデータがあるので、当該データをセカンダリボリューム１４の当該領域にコピーする（ステップ９１０）。その後、論理スナップショット管理表１１１の（Ｐ，Ｓ）＝（０，１）を（Ｐ，Ｓ）＝（０，０）に更新する（ステップ９１５）。引き続いて、セカンダリボリューム１４の当該領域に、Ｗｒｉｔｅ命令で指示されるデータを書き込む（ステップ９２０）。
【００５２】
以上の処理において、コピーしたデータの上にＷｒｉｔｅ命令で指示されるデータを書き込むことは、前述したように論理スナップショット管理表１１１の各ビットが管理対象としているデータのサイズよりもＷｒｉｔｅ命令で指示されるデータのサイズが小さく、結果としてコピーしたデータの一部を更新する場合に対応するためである。論理スナップショット管理表１１１の複数ビットに渡るデータのサイズが指示された場合は、各ビット対応のサイズにデータを分割して実行する。
【００５３】
なお、Ｗｒｉｔｅ命令で指示されるデータのサイズと論理スナップショット管理表１１１の各ビットが管理対象としているデータのサイズとが等しい場合は、ステップ９１０のコピー処理を省略できる。
【００５４】
セカンダリボリューム１４にもアクセスすべきデータがある（Ｐ，Ｓ）＝（０，０）の場合は、ステップ９０５においてステップ９２０に分岐し、当該データの上に、Ｗｒｉｔｅ命令で指示されるデータを書き込む。
【００５５】
図９の処理を許すことにより、凍結イメージのデータを用いた、ホストコンピュータ２でセカンダリボリューム１４へのＷｒｉｔｅ命令の発行を含むアプリケーションプログラムのテストの実行や種々のプログラムの実行を可能にする。プログラムの実行の例としては、金融機関の営業終了時間の凍結イメージを基にその日の日計処理（１日の種々の営業統計処理）がある。このような処理ではボリュームのＲｅａｄ処理が主体であるが、ソート処理のようにＷｒｉｔｅ処理が発生する場合がある。
【００５６】
上記の図９の説明では、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態を起点として説明したが、ＢＭ（Ｐ，Ｓ）＝（１，０）の状態を起点とする場合は、ステップ９０５及びステップ９１０におけるデータのコピー方向が逆になる。この点については後述する。
【００５７】
図５のＢＭ（Ｐ，Ｓ）＝（０，０）の状態における、プライマリボリューム１３又はセカンダリボリューム１４へのアクセスに伴う処理を説明する。ＢＭ（Ｐ，Ｓ）＝（０，０）の状態は、図６〜図９を用いて説明したように、Ｓｎａｐコマンド２４０が実行されＳｉｍｐｌｅｘ状態２１０から遷移したＳｎａｐ状態２２０で、たとえばプライマリボリューム１３に対してＷｒｉｔｅ処理が実行された状態である。
【００５８】
図５のＢＭ（Ｐ，Ｓ）＝（０，０）の状態において、プライマリボリューム１３及びセカンダリボリューム１４の各々へのＲｅａｄ命令とＷｒｉｔｅ命令とのいずれかの命令の発行パターンは４通りある。ＢＭ（Ｐ，Ｓ）＝（０，０）はプライマリボリューム１３及びセカンダリボリューム１４のいずれのデータも有意であるので、データが維持されるＲｅａｄ処理だけでなくＷｒｉｔｅ処理に於いても、データが更新され、更新されたデータが有意であるので、論理スナップショット管理表１１１はＢＭ（Ｐ，Ｓ）＝（０，０）のまま維持される。
【００５９】
以上の論理スナップショット管理表１１１が変化しない処理のうち、プライマリボリューム１３からのＲｅａｄ処理は後述するが、プライマリボリューム１３へのＷｒｉｔｅ処理では、図６のステップ６０５において、Ｗｒｉｔｅ対象の領域のデータは既にセカンダリボリューム１４へコピー済みであるからステップ６２５へ分岐し、状態遷移を管理する論理スナップショット管理表１１１の更新は不必要であるので、ステップ６２５からステップ６２０へ分岐する。
【００６０】
セカンダリボリューム１４からのＲｅａｄ処理では、図７のステップ７０５でセカンダリボリューム１４はアクセス（Ｒｅａｄ処理）対象のデータを保持しており、ステップ７２０へ分岐し、論理スナップショット管理表１１１の更新を伴わない。図７の他の方法を示した図８では、論理スナップショット管理表１１１の更新の処理を含まないのは図面から明らかである。
【００６１】
セカンダリボリューム１４へのＷｒｉｔｅ処理では、図９のステップ９０５において、Ｗｒｉｔｅ対象の領域のデータは既にセカンダリボリューム１４へコピー済みであるからステップ９２０へ分岐し、論理スナップショット管理表１１１の更新を伴わない。
【００６２】
次に、図５のＢＭ（Ｐ，Ｓ）＝（１，０）の状態における、プライマリボリューム１３又はセカンダリボリューム１４へのアクセスに伴う処理を説明する。ＢＭ（Ｐ，Ｓ）＝（１，０）は、ＢＭ（Ｐ，Ｓ）＝（０，０）の状態において後述するＲｅｓｔｏｒｅコマンドが発行されたときの状態である。ＢＭ（Ｐ，Ｓ）＝（１，０）は、プライマリボリューム１３にアクセスすべきデータがなく、セカンダリボリューム１４にアクセスすべきデータがある状態を示す。
【００６３】
図５のＢＭ（Ｐ，Ｓ）＝（１，０）の状態において、プライマリボリューム１３のＲｅａｄ処理を、図１０を用いて説明する。ホストコンピュータ２からプライマリボリューム１３へＲｅａｄ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｒｅａｄ命令により特定されるプライマリボリューム１３の領域のＢＭ（Ｐ，Ｓ）をチェックする（ステップ１０００）。ＢＭ（Ｐ，Ｓ）＝（１，０）であるので、プライマリボリューム１３にはアクセスすべきデータはなく（ステップ１００５）、セカンダリボリューム１４の対応する領域にアクセスすべきデータがあるので、当該データをプライマリボリューム１３の当該領域にコピーする（ステップ１０１０）。その後、論理スナップショット管理表１１１の（Ｐ，Ｓ）＝（１，０）を（Ｐ，Ｓ）＝（０，０）に更新する（ステップ１０１５）。引き続いて、Ｒｅａｄ命令で特定される、プライマリボリューム１３の領域からデータを読み出し（ステップ１０２０）、ホストコンピュータに送る。
【００６４】
前述のＢＭ（Ｐ，Ｓ）＝（０，１）及びＢＭ（Ｐ，Ｓ）＝（０，０）におけるプライマリボリューム１３のデータのＲｅａｄ処理について前者は図面を用いずに説明し、後者は説明を保留していたが、これらの処理は、図１０においてステップ１００５からステップ１０２０へ分岐する処理になることは容易に理解される。
【００６５】
図５のＢＭ（Ｐ，Ｓ）＝（１，０）の状態における、プライマリボリューム１３のＷｒｉｔｅ処理を図６を用いて説明する。図６のデータのコピー方向は、前述したように、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態を起点とした場合と逆になる。ＢＭ（Ｐ，Ｓ）＝（１，０）の状態において、ホストコンピュータ２からプライマリボリューム１３へＷｒｉｔｅ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｗｒｉｔｅ命令により特定されるプライマリボリューム１３の領域のＢＭ（Ｐ，Ｓ）をチェックする（ステップ６００）。ＢＭ（Ｐ，Ｓ）＝（１，０）であり、プライマリボリューム１３の対応する領域のデータは無意であるので、セカンダリボリューム１４の領域にあるデータをプライマリボリューム１３の対応する領域へコピーする（ステップ６１０）。コピーを完了したら、論理スナップショット管理表１１１をＢＭ（Ｐ，Ｓ）＝（１，０）からＢＭ（Ｐ，Ｓ）＝（０，０）に更新する（ステップ６１５）。この後に、Ｗｒｉｔｅ命令で指示されるデータをプライマリボリューム１３の所定の領域に書き込む。
【００６６】
図５のＢＭ（Ｐ，Ｓ）＝（１，０）の状態における、セカンダリボリューム１４からのＲｅａｄ処理では、図７のステップ７０５でセカンダリボリューム１４はアクセス（Ｒｅａｄ処理）対象のデータを保持しており、ステップ７２０へ分岐し、ホストコンピュータ２からのＲｅａｄ命令で指定されたアドレスからデータを読み出し、そのデータをホストコンピュータ２へ送る（ステップ７２０）。図７の他の方法として示した図８では、ステップ８０５で分岐し、Ｒｅａｄ命令で指定されたアドレスからデータを読み出し、そのデータをホストコンピュータ２へ送る（ステップ８１５）。
【００６７】
図５のＢＭ（Ｐ，Ｓ）＝（１，０）の状態における、セカンダリボリューム１４へのＷｒｉｔｅ処理を図９を用いて説明する。図９のデータのコピー方向は、前述したように、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態を起点とした場合と逆になる。ＢＭ（Ｐ，Ｓ）＝（１，０）の状態において、ホストコンピュータ２からセカンダリボリューム１４へＷｒｉｔｅ命令が発行されると、制御装置１１は論理スナップショット管理表１１１の、Ｗｒｉｔｅ命令により特定されるセカンダリボリューム１４の領域のＢＭ（Ｐ，Ｓ）をチェックする（ステップ９００）。ＢＭ（Ｐ，Ｓ）＝（１，０）であり、プライマリボリューム１３の対応する領域にはアクセスすべきデータがないので、セカンダリボリューム１４の領域にあるデータをプライマリボリューム１３の対応する領域へコピーする（ステップ９１０）。コピーを完了したら、論理スナップショット管理表１１１をＢＭ（Ｐ，Ｓ）＝（１，０）からＢＭ（Ｐ，Ｓ）＝（０，０）に更新する（ステップ９１５）。この後に、Ｗｒｉｔｅ命令で指示されるデータをセカンダリボリューム１４の所定の領域に書き込む。
【００６８】
本実施例では、Ｓｎａｐコマンド２４０、Ｒｅｓｔｏｒｅコマンド２６０およびＤｅｌｅｔｅコマンド２７０の３種類の制御コマンドを、ホストコンピュータ２が発行するコマンドとして用意していることを既に述べた。Ｄｅｌｅｔｅコマンド２７０は、既に説明したように、Ｓｎａｐ状態２２０からＤｅｌｅｔｉｎｇ状態２３０への遷移を発生させるコマンドであるので、アクセスすべきデータの所在の変化を生起させない。ペアボリュームがＳｎａｐ状態２２０にあるときに、Ｓｎａｐコマンド２４０またはＲｅｓｔｏｒｅコマンド２６０がホストコンピュ―タ２から発行されると、Ｓｎａｐ状態２２０が維持されるが、アクセスすべきデータの所在の変更が発生する。
【００６９】
Ｓｎａｐコマンド２４０は、プライマリボリューム１３にアクセスすべきデータがあれば、セカンダリボリューム１４の対応するデータを無意にし、セカンダリボリューム１４のアクセスすべきデータの所在がプライマリボリューム１３のアクセスすべきデータの所在と等しくなるように論理スナップショット管理表１１１を更新する。セカンダリボリューム１４にのみアクセスすべきデータがあれば、その状態を維持する。Ｒｅｓｔｏｒｅコマンド２６０は、Ｓｎａｐ状態２２０にあるときに、プライマリボリューム１３内のデータを何らかの理由で使用できなくなった場合、たとえばホストコンピュータ２が正しいデータに誤ったデータを上書きしてしまったような場合、ホストコンピュータ２からのリカバリーのために用意したコマンドである。
【００７０】
Ｒｅｓｔｏｒｅコマンド２６０は、セカンダリボリューム１４にアクセスすべきデータがあれば、プライマリボリューム１３の対応するデータを無意にし、プライマリボリューム１３のアクセスすべきデータの所在がセカンダリボリューム１４のアクセスすべきデータの所在と等しくなるように論理スナップショット管理表１１１を更新する。プライマリボリューム１３にのみアクセスすべきデータがあれば、その状態を維持するためのコマンドである。このようなアクセスすべきデータの所在の変化について説明した後に、Ｄｅｌｅｔｅコマンド２７０に対応する処理を説明する。
【００７１】
図１１は、ホストコンピュータ２からプライマリボリューム１３またはセカンダリボリューム１４へのＳｎａｐコマンド２４０またはＲｅｓｔｏｒｅコマンド２６０の発行に応じたプライマリボリューム１３及びセカンダリボリューム１４のデータの保有状態の変化を、論理スナップショット管理表１１１のＢＭ（Ｐ，Ｓ）の変化として表したものである。図１１の実行前の状態はＳｎａｐコマンド２４０またはＲｅｓｔｏｒｅコマンド２６０を受ける前のＢＭ（Ｐ，Ｓ）を表し、アクセス処理実行後の状態はＳｎａｐコマンド２４０またはＲｅｓｔｏｒｅコマンド２６０を受け、所定の処理完了後のＢＭ（Ｐ，Ｓ）を表す。
【００７２】
実行前のＢＭ（Ｐ，Ｓ）は、（０，０）、（０，１）および（１，０）の３状態を取り得る。ＢＭ（Ｐ，Ｓ）＝（１，１）はプライマリボリューム１３及びセカンダリボリューム１４のいずれもがアクセスすべきデータを保有しない場合を示し、本実施例では存在しない。
【００７３】
以下の説明で明らかになるように、Ｓｎａｐコマンド２４０またはＲｅｓｔｏｒｅコマンド２６０が発行されると、制御装置１１はペアボリューム内の全データについて処理を実行する。ペアボリューム内のデータに関して、実行前のＢＭ（Ｐ，Ｓ）が異なれば、処理が異なるので、実行前のＢＭ（Ｐ，Ｓ）の状態ごとに、以下説明する。
【００７４】
図１１のＢＭ（Ｐ，Ｓ）＝（０，１）の状態で、Ｓｎａｐコマンド２４０を受けた場合について図１２を用いて説明する。ＢＭ（Ｐ，Ｓ）＝（０，１）の状態はたとえば、図３で説明した、Ｓｉｍｐｌｅｘ状態２１０でＳｎａｐコマンド２４０が実行され、ペアボリュームがＳｎａｐ状態２２０に遷移した直後に現れる状態である。論理スナップショット管理表１１１をチェックすると（ステップ１２００）、セカンダリボリューム１４にはアクセスすべきデータが存在しないので（ステップ１２０５）、ステップ１２２０に分岐する。
【００７５】
図１２では、論理スナップショット管理表１１１で管理するすべてのデータをチェックするための処理ループ（ステップ１２２０からステップ１２００への分岐）を制御するための初期設定を省略してあるが、ステップ１２２０で全データに関する処理の終了を判断し、終了していなければステップ１２００へ分岐する。以上の処理により、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態で、Ｓｎａｐコマンド２４０を受けると、ペアボリュームはＢＭ（Ｐ，Ｓ）＝（０，１）の状態を維持する。
【００７６】
図１１のＢＭ（Ｐ，Ｓ）＝（０，１）の状態で、Ｒｅｓｔｏｒｅコマンド２６０を受けた場合について図１３を用いて説明する。論理スナップショット管理表１１１をチェックすると（ステップ１３００）、プライマリボリューム１３にアクセスすべきデータが存在し（ステップ１３０５）、セカンダリボリューム１４の対応する領域にはアクセスすべきデータが存在しないので（ステップ１３１０）、ステップ１３２０に分岐する。図１３でも、論理スナップショット管理表１１１で管理するすべてのデータをチェックするための処理ループ（ステップ１３２０からステップ１３００への分岐）を制御するための初期設定を省略してあるが、ステップ１３２０で全データに関する処理の終了を判断し、終了していなければステップ１３００へ分岐する。以上の処理により、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態で、Ｒｅｓｔｏｒｅコマンド２６０を受けると、ストレージ装置１はＢＭ（Ｐ，Ｓ）＝（０，１）の状態を維持する。
【００７７】
図１１のＢＭ（Ｐ，Ｓ）＝（０，０）の状態で、Ｓｎａｐコマンド２４０を受けた場合について図１２を用いて、既に説明したことと異なる部分に関して主に説明する。セカンダリボリューム１４にアクセスすべきデータがあり（ステップ１２０５）、プライマリボリューム１３の対応するデータも有意であるので（ステップ１２１０）、論理スナップショット管理表１１１のＢＭ（Ｐ，Ｓ）＝（０，０）をＢＭ（Ｐ，Ｓ）＝（０，１）に更新する（ステップ１２１５）。以上の処理を全データに関して繰り返す（ステップ１２２０）。
【００７８】
図１１のＢＭ（Ｐ，Ｓ）＝（０，０）の状態で、Ｒｅｓｔｏｒｅコマンド２６０を受けた場合について図１３を用いて、既に説明したことと異なる部分に関して主に説明する。プライマリボリューム１３のデータはコマンド受領まで有意であり（ステップ１３０５）、セカンダリボリューム１４の対応する領域にもアクセスすべきデータが存在するので（ステップ１３１０）、論理スナップショット管理表１１１のＢＭ（Ｐ，Ｓ）＝（０，０）をＢＭ（Ｐ，Ｓ）＝（１，０）に更新する（ステップ１３１５）。以上の処理を全データに関して繰り返す（ステップ１３２０）。
【００７９】
図１１のＢＭ（Ｐ，Ｓ）＝（１，０）の状態で、Ｓｎａｐコマンド２４０を受けた場合について図１２を用いて説明する。セカンダリボリューム１４にアクセスすべきデータがあり（ステップ１２０５）、プライマリボリューム１３の対応する領域にはアクセスすべきデータがないので（ステップ１２１０）、ステップ１２２０へ分岐する。ＢＭ（Ｐ，Ｓ）＝（１，０）の状態は維持される。以上の処理を全データに関して繰り返す（ステップ１２２０）。
【００８０】
図１１のＢＭ（Ｐ，Ｓ）＝（１，０）の状態で、Ｒｅｓｔｏｒｅコマンド２６０を受けた場合について図１３を用いて説明する。プライマリボリューム１３にはアクセスすべきデータが存在しないので（ステップ１３０５）、ステップ１２２０へ分岐する。ＢＭ（Ｐ，Ｓ）＝（１，０）の状態は維持される。以上の処理を全データに関して繰り返す（ステップ１３２０）。
【００８１】
Ｒｅｓｔｏｒｅコマンド２６０を実行後に、ＢＭ（Ｐ，Ｓ）＝（１，０）である領域については、ホストコンピュータ２からのアクセスとは非同期に、セカンダリボリューム１４の当該領域に保持されているデータを、プライマリボリューム１３の対応する領域にコピーしてもよい。この動作を図１４を用いて説明する。
【００８２】
Ｒｅｓｔｏｒｅコマンド２６０を実行した結果、すべての領域はＢＭ（Ｐ，Ｓ）＝（１，０）もしくはＢＭ（Ｐ，Ｓ）＝（０，１）のいずれかの状態になっている。論理スナップショット管理表１１１をチェックし（ステップ１４００）、プライマリボリューム１３にアクセスすべきデータが存在するならば（ＢＭ（Ｐ，Ｓ）＝（０，１））（ステップ１４０５）、ステップ１４２０へ分岐する。
【００８３】
一方、プライマリボリューム１３にアクセスすべきデータがないならば（ＢＭ（Ｐ，Ｓ）＝（１，０））、セカンダリボリューム１４の対応する領域には有意なデータが必ず保持されているので、当該データを当該領域にコピーする（ステップ１４１０）。その後、論理スナップショット管理表１１１をＢＭ（Ｐ，Ｓ）＝（０，０）にする（ステップ１４１５）。以上の処理を全データに関して繰り返す（ステップ１４２０）。
【００８４】
このコピー動作により、ホストコンピュータ２からのアクセスの有無によらず、プライマリボリューム１３のすべてのデータが有意なものとなる。
【００８５】
以上より、直前の制御コマンドがＳｎａｐコマンド２４０であれば、Ｓｎａｐコマンド２４０実行時点のプライマリボリューム１３のデータがセカンダリボリューム１４へのアクセスに対して保証され、直前の制御コマンドがＲｅｓｔｏｒｅコマンド２６０であれば、Ｒｅｓｔｏｒｅコマンド２６０実行時点のセカンダリボリューム１４のデータがプライマリボリューム１３へのアクセスに対して保証される。また、Ｓｎａｐコマンド２４０実行後に、更新されたセカンダリボリューム１４のデータはＳｎａｐコマンド２４０の実行によりセカンダリボリューム１４に保存されたデータより優先され、Ｒｅｓｔｏｒｅコマンド２６０実行後に、更新されたプライマリボリューム１３のデータはＲｅｓｔｏｒｅコマンド２６０実行時にプライマリボリューム１３にコピーされたデータより優先される。
【００８６】
すなわち、かかる場合にはコマンド実行時点のデータを更新データで上書きし、コマンド実行時点のデータは保証されない。
【００８７】
次にＤｅｌｅｔｅコマンド２７０について説明する。既に説明したように、Ｄｅｌｅｔｅコマンド２７０は、Ｓｎａｐ状態２２０から、過渡的なＤｅｌｅｔｉｎｇ状態２３０を経由して、Ｓｉｍｐｌｅｘ状態２１０へ遷移させるコマンドである。Ｄｅｌｅｔｅコマンドの受領によっては論理スナップショット管理票１１１は変化しない。この状態を図１５に示す。図１６に制御装置が実行するＤｅｌｅｔｅ動作を示す。
【００８８】
Ｄｅｌｅｔｅコマンド２７０を受けると、プライマリボリューム１３にアクセスすべきデータが無いならば（ステップ１６００）、ステップ１６１５へ分岐し、アクセスすべきデータがあるならば、セカンダリボリューム１４の対応する領域にアクセスすべきデータがあるかをチェックする（ステップ１６０５）。アクセスすべきデータがあるならばステップ１６２０へ分岐する。セカンダリボリューム１４の対応する領域にアクセスすべきデータがないならば、プライマリボリューム１３からセカンダリボリューム１４へ当該データをコピーする（ステップ１６１０）。ステップ１６１５では、セカンダリボリューム１４の当該データをプライマリボリューム１３の対応する領域へコピーする。ステップ１６２０においては、プライマリボリューム１３及びセカンダリボリューム１４のいずれもがアクセスすべきデータを保有しているので、論理スナップショット管理表１１１をＢＭ（Ｐ，Ｓ）＝（０，０）とする。以上の処理を全データに関して繰り返す（ステップ１６２５）。
【００８９】
なお、Ｓｉｍｐｌｅｘ状態２１０で論理スナップショット管理表１１１による管理が不要である場合は、処理済みアドレスをポインタ等により管理することにより、図１６のステップ１６２０を省略できる。
【００９０】
Ｄｅｌｅｔｉｎｇ状態２３０を過渡的なものではなく、ホストコンピュータ２から分かる状態にして、新たなコマンド等を用意し、ストレージ装置１の状態をＤｅｌｅｔｉｎｇ状態２３０からＳｉｍｐｌｅｘ状態２１０に遷移させることも可能であることを前述した。ここでは、Ｓｎａｐ状態２２０からミクロな状態はそのままにして、マクロな状態をＤｅｌｅｔｉｎｇ状態２３０にする。Ｄｅｌｅｔｉｎｇ状態２３０であることをメモリに記憶しておけば、Ｓｎａｐ状態２２０との状態の差異を制御装置１１は認識できる。また、必要に応じてホストコンピュータ２や管理用装置３にＤｅｌｅｔｉｎｇ状態２３０であることを報告する。Ｄｅｌｅｔｉｎｇ状態２３０において、ホストコンピュータ２からのプライマリボリューム１３またはセカンダリボリューム１４へのアクセスに応じて、Ｓｉｍｐｌｅｘ状態２１０に遷移させる方法について以下に説明する。
【００９１】
この場合の、論理スナップショット管理表１１１の変化は既に説明した図５に従う。Ｓｉｍｐｌｅｘ状態２１０に遷移する直前には、論理スナップショット管理表１１１はＢＭ（Ｐ，Ｓ）＝（０，０）になっている必要があるが、図５に従えば、ＢＭ（Ｐ，Ｓ）＝（０，１）の状態でプライマリボリューム１３にＲｅａｄ命令が発行された場合とＢＭ（Ｐ，Ｓ）＝（１，０）の状態でセカンダリボリューム１４にＲｅａｄ命令が発行された場合では、ＢＭ（Ｐ，Ｓ）＝（０，０）への状態の変化は起こらない。このようなデータが存在する場合は、ストレージ装置１はＤｅｌｅｔｉｎｇ状態２３０を維持し、ＢＭ（Ｐ，Ｓ）＝（０，０）への変化を生起させるアクセスの実行に伴って、Ｓｉｍｐｌｅｘ状態２１０に遷移する。
【００９２】
以上の第１実施例により、データの凍結イメージ（スナップショット）へのアクセスが、Ｓｎａｐコマンド２４０を実行後に直ちに可能になる。またＳｎａｐコマンド２４０を実行後は、各データの凍結イメージが論理的なスナップショット（セカンダリボリュームがデータを保持していない状態）又は物理的なスナップショット（セカンダリボリュームがデータを保持している状態）で維持されているので、ホストコンピュータからのプライマリボリュームへのアクセスは、セカンダリボリュームへのアクセスによって制約を受けることは無い。
【００９３】
さらにＲｅｓｔｏｒｅコマンド２６０の実行により、プライマリボリュームのデータに誤りが生じても、セカンダリボリュームのデータを用いて復元することができる。Ｒｅｓｔｏｒｅコマンド２６０はＳｎａｐコマンド２４０と対称的な制御をするために用意されているので、ストレージ装置１の制御に関わらず、ホストコンピュータ２にはプライマリボリューム１３とセカンダリボリューム１４との役割を逆にする自由度を与えている。
【００９４】
ホストコンピュータ２からのＤｅｌｅｔｅコマンド２７０の発行に応じて、プライマリボリューム１３とセカンダリボリューム１４の双方がデータを保有している状態にした後に、各々のボリュームを独立して使用できるＳｉｍｐｌｅｘ状態２１０へ遷移するので、各ボリュームの利用性が高まる。
【００９５】
データのバックアップを保存する場合、用途により保存の仕方が変わる。毎月１回のバックアップや１年を超えるような保存期間のバックアップの場合は、磁気テープ等にバックアップデータを保存しておく必要がある。一方、データの誤り回復のための一時的なバックアップは、１０分毎や１時間毎に実行される。この場合、磁気テープ等の記憶媒体を新たに用意する必要はなく、本実施例のＳｉｍｐｌｅｘ状態２１０に戻ったセカンダリボリューム１４をバックアップ用として使用できる。ある時点のバックアップのあるセカンダリボリューム１４に、本実施例により次のバックアップデータを上書きすることにより、バックアップ用の記憶容量を増加させないで済む。バックアップデータの上書き中に、セカンダリボリューム１４に障害が発生すると回復不能になる場合があるので、セカンダリボリュームを２つ用意し、交互に使用すれば、回復不能になる状態を避けることができる。
【００９６】
本発明の第２実施例を説明する。第１実施例では、Ｓｎａｐ状態２２０からＳｉｍｐｌｅｘ状態２１０へ遷移のために、Ｄｅｌｅｔｅコマンド２７０を実行する。ところが、Ｓｉｍｐｌｅｘ状態２１０へ遷移した後は、セカンダリボリューム１４のデータを使用しない用途も多々ある。典型的にはＳｎａｐ状態２２０でデータのバックアップを完了したら、以後はセカンダリボリューム１４のデータを使用しないというものである。このような用途のためには、Ｄｅｌｅｔｅコマンド２７０の実行に伴うデータのコピーは不要である。不要なデータのコピーに時間を要しているという問題もある。
【００９７】
そこで、図１７に示すように、Ｄｅｌｅｔｅコマンド２７０とは異なる、データコピーをせずに短時間でプライマリボリューム１３とセカンダリボリューム１４とのペア関係を解消するＤｉｖｉｄｅコマンド１３００を用意する。ストレージ装置がＳｉｍｐｌｅｘ状態２１０へ遷移したことをホストコンピュータ２が認識できれば良く、制御装置１１によるＤｉｖｉｄｅコマンド１３００の処理としては、論理スナップショット管理表１１１を解放し、ホストコンピュータ２へ報告すればよい。
【００９８】
Ｄｉｖｉｄｅコマンド１３００を用意した本実施例により、ストレージ装置をＳｎａｐ状態２２０からＳｉｍｐｌｅｘ状態２１０へ短時間で遷移させることができる。
【００９９】
Ｓｎａｐ状態２２０におけるセカンダリボリューム１４へのアクセスは、データのバックアップを取るときのようにＲｅａｄ命令に限られる場合は、本実施例の短時間でペア関係を解消することは極めて有用である。
【０１００】
Ｄｅｌｅｔｅコマンド２７０を用いずに、Ｄｉｖｉｄｅコマンド１３００を使用する場合は、セカンダリボリューム１４の容量がプライマリボリューム１３の容量に比べて少なくてすむ。セカンダリボリューム１４の容量は、その用途等を考慮した統計的手法を用いることにより、適切に定めることができる。
【０１０１】
第１実施例及び第２実施例を合わせて考慮すると、Ｓｎａｐ状態２２０からＳｉｍｐｌｅｘ状態２１０への遷移には、Ｄｅｌｅｔｅコマンド２７０及びＤｉｖｉｄｅコマンド１３００のいずれか一方を用いる制御と、それらの双方を用いる制御の３通りの制御モードがある。例えばＤｉｖｉｄｅコマンド１３００のみを用いた例を図１８に示す。
【０１０２】
これらの制御モードの選択は、幾つかの例で示してきたようにホストコンピュータ２の役割や機能に依存する。そこで、ホストコンピュータ２の役割や機能が予め定まっている場合は、それに対応する特定の制御モードをストレージ装置１が持てば良いが、時間経過と共に必要な制御モードが変化することが多い。そこで、制御モードはホストコンピュータ２から選択できるようにする。ホストコンピュータ２や管理用装置３からの制御モードの選択の方法は、制御モードを指定するための新たなコマンドを設けても良いが、Ｓｎａｐコマンド２４０のパラメータとして付加する。制御装置１１はそのパラメータをメモリに記憶、参照しながら制御を実行する。
【０１０３】
このように制御モードの選択をホストコンピュータ２を用いるユーザに委ねることにより、ユーザはホストコンピュータ２の用途や機能に応じた好適なストレージ装置を利用できる。
【０１０４】
【発明の効果】
以上説明したように本発明のストレージ装置およびその管理方法によれば、ホストコンピュータの使用環境に応じた最適な凍結イメージの使用および取得が可能となり、ストレージ装置の利便性を向上することができる。
【図面の簡単な説明】
【図１】本発明のストレージ装置の構成図である。
【図２】本発明のストレージ装置が取り得る状態間の状態遷移図である。
【図３】本発明の、論理スナップショット管理表の一例を示す図である。
【図４】本発明の、論理スナップショット管理表の一例を示す図である。
【図５】本発明の論理スナップショット管理表の、アクセス処理に伴う変化を示す図である。
【図６】本発明の、プライマリボリューム更新時のフローチャートを示す図である。
【図７】本発明の、セカンダリボリューム読出し時のフローチャートを示す図である。
【図８】本発明の、セカンダリボリューム読出し時のフローチャートを示す図である。
【図９】本発明の、セカンダリボリューム更新時のフローチャートを示す図である。
【図１０】本発明の、プライマリボリューム読出し時のフローチャートを示す図である。
【図１１】本発明の論理スナップショット管理表の、制御コマンド受領に伴う変化を示す図である。
【図１２】本発明の、Ｓｎａｐコマンド実行のフローチャートを示す図である。
【図１３】本発明の、Ｒｅｓｔｏｒｅコマンド実行のフローチャートを示す図である。
【図１４】本発明の、Ｒｅｓｔｏｒｅ  動作のフローチャートを示す図である。
【図１５】本発明の、Ｄｅｌｅｔｅコマンド実行前後の論理スナップショット管理表の状態を示す図である。
【図１６】本発明の、Ｄｅｌｅｔｅ動作のフローチャートを示す図である。
【図１７】本発明のストレージ装置が取り得る状態間の状態遷移図である。
【図１８】本発明のストレージ装置が取り得る状態間の状態遷移図である。
【符号の説明】
１‥‥ストレージ装置
２‥‥ホストコンピュータ
３‥‥管理用装置
１１‥‥制御装置
１３‥‥プライマリボリューム
１４‥‥セカンダリボリューム
１１１‥‥論理スナップショット管理表
【図１】
2004258944.tif 000003
【図２】
2004258944.tif 000004
【図３】
2004258944.tif 000005
【図４】
2004258944.tif 000006
【図５】
2004258944.tif 000007
【図６】
2004258944.tif 000008
【図７】
2004258944.tif 000009
【図８】
2004258944.tif 000010
【図９】
2004258944.tif 000011
【図１０】
2004258944.tif 000012
【図１１】
2004258944.tif 000013
【図１２】
2004258944.tif 000014
【図１３】
2004258944.tif 000015
【図１４】
2004258944.tif 000016
【図１５】
2004258944.tif 000017
【図１６】
2004258944.tif 000018
【図１７】
2004258944.tif 000019
【図１８】
2004258944.tif 000020