(57)【要約】【課題】アクセス要求に対する応答性能を改善する。【解決手段】配置制御部１１は、第１の記憶装置１に記憶されたデータブロックＤ０〜Ｄ４のうちデータブロックＤ１，Ｄ２を、第１の記憶装置１よりアクセス速度の低い第２の記憶装置２に二重化する。アクセス制御部１２は、データブロックＤ２の読み出し要求を受けると、第１の記憶装置１における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定する。アクセス制御部１２は、入出力処理量が閾値に達していない場合、データブロックＤ２を第１の記憶装置１から読み出す。一方、アクセス制御部１２は、入出力処理量が閾値に達している場合、データブロックＤ２を第２の記憶装置２から読み出す。【選択図】図１
2018018271.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置に記憶された複数のデータブロックのうち１または複数の第１のデータブロックを、前記第１の記憶装置よりアクセス速度の低い第２の記憶装置に二重化する配置制御部と、
前記１または複数の第１のデータブロックのうち第２のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第２のデータブロックを前記第１の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第２のデータブロックを前記第２の記憶装置から読み出すアクセス制御部と、
を有するストレージ制御装置。
【請求項２】
前記複数のデータブロックは、論理記憶領域に含まれる複数の第３のデータブロックのうち、アクセス頻度が高いデータブロックであり、
前記複数の第３のデータブロックのうち、アクセス頻度が低いデータブロックが前記第２の記憶装置に格納される、
請求項１記載のストレージ制御装置。
【請求項３】
前記複数のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第２の記憶装置に二重化される、
請求項１または２記載のストレージ制御装置。
【請求項４】
管理装置と、ストレージ制御装置とを有するストレージシステムであって、
前記管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い１または複数の第１のデータブロックが第１の記憶装置に格納され、アクセス頻度が低い１または複数の第２のデータブロックが前記第１の記憶装置よりアクセス性能の低い第２の記憶装置に格納され、前記１または複数の第１のデータブロックのうち、１または複数の第３のデータブロックが前記第２の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有し、
前記ストレージ制御装置は、
前記指示情報に基づいて、前記第１の記憶装置および前記第２の記憶装置における前記複数のデータブロックの格納位置を制御する配置制御部と、
前記１または複数の第３のデータブロックのうち第４のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第４のデータブロックを前記第１の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第４のデータブロックを前記第２の記憶装置から読み出すアクセス制御部と、
を有するストレージシステム。
【請求項５】
前記配置決定部は、１または複数の第１のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第２の記憶装置に二重化されるように、前記指示情報により指示する、
請求項４記載のストレージシステム。
【請求項６】
前記アクセス制御部は、前記論理記憶領域の複数の論理ブロックのうち、前記第４のデータブロックが格納された論理ブロックに対する第５のデータブロックの書き込み要求を受けると、前記第１の記憶装置と前記第２の記憶装置に格納された前記第４のデータブロックを両方とも前記第５のデータブロックによって更新する、
請求項４または５記載のストレージシステム。
【請求項７】
前記アクセス制御部は、前記第１の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第１の限界値とを比較した第１の比較結果と、前記第１の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第２の限界値とを比較した第２の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
請求項４乃至６のいずれか１項に記載のストレージシステム。
【請求項８】
コンピュータに、
第１の記憶装置に記憶された複数のデータブロックのうち１または複数の第１のデータブロックを、前記第１の記憶装置よりアクセス速度の低い第２の記憶装置に二重化し、
前記１または複数の第１のデータブロックのうち第２のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、
前記入出力処理量が前記閾値に達していない場合、前記第２のデータブロックを前記第１の記憶装置から読み出し、
前記入出力処理量が前記閾値に達している場合、前記第２のデータブロックを前記第２の記憶装置から読み出す、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステムおよびストレージ制御プログラムに関する。
【背景技術】
【０００２】
記憶装置においては、その種別によって、また同じ種別でも機種によって、アクセス性能や容量当たりのコストに差がある。一般的に、アクセス性能が高いほど容量当たりのコストも高い。そのため、必要なアクセス性能や容量、コストの上限のバランスを考慮して、記憶装置の種別や機種が選択される。
【０００３】
このような観点から、アクセス性能の異なる複数の記憶装置を有効利用することが考えられている。例えば、ストレージ装置内の記憶装置をアクセス性能に応じて階層化し、階層間でデータを再配置する技術が知られている。この技術では、アクセス頻度の高いデータは性能の高い記憶装置に配置され、アクセス頻度の低いデータは性能の低い記憶装置に配置される。
【０００４】
また、記憶装置の階層化に関して、次のような技術が提案されている。例えば、ＱｏＳ（Quality of Service）ファクタ測定値が所定の閾値より小さい場合に、第２のストレージ階層のデータが第１のストレージ階層にミラーリングされ、読み取りコマンドが第２のストレージ階層に送られるようにしたストレージシステムが提案されている。
【０００５】
また、次のような計算機システムも提案されている。この計算機システムでは、クラスの異なる２つの記憶装置に同一のファイルが作成され、読み込み要求に応じて、高いクラスの記憶装置からデータが読み出される。また、アクセス時にファイルが破損した場合、他方のファイルが同一クラスの別の記憶装置にコピーされる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１６５１６４号公報
【特許文献２】特開平４−１０７７５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ストレージ装置では、アクセス性能の高い記憶装置を備えていたとしても、その記憶装置に対するアクセスが集中し、アクセス回数や転送データ量が許容量を超えてしまうと、アクセス要求に対する応答速度が低下してしまうという問題がある。
【０００８】
１つの側面では、本発明は、アクセス要求に対する応答性能を改善可能なストレージ制御装置、ストレージシステムおよびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、配置制御部と、アクセス制御部とを有するストレージ制御装置が提供される。配置制御部は、第１の記憶装置に記憶された複数のデータブロックのうち１または複数の第１のデータブロックを、第１の記憶装置よりアクセス速度の低い第２の記憶装置に二重化する。アクセス制御部は、１または複数の第１のデータブロックのうち第２のデータブロックの読み出し要求を受けると、第１の記憶装置における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定し、入出力処理量が閾値に達していない場合、第２のデータブロックを第１の記憶装置から読み出し、入出力処理量が閾値に達している場合、第２のデータブロックを第２の記憶装置から読み出す。
【００１０】
また、１つの案では、管理装置と、ストレージ制御装置とを有するストレージシステムが提供される。管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い１または複数の第１のデータブロックが第１の記憶装置に格納され、アクセス頻度が低い１または複数の第２のデータブロックが第１の記憶装置よりアクセス性能の低い第２の記憶装置に格納され、１または複数の第１のデータブロックのうち、１または複数の第３のデータブロックが第２の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有する。また、ストレージ制御装置は、配置制御部と、アクセス制御部とを有する。配置制御部は、指示情報に基づいて、第１の記憶装置および第２の記憶装置における複数のデータブロックの格納位置を制御する。アクセス制御部は、１または複数の第３のデータブロックのうち第４のデータブロックの読み出し要求を受けると、第１の記憶装置における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定し、入出力処理量が閾値に達していない場合、第４のデータブロックを第１の記憶装置から読み出し、入出力処理量が閾値に達している場合、第４のデータブロックを第２の記憶装置から読み出す。
【００１１】
さらに、１つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
【発明の効果】
【００１２】
１つの側面では、アクセス要求に対する応答性能を改善できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ストレージ装置のハードウェア構成例を示す図である。
【図４】管理サーバのハードウェア構成例を示す図である。
【図５】記憶装置の階層制御を説明するための図である。
【図６】階層制御の問題点とその解決手段について示す図である。
【図７】ストレージシステムが備える処理機能の構成例を示すブロック図である。
【図８】論理ブロック管理テーブルの構成例を示す図である。
【図９】二重化ブロック管理テーブルの構成例を示す図である。
【図１０】アクセス状況管理テーブルの構成例を示す図である。
【図１１】デバイス性能管理テーブルの構成例を示す図である。
【図１２】フラグ管理テーブルの構成例を示す図である。
【図１３】構成管理テーブルの構成例を示す図である。
【図１４】コマンド管理テーブルの構成例を示す図である。
【図１５】データの二重化方法を説明するための図である。
【図１６】ブロック管理部およびデータ配置制御部の処理手順の例を示すシーケンス図である。
【図１７】二重化ブロックの選択処理手順の例を示すフローチャートである。
【図１８】デバイス性能管理テーブルの作成方法の例を示す図である。
【図１９】処理量の評価処理手順の例を示すフローチャートである。
【図２０】二重化ブロックからのデータ読み出し処理について説明するための図である。
【図２１】二重化ブロックに対するデータ更新処理について説明するための図である。
【図２２】業務サーバからの要求に応じたアクセス処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。図１に示すストレージ制御装置１０には、第１の記憶装置１と第２の記憶装置２とが接続されている。第２の記憶装置２のアクセス速度は、第１の記憶装置１のアクセス速度より低い。
【００１５】
ストレージ制御装置１０は、配置制御部１１とアクセス制御部１２とを有する。配置制御部１１とアクセス制御部１２の処理は、例えば、ストレージ制御装置１０が備えるプロセッサが所定のプログラムを実行することで実現される。
【００１６】
配置制御部１１は、第１の記憶装置１に記憶された複数のデータブロックのうち、１または複数の第１のデータブロックを、第２の記憶装置２に二重化する（ステップＳ１）。図１の例では、第１の記憶装置１に記憶されたデータブロックＤ０〜Ｄ４のうち、データブロックＤ１，Ｄ２が第２の記憶装置２にも記憶されている。
【００１７】
アクセス制御部１２は、第１の記憶装置１に記憶された、上記の１または複数の第１のデータブロックのうち、第２のデータブロックの読み出し要求を受ける。すると、アクセス制御部１２は、第１の記憶装置１における単位時間の入出力処理量が、この入出力処理量の限界値に基づく閾値に達しているかを判定する。図１の例では、アクセス制御部１２は、データブロックＤ２の読み出し要求を受け（ステップＳ２）、これに応じて、第１の記憶装置１における単位時間の入出力処理量が上記の閾値に達しているかを判定する（ステップＳ３）。なお、入出力処理量の限界値とは、第１の記憶装置１が有する性能に基づいて決定される値である。
【００１８】
ここで、図示しないが、入出力処理量が閾値に達していない場合には、アクセス制御部１２は、データブロックＤ２を第１の記憶装置１から読み出す。これにより、読み出し要求から短時間でデータブロックＤ２の読み出しを完了できる。しかし、入出力処理量が閾値に達している場合には、アクセス制御部１２は、データブロックＤ２を第１の記憶装置１ではなく、第２の記憶装置２から読み出す（ステップＳ４）。
【００１９】
仮に、第１の記憶装置１における単位時間の入出力処理量が閾値に達している場合に、第１の記憶装置１からデータブロックＤ２を読み出そうとすると、第１の記憶装置１の本来の応答性能が発揮されず、応答速度が低下する可能性が高い。これに対して、上記のように、第１の記憶装置１における単位時間の入出力処理量が閾値に達している場合には、第２の記憶装置２から同じデータブロックＤ２を読み出すことで、記憶装置間でアクセスが分散され、第１の記憶装置１の負荷を増大させずに済む。したがって、全体として、第１の記憶装置１に記憶されているデータブロックの読み出し性能の低下幅を抑制できる可能性が高まり、読み出し要求に対する応答性能を改善できる。
【００２０】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００、業務サーバ２００および管理サーバ３００を有する。また、ストレージ装置１００は、ＣＭ（Controller Module）１１０とＤＥ（Drive Enclosure）１２０とを有する。なお、ストレージ装置１００は、２台以上のＣＭを有していてもよいし、２台以上のＤＥを有していてもよい。
【００２１】
ＤＥ１２０は、業務サーバ２００からのアクセス対象のデータを記憶する複数の記憶装置を有する。後述するように、ＤＥ１２０には、アクセス性能の異なる記憶装置が搭載されている。
【００２２】
ＣＭ１１０は、業務サーバ２００からのアクセス要求に応じてＤＥ１２０内の記憶装置にアクセスするストレージ制御装置である。また、ＣＭ１１０の運用は、管理サーバ３００によって管理される。例えば、ＣＭ１１０は、管理サーバ３００からの指示に応じて、論理ボリュームのデータをＤＥ１２０内の記憶装置から別の記憶装置に再配置する。なお、ＣＭ１１０は、図１に示したストレージ制御装置１０の一例である。
【００２３】
業務サーバ２００は、例えば、ＳＡＮ（Storage Area Network）を介してＣＭ１１０と接続されている。業務サーバ２００は、各種の業務に関する処理を実行するサーバコンピュータである。業務サーバ２００は、業務に関する処理に伴って、ＣＭ１１０から提供される論理ボリュームに対してアクセスする。
【００２４】
管理サーバ３００は、例えば、ＬＡＮ（Local Area Network）を介してＣＭ１１０と接続されている。管理サーバ３００は、ストレージ装置１００の運用を管理するサーバコンピュータである。管理サーバ３００は、例えば、ストレージ装置１００における階層制御を行う。階層制御とは、ストレージ装置１００に記憶されるデータが、それぞれ異なるアクセス性能を有する記憶装置によって実現される複数の記憶領域のうち、そのデータに対するアクセス頻度に応じた記憶領域に配置されるように制御する処理である。
【００２５】
図３は、ストレージ装置のハードウェア構成例を示す図である。
ＣＭ１１０は、プロセッサ１１１、ＲＡＭ（Random Access Memory）１１２、ＳＳＤ１１３、ＣＡ（Channel Adapter）１１４、通信インタフェース（Ｉ／Ｆ）１１５およびＤＩ（Drive Interface）１１６を有する。
【００２６】
プロセッサ１１１は、ＣＭ１１０の処理を統括的に制御する。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）である。また、プロセッサ１１１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどの２以上の要素の組合せであってもよい。
【００２７】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＲＡＭ１１２には、プロセッサ１１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に記憶される。また、ＲＡＭ１１２には、プロセッサ１１１による処理に用いる各種データが一時的に記憶される。
【００２８】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１１０は、補助記憶装置として、ＳＳＤ１１３の代わりにＨＤＤ（Hard Disk Drive）を備えていてもよい。
【００２９】
ＣＡ１１４は、業務サーバ２００と通信するためのインタフェース回路である。通信インタフェース１１５は、管理サーバ３００と通信するためのインタフェース回路である。ＤＩ１１６は、ＤＥ１２０内の記憶装置と通信するためのインタフェース回路である。
【００３０】
ＤＥ１２０には、アクセス性能の異なる複数の記憶装置が搭載されている。本実施の形態では、ＤＥ１２０には、ＳＳＤ、オンラインディスクと呼ばれるＨＤＤ、ニアラインディスクと呼ばれるＨＤＤという３種類の記憶装置が、それぞれ複数搭載されている。なお、ＳＳＤ、オンラインディスク、ニアラインディスクの順にアクセス性能が高い。
【００３１】
図４は、管理サーバのハードウェア構成例を示す図である。管理サーバ３００は、プロセッサ３０１、ＲＡＭ３０２、ＨＤＤ３０３、グラフィックインタフェース（Ｉ／Ｆ）３０４、入力インタフェース（Ｉ／Ｆ）３０５、読み取り装置３０６および通信インタフェース（Ｉ／Ｆ）３０７を有する。
【００３２】
プロセッサ３０１は、管理サーバ３００の処理を統括的に制御する。プロセッサ３０１は、例えば、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡである。また、プロセッサ３０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどの２以上の要素の組合せであってもよい。
【００３３】
ＲＡＭ３０２は、管理サーバ３００の主記憶装置として使用される。ＲＡＭ３０２には、プロセッサ３０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に記憶される。また、ＲＡＭ３０２には、プロセッサ３０１による処理に用いる各種データが一時的に記憶される。
【００３４】
ＨＤＤ３０３は、管理サーバ３００の補助記憶装置として使用される。ＨＤＤ３０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、管理サーバ３００は、補助記憶装置として、ＨＤＤ３０３の代わりにＳＳＤを備えていてもよい。
【００３５】
グラフィックインタフェース３０４には、表示装置３０４ａが接続されている。グラフィックインタフェース３０４は、プロセッサ３０１からの命令にしたがって、画像を表示装置３０４ａの画面に表示させる。表示装置３０４ａとしては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００３６】
入力インタフェース３０５には、入力装置３０５ａが接続されている。入力インタフェース３０５は、入力装置３０５ａから出力される信号をプロセッサ３０１に送信する。入力装置３０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３７】
読み取り装置３０６には、可搬型記録媒体３０６ａが脱着される。読み取り装置３０６は、可搬型記録媒体３０６ａに記録されたデータを読み取ってプロセッサ３０１に送信する。可搬型記録媒体３０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３８】
通信インタフェース３０７は、ストレージ装置１００のＣＭ１１０との間でデータを送受信する。
なお、業務サーバ２００も管理サーバ３００と同様のハードウェアにより実現できる。
【００３９】
図５は、記憶装置の階層制御を説明するための図である。ＣＭ１１０は、業務サーバ２００からのアクセス対象となる論理ボリューム１５１を生成する。また、ＣＭ１１０には、ストレージプール１５２が設定される。ストレージプール１５２は、論理ボリューム１５１に対して物理領域として割り当てられる記憶領域であり、ＤＥ１２０の記憶装置によって実現される。
【００４０】
なお、１つのストレージプールの物理領域を複数の論理ボリュームに割り当てることも可能である。ただし、以下の説明では、１つのストレージプール１５２の物理領域が１つの論理ボリューム１５１に割り当てられているものとする。
【００４１】
ストレージプール１５２は、第１のサブプール１５２ａ、第２のサブプール１５２ｂおよび第３のサブプール１５２ｃに分割されている。第１のサブプール１５２ａは、１台以上のＳＳＤによって実現される。第２のサブプール１５２ｂは、１台以上のオンラインディスクによって実現される。第３のサブプール１５２ｃは、１台以上のニアラインディスクによって実現される。なお、例えば、１つのサブプールは、同じアクセス性能の記憶装置によって構成される１つ以上のＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループとして定義される。
【００４２】
このような構成により、第１のサブプール１５２ａ、第２のサブプール１５２ｂ、第３のサブプール１５２ｃの順にアクセス性能が高い。すなわち、ストレージプール１５２は、アクセス性能の異なる３つの記憶領域に階層化される。なお、以下の説明では、アクセス性能が相対的に高いサブプールを「上位階層のサブプール」、アクセス性能が相対的に低いサブプールを「下位階層のサブプール」と記載する場合がある。
【００４３】
論理ボリューム１５１の領域は、一定サイズの論理ブロックに分割されて管理される。各論理ブロックは、論理アドレスによって識別される。一方、第１のサブプール１５２ａ、第２のサブプール１５２ｂ、第３のサブプール１５２ｃの各領域も、論理ブロックと同じサイズのブロックに分割されて管理される。以下、各サブプールのブロックを「物理ブロック」と記載する。各物理ブロックは、サブプールごとの物理アドレスによって識別される。
【００４４】
各論理ブロックには、第１のサブプール１５２ａ、第２のサブプール１５２ｂ、第３のサブプール１５２ｃのいずれかの物理ブロックが割り当てられる。管理サーバ３００は、論理ボリューム１５１の論理ブロックが、この論理ブロックに対する業務サーバ２００からのアクセス頻度が高いほど、アクセス性能が高いサブプールに割り当てられるように制御する。例えば、管理サーバ３００は、ある論理ブロックのアクセス頻度が低下した場合に、この論理ブロックに対する物理ブロックの割り当て先を、アクセス性能がより低いサブプールに変更する。この場合、ＣＭ１１０は、管理サーバ３００からの指示に応じて、この論理ブロックに対応するデータを、割り当て変更前のサブプール上の物理ブロックから割り当て変更後のサブプール上の物理ブロックへ移動させる。
【００４５】
このような階層制御により、業務サーバ２００からのアクセス頻度が高いデータほど、上位階層のサブプールに配置され、業務サーバ２００からのアクセス要求に対する応答速度が高くなる。その結果、全体として業務サーバ２００からのアクセス要求に対する応答性能が向上する。しかしながら、階層制御では、アクセス性能の高いサブプールにアクセスが集中し、その結果として応答速度が低下するという問題がある。
【００４６】
図６は、階層制御の問題点とその解決手段について示す図である。図６では例として、第１のサブプール１５２ａと第２のサブプール１５２ｂとの間の階層制御について示している。
【００４７】
図６の上段に示すように、論理ボリューム１５１の一部の論理ブロックに対して、第１のサブプール１５２ａの物理ブロックが割り当てられ、他の論理ブロックに対して、第２のサブプール１５２ｂの物理ブロックが割り当てられている。第１のサブプール１５２ａには、第２のサブプール１５２ｂと比較して、業務サーバ２００からのアクセス頻度の高いデータが格納される。また、第２のサブプール１５２ｂの物理ブロックが割り当てられた論理ブロックに対するアクセス頻度が高くなると、その割り当て先が第１のサブプール１５２ａに変更され、対応するデータが第１のサブプール１５２ａに移動される。
【００４８】
このように、上位階層のサブプールには、業務サーバ２００からのアクセス頻度が高いデータばかりが格納されるので、このサブプールにアクセスが集中しやすい。そのため、論理ボリューム１５１内のデータ間でのアクセス頻度の偏りが大きくなった場合には、上位階層のサブプールへのアクセスが過度に集中する場合がある。そして、上位階層のサブプールに対するアクセス回数や転送データ量が許容能力を超えてしまうと、アクセス要求に対する応答速度が低下してしまい、階層制御によるメリットが損なわれるという問題がある。
【００４９】
このような問題は、例えば、特定のデータにアクセスが集中しやすいようなシステムで顕著に発生する。特に、読み込みアクセスが支配的なシステムで発生しやすい。このようなシステムの例として、動画などのコンテンツの配信サービスを提供するシステムが考えられる。例えば、配置されるコンテンツのうち、人気のあるコンテンツにはアクセスが集中しやすい。また、ＳＮＳ（Social Networking Service）などを通じた情報の拡散により、突発的に特定のコンテンツにのみアクセスが集中する場合もある。
【００５０】
ところで、上記の問題の一方で、下位階層のサブプールでは、上位階層のサブプールへのアクセスが集中していても、アクセス回数や転送データ量が少なく、その能力に余裕がある場合があり得る。
【００５１】
そこで、図６の下段に示すように、本実施の形態のＣＭ１１０は、上位階層のサブプールに格納されたデータの少なくとも一部を、下位階層のサブプールにも格納してデータを二重化しておく。そして、ＣＭ１１０は、上位階層のサブプールに格納されたデータの読み出しが要求された際に、上位階層のサブプールにおける現在のＩＯ（In/Out）処理量が、サブプールを構成する記憶装置固有の性能に基づく限界値に達しているかを判定する。ＣＭ１１０は、現在のＩＯ処理量が限界値に達していない場合には、従来通り上位階層のサブプールからデータを読み出すが、現在のＩＯ処理量が限界値に達している場合には、上位階層のサブプールの代わりに下位階層のサブプールからデータを読み出す。
【００５２】
これにより、上位階層のサブプール内のデータに対するアクセス要求が集中した場合に、下位階層のサブプールでの能力の余裕分を利用して、それらのアクセスの一部を下位階層のサブプールに分散させることができる。その結果、全体として、アクセス要求に対する処理効率が向上し、アクセスの集中に起因する応答速度の低下幅を低減することができる。
【００５３】
なお、上記の説明では、ＣＭ１１０は現在のＩＯ処理量が限界値に達しているかを判定するものとしたが、現在のＩＯ処理量の測定誤差などを考慮して、現在のＩＯ処理量が限界値に近づいているかを判定してもよい。
【００５４】
図７は、ストレージシステムが備える処理機能の構成例を示すブロック図である。
ＣＭ１１０は、記憶部１３０、ブロック管理部１４１、性能管理部１４２、ボリュームアクセス制御部１４３およびディスクアクセス制御部１４４を有する。記憶部１３０は、例えば、ＲＡＭ１１２やＳＳＤ１１３など、ＣＭ１１０が備える記憶装置の記憶領域によって実現される。ブロック管理部１４１、性能管理部１４２、ボリュームアクセス制御部１４３およびディスクアクセス制御部１４４の処理は、例えば、プロセッサ１１１が所定のプログラムを実行することで実現される。なお、ブロック管理部１４１は、図１に示した配置制御部１１の一例であり、性能管理部１４２およびボリュームアクセス制御部１４３は、図１に示したアクセス制御部１２の一例である。
【００５５】
管理サーバ３００は、データ配置制御部３１０を有する。データ配置制御部３１０の処理は、例えば、プロセッサ３０１が所定のプログラムを実行することで実現される。
ＣＭ１１０の記憶部１３０には、論理ブロック管理テーブル１３１、二重化ブロック管理テーブル１３２、アクセス状況管理テーブル１３３、デバイス性能管理テーブル１３４、フラグ管理テーブル１３５および構成管理テーブル１３６が記憶される。ここで、これらの各テーブルの構成について説明する。
【００５６】
図８は、論理ブロック管理テーブルの構成例を示す図である。論理ブロック管理テーブル１３１は、論理ボリュームの各論理ブロックと、それらに割り当てられているサブプールの物理ブロックとの対応関係を管理するためのテーブル情報である。論理ブロック管理テーブル１３１は、ボリューム番号、論理ブロック番号および物理位置の各項目を有する。
【００５７】
ボリューム番号の項目には、業務サーバ２００からのアクセス対象となる論理ボリュームの識別番号が登録される。論理ブロック番号の項目には、論理ボリューム上の論理ブロックの識別番号（アドレス）が登録される。物理位置の項目には、「Ｘ−Ｙ」という形式のデータが登録される。Ｘは、論理ブロックに割り当てられたサブプールの識別番号を示し、Ｙは、そのサブプール上の物理ブロックの識別番号（アドレス）を示す。例えば、「０−０」は、サブプール「０」の物理ブロック「０」を示す。また、論理ブロックに対応するデータが２つのサブプールに二重化されている場合には、物理位置の項目には「ＬＢ」と登録される。
【００５８】
なお、ＣＭ１１０は、例えば、論理ボリュームを新たに作成したとき、その論理ボリュームの全論理ブロックに対応するレコードを論理ブロック管理テーブル１３１に追加する。この場合、新たな論理ボリュームには、初期状態では物理ブロックが割り当てられていないことから、追加された各レコードの物理位置の項目には、例えば「ＮＵＬＬ」と登録される。そして、ＣＭ１１０は、新たな論理ボリュームの論理ブロックに初めてデータの書き込みが要求されたとき、この論理ブロックに物理ブロックを割り当て、割り当てた物理ブロックの情報を物理位置の項目に登録する。
【００５９】
図９は、二重化ブロック管理テーブルの構成例を示す図である。二重化ブロック管理テーブル１３２は、二重化ブロックに対応するデータの格納位置を管理するためのテーブル情報である。「二重化ブロック」とは、論理ボリュームの論理ブロックのうち、対応するデータが２つのサブプールに二重化されている論理ブロックである。二重化ブロック管理テーブル１３２には、論理ブロック管理テーブル１３１と同様のボリューム番号および論理ブロック番号の各項目に対して、物理位置の項目が対応付けられている。
【００６０】
物理位置の項目には、物理ブロックの位置を示す「Ｘ−Ｙ」という形式のデータが２つ登録される。論理ブロック管理テーブル１３１の物理ブロックの場合と同様に、Ｘは、論理ブロックに割り当てられたサブプールの識別番号を示し、Ｙは、そのサブプール上の物理ブロックの識別番号（アドレス）を示す。
【００６１】
なお、二重化ブロック管理テーブル１３２には、作成された各論理ボリュームの論理ブロックのうち、二重化ブロックについてのレコードのみが登録される。
図１０は、アクセス状況管理テーブルの構成例を示す図である。アクセス状況管理テーブル１３３は、論理ボリュームの各論理ブロックに対する業務サーバ２００からのアクセス頻度を管理するためのテーブル情報である。アクセス状況管理テーブル１３３には、論理ブロック管理テーブル１３１と同様のボリューム番号および論理ブロック番号の各項目に対して、アクセス回数の項目が対応付けられている。
【００６２】
アクセス回数の項目には、対応する論理ブロックに対して業務サーバ２００から一定時間内にアクセスされた回数が登録される。本実施の形態では、アクセス回数の項目には、データの読み出し回数が登録されるものとする。実際の処理では、アクセス回数の項目に登録された数値は、対応する論理ブロックからデータが読み出されるたびにボリュームアクセス制御部１４３によってカウントアップされる。そして、アクセス回数の項目に登録された数値は、ブロック管理部１４１によって一定時間間隔で「０」にクリアされる。
【００６３】
なお、アクセス状況管理テーブル１３３には、アクセス回数として、読み出し回数だけでなく書き込み回数も登録されてもよい。
図１１は、デバイス性能管理テーブルの構成例を示す図である。デバイス性能管理テーブル１３４は、サブプールを構成する記憶装置ごとの性能（最大性能）を管理するためのテーブル情報である。デバイス性能管理テーブル１３４には、ＳＳＤ、オンラインディスク、ニアラインディスクのそれぞれについて、最大リードブロック数、最大ライトブロック数、最大リードコマンド数および最大ライトコマンド数が登録される。
【００６４】
最大リードブロック数は、各記憶装置に固有のリードレスポンス時間当たりに読み出しできる最大ブロック数を示す。最大ライトブロック数は、各記憶装置に固有のライトレスポンス時間当たりに書き込みできる最大ブロック数を示す。最大リードコマンド数は、リードレスポンス時間当たりに処理できる最大リードコマンド数を示す。最大ライトコマンド数は、ライトレスポンス時間当たりに処理できる最大ライトコマンド数を示す。
【００６５】
デバイス性能管理テーブル１３４に登録される情報は、各記憶装置の仕様情報としてあらかじめ与えられる情報であってもよいし、各記憶装置の仕様情報や実測値に基づいて計算されてもよい。そして、デバイス性能管理テーブル１３４の情報は、各サブプールにおける現在の処理量が限界値に達しているかを判定するための基準値として使用される。最大リードブロック数および最大ライトブロック数は、シーケンシャルアクセスに関する基準値として使用される。また、最大リードコマンド数および最大ライトコマンド数は、ランダムアクセスに関する基準値として使用される。
【００６６】
図１２は、フラグ管理テーブルの構成例を示す図である。フラグ管理テーブル１３５は、各サブプールにおける現在の処理量に関する指標を管理するためのテーブル情報である。フラグ管理テーブル１３５は、サブプール番号と処理量フラグの各項目を有する。
【００６７】
サブプール番号の項目には、サブプールの識別番号が登録される。処理量フラグは、サブプールにおける現在の処理量が限界値に達しているか否かを示すフラグ情報である。処理量フラグは、現在の処理量が限界値に達していない場合、「０」に設定され、現在の処理量が限界値に達している場合、「１」に設定される。
【００６８】
図１３は、構成管理テーブルの構成例を示す図である。構成管理テーブル１３６は、ディスク番号、ディスク種別、サブプール番号およびボリューム番号の各項目を有する。ディスク番号の項目には、ＤＥ１２０に搭載された記憶装置の識別番号が登録される。ディスク種別の項目には、記憶装置の種別が登録される。本実施の形態では、ディスク種別としては、ＳＳＤ、オンラインディスク、ニアラインディスクがある。サブプール番号の項目には、サブプールの識別番号が登録される。ボリューム番号の項目には、論理ボリュームの識別番号が登録される。
【００６９】
構成管理テーブル１３６によれば、サブプールを構成する記憶装置の識別番号および種別と、論理ボリュームへの割り当て対象となるサブプールとが管理される。例えば図１３では、サブプール番号「０」のサブプールは、ディスク番号「０」，「１」のＳＳＤによって構成されている。また、ボリューム番号「０」の論理ボリュームには、サブプール番号「０」，「１」，「２」のサブプールのいずれかの物理ブロックが割り当てられる。
【００７０】
次に、ＤＥ１２０に記憶され、ＣＭ１１０から参照される情報について示す。ＤＥ１２０に搭載された各記憶装置には、コマンド管理テーブル１２５が記憶されている。コマンド管理テーブル１２５は、例えば、記憶装置の内部において、記録媒体にアクセスするためのコントローラに接続されたＲＡＭに記憶される。
【００７１】
図１４は、コマンド管理テーブルの構成例を示す図である。コマンド管理テーブル１２５は、コマンド、アドレスおよびブロックサイズの各項目を有する。
コマンド管理テーブル１２５は、対応する記憶装置において実行中のコマンドごとのレコードを有する。コマンドの項目には、実行中のコマンドがリードコマンドとライトコマンドのどちらであるかを示す情報が登録される。アドレスの項目には、コマンドに付加されている先頭ブロックのアドレスが登録され、ブロックサイズの項目には、コマンドに付加されているブロックサイズが登録される。先頭ブロックのアドレスは、書き込み先領域または読み出し元領域の先頭位置を示し、ブロックサイズは、先頭位置からの読み出しデータサイズまたは書き込みデータサイズを示す。
【００７２】
各記憶装置は、ＣＭ１１０からの情報取得コマンドに応じて、コマンド管理テーブル１２５に登録された情報を返信する機能を備えている。返信された情報は、各サブプールにおける現在の処理量を推計するために利用される。
【００７３】
次に、ＣＭ１１０のブロック管理部１４１および管理サーバ３００のデータ配置制御部３１０の処理について説明する。
ブロック管理部１４１は、一定周期の情報送信タイミングにおいて、その時点での論理ブロック管理テーブル１３１、二重化ブロック管理テーブル１３２およびアクセス状況管理テーブル１３３の内容を管理サーバ３００に送信する。管理サーバ３００のデータ配置制御部３１０は、ブロック管理部１４１から送信された情報を基に、サブプール間でデータを移動させるべき物理ブロックやコピーさせるべき物理ブロックを特定する。
【００７４】
ブロック管理部１４１は、特定された物理ブロックについてのデータ移動やデータコピーの指示をデータ配置制御部３１０から受信し、指示に基づく処理を実行する。また、ブロック管理部１４１は、データ移動やデータコピーに応じて内容が更新された論理ブロック管理テーブル１３１および二重化ブロック管理テーブル１３２をデータ配置制御部３１０から受信し、受信した情報によって記憶部１３０の対応する情報を更新する。
【００７５】
図１５は、データの二重化方法を説明するための図である。論理ボリューム１５１内の各論理ブロックのデータをストレージプール１５２内のどの物理ブロックに配置するかは、管理サーバ３００のデータ配置制御部３１０によって決定される。
【００７６】
まず、データ配置制御部３１０は、アクセス頻度が高い論理ブロックのデータを第１のサブプール１５２ａに配置する。また、データ配置制御部３１０は、アクセス頻度が中程度の論理ブロックのデータを第２のサブプール１５２ｂに配置する。また、データ配置制御部３１０は、アクセス頻度が低い論理ブロックのデータを第３のサブプール１５２ｃに配置する。本実施の形態では、例として、一定の比率で各サブプールにデータが割り振られるものとする。
【００７７】
アクセス頻度は定期的に計測され、計測されたアクセス頻度に基づいて、必要に応じてサブプール間でデータが移動される。なお、計測されるアクセス頻度は、読み出し頻度であってもよいし、読み出しと書き込みの両方のアクセスの頻度であってもよい。
【００７８】
データ配置制御部３１０は、上記のように各論理ブロックのデータの配置先を決定した上で、第１のサブプール１５２ａのデータの少なくとも一部と、第２のサブプール１５２ｂのデータの少なくとも一部を二重化するように決定する。データ配置制御部３１０は、上位階層のサブプールに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータを、１つ下位の階層のサブプールの空き領域にコピーするように決定する。すなわち、第１のサブプール１５２ａに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータが、第２のサブプール１５２ｂの空き領域にコピーされる。また、第２のサブプール１５２ｂに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータが、第３のサブプール１５２ｃの空き領域にコピーされる。
【００７９】
なお、データの二重化の目的は読み出しアクセスを分散させることなので、二重化の対象とするデータは論理ブロックの読み出し頻度に基づいて決定されればよい。
このように、上位階層のサブプールの論理ブロックのうち、読み出し頻度が上位の論理ブロックが二重化ブロックとして選択される。これにより、上位階層のサブプール内のデータに対する読み出し要求が集中したときに、読み出し先を下位階層のサブプールに分散させることができる可能性を高くすることができる。
【００８０】
図１６は、ブロック管理部およびデータ配置制御部の処理手順の例を示すシーケンス図である。図１６の処理は、一定時間（例えば、０．５秒）間隔で繰り返し実行される。
［ステップＳ１１］ＣＭ１１０のブロック管理部１４１は、論理ブロック管理テーブル１３１、二重化ブロック管理テーブル１３２およびアクセス状況管理テーブル１３３の内容を管理サーバ３００に送信する。また、ブロック管理部１４１は、これらの送信後に、アクセス状況管理テーブル１３３のリード回数およびライト回数の値を「０」にリセットする。
【００８１】
なお、次のステップＳ１２以降の処理は、論理ボリュームごとに実行される。また、例えば、複数のストレージプールが存在し、１つのストレージプールに１以上の論理ボリュームが割り当てられている場合には、ステップＳ１２以降の処理はストレージプールごとに実行されてもよい。
【００８２】
［ステップＳ１２］管理サーバ３００のデータ配置制御部３１０は、論理ブロック管理テーブル１３１、二重化ブロック管理テーブル１３２およびアクセス状況管理テーブル１３３の内容を受信する。データ配置制御部３１０は、論理ブロック管理テーブル１３１のレコードを、アクセス状況管理テーブル１３３に登録された、対応する論理ブロックについてのアクセス回数の多い順にソートすることで、新たな論理ブロック管理テーブルを作成する。なお、作成された新たな論理ブロック管理テーブルでは、物理位置の項目は空欄となっている。
【００８３】
［ステップＳ１３］データ配置制御部３１０は、新たな論理ブロック管理テーブルにおける各論理ブロックに対して、先頭側から所定の割合で、第１のサブプール１５２ａ、第２のサブプール１５２ｂ、第３のサブプール１５２ｃを順に割り当てる。例えば、データ配置制御部３１０は、先頭から１５％分の論理ブロックに第１のサブプール１５２ａを割り当て、次の３５％分の論理ブロックに第２のサブプール１５２ｂを割り当て、残りの論理ブロックに第３のサブプール１５２ｃを割り当てる。
【００８４】
そして、データ配置制御部３１０は、各論理ブロックについて次のような処理を実行することで、各論理ブロックに物理ブロックを割り当てる。
データ配置制御部３１０は、ステップＳ１２で受信した論理ブロック管理テーブル１３１および二重化ブロック管理テーブル１３２における、該当論理ブロックについてのレコードを参照する。データ配置制御部３１０は、該当論理ブロックに現在割り当てられているサブプールが、ステップＳ１３で割り当てたサブプールと同じであるかを判定する。なお、該当論理ブロックが二重化ブロックになっている場合には、割り当てられた２つのサブプールのうち上位階層側のサブプールの識別情報が判定に利用される。
【００８５】
データ配置制御部３１０は、サブプールが同じである場合、参照したレコードに登録されている物理位置の情報を、新たな論理ブロック管理テーブルにおける物理位置の項目にコピーする。一方、データ配置制御部３１０は、サブプールが異なる場合、ステップＳ１３で割り当てたサブプールの空き物理ブロックを該当論理ブロックに割り当て、割り当てた論理ブロックを示す情報を、新たな論理ブロック管理テーブルにおける物理位置の項目に登録する。
【００８６】
［ステップＳ１４］データ配置制御部３１０は、論理ブロックの中から二重化ブロックを選択する。
ここで、図１７は、二重化ブロックの選択処理手順の例を示すフローチャートである。
【００８７】
［ステップＳ１４ａ］データ配置制御部３１０は、処理対象として最上位階層のサブプール、すなわち第１のサブプール１５２ａを選択する。
［ステップＳ１４ｂ］データ配置制御部３１０は、下位階層、すなわち第２のサブプール１５２ｂに空き領域があるかを判定する。データ配置制御部３１０は、空き領域がある場合、ステップＳ１４ｃの処理を実行し、空き領域がない場合、ステップＳ１４ｅの処理を実行する。
【００８８】
［ステップＳ１４ｃ］データ配置制御部３１０は、図１６のステップＳ１３で第１のサブプール１５２ａを割り当てた論理ブロックを対象として、第２のサブプール１５２ｂの空き領域がなくなるまで、次のような処理を実行する。データ配置制御部３１０は、アクセス回数が多い論理ブロックから順に、二重化ブロックとして選択する。
【００８９】
［ステップＳ１４ｄ］データ配置制御部３１０は、新たな二重化ブロック管理テーブルを作成し、ステップＳ１４ｃで二重化ブロックとして選択した各論理ブロックについて、次のような処理を実行する。
【００９０】
データ配置制御部３１０は、新たな二重化ブロック管理テーブルに、該当論理ブロックのレコードを追加する。データ配置制御部３１０は、図１６のステップＳ１２で作成された新たな論理ブロック管理テーブルのレコードのうち、該当論理ブロックのレコードに登録された物理位置の情報を、新たな二重化ブロック管理テーブルに追加したレコードにおける物理位置の項目に登録する。そして、データ配置制御部３１０は、新たな論理ブロック管理テーブルの該当論理ブロックのレコードにおいて、物理位置の項目を「ＬＢ」に更新する。
【００９１】
これにより、新たな論理ブロック管理テーブルの作成が完了するとともに、新たな二重化ブロック管理テーブルにおける物理位置の項目に、上位階層側のサブプールの物理ブロックを示す情報が登録される。
【００９２】
次いで、データ配置制御部３１０は、二重化ブロックとして選択した各論理ブロックについて、さらに次のような処理を実行する。
データ配置制御部３１０は、図１６のステップＳ１２で受信した論理ブロック管理テーブル１３１および二重化ブロック管理テーブル１３２における、該当論理ブロックについてのレコードを参照する。データ配置制御部３１０は、参照したレコードの内容に基づき、該当論理ブロックが、第１のサブプール１５２ａと第２のサブプール１５２ｂとの間で二重化される二重化ブロックとして設定されているかを判定する。
【００９３】
該当論理ブロックが二重化ブロックとして設定されている場合、データ配置制御部３１０は、受信した二重化ブロック管理テーブル１３２の該当レコードに登録されていた物理位置の情報を、新たな二重化ブロック管理テーブルの該当レコードにおける物理位置の項目に追加登録する。一方、該当論理ブロックが二重化ブロックとして設定されていない場合、データ配置制御部３１０は、該当論理ブロックに第２のサブプール１５２ｂの空き物理ブロックを割り当てる。そして、データ配置制御部３１０は、新たな二重化ブロック管理テーブルの該当レコードにおける物理位置の項目に、割り当てた空き物理ブロックの識別番号を追加登録する。
【００９４】
［ステップＳ１４ｅ］データ配置制御部３１０は、次の階層のサブプール、すなわち第２のサブプール１５２ｂを処理対象として、ステップＳ１４ａ〜Ｓ１４ｄの処理を実行する。ここではこれらの処理内容の説明を省略するが、この処理により、第２のサブプール１５２ｂと第３のサブプール１５２ｃとの間で二重化される論理ブロックが決定される。なお、ステップＳ１４ｄに相当する処理では、すでに新たな二重化ブロック管理テーブルが作成されている場合、この二重化ブロック管理テーブルが用いられる。
【００９５】
以上の図１７の処理が終了した時点で、論理ブロックと物理ブロックとの対応関係が更新された新たな論理ブロック管理テーブルの作成が完了する。また、図１７の処理で二重化ブロックが選択された場合には、新たな二重化ブロック管理テーブルの作成も完了する。
【００９６】
以下、図１６に戻って説明する。
［ステップＳ１５］データ配置制御部３１０は、図１６のステップＳ１２で受信した論理ブロック管理テーブル１３１および二重化ブロック管理テーブル１３２と、新たに作成された論理ブロック管理テーブルおよび二重化ブロック管理テーブルとを比較する。なお、図１７で二重化ブロックが選択されなかった場合には、データ配置制御部３１０は、論理ブロックが登録されていない新たな二重化ブロック管理テーブルを作成して、比較に利用する。
【００９７】
データ配置制御部３１０は、これらの比較結果に基づいて、割り当てられた物理ブロックが変更されている論理ブロックを抽出する。
［ステップＳ１６］データ配置制御部３１０は、ステップＳ１５で抽出された論理ブロックについて、物理ブロック間でデータを移動するように指示する指示情報をＣＭ１１０に送信する。
【００９８】
［ステップＳ１７］ＣＭ１１０のブロック管理部１４１は、受信した指示情報に基づいて、物理ブロック間でデータを移動させる。
［ステップＳ１８］管理サーバ３００のデータ配置制御部３１０は、作成された新たな論理ブロック管理テーブルおよび二重化ブロック管理テーブルを、ＣＭ１１０に送信する。
【００９９】
［ステップＳ１９］ＣＭ１１０のブロック管理部１４１は、受信した新たな論理ブロック管理テーブルおよび二重化ブロック管理テーブルによって、記憶部１３０内の新たな論理ブロック管理テーブル１３１および二重化ブロック管理テーブル１３２をそれぞれ更新する。
【０１００】
次に、ＣＭ１１０の性能管理部１４２の処理について説明する。ここではまず、性能管理部１４２によって参照されるデバイス性能管理テーブル１３４の作成方法について説明する。
【０１０１】
図１８は、デバイス性能管理テーブルの作成方法の例を示す図である。前述のように、デバイス性能管理テーブル１３４の情報は、各サブプールにおける現在の処理量が限界値に達しているかを判定するための基準値として利用される。デバイス性能管理テーブル１３４は、あらかじめ値が設定された状態で記憶部１３０に格納されてもよいが、例えば次のような方法で、設定値が計算されてもよい。なお、ここでは例として、性能管理部１４２によって設定値が計算されるものとする。
【０１０２】
図１８に示すデバイス仕様テーブル１３７は、サブプールを構成する記憶装置ごとの最大性能の仕様を保持する。デバイス仕様テーブル１３７の情報は、例えば、記憶装置のメーカからあらかじめ開示された情報であってもよいし、計測によって得られた情報であってもよい。
【０１０３】
デバイス性能管理テーブル１３４には、ＳＳＤ、オンラインディスクおよびニアラインディスクのそれぞれについて、シーケンシャルアクセス時の最大性能と、ランダムアクセス時の最大性能とが保持される。シーケンシャルアクセス時の最大性能としては、リードスループット、ライトスループット、リードレスポンス時間、ライトレスポンス時間が登録される。ランダムアクセス時の最大性能としては、リードＩＯＰＳ（Input/Output Per Second）、ライトＩＯＰＳ、リードレスポンス時間、ライトレスポンス時間が登録される。
【０１０４】
以下、デバイス仕様テーブル１３７が記憶部１３０に記憶され、性能管理部１４２によって参照されるものとする。性能管理部１４２は、デバイス仕様テーブル１３７に基づいて、次の式（１−１）〜（１−４）にしたがってデバイス性能管理テーブル１３４の情報を計算することができる。
最大リードブロック数＝１ミリ秒当たりのリードブロック数×シーケンシャルアクセス時のリードレスポンス時間      ・・・（１−１）
最大ライトブロック数＝１ミリ秒当たりのライトブロック数×シーケンシャルアクセス時のライトレスポンス時間      ・・・（１−２）
最大リードコマンド数＝１ミリ秒当たりのリードコマンド数×ランダムアクセス時のリードレスポンス時間      ・・・（１−３）
最大ライトコマンド数＝１ミリ秒当たりのライトコマンド数×ランダムアクセス時のライトレスポンス時間      ・・・（１−４）
ここで、１ミリ秒当たりのリードブロック数とは、シーケンシャルアクセス時のリードスループットを、１ミリ秒当たりで読み出し可能なブロック数に換算した値である。また、１ミリ秒当たりのライトブロック数とは、シーケンシャルアクセス時のライトスループットを、１ミリ秒当たりで書き込み可能なブロック数に換算した値である。
【０１０５】
さらに、１ミリ秒当たりのリードコマンド数とは、リードＩＯＰＳを、１ミリ秒当たりで実行可能なリードコマンド数に換算した値である。また、１ミリ秒当たりのライトコマンド数とは、リードＩＯＰＳを、１ミリ秒当たりで実行可能なライトコマンド数に換算した値である。
【０１０６】
なお、図１８に示すデバイス性能管理テーブル１３４は、１ブロックの大きさを５００バイト、１キロバイトを１０００バイトとして計算されたものである。
以上の方法により、デバイス性能管理テーブル１３４には、記憶装置ごとの処理量の限界値（最大処理性能）が登録される。
【０１０７】
次に、性能管理部１４２によるサブプールごとの処理量の評価処理について説明する。
図１９は、処理量の評価処理手順の例を示すフローチャートである。図１９の処理は、一定時間間隔で繰り返し実行される。
【０１０８】
［ステップＳ３１］性能管理部１４２は、ＤＥ１２０内の各記憶装置のコマンド管理テーブル１２５から、実行中のすべてのコマンドと、コマンドに付加されたブロックサイズを取得する。
【０１０９】
［ステップＳ３２］性能管理部１４２は、まず、ステップＳ３１で取得した情報を基に、記憶装置ごとの現在の処理量を示す指標を、読み出し処理と書き込み処理のそれぞれについて算出する。具体的には、読み出し処理量の指標としては、実行中のリードコマンド数と、リード実行中のブロック数（実行中の各リードコマンドに対応するブロックサイズの合計値）とが算出される。また、書き込み処理量の指標としては、実行中のライトコマンド数と、ライト実行中のブロック数（実行中の各ライトコマンドに対応するブロックサイズの合計値）とが算出される。
【０１１０】
そして、性能管理部１４２は、算出された値を基に、処理量の限界値に対する現在の処理量の比率を、記憶装置ごとに算出する。以下、この比率を「使用率」と呼ぶ。使用率は、最大性能に対して現在どの程度の性能が発揮されているかを示す割合である。本実施の形態では、この使用率として、リードブロック数の使用率Ｒｒｂ、ライトブロック数の使用率Ｒｗｂ、リードコマンド数の使用率Ｒｒｃ、ライドコマンド数の使用率Ｒｗｃが算出される。性能管理部１４２は、これらの値を次の式（２−１）〜（２−４）にしたがって算出する。
リードブロック数の使用率Ｒｒｂ＝リード実行中のブロック数／最大リードブロック数      ・・・（２−１）
ライトブロック数の使用率Ｒｗｂ＝ライト実行中のブロック数／最大ライトブロック数      ・・・（２−２）
リードコマンド数の使用率Ｒｒｃ＝実行中のリードコマンド数／最大リードコマンド数      ・・・（２−３）
ライドコマンド数の使用率Ｒｗｃ＝実行中のライトコマンド数／最大ライトコマンド数      ・・・（２−４）
なお、最大リードブロック数、最大ライトブロック数、最大リードコマンド数、最大ライトコマンド数は、デバイス性能管理テーブル１３４において、対応する記憶装置の種別に対して登録された値である。
【０１１１】
上記の各使用率は、シーケンシャル／ランダムというアクセスパターンを区別せずに計算された値である。そこで、性能管理部１４２は、記憶装置から取得した情報を基に記憶装置で現在実行されているアクセスのパターンを解析し、その解析結果を反映させた総合的な使用率を示す「ディスク別使用率」を、記憶装置ごとに算出する。性能管理部１４２は、ディスク別使用率を次の式（３）にしたがって算出する。
ディスク別使用率＝Ｒｒｂ×シーケンシャルリードの割合＋Ｒｗｂ×シーケンシャルライトの割合＋Ｒｒｃ×ランダムリードの割合＋Ｒｗｃ×ランダムライトの割合      ・・・（３）
ここで、性能管理部１４２は、例えば、記憶装置から取得したコマンドのうち、データブロック数が１２８ブロック以上のものをシーケンシャルアクセスのコマンドと推定する。また、性能管理部１４２は、データブロック数が１２８ブロック未満のものをランダムアクセスのコマンドと推定する。性能管理部１４２は、この推定結果を利用して、式（３）におけるシーケンシャルリードの割合、シーケンシャルライトの割合、ランダムリードの割合、ランダムライトの割合を、それぞれ次の式（４−１）〜（４−４）を用いて算出する。
シーケンシャルリードの割合＝シーケンシャルリード実行中のブロック数／（リード実行中のブロック数＋ライト実行中のブロック数）      ・・・（４−１）
シーケンシャルライトの割合＝シーケンシャルライト実行中のブロック数／（リード実行中のブロック数＋ライト実行中のブロック数）      ・・・（４−２）
ランダムリードの割合＝実行中のランダムリードコマンド数／（実行中のリードコマンド数＋実行中のライトコマンド数）      ・・・（４−３）
ランダムライトの割合＝実行中のランダムライトコマンド数／（実行中のリードコマンド数＋実行中のライトコマンド数）      ・・・（４−４）
［ステップＳ３３］性能管理部１４２は、ステップＳ３２で算出したディスク別使用率を用いて、サブプールごとの使用率を示す「階層別使用率」を算出する。階層別使用率は、サブプールを構成する各記憶装置のディスク別使用率の平均値として算出される。
【０１１２】
算出された階層別使用率は、対応するサブプールにおいて、最大性能に対して現在どの程度の性能が発揮されているかを示す割合である。階層別使用率の最大値は、１００％である。階層別使用率が１００％になっている場合には、サブプールでのＩＯ処理量が限界値に達していることを示す。
【０１１３】
［ステップＳ３４］性能管理部１４２は、算出された階層別使用率が所定の閾値に達しているか否かによって、フラグ管理テーブル１３５における対応するサブプールの処理量フラグの値を更新する。本実施の形態では例として、閾値を１００％とする。性能管理部１４２は、階層別使用率が１００％に達している場合、処理量フラグを「１」に設定し、階層別使用率が１００％に達していない場合、処理量フラグを「０」に設定する。
【０１１４】
なお、閾値は、現在の処理量の算出誤差を考慮して、１００％より低い値（ただし、０％より大きい値）に設定されてもよい。
以上の図１９の処理では、サブプールで実行中のＩＯ処理のうち、シーケンシャルアクセスによる処理とランダムアクセスによる処理との比率の推定値に基づいて、処理量フラグが設定される。これにより、サブプールにおける現状のＩＯ処理量を正確に推測することができ、その結果、アクセス要求に対する応答性能が向上する可能性を高めることができる。
【０１１５】
なお、現在の処理量およびその限界値を示す指標、あるいはそれらの比率を示す指標としては、上記の例に限らず、他の値を用いることができる。例えば、上記のディスク別使用率に代わる指標として、単位時間の中で記憶装置のアクセス処理が実行されていた時間がどれだけの割合かを示すディスクビジー率を用いることができる。
【０１１６】
この場合、性能管理部１４２は、記憶装置ごとのディスクビジー率を取得し、取得した値に基づいて、サブプールごとのビジー率（アクセス処理が実行されていた時間の割合）を算出する。サブプールごとのビジー率は、例えば、サブプールを構成する各記憶装置のディスクビジー率の平均値として算出される。性能管理部１４２は、例えば、サブプールごとのビジー率が１００％に達している場合、対応する処理量フラグを「１」に設定し、１００％に達していない場合、処理量フラグを「０」に設定する。
【０１１７】
次に、ＣＭ１１０のボリュームアクセス制御部１４３およびディスクアクセス制御部１４４の処理について説明する。
ボリュームアクセス制御部１４３は、業務サーバ２００から論理ボリューム１５１に対するアクセスの要求を受け付け、要求に応じたアクセス処理を実行する。この処理では、ボリュームアクセス制御部１４３は、アクセスが要求された論理アドレスをサブプール上の物理アドレスに変換し、物理アドレスをディスクアクセス制御部１４４に通知してアクセス処理を依頼する。また、ボリュームアクセス制御部１４３は、二重化ブロックからの読み出しが要求された場合、対応する処理量フラグに基づいて、データを上位階層と下位階層のどちらのサブプールから読み出すかを判定する。
【０１１８】
ディスクアクセス制御部１４４は、例えば、各サブプールを構成する記憶装置をＲＡＩＤによって管理する。ディスクアクセス制御部１４４は、ボリュームアクセス制御部１４３から指定された物理アドレスを、記憶装置ごとの物理アドレスに変換して、記憶装置に対してアクセスする。
【０１１９】
ここで、図２０、図２１を用いて、ボリュームアクセス制御部１４３による二重化ブロックに対するアクセス処理について説明する。
まず、図２０は、二重化ブロックからのデータ読み出し処理について説明するための図である。ボリュームアクセス制御部１４３は、業務サーバ２００から、論理ボリューム１５１の論理ブロックからの読み出し要求を受信する。図２０の例では、論理ブロック「０」からの読み出しが要求されたとする（ステップＳ５１）。
【０１２０】
ボリュームアクセス制御部１４３は、まず、論理ブロック管理テーブル１３１を参照し、指定された論理ブロック「０」に対応付けられた物理位置を取得する。図２０の例では、物理位置の項目に「ＬＢ」と登録されており、ボリュームアクセス制御部１４３は、指定された論理ブロック「０」が二重化ブロックであると判定する。この場合、ボリュームアクセス制御部１４３は、二重化ブロック管理テーブル１３２を参照し、論理ブロック「０」に対応付けられた物理位置を取得する（ステップＳ５２）。図２０の例では、論理ブロック「０」に対して、サブプール「０」（第１のサブプール１５２ａ）の物理ブロック「０」と、サブプール「１」（第２のサブプール１５２ｂ）の物理ブロック「３」とが割り当てられている。
【０１２１】
読み出し先が二重化ブロックであった場合、ボリュームアクセス制御部１４３は、どちらのサブプールにアクセスするかを選択する（ステップＳ５３）。ボリュームアクセス制御部１４３は、フラグ管理テーブル１３５を参照して、割り当てられた上位階層側のサブプール「０」に対応する処理量フラグを読み出す。図２０の例では、処理量フラグが「１」となっており、サブプール「０」における現在の処理量が限界値に達している。この場合、ボリュームアクセス制御部１４３は、アクセス先として下位階層側のサブプール「１」を選択し、サブプール「１」の物理ブロック「３」からデータを読み出して業務サーバ２００に送信する（ステップＳ５４）。
【０１２２】
このように、上位階層側のサブプール「０」における現在の処理量が限界値に達していると推定される場合には、下位階層側のサブプール「１」からデータが読み出される。これにより、アクセスがサブプール間で分散され、上位階層側のサブプール「０」での応答性能が過大なアクセス負荷によって低下する可能性を低減できる。その結果、ストレージ装置１００全体での読み出し要求に対する応答性能を改善できる。
【０１２３】
なお、図示しないが、処理量フラグが「０」であり、サブプール「０」における現在の処理量に余裕がある場合には、ボリュームアクセス制御部１４３は、サブプール「０」の物理ブロック「０」からデータを読み出して業務サーバ２００に送信する。
【０１２４】
次に、図２１は、二重化ブロックに対するデータ更新処理について説明するための図である。ボリュームアクセス制御部１４３は、業務サーバ２００から、論理ボリューム１５１の論理ブロックに対するデータの書き込み要求を受信する。図２１の例では、論理ブロック「１」に対する書き込みが要求されたとする（ステップＳ６１）。なお、論理ブロック「１」にはすでにデータが書き込まれており、図２１の例では、論理ブロック「１」のデータの更新が要求されている。
【０１２５】
ボリュームアクセス制御部１４３は、論理ブロック管理テーブル１３１を参照し、指定された論理ブロック「１」に対応付けられた物理位置を取得する。図２１の例では、物理位置の項目に「ＬＢ」と登録されており、ボリュームアクセス制御部１４３は、指定された論理ブロック「１」が二重化ブロックであると判定する。この場合、ボリュームアクセス制御部１４３は、二重化ブロック管理テーブル１３２を参照し、論理ブロック「１」に対応付けられた物理位置を取得する（ステップＳ６２）。図２１の例では、論理ブロック「１」に対して、サブプール「０」（第１のサブプール１５２ａ）の物理ブロック「１」と、サブプール「１」（第２のサブプール１５２ｂ）の物理ブロック「４」とが割り当てられている。
【０１２６】
読み出し先が二重化ブロックであった場合、ボリュームアクセス制御部１４３は、割り当てられた両方のサブプールの物理ブロックにデータを書き込む。図２１の例では、ボリュームアクセス制御部１４３は、サブプール「０」の物理ブロック「１」と、サブプール「１」の物理ブロック「４」の両方にデータを書き込む（ステップＳ６３）。
【０１２７】
以上の図２１の例のように、二重化ブロックに対するデータ更新が要求された場合、割り当てられた２つの物理ブロックのデータが両方とも更新される。これにより、データ更新後もデータが二重化された状態を保つことができ、更新前と同様にアクセス分散効果を得ることができる。
【０１２８】
図２２は、業務サーバからの要求に応じたアクセス処理手順の例を示すフローチャートである。
［ステップＳ７１］ボリュームアクセス制御部１４３は、業務サーバ２００からＩＯコマンドを受信する。なお、ＩＯコマンドが書き込みコマンドである場合、ボリュームアクセス制御部１４３は、書き込みデータも受信する。
【０１２９】
［ステップＳ７２］ボリュームアクセス制御部１４３は、論理ブロック管理テーブル１３１から、ＩＯコマンドで指定された論理ブロックに対応付けられた物理位置の情報を取得する。
【０１３０】
［ステップＳ７３］ボリュームアクセス制御部１４３は、取得した情報が「ＬＢ」である場合、ステップＳ７４の処理を実行し、「ＬＢ」でない場合、ステップＳ７９の処理を実行する。
【０１３１】
［ステップＳ７４］ボリュームアクセス制御部１４３は、ＩＯコマンドが読み出しコマンドである場合、ステップＳ７６の処理を実行し、書き込みコマンドである場合、ステップＳ７５の処理を実行する。
【０１３２】
［ステップＳ７５］ボリュームアクセス制御部１４３は、二重化ブロック管理テーブル１３２から、ＩＯコマンドで指定された論理ブロックに対応付けられた物理位置の情報を取得する。ここでは、上位階層のサブプールにおける物理位置の情報と、下位階層のサブプールにおける物理位置の情報とが取得される。
【０１３３】
［ステップＳ７６］ボリュームアクセス制御部１４３は、二重化ブロック管理テーブル１３２から、ＩＯコマンドで指定された論理ブロックに対応付けられた２つの物理位置の情報のうち、上位階層のサブプールにおける物理位置の情報を取得する。
【０１３４】
［ステップＳ７７］ボリュームアクセス制御部１４３は、フラグ管理テーブル１３５から、ステップＳ７６で取得した物理位置が示すサブプールに対応する処理量フラグを読み出す。ボリュームアクセス制御部１４３は、処理量フラグが「１」である場合、ステップＳ７８の処理を実行し、処理量フラグが「０」である場合、ステップＳ７９の処理を実行する。
【０１３５】
［ステップＳ７８］ボリュームアクセス制御部１４３は、二重化ブロック管理テーブル１３２から、ＩＯコマンドで指定された論理ブロックに対応付けられた２つの物理位置の情報のうち、下位階層のサブプールにおける物理位置の情報を取得する。
【０１３６】
［ステップＳ７９］ボリュームアクセス制御部１４３は、ＩＯコマンドで指定された論理アドレスを、取得した物理位置に置き換える。この物理位置とは、ステップＳ７４で「Ｎｏ」と判定された場合、ステップＳ７５で取得された２つの物理位置である。また、ステップＳ７７で「Ｙｅｓ」と判定された場合、ステップＳ７８で取得された物理位置である。さらに、ステップＳ７７で「Ｎｏ」と判定された場合、ステップＳ７６で取得された物理位置である。
【０１３７】
なお、ＩＯコマンドが書き込みコマンドであり、その書き込み先の論理ブロックに物理ブロックが割り当てられていない場合には、ボリュームアクセス制御部１４３は、例えば、第１のサブプール１５２ａの空きブロックを新たに割り当てる。この場合、ステップＳ７９では、論理アドレスは新たに割り当てられた空きブロックを示す物理位置に置き換えられる。
【０１３８】
［ステップＳ８０］ボリュームアクセス制御部１４３は、アクセス状況管理テーブル１３３のレコードのうち、ＩＯコマンドで指定された論理ブロックに対応するレコードのアクセス回数をインクリメントする。
【０１３９】
［ステップＳ８１］ボリュームアクセス制御部１４３は、ステップＳ７９で論理アドレスが物理位置に置き換えられたＩＯコマンドをディスクアクセス制御部１４４に発行し、ＩＯ処理を依頼する。ディスクアクセス制御部１４４は、発行されたＩＯコマンドに基づいて、ＤＥ１２０内の記憶装置に対するＩＯ処理を実行し、実行が完了するとその旨をボリュームアクセス制御部１４３に通知する。ボリュームアクセス制御部１４３は、実行完了の通知を受けると、業務サーバ２００に応答する。
【０１４０】
なお、上記の各実施の形態に示した装置（例えば、ストレージ制御装置１０、ＣＭ１１０、業務サーバ２００、管理サーバ３００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１４３】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  第１の記憶装置に記憶された複数のデータブロックのうち１または複数の第１のデータブロックを、前記第１の記憶装置よりアクセス速度の低い第２の記憶装置に二重化する配置制御部と、
前記１または複数の第１のデータブロックのうち第２のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第２のデータブロックを前記第１の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第２のデータブロックを前記第２の記憶装置から読み出すアクセス制御部と、
を有するストレージ制御装置。
【０１４４】
（付記２）  前記複数のデータブロックは、論理記憶領域に含まれる複数の第３のデータブロックのうち、アクセス頻度が高いデータブロックであり、
前記複数の第３のデータブロックのうち、アクセス頻度が低いデータブロックが前記第２の記憶装置に格納される、
付記１記載のストレージ制御装置。
【０１４５】
（付記３）  前記複数のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第２の記憶装置に二重化される、
付記１または２記載のストレージ制御装置。
【０１４６】
（付記４）  前記アクセス制御部は、前記１または複数の第１のデータブロックのうち第４のデータブロックの更新要求を受けると、前記第１の記憶装置と前記第２の記憶装置に格納された前記第４のデータブロックを両方とも新たなデータブロックによって更新する、
付記１乃至３のいずれか１つに記載のストレージ制御装置。
【０１４７】
（付記５）  前記アクセス制御部は、前記第１の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第１の限界値とを比較した第１の比較結果と、前記第１の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第２の限界値とを比較した第２の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記１乃至４のいずれか１つに記載のストレージ制御装置。
【０１４８】
（付記６）  管理装置と、ストレージ制御装置とを有するストレージシステムであって、
前記管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い１または複数の第１のデータブロックが第１の記憶装置に格納され、アクセス頻度が低い１または複数の第２のデータブロックが前記第１の記憶装置よりアクセス性能の低い第２の記憶装置に格納され、前記１または複数の第１のデータブロックのうち、１または複数の第３のデータブロックが前記第２の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有し、
前記ストレージ制御装置は、
前記指示情報に基づいて、前記第１の記憶装置および前記第２の記憶装置における前記複数のデータブロックの格納位置を制御する配置制御部と、
前記１または複数の第３のデータブロックのうち第４のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第４のデータブロックを前記第１の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第４のデータブロックを前記第２の記憶装置から読み出すアクセス制御部と、
を有するストレージシステム。
【０１４９】
（付記７）  前記配置決定部は、１または複数の第１のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第２の記憶装置に二重化されるように、前記指示情報により指示する、
付記６記載のストレージシステム。
【０１５０】
（付記８）  前記アクセス制御部は、前記論理記憶領域の複数の論理ブロックのうち、前記第４のデータブロックが格納された論理ブロックに対する第５のデータブロックの書き込み要求を受けると、前記第１の記憶装置と前記第２の記憶装置に格納された前記第４のデータブロックを両方とも前記第５のデータブロックによって更新する、
付記６または７記載のストレージシステム。
【０１５１】
（付記９）  前記アクセス制御部は、前記第１の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第１の限界値とを比較した第１の比較結果と、前記第１の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第２の限界値とを比較した第２の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記６乃至８のいずれか１つに記載のストレージシステム。
【０１５２】
（付記１０）  コンピュータに、
第１の記憶装置に記憶された複数のデータブロックのうち１または複数の第１のデータブロックを、前記第１の記憶装置よりアクセス速度の低い第２の記憶装置に二重化し、
前記１または複数の第１のデータブロックのうち第２のデータブロックの読み出し要求を受けると、前記第１の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、
前記入出力処理量が前記閾値に達していない場合、前記第２のデータブロックを前記第１の記憶装置から読み出し、
前記入出力処理量が前記閾値に達している場合、前記第２のデータブロックを前記第２の記憶装置から読み出す、
処理を実行させるストレージ制御プログラム。
【０１５３】
（付記１１）  前記コンピュータに、
前記１または複数の第１のデータブロックのうち第４のデータブロックの更新要求を受けると、前記第１の記憶装置と前記第２の記憶装置に格納された前記第４のデータブロックを両方とも新たなデータブロックによって更新する、
処理をさらに実行させる付記１０記載のストレージ制御プログラム。
【０１５４】
（付記１２）  前記判定では、前記第１の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第１の限界値とを比較した第１の比較結果と、前記第１の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第２の限界値とを比較した第２の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記１０または１１記載のストレージ制御プログラム。
【符号の説明】
【０１５５】
１  第１の記憶装置
２  第２の記憶装置
１０  ストレージ制御装置
１１  配置制御部
１２  アクセス制御部
Ｄ０〜Ｄ４  データブロック
【図１】
2018018271.tif 000003
【図２】
2018018271.tif 000004
【図３】
2018018271.tif 000005
【図４】
2018018271.tif 000006
【図５】
2018018271.tif 000007
【図６】
2018018271.tif 000008
【図７】
2018018271.tif 000009
【図８】
2018018271.tif 000010
【図９】
2018018271.tif 000011
【図１０】
2018018271.tif 000012
【図１１】
2018018271.tif 000013
【図１２】
2018018271.tif 000014
【図１３】
2018018271.tif 000015
【図１４】
2018018271.tif 000016
【図１５】
2018018271.tif 000017
【図１６】
2018018271.tif 000018
【図１７】
2018018271.tif 000019
【図１８】
2018018271.tif 000020
【図１９】
2018018271.tif 000021
【図２０】
2018018271.tif 000022
【図２１】
2018018271.tif 000023
【図２２】
2018018271.tif 000024