(57)【要約】【課題】ＳＳＤを搭載したＲＡＩＤストレージシステムのリードアクセス応答時間の増大を回避する。【解決手段】プロセッサ３０３は、ＳＳＤ３５２Ａを、書込可能状態として設定するとともに、同一のデータを取得可能なＳＳＤ３５２Ｂを書込みの書込不可能状態として設定し、書込可能状態のＳＳＤ３５２Ａに対して、ＣＭ３０５の所定のデータを書き込ませ、ホスト計算機１００からデータの読出要求を受信し、データの格納先が、書込可能状態として設定されているＳＳＤ３５２Ａである場合に、ＳＳＤ３５２Ｂから読出要求の対象のデータを取得し、取得したデータをホスト計算機１００に送信するように構成する。【選択図】図１
2010102369.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリと、複数のソリッドステートディスクとを備え、書込み対象のデータをキャッシュメモリに書き込んだ後に、前記データを所定のソリッドステートディスクに書込むストレージシステムであって、
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記ソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとが含まれており、
１以上のソリッドステートディスクを、前記キャッシュメモリに書き込まれている所定のデータを書込み可能な書込可能状態として設定するとともに、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクをデータの書込み不可能な書込不可能状態として設定する設定部と、
前記書込可能状態として設定されているソリッドステートディスクに対して、前記キャッシュメモリの所定のデータを書き込ませる書込み制御部と、
外部装置からソリッドステートディスクに格納されたデータの読出要求を受信する受信部と、
前記読出要求の対象のデータの格納先が、前記書込可能状態として設定されている前記１以上のソリッドステートディスクである場合に、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な前記他の１以上のソリッドステートディスクから前記読出要求の対象のデータを取得する取得部と、
前記取得した前記データを前記外部装置に送信する送信部と
を有するストレージシステム。
【請求項２】
前記ソリッドステートディスクは、自身の記憶領域にデータを追記して格納していき、所定の時点において、最新のデータを新たな記憶領域に記憶させるとともに、不必要となった記憶領域をデータ格納可能に再生するリクラメーション処理を実行する
請求項１に記載のストレージシステム。
【請求項３】
１以上の前記ソリッドステートディスクと、前記他の１以上のソリッドステートディスクとは、それぞれ同一のデータを格納するように構成されており、
前記取得部は、前記読出要求の対象のデータの格納先が、前記１以上のソリッドステートディスクである場合に、前記他の１以上のソリッドステートディスクから前記データを読み出して取得する
請求項１又は請求項２に記載のストレージシステム。
【請求項４】
前記１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクのデータを復元可能なデータ及びパリティデータを記憶する複数の他のソリッドステートディスクとを有し、
前記取得部は、前記読出要求の対象のデータの格納先が、前記１以上のソリッドステートディスクである場合に、前記複数のソリッドステートディスクに記憶されたデータ及びパリティデータを読み出して、前記読出要求の対象のデータを前記データ及びパリティデータから復元することにより取得する
請求項１乃至請求項３のいずれか一項に記載のストレージシステム。
【請求項５】
前記設定部は、前記書込可能状態とするソリッドステートディスクと、前記書込不可能状態とするソリッドステートディスクとの設定を変更する
請求項１乃至請求項４のいずれか一項に記載のストレージシステム。
【請求項６】
前記設定部は、所定の時間が経過した際に、前記書込可能状態とするソリッドステートディスクと、前記書込不可能状態とするソリッドステートディスクとの設定を変更する
請求項５に記載のストレージシステム。
【請求項７】
前記設定部は、前記ソリッドステートディスクへのデータの書込み処理において所定の処理量を実行した際に、前記書込可能状態とする１以上のソリッドステートディスクと、前記書込不可能状態とする１以上のソリッドステートディスクとの設定を変更する
請求項５に記載のストレージシステム。
【請求項８】
前記設定部は、前記キャッシュメモリに残されている書込みが行なわれていないデータの量に基づいて、前記書込可能状態とする前記ソリッドステートディスクを決定する
請求項６又は請求項７に記載のストレージシステム。
【請求項９】
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとから構成される１以上のグループが含まれており、
前記キャッシュメモリの記憶容量に対する、前記グループの前記ソリッドステートディスクに書き込まれていないデータの占める記憶量の割合が所定の第１閾値以下か否かを判定する第１割合判定部をさらに有し、
前記設定部は、前記割合が前記第１閾値以下であると判定された場合に、一時的に前記グループの全てのソリッドステートディスクを、前記書込不可能状態として設定する
請求項１乃至請求項８のいずれか一項に記載のストレージシステム。
【請求項１０】
前記ストレージシステムにおけるデータの読出し及び書込み処理における負荷を検出する負荷検出部を更に備え、
前記設定部は、前記負荷に応じて、全ての前記ソリッドステートディスクを前記書込不可能状態として設定する時間を決定する
請求項９に記載のストレージシステム。
【請求項１１】
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとから構成される１以上のグループが含まれており、
前記キャッシュメモリの記憶容量に対する、前記グループの前記ソリッドステートディスクに書き込まれていないデータの占める記憶量の割合が所定の第２閾値を超えているか否かを判定する第２割合判定部をさらに有し、
前記設定部は、前記割合が前記第２閾値を超えていると判定された場合に、前記グループの全てのソリッドステートディスクを、前記書込可能状態として設定する
請求項１乃至請求項１０のいずれか一項に記載のストレージシステム。
【請求項１２】
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとから構成される１以上のグループが含まれており、
前記グループを構成する全てのソリッドステートディスクを書込可能状態とする設定を行うか否かを指定する指定情報を記憶する指定記憶部を更に有し、
前記設定部は、全てのソリッドステートディスクを書込可能状態とする前記指定情報が格納されている場合には、前記グループの全てのソリッドステートディスクを書込可能状態とする設定を行う
請求項１乃至請求項１１のいずれか一項に記載のストレージシステム。
【請求項１３】
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとから構成される１以上のグループが含まれており、
前記ストレージシステムにおける前記グループを構成する前記ソリッドステートディスクに対するデータの読出し及び書込み処理における負荷を検出するグループ負荷検出部を更に有し、
前記設定部は、前記負荷が所定の第３閾値を超えていると判定された場合に、前記グループの全てのソリッドステートディスクを、前記書込可能状態として設定する
請求項１乃至請求項１２のいずれか一項に記載のストレージシステム。
【請求項１４】
キャッシュメモリと、複数のソリッドステートディスクとを備え、書込み対象のデータをキャッシュメモリに書き込んだ後に、前記データを所定のソリッドステートディスクに書込むストレージシステムにおけるデータ応答方法であって、
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとが含まれており、
１以上のソリッドステートディスクを、前記キャッシュメモリに書き込まれている所定のデータを書込み可能な書込可能状態として設定するとともに、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクをデータの書込み不可能な書込不可能状態として設定するステップと、
前記書込可能状態として設定されているソリッドステートディスクに対して、前記キャッシュメモリの所定のデータを書き込ませる書込み制御ステップと、
外部装置からソリッドステートディスクに格納されたるデータの読出要求を受信するステップと、
前記読出要求の対象のデータの格納先が、前記書込可能状態として設定されている前記１以上のソリッドステートディスクである場合に、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な前記他の１以上のソリッドステートディスクから前記読出要求の対象のデータを取得するステップと、
前記取得した前記データを前記外部装置に送信するステップと
を有するデータ応答方法。
【請求項１５】
キャッシュメモリと、複数のソリッドステートディスクと、インタフェースと、プロセッサとを備え、書込み対象のデータをキャッシュメモリに書き込んだ後に、前記データを所定のソリッドステートディスクに書込むストレージシステムであって、
前記ソリッドステートディスクは、自身の記憶領域にデータを追記して格納していき、所定の時点において、最新のデータを新たな記憶領域に記憶させるとともに、不必要となった記憶領域をデータ格納可能に再生するリクラメーション処理を実行し、
前記複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、前記１以上のソリッドステートディスクに格納されている前記データと同一のデータを取得可能な他の１以上のソリッドステートディスクとから構成される１以上のグループが含まれており、
前記プロセッサは、
前記キャッシュメモリの記憶容量に対する、前記ソリッドステートディスクに書き込まれていないデータの占める記憶量の割合が所定の第１閾値以下か否かを判定し、
前記キャッシュメモリの記憶容量に対する、前記ソリッドステートディスクに書き込まれていないデータの占める記憶量の割合が所定の第２閾値を超えているか否かを判定し、
前記ストレージシステムにおけるデータの読出し及び書込み処理における負荷を検出し、
前記グループを構成する全てのソリッドステートディスクをデータの書込み可能な書込可能状態とする設定を行うか否かを指定する指定情報を記憶し、
１以上のソリッドステートディスクを、前記キャッシュメモリに書き込まれている所定のデータの書込み可能な書込可能状態として設定するとともに、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクをデータの書込み不可能な書込不可能状態として設定し、
前記割合が前記第１閾値以下であると判定された場合に、前記負荷に応じた時間において全てのソリッドステートディスクを、前記書込不可能状態として設定し、
前記割合が前記第２閾値を超えていると判定された場合に、全てのソリッドステートディスクを、前記書込可能状態として設定し、
全てのソリッドステートディスクを前記書込可能状態とする前記指定情報が格納されている場合には、前記グループの全てのソリッドステートディスクを書込可能状態とする設定を行い、
前記書込可能状態として設定されているソリッドステートディスクに対して、前記キャッシュメモリの所定のデータを書き込ませ、
前記インタフェースを介して、外部装置からソリッドステートディスクに格納されたるデータの読出要求を受信し、
前記読出要求の対象のデータの格納先が、前記書込可能状態として設定されている前記１以上のソリッドステートディスクである場合に、前記１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な前記他の１以上のソリッドステートディスクから前記読出要求の対象のデータを取得し、
前記インタフェースを介して、前記取得した前記データを前記外部装置に送信する
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のソリッドステートディスク（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）を備え、書込み対象のデータ（ライトデータ）をキャッシュメモリに書き込んだ後に、ソリッドステートディスクに書き込むストレージシステム等に関する。
【背景技術】
【０００２】
各種データを記憶するストレージシステムとして、複数のＨＤＤ（ハードディスクドライブ）を備えたストレージシステムが知られている。
【０００３】
このようなストレージシステムにおいて、データアクセスの性能を高くすると共に、データ記憶に対する信頼性を向上する技術として、ＲＡＩＤ（Ｒｅｄｕｎｔａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成するとともに、ライトデータをキャッシュメモリに記憶し、その後、そのデータをＨＤＤに反映させる技術が知られている（特許文献１参照）。
【０００４】
また、ＨＤＤよりも高速にランダムアクセス可能なＮＡＮＤフラッシュメモリに対してデータを格納するようにしたストレージ装置も知られている（特許文献２参照）。
【０００５】
【特許文献１】特許第３２６４４６５号公報
【特許文献２】米国特許第７０３９７８８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されたようなＨＤＤを有するストレージシステムにおいて、データアクセスを更に高速化するためには、より高性能なプロセッサ、キャッシュメモリ、ＨＤＤを搭載するか、又は、プロセッサ、キャッシュメモリ、ＨＤＤの搭載数を増やすかが考えられる。プロセッサやキャッシュメモリなどは半導体の微細化によって高性能化が実現できるが、ＨＤＤは内部に機械的なシーク機構を有するため高性能化が前者に比して困難である。このため、現状では、高速化するためには、ＨＤＤの搭載数を増やすことが必要となる。しかしながら、ＨＤＤの搭載数を増やすと、システムが高コストになってしまうという問題がある。
【０００７】
そこで、ストレージシステムにおいて、ＨＤＤの代わりに、ＮＡＮＤフラッシュメモリを格納したＳＳＤを搭載することが考えられる。ＮＡＮＤフラッシュメモリはＨＤＤと異なり、上書き不可能なメディアである。このために、ＳＳＤを搭載したストレージシステムにおいては、特許文献２に記載されたように、ＳＳＤのフラッシュメモリに対して追記型記憶を行い、ライトデータが一定量に達したら、最新のデータをフラッシュメモリの新しいブロックにコピーし、コピーが完了したブロックのデータを消去する処理（リクラメーション処理）を行う必要がある。
【０００８】
従って、リードデータが格納されているＳＳＤにおいてリクラメーション処理が行われている場合には、ＳＳＤのアクセス性能が低下する問題が発生すると考えられる。具体的には、キャッシュミスした場合において、リクラメーション処理が行われているＳＳＤからのリードに時間を要するので、リードアクセスの応答時間が増大してしまう。
【０００９】
そこで、本発明は、ＳＳＤを備えたストレージシステムにおけるリードアクセスの応答時間が増大することを回避する技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的達成のため、本発明の一観点に係るストレージシステムは、キャッシュメモリと、複数のソリッドステートディスクとを備え、書込み対象のデータをキャッシュメモリに書き込んだ後に、データを所定のソリッドステートディスクに書込むストレージシステムであって、複数のソリッドステートディスクには、データを格納する１以上のソリッドステートディスクと、ソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクとが含まれており、１以上のソリッドステートディスクを、キャッシュメモリに書き込まれている所定のデータを書込み可能な書込可能状態として設定するとともに、１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクをデータの書込み不可能な書込不可能状態として設定する設定部と、書込可能状態として設定されているソリッドステートディスクに対して、キャッシュメモリの所定のデータを書き込ませる書込み制御部と、外部装置からソリッドステートディスクに格納されたデータの読出要求を受信する受信部と、読出要求の対象のデータの格納先が、書込可能状態として設定されている１以上のソリッドステートディスクである場合に、１以上のソリッドステートディスクに格納されているデータと同一のデータを取得可能な他の１以上のソリッドステートディスクから読出要求の対象のデータを取得する取得部と、取得したデータを外部装置に送信する送信部とを有する。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
以下、本発明の一実施形態に係るストレージシステムを説明する。
【００１３】
図１は、本発明の一実施形態に係る計算機システムの概略構成と、計算機システムにおけるＲＡＩＤ１０のＲＡＩＤグループに関するデータ転送の概略を示す図である。
【００１４】
計算機システムは、外部装置の一例としてのホスト計算機１００と、ストレージシステム２００とを有する。ホスト計算機１００は、複数であってもよい。ストレージシステム２００は、コントローラ部３００と、記憶装置部３５１を備える。記憶装置部３５１は、複数のＳＳＤ（ソリッドステートディスク）３５２を含む。ＳＳＤ３５２は、ＮＡＮＤフラッシュメモリと、キャッシュメモリとを搭載しており、ＮＡＮＤフラッシュメモリのブロックに対して追記型記憶を行い、所定の時点、例えば、書き込まれたブロックが一定量に達した時点に、最新のデータをフラッシュメモリの新しいブロックにコピーし、コピーが完了したブロックのデータを消去して記憶可能なブロックに再生する処理（リクラメーション処理）を行う。記憶装置部３５１は、ＳＳＤ３５２だけに限らず、ＨＤＤなどの他の種類の記憶装置を含んでいても良い。
【００１５】
本実施形態のストレージシステム２００では、複数のＳＳＤ３５２のうちの２個以上のＳＳＤ３５２によって構成されたＲＡＩＤグループを複数備えることができるようになっている。例えば、ＳＳＤ３５２ＡとＳＳＤ３５２Ｂは、ＲＡＩＤ１０（すなわち、ミラーリングとストライピングとを行う構成）のＲＡＩＤグループを構成している。
【００１６】
ストレージシステム２００においては、１つのＲＡＩＤグループの記憶空間を、１又は複数の論理ボリューム（ＬＶＯＬ）として提供することができる。各論理ボリュームには、ボリューム識別子、例えば、ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）が対応付けられる。
【００１７】
コントローラ部３００は、ホストＩ／Ｆ３０１と、ディスクＩ／Ｆ３０２と、キャッシュメモリ（ＣＭ）３０５と、プロセッサ（ＭＰ）３０３とを備える。
【００１８】
ホストＩ／Ｆ３０１は、ストレージシステム２００がホスト計算機（ホスト）１００と通信するためのインタフェースであり、例えばファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）のポートである。ディスクＩ／Ｆ３０２は、コントローラ部３００がＳＳＤ３５２と通信するためのインタフェースであり、例えばファイバチャネルや、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）のポートである。ＣＭ３０５は、ホスト１００から受信したデータや、ＳＳＤ３５２から読み出されたデータ等を一時的に記憶する。
【００１９】
ＭＰ３０３は、ホスト１００から送信されるＳＣＳＩコマンドに基づいて処理を実行し、ホスト１００との間のデータ転送を制御する。また、ＭＰ３０３は、ホスト１００からリードコマンド（読出要求）を受信すると、ＣＭ３０５にリードコマンドの対象のデータ（リードデータ）が格納されているか判定し、格納されていない場合（すなわち、キャッシュミスの場合）には、ＳＳＤ３５２からＣＭ３０５にリードデータをステージ（読出し）してから、ホスト１００へリードデータを転送する。
【００２０】
また、ＭＰ３０３は、ホスト１００からライトコマンド（書込要求）を受信すると、ＣＭ３０５に書込み対象のデータ（ライトデータ）を格納し、非同期にライトデータをＣＭ３０５からＳＳＤ３５２へデステージ（書込み）する。
【００２１】
また、ＭＰ３０３は、ＲＡＩＤ１０のＲＡＩＤグループの一方側のＳＳＤ３５２（例えば、データＳＳＤ：データＳＳＤ３５２Ａ）をデステージモード（デステージ可能状態：ライトアクセス可能）と設定している間は、同一のデータを読み出すことができるＲＡＩＤグループの他方側のＳＳＤ３５２（例えば、ミラーＳＳＤ：ミラーＳＳＤ３５２Ｂ）をステージモード（デステージ不可能状態：ライトアクセス不可能）に設定する。このように設定している場合には、ＭＰ３０３は、デステージモードのＳＳＤ３５２に対するリードアクセスがあった場合には、ステージモードのＳＳＤ３５２からリードアクセス対象のデータと同一のデータのステージを行う。このようにすることで、ＭＰ３０３は、リクラメーション処理を実行しないことが確保されているステージモードのＳＳＤ３５２から所望のデータをステージすることができる。このため、リードアクセス応答時間の増大を回避することができる。
【００２２】
また、ＭＰ３０３は、所定の条件が満たされた場合（例えば、一定量のダーティデータをデステージした場合）には、デステージモードと、ステージモードとのＳＳＤ３５２を入れ替える。例えば、データＳＳＤ３５２Ａをステージモードに設定し、ミラーＳＳＤ３５２Ｂをデステージモードに設定する。これにより、ミラーＳＳＤ３５２ＢへＣＭ３０５に格納されているライトデータをデステージすることができる。
【００２３】
図２は、本発明の一実施形態に係るストレージシステムのハードウェア構成図である。
【００２４】
ストレージシステム２００のコントローラ部３００は、１以上のホストＩ／Ｆ３０１と、１以上のディスクＩ／Ｆ３０２と、ＭＰ３０３と、内部結合網３０４と、ＣＭ３０５と、パリティ計算回路３０６と、ネットワークＩ／Ｆ３０７とを有する。
【００２５】
内部結合網３０４は、ホストＩ／Ｆ３０１、ディスクＩ／Ｆ３０２、ＭＰ３０３、ＣＭ３０５、及びパリティ計算回路３０６を相互に結合する。内部結合網３０４は、例えばクロスバスイッチ又はバスである。パリティ計算回路３０６は、ＲＡＩＤ５、ＲＡＩＤ６におけるパリティに関する計算をするための回路である。
【００２６】
ネットワークＩ／Ｆ３０７は、外部の計算機を接続するためのインタフェースであり、例えばＥｔｈｅｒｎｅｔ（登録商標）のポートである。外部の計算機は、ネットワークＩ／Ｆ３０７を通して、ストレージシステム２００の各種設定を行うことができる。
【００２７】
図３は、本発明の一実施形態に係るストレージシステムのＲＡＩＤ１０のＲＡＩＤグループに対する処理に関わる機能構成図である。
【００２８】
プロセッサ３０３は、受信部及び送信部の一例としてのＳＣＳＩコマンド処理部３１０と、取得部の一例としてのステージ処理部３１１と、書込み制御部の一例としてのデステージ処理部３１２と、設定部、第１割合判定部、及び第２割合判定部の一例としてのＳＳＤモード更新処理部３１３と、構成管理処理部３１４と、構成情報記憶部３２０と、キャッシュ制御情報記憶部３２１と、ＳＳＤアクセスモード情報記憶部３２２とを有する。
【００２９】
キャッシュメモリ３０５には、複数のキャッシュスロット３２３が格納される。キャッシュスロット３２３は、論理ボリュームの所定の単位のデータを一時的に格納するためのものである。
【００３０】
ＳＣＳＩコマンド処理部３１０は、ホストＩ／Ｆ３０１を通して、ホスト１００から受信したＳＣＳＩコマンドを処理する。また、ホストＩ／Ｆ３０１を介して、ホスト１００へＳＣＳＩコマンド等を送信する。ＳＣＳＩコマンド処理部３１０により、ホスト１００からライトデータが受信される。また、ＳＣＳＩコマンド処理部３１０により、ホスト１００へキャッシュメモリ３０５のリードデータが送信される。ステージ処理部３１１は、ＳＳＤ３５２からＣＭ３０５へリードデータを読み込む（ステージする）。ステージ処理部３１１は、リードコマンド処理でキャッシュミスが発生した際に、ＳＣＳＩコマンド処理部３１０から呼ばれる。
【００３１】
デステージ処理部３１２は、ホスト１００からＣＭ３０５に書き込まれたライトデータを、ＳＳＤ３５２へ書き込む（デステージする）。
【００３２】
ＳＳＤモード更新処理部３１３は、デステージモードとするＳＳＤ３５２を切り替える処理を実行する。より具体的には、ＳＳＤモード更新処理部３１３は、ＳＳＤアクセスモード情報記憶部３２２のアクセスモード情報を更新する処理を実行する。構成管理処理部３１４は、ネットワークＩ／Ｆ３０７を通して、外部の計算機からの要求を受信し、ストレージシステム２００の構成情報記憶部３２０の構成情報を設定する処理を実行する。
【００３３】
構成情報記憶部３２０は、ストレージシステム２００の構成情報を記憶する。例えば、構成情報記憶部３２０は、ホストＩ／Ｆ３０１とＬＵＮとの組と、論理ボリュームとの対応関係を表すＬＵ構成情報テーブル３２０５と、論理ボリュームとＲＡＩＤグループとの対応関係を表す論理ボリューム構成情報テーブル３２０６と、ＲＡＩＤグループとＳＳＤ３５２の対応関係を表すＲＡＩＤグループ構成情報３２０１とを記憶する。
【００３４】
キャッシュ制御情報記憶部３２１は、ＣＭ３０５にキャッシュスロット３２３単位で格納される論理ボリュームのデータを制御するためのキャッシュ制御情報を記憶する。
【００３５】
ＳＳＤアクセスモード情報記憶部３２２は、ＳＳＤ３５２へリード／ライトアクセス可能かどうかを示す情報を記憶する。この情報は、ＳＳＤモード更新処理部３１３によって更新される。
【００３６】
図４は、本発明の一実施形態に係るＬＵ構成情報テーブルを示す図である。
【００３７】
ＬＵ構成情報テーブル３２０５は、各ホストＩ／Ｆ３０１とＬＵＮとの組を、論理ボリュームに対応づけるテーブルである。具体的に、ＬＵ構成情報テーブル３２０５には、ホストＩ／Ｆ識別子（ホストＩ／Ｆ  ＩＤ）と、ＬＵＮ（論理ユニット番号）と、論理ボリューム識別子（ＬＶＯＬ ＩＤ）とが対応付けられて格納される。例えば、ホストＩ／Ｆ  ＩＤが”Ｓ１ａ”のホストＩ／Ｆ３０１においてＬＵＮ”０”に対応する論理ボリュームのＩＤは、”Ｌ１"であることがわかる。
【００３８】
図５は、本発明の一実施形態に係る論理ボリューム構成情報テーブルを示す図である。
【００３９】
論理ボリューム構成情報テーブル３２０６は、論理ボリュームとＲＡＩＤグループとを対応付けるテーブルである。具体的に論理ボリューム構成情報テーブル３２０６には、ＬＶＯＬ  ＩＤとＲＡＩＤグループＩＤとが対応付けて格納される。ここで、同図では、論理ボリュームとＲＡＩＤグループとを１：１に対応付けているが、これに限られず、論理ボリューム及びＲＡＩＤグループをそれぞれより小さな記憶領域に分割してＮ：Ｍ（Ｎ、Ｍは任意の整数）に対応付けるようにしても良い。
【００４０】
図６は、本発明の一実施形態に係るＲＡＩＤグループ構成情報を示す図である。
【００４１】
ＲＡＩＤグループ構成情報３２０１は、各ＲＡＩＤグループに対応して設けられており、各ＲＡＩＤグループとＳＳＤ３５２の対応関係を表している。ＲＡＩＤグループ構成情報３２０１は、ＲＡＩＤ情報３２０２と、複数のＳＳＤＩＤ３２０３とを含む。ＲＡＩＤ情報３２０２は、対応するＲＡＩＤグループの種別（ＲＡＩＤレベル）を示す。ＳＳＤＩＤ３２０３は、ＲＡＩＤグループを構成するＳＳＤ３５２のＩＤを示す。図６は、対応するＲＡＩＤグループが、ＲＡＩＤ１０であり、ＳＳＤＩＤが０〜３までの４台で構成されていることを示している。例えば、データ用のＳＳＤ構成（データＳＳＤ）は、ＩＤが”０”と”１”の２台のＳＳＤ３５２で構成され、ミラー用のＳＳＤ構成（ミラーＳＳＤ）は、ＩＤが”２”と”３”の２台のＳＳＤ３５２で構成されていることを示している。
【００４２】
図７は、本発明の一実施形態に係るキャッシュ制御情報を示す図である。
【００４３】
キャッシュ制御情報記憶部３２１は、キャッシュ制御情報として、論理ボリュームの論理ブロックアドレス（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）からキャッシュスロット３２３を検索するためのキャッシュディレクトリテーブル４１１、各キャッシュスロット３２３の状態を表すスロット制御ブロック４１２、同一のスロット状態にあるスロットのスロット制御ブロック４１２を連結し、高速に検索可能とするためのキューポインタ４１３、４１４、及び４１５を含む。ダーティキュー４１５は、ＳＳＤ３５２と同数設けられ、ＲＡＩＤ１論理ダーティキューと、ＲＡＩＤ５論理ダーティキューと、物理ダーティキューとの３種類を含む。
【００４４】
図８は、本発明の一実施形態に係るキャッシュディレクトリテーブルと、スロット制御ブロックとの対応を示す図である。
【００４５】
キャッシュディレクトリテーブル４１１は、ＲＡＩＤグループとスロット番号とから、スロット制御ブロック４１２を検索するためのテーブルであり、複数のハッシュポインタからなる。スロット番号とは、ＲＡＩＤグループをキャッシュスロットサイズ（例えば４ｋＢ）で分割したときのアドレス番号である。そのため、１つのハッシュポインタには、複数のスロット制御ブロック４１２がスロット制御ブロックポインタで連結される。
【００４６】
ここで、ＲＡＩＤグループとスロット番号とからハッシュ計算を行い、検索を開始するハッシュポインタを算出し、ハッシュポインタからスロット制御ブロック４１２を辿ることで各スロット制御ブロック４１２の検索を行うことができる。
【００４７】
本実施形態では、ＭＰ３０３は、ホスト１００からのＳＣＳＩコマンドで指定されているアドレス情報（例えばＬＵＮとＬＢＡとの組み合わせ）を用いて、構成情報記憶部３２０の構成情報を参照することにより、ＬＶＯＬ  ＩＤを特定し、特定したＬＶＯＬ  ＩＤとＬＢＡとから、ＲＡＩＤグループ及びスロット番号を特定することできる。そして、ＭＰ３０３は、ＲＡＩＤグループＩＤ及びスロット番号をハッシュ化することにより、ディレクトリエントリポイントを求め、対応するハッシュポインタから、スロット制御ブロック４１２を特定することができる。
【００４８】
スロット制御ブロック４１２は、各キャッシュスロット３２３に対応した情報である。スロット制御ブロック４１２には、複数種類の情報要素が記述される。スロット制御ブロック４１２は、例えば、スロット制御ブロックポインタ、双方向キューポインタ、ＲＡＩＤグループＩＤ／スロット番号、キャッシュスロットアドレス、スロット属性等を含むことができる。ここで、双方向キューポインタは、同一のスロット状態のスロット制御ブロック４１２を相互に接続するためのポインタであり、双方向に対応するため２つのポインタを有する。
【００４９】
図９は、本発明の一実施形態に係るクリーンキューと、スロット制御ブロックとの対応を示す図である。なお、同図では、クリーンキューの一例を示しているが、フリーキューやダーティキューも同様な構造となっている。
【００５０】
クリーンキュー４１４は、クリーンキューＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）ポインタ４１４Ａ、クリーンキューＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）ポインタ４１４Ｂ、クリーンキューカウンタ４１４Ｃの３つの情報を有する。
【００５１】
クリーンキューＭＲＵポインタ４１４Ａは、最も最近使用したスロットに対応するスロット制御ブロック４１２を示すポインタである。クリーンキューＬＲＵポインタ４１４Ｂは、最も最近使用していないスロットに対応するスロット制御ブロック４１２を示すポインタである。本実施形態では、クリーンキューＭＲＵポインタ４１４Ａと、クリーンキューＬＲＵポインタ４１４Ｂとを、スロット制御ブロック４１２の双方向キューポインタで接続しているので、特定のスロット属性を持つスロット制御ブロック４１２を素早く検索することができる。クリーンキューカウンタ４１４Ｃは、クリーン状態のスロット制御ブロック４１２の総数を記憶する。クリーンキューカウンタ４１４Ｃの総数は、クリーン状態のスロット制御ブロック４１２の数の増減があった場合に反映される。これによって、クリーン状態のスロット制御ブロック４１２の総数を迅速に把握することができる。
【００５２】
図１０は、本発明の一実施形態に係るＳＳＤアクセスモード情報を示す図である。
【００５３】
ＳＳＤアクセスモード情報記憶部３２２は、ＳＳＤ３５２と同数のＳＳＤアクセスモードエントリ３２２１を含む。ＳＳＤアクセスモードエントリ３２２１は、リードモード設定３２２２とライトモード設定３２２３を含み、各モード設定について“イネーブル”（可能）か“ディセーブル”（不可能）のどちらかの状態をとる。ここで、リードモード設定３２２２がディセーブルで、ライトモード設定３２２３がイネーブルである場合には、対応するＳＳＤ３５２がデステージ可能状態（書込可能状態）であることを示し、リードモード設定３２２２がイネーブルで、ライトモード設定３２２３がディセーブルである場合には、対応するＳＳＤ３５２がデステージ不可能状態（書込不可能状態）であることを示している。
【００５４】
図１１は、本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループのデータのキャッシュに関わるキャッシュスロットの状態遷移図である。
【００５５】
キャッシュスロット３２３のスロット状態は、フリー４０１、クリーン４０２、ＲＡＩＤ１論理ダーティ４０３、物理ダーティ４０４のいずれかとなる。フリー４０１とは、キャッシュスロット３２３が未使用のスロット状態であることを示す。クリーン４０２とは、キャッシュスロット３２３が論理ボリュームのデータを含み、そのデータは既にデータ用とミラー用のＳＳＤ３５２へデステージされているスロット状態であることを示す。ＲＡＩＤ１論理ダーティ４０３とは、キャッシュスロット３２３が論理ボリュームのデータを含み、そのデータをデータ用、ミラー用の両方のＳＳＤ３５２へデステージする必要があるスロット状態であることを示す。物理ダーティ４０４とは、キャッシュスロット３２３が論理ボリュームのデータを含み、ミラー用のＳＳＤ３５２へのデステージは行われており、そのデータをデータ用のＳＳＤ３５２へデステージする必要があるスロット状態である。
【００５６】
ＳＣＳＩコマンド処理部３１０においてキャッシュミスが発生すると、ＭＰ３０３は対応するデータをキャッシュするためのキャッシュスロット３２３をフリー４０１のキャッシュスロット３２３から割り当てる。フリー４０１のキャッシュスロット３２３がない場合には、ＭＰ３０３はクリーン４０２のキャッシュスロット３２３のＬＲＵのキャッシュスロット３２３のスロット状態をフリー４０１とすることにより、フリー４０１のキャッシュスロット３２３を確保する。
【００５７】
また、ＭＰ３０３は、割り当てられたフリー４０１のキャッシュスロット３２３に、ホスト１００からのライトデータを格納し、キャッシュスロット３２３のスロット状態をＲＡＩＤ１論理ダーティ４０３に設定する。また、ＭＰ３０３は、ＲＡＩＤ１論理ダーティ４０３のキャッシュスロット３２３のデータについて、ミラー用のＳＳＤ３５２へデステージを完了したら、物理ダーティ４０４に設定する。また、ＭＰ３０３は、物理ダーティ４０４のキャッシュスロット３２３のデータをデータ用のＳＳＤ３５２へデステージを完了したら、クリーン４０２に設定する。
【００５８】
ＭＰ３０３は、キャッシュスロット３２３の各状態遷移を行う際に、状態遷移に応じて、各状態のキャッシュスロット３２３の数を記憶する状態カウンタ（例えば、クリーンキューカウンタ４１４Ｃ）を増減させることで、各状態にあるキャッシュスロット数を管理する。
【００５９】
次に、本発明の一実施形態に係るストレージシステムの処理について説明する。
【００６０】
図１２は、本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するステージ処理のフローチャートである。
【００６１】
このステージ処理は、ＳＣＳＩコマンド処理部３１０にてキャッシュリードミスが発生したときに呼び出されて実行される。
【００６２】
最初に、ＭＰ３０３はＲＡＩＤグループ構成情報３２０１を参照し、リードデータが格納されているデータ用のＳＳＤ３５２とミラー用のＳＳＤ３５２のＳＳＤＩＤを取得する（ステップＳ５０１）。次に、ＭＰ３０３はデータ用のＳＳＤ３５２に対応するＳＳＤアクセスモード情報記憶部３２２のＳＳＤアクセスモードエントリ３２２１を参照し、ＳＳＤ３５２のリードモードが“イネーブル”であるか否かを判定する（ステップＳ５０２）。
【００６３】
判定の結果、リードモードが"イネーブル"である場合（ステップＳ５０２：Ｙｅｓ）には、データ用のＳＳＤ３５２がデステージ可能状態ではないことを意味するので、ＭＰ３０３はこのデータＳＳＤ３５２から対象のデータをリードし、ＣＭ３０５のキャッシュスロット３２３にデータを格納し、要求元のホスト１００へデータを送信する。（ステップＳ５０３）。次いで、ＭＰ３０３はキャッシュスロット３２３のスロット状態を“クリーン”に設定し、ステージ処理を終える（ステップＳ５０４）。
【００６４】
一方、ステップＳ５０２の判定の結果、リードモードが”イネーブル”でない場合（ステップＳ５０２：Ｎｏ）には、データ用のＳＳＤ３５２がデステージ可能状態となっている可能性があるので、ＭＰ３０３はミラー用のＳＳＤ３５２からデータをリードし、キャッシュスロット３２３にデータを格納し、要求元のホスト１００へデータを送信する。（ステップＳ５０５）。次いで、ＭＰ３０３はキャッシュスロット３２３のスロット状態を“クリーン”に設定し、ステージ処理を終える。（Ｓ５０４）。
【００６５】
このような処理によって、ＭＰ３０３は、デステージが可能な状態となっている可能性があるＳＳＤ３５２からリードすることがない。従って、リクラメーション処理を行う可能性のあるデステージ可能状態のＳＳＤ３５２からのリードを回避することができる。このため、リクラメーション処理が行われることのないＳＳＤ３５２からデータをリードすることができ、リクラメーション処理によるアクセス時間の増大を回避することができる。
【００６６】
図１３は、本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するデステージ処理のフローチャートである。
【００６７】
デステージ処理は、例えば、ＭＰ３０３により定期的に呼び出され、ＲＡＩＤ１０の各ＲＡＩＤグループを対象に実行される。最初に、ＭＰ３０３はＲＡＩＤグループ構成情報３２０１とＳＳＤアクセスモードエントリ３２２１を参照し、ＲＡＩＤグループの中でライトモードが“イネーブル”であるＳＳＤ３５２を検索する（ステップＳ６０１）。
【００６８】
ＭＰ３０３は、ステップＳ６０１で見つけたＳＳＤ３５２に対応するキャッシュスロット３２３の中からスロット状態が“物理ダーティ”であるキャッシュスロット３２３を検索する（ステップＳ６０２）。
【００６９】
この結果、物理ダーティであるキャッシュスロット３２３を見つけた場合（ステップＳ６０２：Ｙｅｓ）には、ＭＰ３０３は、このＳＳＤ３５２（この場合には、データ用のＳＳＤ３５２）に対して、キャッシュスロット３２３に格納されているデータ（ダーティデータ）をライトする（ステップＳ６０３）。次いで、ＭＰ３０３は、データＳＳＤ３５２へダーティデータをライトし終えたら、キャッシュスロット３２３のスロット状態を“クリーン”に設定し（ステップＳ６０４）、ステップＳ６０８に進む。これにより、早期にクリーンに遷移させることのできる物理ダーティであるキャッシュスロット３２３を優先的に処理し、クリーンにすることができる。
【００７０】
一方、ＳＳＤ３５２に対応するキャッシュスロット３２３が見つけられなかった場合（ステップＳ６０２：Ｎｏ）には、ＭＰ３０３は、ステップＳ６０１で見つけたＳＳＤ３５２に対応するキャッシュスロット３２３の中からスロット状態が“ＲＡＩＤ１論理ダーティ”であるキャッシュスロット３２３を検索する（ステップＳ６０５）。
【００７１】
この結果、スロット状態が“ＲＡＩＤ１論理ダーティ”であるキャッシュスロット３２３を見つけた場合（ステップＳ６０５：Ｙｅｓ）には、ＭＰ３０３は、このＳＳＤ３５２（この場合には、ミラー用のＳＳＤ３５２）へキャッシュスロット３２３に格納されているデータをライトする（ステップＳ６０６）。次いで、ＭＰ３０３は、ミラーＳＳＤ３５２へデータをライトし終えたら、キャッシュスロット３２３のスロット状態を“物理ダーティ”に設定し（ステップＳ６０７）、ステップＳ６０８に進む。
【００７２】
なお、対応するキャッシュスロット３２３の中からスロット状態が“ＲＡＩＤ１論理ダーティ”であるキャッシュスロット３２３を見つけられなかった場合（ステップＳ６０５：Ｎｏ）には、ステップＳ６０９に進む。
【００７３】
ステップＳ６０８では、ＭＰ３０３は、ライト回数が所定の目標回数（例えば、所定の回数：所定の処理量）に達したか否かを判定し（ステップＳ６０８）、達していない場合（ステップＳ６０８：Ｎｏ）には、ステップＳ６０２に進む一方、所定の目標回数に達している場合（ステップＳ６０８：Ｙｅｓ）には、ステップＳ６０９に進む。
【００７４】
ステップＳ６０９では、ＳＳＤモード更新処理部３１３にデステージ処理の処理完了を通知し、処理を終了する。
【００７５】
図１４は、本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するＳＳＤモード変更処理のフローチャートである。ＳＳＤモード変更処理は、ＳＳＤモード更新処理部３１３によって各ＲＡＩＤグループ（ＲＡＩＤ１０のＲＡＩＤグループ）について実行される。
【００７６】
最初に、ＭＰ３０３は、処理対象のＲＡＩＤグループに対応するダーティデータのデータ量がＣＭ３０５の記憶容量に占める比率が高すぎないか否かを判定する（ステップＳ７０１）。本実施形態では、ＭＰ３０３は、例えば、比率が７０％を超えていたら比率が高すぎると判定する。
【００７７】
ダーティデータの比率が高すぎない場合（ステップＳ７０１：Ｎｏ）には、ＭＰ３０３はライトモードが“イネーブル”であるＳＳＤ３５２に対して、キャッシュフラッシュコマンドを発行する（ステップＳ７０２）。ここで、キャッシュフラッシュコマンドとしては、例えばＡＴＡの場合は、”ＦＬＵＳＨ  ＣＡＣＨＥ”コマンドであり、ＳＣＳＩの場合は“ＳＹＮＣＨＲＯＮＩＺＥ  ＣＡＣＨＥ”コマンドとして定義されているものがある。これにより、コマンドが発行されたＳＳＤ３５２においては、ＳＳＤ３５２内のキャッシュメモリからＮＡＮＤフラッシュメモリに対する書き込みが実行され、必要であれば、リクラメーション処理が実行されることとなる。
【００７８】
ＳＳＤ３５２のキャッシュフラッシュが完了した場合には、ＭＰ３０３は処理対象のＲＡＩＤグループを構成する全ＳＳＤ３５２のリードモードを“イネーブル”に設定し、ライトモードを“ディセーブル”に設定する（ステップＳ７０３）。次に、ＭＰ３０３は、処理対象のＲＡＩＤグループに対応するダーティデータがＣＭ３０５に占める比率が非常に低いか否かを判定する（ステップＳ７０４）。本実施形態では、ＭＰ３０３は、例えば、比率が５％以下である場合には、非常に低いと判定する。
【００７９】
ダーティデータがＣＭ３０５に占める比率が非常に低いと判定された場合（ステップＳ７０４：Ｙｅｓ）には、ＭＰ３０３は、しばらくの間、ＳＳＤモード変更処理３１３をスリープする（ステップＳ７０５）。例えば、スリープする時間としては、固定的な時間（例えば、１秒）としてもよく、ＭＰ３０３がその時点のアクセス負荷を取得し、そのアクセス負荷に応じて時間を可変的に決定するようにしてもよい。このようにすることにより、この間には、ＳＳＤ３５２に対してデステージが発生しないので、デステージ処理によるリードアクセスに対する遅延の影響を適切に防止することができる。
【００８０】
なお、ダーティデータがＣＭ３０５に占める比率が非常に低いと判定されなかった場合（ステップＳ７０４：Ｎｏ）や、スリープの時間が経過した場合には、ＭＰ３０３は、処理対象のＲＡＩＤグループでダーティ状態（ＲＡＩＤ１論理ダーティと物理ダーティ）のキャッシュスロット３２３が最も多いＳＳＤ３５２を選択する（ステップＳ７０６）。次いで、ＭＰ３０３は、選択したＳＳＤ３５２をデステージ実行可能状態に設定する。より具体的には、ＭＰ３０３は、当該ＳＳＤ３５２のＳＳＤアクセスモードエントリ３２２１におけるリードモードを“ディセーブル”に設定し、ライトモードを“イネーブル”に設定する（ステップＳ７０７）。
【００８１】
なお、ダーティデータの比率が高すぎると判定された場合（ステップＳ７０１：Ｙｅｓ）には、ＭＰ３０３は、処理対象のＲＡＩＤグループの全ＳＳＤ３５２をステージ可能状態に設定するととともに、デステージ可能状態の両方に設定する。より具体的には、ＭＰ３０３は、全ＳＳＤ３５２のＳＳＤアクセスモードエントリ３２２１のリードモードとライトモードを“イネーブル”に設定する（ステップＳ７０８）。このようにすることで、ＭＰ３０３はデステージのスループットを向上させ、ＣＭ３０５がダーティデータで埋め尽くされることを回避することができる。
【００８２】
次に、本実施形態に係る計算機システムにおけるＲＡＩＤ５のＲＡＩＤグループが構成されている場合に関わる構成及び処理について説明する。
【００８３】
図１５は、本発明の一実施形態に係る計算機システムの概略構成と、計算機システムにおけるＲＡＩＤ５のＲＡＩＤグループに対するデータ転送の概略を示す図である。なお、図１に示すＲＡＩＤ１０のＲＡＩＤグループに関わる構成との差異を中心に説明する。
【００８４】
記憶装置部３５１には、複数（図では、４台）のＳＳＤ３５２（ＳＳＤ３５２Ｃ〜ＳＳＤ３５２Ｆ）によりＲＡＩＤ５のＲＡＩＤグループが構成されている。
【００８５】
コントローラ部３００においては、図１に示した構成の他に、パリティ計算回路３０６が処理に加わるようになっている。パリティ計算回路３０６は、ＲＡＩＤ５おけるＸＯＲ演算や、ＲＡＩＤ６におけるガロア体演算を行うための回路である。パリティ計算回路３０６は、書込み対象の新データと、書込み対象の領域に書き込まれている旧データと、旧データを用いて算出された旧パリティデータとに基づいて新パリティデータを算出する機能や、複数のデータ（３Ｄ＋Ｐの構成であれば、２組のデータ）とパリティデータとから残りのデータを復元したりする機能を有する。
【００８６】
ＭＰ３０３は、ＲＡＩＤグループの一部のＳＳＤ３５２（ＲＡＩＤ５であれば、いずれか１つのＳＳＤ３５２）をデステージ可能状態としている際に、デステージ可能状態のＳＳＤ３５２からデータを読み出す必要がある場合には、ＭＰ３０３は、残りのＳＳＤ３５２のデータ及びパリティデータをパリティ計算回路３０６に転送し、パリティ計算回路３０６に目的のデータを復元させ、復元したデータをＣＭ３０５に格納する。例えば、図１５において、ＳＳＤ３５２Ｄをデステージ可能状態としている際に、ＳＳＤ３５２Ｄに格納されているデータをステージする必要がある場合には、ＭＰ３０３は、ＳＳＤ３５２Ｃ、ＳＳＤ３５２Ｅ、ＳＳＤ３５２Ｆからデータ及びパリティデータを取得して、パリティ計算回路３０６にデータを復元させて、ＣＭ３０５に格納させる。
【００８７】
このようにすることで、ＭＰ３０３は、リクラメーション処理を実行しないことが確保されている複数のＳＳＤ３５２（例では、ＳＳＤ３５２Ｃ、ＳＳＤ３５２Ｅ、ＳＳＤ３５２Ｆ）のデータ及びパリティデータを用いて所望のデータを生成し、ステージすることができる。このため、リードアクセス応答時間の増大を回避することができる。
【００８８】
図１６は、本発明の一実施形態に係るストレージシステムのＲＡＩＤ５のＲＡＩＤグループに対する処理に関わる機能構成図である。なお、図３に示すＲＡＩＤ１０のＲＡＩＤグループに関わる構成との差異を中心に説明する。
【００８９】
ＭＰ３０３においては、図３に示した構成の他に、パリティ生成処理部３１５がさらに必要となっている。パリティ生成処理部３１５は、書込み対象の新データ（ライトデータ）と、書込み対象の領域に書き込まれている旧データと、旧データを用いて算出された旧パリティデータとに基づいて新パリティデータをパリティ計算回路３６０により算出させ、パリティデータをダーティデータとしてＣＭ３０５に格納する処理を行う。
【００９０】
図１７は、本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループのデータのキャッシュに関わるキャッシュスロットの状態遷移図である。なお、図１１に示すＲＡＩＤ１０のＲＡＩＤグループにおける状態遷移との差異を中心に説明する。
【００９１】
まず、ＲＡＩＤ５のＲＡＩＤグループのキャッシュスロット３２３の状態には、ＲＡＩＤ１論理ダーティ４０３に代えて、ＲＡＩＤ５論理ダーティ４０５が存在する。ＲＡＩＤ５論理ダーティ４０５とは、キャッシュスロット３２３が論理ボリュームのデータを含み、そのデータに対する新パリティデータを生成する必要があるスロット状態を示す。
【００９２】
ホスト１００からのライトデータを格納すると、ＭＰ３０３は、ライトデータを格納したキャッシュスロット３２３の状態をＲＡＩＤ５論理ダーティ４０５に設定する。また、ＭＰ３０３は、ＲＡＩＤ５論理ダーティ４０５のキャッシュスロット３２３に格納したデータに対応するパリティデータの生成を完了したら、当該キャッシュスロット３２３及び対応するパリティデータを格納するためのキャッシュスロット３２３の状態を物理ダーティ４０４に設定する。また、ＭＰ３０３は、物理ダーティ４０４のキャッシュスロット３２３に格納されているデータを対応するデータＳＳＤ３５２へデステージし終えたら、対応するキャッシュスロット３２３の状態を物理ダーティ４０４からクリーン４０２に設定する。また、ＭＰ３０３は、物理ダーティ４０４のキャッシュスロット３２３に格納されているパリティデータを対応するＳＳＤ３５２へデステージし終えたら、パリティデータに対応するキャッシュスロット３２３の状態をクリーン４０２に設定する。
【００９３】
図１８は、本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するステージ処理のフローチャートである。なお、図１２に示すＲＡＩＤ１０のＲＡＩＤグループに対するステージ処理と同様なステップには、同一番号を付し、異なる点を中心に説明する。
【００９４】
ＲＡＩＤ５のＲＡＩＤグループに対するステージ処理においては、図１２のステップＳ５０５に代えて、ステップＳ５０６及びＳ５０７を実行するようになっている。
【００９５】
すなわち、リードモードが”イネーブル”でない場合（ステップＳ５０２：Ｎｏ）には、リードデータが格納されているＳＳＤ３５２がデステージ可能状態となっている可能性があるので、ＭＰ３０３は、当該データを復元するために必要なデータ及びパリティデータを格納している他の複数のＳＳＤ３５２からデータ及びパリティデータをリードし（ステップＳ５０６）、対象のデータを復元するためにパリティ計算回路３０６を起動し、リードしたデータ及びパリティデータから対象のデータを復元し、ＣＭ３０５のキャッシュスロット３２３に格納し、当該データを要求元に送信する（ステップＳ５０７）。
【００９６】
このような処理によって、ＭＰ３０３は、デステージ可能状態となっている可能性があるＳＳＤ３５２からリードすることなく、要求対象のデータを復元する。従って、リクラメーション処理を行う可能性のあるデステージ可能状態のＳＳＤ３５２からのリードを回避することができる。このため、リクラメーション処理が行われることのない他のＳＳＤ３５２のデータ及びパリティデータから要求対象のデータを復元することにより応答することができ、リクラメーション処理によるアクセス時間の増大を回避することができる。
【００９７】
図１９は、本発明の一実施形態に係るパリティ生成処理のフローチャートである。
【００９８】
このパリティ生成処理は、定期的に呼び出されてパリティ生成処理部３１５により各ＲＡＩＤグループ（例では、ＲＡＩＤ５のＲＡＩＤグループ）について実行される。
【００９９】
最初に、ＭＰ３０３はＲＡＩＤグループ構成情報３２０１とＳＳＤアクセスモードエントリ３２２１とを参照し、リードモードが“イネーブル”であるＳＳＤ３５２を検索する（ステップＳ８０１）。
【０１００】
ＭＰ３０３は、ステップＳ８０１で見つけたＳＳＤ３５２に対応するキャッシュスロット３２３の中から、“ＲＡＩＤ５論理ダーティ”であるキャッシュスロット３２３を検索する（ステップＳ８０２）。
【０１０１】
次いで、ＭＰ３０３は、“ＲＡＩＤ５論理ダーティ”であるキャッシュスロット３２３が見つかった場合（ステップＳ８０２：Ｙｅｓ）には、見つかったキャッシュスロット３２３に対応するパリティデータが格納されているＳＳＤ３５２のリードモードが“イネーブル”であるかを判定する（ステップＳ８０３）。
【０１０２】
この結果、パリティが格納されているＳＳＤ３５２のリードモードが"イネーブル"である場合（ステップＳ８０３：Ｙｅｓ）には、ＭＰ３０３は、ステップＳ８０２で見つかったキャッシュスロット３２３に対応する旧データ及び旧パリティデータを格納している他の複数のＳＳＤ３５２からリードする（ステップＳ８０４）。旧データ及び旧パリティデータをリードした後に、ＭＰ３０３は、パリティ計算回路３０６を起動し、旧データ、旧パリティデータ及び新データ（ダーティデータ）から新パリティデータを生成する（ステップＳ８０５）。パリティデータの生成が完了したら、ＭＰ３０３はデータ及びパリティデータに対応するキャッシュスロット３２３のスロット状態を“物理ダーティ”に設定し、処理を終了する。（ステップＳ８０６）。
【０１０３】
なお、ＭＰ３０３は、“ＲＡＩＤ５論理ダーティ”であるキャッシュスロット３２３が見つからなかった場合（ステップＳ８０２：Ｎｏ）又は、キャッシュスロット３２３に対応するパリティが格納されているＳＳＤ３５２のリードモードが“イネーブル”でない場合（ステップＳ８０３：Ｎｏ）には、処理を終了する。
【０１０４】
図２０は、本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するデステージ処理のフローチャートである。なお、図１３に示すＲＡＩＤ１０のＲＡＩＤグループに対するデステージ処理と同様なステップには、同一番号を付し、異なる点を中心に説明する。
【０１０５】
ＲＡＩＤ５のＲＡＩＤグループに対するデステージ処理においては、ＳＳＤ３５２に対応するキャッシュスロット３２３が見つけられなかった場合（ステップＳ６０２：Ｎｏ）において、図１３に示すステップＳ６０５〜ステップＳ６０７を実行せずに、ステップＳ６０９に進むようになっている。
【０１０６】
図２１は、本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するＳＳＤモード変更処理のフローチャートである。なお、図１４に示すＲＡＩＤ１０のＲＡＩＤグループに対するステージ処理と同様なステップには、同一番号を付し、異なる点を中心に説明する。
【０１０７】
ＲＡＩＤ５のＲＡＩＤグループに対するＳＳＤモード変更処理においては、図１４のステップＳ７０６に代えて、ＭＰ３０３は、対象のＲＡＩＤグループで物理ダーティ量の多さに基づいて、ＳＳＤ３５２を選択する（ステップＳ７０９）。この選択されたＳＳＤ３５２が、デステージ可能状態に設定される。例えば、４台のＳＳＤ３５２で構成されている３Ｄ＋ＰのＲＡＩＤ５のＲＡＩＤグループであれば、最も物理ダーティ量の多い１台のＳＳＤ３５２を選択してよく、また、３Ｄ＋ＰのＲＡＩＤ５のＲＡＩＤグループを８台のＳＳＤ３５２で構成している場合には、最も物理ダーティ量の多いＳＳＤ３５２を含む１Ｄ又はＰに属する２台のＳＳＤ３５２を選択してもよい。
【０１０８】
次に、本実施形態に係るストレージシステムの変形例について説明する。
【０１０９】
図２２は、本発明の変形例に係るＲＡＩＤグループ構成情報の構成図である。なお、図６に示すＲＡＩＤグループ構成情報３２０１との違いを中心に説明する。
【０１１０】
本変形例に係るＲＡＩＤグループ構成情報３２０５は、図６に示すＲＡＩＤグループ構成情報３２０１に、更に、ＲＡＩＤグループに対する性能モード３２０４を含むようにしたものである。
【０１１１】
性能モード３２０４には、対応するＲＡＩＤグループに対するアクセス処理のモードの設定として、”スループット優先”又は、”応答時間優先”の設定（指定情報）が格納される。この設定は、予めユーザにより設定させるようにしてもよく、また、処理におけるアクセス応答時間や処理負荷をＭＰ３０３が監視し、その監視結果に応じて、動的にモードを決定するようにしてもよい。例えば、処理負荷が大きくなってきた場合に、スループット優先に設定するようにしてもよい。応答時間優先の設定をした場合には、対応するＲＡＩＤグループに対しては、ＭＰ３０３は、ＳＳＤモード更新処理部３１３による処理（図１２及び図１３、又は、図１８乃至図２０の処理）を実行する。一方、スループット優先の設定をした場合には、対応するＲＡＩＤグループに対しては、ＭＰ３０３は、対応するＲＡＩＤグループの全てのＳＳＤ３５２のリードモードとライトモードとの両方を常に“イネーブル”に設定する。
【０１１２】
例えば、上記実施形態においては、ＲＡＩＤ５のＲＡＩＤグループのステージ対象データが格納されたＳＳＤ３５２がデステージ可能状態となっている場合は、パリティ計算によってデータを復元するようにしている。このため、ＭＰ３０３による処理が必要であるとともに、ＳＳＤ３５２へのアクセス回数が増えることになる。このような場合に、ＲＡＩＤグループを用いた業務の特性によっては、ＭＰ３０３の処理のオーバヘッドや、ＳＳＤ３５２へのアクセスがボトルネックとなる場合も考えられる。
【０１１３】
これに対して、上記変形例によると、ＲＡＩＤグループ毎に、ＳＳＤモード更新処理部３１３による処理を行うか否かを決定することができるので、上記したようなＭＰ３０３のオーバヘッドや、ＳＳＤ３５２のボトルネックを防ぐようにすることができる。
【０１１４】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【０１１５】
例えば、上記実施形態のＲＡＩＤ１０に対するデステージ処理においては、キャッシュスロット３２３のデータをデータＳＳＤ３５２及びミラーＳＳＤ３５２の両方に対してデステージしていない場合には、まず、対応するミラー用のＳＳＤ３５２にデステージし（ステップＳ６０６）、その後、データ用のＳＳＤ３５２にデステージする（以降の処理におけるステップＳ６０３）ようにしていたが、本発明は、これに限られず、キャッシュスロット３２３のデータをデータＳＳＤ３５２及びミラーＳＳＤ３５２の両方に対してデステージしていない場合に、いずれか一方のＳＳＤ３５２に対してデステージし、その後、他方のＳＳＤ３５２に対してデステージをするようにしてもよい。
【０１１６】
また、上記実施形態では、パリティデータを用いたＲＡＩＤ５のＲＡＩＤグループを例に説明していたが、本発明はこれに限られず、ＲＡＩＤ６のＲＡＩＤグループに対しても適用することができる。この場合には、例えば、２台のＳＳＤ３５２をデステージ可能状態としておき、これらのＳＳＤ３５２のデータをステージする必要がある場合には、他のＳＳＤ３５２のデータ及びパリティデータによりこれらのＳＳＤ３５２のデータを復元してステージすればよい。
【０１１７】
また、上記実施形態では、図１３又は図２０のデステージ処理においては、ステップＳ６０８において、所定の処理量（例えば、目標回数）が完了するまで処理を繰り返すようにしていたが、本発明はこれに限られず、例えば、所定の時間が経過するまで処理を繰り返すようにしてもよく、また、目標回数が完了するか又は時間が経過するまで処理を繰り返すようにしてもよい。
【０１１８】
また、上記実施形態では、ＲＡＩＤグループにおいて、複数のＳＳＤの一方側をデータ用のＳＳＤとし、他方側のＳＳＤをミラー用のＳＳＤとして固定していたが、本発明はこれに限られず、一方側のＳＳＤの中の所定の領域をデータ用の領域とすると共に、他方側の所定の領域を対応するミラー用の領域とし、また、一方側のＳＳＤの中の所定の領域をミラー用の領域とすると共に、他方側の所定の領域を対応するデータ用の領域とするようにして、同一（又は、同一の組）のＳＳＤ３５２にミラー用とデータ用の領域が混在していてもよい。
【図面の簡単な説明】
【０１１９】
【図１】本発明の一実施形態に係る計算機システムの概略構成と、計算機システムにおけるＲＡＩＤ１０のＲＡＩＤグループに対するデータ転送の概略を示す図である。
【図２】本発明の一実施形態に係るストレージシステムのハードウェア構成図である。
【図３】本発明の一実施形態に係るストレージシステムのＲＡＩＤ１０のＲＡＩＤグループに対する処理に関わる機能構成図である。
【図４】本発明の一実施形態に係るＬＵ構成情報テーブルを示す図である。
【図５】本発明の一実施形態に係る論理ボリューム構成情報テーブルを示す図である。
【図６】本発明の一実施形態に係るＲＡＩＤグループ構成情報を示す図である。
【図７】本発明の一実施形態に係るキャッシュ制御情報を示す図である。
【図８】本発明の一実施形態に係るキャッシュディレクトリテーブルと、スロット制御ブロックとの対応を示す図である。
【図９】本発明の一実施形態に係るクリーンキューと、スロット制御ブロックとの対応を示す図である。
【図１０】本発明の一実施形態に係るＳＳＤアクセスモード情報を示す図である。
【図１１】本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループのデータのキャッシュに関わるキャッシュスロットの状態遷移図である。
【図１２】本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するステージ処理のフローチャートである。
【図１３】本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するデステージ処理のフローチャートである。
【図１４】本発明の一実施形態に係るＲＡＩＤ１０のＲＡＩＤグループに対するＳＳＤモード変更処理のフローチャートである。
【図１５】本発明の一実施形態に係る計算機システムの概略構成と、計算機システムにおけるＲＡＩＤ５のＲＡＩＤグループに対するデータ転送の概略を示す図である。
【図１６】本発明の一実施形態に係るストレージシステムのＲＡＩＤ５のＲＡＩＤグループに対する処理に関わる機能構成図である。
【図１７】本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループのデータのキャッシュに関わるキャッシュスロットの状態遷移図である。
【図１８】本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するステージ処理のフローチャートである。
【図１９】本発明の一実施形態に係るパリティ生成処理のフローチャートである。
【図２０】本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するデステージ処理のフローチャートである。
【図２１】本発明の一実施形態に係るＲＡＩＤ５のＲＡＩＤグループに対するＳＳＤモード変更処理のフローチャートである。
【図２２】本発明の変形例に係るＲＡＩＤグループ構成情報の構成図である。
【符号の説明】
【０１２０】
１００  ホスト計算機、２００  ストレージシステム、３００  コントローラ部、３０１  ホストＩ／Ｆ、３０２  ディスクＩ／Ｆ、３０３  プロセッサ、３０５  キャッシュメモリ、３０１  ホストＩ／Ｆ、３１０  ＳＣＳＩコマンド処理部、３１１  ステージ処理部、３０６  パリティ計算回路、３１２  デステージ処理部、３１３  ＳＳＤモード更新処理部、３１４  構成管理処理部、３２０  構成情報記憶部、３２１  キャッシュ制御情報記憶部、３２２  ＳＳＤアクセスモード情報記憶部、３２３  キャッシュスロット、３５１  記憶装置部、３５２  ＳＳＤ。
【図１】
2010102369.tif 000003
【図２】
2010102369.tif 000004
【図３】
2010102369.tif 000005
【図４】
2010102369.tif 000006
【図５】
2010102369.tif 000007
【図６】
2010102369.tif 000008
【図７】
2010102369.tif 000009
【図８】
2010102369.tif 000010
【図９】
2010102369.tif 000011
【図１０】
2010102369.tif 000012
【図１１】
2010102369.tif 000013
【図１２】
2010102369.tif 000014
【図１３】
2010102369.tif 000015
【図１４】
2010102369.tif 000016
【図１５】
2010102369.tif 000017
【図１６】
2010102369.tif 000018
【図１７】
2010102369.tif 000019
【図１８】
2010102369.tif 000020
【図１９】
2010102369.tif 000021
【図２０】
2010102369.tif 000022
【図２１】
2010102369.tif 000023
【図２２】
2010102369.tif 000024