(57)【要約】      （修正有）【課題】ライトバックモードを用いることによって、情報処理装置へのレスポンス性能が低下する場合の性能を改善するライトバックモードとライトスルーモードを有するストレージ制御装置を提供する。【解決手段】ストレージ制御装置が、キャッシュメモリ上でデータを冗長保持するのに要する第１時間と、ストレージ装置にデータを格納するのに要する第２時間を測定し、第１時間が第２時間よりも短い場合には、ライトバックモードが選択され、第１時間が第２時間よりも長い場合は、ライトスルーモードが選択される。【選択図】図９
2018132964.tif 000002
【特許請求の範囲】
【請求項１】
第１制御装置と第２制御装置とを含み、情報処理装置から受信した第１データのストレージ装置への格納を制御するストレージ制御装置において、
前記第１制御装置は、
第２データを前記第２制御装置へ送信し、前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を前記第２制御装置から受信する第１送受信部と、
前記第２データを前記ストレージ装置へ送信し、前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第２送受信部と、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が受信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第２時間を測定する測定部と、
前記第１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択するモード選択部と、
を有し、
前記第１制御装置は、前記第１モードが選択された場合、前記情報処理装置から送信された前記第１データを前記第２制御装置及び前記ストレージ装置へ送信し、前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第１制御装置は、前記第２モードが選択された場合、前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御装置。
【請求項２】
前記第２モードにおいて、前記第１制御装置は、前記第１データを前記第２制御装置へ送信しないことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記第１制御装置は、第１キャッシュメモリを有し、
前記第２制御装置は、第２キャッシュメモリを有し、
前記第１モード及び前記第２モードにおいて、前記第１データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第１データを保持し、
前記第１モードにおいて、前記第１データが前記第２制御装置に送信された場合、前記第２キャッシュメモリが前記第１データを保持することを特徴とする請求項１又は２に記載のストレージ制御装置。
【請求項４】
前記第１制御装置にエラーが発生し、前記第１制御装置から前記第１データが前記ストレージ装置に送信されない場合は、前記第２制御装置が前記第２キャッシュメモリに保持された前記第１データを前記ストレージ装置に送信することを特徴とする請求項３に記載のストレージ制御装置。
【請求項５】
前記ストレージ装置はＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）又はＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）であることを特徴とする請求項１乃至４何れか一項に記載のストレージ制御装置。
【請求項６】
前記モード選択部は、前記第１時間が前記第２時間よりも短い場合に、前記第１モードを選択し、前記第２時間が前記第１時間よりも短い場合に、前記第２モードを選択することを特徴とする請求項１乃至５何れか一項に記載のストレージ制御装置。
【請求項７】
前記第２データはサンプルデータであり、
前記第１送受信部及び前記第２送受信部は、前記サンプルデータを複数回、前記第２制御装置及び前記ストレージ装置に送信することにより、前記第１時間及び前記第２時間の測定を複数回実行し、
前記モード選択部は、複数回の前記測定において連続して前記第１時間が前記第２時間よりも短い場合に、前記第１モードを選択し、複数回の前記測定において連続して前記第２時間が前記第１時間よりも短い場合に、前記第２モードを選択することを特徴とする請求項１乃至５何れか一項に記載のストレージ制御装置。
【請求項８】
前記第１モードにおいて前記第１制御装置は、前記第２データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第１制御装置によって受信される前に、第３データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第３データを保持し、前記格納完了通知が前記第１制御装置によって受信された後に、前記第２送受信部が前記第３データを前記ストレージ装置へ送信することを特徴とする請求項１乃至７何れか一項に記載のストレージ制御装置。
【請求項９】
第１制御装置と第２制御装置とを用いて、情報処理装置から受信した第１データのストレージ装置への格納を制御するストレージ制御方法であって、
前記第１制御装置から前記第２制御装置へ第２データを送信し、
前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を、前記第２制御装置から前記第１制御装置へ送信し、
前記第１制御装置から前記ストレージ装置へ前記第２データを送信し、
前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から前記第１制御装置へ送信し、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が前記第１制御装置へ送信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が前記第１制御装置へ送信されるまでの第２時間を測定し、
前記１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択する処理を実行し、
前記第１モードが選択された場合、前記第１制御装置が、
前記情報処理装置から送信された前記第１データを、前記第２制御装置及び前記ストレージ装置へ送信し、
前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、
前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第２モードが選択された場合、前記第１制御装置が、
前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、
前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御方法。
【請求項１０】
ストレージ装置と、
第１制御装置と第２制御装置とを含み、情報処理装置から受信した第１データの前記ストレージ装置への格納を制御するストレージ制御装置とを含み、
前記第１制御装置は、
第２データを前記第２制御装置へ送信し、前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を前記第２制御装置から受信する第１送受信部と、
前記第２データを前記ストレージ装置へ送信し、前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第２送受信部と、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が受信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第２時間を測定する測定部と、
前記第１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択するモード選択部と、
を有し、
前記第１制御装置は、前記第１モードが選択された場合、前記情報処理装置から送信された前記第１データを前記第２制御装置及び前記ストレージ装置へ送信し、前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第１制御装置は、前記第２モードが選択された場合、前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ストレージ制御装置、ストレージ制御方法及びストレージシステムに関する。
【背景技術】
【０００２】
ストレージシステムは、データを記録するストレージ装置と、ストレージ装置を制御するストレージ制御装置を含む。ストレージ装置は、例えばＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）やＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）等の不揮発性のデータ格納装置である。ストレージ制御装置は、ホストサーバから受信するデータ書き込み要求やデータ読み出し要求に応じてストレージ装置を制御し、ストレージ装置へのデータの書き込みやストレージ装置からのデータの読み出しを実行する。
【０００３】
ストレージ制御装置は、ホストサーバから例えばデータ書き込み要求（以下、ライトコマンド）を受信した場合、ライトコマンドの対象となるデータのストレージ装置への格納に関する所定の処理を実行する。そして、ストレージ制御装置は、当該所定の処理の完了後、処理完了通知をホストサーバへ送信する。ホストサーバは、ストレージ制御装置から送信された処理完了通知の受信に基づき、例えば次のライトコマンドの生成などの処理を行うことができる。ここで、ホストサーバがライトコマンドをストレージ制御装置に送信してから、ホストサーバがストレージ制御装置から処理完了通知を受信するまでの時間をレスポンスタイムと呼ぶ。レスポンスタイムが短いことは、ホストサーバ側から見た場合のストレージ制御装置の応答速度が速いことを意味し、ストレージ制御装置の処理性能の指標の一つとなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−３３５１４４号公報
【特許文献２】特開平１０−１０５４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
レスポンスタイムは、ストレージ制御装置の処理負荷等によって変動する。開示の技術は、レスポンスタイムを改善するようストレージ制御装置の制御を行うことを目的とする。
【課題を解決するための手段】
【０００６】
第１制御装置と第２制御装置とを含み、情報処理装置から受信した第１データのストレージ装置への格納を制御するストレージ制御装置において、前記第１制御装置は、第２データ（サンプルデータ）を前記第２制御装置へ送信し、前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を前記第２制御装置から受信する第１送受信部と、前記第２データを前記ストレージ装置へ送信し、前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第２送受信部と、前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が受信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第２時間を測定する測定部と、前記第１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択するモード選択部と、を有し、前記第１制御装置は、前記第１モードが選択された場合であって、前記情報処理装置から前記第１データを受信した場合には、前記第１データを前記第２制御装置へ送信し、前記第１データを前記ストレージ装置へ送信し、前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、前記第１制御装置は、前記第２モードが選択された場合であって、前記情報処理装置から前記第１データを受信した場合、前記第１データを前記ストレージ装置へ送信し、前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信することを特徴とするストレージ制御装置が開示される。
【発明の効果】
【０００７】
開示の技術により、ホストサーバからストレージシステムへのレスポンスタイムを改善することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置に接続されたストレージシステムを示す図である。
【図２】制御装置（ＣＭ）のハードウェアを示す図である。
【図３】ストレージ装置のハードウェアを示す図である。
【図４】ライトバックモードにおける処理フローを示すラダーチャートである。
【図５】ライトスルーモードにおける処理フローを示すラダーチャートである。
【図６】ライトバックモードにおける処理フローを示すラダーチャートである。
【図７】ＣＭのプロセッサの機能ブロック図である。
【図８】ストレージ装置のプロセッサの機能ブロック図である。
【図９】第１時間及び第２時間の測定方法と、その結果に基づくモード選択方法を説明するための図である。
【図１０】管理テーブルの登録内容の例を示す図である。
【図１１】担当ＣＭのプロセッサによって実行される、モード選択に関する処理のフローチャートである。
【図１２】非担当ＣＭのプロセッサによって実行される、モード選択に関する処理のフローチャートである。
【図１３】ストレージ装置のプロセッサによって実行される、モード選択に関する処理のフローチャートである。
【図１４】担当ＣＭのプロセッサによって実行される、モード選択後にライトコマンドが入力された際の処理のフローチャートである。
【図１５】ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に問題が生じる場合について説明するための図である。
【図１６】ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に生じる問題を解決する方法を説明するための図である。
【図１７】複数のＣＭがそれぞれ、複数のＲＡＩＤの担当ＣＭとして機能するストレージシステムを示す図である。
【図１８】変形例における管理テーブルの登録内容の例を示す図である。
【発明を実施するための形態】
【０００９】
図１は、情報処理装置１０に接続されたストレージシステムを示す図である。情報処理装置１０は例えばホストサーバである。ストレージシステムは、ストレージ制御装置２０とストレージ装置３０を含む。ストレージ制御装置２０は、制御装置２１ａ及び２１ｂを含む。制御装置２１ａ及び２１ｂは互いに、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）バスによって接続され、相互にデータの送受信を行うことができる。制御装置２１ａ及び２１ｂはそれぞれＣｏｎｔｒｏｌ  Ｍａｎａｇｅｒ（以下、ＣＭ）と呼ばれる。以下、ＣＭ２１ａ及び２１ｂを区別しない場合は、単に「ＣＭ２１」と表記するものとする。
【００１０】
ストレージ装置３０は、複数の記憶領域３１ａ、３１ｂ、３１ｃ、３１ｄを含む。複数の記憶領域３１ａ、３１ｂ、３１ｃ、３１ｄは、それぞれ個別の記憶装置であってもよい。図１においては、記憶領域３１ａ及び３１ｂが、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）３２Ａを構成し、記憶領域３１ｃ及び３１ｄがＲＡＩＤ３２Ｂを構成するものとする。例えばＲＡＩＤレベルがＲＡＩＤ１である場合、同一のデータが記憶領域３１ａ及び３１ｂにミラーリングされる。尚、本実施形態において、ＲＡＩＤレベルはＲＡＩＤ１に限定されるものではなく、ＲＡＩＤ５が適用されてもよい。以下、記憶領域３１ａ、３１ｂ、３１ｃ、３１ｄを区別しない場合は、単に「記憶領域３１」と表記するものとする。また、ＲＡＩＤ３２Ａ及び３２Ｂを区別しない場合は、単に「ＲＡＩＤ３２」と表記するものとする。
【００１１】
次に、情報処理装置１０がライトコマンドを発行してストレージシステムへのデータの格納を要求した場合における、ストレージ制御装置２０及びストレージ装置３０において行われる処理について説明する。情報処理装置１０はライトコマンドを、ＣＭ２１ａ及び２１ｂの一方に送信する。ＣＭ２１ａがライトコマンドを受信した場合、ＣＭ２１ａは、記憶領域３１ａ及び３１ｂを含むＲＡＩＤ３２Ａにデータを格納する。この場合、ＣＭ２１ａは、ＲＡＩＤ３２Ａに対する担当ＣＭと呼ばれる。同様に、ＣＭ２１ｂがライトコマンドを受信した場合、ＣＭ２１ｂは、記憶領域３１ｃ及び３１ｄを含むＲＡＩＤ３２Ｂにデータを書き込む。この場合ＣＭ２１ｂは、ＲＡＩＤ３２Ｂに対する担当ＣＭと呼ばれる。
【００１２】
ＣＭ２１ａは、ライトコマンドを受信すると、ＣＭ２１ａに設けられたキャッシュメモリにデータを保持させる。その後ＣＭ２１ａは、キャッシュメモリに保持されたデータをＲＡＩＤ３２Ａに格納する処理を実行する。ＲＡＩＤ３２Ａにデータが格納された後、キャッシュメモリに保持されたデータは消去される。
【００１３】
同様に、ＣＭ２１ｂがライトコマンドを受信した場合は、ＣＭ２１ｂは、ＣＭ２１ｂに設けられたキャッシュメモリにデータを保持させる。その後ＣＭ２１ｂは、キャッシュメモリに保持されたデータをＲＡＩＤ３２Ｂに格納する処理を実行する。ＲＡＩＤ３２Ｂにデータが格納された後、キャッシュメモリに保持されたデータは消去される。
【００１４】
またストレージ制御装置２０は、ＣＭ２１ａが情報処理装置１０から受信したデータをＣＭ２１ｂへ送信し、ＣＭ２１ｂのキャッシュメモリに保持させる機能を有する。これは、ＣＭ２１ａに何等かのエラーが発生し、ＣＭ２１ａのキャッシュメモリに保持されたデータをＲＡＩＤ３２Ａに格納することができなくなった場合に備えた処理である。この処理により、ＣＭ２１ａにエラーが発生した場合には、ＣＭ２１ｂがＣＭ２１ａに代わって、ＣＭ２１ｂのキャッシュメモリに保持されたデータをＲＡＩＤ３２Ａに格納することが可能となる。この場合、ＣＭ２１ａが担当ＣＭと呼ばれるのに対し、ＣＭ２１ｂは非担当ＣＭと呼ばれる。同様にストレージ制御装置２０は、ＣＭ２１ｂが情報処理装置１０から受信したデータをＣＭ２１ａへ送信し、ＣＭ２１ａのキャッシュメモリに保持させる機能を有する。この場合、ＣＭ２１ｂが担当ＣＭであり、ＣＭ２１ａが非担当ＣＭとなる。このように、ＣＭ２１ａ及び２１ｂは、互いに同一のデータを冗長的に保持することによってデータの消失を防ぐ機能を有している。
【００１５】
図２は、ＣＭ２１のハードウェアを示す図である。ＣＭ２１は、Ｃｈａｎｎｅｌ  Ａｄａｐｔｏｒ（ＣＡ）２１０と、プロセッサ２２０と、不揮発性メモリ２３０と、揮発性メモリ２４０と、スイッチ２５０と、バッテリ２６０と、Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｃｏｎｔｒｏｌｌｅｒ（ＩＯＣ）２７０と、Ｅｘｐａｎｄｅｒ（ＥＸＰ）２８０とを有する。ＣＡ２１０は、情報処理装置１０に対するインターフェースとして機能し、情報処理装置１０からライトコマンドを受信する。尚、本明細書においてライトコマンドは、データの書き込みの要求と、書き込み対象となるデータを含むものとして説明される。また、ストレージ装置３０から読み出されたデータは、ＣＡ２１０を介して情報処理装置１０に対して送信される。更に、情報処理装置１０から受信したライトコマンドに対する処理完了通知もＣＡ２１０を介して情報処理装置１０に対して送信される。
【００１６】
プロセッサ２２０は、不揮発性メモリ２３０に格納されたコンピュータプログラムを揮発性メモリ２４０にロードして実行する。例えばプロセッサ２２０は、ライトコマンドの受信に応じて、非担当ＣＭへのデータの送信処理や、ストレージ装置３０へのデータの送信処理を実行する。プロセッサ２２０はハードウェアプロセッサであり、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ（ＭＣＵ）、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）等が適用可能である。
【００１７】
不揮発性メモリ２３０は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ２３０には、プロセッサ２２０によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ２３０は、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｍａｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（マスクＲＯＭ）、Ｐｒｏｇｒａｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＰＲＯＭ）、フラッシュメモリ、Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＭＲＡＭ）、Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲｅＲＡＭ）、Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＦｅＲＡＭ）等である。コンピュータプログラムは、不揮発性メモリ２３０以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録されることもできる。また、コンピュータプログラムが記録されたＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
【００１８】
揮発性メモリ２４０は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ２４０には、不揮発性メモリ２３０に格納されているコンピュータプログラムがロードされる。また揮発性メモリ２４０には、プロセッサ２２０による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。また揮発性メモリ２４０は、上述のキャッシュメモリとして使用され、例えばＣＭ２１がライトコマンドを受信した場合、書き込み対象となるデータがキャッシュメモリに保持される。揮発性メモリ２４０は、例えばＳｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）やＤｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）等である。
【００１９】
スイッチ２５０は、担当ＣＭと非担当ＣＭとの間の接続のインターフェースとして機能する。スイッチ２５０は例えばＰＣＩ  Ｅｘｐｒｅｓｓ  スイッチである。バッテリ２６０は、ＣＭ２１への外部からの電力供給が停止した際に、揮発性メモリ２４０に保持されたデータの損失を防ぐよう、不揮発性メモリ２３０や揮発性メモリ２４０に電力を供給する。ＩＯＣ２７０はＣＭ２１とストレージ装置３０との間で行われるデータの送受信を制御する。ＥＸＰ２８０は、ＣＭ２１とストレージ装置３０との間で行われるデータの送受信を中継する。
【００２０】
図３は、ストレージ装置３０のハードウェアを示す図である。ストレージ装置３０は、インターフェースカード３１０、プロセッサ３２０、不揮発性メモリ３３０、揮発性メモリ３４０、フラッシュメモリ３９０を有する。図１に開示されたＲＡＩＤ３２Ａ及び３２Ｂは、フラッシュメモリ３９０により実現される。
【００２１】
インターフェースカード３１０はＣＭ２１に対するインターフェースとして機能する。
プロセッサ３２０は、不揮発性メモリ３３０に格納されたコンピュータプログラムを揮発性メモリ３４０にロードして実行することにより、所定のデータ処理を行う。例えばプロセッサ３２０は、ＣＭ２１からデータを受信すると、フラッシュメモリ３９０に設定されたＲＡＩＤ３２にデータを格納する。プロセッサ３２０はハードウェアプロセッサであり、ＣＰＵ、ＭＣＵ、ＭＰＵ、ＤＳＰ、ＦＰＧＡ等が適用可能である。
【００２２】
不揮発性メモリ３３０は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ３３０には、プロセッサ３２０によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ３３０は、例えばＲＯＭ、マスクＲＯＭ、ＰＲＯＭ、フラッシュメモリ、ＭＲＡＭ、ＲｅＲＡＭ、ＦｅＲＡＭ等である。揮発性メモリ３４０は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ３４０には、不揮発性メモリ３３０に格納されているコンピュータプログラムがロードされる。また揮発性メモリ３４０には、プロセッサ３２０による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ３４０は、例えばＳＲＡＭやＤＲＡＭ等である。
【００２３】
次に、ライトバックモードとライトスルーモードについて説明する。情報処理装置１０からライトコマンドを受信したＣＭ２１が、データをストレージ装置３０に格納する処理のモードとして、ライトバックモードとライトスルーモードとがある。
【００２４】
ライトバックモードにおいては、担当ＣＭから非担当ＣＭへ、ライトコマンドの書き込み対象であるデータを送信し、非担当ＣＭのキャッシュメモリにデータを保持させる処理が実行される。またライトバックモードでは、ライトコマンドの受信とは非同期に、担当ＣＭからストレージ装置３０へのデータの格納処理が実行される。またライトバックモードでは、非担当ＣＭのキャッシュメモリにデータが保持されたことに基づいて、担当ＣＭから情報処理装置１０へ処理完了通知が送信される。
【００２５】
一方のライトスルーモードにおいては、担当ＣＭから非担当ＣＭへのデータの送信は行われず、担当ＣＭと非担当ＣＭとによるデータの冗長保持は行われない。またライトスルーモードでは、ライトコマンドの受信に同期して、担当ＣＭからストレージ装置３０へのデータの格納処理が実行される。またライトスルーモードでは、ストレージ装置３０にデータが格納されたことに基づいて、担当ＣＭから情報処理装置１０へ処理完了通知が送信される。
【００２６】
以下、ライトバックモードとライトスルーモードにおける具体的な処理を、図４及び図５を用いて説明する。
【００２７】
（ライトバックモード）
図４は、ライトバックモードにおける処理フローを示すラダーチャートである。ここでは、ＣＭ２１ａが担当ＣＭ、ＣＭ２１ｂが非担当ＣＭであるものとして説明する。
【００２８】
まず処理Ｓ４１０において情報処理装置１０が、データＡのストレージ装置３０への格納を要求するライトコマンドを発行する。ライトコマンドを受信した担当ＣＭであるＣＭ２１ａは、処理Ｓ４２０において、データＡを自身のキャッシュメモリに保持する。
【００２９】
次に処理Ｓ４２１においてＣＭ２１ａが、非担当ＣＭであるＣＭ２１ｂへのデータＡの送信処理を行う。またＣＭ２１ａは、処理Ｓ４２１において、データＡのストレージ装置３０への送信処理も行う。但し、処理Ｓ４２１において、ＣＭ２１ｂへのデータの送信処理と、ストレージ装置３０へのデータの送信処理の開始タイミングは同一である必要はなく、異なるタイミングにおいてそれぞれの送信処理が実行されてもよい。
【００３０】
ＣＭ２１ｂへ送信されたデータＡが、ＣＭ２１ｂのキャッシュメモリに保持された後、処理Ｓ４２２においてＣＭ２１ｂが、データＡがＣＭ２０ｂのキャッシュメモリに保持されたことを示す保持完了通知を、ＣＭ２１ａに対して送信する。この保持完了通知は、ＣＭ２１ａ及び２１ｂが、同一データを冗長的にそれぞれのキャッシュメモリに保持させたことを意味する。よって、例えばデータＡのストレージ装置３０への格納処理が完了しない状態においてＣＭ２１ａに何等かのエラーが発生しても、データＡが紛失することを防止することができる。そこで処理Ｓ４２３においてＣＭ２１ａは、情報処理装置１０への処理完了通知を送信する。情報処理装置１０がデータＡに関するライトコマンドを発行してから、情報処理装置１０が処理完了通知を受信するまでの時間がレスポンスタイムに相当する。
【００３１】
処理完了通知は、ＣＭ２１ａが更に次のライトコマンドを受け入れることが可能な状態となったことを示す通知でもある。よって情報処理装置１０は、処理完了通知の受信に基づき、例えばデータＢに関するライトコマンドを発行するなどの処理を行うことができる。
【００３２】
このように、担当ＣＭから非担当ＣＭへデータを送信し、非担当ＣＭのキャッシュメモリにデータが保持されたことに伴って、担当ＣＭから情報処理装置１０に対して処理完了通知が発行される点が、ライトバックモードの特徴の一つである。言い換えれば、ライトバックモードにおいては、ストレージ装置３０へのデータの格納処理が完了したかとは無関係に、担当ＣＭと非担当ＣＭとにおいてデータの冗長化が行われたタイミングに基づいてレスポンスタイムが決定される。
【００３３】
更に図４に基づいて、ストレージ装置３０へのデータ格納に伴う処理について説明する。処理Ｓ４２１においてＣＭ２１ａがデータＡをストレージ装置３０へ送信したことに基づき、ストレージ装置３０のＲＡＩＤ３２ＡへのデータＡの格納処理が実行される。ＲＡＩＤ３２ＡへのデータＡの格納が終了すると、処理Ｓ４３０においてストレージ装置３０は、ＲＡＩＤ３２ＡへのデータＡの格納が終了したことを示す格納完了通知を、ＣＭ２１ａに送信する。そして、図示はされていないが、この格納完了通知に基づいて、ＣＭ２１ａのキャッシュメモリに保持されていたデータＡが、キャッシュメモリから消去される。これにより、他のデータのための保持領域がキャッシュメモリ内に確保される。またＣＭ２１ａは、自身のキャッシュメモリからデータＡを消去する場合、ＣＭ２１ｂのキャッシュメモリに保持されたデータＡを消去するよう、ＣＭ２１ｂに通知を行ってもよい。この通知に基づき、ＣＭ２１ｂは、自身のキャッシュメモリに保持されたデータＡを消去する。
【００３４】
尚、繰り返しとなるが、本明細書において「保持完了通知」は、非担当ＣＭが自身のキャッシュメモリにデータを保持させたことを示す通知であって、非担当ＣＭから担当ＣＭへ送信される通知を意味する。また「格納完了通知」は、ストレージ装置３０がデータを格納したことを示す通知であって、ストレージ装置３０からストレージ制御装置２０へ送信される通知を意味する。また「処理完了通知」は、ライトコマンドの受信に応じて所定の処理が終了したことを示す通知であって、ストレージ制御装置２０から情報処理装置１０へ送信される通知を意味する。
【００３５】
一般に、ＳＳＤ等の記憶装置へのデータ書き込み速度は、ＣＭ２１の有するＤＲＡＭ等の揮発性メモリ２４０を用いたキャッシュメモリへのデータ書き込み速度に比べて遅い。よって図４においては、処理Ｓ４３０における格納完了通知が、処理Ｓ４２２における保持完了通知の送信よりも、遅いタイミングで送信される状態が図示されている。
【００３６】
更に図４を用いて、ライトバックモードにおいて先に発行されたライトコマンドに関するストレージ装置３０へのデータの格納処理が完了する前に、他のライトコマンドが発行された場合の処理手順を説明する。
【００３７】
図４において情報処理装置１０は、処理Ｓ４２３においてＣＭ２１ａが発行した処理完了通知を受信した後、処理Ｓ４１１において、データＢに関するライトコマンドを発行する。ＣＭ２１ａは、処理Ｓ４２４においてデータＢを自身のキャッシュメモリに保持させ、処理Ｓ４２５においてデータＢをＣＭ２１ｂへ送信する。尚、図４に示される例においては、ＣＭ２１ａがデータＢをＣＭ２１ｂへ送信するタイミングにおいては、データＡのストレージ装置３０への格納処理は完了していない。そのためデータＢのストレージ装置３０への送信は、処理Ｓ４２５においては実行されない。
【００３８】
データＢを受信したＣＭ２１ｂは、データＢを自身のキャッシュメモリに保持させ、処理Ｓ４２６において保持完了通知を送信する。ＣＭ２１ａは、処理Ｓ４２７において処理完了通知を情報処理装置１０に対して送信する。尚、ＣＭ２１ａは、自身のキャッシュメモリに保持されているデータＢをストレージ装置３０へ送信する処理（処理Ｓ４２８）を、ストレージ装置３０が格納完了通知（処理Ｓ４３０）を行った後に実行する。すなわち、データＡの格納処理が完了するまでは、データＢの格納処理は待ち状態となり、データＢはキャッシュメモリにて保持される。
【００３９】
処理Ｓ４２８においてデータＢがストレージ装置３０に送信されると、ストレージ装置３０はデータＢのＲＡＩＤ３２への格納処理を実行する。格納処理が終了すると、ストレージ装置３０は、処理Ｓ４３１において格納完了通知を送信する。その後ＣＭ２１ａは、キャッシュメモリからデータＢを消去する。
【００４０】
このように、ライトバックモードにおいては、ストレージ装置３０へのデータ格納処理の完了とは無関係に、非担当ＣＭのキャッシュメモリによるデータ保持に基づいて処理完了通知が発行される。そのため、情報処理装置１０へのレスポンスタイムは、担当ＣＭと非担当ＣＭの間のデータ共有に要する時間によって決定される。また、ライトバックモードでは、ストレージ装置３０へのデータ格納処理の途中であっても、担当ＣＭが更に次のライトコマンドを受信することが可能となる。この場合、担当ＣＭによるライトコマンドの受信処理とは非同期に、ストレージ装置３０へデータの格納処理が実行される。
【００４１】
尚、ライトバックモードにおいて、担当ＣＭのキャッシュメモリが、複数のライトコマンドによって飽和状態となり、更なる他のライトコマンドを受信できない状態（キャッシュミス）になる場合がある。この場合、既にキャッシュメモリに保持されているデータのストレージ装置３０への格納処理が順に処理され、格納処理の終了によってキャッシュメモリ内に空き容量が確保されるまで、ライトコマンドはストレージ制御装置２０への入力待ちの状態となる。そしてキャッシュメモリに空き容量が確保された後、ライトコマンドは担当ＣＭによって受信される。
【００４２】
（ライトスルーモード）
図５は、ライトスルーモードにおける処理フローを示すラダーチャートである。上述のようにライトスルーモードにおいては、担当ＣＭから非担当ＣＭへのデータ送信は行われず、ストレージ装置３０へのデータ格納処理が実行される。ライトスルーモードは、例えば担当ＣＭ及び非担当ＣＭの少なくとも一方、又は担当ＣＭと非担当ＣＭの間の通信にエラーが生じ、非担当ＣＭへデータを保持させる処理が実行できない場合等に選択され得る。ここでは、ＣＭ２１ａが担当ＣＭ、ＣＭ２１ｂが非担当ＣＭであるものとして説明する。尚、図４にて説明された処理と同一内容の処理については同一の参照符号が付されるものとする。
【００４３】
まず処理Ｓ４１０において情報処理装置１０が、データＡについてのライトコマンドを発行する。ライトコマンドを受信したＣＭ２１ａは処理Ｓ４２０において、データＡを自身のキャッシュメモリに保持させる。そして処理Ｓ４２１において、データＡをストレージ装置３０へ送信する。ストレージ装置３０は、ＣＭ２１ａから送信されたデータＡの、ＲＡＩＤ３２への格納処理を実行する。格納処理が完了すると、ストレージ装置３０は処理Ｓ４３０において、格納完了通知を送信する。ＣＭ２１ａは、ストレージ装置３０から格納完了通知を受信したことに伴い、処理Ｓ４２３において処理完了通知を情報処理装置１０に送信する。
【００４４】
このようにライトスルーモードにおいては、担当ＣＭと非担当ＣＭとが同一データを冗長的に保持する処理は行われず、ストレージ装置３０へのデータの格納処理が完了したことに基づいて処理完了通知が発行される。言い換えれば、レスポンスタイムは、ストレージ装置３０へのデータの格納に要する時間に律速される。
【００４５】
図５において、情報処理装置１０は、ＣＭ２１ａからの処理完了通知を受信した場合に、更なるライトコマンドの発行が可能となる。そして情報処理装置１０は処理Ｓ４１１において、データＢに関するライトコマンドをＣＭ２１ａに送信する。処理Ｓ４２４においてＣＭ２１ａは、データＢを自身のキャッシュメモリに保持させる。そして処理Ｓ４２８においてＣＭ２１ａは、データＢをストレージ装置３０へ送信する。その後、ストレージ装置３０は処理Ｓ４３１において、データＢのＲＡＩＤ３２への格納処理が完了したことを示す格納完了通知を送信する。ＣＭ２１ａは、ストレージ装置３０から格納完了通知を受信したことに伴い、処理Ｓ４２７において処理完了通知を情報処理装置１０に送信する。
【００４６】
ここで、図４に示されたライトバックモードにおける処理Ｓ４２８と、図５に示されるライトスルーモードにおける処理Ｓ４２８の相違について説明する。図４においてデータＢは、処理Ｓ４２４においてＣＭ２１ａのキャッシュメモリに保持された後、先に発行されたライトコマンドに対応するデータＡの格納処理が完了するまで、ストレージ装置３０へ送信されない。すなわち、ＣＭ２１ａにおけるライトコマンドの受信と、ストレージ装置３０へのデータＢの送信は非同期である。
【００４７】
これに対して図５において、データＢについてのライトコマンドがＣＭ２１ａによって受信された時点において、データＡのストレージ装置３０への格納処理は既に終了している。そのため、ＣＭ２１ａのキャッシュメモリに保持されたデータＢは、ストレージ装置３０からの格納完了通知を待つことなく、ストレージ装置３０に送信される。すなわち、ストレージ装置３０へのデータＢの送信は、ＣＭ２１ａにおけるライトコマンドの受信に同期して実行される。
【００４８】
以上、ライトバックモードとライトスルーモードの処理内容の相違について説明した。ここで、２つのモードの、レスポンス性能及びＣＭ２１のプロセッサ２２０の処理負荷について比較する。ライトバックモードでは、非担当ＣＭからの保持完了通知に基づいて処理完了通知が発行される。そのため、ストレージ装置３０からの格納完了通知よりも、非担当ＣＭからの保持完了通知が先になされる場合においては、ライトバックモードの方がレスポンス性能は良い。但し、ライトバックモードにおけるＣＭ２１のプロセッサ２２０の処理負荷は、ライトスルーモードにおけるＣＭ２１のプロセッサ２２０の処理負荷よりも大きくなる。これは、ライトスルーモードにおいては、担当ＣＭと非担当ＣＭとの間でのデータの送受信処理は行われないのに対し、ライトバックモードでは、担当ＣＭと非担当ＣＭとの間でのデータの送受信処理が行われるためである。
【００４９】
次に、ライトバックモードにおけるレスポンスタイムが、ライトスルーモードにおけるレスポンスタイムよりも長くなる場合があることについて説明する。図４においては、ライトバックモードにおいて非担当ＣＭからの保持完了通知が、ストレージ装置３０からの格納完了通知よりも先に送信される例について説明した。しかし、担当ＣＭのプロセッサ２２０や非担当ＣＭのプロセッサ２２０の処理負荷の状態等によっては、非担当ＣＭからの保持完了通知が、ストレージ装置３０からの格納完了通知よりも後に送信される場合がある。例えば多数のライトコマンドが担当ＣＭに短い期間に入力された場合や、非担当ＣＭのプロセッサ２２０の処理負荷が高い場合には、担当ＣＭと非担当ＣＭの間での通信速度が低下する。また担当ＣＭのキャッシュメモリが飽和し、先に入力されたライトコマンドに関するデータの格納処理が完了してデータがキャッシュメモリから消去されるまで、コマンドがストレージ制御装置２０への入力待ちの状態となる場合もある。このような状態において、非担当ＣＭからの保持完了通知と、ストレージ装置３０からの格納完了通知のタイミングが逆転する場合がある。
【００５０】
図６は、ライトバックモードにおける処理フローを示すラダーチャートである。図４とは異なり、非担当ＣＭからの保持完了通知が、ストレージ装置３０からの格納完了通知よりも後に送信される例が示される。図４にて開示された処理と同一の処理については同一の参照番号が付される。
【００５１】
まず処理Ｓ４１０において情報処理装置１０が、データＡについてのライトコマンドを発行する。ライトコマンドを受信したＣＭ２１ａは、処理Ｓ４２０において、データＡをキャッシュメモリに保持する。そしＣＭ２１ａは処理Ｓ４２１において、データＡを非担当ＣＭであるＣＭ２１ｂへ送信する。またＣＭ２１ａは、処理Ｓ４２１において、データＡのストレージ装置３０へ送信する。
【００５２】
処理Ｓ４３０においてストレージ装置３０が、データＡをＲＡＩＤ３２Ａに格納したことを示す格納完了通知を、ＣＭ２１ａに対して送信する。そしてその後、処理Ｓ４２２においてＣＭ２１ｂが、データＡをＣＭ２１ｂのキャッシュメモリに保持させたことを示す保持完了通知を、ＣＭ２１ａに対して送信する。そして処理Ｓ４２３においてＣＭ２１ａが、保持完了通知に基づいて、情報処理装置１０への処理完了通知を送信する。
【００５３】
このように、図６に示された例においては、担当ＣＭと非担当ＣＭの間でのデータの冗長化に要する時間が、ストレージ装置３０へのデータ格納に要する時間よりも長くなっている。そのため、ライトバックモードによって処理完了通知が発行されることにより、ライトスルーモードによって処理完了通知が発行される場合に比べて、情報処理装置１０へのレスポンスタイムが長くなることになる。このような場合は、ライトスルーモードが選択される方が、レスポンス性能の観点からは好ましいと考えられる。加えて、ライトバックモードによる処理が実行されることにより、担当ＣＭのプロセッサ２２０及び非担当ＣＭのプロセッサ２２０の処理負荷も、ライトスルーモードに比べて増加することになる。
【００５４】
このような考察に基づき、本実施形態においては、ライトバックモードとライトスルーモードのうち、情報処理装置１０へのレスポンスタイムが短いモードが選択される。つまり、ライトバックモードが選択された方がレスポンスタイムは短くなると予測される場合は、ライトバックモードが選択される。逆にライトスルーモードが選択された方がレスポンスタイムは短くなると予測される場合は、ライトスルーモードが選択される。
【００５５】
本実施形態においては、あるデータ、例えばサンプルデータを担当ＣＭから非担当ＣＭ及びストレージ装置３０に送信する。そして、担当ＣＭが非担当ＣＭから保持完了通知を受信するまでの第１時間と、担当ＣＭがストレージ装置３０から格納完了通知を受信するまでの第２時間とが比較される。第１時間が第２時間よりも短い場合にはライトバックモードが選択され、第１時間が第２時間よりも長い場合は、ライトスルーモードが選択される。
【００５６】
図７は、ＣＭ２１のプロセッサ２２０の機能ブロック図である。図７に開示される機能ブロックは、ＣＭ２１ａ及びＣＭ２１ｂの何れにも適用され得る。
【００５７】
プロセッサ２２０は、コンピュータプログラムを実行することにより、モード選択部２２１、モード制御部２２２、コマンド受信部２２３、キャッシュメモリ制御部２２４、ＣＭ間通信制御部２２５、ストレージ制御部２２６、通知部２２７、測定部２２８、管理テーブル２２９として機能する。尚、管理テーブル２２９はプロセッサ２２０によって実現されなくてもよく、例えば揮発性メモリ２４０によって実現されてもよい。
【００５８】
モード選択部２２１は、後述の測定部２２８の測定結果に基づき、ライトバックモードとライトスルーモードの選択を行い、選択されたモードを記憶する。モード制御部２２２は、モード選択部２２１によって選択され記憶されたモードに応じた制御を行う。コマンド受信部２２３は、情報処理装置１０からのコマンド、例えばライトコマンドを受信する。キャッシュメモリ制御部２２４は、ＣＭ２１の、例えば揮発性メモリ２４０に設けられたキャッシュメモリの制御を行う。例えばライトコマンドがコマンド受信部２２３によって受信された場合には、ライトコマンドの対象データをキャッシュメモリに保持させる。ＣＭ間通信制御部２２５は、担当ＣＭと非担当ＣＭの間の通信の制御を行う。例えば担当ＣＭがライトコマンドを受信した場合、ＣＭ間通信制御部２２５が担当ＣＭと非担当ＣＭの間の通信を制御し、ライトコマンドの対象データを非担当ＣＭへ送信する。またＣＭ間通信制御部２２５は、非担当ＣＭからの保持完了通知を受信する。すなわちＣＭ間通信制御部２２５は、担当ＣＭと非担当ＣＭの間の通信における送受信部として機能する。ストレージ制御部２２６は、ストレージ装置３０へのデータの送信を行い、データをストレージ装置３０に格納させる。またストレージ制御部２２６は、ストレージ装置３０からの格納完了通知を受信する。すなわちストレージ制御部２２６は、ストレージ装置３０との通信における送受信部として機能する。通知部２２７は、ライトコマンドを情報処理装置１０から受信した場合であって、所定の処理が完了した場合に、処理完了通知を情報処理装置１０に送信する。所定の処理とは、ライトバックモードが選択された場合には、非担当ＣＭから保持完了通知を受信することであり、ライトスルーモードが選択された場合には、ストレージ装置３０から格納完了通知を受信することである。測定部２２８は、サンプルデータが非担当ＣＭに送信されてから、非担当ＣＭからの保持完了通知が受信されるまでの第１時間を測定する。更に測定部２２８は、サンプルデータがストレージ装置３０に送信されてから、ストレージ装置３０からの格納完了通知が受信されるまでの第２時間を測定する。また測定部２２８は、測定された第１時間と第２時間を、管理テーブル２２９に登録する。管理テーブル２２９は、測定部２２８によって測定された第１時間及び第２時間を保持する。先述のモード選択部２２１は、管理テーブル２２９の登録内容を参照し、モードの選択を実行する。
【００５９】
図８は、ストレージ装置３０のプロセッサ３２０の機能ブロック図である。プロセッサ３２０は、コンピュータプログラムを実行することにより、データ受信部３２２、ＲＡＩＤ制御部３２５、通知部３２６として機能する。
【００６０】
データ受信部３２２は、ストレージ制御装置２０からデータを受信する。ＲＡＩＤ制御部３２５は、ＲＡＩＤ３２にデータを格納する処理を行う。通知部３２６は、ＲＡＩＤ３２にデータが格納されたことを示す格納完了通知を、ストレージ制御装置２０へ送信する。
【００６１】
図９は、第１時間及び第２時間の測定方法と、その結果に基づくモード選択方法を説明するための図である。図９の（ａ）は、ライトバックモードが選択される場合を説明する図である。ＣＭ２１ａはサンプルデータを準備する。サンプルデータは例えば６４ＫＢｙｔｅのデータであり、第１時間及び第２時間を測定するためのデータである。またＣＭ２１ｂは、他のデータ（例えばライトコマンドの対象となるデータ）が保持されるメモリ領域と分けて、サンプルデータを保持するためのメモリ領域をキャッシュメモリ内に確保する。
【００６２】
処理Ｓ４５０においてＣＭ２１ａは、サンプルデータをＣＭ２１ｂへ送信する。サンプルデータは、サンプルデータ用の領域に保持される。その後、ＣＭ２１ｂは、処理Ｓ４６０において保持完了通知を送信する。
【００６３】
一方、ストレージ装置３０は、他のデータが保持されるメモリ領域と分けて、サンプルデータを保持するためのメモリ領域をＲＡＩＤ３２内に確保する。そして処理Ｓ４５０においてＣＭ２１ａはサンプルデータをストレージ装置３０に送信する。ストレージ装置３０は、サンプルデータ用の領域にサンプルデータを格納した後に、処理Ｓ４７０において格納完了通知を送信する。
【００６４】
処理Ｓ４５１においてＣＭ２１ａは、サンプルデータがＣＭ２１ｂへ送信されてから、保持完了通知が受信されるまでの時間（第１時間）を測定する。また処理Ｓ４５２においてＣＭ２１ａは、サンプルデータがストレージ装置３０へ送信されてから、格納完了通知が受信されるまでの時間（第２時間）を測定する。図９の（ａ）に示される例では、第１時間の方が第２時間よりも短い。この場合は、ライトバックモードが選択された方が、短いレスポンスタイムが期待できる。よってモード選択部２２１は、ライトバックモードを選択し、以後に受け付けられたライトコマンドはライトバックモードにて処理される。
【００６５】
図９の（ｂ）は、ライトスルーモードが選択される場合を説明する図である。ＣＭ２１ａ、ＣＭ２１ｂ、及びストレージ装置３０によって実行される処理の内容は、図９の（ａ）にて説明された内容と同じである。但し、測定された第１時間が第２時間よりも長い点において、図９の（ｂ）に示された例は、図９の（ａ）に示された例と相違する。
【００６６】
上述のように、ＣＭ２１ａとＣＭ２１ｂとの間でのデータの共有に要する時間が長い場合、例えばＣＭ２１ａのプロセッサ２２０やＣＭ２１ｂのプロセッサ２２０の処理負荷が高い場合等に、第１時間が第２時間よりも長くなる場合がある。このような場合は、ライトスルーモードが選択された方が、短いレスポンスタイムが期待できる。よってモード選択部２２１は、ライトスルーモードを選択し、以後に受け付けられたライトコマンドはライトスルーモードにて処理される。ライトスルーモードが選択された場合は、ＣＭ２１ａとＣＭ２１ｂの間のデータ送受信が行われないため、ＣＭ２０ａのプロセッサ２２０及びＣＭ２０ｂのプロセッサ２２０の処理負荷を軽減させることもできる。
【００６７】
図１０は、管理テーブル２２９の登録内容の例を示す図である。測定部２２８によって測定された第１時間及び第２時間が、管理テーブル２２９に登録される。第１時間及び第２時間の測定は、複数回実行される。例えばＣＭ２１ａは、所定の時間間隔、例えば３０秒間隔で、サンプルデータの送信及び第１時間と第２時間の測定を繰り返し実行する。第１時間と第２時間は、ＣＭ２１ａのプロセッサ２２０やＣＭ２１ｂのプロセッサ２２０の処理負荷によって時間の経過とともに変動するためである。
【００６８】
尚、ここでは第１時間及び第２時間の測定間隔を３０秒として例示したが、より短い時間間隔で測定が行われてもよい。測定の時間間隔が短く、第１時間又は第２時間が測定の時間間隔よりも長くなることがあり得る場合には、サンプルデータに識別情報が付される。サンプルデータに付された識別情報により、担当ＣＭから送信されたサンプルデータと、担当ＣＭにより受信された保持完了通知及び格納完了通知の対応関係を認識することができる。
【００６９】
図１０に示される例においては、１回目及び２回目の測定では第１時間が第２時間よりも短いため、モード選択部２２１は、ライトバックモードを選択する。しかし３回目の測定において、第１時間が第２時間よりも長くなっているため、モード選択部２２１は、ライトスルーモードを選択する。その後、４回目及び５回目の測定でも、第１時間が第２時間よりも長くなる傾向が継続されているため、ライトスルーモードが維持される。
【００７０】
次に、管理テーブル２２９に基づくモード選択方法の他の例について説明する。図１０に示される例では、３回目の測定結果において、第１時間が第２時間よりも長くなった。しかし、一度の測定結果のみでライトバックモードとライトスルーモードの切り替えを行うと、モードの切り替えが頻繁に生じる虞がある。頻繁にモードの切り替えが行われることを抑制するために、複数回の測定結果に基づいて選択されるモードが決定されてもよい。例えば連続する２回の測定において第１時間と第２時間の大小関係が同一の関係を示した場合に、モードが切り換えられてもよい。図１０の例では、３回目の測定で第１時間が第２時間よりも長くなっているが、この時点ではライトバックモードからライトスルーモードへの切り替えは実行されない。そして４回目の測定でも第１時間が第２時間よりも長くなった（２回連続で第１時間が第２時間よりも長くなった）ことに基づき、ライトバックモードからライトスルーモードへの切り替えが行われる。或いは、更なる他の例として、直近の例えば５回の連続する測定結果の平均の傾向に基づいて、モードの選択が実行されてもよい。この場合も、モード切り替えの頻度を抑制することができる。
【００７１】
尚、第１時間及び第２時間の測定及び測定結果の管理テーブル２２９への登録は、ＣＭ２１ａ及び２１ｂのそれぞれが行う。ＣＭ２１ｂが担当ＣＭとなってライトコマンドを受信する場合もあるからである。
【００７２】
図１１は、担当ＣＭのプロセッサ２２０によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理Ｓ５００によって開始され、処理Ｓ５０２においてＣＭ間通信制御部２２５が、サンプルデータを非担当ＣＭに送信する。その後、処理Ｓ５０４においてＣＭ間通信制御部２２５が、非担当ＣＭから保持完了通知を受信する。処理Ｓ５０６において測定部２２８が、サンプルデータが送信されてから保持完了通知が受信されるまでの第１時間を測定する。そして処理Ｓ５０８において測定部２２８が、測定された第１時間を管理テーブル２２９に登録する。
【００７３】
また、処理Ｓ５１０においてストレージ制御部２２６は、サンプルデータをストレージ装置３０へ送信する。その後、処理Ｓ５１２においてストレージ制御部２２６は、ストレージ装置３０から格納完了通知を受信する。処理Ｓ５１４において測定部２２８が、サンプルデータが送信されてから格納完了通知が受信されるまでの第２時間を測定する。そして処理Ｓ５１６において測定部２２８が、測定された第２時間を管理テーブル２２９に登録する。
【００７４】
第１時間と第２時間の管理テーブル２２９への登録がなされた後、処理Ｓ５１８においてモード選択部２２１が、管理テーブル２２９を参照することによって、第１時間が第２時間よりも短いかどうかを判定する。第１時間が第２時間よりも短いと判定された場合は、処理フローは処理Ｓ５２０へ進み、第１時間が第２時間よりも短いと判定されない場合は、処理フローは処理Ｓ５２２へ進む。処理Ｓ５２０においてモード選択部２２１は、ライトバックモードを選択し、処理Ｓ５２２においてモード選択部２２１は、ライトスルーモードを選択する。その後、処理フローは処理Ｓ５３０において終了する。
【００７５】
図１２は、非担当ＣＭのプロセッサ２２０によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理Ｓ６００によって開始され、処理Ｓ６０２においてＣＭ間通信制御部２２５が、サンプルデータを担当ＣＭから受信する。そして、処理Ｓ６０４においてキャッシュメモリ制御部２２４が、サンプルデータをキャッシュメモリに保持させる。そして処理Ｓ６０６においてＣＭ間通信制御部２２５が、保持完了通知を担当ＣＭに送信し、処理Ｓ６１０において処理フローが終了する。
【００７６】
図１３は、ストレージ装置３０のプロセッサ３２０によって実行される、モード選択に関する処理のフローチャートである。処理フローは処理Ｓ７００によって開始され、処理Ｓ７０２においてデータ受信部３２２が、サンプルデータを担当ＣＭから受信する。そして、処理Ｓ７０４においてＲＡＩＤ制御部３２５が、サンプルデータをＲＡＩＤ３２（フラッシュメモリ３９０）に格納する。そして処理Ｓ７０６において通知部３２６が、格納完了通知を担当ＣＭに送信し、処理Ｓ７１０において処理フローが終了する。
【００７７】
図１４は、担当ＣＭのプロセッサ２２０によって実行される、モード選択後にライトコマンドが入力された際の処理のフローチャートである。処理フローは処理Ｓ８００によって開始され、処理Ｓ８０２においてコマンド受信部２２３が、ライトコマンドを受信する。そして処理Ｓ８０４においてキャッシュメモリ制御部２２４が、受信したライトコマンドの書き込み対象のデータをキャッシュメモリに保持させる。処理Ｓ８０６においてモード制御部２２２が、選択されたモードがライトバックモードであるかを判定する。選択されたモードがライトバックモードであると判定された場合は、処理フローは処理Ｓ８０８及び処理Ｓ８１４へ進み、ライトバックモードに沿った処理が実行される。また、選択されたモードがライトバックモードであると判定されない場合は、処理フローは処理Ｓ８２２へ進み、ライトスルーモードに沿った処理が実行される。
【００７８】
処理Ｓ８０８、処理Ｓ８１０、及び処理Ｓ８１２は、データを非担当ＣＭのキャッシュメモリに保持させる処理である。処理Ｓ８０８においてＣＭ間通信制御部２２５が、データを非担当ＣＭへ送信する。その後、処理Ｓ８１０においてＣＭ間通信制御部２２５が、非担当ＣＭから保持完了通知を受信する。そして処理Ｓ８１２において通知部２２７が、保持完了通知の受信に基づいて、処理完了通知を、ライトコマンドの発行元である情報処理装置１０に送信する。
【００７９】
一方、データをストレージ装置３０に格納する処理Ｓ８１４、処理Ｓ８１６、処理Ｓ８１８、処理Ｓ８２０も実行される。処理Ｓ８１４においてストレージ制御部２２６が、他のデータ、例えば過去に受信されたライトコマンドの対象データの、ストレージ装置３０への格納処理が完了しているか否かを判定する。他のデータの格納処理が完了していると判定される場合は、処理フローは処理Ｓ８１６へ進み、他のデータの格納処理が完了していると判定されない場合は、処理Ｓ８１４が繰り返し実行される。
【００８０】
処理Ｓ８１６においてストレージ制御部２２６が、データをストレージ装置３０へ送信する。その後、処理Ｓ８１８においてストレージ制御部２２６が、ストレージ装置３０から格納完了通知を受信する。そして処理Ｓ８２０においてキャッシュメモリ制御部２２４が、キャッシュメモリに保持されたデータを消去し、処理フローが処理Ｓ８３０にて終了する。
【００８１】
また、処理Ｓ８０６において、選択されたモードがライトバックモードであると判定されない場合、つまり選択されたモードがライトスルーモードである場合、処理Ｓ８２２においてストレージ制御部２２６が、データをストレージ装置３０へ送信する。その後、処理Ｓ８２４においてストレージ制御部２２６が、ストレージ装置３０から格納完了通知を受信する。そして処理Ｓ８２６においてキャッシュメモリ制御部２２４が、キャッシュメモリに保持されたデータを消去し、処理フローが処理Ｓ８３０にて終了する。
【００８２】
このように本実施形態においては、サンプルデータを非担当ＣＭのキャッシュメモリに保持させる処理に要する第１時間と、サンプルデータをストレージ装置３０に格納する処理に要する第２時間とが測定される。そして第１時間と第２時間の比較に基づき、ライトバックモードとライトスルーモードの切り替えが行われる。これにより、ストレージ制御装置２０が情報処理装置１０からライトコマンドを受けた際のレスポンス性能を改善することが可能となる。また、ライトスルーモードが選択された場合には、ＣＭ２１ａ及び２１ｂのプロセッサ２２０の負荷を抑制することができる。
【００８３】
次に、ライトバックモードからライトスルーモードへのモードの切り替えが行われた際の、データ順序性を維持するための処理について説明する。
【００８４】
図１５は、ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に問題が生じる場合について説明するための図である。図１５の（ａ）は、ライトバックモードにおいて複数のライトコマンドがストレージ制御装置２０に入力され、担当ＣＭのキャッシュメモリ（揮発性メモリ２４０）に複数の書き込み対象データ（データＡ１、データＢ１、データＣ１）が保持されている状態を示す。データＡ１の論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ；以下、ＬＢＡ）は００１であり、データＢ１のＬＢＡは００２であり、データＣ１のＬＢＡは００３であるとする。これらのデータは、ストレージ装置３０への格納処理の順番待ちの状態である。
【００８５】
その後、ライトバックモードからライトスルーモードへの切り替えが行われ、図１５の（ｂ）においてデータＢ２についてのライトコマンドがストレージ制御装置２０へ入力されたとする。データＢ２は、データＢ１の改版データであり、データＢ２のＬＢＡは、データＢ１のＬＢＡと同じ００２である。つまりデータＢ１は、データＢ２によってアップデートされるべきデータである。しかし、データＢ２はライトスルーモードによりストレージ制御装置２０に入力されているため、ストレージ制御装置２０への入力に同期して、ストレージ装置３０へデータＢ２の格納処理が実行される。つまり、データＢ１よりも先に、アップデート版であるデータＢ２がストレージ装置３０に格納される。
【００８６】
その後、図１５の（ｃ）において、ライトバックモードによりキャッシュメモリに保持されたデータＢ１が、ストレージ制御装置２０に格納される。この際、先に格納されたデータＢ２（新しいデータ）が、データＢ１（古いデータ）によって上書きされてしまう、という問題が生じる。この問題を避けるために、図１６に示される処理が実行される。
【００８７】
図１６は、ライトバックモードからライトスルーモードへの切り替えが行われた際の、データ順序性に生じる問題を解決する方法を説明するための図である。まず図１６の（ａ）において、図１５の（ａ）と同様に、ライトバックモードにおいて複数のライトコマンドがストレージ制御装置２０に入力される。そして、担当ＣＭのキャッシュメモリに複数の書き込み対象データ（データＡ１、データＢ１、データＣ１）が保持される。
【００８８】
その後、ライトバックモードからライトスルーモードへの切り替えが行われ、そして図１６の（ｂ）において、データＢ２についてのライトコマンドがストレージ制御装置２０へ入力される。この際、図１６の（ｃ）においてキャッシュメモリ制御部２２４は、データＢ２のＬＢＡと同一のＬＢＡを有するデータが、キャッシュメモリに保持されているかどうかを判定する。そしてデータＢ１のＬＢＡがデータＢ２のＬＢＡと同一であることに基づき、キャッシュメモリ上でデータＢ１を、データＢ２で上書きする。この処理により、キャッシュメモリ上においてデータＢ１は消去され、代わりにデータＢ２がキャッシュメモリに保持される。その後、図１６の（ｄ）においてデータＢ２は、ストレージ装置３０に格納される。
【００８９】
このように、ライトバックモードにてストレージ制御装置２０に入力され、キャッシュメモリ上に保持されているデータが、アップデートされたデータであってライトスルーモードにてストレージ装置に２０に入力されたデータによって上書きされる。この処理により、ストレージ装置３０に格納された新しいデータが、古いデータによって上書きされるという問題を解消させることができる。
【００９０】
（モードの選択方法の変形例）
図１においては、ＣＭ２１ａ及び２１ｂはそれぞれ、一つのＲＡＩＤ３２の担当ＣＭとして説明されたが、ＣＭ２１ａ及び２１ｂはそれぞれ、複数のＲＡＩＤ３２の担当ＣＭとして機能してもよい。
【００９１】
図１７は、複数のＣＭ２１がそれぞれ、複数のＲＡＩＤ３２の担当ＣＭとして機能するストレージシステムを示す図である。図１７においてＣＭ２１ａは、ＲＡＩＤ３２Ａ及び３２Ｃの担当ＣＭであり、ＣＭ２１ｂは、ＲＡＩＤ３２Ｂ及び３２Ｄの担当ＣＭである。
【００９２】
このようなストレージシステムにおいて、ＣＭ２１ａは、サンプルデータをストレージ装置３０へ送信してから格納完了通知を受信するまでの時間（第２時間）の測定を、ＲＡＩＤ３２Ａ及びＲＡＩＤ３２Ｃの両方に対して実行する。同様にＣＭ２１ｂは、第２時間の測定を、ＲＡＩＤ３２Ｂ及びＲＡＩＤ３２Ｄの両方に対して実行する。
【００９３】
図１８は、変形例における管理テーブル２２９の登録内容の例を示す図である。図１０にて説明されたように、測定部２２８によって測定された第１時間及び第２時間が、管理テーブル２２９に登録される。図１８においては、ＣＭ２１ａが、自身の担当するＲＡＩＤ３２Ａ及びＲＡＩＤ３２Ｃのそれぞれに対して測定した第２時間が管理テーブル２２９に登録される。
【００９４】
モード選択部２２１は、管理テーブル２２９に基づいて、モードの選択を行う。例えば、３回目及び４回目の測定においてＲＡＩＤ３２Ａについての第２時間が、連続して第１時間よりも短くなっている。このことに基づいて、モード選択部２２１はＲＡＩＤ３２Ａについてはライトスルーモードを選択してもよい。尚、ＲＡＩＤ３２Ｃについての第２時間は、３回目の測定において第１時間よりも長い。そのため、４回目の測定においては、２回連続して第１時間が第２時間よりも長くなったとは言えない。そのため、モード選択部２２１は、ＲＡＩＤ３２Ａについてはライトスルーモードを選択する一方で、ＲＡＩＤ３２Ｃについてはライトバックモードを維持してもよい。
【００９５】
他のモード選択方法としては、モード選択部２２１は、ＲＡＩＤ３２毎にモードを選択せず、複数のＲＡＩＤ３２に対して共通のモードを選択してもよい。例えば４回目の測定においてＲＡＩＤ３２Ａの第２時間が第１時間よりも短いことに基づき、ＲＡＩＤ３２Ａ及び３２Ｃともにライトスルーモードが選択されてもよい。更に他のモード選択方法として、複数のＲＡＩＤ３２についての直近の例えば５回の連続する測定結果の平均の傾向に基づいて、モードの選択が実行されてもよい。
【００９６】
（停電時処理）
ここで、ストレージ制御装置２０に対する電力供給が停止し、その後、ストレージ制御装置２０に対する電力供給が回復した場合の、ストレージ制御装置２０が実行する処理について説明する。
【００９７】
まず選択されたモードがライトバックモードである場合について説明する。ライトバックモードが選択された状態のストレージ制御装置２０の担当ＣＭ２１によって受信されたデータは、担当ＣＭ２１のキャッシュメモリに保持される。またデータは、非担当ＣＭ２１のキャッシュメモリにも保持され、情報処理装置１０に対して処理完了通知がなされる。その後、データがストレージ装置３０へ格納される前に、ストレージ制御装置２０への電力供給が停止したとする。この場合、バッテリ２６０からの代替的な電力供給により、キャッシュメモリに保持されているデータが不揮発性メモリ２３０に書き込まれる。これにより、バッテリ２６０による電力供給が終了しても、データが消失することを防ぐことができる。その後、外部からの電力供給が回復した後に、不揮発性メモリ２４０に書き込まれていたデータが再度キャッシュメモリに書き出され、キャッシュメモリからストレージ装置３０への格納処理が実行される。
【００９８】
次に、選択されたモードがライトスルーモードである場合について説明する。ライトスルーモードが選択された状態のストレージ制御装置２０の担当ＣＭ２１によって受信されたデータは、担当ＣＭ２１のキャッシュメモリに保持される。その後、データがストレージ装置３０へ格納される前に、ストレージ制御装置２０への電力供給が停止したとする。この場合、キャッシュメモリに保持されているデータを不揮発性メモリ２４０に書き込む処理は実行されない。よって、外部からの電力供給が回復するまでにバッテリ２６０からの代替的な電力供給が終了した場合には、データはＣＭ２１から消去される。その後、外部からの電力供給が回復したとする。この場合、情報処理装置１０は、先に送信したライトコマンドに対する処理完了通知を一定期間中に受信しなかったことに基づき、ライトコマンドを再度送信する。そして、再送されたライトコマンドが、ライトスルーモードが選択された状態のストレージ制御装置２０の担当ＣＭ２１により受信された場合は、ライトスルーモードによりデータがストレージ装置２０に格納される。その後、処理完了通知が情報処理装置１０に対して送信される。再送されたライトコマンドが、ライトバックモードが選択された状態のストレージ制御装置２０の担当ＣＭ２１により受信された場合は、ライトバックモードによりデータが非担当ＣＭに格納され、処理完了通知が情報処理装置１０に対して送信される。その後、データはストレージ装置３０に格納される。
【００９９】
最後に、ライトバックモードからライトスルーモードへの切り替えが行われた場合について説明する。キャッシュメモリに、ライトバックモードにて担当ＣＭ２１に入力されたデータと、ライトスルーモードにて担当ＣＭ２１に入力されたデータとが混在する状態を想定する。尚、ライトバックモードにて受信されたデータについては、処理完了通知が既に情報処理装置１０に対して送信されているものとする。その後、データがストレージ装置３０へ格納される前に、ストレージ制御装置２０への電力供給が停止したとする。この場合、バッテリ２６０による代替的な電力供給により、キャッシュメモリに保持されているデータのうち、ライトバックモードにより受信されたデータは、不揮発性メモリ２３０に書き込まれる。一方、ライトスルーモードにより受信されたデータは不揮発性メモリ２３０に書き込まれない。その後、外部からの電力供給が回復した後に、不揮発性メモリ２３０に書き込まれていたデータがキャッシュメモリに書き出され、キャッシュメモリからストレージ装置３０への格納処理が実行される。不揮発性メモリ２３０に書き込まれなかったデータについては、情報処理装置１０からライトコマンドが再送された場合に、データのストレージ装置３０へのデータの格納処理が実行される。
【０１００】
このように、ライトバックモードからライトスルーモードへ切り替わった場合であって、外部からの電力供給が停止した場合であっても、外部からの電力供給が回復した後にデータをストレージ装置３０に格納することができる。ライトスルーモードで受信されたデータについては、情報処理装置１０からのライトコマンドの再送信に基づいて、ストレージ装置３０へのデータ格納処理が行われる。
【０１０１】
ここで、上記の処理が実行されるために、ＣＭ２１は、ライトバックモードで受信されたデータと、ライトスルーモードで受信されたデータを識別するための機能を有している。例えば、ＣＭ２１は、データをキャッシュメモリに保持する際に、ライトバックモード又はライトスルーモードで当該データが受信されたことを示すフラグを生成して保持する。そして当該フラグに基づいて、バッテリ２６０による電力供給によって不揮発性メモリ２３０へのデータの書き込みを行うか否かを判定する。
【０１０２】
開示の実施形態に基づき、更に以下の付記を開示する。
（付記１）
第１制御装置と第２制御装置とを含み、情報処理装置から受信した第１データのストレージ装置への格納を制御するストレージ制御装置において、
前記第１制御装置は、
第２データを前記第２制御装置へ送信し、前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を前記第２制御装置から受信する第１送受信部と、
前記第２データを前記ストレージ装置へ送信し、前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第２送受信部と、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が受信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第２時間を測定する測定部と、
前記第１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択するモード選択部と、
を有し、
前記第１制御装置は、前記第１モードが選択された場合、前記情報処理装置から送信された前記第１データを前記第２制御装置及び前記ストレージ装置へ送信し、前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第１制御装置は、前記第２モードが選択された場合、前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御装置。
（付記２）
前記第２モードにおいて、前記第１制御装置は、前記第１データを前記第２制御装置へ送信しないことを特徴とする付記１に記載のストレージ制御装置。
（付記３）
前記第１制御装置は、第１キャッシュメモリを有し、
前記第２制御装置は、第２キャッシュメモリを有し、
前記第１モード及び前記第２モードにおいて、前記第１データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第１データを保持し、
前記第１モードにおいて、前記第１データが前記第２制御装置に送信された場合、前記第２キャッシュメモリが前記第１データを保持することを特徴とする付記１又は２に記載のストレージ制御装置。
（付記４）
前記第１制御装置にエラーが発生し、前記第１制御装置から前記第１データが前記ストレージ装置に送信されない場合は、前記第２制御装置が前記第２キャッシュメモリに保持された前記第１データを前記ストレージ装置に送信することを特徴とする付記３に記載のストレージ制御装置。
（付記５）
前記ストレージ装置はＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）又はＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）であることを特徴とする付記１乃至４何れか一つに記載のストレージ制御装置。
（付記６）
前記モード選択部は、前記第１時間が前記第２時間よりも短い場合に、前記第１モードを選択し、前記第２時間が前記第１時間よりも短い場合に、前記第２モードを選択することを特徴とする付記１乃至５何れか一つに記載のストレージ制御装置。
（付記７）
前記第２データはサンプルデータであり、
前記第１送受信部及び前記第２送受信部は、前記サンプルデータを複数回、前記第２制御装置及び前記ストレージ装置に送信することにより、前記第１時間及び前記第２時間の測定を複数回実行し、
前記モード選択部は、複数回の前記測定において連続して前記第１時間が前記第２時間よりも短い場合に、前記第１モードを選択し、複数回の前記測定において連続して前記第２時間が前記第１時間よりも短い場合に、前記第２モードを選択することを特徴とする付記１乃至５何れか一つに記載のストレージ制御装置。
（付記８）
前記第１モードにおいて前記第１制御装置は、前記第２データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第１制御装置によって受信される前に、第３データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第３データを保持し、前記格納完了通知が前記第１制御装置によって受信された後に、前記第２送受信部が前記第３データを前記ストレージ装置へ送信することを特徴とする付記１乃至７何れか一つに記載のストレージ制御装置。
（付記９）
前記ストレージ装置は、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ＯＦ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）を含み、
前記第２データは前記ＲＡＩＤに冗長的に格納されることを特徴とする付記１乃至８何れか一つに記載のストレージ制御装置。
（付記１０）
第１制御装置と第２制御装置とを用いて、情報処理装置から受信した第１データのストレージ装置への格納を制御するストレージ制御方法であって、
前記第１制御装置から前記第２制御装置へ第２データを送信し、
前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を、前記第２制御装置から前記第１制御装置へ送信し、
前記第１制御装置から前記ストレージ装置へ前記第２データを送信し、
前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から前記第１制御装置へ送信し、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が前記第１制御装置へ送信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が前記第１制御装置へ送信されるまでの第２時間を測定し、
前記１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択する処理を実行し、
前記第１モードが選択された場合、前記第１制御装置が、
前記情報処理装置から送信された前記第１データを、前記第２制御装置及び前記ストレージ装置へ送信し、
前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、
前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第２モードが選択された場合、前記第１制御装置が、
前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、
前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージ制御方法。
（付記１１）
前記第２モードにおいて、前記第１制御装置は、前記第１データを前記第２制御装置へ送信しないことを特徴とする付記１０に記載のストレージ制御方法。
（付記１２）
前記第１制御装置は、第１キャッシュメモリを有し、
前記第２制御装置は、第２キャッシュメモリを有し、
前記第１モード及び前記第２モードにおいて、前記第１データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第１データを保持し、
前記第１モードにおいて、前記第１データが前記第２制御装置に送信された場合、前記第２キャッシュメモリが前記第１データを保持することを特徴とする付記１０又は１１に記載のストレージ制御方法。
（付記１３）
前記第１制御装置にエラーが発生し、前記第１制御装置から前記第１データが前記ストレージ装置に送信されない場合は、前記第２制御装置が前記第２キャッシュメモリに保持された前記第１データを前記ストレージ装置に送信することを特徴とする付記１２に記載のストレージ制御方法。
（付記１４）
前記ストレージ装置はＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）又はＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）であることを特徴とする付記１０乃至１３何れか一つに記載のストレージ制御方法。
（付記１５）
前記選択する処理において、前記第１時間が前記第２時間よりも短い場合に、前記第１モードが選択され、前記第２時間が前記第１時間よりも短い場合に、前記第２モードが選択されることを特徴とする付記１０乃至１４何れか一つに記載のストレージ制御方法。
（付記１６）
前記第２データはサンプルデータであり、
前記第１制御装置が、前記サンプルデータを複数回、前記第２制御装置及び前記ストレージ装置に送信することにより、前記第１時間及び前記第２時間の測定を複数回実行し、
前記選択する処理において、複数回の前記測定において連続して前記第１時間が前記第２時間よりも短い場合に、前記第１モードが選択され、複数回の前記測定において連続して前記第２時間が前記第１時間よりも短い場合に、前記第２モードが選択されることを特徴とする付記１０乃至１４何れか一つに記載のストレージ制御方法。
（付記１７）
前記第１モードにおいて前記第１制御装置は、前記第２データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、
前記処理完了通知が前記情報処理装置に送信された後であって、前記格納完了通知が前記第１制御装置によって受信される前に、第３データが前記第１制御装置によって受信された場合、前記第１キャッシュメモリが前記第３データを保持し、前記格納完了通知が前記第１制御装置によって受信された後に、前記第２送受信部が前記第３データを前記ストレージ装置へ送信することを特徴とする付記１０乃至１６何れか一つに記載のストレージ制御方法。
（付記１８）
前記ストレージ装置は、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）を含み、
前記第２データは前記ＲＡＩＤに冗長的に格納されることを特徴とする付記１０乃至１７何れか一つに記載のストレージ制御方法。
（付記１９）
ストレージ装置と、
第１制御装置と第２制御装置とを含み、情報処理装置から受信した第１データの前記ストレージ装置への格納を制御するストレージ制御装置とを含み、
前記第１制御装置は、
第２データを前記第２制御装置へ送信し、前記第２データが前記第２制御装置に保持された旨を示す保持完了通知を前記第２制御装置から受信する第１送受信部と、
前記第２データを前記ストレージ装置へ送信し、前記第２データが前記ストレージ装置に格納された旨を示す格納完了通知を前記ストレージ装置から受信する第２送受信部と、
前記第２データが前記第２制御装置へ送信されてから前記保持完了通知が受信されるまでの第１時間と、前記第２データが前記ストレージ装置へ送信されてから前記格納完了通知が受信されるまでの第２時間を測定する測定部と、
前記第１時間と前記第２時間の比較に基づき、第１モードと第２モードの何れかを選択するモード選択部と、
を有し、
前記第１制御装置は、前記第１モードが選択された場合、前記情報処理装置から送信された前記第１データを前記第２制御装置及び前記ストレージ装置へ送信し、前記第１データが前記第２制御装置に保持された旨を示す前記保持完了通知を前記第２制御装置から受信し、前記保持完了通知の受信に基づき、前記情報処理装置に対して処理完了通知を送信し、
前記第１制御装置は、前記第２モードが選択された場合、前記情報処理装置から送信された前記第１データを前記ストレージ装置へ送信し、前記第１データが前記ストレージ装置に格納された旨を示す前記格納完了通知を前記ストレージ装置から受信し、前記格納完了通知の受信に基づき、前記情報処理装置に対して前記処理完了通知を送信する
ことを特徴とするストレージシステム。
（付記２０）
前記第２モードにおいて、前記第１制御装置は、前記第１データを前記第２制御装置へ送信しないことを特徴とする付記１９に記載のストレージシステム。
【符号の説明】
【０１０３】
１０  情報処理装置
２０  ストレージ制御装置
２１、２１ａ、２１ｂ  制御装置（ＣＭ）
３０  ストレージ装置
３１、３１ａ、３１ｂ、３１ｃ、３１ｄ  記憶領域
３２、３２Ａ、３２Ｂ、３２Ｃ、３２Ｄ  ＲＡＩＤ
２１０  ＣＡ
２２０、３２０  プロセッサ
２３０、３３０  不揮発性メモリ
２４０、３４０  揮発性メモリ
２５０  スイッチ
２６０  バッテリ
２７０  ＩＯＣ
２８０  ＥＸＰ
３１０  インターフェースカード
３９０  フラッシュメモリ
２２１  モード選択部
２２２  モード制御部
２２３  コマンド受信部
２２４  キャッシュメモリ制御部
２２５  ＣＭ間通信制御部
２２６  ストレージ制御部
２２７  通知部
２２８  測定部
２２９  管理テーブル
３２２  データ受信部
３２５  ＲＡＩＤ制御部
３２６  通知部
【図１】
2018132964.tif 000003
【図２】
2018132964.tif 000004
【図３】
2018132964.tif 000005
【図４】
2018132964.tif 000006
【図５】
2018132964.tif 000007
【図６】
2018132964.tif 000008
【図７】
2018132964.tif 000009
【図８】
2018132964.tif 000010
【図９】
2018132964.tif 000011
【図１０】
2018132964.tif 000012
【図１１】
2018132964.tif 000013
【図１２】
2018132964.tif 000014
【図１３】
2018132964.tif 000015
【図１４】
2018132964.tif 000016
【図１５】
2018132964.tif 000017
【図１６】
2018132964.tif 000018
【図１７】
2018132964.tif 000019
【図１８】
2018132964.tif 000020