(57)【要約】【課題】本発明は、アクセス性能を維持しつつ消費電力を削減し得るストレージ装置を提案する。【解決手段】ホストコンピュータから送信されるデータを格納するための論理デバイスをホストコンピュータに対して提供するストレージ装置であって、データを格納するためのフラッシュメモリと、データを格納するためのディスク状記憶デバイスと、フラッシュメモリ及びディスク状記憶デバイスを制御する制御部とを備え、制御部は、論理デバイスを、フラッシュメモリ及びディスク状記憶デバイスによる冗長構成とするように制御するようにした。【選択図】図６
2008097237.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから送信されるデータを格納するための論理デバイスを前記ホストコンピュータに対して提供するストレージ装置であって、
前記データを格納するための不揮発メモリと、
前記データを格納するためのディスク状記憶デバイスと、
前記不揮発メモリ及び前記ディスク状記憶デバイスを制御する制御部と
を備え、
前記制御部は、
前記論理デバイスを、前記不揮発メモリ及び前記ディスク状記憶デバイスによる冗長構成とするように制御する
ことを特徴とするストレージ装置。
【請求項２】
前記制御部は、
前記不揮発メモリ及び前記ディスク状記憶デバイスそれぞれを冗長構成とするように制御する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記制御部は、
前記論理デバイスに対して送信された前記データを、前記不揮発メモリ及び前記ディスク状記憶デバイスによってミラーリング制御する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記制御部は、
状況に応じて前記不揮発メモリと前記ディスク状記憶デバイスとを切り替えて、前記ホストコンピュータに対するデータの読み出し又は書き込みを行うように制御する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記制御部は、
前記ディスク状記憶デバイスを停止又は起動するように制御する
ことを特徴とする請求項４に記載のストレージ装置。
【請求項６】
前記制御部は、
前記ディスク状記憶デバイスが起動している状態で前記ホストコンピュータからリード要求を受信したとき、リード対象のデータが前記不揮発メモリに格納されている場合に、前記不揮発メモリから前記リード対象のデータを前記ホストコンピュータに読み出す
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
前記制御部は、
前記ディスク状記憶デバイスが起動している状態で前記ホストコンピュータからリード要求を受信したとき、リード対象のデータが前記不揮発メモリに格納されていない場合に、前記リード対象のデータを前記ディスク状記憶デバイスから前記不揮発メモリに書き込み、前記不揮発メモリから前記リード対象のデータを前記ホストコンピュータに読み出す
ことを特徴とする請求項５に記載のストレージ装置。
【請求項８】
前記不揮発メモリは、
フラッシュメモリである
ことを特徴とする請求項１に記載のストレージ装置。
【請求項９】
前記不揮発メモリは、
相変化メモリである
ことを特徴とする請求項１に記載のストレージ装置。
【請求項１０】
ホストコンピュータから送信されるデータを格納するための論理デバイスを前記ホストコンピュータに対して提供するストレージ装置の制御方法であって、
前記論理デバイスを、前記データを格納するための不揮発メモリ及び前記データを格納するためのディスク状記憶デバイスによる冗長構成とするように制御する第１のステップ
を備えることを特徴とする制御方法。
【請求項１１】
前記第１のステップでは、
前記不揮発メモリ及び前記ディスク状記憶デバイスそれぞれを冗長構成とするように制御する
ことを特徴とする請求項１０に記載の制御方法。
【請求項１２】
前記第１のステップでは、
前記論理デバイスに対して送信された前記データを、前記不揮発メモリ及び前記ディスク状記憶デバイスによってミラーリング制御する
ことを特徴とする請求項１０に記載の制御方法。
【請求項１３】
状況に応じて前記不揮発メモリと前記ディスク状記憶デバイスとを切り替えて、前記ホストコンピュータに対するデータの読み出し又は書き込みを行うように制御する第２のステップ
を備えることを特徴とする請求項１２に記載の制御方法。
【請求項１４】
前記第１のステップでは、
前記ディスク状記憶デバイスを停止又は起動するように制御する
ことを特徴とする請求項１３に記載の制御方法。
【請求項１５】
前記第２のステップでは、
前記ディスク状記憶デバイスが起動している状態で前記ホストコンピュータからリード要求を受信したとき、リード対象のデータが前記不揮発メモリに格納されている場合に、前記不揮発メモリから前記リード対象のデータを前記ホストコンピュータに読み出す
ことを特徴とする請求項１３に記載の制御方法。
【請求項１６】
前記第２のステップでは、
前記ディスク状記憶デバイスが起動している状態で前記ホストコンピュータからリード要求を受信したとき、リード対象のデータが前記不揮発メモリに格納されていない場合に、前記リード対象のデータを前記ディスク状記憶デバイスから前記不揮発メモリに書き込み、前記不揮発メモリから前記リード対象のデータを前記ホストコンピュータに読み出す
ことを特徴とする請求項１３に記載の制御方法。
【請求項１７】
前記不揮発メモリは、
フラッシュメモリである
ことを特徴とする請求項１０に記載のストレージ装置。
【請求項１８】
前記不揮発メモリは、
相変化メモリである
ことを特徴とする請求項１０に記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、例えば、データを格納するために１又は複数のハードディスクドライブを駆動制御するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
近年、データセンタなどの情報ビジネスの現場において、データを長期的かつ確実に記憶する要求が高まっている。例えば、金融機関および医療機関などの文書データは、消去せずに蓄積されることが法律によって義務付けられている。
【０００３】
こうした背景においては、高信頼で大容量のストレージシステムが必要となる。ハードディスクドライブを用いた大規模なストレージシステムでは、一般に、記憶容量に比例して電力消費量が増大する。つまり、大容量のストレージシステムを所有することは、電力消費量が増大することを示している。
【０００４】
しかしながら、ストレージシステムでは、データの長期的かつ確実な記憶と共に、ストレージシステムの電力消費量の削減についても、ますます重要になってきている。こうした状況を鑑み、大量のデータを蓄積し、さらに場合によっては当該データを長期に保存する必要がある場合に、格納データに求められる様々な要求に対して、適切な格納位置にデータを格納することがストレージシステム全体の電力消費量の低減に有効である。
【０００５】
なお、このような分野における従来技術として、例えば、非特許文献１では、通常時、ハードディスクドライブを停止させておき、ホスト装置からのＩ／Ｏ要求を受信してから、データ格納領域に対応するハードディスクドライブを動作させる技術が提案されている。
【０００６】
また、特許文献１及び非特許文献２では、低消費電力のストレージシステムを実現する技術として、ＭＡＩＤ（Massive Arrays of Idle Disks）技術を応用したストレージシステムが提案されている。
【０００７】
さらに、近年、不揮発性メモリとして、フラッシュメモリが注目されている。フラッシュメモリは、一般に、ハードディスクドライブと比較し、数十倍以上低消費電力であり、高速に読み出しが可能である。また、フラッシュメモリは、ハードディスクドライブのように機械的な駆動部分が不要なため小型であり、故障に対する耐性も一般的には高い。
【０００８】
しかしながら、フラッシュメモリは、情報を保持するセルの物理的な理由により、書き込み回数の制限がある。こうした制限に対し、上位装置に示すアドレスとセル位置との対応をもち、各セルに書き込まれる回数を均等化するように制御を行う、ウェアラベリング調整と呼ばれる技術などにより、フラッシュメモリの書き込み可能回数の向上が図られている。なお、以降では、情報を保持するための素子を単に「フラッシュメモリ」といい、上記のウェアラベリング調整や、上位装置に対するプロトコル処理などを行う機構を含めたものを「フラッシュメモリデバイス」という。
【０００９】
フラッシュメモリデバイスでは、上述の技術により、書き込み回数制限に対する効率化が図られているものの、書き込み回数自体の制限が存在しなくなるわけではない。また、フラッシュメモリでは、書き込む際に、消去と呼ばれる操作が必要になる場合には、ハードディスクドライブと同等程度の速度となる。
【００１０】
なお、このような分野における従来技術として、例えば、特許文献２では、ハイブリッドハードディスクドライブにおいて、障害発生時にフラッシュメモリ及びハードディスクドライブを切り替えるストレージシステムが提案されている。
【特許文献１】米国特許出願公開第２００４／００５４９３９号明細書
【特許文献２】特開２００４−１６４１９３号公報
【非特許文献１】“Power-efficient Server-class Performance from Arrays of Laptop Disks”, Athanasios E. Papathanasiou and Michael L. Scott, The University of Rochester, Computer Science Department, Rochester, New York 14627, Technical Report 837, May 2004[平成１８年９月２５日ＵＲＬ検索]http://www.cs.rochester.edu/u/papathan/papers/2004-usenix04/usenix04-wip/papathan-usenix04-wip-summary.pdf
【非特許文献２】"The Case for Massive Arrays of Idle Disks (MAID)", Dennis Colarelli, Dirk Grunwald and Michael Neufeld, University of Colorado, Boulder, FAST’02, USENIX[平成１８年９月２５日ＵＲＬ検索]http://www.usenix.org/publications/library/proceedings/fast02/wips/colarelli.pdf
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、非特許文献１のストレージシステムでは、Ｉ／Ｏ要求を受信してからハードディスクドライブを動作させるため、ホスト装置に応答するまでのレスポンス時間が遅延し、この結果、アクセス性能が低下するという問題がある。
【００１２】
また、特許文献１及び非特許文献２のストレージシステムでは、アクセス性能が低下しても問題が生じないストレージシステムに適用先を限定しており、アクセス性能の低下に関する技術的解決策が考慮されていないため、低消費電力と高いアクセス性能の維持との両立を実現していない。
【００１３】
さらに、特許文献２のストレージシステムでは、ハイブリッドハードディスクドライブにおいて障害発生時にフラッシュメモリ及びハードディスクドライブを切り替えることが提案されているが、低消費電力と高いアクセス性能の維持との両立を実現していない。
【００１４】
従って、先に説明した従来の技術では解決できない高いアクセス性能を維持しつつ消費電力も削減するストレージシステムにする必要がある。特に、データセンタ等においては、低消費電力の要求が高まるとはいえ、本来必要とされるアクセス性能に対して低下を招くような方法で低消費電力化しても意味がない。
【００１５】
そこで、フラッシュメモリをストレージシステムに応用して、従来の技術では実現できなかった低消費電力と高いアクセス性能の維持とを両立することができるストレージシステムを提供することが課題となる。
【００１６】
本発明は以上の点を考慮してなされたもので、アクセス性能を維持しつつ消費電力を削減し得るストレージ装置及びその制御方法を提案するものである。
【課題を解決するための手段】
【００１７】
かかる課題を解決するため本発明においては、ホストコンピュータから送信されるデータを格納するための論理デバイスをホストコンピュータに対して提供するストレージ装置であって、データを格納するための不揮発メモリと、データを格納するためのディスク状記憶デバイスと、不揮発メモリ及びディスク状記憶デバイスを制御する制御部とを備え、制御部は、論理デバイスを、不揮発メモリ及びディスク状記憶デバイスによる冗長構成とするように制御するようにした。
【００１８】
従って、ストレージシステムの高いアクセス性能を維持しつつ、不揮発メモリの記憶領域を利用することで、消費電力の低減、不揮発メモリ及びディスク状記憶デバイスの寿命の伸長並びにアクセス性能の最適化をすることができる。
【００１９】
また、本発明においては、ホストコンピュータから送信されるデータを格納するための論理デバイスをホストコンピュータに対して提供するストレージ装置の制御方法であって、論理デバイスを、データを格納するための不揮発メモリ及び前記データを格納するためのディスク状記憶デバイスによる冗長構成とするように制御する第１のステップを備えるようにした。
【００２０】
従って、ストレージシステムの高いアクセス性能を維持しつつ、不揮発メモリの記憶領域を利用することで、消費電力の低減、不揮発メモリ及びディスク状記憶デバイスの寿命の伸長並びにアクセス性能の最適化をすることができる。
【発明の効果】
【００２１】
本発明によれば、論理デバイスを、データを格納するための不揮発メモリ及び前記データを格納するためのディスク状記憶デバイスによる冗長構成とするように制御することにより、ストレージシステムの高いアクセス性能を維持しつつ、不揮発メモリの記憶領域を利用することで、消費電力の低減、不揮発メモリ及びディスク状記憶デバイスの寿命の伸長並びにアクセス性能の最適化をすることができ、かくして、アクセス性能を維持しつつ消費電力を削減し得るストレージ装置及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００２２】
以下図面について、本発明の一実施の形態を詳述する。
【００２３】
図１は、本実施の形態のストレージシステム１００の構成のブロック図である。ストレージシステム１００は、ホストコンピュータ１０１、ストレージ制御装置１０２及びハードディスクドライブ（ＨＤＤ）１０３から構成されている。
【００２４】
ストレージ制御装置１０２は、チャネル１１１を通じて、一般に、ＳＡＮスイッチなど構成されるＳＡＮ（Storage Area Network）１１２を経て、１台又は複数台のホストコンピュータ１０１に接続されている。また、ストレージ制御装置１０２は、ディスク側チャネル１１３を通じてデータを格納する複数のハードディスクドライブ１０３に接続されている。
【００２５】
さらに、ストレージ制御装置１０２は、複数のチャネル制御部１２１、複数のメモリ部１２２、１２３、複数のディスク制御部１２４、複数のフラッシュメモリ制御部１２５及びこれらを内部バス１２６を介して接続する相互結合部１２７から構成されている。
【００２６】
チャネル制御部１２１は、チャネル１１１を通じてホストコンピュータ１０１からの入出力要求を受け取り、この入出力要求の要求種類（例えば、リード要求やライト要求）や対象アドレスなどを解釈し、図１５以降で述べるような各種処理を行う。
【００２７】
メモリ部１２２、１２３は、その格納する情報にいくつか種類があり、種類ごとに物理的に異なるメモリを用意しても良いし、論理的に使い分けても良い。本実施の形態では、メモリ部１２２にキャッシュメモリとしての領域が、メモリ部１２３に制御情報格納領域として領域が割り当てられた場合を例とする。以下、メモリ部１２２をキャッシュメモリ部１２２と呼び、メモリ部１２３を制御情報メモリ部１２３と呼ぶ。
【００２８】
キャッシュメモリ部１２２は、ハードディスクドライブ１０３やフラッシュメモリ（ＦＭ）４０５（後述）に格納されるべきデータやホストコンピュータ１０１に送信すべきデータを一時的に格納する。制御情報メモリ部１２３は、キャッシュメモリとして使われるメモリ領域のディレクトリ情報や、ストレージシステム１００の構成情報等の制御情報が格納される。
【００２９】
ディスク制御部１２４は、チャネル制御部１２１などの要求に基づき、ディスク側チャネル１１３を通じてハードディスクドライブ１０３の制御を行い、ホストコンピュータ１０１から要求されたデータの取り出しや格納を行う。この際、ディスク制御部１２４は、ハードディスクドライブ１０３に対してＲＡＩＤ（Redundant Arrays of Independent Disks）制御を行い、ストレージシステムの信頼性、可用性及び性能を向上させてもよい。
【００３０】
フラッシュメモリ制御部１２５は、フラッシュメモリ４０５（後述）の制御を行う。フラッシュメモリ制御部１２５は、チャネル制御部１２１などの要求に基づき、フラッシュメモリ４０５にホストコンピュータ１０１から要求されたデータを取り出しや格納を行う。この際、フラッシュメモリ制御部１２５は、フラッシュメモリ４０５に対してＲＡＩＤ制御を行い、ストレージシステムの信頼性、可用性及び性能を向上させてもよい。なお、本実施の形態では、ストレージシステム１００がハードディスクドライブ１０３と接続されているが、ハードディスクドライブ１０３及びディスク制御部１２４を有しない構成であってもよい。
【００３１】
図２は、チャネル制御部１２１の詳細の構成のブロック図である。チャネル制御部１２１は、複数のプロセッサ２０１、メモリモジュール２０２、周辺処理部２０３、複数のチャネルプロトコル処理部２０４及び内部ネットワークインタフェース部２０５から構成されている。
【００３２】
プロセッサ２０１は、バス等の接続手段で周辺処理部２０３に接続される。周辺処理部２０３は、メモリモジュール２０２に接続され、メモリモジュール２０２の制御を行う。また、プロセッサ２０１は、制御系バス２１１を介してチャネルプロトコル処理部２０４及び内部ネットワークインタフェース部２０５に接続される。周辺処理部２０３は、接続されるプロセッサ２０１及びチャネルプロトコル処理部２０４及び内部ネットワークインタフェース部２０５からのパケットを受け、パケットの示す転送先アドレスがメモリモジュール２０２上ならばその処理を行い、必要ならばデータを返す。また、周辺処理部２０３は、転送先アドレスがそれ以外ならば、適切なフォワーディングを行う。
【００３３】
メモリモジュール２０２は、チャネル制御部１２１を制御するための制御プログラム２２１、その他のプロセッサ２０１がこの周辺処理部２０３に接続されるプロセッサ２０１と通信を行うためのメールボックス２２２及びチャネルプロトコル処理部２０４がＤＭＡ（Direct Memory Access）を行うための転送リスト２２３を有している。
【００３４】
プロセッサ２０１は、周辺処理部２０３を通してメモリモジュール２０２にアクセスし、メモリモジュール２０２に格納された制御プログラム２２１に基づいて処理を行う。
【００３５】
チャネルプロトコル処理部２０４は、チャネル１１１上のプロトコル制御を行い、ストレージシステム１００内部で処理ができるようなプロトコル方式に変換する。また、チャネルプロトコル処理部２０４は、チャネル１１１を通じてホストコンピュータ１０１からの入出力要求を受けると、その入出力要求のホストコンピュータ番号やＬＵＮ（Logical Unit Number）やアクセス先アドレスなどをプロセッサ２０１に通知する。
【００３６】
プロセッサ２０１は、チャネルプロトコル処理部２０４からの通知に基づき、制御情報領域上のディレクトリ情報やもしくはメモリモジュール２０２上に複製し展開した当該ディレクトリ情報にアクセスし、入出力要求のデータを格納すべきアドレスまたは入出力要求のデータが存在する場合には、メモリモジュール２０２上に転送リスト２２３を作成し、それに基づきチャネルプロトコル処理部２０４に転送を行わせる。
【００３７】
また、プロセッサ２０１は、ホストコンピュータ１０１がリード要求したデータがキャッシュメモリ部１２２上にない場合であり、ハードディスクドライブ１０３に格納されている場合に、ディスク制御部１２２に、ハードディスクドライブ１０３に格納されている要求データをキャッシュメモリ部１２２に格納する（この動作をステージングという）ように指示を与えた後に、メモリモジュール２０２上に転送リスト２２３を作成し、それに基づきチャネルプロトコル処理部２０４に転送を行わせる。
【００３８】
さらに、プロセッサ２０１は、ホストコンピュータ１０１がリード要求したデータがキャッシュメモリ部１２２上にない場合であり、フラッシュメモリ４０５上に格納されている場合に、フラッシュメモリ４０５のアドレスを転送リスト２２３にセットする。転送リスト２２３は、キャッシュメモリ部１２２又はフラッシュメモリ４０５上のアドレスのリストになっている。
【００３９】
プロセッサ２０１は、入出力要求がライト要求であれば、データ転送系バス２１２を介して接続された内部ネットワークインタフェース部２０５を通じ、ホストコンピュータ１０１からのデータを転送リスト２２３に記載されたアドレスに書き込む。また、プロセッサ２０１は、入出力要求がまたリード要求であれば、同様に、転送リスト２２３に記載されたアドレスからデータを読み出し、当該データをホストコンピュータ１０１に送信する。
【００４０】
内部ネットワークインタフェース部２０５は、自己のチャネル制御部１２１内部と、他のストレージシステム１００内部の各構成要素とを、内部バス１２６を経て通信を行う際の、インタフェースとなる部位である。
【００４１】
図３は、ディスク制御部１２４の詳細の構成のブロック図である。ディスク制御部１２４は、制御プログラム３１２の内容が異なり、チャネルプロトコル処理部３０４がディスク側チャネル１１３を通じハードディスクドライブ１１０との通信を行う点を除いて、チャネル制御部１２１と同様の構造を有している。ただし、チャネル１１１とディスク側チャネル１１３のプロトコルは異なってもよいが、ディスク側チャネル１１３上のプロトコル処理を行い、ストレージシステム１００内部で処理が出来るように変換する意味では、チャネル制御部１２１のチャネルプロトコル処理部２０４と同様である。
【００４２】
プロセッサ３０１は、チャネル制御部１２１からの要求や一定時間間隔で、キャッシュメモリ部１２２上のデータをハードディスクドライブ１０３に書き込みを行い、キャッシュメモリ部１２２上にデータが存在していない場合には、チャネル制御部１２１からの指示を受け、ハードディスクドライブ１０３からデータを読み出し、キャッシュメモリ部１２２にそのデータを書き込む。
【００４３】
また、プロセッサ３０１は、制御情報メモリ部１２３に格納されたディレクトリ情報にアクセスし、ホストコンピュータ１０１の要求するデータを読み出すべき、又は格納すべきキャッシュメモリ部１２２のメモリアドレスを調査する。
【００４４】
そして、プロセッサ３０１は、要求されたデータがキャッシュメモリ部１２２上に存在しない場合や、要求されたデータを格納するための空き領域を作るべく、すでに格納されているデータを、ハードディスクドライブ１０３に格納する場合（この動作をデステージと呼ぶ）には、ディスク側チャネル１１３を通じてハードディスクドライブ１０３を制御する。この際、プロセッサ３０１は、ハードディスクドライブ１０３全体としての可用性および性能を向上させるため、ハードディスクドライブ１０３群に対してＲＡＩＤ制御を行う。
【００４５】
図４は、フラッシュメモリ制御部１２５の詳細の構成のブロック図である。フラッシュメモリ制御部１２５は、内部ネットワークインタフェース部４０１、ＤＭＡコントローラ４０２、揮発メモリであるメモリモジュール４０３及びその制御を行うメモリコントローラ４０４、並びにフラッシュメモリ４０５及びその制御を行うメモリコントローラ４０６が備えられている。
【００４６】
内部ネットワークインタフェース部４０１は、自己のフラッシュメモリ制御部１２５内部と、他のストレージシステム１００内部の各構成要素とを、内部バス１２６を経て通信を行う際の、インタフェースとなる部位である。
【００４７】
フラッシュメモリ制御部１２５内のＤＭＡコントローラ４０２は、例えば、ホストコンピュータ１０１からのライト要求を処理する際などに、キャッシュメモリ部１２２に空き領域を作る場合に、チャネル制御部１２１のプロセッサ２０１がセットする転送リスト４１１により、キャッシュメモリ部１２２からフラッシュメモリ４０５にデータの転送を行う。
【００４８】
メモリコントローラ４０３は、例えば、内部バス１２６を通してなされたチャネル制御部１２１からのリード要求や、ＤＭＡコントローラ４０２のライト要求により、フラッシュメモリ４０５を制御し、データのやり取りを行う。フラッシュメモリ４０５は、基盤に直接配置されており、フラッシュメモリデバイスを設けた場合におけるコネクタやプロトコル処理部、フラッシュメモリ側チャネルなどの部品が不要になるので、よりコンパクトなフラッシュメモリ制御部１２５及びストレージシステム１００を実現することが可能になる。また、メモリコントローラ４０６は、それぞれのフラッシュメモリ４０５に対するウェアラベリング調整などを行ってもよい。
【００４９】
さらに、メモリコントローラ４０６は、フラッシュメモリ４０５に対して行ったアクセスにおいて発生する消去エラー発生回数や不良ブロック数などの情報を統計情報４０７として収集し、フラッシュメモリ４０５の一部又は別に設けるフラッシュメモリを使って格納し、チャネル制御部１２１のプロセッサ２０１からの要求により、統計情報４０７を送信する。
【００５０】
図５は、ストレージ制御装置１０２内に構築される記憶階層について示している。ストレージ制御装置１０２内に構築される記憶階層は、物理的記憶階層及び論理的記憶階層に大別することができる。物理的記憶階層は、１又は複数のハードディスクドライブ１０３又は１又は複数のフラッシュメモリ４０５によって設定されたデバイス（以下、ＤＥＶと呼ぶ）５０１により構成される。
【００５１】
論理的記憶階層は、複数の（例えば、３種類の）階層から構成する。１つの論理的階層は、第１の論理デバイス（以下、ＶＤＥＶ（Virtual Device）と呼ぶ）５０２により構成される。他の１つの論理的階層は、第２の論理デバイス（以下、ＬＤＥＶ（Logical Device）と呼ぶ）５０３により構成される。残る１つの論理的階層は、第３の論理デバイス（以下、ＨＬＤＥＶ（Host Logical Device）と呼ぶ）５０４により構成される。
【００５２】
ＶＤＥＶ５０２は、例えば、４つのハードディスクドライブ１０３又は４つのフラッシュメモリ４０５を一組としてＲＡＩＤ制御し、グループ化することにより（３Ｄ＋１Ｐ）構成される。即ち、ハードディスクドライブ１０３又はフラッシュメモリ４０５のそれぞれが提供する記憶領域が集合して１つのＤＥＶ５０１が形成され、このＤＥＶ５０１のアドレス空間がＶＤＥＶ５０２となる。
【００５３】
なお、ＶＤＥＶ５０２には、他のＲＡＩＤ構成についても適用することができる。すなわち、１つのハードディスクドライブ１０３又は１つのフラッシュメモリ４０５を複数のＶＤＥＶ５０２にアサインすることもでき（スライシング）、あるいは、複数のハードディスクドライブ１０３又は複数のフラッシュメモリ４０５から１つのＶＤＥＶ４２を形成することもできる（ストライピング、ミラーリング）。
【００５４】
ＬＤＥＶ５０３は、ＶＤＥＶ５０２上に、それぞれ少なくとも一つ以上設けることができる。ＬＤＥＶ５０３は、例えば、ＶＤＥＶ５０２を固定長で分割することにより構成される。
【００５５】
ＨＬＤＥＶ５０４は、ホストコンピュータ１０１が認識する論理的な記憶単位である。例えば、ホストコンピュータ１０１がＵＮＩＸ（登録商標）系のシステムである場合には、ＨＬＤＥＶ５０４は、デバイスファイル（Device File）に対応付けられる。あるいは、ホストコンピュータ１０１がＷｉｎｄｏｗｓ（登録商標）系のシステムである場合には、ＨＬＤＥＶ５０４は、ドライブレター（ドライブ名）に対応付けられる。各々のＨＬＤＥＶ５０４は、チャネル制御部１２１を介してホストコンピュータ１０１に接続される。各々のＨＬＤＥＶ５０４には、少なくとも１つ以上のＬＤＥＶ５０３をマッピングすることができる。１つのＨＬＤＥＶ５０４に複数のＬＤＥＶ５０３をマッピングすることにより、ＨＬＤＥＶ５０４のサイズを仮想的に拡張することができる。
【００５６】
図６は、ストレージ制御装置１０２内に構築されるＨＬＤＥＶ５０４及びＬＤＥＶ５０３の対応関係について示している。本実施の形態では、ＨＬＤＥＶ５０４に対して、フラッシュメモリ４０５によって構成されるＬＤＥＶ５０３を少なくとも１の冗長度をもって割り当てるようになされている。すなわち、本実施の形態では、ＨＬＤＥＶ５０４に対して、フラッシュメモリ４０５によって構成されるＬＤＥＶ５０３を含んで冗長構成を行う。
【００５７】
例えば、本実施の形態では、図６のように、１つのＨＬＤＥＶ５０４に対して送信されたデータを、フラッシュメモリ４０５により構成されるＬＤＥＶ５０３及びハードディスクドライブ１０３により構成されるＬＤＥＶ５０３を、ＲＡＩＤ１によってミラーリング制御を行う。すなわち、本実施の形態では、１つのＨＬＤＥＶ５０４に対してフラッシュメモリ４０５により構成されるＬＤＥＶ５０３及びハードディスクドライブ１０３により構成されるＬＤＥＶ５０３をペア構成して同一のデータを格納するようになされている。この場合、本実施の形態では、ミラーリング制御を行うため、ＬＤＥＶ５０３に割り当てられるＤＥＶ５０１（フラッシュメモリ４０５）の記憶容量と、ＬＤＥＶ５０３に割り当てられるＤＥＶ５０１（ハードディスクドライブ１０３）の記憶容量とが同じ記憶容量となるように設定されている。
【００５８】
以下、ＬＤＥＶ５０３について識別することが必要である場合には、ＨＬＤＥＶ５０４に対して、ミラーリング制御されるフラッシュメモリ４０５により構成されるＬＤＥＶ５０３を、ＦＭＬＤＥＶ５０３Ｆと呼び、ミラーリング制御されるフラッシュメモリ４０５により構成されるＬＤＥＶ５０３を、ＨＤＤＬＤＥＶ５０３Ｈと呼ぶ。
【００５９】
また、本実施の形態では、ホストコンピュータ１０１から入出力要求を受信すると、状況に応じてフラッシュメモリ４０５とハードディスクドライブ１０３とを切り替えて、データの読み出し又は書き込みを行うようになされている。この場合、本実施の形態では、ハードディスクドライブ１０３の長寿命化を図るため、ハードディスクドライブ１０３を基本的に停止状態（後述）にしておき、所定の場合に起動状態（スピンアップ完了状態（後述））に遷移させることとなる。そして、本実施の形態では、フラッシュメモリ４０５に書込み回数の制限があるため、ハードディスクドライブ１０３が起動状態である場合には、ハードディスクドライブ１０３に優先的にデータの書込み処理を行う。なお、これらの動作の詳細な説明については、後述のフローチャートにおいて説明する。
【００６０】
図７は、制御情報メモリ部１２３に格納される各種テーブル及び各種プログラムについて示している。制御情報メモリ部１２３には、構成管理テーブル６０１、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２、第１の入出力要求管理テーブル６０３、第２の入出力要求管理テーブル６０４、物理デバイス状況管理テーブル６０５、フラッシュメモリ差分管理テーブル６０６、ハードディスクドライブ差分管理テーブル６０７、入出力制御プログラム６０８、ミラーリング制御プログラム６０９及びハードディスクドライブ起動時間増減制御プログラム６１０が格納されている。なお、これらの各種テーブルに格納された各情報は、管理者によるシステム構成情報等を定義する操作やチャネル制御部１２１のプロセッサ２０１からの要求等によって作成及び更新が行われる。またなお、これらの各種テーブル及び各種プログラムの詳細な説明については、後述の図面及びフローチャートにおいて説明する。
【００６１】
図８は、構成管理テーブル６０１のテーブル構成について示している。構成管理テーブル６０１は、当該構成管理テーブル６０１の管理番号を格納するための管理ＩＤ欄７０１、ＨＬＤＥＶ５０４を一意に識別するための番号であるＨＬＤＥＶＩＤを格納するためのＨＬＤＥＶＩＤ欄７０２、ＬＤＥＶ５０３を一意に識別するための番号であるＬＤＥＶＩＤを格納するためのＬＤＥＶＩＤ欄７０３、ＶＤＥＶ５０２を一意に識別するための番号であるＶＤＥＶＩＤを格納するためのＶＤＥＶＩＤ欄７０４、ＤＥＶ５０１を一意に識別するための番号であるＤＥＶＩＤを格納するためのＤＥＶＩＤ欄７０５及びＨＬＤＥＶ５０４に割り当てられているＤＥＶ５０１の記憶領域であるエクステントの最初及び最後のアドレスを格納するためのＤＥＶエクステント欄７０６から構成されている。
【００６２】
構成管理テーブル６０１は、管理ＩＤごとに、ＨＬＤＥＶＩＤ、当該ＨＬＤＥＶＩＤのＨＬＤＥＶ５０４と対応づけられているＬＤＥＶ５０３のＬＤＥＶＩＤ、当該ＬＤＥＶＩＤのＬＤＥＶ５０３と対応づけられているＶＤＥＶ５０２のＶＤＥＶＩＤ、当該ＶＤＥＶＩＤのＶＤＥＶ５０２と対応づけられているＤＥＶ５０１のＤＥＶＩＤ及び当該ＤＥＶＩＤのＤＥＶ５０１のエクステントを管理する。
【００６３】
例えば、ＨＬＤＥＶＩＤ「１」のＨＬＤＥＶ５０４は、フラッシュメモリ４０５により構成されるＬＤＥＶＩＤ「００１」のＦＭＬＤＥＶ５０３Ｆ及びハードディスクドライブ１０３により構成されるＬＤＥＶＩＤ「００３」のＨＤＤＬＤＥＶ５０３Ｈを、ＲＡＩＤ１によってミラーリング制御を行う。この場合、ＤＥＶＩＤ「１００１」の記憶容量と、ＤＥＶＩＤ「１００３」の記憶容量は、ＤＥＶエクステント欄７０６からも明らかなように、同じ記憶容量となっている。
【００６４】
図９は、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２のテーブル構成について示している。ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２は、管理ＩＤ欄７１１、ＨＬＤＥＶＩＤ欄７１２、ＬＤＥＶＩＤ欄７１３、ＶＤＥＶＩＤ欄７１４、ＤＥＶＩＤ欄７１５、稼働時間設定欄７１６、最終オン時間欄７１７、最終オフ時間欄７１８、優先リード処理確認欄７１９及び起動状況確認欄７２０から構成されている。
【００６５】
稼働時間設定欄７１６には、ハードディスクドライブ１０３の１日あたりの稼働時間を表す情報が格納される。例えば、稼働時間設定欄７１６に「４ｈ」と格納されている場合には、ハードディスクドライブ１０３は、４時間起動状態であり、２０時間停止状態であることを表しており、これを繰り返すようになされている。
【００６６】
最終オン時間欄７１７には、ハードディスクドライブ１０３が最後に起動状態となった日時の情報が格納される。最終オフ時間欄７１８には、ハードディスクドライブ１０３が最後に停止状態となった日時の情報が格納される。最終オン時間欄７１７及び最終オフ時間欄７１８は、次に起動状態とする時間又は次に停止状態とする時間を算出するために必要な情報である。
【００６７】
優先リード処理確認欄７１９には、ホストコンピュータ１０１からリード要求を受信したときに、フラッシュメモリ４０５又はハードディスクドライブ１０３のどちらから優先的にデータを読み出すかを確認するための情報が格納される。例えば、フラッシュメモリ４０５から優先的にデータを読み出す場合には、優先リード処理確認欄７１９のフラッシュメモリ４０５に対応する欄に、「ＦＭ優先」が格納され、ハードディスクドライブ１０３から優先的にデータを読み出す場合には、優先リード処理確認欄７１９のハードディスクドライブ１０３に対応する欄に、「ＨＤＤ優先」が格納される。
【００６８】
起動状況確認欄７２０には、ハードディスクドライブ１０３が起動状態であるかを確認するための情報が格納される。例えば、ハードディスクドライブ１０３が起動状態である場合には、起動状況確認欄７２０のハードディスクドライブ１０３に対応する欄に、「オン（ＯＮ）」が格納され、ハードディスクドライブ１０３が停止状態である場合には、起動状況確認欄７２０のハードディスクドライブ１０３に対応する欄に、「オフ（ＯＦＦ）」が格納される。
【００６９】
ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２は、管理ＩＤごとに、ＨＬＤＥＶＩＤ、当該ＨＬＤＥＶＩＤのＨＬＤＥＶ５０４と対応づけられているＬＤＥＶ５０３のＬＤＥＶＩＤ、当該ＬＤＥＶＩＤのＬＤＥＶ５０３と対応づけられているＶＤＥＶ５０２のＶＤＥＶＩＤ、当該ＶＤＥＶＩＤのＶＤＥＶ５０２と対応づけられているＤＥＶ５０１のＤＥＶＩＤ並びに当該ＤＥＶＩＤのＤＥＶ５０１の稼働時間、最終オン時間、最終オフ時間、優先リード処理確認の情報及び起動状況確認の情報を管理する。
【００７０】
なお、フラッシュメモリ４０５により構成されるＤＥＶ５０１については、停止状態及び起動状態の遷移がなく、常に起動状態であるため、稼働時間設定欄７１６、最終オン時間欄７１７、最終オフ時間欄７１８及び起動状況確認欄７２０には、「−」が格納される。
【００７１】
図１０は、第１の入出力要求管理テーブル６０３のテーブル構成について示している。第１の入出力要求管理テーブル６０３は、管理ＩＤ欄７２１、ＨＬＤＥＶＩＤ欄７２２、ＨＬＤＥＶ５０４にデータの読出し処理を行った回数であるリード回数を格納するためのリード回数欄７２３及びＨＬＤＥＶ５０４にデータの書込み処理を行った回数であるライト回数を格納するためのライト回数欄７２４から構成されている。第１の入出力要求管理テーブル６０３は、管理ＩＤごとに、ＨＬＤＥＶＩＤ、当該ＨＬＤＥＶＩＤのＨＬＤＥＶ５０４に格納されているデータのリード回数及び当該ＨＬＤＥＶＩＤのＨＬＤＥＶ５０４に格納されているデータのライト回数を管理する。
【００７２】
図１１は、第２の入出力要求管理テーブル６０４のテーブル構成について示している。第２の入出力要求管理テーブル６０４は、管理ＩＤ欄７３１、ＨＬＤＥＶＩＤ欄７３２、ＬＤＥＶＩＤ欄７３３、リード回数欄７３４及びライト回数欄７３５から構成されている。第２の入出力要求管理テーブル６０４は、管理ＩＤごとに、ＨＬＤＥＶＩＤ、当該ＨＬＤＥＶＩＤのＨＬＤＥＶ５０４と対応づけられているＬＤＥＶ５０３のＬＤＥＶＩＤ、当該ＬＤＥＶＩＤのＬＤＥＶ５０３に格納されているデータのリード回数及び当該ＬＤＥＶＩＤのＬＤＥＶ５０３に格納されているデータのライト回数を管理する。
【００７３】
図１２は、物理デバイス状況管理テーブル６０５のテーブル構成について示している。物理デバイス状況管理テーブル６０５は、管理ＩＤ欄７４１、ＤＥＶＩＤ欄７４２、物理デバイス欄７４３、ライト回数欄７４４、消去回数欄７４５、不良ブロック数欄７４６、不良ブロック増加率欄７４７、平均消去時間欄７４８、オン／オフ回数欄７４９及び稼働時間欄７５０から構成されている。
【００７４】
物理デバイス欄７４３には、フラッシュメモリ４０５又はハードディスクドライブ１０３等の物理デバイスを一意に識別するための番号である物理デバイスＩＤが格納される。ライト回数欄７４４には、当該物理デバイスＩＤのフラッシュメモリ４０５に今までデータの書込み処理を行った総回数である総書込み回数が格納される。消去回数欄７４５には、当該物理デバイスＩＤのフラッシュメモリ４０５に今までデータの消去処理行った総回数である総消去回数が格納される。
【００７５】
不良ブロック数欄７４６には、当該物理デバイスＩＤのフラッシュメモリ４０５又はハードディスクドライブ１０３にデータを書き込むことができなくなった記憶領域の不良ブロックの数不良ブロック数が格納される。不良ブロック増加率欄７４７には、所定の時間ごとの不良ブロック数欄７４６の不良ブロック数の変化により算出される不良ブロックの増加率である不良ブロック増加率が格納される。平均消去時間欄７４８には、当該物理デバイスＩＤのフラッシュメモリ４０５におけるデータ消去処理にかかる平均の時間である平均処理時間が格納される。オン／オフ回数欄７４９には、当該物理デバイスＩＤのハードディスクドライブ１０３におけるオン（起動状態）又はオフ（停止状態）に切り替えた回数であるオン／オフ回数が格納される。稼働時間欄７５０には、当該物理デバイスＩＤのフラッシュメモリ４０５又はハードディスクドライブ１０３の今まで稼動した総時間である総稼働時間が格納される。
【００７６】
物理デバイス状況管理テーブル６０５は、管理ＩＤごとに、ＤＥＶＩＤ、当該ＤＥＶＩＤのＤＥＶ５０１と対応づけられている物理デバイスの物理デバイスＩＤ、当該物理デバイスＩＤの物理デバイスへの総書込み回数及び総消去回数並びに当該物理デバイスＩＤの物理デバイスの不良ブロック数、不良ブロック増加率、平均消去時間、オン／オフ回数及び総稼働時間を管理する。なお、物理デバイス状況管理テーブル６０５に格納された各情報は、ディスク制御部１２４のプロセッサ３０１により収集されたハードディスクドライブ１０３の収集情報及びフラッシュメモリ制御部１２５のメモリコントローラ４０６により収集された収集情報４０７に基づいて作成及び更新が行われる。
【００７７】
またなお、フラッシュメモリ４０５の物理デバイスについては、停止状態及び起動状態の遷移がなく、常に起動状態であるため、オン／オフ回数欄７４９には、「−」が格納される。
【００７８】
さらになお、ハードディスクドライブ１０３の物理デバイスについては、書込み回数や消去回数に制限がなく、消去回数の増加による平均消去時間の増加もないため、総書込み回数欄７４４、総消去回数欄７４５及び平均消去時間欄７４８には、「−」が格納される。
【００７９】
図１３は、フラッシュメモリ差分管理テーブル６０６及びハードディスクドライブ差分管理テーブル６０７のテーブル構成について示している。フラッシュメモリ差分管理テーブル６０６及びハードディスクドライブ差分管理テーブル６０７は、フラッシュメモリ４０５又はハードディスクドライブ１０３ごとに管理されており、所定単位の記憶領域ごとにフラッシュメモリ４０５及びハードディスクドライブ１０３間のデータに差分があるか否かを管理する。
【００８０】
フラッシュメモリ差分管理テーブル６０６及びハードディスクドライブ差分管理テーブル６０７は、フラッシュメモリ４０５及びハードディスクドライブ１０３間に差分がある記憶領域の識別ビットについては、「差分あり」を表す「１」で管理する。これは、フラッシュメモリ４０５又はハードディスクドライブ１０３のいずれかの記憶領域に最新のデータが格納されている状態であることを意味する。
【００８１】
また、フラッシュメモリ差分管理テーブル６０６及びハードディスクドライブ差分管理テーブル６０７は、フラッシュメモリ４０５及びハードディスクドライブ１０３間に差分がある以外の状態を表す記憶領域の識別ビットについては、「０」で管理する。これは、フラッシュメモリ４０５及びハードディスクドライブ１０３間の記憶領域に同じデータが格納されている状態、又は対応するフラッシュメモリ４０５又はハードディスクドライブ１０３の記憶領域に最新のデータが格納されている状態であることを意味する。
【００８２】
図１４は、ハードディスクドライブ１０３における起動時間及び停止時間の切り替えタイミングについて示している。本実施の形態では、ハードディスクドライブ１０３を起動し、スピンアップを完了してデータを書き込めるようになった状態を起動状態（スピンアップ完了状態）と定義し、起動状態でない状態を停止状態と定義する。また、本実施の形態では、起動状態となっている時間を起動時間（Ｔon）と定義し、停止状態となっている時間を停止時間（Ｔoff）と定義する。
【００８３】
まず、停止時間から起動時間への切り替えタイミングについて説明する。ハードディスクドライブ１０３は、起動要求によりスピンアップを開始してから、起動状態（スピンアップ完了状態）となるまで所定の時間がかかる。ここで、この時間をスピンアップ時間「Ｔspinup」としたとき、チャネル制御部１２１のプロセッサ２０１は、スピンアップ時間「Ｔspinup」を考慮して、起動指示を行う。具体的に、チャネル制御部１２１は、オン時間からスピンアップ時間「Ｔspinup」前の時間である起動開始時間に起動指示をディスク制御部１２４に送信する。
【００８４】
次に、起動時間から停止時間への切り替えタイミングについて説明する。ハードディスクドライブ１０３の停止時間については、起動時間設定欄７１６に格納されている起動時間の終了時であり、ハードディスクドライブ１０３からフラッシュメモリ４０５にデータの読書き処理を切り替えた時点からが始まりとなる。具体的に、チャネル制御部１２１のプロセッサ２０１は、起動時間「Ｔon」の終了時に停止指示をディスク制御部１２４に送信する。
【００８５】
また、チャネル制御部１２１のプロセッサ２０１は、停止指示を送信して起動時間から停止時間に切り替えると、ハードディスクドライブ１０３に格納されている差分のデータをフラッシュメモリ４０５に転送させる。ここで、停止時間に切り替えてから、ハードディスクドライブ１０３に格納されている差分のデータをフラッシュメモリ４０５に転送させ、当該転送が終了するまでの時間をトランスファ時間「Ｔtransfer」とする。トランスファ時間「Ｔtransfer」は、ハードディスクドライブ１０３に格納されている差分のデータによって転送にかかる時間は変化するが、例えば、ハードディスクドライブ１０３に格納されている差分のデータを「１００ＧＢｙｔｅ」とし、当該差分のデータの転送処理のスループットを「２０ＭＢｙｔｅ／ｓ」とすると、「５０００秒」となり、「約１．４時間」となる。
【００８６】
さらに、チャネル制御部１２１のプロセッサ２０１は、差分のデータの転送が終了すると、スピンオフを完了してハードディスクドライブ１０３を停止させる。ここで、差分のデータの転送が終了してから、ハードディスクドライブ１０３を停止させるまでの時間をスピンオフ時間「Ｔspinoff」とする。
【００８７】
従って、稼働時間欄７５０に格納される総稼動時間は、スピンアップ時間「Ｔspinup」、起動時間「Ｔon」、トランスファ時間「Ｔtransfer」及びスピンオフ時間「Ｔspinoff」の合計時間となることとなる。
【００８８】
図１５は、このストレージシステム１００における入出力制御処理のうちの書込み処理に関するストレージ制御装置１０２のチャネル制御部１２１の具体的な処理手順を示したフローチャートである。
【００８９】
チャネル制御部１２１（チャネル制御部１２１のプロセッサ２０１）は、ホストコンピュータ１０１から入出力要求を受信すると、入出力要求に対する制御を行う入出力制御処理プログラム６０８を実行することにより、図１５に示す入出力制御処理の書込み処理手順ＲＴ１に従って、受信した入出力要求がライト要求であるか否かをチェックする（Ｓ１）。そして、チャネル制御部１２１は、受信した入出力要求がライト要求でない場合（Ｓ１：ＮＯ）には、この後、図１５に示す入出力制御処理の書込み処理手順ＲＴ１を終了する（Ｓ１３）。これに対して、チャネル制御部１２１は、受信した入出力要求がライト要求である場合（Ｓ１：ＹＥＳ）には、ライト要求と共に受信したライト対象のデータを書き込むべき記憶領域をキャッシュメモリ部１２２に確保した後、当該記憶領域にライト対象のデータを書き込み、ライト要求に対する終了応答であるライト要求終了応答をホストコンピュータ１０１に行う（Ｓ２）。
【００９０】
続いて、チャネル制御部１２１は、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２の起動状況確認欄７２０を参照することにより、ライト対象のデータを書き込むべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間であるか否かをチェックする（Ｓ３）。
【００９１】
そして、チャネル制御部１２１は、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間でない場合（Ｓ３：ＮＯ）には、例えば、キャッシュメモリ部１２２の８つの連続する記憶領域等、キャッシュメモリ部１２２の所定数の連続する記憶領域に、当該ライト対象のデータが格納されたか否かをチェックする（Ｓ４）。
【００９２】
そして、チャネル制御部１２１は、キャッシュメモリ部１２２の所定数の連続する記憶領域に、ライト対象のデータが格納されなかった場合（Ｓ４：ＮＯ）には、書込み処理がランダムライトであると判断して、ライト対象のデータを書き込むべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にライト対象のデータを書き込む（Ｓ５）。具体的に、チャネル制御部１２１は、当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にライト対象のデータを書き込むようにフラッシュメモリ制御部１２５に指示し、フラッシュメモリ制御部１２５が当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にライト対象のデータを書き込む。
【００９３】
続いて、チャネル制御部１２１は、ライト対象のデータの書込み処理が行われたフラッシュメモリ４０５の記憶領域に対応するフラッシュメモリ差分管理テーブル６０６の識別ビットを「１」にする（Ｓ６）。続いて、チャネル制御部１２１は、当該フラッシュメモリ差分管理テーブル６０６の識別ビットに対応するハードディスクドライブ１０３のデータが不要となるため、当該ハードディスクドライブ１０３のハードディスクドライブ管理テーブル６０７の識別ビットを「０」にし（Ｓ７）、この後、図１５に示す入出力制御処理の書込み処理手順ＲＴ１を終了する（Ｓ１３）。
【００９４】
これに対して、チャネル制御部１２１は、キャッシュメモリ部１２２の所定数の連続する記憶領域に、ライト対象のデータが格納された場合（Ｓ４：ＮＯ）には、書込み処理がシーケンシャルライトであると判断する。一般に、書込み処理がシーケンシャルライトである場合には、フラッシュメモリ４０５にライト対象のデータを書き込む場合に比してハードディスクドライブ１０３に書き込むほうが書込み速度が速いことが知られている。このため、チャネル制御部１２１は、キャッシュメモリ部１２２の所定数の連続する記憶領域に、ライト対象のデータが格納された場合（Ｓ４：ＮＯ）には、ライト対象のデータを書き込むべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動中であるか否かをチェックする（Ｓ８）。
【００９５】
そして、チャネル制御部１２１は、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動中でない場合（Ｓ８：ＮＯ）には、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動する（Ｓ９）。具体的に、チャネル制御部１２１は、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動するようにディスク制御部１２４に指示し、ディスク制御部１２４が当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動する。
【００９６】
これにより、ストレージ制御装置１０２は、ライト対象のデータをフラッシュメモリ４０５に書き込む場合に比して書込み速度を向上することができ、これに伴ってアクセス向上することができる。
【００９７】
なお、チャネル制御部１２１は、このように、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３の起動時間以外の時間にＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動した場合には、この後、所定の時間、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に書込み処理を行わなかったときに、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を停止する。具体的に、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を停止するようにディスク制御部１２４に指示し、ディスク制御部１２４がＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を停止する。そして、チャネル制御部１２１は、当該稼働時間も稼働時間欄７５０に格納される総稼動時間に積算するようになされている。
【００９８】
やがて、チャネル制御部１２１は、ライト対象のデータを書き込むべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動した場合（Ｓ９）、この他当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間である場合（Ｓ３：ＹＥＳ）又は当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動中である場合（Ｓ８：ＹＥＳ）には、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３にライト対象のデータを書き込む（Ｓ５）。具体的に、チャネル制御部１２１は、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３にライト対象のデータを書き込むようにディスク制御部１２４に指示し、ディスク制御部１２４が当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３にライト対象のデータを書き込む。
【００９９】
続いて、チャネル制御部１２１は、ライト対象のデータの書込み処理が行われたハードディスクドライブ１０３の記憶領域に対応するハードディスクドライブ差分管理テーブル６０７の識別ビットを「１」にする（Ｓ１１）。続いて、チャネル制御部１２１は、当該ハードディスクドライブ差分管理テーブル６０７の識別ビットに対応するフラッシュメモリ４０５のデータが不要となるため、フラッシュメモリ４０５のフラッシュメモリ管理テーブル６０６の識別ビットを「０」にし（Ｓ１２）、この後、図１５に示す入出力制御処理の書込み処理手順ＲＴ１を終了する（Ｓ１３）。
【０１００】
図１６は、このストレージシステム１００における入出力制御処理のうちの読出し処理に関するストレージ制御装置１０２のチャネル制御部１２１の具体的な処理手順を示したフローチャートである。
【０１０１】
チャネル制御部１２１は、ホストコンピュータ１０１から入出力要求を受信すると、入出力要求に対する制御を行う入出力制御処理プログラム６０８を実行することにより、図１６に示す入出力制御処理の読出し処理手順ＲＴ２に従って、受信した入出力要求がリード要求であるか否かをチェックする（Ｓ２１）。そして、チャネル制御部１２１は、受信した入出力要求がリード要求でない場合（Ｓ２１：ＮＯ）には、この後、図１６に示す入出力制御処理の読出し処理手順ＲＴ２を終了する（Ｓ２９）。これに対して、チャネル制御部１２１は、受信した入出力要求がリード要求である場合（Ｓ２１：ＹＥＳ）には、キャッシュメモリ部１２２にリード要求に対応するリード対象のデータが格納されているか否かをチェックする（Ｓ２２）。
【０１０２】
そして、チャネル制御部１２１は、キャッシュメモリ部１２２にリード要求に対応するリード対象のデータが格納されていない場合（Ｓ２２：ＮＯ）には、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２の起動状況確認欄７２０を参照することにより、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間であるか否かをチェックする（Ｓ２３）。
【０１０３】
そして、チャネル制御部１２１は、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間である場合（Ｓ２３：ＹＥＳ）には、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２の起動状況確認欄７２０を参照することにより、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆが「ＦＭ優先」であるか否かチェックする（Ｓ２４）。
【０１０４】
そして、チャネル制御部１２１は、当該ＦＭＬＤＥＶ５０３Ｆが「ＦＭ優先」でない場合（Ｓ２４：ＮＯ）には、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３からホストコンピュータ１０１にリード対象のデータを読み出し（Ｓ２５）、この後、図１６に示す入出力制御処理の読出し処理手順ＲＴ２を終了する（Ｓ３０）。
【０１０５】
具体的に、チャネル制御部１２１は、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３からチャネル制御部１２１にリード対象のデータを読み出すようにディスク制御部１２４に指示し、ディスク制御部１２４が当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３からチャネル制御部１２１にリード対象のデータを読み出す。そして、チャネル制御部１２１は、この後、リード対象のデータをホストコンピュータ１０１に読み出す。
【０１０６】
これに対して、チャネル制御部１２１は、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆが「ＦＭ優先」でない場合（Ｓ２４：ＮＯ）には、当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にリード対象のデータが格納されているか否かをチェックする（Ｓ２６）。
【０１０７】
そして、チャネル制御部１２１は、当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にリード対象のデータが格納されてない場合（Ｓ２６：ＮＯ）には、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３にリード対象のデータが格納されていると判断する。一般に、ハードディスクドライブ１０３から読出し対象のデータを読み出す場合に比してフラッシュメモリ４０５から読み出したほうが読出し速度が速いことが知られている。このため、チャネル制御部１２１は、当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にリード対象のデータが格納されてない場合（Ｓ２６：ＮＯ）には、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されているリード対象のデータを読み出して、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に書き込み、当該フラッシュメモリ４０５の記憶領域に対応するハードディスクドライブ差分管理テーブル６０７の識別ビットを「０」にする（Ｓ２７）。
【０１０８】
具体的に、チャネル制御部１２１は、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されているリード対象のデータを読み出して、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に書き込むようにディスク制御部１２４及びフラッシュメモリ制御部１２５に指示し、ディスク制御部１２４リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されているリード対象のデータを読み出して、フラッシュメモリ制御部１２５がリード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に書き込む。
【０１０９】
これにより、ストレージ制御装置１０２は、次に当該リード対象のデータのリード要求を受信した場合に、ハードディスクドライブ１０３から読出し対象のデータを読み出す場合に比して読出し速度を向上することができ、これに伴ってアクセス向上することができる。
【０１１０】
やがて、チャネル制御部１２１は、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されているリード対象のデータを読み出して、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に書き込み、当該フラッシュメモリ４０５の記憶領域に対応するハードディスクドライブ差分管理テーブル６０７の識別ビットを「０」にした場合（Ｓ２７）、この他リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間でない場合（Ｓ２３：ＮＯ）には、リード対象のデータを読み出すべきＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５からホストコンピュータ１０１にリード対象のデータを読み出し（Ｓ２８）、この後、図１６に示す入出力制御処理の読出し処理手順ＲＴ２を終了する（Ｓ３０）。
【０１１１】
具体的に、チャネル制御部１２１は、当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５からチャネル制御部１２１にリード対象のデータを読み出すようにフラッシュメモリ制御部１２５に指示し、フラッシュメモリ制御部１２５が当該ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５からチャネル制御部１２１にリード対象のデータを読み出す。そして、チャネル制御部１２１は、この後、リード対象のデータをホストコンピュータ１０１に読み出す。
【０１１２】
これに対して、チャネル制御部１２１は、キャッシュメモリ部１２２にリード要求に対応するリード対象のデータが格納されている場合には、キャッシュメモリ部１２２からホストコンピュータ１０１にリード対象のデータを読み出し（Ｓ２９）、この後、図１６に示す入出力制御処理の読出し処理手順ＲＴ２を終了する（Ｓ３０）。
【０１１３】
図１７は、このストレージシステム１００におけるミラーリング制御処理に関するストレージ制御装置１０２のチャネル制御部１２１の具体的な処理手順を示したフローチャートである。
【０１１４】
チャネル制御部１２１は、ハードディスクドライブ１０３の起動及び停止に伴うミラーリング制御を行うミラーリング制御処理プログラム６０９を実行することにより、図１７に示すミラーリング制御処理手順ＲＴ３に従って、ＨＬＤＥＶ内デバイス起動間隔管理テーブルを参照することにより、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間であるか否かをチェックする（Ｓ３１）。
【０１１５】
そして、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間である場合（Ｓ３１：ＹＥＳ）には、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３を起動し（Ｓ３２）、この後、再び、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間であるか否かをチェックするステップＳ３１に戻り、同様の処理を繰り返す。
【０１１６】
これに対して、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間でない場合（Ｓ３１：ＮＯ）には、ＨＬＤＥＶ内デバイス起動間隔管理テーブルを参照することにより、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が停止時間であるか否かをチェックする（Ｓ３３）。
【０１１７】
そして、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が停止時間である場合（Ｓ３３：ＹＥＳ）には、ハードディスクドライブ差分管理テーブル６０７を参照することにより、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に差分のデータが格納されているか否かをチェックする（Ｓ３４）。
【０１１８】
そして、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に差分のデータが格納されていない場合（Ｓ３４：ＮＯ）には、この後、再び、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間となったか否かをチェックするステップＳ３１に戻り、同様の処理を繰り返す。
【０１１９】
これに対して、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に差分のデータが格納されている場合（Ｓ３４：ＹＥＳ）には、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されている差分のデータを読み出して、対応するＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に書き込む（Ｓ３５）。
【０１２０】
続いて、チャネル制御部１２１は、差分のデータの書込み処理が行われたフラッシュメモリ４０５の記憶領域に対応するハードディスクドライブ差分管理テーブル６０７の識別ビットを「０」にし（Ｓ３６）、この後、再び、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間となったか否かをチェックするステップＳ３１に戻り、同様の処理を繰り返す。
【０１２１】
これに対して、チャネル制御部１２１は、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が停止時間でない場合（Ｓ３３：ＹＥＳ）には、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動時間であると判断して、対応するＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ差分管理テーブル６０６を参照することにより、対応するＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に差分のデータが格納されているか否かをチェックする（Ｓ３７）。
【０１２２】
そして、チャネル制御部１２１は、対応するＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に差分のデータが格納されていない場合（Ｓ３７：ＮＯ）には、この後、再び、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間となったか否かをチェックするステップＳ３１に戻り、同様の処理を繰り返す。
【０１２３】
これに対して、チャネル制御部１２１は、対応するＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に差分のデータが格納されている場合（Ｓ３７：ＹＥＳ）には、対応するＦＭＬＤＥＶ５０３Ｆのハードディスクドライブ１０３に格納されている差分のデータを読み出して、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に書き込む（Ｓ３８）。
【０１２４】
具体的に、チャネル制御部１２１は、対応するＦＭＬＤＥＶ５０３Ｆのハードディスクドライブ１０３に格納されている差分のデータを読み出して、当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に書き込むようにディスク制御部１２４及びフラッシュメモリ制御部１２５に指示し、フラッシュメモリ制御部１２５対応するＦＭＬＤＥＶ５０３Ｆのハードディスクドライブ１０３に格納されている差分のデータを読み出して、ディスク制御部１２４が当該ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に書き込む。
【０１２５】
続いて、チャネル制御部１２１は、差分のデータの書込み処理が行われたハードディスクドライブ１０３の記憶領域に対応するフラッシュメモリ差分管理テーブル６０６の識別ビットを「０」にし（Ｓ３９）、この後、再び、ＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３が起動開始時間となったか否かをチェックするステップＳ３１に戻り、同様の処理を繰り返す。
【０１２６】
図１８は、このストレージシステム１００におけるハードディスクドライブ起動時間増減制御処理に関するストレージ制御装置１０２のチャネル制御部１２１の具体的な処理手順を示したフローチャートである。
【０１２７】
チャネル制御部１２１は、所定のタイミングごとに、ハードディスクドライブ１０３の起動時間の増加又は現象についての制御を行うハードディスクドライブ起動時間増減制御処理プログラム６１０を実行することにより、図１８に示すハードディスクドライブ起動時間増減制御処理手順ＲＴ４に従って、物理デバイス状況管理テーブル６０５を参照することにより、最初の物理デバイスを調査対象に設定する（Ｓ４１）。
【０１２８】
続いて、チャネル制御部１２１は、物理デバイス状況管理テーブル６０５を参照することにより、設定された物理デバイスが予め設定された閾値を超えているか否かをチェックする（Ｓ４２）。この場合、物理デバイスの総書込み回数、総消去回数、物理デバイスの不良ブロック数、不良ブロック増加率、平均消去時間、オン／オフ回数及び総稼働時間には、物理デバイスの故障管理及び長寿命化管理等のため、予め閾値が設定されている。
【０１２９】
そして、チャネル制御部１２１は、設定された物理デバイスが予め設定された閾値を超えている場合（Ｓ４２：ＹＥＳ）には、当該物理デバイスがフラッシュメモリ４０５であるか否かをチェックする（Ｓ４３）。
【０１３０】
そして、チャネル制御部１２１は、当該物理デバイスがフラッシュメモリ４０５である場合（Ｓ４３：ＹＥＳ）には、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を増加し、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）のリード処理を優先する。
【０１３１】
例えば、チャネル制御部１２１は、フラッシュメモリ４０５の総書込み回数が６５億回を超えた場合、総消去回数が５万回を超えた場合、不良ブロック数が３２０個を超えた場合、不良ブロック増加率が５％を超えた場合、平均消去時間が３ｍｓを越えた場合又は総稼動回数が７万５千時間を超えた場合に、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を２時間増加し、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）のリード処理を優先する。
【０１３２】
そして、チャネル制御部１２１は、当該物理デバイスがフラッシュメモリ４０５でない場合（Ｓ４３：ＹＥＳ）には、当該物理デバイスがハードディスクデバイス１０３であると判断して、当該ハードディスクデバイス１０３に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を減少する（Ｓ４４）。
【０１３３】
例えば、チャネル制御部１２１は、ハードディスクデバイス１０３の不良ブロック数が１６個を超えた場合、不良ブロック増加率が５％を超えた場合、オン／オフ回数が２万５千回を越えた場合又は総稼動回数が２０万時間を超えた場合に、当該ハードディスクデバイス１０３に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を２時間減少する。
【０１３４】
やがて、チャネル制御部１２１は、当該物理デバイスを追加・交換する必要があるか否かをチェックする（Ｓ４６）。そして、チャネル制御部１２１は、当該物理デバイスを追加・交換する必要がある場合（Ｓ４６：ＹＥＳ）には、物理デバイスを追加・交換する（Ｓ４７）。例えば、チャネル制御部１２１は、物理デバイスの寿命の８０％を第２の閾値として設定し、それを超えた場合、又は実際にアクセス不能等の状況が起きた場合に、物理デバイスを交換する。なお、チャネル制御部１２１は、アクセスの不能による故障ではない場合には、ウェアレベル（Wear Level）を下げる意味で、物理デバイスを追加することができる。例えば、４台でストライピング制御しているうちの２台がパリティ（Parity）だったハードディスクデバイス１０３を、６台でストライピング制御し、１台をパリティとすれば、１台当たりの利用量が減少することとなる。
【０１３５】
これに対して、チャネル制御部１２１は、設定された物理デバイスが予め設定された閾値を超えていない場合（Ｓ４２：ＮＯ）には、第１及び第２の入出力回数管理テーブル６０３、６０４を参照することにより、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のリード回数が優位であるか否かをチェックする（Ｓ４８）。そして、チャネル制御部１２１は、リード回数が優位である場合（Ｓ４８：ＹＥＳ）には、当該物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を減少する（Ｓ４９）。
【０１３６】
例えば、チャネル制御部１２１は、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のリード回数をライト回数で割ったときの商が「１０００以上」である場合にリード優位であると判断して、当該物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を２時間減少する。
【０１３７】
これに対して、チャネル制御部１２１は、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のリード回数が優位でない場合（Ｓ４８：ＮＯ）には、第１及び第２の入出力回数管理テーブル６０３、６０４を参照することにより、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のライト回数が優位であるか否かをチェックする（Ｓ５０）。
そして、チャネル制御部１２１は、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のライト回数が優位である場合（Ｓ５０：ＹＥＳ）には、当該物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を増加する（Ｓ５１）。
【０１３８】
例えば、チャネル制御部１２１は、当該物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のライト回数をリード回数で割ったときの商が「１０００以上」である場合にライト優位であると判断して、当該物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を２時間増加する。
【０１３９】
やがて、チャネル制御部１２１は、ライト優位でない物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を増加した場合（Ｓ５１）、この他リード優位である物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を減少した場合（Ｓ４９）、当該物理デバイスを追加・交換した場合（Ｓ４７）又は当該物理デバイスを追加・交換する必要がない場合（Ｓ４６：ＮＯ）には、対応する各種テーブルを更新する（Ｓ５２）。
【０１４０】
例えば、チャネル制御部１２１は、予め設定された閾値を超えた物理デバイスがフラッシュメモリ４０５であった場合には、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）におけるＨＬＤＥＶ内起動時間間隔管理テーブル６０２の起動時間設定欄７１６に格納されている起動時間を増加し、当該フラッシュメモリ４０５の優先リード処理確認欄７１９に格納されている「ＦＭ優先」を変更して、当該フラッシュメモリ４０５に対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の優先リード処理確認欄７１９に「ＨＤＤ優先」を格納する。
【０１４１】
また、例えば、チャネル制御部１２１は、予め設定された閾値を超えた物理デバイスを追加・交換する必要があった場合には、構成管理テーブル６０１、ＨＬＤＥＶ内デバイス起動間隔管理テーブル６０２及び第１及び第２の入出力管理テーブル６０３、６０４の構成を再設定する。
【０１４２】
やがて、チャネル制御部１２１は、対応する各種テーブルを更新した場合（Ｓ５２）、この他リード優位でない物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のライト回数が優位である場合（Ｓ５０：ＹＥＳ）には、すべての物理デバイスの調査が終了したか否かをチェックする（Ｓ５３）。そして、チャネル制御部１２１は、すべての物理デバイスの調査が終了していない場合（Ｓ５３：ＮＯ）には、物理デバイス状況管理テーブル６０５を参照することにより、次の物理デバイスを調査対象に設定し（Ｓ５４）、この後、再び、物理デバイス状況管理テーブル６０５を参照することにより、設定された物理デバイスが予め設定された閾値を超えているか否かをチェックするステップＳ４２に戻り、同様の処理を繰り返す。
【０１４３】
これに対して、チャネル制御部１２１は、すべての物理デバイスの調査が終了した場合（Ｓ５３：ＹＥＳ）には、この後、図１８に示すハードディスクドライブ起動時間増減制御処理手順ＲＴ４を終了する（Ｓ５５）。
【０１４４】
ここで、ハードディスクドライブ１０３の起動時間の増減量の算出方法の一例について説明する。ハードディスクドライブ１０３の寿命に関連する要素として、限界総起動時間を「Ｔmax」とし、限界オン／オフ回数を「Ｎon/offmax」とし、「Ｔmax70%」を「Ｔmax」の７０％の時間を表すとし、同様に、「Ｎon/off70%」を起動時間増減の閾値とする。フラッシュメモリ４０５においても、例えば、限界総書込み回数を「Ｎwrmax」とし、閾値を同様に「Ｎwrmax70%」とする。また、現在の起動時間設定を「Ｔon０」時間とする。
【０１４５】
例えば、チャネル制御部１２１は、第１の入出力回数管理テーブル６０３を参照することにより、所定の物理デバイスに対応するＨＬＤＥＶ５０４又はＬＤＥＶ５０３のリード回数をライト回数で割ったときの商が「１１００」となった場合、リード優位であると判断して、当該物理デバイスに対応するＬＤＥＶ５０３（ＨＤＤＬＤＥＶ５０３Ｈ）の起動時間を減少する。
【０１４６】
このとき、注意する必要のあるパラメータの一例として、フラッシュメモリ４０５に対する限界総書込み回数である「Ｎwrmax」がある。この限界値に対して、違反が起きないように、以下のような計算により、時間変更量を計算することができる。
【０１４７】
現在の１つ前のオフ時間になった時点を「Ｔ１」とし、そのときの総書込み回数を「ＮwrＴ１」とする。また、現在の時間「Ｔ２」における総書込み回数を「NwrＴ２」とし、フラッシュメモリ４０５の残保証寿命を「Tlifetimerest」とし、現在のＦＭＬＤＥＶ５０３Ｆの現在の総書込み回数を「ＮFMLDEVwrＴ２」とすると、
【０１４８】
【数１】
2008097237.tif 000003
【０１４９】
さらに、限界値を「Ｔb」とすると、
【０１５０】
【数２】
2008097237.tif 000004
【０１５１】
として、
【０１５２】
【数３】
2008097237.tif 000005
【０１５３】
の範囲で「Ｔonnew」に変更する。限界値「Ｔｂ」は、「１」以下になる場合があるが、その場合、例えば、「１」としておく。
【０１５４】
一方、起動時間を増加す場合に注意するべきパラメータの一例として、ハードディスクドライブ１０３の限界稼働時間がある。例えば、「Ｔon０」を「Ｔonnew」に変更する場合に、予め定めた閾値を超えないように変更するとして、現在の時間「Ｔ２」までの総稼働時間を「ＴontotalＴ２」とし、切り替え前の差分量の同期に掛かる平均的な時間を「Ｔtransfer」とし、差分のデータの転送が終了してからハードディスクドライブ１０３を停止させるまでの時間をスピンオフ時間を「Ｔspinoff」とすると、
【０１５５】
【数４】
2008097237.tif 000006
【０１５６】
【数５】
2008097237.tif 000007
【０１５７】
となる新しい「Ｔon」にする。
【０１５８】
このようにして、ストレージシステム１００では、フラッシュメモリ４０５等のアクセス性能においてハードディスクドライブ１０３との差異が明確な不揮発メモリを用意する。そして、ストレージシステム１００では、物理デバイス状況管理テーブル６０５により、そのような不揮発メモリには書き換え回数制限、書き換え寿命が存在することを考慮した状況のモニタリングを行い、またハードディスクドライブ１０３等のディスク状記憶デバイスで構成する記憶領域と、フラッシュメモリ４０５等の不揮発メモリで構成する記憶領域とをミラーリング制御することで、ストレージシステムの高いアクセス性能を維持しつつ、不揮発メモリの記憶領域を利用することで、消費電力の低減、不揮発メモリ及びディスク状記憶デバイスの寿命の伸長並びにアクセス性能の最適化をすることができる。
【０１５９】
具体的に、ストレージシステム１００では、ハードディスクドライブ１０３の記憶領域を一定時間又はモニタリング状況により、あるタイミングで停止状態にし、その間は冗長ペアであるフラッシュメモリ４０５の記憶領域で入出力要求を受け付ける。この際、ストレージシステム１００では、この間に起きる更新による差分を別途管理しておき、次のハードディスクドライブ１０３の起動時間のときに差分の同期を行う。
【０１６０】
この場合、ストレージシステム１００では、データに対するアクセスパターン、フラッシュメモリ４０５の書き換えアクティビティ、ハードディスクドライブ１０３の起動停止回数等が主なモニタリング項目であり、例えば、書き換えが少なく、読み出しが頻繁なデータを、ハードディスクドライブ１０３の停止時間を長くすることで、アクセス性能と低消費電力を両立させる。
【０１６１】
また、ストレージシステム１００では、書込み処理に関しては、従来からのキャッシュメモリ部１２２を利用したストレージシステム１００の利点を生かし、書込み性能の不利と書き換え寿命の不利を低減することも可能である。
【０１６２】
さらに、ストレージシステム１００では、リード時に、従来のキャッシュメモリ部１２２以外に、フラッシュメモリ４０５をあたかもリードキャッシュ領域的に利用することで、アクセス性能の向上が可能である。
【０１６３】
従って、ストレージシステム１００では、低消費電力であり、かつ、必要なデータにおいてのアクセス性能の低下を起こさず、大規模構成が可能な、データをハードディスクドライブ１０３又はフラッシュメモリ４０５等の最適なメディアに格納できるシステムを提供することができる。また、ストレージシステム１００では、各メディアの持つ特性（書き換え寿命や書込み性能、耐障害性）を考慮してシステム全体として、アクセス性能、信頼性、可用性の向上が可能となる。
【０１６４】
なお、本実施の形態においては、フラッシュメモリ４０５及びメモリコントローラ４０６によりフラッシュメモリ制御部１２５を構成した場合について述べたが、本発明ではこれに限らす、この他種々の構成に適用することができる。
【０１６５】
図１９は、フラッシュメモリ制御部１２５の別の詳細の構成であるフラッシュメモリ制御部８０１のブロック図である。フラッシュメモリ制御部８０１は、フラッシュメモリ４０５及びメモリコントローラ４０６の代わりに、フラッシュメモリデバイス８０２（本図では、フラッシュメモリ制御部８０１の内部にフラッシュメモリデバイス８０２を備える例を示している）、コネクタ８０３及びフラッシュメモリデバイス８０２を制御するフラッシュメモリプロトコル処理部８０４が設けられている点を除いて、フラッシュメモリ制御部１２５と同様に構成されている。
【０１６６】
フラッシュメモリ制御部８０１は、記憶素子としてフラッシュメモリデバイス８０２を用いている。フラッシュメモリデバイス８０２は、コネクタ８０３を介してフラッシュメモリプロトコル制御部８０４と接続されているため、脱着が可能となっている。このため、フラッシュメモリ制御部８０１は、フラッシュメモリデバイス８０２が故障した際には、交換することも可能となる（これを行うためには、チャネル制御部１２１のプロセッサ２０１が、予めフラッシュメモリデバイス８０２間で冗長構成をとるように、転送リスト４１１をセットしていればよい）。
【０１６７】
また、フラッシュメモリ制御部８０１は、フラッシュメモリデバイス８０２自体を、より容量の大きなものに交換することも可能となる。さらに、フラッシュメモリ制御部８０１は、フラッシュメモリデバイス８０２とのやり取りを、汎用的なプロトコル（例えば、ＯＮＦＩ（Open NAND flash Interface）のようなローレベル（Low Level）アクセスプロトコルやコンパクトフラッシュ（登録商標）（Compact Flash）のようなプロトコルなどがある）で行う。このため、フラッシュメモリ制御部８０１は、フラッシュメモリプロトコル処理部８０４において、ストレージ制御装置１０２内部で処理できる形式に変換を行っている。
【０１６８】
図２０は、フラッシュメモリ制御部８０１の別の詳細の構成であるフラッシュメモリ制御部８１０のブロック図である。フラッシュメモリ制御部８１０は、フラッシュメモリデバイス８０２をフラッシュメモリ側チャネル９０２により接続している。これにより、フラッシュメモリ制御部８１０は、図１９の特徴に加え、より多数のフラッシュメモリデバイス８０２を接続でき、大容量のストレージシステムを実現することができる。
【０１６９】
なお、本実施の形態においては、ＬＤＥＶ５０３に割り当てられるＤＥＶ５０１（フラッシュメモリ４０５）の記憶容量と、ＬＤＥＶ５０３に割り当てられるＤＥＶ５０１（ハードディスクドライブ１０３）の記憶容量とが同じ記憶容量となるように設定されている場合について述べたが、本発明はこれに限らず、ＬＤＥＶ５０３に割り当てられるＤＥＶ５０１（ハードディスクドライブ１０３）の記憶容量とが同じ記憶容量でなくとも良い。
【０１７０】
例えば、図２１のように、ＨＬＤＥＶ５０４を６００ＧＢｙｔｅに設定し、ＦＭＬＤＥＶ５０３Ｆを６０ＧＢｙｔｅに設定し、ＨＤＤＬＤＥＶ５０３Ｈを６００ＧＢｙｔｅに設定して、ＦＭＬＤＥＶ５０３ＦとＨＤＤＬＤＥＶ５０３Ｈとをペア構成にした場合でも、データアクセスに局所性があるときには、局所性のあるデータをＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５に格納することにより、本実施の形態と同様の効果を得ることができる。
【０１７１】
また、例えば、図２２のように、ハードディスクドライブ１０３及びディスク制御部１２４の代わりに、一体型ディスク制御部８０２及び一体型ハードディスクドライブ８２１を設けるようにしても良い。この場合、一体型ハードディスクドライブ８２１は、ハードディスクドライブ１０３の記憶容量に比してフラッシュメモリ４０５の記憶容量が少なくなるように設けられている。このように構成した場合についても、本実施の形態と同様の効果を得ることができる。以下、一体型ハードディスクドライブ８２１のハードディスクドライブ１０３の記憶容量を２００Ｂｙｔｅに設定し、一体型ハードディスクドライブ８２１のフラッシュメモリ４０５の記憶容量を２０Ｂｙｔｅに設定した場合について考える。
【０１７２】
この場合、例えば、図２３のように、ＨＬＤＥＶ５０４を１２０ＧＢｙｔｅに設定し、ＦＭＬＤＥＶ５０３Ｆを１２０ＧＢｙｔｅに設定し、ＨＤＤＬＤＥＶ５０３Ｈを１２０ＧＢｙｔｅに設定して、一体型ハードディスクドライブ８２１内のフラッシュメモリ４０５の記憶容量２０ＧＢｙｔｅ及びハードディスクドライブ１０３の記憶容量２０ＧＢｙｔｅ間でのみでミラーリング制御するように、ＦＭＬＤＥＶ５０３ＦとＨＤＤＬＤＥＶ５０３Ｈとをペア構成にした場合でも、本実施の形態と同様の効果を得ることができる。
【０１７３】
また、例えば、図２４のように、ＨＬＤＥＶ５０４を１２０ＧＢｙｔｅに設定し、ＦＭＬＤＥＶ５０３Ｆを１２０ＧＢｙｔｅに設定し、ＨＤＤＬＤＥＶ５０３Ｈを１２０ＧＢｙｔｅに設定して、一体型ハードディスクドライブ８２１のフラッシュメモリ４０５の記憶容量２０ＧＢｙｔｅと、他の一体型ハードディスクドライブ８２１のハードディスクドライブ１０３の記憶容量２０ＧＢｙｔｅとが独立してミラーリング制御するように、ＦＭＬＤＥＶ５０３ＦとＨＤＤＬＤＥＶ５０３Ｈとをペア構成にした場合でも、本実施の形態と同様の効果を得ることができる。
【０１７４】
さらに、例えば、図２５のように、ＨＬＤＥＶ５０４を６０ＧＢｙｔｅに設定し、ＦＭＬＤＥＶ５０３Ｆを６０ＧＢｙｔｅに設定し、ＨＤＤＬＤＥＶ５０３Ｈを６０ＧＢｙｔｅに設定して、一体型ハードディスクドライブ８２１内のフラッシュメモリ４０５の記憶容量２０ＧＢｙｔｅ及びハードディスクドライブ１０３の記憶容量２０ＧＢｙｔｅ間でのみでミラーリング制御し、かつ一体型ハードディスクドライブ８２１をミラーリング制御するように構成にした場合でも、本実施の形態と同様の効果を得ることができ、この他種々の構成にした場合にも、本実施の形態と同様の効果を得ることができる。
【０１７５】
さらに、本実施の形態においては、ＨＬＤＥＶ５０４に対して、フラッシュメモリ４０５によって構成されるＬＤＥＶ５０３を少なくとも１の冗長度をもって割り当てた場合について述べたが、本発明はこれに限らず、ＨＬＤＥＶ５０４に対して、フラッシュメモリ４０５によって構成されるＬＤＥＶ５０３を冗長度０、すなわち、フラッシュメモリ４０５によって構成されるＬＤＥＶ５０３のみを割り当てるようにしても良い。
【０１７６】
さらに、本実施の形態においては、ＦＭＬＤＥＶ５０３Ｆのフラッシュメモリ４０５にリード対象のデータが格納されてない場合（Ｓ２６：ＮＯ）には、リード対象のデータを読み出すべきＨＤＤＬＤＥＶ５０３Ｈのハードディスクドライブ１０３に格納されているリード対象のデータを読み出した場合について述べたが、本発明はこれに限らず、キャッシュメモリ部１２２に読み出すようにしても良い。
【０１７７】
さらに、本実施の形態においては、データを格納するためのフラッシュメモリ４０５を設けた場合について述べたが、本発明はこれに限らず、例えば、相変化メモリや半導体メモリ等のこの他種々の不揮発メモリに適用することができる。
【０１７８】
さらに、本実施の形態においては、フラッシュメモリ４０５よりもデータ書込み可能回数が多いディスク状記憶デバイスとしてハードディスクドライブ１０３を適用した場合について述べたが、本発明はこれに限らず、例えば、光ディスクや光磁気ディスク等のこの他種々のディスク状記憶デバイスに適用することができる。
【０１７９】
さらに、本実施の形態においては、ストレージシステム１００を、データを１つ又は複数のディスク装置又は記憶媒体に格納するストレージ制御装置及び複数のストレージ制御装置、テープライブラリ制御装置、光ディスクライブラリ制御装置、半導体ディスク制御装置などのソリッドステートディスク装置、フラッシュメモリに代表される、不揮発メモリを利用したストレージ装置などから構成されるストレージシステムに適用することができる。
【産業上の利用可能性】
【０１８０】
本発明は、データを格納するために１又は複数のハードディスクドライブを駆動制御するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１８１】
【図１】本実施の形態によるストレージシステムの概略的な構成を示すブロック図である。
【図２】チャネル制御部の概略的な構成を示すブロック図である。
【図３】ディスク制御部の概略的な構成を示すブロック図である。
【図４】フラッシュメモリ制御部の概略的な構成を示すブロック図である。
【図５】ストレージ制御装置内に構築される記憶階層の説明に供する概念図である。
【図６】ストレージ制御装置内に構築されるＨＬＤＥＶ及びＬＤＥＶの対応関係の説明に供する概念図である。
【図７】制御情報メモリ部に格納される各種テーブル及び各種プログラムの説明に供する概念図である。
【図８】構成管理テーブルの説明に供する概念図である。
【図９】ＨＬＤＥＶ内デバイス起動間隔管理テーブルの説明に供する概念図である。
【図１０】第１の入出力回数管理テーブルの説明に供する概念図である。
【図１１】第２の入出力回数管理テーブルの説明に供する概念図である。
【図１２】物理デバイス状況管理テーブルの説明に供する概念図である。
【図１３】フラッシュメモリ差分管理テーブル及びハードディスクドライブ差分管理テーブルの説明に供する概念図である。
【図１４】ハードディスクドライブにおける起動時間及び停止時間の切り替えタイミングの説明に供する概念図である。
【図１５】入出力制御処理の書込み処理手順の説明に供するフローチャートである。
【図１６】入出力制御処理の読出し処理手順の説明に供するフローチャートである。
【図１７】ミラーリング制御処理手順の説明に供するフローチャートである。
【図１８】ハードディスクドライブ起動時間増減制御処理手順の説明に供するフローチャートである。
【図１９】他の実施の形態によるフラッシュメモリ制御部の概略的な構成を示すブロック図である。
【図２０】他の実施の形態によるフラッシュメモリ制御部の概略的な構成を示すブロック図である。
【図２１】他の実施の形態によるストレージ制御装置内に構築されるＨＬＤＥＶ及びＬＤＥＶの対応関係の説明に供する概念図である。
【図２２】一体型ディスク制御部及び一体型ハードディスクドライブの概略的な構成を示すブロック図である。
【図２３】他の実施の形態によるストレージ制御装置内に構築されるＨＬＤＥＶ及びＬＤＥＶの対応関係の説明に供する概念図である。
【図２４】他の実施の形態によるストレージ制御装置内に構築されるＨＬＤＥＶ及びＬＤＥＶの対応関係の説明に供する概念図である。
【図２５】他の実施の形態によるストレージ制御装置内に構築されるＨＬＤＥＶ及びＬＤＥＶの対応関係の説明に供する概念図である。
【符号の説明】
【０１８２】
１００……ストレージシステム、１０１……ホストコンピュータ、１０２……ストレージ制御装置、１０３……ハードディスクドライブ、１２１……チャネル制御部、１２２……キャッシュメモリ部、１２３……制御情報メモリ部、１２４……ディスク制御部、１２５、８０１、８１０……フラッシュメモリ制御部、２０１、３０１……プロセッサ、４０５……フラッシュメモリ、４０６……メモリコントローラ、５０１……ＤＥＶ、５０２……ＶＤＥＶ、５０３……ＬＤＥＶ、５０３Ｆ……ＦＭＬＤＥＶ、５０３Ｈ……ＨＤＤＬＤＥＶ、５０４……ＨＬＤＥＶ、６０１……構成管理テーブル、６０２……ＨＬＤＥＶ内デバイス起動間隔管理テーブル、６０３……第１の入出力回数管理テーブル、６０４……第２の入出力回数管理テーブル、６０５……物理デバイス状況管理テーブル、６０６……フラッシュメモリ差分管理テーブル、６０７……ハードディスクドライブ差分管理テーブル、６０８……入出力制御プログラム、６０９……ミラーリング制御プログラム、６１０……ハードディスクドライブ起動時間増減制御プログラム
【図１】
2008097237.tif 000008
【図２】
2008097237.tif 000009
【図３】
2008097237.tif 000010
【図４】
2008097237.tif 000011
【図５】
2008097237.tif 000012
【図６】
2008097237.tif 000013
【図７】
2008097237.tif 000014
【図８】
2008097237.tif 000015
【図９】
2008097237.tif 000016
【図１０】
2008097237.tif 000017
【図１１】
2008097237.tif 000018
【図１２】
2008097237.tif 000019
【図１３】
2008097237.tif 000020
【図１４】
2008097237.tif 000021
【図１５】
2008097237.tif 000022
【図１６】
2008097237.tif 000023
【図１７】
2008097237.tif 000024
【図１８】
2008097237.tif 000025
【図１９】
2008097237.tif 000026
【図２０】
2008097237.tif 000027
【図２１】
2008097237.tif 000028
【図２２】
2008097237.tif 000029
【図２３】
2008097237.tif 000030
【図２４】
2008097237.tif 000031
【図２５】
2008097237.tif 000032