(57)【特許請求の範囲】
【請求項１】
上位装置から送信されたＩ／Ｏコマンドを受信する複数のコントロールモジュールと、
前記上位装置からのＩ／Ｏコマンドに従うデータを記憶する複数のストレージデバイスと、
前記複数のストレージデバイス又は他種の不揮発性のストレージデバイスである不揮発性の記憶資源と
を備え、
各コントロールモジュールは、キャッシュメモリと、コントロールユニットとを備え、前記コントロールユニットが、前記上位装置からのＩ／Ｏコマンドに従うデータを前記キャッシュメモリに書き込み、前記キャッシュメモリに書込まれたデータを前記複数のストレージデバイスのうちの少なくとも一つに書込む、或いは、そのデータを前記上位装置に送信し、
前記複数のコントロールモジュールのうちの第一のコントロールモジュール内の第一のコントロールユニットが前記上位装置からライトコマンドを受けた場合、且つ、キャッシュメモリの記憶容量に対しストレージデバイスに未だ書込まれていないダーティデータ要素の総量の割合である消費割合について、前記第一のコントロールモジュール内の第一のキャッシュメモリの消費割合が閾値割合以上である場合、前記第一のコントロールユニットが、前記第一のキャッシュメモリに記憶されている複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピーを、前記複数のコントロールモジュールのうちの第二のコントロールモジュール内の第二のコントロールユニットに命令し、
前記第二のコントロールユニットが、前記コピーの命令に応答して、前記第二のコントロールモジュール内の第二のキャッシュメモリに前記一以上のダーティデータ要素を書き込み、一次電源からの給電に代わりバッテリからの給電を受けた場合、その一以上のダーティデータ要素を前記第二のキャッシュメモリから前記不揮発性の記憶資源にバックアップし、
前記第一のコントロールユニットが、前記一次電源からの給電に代わり前記バッテリからの給電を受けた場合、前記複数のダーティデータ要素のうちのコピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素を前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップする、
ストレージシステム。
【請求項２】
前記複数のコントロールモジュールのそれぞれの電源である複数の電源モジュールを更に備え、
前記第二のコントロールモジュールの数は前記第一のコントロールモジュールの数以上であり、一つの第一のコントロールモジュールに対して一以上の第二のコントロールモジュールがあり、
前記不揮発性の記憶資源は、前記複数のコントロールモジュールがそれぞれ備える複数の不揮発性のメモリモジュールであり、
前記各コントロールモジュールが、前記キャッシュメモリと前記コントロールユニットを通信可能に接続する接続ユニットを更に備え、
接続ユニット同士の接続によりコントロールモジュール同士が接続されており、
各電源モジュールは、前記バッテリと前記一次電源とを含み、
前記一次電源は、前記キャッシュメモリ及び前記コントロールユニットに給電し、前記一次電源からの給電が無くなった場合に、前記バッテリが、前記キャッシュメモリ及び前記コントロールユニットに給電し、
前記第一のコントロールユニットは、前記一次電源からの給電がある間、前記上位装置からＩ／Ｏコマンドを受け付けており、受けたＩ／Ｏコマンドがライトコマンドの場合、ライトコマンドに従うデータ要素を前記第一のキャッシュメモリに書き込み、前記第一のキャッシュメモリのどのキャッシュ領域にあるダーティデータ要素がどのコントロールモジュールにコピーされたかを表す管理情報を作成して前記第一のキャッシュメモリに書き込み、前記複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピーの命令を、前記第一のコントロールモジュールが有する第一の接続ユニットと前記第二のコントロールモジュールが有する第二の接続ユニットとを含んだ二以上の接続ユニットを介して、前記第二のコントロールユニットに送信した後、一以上のライトコマンドに従う複数のデータ要素が前記第一のキャッシュメモリに書き込まれたことにより新たな複数のダーティデータ要素が前記第一のキャッシュメモリに存在する場合、前記新たな複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピー命令を、前記二以上の接続ユニットを経由して前記第二のコントロールユニットに更に送信し、ダーティデータ要素のコピーの完了に応じて前記管理情報を更新し、
前記第二のコントロールユニットが、前記一次電源からの給電が無くなって前記バッテリからの給電を受けている間に、前記第二のキャッシュメモリに書込まれたダーティデータ要素を、前記第二のコントロールモジュールが備える第二の前記不揮発性のメモリモジュールにバックアップし、給電が再開された場合に、前記第二の不揮発性のメモリモジュールから前記第二のキャッシュメモリにダーティデータ要素をステージングし、それと並行して、ステージングされたダーティデータ要素のコピーの命令を前記二以上の接続ユニットを介して前記第一のコントロールユニットに送信し、
前記第一のコントロールユニットが、前記一次電源からの給電が無くなって前記バッテリからの給電を受けている間に、コピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素と前記管理情報とを、前記第一のキャッシュメモリから、前記第一のコントロールモジュールが備える第一の前記不揮発性のメモリモジュールにバックアップし、給電が再開された場合に、前記第一の不揮発性メモリモジュールから前記第一のキャッシュメモリに前記管理情報とダーティデータ要素とをステージングし、且つ、前記第二のキャッシュメモリにステージングされたダーティデータ要素を前記コピーの命令に応答して前記第一のキャッシュメモリに書込む、
請求項１記載のストレージシステム。
【請求項３】
キャッシュメモリの記憶容量に対するダーティデータ要素の総量の割合である消費割合が第一の規定割合以上であるキャッシュメモリを有するコントロールモジュールが前記第一のコントロールモジュールとなり、
前記消費割合が第二の規定割合未満であるキャッシュメモリを有するコントロールモジュールが前記第二のコントロールモジュールとなる、
請求項２記載のストレージシステム。
【請求項４】
前記第一のコントロールユニットが、前記上位装置からライトコマンドを受けた場合、前記第一のキャッシュメモリの消費割合が第三の規定割合以上であれば、そのライトコマンドに従う一以上のデータ要素を、他のコントロールモジュール内の接続ユニットと前記第一の接続ユニットを含む二以上の接続ユニットを介して、前記他のコントロールモジュールに送り、前記他のコントロールモジュール内の他のコントロールユニットが、その一以上のデータ要素を、前記他のコントロールモジュール内のキャッシュメモリに書込む、
請求項２記載のストレージシステム。
【請求項５】
前記複数のストレージデバイスのうちの各二以上のストレージデバイスが各コントロールモジュールに割当てられており、
前記各二以上のストレージデバイスを基に各論理ボリュームが形成されており、各論理ボリュームは、前記各コントロールモジュールが担当する論理ボリュームであり、
前記第一のコントロールユニットが、前記上位装置からライトコマンドを受けた場合、そのライトコマンドで指定されている自身の担当論理ボリュームの空き状況が所定の状況より悪ければ、そのライトコマンドに従う一以上のデータ要素を、他のコントロールモジュール内の接続ユニットと前記第一の接続ユニットを含む二以上の接続ユニットを介して、前記他のコントロールモジュールに送り、前記他のコントロールモジュール内の他のコントロールユニットが、その一以上のデータ要素を、前記他のコントロールモジュール内のキャッシュメモリに書込み、そのキャッシュメモリに書込まれた一以上のデータ要素を、前記他のコントロールモジュールの担当論理ボリュームに書込む、
請求項２記載のストレージシステム。
【請求項６】
前記一次電源と前記バッテリとを含んだ電源モジュールを更に備え、
第一のコントロールユニットが、前記一次電源からの給電を受けている間に、前記一以上のダーティデータ要素のコピーの命令を送信し、前記一次電源からの給電が無くなり前記バッテリからの給電を受けた場合には、前記コピーの命令を送信せず、前記複数のダーティデータ要素のうちのコピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素を前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップする、
請求項１記載のストレージシステム。
【請求項７】
前記電源モジュールが複数個あり、前記複数の電源モジュールは、前記複数のコントロールモジュールのそれぞれの電源である、
請求項６記載のストレージシステム。
【請求項８】
キャッシュメモリの記憶容量に対するダーティデータ要素の総量の割合である消費割合が第一の規定割合以上であるキャッシュメモリを有するコントロールモジュールが前記第一のコントロールモジュールとなり、
前記消費割合が第二の規定割合未満であるキャッシュメモリを有するコントロールモジュールが前記第二のコントロールモジュールとなり、
前記第二のコントロールモジュールの数は前記第一のコントロールモジュールの数以上であり、一つの第一のコントロールモジュールに対して一以上の第二のコントロールモジュールがある、
請求項１記載のストレージシステム。
【請求項９】
前記各コントロールモジュールが、前記キャッシュメモリと前記コントロールユニットを通信可能に接続する接続ユニットを更に備え、
接続ユニット同士の接続により、コントロールモジュール同士が接続されている、
請求項１記載のストレージシステム。
【請求項１０】
前記第一のコントロールユニットが、前記上位装置からライトコマンドを受けた場合、前記第一のキャッシュメモリの消費割合が第三の規定割合以上であれば、そのライトコマンドに従う一以上のデータ要素を、他のコントロールモジュール内の接続ユニットと前記第一の接続ユニットを含む二以上の接続ユニットを介して、前記他のコントロールモジュールに送り、前記他のコントロールモジュール内の他のコントロールユニットが、その一以上のデータ要素を、前記他のコントロールモジュール内のキャッシュメモリに書込む、
請求項９記載のストレージシステム。
【請求項１１】
前記複数のストレージデバイスのうちの各二以上のストレージデバイスが各コントロールモジュールに割当てられており、
前記各二以上のストレージデバイスを基に各論理ボリュームが形成されており、各論理ボリュームは、前記各コントロールモジュールが担当する論理ボリュームであり、
前記第一のコントロールユニットが、前記上位装置からライトコマンドを受けた場合、そのライトコマンドで指定されている自身の担当論理ボリュームの空き状況が所定の状況より悪ければ、そのライトコマンドに従う一以上のデータ要素を、他のコントロールモジュール内の接続ユニットと前記第一の接続ユニットを含む二以上の接続ユニットを介して、前記他のコントロールモジュールに送り、前記他のコントロールモジュール内の他のコントロールユニットが、その一以上のデータ要素を、前記他のコントロールモジュール内のキャッシュメモリに書込み、そのキャッシュメモリに書込まれた一以上のデータ要素を、前記他のコントロールモジュールの担当論理ボリュームに書込む、
請求項９記載のストレージシステム。
【請求項１２】
前記第一のコントロールユニットは、前記第一のキャッシュメモリのどのキャッシュ領域にあるダーティデータ要素がどのコントロールモジュールにコピーされたかを表す管理情報を作成して前記第一のキャッシュメモリに書き込み、ダーティデータ要素のコピーの完了に応じて前記管理情報を更新し、コピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素と前記管理情報とを、前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップする、
請求項１記載のストレージシステム。
【請求項１３】
前記第一のコントロールユニットは、前記上位装置からＩ／Ｏコマンドを受け付けており、受けたＩ／Ｏコマンドがライトコマンドの場合、ライトコマンドに従うデータ要素を前記第一のキャッシュメモリに書き込み、前記一以上のダーティデータ要素のコピー命令を送信した後、一以上のライトコマンドに従う複数のデータ要素が前記第一のキャッシュメモリに書き込まれたことにより新たな複数のダーティデータ要素が前記第一のキャッシュメモリに存在する場合、前記新たな複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピーの命令を前記第二のコントロールモジュールに更に送信する、
請求項１２記載のストレージシステム。
【請求項１４】
前記第二のコントロールユニットが、前記第二のキャッシュメモリにコピーされたダーティデータ要素を前記不揮発性の記憶資源にバックアップし、前記不揮発性の記憶資源から前記第二のキャッシュメモリにダーティデータ要素をステージングし、それと並行して、ステージングされたダーティデータ要素のコピーの命令を前記第一のコントロールモジュールに送信し、
前記第一のコントロールユニットが、前記不揮発性の記憶資源から前記第一のキャッシュメモリに前記管理情報及びダーティデータ要素をステージングし、前記コピーの命令に応答して、前記第二のコントロールモジュールからのダーティデータ要素を前記第一のキャッシュメモリに書込む、
請求項１２記載のストレージシステム。
【請求項１５】
前記第一のコントロールユニットが、前記複数のダーティデータ要素を、前記第一のコントロールモジュールの数とその第一のコントロールモジュールに対する一以上の第二のコントロールモジュールの数との合計に応じて均等に分割する、
請求項２記載のストレージシステム。
【請求項１６】
上位装置からのデータをキャッシュメモリに一時保存した後にそのデータをストレージデバイスに書込むストレージシステムで行われる、キャッシュメモリに記憶されているデータをバックアップする方法であって、
複数のキャッシュメモリをそれぞれ備える複数のコントロールモジュールのうちの第一のコントロールモジュールが前記上位装置からライトコマンドを受けた場合、且つ、キャッシュメモリの記憶容量に対しストレージデバイスに未だ書込まれていないダーティデータ要素の総量の割合である消費割合について、前記第一のコントロールモジュール内の第一のキャッシュメモリの消費割合が閾値割合以上である場合、前記第一のキャッシュメモリに記憶されている複数のダーティデータ要素のうちの一以上のダーティデータ要素を、前記複数のコントロールモジュールのうちの第二のコントロールモジュール内の第二のキャッシュメモリにコピーし、
一次電源からの給電に代わりバッテリからの給電を受けた場合、前記第二のキャッシュメモリから、ストレージデバイス又は他種の不揮発性のストレージデバイスである前記不揮発性の記憶資源に、前記一以上のダーティデータ要素をバックアップし、
前記一次電源からの給電に代わり前記バッテリからの給電を受けた場合、前記複数のダーティデータ要素のうちのコピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素を、前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップする、
方法。
【請求項１７】
前記一以上のダーティデータ要素を前記第二のキャッシュメモリにコピーすることを、前記一次電源からの給電がある間に行っておき、前記一次電源からの給電がなくなって前記バッテリからの給電を受けた場合に、コピーが完了した前記一以上のダーティデータ要素以外のダーティデータ要素を前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップすること、並びに、コピーが完了した一以上のダーティデータ要素を前記第二のキャッシュメモリから前記不揮発性の記憶資源にバックアップすることを行う、
請求項１６記載の方法。
【請求項１８】
前記バッテリが消耗した後、給電が再開されたならば、前記不揮発性の記憶資源から前記第一のキャッシュメモリにダーティデータ要素をステージングすることと、前記不揮発性の記憶資源から前記第二のキャッシュメモリにダーティデータ要素をステージングしそれと並行してそのダーティデータ要素を前記第二のキャッシュメモリから前記第一のキャッシュメモリにコピーすることとを行う、
請求項１７記載の方法。
【請求項１９】
前記第一のコントロールモジュールが、前記第一のキャッシュメモリのどのキャッシュ領域にあるダーティデータ要素がどのコントロールモジュールのキャッシュメモリにコピーされたかを表す管理情報を作成して前記第一のキャッシュメモリに書き込み、ダーティデータ要素のコピーの完了に応じて前記管理情報を更新し、バックアップの際には、ダーティデータ要素に加えて前記管理情報を前記第一のキャッシュメモリから前記不揮発性の記憶資源にバックアップし、給電が再開した場合には、ダーティデータ要素に加えて前記管理情報を前記不揮発性の記憶資源から前記第一のキャッシュメモリにステージングする、
請求項１８記載の方法。
【請求項２０】
前記複数のダーティデータ要素を、前記第一のコントロールモジュールの数とその第一のコントロールモジュールに対する一以上の第二のコントロールモジュールの数との合計に応じて均等に分割する、
請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム内のキャッシュメモリに記憶されているデータのバックアップに関する。
【背景技術】
【０００２】
キャッシュメモリに記憶されているデータのバックアップに関する技術として、例えば、特許文献１に開示の技術が知られている。特許文献１によれば、ディスクにまだ保存されていないデータがキャッシュメモリに存在する状態で外部からの電源が遮断された場合、バッテリからの給電がある間に、キャッシュメモリ上のデータが不揮発性メモリにコピーされる。コピー完了後も、バッテリからキャッシュメモリへの給電が継続される。外部からの電源供給が再開した場合、バッテリからの給電が続いていれば、キャッシュメモリに記憶されているデータが使用され、バッテリが消耗してしまっていれば、不揮発性メモリからキャッシュメモリにデータが復元される。
【０００３】
【特許文献１】特開２００２−９９３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、キャッシュメモリを構成するメモリチップ単体の容量の増加やストレージシステムの高性能化等の理由により、キャッシュメモリの記憶容量は増加している。そのため、システムダウンタイムが長くなることが懸念される。「システムダウンタイム」とは、ストレージシステムが上位装置（例えばホスト計算機）からＩ／Ｏコマンドの受け付けを停止してからそれを再開するまでの時間長のことである。或る時点（例えば、停電等によって一次電源からキャッシュメモリに給電されなくなった電源遮断時）から開始されたシステムダウンタイムの終了時を、不揮発性の記憶資源からキャッシュメモリにデータを戻すことが終了した時点と仮定した場合、その戻しに要する時間長（以下、便宜上、不揮発性の記憶資源からキャッシュメモリにデータを戻すことを「ステージング」と言い、その戻しに要する時間長を「ステージング時間長」と言う）が、システムダウンタイムの長さに影響する。上述したように、キャッシュメモリの記憶容量が増加しているため、ステージングされるデータの量が多くなり、故に、ステージング時間長が長くなる。そうすると、それに伴って、システムダウンタイムも長くなる。一般に、ユーザの業務に悪影響を与えない等の理由から２４時間／３６５日無停止であることがストレージシステムに求められているので、システムダウンタイムが長くなってしまうことは問題である。
【０００５】
従って、本発明の目的は、不揮発性の記憶資源からキャッシュメモリにデータを戻すのに要する時間長を短縮することにある。
【０００６】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
ストレージシステムに、複数のキャッシュメモリをそれぞれ備えた複数のコントロールモジュールを備える。第一のコントロールモジュール内の第一のキャッシュメモリに記憶されている複数のダーティデータ要素（ストレージデバイスに未反映のデータ要素）のうちの一以上のダーティデータ要素を、第二のコントロールモジュール内の第二のキャッシュメモリにコピーする。第二のキャッシュメモリに記憶された一以上のダーティデータ要素を不揮発性の記憶資源にバックアップされる。第一のキャッシュメモリから不揮発性の記憶資源にバックアップするダーティデータ要素は、複数のダーティデータ要素のうちのコピーが完了した上記一以上のダーティデータ要素以外のダーティデータ要素である。
【発明を実施するための最良の形態】
【０００８】
実施形態１では、ストレージシステムが、複数のストレージデバイスの他に、複数のキャッシュメモリと複数のコントロールユニットとをそれぞれ備えた複数のコントロールモジュールを備える。ストレージシステムが、第一のコントロールモジュール内の第一のキャッシュメモリに記憶されている複数のダーティデータ要素（ストレージデバイスに未だ書込まれていないデータ要素）のうちの一以上のダーティデータ要素を、第二のコントロールモジュール内の第二のキャッシュメモリにコピーする。第二のキャッシュメモリからそれらの一以上のダーティデータ要素が不揮発性の記憶資源にバックアップされ、それらの一以上のダーティデータ要素以外のダーティデータ要素が、第一のキャッシュメモリから不揮発性の記憶資源にバックアップされる。
【０００９】
実施形態２では、一以上のダーティデータ要素を第二のキャッシュメモリにコピーすることを、一次電源からの給電がある間に行っておく。一次電源からの給電がなくなってバッテリからの給電を受けた場合に、前述したそれぞれのバックアップを行う。
【００１０】
実施形態３では、実施形態２において、バッテリが消耗した後（例えば、バッテリからの給電がなくなった、又は、放電電圧が所定の閾値を下回った）、停電等から回復して給電が再開されたならば、ストレージシステムが、不揮発性の記憶資源から第一のキャッシュメモリにダーティデータ要素をステージングすることと、不揮発性の記憶資源から第二のキャッシュメモリにダーティデータ要素をステージングしそれと並行してそのダーティデータ要素を第二のキャッシュメモリから第一のキャッシュメモリにコピーすることとを行う。
【００１１】
実施形態４では、実施形態３において、第一のコントロールモジュールが、第一のキャッシュメモリのどのキャッシュ領域にあるダーティデータ要素がどのコントロールモジュールのキャッシュメモリにコピーされたかを表す管理情報を作成して第一のキャッシュメモリに書き込み、ダーティデータ要素のコピーの完了に応じて管理情報を更新する。バックアップの際には、ストレージシステムが、ダーティデータ要素に加えて管理情報を第一のキャッシュメモリから不揮発性の記憶資源にバックアップし、給電が再開した場合には、ダーティデータ要素に加えて管理情報を不揮発性の記憶資源から第一のキャッシュメモリにステージングする。
【００１２】
実施形態５では、実施形態１乃至４のうちの少なくとも一つにおいて、複数のダーティデータ要素が、第一のコントロールモジュールの数とその第一のコントロールモジュールに対する一以上の第二のコントロールモジュールの数との合計に応じて均等に分割される。その分割により得られたダーティデータ要素がコピーされる。
【００１３】
実施形態６では、実施形態１乃至５のうちの少なくとも一つにおいて、各コントローラユニットが、上位装置からのＩ／Ｏコマンドに従うデータをキャッシュメモリに書き込み、キャッシュメモリに書込まれたデータを複数のストレージデバイスのうちの少なくとも一つに書込む、或いは、そのデータを上位装置に送信するよう構成されている。第一のコントロールユニットが、前述した一以上のダーティデータ要素のコピーを第二のコントロールモジュール内の第二のコントロールユニットに命令する。第二のコントロールユニットが、その命令に応答して、第二のキャッシュメモリに一以上のダーティデータ要素を書き込む。これにより、第一のキャッシュメモリから第二のキャッシュメモリへの一以上のダーティデータ要素のコピーが行われたことになる。
【００１４】
実施形態７では、実施形態１乃至６のうちの少なくとも一つにおいて、複数のコントロールモジュールのそれぞれの電源である複数の電源モジュールが更にストレージシステムに備えられる。第二のコントロールモジュールの数は第一のコントロールモジュールの数以上であり、一つの第一のコントロールモジュールに対して一以上の第二のコントロールモジュールがある。不揮発性の記憶資源は、複数のコントロールモジュールがそれぞれ備える複数の不揮発性のメモリモジュール（例えば、一以上の不揮発性メモリを備えたモジュール）である。各コントロールモジュールが、キャッシュメモリとコントロールユニットを通信可能に接続する接続ユニットを更に備える。接続ユニット同士の接続によりコントロールモジュール同士が接続されている。電源モジュールは、バッテリと一次電源とを含む。一次電源は、キャッシュメモリ及びコントロールユニットに給電し、一次電源からの給電が無くなった場合に、バッテリが、キャッシュメモリ及びコントロールユニットに給電する。第一のコントロールユニットは、一次電源からの給電がある間、上位装置からＩ／Ｏコマンドを受け付けている。第一のコントロールユニットは、受けたＩ／Ｏコマンドがライトコマンドの場合、ライトコマンドに従うデータ要素を第一のキャッシュメモリに書き込む。また、第一のコントロールユニットは、前述した管理情報を作成して第一のキャッシュメモリに書き込む。第一のコントロールユニットは、一以上のダーティデータ要素のコピーの命令を、第一のコントロールモジュールが有する第一の接続ユニットと第二のコントロールモジュールが有する第二の接続ユニットとを含んだ二以上の接続ユニットを介して、第二のコントロールユニットに送信する。その後、一以上のライトコマンドに従う複数のデータ要素が第一のキャッシュメモリに書き込まれたことにより新たな複数のダーティデータ要素が第一のキャッシュメモリに存在する場合、新たな複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピー命令を、上記の二以上の接続ユニットを経由して第二のコントロールユニットに更に送信し、ダーティデータ要素のコピーの完了に応じて管理情報を更新する。第二のコントロールユニットが、一次電源からの給電が無くなってバッテリからの給電を受けている間に、第二のキャッシュメモリに書込まれたダーティデータ要素を、第二のコントロールモジュールが備える第二の前記不揮発性のメモリモジュールにバックアップし、給電が再開された場合に、第二の不揮発性のメモリモジュールから第二のキャッシュメモリにダーティデータ要素をステージングし、それと並行して、ステージングされたダーティデータ要素のコピーの命令を上記の二以上の接続ユニットを介して第一のコントロールユニットに送信する。第一のコントロールユニットが、一次電源からの給電が無くなってバッテリからの給電を受けている間に、コピーが完了した一以上のダーティデータ要素以外のダーティデータ要素と管理情報とを、第一のキャッシュメモリから、第一のコントロールモジュールが備える第一の不揮発性のメモリモジュールにバックアップし、一次電源からの給電が再開された場合に、第一の不揮発性メモリモジュールから第一のキャッシュメモリに管理情報とダーティデータ要素とをステージングし、且つ、第二のキャッシュメモリにステージングされたダーティデータ要素を第一のキャッシュメモリに書込む。その後、例えば、第一のコントロールユニットは、第一のキャッシュメモリに書込まれたダーティデータ要素と上記ステージングされたダーティデータ要素とを統合する。
【００１５】
実施形態８では、実施形態１乃至７のうちの少なくとも一つにおいて、第一のコントロールモジュールが、一次電源からの給電を受けている間に、第二のコントロールモジュールにコピーの命令を送信し、一次電源からの給電が無くなりバッテリからの給電を受けた場合には、コピーの命令を送信せずに、ダーティデータ要素を第一のキャッシュメモリから不揮発性の記憶資源にバックアップする。
【００１６】
実施形態９では、実施形態１乃至８のうちの少なくとも一つにおいて、キャッシュメモリの記憶容量に対するダーティデータ要素の総量の割合である消費割合が第一の規定割合以上であるキャッシュメモリを有するコントロールモジュールが、第一のコントロールモジュールとなる。消費割合が第二の規定割合未満であるキャッシュメモリを有するコントロールモジュールが、第二のコントロールモジュールとなる。
【００１７】
実施形態１０では、実施形態１乃至９のうちの少なくとも一つにおいて、接続ユニット同士の接続により、コントロールモジュール同士が接続されている。
【００１８】
実施形態１１では、実施形態１乃至１０のうちの少なくとも一つにおいて、第一のコントロールユニットが、上位装置からライトコマンドを受けた場合、第一のキャッシュメモリの消費割合が第三の規定割合以上であれば、そのライトコマンドに従う一以上のデータ要素を（例えば、他のコントロールモジュール内の接続ユニットと第一の接続ユニットを含む二以上の接続ユニットを介して）、他のコントロールモジュールに送り、他のコントロールモジュールが、その一以上のデータ要素を、自身のモジュール内のキャッシュメモリに書込む。
【００１９】
実施形態１２では、実施形態１乃至１１のうちの少なくとも一つにおいて、複数のストレージデバイスのうちの各二以上のストレージデバイスが各コントロールモジュールに割当てられている。各二以上のストレージデバイスを基に各論理ボリュームが形成されており、各論理ボリュームは、各コントロールモジュールが担当する論理ボリュームである。第一のコントロールユニットが、上位装置からライトコマンドを受けた場合、そのライトコマンドで指定されている自身の担当論理ボリュームの空き状況が所定の状況より悪ければ、そのライトコマンドに従う一以上のデータ要素を（例えば、他のコントロールモジュール内の接続ユニットと前記第一の接続ユニットを含む二以上の接続ユニットを介して）、他のコントロールモジュールに送る。他のコントロールモジュールが、その一以上のデータ要素を、自身のモジュール内のキャッシュメモリに書込み、そのキャッシュメモリに書込まれた一以上のデータ要素を、自身の担当論理ボリュームに書込む。
【００２０】
実施形態１３では、実施形態１乃至１２のうちの少なくとも一つにおいて、第一のコントロールユニットは、一以上のダーティデータ要素のコピー命令を送信した後、一以上のライトコマンドに従う複数のデータ要素が第一のキャッシュメモリに書き込まれたことにより新たな複数のダーティデータ要素が第一のキャッシュメモリに存在する場合、新たな複数のダーティデータ要素のうちの一以上のダーティデータ要素のコピーの命令を第二のコントロールモジュールに更に送信する。
【００２１】
実施形態１４では、実施形態１乃至１３のうちの少なくとも一つにおいて、第二のコントロールユニットが、第二のキャッシュメモリにコピーされたダーティデータ要素を不揮発性の記憶資源にバックアップし、不揮発性の記憶資源から第二のキャッシュメモリにダーティデータ要素をステージングし、それと並行して、ステージングされたダーティデータ要素のコピーの命令を第一のコントロールモジュールに送信する。第一のコントロールユニットが、不揮発性の記憶資源から第一のキャッシュメモリに管理情報及びダーティデータ要素をステージングし、コピーの命令に応答して、第二のコントロールモジュールからのダーティデータ要素を第一のキャッシュメモリに書込む。
【００２２】
以下、図面を参照して、本発明の幾つかの実施形態を詳細に説明する。なお、以下の説明では、キャッシュメモリを構成する複数の物理的又は論理的な記憶領域（例えばセグメント）にそれぞれ記憶されるデータ、つまり、一記憶領域に記憶されるデータを「データ要素」と呼ぶ。このため、例えば、一つのライトコマンドに従うライトデータがキャッシュメモリに書き込まれた場合、そのキャッシュメモリには、ライトデータを構成する一以上のライトデータ要素が存在することとなる。
【００２３】
図１Ａは、本発明の一実施形態に係るストレージシステムの外観正面の概要を示す。
【００２４】
ストレージシステム１００は、複数のモジュールパッケージで構成される。モジュールパッケージは、そのモジュールパッケージ内の所定の構成要素に給電する電源モジュールを含み、３個（３個より多くても少なくても良い）のモジュールパッケージを搭載可能に構成された筐体１０１に収納される。
【００２５】
モジュールパッケージとしては、例えば、ＤＫＵ（DisK Unit）モジュールパッケージ１０５と、ＤＫＣ（DisK
Controller）モジュールパッケージ１１１がある。筐体１０１には、ＤＫＵモジュールパッケージ１０５のみが搭載されても良いし、ＤＫＣモジュールパッケージ１１１が搭載されても良いし、ＤＫＵモジュールパッケージ１０５とＤＫＣモジュールパッケージ１１１の両方が搭載されても良い。どの筐体１０１のどこにどんなモジュールパッケージを搭載するかは、予め定義されていても良いし、予め定義されておらず自由であっても良い。
【００２６】
ＤＫＵモジュールパッケージ１０５は、例えば、二つのＤＫＵモジュール１０７と、一つの電源モジュール１０９とを有する。ＤＫＵモジュール１０７には、複数のディスクデバイスが含まれる。ディスクデバイスとしては、例えば、ハードディスク或いはＤＶＤ（Digital Versatile Disk）等の不揮発性のディスク型記憶メディアのドライブが採用される（ディスク型記憶メディアに限らず、不揮発性の半導体メモリ（例えばフラッシュメモリ）等の他種の記憶メディアのドライブが採用されても良い）。それら複数のディスクデバイスのうちの二以上のディスクデバイスによりＲＡＩＤグループが形成される。ＲＡＩＤグループの記憶空間を基に、一以上の論理的なストレージデバイス（以下、Logical
storage ＤＥＶiceを略して「ＬＤＥＶ」と言う）が形成される。ＬＤＥＶは、論理ボリューム（Logical Volume）或いは論理ユニット（Logical
Unit）と言い換えることもできる。電源モジュール１０９についての説明は後述する。
【００２７】
ＤＫＣモジュールパッケージ１１１は、ＤＫＣモジュール１１３と、電源モジュール１１５とを有する。ＤＫＣモジュール１１３についての説明は後述する。電源モジュール１１５は、図１Ｂに示すように、外部電源（例えば商用電源）からのＡＣ電力をＤＣ電力に変換して供給するＡＣ／ＤＣ電源（一次電源）１１６と、停電等によりＡＣ／ＤＣ電源１１６からのＤＣ電力の供給が無くなった場合にそのＡＣ／ＤＣ電源１１６に代わって所定の構成要素にＤＣ電力を供給するバッテリ（二次電源）１１８とを含む。ＡＣ／ＤＣ電源１１６は、自分を含んだＤＫＣモジュールパッケージ１１１内のＤＫＣモジュール１１３の個々の構成要素（後述するＦＥ−ＰＫ、ＢＥ−ＰＫ、ＭＰ−ＰＫ、ＣＭ−ＰＫ）に給電する。バッテリ１１８は、自分を含んだＤＫＣモジュールパッケージ１１１内のＤＫＣモジュール１１３のうち、少なくとも、ＣＭ（キャッシュメモリ）からＳＳＤへのダーティデータ要素（ディスクデバイスに書込まれていないデータ要素）のバックアップに必要な要素（例えば、ＣＭ−ＰＫ及びＳＳＤのみ）に給電する。なお、前述したＤＫＵモジュールパッケージ１０５内の電源モジュール１０９は、各ディスクデバイスにＤＣ電力を供給するＡＣ／ＤＣ電源のみを備え、電源モジュール１１５と違って、バッテリを備えていない。
【００２８】
ＤＫＣモジュール１１３毎に、担当するＤＫＵモジュール１０７、言い換えれば、そのＤＫＣモジュール１１３内の後述するＢＥ−ＰＫに接続されているＤＫＵモジュール１０７が予め定義されている。例えば、本実施形態では、４つのＤＫＣモジュール１１３（以下、それらを、便宜上、１、２、３及び４の通番で呼ぶことにする）があり、ＤＫＣモジュール１は、点線枠Ｈ１で示す範囲内のＤＫＵモジュール１０７の担当であり、ＤＫＣモジュール２は、点線枠Ｈ２で示す範囲内のＤＫＵモジュール１０７の担当であり、ＤＫＣモジュール３は、点線枠Ｈ３で示す範囲内のＤＫＵモジュール１０７の担当であり、ＤＫＣモジュール４は、点線枠Ｈ４で示す範囲内のＤＫＵモジュール１０７の担当である。ＤＫＣモジュール１乃至４は、それぞれ、他のＤＫＣモジュール１乃至４が担当するＤＫＵモジュールにもアクセスすることができる。詳細は後述する。なお、ＤＫＣモジュール１１３の数は、４より少なくても多くても良い。
【００２９】
図２は、４つのＤＫＣモジュール１乃至４のそれぞれの構成とそれらの関係を示す。
【００３０】
ＤＫＣモジュール１乃至４のそれぞれの構成は実質的に同じである。ＤＫＣモジュール１乃至４のそれぞれの構成について、ＤＫＣモジュール１を代表的に例に採り説明する。その際、ＤＫＣモジュール内の構成要素の参照番号を、親番号とＤＫＣモジュールの通番とで構成し、同種の構成要素を区別して説明する場合には、親番号と通番との組み合わせで説明し、同種の構成要素を特に区別しないで説明する場合には、親番号のみを用いて説明する。例えば、或るＤＫＣモジュールのＦＥ−ＰＫを指す場合には、親番号１１５１のみを用いることとし、ＤＫＣモジュール１内のＦＥ−ＰＫを指す場合には、１１５１−１を用い、ＤＫＣモジュール２内のＦＥ−ＰＫを指す場合には、１１５１−２を用いることとする。また、ＤＫＣモジュール１乃至４がそれぞれ担当するＤＫＵモジュール１０７を利用してＬＤＥＶ１乃至４が形成されているとする。このため、ＤＫＣモジュール１の担当はＬＤＥＶ１、ＤＫＣモジュール２の担当はＬＤＥＶ２、ＤＫＣモジュール３の担当はＬＤＥＶ３、及び、ＤＫＣモジュール４の担当はＬＤＥＶ４であるとする。
【００３１】
ＤＫＣモジュール１は、ＦＥ−ＰＫ（Front End - Package）１１５１−１、ＢＥ−ＰＫ（Back
end - Package）１１５３−１、ＭＰ−ＰＫ（Micro Processor - Package）１１３７−１、ＣＭ−ＰＫ（Cache Memory
- Package）１１４３、ＳＳＤ（Solid State Device）１１５１−１及びＳＷ−ＰＫ（Switch - Package）１１３５−１を備える。これらの構成要素はそれぞれ二重化されている。
【００３２】
ＦＥ−ＰＫ１１５１−１は、ホスト計算機１１００との通信を制御する回路基板、例えば、ホスト計算機１１００から通信ネットワーク１７１を通じてＩ／Ｏコマンド（ライトコマンド／リードコマンド）を受信したりリードデータ（リードコマンドに従うデータ）をホスト計算機１１００に送信したりする回路基板である。ＦＥ−ＰＫ１１５１−１は、ホスト計算機１１００との通信の際のプロトコル変換処理を行うプロトコルチップ（図では「ＰＲＣ」と略記）１１３１−１を有する。ＦＥ−ＰＫ１１５１−１は、Ｉ／Ｏコマンドを受信した場合、Ｉ／Ｏプロセッサを受信したことを、ＳＷ−ＰＫ１１３５−１を介して、ＭＰ−ＰＫ１１３７−１内の第一のＭＰ（Micro Processor）１１４１Ａ−１に通知する。また、ＦＥ−ＰＫ１１１５１−１は、受信したＩ／Ｏコマンドがライトコマンドの場合、ライトコマンドに従うデータ（以下、ライトデータ）を、ＦＥ−ＰＫ１１５１−１内の図示しない記憶資源（例えばメモリ）に記憶する。
【００３３】
ＭＰ−ＰＫ１１３７−１は、フロントエンド処理（ホスト計算機１１００に対する処理）を行う第一のＭＰ１１４１Ａ−１とバックエンド処理（ＬＤＥＶに対する処理）を行う第二のＭＰ１１４１Ｂ−１と、第一のＭＰ１１４１Ａ−１と第二のＭＰ１１４１Ｂ−１とを繋ぐＭＣＨ（Memory Controller Hub）１１３９−１とを有する回路基板である。第一のＭＰ１１４１Ａ−１は、フロントエンド処理として、例えば、ＦＥ−ＰＫ１１５１−１からライトコマンドの受信があったことの通知を受けて、ホスト計算機１１００からのライトデータをＦＥ−ＰＫ１１３９−１から取得し、取得したライトデータを、ＣＭ１１４７−１に書き込むことを行う。また、第一のＭＰ１１４１Ａ−１は、フロントエンド処理として、例えば、ＦＥ−ＰＫ１１５１−１からリードコマンドの受信があったことの通知を受けて、ＣＭ１１４７−１に対象のリードデータがあるか否かを調べ、有れば、ＣＭ１１４７−１からそのリードデータを読み出してＦＥ−ＰＫ１１３９−１に送信し（つまりＦＥ−ＰＫ１１３９−１を介してホスト計算機１１００に送信し）、無ければ、第二のＭＰ１１４１Ｂ−１に、リードデータをＬＤＥＶ１から読み出させ、読み出されてＣＭ１１４７−１に記憶されたリードデータを、ＣＭ１１４７−１から読出しＦＥ−ＰＫ１１３９−１を介してホスト計算機１１００に送信することを行う。第二のＭＰ１１４１Ｂ−１は、バックエンド処理として、例えば、ＣＭ１１４７−１からライトデータを読み出して、そのライトデータとそれの書込み先を表す情報（例えばＬＤＥＶ１に対応したディスクデバイスやそれの書込み先アドレス）とをＢＥ−ＰＫ１１５３−１に送信したり（つまり、ＢＥ−ＰＫ１１５３を介してＬＤＥＶ１に書き込んだり）、ＬＤＥＶ１からＢＥ−ＰＫ１１５３−１を介してリードデータを読み出してＣＭ１１４７−１に書き込んだりする。
【００３４】
ＢＥ−ＰＫ１１５３−１は、そのＢＥ−ＰＫ１１５３−１に接続されている各ディスクデバイスとの通信を制御する回路基板、例えば、第二のＭＰ１１４１Ｂ−１によってＣＭ１１４７−１から読み出されたライトデータをＬＤＥＶ１に書き込んだり、ＬＤＥＶ１からリードデータを読み出したりする回路基板である。ＢＥ−ＰＫ１１５３−１は、ディスクデバイスとの通信の際のプロトコル変換処理を行うプロトコルチップ（図では「ＰＲＣ」と略記）１１３３−１を有する。
【００３５】
ＣＭ−ＰＫ１１４３−１は、揮発性のメモリであるＣＭ（Cache Memory）１１４７−１と、ＣＭ１１４７−１に対するデータの書き込みや読み出しの際のインタフェースとなるＣＭＡ（Cache
Memory Adapter）１１４５−１とを有する回路基板である。
【００３６】
ＳＳＤは、複数の不揮発性メモリ（例えば複数のフラッシュメモリ）などを備えた複合モジュールである。
【００３７】
ＳＷ−ＰＫ１１３６−１は、ＦＥ−ＰＫ１１５１−１、ＢＥ−ＰＫ１１５３−１、ＭＰ−ＰＫ１１３７−１及びＣＭ−ＰＫ１１４３の各々の間の通信を制御するスイッチ回路基板である。ＳＷ−ＰＫ１１３６−１には、ＦＥ−ＰＫ１１５１−１、ＢＥ−ＰＫ１１５３−１、ＭＰ−ＰＫ１１３７−１及びＣＭ−ＰＫ１１４３が接続される。また、ＳＷ−ＰＫ１１３６−１は、他のＤＫＣモジュール内のＳＷ−ＰＫ１１３６ともリンク（例えばケーブル）１１６１を介して接続される。
【００３８】
すなわち、ＤＫＣモジュール１が他のＤＫＣモジュール２乃至４との間でデータのやりとりを行うことができるよう接続される。ＤＫＣモジュール同士の接続は、ＦＥ−ＰＫ同士が接続されることにより実現されても良いが、本実施形態では、前述したように、ＳＷ−ＰＫ同士が接続されることにより実現される。
【００３９】
例えば、図４Ｂに示すように、ＳＷ−ＰＫ１１３５−１乃至１１３５−４が、それぞれ、他の全てのＳＷ−ＰＫと接続する。これにより、例えば、どのＤＫＣモジュール１１３がどの他のＤＫＣモジュール１１３のＣＭ１１４７或いはどの他のＤＫＣモジュール１１３が担当するＬＤＥＶ１１５５を使用する場合も、一つのリンク１１６１と他の一つのＳＷ−ＰＫ１１３５を経由して、使用するＣＭ１１４７或いは使用するＬＤＥＶ１１５５を担当する他のＤＫＣモジュール１１３内のＭＰ−ＰＫ１１３７に命令を出せば良い。
【００４０】
具体的には、例えば、図２５に示すように、ＬＤＥＶ１を指定したライトコマンドをＤＫＣモジュール１がホスト計算機１１００から受けた場合、ＭＰ−ＰＫ１１３７−１は、ＬＤＥＶ１の消費割合（ＬＤＥＶ１の記憶容量に対する消費記憶容量の割合）が第一の閾値を超えている、及び／又は、ＣＭ１１４７−１の消費割合（ＣＭ１１４７−１の記憶容量に対するダーティデータ要素の総量の割合）が第二の閾値を超えているかどうかを判断する（Ｓ２５０１）。ＬＤＥＶ１の消費割合が第一の閾値を超えていない及び／又はＣＭ１１４７−１の消費割合が第二の閾値を超えていないとの判断結果になれば（Ｓ２５０１でＮＯ）、ＭＰ−ＰＫ１１３７−１は、ライトコマンドに従うライトデータをＣＭ１１４７−１に書き込み（Ｓ２５０２）、そのライトデータをＣＭ１１４７−１から読み出してＬＤＥＶ１に書込む（Ｓ２５０３）。一方、ＬＤＥＶ１の消費割合が第一の閾値を超えている及び／又はＣＭ１１４７−１の消費割合が第二の閾値を超えているとの判断結果になれば（Ｓ２５０１でＹＥＳ）、ＭＰ−ＰＫ１１３７−１は、他のＤＫＣモジュール（例えばＤＫＣモジュール２）にライトコマンドを転送し、且つ、受信したライトコマンドで指定されているアドレス（例えばＬＤＥＶのＩＤやＬＢＡ（Logical Brock Address））は他のＤＫＣモジュール（例えばＤＫＣモジュール２）に転送されたことを転送管理情報（どのアドレスのデータがどのＤＫＣモジュールに転送されたかを表す情報であって、例えば、ＭＰ−ＰＫ１１３７−１内のメモリに記憶されている情報）に記録する（Ｓ２５０４）。転送先の他のＤＫＣモジュールは、担当ＬＤＥＶの消費割合が第一の閾値以下及び／又はＣＭの消費割合が第二の閾値以下であり、そのことは、例えば、ＭＰ−ＰＫ１１３７−１が、定期的に各他のＤＫＣモジュールから担当ＬＤＥＶ及び／又はＣＭの消費割合を通知してもらうことで知ることができる。ＣＭのライトコマンドを受けた他のＤＫＣモジュール内のＭＰ−ＰＫは、受信したライトコマンドに従うライトデータをＣＭに書き込み（Ｓ２５１１）、そのライトデータを担当ＬＤＥＶに書込む（Ｓ２５１２）。他のＤＫＣモジュール内のＭＰ−ＰＫは、例えば、どのアドレスについてのライトデータをどこに書込んだかを表すアドレス管理情報を、該他のＤＫＣモジュール内の記憶資源に書込む。その後、ＤＫＣもジュール１におけるＭＰ−ＰＫ１１３７−１は、ＬＤＥＶ１の消費割合が第一の閾値以下になる及び／又はＣＭ１１４７−１の消費割合が第二の閾値以下になるまで待ち（Ｓ２５０５でＹＥＳ及びＳ２５０６）、ＬＤＥＶ１の消費割合が第一の閾値以下になった及び／又はＣＭ１１４７−１の消費割合が第二の閾値以下になったならば（Ｓ２５０５でＮＯ）、転送管理情報を基に、転送先の他のＤＫＣモジュールからライトデータを取得し（Ｓ２５０７）、Ｓ２５０２以降を行う。Ｓ２５０７では、例えば、ＭＰ−ＰＫ１１３７−１が、取得したライトデータのアドレスを他のＤＫＣモジュールに通知し、他のＤＫＣモジュール内のＭＰ−ＰＫが、上記アドレス管理情報を参照して、通知されたアドレスに対応する場所からライトデータを取得してＤＫＣモジュール１に転送することで、転送したライトデータをＭＰ−ＰＫ１１３７−１が取得することができる。
【００４１】
また、例えば、図２６に示すように、ＬＤＥＶ１を指定したリードコマンドをＤＫＣモジュール１がホスト計算機１１００から受けた場合、ＭＰ−ＰＫ１１３７−１は、転送管理情報を参照することで、リードコマンドで指定されているアドレスに存在するはずのリードデータは他のＤＫＣモジュールにあるかどうかを判断する（Ｓ２６０１）。ＤＫＣモジュール１にあるとの判断結果になれば（Ｓ２６０１でＮＯ）、ＭＰ−ＰＫ１１３７−１は、そのリードデータがＣＭ１１４７−１に残っていれば（Ｓ２６０２でＹＥＳ）、ＣＭ１１４７−１上のリードデータをホストに送り（Ｓ２６０５）、そのリードデータがＣＭ１１４７−１に残っていなければ（Ｓ２６０２でＮＯ）、指定されているアドレス（ＬＤＥＶ１におけるブロック）からリードデータを読み出してＣＭ１１４７−１に書き（Ｓ２６０３及びＳ２６０４）、ＣＭ１１４７−１上のリードデータをホストに送る（Ｓ２６０５）。Ｓ２６０１の判断の結果、他のＤＫＣモジュール（例えばＤＫＣモジュール２）にあるとの判断結果になれば（Ｓ２６０１でＹＥＳ）、ＭＰ−ＰＫ１１３７−１は、他のＤＫＣモジュールからリードデータを取得し（Ｓ２６０６）、Ｓ２６０４以降を行う。Ｓ２６０６では、例えば、ＭＰ−ＰＫ１１３７−１が、リードコマンドで指定されているアドレスを他のＤＫＣモジュールに通知し、他のＤＫＣモジュール内のＭＰ−ＰＫが、上記アドレス管理情報を参照して、通知されたアドレスに対応する場所からリードデータを読み出して（ＣＭにリードデータが残っていればＣＭから読出し、ＣＭに残っていなければ、担当ＬＤＥＶからリードデータを読み出してＣＭに書き、そのＣＭからそのリードデータを読出して）、ＤＫＣモジュール１にそのリードデータを転送することで、他のＤＫＣモジュールからリードデータをＭＰ−ＰＫ１１３７−１が取得することができる。
【００４２】
なお、ＳＷ−ＰＫ１１３５同士の接続は、図４Ｂの例に限られず、一つのＳＷ−ＰＫ１１３５が少なくとも一つの他のＳＷ−ＰＫ１１３５と接続されていれば良い。言い換えれば、或るＤＫＣモジュール１１３から他のＤＫＣモジュール１１３のＣＭ１１４７或いは担当ＬＤＥＶ１１５５を使用する場合に、複数のリンク１１６１及び複数のＳＷ−ＰＫ１１３５が経由されても良い。具体的には、例えば、図４Ｂにおいて、ＳＷ−ＰＫ１１３５−１とＳＷ−ＰＫ１１３５−３同士が接続されていなくても良い。この場合、ＤＫＣモジュール１が、ＣＭ１１３５−３を使用する場合には、ＳＷ−ＰＫ１１３５−２を経由して、ＳＷ−ＰＫ１１３５−３に接続されているＣＭ１１４７−３を使用することができる。
【００４３】
以下、ＳＷ−ＰＫ１１３５により実現されているＦＥ−ＰＫ１１５１、ＢＥ−ＰＫ１１５３、ＭＰ−ＰＫ１１３７及びＣＭ−ＰＫ１１４３のそれぞれのＰＫ（Package）間の結合を、「密結合」と呼び、ＳＷ−ＰＫ１１３５同士の結合を、「疎結合」と呼ぶことがある。なぜなら、一つのＤＫＣモジュール１１３内でのＰＫ間のデータのやり取りは、ＳＷ−ＰＫ１１３５を介しＳＷ−ＰＫ１１３５同士の結合（リンク１１６１）を介さないため高速に行うことができ、一方、ＤＫＣモジュール１１３間でのデータのやり取りは、ＳＷ−ＰＫ１１３５だけでなくＳＷ−ＰＫ１１３５同士の結合も介するため、データ転送速度がＤＫＣモジュール１１３内でのデータ転送速度と比較して遅いためである。つまり、密結合とは、データ転送速度が高速である結合（つまりＳＷ−ＰＫ１１３５により実現されている結合）を言い、疎結合とは、それよりもデータ転送速度が低速である結合（つまりリンク１１６１により実現されている結合）を言う。
【００４４】
このストレージシステム１００では、前述したように、各ＤＫＣモジュール１１３が、ＳＳＤ１１５１−１乃至１１５１−４を搭載し、ＤＫＣモジュール１１３間で、ＣＭ１１４７上のダーティデータ要素をコピーすることができる。そのコピーが行われるケースとしては幾つか考えられるが、具体例としては、以下の（ケースＡ）及び（ケースＢ）がある。
（ケースＡ）複数のＤＫＣモジュール１１３のうちの一つのＤＫＣモジュール１１３のＣＭ１１４７に、所定の消費割合以上にダーティデータ要素が蓄積されており、一以上の他のＤＫＣモジュール１１３のＣＭ１１４７には、ダーティデータ要素の総量が所定の消費割合未満であるケース。
（ケースＢ）複数のＤＫＣモジュール１１３のうちの二以上のＤＫＣモジュール１１３のＣＭ１１４７に、所定の消費割合以上にダーティデータ要素が蓄積されており、二以上の他のＤＫＣモジュール１１３のＣＭ１１４７には、ダーティデータ要素の総量が所定の消費割合未満であるケース。
【００４５】
なお、（ケースＡ）が生じる原因としては、例えば、以下の幾つかの原因が考えられる。
・一つのＤＫＣモジュール１１３が担当するＬＤＥＶ１１５５に対してＩ／Ｏが集中している。なお、そのＬＤＥＶ１１５５は、ストレージシステム１００内に存在する実体としてのＬＤＥＶであっても良いし、ストレージ仮想化技術による、ストレージシステム１００が提供する仮想的なＬＤＥＶに対応付けられた外部ＬＤＥＶ（ストレージシステム１００の外部のストレージを基に形成されたＬＤＥＶ）であっても良い。
・ＲＡＩＤ５（３Ｄ＋１Ｐ）構成のＬＤＥＶ１１５５で1つのディスクデバイスが障害となり、バックグラウンド処理の一つとして、そのディスクデバイスに記憶されていたデータをスペアディスクに復元する処理（コレクションコピーと呼ばれることがある）、つまり、パリティの再計算が実行されている。
・ＤＫＣモジュール１１３が担当するＬＤＥＶ１１５５内でのディスクデバイス負荷均衡化のジョブが動作している。
【００４６】
また、（ケースＢ）が生じる原因としては、例えば、以下の原因が考えられる。
・ストレージシステム１００内でコピー系のアプリケーションプログラムの実行中である。具体的には、例えば、ストレージシステム１００が有するプライマリのＬＤＥＶ１１５５内のデータがホスト計算機１１００を非経由でセカンダリのＬＤＥＶ１１５５にコピーされている。
【００４７】
以上のように、このストレージシステム１００では、ＤＫＣモジュール１１３内のＣＭ１１４７の消費割合（ＣＭ１１４７の記憶容量に対するダーティデータ要素の総量の割合）が予め規定した設定値を超えたことを契機として、一つの（ケースＡ）又は二以上の（ケースＢ）ＤＫＣモジュール１１３内のＣＭ１１４７に蓄積したダーティデータ要素を、ＳＷ−ＰＫ１１３５を介したＤＫＣモジュール１１３間の結合（疎結合）を利用して、他のＤＫＣモジュール１１３のＣＭ１１４７にコピーする処理が行われる。この処理は、ストレージシステム１００のユーザ（つまりホスト計算機１１００のユーザ）が意識することなく、バックグランド処理の一つとして行われる。なお、コピー元のＤＫＣモジュール１１３に存在するコピーが完了したダーティデータ要素は、コピーが完了した後も、そのＤＫＣモジュール１１３内のＣＭ１１４７に残される。なぜなら、ＣＭ１１４７上のデータに対するアクセス速度を低下させないためである（他のＤＫＣモジュール１１３のＣＭ１１４７上のデータに対するアクセスは、ＳＷ−ＰＫ同士の結合（疎結合）を介するため、アクセス速度が遅くなり、Ｉ／Ｏ性能が低下してしまうためである）。
【００４８】
図３に、（ケースＡ）でのデータの流れ、例えば、ＤＫＣモジュール１内のＣＭ１１４７−１上のダーティデータ要素が他のＤＫＣモジュール２乃至４のＣＭ１１４７−２乃至１１４７−４にコピーされる際のデータの流れを示す。ＤＫＣモジュール１のＣＭ１１４７−１上の複数のダーティデータ要素から成るグループは、４つのサブグループ（一以上のダーティデータ要素の集合）に分割され（以下、そのサブグループを「ダーティサブグループ」と呼ぶ）、それらの分割された第一乃至第四のダーティサブグループに対して、担当するＤＫＣモジュール１乃至４がそれぞれアサインされる。この例の場合、第一のダーティサブグループは、ＤＫＣモジュール１の第二のＭＰ１１４１Ｂ−１が管理し、第二乃至第四のダーティサブグループは、第二のＭＰ１１４１Ｂ−１により、ＳＷ−ＰＫ１１３５同士の結合を介し、他のＤＫＣモジュール２乃至４のそれぞれの第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４に送られ、それぞれの第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４により、ＣＭ１１４７−２乃至１１４７−４に書き込まれる。これにより、ＣＭ１１４７−１上の第二乃至第四のダーティサブグループが、ＣＭ１１４７−２乃至ＣＭ１１４７−４にそれぞれコピーされたことになる（なお、図３では、例えば、３つのリンク１１６１や３つの他のＳＷ−ＰＫ１１３５−２乃至１１３５−４を介してＣＭ１１４７−４に第四のダーティサブグループがコピーされているように見えるが、図４Ｂに示した接続によれば、ＳＷ−ＰＫ１１３５−２及び１１３５−３を介さず、一つのリンク１１６１及び一つの他のＳＷ−ＰＫ１１３５−４を介してＣＭ１１４７−４に第四のダーティサブグループをコピーすることが可能である）。また、ＤＫＣモジュール１のＣＭ１１４７−１上には、後述する管理情報群が格納される。
【００４９】
図４Ａに、（ケースＢ）でのデータの流れ、例えば、ストレージシステム１００におけるＤＫＣモジュール１１３間でのデータ複製の概念を示す。ＬＤＥＶ１がプライマリのＬＤＥＶであり、ＬＤＥＶ２がセカンダリのＬＤＥＶであるとする。この場合、プライマリのＬＤＥＶ１へのライトデータがＣＭ１１４７−１上で二重化され、一方のライトデータがプライマリのＬＤＥＶ１に書込まれ、他方のライトデータが、ＣＭ１１４７−１からＣＭ１１４７−２にコピーされた後に、ＣＭ１１４７−２からセカンダリのＬＤＥＶ２に書込まれる。このため、二つのＤＫＣモジュール１及び２内のＣＭ１１４７−１及び１１４７−２上には、ライトデータを構成する一以上のダーティデータ要素が蓄積することになる。このケースＢでは、ＣＭ１１４７−１上の複数のダーティデータ要素から成るグループが第一及び第二のダーティサブグループに分割され（例えば均等に分割され）、ＣＭ１１４７−２上の複数のダーティデータ要素から成るグループが、第三及び第四のダーティサブグループに分割される（例えば均等に分割される）。そして、第二のダーティサブグループが、ＤＫＣモジュール１のＣＭ１１４７−１からＤＫＣモジュール３のＣＭ１１４７−３にコピーされ、第四のダーティサブグループが、ＤＫＣモジュール２のＣＭ１１４７−２からＤＫＣモジュール４のＣＭ１１４７−４にコピーされる。ＣＭ１１４７−１及びＣＭ１１４７−２には、それぞれ、管理情報群が格納される。
【００５０】
図６Ａは、管理情報群の構成例を示す。この図６Ａに示す管理情報群２００は、（ケースＡ）での管理情報群である。
【００５１】
管理情報群２００は、第一の管理情報２０１Ａと第二の管理情報２０１Ｂとを含む。
【００５２】
第一の管理情報２０１Ａは、コピー元のＣＭ１１４７のどのキャッシュ領域（例えばセグメント）に記憶されていたダーティデータ要素（コピー対象のダーティサブグループの構成要素）がどこのＤＫＣモジュール１１３内のＣＭ１１４７のどのキャッシュ領域にコピーされるかや、そのコピーが完了したか否かや、そのダーティデータ要素のバックアップが必要か否かや、ＳＳＤ１１５１への退避が完了したか否かを管理するための情報である。具体的には、第一の管理情報２０１Ａには、コピー完了フラグ（コピーが完了したか否かを示すフラグ）、コピー元情報（コピー元のＤＫＣモジュール１１３のＩＤ（識別子）とコピー元のキャッシュ領域のアドレスであるキャッシュアドレスとで構成された情報）、コピー先情報（コピー先のＤＫＣモジュール１１３のＩＤとコピー先のキャッシュ領域のキャッシュアドレスとで構成された情報）、バックアップ要否（対応するコピー元に記憶されているダーティデータ要素のバックアップが必要か否かを表す情報）、及び退避完了フラグ（退避が完了したか否かを示すフラグ）が含まれている。
【００５３】
第二の管理情報２０１Ｂは、コピー元及びコピー先のＤＫＣモジュールでどのジョブが完了しどのジョブが未完であるかを管理するための情報である。図６Ａは、前述したように、（ケースＡ）での管理情報群２００を示しているため、コピー元及びコピー先のＤＫＣモジュールとして、ＤＫＣモジュール１乃至４の全てについて、どのジョブが完了しどのジョブが未完であるかを表すジョブ管理情報要素が含まれているが、（ケースＢ）では、例えば、ＤＫＣモジュール１がコピー元でありＤＫＣモジュール３がコピー先である場合には、ＤＫＣモジュール１が管理する管理情報群２００中の第二の管理情報２０１Ｂには、ＤＫＣモジュール２及び４についてのジョブ管理情報要素は含まれない。
【００５４】
以下、図１１乃至図２４を参照して、本実施形態で行われる処理の流れを詳細に説明する。
【００５５】
図１１に示すように、ＤＫＣモジュールｘ（ここでは、ｘは、１以上４以下の整数、以下、説明を分かり易くするために、前述の例と同様にｘ＝１とする）における第二のＭＰ１１４１Ｂ−１が、ＣＭ１１４７−１に第一の規定割合以上にダーティデータ要素が蓄積されているか否かを判断する（Ｓ１１００）。この判断は、例えば、キャッシュ管理情報を参照することにより行うことができる。キャッシュ管理情報は、例えば、ＣＭ１１４７−１に対するデータ格納を制御するための情報であり、例えば、キャッシュアドレス、キャッシュ領域属性（例えば、クリーン、ダーティ、或いは、フリー）、及び、ＬＲＵ（Least Recently Used）からの距離を表す情報を含む。キャッシュ領域属性が“クリーン”とは、ディスクデバイスに記憶済みのデータ要素であるクリーンデータ要素（例えばリードデータの構成要素）が記憶されているキャッシュ領域であることを意味し、“ダーティ”とは、ダーティデータ要素が記憶されているキャッシュ領域であることを意味し、“フリー”とは、ダーティデータ要素或いはクリーンデータ要素のいずれが格納されても良い未割当てのキャッシュ領域であることを意味する。
【００５６】
ＣＭ１１４７−１に第一の規定割合以上にダーティデータ要素が蓄積されているとの判断結果になれば（Ｓ１１００でＹｅｓ）、第二のＭＰ１１４１Ｂ−１が、ＤＫＣモジュールｎ（ここでは、ｎは、１以上４以下でｘを除く整数、以下、前述の例と同様に、ｎ＝２、３及び４とする）の全てのＣＭ１１４７−２乃至１１４７−４について、記憶されているダーティデータ要素の総量が第二の規定割合未満か否かを判断する（Ｓ１１００）。このＳ１１００での判断は、第二のＭＰ１１４１Ｂ−１が、定期的に或いはこの時点で、全ての他のＤＫＣモジュール２乃至４における第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４から前述したキャッシュ管理情報をそれぞれ受信し、それらのキャッシュ管理情報を参照することで、行うことができる。全ての他のＤＫＣモジュール２乃至４において第二の規定割合未満との判断結果になれば（Ｓ１１０１でＹｅｓ）、Ｓ１１０４が行われ、少なくとも一つのＤＫＣモジュール２、３又は４において第二の規定割合以上との判断結果になれば（Ｓ１１０１でＮｏ）、Ｓ１１０２が行われる。Ｓ１１０２以降の処理については後述する。
【００５７】
Ｓ１１０４で、第二のＭＰ１１４１Ｂ−１が、ＣＭ１１４７−１におけるダーティデータ要素グループを４つに均等に分割する。この結果、以下の第一乃至第四の初期ダーティサブグループ（初期ダーティサブグループＡ１乃至Ａ４）が得られる。
Ａ１：Ｄｘ−１（ｔ）
Ａ２：Ｄｘ−２（ｔ０）＋ΔＤｘ−２（ｔ）
Ａ３：Ｄｘ−３（ｔ０）＋ΔＤｘ−３（ｔ）
Ａ４：Ｄｘ−４（ｔ０）＋ΔＤｘ−４（ｔ）
ここで、ｔ０とは、このＳ１１０４における時点である。ｔとは、刻々と流れている現在の時点である。従って、Ｄｘ−２（ｔ０）乃至Ｄｘ−４（ｔ０）は、時点ｔ０におけるダーティデータ要素グループを４つに分割したことにより得られたダーティサブグループ（以下、第一のダーティサブグループ）である。ΔＤｘ−２（ｔ）乃至ΔＤｘ−４（ｔ）は、時点ｔ０から現時点ｔまでに蓄積されたダーティデータ要素グループを４つに分割することにより得られたダーティサブグループ（以下、第二のダーティサブグループ）である。Ｄｘ−１（ｔ）は、時点ｔ０におけるダーティデータ要素グループと時点ｔ０から現時点ｔまでに蓄積されたダーティデータ要素グループとのサブグループである。ΔＤｘ−２（ｔ）乃至ΔＤｘ−４（ｔ）及びＤｘ−１（ｔ）は、現時点ｔの進みに応じてＣＭ１１４７−１に新たに所定数（例えば４つ）のダーティデータ要素が蓄積される度に増えるデータである。つまり、コピー元のＤＫＣモジュール１１３は、ホスト計算機１１００からのＩ／Ｏコマンドの受け付けを停止してからダーティサブグループのコピーを行うのではなく、Ｉ／Ｏコマンドを受け付けやＣＭ１１４７上のダーティデータ要素をディスクデバイスに書込む処理を行いながら（つまりオンラインの状態で）、ダーティサブグループのコピーを行う。
【００５８】
次に、Ｓ１１０５で、第二のＭＰ１１４１Ｂ−１が、初期ダーティサブグループＡ１乃至Ａ４を、ＤＫＣモジュール１乃至４にそれぞれアサインする。アサインの結果は、図示の通りである。
【００５９】
Ｓ１１０６で、第二のＭＰ１１４１Ｂ−１が、管理情報群２００を、ＣＭ１１４７−１に格納する。この結果、図７Ａに例示するように、ＣＭ１１４７−１に、４つの初期ダーティサブグループと管理情報群２００が記憶されている状態となる。なお、この時点で、ＤＫＣモジュール１をマスターとし、他のＤＣＫモジュール２乃至４をそれぞれスレーブとした関係が成立する。
【００６０】
次に、図１２のＳ１２０１において、第二のＭＰ１１４１Ｂ−１が、管理情報群２００を基に、全てのスレーブのＤＫＣモジュール２乃至４の第二のＭＰ１１４１Ｂ−２乃至１１４Ｂ−４に対して、それぞれ、アサインされた初期ダーティサブグループＡ２乃至Ａ４をコピーすることのジョブ群を発行する（図７Ｂ参照）。例えば、スレーブのＤＫＣモジュール２の第二のＭＰ１１４１Ｂ−２に発行されるジョブ群には、ＣＭ１１４７−２のどのキャッシュ領域（例えば、ＣＭ１１４７−２についてのキャッシュ管理情報を基に特定されたフリー又はクリーンのキャッシュ領域）にどのダーティデータ要素を書込むかのジョブが含まれている。第二のＭＰ１１４１Ｂ−２は、ジョブを実行する都度に、ジョブの完了とそのジョブのＩＤとを、マスターのＤＫＣモジュール１における第二のＭＰ１１４１Ｂ−１に返答する。
【００６１】
第二のＭＰ１１４１Ｂ−１は、各スレーブのＤＫＣモジュール２乃至４でのジョブの実行に応じて（例えば、ジョブの完了とそのジョブのＩＤとの受信に応じて）、管理情報群２００を更新する（Ｓ１２０２）。具体的には、例えば、第二のＭＰ１１４１Ｂ−１は、ＤＫＣモジュール２から上記の返答を受けた場合、第一の管理情報２０１Ａにおいて、コピーの済んだダーティデータ要素について完了フラグを“未完”から“完了”を表す値に更新し、第二の管理情報２０１Ｂ内のＤＫＣモジュール２についてのジョブ管理情報要素を更新する。
【００６２】
第二のＭＰ１１４１Ｂ−１は、キャッシュ管理情報及び更新後の管理情報群２００を基に、ＣＭ１１４７−１に第一の規定割合以上にダーティデータ要素が蓄積されているか否かを判断する（Ｓ１２０３）。例えば、ダーティサブグループＡ１を構成するダーティデータ要素が、ＤＫＣモジュール１が担当するＬＤＥＶ１に格納されることによってクリーンデータ要素となれば、ＣＭ１１４７−１における消費割合が低下している可能性がある。
【００６３】
Ｓ１２０３において、蓄積されていないとの判断結果である場合（Ｓ１２０３でＮｏ）、第二のＭＰ１１４１Ｂ−１は、他の第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４に対してジョブ群のクリアを命令し、ダーティデータ要素グループの分割を解除し、管理情報群２００を解放する（例えば破棄する）（Ｓ１２０４）。その後、図１１のＳ１１００に戻る。
【００６４】
Ｓ１２０３において、蓄積されているとの判断結果である場合（Ｓ１２０３でＹｅｓ）、第二のＭＰ１１４１Ｂ−１は、停電とならなければ（Ｓ１２０５でＮｏ）、全てのスレーブのＤＫＣモジュール２乃至４において初期ダーティサブグループＡ２乃至Ａ４のコピーが完了したか否かを判断する（Ｓ１２０６）。少なくとも一つのスレーブのＤＫＣモジュール２、３又は４において初期ダーティサブグループのコピーが完了していないとの判断結果になれば（Ｓ１２０６でＮｏ）、ステップ１２０２に戻り、全てのスレーブのＤＫＣモジュール２乃至４において初期ダーティサブグループのコピーが完了したとの判断結果になれば（Ｓ１２０６でＹｅｓ）、ステップ１２０７に進む。なお、Ｓ１２０３でＹｅｓの後、停電となれば（Ｓ１２０５でＹｅｓ）、図１３のＳ１３０１に進む（Ｓ１３０１以降の処理は後に説明する）。
【００６５】
Ｓ１２０７において、第二のＭＰ１１４１Ｂ−１は、管理情報群２００における、ＣＭ１１４７−１に存在する各初期ダーティサブグループを構成するダーティデータ要素に対応したバックアップ要否を、バックアップが必要であることを表す情報からバックアップが不要であることを表す情報に更新する。コピーが完了した初期ダーティサブグループは、わざわざ消去されずＣＭ１１４７−１に残される。
【００６６】
次に、図１４のＳ１４０１において、第二のＭＰ１１４１Ｂ−１は、各スレーブのＤＫＣモジュール２乃至４でのジョブの実行に応じて、管理情報群２００を更新しながら、初期ダーティサブグループＡ１乃至Ａ４を構築してから又は前回のＳ１４０１から現時点ｔまでに更にＣＭ１１４７−１に記憶されたダーティサブグループ（以下、差分ダーティサブグループ）をコピーすることのジョブを、スレーブのＤＫＣモジュール２乃至４に発行し、コピーの完了した差分ダーティデータ要素についてはバックアップ不要とするよう管理情報群を更新する（図８Ａ参照）。
【００６７】
第二のＭＰ１１４１Ｂ−１は、ＣＭ１１４７−１の消費割合が１／４以上か否かを判断する（Ｓ１４０２）。第二のＭＰ１１４１Ｂ−１は、ＣＭ１１４７−１の消費割合が１／４未満に下がっていれば（Ｓ１４０２でＮｏ）、管理情報群２００における、バックアップ不要として管理されているダーティデータ要素に対応したバックアップ要否を、バックアップが必要であることを表す情報に更新する（Ｓ１４０４）。そして、第二のＭＰ１１４１Ｂ−１は、他の第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４に対してジョブ群のクリアを命令し、ダーティデータ要素グループの分割を解除し、管理情報群２００を解放する（例えば破棄する）（Ｓ１４０５）。その後、図１１のＳ１１００に戻る。
【００６８】
Ｓ１４０２において、ＣＭ１１４７−１の消費割合が１／４以上である場合、第二のＭＰ１１４１Ｂ−１は、停電にならなければ（Ｓ１４０３でＮｏ）、Ｓ１４０１に戻り、停電となれば（Ｓ１４０３でＹｅｓ）、図１６のＳ１６０１に進む（Ｓ１６０１以降の処理は後に説明する）。つまり、停電になる場合を除き、ＣＭ１１４７−１の消費割合が１／４未満に下がるまで、ＣＭ１１４７−１に新たにダーティデータ（ライトデータ）が書込まれたことに応じて、差分ダーティサブグループのコピーが行われる。
【００６９】
以上の通り、停電が無く通常運転が継続している状態では、（ケースＡ）において、適宜に、ＣＭ１１４７−１上の複数のダーティデータ要素が、他のＣＭ１１４７−２乃至１１４７−４に均等に分散される。
【００７０】
ここで、初期ダーティサブグループのコピー中（例えば図１２のＳ１２０３でＹｅｓの際）、或いは、差分ダーティサブグループのコピー中（例えば図１４のＳ１４０２のＹｅｓの際）に、停電が起こったとする。以下、それぞれの場合について説明する。
【００７１】
＜＜初期ダーティサブグループのコピー中での停電、及びその停電からの回復（復電）＞＞。
【００７２】
図１２のＳ１２０３でＹｅｓの際に停電が起こったということは、管理情報群２００において、コピーの済んだダーティデータ要素のバックアップ要否についてバックアップ不要と更新される前（Ｓ１２０７の前）に停電になったということである。そこで、図１３のＳ１３０１以降の処理が行われる。
【００７３】
すなわち、第二のＭＰ１１４１Ｂ−１が、管理情報群２００を参照することで、バックアップが必要なダーティデータ要素が記憶されているキャッシュ領域を特定し、特定したキャッシュ領域にあるダーティデータ要素をＳＳＤ１１５１−１に退避する（コピーする）（Ｓ１３０１）。
【００７４】
ここで、復電すれば（つまり停電から回復すれば）（Ｓ１３０２でＹｅｓ）、Ｓ１３０３が行われ、復電しなければ（Ｓ１３０２でＮｏ）、ダーティデータ要素の退避が完了するまで（Ｓ１３０４でＮｏ）ダーティデータ要素の退避が継続される。全てのダーティデータ要素の退避が完了した場合（Ｓ１３０４でＹｅｓ）、復電すれば（Ｓ１３０５でＹｅｓ）、Ｓ１３０３に進み、復電しなければ（Ｓ１３０５でＮｏ）、Ｓ１３０６に進む。
【００７５】
Ｓ１３０６では、第二のＭＰ１１４１Ｂ−１が、ＤＫＣモジュール１に対応した電源モジュール１１５内のバッテリ１１８からの放電電圧（ＤＣ電圧）が規定値以下か否かを判断する。放電電圧が規定値以下とは、バッテリ１１８に蓄積されている電力が枯渇したことを意味する。放電電圧が規定値以下とならない間に復電すれば（Ｓ１３０６でＮｏ及びＳ１３０５でＹｅｓ）、ＣＭ１１４７−１には、バッテリ１１８からの給電により、退避されたダーティデータ要素が残っているため、第二のＭＰ１１４１Ｂ−１は、退避されたダーティデータ要素をＳＳＤ１１５１−１から解放して良い（Ｓ１３０３）。言い換えれば、ＳＳＤ１１５１−１からＣＭ１１４７−１へのダーティデータ要素の戻しは不要である。なお、ダーティデータ要素を解放するとは、例えば、ダーティデータ要素を消去することであっても良いし、そのダーティデータ要素に別のデータ要素を上書きしても良いことを意味する情報を保持することであっても良い。
【００７６】
一方、復電する前に放電電圧が規定値以下となった場合には（Ｓ１３０６でＹｅｓ）、ＣＭ１１４７−１への給電が実質的に無くなるので、ＣＭ１１４７−１からダーティデータ要素が失われる（Ｓ１３０７）。その後、復電があったら（Ｓ１３０８でＹｅｓ）、図１５のＳ１５０１が行われる。
【００７７】
すなわち、第二のＭＰ１１４１Ｂ−１が、ＳＳＤ１１５１−１から管理情報群２００をＣＭ１１４７−１にステージングすることを決定する（Ｓ１５０１）。なお、ＳＳＤ１１５１−１のどこに管理情報群２００が存在するかは、例えば、管理情報群２００のＳＳＤ１１５１−１における格納先が予め決められている等の方法により、特定することができる。
【００７８】
また、第二のＭＰ１１４１Ｂ−１が、ダーティデータ要素をＳＳＤ１１５１−１からＣＭ１１４７−１に戻す（リストアする）ことを決定する（Ｓ１５０２）。
【００７９】
第二のＭＰ１１４１Ｂ−１は、管理情報群２００をＣＭ１１４７−１に読出し終えるまで、管理情報群２００を構成するデータ要素のＳＳＤ１１５１−１からの読出しを行う（Ｓ１５０３でＮｏ及びＳ１５０４）。
【００８０】
管理情報群２００をＣＭ１１４７−１に読出し終えたならば（Ｓ１５０３でＹｅｓ）、第二のＭＰ１１４１Ｂ−１は、退避された全てのダーティデータ要素をＣＭ１１４７−１にステージングすることが完了するまで、ＳＳＤ１１５１−１からのダーティデータ要素の読出しとそのダーティデータ要素のＣＭ１１４７−１への書込みを繰り返す（Ｓ１５０５でＮｏ及びＳ１５０６）。全てのダーティデータ要素のステージングが完了したならば（Ｓ１５０５でＹｅｓ）、終了となる。なお、例えば、ＳＳＤ１１５１−１に記憶されるダーティデータ要素の構成は、図６Ｂに例示する構成となっている。すなわち、退避を行う第二のＭＰ１１４１Ｂ−１により、ダーティデータ要素が記憶されるデータフィールド１５０３にヘッダフィールド１５０１が付加され、そのヘッダフィールド１５０１に、送信元のＤＫＣモジュールのＩＤが記録され、データフィールド１５０３に、退避元のキャッシュ領域のアドレスが記録される。これにより、ＳＳＤ１１５１−１から読み出されたダーティデータ要素は、そのダーティデータ要素から特定される退避元のキャッシュ領域にステージングされる。
【００８１】
＜＜差分ダーティサブグループのコピー中での停電、及びその停電からの回復（復電）＞＞。
【００８２】
図１４のＳ１４０２でＹｅｓの際に停電が起こったということは、管理情報群２００において、コピーの済んだダーティデータ要素のバックアップ要否についてバックアップ不要と更新された後（Ｓ１２０７の後）に停電になったということである。そこで、図１６のＳ１６０１以降の処理が行われる。
【００８３】
すなわち、各ＤＫＣモジュール１乃至４において、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、管理情報群２００又はキャッシュ管理情報を参照することで、バックアップが必要なダーティデータ要素が記憶されているキャッシュ領域を特定し、特定したキャッシュ領域にあるダーティデータ要素を、ＳＳＤ１１５１−１乃至１１５１−４にそれぞれ退避する（コピーする）（Ｓ１６０１）。
【００８４】
ここで、復電すれば（つまり停電から回復すれば）（Ｓ１６０２でＹｅｓ）、Ｓ１６０３が行われ、復電しなければ（Ｓ１６０２でＮｏ）、各ＤＫＣモジュール１乃至４において、ダーティデータ要素の退避が完了するまで（Ｓ１６０４でＮｏ）ダーティデータ要素の退避が継続される。全てのダーティデータ要素の退避が完了した場合（Ｓ１６０４でＹｅｓ）、スレーブのＤＫＣモジュール２乃至４における第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４が、マスターのＤＫＣモジュール１における第二のＭＰ１１４１Ｂ−１に、全てのダーティデータ要素の退避の完了を報告する。第二のＭＰ１１４１Ｂ−１は、その完了の報告に応答して、第二の管理情報２００を更新する（例えば、コピーされた各ダーティデータ要素に対応した退避完了フラグを、未完から完了を表す情報に更新する）。その後、復電すれば（Ｓ１６０６でＹｅｓ）、Ｓ１６０３に進み、復電しなければ（Ｓ１６０６でＮｏ）、Ｓ１６０７に進む。
【００８５】
Ｓ１６０７では、ＤＫＣモジュール１乃至４において、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、ＤＫＣモジュール１乃至４にそれぞれ対応した電源モジュール１１５内のバッテリ１１８からの放電電圧（ＤＣ電圧）が規定値以下か否かを判断する。放電電圧が規定値以下とならない間に復電すれば（Ｓ１６０７でＮｏ及びＳ１６０６でＹｅｓ）、ＣＭ１１４７−１乃至１１４７−４には、バッテリ１１８からの給電により、退避されたダーティデータ要素が残っているため、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４は、退避されたダーティデータ要素をＳＳＤ１１５１−１乃至１１５１−４から解放して良い（Ｓ１６０３）。言い換えれば、ＳＳＤ１１５１−１乃至１１５１−４からＣＭ１１４７−１乃至１１４７−４へのダーティデータ要素の戻しは不要である。
【００８６】
一方、復電する前に放電電圧が規定値以下となった場合には（Ｓ１６０７でＹｅｓ）、ＣＭ１１４７−１乃至１１４７−４への給電が実質的に無くなるので、ＣＭ１１４７−１乃至１１４７−４からダーティデータ要素が失われる（Ｓ１６０８）。その後、復電があったら（Ｓ１６０９でＹｅｓ）、図１７のＳ１７０１が行われる。
【００８７】
すなわち、第二のＭＰ１１４１Ｂ−１が、ＳＳＤ１１５１−１から管理情報群２００をＣＭ１１４７−１にステージングすることを決定する（Ｓ１７０１）。
【００８８】
また、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、ダーティデータ要素をＳＳＤ１１５１−１乃至１１５１−４からＣＭ１１４７−１乃至１１４７−４に戻す（リストアする）ことを決定する（Ｓ１７０２）。
【００８９】
更に、第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４が、ステージングされたダーティデータ要素をＣＭ１１４７−２乃至１１４７−４からＣＭ１１４７−１に転送することを決定する（Ｓ１７０３）。
【００９０】
第二のＭＰ１１４１Ｂ−１は、管理情報群２００のＣＭ１１４７−１へのステージングが完了するまで管理情報群２００を構成するデータ要素をＳＳＤ１１５１−１からＣＭ１１４７−１にステージング（Ｓ１７０４でＮｏ、Ｓ１７０４´）、そのステージングが完了したならば（Ｓ１７０４でＹｅｓ）、その管理情報群２００を基に、スレーブのＤＫＣモジュール２乃至４から転送されて来るダーティデータ要素の統合・復元処理を決定する（Ｓ１７０５）。
【００９１】
第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４は、退避された全てのダーティデータ要素をＣＭ１１４７−１乃至１１４７−４にステージングすることが完了するまで、ＳＳＤ１１５１−１乃至１１５１−４からのダーティデータ要素の読出しとそのダーティデータ要素のＣＭ１１４７−１乃至１１４７−４への書込みを繰り返す（Ｓ１７０６でＮｏ及びＳ１７０７）。全てのダーティデータ要素のステージングが完了したならば（Ｓ１７０６でＹｅｓ）、Ｓ１７０８が行われる。なお、Ｓ１７０７では、ＳＳＤ１１５１−１乃至１１５４−１から読み出されたダーティデータ要素は、そのダーティデータ要素から特定される退避元のキャッシュ領域にそれぞれステージングされる（図８Ｂの点線Ｒ１乃至Ｒ４）。
【００９２】
第二のＭＰ１１４１Ｂ−２乃至１１４１Ｂ−４は、ステージングされた全てのダーティデータ要素をＣＭ１１４７−２乃至１１４７−４からＤＫＣモジュール１（ステージングされたダーティデータ要素のヘッダから特定されるＤＫＣモジュール）に転送するまで（図８Ｂの点線Ｔ１乃至Ｔ４）、ＣＭ１１４７−２乃至１１４７−４からのダーティデータ要素の転送を繰り返す（Ｓ１７０８でＮｏ及びＳ１７０９）。全てのダーティデータ要素の転送が完了したならば（Ｓ１７０８でＹｅｓ）、Ｓ１７１０が行われる。なお、ＣＭ１１４７−２乃至１１４７−４にステージングされた各ダーティデータ要素からは、コピー元のＤＫＣモジュールがＤＫＣモジュール１であることが特定されるため、ＣＭ１１４７−２乃至１１４７−４にステージングされた複数のダーティデータ要素が、ＤＫＣモジュール１のＣＭ１１４７−１に集約される。Ｓ１７０９では、ＣＭ１１４７−２乃至１１４７−４のダーティデータ要素は、そのダーティデータ要素が記憶されているキャッシュ領域に対応する、ＣＭ１１４７−１におけるキャッシュ領域に書き込まれる（図８Ｂの点線Ｔ２乃至Ｔ４）。例えば、ＣＭ１１４７−２におけるキャッシュ領域＃１にステージングされたダーティデータ要素は、ＣＭ１１４７−１におけるキャッシュ領域＃１に書き込まれる。
【００９３】
第二のＭＰ１１４１Ｂ−１は、転送されて来てＣＭ１１４７−１に書込んだ全てのダーティデータ要素について統合・復元処理が完了するまで、ダーティデータ要素の統合・復元処理を繰り返す（Ｓ１７１０でＮｏ及びＳ１７１１）。なお、ダーティデータ要素の統合・復元処理では、例えば、下記が行われる。
・ＤＫＣモジュール１が、管理情報群の第一の管理情報２０１Ａ（図６Ａ参照）から各キャッシュ領域（例えばセグメント）のコピー元情報及びコピー先情報を参照する（管理情報群は図１７のＳ１７０４にて既にＤＫＣモジュール１のＣＭへステージングされている。）
・ＤＫＣモジュール１は、上記コピー先情報／コピー元情報を基に、コピー先のキャッシュ領域のデータ要素を元のＤＫＣモジュール１のＣＭにコピーするジョブを、各ＤＫＣモジュール２、３及び４に対して発行する（データ要素をコピーして戻す先（キャッシュアドレス）は、元のキャッシュアドレスと同一ではなくても良い）。
・上記ジョブの管理情報は、ＤＫＣモジュール１の管理情報群の第二の管理情報２０１Ｂ（図６Ａ参照）に格納され、キャッシュ領域毎のコピー処理完了の都度に、管理情報群が更新される。
【００９４】
ダーティデータ要素の統合・復元処理が完了したならば（Ｓ１７１０でＹｅｓ）、第二のＭＰ１１４１Ｂ−１は、管理情報群２００を解放する（Ｓ１７１２）。すなわち、各ＤＫＣモジュール２、３及び４からのコピーのジョブが全て完了した時点で（ダーティデータ要素の統合・復元処理が完了した時点で）、ダーティデータ分割に関連する管理情報群における情報が全て解放される（例えば削除される）。
【００９５】
その後、ストレージシステム１００が、レディー状態となる（Ｉ／Ｏコマンドの受け付けを開始可能な状態）となる（Ｓ１７１３）。レディー状態となるのは、例えば、以下の全ての条件を満たしている場合である。
・ＳＳＤからＣＭへのダーティデータ要素のステージング処理が完了している。
・ＣＭ−ＰＫ上のメモリから構成情報（ストレージシステム１００の構成に関する情報、例えば、どのＬＤＥＶがどのＲＡＩＤグループ上に存在するか等を表す情報）が読み出されて、ＣＭにステージング済みとなっている。
・ＭＰ−ＰＫ上のＭＰのパワーオン処理（電源がオン状態となった場合に実行される処理（例えばブート処理）が完了している。
・ディスクデバイスが起動しＩ／Ｏを受け付けられる状態になっている（つまり、ディスクデバイスがレディー状態となっている）。
・各構成要素及び構成要素間で所定の診断が行われ（例えば診断プログラムが実行され）、エラーが検出されることなく完了している。
【００９６】
さて、図１１のＳ１１０１において、少なくとも一つのＤＫＣモジュール２、３又は４において第二の規定割合以上との判断結果になった場合（Ｓ１１０１でＮｏ）、第二のＭＰ１１４１Ｂ−１は、第一の規定割合以上のＤＫＣモジュールがＤＫＣモジュール１を含めて二つであるか否かを判断する（Ｓ１１０２）。二つではないとの判断結果（三つ或いは四つであるとの判断結果）になれば（Ｓ１１０２でＮｏ）、ダーティデータ要素のコピー先とするＤＫＣモジュールの数が１又は０となるため（例えば、ＤＫＣモジュールの数が１の場合、コピー先のＤＫＣモジュール１１３のＣＭ１１４７にダーティデータ要素が多くなりすぎて後述するシステムダウンタイムの削減の効果が期待できなくなるため）、Ｓ１１００に戻る。一方、二つであるとの判断結果になれば（Ｓ１１０２でＹｅｓ）、第二のＭＰ１１４１Ｂ−１は、残りのＤＫＣモジュール１１３のＣＭ１１４７の消費割合がいずれも第二の規定割合未満か否かを判断する（Ｓ１１０３）。少なくとも一つのＣＭ１１４７の消費割合が第二の規定割合以上との判断結果になれば（Ｓ１１０３でＮｏ）、Ｓ１１００に戻り、一方、いずれのＣＭ１１４７の消費割合も第二の規定割合未満との判断結果になれば（Ｓ１１０３でＹｅｓ）、図１８のＳ１８０１に進む。つまり、Ｓ１８０１以降は、（ケースＢ）の場合に行われる処理である。
【００９７】
Ｓ１８０１で、第二のＭＰ１１４１Ｂ−ｘ（及び１１４１Ｂ−ｙ）が、ＣＭ１１４７−ｘ（及び１１４７−ｙ）におけるダーティデータ要素グループを２つに均等に分割する。以下の説明では、図４Ａの例と同様に、ｘ＝１、ｙ＝２とする。ＣＭ１１４７−１におけるダーティデータ要素グループが、以下の第一及び第二の初期ダーティサブグループ（初期ダーティサブグループＡ１´及びＡ２´）に分割され、ＣＭ１１４７−２におけるダーティデータ要素グループが、以下の第三及び第四の初期ダーティサブグループ（初期ダーティサブグループＡ３´及びＡ４´）に分割される。
Ａ１´：Ｄｘ−１（ｔ）
Ａ２´：Ｄｘ−２（ｔ０）＋ΔＤｘ−２（ｔ）
Ａ３´：Ｄｙ−１（ｔ）
Ａ４´：Ｄｙ−２（ｔ０）＋ΔＤｙ−２（ｔ）
以下、後述するように、ＤＫＣモジュール１をマスターとし任意のＤＫＣモジュールｘ’（ｘ’＝３）をスレーブとした第一のマスタースレーブ関係と、ＤＫＣモジュール２をマスターとし任意のＤＫＣモジュールｙ’（ｙ’＝４）をスレーブとした第二のマスタースレーブ関係とが構築されるが、第一のマスレースレーブ関係における処理を主に説明し、第二のマスタースレーブ関係における処理についてはカッコ書きで補助的に説明する。
【００９８】
次に、Ｓ１８０２で、第二のＭＰ１１４１Ｂ−１が、初期ダーティサブグループＡ１´及びＡ２´を、ＤＫＣモジュール１及び３にそれぞれアサインする（第二のＭＰ１１４１Ｂ−２が、初期ダーティサブグループＡ３´及びＡ４´を、ＤＫＣモジュール２及び４にそれぞれアサインする）。アサインの結果は、図示の通りである。以下、混同を防ぐために、ＤＫＣモジュール１が生成する管理情報群を「管理情報群２００−１」と記載し、ＤＫＣモジュール２が生成する管理情報群を「管理情報群２００−２」と記載する。
【００９９】
Ｓ１８０３で、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、管理情報群２００−１（及び２００−２）を、ＣＭ１１４７−１（及び１１４７−２）に格納する。この結果、図９Ａに例示するように、ＣＭ１１４７−１（及び１１４７−２）に、２つの初期ダーティサブグループと管理情報群２００−１（及び２００−２）が記憶されている状態となる。このＳ１８０３の時点で、ＤＫＣモジュール１をマスターとしＤＣＫモジュール３をスレーブとした第一のマスタースレーブ関係と、ＤＫＣモジュール２をマスターとしＤＫＣモジュール４をスレーブとした第二のマスタースレーブ関係が成立する。具体的には、例えば、第二のＭＰ１１４１Ｂ−１が、ＤＫＣモジュール２をマスターとしそれのスレーブをＤＫＣモジュール４とすることを第二のＭＰ１１４１Ｂ−２に通知することで、第二のＭＰ１１４１Ｂ−１が、ＤＫＣモジュール２をマスターとそれのスレーブがＤＫＣモジュール４であることを認識する。
【０１００】
次に、図１９のＳ１９０１において、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、管理情報群２００−１（及び２００−２）を基に、スレーブのＤＫＣモジュール３（及び４）の第二のＭＰ１１４１Ｂ−３（及び１１４Ｂ−４）に対して、アサインされた初期ダーティサブグループＡ２´（及びＡ４´）をコピーすることのジョブ群を発行する（図９Ｂ参照）。
【０１０１】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、スレーブのＤＫＣモジュール３（及び４）でのジョブの実行に応じて、管理情報群２００−１（及び２００−２）を更新する（Ｓ１９０２）。
【０１０２】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、キャッシュ管理情報及び更新後の管理情報群２００−１（及び２００−２）を基に、ＣＭ１１４７−１（及び１１４７−２）に第一の規定割合以上にダーティデータ要素が蓄積されているか否かを判断する（Ｓ１９０３）。
【０１０３】
Ｓ１９０３において、蓄積されていないとの判断結果である場合（Ｓ１９０３でＮｏ）、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、他の第二のＭＰ１１４１Ｂ−３（及び１１４１Ｂ−４）に対してジョブ群のクリアを命令し、ダーティデータ要素グループの分割を解除し、管理情報群２００−１（及び２００−２）を解放する（Ｓ１９０４）。その後、図１１のＳ１１００に戻る。
【０１０４】
Ｓ１９０３において、蓄積されているとの判断結果である場合（Ｓ１９０３でＹｅｓ）、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、停電とならなければ（Ｓ１９０５でＮｏ）、スレーブのＤＫＣモジュール３（及び４）において初期ダーティサブグループＡ２´（及びＡ４´）のコピーが完了したか否かを判断する（Ｓ１９０６）。ＤＫＣモジュール３（及び４）において初期ダーティサブグループＡ２´（及びＡ４´）のコピーが完了していないとの判断結果になれば（Ｓ１９０６でＮｏ）、ステップ１９０２に戻り、ＤＫＣモジュール３（及び４）において初期ダーティサブグループＡ２´（及びＡ４´）のコピーが完了したとの判断結果になれば（Ｓ１９０６でＹｅｓ）、ステップ１９０７に進む。なお、Ｓ１９０３でＹｅｓの後、停電となれば（Ｓ１９０５でＹｅｓ）、図２０のＳ２００１に進む（Ｓ２００１以降の処理は後に説明する）。
【０１０５】
Ｓ１９０７において、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、管理情報群２００−１（及び２００−２）における、ＣＭ１１４７−１（及び１１４７−２）に存在する各初期ダーティサブグループＡ２´（及びＡ４´）を構成するダーティデータ要素に対応したバックアップ要否を、バックアップが必要であることを表す情報からバックアップが不要であることを表す情報に更新する。コピーが完了した初期ダーティサブグループＡ２´（及びＡ４´）は、わざわざ消去されずＣＭ１１４７−１（及び１１４７−２）に残される。
【０１０６】
次に、図２１のＳ２１０１において、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、各スレーブのＤＫＣモジュール３（及び４）でのジョブの実行に応じて、管理情報群２００−１（及び２００−２）を更新しながら、初期ダーティサブグループＡ２´（及びＡ４´）を構築してから又は前回のＳ２１０１から現時点ｔまでに更にＣＭ１１４７−１（及び１１４７−２）に記憶された差分ダーティサブグループをコピーすることのジョブを、スレーブのＤＫＣモジュール３（及び４）に発行し、コピーの完了した差分ダーティデータ要素についてはバックアップ不要とするよう管理情報群を更新する（図１０Ａ参照）。
【０１０７】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、ＣＭ１１４７−１の消費割合が１／４以上か否かを判断する（Ｓ２１０２）。第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、ＣＭ１１４７−１（及び１１４７−２）の消費割合が１／４未満に下がっていれば（Ｓ２１０２でＮｏ）、管理情報群２００−１（及び２００−２）における、バックアップ不要として管理されているダーティデータ要素に対応したバックアップ要否を、バックアップが必要であることを表す情報に更新する（Ｓ２１０４）。そして、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、第二のＭＰ１１４１Ｂ−３（及び１１４１Ｂ−４）に対してジョブ群のクリアを命令し、ダーティデータ要素グループの分割を解除し、管理情報群２００−１（及び２００−２）を解放する（Ｓ２１０５）。その後、図１１のＳ１１００に戻る。
【０１０８】
Ｓ２１０２において、ＣＭ１１４７−１の消費割合が１／４以上である場合、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、停電にならなければ（Ｓ２１０３でＮｏ）、Ｓ２１０１に戻り、停電となれば（Ｓ２１０３でＹｅｓ）、図２３のＳ２３０１に進む（Ｓ２３０１以降の処理は後に説明する）。
【０１０９】
以上の通り、停電が無く通常運転が継続している状態では、（ケースＢ）において、適宜に、ＣＭ１１４７−１（及び１１４７−２）上の複数のダーティデータ要素が、他のＣＭ１１４７−３（及び１１４７−４）に均等に分散される。
【０１１０】
ここで、初期ダーティサブグループのコピー中（例えば図１９のＳ１９０５でＹｅｓの際）、或いは、差分ダーティサブグループのコピー中（例えば図２１のＳ２１０２のＹｅｓの際）に、停電が起こったとする。以下、それぞれの場合について説明する。
【０１１１】
＜＜初期ダーティサブグループのコピー中での停電、及びその停電からの回復（復電）＞＞。
【０１１２】
図１９のＳ１９０５でＹｅｓの際に停電が起こったということは、管理情報群２００−１（及び２００−２）において、コピーの済んだダーティデータ要素のバックアップ要否についてバックアップ不要と更新される前（Ｓ１９０７の前）に停電になったということである。そこで、図２０のＳ２００１以降の処理が行われる。
【０１１３】
すなわち、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、管理情報群２００−１（及び２００−２）を参照することで、バックアップが必要なダーティデータ要素が記憶されているキャッシュ領域を特定し、特定したキャッシュ領域にあるダーティデータ要素をＳＳＤ１１５１−１（及び１１５２−１）に退避する（Ｓ２００１）。
【０１１４】
ここで、復電すれば（Ｓ２００２でＹｅｓ）、Ｓ２００５が行われ、復電しなければ（Ｓ２００２でＮｏ）、ダーティデータ要素の退避が完了するまで（Ｓ２００４でＮｏ）ダーティデータ要素の退避が継続される。全てのダーティデータ要素の退避が完了した場合（Ｓ２００４でＹｅｓ）、復電すれば（Ｓ２００４でＹｅｓ）、Ｓ２００５に進み、復電しなければ（Ｓ２００４でＮｏ）、Ｓ２００６に進む。
【０１１５】
Ｓ２００６では、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、マスターのＤＫＣモジュール１（及び２）に対応した電源モジュール１１５内のバッテリ１１８からの放電電圧（ＤＣ電圧）が規定値以下か否かを判断する。放電電圧が規定値以下とならない間に復電すれば（Ｓ２００６でＮｏ及びＳ２００４でＹｅｓ）、ＣＭ１１４７−１（及び１１４７−２）には、バッテリ１１８からの給電により、退避されたダーティデータ要素が残っているため、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、退避されたダーティデータ要素をＳＳＤ１１５１−１（及び１１５１−２）から解放して良い（Ｓ２００５）。
【０１１６】
一方、復電する前に放電電圧が規定値以下となった場合には（Ｓ２００６でＹｅｓ）、ＣＭ１１４７−１（及び１１４７−２）への給電が実質的に無くなるので、ＣＭ１１４７−１（及び１１４７−２）からダーティデータ要素が失われる（Ｓ２００７）。その後、復電があったら（Ｓ２００８でＹｅｓ）、図２２のＳ２２０１が行われる。
【０１１７】
すなわち、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、ＳＳＤ１１５１−１（及び１１５−２）から管理情報群２００−１（及び２００−２）をＣＭ１１４７−１（及び１１４７−２）にステージングすることを決定する（Ｓ２２０１）。
【０１１８】
また、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、ダーティデータ要素をＳＳＤ１１５１−１（及び１１５１−２）からＣＭ１１４７−１（及び１１４７−２）にステージングすることを決定する（Ｓ２２０２）。
【０１１９】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、管理情報群２００−１（及び２００−２）をＣＭ１１４７−１（及び１１４７−２）に読出し終えるまで、管理情報群２００−１（及び２００−２）を構成するデータ要素のＳＳＤ１１５１−１（及び１１５１−２）からの読出しを行う（Ｓ２２０３でＮｏ及びＳ２２０４）。
【０１２０】
管理情報群２００−１（及び２００−２）をＣＭ１１４７−１（及び１１４７−２）に読出し終えたならば（Ｓ２２０３でＹｅｓ）、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、退避された全てのダーティデータ要素をＣＭ１１４７−１（及び１１４７−２）にステージングすることが完了するまで、ＳＳＤ１１５１−１（及び１１５１−２）からのダーティデータ要素の読出しとそのダーティデータ要素のＣＭ１１４７−１（及び１１４７−２）への書込みを繰り返す（Ｓ２２０５でＮｏ及びＳ２２０６）。全てのダーティデータ要素のステージングが完了したならば（Ｓ２２０５でＹｅｓ）、終了となる。
【０１２１】
＜＜差分ダーティサブグループのコピー中での停電、及びその停電からの回復（復電）＞＞。
【０１２２】
図２１のＳ２１０２でＹｅｓの際に停電が起こったということは、管理情報群２００−１（及び２００−２）において、コピーの済んだダーティデータ要素のバックアップ要否についてバックアップ不要と更新された後（Ｓ１９０７の後）に停電になったということである。そこで、図２３のＳ２３０１以降の処理が行われる。
【０１２３】
すなわち、各ＤＫＣモジュール１乃至４において、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、管理情報群２００−１（及び２００−２）又はキャッシュ管理情報を参照することで、バックアップが必要なダーティデータ要素が記憶されているキャッシュ領域を特定し、特定したキャッシュ領域にあるダーティデータ要素を、ＳＳＤ１１５１−１乃至１１５１−４にそれぞれ退避する（Ｓ２３０１）。
【０１２４】
ここで、復電すれば（Ｓ２３０２でＹｅｓ）、Ｓ２３０３が行われ、復電しなければ（Ｓ２３０２でＮｏ）、各ＤＫＣモジュール１乃至４において、ダーティデータ要素の退避が完了するまで（Ｓ２３０４でＮｏ）ダーティデータ要素の退避が継続される。全てのダーティデータ要素の退避が完了した場合（Ｓ２３０４でＹｅｓ）、スレーブのＤＫＣモジュール３（及び４）における第二のＭＰ１１４１Ｂ−３（及び１１４１Ｂ−４）が、マスターのＤＫＣモジュール１（及び２）における第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）に、全てのダーティデータ要素の退避の完了を報告する。第二のＭＰ１１４１Ｂ−１（及び１１４１−２）は、その完了の報告に応答して、第二の管理情報２００−１（及び２００−２）を更新する（例えば、コピーされた各ダーティデータ要素に対応した退避完了フラグを、未完から完了を表す情報に更新する）。その後、復電すれば（Ｓ２３０６でＹｅｓ）、Ｓ２３０３に進み、復電しなければ（Ｓ２３０６でＮｏ）、Ｓ２３０７に進む。
【０１２５】
Ｓ２３０７では、ＤＫＣモジュール１乃至４において、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、ＤＫＣモジュール１乃至４にそれぞれ対応した電源モジュール１１５内のバッテリ１１８からの放電電圧（ＤＣ電圧）が規定値以下か否かを判断する。放電電圧が規定値以下とならない間に復電すれば（Ｓ２３０７でＮｏ及びＳ２３０６でＹｅｓ）、ＣＭ１１４７−１乃至１１４７−４には、バッテリ１１８からの給電により、退避されたダーティデータ要素が残っているため、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４は、退避されたダーティデータ要素をＳＳＤ１１５１−１乃至１１５１−４から解放して良い（Ｓ２３０３）。
【０１２６】
一方、復電する前に放電電圧が規定値以下となった場合には（Ｓ２３０７でＹｅｓ）、ＣＭ１１４７−１乃至１１４７−４への給電が実質的に無くなるので、ＣＭ１１４７−１乃至１１４７−４からダーティデータ要素が失われる（Ｓ２３０８）。その後、復電があったら（Ｓ２３０９でＹｅｓ）、図２４のＳ２４０１が行われる。
【０１２７】
すなわち、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）が、ＳＳＤ１１５１−１（及び１１５１−２）から管理情報群２００−１（及び２００−２）をＣＭ１１４７−１（及び１１４７−２）にステージングすることを決定する（Ｓ２４０１）。
【０１２８】
また、第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４が、ダーティデータ要素をＳＳＤ１１５１−１乃至１１５１−４からＣＭ１１４７−１乃至１１４７−４に戻すことを決定する（Ｓ２４０２）。
【０１２９】
更に、第二のＭＰ１１４１Ｂ−３（及び１１４１Ｂ−４）が、ステージングされたダーティデータ要素をＣＭ１１４７−３及び（１１４７−４）からＣＭ１１４７−１（及び１１４７−２）に転送することを決定する（Ｓ２４０３）。
【０１３０】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、管理情報群２００−１（及び２００−２）のＣＭ１１４７−１（及び１１４７−２）へのステージングが完了するまで管理情報群２００−１（及び２００−２）を構成するデータ要素をＳＳＤ１１５１−１（及び１１５１−２）からＣＭ１１４７−１（及び１１４７−２）にステージングし（Ｓ２４０４でＮｏ、Ｓ２４０４´）、そのステージングが完了したならば（Ｓ２４０４でＹｅｓ）、その管理情報群２００−１（及び２００−２）を基に、スレーブのＤＫＣモジュール３（及び４）から転送されて来るダーティデータ要素の統合・復元処理を決定する（Ｓ２４０５）。
【０１３１】
第二のＭＰ１１４１Ｂ−１乃至１１４１Ｂ−４は、退避された全てのダーティデータ要素をＣＭ１１４７−１乃至１１４７−４にステージングすることが完了するまで、ＳＳＤ１１５１−１乃至１１５１−４からのダーティデータ要素の読出しとそのダーティデータ要素のＣＭ１１４７−１乃至１１４７−４への書込みを繰り返す（Ｓ２４０６でＮｏ及びＳ２４０７）。全てのダーティデータ要素のステージングが完了したならば（Ｓ２４０６でＹｅｓ）、Ｓ２４０８が行われる。なお、Ｓ２４０７では、ＳＳＤ１１５１−１乃至１１５４−１から読み出されたダーティデータ要素は、そのダーティデータ要素から特定される退避元のキャッシュ領域にそれぞれステージングされる（図１０Ｂの点線Ｒ１´乃至Ｒ４´）。
【０１３２】
第二のＭＰ１１４１Ｂ−３（及び１１４１Ｂ−４）は、ステージングされた全てのダーティデータ要素をＣＭ１１４７−３（及び１１４７−４）からＤＫＣモジュール１（及び２）に転送するまで（図１０Ｂの点線Ｔ１´及びＴ２´）、ＣＭ１１４７−３（及び１１４７−４）からのダーティデータ要素の転送を繰り返す（Ｓ２４０８でＮｏ及びＳ２４０９）。全てのダーティデータ要素の転送が完了したならば（Ｓ２４０８でＹｅｓ）、Ｓ２４１０が行われる。
【０１３３】
第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、転送されて来てＣＭ１１４７−１（及び１１４７−２）に書込んだ全てのダーティデータ要素について統合・復元処理が完了するまで、ダーティデータ要素の統合・復元処理を繰り返す（Ｓ２４１０でＮｏ及びＳ２４１１）。
【０１３４】
ダーティデータ要素の統合・復元処理が完了したならば（Ｓ２４１０でＹｅｓ）、第二のＭＰ１１４１Ｂ−１（及び１１４１Ｂ−２）は、管理情報群２００−１（及び２００−２）を解放する（Ｓ２４１２）。
【０１３５】
その後、ストレージシステム１００が、レディー状態となる（Ｉ／Ｏコマンドの受け付けを開始可能な状態）となる（Ｓ２４１３）。
【０１３６】
以上、上述した実施形態によれば、下記の４つの効果、
（効果１）バッテリの電力容量やサイズの削減、
（効果２）システムダウンタイムの短縮、
（効果３）ストレージシステムのコスト低減及びハードウェア資源の有効活用、
（効果４）耐障害性の向上、
が期待できる。以下、各効果について詳述する。
【０１３７】
＜＜（効果１）バッテリの電力容量やサイズの削減＞＞
各ＤＫＣモジュール１１３同士でＣＭ１１４７のダーティデータ要素の総量に不均衡が存在した場合（例えば、一又は二つのＤＫＣモジュール１１３に第一の規定割合以上にダーティデータ要素が蓄積された場合等）、上記の実施形態によれば、ダーティデータ要素グループがダーティサブグループに分割されて他のＤＫＣモジュール１１３のＣＭ１１４７にコピーされる。このため、バッテリ１１８からの給電で行われるバックアップに要する時間長（ＣＭ１１４７上のダーティデータ要素をＳＳＤ１１５１へ退避する時間長）を短縮させることができる。従って、バックアップに必要な電力容量を削減することができ、バッテリ１１８のサイズを削減することが期待できる。例えば、ＤＫＣモジュール１のＣＭ１１４７−１に２０ＭＢ（メガバイト）のダーティデータ要素グループが記憶されていて他のＣＭ１１４７−２乃至１１４７−４にはダーディデータ要素が全く記憶されていない場合、ＣＭ１１４７−１上のダーティデータ要素グループは、５ＭＢずつの４つのダーティサブグループに分割され、そのうちの３つが、ＣＭ１１４７−２乃至１１４７−４にコピーされる。ＣＭ１１４７−１乃至１１４７−４に記憶されている５ＭＢのダーティサブグループがＳＳＤ１１５１−１乃至１１５１−４に退避される。このため、ＣＭ１１４７−１からＳＳＤ１１５１−１に退避されるデータ量は、２０ＭＢから５ＭＢに減る、つまり約１／４となる（なお、ここでは、管理情報群２００のサイズを除いている）。これは、図５Ａに例示する、ダーティデータ要素グループを分割してコピーしないケースと比べて、ダーティデータ要素グループを分割してコピーするケースでは、図５Ｂに例示するように、バッテリ１１８からの給電により行うバックアップの時間長が約１／４となる。これは、バッテリ１１８に必要な電力容量が約１／４となることを意味し、また、その分バッテリサイズを削減することができることを意味する。
【０１３８】
＜＜（効果２）システムダウンタイムの短縮＞＞
前述したように、バックアップ対象のデータ量が約１／４となるため、リストアに必要なデータ量も約１／４となり、故に、リカバリ時間長を短縮でき、以って、システムダウンタイムを短縮することができる。例えば、前述した（ケースＡ）において、ＳＳＤ１１５１への退避（バックアップ）完了後に復電したケースを考える。ＳＳＤ１１５１への退避完了後、復電した場合、各ＤＫＣモジュール１乃至４は、それぞれのＳＳＤ１１５１−１乃至１１５１−４からダーティデータ要素をそれぞれのＣＭ１１４７−１乃至１１４７−４へステージングする。また、スレーブのＤＫＣモジュール２乃至４からマスターの（コピー元の）ＤＫＣモジュール１へのダーティデータ要素の転送が行われる。ＤＫＣモジュール１のＳＳＤ１１５１−１には、ダーティデータ要素を他のＤＫＣモジュールにコピーさせた際に生成された管理情報群２００が格納されており、ＤＫＣモジュール１は、その管理情報群２００を優先的にＣＭ１１４７−１上にステージングさせる。ＤＫＣモジュール１において、その管理情報群２００のステージングが完了した時点で、ＤＫＣモジュール１は、スレーブのＤＫＣモジュール２乃至４から転送されて来るダーティデータ要素の統合を開始し、ＤＫＣモジュール１は、管理情報群を基に、ダーティデータ要素の復元処理を行う。ＤＫＣモジュール１でのダーティデータ要素の復元処理が完了した時点で、ストレージシステム１００は、ホスト計算機１１００からＩ／Ｏコマンドを受け付けることのできる状態（レディー状態）となる。このケースによれば、ＤＫＣモジュール１におけるＳＳＤ１１５１−１からＣＭ１１４７−１へのステージング時間長は、ダーティデータ要素グループが一つのＳＳＤ１１５１−１に退避されている場合（図５Ａの場合）と比較して、図５Ｂに示すように、約１／４となる。このため、復電時点からシステムレディー時点（ストレージシステム１００がレディー状態となる時点）までの時間を約１／４に短縮させることができる。なお、スレーブのＤＫＣモジュールからマスターのＤＫＣモジュールへのダーティデータ要素の転送は、スレーブのＤＫＣモジュールやマスターのＤＫＣモジュールでのＳＳＤ１１５１からＣＭ１１４７へのダーティデータ要素のステージングと並行して行われ、ＤＫＣモジュール間でのデータの転送速度は、ＳＳＤ１１５１−１からＣＭ１１４７−１へのデータ転送速度と比較して極めて高速であるため、その時間は無視して考えても差し支えない。
【０１３９】
＜＜（効果３）ストレージシステムのコスト低減及びハードウェア資源の有効活用＞＞
一般的なストレージシステムのコントローラが、図１Ａ及び図２に例示したように、複数のＤＫＣモジュールに分割されている。これは、ストレージシステム１００のユーザにとって、ストレージシステム１００の導入コストの低減及びハードウェア資源の有効活用となる。具体的には、例えば、一般に、ストレージシステムをユーザが導入しようとした場合、導入時にユーザが望むスケールに対して、ストレージシステムのスケールが大きくなり過ぎるケースが存在し得る。この場合、ユーザは、導入時に不必要なハードウェア資源に対して余分なコストを支払うこととなる。本実施形態によれば、ユーザの必要性（業務規模の拡大等）に応じてＤＫＣモジュールを追加できる構造となっているため、ユーザにとって、導入コストの低減及びハードウェア資源の有効活用できる。
【０１４０】
＜＜（効果４）耐障害性の向上＞＞
ストレージシステムのコントローラが複数のＤＫＣモジュールに分割されているため、耐障害性の向上が期待できる。一般的に、一つのストレージシステムにおいて、コントローラやそれの電源が冗長性を持たせた構造となっているが、本実施形態では、コントローラが更に複数のＤＫＣモジュールに分割されているため、障害時の影響範囲が限定される。つまり、影響を低減させることができる。具体的には、例えば、ＤＫＣモジュールを使用して、対象のＬＤＥＶ、または、他のＤＫＣモジュール配下のＬＤＥＶに対してデータの書込みや読み出しを行うことが可能である。従って、例えば、或るＤＫＣモジュール配下の全てのＬＤＥＶが閉塞した場合においても、ライトデータを他のＤＫＣモジュール配下のＬＤＥＶに一時的に格納することができる。また、或るＤＫＣモジュール内のＭＰ−ＰＫ１１３７が全て閉塞した場合においても、他のＤＫＣモジュールのＭＰ−ＰＫ１１３７内のＭＰ１１４１Ａ又は１１４１Ｂがジョブを代行することも可能である。
【０１４１】
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１４２】
例えば、第二のＭＰ１１４１Ｂが、ＤＫＣモジュール１１３間でのダーティデータ要素のコピーや、ＣＭ１１４７からＳＳＤ１１５１へのダーティデータ要素のバックアップや、ＳＳＤ１１５１からＣＭ１１４７へのダーティデータ要素のステージングなどを行うが、それらのうちの少なくとも一つの処理を、第一のＭＰ１１４１Ａが単独で又は第二のＭＰ１１４１Ｂと協働して行っても良い。
【０１４３】
また、例えば、一つのマスターのＤＫＣモジュールに対するスレーブのＤＫＣモジュールの数をｋ（ｋは２以上の整数）とした場合、前述した第一の規定割合と第二の規定割合との関係として、（第一の規定割合×１／ｋ）と第二の規定割合との和が第一の規定割合を超えない範囲、とすることができる。例えば、マスターのＤＫＣモジュールのＣＭにおけるダーティデータ量が、ＣＭの容量（Ｄmax）×第一の規定割合である場合、スレーブのＤＫＣモジュールのダーティデータ量は、Ｄ０（現在のダーティデータ量）＋Ｄmax×第一の規定割合×１／ｋとなり、それが、Ｄmax×第一の規定割合を超えてはいけないため、以下の関係式、すなわち、（Ｄ０＋Ｄmax×第一の規定割合×１／ｋ）＜Ｄmax×第一の規定割合が成り立ち、第二の規定割合は、Ｄ０／Ｄmaxの値未満とすることができる。
【図面の簡単な説明】
【０１４４】
【図１】図１Ａは、本発明の一実施形態に係るストレージシステムの外観正面の概要を示す。図１Ｂは、電源モジュールの構成例を示す。
【図２】図２は、４つのＤＫＣモジュール１乃至４のそれぞれの構成とそれらの関係を示す。
【図３】図３は、一つのＤＫＣモジュール１内のＣＭから他のＤＫＣモジュール２乃至４のそれぞれのＣＭにダーティデータ要素がコピーされることを示す。
【図４】図４Ａは、ＤＫＣモジュール間でのデータ複製の概念を示す。図４Ｂは、ＤＫＣモジュール１乃至４におけるＳＷ−ＰＫ同士の接続の一例を示す。
【図５】図５Ａは、一つのＣＭに記憶されているダーティデータ要素グループを分割しないでＳＳＤに退避するケースでのバックアップ時間長、リカバリ時間長及びシステムダウンタイムを示す。図５Ｂは、一つのＣＭに記憶されているダーティデータ要素グループを４つのダーティサブグループに分割し４つのダーティサブグループを４つのＣＭにそれぞれ退避するケースでのバックアップ時間長、リカバリ時間長及びシステムダウンタイムを示す。
【図６】図６Ａは、管理情報群の構成例を示す。図６Ｂは、ＳＳＤに退避されるダーティデータ要素の構成例を示す。
【図７】図７Ａは、ＤＫＣモジュール１内でのダーティデータ要素グループの分割の一例を示す。図７Ｂは、ＤＫＣモジュール１から他のＤＫＣモジュール２乃至４への初期ダーティサブグループのコピーの概念を示す。
【図８】図８Ａは、ＤＫＣモジュール１から他のＤＫＣモジュール２乃至４への差分ダーティサブグループのコピーの概念を示す。図８Ｂは、ＤＫＣモジュール１乃至４でのダーティデータ要素のステージング及び他のＤＫＣモジュール２乃至４からＤＫＣモジュール１へのダーティデータ要素の転送の概念を示す。
【図９】図９Ａは、ＤＫＣモジュール１及び２内でのダーティデータ要素グループの分割の一例を示す。図９Ｂは、ＤＫＣモジュール１（及び２）から他のＤＫＣモジュール３（及び４）への初期ダーティサブグループのコピーの概念を示す。
【図１０】図１０Ａは、ＤＫＣモジュール１（及び２）から他のＤＫＣモジュール３（及び４）への差分ダーティサブグループのコピーの概念を示す。図１０Ｂは、ＤＫＣモジュール１乃至４でのダーティデータ要素のステージング及び他のＤＫＣモジュール３（及び４）からＤＫＣモジュール１（及び２）へのダーティデータ要素の転送の概念を示す。
【図１１】図１１は、本発明の一実施形態で行われる処理の流れの第一の部分を示す。
【図１２】図１２は、本発明の一実施形態で行われる処理の流れの第二の部分を示す。
【図１３】図１３は、本発明の一実施形態で行われる処理の流れの第三の部分を示す。
【図１４】図１４は、本発明の一実施形態で行われる処理の流れの第四の部分を示す。
【図１５】図１５は、本発明の一実施形態で行われる処理の流れの第五の部分を示す。
【図１６】図１６は、本発明の一実施形態で行われる処理の流れの第六の部分を示す。
【図１７】図１７は、本発明の一実施形態で行われる処理の流れの第七の部分を示す。
【図１８】図１８は、本発明の一実施形態で行われる処理の流れの第八の部分を示す。
【図１９】図１９は、本発明の一実施形態で行われる処理の流れの第九の部分を示す。
【図２０】図２０は、本発明の一実施形態で行われる処理の流れの第十の部分を示す。
【図２１】図２１は、本発明の一実施形態で行われる処理の流れの第十一の部分を示す。
【図２２】図２２は、本発明の一実施形態で行われる処理の流れの第十二の部分を示す。
【図２３】図２３は、本発明の一実施形態で行われる処理の流れの第十三の部分を示す。
【図２４】図２４は、本発明の一実施形態で行われる処理の流れの第十四の部分を示す。
【図２５】図２５は、ＤＫＣモジュール１がライトコマンドを受けた場合に行われる処理の流れの一例を示す。
【図２６】図２６は、ＤＫＣモジュール１がリードコマンドを受けた場合に行われる処理の流れの一例を示す。
【符号の説明】
【０１４５】
１００…ストレージシステム  １１３…ＤＫＣモジュール  １１５…電源モジュール
【図１】
0004977554.tif 000002
【図２】
0004977554.tif 000003
【図３】
0004977554.tif 000004
【図４】
0004977554.tif 000005
【図５】
0004977554.tif 000006
【図６】
0004977554.tif 000007
【図７】
0004977554.tif 000008
【図８】
0004977554.tif 000009
【図９】
0004977554.tif 000010
【図１０】
0004977554.tif 000011
【図１１】
0004977554.tif 000012
【図１２】
0004977554.tif 000013
【図１３】
0004977554.tif 000014
【図１４】
0004977554.tif 000015
【図１５】
0004977554.tif 000016
【図１６】
0004977554.tif 000017
【図１７】
0004977554.tif 000018
【図１８】
0004977554.tif 000019
【図１９】
0004977554.tif 000020
【図２０】
0004977554.tif 000021
【図２１】
0004977554.tif 000022
【図２２】
0004977554.tif 000023
【図２３】
0004977554.tif 000024
【図２４】
0004977554.tif 000025
【図２５】
0004977554.tif 000026
【図２６】
0004977554.tif 000027