(57)【要約】  ストレージシステムは、現時点の第１論理ボリュームと同一のデータを第２論理ボリュームに格納するための１回目のペア作成要求を受信した後に、第１論理ボリュームへの新たなデータの書き込み要求を受信した場合、キャッシュメモリに新たなデータを格納し、現時点の第１論理ボリューム及び第２論理ボリュームの一方と同一のデータをもう一方に格納するための２回目のペア作成要求を受信した時点で、１回目のペア作成要求を受信した時点の第１論理ボリュームのデータがキャッシュメモリに格納されており、かつ、当該データがまだ第２論理ボリュームにコピーされていない場合、当該データの第２論理ボリュームへのコピーを省略する。
2016079804.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、プロセッサメモリと、キャッシュメモリと、記憶装置と、を有し、ホスト計算機と通信可能に接続されるストレージシステムであって、
前記記憶装置の記憶領域は、第１論理ボリューム及び第２論理ボリュームを含み、
前記プロセッサは、
現時点の前記第１論理ボリュームと同一のデータを前記第２論理ボリュームに格納するための１回目のペア作成要求を受信した後に、前記第１論理ボリュームへの新たなデータの書き込み要求を受信した場合、前記キャッシュメモリに前記新たなデータを格納し、
前記第１論理ボリューム及び前記第２論理ボリュームのうち、現時点の一方と同一のデータをもう一方に格納するための２回目のペア作成要求を受信した時点で、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームのデータが前記キャッシュメモリに格納されており、かつ、当該データがまだ前記第２論理ボリュームにコピーされていない場合、当該データの前記第２論理ボリュームへのコピーを省略することを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記第１論理ボリューム及び前記第２論理ボリュームの記憶領域は、それぞれ、互いに対応する単位領域を含み、
前記キャッシュメモリの記憶領域は、互いに対応する第１面及び第２面を含み、
前記プロセッサは、
前記１回目のペア作成要求を受信した後、かつ、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする前に、前記第１論理ボリュームの前記単位領域への新たなデータの書き込み要求を受信した場合、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが格納されている前記第１面に対応する前記第２面に、前記新たなデータを格納し、
現時点の前記第１論理ボリュームと同一のデータを前記第２論理ボリュームに格納するための２回目のペア作成要求を受信した時点で、前記新たなデータが前記第２面に格納されており、かつ、前記第１面のデータがまだ前記第２論理ボリュームにコピーされていない場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーすることを特徴とするストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報、及び、前記１回目のペア作成要求を受信した後で前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したか否かを示す更新情報を保持し、
前記プロセッサは、前記コピー情報及び前記更新情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされておらず、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされておらず、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーすることを特徴とするストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記第１論理ボリューム及び前記第２論理ボリュームの記憶領域は、それぞれ、互いに対応する単位領域を含み、
前記キャッシュメモリの記憶領域は、互いに対応する第１面及び第２面を含み、
前記プロセッサは、
前記１回目のペア作成要求を受信した後、かつ、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする前に、前記第１論理ボリュームの前記単位領域への新たなデータの書き込み要求を受信した場合、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが格納されている前記第１面に対応する前記第２面に、前記新たなデータを格納し、
現時点の前記第２論理ボリュームと同一のデータを前記第１論理ボリュームに格納するための２回目のペア作成要求を受信した時点で、前記新たなデータが前記第２面に格納されており、かつ、前記第１面のデータがまだ前記第２論理ボリュームにコピーされていない場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第２面に格納されたデータを破棄することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報を保持し、
前記プロセッサは、前記コピー情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされていると判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合において、前記新たなデータが前記第２面に格納されているとき、前記第２面に格納されたデータを破棄することを特徴とするストレージシステム。
【請求項６】
請求項４に記載のストレージシステムであって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報、及び、前記１回目のペア作成要求を受信した後で前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したか否かを示す更新情報を保持し、
前記プロセッサは、前記コピー情報及び前記更新情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合において、前記新たなデータが前記第２面に格納されているとき、前記第２面に格納されたデータを破棄することを特徴とするストレージシステム。
【請求項７】
プロセッサと、プロセッサメモリと、キャッシュメモリと、記憶装置と、を有し、ホスト計算機と通信可能に接続されるストレージシステムの制御方法であって、
前記記憶装置の記憶領域は、第１論理ボリューム及び第２論理ボリュームを含み、
前記制御方法は、
前記プロセッサが、現時点の前記第１論理ボリュームと同一のデータを前記第２論理ボリュームに格納するための１回目のペア作成要求を受信した後に、前記第１論理ボリュームへの新たなデータの書き込み要求を受信した場合、前記キャッシュメモリに前記新たなデータを格納する第１手順と、
前記プロセッサが、前記第１論理ボリューム及び前記第２論理ボリュームのうち、現時点の一方と同一のデータをもう一方に格納するための２回目のペア作成要求を受信した時点で、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームのデータが前記キャッシュメモリに格納されており、かつ、当該データがまだ前記第２論理ボリュームにコピーされていない場合、当該データの前記第２論理ボリュームへのコピーを省略する第２手順と、を含むことを特徴とする制御方法。
【請求項８】
請求項７に記載の制御方法であって、
前記第１論理ボリューム及び前記第２論理ボリュームの記憶領域は、それぞれ、互いに対応する単位領域を含み、
前記キャッシュメモリの記憶領域は、互いに対応する第１面及び第２面を含み、
前記第１手順は、前記プロセッサが、前記１回目のペア作成要求を受信した後、かつ、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする前に、前記第１論理ボリュームの前記単位領域への新たなデータの書き込み要求を受信した場合、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが格納されている前記第１面に対応する前記第２面に、前記新たなデータを格納する手順を含み、
前記第２手順は、前記プロセッサが、現時点の前記第１論理ボリュームと同一のデータを前記第２論理ボリュームに格納するための２回目のペア作成要求を受信した時点で、前記新たなデータが前記第２面に格納されており、かつ、前記第１面のデータがまだ前記第２論理ボリュームにコピーされていない場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする手順を含むことを特徴とする制御方法。
【請求項９】
請求項８に記載の制御方法であって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報、及び、前記１回目のペア作成要求を受信した後で前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したか否かを示す更新情報を保持し、
前記第２手順は、前記プロセッサが、前記コピー情報及び前記更新情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされておらず、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされておらず、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第１面に格納されたデータと前記第２面に格納されたデータとを合成することによって生成した現時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする手順を含むことを特徴とする制御方法。
【請求項１０】
請求項７に記載の制御方法であって、
前記第１論理ボリューム及び前記第２論理ボリュームの記憶領域は、それぞれ、互いに対応する単位領域を含み、
前記キャッシュメモリの記憶領域は、互いに対応する第１面及び第２面を含み、
前記第１手順は、前記プロセッサが、前記１回目のペア作成要求を受信した後、かつ、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータを前記第２論理ボリュームにコピーする前に、前記第１論理ボリュームの前記単位領域への新たなデータの書き込み要求を受信した場合、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが格納されている前記第１面に対応する前記第２面に、前記新たなデータを格納する手順を含み、
前記第２手順は、前記プロセッサが、現時点の前記第２論理ボリュームと同一のデータを前記第１論理ボリュームに格納するための２回目のペア作成要求を受信した時点で、前記新たなデータが前記第２面に格納されており、かつ、前記第１面のデータがまだ前記第２論理ボリュームにコピーされていない場合、前記第１面に格納されたデータを前記第２論理ボリュームにコピーせずに、前記第２面に格納されたデータを破棄する手順を含むことを特徴とする制御方法。
【請求項１１】
請求項１０に記載の制御方法であって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報を保持し、
前記第２手順は、前記プロセッサが、前記コピー情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされていると判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合において、前記新たなデータが前記第２面に格納されているとき、前記第２面に格納されたデータを破棄する手順を含むことを特徴とする制御方法。
【請求項１２】
請求項１０に記載の制御方法であって、
前記プロセッサメモリは、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームの前記単位領域のデータが前記第２論理ボリュームにコピーされたか否かを示すコピー情報、及び、前記１回目のペア作成要求を受信した後で前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したか否かを示す更新情報を保持し、
前記第２手順は、前記プロセッサが、前記コピー情報及び前記更新情報に基づいて、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求を受信したと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーし、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータが既に前記第２論理ボリュームにコピーされており、かつ、前記第１論理ボリュームの前記単位領域への前記新たなデータの書き込み要求をまだ受信していないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合、前記第１論理ボリュームの前記単位領域に対応する前記第２論理ボリュームの単位領域のデータを前記第１論理ボリュームにコピーせず、
前記２回目のペア作成要求を受信した時点で、前記第１論理ボリュームの前記単位領域のデータがまだ前記第２論理ボリュームにコピーされていないと判定した場合において、前記新たなデータが前記第２面に格納されているとき、前記第２面に格納されたデータを破棄する手順を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにおけるスナップショット差分コピーに関する。
【背景技術】
【０００２】
本技術分野の背景技術として、国際公開第２０１２／１６４６１８号（特許文献１）がある。特許文献１には、「ストレージシステムは、メモリ領域と、キャッシュメモリ領域と、プロセッサとを有する。メモリ領域が、キャッシュメモリ領域に記憶されており論理領域に書き込むべきデータ要素と正ボリュームに対するスナップショット取得時点との時間的関係を示す時間関係情報を記憶する。プロセッサは、正ボリュームを指定したライト要求に従うライト先の論理領域に書き込むべきキャッシュメモリ領域のデータ要素についての時間関係情報を基に、キャッシュメモリ領域のデータ要素がスナップショット構成要素であるか否かを判定する。プロセッサは、その判定の結果が肯定的の場合、当該スナップショット構成要素を構成要素とするスナップショットイメージを保持するための副ボリュームに当該データ要素を退避させ、その後、書き込み対象のデータ要素をキャッシュメモリ領域に格納させる。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
特許文献１：国際公開第２０１２／１６４６１８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された技術によれば、例えばスナップショットの世代情報のような時間関係情報に基づいて、キャッシュメモリ領域のデータ要素がスナップショット構成要素であるか否かが判定され、スナップショットの構成要素でない場合には当該データ要素の副ボリュームへの退避が省略される。これによって、次のスナップショット取得時の処理を短時間化することができる。【０００５】
しかし、スナップショットを取得する処理の形態によっては、スナップショット構成要素であったデータ要素の退避の実行を保留している間に発生した事象によって、当該データ要素がスナップショット構成要素でなくなるか、又は正ボリュームと副ボリュームが逆転する等の結果、当該データ要素の退避が不要となる場合がある。このような場合に、スナップショット構成要素でなくなったデータ要素の退避を省略することはできなかった。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一形態では、プロセッサと、プロセッサメモリと、キャッシュメモリと、記憶装置と、を有し、ホスト計算機と通信可能に接続されるストレージシステムであって、前記記憶装置の記憶領域は、第１論理ボリューム及び第２論理ボリュームを含み、前記プロセッサは、現時点の前記第１論理ボリュームと同一のデータを前記第２論理ボリュームに格納するための１回目のペア作成要求を受信した後に、前記第１論理ボリュームへの新たなデータの書き込み要求を受信した場合、前記キャッシュメモリに前記新たなデータを格納し、第１論理ボリューム及び第２論理ボリュームのうち、現時点の一方と同一のデータをもう一方に格納するための２回目のペア作成要求を受信した時点で、前記１回目のペア作成要求を受信した時点の前記第１論理ボリュームのデータが前記キャッシュメモリに格納されており、かつ、当該データがまだ前記第２論理ボリュームにコピーされていない場合、当該データの前記第２論理ボリュームへのコピーを省略することを特徴とする。
【発明の効果】
【０００７】
本発明の一形態によれば、スナップショット取得のためのデータコピーの負荷を軽減し、処理時間を短時間化することができる。【０００８】
上記以外の課題、構成及び効果は、以下の実施形態の説明によって明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本実施例のストレージシステムの構成を示すブロック図である。
【図２】本実施例のプロセッサメモリに保持されるペア情報の説明図である。
【図３】本実施例のプロセッサメモリに保持される差分ビットマップ情報の説明図である。
【図４】本実施例のキャッシュメモリを構成するスロットの説明図である。
【図５】本実施例のプロセッサメモリに保持されるスロット管理情報の説明図である。
【図６】本実施例のストレージシステムが実行するリストア処理の概要の説明図である。
【図７】本実施例のストレージシステムが実行する旧データコピー及び現データコピーの説明図である。
【図８】本実施例のストレージシステムが実行するリストア処理の手順の概要の説明図である。
【図９】本実施例のペア作成処理部がペア作成（リストア）コマンドを受信したときに実行する処理のフローチャートである。
【図１０】本実施例のコピー処理部が実行するコピー処理のフローチャートである。
【図１１】本実施例のストレージシステムが実行する差分モードのＦＲＲ処理の概要の説明図である。
【図１２】本実施例のストレージシステムが実行するＦＲＲ処理の手順の概要の説明図である。
【図１３】本実施例のペア作成処理部が差分モードのペアについてペア作成（ＦＲＲ）コマンドを受信したときに実行する処理のフローチャートである。
【図１４】本実施例のコピー処理部が実行するコピー処理のフローチャートである。
【図１５】本実施例のストレージシステムが実行する通常モードのＦＲＲ処理の概要の説明図である。
【図１６】本実施例のペア作成処理部が通常モードのペアについてペア作成（ＦＲＲ）コマンドを受信したときに実行する処理のフローチャートである。
【図１７】本実施例のＩ／Ｏ処理部がライトコマンドを受信したときに実行するライト処理の説明図である。
【図１８】本実施例のＩ／Ｏ処理部が実行するライト処理のフローチャートである。
【図１９】本実施例のＩ／Ｏ処理部が実行するライト処理のフローチャートである。
【図２０】本実施例のＩ／Ｏ処理部が実行するライト処理のフローチャートである。
【図２１】本実施例のＩ／Ｏ処理部が実行するライト処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面に基づいて、実施例を説明する。本実施例のストレージシステムは、論理ボリュームのスナップショットを作成するためのデータコピーの実行を保留し、所定の条件下で当該データコピーを省略する。
【００１１】
図１は、本実施例のストレージシステムの構成を示すブロック図である。
【００１２】
本実施例のストレージシステム１００は、ディスク制御装置１１０及びディスク装置１３０を有する。ディスク制御装置１１０は、ディスク装置１３０に対するデータの書き込み及び読み出しを制御する装置であり、相互に接続されたプロセッサ１１１、プロセッサメモリ１１５、キャッシュメモリ１１９及びチャネルポート１２１を有する。
【００１３】
プロセッサ１１１は、ペア作成処理部１１２、コピー処理部１１３及びＩ／Ｏ処理部１１４を有する。これらの処理部は、プロセッサ１１１がプロセッサメモリ１１５に格納されたプログラム（図示省略）を実行することによって実現される。したがって、以下の説明においてこれらの処理部が実行する処理は、実際にはプロセッサ１１１がプロセッサメモリ１１５に格納されたプログラムに従って実行する。
【００１４】
プロセッサメモリ１１５には、プロセッサ１１１によって実行されるプログラムに加えて、ペア情報１１６、差分ビットマップ情報１１７及びスロット管理情報１１８が格納される。これらの詳細については後述する。
【００１５】
キャッシュメモリ１１９は、ディスク装置１３０に書き込まれるデータ及びディスク装置１３０から読みだされるデータを一時的に格納する記憶装置であり、その記憶領域はそれぞれが所定の記憶容量を有する複数のスロット１２０に分割して管理される。後述するように、各スロットはライト面及びリード面を有する。
【００１６】
チャネルポート１２１は、ネットワーク１５０に接続され、ネットワーク１５０を介してホスト１４０と通信するインターフェースである。
【００１７】
ディスク装置１３０は、ホスト１４０によって書き込みを要求されたデータを格納する記憶装置である。ディスク装置１３０は、例えば一つ以上のハードディスクドライブ（ＨＤＤ）であるが、その一部又は全部が多種の記憶メディアを有する記憶装置（例えばフラッシュメモリドライブ）によって置き換えられてもよい。
【００１８】
ディスク装置１３０の記憶領域は、複数の論理ボリューム１３１に対応付けられる。論理ボリューム１３１は、ホスト１４０によるデータの書き込み及び読み出しの対象として指定される論理的な記憶装置である。各論理ボリューム１３１は、定義された全記憶容量に相当するディスク装置１３０の記憶領域があらかじめ割り当てられた、いわゆる実論理ボリュームであってもよいし、ホスト１４０からの書き込み要求に応じて記憶領域が割り当てられる、いわゆる仮想論理ボリュームであってもよい。
【００１９】
例えばディスク装置１３０が複数のＨＤＤを含む場合、一つの論理ボリューム１３１に一つのＨＤＤの記憶領域の一部又は全部が割り当てられてもよいし、一つの論理ボリューム１３１に複数のＨＤＤの記憶領域の一部又は全部が割り当てられてもよい。一例を示せば、ディスク装置１３０に含まれる複数のＨＤＤがＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成し、それらのＨＤＤの記憶領域が各論理ボリューム１３１に割り当てられる。
【００２０】
図１には、複数の論理ボリューム１３１の例として、論理ボリューム１３１Ａ〜１３１Ｅを示す。本実施例において、複数の論理ボリューム１３１の任意の二つがホスト１４０からのコマンドに従ってスナップショットペア１３２（単にペアとも記載）を構成することができる。一つのスナップショットペア１３２を構成する二つの論理ボリューム１３１のうち一方が正論理ボリューム（正ＶＯＬ）、もう一方が副論理ボリューム（副ＶＯＬ）となる。
【００２１】
図１の例では、ペア１３２の例としてペア１３２Ａ及び１３２Ｂを示す。ペア１３２Ａは論理ボリューム１３１Ａ及び１３２Ｂからなり、論理ボリューム１３１Ａが正ＶＯＬ、論理ボリューム１３１Ｂが副ＶＯＬである。ペア１３２Ｂは論理ボリューム１３１Ｃ及び１３２Ｄからなり、論理ボリューム１３１Ｃが正ＶＯＬ、論理ボリューム１３１Ｄが副ＶＯＬである。
【００２２】
ホスト１４０は、ネットワーク１５０を介してストレージシステム１００に接続され、ストレージシステム１００にデータの書き込み、読み出し及び後述する論理ボリュームのペア作成等のためのコマンドを出力する計算機である。図１では省略されているが、ホスト１４０は、ネットワーク１５０に接続されるインターフェース、インターフェースに接続されるプロセッサ、及びプロセッサに接続される記憶装置等を有する。
【００２３】
ネットワーク１５０は、例えばいわゆるＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であるが、ホスト１４０とストレージシステム１００との間のコマンド及びデータ等の通信を可能とするものである限り、いかなる種類のものであってもよい。
【００２４】
図２は、本実施例のプロセッサメモリ１１５に保持されるペア情報１１６の説明図である。
【００２５】
ペア情報１１６は、ストレージシステム１００が保持する各ペア１３２の属性及び状態等に関する情報を含む。具体的には、ペア情報１１６の各レコードは、各ペア１３２に関する情報として、ペアＩＤ２０１、正ＶＯＬ＿ＤＥＶ＃２０２、副ＶＯＬ＿ＤＥＶ＃２０３、ペア種別２０４、コピー種別２０５、ペア状態２０６、正ＶＯＬコピーＢＭＰ＃２０７、正ＶＯＬ更新ＢＭＰ＃２０８、副ＶＯＬコピーＢＭＰ＃２０９及び副ＶＯＬ更新ＢＭＰ＃２１０を含む。
【００２６】
ペアＩＤ２０１は、各ペア１３２の識別情報である。正ＶＯＬ＿ＤＥＶ＃２０２及び副ＶＯＬ＿ＤＥＶ＃２０３は、それぞれ、各ペア１３２を構成する正ＶＯＬ及び副ＶＯＬの識別情報である。ペア種別２０４は、各ペア１３２の種別を示す。本実施例において、各ペア１３２の種別は「通常」又は「差分」のいずれかとなる。あるペア１３２のペア種別２０４が「差分」である場合、そのペアが作成されてから更新された正ＶＯＬのトラックが更新ビットマップ（後述）に記憶され、その後リストア等が実行されたときに更新ビットマップに従ってコピーを実行することによって、更新されていないトラックの副ＶＯＬへのコピーが省略される。一方、ペア種別２０４が「通常」である場合、更新されたトラックが記憶されず、リストア等が実行されたときは全てのトラックを副ＶＯＬにコピーする必要がある。
【００２７】
トラックとは、各論理ボリューム１３１に一つ以上含まれる所定の大きさの記憶領域であり、論理ボリューム１３１間のデータコピーの要否等を管理するための単位領域である。すなわち、後述するように、トラックごとにデータコピーの要否等が判断される。各トラックがディスク装置１３０を構成するＨＤＤの物理的なトラックに対応する必要はなく、あらかじめ定められている限り、いかなる大きさの記憶領域がトラック（すなわち単位領域）として定義されてもよい。
【００２８】
コピー種別２０５は、各ペア１３２において実行されるコピーの種別（すなわちコピーモード）を示す。本実施例において、各ペアのコピー種別２０５は、「ＣＯＰＹモード」又は「ＮＯＣＯＰＹモード」のいずれかとなる。これらの種別の詳細については後述する。あるペア１３２のコピー種別２０５が「ＣＯＰＹモード」である場合、そのペアを作成するための（すなわち副ＶＯＬに正ＶＯＬと同一のデータを格納するための）正ＶＯＬから副ＶＯＬへのデータコピーが、全トラックについて順次実行される。一方、コピー種別２０５が「ＮＯＣＯＰＹモード」である場合、例えば副ＶＯＬのトラックへのリードコマンドの受信等、所定のイベントが発生した場合に、当該トラックについて正ＶＯＬから副ＶＯＬへのデータコピーが実行され、それ以外のトラックについてはデータコピーが実行されない。
【００２９】
ペア状態２０６は、各ペア１３２の現在の状態、具体的には、各ペア１３２を作成するためのコピーの進行状況を示す。本実施例において、各ペア１３２の状態は、コピーが現在実行されていることを示す「コピー中」、コピーが全て終了したことを示す「コピー完」、又はコピーがまだ開始されていないことを示す「未コピー」のいずれかとなる。
【００３０】
正ＶＯＬコピーＢＭＰ＃２０７及び正ＶＯＬ更新ＢＭＰ＃２０８は、それぞれ、各ペア１３２の正ＶＯＬに割り当てられたコピービットマップ（コピーＢＭＰ）及び更新ビットマップ（更新ＢＭＰ）の識別情報である。同様に、副ＶＯＬコピーＢＭＰ＃２０９及び副ＶＯＬ更新ＢＭＰ＃２１０は、それぞれ、各ペア１３２の副ＶＯＬに割り当てられたコピーＢＭＰ及び更新ＢＭＰの識別情報である。各論理ボリュームに割り当てられたコピーＢＭＰ及び更新ＢＭＰは、いずれも差分ビットマップ情報１１７に含まれる。以下の説明において、コピーＢＭＰ及び更新ＢＭＰを総称して差分ビットマップ（差分ＢＭＰ）と記載する場合がある。
【００３１】
正ＶＯＬに割り当てられたコピーＢＭＰは、ペア１３２が作成された時点の正ＶＯＬに格納されていたデータと同一のデータを副ＶＯＬに格納するためのコピーの要否を示す。正ＶＯＬに割り当てられた更新ＢＭＰは、ペア種別２０４が「差分」であるペア１３２においてリストアが実行された時点の正ＶＯＬに格納されていたデータと同一のデータを副ＶＯＬに格納するためのコピーの要否を示す。ペア１３２の作成（新規作成及びリストア等を含む）のために実行されるコピー等の処理の詳細については後述する。
【００３２】
副ＶＯＬとして使用されている論理ボリューム１３１にもコピーＢＭＰ（ペア種別２０４が「差分」である場合にはさらに更新ＢＭＰ）が割り当てられるが、通常はそれらは更新も参照もされず、その論理ボリューム１３１が新たに正ＶＯＬとなったときに必要に応じて更新及び参照される。
【００３３】
図３は、本実施例のプロセッサメモリ１１５に保持される差分ビットマップ情報１１７の説明図である。
【００３４】
差分ビットマップ情報１１７は、複数の差分ＢＭＰを含む。差分ＢＭＰの各ビットは、論理ボリューム１３１の各トラックに対応する。図３の例において、各差分ＢＭＰの下線が付されたビットは、論理ボリュームのトラックに割り当てられていることを示す。図３には各差分ＢＭＰのサイズが同一である例を示しているため、各論理ボリュームに定義された容量の大きさに応じて、必要な数のビットがトラックに割り当てられる。
【００３５】
図３の例において、正ＶＯＬのコピーＢＭＰのビットの値「１」は、ペア作成要求を受信した時点でそのビットに対応するトラックに格納されていたデータを、副ＶＯＬの対応するトラックにまだコピーしていないことを示す。正ＶＯＬの更新ＢＭＰのビットの値「１」は、ペア作成要求を受信した後でそのビットに対応するトラックへの新たなデータの書き込み要求を受信したことを示す。
【００３６】
図３に例示する差分ＢＭＰ＃０及び＃１は、それぞれ、図２に示すペアＩＤ２０１の値「２」で識別されるペア１３２の正ＶＯＬに割り当てられたコピーＢＭＰ及び更新ＢＭＰである。当該ペア１３２のペア種別２０４は「差分」、コピー種別２０５は「ＮＯＣＯＰＹモード」、ペア状態は「未コピー」である。
【００３７】
この例において、図３の差分ＢＭＰ＃０（すなわちコピーＢＭＰ）は、当該ペア１３２が作成された時点の正ＶＯＬに格納されていたデータと同一のデータを副ＶＯＬに格納するために、正ＶＯＬの全てのトラックのデータを副ＶＯＬにコピーする必要がある（すなわち現時点でまだいずれのトラックのコピーも行われていない）ことを示す。一方、図３の差分ＢＭＰ＃１（すなわち更新ＢＭＰ）は、当該ペア１３２が作成されてから現在までに更新された正ＶＯＬのトラック、すなわち、当該ペア１３２においてこれからリストアが実行された場合にその時点の正ＶＯＬに格納されていたデータと同一のデータを副ＶＯＬに格納するためのコピーをする必要がある正ＶＯＬのトラックを示す。
【００３８】
図３に例示する差分ＢＭＰ＃４は、図２に示すペアＩＤ２０１の値「０」で識別されるペア１３２の正ＶＯＬに割り当てられたコピーＢＭＰである。当該ペア１３２のペア種別２０４が「通常」であるため、当該正ＶＯＬには更新ＢＭＰが割り当てられていない。
【００３９】
図３に例示する差分ＢＭＰ＃６及び＃７は、それぞれ、図２に示すペアＩＤ２０１の値「１」で識別されるペア１３２の正ＶＯＬに割り当てられたコピーＢＭＰ及び更新ＢＭＰである。当該ペア１３２のペア種別２０４は「差分」、コピー種別２０５は「ＣＯＰＹモード」、ペア状態は「コピー完」である。
【００４０】
この例において、図３の差分ＢＭＰ＃６（すなわちコピーＢＭＰ）は、当該ペア１３２が作成された時点の正ＶＯＬに格納されていたデータと同一のデータを副ＶＯＬに格納するための正ＶＯＬから副ＶＯＬへのデータのコピーが、全てのトラックについて終了したことを示す。
【００４１】
以下、差分ビットマップ情報１１７に含まれる各差分ＢＭＰを差分ＢＭＰ１１７と記載する場合がある。コピーＢＭＰとして使用される差分ＢＭＰ１１７をコピーＢＭＰ１１７と記載する場合がある。更新ＢＭＰとして使用される差分ＢＭＰ１１７を更新ＢＭＰ１１７と記載する場合がある。各差分ＢＭＰ１１７を区別するために、例えばコピーＢＭＰ１１７Ａ及び更新ＢＭＰ１１７Ｂのように記載する場合がある。
【００４２】
図４は、本実施例のキャッシュメモリ１１９を構成するスロット１２０の説明図である。
【００４３】
キャッシュメモリ１１９の各スロット１２０は、必要に応じていずれかの論理ボリューム１３１のいずれかのトラックに対応付けられる。各スロット１２０は、各スロットに対応付けられたトラックから読み出されたデータを格納するリード面と、ホスト１４０から各スロットに対応付けられたトラックに書き込まれたデータを格納するライト面と、からなる。リード面及びライト面それぞれの大きさは、トラックの大きさと同一である。図４にはスロット１２０の例としてスロット１２０Ａ〜１２０Ｃを示すが、実際のキャッシュメモリ１１９はより多くのスロット１２０を含み得る。
【００４４】
図５は、本実施例のプロセッサメモリ１１５に保持されるスロット管理情報１１８の説明図である。
【００４５】
スロット管理情報１１８は、キャッシュメモリ１１９を構成する各スロット１２０の属性及び状態等に関する情報を含む。具体的には、スロット管理情報１１８の各レコードは、各スロット１２０に関する情報として、スロット＃５０１、ロック５０２、ホストダーティ５０３、物理ダーティ５０４、クリーン５０５及びコピーアフターライト（ＣＡＷ）属性５０６を含む。
【００４６】
スロット＃５０１は、各スロット１２０の識別情報である。ロック５０２は、各スロット１２０がロックされているか否かを示す。ホストダーティ５０３、物理ダーティ５０４及びクリーン５０５は、それぞれ、各スロット１２０の状態がホストダーティ、物理ダーティ又はクリーンのいずれであるかを示す。
【００４７】
クリーンとは、スロット１２０がいずれのトラックにも割り当てられておらず、したがってライト面及びリード面のいずれにも有効なデータを格納していない状態である。物理ダーティとは、スロット１２０がいずれかのトラックに割り当てられ、そのトラックから読み出されたデータをリード面に格納しているが、まだホスト１４０からの書き込みを受けていない状態である。ホストダーティとは、スロット１２０がいずれかのトラックに割り当てられ、そのトラックから読み出されたデータをリード面に格納し、さらにホスト１４０から書き込まれたデータをライト面に格納している状態である。ホストダーティとなったスロット１２０に格納された現データ（後述）を当該スロットに対応付けられたトラックに反映させて、当該スロット１２０の当該トラックへの割り当てを解除すると、当該スロット１２０はクリーンに戻る。
【００４８】
ＣＡＷ属性５０６は、ＣＡＷの実行の要否（すなわち当該スロットについてこれからＣＡＷを実行する必要があるか否か）を示す。ＣＡＷの詳細については後述する。
【００４９】
図６は、本実施例のストレージシステム１００が実行するリストア処理の概要の説明図である。
【００５０】
最初に、ストレージシステム１００がホスト１４０からペア作成（新規）コマンドを受信する。ペア作成（新規）コマンドとは、ペア作成コマンドの一種であり、ペアの新規作成、すなわち、二つの論理ボリューム１３１をそれぞれ正ＶＯＬ及び副ＶＯＬとして指定し、現時点（すなわち当該コマンド受信時）の正ＶＯＬのデータと同一のデータを副ＶＯＬに格納することを要求するコマンドである。一例として、図６（ａ）を参照して、正ＶＯＬ及び副ＶＯＬとしてそれぞれ論理ボリューム１３１Ａ及び１３１Ｂを指定し、ペア種別２０４及びコピー種別２０５としてそれぞれ「差分」及び「ＮＯＣＯＰＹモード」を指定するペア作成（新規）コマンドを受信したストレージシステム１００の処理を説明する。
【００５１】
図６（ａ）に示すように、ストレージシステム１００がペア作成（新規）コマンドを受信した時点で、正ＶＯＬである論理ボリューム１３１Ａ（以下、正ＶＯＬ１３１Ａとも記載する）のトラック６０１Ａ、６０１Ｂ及び６０１Ｃにはそれぞれデータ「Ａ」、「Ｂ」及び「Ｃ」が格納され、副ＶＯＬである論理ボリューム１３１Ｂ（以下、副ＶＯＬ１３１Ｂとも記載する）のトラック６０１Ｄ、６０１Ｅ及び６０１Ｆにはそれぞれデータ「Ｘ」、「Ｙ」及び「Ｚ」が格納されている。ペア作成処理部１１２は、受信したコマンドに従って、副ＶＯＬ１３１Ｂのデータを当該コマンド受信時点の正ＶＯＬ１３１Ａのデータと同一にするための処理を実行する。
【００５２】
具体的には、副ＶＯＬ１３１Ｂに当該コマンド受信時点の正ＶＯＬ１３１Ａと同一のデータを格納するために、コピー処理部１１３が正ＶＯＬ１３１Ａのトラック６０１Ａ〜６０１Ｃからそれぞれデータ「Ａ」〜「Ｃ」を副ＶＯＬ１３１Ｂのトラック６０１Ｄ〜６０１Ｆにコピーする必要がある。しかし、図６（ａ）の時点ではそれらのコピーはまだ実行されておらず、ペア作成処理部１１２は、コピーＢＭＰ１１７Ａのトラック６０１Ａ〜６０１Ｃに対応するビットを、全て、それらのコピーを実行することが必要であることを示す値「１」に設定する。
【００５３】
この時点で、更新ＢＭＰ１１７Ｂのトラック６０１Ａ〜６０１Ｃに対応するビットはいずれも「０」である。また、この時点でトラック６０１Ａ〜６０１Ｃにはスロット１２０が割り当てられていなくてもよいが、割り当てられている場合、この時点で、トラック６０１Ａ〜６０１Ｃに割り当てられたスロット１２０のＣＡＷ属性５０６はいずれも「０」である。
【００５４】
その後、例えばストレージシステム１００が正ＶＯＬ１３１Ａのトラック６０１Ｂにデータ「Ｄ」を書きこむためのライトコマンドをホスト１４０から受信した場合、Ｉ／Ｏ処理部１１４はデータ「Ｄ」をトラック６０１Ｂに書き込む（図６（ｂ））。具体的には、Ｉ／Ｏ処理部１１４は、トラック６０１Ｂにまだキャッシュメモリ１１９のスロット１２０が割り当てられていない場合、新たにスロット１２０（図６の例ではスロット１２０Ｂ）を割り当て、当該スロット１２０Ｂにデータ「Ｄ」を書き込む。その結果、スロット１２０Ｂはホストダーティとなる。以下、この例のデータ「Ｄ」のようにホスト１４０からのライトコマンドによって書き込まれたデータをライトデータとも記載する。
【００５５】
以下の説明において、ペア１３２が作成された時点の正ＶＯＬのトラックのデータを「旧データ」、当該トラックの現時点のデータを「現データ」とも記載する。例えば上記のようにペア作成後の正ＶＯＬ１３１Ａのトラックにデータが書き込まれた場合、当該データが書き込まれる前の、ペアが作成された時点の当該トラックのデータを「旧データ」、当該データの書き込みによって更新された現時点のデータを「現データ」と記載する。ペアが作成された後に更新されていないトラックの現データは旧データと同一である。
【００５６】
より詳細には、上記のようにあるトラックに割り当てられたスロット１２０が当該トラックへの書き込みの結果ホストダーティとなった場合、当該スロット１２０のリード面に格納されているデータが「旧データ」、ライト面に格納されているデータが「現データ」となる。ただし、ホスト１４０からのライトコマンドによって、トラックの全体にデータが書き込まれるとは限らず、トラックの一部に書き込まれる場合がある。その場合、リード面に書き込まれたデータのうち、ライトデータが書き込まれたライト面の領域に対応するリード面の領域のデータを、ライトデータによって置き換えること（すなわちリード面とライト面をマージすること）によって生成されたデータが「現データ」となる。
【００５７】
図６（ｂ）の例では、スロット１２０Ｂのリード面の全体にトラック６０１Ｂから読み出されたデータ「Ｂ」が書き込まれ、ライト面の一部にライトデータ「Ｄ」が書き込まれる。この場合、データ「Ｂ」が旧データとなる。一方、リード面に書き込まれたデータ「Ｂ」のうち、データ「Ｄ」が書き込まれた領域に対応する領域のデータをデータ「Ｄ」によって置き換えたデータが、現データとなる。以下、このようなデータを「Ｄ＋Ｂ」とも記載する。ただし、ライトデータ「Ｄ」がライト面全体を満たしている場合、ライト面とリード面をマージすることによって、結局データ「Ｄ」が現データとして得られる。
【００５８】
コピー処理部１１３は、Ｉ／Ｏ処理部１１４がライトデータ「Ｄ」をトラック６０１Ｂに書き込む前に、旧データであるデータ「Ｂ」を副ＶＯＬ１３１Ｂのトラック６０１Ｅにコピーしてもよい。このように、正ＶＯＬのトラックの旧データを副ＶＯＬにコピーする処理の実行を保留（先送り）し、当該トラックに新たなデータが書き込まれた時点でその保留を打ち切ってコピーを実行する処理は、Ｃｏｐｙ  ｏｎ  Ｗｒｉｔｅ（ＣｏＷ）と呼ばれる。
【００５９】
しかし、本実施例ではスロット１２０Ｂがライト面とリード面を有しており、Ｉ／Ｏ処理部１１４がライトデータ「Ｄ」をライト面に書き込んだ後も、旧データ「Ｂ」はリード面に保持されている。このため、コピー処理部１１３は、トラック６０１Ｂに新たなデータが書き込まれた後も旧データのコピーの保留を継続することができる。図６（ｂ）の例では、Ｉ／Ｏ処理部１１４はライトデータ「Ｄ」をライト面に書き込んでからライトコマンドに応答し、その後、コピー処理部１１３がリード面の旧データ「Ｂ」を副ＶＯＬ１３１Ｂにコピーすることができる。このようなコピーはＣｏｐｙ  ａｆｔｅｒ  Ｗｒｉｔｅ（ＣＡＷ）と呼ばれる。スロット管理情報１１８のＣＡＷ属性５０６の値「１」（「ＯＮ」と記載する場合もある）は、スロットに対応するトラックにデータが書き込まれたが、旧データの副ＶＯＬへのコピーがまだ実行されていないこと、言い換えると、ライト面にライトデータが格納され、スロットの現データと旧データが異なっているが、リード面の旧データが副ＶＯＬにまだコピーされていないこと、さらに言い換えると、これからＣＡＷを実行する必要があることを示す。
【００６０】
具体的には、コピー処理部１１３は、ライトデータ「Ｄ」がライト面に書き込まれるときに、旧データ「Ｂ」を副ＶＯＬ１３１Ｂにコピーする代わりに、スロット１２０Ｂに対応するＣＡＷ属性５０６の値を、ＣＡＷが必要であることを示す値「１」に設定する。この時点で、旧データ「Ｂ」はまだ副ＶＯＬ１３１Ｂにコピーされていないため、トラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビットは、コピーを実行する必要があることを示す値「１」のままである。また、ペア作成後にライトデータ「Ｄ」の書き込みによってトラック６０１Ｂのデータが更新されたため、トラック６０１Ｂに対応する更新ＢＭＰ１１７Ｂのビットは、データが更新されたこと（すなわち、将来リストアが実行された場合に、その時点の正ＶＯＬ１３１Ａと同一のデータを副ＶＯＬ１３１Ｂに格納するために、トラック６０１Ｂの現データを副ＶＯＬ１３１Ｂにコピーする必要があること）を示す値「１」に設定される。
【００６１】
次に、ストレージシステム１００がホスト１４０からペア作成（リストア）コマンドを受信する。ペア作成（リストア）コマンドとは、ペア作成コマンドの一種であり、ペア１３２のリストア、すなわち、既に作成されているペア１３２の現時点（すなわち当該コマンド受信時）の正ＶＯＬのデータと同一のデータを副ＶＯＬに格納することを要求するコマンドである。図６（ｃ）には、例として、図６（ｂ）に示すように、正ＶＯＬ１３１Ａのトラック６０１Ａ〜６０１Ｃの旧データがいずれも副ＶＯＬ１３１Ｂにコピーされておらず、トラック６０１Ｂのデータが更新されている（すなわちトラック６０１Ｂの現データと旧データが異なっている）時点でペア作成（リストア）コマンドを受信したストレージシステム１００の処理（これをリストア処理とも記載する）を説明する。
【００６２】
ペア作成（リストア）コマンドを受信した時点のトラック６０１Ａの現データ「Ａ」は、当該ペア１３２Ａが新規作成された時点でもトラック６０１Ａの現データであった。言い換えると、データ「Ａ」は、ペア１３２Ａが新規作成された時点の正ＶＯＬ１３１Ａのスナップショットの構成要素であり、かつ、ペア１３２Ａがリストアされた時点の正ＶＯＬ１３１Ａのスナップショットの構成要素でもある。しかし、データ「Ａ」はまだ副ＶＯＬ１３１Ｂにコピーされていないため、トラック６０１Ａに対応するコピーＢＭＰ１１７Ａのビットは「１」が維持される。コピー処理部１１３は、このビットの値に従って、トラック６０１Ａの現データ「Ａ」を副ＶＯＬ１３１Ｂのトラック６０１Ｄにコピーする（図６（ｄ）、図７）。
【００６３】
ペア作成（リストア）コマンドを受信した時点のトラック６０１Ｂの旧データ「Ｂ」は、ペア１３２Ａが新規作成された時点の正ＶＯＬ１３１Ａのスナップショットの構成要素であった。このため、データ「Ｂ」を副ＶＯＬ１３１Ｂにコピーする必要があった。しかし、ペア１３２Ａがリストアされた結果、データ「Ｂ」は正ＶＯＬ１３１Ａのスナップショットの構成要素ではなくなった。したがって、図６（ｂ）及び（ｃ）に示すようにリストアの時点でまだデータ「Ｂ」が副ＶＯＬ１３１Ｂにコピーされていない場合、その後コピーしたとしても、本来のスナップショットの構成要素である現データ「Ｄ＋Ｂ」によって上書きされてしまうため、先にコピーされたデータ「Ｂ」が参照されることはない。このため、本実施例では、このような場合に旧データのコピーを省略することによって、データコピーの負荷を軽減し、処理時間を短時間化する。具体的には、コピー処理部１１３は、スロット１２０Ｂに対応するＣＡＷ属性５０６の値にかかわらず、コピーＢＭＰ１１７Ａのビットの値に従って、トラック６０１Ｂの現データ「Ｄ＋Ｂ」を副ＶＯＬ１３１Ｂのトラック６０１Ｅにコピーする（図６（ｄ）、図７）。
【００６４】
図６にはリストア時点でデータ「Ａ」、「Ｂ」及び「Ｃ」がいずれもコピーされていない例を示したが、後述するように、リストア時点でこれらのデータの少なくともいずれかのコピーが終了していることもあり得る。例えばデータ「Ａ」のコピーが終了している場合、リストア時点のトラック６０１Ａの現データ「Ａ」は既に副ＶＯＬ１３１Ｂにコピーされているため、さらにコピーを実行する必要はない。すなわち、トラック６０１Ａに対応するコピーＢＭＰ１１７Ａのビットは「０」であり、トラック６０１Ａが更新されていないため更新ＢＭＰ１１７Ｂのビットも「０」であり、トラック６０１Ａに対応するスロット１２０のＣＡＷ属性５０６も「０」である。
【００６５】
後述するように、ペア作成処理部１１２は、ペア１３２Ａのリストアを実行する時点で、各トラックのコピーＢＭＰ１１７Ａのビットと更新ＢＭＰ１１７Ｂのビットとの論理和をコピーＢＭＰ１１７Ａの当該ビットの新たな値として設定し、更新ＢＭＰ１１７Ｂの当該ビットを「０」に設定する。以下の説明において、このような処理をコピーＢＭＰと更新ＢＭＰのマージとも記載する。上記の例ではいずれのビットも「０」であるため、コピー処理部１１３は、マージ後のコピーＢＭＰ１１７Ａに従って、現データ「Ａ」のコピーを実行する必要がないと判定する。
【００６６】
一方、リストア時点でデータ「Ｂ」のコピーが終了している場合、リストア時点のトラック６０１Ｂの旧データ「Ｂ」は既に副ＶＯＬ１３１Ｂにコピーされている。このため、リストア直前の時点のトラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビット及びスロット１２０Ｂに対応するＣＡＷ属性５０６はいずれも「０」である。しかし、ペアの新規作成からリストアまでの間にトラック６０１Ｂが更新されているため、トラック６０１Ｂに対応する更新ＢＭＰ１１７Ｂのビットは「１」である。このため、マージによってトラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビットが「１」となり、トラック６０１Ｂの現データ「Ｄ＋Ｂ」が副ＶＯＬ１３１Ｂにコピーされる。
【００６７】
トラック６０１Ｃについて実行される処理は上記のトラック６０１Ａと同様であるため説明を省略する。
【００６８】
図６（ｄ）には、図６（ｃ）に示すリストアの後に、上記のトラック６０１Ａ〜６０１Ｃの現データコピーが全て終了した後の状態を示す。副ＶＯＬ１３１Ｂのトラック６０１Ｄ〜６０１Ｆには、それぞれ、リストア時点のトラック６０１Ａ〜６０１Ｃの現データである「Ａ」、「Ｄ＋Ｂ」及び「Ｃ」が格納され、トラック６０１Ａ〜６０１Ｃに対応するコピーＢＭＰ１１７Ａ及び更新ＢＭＰ１１７Ｂのビットはいずれも「０」、トラック６０１Ａ〜６０１Ｃのいずれに割り当てられたスロット１２０のＣＡＷ属性５０６も「０」となる。
【００６９】
図６には正ＶＯＬ１３１Ａのいずれのトラックの旧データのコピーも実行される前にリストア処理が実行される例を示したが、コピー処理部１１３は、必要に応じて、リストア処理が実行される前のいずれかの時点でＣＡＷを実行することもできる。例えば、キャッシュメモリ１１９の空き容量を増やすためにスロット１２０Ｂを解放する（すなわちトラック６０１Ｂへの割り当てを解除する）場合、コピー処理部１１３は、スロット１２０Ｂに格納されている旧データ、すなわちリード面に格納されているデータ「Ｂ」を副ＶＯＬ１３１Ｂにコピーする。詳細には、コピー処理部１１３は、トラック６０１Ｂに対応する副ＶＯＬのトラック６０１Ｅに割り当てられたキャッシュメモリ１１９のスロット１２０（例えば後述するスロット１２０Ｅ）のライト面にデータ「Ｂ」を格納する。さらに、Ｉ／Ｏ処理部１１４は、スロット１２０Ｂに格納されている現データ、すなわちライト面とリード面のデータをマージしたデータ「Ｄ＋Ｂ」をトラック６０１Ｂに格納する。その結果、スロット１２０Ｂのトラック６０１Ｂへの割り当てを解除し、新たに別のトラックに割り当てることが可能になる。
【００７０】
上記のようにＣＡＷが実行された場合、スロット１２０Ｂに対応するＣＡＷ属性５０６の値はＣＡＷを実行する必要がないことを示す値「０」に更新され、トラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビットはコピーを実行する必要がないことを示す値「０」に更新される。一方、トラック６０１Ｂの現データはまだ副ＶＯＬ１３１Ｂにコピーされていないため、トラック６０１Ｂに対応する更新ＢＭＰ１１７Ｂのビットは「１」のままである。
【００７１】
なお、図６（ｂ）に示す時点で、副ＶＯＬ１３１Ｂには正ＶＯＬ１３１Ａからコピーされたデータが格納されていない。この時点でホスト１４０から副ＶＯＬ１３１Ｂを対象とするリードコマンドを受信した場合、ストレージシステム１００は、必要なコピーを実行して、コピー後のデータを読み出して応答する。
【００７２】
例えば、図６（ｂ）に示す時点でトラック６０１Ａは更新されていない。この時点でストレージシステム１００がトラック６０１Ａに対応する副ＶＯＬ１３１Ｂのトラック６０１Ｄを対象とするリードコマンドを受信した場合、トラック６０１Ａに対応するコピーＢＭＰ１１７Ａのビットが「１」であるため、コピー処理部１１３がトラック６０１Ａの旧データ「Ａ」をトラック６０１Ｄにコピーする。その結果、トラック６０１Ａに対応するコピーＢＭＰ１１７Ａのビットが「０」に更新される。その後、Ｉ／Ｏ処理部１１４がトラック６０１Ｄからデータ「Ａ」を読み出してホスト１４０に応答する。トラック６０１Ｆに対するリードコマンドを受信した場合も、上記と同様の手順でデータ「Ｃ」がトラック６０１Ｃから６０１Ｆにコピーされ、ホスト１４０に応答される。
【００７３】
一方、図６（ｂ）に示す時点でストレージシステム１００がトラック６０１Ｂに対応する副ＶＯＬ１３１Ｂのトラック６０１Ｅを対象とするリードコマンドを受信した場合、トラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビットが「１」であるため、コピー処理部１１３がトラック６０１Ｂの旧データ「Ｂ」をトラック６０１Ｅにコピーする（図７参照）。その結果、トラック６０１Ｂに対応するコピーＢＭＰ１１７Ａのビットが「０」に更新される。さらに、上記のコピーがＣＡＷに相当するため、スロット１２０Ｂに対応するＣＡＷ属性５０６も「０」に更新される。その後、Ｉ／Ｏ処理部１１４がトラック６０１Ｅからデータ「Ｂ」を読み出してホスト１４０に応答する。
【００７４】
このように、ペア１３２Ａが新規に作成された後であれば、ホスト１４０は、物理的にはまだペア１３２Ａが作成された時点の正ＶＯＬ１３１Ａと同一のデータが副ＶＯＬ１３１Ｂに格納されていなくても、論理的には、ペア１３２Ａが作成された時点の正ＶＯＬ１３１Ａと同一のデータが格納された論理ボリュームとして（すなわちその時点の正ＶＯＬ１３１Ａのスナップショットとして）副ＶＯＬ１３１Ｂを使用することができる。
【００７５】
なお、上記の図６（ａ）の例ではペア作成（新規）コマンドが実行されているが、ペア１３２Ａが既に作成されており、図６（ａ）の時点でペア作成（リストア）コマンド又は後述するペア作成（ＦＲＲ）コマンド等が実行された場合も、その後、上記と同様の処理が実行される。
【００７６】
また、図６（ａ）の例ではコピー種別２０５が「ＮＯＣＯＰＹモード」のペアが作成された例を示したが、「ＣＯＰＹモード」のペアが作成された場合も上記と同様の処理が実行される。具体的には、「ＣＯＰＹモード」のペアが作成された場合、トラック６０１Ａ〜６０１Ｃの旧データコピーが順次実行されるが、リストアが実行された時点で旧データコピーが終了しているトラック及び終了していないトラックのそれぞれについて実行される処理は、上記の図６（ｂ）〜図６（ｃ）を参照して説明した通りである。
【００７７】
また、図６（ａ）の例ではペア種別２０４が「差分」のペアが作成された例を示したが、「通常」のペアが作成された場合も上記と同様の処理が実行される。具体的には、「通常」のペアが作成された場合、正ＶＯＬ１３１Ａに更新ＢＭＰ１１７Ｂが対応付けられない。このため、リストアを実行した時点（図６（ｃ））で、それまでに各トラックが更新されたか否かにかかわらず、正ＶＯＬ１３１Ａの全トラックに対応するコピーＢＭＰ１１７Ａの全ビットが「１」に設定される。その後、コピーＢＭＰ１１７Ａに従ってコピーが実行されることは既に説明した通りである。
【００７８】
図７は、本実施例のストレージシステム１００が実行する旧データコピー及び現データコピーの説明図である。
【００７９】
図７には、スロット１２０Ｂのリード面１２０Ｂ−ＲＤにデータ「Ｂ」が、スロット１２０Ｂのライト面１２０Ｂ−ＷＲの一部にデータ「Ｄ」が格納されている場合に実行される旧データコピー及び現データコピーの例を示す。この例において、スロット１２０Ｂは正ＶＯＬ１３１Ａのトラック６０１Ｂに割り当てられ、スロット１２０Ｅは副ＶＯＬ１３１Ｂのトラック６０１Ｅに割り当てられ、トラック６０１Ｅはトラック６０１Ｂに対応する（図６（ｂ）参照）。
【００８０】
図７（ａ）は、旧データコピーの説明図である。この例において、旧データはリード面１２０Ｂ−ＲＤに格納されたデータ「Ｂ」であるため、コピー処理部１１３は、データ「Ｂ」をスロット１２０Ｅのライト面１２０Ｅ−ＷＲにコピーする。ライト面１２０Ｅ−ＷＲに格納されたデータ「Ｂ」は、その後、トラック６０１Ｅに格納される。
【００８１】
図７（ｂ）は、現データコピーの説明図である。この例において、現データはライト面１２０Ｂ−ＷＲに格納されたデータ「Ｄ」とリード面１２０Ｂ−ＲＤに格納されたデータ「Ｂ」とをマージしたデータ「Ｄ＋Ｂ」であるため、コピー処理部１１３は、データ「Ｄ＋Ｂ」をスロット１２０Ｅのライト面１２０Ｅ−ＷＲにコピーする。ライト面１２０Ｅ−ＷＲに格納されたデータ「Ｄ＋Ｂ」は、その後、トラック６０１Ｅに格納される。
【００８２】
図８は、本実施例のストレージシステム１００が実行するリストア処理の手順の概要の説明図である。
【００８３】
図８には、例として、正ＶＯＬ１３１Ａのトラック６０１Ｂ、副ＶＯＬ１３１Ｂのトラック６０１Ｅ、並びに、トラック６０１Ｂに割り当てられたスロット１２０Ｂ、及びトラック６０１Ｅに割り当てられたスロット１２０Ｅの間のデータのコピー手順を、図６の例に沿って説明する。
【００８４】
スロット１２０Ｂのリード面にトラック６０１Ｂからデータ「Ｂ」がコピーされ、スロット１２０Ｂのライト面にホスト１４０からデータ「Ｄ」が書き込まれ（図６（ｂ））、リストアが実行されると（図６（ｃ））、スロット１２０Ｂに格納された現データ「Ｄ＋Ｂ」がスロット１２０Ｅのライト面にコピーされる（図６（ｄ））。スロット１２０Ｅのリード面にはトラック６０１Ｅからデータ「Ｙ」がコピーされているが、トラック６０１Ｅのデータ「Ｙ」はその後スロット１２０Ｅのライト面のデータ「Ｄ＋Ｂ」によって上書きされる。
【００８５】
図９は、本実施例のペア作成処理部１１２がペア作成（リストア）コマンドを受信したときに実行する処理のフローチャートである。
【００８６】
ペア作成処理部１１２は、ペア作成（リストア）コマンドを受信すると、コピーＢＭＰと更新ＢＭＰとをマージしたものを新たにコピーＢＭＰとして保持する（ステップ９０１）。この処理は、図６（ｃ）を参照して説明した通りである。
【００８７】
次に、ペア作成処理部１１２は、コピー処理を起動する（ステップ９０２）。コピー処理の詳細については後述する（図１０参照）。
【００８８】
次に、ペア作成処理部１１２は、ペア作成（リストア）コマンドに応答する（ステップ９０３）。
【００８９】
図１０は、本実施例のコピー処理部１１３が実行するコピー処理のフローチャートである。
【００９０】
図１０には、リストア処理を実行するペア作成処理部１１２によってコピー処理が起動された場合（ステップ９０２）に実行されるコピー処理を示す。
【００９１】
最初に、コピー処理部１１３は、コピーＢＭＰの先頭のビットを選択して、選択したビットがＯＮ（図３、図６等の例では「１」）であるか否かを判定する（ステップ１００１）。
【００９２】
ステップ１００１において選択したビットがＯＮであると判定した場合、当該ビットに対応するトラックについて、リストア時の正ＶＯＬのスナップショットを作成するために必要なコピーが実行されていないため、コピー処理部１１３は、選択したビットに対応する正ＶＯＬのトラックに割り当てられたスロットの現データを副ＶＯＬにコピーする（ステップ１００２）。この処理は、図６（ｃ）及び図６（ｄ）を参照して説明した通りである。コピー処理部１１３は、このコピーが終了した正ＶＯＬのトラックに対応するコピーＢＭＰのビットをＯＦＦに更新する。
【００９３】
次に、コピー処理部１１３は、当該スロットのＣＡＷ属性５０６がＯＮ（図５、図６等の例では「１」）であるか否かを判定し（ステップ１００３）、ＯＮである場合はそれをＯＦＦ（図５、図６等の例では「０」）に更新する（ステップ１００４）。
【００９４】
次に、コピー処理部１１３は、コピーＢＭＰの全ビットについて上記の処理が終了したか否かを判定し（ステップ１００５）、終了していない場合はコピーＢＭＰの次のビットを選択してステップ１００１に戻る。
【００９５】
ステップ１００１において選択したビットがＯＮでないと判定した場合、既に必要なコピーが終了しているため、コピー処理部１１３は、ステップ１００２〜１００４を実行せずに、ステップ１００５を実行する。
【００９６】
ステップ１００５において全ビットについて上記の処理が終了したと判定された場合、コピー処理部１１３はコピー処理を終了する。
【００９７】
上記はコピー種別２０５が「ＣＯＰＹモード」であるペア１３２についてリストアが要求された場合のコピー処理である。コピー種別２０５が「ＮＯＣＯＰＹモード」であるペア１３２についてリストアが要求された場合、コピー処理部１１３は、最初にコピーＢＭＰの先頭のビットを選択して、ステップ１００５で全ビットについて処理が終了するまでステップ１００１〜１００４を繰り返し実行する代わりに、所定のイベントが発生したトラック（例えば読み出しを要求された副ＶＯＬのトラックに対応する正ＶＯＬのトラック）について、ステップ１００１〜１００４を実行する。
【００９８】
図１１は、本実施例のストレージシステム１００が実行する差分モードのＦａｓｔ  Ｒｅｖｅｒｓｅ  Ｒｅｓｔｏｒｅ（ＦＲＲ）処理の概要の説明図である。
【００９９】
図１１（ａ）及び図１１（ｂ）の手順はそれぞれ図６（ａ）及び図６（ｂ）と同様であるため説明を省略する。
【０１００】
正ＶＯＬ１３１Ａ、副ＶＯＬ１３１Ｂ、コピーＢＭＰ１１７Ａ、更新ＢＭＰ１１７Ｂ、スロット１２０及びＣＡＷ属性５０６が図１１（ｂ）に示す状態となった後に、ストレージシステム１００がホスト１４０からペア作成（ＦＲＲ）コマンドを受信する。ペア作成（ＦＲＲ）コマンドとは、ペア作成コマンドの一種であり、ペア１３２のＦＲＲを要求するコマンドである。ＦＲＲとは、既に作成されているペア１３２の副ＶＯＬを新たな正ＶＯＬ、正ＶＯＬを新たな副ＶＯＬとし、現時点（すなわち当該コマンド受信時）の新たな正ＶＯＬのデータと同一のデータを副ＶＯＬに格納するする処理である。ここで、現時点の新たな正ＶＯＬのデータとは、当該新たな正ＶＯＬが論理的に保持しているデータ、すなわち、元の正ＶＯＬのスナップショットである。したがって、言い換えると、ＦＲＲとは、新たな副ＶＯＬのデータを、前回のペア作成時点の元の正ＶＯＬのデータと同一になるように復元する処理である。
【０１０１】
ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信すると、論理ボリューム１３１Ａを正ＶＯＬから副ＶＯＬに、論理ボリューム１３１Ｂを副ＶＯＬから正ＶＯＬにそれぞれ変更する。以下、論理ボリューム１３１Ａを旧正ＶＯＬ１３１Ａ又は新副ＶＯＬ１３１Ａとも記載し、論理ボリューム１３１Ｂを旧副ＶＯＬ１３１Ｂ又は新正ＶＯＬ１３１Ｂとも記載する。そして、ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信した時点の旧正ＶＯＬ１３１ＡのコピーＢＭＰ１１７Ａの各ビットを反転したものとその時点の旧正ＶＯＬ１３１Ａの更新ＢＭＰ１１７Ｂとの論理積を計算し、その結果を新正ＶＯＬ１３１ＢのコピーＢＭＰ１１７Ｃとして保持する（図１１（ｃ））。
【０１０２】
なお、図２を参照して説明したように、実際には正ＶＯＬ及び副ＶＯＬのいずれにも常に差分ＢＭＰ１１７が割り当てられており、正ＶＯＬの差分ＢＭＰ１１７に基づいて論理ボリューム１３１間のコピーが行われる。図１１には説明に必要な差分ＢＭＰ１１７を図示し、それ以外の差分ＢＭＰ１１７の図示を省略した。
【０１０３】
次に、コピー処理部１１３は、コピーＢＭＰ１１７Ｃに従って新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータのコピーを実行し、さらに、正ＶＯＬ１３１Ａに割り当てられたスロット１２０のうち、ＣＡＷ属性５０６が「１」であるスロット１２０のライト面のデータを破棄する（図１１（ｄ））。
【０１０４】
図１１の例では、ペア作成（ＦＲＲ）コマンドを受信した時点で、トラック６０１Ａ〜６０１Ｃに対応するコピーＢＭＰ１１７Ａの全ビットが「１」であり、トラック６０１Ｂに対応する更新ＢＭＰ１１７Ｂのビットが「０」である（図１１（ｂ））。このため、トラック６０１Ｄ〜６０１Ｆに対応するコピーＢＭＰ１１７Ｃの全ビットが「０」となる。
【０１０５】
図１１（ｂ）の時点で旧正ＶＯＬ１３１Ａのあるトラックに対応するコピーＢＭＰ１１７Ａのビットが「０」、更新ＢＭＰ１１７Ｂのビットが「１」、かつ、当該トラックに割り当てられたスロット１２０のＣＡＷ属性５０６が「０」である場合、当該トラックの旧データは既に旧副ＶＯＬ１３１Ｂの対応するトラックにコピーされ、その後当該トラックのデータが更新されたため、当該トラック又はそれに割り当てられたスロット１２０のいずれにも旧データが残っていない可能性がある。したがって、このようなトラックでは、ＦＲＲを実行するために、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータコピーを実行する必要がある。
【０１０６】
一方、図１１（ｂ）の時点で、対応するコピーＢＭＰ１１７Ａのビットが「１」である旧正ＶＯＬ１３１Ａのトラックでは、旧副ＶＯＬ１３１Ｂへの旧データのコピーがまだ行われていない。また、対応する更新ＢＭＰ１１７Ｂのビットが「０」である旧正ＶＯＬ１３１Ａのトラックにはまだ旧データが残っている。したがって、いずれの場合も、ＦＲＲを実行するために、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータコピーを実行する必要はない。
【０１０７】
しかし、当該トラックに割り当てられたスロット１２０のＣＡＷ属性５０６が「１」である場合、旧正ＶＯＬ１３１Ａの当該トラックの旧データがリード面に残っているものの、ライト面にも新しいデータが書き込まれているため、そのまま放置するとライト面のデータが当該トラックに反映され、旧データが失われる。このため、ライト面にデータが格納されている場合（すなわちＣＡＷ属性５０６が「１」である場合）にはそのデータが破棄される。
【０１０８】
上記のように、所定の条件下で、旧正ＶＯＬ１３１Ａから旧副ＶＯＬ１３１Ｂへの旧データのコピー、及びその旧データを新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａに戻すためのコピーをいずれも省略することによって、データコピーの負荷を軽減し、処理時間を短時間化することができる。
【０１０９】
図１１の例では、トラック６０１Ｄ〜６０１Ｆのいずれに対応するコピーＢＭＰのビットも「０」であるため、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータのコピーは実行されない。一方、新副ＶＯＬ１３１Ａのトラック６０１Ｂに対応するＣＡＷ属性５０６が「１」であるため、トラック６０１Ｂに割り当てられたスロット１２０Ｂのライト面のデータ「Ｄ」が破棄される。これによって、トラック６０１Ｂが現データ「Ｄ＋Ｂ」によって上書きされることがなくなり、旧データ「Ｂ」が残る。
【０１１０】
以上のように、ＦＲＲ処理の結果、新副ＶＯＬ１３１Ａに格納されたデータ「Ａ」、「Ｂ」及び「Ｃ」は、ペア作成（ＦＲＲ）コマンド受信の一つ前のペア作成コマンドを受信した時点の旧正ＶＯＬ１３１Ａに格納されたデータ「Ａ」、「Ｂ」及び「Ｃ」（図１１（ａ）参照）と同一になる。
【０１１１】
一方、ペア１３２Ａが新規に作成された図１１（ａ）の時点で、旧副ＶＯＬ１３１Ｂのデータは論理的には旧正ＶＯＬ１３１Ａと同一になっているが、旧正ＶＯＬ１３１Ａから旧副ＶＯＬ１３１Ｂへの旧データのコピーが実行される前の時点では、物理的には両者のデータが同一でない。この時点でペア作成（ＦＲＲ）コマンドが実行されると、その結果、図１１（ｄ）に示すように、新正ＶＯＬ１３１Ｂには旧正ＶＯＬ１３１Ａと異なるデータが格納されることになる。しかし、ペア作成（ＦＲＲ）コマンドは、新正ＶＯＬ１３１Ｂのデータを利用しない前提で使用されるため、問題は生じない。
【０１１２】
図１２は、本実施例のストレージシステム１００が実行するＦＲＲ処理の手順の概要の説明図である。
【０１１３】
図１２には、例として、新副ＶＯＬ１３１Ａのトラック６０１Ｂ、新正ＶＯＬ１３１Ｂのトラック６０１Ｅ、並びに、トラック６０１Ｂに割り当てられたスロット１２０Ｂ、及びトラック６０１Ｅに割り当てられたスロット１２０Ｅの間のデータのコピー手順を、図１１の例に沿って説明する。
【０１１４】
スロット１２０Ｂのリード面にトラック６０１Ｂからデータ「Ｂ」がコピーされ、スロット１２０Ｂのライト面にホスト１４０からデータ「Ｄ」が書き込まれ（図１１（ｂ））、ＦＲＲが実行されると（図１１（ｃ））、スロット１２０Ｂのライト面のデータ「Ｄ」が破棄され、スロット１２０Ｅからスロット１２０Ｂへのコピーは省略される。その結果、スロット１２０Ｅのリード面及びトラック６０１Ｂには旧データ「Ｂ」が残る。
【０１１５】
図１３は、本実施例のペア作成処理部１１２が差分モードのペアについてペア作成（ＦＲＲ）コマンドを受信したときに実行する処理のフローチャートである。
【０１１６】
ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信すると、対象となるペア１３２の正ＶＯＬを副ＶＯＬに、副ＶＯＬを正ＶＯＬに変更する（ステップ１３０１）。次に、ペア作成処理部１１２は、コピーＢＭＰの各ビットを反転させた値と、それぞれのビットに対応する更新ＢＭＰのビットとの論理積を計算し、計算された論理積の値を新正ＶＯＬのコピーＢＭＰとして保持する（ステップ１３０２）。これらの処理は、図１１（ｃ）を参照して説明した通りである。
【０１１７】
次に、ペア作成処理部１１２は、コピー処理を起動する（ステップ１３０５）。コピー処理の詳細については後述する（図１４参照）。
【０１１８】
次に、ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドに応答する（ステップ１３０６）。
【０１１９】
図１４は、本実施例のコピー処理部１１３が実行するコピー処理のフローチャートである。
【０１２０】
図１４には、ＦＲＲ処理を実行するペア作成処理部１１２によってコピー処理が起動された場合（ステップ１３０５）に実行されるコピー処理を示す。
【０１２１】
最初に、コピー処理部１１３は、正ＶＯＬのコピーＢＭＰの先頭のビットを選択して、選択したビットがＯＮであるか否かを判定する（ステップ１４０１）。ここで、正ＶＯＬとは、当該コピー処理が起動した時点の正ＶＯＬであり、図１１の例では新正ＶＯＬ１３１Ｂである。同様に、図１４の説明において副ＶＯＬとは、図１１の例では新副ＶＯＬ１３１Ａである。
【０１２２】
ステップ１４０１において選択したビットがＯＮであると判定した場合、コピー処理部１１３は、選択したビットに対応する正ＶＯＬのトラックの現データを副ＶＯＬにコピーする（ステップ１４０２）。コピー処理部１１３は、このコピーが終了した正ＶＯＬのトラックに対応するコピーＢＭＰのビットをＯＦＦに更新する。
【０１２３】
一方、ステップ１４０１において選択したビットがＯＮでないと判定した場合、コピー処理部１１３は、選択したビットに対応する正ＶＯＬのトラックに対応する副ＶＯＬのトラックに割り当てられたスロット１２０のＣＡＷ属性５０６がＯＮであるか否かを判定する（ステップ１４０３）。ステップ１４０３において当該スロット１２０のＣＡＷ属性５０６がＯＮであると判定した場合、コピー処理部１１３は、当該スロット１２０のライト面を破棄し（ステップ１４０４）、当該スロット１２０のＣＡＷ属性５０６をＯＦＦに変更する（ステップ１４０５）。上記のステップ１４０１〜１４０５の処理は、図１１（ｃ）及び図１１（ｄ）を参照して説明した通りである。
【０１２４】
ステップ１４０２の実行が終了したか、ステップ１４０５の実行が終了したか、又はステップ１４０３においてステップ１４０３において当該スロット１２０のＣＡＷ属性５０６がＯＮでないと判定した場合、コピー処理部１１３は、正ＶＯＬのコピーＢＭＰの全ビットについて上記の処理が終了したか否かを判定し（ステップ１４０６）、終了していない場合はコピーＢＭＰの次のビットを選択してステップ１４０１に戻る。
【０１２５】
ステップ１４０６において全ビットについて上記の処理が終了したと判定された場合、コピー処理部１１３はコピー処理を終了する。
【０１２６】
なお、コピー処理部１１３は、ステップ１４０２を実行した後、ステップ１４０６を実行する前に、図１０のステップ１００３及び１００４を実行してもよい。これによって、リストア処理から起動されるコピー処理も実行できる。
【０１２７】
上記はコピー種別２０５が「ＣＯＰＹモード」であるペア１３２についてＦＲＲが要求された場合のコピー処理である。コピー種別２０５が「ＮＯＣＯＰＹモード」であるペア１３２についてＦＲＲが要求された場合、コピー処理部１１３は、最初にコピーＢＭＰの先頭のビットを選択して、ステップ１４０６で全ビットについて処理が終了するまでステップ１４０１〜１４０５を繰り返し実行する代わりに、所定のイベントが発生したトラック（例えば読み出しを要求された新副ＶＯＬのトラックに対応する新正ＶＯＬのトラック）について、ステップ１４０１〜１４０５を実行する。
【０１２８】
図１５は、本実施例のストレージシステム１００が実行する通常モードのＦＲＲ処理の概要の説明図である。
【０１２９】
図１５（ａ）及び図１５（ｂ）の手順はそれぞれ、作成されたペア１３２Ａのペア種別２０４が「通常」である点を除いて、図１１（ａ）及び図１１（ｂ）と同様である。この場合、正ＶＯＬ１３１Ａには更新ＢＭＰ１１７Ｂが割り当てられないため、ペア作成後に更新されたトラックが記録されない。
【０１３０】
正ＶＯＬ１３１Ａ、副ＶＯＬ１３１Ｂ、コピーＢＭＰ１１７Ａ、スロット１２０及びＣＡＷ属性５０６が図１５（ｂ）に示す状態となった後に、ストレージシステム１００がホスト１４０からペア作成（ＦＲＲ）コマンドを受信する。
【０１３１】
ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信すると、論理ボリューム１３１Ａを正ＶＯＬから副ＶＯＬに、論理ボリューム１３１Ｂを副ＶＯＬから正ＶＯＬにそれぞれ変更する。そして、ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信した時点の旧正ＶＯＬ１３１ＡのコピーＢＭＰ１１７Ａの各ビットを反転したものを新正ＶＯＬ１３１ＢのコピーＢＭＰ１１７Ｃとして保持する（図１５（ｃ））。
【０１３２】
次に、コピー処理部１１３は、コピーＢＭＰ１１７Ｃに従って新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータのコピーを実行し、さらに、正ＶＯＬ１３１Ａに割り当てられたスロット１２０のうち、ＣＡＷ属性５０６が「１」であるスロット１２０のライト面のデータを破棄する（図１５（ｄ））。
【０１３３】
図１５の例では、ペア作成（ＦＲＲ）コマンドを受信した時点で、トラック６０１Ａ〜６０１Ｃに対応するコピーＢＭＰ１１７Ａの全ビットが「１」である（図１５（ｂ））。このため、トラック６０１Ｄ〜６０１Ｆに対応するコピーＢＭＰ１１７Ｃの全ビットが「０」となる。
【０１３４】
図１５（ｂ）の時点で旧正ＶＯＬ１３１Ａのあるトラックに対応するコピーＢＭＰ１１７Ａのビットが「０」、かつ、当該トラックに割り当てられたスロット１２０のＣＡＷ属性５０６が「０」である場合、当該トラックの旧データは既に旧副ＶＯＬ１３１Ｂの対応するトラックにコピーされている。この例では更新ＢＭＰがないため、その後当該トラックのデータが更新されたか否かはわからない。このため、既に更新された結果、当該トラック又はそれに割り当てられたスロット１２０のいずれにも旧データが残っていない可能性がある。したがって、このようなトラックでは、ＦＲＲを実行するために、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータコピーを実行する必要がある。
【０１３５】
一方、図１５（ｂ）の時点で、対応するコピーＢＭＰ１１７Ａのビットが「１」である旧正ＶＯＬ１３１Ａのトラックでは、旧副ＶＯＬ１３１Ｂへの旧データのコピーがまだ行われていない。したがって、この場合、ＦＲＲを実行するために、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータコピーを実行する必要はない。
【０１３６】
しかし、当該トラックに割り当てられたスロット１２０のＣＡＷ属性５０６が「１」である場合、旧正ＶＯＬ１３１Ａの当該トラックの旧データがリード面に残っているものの、ライト面にもデータが書き込まれているため、そのまま放置するとライト面のデータが当該トラックに反映され、旧データが失われる。このため、ライト面にデータが格納されている場合（すなわちＣＡＷ属性５０６が「１」である場合）にはそのデータが破棄される。
【０１３７】
上記のように、所定の条件下で、旧正ＶＯＬ１３１Ａから旧副ＶＯＬ１３１Ｂへの旧データのコピー、及びその旧データを新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａに戻すためのコピーをいずれも省略することによって、データコピーの負荷を軽減し、処理時間を短時間化することができる。
【０１３８】
図１５の例では、トラック６０１Ｄ〜６０１Ｆのいずれに対応するコピーＢＭＰのビットも「０」であるため、新正ＶＯＬ１３１Ｂから新副ＶＯＬ１３１Ａへのデータのコピーは実行されない。一方、新副ＶＯＬ１３１Ａのトラック６０１Ｂに対応するＣＡＷ属性５０６が「１」であるため、トラック６０１Ｂに割り当てられたスロット１２０Ｂのライト面のデータ「Ｄ」が破棄される。これによって、トラック６０１Ｂが現データ「Ｄ＋Ｂ」によって上書きされることがなくなり、旧データ「Ｂ」が残る。
【０１３９】
以上のように、ＦＲＲ処理の結果、新副ＶＯＬ１３１Ａに格納されたデータ「Ａ」、「Ｂ」及び「Ｃ」は、ペア作成（ＦＲＲ）コマンド受信の一つ前のペア作成コマンドを受信した時点の旧正ＶＯＬ１３１Ａに格納されたデータ「Ａ」、「Ｂ」及び「Ｃ」（図１５（ａ）参照）と同一になる。
【０１４０】
通常モードのＦＲＲ処理におけるデータのコピー手順は、差分モードのＦＲＲ処理における手順（図１２参照）と同様であるため、説明を省略する。
【０１４１】
図１６は、本実施例のペア作成処理部１１２が通常モードのペアについてペア作成（ＦＲＲ）コマンドを受信したときに実行する処理のフローチャートである。
【０１４２】
ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドを受信すると、対象となるペア１３２の正ＶＯＬを副ＶＯＬに、副ＶＯＬを正ＶＯＬに変更する（ステップ１６０１）。次に、ペア作成処理部１１２は、コピーＢＭＰの各ビットを反転させたものを新正ＶＯＬのコピーＢＭＰとして保持する（ステップ１６０２）。
【０１４３】
次に、ペア作成処理部１１２は、コピー処理を起動する（ステップ１６０３）。ここで起動するコピー処理は、差分モードのＦＲＲ処理において起動されるもの（図１４参照）と同様であるため、説明を省略する。
【０１４４】
次に、ペア作成処理部１１２は、ペア作成（ＦＲＲ）コマンドに応答する（ステップ１６０４）。
【０１４５】
図１７は、本実施例のＩ／Ｏ処理部１１４がライトコマンドを受信したときに実行するＩ／Ｏ処理（以下、単にライト処理とも記載する）の説明図である。
【０１４６】
最初にストレージシステム１００がホスト１４０からライトコマンドを受信すると（１）、Ｉ／Ｏ処理部１１４は、ＣＡＷに対応可能な場合には書き込み対象のトラックに割り当てられたスロット１２０Ｂ（すなわち正側のスロット）に対応するスロット管理情報１１８のＣＡＷ属性５０６をＯＮする（すなわち「１」にする）。次に、Ｉ／Ｏ処理部１１４は、ライトデータを受領し、書き込み対象のトラックに割り当てられたスロットのライト面１２０Ｂ−ＷＲに書き込み（３）、ホスト１４０に応答する（４）。
【０１４７】
その後、コピー処理部１１３が正側のスロットのリード面１２０Ｂ−ＲＤのデータを副側のスロットのライト面１２０Ｅ−ＷＲにコピーし（５）、正側のスロット１２０Ｂに対応するＣＡＷ属性５０６をＯＦＦする（すなわち「０」にする）。
【０１４８】
図１８から図２１は、本実施例のＩ／Ｏ処理部１１４が実行するライト処理のフローチャートである。
【０１４９】
Ｉ／Ｏ処理部１１４は、ホスト１４０からライトコマンドを受けると、コピーの要否を判定する（ステップ１８０１）。具体的には、Ｉ／Ｏ処理部１１４は、ライトコマンドによって指定された書き込み対象のトラックに対応するコピーＢＭＰのビットがＯＮであればコピーが必要であると判定する。
【０１５０】
ステップ１８０１においてコピーが必要であると判定された場合、Ｉ／Ｏ処理部１１４は、書き込み対象のトラックに割り当てられたスロット１２０のＣＡＷ属性５０６がＯＮであるか否かを判定する（ステップ１８０２）。
【０１５１】
ステップ１８０２においてＣＡＷ属性５０６がＯＮでないと判定された場合、Ｉ／Ｏ処理部１１４は、書き込み対象のトラックに割り当てられたスロット１２０の状態がホストダーティであるか否かを判定する（ステップ１８０３）。
【０１５２】
ステップ１８０３においてスロット１２０の状態がホストダーティでないと判定された場合、ＣＡＷが実行される。具体的には、スロット１２０の状態がクリーンである場合、ライト面、リード面ともにデータが格納されていない状態であるため、ＣＡＷが実行される。スロット１２０の状態が物理ダーティである場合、ライト面にデータがなく、リード面だけにデータが格納されている状態であるため、コピー対象はリード面に格納された旧データであり、ＣＡＷが実行される。
【０１５３】
したがって、Ｉ／Ｏ処理部１１４は、当該スロット１２０のＣＡＷ属性５０６をＯＮし（ステップ１８０４）、ライトデータを当該スロット１２０のライト面に書き込み（ステップ１９０１）、コピーを起動し（ステップ１９０２）、このコピーが終了したか否かにかかわらず、ホストに書き込み処理の完了を応答する（ステップ１９０３）。
【０１５４】
ステップ１９０２で起動されたコピー処理部１１３は、旧データコピーを実行し（ステップ１９０４）、書き込み対象のトラックに対応するコピーＢＭＰのビットをＯＦＦし（ステップ１９０５）、当該トラックに割り当てられたスロット１２０のＣＡＷ属性５０６をＯＦＦする（ステップ１９０６）。ただし、図６〜図１０を参照して説明したように、ステップ１９０４〜１９０６は、その実行が保留されている間に次のペア作成（リストア）コマンドを受けた場合には省略される。
【０１５５】
ステップ１８０３においてスロット１２０の状態がホストダーティであると判定された場合、正ＶＯＬからのコピー対象は現データであるが、現データがまだコピーされていないため、ライト面にさらに新しいデータを書き込むとコピーすべき現データが失われる。これを防ぐため、現データコピーを行ってからライト面に新しいデータを書き込む処理（すなわちＣｏＷ）が実行される。したがって、Ｉ／Ｏ処理部１１４は、コピーを起動する（ステップ２００１）。起動されたコピー処理部１１３は、旧データコピーを実行し（ステップ２００２）、書き込み対象のトラックに対応するコピーＢＭＰのビットをＯＦＦする（ステップ２００３）。
【０１５６】
ステップ２００３が終了すると、Ｉ／Ｏ処理部１１４は、ライトデータを書き込み対象のトラックに対応するスロット１２０のライト面に書き込み（ステップ２００４）、ホストに書き込み処理の完了を応答する（ステップ２００５）。
【０１５７】
ステップ１８０２においてＣＡＷ属性５０６がＯＮであると判定された場合、正ＶＯＬからのコピー対象はリード面に格納された旧データであるため、仮にライト面に既にデータが格納されていてもそれはコピー対象ではないためそのまま上書きすることができる。このため、データのコピーを伴わない書き込み処理が行われる。すなわち、Ｉ／Ｏ処理部１１４は、ライトデータを書き込み対象のトラックに対応するスロット１２０のライト面に書き込み（ステップ２１０１）、ホストに書き込み処理の完了を応答する（ステップ２１０２）。
【０１５８】
ステップ１８０１においてコピーが必要でないと判定された場合も、同様にデータのコピーを伴わない書き込み処理が行われる（ステップ２１０１、２１０２）。
【０１５９】
以上のように、本実施例によれば、ペアが作成された後、旧データの正ＶＯＬから副ＶＯＬへのコピーを保留している間に次回のペア作成（リストア又はＦＲＲ）が実行された場合、当該保留していた旧データのコピーを省略することによって、ストレージシステムの処理負荷を軽減し、処理時間を短時間化することができる。その後、必要に応じて、リストアの場合は現データのコピー、ＦＲＲの場合は現データのコピー又はライト面のデータの破棄等を実行することによって、所望のペア作成処理を実現することができる。
【０１６０】
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０１６１】
上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【０１６２】
また、図面には、実施例を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【図１】
2016079804.tif 000003
【図２】
2016079804.tif 000004
【図３】
2016079804.tif 000005
【図４】
2016079804.tif 000006
【図５】
2016079804.tif 000007
【図６】
2016079804.tif 000008
【図７】
2016079804.tif 000009
【図８】
2016079804.tif 000010
【図９】
2016079804.tif 000011
【図１０】
2016079804.tif 000012
【図１１】
2016079804.tif 000013
【図１２】
2016079804.tif 000014
【図１３】
2016079804.tif 000015
【図１４】
2016079804.tif 000016
【図１５】
2016079804.tif 000017
【図１６】
2016079804.tif 000018
【図１７】
2016079804.tif 000019
【図１８】
2016079804.tif 000020
【図１９】
2016079804.tif 000021
【図２０】
2016079804.tif 000022
【図２１】
2016079804.tif 000023
【国際調査報告】
2016079804.tif 000024
2016079804.tif 000025