(57)【要約】【課題】Ｉ／Ｏ遅延の発生や省エネ効果の低減を回避しつつ、回転を停止するディスクを有効に利用する。【解決手段】ディスクアレイ装置１００は、ＨＤＤ３００のディスクの回転が停止している場合、ホストコンピュータ５００からの書き込み要求がある度にデータをＳＳＤ４００のメモリに書き込む。ディスクアレイ装置１００は、ＳＳＤ４００のメモリへのデータの書き込み状況が一定の条件を満たしたら、ＨＤＤ３００のディスクの回転を開始してＳＳＤ４００のメモリからＨＤＤ３００のディスクにデータを転送する。【選択図】図１
2013206009.tif 000002
【特許請求の範囲】
【請求項１】
ディスクにデータを記憶するディスクドライブと、メモリにデータを記憶するメモリドライブとを制御するドライブ制御装置であって、
ホストコンピュータから入力を受け付けるホストインタフェース部と、
前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記メモリに書き込むよう前記メモリドライブを制御するメモリアクセス制御部と、
前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリアクセス制御部の制御による前記メモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定するメモリ書き込み状況判定部と、
前記メモリ書き込み状況判定部により前記書き込み状況が前記条件を満たしたと判定された場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御するディスク回転制御部と、
前記ディスク回転制御部の制御により前記ディスクドライブが前記ディスクの回転を開始した場合、前記メモリに書き込まれているデータを転送するよう前記メモリドライブを制御するとともに前記メモリドライブから転送されるデータを前記ディスクに書き込むよう前記ディスクドライブを制御するディスクアクセス制御部と
を備えることを特徴とするドライブ制御装置。
【請求項２】
前記ドライブ制御装置は、さらに、
前記メモリとは別のメモリであり、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを記憶するキャッシュ
を備え、
前記メモリアクセス制御部は、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記キャッシュから前記メモリドライブに転送して当該データを前記メモリに書き込むよう前記メモリドライブを制御し、
前記ディスクアクセス制御部は、前記ディスクドライブが前記ディスクの回転を開始している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記キャッシュから前記ディスクドライブに転送して当該データを前記ディスクに書き込むよう前記ディスクドライブを制御することを特徴とする請求項１のドライブ制御装置。
【請求項３】
前記メモリ書き込み状況判定部は、前記メモリアクセス制御部の制御により前記メモリに書き込まれ、かつ、まだ前記ディスクアクセス制御部の制御により前記ディスクに書き込まれていないデータの量が予め定められた量に達した場合、前記書き込み状況が前記条件を満たしたと判定することを特徴とする請求項１又は２のドライブ制御装置。
【請求項４】
前記メモリ書き込み状況判定部は、前記メモリアクセス制御部の制御により前記メモリにデータが書き込まれる頻度が予め定められた頻度に達した場合、前記書き込み状況が前記条件を満たしたと判定することを特徴とする請求項１から３のいずれかのドライブ制御装置。
【請求項５】
前記ドライブ制御装置は、さらに、
前記ディスクの記憶領域を分割した複数の論理ユニットと、それぞれの論理ユニットに個別に割り当てられる前記メモリのアドレスとの対応関係を記憶するアドレスマッピング部
を備え、
前記メモリアクセス制御部は、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求として、前記複数の論理ユニットのうちいずれかの論理ユニットを指定する書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該論理ユニットに対応する前記メモリのアドレスを前記アドレスマッピング部から読み出し、当該データを当該アドレスに書き込むよう前記メモリドライブを制御することを特徴とする請求項１から４のいずれかのドライブ制御装置。
【請求項６】
前記メモリ書き込み状況判定部は、前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリアクセス制御部の制御による前記メモリへのデータの書き込み状況が、前記条件として、予め論理ユニットごとに定められた条件を満たしたかどうかを判定することを特徴とする請求項５のドライブ制御装置。
【請求項７】
前記ドライブ制御装置は、さらに、
前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクからのデータの読み取り要求が前記ホストコンピュータから前記ホストインタフェース部に入力されると、当該データが前記メモリに書き込まれているかどうかを判定するメモリ書き込み有無判定部
を備え、
前記ディスク回転制御部は、前記メモリ書き込み有無判定部により前記ホストコンピュータから読み取りを要求されたデータが前記メモリに書き込まれていないと判定された場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御し、
前記ディスクアクセス制御部は、前記ディスク回転制御部の制御により前記ディスクドライブが前記ディスクの回転を開始した場合、前記ホストコンピュータから読み取りを要求されたデータを前記ディスクから読み取るよう前記ディスクドライブを制御し、
前記ホストインタフェース部は、前記ディスクアクセス制御部の制御により前記ディスクから読み取られたデータを前記ホストコンピュータに対して出力し、
前記メモリアクセス制御部は、前記ディスクアクセス制御部の制御により前記ディスクから読み取られたデータを前記メモリに書き込むよう前記メモリドライブを制御することを特徴とする請求項１から６のいずれかのドライブ制御装置。
【請求項８】
請求項１から７のいずれかのドライブ制御装置と、
前記ディスクドライブと、
前記メモリドライブと
を備えることを特徴とするストレージシステム。
【請求項９】
ディスクにデータを記憶するディスクドライブと、メモリにデータを記憶するメモリドライブとを制御するドライブ制御方法であって、
ホストコンピュータから入力を受け付けるホストインタフェース部を備えるドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記メモリに書き込むよう前記メモリドライブを制御し、
前記ドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定し、
前記ドライブ制御装置が、前記書き込み状況が前記条件を満たしたと判定した場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御し、
前記ドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を開始した場合、前記メモリに書き込まれているデータを転送するよう前記メモリドライブを制御するとともに前記メモリドライブから転送されるデータを前記ディスクに書き込むよう前記ディスクドライブを制御することを特徴とするドライブ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドライブ制御装置及びストレージシステム及びドライブ制御方法に関するものである。本発明は、特に、省エネモード付ディスクアレイ装置に関するものである。
【背景技術】
【０００２】
二重化したディスクアレイのうち一方のディスクアレイのディスクの回転を停止する省エネ（パワーセーブ）機能を持つディスクアレイ装置が知られている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６１２９１号公報
【特許文献２】特開２００９−８０６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のディスクアレイ装置では、ディスクの回転が停止しているディスクアレイを有効に利用できないか、あるいは、利用できたとしても、アクセス要求がある度にディスクの回転を開始するため、Ｉ／Ｏ（インプット／アウトプット）遅延が発生したり、省エネ効果が低減したりしてしまうという課題があった。
【０００５】
本発明は、例えば、Ｉ／Ｏ遅延の発生や省エネ効果の低減を回避しつつ、回転を停止するディスクを有効に利用することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の態様に係るドライブ制御装置は、
ディスクにデータを記憶するディスクドライブと、メモリにデータを記憶するメモリドライブとを制御するドライブ制御装置であって、
ホストコンピュータから入力を受け付けるホストインタフェース部と、
前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記メモリに書き込むよう前記メモリドライブを制御するメモリアクセス制御部と、
前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリアクセス制御部の制御による前記メモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定するメモリ書き込み状況判定部と、
前記メモリ書き込み状況判定部により前記書き込み状況が前記条件を満たしたと判定された場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御するディスク回転制御部と、
前記ディスク回転制御部の制御により前記ディスクドライブが前記ディスクの回転を開始した場合、前記メモリに書き込まれているデータを転送するよう前記メモリドライブを制御するとともに前記メモリドライブから転送されるデータを前記ディスクに書き込むよう前記ディスクドライブを制御するディスクアクセス制御部とを備える。
【０００７】
一例において、
前記ドライブ制御装置は、さらに、
前記メモリとは別のメモリであり、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを記憶するキャッシュを備え、
前記メモリアクセス制御部は、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記キャッシュから前記メモリドライブに転送して当該データを前記メモリに書き込むよう前記メモリドライブを制御し、
前記ディスクアクセス制御部は、前記ディスクドライブが前記ディスクの回転を開始している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記キャッシュから前記ディスクドライブに転送して当該データを前記ディスクに書き込むよう前記ディスクドライブを制御する。
【０００８】
一例において、
前記メモリ書き込み状況判定部は、前記メモリアクセス制御部の制御により前記メモリに書き込まれ、かつ、まだ前記ディスクアクセス制御部の制御により前記ディスクに書き込まれていないデータの量が予め定められた量に達した場合、前記書き込み状況が前記条件を満たしたと判定する。
【０００９】
一例において、
前記メモリ書き込み状況判定部は、前記メモリアクセス制御部の制御により前記メモリにデータが書き込まれる頻度が予め定められた頻度に達した場合、前記書き込み状況が前記条件を満たしたと判定する。
【００１０】
一例において、
前記ドライブ制御装置は、さらに、
前記ディスクの記憶領域を分割した複数の論理ユニットと、それぞれの論理ユニットに個別に割り当てられる前記メモリのアドレスとの対応関係を記憶するアドレスマッピング部を備え、
前記メモリアクセス制御部は、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求として、前記複数の論理ユニットのうちいずれかの論理ユニットを指定する書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該論理ユニットに対応する前記メモリのアドレスを前記アドレスマッピング部から読み出し、当該データを当該アドレスに書き込むよう前記メモリドライブを制御する。
【００１１】
一例において、
前記メモリ書き込み状況判定部は、前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリアクセス制御部の制御による前記メモリへのデータの書き込み状況が、前記条件として、予め論理ユニットごとに定められた条件を満たしたかどうかを判定する。
【００１２】
一例において、
前記ドライブ制御装置は、さらに、
前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクからのデータの読み取り要求が前記ホストコンピュータから前記ホストインタフェース部に入力されると、当該データが前記メモリに書き込まれているかどうかを判定するメモリ書き込み有無判定部を備え、
前記ディスク回転制御部は、前記メモリ書き込み有無判定部により前記ホストコンピュータから読み取りを要求されたデータが前記メモリに書き込まれていないと判定された場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御し、
前記ディスクアクセス制御部は、前記ディスク回転制御部の制御により前記ディスクドライブが前記ディスクの回転を開始した場合、前記ホストコンピュータから読み取りを要求されたデータを前記ディスクから読み取るよう前記ディスクドライブを制御し、
前記ホストインタフェース部は、前記ディスクアクセス制御部の制御により前記ディスクから読み取られたデータを前記ホストコンピュータに対して出力し、
前記メモリアクセス制御部は、前記ディスクアクセス制御部の制御により前記ディスクから読み取られたデータを前記メモリに書き込むよう前記メモリドライブを制御する。
【００１３】
本発明の一の態様に係るストレージシステムは、
前記ドライブ制御装置と、
前記ディスクドライブと、
前記メモリドライブとを備える。
【００１４】
本発明の一の態様に係るドライブ制御方法は、
ディスクにデータを記憶するディスクドライブと、メモリにデータを記憶するメモリドライブとを制御するドライブ制御方法であって、
ホストコンピュータから入力を受け付けるホストインタフェース部を備えるドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を停止している場合、前記ディスクへのデータの書き込み要求が前記ホストコンピュータから前記ホストインタフェース部に入力される度に、当該データを前記メモリに書き込むよう前記メモリドライブを制御し、
前記ドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を停止している状態で、前記メモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定し、
前記ドライブ制御装置が、前記書き込み状況が前記条件を満たしたと判定した場合、前記ディスクの回転を開始するよう前記ディスクドライブを制御し、
前記ドライブ制御装置が、前記ディスクドライブが前記ディスクの回転を開始した場合、前記メモリに書き込まれているデータを転送するよう前記メモリドライブを制御するとともに前記メモリドライブから転送されるデータを前記ディスクに書き込むよう前記ディスクドライブを制御するものである。
【発明の効果】
【００１５】
本発明の一の態様によれば、ディスクの回転が停止している場合、書き込み要求がある度にデータをメモリに書き込み、メモリへのデータの書き込み状況が一定の条件を満たしたら、ディスクの回転を開始してメモリからディスクにデータを転送するため、Ｉ／Ｏ遅延の発生や省エネ効果の低減を回避しつつ、回転を停止するディスクを有効に利用することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係るディスクアレイ装置の構成を示すブロック図。
【図２】実施の形態１の比較例に係るディスクアレイ装置の構成を示すブロック図。
【図３】実施の形態１に係るディスクアレイ装置が書き込み要求を処理する際のデータの流れを示す図。
【図４】実施の形態１に係るディスクアレイ装置が書き込み要求を処理する際のデータの流れを示す図。
【図５】実施の形態２に係るディスクアレイ装置の構成を示すブロック図。
【図６】実施の形態２に係るディスクアレイ装置が読み取り要求を処理する際のデータの流れを示す図。
【図７】実施の形態２に係るディスクアレイ装置が読み取り要求を処理する際のデータの流れを示す図。
【図８】実施の形態２に係るディスクアレイ装置が読み取り要求を処理する際のデータの流れを示す図。
【図９】実施の形態２に係るディスクアレイ装置が読み取り要求を処理する際のデータの流れを示す図。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図を用いて説明する。
【００１８】
実施の形態１．
本実施の形態では、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）を複数搭載し、複数のＨＤＤによるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ・Ａｒｒａｙｓ・ｏｆ・Ｉｎｄｅｐｅｎｄｅｎｔ・Ｄｉｓｋｓ）機能を持ち、搭載ＨＤＤを停止することで省エネルギーを実現するためのパワーセーブ機能を有するディスクアレイ装置において、ディスクアレイコントローラ内のキャッシュメモリとディスク制御部との間にＳＳＤ（Ｓｏｌｉｄ・Ｓｔａｔｅ・Ｄｒｉｖｅ）を設ける。ディスクアレイ装置に搭載しているＨＤＤがパワーセーブ機能によりスピンドルモータの回転を停止（スピンダウン）している場合に、ホストコンピュータからのアクセス要求があったときは、ＨＤＤがＲｅａｄｙ（スピンアップ）状態になるまでのアクセス遅延をＳＳＤへのＲｅａｄ／Ｗｒｉｔｅ（読み取り／書き込み）によって吸収することで、アクセス性能の低下を抑えながら、ＨＤＤのスピンアップ／ダウンを自動制御する省エネモードを実現する。また、この省エネモードによって、主にバックアップ用途のストレージにしか利用できなかったパワーセーブ機能を通常ホストコンピュータが使用するオンラインストレージにも適用できるようになり、省エネルギーの効果を上げることが可能となる。
【００１９】
図１は、本実施の形態に係るディスクアレイ装置１００の構成を示すブロック図である。図２は、本実施の形態の比較例に係るディスクアレイ装置２００の構成を示すブロック図である。
【００２０】
まず、図２に示した比較例に係るディスクアレイ装置２００の構成について説明する。
【００２１】
図２において、ディスクアレイ装置２００は、ｎ個（ｎは自然数）のＲＡＩＤグループ１〜ｎと、２個のコントローラ２０１とを備える。
【００２２】
ＲＡＩＤグループ１〜ｎは、ディスクアレイであり、それぞれ複数のＨＤＤ３００で構成されている。
【００２３】
コントローラ２０１は、それぞれホストインタフェース部２０２（ホストＩ／Ｆ部）、ネットワークインタフェース部２０３（ネットワークＩ／Ｆ部）、ディスク制御部２０４、ディスクアレイ制御部２０５、キャッシュメモリ２０６を備える。
【００２４】
ホストインタフェース部２０２は、ホストコンピュータ５００と接続されている。ネットワークインタフェース部２０３は、管理用のＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）と接続されている。ディスク制御部２０４は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００と接続されている。ディスクアレイ制御部２０５は、ホストインタフェース部２０２を介してホストコンピュータ５００からの要求を受け取ると、ディスク制御部２０４を介してＲＡＩＤグループ１〜ｎのＨＤＤ３００へのデータの書き込み、又は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００からのデータの読み取りを行う。また、ディスクアレイ制御部２０５は、ネットワークインタフェース部２０３を介して入力されるＬＡＮからの指示を受けると、ディスクアレイ装置２００の各部の設定や状態通知等を行う。キャッシュメモリ２０６は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００に書き込まれるデータ、及び、ＲＡＩＤグループ１〜ｎのＨＤＤ３００から読み取られるデータを一時的に保存する揮発性メモリである。
【００２５】
ディスクアレイ装置２００のパワーセーブ機能を実現する第１の方式において、ディスクアレイ制御部２０５は、ホストコンピュータ５００からホストインタフェース部２０２を経由してＳＣＳＩ（Ｓｍａｌｌ・Ｃｏｍｐｕｔｅｒ・Ｓｙｓｔｅｍ・Ｉｎｔｅｒｆａｃｅ）のＳＴＡＲＴ・ＳＴＯＰ・Ｕｎｉｔコマンドを受信する。あるいは、ディスクアレイ制御部２０５は、ＬＡＮからネットワークインタフェース部２０３を経由して指示を受ける。そして、ディスクアレイ制御部２０５は、ＳＣＳＩのコマンド又は指示に従ってＨＤＤ３００のスピンドルモータのオン／オフを行う。
【００２６】
ディスクアレイ装置２００のパワーセーブ機能を実現する第２の方式において、ディスクアレイ制御部２０５は、ホストコンピュータ５００からのアクセスが予め設定された時間を経過してもなかった場合、自動的にＨＤＤ３００のスピンドルモータの回転を停止してスタンバイモードに移行する。
【００２７】
第１の方式では、ＨＤＤ３００へのアクセス再開時に、ディスクアレイ制御部２０５は、再度ＳＣＳＩのＳＴＡＲＴ・ＳＴＯＰ・Ｕｎｉｔコマンドを受信してＨＤＤ３００のスピンドルモータをオンにする。第２の方式では、ディスクアレイ制御部２０５は、スタンバイモード中に書き込み（ライト）又は読み取り（リード）のコマンドを受信することで自動的にＨＤＤ３００のスピンドルモータの回転を開始し、アイドルモードに戻る。
【００２８】
どちらの方式でもスピンドルモータが規定の回転数に到達し、Ｒｅａｄｙ状態となるまではホストコンピュータ５００から実際のディスクアクセスはできないため、ＨＤＤ３００へのアクセス再開時にはホストアクセスのＩ／Ｏ遅延が発生する。したがって、これらの方式は、予め長時間ディスクアクセスのないことが分かっている場合や、バックアップ用途等、ディスクアクセスの時間帯をスケジュール可能な場合にしか利用できない。また、これらの方式では、スピンドルモータがオフのときに書き込み又は読み取りの要求があると、毎回スピンドルモータの回転を再開しなければならないため、省エネルギー効果が限定的である。
【００２９】
次に、図１に示した本実施の形態に係るディスクアレイ装置１００の構成について説明する。
【００３０】
図１において、ディスクアレイ装置１００は、ストレージシステムの一例であり、ｎ個（ｎは１以上の自然数）のＲＡＩＤグループ１〜ｎと、２個のコントローラ１０１とを備える。
【００３１】
ＲＡＩＤグループ１〜ｎは、図２に示した例と同様に、ディスクアレイであり、それぞれ複数のＨＤＤ３００で構成されている。なお、ＲＡＩＤグループ１〜ｎのそれぞれのＲＡＩＤレベル（例えば、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６）は任意である。ＲＡＩＤレベルの異なるＲＡＩＤグループが混在していても構わない。また、ＲＡＩＤグループ１〜ｎの代わりに、ＲＡＩＤ以外の技術によるディスクアレイを使用してもよいし、ディスクアレイではない単体のディスクドライブを１つ又は複数使用してもよい。
【００３２】
それぞれのＲＡＩＤグループでは、任意のディスク容量をＬＵ（Ｌｏｇｉｃａｌ・Ｕｎｉｔ）（論理ユニット）として複数設定できる。例えば、ＲＡＩＤグループ１が５個のＨＤＤ３００で構成されたディスクアレイであれば、５個のＨＤＤ３００それぞれの特定のアドレス範囲をＬＵ１、５個のＨＤＤ３００それぞれの別のアドレス範囲をＬＵ２、・・・といった形で複数のＬＵを設定することができる。各ＬＵは、ホストコンピュータ５００から別々の物理ディスクとして認識される。
【００３３】
ＨＤＤ３００は、ディスク（具体的には、磁気ディスク）にデータを記憶するディスクドライブである。なお、ＨＤＤ３００の代わりに、他の種類のディスクドライブ（例えば、光ディスクにデータを記憶するディスクドライブ）を使用してもよい。
【００３４】
コントローラ１０１は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００と、内蔵するＳＳＤ４００とを制御するドライブ制御装置である。なお、ＳＳＤ４００はコントローラ１０１の外部に設置されてもよい。
【００３５】
ＳＳＤ４００は、メモリ（具体的には、フラッシュメモリ）にデータを記憶するメモリドライブである。なお、ＳＳＤ４００の代わりに、他の種類のメモリドライブを使用してもよい。また、ＳＳＤ４００又はその他の種類のメモリドライブを複数使用してもよい。
【００３６】
本実施の形態では、同じ機能を持つコントローラ１０１をディスクアレイ装置１００に２個搭載して冗長構成をとっているが、コントローラ１０１を１個のみ搭載するようにしてもよいし、３個以上搭載するようにしてもよい。
【００３７】
コントローラ１０１は、それぞれホストインタフェース部１０２、ネットワークインタフェース部１０３、ディスク制御部１０４、ディスクアレイ制御部１０５、キャッシュメモリ１０６（キャッシュ）を備える。
【００３８】
ホストインタフェース部１０２は、ホストコンピュータ５００と接続されている。ホストインタフェース部１０２は、ホストコンピュータ５００からの入力を受け付けたり、ホストコンピュータ５００に対する出力を行ったりする。そのために、ホストインタフェース部１０２は、例えば、ホストコンピュータ５００とＳＣＳＩチャネルの接続を行う。
【００３９】
ネットワークインタフェース部１０３は、管理用のＬＡＮと接続されている。ネットワークインタフェース部１０３は、ＬＡＮ（実際には、ＬＡＮに接続された管理用の端末等）からの信号（ディスクアレイ装置１００の各部の設定や状態通知等を行うための信号）を受信したり、ＬＡＮに対する信号を送信したりする。
【００４０】
ディスク制御部１０４は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００と接続されている。ディスク制御部１０４は、ＨＤＤ３００に対するディスクＩ／Ｏを制御する。そのために、ディスク制御部１０４は、例えば、ＨＤＤ３００とファイバチャネル、ＳＣＳＩチャネル、ＳＡＳ（Ｓｅｒｉａｌ・Ａｔｔａｃｈｅｄ・ＳＣＳＩ）チャネル等の接続を行う。
【００４１】
ディスクアレイ制御部１０５は、ホストインタフェース部１０２又はネットワークインタフェース部１０３を介して、ＲＡＩＤグループ単位（ＬＵ単位でもよい）で省エネモードの指定の入力を受け付ける。ディスクアレイ制御部１０５は、省エネモードを指定されたＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵに対してホストコンピュータ５００からのアクセスが予め設定された時間を経過してもなかった場合、自動的に、そのＲＡＩＤグループのＨＤＤ３００のスピンドルモータの回転を停止してスタンバイモードに移行する。あるいは、ディスクアレイ制御部１０５は、ホストコンピュータ５００からホストインタフェース部１０２を経由して、特定のＲＡＩＤグループの稼働停止を指示するＳＣＳＩのＳＴＡＲＴ・ＳＴＯＰ・Ｕｎｉｔコマンドを受信するか、又は、ＬＡＮからネットワークインタフェース部１０３を経由して同様の指示を受けた場合、そのＲＡＩＤグループのＨＤＤ３００のスピンドルモータの回転を停止してスタンバイモードに移行する。
【００４２】
本実施の形態では、スタンバイモード中のＲＡＩＤグループのＨＤＤ３００がスピンアップしてアイドルモード（Ｒｅａｄｙ状態）になるまでの間、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵに対するホストコンピュータ５００からのアクセスを、キャッシュメモリ１０６とＲＡＩＤグループ１〜ｎのＨＤＤ３００を制御するディスク制御部１０４との間に設けられたＳＳＤ４００が受ける。このような方式を採用することにより、ディスクＩ／Ｏの遅延を極小化することが可能となる。
【００４３】
ディスクアレイ制御部１０５は、上記のような方式を実施するための構成要素として、ディスクアクセス制御部１０７、メモリアクセス制御部１０８、アドレスマッピング部１０９、メモリ書き込み状況判定部１１０、ディスク回転制御部１１１を備える。ディスクアレイ制御部１０５の各部の動作については後述する。
【００４４】
キャッシュメモリ１０６は、ＲＡＩＤグループ１〜ｎのＨＤＤ３００に書き込まれるデータ、及び、ＲＡＩＤグループ１〜ｎのＨＤＤ３００から読み取られるデータを一時的に保存する揮発性メモリである。なお、キャッシュメモリ１０６として、不揮発性メモリを使用してもよい。
【００４５】
図示していないが、本実施の形態において、コントローラ１０１は、それぞれコンピュータであり、各種ハードウェアデバイスを備えている。ハードウェアデバイスはケーブルや信号線で接続されている。
【００４６】
コントローラ１０１は、処理装置として、例えばプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵは、バスを介して各種インタフェース部や記憶装置と接続され、これらを制御する。コントローラ１０１は、インタフェース部として、ホストインタフェース部１０２、ネットワークインタフェース部１０３、ディスク制御部１０４等を備えている。コントローラ１０１は、記憶装置として、キャッシュメモリ１０６、ＳＳＤ４００のほか、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）等を備えている。記憶装置には、プログラム群、ファイル群が記憶されている。プログラム群のプログラムは、ＣＰＵにより実行される。プログラム群には、ディスクアレイ制御部１０５を構成する各部の機能を実行するプログラムが含まれている。プログラムは、ＣＰＵにより読み出されて実行される。ファイル群には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、記憶装置に記憶される。記憶装置に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵによりメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵの処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵの処理中、データや情報や信号値や変数値やパラメータは、メモリに一時的に記憶される。
【００４７】
本実施の形態の説明において用いる図面の矢印の部分は主としてデータや信号の入出力を示す。データや信号は、記憶装置に記録される。また、データや信号は、バス、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００４８】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、記憶装置に記憶される。プログラムはＣＰＵにより読み出され、ＣＰＵにより実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００４９】
以下では、図１に示した本実施の形態に係るディスクアレイ装置１００の各部の動作（本実施の形態に係るドライブ制御方法、本実施の形態に係るプログラムの処理手順）について説明する。
【００５０】
図３及び図４は、ディスクアレイ装置１００が書き込み要求を処理する際のデータの流れを示す図である。
【００５１】
図３は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンアップ状態（稼働中）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した書き込み要求があった場合のデータの流れを示している。
【００５２】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの書き込み要求（Ｗｒｉｔｅ要求）の入力を受け付ける。書き込み要求は、例えばＳＣＳＩのＷｒｉｔｅコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５は、書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力されると、書き込みが要求されたデータ、即ち、書き込みデータ（Ｗｒｉｔｅデータ）を、ホストインタフェース部１０２を介してホストコンピュータ５００から受信する。ディスクアレイ制御部１０５は、受信した書き込みデータをキャッシュメモリ１０６に保存する。
（３）ディスクアレイ制御部１０５は、書き込みの完了報告（Ｉ／Ｏ終了の報告）を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（４）ディスクアレイ制御部１０５のディスクアクセス制御部１０７は、キャッシュメモリ１０６に保存した書き込みデータを、ディスク制御部１０４を介して、書き込み要求で指定されたＲＡＩＤグループ又はＬＵのＨＤＤ３００に転送する。ＨＤＤ３００は、ディスクアクセス制御部１０７により転送された書き込みデータをディスクに書き込む。この動作はいわゆるライトバック方式であり、キャッシュメモリ１０６に書き込まれたデータは、ホストコンピュータ５００のＩ／Ｏとは非同期にデステージ処理によってＨＤＤ３００に書き込まれる。
【００５３】
上記のように、本実施の形態において、キャッシュメモリ１０６は、ＨＤＤ３００のディスクへのデータの書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力される度に、当該データを記憶する。
【００５４】
また、本実施の形態において、ディスクアクセス制御部１０７は、ＨＤＤ３００がディスクの回転を開始している場合、ＨＤＤ３００のディスクへのデータの書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力される度に、当該データをキャッシュメモリ１０６からＨＤＤ３００に転送して当該データをディスクに書き込むようＨＤＤ３００を制御する。
【００５５】
図４は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンダウン状態（稼働停止）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した書き込み要求があった場合のデータの流れを示している。
【００５６】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの書き込み要求（Ｗｒｉｔｅ要求）の入力を受け付ける。前述したように、書き込み要求は、例えばＳＣＳＩのＷｒｉｔｅコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５は、書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力されると、書き込みデータ（Ｗｒｉｔｅデータ）を、ホストインタフェース部１０２を介してホストコンピュータ５００から受信する。ディスクアレイ制御部１０５は、受信した書き込みデータをキャッシュメモリ１０６に保存する。
（３）ディスクアレイ制御部１０５は、書き込みの完了報告を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。なお、ここまでの動作は、図３の場合と同様である。
（４）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、所定のタイミングで（例えば、書き込みデータがキャッシュメモリ１０６に保存されるのとほとんど同時に）、書き込みデータをＳＳＤ４００に転送する。このとき、メモリアクセス制御部１０８は、書き込み要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをアドレスマッピング部１０９から読み出し、そのアドレスをＳＳＤ４００に対して指定する。ここで、アドレスマッピング部１０９は、ＲＡＩＤグループ１〜ｎ又はＲＡＩＤグループ１〜ｎの各ＬＵと、ＳＳＤ４００のメモリのアドレスとの対応関係を予め記憶しているものとする。ＳＳＤ４００は、メモリアクセス制御部１０８により転送された書き込みデータを、メモリアクセス制御部１０８により指定されたメモリのアドレスに書き込む。このように、キャッシュメモリ１０６に書き込まれたデータは、ホストコンピュータ５００のＩ／Ｏとは非同期にデステージ処理によってＳＳＤ４００に書き込まれる。
（５）ディスクアレイ制御部１０５のメモリ書き込み状況判定部１１０は、ＳＳＤ４００のメモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定する。例えば、メモリ書き込み状況判定部１１０は、ＳＳＤ４００のメモリに書き込まれ、かつ、まだＨＤＤ３００のディスクに書き込まれていないデータの量が予め定められた量に達した場合、あるいは、ＳＳＤ４００のメモリにデータが書き込まれる頻度が予め定められた頻度に達した場合、ＳＳＤ４００のメモリへのデータの書き込み状況が上記条件を満たしたと判定する。ディスクアレイ制御部１０５のディスク回転制御部１１１は、メモリ書き込み状況判定部１１０によりＳＳＤ４００のメモリへのデータの書き込み状況が上記条件を満たしたと判定されると、ＨＤＤ３００に対してディスクのスピンドルモータの回転を再開するよう要求する。ディスクアレイ制御部１０５のディスクアクセス制御部１０７は、ＨＤＤ３００がスピンアップ状態（稼働再開）になると、まだＨＤＤ３００に書き込まれていない書き込みデータをＳＳＤ４００のメモリから、ディスク制御部１０４を介して、対応するＲＡＩＤグループ又はＬＵのＨＤＤ３００に転送する。ＨＤＤ３００は、ディスクアクセス制御部１０７により転送された書き込みデータをディスクに書き込む。このように、ＳＳＤ４００に書き込まれたデータは、ＨＤＤ３００のスピンアップ後、さらにデステージ処理によってＨＤＤ３００に最終的に書き込まれる。
【００５７】
上記のように、本実施の形態において、アドレスマッピング部１０９は、ＨＤＤ３００のディスクの記憶領域を分割した複数のＬＵと、それぞれのＬＵに個別に割り当てられるＳＳＤ４００のメモリのアドレス（記憶領域）との対応関係を記憶する。例えば、ＲＡＩＤグループ１に２０ＧＢ（ギガバイト）のＬＵ１と４０ＧＢのＬＵ２とが設定され、ＲＡＩＤグループ２に１００ＧＢのＬＵ３が設定されているとする。この場合、ＳＳＤ４００のメモリの先頭アドレスから１０ＧＢ（上限は２０ＧＢ）をＬＵ１、その次のアドレスから５ＧＢ（上限は４０ＧＢ）をＬＵ２、・・・といった形で各ＬＵにＳＳＤ４００のメモリのアドレスを割り当てることができる。例えば、ＬＵ１に対して割り当てられたＳＳＤ４００のメモリのアドレス範囲は、ＬＵ１が指定された書き込み要求の書き込みデータを記憶するための領域となる。各ＬＵに割り当てられる容量がＬＵの容量（ＨＤＤ３００の容量）より小さい場合、ＬＲＵ（Ｌｅａｓｔ・Ｒｅｃｅｎｔｌｙ・Ｕｓｅｄ）方式やＬＦＵ（Ｌｅａｓｔ・Ｆｒｅｑｕｅｎｔｌｙ・Ｕｓｅｄ）方式等によって参照されていないデータ（使用頻度の低いデータ）を置換対象とする。
【００５８】
ＬＵとＳＳＤ４００のメモリのアドレスとの対応関係は、予め静的に設定（即ち、固定）してもよいし、動的に設定してもよいし、まったく設定しなくてもよいし、ＬＵを区別せずにＲＡＩＤグループとＳＳＤ４００のメモリのアドレスとの対応関係を設定してもよい。対応関係を動的に設定するのであれば、例えば、アドレスマッピング部１０９において、ＳＳＤ４００のメモリの使用状況（ＬＵごとの使用量、使用頻度等）を監視し、使用状況に応じてＬＵごとの割り当て量を調整する（例えば、メモリの使用量が多いＬＵやメモリの使用頻度が高いＬＵにはアドレスを多めに割り当てる）。対応関係をまったく設定しないのであれば、アドレスマッピング部１０９は不要となる。
【００５９】
また、本実施の形態において、メモリアクセス制御部１０８は、ＨＤＤ３００がディスクの回転を停止している場合、ＨＤＤ３００のディスクへのデータの書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力される度に、当該データをキャッシュメモリ１０６からＳＳＤ４００に転送して当該データをメモリに書き込むようＳＳＤ４００を制御する。例えば、メモリアクセス制御部１０８は、ＨＤＤ３００がディスクの回転を停止している場合、ＨＤＤ３００のディスクへのデータの書き込み要求として、複数のＬＵのうちいずれかのＬＵを指定する書き込み要求がホストコンピュータ５００からホストインタフェース部１０２に入力される度に、当該ＬＵに対応するＳＳＤ４００のメモリのアドレスをアドレスマッピング部１０９から読み出す。そして、メモリアクセス制御部１０８は、当該データを当該アドレスに書き込むようＳＳＤ４００を制御する。
【００６０】
また、本実施の形態において、メモリ書き込み状況判定部１１０は、ＨＤＤ３００がディスクの回転を停止している状態で、メモリアクセス制御部１０８の制御によるＳＳＤ４００のメモリへのデータの書き込み状況が予め定められた条件を満たしたかどうかを判定する。例えば、メモリ書き込み状況判定部１１０は、ＨＤＤ３００がディスクの回転を停止している状態で、あるＬＵに対応するＳＳＤ４００のメモリのアドレス範囲に書き込まれ、かつ、まだＨＤＤ３００のディスクに書き込まれていないデータの量が、そのＬＵに対して定められた閾値（例えば、割り当て量に対する比率［％］や絶対的な容量［ＧＢ］）以上であれば、そのＬＵについて上記条件が満たされたと判定する。あるいは、メモリ書き込み状況判定部１１０は、ＨＤＤ３００がディスクの回転を停止している状態で、あるＬＵに対応するＳＳＤ４００のメモリのアドレス範囲にデータが書き込まれる頻度が、一定の頻度以上、又は、そのＬＵに対して定められた閾値（例えば、単位時間当たりの回数［回／単位時間］）以上であれば、そのＬＵについて上記条件が満たされたと判定する。メモリ書き込み状況判定部１１０は、同様の判定をＬＵごとに行う。これにより、書き込みデータをＳＳＤ４００からＨＤＤ３００に転送するためにＨＤＤ３００をスピンアップさせるタイミングを最適化することができる（ＨＤＤ３００のスピンアップをなるべく遅らせたほうが省エネになるが、過度に遅らせてしまうと新たな書き込みデータを書き込むためのＳＳＤ４００のメモリの容量がなくなってしまう）。
【００６１】
また、本実施の形態において、ディスク回転制御部１１１は、メモリ書き込み状況判定部１１０によりＳＳＤ４００のメモリへのデータの書き込み状況が上記条件を満たしたと判定された場合、ディスクの回転を開始するようＨＤＤ３００を制御する。なお、ディスク回転制御部１１１は、省エネモードを指定されたＲＡＩＤグループ、又は、省エネモードを指定されたＬＵが属するＲＡＩＤグループに対するアクセスが一定時間ない場合、ディスクの回転を開始するよう、そのＲＡＩＤグループのＨＤＤ３００を制御する。
【００６２】
また、本実施の形態において、ディスクアクセス制御部１０７は、ディスク回転制御部１１１の制御によりＨＤＤ３００がディスクの回転を開始した場合、メモリに書き込まれているデータを転送するようＳＳＤ４００を制御するとともにＳＳＤ４００から転送されるデータをディスクに書き込むようＨＤＤ３００を制御する。
【００６３】
以上説明したように、本実施の形態では、ＨＤＤ３００のディスクの回転が停止している場合、書き込み要求がある度にデータをＳＳＤ４００のメモリに書き込み、ＳＳＤ４００のメモリへのデータの書き込み状況が一定の条件を満たしたら、ＨＤＤ３００のディスクの回転を開始してＳＳＤ４００のメモリからＨＤＤ３００のディスクにデータを転送する。このため、本実施の形態によれば、Ｉ／Ｏ遅延の発生や省エネ効果の低減を回避しつつ、回転を停止するディスク（省エネモードを指定したＲＡＩＤグループ又はＬＵのＨＤＤ３００）を有効に利用することが可能となる。
【００６４】
本実施の形態では、ＨＤＤ３００がスピンダウンしているときには、ホストコンピュータ５００からの書き込みデータをキャッシュメモリ１０６からＳＳＤ４００に書き込むことでＩ／Ｏアクセス遅延を極小化させることができる。
【００６５】
また、省エネモード対象とするＨＤＤ３００をＲＡＩＤグループやＬＵごとにディスクアレイ装置１００内に設定する機能を有することで、従来、人手や外部から意図的に制御していたＨＤＤ３００のスピンダウン／スピンアップを装置内で自動的に動作させることが可能となる。常時アクセスが必要なＲＡＩＤグループに対しては、省エネモード対象外とし、常時スピンアップ状態のまま動作させることもできる。なお、ＲＡＩＤグループ又はＬＵに対するＩ／Ｏの統計情報を参照することで、省エネモードでの稼動を自動化することも可能である。
【００６６】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００６７】
図５は、本実施の形態に係るディスクアレイ装置１００の構成を示すブロック図である。
【００６８】
図５において、コントローラ２０１のディスクアレイ制御部１０５は、さらに、メモリ書き込み有無判定部１１２を備える。その他の構成については、図１に示した実施の形態１に係るディスクアレイ装置１００の構成と同様である。
【００６９】
以下では、図５に示した本実施の形態に係るディスクアレイ装置１００の各部の動作（本実施の形態に係るドライブ制御方法、本実施の形態に係るプログラムの処理手順）について説明する。
【００７０】
図６〜図９は、ディスクアレイ装置１００が読み取り要求を処理する際のデータの流れを示す図である。
【００７１】
図６は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンアップ状態（稼働中）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した読み取り要求があり、読み取りが要求されたデータがキャッシュメモリ１０６に保存されていた場合（キャッシュヒット時）のデータの流れを示している。
【００７２】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの読み取り要求（Ｒｅａｄ要求）の入力を受け付ける。読み取り要求は、例えばＳＣＳＩのＲｅａｄコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５は、読み取り要求がホストコンピュータ５００からホストインタフェース部１０２に入力されると、読み取りが要求されたデータ、即ち、読み取りデータ（Ｒｅａｄデータ）をキャッシュメモリ１０６から読み取り、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上に存在している場合、キャッシュメモリ１０６からデータが読み出される。
（３）ディスクアレイ制御部１０５は、読み取りの完了報告（Ｉ／Ｏ終了の報告）を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
【００７３】
なお、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンダウン状態（稼働停止）のときでも、キャッシュヒット時のデータの流れは、図６に示したものと同様である。
【００７４】
図７は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンアップ状態（稼働中）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した読み取り要求があり、読み取りが要求されたデータがキャッシュメモリ１０６に保存されていないが、ＳＳＤ４００のメモリに書き込まれていた場合（キャッシュミス・ＳＳＤヒット時）のデータの流れを示している。
【００７５】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの読み取り要求（Ｒｅａｄ要求）の入力を受け付ける。前述したように、読み取り要求は、例えばＳＣＳＩのＲｅａｄコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、読み取り要求をＳＳＤ４００に送信する。このとき、メモリアクセス制御部１０８は、ホストコンピュータ５００からの読み取り要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをアドレスマッピング部１０９から読み出し、そのアドレスをＳＳＤ４００に対して指定する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上に存在していない場合、ＳＳＤ４００に対して読み取り要求が行われる。このとき、ディスクアレイ制御部１０５のメモリ書き込み有無判定部１１２は、読み取りデータ（Ｒｅａｄデータ）がＳＳＤ４００のメモリに書き込まれているかどうかを判定する。ここでは、メモリ書き込み有無判定部１１２は、読み取りデータがＳＳＤ４００のメモリに書き込まれていると判定する。
（３）ＳＳＤ４００は、ディスクアレイ制御部１０５のメモリアクセス制御部１０８により送信された読み取り要求に応じて、メモリアクセス制御部１０８により指定されたメモリのアドレスから読み取りデータを読み取り、ディスクアレイ制御部１０５へ送信する。ディスクアレイ制御部１０５は、ＳＳＤ４００から送信された読み取りデータを受信し、キャッシュメモリ１０６に保存する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上に存在していないが、ＳＳＤ４００のメモリ上に存在している場合、ＳＳＤ４００のメモリからデータが読み出される。
（４）ＳＳＤ４００は、読み取りの完了報告を、ディスクアレイ制御部１０５へ送信する。
（５）ディスクアレイ制御部１０５は、ＳＳＤ４００から受信した読み取りデータをキャッシュメモリ１０６から読み取り、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（６）ディスクアレイ制御部１０５は、読み取りの完了報告を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
【００７６】
なお、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンダウン状態（稼働停止）のときでも、キャッシュミス・ＳＳＤヒット時のデータの流れは、図７に示したものと同様である。
【００７７】
上記のように、本実施の形態において、メモリ書き込み有無判定部１１２は、ＨＤＤ３００がディスクの回転を開始している場合、及び、ディスクの回転を停止している場合のいずれにおいても、ＨＤＤ３００のディスクからのデータの読み取り要求がホストコンピュータ５００からホストインタフェース部１０２に入力されると、当該データがＳＳＤ４００のメモリに書き込まれているかどうかを判定する。
【００７８】
また、本実施の形態において、メモリアクセス制御部１０８は、メモリ書き込み有無判定部１１２によりホストコンピュータ５００から読み取りを要求されたデータがＳＳＤ４００のメモリに書き込まれていると判定された場合、ホストコンピュータ５００から読み取りを要求されたデータをメモリから読み取るようＳＳＤ４００を制御する。
【００７９】
また、本実施の形態において、ホストインタフェース部２０２は、メモリアクセス制御部１０８の制御によりＳＳＤ４００のメモリから読み取られたデータをホストコンピュータ５００に対して出力する。
【００８０】
また、本実施の形態において、キャッシュメモリ１０６は、ＨＤＤ３００のディスクからのデータの読み取り要求がホストコンピュータ５００からホストインタフェース部１０２に入力された場合に当該データを記憶していなければ、ＳＳＤ４００のメモリから読み取られた当該データを記憶する。これにより、キャッシュミスの頻度の低減を図ることができる。
【００８１】
図８は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンアップ状態（稼働中）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した読み取り要求があり、読み取りが要求されたデータがキャッシュメモリ１０６に保存されておらず、ＳＳＤ４００のメモリにも書き込まれていない場合（キャッシュミス・ＳＳＤミス時）のデータの流れを示している。
【００８２】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの読み取り要求（Ｒｅａｄ要求）の入力を受け付ける。前述したように、読み取り要求は、例えばＳＣＳＩのＲｅａｄコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、読み取り要求をＳＳＤ４００に送信する。このとき、メモリアクセス制御部１０８は、ホストコンピュータ５００からの読み取り要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをアドレスマッピング部１０９から読み出し、そのアドレスをＳＳＤ４００に対して指定する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上に存在していない場合、ＳＳＤ４００に対して読み取り要求が行われる。このとき、ディスクアレイ制御部１０５のメモリ書き込み有無判定部１１２は、読み取りデータ（Ｒｅａｄデータ）がＳＳＤ４００のメモリに書き込まれているかどうかを判定する。ここでは、メモリ書き込み有無判定部１１２は、読み取りデータがＳＳＤ４００のメモリに書き込まれていないと判定する。
（３）ディスクアレイ制御部１０５のディスクアクセス制御部１０７は、メモリ書き込み有無判定部１１２により読み取りデータがＳＳＤ４００のメモリに書き込まれていないと判定されると、読み取り要求を、ホストコンピュータ５００からの読み取り要求で指定されたＲＡＩＤグループ又はＬＵのＨＤＤ３００に送信する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上にもＳＳＤ４００のメモリ上にも存在していない場合、指定されたＲＡＩＤグループ又はＬＵを構成しているＨＤＤ３００に対して読み取り要求が行われる。
（４）ＨＤＤ３００は、ディスクアレイ制御部１０５のディスクアクセス制御部１０７により送信された読み取り要求に応じて、ディスクから読み取りデータを読み取り、ディスクアレイ制御部１０５へ送信する。ディスクアレイ制御部１０５は、ＨＤＤ３００から送信された読み取りデータを受信し、キャッシュメモリ１０６に保存する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上にもＳＳＤ４００のメモリ上にも存在していない場合、指定されたＲＡＩＤグループ又はＬＵを構成しているＨＤＤ３００に対して読み取り要求が行われる。
（５）ＨＤＤ３００は、読み取りの完了報告を、ディスクアレイ制御部１０５へ送信する。
（６）ディスクアレイ制御部１０５は、ＨＤＤ３００から受信した読み取りデータをキャッシュメモリ１０６から読み取り、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（７）ディスクアレイ制御部１０５は、読み取りの完了報告を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（８）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、所定のタイミングで（例えば、読み取りデータがキャッシュメモリ１０６に保存されるのとほとんど同時、あるいは、読み取りの完了報告がホストコンピュータ５００へ送信された直後に）、読み取りデータをＳＳＤ４００に転送する。このとき、メモリアクセス制御部１０８は、書き込み要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをＳＳＤ４００に対して指定する。ＳＳＤ４００は、メモリアクセス制御部１０８により転送された読み取りデータを、メモリアクセス制御部１０８により指定されたメモリのアドレスに書き込む。このように、ＨＤＤ３００からキャッシュメモリ１０６に書き込まれたデータは、ホストコンピュータ５００のＩ／Ｏとは非同期にデステージ処理によってＳＳＤ４００に複製される。
【００８３】
上記のように、本実施の形態において、ディスクアクセス制御部１０７は、メモリ書き込み有無判定部１１２によりホストコンピュータ５００から読み取りを要求されたデータがＳＳＤ４００のメモリに書き込まれていないと判定された場合、ホストコンピュータ５００から読み取りを要求されたデータをディスクから読み取るようＨＤＤ３００を制御する。
【００８４】
また、本実施の形態において、ホストインタフェース部２０２は、ディスクアクセス制御部１０７の制御によりＨＤＤ３００のディスクから読み取られたデータをホストコンピュータ５００に対して出力する。
【００８５】
また、本実施の形態において、キャッシュメモリ１０６は、ＨＤＤ３００のディスクからのデータの読み取り要求がホストコンピュータ５００からホストインタフェース部１０２に入力された場合に当該データを記憶していなければ、ＨＤＤ３００のディスクから読み取られた当該データを記憶する。これにより、キャッシュミスの頻度の低減を図ることができる。
【００８６】
また、本実施の形態において、メモリアクセス制御部１０８は、ディスクアクセス制御部１０７の制御によりＨＤＤ３００のディスクから読み取られたデータをメモリに書き込むようＳＳＤ４００を制御する。これにより、ＳＳＤミスの頻度の低減を図ることができる。
【００８７】
図９は、省エネモードを指定されたＲＡＩＤグループのＨＤＤ３００がスピンダウン状態（稼働停止）のときに、そのＲＡＩＤグループ又はそのＲＡＩＤグループに属するＬＵを指定した読み取り要求があり、読み取りが要求されたデータがキャッシュメモリ１０６に保存されておらず、ＳＳＤ４００のメモリにも書き込まれていない場合（キャッシュミス・ＳＳＤミス時）のデータの流れを示している。
【００８８】
この場合、ディスクアレイ装置１００の各部は、以下のように動作する。
（１）ホストインタフェース部１０２は、ホストコンピュータ５００からの読み取り要求（Ｒｅａｄ要求）の入力を受け付ける。前述したように、読み取り要求は、例えばＳＣＳＩのＲｅａｄコマンドであり、ＲＡＩＤグループやＬＵの識別子（例えば、番号）を指定するパラメータ等を含む。
（２）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、読み取り要求をＳＳＤ４００に送信する。このとき、メモリアクセス制御部１０８は、ホストコンピュータ５００からの読み取り要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをアドレスマッピング部１０９から読み出し、そのアドレスをＳＳＤ４００に対して指定する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上に存在していない場合、ＳＳＤ４００に対して読み取り要求が行われる。このとき、ディスクアレイ制御部１０５のメモリ書き込み有無判定部１１２は、読み取りデータ（Ｒｅａｄデータ）がＳＳＤ４００のメモリに書き込まれているかどうかを判定する。ここでは、メモリ書き込み有無判定部１１２は、読み取りデータがＳＳＤ４００のメモリに書き込まれていないと判定する。
（３）ディスクアレイ制御部１０５のディスク回転制御部１１１は、メモリ書き込み有無判定部１１２により読み取りデータがＳＳＤ４００のメモリに書き込まれていないと判定されると、ＨＤＤ３００に対してディスクのスピンドルモータの回転を再開するよう要求する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上にもＳＳＤ４００のメモリ上にも存在しておらず、しかも、ＨＤＤ３００がスピンダウンしている場合、指定されたＲＡＩＤグループ又はＬＵを構成しているＨＤＤ３００に対して読み取り要求前にスピンアップ要求が行われる。
（４）ＨＤＤ３００は、スピンアップ状態（稼働再開）になると、その旨をディスクアレイ制御部１０５に報告する。
（５）ディスクアレイ制御部１０５のディスクアクセス制御部１０７は、ＨＤＤ３００がスピンアップ状態になったことを確認すると、読み取り要求を、ホストコンピュータ５００からの読み取り要求で指定されたＲＡＩＤグループ又はＬＵのＨＤＤ３００に送信する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上にもＳＳＤ４００のメモリ上にも存在しておらず、しかも、ＨＤＤ３００がスピンダウンしている場合、ＨＤＤ３００がアイドルモード（Ｒｅａｄｙ状態）になるのを待ってから、指定されたＲＡＩＤグループ又はＬＵを構成しているＨＤＤ３００に対して読み取り要求が行われる。
（６）ＨＤＤ３００は、ディスクアレイ制御部１０５のディスクアクセス制御部１０７により送信された読み取り要求に応じて、ディスクから読み取りデータを読み取り、ディスクアレイ制御部１０５へ送信する。ディスクアレイ制御部１０５は、ＨＤＤ３００から送信された読み取りデータを受信し、キャッシュメモリ１０６に保存する。このように、ホストコンピュータ５００から要求されるデータがキャッシュメモリ１０６上にもＳＳＤ４００のメモリ上にも存在していない場合、指定されたＲＡＩＤグループ又はＬＵを構成しているＨＤＤ３００に対して読み取り要求が行われる。
（７）ＨＤＤ３００は、読み取りの完了報告を、ディスクアレイ制御部１０５へ送信する。
（８）ディスクアレイ制御部１０５は、ＨＤＤ３００から受信した読み取りデータをキャッシュメモリ１０６から読み取り、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（９）ディスクアレイ制御部１０５は、読み取りの完了報告を、ホストインタフェース部１０２を介してホストコンピュータ５００へ送信する。
（１０）ディスクアレイ制御部１０５のメモリアクセス制御部１０８は、所定のタイミングで（例えば、読み取りデータがキャッシュメモリ１０６に保存されるのとほとんど同時、あるいは、読み取りの完了報告がホストコンピュータ５００へ送信された直後に）、読み取りデータをＳＳＤ４００に転送する。このとき、メモリアクセス制御部１０８は、書き込み要求で指定されたＲＡＩＤグループ又はＬＵに対応するＳＳＤ４００のメモリのアドレスをＳＳＤ４００に対して指定する。ＳＳＤ４００は、メモリアクセス制御部１０８により転送された読み取りデータを、メモリアクセス制御部１０８により指定されたメモリのアドレスに書き込む。このように、ＨＤＤ３００からキャッシュメモリ１０６に書き込まれたデータは、ホストコンピュータ５００のＩ／Ｏとは非同期にデステージ処理によってＳＳＤ４００に複製される。
【００８９】
上記のように、本実施の形態において、ディスク回転制御部１１１は、メモリ書き込み有無判定部１１２によりホストコンピュータ５００から読み取りを要求されたデータがＳＳＤ４００のメモリに書き込まれていないと判定された場合、ディスクの回転を開始するようＨＤＤ３００を制御する。
【００９０】
また、本実施の形態において、ディスクアクセス制御部１０７は、ディスク回転制御部１１１の制御によりＨＤＤ３００がディスクの回転を開始した場合、ホストコンピュータ５００から読み取りを要求されたデータをディスクから読み取るようＨＤＤ３００を制御する。
【００９１】
以上説明したように、本実施の形態では、ＨＤＤ３００がスピンダウンしているときには、読み取りデータをスピンダウン前の読み取りＩ／ＯによってＳＳＤ４００に保存することでＩ／Ｏアクセス遅延を極小化させることができる。
【００９２】
キャッシュメモリ１０６に使用される揮発性メモリの容量は、一般的には数ギガバイトである。ＳＳＤ４００に使用されるフラッシュメモリの容量は、一般的には数十〜数百ギガバイトである。ＨＤＤ３００に使用される磁気ディスクの容量は、一般的には数テラバイトである。図２に示した例のように、キャッシュメモリ１０６とＨＤＤ３００との間にＳＳＤ４００を設けていない場合、スタンバイモードのＨＤＤ３００を通常（アイドルモード）のＨＤＤ３００と同様に利用しようとすると、キャッシュミスが頻繁に発生することになる。その結果、ＨＤＤ３００のスピンアップを再開する回数が多かったり、ＨＤＤ３００がスピンアップしている時間が長かったりして、省エネ効果がほとんど得られないおそれがある。一方、本実施の形態では、キャッシュメモリ１０６とＨＤＤ３００との間にＳＳＤ４００を設けているため、キャッシュミスが発生したとしても、ＳＳＤ４００に読み取りデータが保存されている可能性が高い。したがって、本実施の形態によれば、省エネ効果を高めることができる。
【００９３】
従来は、バックアップ用途のＲＡＩＤグループ等、長時間停止し、その時間帯も予め決まっているＲＡＩＤグループにしか省エネ機能を適用できなかったが、本実施の形態では、通常ホストコンピュータ５００が使用するボリュームのＲＡＩＤグループに対しても省エネ機能を適用することが可能となり、消費電力の削減が期待できる。
【００９４】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００９５】
１００  ディスクアレイ装置、１０１  コントローラ、１０２  ホストインタフェース部、１０３  ネットワークインタフェース部、１０４  ディスク制御部、１０５  ディスクアレイ制御部、１０６  キャッシュメモリ、１０７  ディスクアクセス制御部、１０８  メモリアクセス制御部、１０９  アドレスマッピング部、１１０  メモリ書き込み状況判定部、１１１  ディスク回転制御部、１１２  メモリ書き込み有無判定部、２００  ディスクアレイ装置、２０１  コントローラ、２０２  ホストインタフェース部、２０３  ネットワークインタフェース部、２０４  ディスク制御部、２０５  ディスクアレイ制御部、２０６  キャッシュメモリ、３００  ＨＤＤ、４００  ＳＳＤ、５００  ホストコンピュータ。
【図１】
2013206009.tif 000003
【図２】
2013206009.tif 000004
【図３】
2013206009.tif 000005
【図４】
2013206009.tif 000006
【図５】
2013206009.tif 000007
【図６】
2013206009.tif 000008
【図７】
2013206009.tif 000009
【図８】
2013206009.tif 000010
【図９】
2013206009.tif 000011