(57)【要約】【課題】正ボリュームと性能及び障害の依存関係がなく、かつ、容量効率の高いスナップショットバックアップを実現する。【解決手段】計算機から書き込まれたデータを格納するストレージシステムであって、第１論理ボリュームへのデータの書き込み要求を受信すると、前記要求されたデータを前記第１論理ボリュームに格納し、第１の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータを前記第１の世代のスナップショットに対応するデータとして前記プール領域に書き込み、第２の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信してから前記第２の世代のスナップショット作成要求をするまでの間に更新されたデータを前記第１論理ボリュームから読み出して前記プール領域に書き込む。【選択図】図９
2010123066.tif 000002
【特許請求の範囲】
【請求項１】
計算機から書き込まれたデータを格納するストレージシステムであって、
前記ストレージシステムは、データの物理的な記憶領域を提供する記憶媒体と、前記記憶媒体へのデータの入出力を制御する制御部と、を備え、
前記物理的な記憶領域の一部は、前記制御部によって、第１論理ボリュームとして前記計算機に提供され、
前記物理的な記憶領域の別の一部は、前記制御部が管理するプール領域に割り当てられ、
前記制御部は、
前記第１論理ボリュームへのデータの書き込み要求を受信すると、前記要求されたデータを前記第１論理ボリュームに格納し、
第１の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータを読み出して、前記読み出されたデータを前記第１の世代のスナップショットに対応するデータとして前記プール領域に書き込み、
前記第１の世代のスナップショット作成要求を受信した後に、第２の世代のスナップショット作成要求を受信すると、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータのうち、前記第１の世代のスナップショット作成要求を受信してから前記第２の世代のスナップショット作成要求をするまでの間に更新されたデータを読み出して、前記読み出されたデータを前記第２の世代のスナップショットに対応するデータとして前記プール領域に書き込むことを特徴とするストレージシステム。
【請求項２】
前記ストレージシステムには、前記プール領域に格納されたデータと、スナップショットの世代とを対応付ける管理情報が格納され、
前記制御部は、前記計算機からスナップショットの世代の指定を含むデータの読み出し要求を受信すると、前記指定された世代のスナップショットに対応するデータを前記プール領域から読み出して前記計算機に送信することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記制御部は、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第２論理ボリューム、及び、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第３論理ボリュームを前記計算機に提供し、
前記管理情報は、前記プール領域に格納されたデータと、スナップショットの世代と、前記第２論理ボリューム及び前記第３論理ボリュームにおけるアドレスと、を対応付ける情報を含み、
前記制御部は、
前記計算機から、前記第２論理ボリューム内のデータの読み出し要求を受信した場合、前記第１の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信し、
前記計算機から、前記第３論理ボリューム内のデータの読み出し要求を受信した場合、前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信し、
前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータが前記プール領域に格納されていない場合、前記第１の世代のスナップショットに対応、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信することを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記制御部は、前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記書き込み先として指定された記憶領域に前記物理的な記憶領域を割り当てることを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記制御部は、前記第１論理ボリュームから読み出されたデータが所定のパターンのデータである場合、前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の前記記憶領域への前記物理的な記憶領域の割り当てを解除することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記プール領域内の所定の領域に、前記所定のパターンのデータが格納され、
前記制御部は、前記読み出し要求によって指定されたアドレスに対応する前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記所定の領域から前記所定のパターンのデータを読み出して前記計算機に送信することを特徴とする請求項５に記載のストレージシステム。
【請求項７】
前記ストレージシステムには外部ストレージシステムが接続され、
前記外部ストレージシステムは、データの物理的な記憶領域を提供する外部記憶媒体を備え、
前記制御部は、前記外部記憶媒体が提供する物理的な記憶領域を前記第１論理ボリューム又は前記プール領域の少なくとも一方に割り当てることを特徴とする請求項１に記載のストレージシステム。
【請求項８】
計算機から書き込まれたデータを格納するストレージシステムを制御する方法であって、
前記ストレージシステムは、データの物理的な記憶領域を提供する記憶媒体と、前記記憶媒体へのデータの入出力を制御する制御部と、を備え、
前記物理的な記憶領域の一部は、前記制御部によって、第１論理ボリュームとして前記計算機に提供され、
前記物理的な記憶領域の別の一部は、前記制御部が管理するプール領域に割り当てられ、
前記方法は、
前記第１論理ボリュームへのデータの書き込み要求を受信すると、前記要求されたデータを前記第１論理ボリュームに格納する第１手順と、
第１の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータを読み出して、前記読み出されたデータを前記第１の世代のスナップショットに対応するデータとして前記プール領域に書き込む第２手順と、
前記第１の世代のスナップショット作成要求を受信した後に、第２の世代のスナップショット作成要求を受信すると、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータのうち、前記第１の世代のスナップショット作成要求を受信してから前記第２の世代のスナップショット作成要求をするまでの間に更新されたデータを読み出して、前記読み出されたデータを前記第２の世代のスナップショットに対応するデータとして前記プール領域に書き込む第３手順と、を含むことを特徴とする方法。
【請求項９】
前記ストレージシステムには、前記プール領域に格納されたデータと、スナップショットの世代とを対応付ける管理情報が格納され、
前記方法は、さらに、前記計算機からスナップショットの世代の指定を含むデータの読み出し要求を受信すると、前記指定された世代のスナップショットに対応するデータを前記プール領域から読み出して前記計算機に送信する第４手順を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記制御部は、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第２論理ボリューム、及び、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第３論理ボリュームを前記計算機に提供し、
前記管理情報は、前記プール領域に格納されたデータと、スナップショットの世代と、前記第２論理ボリューム及び前記第３論理ボリュームにおけるアドレスと、を対応付ける情報を含み、
前記第４手順は、
前記計算機から、前記第２論理ボリューム内のデータの読み出し要求を受信した場合、前記第１の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信する第５手順と、
前記計算機から、前記第３論理ボリューム内のデータの読み出し要求を受信した場合、前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信する第６手順と、を含み、
前記第６手順は、前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータが前記プール領域に格納されていない場合、前記第１の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信する手順を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記方法は、さらに、前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記書き込み先として指定された記憶領域に前記物理的な記憶領域を割り当てる手順を含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記方法は、さらに、前記第１論理ボリュームから読み出されたデータが所定のパターンのデータである場合、前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の前記記憶領域への前記物理的な記憶領域の割り当てを解除する手順を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記プール領域内の所定の領域に、前記所定のパターンのデータが格納され、
前記方法は、さらに、前記読み出し要求によって指定されたアドレスに対応する前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記所定の領域から前記所定のパターンのデータを読み出して前記計算機に送信する手順を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ストレージシステムには外部ストレージシステムが接続され、
前記外部ストレージシステムは、データの物理的な記憶領域を提供する外部記憶媒体を備え、
前記外部記憶媒体が提供する物理的な記憶領域が、前記第１論理ボリューム又は前記プール領域の少なくとも一方に割り当てられることを特徴とする請求項８に記載の方法。
【請求項１５】
計算機から書き込まれたデータを格納するストレージシステムであって、
前記ストレージシステムは、データの物理的な記憶領域を提供する内部記憶媒体と、前記内部記憶媒体へのデータの入出力を制御する制御部と、を備え、
前記ストレージシステムには外部ストレージシステムが接続され、
前記外部ストレージシステムは、データの物理的な記憶領域を提供する外部記憶媒体を備え、
前記内部記憶媒体又は前記外部記憶媒体の物理的な記憶領域の一部は、前記制御部によって、第１論理ボリュームとして前記計算機に提供され、
前記内部記憶媒体又は前記外部記憶媒体の前記物理的な記憶領域の別の一部は、前記制御部が管理するプール領域に割り当てられ、
前記制御部は、
前記第１論理ボリュームへのデータの書き込み要求を受信すると、前記要求されたデータを前記第１論理ボリュームに格納し、
第１の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータを読み出して、前記読み出されたデータを前記第１の世代のスナップショットに対応するデータとして前記プール領域に書き込み、
前記第１の世代のスナップショット作成要求を受信した後に、第２の世代のスナップショット作成要求を受信すると、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータのうち、前記第１の世代のスナップショット作成要求を受信してから前記第２の世代のスナップショット作成要求をするまでの間に更新されたデータを読み出して、前記読み出されたデータを前記第２の世代のスナップショットに対応するデータとして前記プール領域に書き込み、
前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記書き込み先として指定された記憶領域に前記物理的な記憶領域を割り当て、
前記第１論理ボリュームから読み出されたデータが所定のパターンのデータである場合、前記第１論理ボリュームから読み出されたデータの書き込み先として指定された前記プール領域内の前記記憶領域への前記物理的な記憶領域の割り当てを解除し、
前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第２論理ボリューム、及び、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されていたデータの複製を含む第３論理ボリュームを前記計算機に提供し、
前記計算機から、前記第２論理ボリューム内のデータの読み出し要求を受信した場合、前記プール領域に格納されたデータと、スナップショットの世代と、前記第２論理ボリューム及び前記第３論理ボリュームにおけるアドレスと、を対応付ける管理情報に基づいて、前記第１の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信し、
前記計算機から、前記第３論理ボリューム内のデータの読み出し要求を受信した場合、前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信し、
前記第２の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータが前記プール領域に格納されていない場合、前記第１の世代のスナップショットに対応し、かつ、前記読み出し要求によって指定されたアドレスに対応するデータを前記プール領域から読み出して前記計算機に送信し、
前記読み出し要求によって指定されたアドレスに対応する前記プール領域内の記憶領域に前記物理的な記憶領域が割り当てられていない場合、前記プール領域内の所定の領域から前記所定のパターンのデータを読み出して前記計算機に送信することを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書に開示される技術は、ストレージ装置のデータバックアップ方法に関し、特に、いわゆる差分スナップショット技術を応用したデータバックアップ方法に関する。
【背景技術】
【０００２】
ストレージ装置のデータを保護するために、データのバックアップを保持する種々の技術が知られている。
【０００３】
例えば、特許文献１には、指定された時点における記憶領域（論理ボリューム）全体のコピーを取得し、そのコピーをバックアップデータとして保持する技術が開示されている。この技術によれば、二つの論理ボリューム（特許文献１では論理ディスク）がミラーを構成する。二つの論理ディスクのうち正論理ボリューム（特許文献１ではマスタ論理ディスク）にホスト計算機がデータを書き込むと、そのデータが副論理ボリューム（特許文献１ではスナップショット論理ディスク）にも書き込まれる。その後、ミラーが切り離されると、スナップショット論理ディスクには、ミラーが切り離された時点のマスタ論理ディスク全体のコピーが保持される。
【０００４】
一方、特許文献２には、差分データをバックアップデータとして保持する技術が開示されている。具体的には、正論理ボリューム（特許文献２ではマスターストレージ）に格納されたデータが更新されるときに、更新される部分のデータ（差分データ）のみが、副論理ボリューム（特許文献２ではパイルストレージ）にコピーされ、保持される。更新されたマスターストレージのデータと、パイルストレージに格納された差分データとを合成することによって、更新される前のマスターストレージのデータを復元することができる。
【特許文献１】特開２００２−３７３０９３号公報
【特許文献２】特開２００３−２８０８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１に記載された技術によれば、ミラーが切り離された時点のマスタ論理ディスクのデータを復元するために、スナップショット論理ディスクを参照すれば十分であり、現在のマスタ論理ディスクを参照する必要はない。このため、ミラーが切り離された時点のマスタ論理ディスクのデータを復元する処理は、現在のマスタ論理ディスクへのアクセス性能を低下させない。すなわち、マスタ論理ディスクとスナップショット論理ディスクとの間の性能独立性が確保される。さらに、マスタ論理ディスクに障害が発生している場合であっても、スナップショット論理ディスクを用いて、ミラーが切り離された時点のマスタ論理ディスクのデータを復元することができる。すなわち、マスタ論理ディスクとスナップショット論理ディスクとの間の障害独立性が確保される。
【０００６】
しかし、スナップショット論理ディスクはマスタ論理ディスク全体のコピーを格納するため、ストレージシステムの記憶容量を多く使用する。特に、格納されるバックアップの世代数が多くなれば大量の記憶容量が使用されるため、容量効率が低くなるという問題がある。
【０００７】
一方、特許文献２に記載された技術によれば、差分データのみが保存される。その結果、上記特許文献１の場合と比較すると、使用される記憶容量が削減されため、容量効率が高い。しかし、特許文献２の技術によれば、更新される前のマスターストレージのデータを復元するために、必ず、現在のマスターストレージに格納されたデータと、パイルストレージに格納されたデータとを合成する必要がある。このことは、更新される前のマスターストレージのデータを復元する処理が、現在のマスターストレージへのアクセス性能に影響を与えることを意味する。さらに、マスターストレージに障害が発生した場合、更新される前のマスターストレージのデータを復元することができない。
【課題を解決するための手段】
【０００８】
本願で開示する代表的な発明は、計算機から書き込まれたデータを格納するストレージシステムであって、前記ストレージシステムは、データの物理的な記憶領域を提供する記憶媒体と、前記記憶媒体へのデータの入出力を制御する制御部と、を備え、前記物理的な記憶領域の一部は、前記制御部によって、第１論理ボリュームとして前記計算機に提供され、前記物理的な記憶領域の別の一部は、前記制御部が管理するプール領域に割り当てられ、前記制御部は、前記第１論理ボリュームへのデータの書き込み要求を受信すると、前記要求されたデータを前記第１論理ボリュームに格納し、第１の世代のスナップショット作成要求を受信すると、前記第１の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータを読み出して、前記読み出されたデータを前記第１の世代のスナップショットに対応するデータとして前記プール領域に書き込み、前記第１の世代のスナップショット作成要求を受信した後に、第２の世代のスナップショット作成要求を受信すると、前記第２の世代のスナップショット作成要求を受信した時点で前記第１論理ボリュームに格納されているデータのうち、前記第１の世代のスナップショット作成要求を受信してから前記第２の世代のスナップショット作成要求をするまでの間に更新されたデータを読み出して、前記読み出されたデータを前記第２の世代のスナップショットに対応するデータとして前記プール領域に書き込むことを特徴とする。
【発明の効果】
【０００９】
本発明の一実施形態によれば、正論理ボリュームと副論理ボリュームとの間の障害独立性及び性能独立性を確保しながら、容量効率の高いバックアップを実現することができる。
【発明を実施するための最良の形態】
【００１０】
最初に、本発明の実施形態を、図面を用いて詳細に説明する。
【００１１】
図１は、本発明の実施形態の計算機システムの構成を示すブロック図である。
【００１２】
本実施形態の計算機システムは、アプリケーションサーバ１０１、バックアップサーバ１０２、テープ装置１０３、管理サーバ１１１、第１のストレージシステム１２５及び第２のストレージシステム１６１を備える。第１のストレージシステム１２５は、第１のネットワーク１２１を介して、アプリケーションサーバ１０１、バックアップサーバ１０２及びテープ装置１０３に接続される。第２のストレージシステム１６１は、第２のネットワーク１２３を介して第１のストレージシステム１２５に接続される。アプリケーションサーバ１０１、バックアップサーバ１０２、テープ装置１０３、管理サーバ１１１、第１のストレージシステム１２５及び第２のストレージシステム１６１は、第３のネットワーク１０８を介して相互に接続される。
【００１３】
第１のネットワーク１２１、第２のネットワーク１２３及び第３のネットワーク１０８は、いかなる種類のネットワークであってもよい。本実施形態は、例として、第１のネットワーク１２１及び第２のネットワーク１２３が、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）プロトコルが使用される、いわゆるＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である場合を示す。一方、第３のネットワーク１０８は、例えば、ＩＰ（インターネットプロトコル）が使用される、いわゆるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であってもよい。
【００１４】
アプリケーションサーバ１０１は、第１のストレージシステム１２５によって提供される論理ボリュームにアクセスする計算機である。アプリケーションサーバ１０１の詳細な構成については後述する（図３参照）。
【００１５】
バックアップサーバ１０２は、第１のストレージシステム１２５に格納されたデータのバックアップを制御する計算機である。バックアップサーバ１０２の詳細な構成については後述する（図４参照）。
【００１６】
管理サーバ１１１は、第３のネットワーク１０８に接続されているアプリケーションサーバ１０１、バックアップサーバ１０２、テープ装置１０３、第１のストレージシステム１２５及び第２のストレージシステム１６１を管理する計算機である。管理サーバ１１１の詳細な構成については後述する（図５参照）。
【００１７】
第１のストレージシステム１２５は、コントローラ及び記憶デバイス群を備える。コントローラは、例えば、複数のフロントエンドインタフェース１２７と、複数のバックエンドインタフェース１３７と、第１の内部ネットワーク１５６と、一以上のキャッシュメモリ１４７と、一以上の制御メモリ１４５と、一以上の制御プロセッサ１４３とを備える。
【００１８】
記憶デバイス群は、複数の物理記憶デバイス（以下、「ＰＤＥＶ」と記載する）１５１で構成される。
【００１９】
フロントエンドインタフェース１２７は、ストレージシステム１２５にネットワークを介して接続されたアプリケーションサーバ１０１、バックアップサーバ１０２又は第２のストレージシステム１６１と通信するためのインタフェース回路である。従って、図１の例において、第１のストレージシステム１２５は、少なくとも三つのフロントエンドインタフェース１２７を備え、それらのうち少なくとも二つは第１のネットワーク１２１に接続され、別の少なくとも一つは第２のネットワーク１２３に接続される。
【００２０】
各フロントエンドインタフェース１２７は、例えば、第１のネットワーク１２１又は第２のネットワーク１２３に接続されるポート１２９と、メモリ１３１と、ローカルルータ（以下、「ＬＲ」と略記する）１３３とを備える。ＬＲ１３３に、ポート１２９及びメモリ１３１が接続される。
【００２１】
ＬＲ１３３は、ポート１２９を介して受信したデータを任意の制御プロセッサ１４３で処理するために振り分ける。具体的には、例えば、制御プロセッサ１４３が、あるアドレスを指定する入出力（Ｉ／Ｏ）コマンドをその制御プロセッサ１４３に実行させるようにＬＲ１３３を設定する。その設定に従って、ＬＲ１３３が、Ｉ／Ｏコマンド及びデータを振り分ける。
【００２２】
バックエンドインタフェース１３７は、ＰＤＥＶ１５１と通信するためのインタフェース回路である。各バックエンドインタフェース１３７は、例えば、ＰＤＥＶ１５１に接続されるディスクインタフェース１４１と、メモリ１３５と、ＬＲ１３９と、を備える。ＬＲ１３９に、ディスクインタフェース１４１及びメモリ１３５が接続される。
【００２３】
第１の内部ネットワーク１５６は、例えば、スイッチ（例えばクロスバスイッチ）或いはバスによって構成される。第１の内部ネットワーク１５６に、複数のフロントエンドインタフェース１２７、複数のバックエンドインタフェース１３７、一以上のキャッシュメモリ１４７、一以上の制御メモリ１４５及び一以上の制御プロセッサ１４３が接続される。これらの要素間の通信は、第１の内部ネットワーク１５６を介して行われる。
【００２４】
キャッシュメモリ１４７は、アプリケーションサーバ１０１からのＩ／Ｏコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
【００２５】
制御メモリ１４５は、種々のコンピュータプログラム及び情報を記憶するメモリである。制御メモリ１４５に格納されるコンピュータプログラム及び情報の内容については後述する（図２参照）。
【００２６】
制御プロセッサ１４３は、コントローラによる制御を実現するプロセッサである。具体的には、制御プロセッサ１４３は、制御メモリ１４５に記憶されている種々のコンピュータプログラムを実行することで、後述する処理を実行する。
【００２７】
ＰＤＥＶ１５１は、不揮発性の記憶デバイスであり、例えば、ハードディスクドライブ（ＨＤＤ）、或いは、フラッシュメモリデバイスを用いたいわゆるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。二以上のＰＤＥＶ１５１によって、ＲＡＩＤの規則に従うＰＤＥＶグループであるＲＡＩＤ（Redundant Array of Independent Disks）グループが構成されてもよい。
【００２８】
コントローラの構成要素であるフロントエンドインタフェース１２７、バックエンドインタフェース１３７、キャッシュメモリ１４７、制御メモリ１４５及び制御プロセッサ１４３に、第２の内部ネットワーク（例えばＬＡＮ）１５５が接続される。第２の内部ネットワーク１５５には、さらに、保守管理端末１５３が接続される。保守管理端末１５３は、第３のネットワーク１０８にも接続される。
【００２９】
保守管理端末１５３は、ストレージシステム１２５を保守又は管理する計算機である。ストレージシステム１２５の保守員は、例えば、保守管理端末１５３（又は、その保守管理端末１５３と通信可能な管理サーバ１１１）を操作して、制御メモリ１４５に記憶される種々の情報を定義することができる。保守管理端末１５３の詳細な構成については後述する（図６参照）。
【００３０】
第２のストレージシステム１６１は、コントローラ１６５及びＰＤＥＶ１６３を備える。コントローラ１６５は、例えば、ネットワークアダプタ１６２と、ホストアダプタ１６４と、キャッシュメモリ１７２と、制御メモリ１７１と、プロセッサ１６７と、ストレージアダプタ１６９と、を備える。
【００３１】
ネットワークアダプタ１６２は、第３のネットワーク１０８に接続され、管理サーバ１１１と通信するインタフェースである。
【００３２】
ホストアダプタ１６４は、第２のネットワーク１２３に接続され、第１のストレージシステム１２５と通信するインタフェースである。ホストアダプタ１６４は、例えば、第１のストレージシステム１２５のフロントエンドインタフェース１２７と同様のものであってもよい。
【００３３】
制御メモリ１７１は、種々のコンピュータプログラム及び情報を記憶するメモリである。
【００３４】
キャッシュメモリ１７２は、第１のストレージシステム１２５からのＩ／Ｏコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
【００３５】
プロセッサ１６７は、制御メモリ１７１に記憶されている種々のコンピュータプログラムを実行する。少なくとも、プロセッサ１６７は、第１のストレージシステム１２５からのＩ／Ｏコマンドに従って、キャッシュメモリ１７２及びＰＤＥＶ１６３に対するデータの書き込み及び読み出しを制御する。
【００３６】
ＰＤＥＶ１６３は、物理記憶デバイスであり、例えば、第１のストレージシステムのＰＤＥＶ１５１と同様のものであってもよい。
【００３７】
本実施形態の第１のストレージシステム１２５は、いわゆる外部接続機能を備える。第２のストレージシステム１６１は、この機能によって第１のストレージシステム１２５に外部接続されている。ここで、外部接続について説明する。
【００３８】
既に説明したように、第１のストレージシステム１２５は、一つ又は複数の論理ボリュームをアプリケーションサーバ１０１に提供する。各論理ボリュームは、アプリケーションサーバ１０１によって一つの記憶デバイスと認識される。例えば、第１のストレージシステム１２５が提供する論理ボリュームが、第１のストレージシステム１２５内のＰＤＥＶ１５１に対応付けられてもよい。その場合、第１のストレージシステム１２５は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたＰＤＥＶ１５１にデータを格納する。
【００３９】
あるいは、第１のストレージシステム１２５が提供する論理ボリュームは、第２のストレージシステム１６１内のＰＤＥＶ１６３に対応付けられてもよい。この場合、第１のストレージシステム１２５は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたＰＤＥＶ１６３にデータを書き込むためのライトコマンドを生成し、生成したライトコマンドを第２のストレージシステム１６１に送信する。第２のストレージシステム１６１は、第１のストレージシステム１２５から受信したライトコマンドに従って、データをＰＤＥＶ１６３に格納する。
【００４０】
このように、第１のストレージシステム１２５が提供する論理ボリュームに格納されるデータを、実際には第１のストレージシステム１２５の外部に接続された第２のストレージシステム１６１に格納する機能が、外部接続機能と呼ばれる。
【００４１】
テープ装置１０３は、一つ以上のテープドライブ（図示省略）及び一つ以上のテープ記憶媒体（図示省略）を備える。テープ装置１０３は、主に、第１のストレージシステム１２５又は第２のストレージシステム１６１に格納されたデータのバックアップ（すなわち複製）を格納するために使用される。
【００４２】
例えば、バックアップサーバ１０２が第１のストレージシステム１２５又は第２のストレージシステム１６１に格納されたデータを読み出し、その読み出したデータの書き込みをテープ装置１０３に要求する。この書き込み要求を受信したテープ装置１０３は、要求されたデータをテープ記憶媒体に格納する。さらに、テープ装置１０３は、テープ記憶媒体に格納されたデータを読み出す要求をバックアップサーバ１０２から受信すると、要求されたデータをテープ記憶媒体から読み出してバックアップサーバ１０２に送信する。
【００４３】
テープ装置１０３は、テープドライブ及びテープ記憶媒体の代わりにディスク記憶装置又はその他の記憶装置を備える仮想テープライブラリ（ＶＴＬ）によって置き換えられてもよい。
【００４４】
図２は、本発明の実施形態の第１のストレージシステム１２５の制御メモリ１４５に記憶されているコンピュータプログラム及び情報を示す説明図である。
【００４５】
以下の説明において、プログラムが実行する処理は、実際には、そのプログラムを実行する制御プロセッサ１４３が行う処理である。
【００４６】
制御メモリ１４５には、コマンド制御プログラム２０１、新スナップショット処理プログラム２０２、新スナップショットコピー処理プログラム２０３、プール制御プログラム２０５、構成制御プログラム２０６、プール管理情報２２１、ＬＤＥＶ管理情報２２２、ＶＤＥＶ管理情報２２３及びペア管理情報２２４が記憶される。
【００４７】
コマンド制御プログラム２０１は、上位の計算機から送信されたコマンドを実行する。例えば、コマンド制御プログラム２０１は、アプリケーションサーバ１０１からのＩ／Ｏコマンド（すなわち、データ書き込みコマンド又はデータ読み出しコマンド）に従うＩ／Ｏを制御する。さらに、コマンド制御プログラム２０１は、管理サーバ１１１から送信されたコマンドを実行する。新スナップショット処理プログラム２０２は、スナップショットを作成する処理を制御する。新スナップショットコピー処理プログラム２０３は、スナップショットを作成するために実行されるデータのコピーを制御する。プール制御プログラム２０５は、後述する容量プールを設定する。構成制御プログラム２０６は、第１のストレージシステム１２５が保持する管理情報を設定する。
【００４８】
プール管理情報２２１には、容量プールを管理する情報が含まれる。ＬＤＥＶ管理情報２２２には、ＬＤＥＶ８０２を管理する情報が含まれる。ＶＤＥＶ管理情報２２３には、ＶＤＥＶ８０１を管理する情報が含まれる。ＬＤＥＶ８０２及びＶＤＥＶ８０１については後述する（図８参照）。ペア管理情報２２４には、後述するＰＶＯＬ７０１とＳＶＯＬ７０２とからなるペアを管理する情報が含まれる。
【００４９】
以下の説明において第１のストレージシステム１２５が実行する処理は、実際には、制御プロセッサ１４３が制御メモリ１４５に記憶されている上記のプログラムを実行することによって実行される。
【００５０】
図３は、本発明の実施形態のアプリケーションサーバ１０１の構成を示すブロック図である。
【００５１】
アプリケーションサーバ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０２、メモリ３０５、補助記憶デバイス３０３、入力装置（例えばキーボード及びポインティングデバイス）３０１、出力装置（例えば表示装置）３０４、ＳＡＮ１２１に接続されるストレージアダプタ（例えばホストバスアダプタ）３０７、及び、第３のネットワーク１０８に接続されるネットワークアダプタ３０６を備える計算機である。
【００５２】
メモリ３０５には、ＣＰＵ３０２によって実行されるプログラムが格納される。本実施形態のメモリ３０５には、例えば、オペレーティングシステム（ＯＳ）（図示省略）及びその上で動作するアプリケーションプログラム（図示省略）が格納される。
【００５３】
アプリケーションプログラムを実行するＣＰＵ３０２は、必要に応じて、ストレージアダプタ３０７を介して、アドレスを指定したＩ／Ｏコマンド（ライトコマンド又はリードコマンド）を送信する。
【００５４】
図４は、本発明の実施形態のバックアップサーバ１０２の構成を示すブロック図である。
【００５５】
バックアップサーバ１０２は、ＣＰＵ４０２、メモリ４０５、補助記憶デバイス４０３、入力装置（例えばキーボード及びポインティングデバイス）４０１、出力装置（例えば表示装置）４０４、ＳＡＮ１２１に接続されるストレージアダプタ（例えばホストバスアダプタ）４０７、及び、第３のネットワーク１０８に接続されるネットワークアダプタ４０６を備える計算機である。
【００５６】
メモリ４０５には、ＣＰＵ４０２によって実行されるプログラムが格納される。本実施形態のメモリ４０５には、例えば、ＯＳ（図示省略）及びその上で動作するバックアップ制御プログラム（図示省略）が格納される。
【００５７】
バックアップサーバ１０２は、第１のストレージシステム１２５に格納されたデータをテープ装置１０３にバックアップする処理を制御する。例えば、バックアップ制御プログラムを実行するＣＰＵ４０２は、ユーザからの指示又はあらかじめ設定されたスケジュールに基づいて、第１のストレージシステム１２５からデータを読み出し、読み出したデータをテープ装置１０３に書き込む。このような処理については後述する。
【００５８】
図５は、本発明の実施形態の管理サーバ１１１の構成を示すブロック図である。
【００５９】
管理サーバ１１１は、ＣＰＵ５０２、メモリ５０５、補助記憶デバイス５０３、入力装置（例えばキーボード及びポインティングデバイス）５０１、出力装置（例えば表示装置）５０４、及び、第３のネットワーク１０８に接続されるネットワークアダプタ５０６を備える計算機である。
【００６０】
ＣＰＵ５０２は、ネットワークアダプタ５０６を介して、コマンドを、第３のネットワーク１０８に接続されているアプリケーションサーバ１０１、第１のストレージシステム１２５又は第２のストレージシステム１６１に送信する。メモリ５０５は、第１のストレージシステム１２５及び第２のストレージシステム１６１を管理するために使用される管理プログラム（図示省略）及び管理情報（図示省略）を記憶するメモリである。ＣＰＵ５０２がメモリ５０５に格納されている管理プログラムを実行することによって、第１のストレージシステム１２５等を管理するための処理が実行される。
【００６１】
図６は、本発明の実施形態の保守管理端末１５３の構成を示すブロック図である。
【００６２】
保守管理端末１５３は、ＣＰＵ６０２、メモリ６０５、補助記憶デバイス６０３、入力装置（例えばキーボード及びポインティングデバイス）６０１、出力装置（例えば表示装置）６０４、第３のネットワーク１０８に接続されるネットワークアダプタ６０６、及び、第２の内部ネットワーク１５５に接続されるネットワークアダプタ６０７を備える計算機である。
【００６３】
ＣＰＵ６０２がメモリ６０５に格納された保守管理プログラム（図示省略）を実行することによって、第１のストレージシステム１２５を保守・管理するための処理（例えば、第１のストレージシステム１２５の設定変更等）が実行される。この処理は、保守管理端末１５３を直接操作する保守員からの指示に従って実行されてもよいし、管理サーバ１１１からの指示に従って実行されてもよい。
【００６４】
図７は、本発明の実施形態の第１のストレージシステム１２５が提供する論理ボリューム及びスナップショットの説明図である。
【００６５】
ＰＶＯＬ（Ｐｒｉｍａｒｙ  Ｖｏｌｕｍｅ）７０１は、第１のストレージシステム１２５がアプリケーションサーバ１０１に提供する記憶領域である。アプリケーションサーバ１０１は、ＰＶＯＬ７０１を対象とするデータの書き込み要求及びデータの読み出し要求を送信する。ＰＶＯＬ７０１は、ＰＤＥＶ１５１に対応付けられた論理ボリュームであってもよいし、ＰＤＥＶ１６３に対応付けられた論理ボリュームであってもよい。
【００６６】
ＰＶＯＬ７０１に対応する複数のＳＶＯＬ（ＳｎａｐＳｈｏｔ  Ｖｏｌｕｍｅ）７０２は、第１のストレージシステム１２５がバックアップサーバ１０２に提供する仮想的な論理ボリュームである。各ＳＶＯＬ７０２は、ある時刻におけるＰＶＯＬ７０１のスナップショット（すなわちその時刻におけるＰＶＯＬ７０１の複製）である。例えば、図７に示すＳＶＯＬ７０２Ａ〜７０２Ｃ及びＳＶＯＬ７０２Ｘは、複数のＳＶＯＬ７０２の例である。以下の説明において、ＳＶＯＬ７０２Ａ〜７０２Ｃ及びＳＶＯＬ７０２Ｘのいずれにも共通する説明をする場合、これらを総称してＳＶＯＬ７０２とも記載する。
【００６７】
図７の例において、ＳＶＯＬ７０２Ａは、時刻１０：００に作成されたＰＶＯＬ７０１のスナップショットである。すなわち、ＳＶＯＬ７０２Ａから読み出されるデータは、時刻１０：００においてＰＶＯＬ７０１に格納されていたデータと同一である。同様に、ＳＶＯＬ７０２Ｂは、時刻１１：００に作成されたＰＶＯＬ７０１のスナップショットである。ＳＶＯＬ７０２Ｃは、時刻１２：００に作成されたＰＶＯＬ７０１のスナップショットである。ＳＶＯＬ７０２Ｘは、時刻ＸＸ：００に作成されたＰＶＯＬ７０１のスナップショットである。
【００６８】
バックアップサーバ１０２は、スナップショットの作成時刻（又は、作成時刻と１対１に対応するスナップショットの世代番号等）を指定して、ＳＶＯＬ７０２に対するデータの読み出し要求を送信する。例えば時刻１１：００が指定された場合、ＳＶＯＬ７０２Ｂからデータが読み出され、バックアップサーバ１０２に送信される。バックアップサーバ１０２は、そのようにして取得したＳＶＯＬ７０２Ｂのデータをテープ記憶媒体に格納する要求をテープ装置１０３に送信することができる。
【００６９】
なお、後述するように、複数のＳＶＯＬ７０２の各々が、ＰＶＯＬ７０１と同様の論理ボリュームとして管理されているわけではない。後述するように、バックアップサーバ１０２からいずれかのＳＶＯＬ７０２を指定した読み出し要求を受信すると、第１のストレージシステム１２５は、スナップショット用容量プール７０３に格納されたデータのうち、指定された時刻に対応するものを読み出して応答する（図８から図１０参照）。
【００７０】
スナップショット用容量プール７０３は、一つ以上の論理ボリュームを含む。スナップショット用容量プール７０３には、各時刻のＳＶＯＬ７０２に含まれるデータが格納される。具体的には、スナップショット用容量プール７０３には、後述するように、ある時刻におけるＰＶＯＬ７０１の全体コピー及びその全体コピーに対する差分コピーが格納される。
【００７１】
図８は、本発明の実施形態のストレージシステムの論理構成を示す第１の説明図である。
【００７２】
具体的には、図８は、本実施形態の第１のストレージシステム１２５によって提供される論理ボリュームの階層構造を説明するものである。
【００７３】
第１のストレージシステム１２５は、ＰＤＥＶ１５１及びＰＤＥＶ１６３の記憶領域を、一つ以上の仮想デバイス（ＶＤＥＶ）８０１として管理する。
【００７４】
例えば、ＶＤＥＶ８０１は、一つ以上のＰＤＥＶ１５１と対応付けられる。複数のＰＤＥＶ１５１がＲＡＩＤを構成する場合、一つのＲＡＩＤグループが一つのＶＤＥＶ８０１に対応付けられてもよい。その場合、ＶＤＥＶ８０１の記憶容量は、ＲＡＩＤグループの記憶容量のうち、パリティのための容量を除いたものと等しい。
【００７５】
あるいは、第１のストレージシステム１２５に外部接続された第２のストレージシステム１６１の一つ以上のＰＤＥＶ１６３がＶＤＥＶ８０１と対応付けられてもよい。
【００７６】
一つ以上のＶＤＥＶ８０１の記憶領域は、一つ以上の論理デバイス（ＬＤＥＶ）８０２に対応付けられる。例えば、一つのＶＤＥＶ８０１の記憶領域の一部が複数のＬＤＥＶ８０２に対応付けられてもよいし、複数のＶＤＥＶ８０１の記憶領域が一つのＬＤＥＶ８０２に対応付けられてもよい。第１のストレージシステム１２５の管理者は、ＶＤＥＶ８０１の記憶領域のＬＤＥＶ８０２への対応付けを任意に設定することができる。
【００７７】
ＰＶＯＬ７０１は、一つ以上のＬＤＥＶ８０２に対応付けられる。第１のストレージシステム１２５は、例えばＰＶＯＬ７０１のいずれかの記憶領域へのデータの書き込み要求を受信すると、そのＰＶＯＬ７０１の記憶領域に対応するＬＤＥＶ８０２の記憶領域を特定し、特定されたＬＤＥＶ８０２の記憶領域に対応するＶＤＥＶ８０１の記憶領域を特定し、特定されたＶＤＥＶ８０１の記憶領域に対応するＰＤＥＶ１５１又はＰＤＥＶ１６３の記憶領域を特定し、特定されたＰＤＥＶ１５１又はＰＤＥＶ１６３の記憶領域に、要求されたデータを書き込む。
【００７８】
ＰＶＯＬ７０１に対応付けられないＬＤＥＶ８０２のうち少なくとも一つは、仮想ボリューム用容量プール８０３として使用される。仮想ボリューム用容量プール８０３として使用される各ＬＤＥＶ８０２は、プールボリュームとも呼ばれる。
【００７９】
仮想ボリューム用容量プール８０３内の記憶領域は、必要に応じて、スナップショット用容量プール７０３が提供する記憶領域に割り当てられる。スナップショット用容量プール７０３の記憶領域は、必要に応じて、スナップショット用仮想ボリューム８０４が提供する記憶領域に割り当てられる。一つのスナップショット用仮想ボリューム８０４が一つのＳＶＯＬ７０２に対応する。
【００８０】
例えば、第１のストレージシステム１２５は、ＳＶＯＬ７０２のいずれかのアドレスを書き込み先として指定したデータの書き込み要求を受信した場合、そのアドレスに対応するスナップショット用仮想ボリューム８０４の記憶領域にスナップショット用容量プール７０３の記憶領域が割り当てられているか否かが判定される。スナップショット用容量プール７０３の記憶領域が割り当てられていないと判定された場合、第１のストレージシステム１２５は、スナップショット用容量プール７０３の記憶領域のうち、まだスナップショット用仮想ボリューム８０４のいずれの記憶領域にも割り当てられていない記憶領域を、書き込み先として指定された記憶領域に割り当てる。
【００８１】
このときに割り当てられたスナップショット用容量プール７０３の記憶領域に、仮想ボリューム用容量プール８０３の記憶領域がまだ割り当てられていない場合、第１のストレージシステム１２５は、仮想ボリューム用容量プール８０３の記憶領域のうち、まだスナップショット用容量プール７０３のいずれの記憶領域にも割り当てられていない記憶領域を、スナップショット用容量プール７０３の当該記憶領域に割り当てる。
【００８２】
なお、このような記憶領域の割り当ては、所定の大きさの割り当て単位（例えば、ページと呼ばれる所定の大きさの仮想的な記憶領域）ごとに実行される。
【００８３】
図９は、本発明の実施形態のストレージシステムの論理構成を示す第２の説明図である。
【００８４】
具体的には、図９は、本実施形態の第１のストレージシステム１２５によって提供されるＰＶＯＬとＳＶＯＬとからなる組（ペア）を説明するものである。
【００８５】
ＰＶＯＬ７０１と、そのＰＶＯＬ７０１に対応するＳＶＯＬ７０２は、一つのペアを構成する。図７を参照して説明したように、一つのＰＶＯＬ７０１に複数のＳＶＯＬが対応付けられる場合、一つのＰＶＯＬ７０１と各ＳＶＯＬ７０２とが一つのペアを構成する。例えば、ＰＶＯＬ７０１とＳＶＯＬ７０２Ａが一つのペアを構成し、ＰＶＯＬ７０１とＳＶＯＬ７０２Ｂとが別のペアを構成する。
【００８６】
スナップショット用容量プール７０３には、各ＳＶＯＬ７０２を提供するために必要なデータが格納される。具体的には、スナップショット用容量プール７０３には、フルコピー９０１、差分コピー９０２及びＳＹＳ領域９０３が含まれる。
【００８７】
フルコピー９０１は、最初に作成されたスナップショットの全データを含む。図９に示すように、時刻１０：００におけるＰＶＯＬ７０１のスナップショット（すなわちＳＶＯＬ７０２Ａ）が最初に作成される場合、時刻１０：００におけるＰＶＯＬ７０１の全データのコピーがフルコピー９０１として格納される。この場合、ＳＶＯＬ７０２Ａがフルコピー９０１に対応する。
【００８８】
ただし、上記のようにＰＶＯＬ７０１の全データのコピーがフルコピー９０１として格納されてもよいが、ＰＶＯＬ７０１の全データのうち、あらかじめ定められた特定のパターンのデータ以外のデータのみがフルコピー９０１として格納されてもよい。ここで、特定のパターンのデータとは、例えば論理ボリュームを初期化するときに書き込まれるデータ、具体的には、例えば「０」のみからなるデータであってもよい。
【００８９】
図８を参照して説明したように、スナップショット用容量プール７０３の記憶領域には、データが書き込まれない限り、仮想ボリューム用容量プール８０３の記憶領域が割り当てられない。すなわち、データが書き込まれていないスナップショット用容量プール７０３の記憶領域は、ＰＤＥＶ１５１等の物理的な記憶領域を消費しない。特定パターンのデータをフルコピー９０１として格納しないことによって、特定パターンのデータを格納するための物理的な記憶領域の消費を防ぐことができる。
【００９０】
具体的には、第１のストレージシステム１２５は、最初のスナップショットを作成するときに、各割り当て単位に格納されるべきデータが特定パターンのデータ以外のデータを含むか否かを判定する。そのデータが特定パターンのデータ以外のデータを含む場合のみ、第１のストレージシステム１２５は、そのデータを、スナップショット用容量プール７０３に書き込む。あるいは、第１のストレージシステム１２５は、ＰＶＯＬ７０１の全データをスナップショット用容量プール７０３にフルコピー９０１として一旦格納してもよい。その後、第１のストレージシステム１２５は、フルコピー９０１の各割り当て単位を順次参照し、その割り当て単位に特定パターンのデータのみが格納されている場合、その割り当て単位への仮想ボリューム用容量プール８０３の記憶領域の割り当てを解除する。
【００９１】
このように、フルコピー９０１として特定パターンのデータ以外のデータのみが格納される場合、スナップショット用容量プール７０３の所定の記憶領域に、特定パターンのデータが格納される。そして、フルコピー９０１の割り当て単位のうち、仮想ボリューム用容量プール８０３の記憶領域が割り当てられていない箇所への読み出し要求を受信した場合、第１のストレージシステム１２５は、上記の所定の記憶領域に格納された特定パターンのデータを読み出して応答する。
【００９２】
最初の世代のスナップショットが作成された後、２番目以降の世代のスナップショットが作成されると、フルコピー９０１からの差分が差分コピー９０２としてスナップショット用容量プール７０３に格納される。
【００９３】
ＳＹＳ領域９０３には、スナップショット用容量プール７０３に格納されたデータ（具体的にはフルコピー９０１及び差分コピー９０２に含まれるデータ）と、ＰＶＯＬ７０１及びＳＶＯＬ７０２のアドレスとの対応関係を管理するアドレスマップ（すなわち、後述するダイレクトアクセス管理テーブル１１０２）が格納される。
【００９４】
例えば、図９のように時刻１０：００にＰＶＯＬ７０１の最初の世代のスナップショットが作成され、時刻１１：００及び時刻１２：００にそれぞれ２番目及び３番目の世代のスナップショットが作成される場合について説明する。この場合、時刻１０：００から時刻１１：００までの間に更新されたＰＶＯＬ７０１のデータが、２番目の世代のスナップショット（すなわちＳＶＯＬ７０２Ｂ）に対応する差分コピー９０２として格納される。そして、時刻１１：００から時刻１２：００までの間に更新されたＰＶＯＬ７０１のデータが、３番目の世代のスナップショット（すなわちＳＶＯＬ７０２Ｃ）に対応する差分コピー９０２として格納される。
【００９５】
その後、例えば、ＳＶＯＬ７０２Ｂ（すなわち２番目の世代のスナップショット）のデータを読み出す要求を受信すると、第１のストレージシステム１２５は、その要求によって読み出し対象として指定されたアドレスに対応するスナップショットのデータを読み出して応答する。具体的には、第１のストレージシステム１２５は、指定されたアドレスに対応する２番目の世代のスナップショットのデータが差分コピー９０２として格納されている場合、そのデータを読み出して応答する。一方、指定されたアドレスのデータが時刻１０：００から時刻１１：００までの間に変更されなかった場合、指定されたアドレスに対応する２番目の世代のスナップショットのデータが差分コピー９０２として格納されていない。この場合、第１のストレージシステム１２５は、指定されたアドレスに対応する一つ前の世代（上記の例では最初の世代）のデータをフルコピー９０１から読み出して応答する。
【００９６】
上記のように、いずれかの世代のスナップショットのデータを読み出す場合に、その世代に対応する差分コピー９０２、それより古い世代に対応する差分コピー９０２、又は、最も古い世代のフルコピー９０１の少なくともいずれかのデータを読み出す必要があるが、ＰＶＯＬ７０１のデータを読み出す必要はない。
【００９７】
図１０は、本発明の実施形態のスナップショット用容量プール７０３に含まれるＳＹＳ領域９０３に格納されるデータの説明図である。
【００９８】
第１のストレージシステム１２５が起動すると、ＳＹＳ領域９０３に格納されたデータは、高速なアクセスが可能なメモリ（例えばキャッシュメモリ１４７）に展開される。これは、これによって、ＳＶＯＬ７０２への高速なアクセスが実現される。図１０は、キャッシュメモリ１４７に展開されたＳＹＳ領域９０３を示す。
【００９９】
ＳＹＳ領域９０３には、少なくともＳＶＯＬイメージディレクトリ１０００及びフルコピーイメージディレクトリ１０１０が格納される。
【０１００】
ＳＶＯＬイメージディレクトリ１０００は、各世代のスナップショットに対応する複数のＶＶＯＬＤＩＲ（仮想ボリュームディレクトリ）１００１を含む。図１０には、例として、時刻１０：００のスナップショットに対応するＶＶＯＬＤＩＲ１００１Ａ〜１００１Ｅ、時刻１１：００のスナップショットに対応するＶＶＯＬＤＩＲ１００１Ｆ〜１００１Ｊ、及び、時刻ＸＸ：００のスナップショットに対応するＶＶＯＬＤＩＲ１００１Ｋ〜１００１Ｏを示す。以下、ＶＶＯＬＤＩＲ１００１Ａ〜１００１Ｏのうち不特定の一つ又は複数を指す場合、これらをＶＶＯＬＤＩＲ１００１とも記載する。
【０１０１】
各ＶＶＯＬＤＩＲ１００１は、データの入出力先として指定されるＳＶＯＬ７０２内の各アドレス（例えばいわゆる論理ブロックアドレス）に対応する。各ＶＶＯＬＤＩＲ１００１が各論理ブロックアドレスに対応する場合、各ＶＶＯＬＤＩＲ１００１は、自ＶＶＯＬＤＩＲ１００１に対応する論理ブロックアドレス、自ＶＶＯＬＤＩＲ１００１に対応するＦＣＣＢ１０１１（後述）のアドレス、及び、自ＶＶＯＬＤＩＲ１００１に対応するスナップショットの世代を示す情報を含む。
【０１０２】
なお、スナップショットの世代を示す情報とは、例えば、スナップショットの世代番号、その世代のスナップショットが作成された時刻、その世代のスナップショットに対応するＳＶＯＬ７０２の識別子、又は、そのＳＶＯＬ７０２とＰＶＯＬ７０１とからなるペアの識別子等、スナップショットの世代を特定するために使用される情報である。
【０１０３】
フルコピーイメージディレクトリ１０１０は、複数のＦＣＣＢ（フルコピーコントロールブロック）１０１１を含む。図１０には、例としてＦＣＣＢ１０１１Ａ〜１０１１Ｅを示す。以下、ＦＣＣＢ１０１１Ａ〜１０１１Ｅのうち不特定の一つ又は複数を指す場合、これらをＦＣＣＢ１０１１とも記載する。
【０１０４】
各ＦＣＣＢ１０１１は、データの入出力先として指定されるＳＶＯＬ７０２内の各アドレス（例えばいわゆる論理ブロックアドレス）に対応する。すなわち、各ＦＣＣＢ１０１１は、各世代の各ＶＶＯＬＤＩＲ１００１に対応する。例えば、ＶＶＯＬＤＩＲ１００１Ａ、ＶＶＯＬＤＩＲ１００１Ｆ及びＶＶＯＬＤＩＲ１００１Ｋが、それぞれ異なるＳＶＯＬの同一の論理ブロックアドレスに対応する場合、ＶＶＯＬＤＩＲ１００１Ａ、ＶＶＯＬＤＩＲ１００１Ｆ及びＶＶＯＬＤＩＲ１００１Ｋは、いずれも、一つのＦＣＣＢ１０１１（例えばＦＣＣＢ１０１１Ａ）に対応付けられる。
【０１０５】
各ＦＣＣＢ１０１１は、自ＦＣＣＢ１０１１と他の管理情報（例えば後述するＳＳＣＢ又はＰＳＣＢ）とを対応付けるポインタを含む。本実施形態の各ＦＣＣＢ１０１１は、ＳＳＣＢを介してＰＳＣＢ（プールスロットコントロールブロック）１０１２と対応付けられる（図１０及び図１２参照）。
【０１０６】
図１０には、例としてＰＳＣＢ１０１２Ａ〜１０１２Ｄを示す。以下、ＰＳＣＢ１０１２Ａ〜１０１２Ｄのうち不特定の一つ又は複数を指す場合、これらをＰＳＣＢ１０１２とも記載する。各ＰＳＣＢ１０１２は、自ＰＳＣＢ１０１２と他のＰＳＣＢ１０１２とを対応付けるポインタを含む。図１０の例では、ＰＳＣＢ１０１２Ａは、ＰＳＣＢ１０１２Ｂと対応付けられる。さらに、各ＰＳＣＢ１０１２は、スナップショット用容量プール７０３の差分コピー９０２内の論理ブロックアドレスを含む。
【０１０７】
図１１は、本発明の実施形態においてＳＶＯＬ７０２へのアクセスが実行される際のマッピングの説明図である。
【０１０８】
スナップショット用容量プール７０３のＳＹＳ領域９０３には、ダイレクトアクセス管理テーブル１１０２が格納されている。このダイレクトアクセス管理テーブル１１０２は、図１０に示したＳＶＯＬイメージディレクトリ１０００及びフルコピーイメージディレクトリ１０１０等を含む。これらの詳細な構成については後述する（図１２参照）。
【０１０９】
フルバックアップ／差分バックアップ１１０１は、フルコピー９０１及び差分コピー９０２に相当する。すなわち、フルバックアップ／差分バックアップ１１０１の一部がフルコピー９０１に相当し、残りが差分コピー９０２に相当する。
【０１１０】
第１のストレージシステム１２５は、ＳＶＯＬ７０２へのデータ入出力要求（すなわちデータ書き込み要求又はデータ読み出し要求）を受信すると、ダイレクトアクセス管理テーブル１１０２を参照して、その要求によってデータ入出力先として指定されたアドレスに対応するフルバックアップ／差分バックアップ１１０１内の領域を特定し、特定された領域へのデータの書き込み又はその領域からのデータの読み出しを実行する。実際には、特定された領域に割り当てられた仮想ボリューム用容量プールの記憶領域に対するデータの書き込み又は読み出しが実行される。
【０１１１】
図１２は、本発明の実施形態のダイレクトアクセス管理テーブル１１０２の説明図である。
【０１１２】
図１０を参照して説明したように、ＳＶＯＬイメージディレクトリ１０００は、フルコピーイメージディレクトリ１０１０に対応付けられる。より具体的には、ＳＶＯＬイメージディレクトリ１０００に含まれる各ＶＶＯＬＤＩＲ１００１は、フルコピーイメージディレクトリ１０１０に含まれる各ＦＣＣＢ１０１１に対応付けられる。
【０１１３】
各ＦＣＣＢ１０１１は、各ＳＳＣＢ（スナップショットコントロールブロック）１２０１に対応付けられる。ただし、特定パターンのデータが書き込まれた論理ブロックに対応するＦＣＣＢ１０１１には、ＳＳＣＢ１２０１が割り当てられない。この場合、ＦＣＣＢ１０１１内の、ＦＣＣＢ１０１１とＳＳＣＢ１２０１とを対応付けるためのポインタの値は無効値となる。
【０１１４】
ＳＳＣＢ１２０１は、スナップショット用容量プール７０３が提供する記憶領域を管理するために使用される管理情報である。一つのＳＳＣＢが、スナップショット用容量プール７０３の所定の大きさの記憶領域（言い換えると、所定の長さのアドレス範囲）に対応する。この所定の大きさの記憶領域は、スナップショット用容量プール７０３への仮想ボリューム用容量プール８０３の記憶領域の記憶領域の割り当ての単位である。
【０１１５】
既に説明したように、スナップショット用容量プール７０３内の記憶領域へは、必要に応じて、仮想ボリューム用容量プール８０３内の記憶領域が割り当てられる。このとき、割り当て先であるスナップショット用容量プール７０３内の記憶領域は、後述するスナップショット用容量プール空き領域管理リスト１２１０によって管理される。一方、割り当てられる仮想ボリューム用容量プール８０３内の記憶領域は、後述する仮想ボリューム用容量プール空き領域管理キュー１２２０によって管理される。
【０１１６】
各ＳＳＣＢ１２０１は、仮想ボリューム番号１２１２、仮想ボリュームアドレス１２１３、割り当て情報１２１４及び世代情報１２１５を含む。
【０１１７】
仮想ボリューム番号１２１２は、各ＳＳＣＢ１２０１によって管理されるスナップショット用容量プール７０３の識別子である。
【０１１８】
仮想ボリュームアドレス１２１３は、スナップショット用容量プール７０３内の、各ＳＳＣＢ１２０１に対応する記憶領域のアドレスである。
【０１１９】
割り当て情報１２１４は、仮想ボリュームアドレス１２１３によって識別される記憶領域に、物理的な記憶領域（すなわち、仮想ボリューム用容量プール８０３の記憶領域）が割り当てられているか否かを示す情報である。
【０１２０】
世代情報１２１５は、仮想ボリュームアドレス１２１３によって識別される記憶領域に格納されたデータに対応するスナップショットの世代を識別する情報である。スナップショットの世代を識別する情報とは、例えば、スナップショットの世代番号、スナップショットが作成された時刻情報、又は、スナップショットに対応するＳＶＯＬの識別子等である。
【０１２１】
さらに、各ＳＳＣＢ１２０１は、そのＳＳＣＢ１２０１とＰＳＣＢ１０１２とを対応付ける情報、及び、そのＳＳＣＢ１２０１と他のＳＳＣＢ１２０１とを対応付ける情報を含む。ＳＳＣＢ１２０１とＰＳＣＢ１０１２とを対応付ける情報に基づいて、ＳＳＣＢ１２０１に対応するスナップショット用容量プール７０３内の記憶領域に割り当てられた仮想ボリューム用容量プール８０３の記憶領域を特定することができる。ＳＳＣＢ１２０１と他のＳＳＣＢ１２０１とを対応付ける情報に基づいて、そのＳＳＣＢ１２０１の次の世代のＳＳＣＢ１２０１を特定することができる。
【０１２２】
スナップショット用容量プール７０３の記憶領域へは、仮想ボリューム用容量プール８０３の記憶領域が、必要に応じて割り当てられる。この割り当ては、例えば、スナップショット用容量プール７０３の記憶領域のアドレスの順に実行される。その場合、記憶領域の割り当ては、スナップショット用容量プール空き領域管理リスト１２１０を用いて管理される。スナップショット用容量プール空き領域管理リスト１２１０は、スナップショット用容量プール７０３の全記憶領域に対応する全ＳＳＣＢ１２０１のリスト、及び、次の割り当てブロックオフセット１２１１を含む。全ＳＳＣＢ１２０１のリストは、例えば、仮想ボリューム番号１２１２及び仮想ボリュームアドレス１２１３の順に並べられてもよい。
【０１２３】
スナップショット用容量プール７０３いずれの記憶領域にも仮想ボリューム用容量プール８０３の記憶領域が割り当てられていない場合、全ＳＳＣＢ１２０１の割り当て情報１２１４の値は「未割り当て」であり、次の割り当てブロックオフセット１２１１の値はリストの先頭のＳＳＣＢ１２０１を示す。
【０１２４】
スナップショット用容量プール７０３の記憶領域に最初に仮想ボリューム用容量プール８０３の記憶領域を割り当てる必要が生じた場合、次の割り当てブロックオフセット１２１１が示す記憶領域、すなわち、リストの先頭のＳＳＣＢ１２０１に対応する記憶領域に、仮想ボリューム用容量プール８０３の記憶領域が割り当てられる。このとき、リストの先頭のＳＳＣＢ１２０１の割り当て情報１２１４の値が「割り当て済み」に更新され、さらに、次の割り当てブロックオフセット１２１１の値がリストの２番目のＳＳＣＢ１２０１を示す値に変更される。
【０１２５】
以後、さらに割り当ての必要が生じた場合、上記と同様に、次の割り当てブロックオフセット１２１１示す記憶領域に、仮想ボリューム用容量プール８０３の記憶領域が割り当てられる。このように、リストに登録された順に、割り当てが実行される。
【０１２６】
一方、スナップショット用容量プール７０３に割り当てられる仮想ボリューム用容量プール８０３の記憶領域は、仮想ボリューム用容量プール空き領域管理キュー１２２０によって管理される。仮想ボリューム用容量プール空き領域管理キュー１２２０は、ポインタによって相互に関連付けられた複数のＰＳＣＢ１０１２からなる。
【０１２７】
各ＰＳＣＢ１０１２は、ＬＤＥＶ番号１２２１、プールボリュームアドレス１２２２、ＰＳＣＢ前方ポインタ１２２３及びＰＳＣＢ後方ポインタ１２２４を含む。ＬＤＥＶ番号１２２１は、各ＰＳＣＢ１０１２に対応するＬＤＥＶ８０２（すなわち、仮想ボリューム用容量プール８０３を構成するプールボリューム）の識別子である。プールボリュームアドレス１２２２は、各ＰＳＣＢ１０１２に対応するＬＤＥＶ８０２内の所定の大きさの記憶領域のアドレスである。
【０１２８】
ＰＳＣＢ前方ポインタ１２２３及びＰＳＣＢ後方ポインタ１２２４は、各ＰＳＣＢ１０１２に対応する記憶領域の割り当てらの前後に割り当てられる記憶領域を示す。例えば、あるＰＳＣＢ１０１２（ここでは第１のＰＳＣＢと記載する）のＰＳＣＢ前方ポインタ１２２３が別のＰＳＣＢ１０１２（ここでは第２のＰＳＣＢと記載する）を示し、第１のＰＳＣＢ１０１２のＰＳＣＢ後方ポインタ１２２４がさらに別のＰＳＣＢ１０１２（ここでは第３のＰＳＣＢと記載する）を示す場合、第２のＰＳＣＢ１０１２に対応する記憶領域がスナップショット用容量プール７０３に割り当てられた次に第１のＰＳＣＢ１０１２に対応する記憶領域がスナップショット用容量プール７０３に割り当てられ、その次に第３のＰＳＣＢ１０１２に対応する記憶領域がスナップショット用容量プール７０３に割り当てられる。
【０１２９】
図１３は、本発明の実施形態のＳＹＳ領域９０３の展開の説明図である。
【０１３０】
第１のストレージシステム１２５の電源が遮断されている間（より具体的には、キャッシュメモリ１４７に電力が供給されていない間）、ＳＹＳ領域９０３は、スナップショット用容量プール７０３に割り当てられた仮想ボリューム用容量プール８０３に格納される。
【０１３１】
第１のストレージシステム１２５の電源が投入され、キャッシュメモリ１４７への電力の供給が開始されると、ＳＹＳ領域９０３に格納されたダイレクトアクセス管理テーブル１１０２がキャッシュメモリ１４７に展開される。具体的には、ＳＹＳ領域９０３のうち、仮想ボリューム用ＳＹＳ領域１３０１がキャッシュメモリ１４７に展開され、さらに、スナップショット用ＳＹＳ領域１３０２がキャッシュメモリ１４７に展開される。
【０１３２】
スナップショット用ＳＹＳ領域１３０２には、ＳＶＯＬ７０２とスナップショット用容量プール７０３との対応関係を管理する情報が格納される。具体的には、スナップショット用ＳＹＳ領域１３０２には、ダイレクトアクセス管理テーブル１１０２に含まれる情報のうち、少なくとも、ＶＶＯＬＤＩＲ１００１とＳＳＣＢ１２０１とを対応付ける情報が格納される。
【０１３３】
仮想ボリューム用ＳＹＳ領域１３０１には、スナップショット用容量プール７０３と仮想ボリューム用容量プール８０３との対応関係を管理する情報が格納される。具体的には、仮想ボリューム用ＳＹＳ領域１３０１には、ダイレクトアクセス管理テーブル１１０２に含まれる情報のうち、少なくとも、ＳＳＣＢ１２０１とＰＳＣＢ１０１２とを対応付ける情報が格納される。
【０１３４】
スナップショット用ＳＹＳ領域１３０２及び仮想ボリューム用ＳＹＳ領域１３０１に格納された情報に基づいて、スナップショット用容量プール７０３が提供される。
【０１３５】
図１４は、本発明の実施形態における最新のＳＶＯＬ７０２へのアクセスの説明図である。
【０１３６】
最新のＳＶＯＬ７０２とは、最も新しいスナップショット作成要求によって作成されたＳＶＯＬ７０２である。例えば、図１０において、時刻１０：００のスナップショット作成要求に従ってＳＶＯＬ７０２Ａが作成され、時刻１１：００のスナップショット作成要求に従ってＳＶＯＬ７０２Ｂが作成され、時刻１２：００のスナップショット作成要求に従ってＳＶＯＬ７０２Ｃが作成される。現在時刻が１２：００より後であり、かつ、時刻１２：００より後に新たな世代のスナップショットが作成されていない場合、ＳＶＯＬ７０２Ｃが最新のＳＶＯＬ７０２である。
【０１３７】
ＳＶＯＬ７０２を作成するために、差分ビットマップ（ＢＭ）１４０１及びコピー要否ビットマップ（ＢＭ）１４０２が参照される。これらのビットマップは、例えば、ＳＹＳ領域９０３に格納される。
【０１３８】
差分ＢＭ１４０１は、複数のビットを含む。以下、差分ＢＭ１４０１に含まれる各ビットを差分ビットとも記載する。各差分ビットは、ＰＶＯＬ７０１内の所定の大きさの記憶領域に対応する。以下、一つの差分ビットに対応する所定の大きさの記憶領域を管理ブロックと記載する。論理ボリューム内の記憶領域が論理ブロックアドレスを用いて管理される場合、各管理ブロックは、一つの論理ブロックであってもよいが、複数の（所定の数の）論理ブロックによって構成されてもよい。
【０１３９】
各差分ビットの値は、その差分ビットに対応する管理ブロックのデータが更新されたか否かを示す。例えば、差分ビットの値「１」が、データが更新されたことを示し、差分ビットの値「０」が、データが更新されていないことを示してもよい。
【０１４０】
コピー要否ＢＭ１４０２は、複数のビットを含む。以下、コピー要否ＢＭ１４０２に含まれる各ビットをコピー要否ビットとも記載する。各コピー要否ビットは、差分ビットの場合と同様、ＰＶＯＬ７０１内の各管理ブロックに対応する。各コピー要否ビットの値は、そのコピー要否ビットに対応する管理ブロックのデータをスナップショット用容量プール７０３にコピーする必要があるか否かを示す。例えば、コピー要否ビットの値「１」が、コピーする必要があることを示し、コピー要否ビットの値「０」が、コピーする必要がないことを示してもよい。
【０１４１】
ここで、スナップショット作成要求を受けた第１のストレージシステム１２５がＳＶＯＬを作成する処理について説明する。
【０１４２】
例えば、第１のストレージシステム１２５が時刻１０：００にＰＶＯＬ７０１を対象とするスナップショット作成要求を受信する。第１のストレージシステム１２５は、そのスナップショット作成要求を受信した時点で、差分ＢＭ１４０１の全ビットを「０」に更新する。そのスナップショット作成要求がＰＶＯＬ７０１の最初の世代のスナップショットの作成を要求するものである場合、第１のストレージシステム１２５は、そのスナップショット作成要求を受信した時点で、コピー要否ＢＭ１４０２の全ビットを「１」に更新する。
【０１４３】
その後、第１のストレージシステム１２５は、値が「１」であるコピー要否ビットに対応する管理ブロックに格納されたデータをＰＶＯＬ７０１から読み出して、スナップショット用容量プール７０３に書き込む。これによって、スナップショット作成要求を受信した時点で管理ブロックに格納されていたデータがスナップショット用容量プール７０３に退避される。この退避（すなわちＰＶＯＬ７０１からスナップショット用容量プール７０３へのコピー）が終了した管理ブロックに対応するコピー要否ビットの値は「０」に更新される。
【０１４４】
上記のように、最初のスナップショット作成要求を受信した場合には、全コピー要否ビットが「１」に更新されるため、その時点のＰＶＯＬに格納された全データがスナップショット用容量プール７０３に退避される。
【０１４５】
ただし、図９を参照して説明したように、管理ブロックから読み出されたデータが特定パターンのデータである場合には、そのデータのスナップショット用容量プール７０３への書き込みを省略してもよい。
【０１４６】
次に、ＰＶＯＬ７０１へのデータの書き込み要求及び読み出し要求を受信した第１のストレージシステム１２５が実行する処理について説明する。
【０１４７】
上記のＰＶＯＬ７０１からの読み出し及びスナップショット用容量プール７０３への書き込みは、通常の（すなわちアプリケーションサーバ１０１による）ＰＶＯＬ７０１へのアクセスのバックグラウンドで実行される。このため、まだ退避が終了していない管理ブロック内のアドレスを対象とする書き込み要求がアプリケーションサーバ１０１から送信される可能性がある。このような書き込み要求によって、まだ退避が終了していないデータが更新されると、そのデータを含むＳＶＯＬ７０２を作成することができなくなる。
【０１４８】
このため、第１のストレージシステム１２５は、ＰＶＯＬ７０１への書き込み要求を受信すると、書き込み先として指定されたアドレスを含む管理ブロックに対応するコピー要否ビットが「１」又は「０」のいずれであるかを判定する。
【０１４９】
コピー要否ビットが「１」である場合、第１のストレージシステム１２５は、そのコピー要否ビットに対応する管理ブロックのデータをスナップショット用容量プール７０３に退避し、その後、要求された書き込みを実行する。このような退避は、以下の説明において、先行コピーとも記載される。そして、第１のストレージシステム１２５は、書き込みが実行された管理ブロックに対応する差分ビットを「１」に、コピー要否ビットを「０」に更新する。
【０１５０】
一方、コピー要否ビットが「０」である場合、第１のストレージシステム１２５は、データの退避を実行せずに要求された書き込みを実行し、書き込みが実行された管理ブロックに対応する差分ビットを「１」に更新する。
【０１５１】
なお、ＰＶＯＬ７０１からのデータの読み出しは、コピー要否ビットの値と関係なく、通常の場合と同様に実行される。
【０１５２】
次に、最新のＳＶＯＬ７０２へのデータの書き込み要求及び読み出し要求を受信した第１のストレージシステム１２５が実行する処理について説明する。
【０１５３】
上記のように第１のストレージシステム１２５が時刻１０：００のスナップショット作成要求を受信し、次回のスナップショット作成要求を受信していない時点において、時刻１０：００のスナップショットに対応するＳＶＯＬ７０２Ａが最新のＳＶＯＬ７０２である。
【０１５４】
第１のストレージシステム１２５は、最新のＳＶＯＬ７０２への書き込み要求を受信すると、その書き込み先に対応するコピー要否ビットを参照する。コピー要否ビットの値が「１」である場合、そのコピー要否ビットに対応するＰＶＯＬ７０１の管理ブロックのデータをスナップショット用容量プール７０３に退避し、その後、退避されたデータに、要求されたデータを上書きする。そして、第１のストレージシステム１２５は、退避されたデータに対応するコピー要否ビットの値を「０」に更新する。
【０１５５】
一方、参照されたコピー要否ビットの値が「０」である場合、第１のストレージシステム１２５は、上記のようなデータの退避を実行せず、書き込み要求によって指定されたアドレスに対応するスナップショット用容量プール７０３の記憶領域に、要求されたデータを書き込む。
【０１５６】
第１のストレージシステム１２５は、最新のＳＶＯＬ７０２からデータを読み出すための読み出し要求を受信すると、その読み出し要求によって指定されたアドレスに対応するコピー要否ビットを参照する。コピー要否ビットの値が「１」である場合、そのコピー要否ビットに対応するＰＶＯＬ７０１の管理ブロックのデータをスナップショット用容量プール７０３に退避する。その後、第１のストレージシステム１２５は、読み出し要求によって指定されたＰＶＯＬ７０１のアドレスからデータを読み出して、要求元に送信する。
【０１５７】
一方、参照されたコピー要否ビットの値が「０」である場合、第１のストレージシステム１２５は、上記のようなデータの退避を実行せず、読み出し要求によって指定されたＰＶＯＬ７０１のアドレスからデータを読み出して、要求元に送信する。
【０１５８】
上記のようなＳＶＯＬ７０２へのアクセスの詳細な手順については後述する（図２３〜図２５参照）。
【０１５９】
図１５は、本発明の実施形態における最新でないＳＶＯＬ７０２へのアクセスの説明図である。
【０１６０】
例えば、図１０に示すように、ＳＶＯＬ７０２Ａ、ＳＶＯＬ７０２Ｂ及びＳＶＯＬ７０２Ｃが作成され、ＳＶＯＬ７０２Ｃが最新のＳＶＯＬ７０２である場合、ＳＶＯＬ７０２Ａ及びＳＶＯＬ７０２Ｂが最新でないＳＶＯＬ７０２である。
【０１６１】
最新でないＳＶＯＬ７０２には、コピー要否ＢＭ１４０２が対応付けられていない。したがって、最新でないＳＶＯＬ７０２へのアクセスを実行する際に、コピー要否ＢＭ１４０２を参照する必要はない。しかし、複数の世代のＳＶＯＬ７０２が共有しているデータに対する書き込み要求は、その共有されているデータが失われないように実行する必要がある。
【０１６２】
例えば、最初の世代（第１世代）のＳＶＯＬ７０２Ａが作成され、その後、ＰＶＯＬ７０１のある管理ブロックのデータが全く更新されないままに次の世代（第２世代）のＳＶＯＬ７０２Ｂが作成された場合、その管理ブロックに対応するＳＶＯＬ７０２Ａの管理ブロックのデータ（すなわち、そのＳＶＯＬ７０２Ａの管理ブロックに対応するスナップショット用容量プール７０３内の記憶領域に格納されたデータ）は、ＳＶＯＬ７０２Ｂにも共有されている。
【０１６３】
例えば、図１５に示すＳＶＯＬ７０２Ｂの管理ブロック１５０１にスナップショット用容量プール７０３内の記憶領域１５０２が対応付けられている場合、ＳＶＯＬ７０２Ｂに対する書き込み要求によって管理ブロック１５０１に新たにデータが書き込まれると、それによって記憶領域１５０２に格納されたデータが更新される。この例において、更新される前の記憶領域１５０２に格納されていたデータがＳＶＯＬ７０２ＡとＳＶＯＬ７０２Ｂとによって共有されていた場合、記憶領域１５０２の更新の結果、ＳＶＯＬ７０２Ａを復元することができなくなる。
【０１６４】
このため、第１のストレージシステム１２５は、書き込み要求によって指定されたアドレスを含む管理ブロック（以下、書き込み対象管理ブロックと記載）に対応付けられた記憶領域が複数の世代によって共有されている場合、要求されたデータをスナップショット用容量プール７０３内の空き記憶領域に書き込む。そして、第１のストレージシステム１２５は、その記憶領域を、書き込み対象管理ブロックと新たに対応付ける。
【０１６５】
一方、書き込み対象管理ブロックに対応付けられたスナップショット用容量プール７０３の記憶領域が複数の世代によって共有されていない場合、第１のストレージシステム１２５は、その記憶領域に要求されたデータを書き込む。
【０１６６】
第１のストレージシステム１２５は、最新でないＳＶＯＬ７０２のいずれかのアドレスからデータを読み出す要求を受信した場合、要求されたアドレスを含む管理ブロックに対応付けられたスナップショット用容量プール７０３の記憶領域からデータを読み出して、要求元に応答する。
【０１６７】
図１６Ａ及び図１６Ｂは、本発明の実施形態において容量プールを設定するために実行される処理のフローチャートである。
【０１６８】
具体的には、図１６Ａ及び図１６Ｂは、仮想ボリューム用容量プール８０３を設定するために実行される。以下、フローチャートの説明において第１のストレージシステム１２５内の各プログラムが実行する処理は、実際には、そのプログラムを実行する制御プロセッサ１４３によって実現される。
【０１６９】
仮想ボリューム用容量プール８０３の設定は、管理サーバ１１１によって開始される。
【０１７０】
まず、管理者は、仮想ボリューム用容量プール８０３に対応付けるＬＤＥＶ８０２の情報を入力する。具体的には、管理者は、入力装置５０１を操作して、ＰＯＯＬ−ＩＤ（すなわち仮想ボリューム用容量プール８０３の識別子）、閾値、対応付けるＬＤＥＶ８０２の数及びそれらのＬＤＥＶ８０２を識別するＬＤＥＶ番号を入力する（Ｓ１６０１）。
【０１７１】
管理サーバ１１１は、入力された情報を含む仮想ボリューム用容量プール設定の指示コマンドを生成して、ネットワークアダプタ５０６を介して第１のストレージシステム１２５に送信する（Ｓ１６０２）。
【０１７２】
第１のストレージシステム１２５において、管理サーバ１１１から送信された指示コマンドは、保守管理端末１５３を介してコマンド制御プログラム２０１が受信する（Ｓ１６０３）。
【０１７３】
次に、コマンド制御プログラム２０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合、コマンド制御プログラム２０１はこれを拒否する（Ｓ１６０４）。
【０１７４】
次に、コマンド制御プログラム２０１は、指示コマンドが仮想ボリューム用容量プール８０３の設定である場合、プール制御プログラム２０５に受信した指示コマンドを渡す。プール制御プログラム２０５は、指示コマンドを受け取って、容量プール設定処理を実行する（Ｓ１６０５）。
【０１７５】
プール制御プログラム２０５は、まず、指示コマンドに係るＰＯＯＬ−ＩＤが有効であるか否かを確認し、さらに、そのＰＯＯＬ−ＩＤが定義されたか否かを確認する（図１６ＢのＳ１６０６）。
【０１７６】
指示コマンドに係るＰＯＯＬ−ＩＤが有効であり、かつ、そのＰＯＯＬ−ＩＤがまだ定義されていない場合、プール制御プログラム２０５は、プール管理情報２２１から、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を取得する。さらに、プール制御プログラム２０５は、ＰＯＯＬ−ＩＤが定義されたことを示す情報をＰＯＯＬ管理情報に登録する（Ｓ１６０７）。
【０１７７】
次に、プール制御プログラム２０５は、指示コマンドに係るＬＤＥＶ番号が使用可能であるか否かを確認する（Ｓ１６０８）。具体的には、指示コマンドに係るＬＤＥＶ番号が閉塞している又はフォーマット中である場合、当該ＬＤＥＶ番号は使用不可であるため、プール制御プログラム２０５はコマンドを拒否する（Ｓ１６０９）。
【０１７８】
指示コマンドに係るＬＤＥＶ８０２が既に使用中である場合（例えば、ＬＤＥＶ８０２へのパスが定義されている場合、コピー機能等によって使用されている場合、又は、コピー先として予約されている場合）、当該ＬＤＥＶは使用不可であるため、プール制御プログラム２０５はコマンドを拒否する（Ｓ１６１０）。
【０１７９】
次に、プール制御プログラム２０５は、プール管理情報２２１内のＰＯＯＬ固有情報に、容量、空き容量、閾値、ＰＯＯＬ−ＶＯＬ数及びＰＯＯＬ−ＶＯＬデバイスリストを設定する（Ｓ１６１１）。
【０１８０】
次に、プール制御プログラム２０５は、仮想ボリューム用容量プール８０３に対応付けられたＬＤＥＶ８０２にＰＳＣＢ１０１２を割り当てる（Ｓ１６１２）。
【０１８１】
上記のようなプール制御プログラム２０５の処理によってＬＤＥＶ８０２が仮想ボリューム用容量プール８０３に対応付けられる。
【０１８２】
仮想ボリューム用容量プール８０３の設定後、構成制御プログラム２０６は、ＬＤＥＶ管理情報２２２を設定する（Ｓ１６１３）。具体的には、構成制御プログラム２０６は、ＬＤＥＶ管理情報２２２を参照して、仮想ボリューム用容量プール８０３に割り当てられたＬＤＥＶ８０２に対応するＬＤＥＶ固有情報（図示省略）を取得する。構成制御プログラム２０６は、取得したＬＤＥＶ固有情報デバイス属性として、ＰＯＯＬ−ＶＯＬ属性（すなわち、そのＬＤＥＶ８０２が仮想ボリューム用容量プール８０３に対応付けられていることを示す情報）を設定する。さらに、構成制御プログラム２０６は、ＬＤＥＶ管理情報２２２のＰＯＯＬ−ＩＤ（図示省略）に、指示コマンドに係るＰＯＯＬ−ＩＤを設定する。
【０１８３】
次に、構成制御プログラム２０６は、プール管理情報２２１のＰＯＯＬ−ＩＤの状態を「ＰＯＯＬ有効」に設定する（Ｓ１６１４）。そして、構成制御プログラム２０６は、管理サーバ１１１に、コマンドが成功した旨の応答を送信する（図１６ＡのＳ１６１５）。
【０１８４】
管理サーバ１１１は、第１のストレージシステム１２５からの応答を受信すると（Ｓ１６１６）、処理を終了する。
【０１８５】
この処理によってＬＤＥＶ８０２が仮想ボリューム用容量プール８０３に対応付けられる。
【０１８６】
図１７は、本発明の実施形態においてＶＤＥＶ８０１を設定するために実行される処理のフローチャートである。
【０１８７】
まず、管理サーバ１１１は、管理サーバ１１１のメモリに保持されたストレージシステム構成情報（図示省略）を検索して、未定義のＶＤＥＶ８０１の番号（ＶＤＥＶ＃）を取得する（Ｓ１７０１）。
【０１８８】
管理者は、入力装置５０１を操作して、ＶＤＥＶ８０１の情報を設定する（Ｓ１７０２）。このとき、管理者は、ＶＤＥＶ８０１に割り当てられるＰＤＥＶ１５１のＲＡＩＤグループの情報及びそのエミュレーションタイプを指示する。
【０１８９】
管理サーバ１１１は、設定された情報を含むＶＤＥＶ作成の指示コマンドを生成し、生成した指示コマンドを第１のストレージシステム１２５に送信する（Ｓ１７０３）。
【０１９０】
第１のストレージシステム１２５において、管理サーバ１１１から送信された指示コマンドは、保守管理端末１５３を介してコマンド制御プログラム２０１が受信する（Ｓ１７０４）。コマンド制御プログラム２０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合、コマンド制御プログラム２０１はこれを拒否する（Ｓ１７０５）。
【０１９１】
コマンド制御プログラム２０１は、指示コマンドがＶＤＥＶ８０１の設定である場合、受信した指示コマンドを構成制御プログラム２０６に渡す。構成制御プログラム２０６は、指示コマンドを受け取って、ＶＤＥＶ作成処理を実行する（Ｓ１７０６）。
【０１９２】
構成制御プログラム２０６は、指示コマンドに係るＶＤＥＶ番号が、既に使われているＶＤＥＶ番号であるか否か確認する（Ｓ１７０７）。指示コマンドに係るＶＤＥＶ番号が既に使われている場合、構成制御プログラム２０６はその指示コマンドを拒否する。
【０１９３】
次に、構成制御プログラム２０６は、ＶＤＥＶ管理情報２２３にＶＤＥＶ固有情報を新たに作成する。構成制御プログラム２０６は、このＶＤＥＶ固有情報に、指示コマンドに係るＶＤＥＶの情報を設定する（Ｓ１７０８）。具体的には、構成制御プログラム２０６は、指示されたＲＡＩＤグループの容量に基づいて総サイズ、残サイズ及びエミュレーションタイプを、ＶＤＥＶ固有情報に設定する。これによって、指示コマンドに係るＶＤＥＶ８０１が設定される。当該ＶＤＥＶ８０１を仮想ボリュームに設定する場合は、デバイス属性を「仮想ボリューム」に設定する。
【０１９４】
コマンド制御プログラム２０１は、ＶＤＥＶ作成処理が完了すると、管理サーバ１１１に、コマンド成功の応答を送信する（Ｓ１７０９）。
【０１９５】
管理サーバ１１１は、第１のストレージシステム１２５からの応答を受信すると（Ｓ１７１０）、処理を終了する。
【０１９６】
この処理によってＶＤＥＶ８０１が設定される。
【０１９７】
図１８は、本発明の実施形態においてＬＤＥＶ８０２を設定するために実行される処理のフローチャートである。
【０１９８】
この処理は、ＶＤＥＶ８０１に、記憶領域であるＬＤＥＶ８０２を設定する（すなわち対応付ける）ために実行される。なお、この処理のＶＤＥＶ８０１は、図１７の処理で設定されたＶＤＥＶ８０１であってもよいし、既に設定されているＶＤＥＶ８０１であってもよい。
【０１９９】
まず、管理サーバ１１１は、ＬＤＥＶ８０２に対応付けられるＶＤＥＶ８０１の番号（ＶＤＥＶ＃）を取得する（Ｓ１８０１）。このＶＤＥＶ番号として、図１７の処理で設定されたＶＤＥＶ番号が、管理サーバ１１１によって自動的に設定される。あるいは、管理者が、既に設定されているＶＤＥＶ番号を指定してもよい。
【０２００】
次に、管理者は、入力装置５０１を操作して、設定するＬＤＥＶ８０２の情報を指定する。具体的には、管理者は、設定するＬＤＥＶ番号、ＶＥＤＶ番号、ＶＤＥＶ８０１の先頭スロット番号及び終了スロット番号の情報を指定する（Ｓ１８０２）。
【０２０１】
次に、管理サーバ１１１は、管理者によって指定された情報を含むＬＤＥＶ設定の指示コマンドを生成し、生成した指示コマンドを第１のストレージシステム１２５に送信する（Ｓ１８０３）。
【０２０２】
第１のストレージシステム１２５において、管理サーバ１１１から送信された指示コマンドは、保守管理端末１５３を介してコマンド制御プログラム２０１が受信する（Ｓ１８０４）。
【０２０３】
コマンド制御プログラム２０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合、コマンド制御プログラム２０１はこれを拒否する（Ｓ１８０５）。
【０２０４】
コマンド制御プログラム２０１は、指示コマンドがＬＤＥＶ設定である場合、構成制御プログラム２０６に受信した指示コマンドを渡す。構成制御プログラム２０６は指示コマンドを受け取って、ＬＤＥＶ設定処理を実行する（Ｓ１８０６）。
【０２０５】
構成制御プログラム２０６は、指示コマンドに係るＶＥＤＶ番号が、既に使われているＶＥＤＶ番号であるか否かを確認する（Ｓ１８０７）。指示コマンドに係るＶＥＤＶ番号が既に使われている場合、構成制御プログラム２０６はその指示コマンドを拒否する。
【０２０６】
次に、構成制御プログラム２０６は、指示コマンドに係るＶＤＥＶ８０１の総サイズを、ＶＤＥＶ管理情報２２３から取得する。そして、構成制御プログラム２０６は、指示コマンドに係るＬＤＥＶ８０２のサイズが、そのＶＤＥＶ８０１に定義可能であるか否かを確認する（Ｓ１８０８）。ＬＤＥＶ８０２のサイズは指示コマンドの先頭スロット番号と終了スロット番号とから算出される。ＬＤＥＶ８０２が定義不可能である場合、構成制御プログラム２０６はコマンドを拒否する。
【０２０７】
次に、構成制御プログラム２０６は、指示コマンドに係るＶＤＥＶ８０１のエミュレーションタイプを、ＶＤＥＶ固有情報から取得する。このエミュレーションタイプを、指示コマンドに係るＬＤＥＶ８０２のエミュレーションタイプとして設定する（Ｓ１８０９）。
【０２０８】
次に、構成制御プログラム２０６は、指示コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を設定する。さらに、構成制御プログラム２０６は、指示コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報を設定する。（Ｓ１８１０）。
【０２０９】
具体的には、構成制御プログラム２０６は、指示コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を新たに作成する。そして、構成制御プログラム２０６は、そのＬＤＥＶ固有情報に、ＬＤＥＶ番号、先頭スロット番号、終了スロット番号及びデバイス属性を定義する。さらに、構成制御プログラム２０６は、ＬＤＥＶ固有情報を設定した後に、指示コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報を設定する。具体的には、構成制御プログラム２０６は、設定したＬＤＥＶ数を加算し、指示コマンドに係るＬＤＥＶ番号、残サイズ、先頭ＬＤＥＶスロット及び終了ＬＤＥＶスロットを設定する。これによって、指示コマンドに係るＬＤＥＶが、ＶＤＥＶに対応付けられる。
【０２１０】
コマンド制御プログラム２０１は、ＬＤＥＶ設定の処理が完了すると、管理サーバ１１１に、コマンド成功の応答を送信する（Ｓ１８１１）。
【０２１１】
管理サーバ１１１は、第１のストレージシステム１２５からの応答を受信すると（Ｓ１８１２）、処理を終了する。
【０２１２】
この処理によってＶＤＥＶにＬＤＥＶが対応付けられる。
【０２１３】
なお、上記の図１６Ａから図１８の処理において管理サーバ１１１が実行する処理は、保守管理端末１５３によって実行されてもよい。その場合、管理者の保守管理端末１５３への入力には入力装置６０１が使用され、保守管理端末１５３とコマンド制御プログラム２０１との間の通信は、ネットワークアダプタ６０６を介して実行される。
【０２１４】
図１９は、本発明の実施形態において実行されるＰＶＯＬ７０１へのデータの書き込み処理の説明図である。
【０２１５】
第１のストレージシステム１２５のコマンド制御プログラム２０１がアプリケーションサーバ１０１等からＰＶＯＬ７０１を対象とするライトコマンド（すなわちデータの書き込みを要求するコマンド）を受信すると、図１９に示す書き込み処理が開始される（Ｓ１９０１）。
【０２１６】
次に、コマンド制御プログラム２０１は、ライトコマンドによってデータの書き込み先として指定された論理ボリュームを判定する（Ｓ１９０２）。図１９の例では、書き込み先としてＰＶＯＬ７０１が指定される。
【０２１７】
次に、新スナップショット処理プログラム２０２は、指定されたＰＶＯＬ７０１を含むペア（以下、当該ペアと記載）の状態を確認する（Ｓ１９０３）。当該ペアの状態を示す情報は、ペア管理情報２２４に含まれる。
【０２１８】
次に、コマンド制御プログラム２０１は、ライトコマンドによってデータの書き込み先として指定されたアドレス（以下、ライト対象アドレスと記載）を確認する（Ｓ１９０４）。図１９の例では、ＰＶＯＬ７０１内のアドレスが指定される。
【０２１９】
次に、コマンド制御プログラム２０１は、ライトコマンドによって書き込みを要求されたデータ（以下、ライトデータと記載）を受信し、そのライトデータをＬＲ１３３のメモリ１３１に格納する（Ｓ１９０５）。
【０２２０】
次に、コマンド制御プログラム２０１は、ライトコマンドによってデータの書き込み先として指定された論理ボリュームを判定する（Ｓ１９０６）。
【０２２１】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態を確認する（Ｓ１９０７）。
【０２２２】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態が「Ｃｏｐｙ」状態、すなわち、初期コピーが実行されている状態であるか否かを判定する（Ｓ１９０８）。初期コピーとは、最初の世代のスナップショットを作成するために、ＰＶＯＬ７０１に格納された全データ（ただし、特定のパターンのデータを除く）をＳＶＯＬ７０２にコピーする（より詳細には、スナップショット用容量プール７０３の特定パターン削除フルコピー９０１としてコピーする）処理である。
【０２２３】
Ｓ１９０８において、当該ペアが「Ｃｏｐｙ」状態であると判定された場合、処理は後述するＳ１９１１に進む。
【０２２４】
一方、Ｓ１９０８において、当該ペアが「Ｃｏｐｙ」状態でないと判定された場合、新スナップショット処理プログラム２０２は、当該ペアの状態が「ＰＳＵＳ」状態、すなわち、ＳＶＯＬ７０２へのコピーが停止している状態であるか否かを判定する（Ｓ１９０９）。当該ペアが「ＰＳＵＳ」状態であるとき、当該ペアのＰＶＯＬ７０１にデータが書き込まれても、その書き込みがＳＶＯＬ７０２に反映されない。その代わり、データが書き込まれたＰＶＯＬ７０１の管理ブロックに対応する差分ＢＭ１４０１の差分ビットが「１」に更新される（図１４参照）。
【０２２５】
Ｓ１９０９において、当該ペアが「ＰＳＵＳ」状態であると判定された場合、処理は後述するＳ１９１１に進む。
【０２２６】
一方、Ｓ１９０９において、当該ペアが「ＰＳＵＳ」状態でないと判定された場合、新スナップショット処理プログラム２０２は、当該ペアの状態が「Ｃｏｐｙ  ＲＳ」状態、すなわち、リストアのためのコピーが実行されている状態であるか否かを判定する（Ｓ１９１０）。
【０２２７】
リストアとは、指定された世代のスナップショットが作成された時点のＰＶＯＬ７０１を復元する処理である。リストアを実行するために、指定された世代に対応するＳＶＯＬ７０２のデータがＰＶＯＬ７０１にコピーされる。
【０２２８】
Ｓ１９１０において、当該ペアが「Ｃｏｐｙ  ＲＳ」状態でないと判定された場合、処理は後述するＳ１９１４に進む。
【０２２９】
Ｓ１９０８において当該ペアが「Ｃｏｐｙ」状態であると判定されたか、Ｓ１９０９において当該ペアが「ＰＳＵＳ」状態であると判定されたか、又は、Ｓ１９１０において当該ペアが「Ｃｏｐｙ  ＲＳ」状態であると判定された場合、新スナップショット処理プログラム２０２は、当該ペアのコピー要否ＢＭ１４０２を確認する（Ｓ１９１１）。
【０２３０】
次に、新スナップショット処理プログラム２０２は、コピー要否ＢＭ１４０２を確認した結果に基づいて、ライト対象アドレスに対応する領域に格納されたデータをコピーする必要があるか否かを判定する（Ｓ１９１２）。具体的には、新スナップショット処理プログラム２０２は、ライト対象アドレスに対応するコピー要否ビット（すなわち、ライト対象アドレスに対応する領域を含む管理ブロックに対応するコピー要否ビット）の値が、コピーが必要であることを示す値（図１４の例では「１」）である場合、ライト対象アドレスに対応する領域に格納されたデータをコピーする必要があると判定する。
【０２３１】
Ｓ１９１２においてコピーの必要がないと判定された場合、処理は後述するＳ１９１４に進む。
【０２３２】
一方、Ｓ１９１２においてコピーの必要があると判定された場合、先行コピー処理が実行される（Ｓ１９１３）。先行コピー処理については後述する（図２０参照）。なお、Ｓ１９１０において当該ペアが「Ｃｏｐｙ  ＲＳ」状態であると判定され、かつ、Ｓ１９１２においてコピーの必要があると判定された場合、Ｓ１９１３において、先行コピー処理の代わりに、リストア中の先行コピー処理が実行される。リストア中の先行コピー処理については後述する（図２１参照）。
【０２３３】
Ｓ１９１０において当該ペアが「Ｃｏｐｙ  ＲＳ」状態でないと判定されたか、Ｓ１９１２においてコピーの必要がないと判定されたか、又は、Ｓ１９１３が終了した場合、コマンド制御プログラム２０１は、ＬＲ１３３のメモリ１３１に格納されたデータをキャッシュメモリ１４７に転送する（Ｓ１９１４）。転送されたデータは、その後、ＰＶＯＬ７０１の、ライト対象アドレスによって指示された領域に格納される。
【０２３４】
次に、新スナップショット処理プログラム２０２は、ライト対象アドレスに対応する差分ＢＭ１４０１の差分ビットを、データが更新されたことを示す値（図１４の例では「１」）に更新する（Ｓ１９１５）。
【０２３５】
次に、コマンド制御プログラム２０１は、ライトコマンドに基づくデータの書き込み処理が終了したことを、ライトコマンドの送信元に報告する（Ｓ１９１６）。
【０２３６】
以上で、ＰＶＯＬ７０１へのデータの書き込み処理が終了する。
【０２３７】
図２０は、本発明の実施形態において、ＰＶＯＬ７０１へのデータの書き込みの際に実行される先行コピー処理の説明図である。
【０２３８】
図２０に示す先行コピー処理は、図１９のＳ１９１２においてコピー要否ビットが「コピー要」を示す値であると判定された場合に、そのコピー要否ビットに対応するＰＶＯＬ７０１の管理ブロックを対象として、図１９のＳ１９１３において実行される。以下、この処理の対象の管理ブロックを「ライト対象領域」と記載する。
【０２３９】
先行コピー処理が開始されると、新スナップショットコピー処理プログラム２０３は、先行コピーメッセージを送信する（Ｓ２００１）。
【０２４０】
次に、新スナップショットコピー処理プログラム２０３は、ＰＶＯＬ７０１のライト対象領域に格納されているデータを読み出して、キャッシュメモリ１４７に格納（すなわちステージング）する（Ｓ２００２）。
【０２４１】
次に、新スナップショットコピー処理プログラム２０３は、スナップショット用容量プール７０３のコピー先の領域を確認する（Ｓ２００３）。
【０２４２】
次に、新スナップショットコピー処理プログラム２０３は、Ｓ２００３における確認の結果に基づいて、スナップショット用容量プール７０３にコピー先の領域が確保されているか否かを判定する（Ｓ２００４）。
【０２４３】
Ｓ２００４においてコピー先の領域が確保されていないと判定された場合、新スナップショットコピー処理プログラム２０３は、スナップショット用容量プール７０３にコピー先の領域を確保する（Ｓ２００５）。
【０２４４】
Ｓ２００５が終了したか、又は、Ｓ２００４においてコピー先の領域が確保されていると判定された場合、新スナップショットコピー処理プログラム２０３は、キャッシュメモリ１４７上に、フルバックアップ領域（すなわちフルコピー９０１）に対応する領域を確保する（Ｓ２００６）。
【０２４５】
次に、新スナップショットコピー処理プログラム２０３は、コピー元及びコピー先を決定する（Ｓ２００７）。Ｓ２００２においてステージングされたデータがコピー元、Ｓ２００６において確保された領域がコピー先として決定される。
【０２４６】
次に、新スナップショットコピー処理プログラム２０３は、決定されたコピー元からコピー先へのデータコピーを実行する（Ｓ２００８）。キャッシュメモリ１４７上でコピーされたデータは、その後、スナップショット用容量プール７０３に確保されたコピー先領域に格納される。
【０２４７】
次に、新スナップショットコピー処理プログラム２０３は、Ｓ２００８においてコピーされたデータと、あらかじめ定められた特定パターンのデータとを比較する（Ｓ２００９）。ここでは、特定パターンのデータが「０」のみからなるデータである場合を例として示す。
【０２４８】
新スナップショットコピー処理プログラム２０３は、Ｓ２００８においてコピーされたデータが、「０」のみからなるデータであるか否かを判定する（Ｓ２０１０）。
【０２４９】
ステップ２０１０においてデータが「０」のみからなると判定された場合、新スナップショットコピー処理プログラム２０３は、スナップショット用容量プール７０３に確保されたコピー先の領域を開放する（Ｓ２０１１）。具体的には、これによって、スナップショット用容量プール７０３のコピー先領域に対する、仮想ボリューム用容量プール８０３の記憶領域の割り当てが解除される。
【０２５０】
一方、ステップ２０１０において「０」以外のデータが含まれると判定された場合、新スナップショットコピー処理プログラム２０３は、アドレス管理情報を更新する（Ｓ２０１２）。
【０２５１】
Ｓ２０１１が終了したか、又は、Ｓ２０１２が終了した場合、新スナップショットコピー処理プログラム２０３は、コピー要否ＢＭ１４０２の、ライト対象領域に対応するコピー要否ビットを、コピーが不要であることを示す値（図１４の例では「０」）に更新する（Ｓ２０１３）。
【０２５２】
以上で先行コピー処理が終了する。
【０２５３】
図２１は、本発明の実施形態において実行されるリストア中の先行コピー処理の説明図である。
【０２５４】
図２１に示すリストア中の先行コピー処理は、図１９のＳ１９１０において当該ペアが「Ｃｏｐｙ  ＲＳ」状態であると判定され、かつ、Ｓ１９１２においてコピー要否ビットが「コピー要」を示す値であると判定された場合に、そのコピー要否ビットに対応する管理ブロックを対象として、図１９のＳ１９１３において実行される。
【０２５５】
図２１に示す処理のうち、Ｓ２１０１〜Ｓ２１０８は、それぞれ、図２０のＳ２００１〜Ｓ２００８と同様であるため、説明を省略する。新スナップショットコピー処理プログラム２０３は、Ｓ２１０８の次にＳ２１０９を実行し、その次にＳ２１１０を実行する。Ｓ２１０９及びＳ２１１０は、それぞれ、図２０のＳ２０１２及びＳ２０１３と同様であるため、説明を省略する。
【０２５６】
ただし、図２１の処理において、ＳＶＯＬ７０２（すなわちスナップショット用容量プール７０３）からＰＶＯＬ７０１へのコピーが実行される。具体的には、図２１の処理におけるライト対象領域は、図１９のＳ１９１２において「コピー要」と判定されたコピー要否ビットに対応するＳＶＯＬ７０２の管理ブロックである。Ｓ２１０２において、ＳＶＯＬ７０２のライト対象領域に格納されているデータがキャッシュメモリ１４７にステージングされる。Ｓ２１０３〜Ｓ２１０５において、コピー先の領域は、ＰＶＯＬ７０１に確保される。
【０２５７】
図２２は、本発明の実施形態において実行されるＰＶＯＬ７０１からのデータの読み出し処理の説明図である。
【０２５８】
第１のストレージシステム１２５のコマンド制御プログラム２０１がアプリケーションサーバ１０１等からＰＶＯＬ７０１を対象とするリードコマンド（すなわちデータの読み出しを要求するコマンド）を受信すると、図２２に示す読み出し処理が開始される（Ｓ２２０１）。
【０２５９】
次に、コマンド制御プログラム２０１は、リードコマンドによってデータの読み出しの対象として指定されたアドレス（以下、リード対象アドレスと記載）を確認する（Ｓ２２０２）。図２２の例では、ＰＶＯＬ７０１内のアドレスが指定される。
【０２６０】
次に、コマンド制御プログラム２０１は、リードコマンドによってデータの読み出し対象として指定された論理ボリュームを判定する（Ｓ２２０３）。
【０２６１】
次に、新スナップショット処理プログラム２０２は、指定されたＰＶＯＬ７０１を含むペア（以下、当該ペアと記載）の状態を確認する（Ｓ２２０４）。
【０２６２】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態が「Ｃｏｐｙ  ＲＳ」状態であるか否かを判定する（Ｓ２２０５）。
【０２６３】
Ｓ２２０５において当該ペアが「Ｃｏｐｙ  ＲＳ」状態でないと判定された場合、処理は後述するＳ２２０９に進む。
【０２６４】
Ｓ２２０５において当該ペアが「Ｃｏｐｙ  ＲＳ」状態であると判定された場合、新スナップショット処理プログラム２０２は、当該ペアのコピー要否ＢＭ１４０２を確認する（Ｓ２２０６）。
【０２６５】
次に、新スナップショット処理プログラム２０２は、コピー要否ＢＭ１４０２を確認した結果に基づいて、リード対象アドレスに対応する領域に格納されたデータをコピーする必要があるか否かを判定する（Ｓ２２０７）。この判定は、図１９のＳ１９１２と同様に実行される。
【０２６６】
Ｓ２２０７においてコピーの必要がないと判定された場合、処理は後述するＳ２２０９に進む。
【０２６７】
一方、Ｓ２２０７においてコピーの必要があると判定された場合、リストア中の先行コピー処理が実行される（Ｓ２２０８）。Ｓ２２０８において実行されるリストア中の先行コピー処理は、図２１を参照して説明した通りである。
【０２６８】
Ｓ２２０５において当該ペアが「Ｃｏｐｙ  ＲＳ」状態でないと判定されたか、又は、Ｓ２２０８が終了した場合、コマンド制御プログラム２０１は、キャッシュヒットしたか否か、すなわち、リード対象アドレスに格納されたデータがキャッシュメモリ１４７に格納されているか否かを判定する（Ｓ２２０９）。
【０２６９】
Ｓ２２０９においてキャッシュミスしたと判定された場合、コマンド制御プログラム２０１は、ＰＶＯＬ７０１の、リード対象アドレスに対応する領域からデータを読み出して、それをキャッシュメモリ１４７に格納する（Ｓ２２１０）。
【０２７０】
次に、コマンド制御プログラム２０１は、Ｓ２２１０で読み出されたデータをアプリケーションサーバ１０１に送信する（Ｓ２２１１）。
【０２７１】
一方、Ｓ２２０９においてキャッシュヒットしたと判定された場合、コマンド制御プログラム２０１は、Ｓ２２１０を実行せずに、キャッシュメモリ１４７から読み出したデータをアプリケーションサーバ１０１等に送信する（Ｓ２２１１）。
【０２７２】
以上で、ＰＶＯＬ７０１からのデータの読み出し処理が終了する。
【０２７３】
図２３は、本発明の実施形態において実行されるＳＶＯＬ７０２へのデータの書き込み処理の説明図である。
【０２７４】
第１のストレージシステム１２５のコマンド制御プログラム２０１がバックアップサーバ１０２等からＳＶＯＬ７０２を対象とするライトコマンドを受信すると、図２３に示す書き込み処理が開始される（Ｓ２３０１）。
【０２７５】
次に、コマンド制御プログラム２０１は、ライトコマンドによってデータの書き込み先として指定された論理ボリュームを判定する（Ｓ２３０２）。図２３の例では、書き込み先としてＳＶＯＬ７０２が指定される。
【０２７６】
次に、新スナップショット処理プログラム２０２は、指定されたＳＶＯＬ７０２を含むペア（以下、当該ペアと記載）の状態を確認する（Ｓ２３０３）。
【０２７７】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態が「ＰＳＵＳ」状態であるか否かを判定する（Ｓ２３０４）。
【０２７８】
Ｓ２３０４において当該ペアが「ＰＳＵＳ」状態でないと判定された場合、コマンド制御プログラム２０１は、ライトコマンドに対して、Ｃｈｅｃｋ  Ｓｔａｔｕｓが付与されたエラーを応答する（Ｓ２３０６）。
【０２７９】
一方、Ｓ２３０４において当該ペアが「ＰＳＵＳ」状態であると判定された場合、コマンド制御プログラム２０１は、ライト対象アドレスを確認し、転送可能であることをコマンド応答によって通知する（Ｓ２３０５）。
【０２８０】
Ｓ２３０５が実行された場合、新スナップショット処理プログラム２０２は、ライトデータをＬＲ１３３のメモリ１３１に格納する（Ｓ２３０７）。
【０２８１】
次に、コマンド制御プログラム２０１は、ライトコマンドによってデータの書き込み先として指定された論理ボリュームを判定する（Ｓ２３０８）。
【０２８２】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態を確認する（Ｓ２３０９）。
【０２８３】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態が「ＰＳＵＳ」状態であるか否かを判定する（Ｓ２３１０）。
【０２８４】
Ｓ２３１０において当該ペアが「ＰＳＵＳ」状態でないと判定された場合、コマンド制御プログラム２０１は、ライトコマンドに対して、Ｃｈｅｃｋ  Ｓｔａｔｕｓが付与されたエラーを応答する（Ｓ２３０６）。
【０２８５】
一方、Ｓ２３１０において当該ペアが「ＰＳＵＳ」状態であると判定された場合、新スナップショット処理プログラム２０２は、当該ペアのコピー要否ＢＭ１４０２を確認する（Ｓ２３１１）。
【０２８６】
次に、新スナップショット処理プログラム２０２は、コピー要否ＢＭ１４０２を確認した結果に基づいて、ライト対象アドレスに対応する領域に格納されたデータをコピーする必要があるか否かを判定する（Ｓ２３１２）。この判定は、図１９のＳ１９１２と同様に実行される。
【０２８７】
Ｓ２３１２においてコピーの必要がないと判定された場合、処理は後述するＳ２３１４に進む。
【０２８８】
一方、Ｓ２３１２においてコピーの必要があると判定された場合、先行コピー処理が実行される（Ｓ２３１３）。先行コピー処理については後述する（図２４参照）。
【０２８９】
Ｓ２３１２においてコピーの必要がないと判定されたか、又は、Ｓ２３１３が終了した場合、コマンド制御プログラム２０１は、ＬＲ１３３のメモリ１３１に格納されたデータをキャッシュメモリ１４７に転送する（Ｓ２３１４）。転送されたデータは、その後、ＳＶＯＬ７０２の、ライト対象アドレスによって指示された領域（すなわち、実際には、スナップショット用容量プール７０３の対応する領域）に格納される。
【０２９０】
次に、コマンド制御プログラム２０１は、ライトコマンドに基づくデータの書き込み処理が終了したことを、ライトコマンドの送信元に報告する（Ｓ２３１５）。
【０２９１】
以上で、ＳＶＯＬ７０２へのデータの書き込み処理が終了する。
【０２９２】
図２４は、本発明の実施形態において、ＳＶＯＬ７０２へのデータの書き込みの際に実行される先行コピー処理の説明図である。
【０２９３】
図２４に示す先行コピー処理は、図２３のＳ２３１２においてコピー要否ビットが「コピー要」を示す値であると判定された場合に、そのコピー要否ビットに対応するＳＶＯＬ７０２の管理ブロックを対象として、図２３のＳ２３１３において実行される。以下、この処理の対象の管理ブロックを「ライト対象領域」と記載する。
【０２９４】
先行コピー処理が開始されると、新スナップショットコピー処理プログラム２０３は、先行コピーメッセージを送信する（Ｓ２４０１）。
【０２９５】
次に、新スナップショットコピー処理プログラム２０３は、ＳＶＯＬ７０２のライト対象領域に格納されているデータを読み出して、キャッシュメモリ１４７に格納（すなわちステージング）する（Ｓ２４０２）。
【０２９６】
次に、新スナップショットコピー処理プログラム２０３は、スナップショット用容量プール７０３のフルバックアップ領域を確認する（Ｓ２４０３）。
【０２９７】
次に、新スナップショットコピー処理プログラム２０３は、Ｓ２４０３における確認の結果に基づいて、スナップショット用容量プール７０３のフルバックアップ領域が確保されているか否かを判定する（Ｓ２４０４）。
【０２９８】
Ｓ２４０４においてフルバックアップ領域が確保されていないと判定された場合、新スナップショットコピー処理プログラム２０３は、スナップショット用容量プール７０３にフルバックアップ領域を確保する（Ｓ２５０５）。
【０２９９】
Ｓ２４０５が終了したか、又は、Ｓ２４０４においてフルバックアップ領域が確保されていると判定された場合、新スナップショットコピー処理プログラム２０３は、キャッシュメモリ１４７上に、フルバックアップ領域に対応する領域を確保する（Ｓ２４０６）。
【０３００】
次に、新スナップショットコピー処理プログラム２０３は、コピー元及びコピー先を決定する（Ｓ２４０７）。Ｓ２４０２においてステージングされたデータがコピー元、Ｓ２４０６において確保された領域がコピー先として決定される。
【０３０１】
次に、新スナップショットコピー処理プログラム２０３は、決定されたコピー元からコピー先へのデータコピーを実行する（Ｓ２４０８）。キャッシュメモリ１４７上でコピーされたデータは、その後、スナップショット用容量プール７０３に確保されたフルバックアップ領域に格納される。
【０３０２】
次に、新スナップショットコピー処理プログラム２０３は、アドレス管理情報を更新する（Ｓ２４０９）。
【０３０３】
次に、新スナップショットコピー処理プログラム２０３は、コピー要否ＢＭ１４０２の、ライト対象領域に対応するコピー要否ビットを、コピーが不要であることを示す値（図１４の例では「０」）に更新する（Ｓ２４１０）。
【０３０４】
以上で先行コピー処理が終了する。
【０３０５】
図２５は、本発明の実施形態において実行されるＳＶＯＬ７０２からのデータの読み出し処理の説明図である。
【０３０６】
第１のストレージシステム１２５のコマンド制御プログラム２０１がバックアップサーバ１０２等からＳＶＯＬ７０２を対象とするリードコマンドを受信すると、図２５に示す読み出し処理が開始される（Ｓ２５０１）。
【０３０７】
次に、コマンド制御プログラム２０１は、リードコマンドによってデータの読み出し対象として指定された論理ボリュームを判定する（Ｓ２５０２）。図２５の例では、ＳＶＯＬ７０２がデータの読み出し対象として指定される。
【０３０８】
次に、新スナップショット処理プログラム２０２は、指定されたＳＶＯＬ７０２を含むペア（以下、当該ペアと記載）の状態を確認する（Ｓ２５０３）。
【０３０９】
次に、新スナップショット処理プログラム２０２は、当該ペアの状態が「ＰＳＵＳ」状態であるか否かを判定する（Ｓ２５０４）。
【０３１０】
Ｓ２５０４において当該ペアが「ＰＳＵＳ」状態でないと判定された場合、コマンド制御プログラム２０１は、リードコマンドに対して、Ｃｈｅｃｋ  Ｓｔａｔｕｓが付与されたエラーを応答する（Ｓ２５０５）。
【０３１１】
Ｓ２５０４において当該ペアが「ＰＳＵＳ」状態であると判定された場合、新スナップショット処理プログラム２０２は、当該ペアのコピー要否ＢＭ１４０２を確認する（Ｓ２５０６）。
【０３１２】
次に、新スナップショット処理プログラム２０２は、コピー要否ＢＭ１４０２を確認した結果に基づいて、リード対象アドレスに対応する領域に格納されたデータをコピーする必要があるか否かを判定する（Ｓ２５０７）。この判定は、図１９のＳ１９１２と同様に実行される。
【０３１３】
Ｓ２５０７においてコピーの必要があると判定された場合、先行コピー処理が実行される（Ｓ２５０８）。Ｓ２５０８において実行される先行コピー処理は、図２４を参照して説明した通りである。
【０３１４】
次に、コマンド制御プログラム２０１は、先行コピー処理のために読み出されたデータ（すなわち、先行コピー処理によってコピーされたデータ）をバックアップサーバ１０２等に送信する（Ｓ２５１１）。
【０３１５】
一方、Ｓ２５０７においてコピーの必要がないと判定された場合、コマンド制御プログラム２０１は、キャッシュヒットしたか否かを判定する（Ｓ２５０９）。
【０３１６】
Ｓ２５０９においてキャッシュミスしたと判定された場合、コマンド制御プログラム２０１は、ＳＶＯＬ７０２の、リード対象アドレスに対応する領域（実際には、その領域に対応するスナップショット用容量プール７０３の領域）からデータを読み出して、それをキャッシュメモリ１４７に格納する（Ｓ２５１０）。
【０３１７】
次に、コマンド制御プログラム２０１は、Ｓ２５１０で読み出されたデータをバックアップサーバ１０２等に送信する（Ｓ２２１１）。
【０３１８】
以上で、ＰＶＯＬ７０１からのデータの読み出し処理が終了する。
【０３１９】
以上に説明したように、本実施形態によれば、差分データによって２番目以降の世代のスナップショットを作成することができる。このため、容量効率の高いスナップショットを実現することができる。
【０３２０】
さらに、本実施形態によれば、ＳＶＯＬ７０２に格納されたデータを読み出すために、ＰＶＯＬ７０１にアクセスする必要がない。このため、ＰＶＯＬ７０１に障害が発生した場合であっても、バックアップサーバ１０２は、ＳＶＯＬ７０２に格納されたデータを読み出すことができる。さらに、バックアップサーバ１０２は、アプリケーションサーバ１０１によるＰＶＯＬ７０１へのアクセスに影響を与えることなく、ＳＶＯＬ７０２へのデータの書き込み及び読み出しを実行することができる。
【図面の簡単な説明】
【０３２１】
【図１】本発明の実施形態の計算機システムの構成を示すブロック図である。
【図２】本発明の実施形態の第１のストレージシステムの制御メモリに記憶されているコンピュータプログラム及び情報を示す説明図である。
【図３】本発明の実施形態のアプリケーションサーバの構成を示すブロック図である。
【図４】本発明の実施形態のバックアップサーバの構成を示すブロック図である。
【図５】本発明の実施形態の管理サーバの構成を示すブロック図である。
【図６】本発明の実施形態の保守管理端末の構成を示すブロック図である。
【図７】本発明の実施形態の第１のストレージシステムが提供する論理ボリューム及びスナップショットの説明図である。
【図８】本発明の実施形態のストレージシステムの論理構成を示す第１の説明図である。
【図９】本発明の実施形態のストレージシステムの論理構成を示す第２の説明図である。
【図１０】本発明の実施形態のスナップショット用容量プールに含まれるＳＹＳ領域に格納されるデータの説明図である。
【図１１】本発明の実施形態においてＳＶＯＬへのアクセスが実行される際のマッピングの説明図である。
【図１２】本発明の実施形態のダイレクトアクセス管理テーブルの説明図である。
【図１３】本発明の実施形態のＳＹＳ領域の展開の説明図である。
【図１４】本発明の実施形態における最新のＳＶＯＬへのアクセスの説明図である。
【図１５】本発明の実施形態における最新でないＳＶＯＬへのアクセスの説明図である。
【図１６Ａ】本発明の実施形態において容量プールを設定するために実行される処理のフローチャートの第１の部分である。
【図１６Ｂ】本発明の実施形態において容量プールを設定するために実行される処理のフローチャートの第２の部分である。
【図１７】本発明の実施形態においてＶＤＥＶを設定するために実行される処理のフローチャートである。
【図１８】本発明の実施形態においてＬＤＥＶを設定するために実行される処理のフローチャートである。
【図１９】本発明の実施形態において実行されるＰＶＯＬへのデータの書き込み処理の説明図である。
【図２０】本発明の実施形態において、ＰＶＯＬへのデータの書き込みの際に実行される先行コピー処理の説明図である。
【図２１】本発明の実施形態において実行されるリストア中の先行コピー処理の説明図である。
【図２２】本発明の実施形態において実行されるＰＶＯＬからのデータの読み出し処理の説明図である。
【図２３】本発明の実施形態において実行されるＳＶＯＬへのデータの書き込み処理の説明図である。
【図２４】本発明の実施形態において、ＳＶＯＬへのデータの書き込みの際に実行される先行コピー処理の説明図である。
【図２５】本発明の実施形態において実行されるＳＶＯＬからのデータの読み出し処理の説明図である。
【符号の説明】
【０３２２】
１０１  アプリケーションサーバ
１０２  バックアップサーバ
１０３  テープ装置
１１１  管理サーバ
１２５  第１のストレージシステム
１６１  第２のストレージシステム
７０１  プライマリボリューム（ＰＶＯＬ）
７０２Ａ、７０２Ｂ、７０２Ｃ、７０２Ｘ  スナップショットボリューム（ＳＶＯＬ）
７０３  スナップショット用容量プール
８０３  仮想ボリューム用容量プール
【図１】
2010123066.tif 000003
【図２】
2010123066.tif 000004
【図３】
2010123066.tif 000005
【図４】
2010123066.tif 000006
【図５】
2010123066.tif 000007
【図６】
2010123066.tif 000008
【図７】
2010123066.tif 000009
【図８】
2010123066.tif 000010
【図９】
2010123066.tif 000011
【図１０】
2010123066.tif 000012
【図１１】
2010123066.tif 000013
【図１２】
2010123066.tif 000014
【図１３】
2010123066.tif 000015
【図１４】
2010123066.tif 000016
【図１５】
2010123066.tif 000017
【図１６Ａ】
2010123066.tif 000018
【図１６Ｂ】
2010123066.tif 000019
【図１７】
2010123066.tif 000020
【図１８】
2010123066.tif 000021
【図１９】
2010123066.tif 000022
【図２０】
2010123066.tif 000023
【図２１】
2010123066.tif 000024
【図２２】
2010123066.tif 000025
【図２３】
2010123066.tif 000026
【図２４】
2010123066.tif 000027
【図２５】
2010123066.tif 000028