(57)【要約】【課題】データディスクに障害が発生したときに実行されるスペアディスクへのコレクションコピー処理と、ホスト計算機からのＩ／Ｏ要求に対するデータディスクへの読み書き処理とをバランスよく効率的に処理することにより、性能向上を図る。【解決手段】コントローラは、複数のデータディスク４１のうち何れか一つ以上のデータディスク４１に障害が発生した場合において、障害が生じたデータディスク４１が属するＲＡＩＤグループ５１へのリード要求をホスト計算機から受信すると、ＲＡＩＤグループ５１に属するその他のデータディスク４１に格納されているデータを用いてデータ復旧し、復旧されたデータをホスト計算機に送信するとともに、その復旧されたデータをスペアディスク４３に書き込む。【選択図】図３
2008046986.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、
一つ以上のスペアデバイスと、
ホスト計算機からのＩ／Ｏ要求に応答して前記ストレージデバイスへのデータ入出力を制御するコントローラと、
を備え、
前記コントローラは、前記複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求を前記ホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記ホスト計算機に送信するとともに前記復旧されたデータを前記スペアデバイスに書き込む、ストレージシステム。
【請求項２】
一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、
一つ以上のスペアデバイスと、
ホスト計算機からのＩ／Ｏ要求に応答して前記ストレージデバイスへのデータ入出力を制御するコントローラと、
を備え、
前記コントローラは、前記複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、
前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求を前記ホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記ホスト計算機に送信するとともに前記復旧されたデータを前記スペアデバイスに書き込む第一のコレクションライトと、
障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記スペアデバイスに書き込む第二のコレクションライトと、
を並行処理する、ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記コントローラは、ホストＩ／Ｏ特性又は前記ストレージシステムの負荷状態に基づいて、単位時間あたりの前記第一のコレクションライトの実行割合と前記第二のコレクションライトの実行割合を設定する、ストレージシステム。
【請求項４】
請求項３に記載のストレージシステムであって、
前記ホストＩ／Ｏ特性は、前記ホスト計算機から前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求が発行されていない時間、又は前記ホスト計算機から前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求がシーケンシャルアクセスか或いはランダムアクセスかの情報を含み、
前記ストレージシステムの負荷状態は、前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ負荷、又は前記障害が生じたストレージデバイスが属するＲＡＩＤグループにデステージされていないダーティデータのキャッシュ使用率を含む、ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求が発行されていない時間が所定の閾値を超えると、前記第一のコレクションライトよりも前記第二のコレクションライトを優先的に実行する、ストレージシステム。
【請求項６】
請求項４に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求がシーケンシャルアクセスである場合には、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項７】
請求項４に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記障害が生じたストレージデバイスが属する前記ＲＡＩＤグループへのＩ／Ｏ負荷が所定の閾値を超えると、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項８】
請求項４に記載のストレージシステムであって、
前記コントローラは、前記障害が生じたストレージデバイスが属する前記ＲＡＩＤグループにデステージされていないダーティデータのキャッシュ使用率が所定の閾値を超えると、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項９】
請求項４に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記障害が生じたストレージデバイスが属する前記ＲＡＩＤグループへのＩ／Ｏ要求を優先的に処理する動作モードが設定されている場合には、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１０】
請求項２に記載のストレージシステムであって、
前記コントローラは、前記第一のコレクションライトによりデータ復旧された記憶領域についての前記第二のコレクションライトによるデータ復旧を省略する、ストレージシステム。
【請求項１１】
一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、
一つ以上のスペアデバイスと、
ホスト計算機からのＩ／Ｏ要求に応答して前記ストレージデバイスへのデータ入出力を制御するコントローラと、
を備え、
前記コントローラは、前記複数のストレージデバイスのうち何れか一つ以上のストレージデバイスのアクセスエラー率が所定の閾値を超えた場合において、
前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、前記アクセスエラー率が所定の閾値を超えた前記ストレージデバイスからデータをリードしてホスト計算機に送信するとともに、前記アクセスエラー率が所定の閾値を超えた前記ストレージデバイスからリードしたデータをスペアデバイスに書き込む第一のコレクションライトと、
前記アクセスエラー率が所定の閾値を超えた前記ストレージデバイスに格納されているデータを前記スペアデバイスにコピーする第二のコレクションライトと、
を並行処理する、ストレージシステム。
【請求項１２】
請求項１１に記載のストレージシステムであって、
前記コントローラは、ホストＩ／Ｏ特性又は前記ストレージシステムの負荷状態に基づいて、単位時間あたりの前記第一のコレクションライトの実行割合と前記第二のコレクションライトの実行割合を設定する、ストレージシステム。
【請求項１３】
請求項１１に記載のストレージシステムであって、
前記ホストＩ／Ｏ特性は、前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求が発行されていない時間、又は前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求がシーケンシャルアクセスか或いはランダムアクセスかの情報を含み、
前記ストレージシステムの負荷状態は、前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ負荷、又は前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループにデステージされていないダーティデータのキャッシュ使用率を含む、ストレージシステム。
【請求項１４】
請求項１３に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求が発行されていない時間が所定の閾値を超えると、前記第一のコレクションライトよりも前記第二のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１５】
請求項１３に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求がシーケンシャルアクセスである場合には、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１６】
請求項１３に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属する前記ＲＡＩＤグループへのＩ／Ｏ負荷が所定の閾値を超えると、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１７】
請求項１３に記載のストレージシステムであって、
前記コントローラは、前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属する前記ＲＡＩＤグループにデステージされていないダーティデータのキャッシュ使用率が所定の閾値を超えると、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１８】
請求項１３に記載のストレージシステムであって、
前記コントローラは、前記ホスト計算機から前記アクセスエラー率が所定の閾値を超えたストレージデバイスが属する前記ＲＡＩＤグループへのＩ／Ｏ要求を優先的に処理する動作モードが設定されている場合には、前記第二のコレクションライトよりも前記第一のコレクションライトを優先的に実行する、ストレージシステム。
【請求項１９】
請求項１１に記載のストレージシステムであって、
前記コントローラは、前記第一のコレクションライトによりデータ復旧された記憶領域についての前記第二のコレクションライトによるデータ復旧を省略する、ストレージシステム。
【請求項２０】
一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、
一つ以上のスペアデバイスと、
ホスト計算機からのＩ／Ｏ要求に応答して前記ストレージデバイスへのデータ入出力を制御するコントローラと、
を備え、
前記コントローラは、前記複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのホストＩ／Ｏ要求がランダムアクセスである場合には、第一のデータ復旧方式によるデータ復旧を行う一方、前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのホストＩ／Ｏ要求がシーケンシャルアクセスである場合には、第二のデータ復旧方式によるデータ復旧を行い、
前記第一のデータ復旧方式は、
前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求を前記ホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記ホスト計算機に送信する処理と、
障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記スペアデバイスに書き込む処理と、
を並行処理する方式であり、
前記第二のデータ復旧方式は、
前記障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求を前記ホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記ホスト計算機に送信するとともに前記復旧されたデータを前記スペアデバイスに書き込む第一のコレクションライトと、
障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータを前記スペアデバイスに書き込む第二のコレクションライトと、
を並行処理する方式である、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は冗長構成された複数のストレージデバイスを有するストレージシステムに関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant Arrays of Independent Inexpensive Disks）構成された複数のディスクドライブを有するディスクアレイシステムにおいては、複数のディスクドライブを並列に運転してデータ処理を行っている。例えば、ディスクアレイシステムは、ホストシステムからライトコマンドを受信すると、ライトデータに冗長データを付加した上で、複数のディスクドライブに分散して、データの書き込みを行う。
【０００３】
一方、ディスクアレイシステムは、ホストシステムからリードコマンドを受信すると、各ディスクドライブに分散して書き込まれたデータを並列に読み出して、これをホストシステムに送信する。この種のディスクアレイシステムでは、ＲＡＩＤ構成された複数のディスクドライブのうち何れかのディスクドライブに障害が発生すると、冗長データを用いてエラー訂正を行い、縮退運転する機能を有している。縮退運転では、冗長度が低いので、スペアディスクにコレクションコピーを行い、データを復旧させるのが通常である。
【０００４】
そして、スペアディスクへのデータ復旧が完了し、障害の発生したディスクドライブが新たなディスクドライブに手動交換されると、ディスクアレイシステムは、スペアディスクに再構成されたデータを当該新たなディスクドライブにコピーバックしていた。
【０００５】
スペアディスクへのコレクションコピーに言及した文献として、例えば、特開２００５−３８２７１号公報、及び特開平５−３１４６７４号公報などが知られている。
【特許文献１】特開２００５−３８２７１号公報
【特許文献１】特開平５−３１４６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ディスクドライブに障害が発生したときに実行されるスペアディスクへのコレクションコピーは、ホスト計算機からのＩ／Ｏ要求（以下、ホストＩ／Ｏと称する。）に対するディスクドライブへの読み書きとは非同期的に処理され、所定時間以内に完了するものであるが、復旧対象のディスクドライブを含むＲＡＩＤグループへのホストＩ／Ｏの負荷が高いと、コレクションコピー処理とホストＩ／Ｏ処理とが競合し、それぞれの処理の性能低下を招いていた。
【０００７】
また、それぞれの処理の負荷バランスが不均衡になることにより、一方の処理が他方の処理性能に影響を与えるという不具合を招いていた。例えば、ホストＩ／Ｏ処理を優先してコレクションコピー処理を中断すると、データ復旧が進捗しない。一方、コレクションコピー処理を優先してホストＩ／Ｏ処理を中断すると、ホストＩ／Ｏ性能が低下してしまう。
【０００８】
そこで、本発明はこのような問題を解決し、ストレージデバイスに障害が発生したときに実行されるスペアデバイスへのコレクションコピー処理と、ホスト計算機からのＩ／Ｏ要求に対するストレージデバイスへの読み書き処理とをバランスよく効率的に処理することにより性能向上を図ることを課題とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明に係るストレージシステムは、一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、一つ以上のスペアデバイスと、ホスト計算機からのＩ／Ｏ要求に応答してストレージデバイスへのデータ入出力を制御するコントローラと、を備える。コントローラは、複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをホスト計算機に送信するとともに復旧されたデータをスペアデバイスに書き込む。
【００１０】
ホスト計算機からの要求に基づいて、データ読み出し用に復旧されたデータを用いてスペアデバイスへコレクションライトすることにより、ホストアクセス処理とデータ復旧処理とを並行して処理できるので、効率的なデータ復旧が可能になる。
【００１１】
ここで、コントローラは、ホストＩ／Ｏ特性又はストレージシステムの負荷状態に基づいて、単位時間あたりの第一のコレクションライトの実行割合と第二のコレクションライトの実行割合を設定するのが好ましい。これにより、効率的なデータ復旧が可能になる。
【００１２】
ホストＩ／Ｏ特性の一例として、例えば、ホスト計算機から障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求が発行されていない時間、又はホスト計算機から障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ要求がシーケンシャルアクセスか或いはランダムアクセスかの情報がある。ストレージシステムの負荷状態の一例として、例えば、障害が生じたストレージデバイスが属するＲＡＩＤグループへのＩ／Ｏ負荷、又は障害が生じたストレージデバイスが属するＲＡＩＤグループにデステージされていないダーティデータのキャッシュ使用率がある。
【００１３】
本発明の他の側面に係わるストレージシステムは、一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、一つ以上のスペアデバイスと、ホスト計算機からのＩ／Ｏ要求に応答してストレージデバイスへのデータ入出力を制御するコントローラと、を備える。コントローラは、複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをホスト計算機に送信するとともに復旧されたデータをスペアデバイスに書き込む第一のコレクションライトと、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをスペアデバイスに書き込む第二のコレクションライトと、を並行処理する。
【００１４】
第一のコレクションライトと第二のコレクションライトとを並行処理することで、第一のコレクションライトでデータ復旧した記憶領域を第二のコレクションライトではデータ復旧をスキップできるので、効率的なデータ復旧が可能になる。
【００１５】
コントローラは、ホストＩ／Ｏ特性又は前記ストレージシステムの負荷状態に基づいて、単位時間あたりの第一のコレクションライトの実行割合と第二のコレクションライトの実行割合を設定するのが好ましい。
【００１６】
これにより、ストレージデバイスに障害が発生したときに実行されるスペアデバイスへのコレクションコピー処理と、ホスト計算機からのＩ／Ｏ要求に対するストレージデバイスへの読み書き処理とをバランスよく効率的に処理することにより性能低下を最小限に抑えることができる。
【００１７】
本発明の更に他の側面に係わるストレージシステムは、一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、一つ以上のスペアデバイスと、ホスト計算機からのＩ／Ｏ要求に応答して前記ストレージデバイスへのデータ入出力を制御するコントローラと、を備える。コントローラは、複数のストレージデバイスのうち何れか一つ以上のストレージデバイスのアクセスエラー率が所定の閾値を超えた場合において、アクセスエラー率が所定の閾値を超えたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、アクセスエラー率が所定の閾値を超えたストレージデバイスからデータをリードしてホスト計算機に送信するとともに、アクセスエラー率が所定の閾値を超えたストレージデバイスからリードしたデータをスペアデバイスに書き込む第一のコレクションライトと、アクセスエラー率が所定の閾値を超えたストレージデバイスに格納されているデータをスペアデバイスにコピーする第二のコレクションライトと、を並行処理する。
【００１８】
本発明の更に他の側面に係わるストレージシステムは、一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、一つ以上のスペアデバイスと、ホスト計算機からのＩ／Ｏ要求に応答してストレージデバイスへのデータ入出力を制御するコントローラと、を備える。コントローラは、複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が発生した場合において、障害が生じたストレージデバイスが属するＲＡＩＤグループへのホストＩ／Ｏ要求がランダムアクセスである場合には、第一のデータ復旧方式によるデータ復旧を行う一方、障害が生じたストレージデバイスが属するＲＡＩＤグループへのホストＩ／Ｏ要求がシーケンシャルアクセスである場合には、第二のデータ復旧方式によるデータ復旧を行う。
【００１９】
ここで、第一のデータ復旧方式は、障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをホスト計算機に送信する処理と、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをスペアデバイスに書き込む処理と、を並行処理する方式である。
【００２０】
第二のデータ復旧方式は、障害が生じたストレージデバイスが属するＲＡＩＤグループへのリード要求をホスト計算機から受信すると、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをホスト計算機に送信するとともに、復旧されたデータをスペアデバイスに書き込む第一のコレクションライトと、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてデータ復旧し、復旧されたデータをスペアデバイスに書き込む第二のコレクションライトと、を並行処理する方式である。
【発明の効果】
【００２１】
本発明によれば、ストレージデバイスに障害が発生したときに実行されるスペアデバイスへのコレクションコピー処理と、ホスト計算機からのＩ／Ｏ要求に対するストレージデバイスへの読み書き処理とをバランスよく効率的に処理することによりストレージデバイス障害時のホストＩ／Ｏ性能低下と復旧時間の増加を最小限に抑えることができる。
【発明を実施するための最良の形態】
【００２２】
本実施形態に係わるストレージシステムは、一つ以上のＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスと、一つ以上のスペアデバイスと、ホスト計算機からのＩ／Ｏ要求に応答してストレージデバイスへのデータ入出力を制御するコントローラとを備える。
【００２３】
ＲＡＩＤグループの記憶領域を提供する複数のストレージデバイスのうち何れか一つ以上のストレージデバイスに障害が生じると、コントローラはデータ復旧処理を実行する。データ復旧処理は、ホスト計算機からのＩ／Ｏ要求に応答して、障害が生じたストレージデバイスが属するＲＡＩＤグループの他のストレージデバイスから読み出したデータに基づいてパリティ計算を行うことにより復旧されたデータをホスト計算機に送信するとともにその復旧したデータをスペアデバイスに書き込む第一のコレクションライトと、障害が発生したストレージデバイスが属するＲＡＩＤグループと同一のＲＡＩＤグループに属するその他のストレージデバイスに格納されているデータを用いてパリティ計算を行うことにより復旧されたデータをスペアデバイスに書き込む第二のコレクションライトと、を含む。
【００２４】
コントローラは、第一のコレクションライト及び第二のコレクションライトによってデータ復旧された記憶領域がどこであるかを、例えば、ビットマップテーブルにより管理する。第一のコレクションライトによりデータ復旧された記憶領域については、第二のコレクションライトによるデータ復旧を省略する。
【００２５】
コントローラは、ホストＩ／Ｏ特性がシーケンシャルアクセスであるか又はランダムアクセスであるかを判定し、シーケンシャルアクセスである場合には、第一のコレクションライトによるデータ復旧を優先的に実行する一方、ランダムアクセスである場合には、第二のコレクションライトによるデータ復旧を優先的に実行するのが好ましい。ホストＩ／Ｏ特性がシーケンシャルアクセスである場合には、データ読み出し用に復旧されたデータを用いてスペアデバイスへコレクションライトすることにより、ホストアクセス処理とデータ復旧処理とを並行して処理できるので、効率的なデータ復旧が可能になる。一方、ホストＩ／Ｏ特性がランダムアクセスである場合には、第二のコレクションライトによるデータ復旧を優先することで、細かい記憶領域単位でのデータ復旧管理を省けるので、データ復旧の進捗管理を簡易化できる。
【００２６】
また、コントローラは、ホストＩ／Ｏ特性やストレージシステムの負荷状態に基づいて第一のコレクションライトの単位時間あたりの実行割合と、第二のコレクションライトの単位時間あたりの実行割合とを設定してもよい。
【００２７】
尚、ストレージデバイス又はスペアデバイスは、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、フラッシュメモリ、光ディスク等のような物理デバイスである。
【実施例】
【００２８】
以下、各図を参照しながら本発明の実施例について説明する。
図１は本実施例に係るストレージシステム１０の主要構成を示している。ストレージシステム１０は、通信ネットワーク６１を介して一つ以上のホスト計算機６０に接続している。ホスト計算機６０は、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト計算機６０には、例えば、Ｗｅｂアプリケーションソフトウェア、ストリーミングアプリケーションソフトウェア、ｅビジネスアプリケーションソフトウェア等が実装されている。
【００２９】
通信ネットワーク６１としては、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等を挙げることができる。ホスト計算機６０がＳＡＮを介してストレージシステム１０に接続する場合、ホスト計算機６０は、ファイバチャネルプロトコル又はｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ストレージシステム１０の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。ホスト計算機６０がＬＡＮを介してストレージシステム１０に接続する場合、ホスト計算機６０は、ＮＦＳ（Network File System）やＣＩＦＳ（Common Interface File System）等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ストレージシステム１０がホスト計算機６０からのファイルアクセス要求を受け付けるためには、ＮＡＳ（Network Attached Storage）機能を搭載する必要がある。
【００３０】
ストレージシステム１０は、二重化されたコントローラ２０，３０と、記憶装置４０とを備える。
【００３１】
記憶装置４０は、ＲＡＩＤグループ５１の記憶領域を提供する複数のデータディスク４１と、ＲＡＩＤグループ５２の記憶領域を提供する複数のデータディスク４２と、一つ以上のスペアディスク４３を備える。データディスク４１，４２及びスペアディスク４３として、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ等の各種ディスクドライブを用いることができる。
【００３２】
ＲＡＩＤグループ５１は、例えば、４つのデータディスク４１を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのデータディスク４１を一組としてグループ化することにより（７Ｄ＋１Ｐ）、構成される。即ち、複数のデータディスク４１のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループ５１が構成される。
【００３３】
同様に、ＲＡＩＤグループ５２は、例えば、４つのデータディスク４２を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのデータディスク４２を一組としてグループ化することにより（７Ｄ＋１Ｐ）、構成される。即ち、複数のデータディスク４２のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループ５２が構成される。
【００３４】
コントローラ２０又は３０は、記憶装置４０をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤグループ上には、ホスト計算機６０からのアクセス単位である一つ以上の論理ユニットが定義されている。論理ユニットには、ＬＵＮ（Logical Unit Number）がアサインされる。
【００３５】
コントローラ２０は、主に、ＣＰＵ２１、ローカルメモリ（ＬＭ）２２、データ転送制御部（Ｄ−ＣＴＬ）２３、ホストＩ／Ｆ制御部２４、ドライブＩ／Ｆ制御部２５、及びキャッシュメモリ（ＣＭ）２６を備える。
【００３６】
ＣＰＵ２１は、ホスト計算機６０からのデータ入出力要求に応答して記憶装置４０へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御するプロセッサである。ローカルメモリ２２には、ＣＰＵ２１のマイクロプログラム、及び後述するビットマップテーブル２００（図４参照）及び管理テーブル４００（図５参照）が格納される。キャッシュメモリ２６は、記憶装置４０に書き込むためのライトデータ、又は記憶装置４０から読み出したリードデータを一時的に格納するバッファメモリである。キャッシュメモリ２６は、電源バックアップされており、ストレージシステム１０に電源障害が発生した場合でも、キャッシュデータのロストを防ぐように構成されている。
【００３７】
データ転送制御部２３は、ホストＩ／Ｆ制御部２４、ドライブＩ／Ｆ制御部２５、及びキャッシュメモリ２６を相互に接続し、ホスト計算機６０と記憶装置４０との間のデータ転送を制御する。具体的には、ホスト計算機６０からライトアクセスが行われると、データ転送制御部２３は、ホストＩ／Ｆ制御部２４を介してホスト計算機６０から受け取ったライトデータをキャッシュメモリ２６に書き込む。ドライブＩ／Ｆ制御部２５は、キャッシュメモリ２６に書き込まれたライトデータを記憶装置４０に書き込む。一方、ホスト計算機６０からリードアクセスが行われると、データ転送制御部２３は、ドライブＩ／Ｆ制御部２５を介して記憶装置４０から読みとったリードデータをキャッシュメモリ２６に書き込むとともに、ホストＩ／Ｆ制御部２４に転送する。
【００３８】
ホストＩ／Ｆ制御部２４は、ホスト計算機６０とコントローラ２０との間のインターフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルに基づくホスト計算機６０からのブロックアクセス要求や、ファイル転送プロトコルに基づくホスト計算機６０からのファイルアクセス要求を受信する機能を有する。ドライブＩ／Ｆ制御部２５は、コントローラ２０と記憶装置４０との間のインターフェースを制御するコントローラであり、例えば、記憶装置４０を制御するプロトコルに従って、記憶装置４０へのデータ入出力要求を制御する機能を有する。
【００３９】
コントローラ３０は、ＣＰＵ３１、ローカルメモリ（ＬＭ）３２、データ転送制御部（Ｄ−ＣＴＬ）３３、ホストＩ／Ｆ制御部３４、ドライブＩ／Ｆ制御部３５、及びキャッシュメモリ（ＣＭ）３６を備えており、コントローラ２０と同様の構成となっている。
【００４０】
データ転送制御部２３及び３３は、データバス６２を通じて接続されており、一方のキャッシュメモリ２６に書き込まれるデータは、他方のキャッシュメモリ３６にも二重書きされるようにデータ転送制御部２３及び３３間でデータ転送を行っている。また、記憶装置４０がＲＡＩＤレベル５で管理される場合には、データ転送制御部２３及び３３がパリティデータを演算する。
【００４１】
次に、図２乃至図３を参照しながら本実施例係るデータ復旧方法について概説する。図１に示す符号と同一符号のデバイスは、同一のデバイスを示すものとしてその詳細な説明を省略する。また、図２乃至図３において、“Ｒ”はリードを示し、“ＣＲ”はコレクションリードを示し、“ＣＷ”はコレクションライトを示す。尚、本明細書では、コレクションコピーとコレクションライトは同義の意義を有するものとする。
【００４２】
図２は第一のデータ復旧方式の処理概要を示している。第一のデータ復旧方式では、ＲＡＩＤグループ５１に属する何れかのデータディスク４１に障害が生じた場合において、ホストＩ／Ｏ要求があると、ＲＡＩＤグループ５１に属するその他のデータディスク４１（パリティディスクを含む）に格納されているデータを使用してのパリティ計算によるデータ復旧がなされ、データ読み出しが実行されるとともに、データ読み出し用のデータ復旧とは別にそのバックグランドでコレクションライト用のデータ復旧がなされ、スペアディスク４３へのコレクションライトが実行される。第一のデータ復旧方式では、ホストＩ／Ｏ要求に応答してデータディスク４１から復旧されたデータとは別にスペアディスク４３にコレクションライトされるデータが復旧される点において、後述の第二のデータ復旧方式とは異なる。
【００４３】
図３は第二のデータ復旧方式の処理概要を示している。第二のデータ復旧方式では、ＲＡＩＤグループ５１に属する何れかのデータディスク４１に障害が生じた場合において、ホストＩ／Ｏ要求があると、ＲＡＩＤグループ５１に属するその他のデータディスク４１（パリティディスクを含む）に格納されているデータを使用してのパリティ計算によるデータ復旧がなされ、データ読み出しが実行されるとともに、データ読み出し用に復旧されたデータを用いてスペアディスク４３へのコレクションライトが実行される。更にそのバックグラウンドでは、データ読み出し用のデータ復旧とは別にコレクションライト用のデータ復旧がなされ、スペアディスク４３へのコレクションライトが実行される。第二のデータ復旧方式では、ホストＩ／Ｏ要求に応答してデータディスク４１から復旧されたデータを用いてスペアディスク４３にコレクションライトが実行される点において、上述の第一のデータ復旧方式とは異なる。
【００４４】
さて、第二のデータ復旧方式では、ホストＩ／Ｏ要求に応答してデータ読み出し用に復旧されたデータを用いてのスペアディスク４３へのコレクションライト（以下、便宜上、ホストコレクションライト（ホストＣＷ）と称する。）と、コレクションライト用に復旧されたデータを用いてのスペアディスク４３へのコレクションライト（以下、便宜上、バックグラウンドコレクションライト（バックグラウンドＣＷ）と称する。）がそれぞれ並行処理される。
【００４５】
ホストコレクションライトでは、ホストＩ／Ｏ要求に応答してデータ読み出し用に復旧されたデータを用いてスペアディスク４３にコレクションライトされるので、ホストＩ／Ｏ要求がシーケンシャルリードである場合には、障害が発生したデータディスク４１のうち連続する複数の単位記憶領域についてのデータ復旧が完了し、ホストＩ／Ｏ要求がランダムリードである場合には、障害が発生したデータディスク４１のうち各エリアに分散する一つ以上の単位記憶領域についてのデータ復旧が完了する。このため、ホストコレクションライトのみでは、データディスク４１の全記憶領域についてリード要求やライト要求がない限り、完全なデータ復旧は不可能である。
【００４６】
これに対し、バックグラウンドコレクションライトでは、コレクションライト用に復旧されたデータをスペアディスク４３に書き込んでいくので、データディスク４１の全記憶領域について、洩れなくデータ復旧することができる。データ復旧の順番としては、例えば、論理ブロックアドレス順に単位記憶領域のデータを復旧させていく方法が好適である。このように、ホストＩ／Ｏ要求に応答してデータ読み出し用に復旧されたデータを用いてスペアディスク４３にコレクションライトすることにより、効率よくデータ復旧できる上に、ホストコレクションライトでは十分にデータ復旧できない記憶領域をバックグラウンドコレクションライトによってデータ復旧することで、確実なデータ復旧が期待できる。
【００４７】
ところで、ホストコレクションライトとバックグラウンドコレクションライトとを並列して処理する場合には、障害が発生したデータディスク４１に格納されているデータのうちどの範囲のデータまで復旧できたかを管理する必要がある。図４に示すように、コントローラ２０又は３０は、障害が発生したデータディスク４１に格納されているデータのうちどの範囲のデータまで復旧できたかをビットマップテーブル２００によって管理する。ビットマップテーブル２００の各ビットは、データディスク４１の単位記憶領域に対応付けられている。例えば、データディスク４１の記憶容量をＡバイトとし、単位記憶領域をＢバイトとすると、ビットマップテーブル２００には、（Ａ／Ｂ）ビットのデータが並ぶ。ビットマップテーブル２００に並ぶ各ビットは、対応する単位記憶領域のデータ復旧が未完了の場合には「０」の値（初期値）をとり、対応する単位記憶領域のデータ復旧が完了している場合には「１」の値をとる。
【００４８】
ポインタ３００は、バックグラウンドコレクションライトによりデータ復旧が完了した複数の単位記憶領域のうち一番最近にデータ復旧が完了した単位記憶領域に対応するビット位置を指し示す。符号２０１，２０２は、ホストコレクションライトによりデータ復旧が完了した単位記憶領域に対応するビットを示す。ホストコレクションライトは、リード要求がある単位記憶領域についてデータ復旧が行われるものなので、ランダムリード要求がなされると、同図に示すように分散的にデータ復旧が行われる。コントローラ２０又は３０は、ホストコレクションライトによりデータ復旧した単位記憶領域についてのバックグラウンドコレクションライトによるデータ復旧をスキップし、未だデータ復旧が完了してない単位記憶領域についてバックグラウンドコレクションライトによるデータ復旧を行う。コントローラ２０又は３０はポインタ３００を参照することにより、データ復旧再開ポイント（データ復旧の対象となる先頭の単位記憶領域）を検索することができる。
【００４９】
尚、単位記憶領域のサイズは、ホストＩ／Ｏ特性に基づいて、適宜設定するのが好ましい。例えば、シーケンシャルアクセスが多い場合には、ホストコレクションライトによるデータ復旧は効率的に進行するので、単位記憶領域のサイズを大容量に設定することで、データ復旧管理が容易になる。一方、ランダムアクセスが多い場合には、ホストコレクションライトによるデータ復旧は非効率的なので、単位記憶領域のサイズを小容量に設定するのが好ましい。
【００５０】
第二のデータ復旧方式において、ホストコレクションライトとバックグラウンドコレクションライトとの並行処理によりデータ復旧するには、ホストＩ／Ｏ特性やストレージシステム１０の負荷状態に応じてホストコレクションライト及びバックグラウンドコレクションライトのそれぞれの優先度を設定変更できるようにするのが好ましい。コントローラ２０又は３０は、図５に示すような管理テーブル４００を使用してホストコレクションライト及びバックグラウンドコレクションライトのそれぞれの優先度を設定変更する。管理テーブル４００は、ホストＩ／Ｏ特性やストレージシステム１０の負荷状態に関する情報を保持する。ホストＩ／Ｏ特性やストレージシステム１０の負荷状態に関する情報として、ここでは、「Ｉ／Ｏ待ち時間」、「Ｉ／Ｏ負荷」、「キャッシュ使用率」、「モード設定」を例示するが、この例に限られるものではない。「Ｉ／Ｏ待ち時間」は、ホスト計算機６０からＲＡＩＤグループ５１，５２へのホストＩ／Ｏ要求が発行されていない時間を示す。「Ｉ／Ｏ負荷」は、ホスト計算機６０からＲＡＩＤグループ５１，５２に単位時間あたりに発行されるホストＩ／Ｏ要求の数を示す。「キャッシュ使用率」は、キャッシュメモリ２６又は３６の全記憶容量のうちＲＡＩＤグループ５１，５２にデステージされていないダーティデータが格納されている記憶容量の割合を示す。「モード設定」は、ホストＩ／Ｏ優先モードが設定されているか否かを示す。ホストＩ／Ｏ優先モードが設定されると、バックグラウンドコレクションライトよりもホストコレクションライトが優先的に実行される。
【００５１】
図６は本実施例に係るデータ復旧処理を示すフローチャートである。説明の便宜上、ＲＡＩＤグループ５１内の一台のデータディスク４１に障害が発生し、コントローラ２０が第二のデータ復旧方式によりデータ復旧する場合を想定して説明を進める。
【００５２】
コントローラ２０は、ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間（例えば５秒間）を超えているか否かを判定する（ステップ６０１）。
【００５３】
ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間を越えている場合には（ステップ６０１；ＹＥＳ）、ホストコレクションライトによるデータ復旧は期待できないので、コントローラ２０は、バックグラウンドコレクションライトの優先度をホストコレクションライトの優先度よりも高い値に設定する（ステップ６０６）。例えば、バックグラウンドコレクションライトの優先度を１００％に設定し、ホストコレクションライトの優先度を０％に設定する。
【００５４】
ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間を越えていない場合には（ステップ６０１；ＮＯ）、コントローラ２０は、ＲＡＩＤグループ５１へのホストＩ／Ｏ負荷が閾値（例えば２００〜３００ＩＯＰＳ）を超えているか否かを判定する（ステップ６０２）。
【００５５】
ＲＡＩＤグループ５１へのホストＩ／Ｏ負荷が閾値を超えている場合には（ステップ６０２；ＹＥＳ）、ホストコレクションライトによる効率的なデータ復旧が期待できるので、コントローラ２０は、ホストコレクションライトの優先度をバックグラウンドコレクションライトの優先度よりも高い値に設定する（ステップ６０７）。例えば、ホストコレクションライトの優先度を１００％に設定し、バックグラウンドコレクションライトの優先度を０％に設定する。
【００５６】
ＲＡＩＤグループ５１へのホストＩ／Ｏ負荷が閾値を超えていない場合には（ステップ６０２；ＮＯ）、コントローラ２０は、ＲＡＩＤグループ５１にデステージされていないダーティデータのキャッシュ使用率が閾値（例えば３０〜４０％）を超えている否かを判定する（ステップ６０３）。
【００５７】
キャッシュ使用率が閾値を超えている場合には（ステップ６０３；ＹＥＳ）、ホストＩ／Ｏ性能の低下を抑制し、ホストＩ／Ｏ処理を優先する必要があるので、ホストコレクションライトの優先度をバックグラウンドコレクションライトの優先度よりも高い値に設定する（ステップ６０８）。例えば、ホストコレクションライトの優先度を８０％に設定し、バックグラウンドコレクションライトの優先度を２０％に設定する。
【００５８】
キャッシュ使用率が閾値を超えていない場合には（ステップ６０３；ＮＯ）、コントローラ２０は、ホストコレクションライトの優先度とバックグラウンドコレクションライトの優先度を同程度に設定する（ステップ６０４）。例えば、ホストコレクションライトの優先度を５０％に設定し、バックグラウンドコレクションライトの優先度を５０％に設定する。
【００５９】
そして、コントローラ２０は、データ復旧が完了したか否かを判定する（ステップ６０５）。データ復旧が完了してないならば（ステップ６０５；ＮＯ）、コントローラ２０は、ステップ６０１の処理に戻り、データ復旧が完了したならば（ステップ６０５；ＹＥＳ）、データ復旧処理を完了する。
【００６０】
ここで、優先度の意義について補足する。優先度とは、所定の単位時間あたりに実行されるジョブの時間割合を示す。例えば、ホストコレクションライトの優先度を８０％に設定し、バックグラウンドコレクションライトの優先度を２０％に設定すると、所定の単位時間あたりに実行されるホストコレクションライトの時間割合は８０％であり、バックグラウンドコレクションライトの時間割合は２０％である。
【００６１】
図７は本実施例に係るもう一つのデータ復旧処理を示すフローチャートである。説明の便宜上、ＲＡＩＤグループ５１内の一台のデータディスク４１に障害が発生し、コントローラ２０が第二のデータ復旧方式によりデータ復旧する場合を想定して説明を進める。
【００６２】
コントローラ２０は、ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間（例えば５秒間）を超えているか否かを判定する（ステップ７０１）。
【００６３】
ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間を越えている場合には（ステップ７０１；ＹＥＳ）、ホストコレクションライトによるデータ復旧は期待できないので、コントローラ２０は、バックグラウンドコレクションライトの優先度をホストコレクションライトの優先度よりも高い値に設定する（ステップ７０８）。例えば、バックグラウンドコレクションライトの優先度を１００％に設定し、ホストコレクションライトの優先度を０％に設定する。
【００６４】
ＲＡＩＤグループ５１へホストＩ／Ｏが発行されていない時間が所定時間を越えていない場合には（ステップ７０１；ＮＯ）、コントローラ２０は、ＲＡＩＤグループ５１へのホストＩ／Ｏがシーケンシャルアクセスであるか否かを判定する（ステップ７０２）。
【００６５】
ＲＡＩＤグループ５１へのホストＩ／Ｏがシーケンシャルアクセスである場合には（ステップ７０２；ＹＥＳ）、ホストコレクションライトによる効率的なデータ復旧が期待できるので、コントローラ２０は、ホストコレクションライトの優先度をバックグラウンドコレクションライトの優先度よりも高い値に設定する（ステップ７０９）。例えば、ホストコレクションライトの優先度を１００％に設定し、バックグラウンドコレクションライトの優先度を０％に設定する。
【００６６】
ＲＡＩＤグループ５１へのホストＩ／Ｏがシーケンシャルアクセスでない場合には（ステップ７０２；ＮＯ）、コントローラ２０は、ホストＩ／Ｏ優先モードが設定されているか否かを判定する（ステップ７０３）。
【００６７】
ホストＩ／Ｏ優先モードが設定されている場合には（ステップ７０３；ＹＥＳ）、コントローラ２０は、ホストコレクションライトの優先度をバックグラウンドコレクションライトの優先度よりも高い値に設定する（ステップ７１０）。例えば、ホストコレクションライトの優先度を１００％に設定し、バックグラウンドコレクションライトの優先度を０％に設定する。
【００６８】
ホストＩ／Ｏ優先モードが設定されていない場合には（ステップ７０３；ＮＯ）、コントローラ２０は、ホストＩ／Ｏのキャッシュヒット率が第一の閾値（例えば９０％）を超えているか否かを判定する（ステップ７０４）。
【００６９】
ホストＩ／Ｏのキャッシュヒット率が第一の閾値を超えている場合には（ステップ７０４；ＹＥＳ）、ランダムアクセスでありながらもキャッシュヒット率が高いことを示しているので、ホストコレクションライトによるデータ復旧は期待できず、バックグラウンドコレクションライトによるデータ復旧を進める必要がある。コントローラ２０は、バックグラウンドコレクションライトの優先度をホストコレクションライトの優先度よりも高い値に設定する（ステップ７１１）。例えば、バックグラウンドコレクションライトの優先度を１００％に設定し、ホストコレクションライトの優先度を０％に設定する。
【００７０】
ホストＩ／Ｏのキャッシュヒット率が第一の閾値を超えていない場合には（ステップ７０４；ＮＯ）、コントローラ２０は、ホストＩ／Ｏのキャッシュヒット率が第二の閾値（例えば１０％）以下であるか否かを判定する（ステップ７０５）。
【００７１】
ホストＩ／Ｏのキャッシュヒット率が第二の閾値以下である場合には（ステップ７０５；ＹＥＳ）、ランダムアクセスでありながらもホストコレクションライトによるデータ復旧が期待できる。但し、ホストＩ／Ｏは、シーケンシャルアクセスでないので、バックグラウンドコレクションライトによるデータ復旧もある程度必要である。コントローラ２０は、ホストコレクションライトの優先度をバックグラウンドコレクションライトの優先度よりも高い値に設定する（ステップ７１２）。例えば、ホストコレクションライトの優先度を７０％に設定し、バックグラウンドコレクションライトの優先度を３０％に設定する。
【００７２】
ホストＩ／Ｏのキャッシュヒット率が第二の閾値以下でない場合には（ステップ７０５；ＮＯ）、コントローラ２０は、ホストコレクションライトの優先度とバックグラウンドコレクションライトの優先度を同程度に設定する（ステップ７０６）。例えば、ホストコレクションライトの優先度を５０％、バックグラウンドコレクションライトの優先度を５０％に設定する。
【００７３】
そして、コントローラ２０は、データ復旧が完了したか否かを判定する（ステップ７０７）。データ復旧が完了してないならば（ステップ７０７；ＮＯ）、コントローラ２０は、ステップ７０１の処理に戻り、データ復旧が完了したならば（ステップ７０７；ＹＥＳ）、データ復旧処理を完了する。
【００７４】
図８は本実施例に係る更にもう一つのデータ復旧処理を示すフローチャートである。上述の例（図６、図７）では、第二のデータ復旧方式によりデータ復旧を行うことを前提とした上で、ホストＩ／Ｏ特性やストレージシステム１０の負荷状態に応じてホストコレクションライトとバックグラウンドコレクションライトのそれぞれの優先度を設定変更する例を示したが、この例では、ホストＩ／Ｏ特性に応じて第一のデータ復旧方式と第二のデータ復旧方式とを切り替えて、データ復旧を行う。説明の便宜上、ＲＡＩＤグループ５１内の一台のデータディスク４１に障害が発生し、コントローラ２０がデータ復旧する場合を想定して説明を進める。
【００７５】
コントローラ２０は、ＲＡＩＤグループ５１へのホストＩ／Ｏがシーケンシャルアクセスであるか否かを判定する（ステップ８０１）。シーケンシャルアクセスである場合には（ステップ８０１；ＹＥＳ）、コントローラ２０は、第二のデータ復旧方式によりデータ復旧を行う（ステップ８０２）。一方、シーケンシャルアクセスでない場合には（ステップ８０１；ＮＯ）、コントローラ２０は、第一のデータ復旧方式によりデータ復旧を行う（ステップ８０３）。
【００７６】
例えば、動画などのストリーミングデータを再生する場合には、ホストＩ／Ｏ要求はシーケンシャルアクセスになるので、データ読み出し用に復旧されたデータを用いてのスペアディスク４３へのコレクションライトは、ホストＩ／Ｏ性能を低下させることなく、効率的なデータ復旧を可能にできる。
【００７７】
尚、上述の説明では、ＲＡＩＤグループ５１に属する一台のデータディスク４１に障害が発生した場合を想定していたが、本実施例に係るデータ復旧方式は、ＲＡＩＤグループ５１に属する一台のデータディスク４１のアクセスエラー率が所定の閾値を超えた場合にも適用できる。図９に示すように、コントローラ２０又は３０は、ＲＡＩＤグループ５１に属する一台のデータディスク４１のアクセスエラー率が所定の閾値を越えたことを検出すると、そのデータディスク４１が故障しないうちにそのデータディスク４１のデータをスペアディスク４３にコピーする（以下、ダイナミックスペアリングと称する。）。図中の“ＤＳ”はダイナミックスペアリングを示す。
【００７８】
上述の説明では、バックグラウンドコレクションライトの具体例として、ＲＡＩＤグループ５１に属するその他のデータディスク４１（パリティディスクを含む）に格納されているデータを使用してのパリティ計算によるデータ復旧を例示したが、ダイナミックスペアリングによるデータ復旧にも適用できる。ダイナミックスペアリングによるバックグラウンドコレクションライトを実行する場合においても、ビットマップテーブル２００を用いてデータ復旧の進捗を管理したり、或いはホストＩ／Ｏ特性やストレージシステム１０の負荷状態に基づいてホストコレクションライト及びバックグラウンドコレクションライトのそれぞれの優先度を設定変更したりする点については、上述の例と同様である。
【００７９】
本実施例によれば、ホスト計算機６０からのＩ／Ｏ要求に基づいてデータ読み出し用に復旧されたデータを用いてスペアディスク４３へコレクションライトすることにより、ホストアクセス処理とデータ復旧処理とを並行して処理できるので、効率的なデータ復旧を可能にできる。
【００８０】
また、ホストコレクションライトとバックグランドコレクションライトとを並行処理することで、ホストコレクションライトではデータ復旧できない記憶領域をバックグラウンドコレクションライトによりデータ復旧できるので、効率的なデータ復旧が可能になる。
【図面の簡単な説明】
【００８１】
【図１】本実施例に係るストレージシステムの主要構成図である。
【図２】第一のデータ復旧方式の処理概要を示す説明図である。
【図３】第二のデータ復旧方式の処理概要を示す説明図である。
【図４】データ復旧の進捗をビットマップ管理する概要を示す説明図である。
【図５】管理テーブルの説明図である。
【図６】本実施例に係るデータ復旧処理を示すフローチャートである。
【図７】本実施例に係るデータ復旧処理を示すフローチャートである。
【図８】本実施例に係るデータ復旧処理を示すフローチャートである。
【図９】第二のデータ復旧方式の処理概要を示す説明図である。
【符号の説明】
【００８２】
１０…ストレージシステム
２０，３０…コントローラ
４１，４２…データディスク
４３…スペアディスク
５１，５２…ＲＡＩＤグループ
２００…ビットマップテーブル
４００…管理テーブル
【図１】
2008046986.tif 000003
【図２】
2008046986.tif 000004
【図３】
2008046986.tif 000005
【図４】
2008046986.tif 000006
【図５】
2008046986.tif 000007
【図６】
2008046986.tif 000008
【図７】
2008046986.tif 000009
【図８】
2008046986.tif 000010
【図９】
2008046986.tif 000011