(57)【要約】【課題】データアクセス処理時間を減少させる。【解決手段】第１記憶装置２０からのデータの読み出し処理時間を第１予測時間として予測する第１時間予測部１１５と、第２記憶装置１３からのデータの読み出し処理時間を第２予測時間として予測する第２時間予測部１１６と、第１時間予測部１１５が予測した第１予測時間と、第２時間予測部１１６が予測した第２予測時間とを比較する比較部１１７と、比較部１１７による比較の結果、第１予測時間が第２予測時間以上である場合はデータを第２記憶装置１３から読み出し、第１予測時間が第２予測時間未満である場合はデータを第１記憶装置２０から読み出す読み出し処理部１１８と、を備える。【選択図】図１
2016126656.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置であって、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測する第１時間予測部と、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測する第２時間予測部と、
前記第１時間予測部が予測した前記第１予測時間と、前記第２時間予測部が予測した前記第２予測時間とを比較する比較部と、
前記比較部による比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す読み出し処理部と、
を備えることを特徴とする、ストレージ制御装置。
【請求項２】
前記第１記憶装置に対して重複して発行されるコマンド数毎の前記第１記憶装置からのデータの読み出し処理時間を示す第１性能情報を作成する第１性能情報作成部と、
前記第２記憶装置に対して重複して発行されるコマンド数毎の前記第２記憶装置からのデータの読み出し処理時間を示す第２性能情報を作成する第２性能情報作成部と、
前記第１記憶装置に対して発行されているコマンド数を第１負荷値として取得する第１負荷値取得部と、
前記第２記憶装置に対して発行されているコマンド数を第２負荷値として取得する第２負荷値取得部と、
を備え、
前記第１時間予測部は、前記第１性能情報作成部が作成した前記第１性能情報と、前記第１負荷値取得部が取得した前記第１負荷値とに基づき、前記第１予測時間を予測し、
前記第２時間予測部は、前記第２性能情報作成部が作成した前記第２性能情報と、前記第２負荷値取得部が取得した前記第２負荷値とに基づき、前記第２予測時間を予測する、
ことを特徴とする、請求項１に記載のストレージ制御装置。
【請求項３】
前記第２性能情報作成部は、前記読み出し処理部が前記第２記憶装置からのデータの読み出しに要した処理時間を用いて、前記第２性能情報を更新する、
ことを特徴とする、請求項２に記載のストレージ制御装置。
【請求項４】
前記第２性能情報取得部は、前記読み出し処理部が前記第２記憶装置からのデータの読み出しに要した複数の処理時間の平均値を前記第２記憶装置に対して重複して発行されたコマンド数毎に算出することによって、前記第２性能情報を更新する、
ことを特徴とする、請求項２に記載のストレージ制御装置。
【請求項５】
前記第１記憶装置における故障の前兆を検知する故障検知部を備え、
前記読み出し処理部は、前記故障検知部が前記故障の前兆を検知した場合に、前記比較部による前記比較の結果に関わらず、データを前記第２記憶装置から読み出す、
ことを特徴とする、請求項１〜４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記第１記憶装置は、磁気記憶装置であり、
前記第２記憶装置は、半導体素子メモリである、
ことを特徴とする、請求項１〜５のいずれか１項に記載のストレージ制御装置。
【請求項７】
１次キャッシュメモリとして用いられる揮発性メモリを備え、
前記第２記憶装置は、２次キャッシュメモリとして用いられる、
ことを特徴とする、請求項１〜６のいずれか１項に記載のストレージ制御装置。
【請求項８】
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置に備えられるコンピュータに、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測し、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測し、
前記予測した前記第１予測時間と、前記予測した前記第２予測時間とを比較し、
前記比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す、
処理を実行させることを特徴とする、制御プログラム。
【請求項９】
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置において、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測し、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測し、
前記予測した前記第１予測時間と、前記予測した前記第２予測時間とを比較し、
前記比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す、
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置，制御プログラム及び制御方法に関する。
【背景技術】
【０００２】
近年、記憶媒体にフラッシュ（Flash）メモリを採用したSolid State Drive（ＳＳＤ）の低価格化や大容量化、高性能化が進んでいる。これに伴い、エンタープライズ向けのストレージ装置においては、Dynamic Random Access Memory（ＤＲＡＭ）やDouble Data Rate Synchronous DRAM（ＤＤＲ  ＳＤＲＡＭ）等の一般的な揮発性メモリに加え、ＳＳＤをデータキャッシュとして採用することで高性能化を図ることが行なわれている。
【０００３】
ここで、ＳＳＤは、上述した一般的な揮発性メモリ（以下、ＤＲＡＭ／ＤＤＲという。）と比べて以下の特性を有する。
（１）容量が大きく、安価な不揮発メモリとして使用可能である。
（２）ＤＲＡＭ／ＤＤＲよりもアクセス性能が低い。
一般に、アクセス性能が高いＤＲＡＭ／ＤＤＲは１次キャッシュとして使用され、ＳＳＤは２次キャッシュとして使用される。
【０００４】
図１１は、従来例としてストレージシステムにおけるデータ読み出し処理を例示する図である。
従来例としてのストレージシステム１００ｂは、ストレージ装置１ｂ及びホスト装置２ｂを備える。
ホスト装置２ｂは、サーバ機能を備えたコンピュータ（情報処理装置）である。
【０００５】
ストレージ装置１ｂは、ホスト装置２ｂに対して記憶領域を提供する装置であり、コントローラ１０ｂ及びHard Disk Drive（ＨＤＤ）２０ｂを備える。
ＨＤＤ２０ｂは、データを読み書き可能に格納する既知の装置である。図１１においては簡単のため１つのＨＤＤ２０ｂのみを示しているが、ストレージ装置１ｂは、複数のＨＤＤ２０ｂを備えても良い。
【０００６】
コントローラ１０ｂは、Central Processing Unit（ＣＰＵ；不図示），ＤＲＡＭ１２ｂ及びＳＳＤ１３ｂを備える。
図１１に示す例においては、ＨＤＤ２０ｂが格納するデータに対するアクセス速度の向上のために、ＤＲＡＭ１２ｂは１次キャッシュメモリとして使用され、ＳＳＤ１３ｂは２次キャッシュメモリとして使用される。
【０００７】
図１１に示すストレージシステムにおいてホスト装置２ｂからのInput/Output（Ｉ／Ｏ）が発生した場合に、ストレージ装置１ｂは、Ｉ／Ｏ対象のデータが１次キャッシュメモリ１２ｂ又は２次キャッシュメモリ１３ｂにおいてヒットするかを確認する。そして、Ｉ／Ｏ対象のデータが１次キャッシュメモリ１２ｂ又は２次キャッシュメモリ１３ｂにおいてヒットする場合には、ストレージ装置１ｂは、Ｉ／Ｏ対象のデータを１次キャッシュメモリ１２ｂ又は２次キャッシュメモリ１３ｂから読み出す。一方、Ｉ／Ｏ対象のデータが１次キャッシュメモリ１２ｂ又は２次キャッシュメモリ１３ｂにおいてヒットしない場合には、ストレージ装置１ｂは、Ｉ／Ｏ対象のデータをＨＤＤ２０ｂから読み出す。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−７７１６１号公報
【特許文献２】特開２０１３−６５０６０号公報
【特許文献３】特開２０１２−１０３８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１１に示すデータ読み出し処理においては、２次キャッシュメモリ１３ｂに対するアクセスの特性上、２次キャッシュメモリ１３ｂにおけるキャッシュヒット率は、ホスト装置２ｂからのアクセスパターンにより大きく左右される。
また、２次キャッシュメモリ１３ｂはストレージ装置１ｂ内の複数のＨＤＤ２０ｂのデータをキャッシュするため、２次キャッシュメモリ１３ｂに対するアクセスが集中する可能性がある。
【００１０】
そして、キャッシュヒット率が高くなり、高負荷となった２次キャッシュメモリ１３ｂには、Ｉ／Ｏが溜まり、キャッシュヒット時の性能低下（レスポンス遅延）が発生するという課題がある。
１つの側面では、本発明は、データアクセス処理時間を減少させることを目的とする。
【課題を解決するための手段】
【００１１】
このため、このストレージ制御装置は、第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置であって、前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測する第１時間予測部と、前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測する第２時間予測部と、前記第１時間予測部が予測した前記第１予測時間と、前記第２時間予測部が予測した前記第２予測時間とを比較する比較部と、前記比較部による比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す読み出し処理部と、を備える。
【発明の効果】
【００１２】
開示のストレージ制御装置によれば、データアクセス処理時間を減少させることができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムにおけるＨＤＤ基礎性能テーブルを例示する図である。
【図３】実施形態の一例としてのストレージシステムにおけるＳＳＤ基礎性能テーブルを例示する図である。
【図４】実施形態の一例としてのストレージシステムにおけるデータリード対象装置の選択処理を説明するフローチャートである。
【図５】実施形態の一例としてのストレージシステムにおけるＨＤＤ基礎性能テーブルの作成処理を説明するフローチャートである。
【図６】実施形態の一例としてのストレージシステムにおけるＨＤＤ負荷値の監視処理を説明するフローチャートである。
【図７】実施形態の一例としてのストレージシステムにおけるデータリード対象装置の選択処理の詳細を説明するフローチャートである。
【図８】実施形態の第１変形例としてのストレージシステムにおけるＳＳＤレスポンス時間テーブルを例示する図である。
【図９】実施形態の第２変形例としてのストレージシステムの機能構成を模式的に示す図である。
【図１０】実施形態の第２変形例としてのストレージシステムにおけるデータリード対象装置の選択処理の詳細を説明するフローチャートである。
【図１１】従来例としてのストレージシステムにおけるデータ読み込み処理を説明する図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照してストレージ制御装置，制御プログラム及び制御方法に係る一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１５】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
〔Ａ〕実施形態の一例
〔Ａ−１〕システム構成
図１は、実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
【００１６】
図１に示すストレージシステム１００は、ホスト装置２に対して記憶領域を提供するものであり、ストレージ装置１及びホスト装置２を備える。
ホスト装置２は、例えばサーバ機能を備えたコンピュータ（情報処理装置）である。図１に示す例においてはストレージシステム１００が１つのホスト装置２を備えることとしているが、ストレージシステム１００が備えるホスト装置２の数は種々変更することができる。
【００１７】
ストレージ装置１は、コントローラ（ストレージ制御装置）１０及び１つ以上（図１に示す例では３つ）のＨＤＤ（第１記憶装置）２０を備える。ストレージ装置１は、ＨＤＤ２０を用いてホスト装置２に対して記憶領域を提供する装置であり、例えばRedundant Arrays of Inexpensive Disks（ＲＡＩＤ）を用いて複数のＨＤＤ２０にデータを分散し、冗長化した状態で保存する。
【００１８】
ＨＤＤ２０は、データを読み書き可能に格納する磁気記録媒体であり、補助記憶装置（外部記憶装置）として利用される。これらのＨＤＤ２０は、互いに同様の機能構成を備える。
コントローラ１０は、種々の制御を行なう制御装置であり、ホスト装置２からのストレージアクセス要求（アクセス制御信号：以下、ホストＩ／Ｏという）に従って、各種制御を行なう。コントローラ１０は、ＣＰＵ（コンピュータ）１１，メインメモリ（揮発性メモリ）１２，ＳＳＤ（第２記憶装置）１３，ホスト接続用Ｉ／Ｏコントローラ１４及びＨＤＤ接続用Ｉ／Ｏコントローラ１５を備える。
【００１９】
ホスト接続用Ｉ／Ｏコントローラ１４は、コントローラ１０とホスト装置２とを通信可能に接続するインタフェースコントローラである。ホスト接続用Ｉ／Ｏコントローラ１４とホスト装置２とは、例えばLocal Area Network（ＬＡＮ）ケーブルで接続される。
ＨＤＤ接続用Ｉ／Ｏコントローラ１５は、コントローラ１０とＨＤＤ２０とを通信可能に接続するインタフェースコントローラであり、例えばFiber Channel（ＦＣ）アダプタである。コントローラ１０は、ＨＤＤ接続用Ｉ／Ｏコントローラ１５を介して、ＨＤＤ２０に対するデータの書き込みや読み出しを行なう。なお、図１に示す例においては、コントローラ１５が１つのＨＤＤ接続用Ｉ／Ｏコントローラ１５を備えることとしているが、これに限定されるものではなく、コントローラ１０は２つ以上のＨＤＤ接続用Ｉ／Ｏコントローラ１５を備えても良い。
【００２０】
メインメモリ１２は、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記憶装置である。メインメモリ１２のＲＯＭには、Basic Input/Output System（ＢＩＯＳ）等のプログラムが書き込まれている。メインメモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メインメモリ１２のＲＡＭは、１キャッシュメモリ（１次記録メモリ）あるいはワーキングメモリとして利用される。
【００２１】
以下、メインメモリ１２という場合には、ＲＡＭを指すものとする。
ＳＳＤ１３は、データを読み書き可能に格納する半導体記録媒体であり、２次キャッシュメモリとして利用される。ＳＳＤ１３は、例えばPeripheral Component Interconnect Express（ＰＣＩｅ）を介してＣＰＵ１１に接続される。図１に示す例においては、ストレージ制御装置１０が１つのＳＳＤ１３を備えることとしているが、これに限定されるものではなく、ストレージ制御装置１０は複数のＳＳＤ１３を備えても良い。
【００２２】
本実施形態の一例において、メインメモリ１２はＳＳＤ１３より高いデータアクセス性能（基本性能）を有し、ＳＳＤ１３はＨＤＤ２０より高いデータアクセス性能を有する。つまり、ホスト装置２から同数のコマンドがメインメモリ１２，ＳＳＤ１３及びＨＤＤ２０に同一条件下（例えば工場出荷時の品質を保持している状態）において発行された場合には、データアクセス速度は、メインメモリ１２が最も高く、ＨＤＤ２０が最も低い。
【００２３】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メインメモリ１２に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１１は、図１に示すように、第１性能情報作成部１１１，第２性能情報作成部１１２，第１負荷値取得部１１３，第２負荷値取得部１１４，第１時間予測部１１５，第２時間予測部１１６，比較部１１７及び読み出し処理部１１８として機能する。
【００２４】
なお、これらの第１性能情報作成部１１１，第２性能情報作成部１１２，第１負荷値取得部１１３，第２負荷値取得部１１４，第１時間予測部１１５，第２時間予測部１１６，比較部１１７及び読み出し処理部１１８としての機能を実現するためのプログラム（制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００２５】
第１性能情報作成部１１１，第２性能情報作成部１１２，第１負荷値取得部１１３，第２負荷値取得部１１４，第１時間予測部１１５，第２時間予測部１１６，比較部１１７及び読み出し処理部１１８としての機能を実現する際には、内部記憶装置（本実施形態ではメインメモリ１２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【００２６】
図２は、実施形態の一例としてのストレージシステムにおけるＨＤＤ基礎性能テーブルを例示する図である。
第１性能情報作成部１１１は、ＨＤＤ２０に対して重複して発行されるコマンド数毎のＨＤＤ２０からのデータの読み出し処理時間を示すＨＤＤ基礎性能テーブル（第１性能情報）を作成する。具体的には、第１性能情報作成部１１１は、例えばストレージ装置１の起動時に、ＨＤＤ２０に対してコマンドを発行し、コマンド発行からレスポンス受領までに要したレスポンス時間を測定することにより、ＨＤＤ基礎性能テーブルを作成する。また、第１性能情報作成部１１１は、重複して発行するコマンドの数（コマンド起動数）を変化させながら、複数のレスポンス時間を測定する。第１性能情報作成部１１１は、作成したＨＤＤ基礎性能テーブルに関する情報を例えばメインメモリ１２に格納する。
【００２７】
図２に示すように、ＨＤＤ基礎性能テーブルにおいては、コマンド起動数に対してそれぞれレスポンス時間が対応付けられている。つまり、ＨＤＤ基礎性能テーブルは、ＨＤＤ２０に対するコマンド起動数とレスポンス時間との関係を示す。
図２に示す例においては、コマンド起動数が1の場合のレスポンス時間は4500μｓ（マイクロ秒）であり、コマンド起動数が2の場合のレスポンス時間は8000μｓであり、コマンド起動数が3の場合のレスポンス時間は11500μｓである。また、コマンド起動数が9の場合のレスポンス時間は20000μｓであり、コマンド起動数が10の場合のレスポンス時間は22000μｓである。
【００２８】
つまり、図２に示す例において、第１性能情報作成部１１１は、ＨＤＤ２０に対するコマンド起動数が1〜10の各場合のレスポンス時間をそれぞれ測定する。なお、第１性能情報作成部１１１が測定するレスポンス時間の数は、例えばＨＤＤ２０のデータアクセス性能（基本性能）に基づき、種々変更することができる。
図３は、実施形態の一例としてのストレージシステムにおけるＳＳＤ基礎性能テーブルを例示する図である。
【００２９】
第２性能情報作成部１１２は、ＳＳＤ１３に対して重複して発行されるコマンド数毎のＳＳＤ１３からのデータの読み出し処理時間を示すＳＳＤ基礎性能テーブル（第２性能情報）を作成する。具体的には、第２性能情報作成部１１２は、例えばストレージ装置１の起動時に、ＳＳＤ１３に対してコマンドを発行し、コマンド発行からレスポンス受領までに要したレスポンス時間を測定することにより、ＳＳＤ基礎性能テーブルを作成する。また、第２性能情報作成部１１２は、重複して発行するコマンドの数（コマンド起動数）を変化させながら、複数のレスポンス時間を測定する。第２性能情報作成部１１２は、作成したＳＳＤ基礎性能テーブルに関する情報を例えばメインメモリ１２に格納する。
【００３０】
図３に示すように、ＳＳＤ基礎性能テーブルにおいては、コマンド起動数に対してそれぞれレスポンス時間が対応付けられている。つまり、ＳＳＤ基礎性能テーブルは、ＳＳＤ１３に対するコマンド起動数とレスポンス時間との関係を示す。
図３に示す例においては、コマンド起動数が1の場合のレスポンス時間は150μｓであり、コマンド起動数が2の場合のレスポンス時間は280μｓであり、コマンド起動数が3の場合のレスポンス時間は400μｓである。また、コマンド起動数が255の場合のレスポンス時間は35200μｓであり、コマンド起動数が256の場合のレスポンス時間は35300μｓである。
【００３１】
つまり、図３に示す例において、第２性能情報作成部１１２は、ＳＳＤ１３に対するコマンド起動数が1〜256の各場合のレスポンス時間をそれぞれ測定する。なお、第２性能情報作成部１１２がレスポンス時間を測定するコマンド起動数の数は、例えばＳＳＤ１３のデータアクセス性能（基本性能）に基づき、種々変更することができる。ＳＳＤ１３に一度に発行できるコマンドの最大数は、キューデプス仕様により、ベンダによって予め定められている。第２性能情報作成部１１２がレスポンス時間を測定するコマンド起動数の数は、キューデプス仕様に基づいて定めることができる。
【００３２】
第１負荷値取得部１１３は、ＨＤＤ２０に対して発行され処理が未完了の（図示しないコマンドキューに登録されている）コマンド数をＨＤＤ負荷値（第１負荷値）として取得する。具体的には、第１負荷値取得部１１３は、ストレージシステム１００の運用中において、ホスト装置２がＨＤＤ２０に対してコマンド（Ｉ／Ｏ）を起動する毎にＨＤＤ負荷値を“1”インクリメントし、コマンドに対する処理が完了した際にＨＤＤ負荷値を“1”デクリメントする。これにより、第１負荷値取得部１１３は、ＨＤＤ２０に対する起動コマンド数を監視する。
【００３３】
第２負荷値取得部１１４は、ＳＳＤ１３に対して発行され処理が未完了の（図示しないコマンドキューに登録されている）コマンド数をＳＳＤ負荷値（第２負荷値）として取得する。具体的には、第２負荷値取得部１１４は、ストレージシステム１００の運用中において、ホスト装置２がＳＳＤ１３に対してコマンド（Ｉ／Ｏ）を起動する毎にＳＳＤ負荷値を“1”インクリメントし、コマンドに対する処理が完了した際にＳＳＤ負荷値を“1”デクリメントする。これにより、第２負荷値取得部１１４は、ＳＳＤ１３に対する起動コマンド数を監視する。
【００３４】
第１時間予測部１１５は、ＨＤＤ２０からのデータの読み出し処理時間をＨＤＤ読み出し予測時間（第１予測時間）として予測する。具体的には、第１時間予測部１１５は、第１性能情報作成部１１１が作成したＨＤＤ基礎性能テーブルと、第１負荷値取得部１１３が取得したＨＤＤ負荷値とに基づき、ＨＤＤ読み出し予測時間を予測する。第１時間予測部１１５は、第１性能情報作成部１１１によって作成されて例えばメインメモリ１２に格納されたＨＤＤ基礎性能テーブルに関する情報をＣＰＵ１１の内部メモリ（不図示）に展開することにより、ＨＤＤ基礎性能テーブルを利用する。
【００３５】
例えば、図２に示した例において、第１負荷値取得部１１３によって取得されたＨＤＤ負荷値が1である場合に、第１時間予測部１１５は、ＨＤＤ基礎性能テーブルを参照して、ＨＤＤ負荷値と同数のコマンド起動数に対応するレスポンス時間をＨＤＤ読み出し予測時間とする。そして、第１時間予測部１１５は、ＨＤＤ２０に対して発行されている１個のコマンドの処理が完了するまでに4500μｓかかると予測する。また、第１負荷値取得部１１３によって取得されたＨＤＤ負荷値が9である場合に、第１時間予測部１１５は、ＨＤＤ基礎性能テーブルに基づき、ＨＤＤ読み出し予測時間として20000μｓを予測する。
【００３６】
第２時間予測部１１６は、ＳＳＤ１３からのデータの読み出し処理時間をＳＳＤ読み出し予測時間（第２予測時間）として予測する。なお、第２時間予測部１１６は、第１時間予測部１１５と同様の手法でＳＳＤ読み出し予測時間を予測する。具体的には、第２時間予測部１１６は、第２性能情報作成部１１２が作成したＳＳＤ基礎性能テーブルと、第２負荷値取得部が取得したＳＳＤ負荷値とに基づき、ＳＳＤ読み出し予測時間を予測する。第２時間予測部１１６は、第２性能情報作成部１１２によって作成されて例えばメインメモリ１２に格納されたＳＳＤ基礎性能テーブルに関する情報をＣＰＵ１１の内部メモリ（不図示）に展開することにより、ＳＳＤ基礎性能テーブルを利用する。
【００３７】
例えば、図３に示した例において、第２負荷値取得部１１４によって取得されたＳＳＤ負荷値が1である場合に、第１時間予測部１１５は、ＳＳＤ基礎性能テーブルに基づき、ＳＳＤ読み出し予測時間として150μｓを予測する。また、第２負荷値取得部１１４によって取得されたＳＳＤ負荷値が255である場合に、第２時間予測部１１６は、ＳＳＤ基礎性能テーブルに基づき、ＳＳＤ読み出し予測時間として35200μｓを予測する。
【００３８】
比較部１１７は、第１時間予測部１１５が予測したＨＤＤ読み出し予測時間と、第２時間予測部１１６が予測したＳＳＤ読み出し予測時間とを比較する。言い換えれば、比較部１１７は、ホスト装置２からのデータの読み出し要求が発生した際におけるＨＤＤ２０の処理性能とＳＳＤ１３の処理性能とを比較する。
読み出し処理部１１８は、比較部１１７による比較の結果、ＨＤＤ読み出し予測時間がＳＳＤ読み出し予測時間以上であり、ホスト装置２から読み出し要求が発生したデータがＳＳＤ１３にキャッシュされている場合には、データをＳＳＤ１３から読み出す。
【００３９】
一方、読み出し処理部１１８は、比較部１１７による比較の結果、ＨＤＤ読み出し予測時間がＳＳＤ読み出し予測時間未満である場合には、データがＳＳＤ１３にキャッシュされている場合であっても、ホスト装置２から読み出し要求が発生したデータをＨＤＤ２０から読み出す。言い換えれば、２次キャッシュヒット率が高くＳＳＤ１３の負荷が高い一方で、ＨＤＤ２０の負荷が低く、ＳＳＤ１３とＨＤＤ２０との実性能の逆転が発生していることを判断した場合に、読み出し処理部１１８は、キャッシュヒット動作ではなくキャッシュミス動作を行なう。ここで、実性能とは、ホスト装置２からストレージ装置１に対してデータアクセス要求が発生した時点におけるＳＳＤ１３又はＨＤＤ２０のデータアクセス性能である。
【００４０】
例えば、図２及び図３に示した例において、ＨＤＤ２０及びＳＳＤ１３に対するコマンド起動数がともに1である場合には、ＨＤＤ読み出し予測時間（4500μｓ）は、ＳＳＤ読み出し予測時間（150μｓ）以上である。そこで、読み出し処理部１１８は、ホスト装置２から読み出し要求が発生したデータをＳＳＤ１３から読み出す。
一方、図２及び図３に示した例において、ＨＤＤ２０に対するコマンド起動数が3であり、ＳＳＤ１３に対するコマンド起動数が255である場合には、ＨＤＤ読み出し予測時間（11500μｓ）は、ＳＳＤ読み出し予測時間（35200μｓ）未満である。このような場合に、ＳＳＤ１３とＨＤＤ２０との実性能の逆転が発生していると考えられる。そこで、読み出し処理部１１８は、ＳＳＤ１３にデータがキャッシュされていても、ホスト装置２から読み出し要求が発生したデータをＨＤＤ２０から読み出す。
【００４１】
〔Ａ−２〕動作
上述の如く構成された実施形態の一例としてのストレージシステムにおけるデータリード対象装置の選択処理を、図４に示すフローチャート（ステップＳ１〜Ｓ８）に従って説明する。
ホスト装置２からストレージ装置１に格納されたデータのリード要求が発生すると、読み出し処理部１１８は、リード対象のデータがメインメモリ１２に存在するか、つまり１次キャッシュヒットするかを判定する（ステップＳ１）。
【００４２】
１次キャッシュヒットした場合には（ステップＳ１のＹｅｓルート参照）、読み出し処理部１１８は、リード対象のデータをメインメモリ１２から読み出し（ステップＳ２）、処理が終了する。
一方、１次キャッシュヒットしなかった場合には（ステップＳ１のＮｏルート参照）、読み出し処理部１１８は、リード対象のデータがＳＳＤ１３に存在するか、つまり２次キャッシュヒットするかを判定する（ステップＳ３）。
【００４３】
２次キャッシュヒットしなかった場合には（ステップＳ３のＮｏルート参照）、読み出し処理部１１８は、リード対象のデータをＨＤＤ２０から読み出し（ステップＳ４）、処理が終了する。
一方、２次キャッシュヒットした場合には（ステップＳ３のＹｅｓルート参照）、読み出し処理部１１８は、ストレージ装置１が備える複数のＳＳＤ１３の中から、リード対象のデータが存在するＳＳＤ１３をアクセス候補のＳＳＤ１３として特定する（ステップＳ５）。
【００４４】
また、読み出し処理部１１８は、ストレージ装置１が備える複数のＨＤＤ２０の中から、リード対象のデータが存在するＨＤＤ２０をアクセス候補のＨＤＤ２０として特定する（ステップＳ６）。
比較部１１７は、ステップＳ５で特定されたＳＳＤ１３の実性能と、ステップＳ６で特定されたＨＤＤ２０の実性能とを比較する（ステップＳ７）。ステップＳ７の処理の詳細は、図７（ステップＳ３１〜Ｓ３３）を用いて後述する。
【００４５】
ステップＳ５で特定されたＳＳＤ１３の性能がステップＳ６で特定されたＨＤＤ２０の性能以下である場合には（ステップＳ７のＹｅｓルート参照）、読み出し処理部１１８は、リード対象のデータをＨＤＤ２０から読み出し（ステップＳ４）、処理が終了する。
一方、ステップＳ５で特定されたＳＳＤ１３の性能がステップＳ６で特定されたＨＤＤ２０の性能より高い場合には（ステップＳ７のＮｏルート参照）、読み出し処理部１１８は、リード対象のデータをＳＳＤ１３から読み出し（ステップＳ８）、処理が終了する。
【００４６】
次に、実施形態の一例としてのストレージシステムにおけるＨＤＤ基礎性能テーブルの作成処理を、図５に示すフローチャート（ステップＳ１１〜Ｓ１７）に従って説明する。
ストレージ装置１の電源が投入されると、第１性能情報作成部１１１は、コマンド数Ｎに“0”を設定する（ステップＳ１１）。
第１性能情報作成部１１１は、コマンド数Ｎを“1”インクリメントする（ステップＳ１２）。
【００４７】
第１性能情報作成部１１１は、Ｎ個のコマンドをＨＤＤ２０に対して発行する（ステップＳ１３）。
第１性能情報作成部１１１は、発行したＮ個のコマンドに対するレスポンス時間の測定を開始する（ステップＳ１４）。
第１性能情報作成部１１１は、発行したＮ個のコマンドに対するレスポンスを受領し、すべてのコマンドに対する処理が完了したかを判定する（ステップＳ１５）。
【００４８】
すべてのコマンドに対する処理が完了していない場合には（ステップＳ１５のＮｏルート参照）、第１性能情報作成部１１１は、ステップＳ１５の処理を繰り返し行なう。
一方、すべてのコマンドに対する処理が完了した場合には（ステップＳ１５のＹｅｓルート参照）、第１性能情報作成部１１１は、発行したＮ個のコマンドに対するレスポンス時間をＨＤＤ基礎性能テーブルに格納する（ステップＳ１６）。
【００４９】
第１性能情報作成部１１１は、必要なコマンド起動数についてのレスポンス時間を測定し、ＨＤＤ基礎性能テーブルの作成が完了したかを判定する（ステップＳ１７）。
ＨＤＤ基礎性能テーブルの作成が完了していない場合には（ステップＳ１７のＮｏルート参照）、処理はステップＳ１２に戻る。
一方、ＨＤＤ基礎性能テーブルの作成が完了した場合には（ステップＳ１７のＹｅｓルート参照）、処理は終了する。
【００５０】
また、第２性能情報作成部１１２は、第１性能情報作成部１１１によるＨＤＤ基礎性能テーブルの作成と同様に、ＳＳＤ１３についてステップＳ１１〜Ｓ１７の処理を実行することにより、ＳＳＤ基礎性能テーブルを作成する。ただし、ステップＳ１３において、第２性能情報作成部１１２は、Ｎ個のコマンドをＳＳＤ１３に対して発行する。
次に、実施形態の一例としてのストレージシステムにおけるＨＤＤ負荷値の監視処理を、図６に示すフローチャート（ステップＳ２１〜Ｓ２４）に従って説明する。
【００５１】
ホスト装置２からＨＤＤ２０に対するコマンド要求が発生すると、第１負荷値取得部１１３は、起動コマンド数（ＨＤＤ負荷値）を“1”インクリメントする（ステップＳ２１）。
ＣＰＵ１１は、ＨＤＤ２０に対するコマンドを起動する（ステップＳ２２）。
第１負荷値取得部１１３は、ＨＤＤ２０に対して起動されたコマンドに対する処理が完了したかを判定する（ステップＳ２３）。
【００５２】
コマンドに対する処理が完了していない場合には（ステップＳ２３のＮｏルート参照）、第１負荷値取得部１１３は、ステップＳ２３の処理を繰り返し行なう。
一方、コマンドに対する処理が完了した場合には（ステップＳ２３のＹｅｓルート参照）、第１負荷値取得部１１３は、起動コマンド数（ＨＤＤ負荷値）を“1”デクリメントして（ステップＳ２４）、処理は終了する。
【００５３】
また、第２負荷値取得部１１４は、第１負荷値取得部１１１によるＨＤＤ負荷値の監視処理と同様に、ステップＳ２１〜Ｓ２４の処理を実行することにより、ＳＳＤ負荷値を監視する。
次に、実施形態の一例としてのストレージシステムにおけるデータリード対象装置の選択処理の詳細を、図７に示すフローチャート（ステップＳ３１〜Ｓ３３）に従って説明する。
【００５４】
図７のステップＳ３１〜Ｓ３３の処理は、図４のステップＳ７の処理の詳細である。
２次キャッシュ要求が発生し、アクセス候補のＳＳＤ１３及びＨＤＤ２０が特定されると（図４のステップＳ５及びＳ６）、第１時間予測部１１５は、ＨＤＤ読み出し予測時間Ｔ１を予測する（ステップＳ３１）。具体的には、第１時間予測部１１５は、第１性能情報作成部１１１によって作成されたＨＤＤ基礎性能テーブルと、第１負荷値取得部１１３によって取得されたＨＤＤ負荷値とに基づき、ＨＤＤ読み出し予測時間Ｔ１を予測する。
【００５５】
第２時間予測部１１６は、ＳＳＤ読み出し予測時間Ｔ２を予測する（ステップＳ３２）。具体的には、第２時間予測部１１６は、第２性能情報作成部１１２によって作成されたＳＳＤ基礎性能テーブルと、第２負荷値取得部１１４によって取得されたＳＳＤ負荷値とに基づき、ＳＳＤ読み出し予測時間Ｔ２を予測する。
比較部１１７は、ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１以下であるかを判定する（ステップＳ３３）。
【００５６】
ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１以下である場合には（ステップＳ３３のＹｅｓルート参照）、処理は図４のステップＳ８へ移行する。つまり、読み出し処理部１１８は、リード対象のデータをＳＳＤ１３から読み出す。
一方、ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１より大きい場合には（ステップＳ３３のＮｏルート参照）、処理は図４のステップＳ４へ移行する。つまり、読み出し処理部１１８は、リード対象のデータをＨＤＤ２０から読み出す。
【００５７】
〔Ａ−３〕効果
このように、上述した実施形態の一例におけるコントローラ（ストレージ制御装置）１０によれば、例えば以下の作用効果を奏することができる。
比較部１１７は、第１時間予測部１１５が予測したＨＤＤ読み出し予測時間と、第２時間予測部１１６が予測したＳＳＤ読み出し予測時間とを比較する。そして、読み出し処理部１１８は、比較部１１７による比較の結果、ＨＤＤ読み出し予測時間がＳＳＤ読み出し予測時間以上である場合はデータをＳＳＤ１３から読み出し、ＨＤＤ読み出し予測時間がＳＳＤ読み出し予測時間未満である場合はデータをＨＤＤ２０から読み出す。
【００５８】
これにより、アクセスの速い記憶装置を選択してリードを行なうことができる。例えば、ＨＤＤ２０よりもＳＳＤ１３のアクセス負荷が高い場合には、リード対象のデータがＳＳＤ１３にキャッシュされていても、ＨＤＤ２０を選択してリードを行なうことができ、データアクセス処理時間を減少させることができる。つまり、ＳＳＤ１３とＨＤＤ２０との実性能が逆転した状態でも、データアクセス処理時間の短い記憶装置を選択することができる。
【００５９】
第１時間予測部１１５は、第１性能情報作成部１１１が作成したＨＤＤ基礎性能テーブルと、第１負荷値取得部１１３が取得したＨＤＤ負荷値とに基づき、ＨＤＤ読み出し予測時間を予測する。また、第２時間予測部１１６は、第２性能情報作成部１１２が作成したＳＳＤ基礎性能テーブルと、第２負荷値取得部１１４が取得したＳＳＤ負荷値とに基づき、ＳＳＤ読み出し予測時間を予測する。
【００６０】
これにより、キャッシュミスが少なく、ＳＳＤ１３の負荷が高い場合に、ＳＳＤ１３よりも負荷の小さいＨＤＤ２０からデータを読み出すことができる。
〔Ｂ〕第１変形例
上述した実施形態の一例において、ＳＳＤ１３は、２次キャッシュメモリとして使用される。
【００６１】
半導体記録媒体であるＳＳＤ１３には、総書き込み量が増加すると、性能が徐々に低下していくという特性がある。この特性により、ＳＳＤ１３の工場出荷時における基礎性能とＳＳＤ１３の使用中における実性能とに差異が生じる可能性がある。
そして、ＳＳＤ１３の性能低下により、読み出し処理部１１８が比較部１１７による比較の結果に基づいてデータをＳＳＤ１３から読み出した場合においても、データをＨＤＤ２０から読み出した方が実際の処理時間が短くなるおそれがある。
【００６２】
そこで、本実施形態の第１変形例においては、第２性能情報作成部１１２が作成したＳＳＤ基礎性能テーブルの更新を行なう。
第２性能情報作成部１１２は、読み出し処理部１１８がＳＳＤ１３からのデータの読み出しに要した処理時間を用いて、ＳＳＤ基礎性能テーブルを更新する。
具体的には、第２性能情報作成部１１２は、ストレージシステム１００の運用中において、ＳＳＤ１３に対してコマンドを発行してからこのコマンドに対する処理が完了するまでに要したレスポンス時間を測定し、測定したレスポンス時間を用いてＳＳＤ基礎性能テーブルを更新する。
【００６３】
これにより、総書き込み量の増加や経年劣化等によりＳＳＤ１３のデータアクセス性能が低下した場合においても、比較部１１７は、補正されたＳＳＤ基礎性能テーブルに基づいてＨＤＤ読み出し予測時間とＳＳＤ読み出し予測時間との比較を行なう。そして、読み出し処理部１１８は、比較部１１７による比較の結果に基づき、適切なＳＳＤ１３からデータの読み出しをすることができる。
【００６４】
図８は、実施形態の第１変形例としてのストレージシステムにおけるＳＳＤレスポンス時間テーブルを例示する図である。
第２性能情報作成部１１２は、読み出し処理部１１８がＳＳＤ１３からのデータの読み出しに要した複数の処理時間の平均値をＳＳＤ１３に対して重複して発行されたコマンド数毎に算出することによって、ＳＳＤ基礎性能テーブルを更新しても良い。
【００６５】
以下、「重複」というときは、重複度が１の場合も含むものとする。
つまり、第２性能情報取得部１１２は、読み出し処理部１１８がＳＳＤ１３からデータを読み出す度に、データの読み出しに要した時間を図８に示すＳＳＤレスポンス時間テーブルに記録する。また、第２性能情報作成部１１２は、ＳＳＤレスポンス時間テーブルへの時間の記録を、ＳＳＤ１３に対するコマンド起動数毎に行なう。
【００６６】
第２性能情報作成部１１２は、ＳＳＤレスポンス時間テーブルに関する情報を例えばメインメモリ１２に格納する。また、第２性能情報作成部１１２は、メインメモリ１２に格納したＳＳＤレスポンス時間テーブルに関する情報をＣＰＵ１１の内部メモリ（不図示）に展開することによって、ＳＳＤレスポンス時間テーブルを使用する。
図８に示す例において、読み出し処理部１１８は、ＳＳＤ１３から、コマンド起動数が1の際の読み出し処理を１０回行ない、コマンド起動数が2の際の読み出し処理を２回行ない、コマンド起動数が3の際の読み出し処理を１回行なっている。また、読み出し処理部１１８は、ＳＳＤ１３から、コマンド起動数が255の際の読み出し処理を１回行ない、コマンド起動数が256の際の読み出し処理を９回行なっている。
【００６７】
第２性能情報作成部１１２は、コマンド起動数が1の際の読み出し処理部１１８によるＳＳＤ１３からのデータの読み出しに要した時間をコマンド（１）〜（１０）としてＳＳＤレスポンス時間テーブルに記録する。また、第２性能情報作成部１１２は、コマンド起動数が2の際の読み出し処理部１１８によるＳＳＤ１３からのデータの読み出しに要した時間をコマンド（１）〜（２）としてＳＳＤレスポンス時間テーブルに記録する。更に、第２性能情報作成部１１２は、コマンド起動数が3の際の読み出し処理部１１８によるデータの読み出しに要した時間をコマンド（１）としてＳＳＤレスポンス時間テーブルに記録する。また、第２性能情報作成部１１２は、コマンド起動数が255の際の読み出し処理部１１８によるデータの読み出しに要した時間をコマンド（１）としてＳＳＤレスポンス時間テーブルに記録する。更に、第２性能情報作成部１１２は、コマンド起動数が256の際の読み出し処理部１１８によるデータの読み出しに要した時間をコマンド（１）〜（９）としてＳＳＤレスポンス時間テーブルに記録する。
【００６８】
第２性能情報作成部１１２は、ＳＳＤレスポンス時間テーブルにおいて１つのコマンド起動数について記録した時間が所定の数（例えば１０個）に達した場合に、記録した複数の時間の平均値を算出する。そして、第２性能情報作成部１１２は、算出した平均値を用いて、ＳＳＤ基礎性能テーブルの対応するコマンド起動数のレスポンス時間を更新し、ＳＳＤレスポンス時間テーブルに記録した対応するコマンド起動数についての時間を削除する。
【００６９】
図８に示す例において、第２性能情報作成部１１２は、記録した時間が１０個に達したコマンド起動数1についてのコマンド（１）〜（１０）の時間の平均値154μｓを算出する。そして、第２性能情報作成部１１２は、図３に示したＳＳＤ基礎性能テーブルのコマンド起動数1についてのレスポンス時間を150μｓから154μｓに更新する。また、第２性能情報作成部１１２は、ＳＳＤレスポンス時間テーブルに記録したコマンド起動数1についてのコマンド（１）〜（１０）の時間を削除する。
【００７０】
このように、上述した実施形態の第１変形例におけるコントローラ（ストレージ制御装置）１０によれば、総書き込み量の増加や経年劣化等によりＳＳＤ１３のデータアクセス性能が低下した場合において、データの読み出しに用いる記憶装置の選択をより正確に行なうことができる。
〔Ｃ〕第２変形例
上述した実施形態の一例においては、ＨＤＤ２０は、補助記憶装置として使用される。
【００７１】
ＨＤＤ２０が故障状態に陥る直前においては、ＨＤＤ２０の動作は不安定な状態になり、ＨＤＤ２０に対するデータアクセスのレスポンス時間が正確に予測できない場合がある。このようなＨＤＤ２０が故障状態に陥る直前において、読み出し処理部１１８が比較部１１７による比較の結果に基づいてデータをＨＤＤ２０から読み出した場合においても、データをＳＳＤ１３から読み出した方が実際の処理時間が短くなるおそれがある。
【００７２】
図９は、実施形態の第２変形例としてのストレージシステムの機能構成を模式的に示す図である。
本実施形態の第２変形例におけるストレージシステム１００ａにおいては、コントローラ１０は、上述した実施形態の一例におけるＣＰＵ１１の代わりに、ＣＰＵ１１ａを備える。
【００７３】
ＣＰＵ１１ａは、図１に示した実施形態の一例におけるＣＰＵ１１と同様に第１性能情報作成部１１１，第２性能情報作成部１１２，第１負荷値取得部１１３，第２負荷値取得部１１４，第１時間予測部１１５，第２時間予測部１１６，比較部１１７及び読み出し処理部１１８としての機能に加え、更に故障検知部１１９としての機能を有する。
故障検知部１１９は、ＨＤＤ２０における故障の前兆を検知する。具体的には、故障検知部１１９は、ＨＤＤ２０が完全な故障状態に陥る前に、コレクタブルエラーや媒体エラー等の故障の前兆を検知する。なお、故障検知部１１９による故障の前兆の検知には、ＨＤＤ２０のSelf-Monitoring, Analysis and Reporting Technology（ＳＭＡＲＴ）情報やＤＩＳＫエラーの統計的手法の利用等の既存の技術を用いることができる。
【００７４】
読み出し処理部１１８は、故障検知部１１９がＨＤＤ２０の故障の前兆を検知した場合に、比較部による比較の結果に関わらず、データをＳＳＤ１３から読み出す。
上述の如く構成された実施形態の第２変形例としてのストレージシステムにおけるデータリード対象装置の選択処理の詳細を、図１０に示すフローチャート（ステップＳ３１〜Ｓ３３及びＳ４１）に従って説明する。
【００７５】
なお、図１０のステップＳ３１〜Ｓ３３で示す処理は図７のステップＳ３１〜Ｓ３３で示した処理と同様であるため、その詳細な説明は省略する場合がある。
２次キャッシュ要求が発生すると、第１時間予測部１１５は、ＨＤＤ読み出し予測時間時間Ｔ１を予測する（ステップＳ３１）。
第２時間予測部１１６は、ＳＳＤ読み出し予測時間Ｔ２を予測する（ステップＳ３２）。
【００７６】
故障検知部１１９は、アクセス候補のＨＤＤ２０に故障の前兆があるかを判定する（ステップＳ４１）。
アクセス候補のＨＤＤ２０に故障の前兆がある場合には（ステップＳ４１のＹｅｓルート参照）、処理は図４のステップＳ８へ移行する。つまり、読み出し処理部１１８は、リード対象のデータをＳＳＤ１３から読み出す。
【００７７】
一方、アクセス候補のＨＤＤ２０に故障の前兆がない場合には（ステップＳ４１のＮｏルート参照）、比較部１１７は、ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１以下であるかを判定する（ステップＳ３３）。
ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１以下である場合には（ステップＳ３３のＹｅｓルート参照）、処理は図４のステップＳ８へ移行する。つまり、読み出し処理部１１８は、リード対象のデータをＳＳＤ１３から読み出す。
【００７８】
一方、ＳＳＤ読み出し予測時間Ｔ２がＨＤＤ読み出し予測時間Ｔ１より大きい場合には（ステップＳ３３のＮｏルート参照）、処理は図４のステップＳ４へ移行する。つまり、読み出し処理部１１８は、リード対象のデータをＨＤＤ２０から読み出す。
このように、上述した実施形態の第２変形例におけるコントローラ（ストレージ制御装置）１０によれば、ＨＤＤ２０の故障直前にＨＤＤ２０のデータアクセス性能が低下した場合において、データの読み出しに用いる記憶装置の選択をより正確に行なうことができる。
【００７９】
〔Ｄ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
上述した実施形態の一例においては、第１性能情報作成部１１１及び第２性能情報作成部１１２が例えばストレージ装置１の起動時にＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルをそれぞれ作成することとしたが、これに限定されるものではない。
【００８０】
例えば、ＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルに関する情報をストレージ装置１の工場出荷時に予めＳＳＤ１３等に格納しておいても良い。
この場合においても上述した実施形態の一例と同様の効果を奏することができる他、ストレージ装置１の起動時におけるＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルを作成するための時間をなくすことができる。
【００８１】
また、上述した実施形態の一例においては、第１性能情報作成部１１１及び第２性能情報作成部１１２がコマンド起動数１個おき毎にレスポンス時間を測定することによりＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルをそれぞれ作成することとしたが、これに限定されるものではない。
例えば、第１性能情報作成部１１１及び第２性能情報作成部１１２は、コマンド起動数１０個おきや５０個おき毎にレスポンス時間を測定する。そして、第１性能情報作成部１１１及び第２性能情報作成部１１２は、測定したレスポンス時間に対して補完演算をしてコマンド起動数１個おき毎にレスポンス時間を演算することにより、ＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルをそれぞれ作成しても良い。
【００８２】
この場合においても上述した実施形態の一例と同様の効果を奏することができる他、ＨＤＤ基礎性能テーブル及びＳＳＤ基礎性能テーブルを作成するための時間を短縮することができる。
更に、上述した実施形態の第１変形例においては、第２性能情報作成部１１２は、ＳＳＤレスポンス時間テーブルにおいて１つのコマンド起動数について記録した時間が所定の数（例えば１０個）に達した場合に、記録した複数の時間の平均値を算出することとしたが、これに限定されるものではない。
【００８３】
例えば、第２性能情報作成部１１２は、所定の時間経過毎に、それぞれのコマンド起動数について記録した時間の平均値を算出しても良い。
この場合においても、上述した実施形態の第１変形例と同様の効果を奏することができる。
〔Ｅ〕付記
（付記１）
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置であって、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測する第１時間予測部と、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測する第２時間予測部と、
前記第１時間予測部が予測した前記第１予測時間と、前記第２時間予測部が予測した前記第２予測時間とを比較する比較部と、
前記比較部による比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す読み出し処理部と、
を備えることを特徴とする、ストレージ制御装置。
【００８４】
（付記２）
前記第１記憶装置に対して重複して発行されるコマンド数毎の前記第１記憶装置からのデータの読み出し処理時間を示す第１性能情報を作成する第１性能情報作成部と、
前記第２記憶装置に対して重複して発行されるコマンド数毎の前記第２記憶装置からのデータの読み出し処理時間を示す第２性能情報を作成する第２性能情報作成部と、
前記第１記憶装置に対して発行されているコマンド数を第１負荷値として取得する第１負荷値取得部と、
前記第２記憶装置に対して発行されているコマンド数を第２負荷値として取得する第２負荷値取得部と、
を備え、
前記第１時間予測部は、前記第１性能情報作成部が作成した前記第１性能情報と、前記第１負荷値取得部が取得した前記第１負荷値とに基づき、前記第１予測時間を予測し、
前記第２時間予測部は、前記第２性能情報作成部が作成した前記第２性能情報と、前記第２負荷値取得部が取得した前記第２負荷値とに基づき、前記第２予測時間を予測する、
ことを特徴とする、付記１に記載のストレージ制御装置。
【００８５】
（付記３）
前記第２性能情報作成部は、前記読み出し処理部が前記第２記憶装置からのデータの読み出しに要した処理時間を用いて、前記第２性能情報を更新する、
ことを特徴とする、付記２に記載のストレージ制御装置。
（付記４）
前記第２性能情報取得部は、前記読み出し処理部が前記第２記憶装置からのデータの読み出しに要した複数の処理時間の平均値を前記第２記憶装置に対して重複して発行されたコマンド数毎に算出することによって、前記第２性能情報を更新する、
ことを特徴とする、付記２に記載のストレージ制御装置。
【００８６】
（付記５）
前記第１記憶装置における故障の前兆を検知する故障検知部を備え、
前記読み出し処理部は、前記故障検知部が前記故障の前兆を検知した場合に、前記比較部による前記比較の結果に関わらず、データを前記第２記憶装置から読み出す、
ことを特徴とする、付記１〜４のいずれか１項に記載のストレージ制御装置。
【００８７】
（付記６）
前記第１記憶装置は、磁気記憶装置であり、
前記第２記憶装置は、半導体素子メモリである、
ことを特徴とする、付記１〜５のいずれか１項に記載のストレージ制御装置。
（付記７）
１次キャッシュメモリとして用いられる揮発性メモリを備え、
前記第２記憶装置は、２次キャッシュメモリとして用いられる、
ことを特徴とする、付記１〜６のいずれか１項に記載のストレージ制御装置。
【００８８】
（付記８）
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置に備えられるコンピュータに、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測し、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測し、
前記予測した前記第１予測時間と、前記予測した前記第２予測時間とを比較し、
前記比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す、
処理を実行させることを特徴とする、制御プログラム。
【００８９】
（付記９）
前記第１記憶装置に対して重複して発行されるコマンド数毎の前記第１記憶装置からのデータの読み出し処理時間を示す第１性能情報を作成し、
前記第２記憶装置に対して重複して発行されるコマンド数毎の前記第２記憶装置からのデータの読み出し処理時間を示す第２性能情報を作成し、
前記第１記憶装置に対して発行されているコマンド数を第１負荷値として取得し、
前記第２記憶装置に対して発行されているコマンド数を第２負荷値として取得し、
前記作成した前記第１性能情報と、前記取得した前記第１負荷値とに基づき、前記第１予測時間を予測し、
前記作成した前記第２性能情報と、前記取得した前記第２負荷値とに基づき、前記第２予測時間を予測する、
処理を前記コンピュータに実行させることを特徴とする、付記８に記載の制御プログラム。
【００９０】
（付記１０）
前記第２記憶装置からのデータの読み出しに要した処理時間を用いて、前記第２性能情報を更新する、
処理を前記コンピュータに実行させることを特徴とする、付記９に記載の制御プログラム。
【００９１】
（付記１１）
前記第２記憶装置からのデータの読み出しに要した複数の処理時間の平均値を前記第２記憶装置に対して重複して発行されたコマンド数毎に算出することによって、前記第２性能情報を更新する、
処理を前記コンピュータに実行させることを特徴とする、付記９に記載の制御プログラム。
【００９２】
（付記１２）
前記第１記憶装置における故障の前兆を検知した場合に、前記比較の結果に関わらず、データを前記第２記憶装置から読み出す、
処理を前記コンピュータに実行させることを特徴とする、付記８〜１１のいずれか１項に記載の制御プログラム。
【００９３】
（付記１３）
前記第１記憶装置は、磁気記憶装置であり、
前記第２記憶装置は、半導体素子メモリである、
ことを特徴とする、付記８〜１２のいずれか１項に記載の制御プログラム。
（付記１４）
前記ストレージ制御装置は、１次キャッシュメモリとして用いられる揮発性メモリを備え、
前記第２記憶装置は、２次キャッシュメモリとして用いられる、
ことを特徴とする、付記８〜１３のいずれか１項に記載の制御プログラム。
【００９４】
（付記１５）
第１記憶装置と通信可能に接続され、前記第１記憶装置より高いデータアクセス性能を有する第２記憶装置を備えるストレージ制御装置において、
前記第１記憶装置からのデータの読み出し処理時間を第１予測時間として予測し、
前記第２記憶装置からのデータの読み出し処理時間を第２予測時間として予測し、
前記予測した前記第１予測時間と、前記予測した前記第２予測時間とを比較し、
前記比較の結果、前記第１予測時間が前記第２予測時間以上である場合はデータを前記第２記憶装置から読み出し、前記第１予測時間が前記第２予測時間未満である場合はデータを前記第１記憶装置から読み出す、
ことを特徴とする、制御方法。
【００９５】
（付記１６）
前記第１記憶装置に対して重複して発行されるコマンド数毎の前記第１記憶装置からのデータの読み出し処理時間を示す第１性能情報を作成し、
前記第２記憶装置に対して重複して発行されるコマンド数毎の前記第２記憶装置からのデータの読み出し処理時間を示す第２性能情報を作成し、
前記第１記憶装置に対して発行されているコマンド数を第１負荷値として取得し、
前記第２記憶装置に対して発行されているコマンド数を第２負荷値として取得し、
前記作成した前記第１性能情報と、前記取得した前記第１負荷値とに基づき、前記第１予測時間を予測し、
前記作成した前記第２性能情報と、前記取得した前記第２負荷値とに基づき、前記第２予測時間を予測する、
ことを特徴とする、付記１５に記載の制御方法。
【００９６】
（付記１７）
前記第２記憶装置からのデータの読み出しに要した処理時間を用いて、前記第２性能情報を更新する、
ことを特徴とする、付記１６に記載の制御方法。
（付記１８）
前記第２記憶装置からのデータの読み出しに要した複数の処理時間の平均値を前記第２記憶装置に対して重複して発行されたコマンド数毎に算出することによって、前記第２性能情報を更新する、
ことを特徴とする、付記１６に記載の制御方法。
【００９７】
（付記１９）
前記第１記憶装置における故障の前兆を検知した場合に、前記比較の結果に関わらず、データを前記第２記憶装置から読み出す、
ことを特徴とする、付記１５〜１８のいずれか１項に記載の制御方法。
（付記２０）
前記第１記憶装置は、磁気記憶装置であり、
前記第２記憶装置は、半導体素子メモリである、
ことを特徴とする、付記１５〜１９のいずれか１項に記載の制御方法。
【００９８】
（付記２１）
前記ストレージ制御装置は、１次キャッシュメモリとして用いられる揮発性メモリを備え、
前記第２記憶装置は、２次キャッシュメモリとして用いられる、
ことを特徴とする、付記１５〜２０のいずれか１項に記載の制御方法。
【符号の説明】
【００９９】
１００    ストレージシステム
１００ａ  ストレージシステム
１        ストレージ装置
１０      コントローラ（ストレージ制御装置）
１１      ＣＰＵ（コンピュータ）
１１ａ    ＣＰＵ（コンピュータ）
１１１    第１性能情報作成部
１１２    第２性能情報作成部
１１３    第１負荷値取得部
１１４    第２負荷値取得部
１１５    第１時間予測部
１１６    第２時間予測部
１１７    比較部
１１８    読み出し処理部
１１９    故障検知部
１２      メインメモリ（揮発性メモリ）
１３      ＳＳＤ（第２記憶装置）
１４      ホスト接続用Ｉ／Ｏコントローラ
１５      ＨＤＤ接続用Ｉ／Ｏコントローラ
２０      ＨＤＤ（第１記憶装置）
２        ホスト装置
１００ｂ  ストレージシステム
１ｂ      ストレージ装置
１０ｂ    コントローラ
１２ｂ    ＤＲＡＭメモリ
１３ｂ    ＳＳＤ
２０ｂ    ＨＤＤ
２ｂ      ホスト装置
【図１】
2016126656.tif 000003
【図２】
2016126656.tif 000004
【図３】
2016126656.tif 000005
【図４】
2016126656.tif 000006
【図５】
2016126656.tif 000007
【図６】
2016126656.tif 000008
【図７】
2016126656.tif 000009
【図８】
2016126656.tif 000010
【図９】
2016126656.tif 000011
【図１０】
2016126656.tif 000012
【図１１】
2016126656.tif 000013