(57)【要約】【課題】本発明のストレージシステムは、ホストからのアクセス要求に基づいて、次にアクセスされるであろうディスクドライブを予測し、予測されたディスクドライブに早期に電源を供給することにより、省電力化と応答性の改善を行う。【解決手段】予測部７は、ホスト２からの最近のアクセス要求とアクセスパターン管理情報８に登録されている過去のアクセスパターンとを比較することにより、ホスト２が次にアクセスするであろうと予測されるディスクドライブ３を検出する。電源制御部６は、予測部７によって検出されたディスクドライブ３に、電源部５から電源を供給させる。【選択図】図１
2008112292.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶デバイスと、上位装置からのアクセス要求に基づいて、前記各記憶デバイスにデータを入出力するコントローラとを備えるストレージシステムであって、
前記コントローラは、
前記上位装置から発行されたアクセス要求に基づいて、前記各記憶デバイスのうち所定の記憶デバイスにアクセスし、この所定の記憶デバイスにデータを入出力させるアクセス要求処理部と、
前記アクセス要求処理部によって検出されたアクセス要求に基づいて、前記各記憶デバイスのうち、前記上位装置により次にアクセスされる次アクセス先記憶デバイスを少なくとも一つ以上予測する予測部と、
前記各記憶デバイスのうち予め設定された条件を満たす記憶デバイスについては、電源部からの電源の供給を停止させ、かつ、前記次アクセス先記憶デバイスについては、前記電源部から電源を供給させる電源制御部と、
を備えるストレージシステム。
【請求項２】
前記予測部は、前記上位装置が前記各記憶デバイスへアクセスした順序の履歴を記憶するための履歴記録テーブルを備えており、この履歴記録テーブルに基づいて、前記次アクセス先記憶デバイスを予測する請求項１に記載のストレージシステム。
【請求項３】
前記コントローラは、前記上位装置からのアクセス要求に含まれる論理的アドレスを前記各記憶デバイスの物理的アドレスに変換するためのアドレス変換部を備えており、
前記予測部は、前記履歴記録テーブルに前記論理的アドレスの履歴を記憶させる請求項２に記載のストレージシステム。
【請求項４】
前記履歴記録テーブルには、前記各記憶デバイスへのアクセス順序及び各アクセス間の時間が記憶されており、
前記電源制御部は、前記次アクセス先記憶デバイスに前記上位装置がアクセスすると予測される時刻に前記次アクセス先記憶デバイスが起動しているように、前記次アクセス先記憶デバイスの起動に要する時間よりも前に、電源を供給する請求項３に記載のストレージシステム。
【請求項５】
前記履歴記録テーブルの記録内容の少なくとも一部は、前記上位装置または前記コントローラに接続された管理装置の少なくともいずれか一方から設定可能である請求項４に記載のストレージシステム。
【請求項６】
前記予測部は、予め指定された日付または時刻に基づいて、前記各記憶デバイスへの電源供給及び電源供給の停止を行わせることができる請求項１に記載のストレージシステム。
【請求項７】
前記履歴記録テーブルには、予測精度を示す情報も記憶されており、
前記予測部は、前記次アクセス先記憶デバイスの候補が複数検出された場合には、前記予測精度が最も高い候補を前記次アクセス先記憶デバイスとして選択する請求項２に記載のストレージシステム。
【請求項８】
前記電源源制御部は、前記各記憶デバイスのうち前記次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、前記各記憶デバイスのうち最も古くアクセスされた記憶デバイスへの電源供給を停止させる請求項１に記載のストレージシステム。
【請求項９】
前記コントローラは、前記各記憶デバイスへの電源供給に関する操作回数を記憶するための操作回数記憶部を備えており、
前記電源制御部は、前記各記憶デバイスのうち前記次アクセス先記憶デバイスとして予測されていない記憶デバイスにおいて、最後にアクセスされた時刻が古い順に予め定める数の記憶デバイスを選択し、さらにその中で、前記操作回数の最も少ない記憶デバイスへの電源供給を停止させる請求項１に記載のストレージシステム。
【請求項１０】
複数の記憶デバイスと、上位装置からのアクセス要求に基づいて、前記各記憶デバイスにデータを入出力するコントローラとを備えるストレージシステムおいて前記各記憶デバイスへの電源供給を制御する方法であって、
前記上位装置が前記各記憶デバイスへアクセスした順補の履歴を履歴記録テーブルに記憶させるステップと、
前記履歴記録テーブルの記録内容に基づいて、前記上位装置により次にアクセスされる次アクセス先記憶デバイスを予測するステップと、
前記次アクセス先記憶デバイスに電源部から電源が供給されていない場合は、前記次アクセス先記憶デバイスに前記電源部から電源を供給させるステップと、
を含むストレージシステムの電源供給制御方法。
【請求項１１】
前記各記憶デバイスのうち前記次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、前記各記憶デバイスのうち最も古くアクセスされた記憶デバイスへの電源供給を停止させるステップをさらに備える請求項１０に記載のストレージシステムの電源供給制御方法。
【請求項１２】
前記各記憶デバイスのうち前記次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、前記各記憶デバイスのうち最後にアクセスされた時刻が古い順に予め定める数の記憶デバイスを選択するステップと、さらに、選択した記憶デバイスの中で、電源供給に関する操作回数の最も少ない記憶デバイスへの電源供給を停止させるステップとをさらに備える請求項１０に記載のストレージシステムの電源供給制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの電源供給制御方法に関する。
【背景技術】
【０００２】
ストレージシステムは、多数のハードディスクドライブをアレイ状に接続した記憶部を備えており、サーバ等のホストコンピュータ（以下「ホスト」）に、論理的な記憶領域（論理ボリューム）を提供する。信頼性等を高めるために、ストレージシステムでは、RAID（Redundant Array of Independent Disks）に基づく冗長化された記憶領域をホストに提供する。
【０００３】
ところで、企業等で管理すべきデータは日々増大する。データ量の増大に応じて、ストレージシステムに搭載されるディスクドライブの数も増加する。搭載されるディスクドライブの数が増加すればするほど、ストレージシステムの消費電力も大きくなる。
【０００４】
そこで、ディスクドライブへの電源供給を制御する方法が提案されている。第１の従来技術としては、ホストにおけるジョブの実行スケジュールに基づいて、電源制御のためのスケジュールを作成するものが知られている（特許文献１）。第２の従来技術としては、各ディスクドライブの使用状況やオン／オフ回数に基づいて、各ディスクドライブへの通電を制御するものが知られている（特許文献２）。
【特許文献１】特開平９−２８２０５７公報
【特許文献２】特開２００４−２５２５７０公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記第１の従来技術では、ホストにおけるジョブの実行スケジュールに基づいて消費電力を低減させる。従って、このような従来技術では、ストレージシステム内の省電力制御がホストに依存しており、ストレージシステムの内部でストレージシステムが自発的に複数のディスクドライブへの電源供給を個別に制御することはできない。
【０００６】
前記第２の従来技術では、ホストからのアクセス状況とは無関係に、ディスクドライブの電源供給を制御するため、アクセス時間を短縮することができない。
【０００７】
本発明は、上記の問題点に鑑みてなされたもので、その目的は、各記憶デバイスの電力消費量を低減させると共に、上位装置から次にアクセスされる記憶デバイスを予測して、電源を供給することにより、アクセス時間を短縮できるようにしたストレージシステムを提供することにある。さらに、本発明は、上位装置からのアクセス時間を短縮しながら、各記憶デバイスの稼働時間も低減し、各記憶デバイスの長寿命化を図ることも目的としている。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムは、複数の記憶デバイスと、上位装置からのアクセス要求に基づいて、各記憶デバイスにデータを入出力するコントローラとを備える。そして、コントローラは、上位装置から発行されたアクセス要求に基づいて、各記憶デバイスのうち所定の記憶デバイスにアクセスし、この所定の記憶デバイスにデータを入出力させるアクセス要求処理部と、アクセス要求処理部によって検出されたアクセス要求に基づいて、各記憶デバイスのうち、上位装置により次にアクセスされる次アクセス先記憶デバイスを少なくとも一つ以上予測する予測部と、各記憶デバイスのうち予め設定された条件を満たす記憶デバイスについては、電源部からの電源の供給を停止させ、かつ、次アクセス先記憶デバイスについては、電源部から電源を供給させる電源制御部と、を備える。
【０００９】
本発明の実施形態では、予測部は、上位装置が各記憶デバイスへアクセスした順序の履歴を記憶するための履歴記録テーブルを備えており、この履歴記録テーブルに基づいて、次アクセス先記憶デバイスを予測する。
【００１０】
本発明の実施形態では、コントローラは、上位装置からのアクセス要求に含まれる論理的アドレスを各記憶デバイスの物理的アドレスに変換するためのアドレス変換部を備えており、予測部は、履歴記録テーブルに論理的アドレスの履歴を記憶させる。
【００１１】
本発明の実施形態では、履歴記録テーブルには、各記憶デバイスへのアクセス順序及び各アクセス間の時間が記憶されており、電源制御部は、次アクセス先記憶デバイスに上位装置がアクセスすると予測される時刻に次アクセス先記憶デバイスが起動しているように、次アクセス先記憶デバイスの起動に要する時間より前に電源を供給する。
【００１２】
本発明の実施形態では、履歴記録テーブルの記録内容の少なくとも一部は、上位装置またはコントローラに接続された管理装置の少なくともいずれか一方から設定可能となっている。
【００１３】
本発明の実施形態では、予測部は、予め指定された日付または時刻に基づいて、各記憶デバイスへの電源供給及び電源供給の停止を行わせる。
【００１４】
本発明の実施形態では、履歴記録テーブルには、予測精度を示す情報も記憶されており、予測部は、次アクセス先記憶デバイスの候補が複数検出された場合には、予測精度が最も高い候補を次アクセス先記憶デバイスとして選択する。
【００１５】
本発明の実施形態では、電源源制御部は、各記憶デバイスのうち次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、各記憶デバイスのうち最も古くアクセスされた記憶デバイスへの電源供給を停止させる。
【００１６】
本発明の実施形態では、コントローラは、各記憶デバイスへの電源供給に関する操作回数を記憶するための操作回数記憶部を備えており、電源制御部は、各記憶デバイスのうち次アクセス先記憶デバイスとして予測されていない記憶デバイスにおいて、最後にアクセスされた時刻が古い順に予め定める数の記憶デバイスを選択し、さらにその中で、操作回数の最も少ない記憶デバイスへの電源供給を停止させる。
【００１７】
本発明の他の観点に従うストレージシステムの電源制御方法は、複数の記憶デバイスと、上位装置からのアクセス要求に基づいて、各記憶デバイスにデータを入出力するコントローラとを備えるストレージシステムおいて各記憶デバイスへの電源供給を制御する方法であって、上位装置が各記憶デバイスへアクセスした順補の履歴を履歴記録テーブルに記憶させるステップと、履歴記録テーブルの記録内容に基づいて、上位装置により次にアクセスされる次アクセス先記憶デバイスを予測するステップと、次アクセス先記憶デバイスに電源部から電源が供給されていない場合は、次アクセス先記憶デバイスに電源部から電源を供給させるステップと、を含む。
【００１８】
本発明の実施形態では、各記憶デバイスのうち次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、各記憶デバイスのうち最も古くアクセスされた記憶デバイスへの電源供給を停止させるステップをさらに備える。
【００１９】
本発明の実施形態では、各記憶デバイスのうち次アクセス先記憶デバイスとして予測されていない記憶デバイスであって、かつ、各記憶デバイスのうち最後にアクセスされた時刻が古い順に予め定める数の記憶デバイスを選択するステップと、さらに、選択した記憶デバイスの中で、電源供給に関する操作回数の最も少ない記憶デバイスへの電源供給を停止させるステップとをさらに備える。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき、本発明の実施の形態を説明する。なお、以下の説明は、いわゆる当業者が本発明の理解及び実施に必要な程度で本発明の概要を述べるものであり、本発明の範囲は以下の記述に限定されない。
【００２１】
図１は、本実施形態の全体概要を示す説明図である。図１に示す情報システムは、例えば、少なくとも一つ以上のストレージシステム１と、少なくとも一つ以上のホスト２とを備えている。
【００２２】
ホスト２は、「上位装置」に対応する。ホスト２としては、例えば、メインフレームマシン、サーバマシン等のコンピュータ装置を挙げることができる。図１では、説明の便宜上、一つのホスト２のみを示している。実際には、複数のホスト２が一つまたは複数のストレージシステム１を共同で使用することができる。ストレージシステム１が複数のホスト２で共同使用される場合、例えば、ゾーニングやLUN（Logical Unit Number）マスキング等の技術が用いられる。これにより、各ホスト２は、自分自身がアクセスする権限を有しているポートや論理ボリューム（LU）にのみアクセスすることができる。
【００２３】
ストレージシステム１は、例えば、複数のディスクドライブ３と、アクセス処理部４と、電源部５と、電源制御部６と、予測部７及びアクセスパターン管理情報８とを備えて構成することができる。
【００２４】
ディスクドライブ３は、「記憶デバイス」に対応する。ここでは、便宜上、ディスクドライブと呼ぶが、ディスク以外の媒体を用いる記憶デバイスでもよい。ディスクドライブ３としては、例えば、ハードディスクドライブ、フラッシュメモリデバイス、光ディスクドライブ、光磁気ディスクドライブ、磁気テープデバイス等を用いることができる。後述の実施例で明らかとなるように、ディスクドライブ３の有する物理的記憶領域を仮想化することにより、一つまたは複数の論理的な記憶領域を設定することができる。この論理的な記憶領域は、論理ボリュームと呼ばれる。ホスト２は、論理ボリュームをアクセス対象として認識する。
【００２５】
アクセス処理部４，電源制御部６及び予測部７は、「コントローラ」を構成する。また、アクセスパターン管理情報８はコントローラの内部に保持される。コントローラには、例えば、キャッシュメモリや制御メモリ等のメモリを設けることができ、これらのメモリ内に、ストレージシステム１の動作を制御するために使用する制御情報や管理情報等を記憶させることができる。
【００２６】
コントローラは、例えば、少なくとも一つ以上のプロセッサ、メモリ、データ処理回路、インターフェース等を備えて構成することができる。これらコントローラの有するハードウェアを、予め用意されたプログラム群がそれぞれ制御することにより、アクセス処理部４、電源制御部６及び予測部７をそれぞれ実現させることができる。
【００２７】
アクセス処理部４は、「アクセス要求処理部」に対応する。アクセス処理部４は、ホスト２から発行されたコマンドを解析し、コマンドに応じた処理を実行する。例えば、ホスト２からライトコマンドが発行された場合、アクセス処理部４は、ホスト２から指定された論理ボリュームを構成するディスクドライブ３に、ホスト２から受信したライトデータを書き込む。ホスト２からリードコマンドが発行された場合、アクセス処理部４は、ホスト２から指定された論理ボリュームを構成するディスクドライブ３から、ホスト２の要求するデータを読出し、読み出したデータをホスト２に送信する。このように、アクセス処理部４は、ホスト２から受信したコマンドに基づいて、指定された論理ボリュームの論理アドレスをディスクドライブ３の物理アドレスに変換し、ホスト２から要求された処理を実行し、その結果をホスト２に送信する。
【００２８】
電源部５は、各ディスクドライブ３に所定の電源を供給するための装置である。図１では、説明の便宜上、一つの電源部５のみを示す。しかし、後述の実施例から明らかとなるように、各ディスクドライブ３にそれぞれ個別に電源部５を設けることができる。各電源部５は、電源制御部６からの指示に基づいて、ディスクドライブ３に一種類または複数種類の直流電源をそれぞれ供給するようになっている。なお、各ディスクドライブ３にそれぞれ個別の電源部５を設ける構成に代えて、一つまたは複数の電源部から全てのディスクドライブ３にそれぞれ個別に電源を供給可能な電源回路を用いてもよい。
【００２９】
電源制御部６は、各ディスクドライブ３への電源供給及び電源供給の停止を制御するものである。電源制御部６は、予め設定された所定の停止条件を満たすディスクドライブ３を検出した場合、このディスクドライブ３に対応する電源部５に指示を出して、電源供給を停止させる。所定の停止条件としては、例えば、所定時間以上アクセスされていない場合や、各ディスクドライブ３のうち最も長い時間アクセスされていない場合等を挙げることができる。
【００３０】
予測部７は、ホスト２から発行されたアクセス要求に基づいて、次のアクセス要求でアクセスされる論理ボリュームを予測する。そして、予測部７は、予測された論理ボリュームを構成するディスクドライブ３を特定し、特定されたディスクドライブ３への電源供給を電源制御部６に指示する。
【００３１】
アクセスパターン管理情報８は、「履歴記録テーブル」に対応する。アクセスパターン管理情報８は、例えば、ホスト２によるアクセスのパターンと、そのアクセスパターンのヒット数（出現頻度）とを対応付けて記憶する。アクセスパターンとは、ホスト２からアクセスされる論理ボリューム（最終的にはディスクドライブ３）の順番である。
【００３２】
例えば、データベース等のようなホスト２上で稼働するアプリケーションプログラムは、複数の論理ボリュームを切り替えながら、一連の処理を実行していく場合がある。従って、アプリケーションプログラムの処理内容に応じて、どの論理ボリュームにどの順番でアクセスするかのパターンが発生する。アクセス処理部４が受領したアクセス要求に基づいて少なくとも一つ以上のアクセスパターンが検出され、検出されたアクセスパターンはアクセスパターン管理情報８に登録される。
【００３３】
予測部７は、ホスト２から発行された複数のアクセス要求の順序を検索キーとしてアクセスパターン管理情報を検索する。予測部７は、最新の複数のアクセス要求の順序と登録されたアクセスパターンとを比較し、次のアクセス先の論理ボリュームを予測する。
【００３４】
例えば、最新の２つのアクセス要求がボリュームVa→ボリュームVbであり、アクセスパターン管理情報８にVa→Vb→VcというアクセスパターンとVa→Vc→Vbという別のアクセスパターンとが登録されている場合、予測部７は、次のアクセス先の論理ボリュームはVcであると予測する。予測部７は、予測された論理ボリュームVcが設けられている一つまたは複数のディスクドライブ３を特定し、特定されたディスクドライブ３への電源供給を電源制御部６に指示する。電源制御部６は、指示されたディスクドライブ３へ電源を供給する。
【００３５】
図１に示す例では、ホスト２から発行された第１アクセス要求及び第２アクセス要求に基づいて、予測部７は、未来に発行される第３アクセス要求のアクセス先がディスクドライブ３（＃３）であると予測する。電源制御部６は、ディスクドライブ３（＃３）への通電が停止されている場合には、ディスクドライブ３（＃３）に対応する電源部５に制御信号を出力し、電源部５からディスクドライブ３（＃３）に電源を供給させて、第３アクセス要求が発行されるよりも前にディスクドライブ３起動させる。
【００３６】
このように構成される本実施形態によれば、ホスト２からの指示やホスト２でのジョブ実行スケジュールに依存することなく、ストレージシステム１の内部で、ホスト２からアクセスされていないディスクドライブ３への電源供給を個別に停止させて、消費電力を低減させることができる。
【００３７】
従って、ストレージシステム１の管理下にあるディスクドライブ３の数が多ければ多いほど、以上のような制御を行って、ストレージシステム１全体としての消費電力を低減させる効果の意義は大きい。即ち、ストレージシステム１の維持コストを少なくすることができる。また、ある種のディスクドライブでは、通電時間の累積時間によって寿命が規定されているものもあるが、本実施形態では、不要なディスクドライブへの電源供給を停止させることにより、寿命を延ばすことができ、メンテナンス作業の効率を高めることができる。
【００３８】
さらに、本実施形態では、ホスト２からの指示等に依存することなく、ホスト２からのアクセス要求をストレージシステム１の内部で解析して登録済みのアクセスパターンと比較することにより、次にアクセスされるディスクドライブ３を予測する。そして、本実施形態では、ホスト２が次のアクセス要求を発行するよりも前に、予測されたディスクドライブ３へ電源を供給して、起動させておく。即ち、予測されたディスクドライブ３は、アクセス要求が発行される前に通電されて、所定回転数までスピンアップする。従って、ホスト２は、目的のディスクドライブ３が起動するまで待たずに、データの入出力を行うことができ、アクセス時間が短縮され、ストレージシステム１の応答性が向上する。以下、本実施形態のストレージシステムを詳細に説明する。
【実施例１】
【００３９】
図１は、ストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、ストレージシステム１０と、ホスト２０と、管理端末３０とを備えて構成することができる。図１との対応関係を先に述べると、ストレージシステム１０は図１中のストレージシステム１に、ホスト２０は図１中のホスト２に、ディスクドライブ２１０は図１中のディスクドライブ３に、コマンド処理部１１０は図１中のアクセス処理部４に、電源制御部１３０は図１中の電源制御部６に、予測部１２０は図１中の予測部７に、個別電源部３１０は図１中の電源部５に、それぞれ対応する。
【００４０】
ホスト２０は、上述のようにサーバマシンやメインフレームマシン等のコンピュータ装置であり、例えば、SAN（Storage Area Network）やインターネット、公衆回線、専用回線等の通信ネットワークCN１を介して、ホスト接続部１０１に接続されている。
【００４１】
ホスト２０に搭載されたアプリケーションプログラムは、図外のコンピュータ端末からの依頼に応じてデータ処理を実行する。このデータ処理の実行に際して、ホスト２０は、ストレージシステム１０内に記憶されているデータを利用する。
【００４２】
管理端末３０は、パーソナルコンピュータ等のコンピュータ装置であり、例えば、LAN（Local Area Network）等の通信ネットワークCN２を介して、コントローラ１００に接続されている。管理端末３０は、コントローラ１００からストレージシステム１０の各種状態に関する情報を取得して端末画面に表示させることができる。また、管理端末３０は、コントローラ１００に指示を与えることにより、ストレージシステム１０の内部構成を設定することができる。さらに、後述の実施例から明らかになるように、ユーザは、管理端末３０を介して、電源制御のスケジュールをコントローラ１００に登録させることができる。
【００４３】
ストレージシステム１０の構成を説明する。ストレージシステム１０は、例えば、コントローラ１００と、ホスト接続部１０１と、記憶部２００とを備えて構成される。ここでは便宜上、コントローラ１００及びホスト接続部１０１をそれぞれ一つずつ示しているが、コントローラ１００及びホスト接続部１０１は複数設けることができる。そして、複数のコントローラ１００によって冗長構成を形成し、耐障害性を高めることもできる。
【００４４】
ホスト接続部１０１は、ホスト２０と接続されており、ホスト２０との間の通信を制御する。ホスト２０とホスト接続部１０１の間で使用される通信プロトコルとしては、例えば、Fibre Channel、Fibre Channel AL(Arbitrated Loop)、SAS(Serial Attached SCSI)、iSCSI等が挙げられる。ホスト２０がメインフレームマシンの場合、例えば、FICON（Fibre Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre Connection Architecture：登録商標）等の通信プロトコルが用いられる。なお、図２では、ホスト接続部１０１をコントローラ１００の外部に設けているが、コントローラ１００内にホスト接続部１０１を設ける構成でもよい。
【００４５】
コントローラ１００は、ストレージシステム１０の全体の動作を制御するものである。コントローラ１００は、例えば、コマンド処理部１１０と、予測部１２０と、電源制御部１３０とを備えて構成される。図２では図示を省略しているが、コントローラ１００には、キャッシュメモリ等のメモリを設けることができる。このようなメモリには、例えば、ホスト２０から受信したライトデータや、ホスト２０から読み出されたリードデータ、ストレージシステム１０を管理するための各種管理情報等を記憶させることができる。各部１１０，１２０，１３０の詳細な構成は、別図と共に後述する。
【００４６】
先に簡単に説明すると、コマンド処理部１１０は、ホスト２０から発行されたコマンドを処理し、その結果をホスト２０に送信するものである。予測部１２０は、コマンド処理部１１０に受領されたコマンドの履歴に基づいて、ホスト２０からの次のアクセス先を予測するものである。電源制御部１３０は、各ディスクドライブ２１０にそれぞれ設けられている個別電源部３１０に制御信号を出力して、各個別電源部３１０からの電源の供給及び電源供給の停止を制御するものである。
【００４７】
記憶部２００の構成を説明する。記憶部２００は、記憶領域を提供する。記憶部２００は、コントローラ１００と同一筐体内に設けることもできるし、コントローラ１００とは別の筐体内に設けることもできる。また、図外の別のストレージシステムが有する記憶領域を、ストレージシステム１０内の記憶領域であるかのように使用することもできる。例えば、別のストレージシステム内の論理ボリュームを、図１に示すストレージシステム１０内の仮想ボリュームにマッピングすることにより、外部の論理ボリュームをストレージシステム１０の内部の論理ボリュームであるかのように利用することができる。
【００４８】
記憶部２００は、例えば、複数のディスクドライブ２１０と、複数の個別電源部３１０と、少なくとも一つ以上の集合ドライブ電源部３２０とを備えて構成される。
【００４９】
各ディスクドライブ２１０は、物理的な記憶領域を提供する。ディスクドライブ２１０は、例えば、ATA（AT Attachment）ディスク、SCSI（Small Computer System Interface）ディスク、FC（Fibre Channel）ディスク等のようなハードディスクドライブとして構成される。なお、これらに限らず、例えば、半導体メモリドライブ（フラッシュメモリデバイスを含む）、光ディスクドライブ、光磁気ディスクドライブ等の他の記憶デバイスを用いてもよい。
【００５０】
各ディスクドライブ２１０は、信号線４００を介して、コマンド処理部１１０にそれぞれ接続されている。各ディスクドライブ２１０は、信号線４００を介して、コマンド処理部１１０とデータの送受を行う。データ送受のための通信プロトコルは、例えばFibre ChannelやFibre Channel AL、SAS、SATA(Serial ATA)等である。
【００５１】
個別電源部３１０は、例えば、集合ドライブ電源部３２０から電源供給ライン３０１を介して供給された直流電源を、所定電圧の直流電源に変換して出力するDC-DC電源である。個別電源部３１０は、各ディスクドライブ２１０毎にそれぞれ設けられている。例えば、各ディスクドライブ２１０の筐体内に、個別電源部３１０を内蔵させることができる。
【００５２】
各個別電源部３１０は、信号線４０１を介して、電源制御部１３０にそれぞれ接続されている。各個別電源部３１０は、電源制御部１３０から信号線４０１を介して入力される制御信号に応じて、ディスクドライブ２１０へ電源を供給したり、停止したりする。
【００５３】
集合ドライブ電源部３２０は、ストレージシステム１０の外部に位置する交流電源を直流電源に変換して、各個別電源部３１０にそれぞれ供給するものである。図２では省略しているが、コントローラ１００は、集合ドライブ電源部３２０の動作を制御可能である。
【００５４】
図３は、コントローラ１００の詳細な構成を示すブロック図である。先にコマンド処理部１１０の構成から説明する。コマンド処理部１１０は、例えば、コマンド抽出部１１１と、コマンド応答送信部１１２と、データ転送部１１３とを含んで構成される。
【００５５】
コマンド抽出部１１１は、ホスト接続部１０１に接続されている。コマンド抽出部１１１は、ホスト２０からのアクセス要求からコマンドを抽出し、抽出したコマンドを予測部１２０に伝達する。
【００５６】
コマンド応答送信部１１２は、ホスト２０から受領したコマンドの結果をホスト２０に応答するためのものである。コマンド応答送信部１１２は、予測部１２０からの通知に基づいて、アクセスが成功したか否かの結果を示すステータスを生成する。この生成されたステータスは、コマンド抽出部１１１からホスト接続部１０１を介して、ホスト２０に送信される。
【００５７】
データ転送部１１３は、信号線４００を介して、各ディスクドライブ２１０に接続されている。データ転送部１１３は、各ホスト２０からのコマンドに対応するディスクドライブ２１０に向けてコマンドやデータを送信したり、ディスクドライブ２１０からデータを受信する。また、データ転送部１１３は、ディスクドライブ２１０から受信したデータやホスト２０から受信したデータを、一時的に記憶しておくキャッシュメモリを含んでいてもよい。
【００５８】
予測部１２０の構成を説明する。予測部１２０は、例えば、プロセッサ１２１と、プロセッサメモリ１２２と、メモリコントローラ１２３とを含んで構成される。プロセッサ１２１は、プロセッサメモリ１２２に記憶された各種プログラムを読み込んで実行する。これにより、プロセッサ１２１は、コントローラ１００におけるデータ転送制御を実行したり、予測処理を実行する。
【００５９】
プロセッサメモリ１２２は、メモリコントローラ１２３を介して、プロセッサ１２１に接続されている。プロセッサメモリ１２２は、プロセッサ１２１により使用される各種プログラムや制御または管理用のデータを記憶する。プロセッサメモリ１２２には、後述する予測処理を実現するための予測プログラムが記憶される。また、プロセッサメモリ１２２には、後述する各テーブルＴ１〜Ｔ６を記憶させることもできる。なお、データ転送部１１３にキャッシュメモリが含まれている場合には、データ転送部１１３に含まれるキャッシュメモリに、各テーブルＴ１〜Ｔ６の全部または一部を記憶させる構成でもよい。
【００６０】
メモリコントローラ１２３は、プロセッサ１２１とプロセッサメモリ１２２と電源制御部１３０内の制御ドライブ決定部１３１とにそれぞれ接続されている。メモリコントローラ１２３は、プロセッサ１２１からの指示に従って、プロセッサメモリ１２２にアクセスする。また、メモリコントローラ１２３は、プロセッサ１２１からの指示に従って、コマンド処理部１１０への指示や電源制御部１３０への制御信号を生成し、これらの指示や制御信号をコマンド処理部１１０や電源制御部１３０へそれぞれ伝達する。
【００６１】
電源制御部１３０の構成を説明する。電源制御部１３０は、信号線４０１を介して各ディスクドライブ２１０にそれぞれ接続されている。また、電源制御部１３０は、予測部１２０にも接続されている。電源制御部１３０は、例えば、制御ドライブ決定部１３１と、複数の制御信号生成部１３２とを含んで構成することができる。
【００６２】
制御ドライブ決定部１３１は、予測部１２０内のプロセッサ１２１からの指示に基づいて、電源制御の対象となるディスクドライブ２１０を決定するものである。制御ドライブ決定部１３１は、電源制御の対象として決定されたディスクドライブ２１０に対応する個別電源部３２０に指示を与える。
【００６３】
制御信号生成部１３２は、各個別電源部３１０のそれぞれに対応して設けられる。制御信号生成部１３２は、制御ドライブ決定部１３１による決定に基づいて、個別電源部３１０の動作を制御するための制御信号を生成する。この制御信号は、信号線４０１を介して、その制御信号生成部１３２に対応付けられている個別電源部３１０に送信される。
【００６４】
制御信号としては、個別電源部３１０から電源を供給させるための電源供給開始信号と、個別電源部３１０からの電源供給を停止させるための電源供給停止信号とを挙げることができる。
【００６５】
個別電源部３１０は、制御信号生成部１３２からの制御信号に応じて起動または停止し、起動完了または停止完了の信号を制御信号生成部１３２に送信する。制御信号生成部１３２は、個別電源部３１０からの応答信号を受信すると、応答信号を制御ドライブ決定部１３１を介して、予測部１２０のプロセッサ１２１に通知する。
【００６６】
なお、上述したコントローラ１００の構成は一例であって、本発明は上述の構成に限定されない。コントローラ１００は、ホスト２０からのコマンドを処理して結果を返信する機能と、ホスト２０からのアクセス要求に基づいて次のアクセス先を予測する機能と、各ディスクドライブ２１０への通電をそれぞれ個別に制御する機能とをそれぞれ実現できるハードウェア構成及びソフトウェア構成を備えていればよい。
【００６７】
図４は、ディスクドライブ２１０の記憶領域をストレージシステム１０が管理するための構成を示す説明図である。図４の中央部に示すように、例えば、４個１組、８個１組等のような所定数のディスクドライブ２１０によって、RAIDグループ２２０が構成される。RAIDグループ２２０は、各ディスクドライブ２１０がそれぞれ有する物理的な記憶領域を仮想化して一つの物理的な記憶領域にまとめる。RAIDグループ２２０は、パリティグループと呼ばれる場合もある。
【００６８】
RAIDグループ２２０の物理的記憶領域には、所定サイズまたは任意サイズの論理ボリューム２３０を一つまたは複数設定することができる。なお、一つのディスクドライブ２１０が有する物理的記憶領域に、一つまたは複数の論理ボリューム２３０を設けることもできる。
【００６９】
ストレージシステム１０の内部で生成された論理ボリューム２３０は、LUN（Logical Unit Number）と対応付けられ、ホスト２０との間の通信経路が設定される。これにより、論理ボリューム２３０は、ホスト２０からアクセス対象として認識される。
【００７０】
ホスト２０は、論理ボリューム２３０の番号、先頭の論理アドレス（LBA：Logical Block Address）、先頭論理アドレスからのブロックサイズ等を指定することにより、目的とする論理ボリューム２３０にデータを書き込んだり、目的とする論理ボリューム２３０からデータを読み出す。
【００７１】
図４の上側に示すRAIDグループ管理テーブルＴ１は、ストレージシステム１０の有する各RAIDグループ２２０を管理するためのテーブルである。このテーブルＴ１は、例えば、RAIDグループ番号Ｉ１１と、RAIDレベルＩ１２と、容量Ｉ１３と、ドライブリストＩ１４と、ボリューム番号（図中、LU番号）Ｉ１５とを対応付けて管理する。
【００７２】
RAIDグループ番号Ｉ１１とは、各RAIDグループ２２０をそれぞれ識別するための情報である。RAIDレベルＩ１２とは、例えば、RAID１〜RAID６等、及び、６Ｄ２Ｐ（同時に６個のデータと２個のパリティを用いる構成）や７Ｄ１Ｐ等のような、そのRAIDグループ２２０のRAID種別及び構成を示す情報である。容量Ｉ１３とは、そのRAIDグループ２２０の有する合計記憶容量を示す情報である。ドライブリストＩ１４とは、そのRAIDグループ２２０を構成するディスクドライブ２１０を特定するための情報である。ボリューム番号Ｉ１５とは、そのRAIDグループ２２０に設定されている論理ボリューム２３０を特定するための情報である。なお、上述した各項目Ｉ１１〜Ｉ１５以外の他の項目をテーブルＴ１で管理する構成としてもよい。また、上述した各項目を、それぞれの項目毎のテーブルで管理したり、あるいは、前記各項目の一部を別のテーブルで管理する構成としてもよい。
【００７３】
図４の下側に示すアドレス変換テーブルＴ２は、論理アドレスを物理アドレスに変換するために使用されるテーブルである。アドレス変換テーブルＴ２は、例えば、ボリューム番号Ｉ２１と、論理ブロックアドレスＩ２２と、ドライブ番号Ｉ２３と、物理ブロックアドレスＩ２４とを対応付けて管理する。
【００７４】
ボリューム番号Ｉ２１は、論理ボリューム２３０を特定する情報である。論理ブロックアドレス（LBA）とは、その論理ボリューム２３０の記憶領域内のアドレスを示す情報である。ドライブ番号Ｉ２３とは、その論理ボリューム２３０に物理的な記憶領域を提供しているディスクドライブ２１０を特定する情報である。物理ブロックアドレスＩ２４とは、そのディスクドライブ２１０の記憶領域内のアドレスを示す情報である。
【００７５】
このように構成されるアドレス変換テーブルＴ２を用いることにより、ホスト２０から指定された論理的アドレスをディスクドライブ２１０の物理的アドレスに変換して、データの読み書きを行うことができる。なお、図４に示すテーブルＴ１，Ｔ２の構成は一例であって、本発明は図４に示す構成に限定されない。以下に述べる各テーブル及びフローチャートについても同様である。
【００７６】
図５は、アクセスパターン記録テーブルＴ３の構成を示す説明図である。このテーブルＴ３は、プロセッサメモリ１２２に格納されており、プロセッサ１２１の実行する予測処理において使用される。このテーブルＴ３は、「履歴記録テーブル」に対応する。アクセスパターン記録テーブルＴ３は、例えば、レコード番号Ｉ３１と、ヒット数Ｉ３２と、履歴長さＩ３３と、アクセス順序Ｉ３４とを対応付けて管理する。
【００７７】
レコード番号Ｉ３１とは、各レコードの順番を示す情報であり、アクセスパターン（アクセス順序Ｉ３４）を識別する情報でもある。ヒット数Ｉ３２とは、そのアクセスパターンがヒットした回数、即ち出現頻度を示す情報である。履歴長さＩ３３とは、そのアクセスパターンの長さ、即ち、アクセスされた論理ボリューム２３０の数を示す情報である。アクセス順序Ｉ３４とは、アクセスされた論理ボリューム２３０の順番を示す情報であり、即ち、アクセスパターンである。
【００７８】
図６は、アクセスパターンを検出してアクセスパターン記録テーブルＴ３に登録するための処理を示すフローチャートである。なお、以下に述べる各フローチャートは、本発明の理解及び実施に必要な範囲で処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、ステップの入れ替えやステップの追加、変更または削除が可能な場合もある。以下に述べる処理は、予測部１２０のプロセッサ１２１によって実行される。しかし、説明の便宜上、動作の主体をコントローラ１００とする。
【００７９】
コントローラ１００は、ホスト２０から発行されたアクセス要求を解析し（Ｓ１０）、新たな論理ボリューム２３０へのアクセスであるか否かを判定する（Ｓ１１）。新たな論理ボリューム２３０とは、前回検出されたアクセス履歴とは異なる論理ボリューム２３０を意味する。
【００８０】
前回のアクセス先と同一の論理ボリューム２３０へのアクセス要求であると判定された場合（S11:NO）、Ｓ１０に戻る。新たな論理ボリューム２３０へのアクセスであると判定された場合（S11:YES）、コントローラ１００は、アクセスされた論理ボリューム２３０の番号をアクセス履歴として一時的に記憶する（Ｓ１２）。
【００８１】
コントローラ１００は、一時的に記憶されたアクセス履歴が未登録のアクセスパターンであるか否かを判定する（Ｓ１３）。未登録のアクセスパターンであると判定した場合（S13:YES）、コントローラ１００は、一時的に記憶されたアクセス履歴をアクセスパターン記録テーブルＴ３に登録する（Ｓ１４）。
【００８２】
これに対し、既に登録されているアクセスパターンであると判定した場合（S13:NO）、コントローラ１００は、その登録されているアクセスパターンのヒット数を１つ増加させる（Ｓ１５）。
【００８３】
このような処理によって、ホスト２０がアクセス先の論理ボリューム２３０を切り替えるたびにアクセス履歴が一時的に記憶され、テーブルＴ３に登録されているアクセスパターンと比較される。そして、未登録のアクセスパターンが検出された場合は、その検出された新たなアクセスパターンがテーブルＴ３に追加される。登録済みのアクセスパターンと同一の順序でアクセス先の論理ボリューム２３０が切り替えられた場合、その登録済みのアクセスパターンのヒット数が１つ増加する。
【００８４】
図７は、予測処理を示すフローチャートである。予測部１２０は、最新のアクセス履歴をコマンド処理部１１０から取得し（Ｓ２０）、続いて、アクセスパターン記録テーブルＴ３を参照する（Ｓ２１）。
【００８５】
予測部１２０は、最新のアクセス履歴及び最新のアクセス履歴の一つ前のアクセス履歴のアクセス順序と同一のアクセス順序を有するアクセスパターンがテーブルＴ３に登録されているか否かを判定する（Ｓ２２）。即ち、最近発行された複数のアクセス要求のアクセス先順序と部分的に一致するアクセスパターンがテーブルＴ３に登録されているか否かを判定する。一致するアクセスパターンがテーブルＴ３に登録されていない場合（S22:NO）、Ｓ２０に戻る。
【００８６】
一致するアクセスパターンがテーブルＴ３に登録されている場合（S22:YES）、予測部１２０は、このアクセスパターンに記憶されている次のアクセス先を起動候補として選択する（Ｓ２３）。ここで、起動候補とは、ホスト２０によって次にアクセスされると予測されるボリューム（ディスクドライブ）の候補である。次アクセス先候補と呼ぶこともできる。
【００８７】
例えば、最新のアクセス要求でのアクセス先がVb、一つ前のアクセス要求でのアクセス先がVaである場合、最近のアクセス履歴は、Va→Vbという順序になる。もしも、テーブルＴ３に、Va→Vb→Vcというアクセスパターンが登録されていた場合、予測部１２０は、このアクセスパターンに記憶されている次のアクセス先Vcを、起動候補として選択する。また、テーブルＴ３に、Va→Vb→Vdという別のアクセスパターンが登録されていた場合、予測部１２０は、次のアクセス先Vdを別の起動候補として選択する。
【００８８】
予測部１２０は、Ｓ２３で起動候補が複数選択されたか否かを判定する（Ｓ２４）。複数の起動候補が選択されている場合（S24:YES）、予測部１２０は、ヒット数が最も多い起動候補を次アクセス先として選択する（Ｓ２５）。起動候補が一つしか選択されていない場合（S24:NO）、予測部１２０は、この唯一の起動候補を次アクセス先として選択する（Ｓ２６）。
【００８９】
予測部１２０は、Ｓ２５またはＳ２６のいずれかで予測された次アクセス先のディスクドライブ２１０に電源を供給するように、電源制御部１３０に指示する（Ｓ２７）。なお、次アクセス先として予測されたディスクドライブ２１０に既に電源が供給されている場合は、Ｓ２７の指示を発行する必要はない。電源制御部１３０は、次アクセス先のディスクドライブ２１０に対応する制御信号生成部１３２によって、電源供給開始信号を生成させる。
【００９０】
電源供給開始信号は、信号線４０１を介して、次アクセス先のディスクドライブ２１０に接続された個別電源部３１０に伝達される。個別電源部３１０は、電源供給開始信号を受領すると、所定電圧の直流電源をディスクドライブ２１０に供給する。電源を供給されたディスクドライブ２１０は、自己診断等を行い、スピンドルモータを所定の回転数まで回転させてスピンアップ状態となる。
【００９１】
上述の通り、本実施例の予測処理では、ホスト２０からのアクセス要求とアクセスパターン記録テーブルＴ３の記録内容とに基づいて、ホスト２０によって次にアクセスされる論理ボリューム２３０（ディスクドライブ２１０）を予測する。そして、予測された論理ボリューム２３０に関連するディスクドライブ２１０への電源供給を指示する。これにより、次アクセス先のディスクドライブ２１０に、ホスト２０からアクセスされるよりも前に通電することができ、予め起動させておくことができる。従って、予測が当たった場合は、ホスト２０のアクセス時間が短縮される。
【００９２】
図８は、電源供給停止処理を示すフローチャートである。コントローラ１００は、ドライブ利用状態管理テーブルＴ４を参照し（Ｓ３０）、現在電源が供給されているディスクドライブ２１０を抽出する（Ｓ３１）。そして、コントローラ１００は、通電されている各ディスクドライブ２１０のうち、アクセス時刻が最も古いディスクドライブ２１０を停止対象として選択し、その停止対象のディスクドライブ２１０に接続された個別電源部３１０に電源供給停止信号を送信する（Ｓ３２）。電源供給停止信号を受領した個別電源部３１０は、電源の供給を停止する。これにより、その個別電源部３１０に接続されたディスクドライブ２１０は、作動を停止する。
【００９３】
図８の下側に示すドライブ利用状態管理テーブルＴ４は、各ディスクドライブ２１０の通電状態やアクセス状態を管理するものである。このテーブルＴ４は、例えば、ドライブ番号Ｉ４１と、電源供給状態Ｉ４２と、最終アクセス時刻Ｉ４３とを対応付けて管理している。
【００９４】
ドライブ番号Ｉ４１とは、各ディスクドライブ２１０を識別する情報である。電源供給状態Ｉ４２とは、そのディスクドライブ２１０に電源が供給されているか否かを示す情報である。最終アクセス時刻Ｉ４３とは、そのディスクドライブ２１０に最後にデータが入出力された時刻を示す情報である。なお、上記項目Ｉ４１〜Ｉ４３以外の他の項目をテーブルＴ４に追加してもよい。
【００９５】
上述の電源供給停止処理によれば、ディスクドライブ２１０の利用状態に基づいて、通電が不要なディスクドライブ２１０への電源供給を個別に停止させることができる。なお、Ｓ３２では、最終アクセス時刻が最も古いディスクドライブ２１０を停止対象として選択したが、これに代えて、例えば、所定時間以上アクセスされていないディスクドライブ２１０を停止対象として選択する構成でもよい。
【００９６】
本実施例は上述のように構成されるので、電源供給が不要なディスクドライブ２１０への通電を各ディスクドライブ２１０毎に個別に停止させることができ、ストレージシステム１０の電力消費量を低減させることができる。また、通電時間を短くできるため、ディスクドライブ２１０の寿命を延ばすことができ、ディスクドライブ２１０の交換頻度を低減して、メンテナンス作業の効率を高めることができる。
【００９７】
本実施例では、ホスト２０から発行された複数回のアクセス要求を解析し、アクセスパターン記録テーブルＴ３に登録されているアクセスパターンと比較することで、ホスト２０が次にアクセスするディスクドライブ２１０を予測することができる。そして、予測されたディスクドライブ２１０に早期に電源を供給してスピンアップ状態にすることができ、ストレージシステム１０の応答性を高めることができる。このように、本実施例のストレージシステム１０は、省電力と応答性能の両立を図ることができ、使い勝手が向上する。
【００９８】
なお、コントローラ１００がキャッシュメモリを備えており、かつ、ホスト２０から受信したライトデータをキャッシュメモリに記憶させた時点で、ホスト２０に処理完了を報告する構成も考えられる。この場合、ライトコマンドを受信した場合は、次アクセス先の予測を行わず、リードコマンドを受信した場合にのみ次アクセス先を予測するように構成することもできる。
【実施例２】
【００９９】
図９，図１０に基づいて、本発明の第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。本実施例では、アクセスされた順番のみならず、アクセスの時間間隔を一緒に管理することにより、電力供給の開始時期をできるだけ遅らせて、より一層の省電力を実現する。
【０１００】
図９は、本実施例によるストレージシステム１０で使用されるアクセスパターン記録テーブルＴ５を示す説明図である。このテーブルＴ５は、図５に示すテーブルＴ３と同様に、例えば、レコード番号Ｉ５１と、ヒット数Ｉ５２と、履歴長さＩ５３と、アクセス順序Ｉ５４とを対応付けることにより構成されている。
【０１０１】
図３に示すテーブルＴ３との相違点は、アクセスパターンを示すアクセス順序Ｉ５４に、アクセスされた論理ボリュームの順番Ｉ５４Ａに加えて、隣接するアクセス同士の時間間隔Ｉ５４Ｂが含まれている点にある。即ち、テーブルＴ５では、アクセスの順序のみならず、あるアクセスから次のアクセスへ移るまでの時間も管理している。この時間間隔Ｉ５４Ｂとしては、例えば、最も多く出現した時間（最頻値）、最新の検出時間、平均値等を用いることができる。
【０１０２】
図１０は、電源供給処理を示すフローチャートである。本処理を開始する前提条件として、予測部１２０により次アクセス先の論理ボリューム２３０（ディスクドライブ２１０）が予測されているものとする。前記実施例では、予測後直ちに、次アクセス先のディスクドライブ２１０へ電源を供給したが、本実施例では、以下に述べるように、起動に要する時間を考慮してディスクドライブ２１０に電源を供給する。
【０１０３】
コントローラ１００は、アクセスパターン記録テーブルＴ５を参照し、次アクセス先として決定された論理ボリューム２３０がアクセスされる予定時刻を確認し、この予定時刻よりも所定時間だけ早い時刻を起動予定時刻としてセットする（Ｓ４０）。所定時間としては、電源の供給されていないディスクドライブ２１０に電源を供給して起動を完了させるまでに要する時間である。即ち、起動に必要な時間である。
【０１０４】
コントローラ１００は、Ｓ４０でセットされた起動予定時刻が到来したか否かを判定する（Ｓ４１）。起動予定時刻が到来した場合（S41:YES）、コントローラ１００は、次アクセス先のディスクドライブ２１０への電源供給を開始する（Ｓ４２）。
【０１０５】
このように構成される本実施例も第１実施例と同様の効果を奏する。これに加えて、本実施例では、アクセスとアクセスとの間の時間も一緒に履歴として管理し、予定されたアクセス時刻に間に合うようにディスクドライブ２１０に電源を供給する。従って、第１実施例よりも通電時間を短くすることができ、より一層電力消費量を低減して、ディスクドライブ２１０の寿命を延ばすことができる。
【実施例３】
【０１０６】
図１１及び図１２に基づいて、第３実施例を説明する。本実施例では、ユーザによって予め登録されたスケジュールに従って、各ディスクドライブ２１０への電源供給を個別に制御する。
【０１０７】
図１１は、本実施例によるストレージシステム１０を含むストレージシステムを示す説明図である。管理端末３０には、スケジュール登録指示部３１が設けられている。スケジュール登録指示部３１は、電源制御に関するスケジュール（図１２に示す起動スケジュール）をユーザが登録するための機能を提供するソフトウェアである。
【０１０８】
図１２は、起動スケジュールを登録するための処理を示すフローチャートである。ユーザが管理端末３０のスケジュール登録指示部３１を起動させると、起動スケジュール登録画面５００が端末画面に表示される（Ｓ５０）。ユーザは、この登録画面５００を用いて、起動対象の論理ボリューム２３０や起動時刻を入力する（Ｓ５１）。
【０１０９】
起動スケジュール登録画面には、例えば、ボリューム指定部５１０と、起動時刻指定部５２０と、ＯＫボタン５０１及び取消ボタン５０２とが含まれている。ユーザは、ボリューム指定部５１０によって、起動対象の論理ボリューム２３０の番号を指定する。また、ユーザは、起動時刻指定部５２０によって、その論理ボリューム２３０を起動させる時刻を指定する。各指定部５１０，５２０により指定された内容を登録する場合、ユーザは、ＯＫボタン５０１を操作する。指定内容を取り消す場合、ユーザは、取消ボタン５０２を操作する。
【０１１０】
コントローラ１００は、管理端末３０を介して入力された起動スケジュールを、起動スケジュール管理テーブルＴ６に登録する（Ｓ５２）。起動スケジュール管理テーブルＴ６は、例えば、ボリューム番号Ｉ６１と、起動時刻Ｉ６２とを対応付けて管理する。ボリューム番号Ｉ６１とは、起動対象の論理ボリューム２３０を特定する情報である。起動時刻Ｉ６２とは、その論理ボリューム２３０に関連するディスクドライブ２１０へ電源を供給して起動させる予定時刻を示す情報である。
【０１１１】
起動時刻は、例えば、「毎日１２時」、「毎週日曜日の０時」、「毎月末の９時」等のように所定周期の時刻として設定することもできるし、あるいは、「2006年9月27日15時」等のように、年月日時分秒を指定して設定することもできる。
【０１１２】
このように構成される本実施例も第１実施例と同様に、電源供給の不要なディスクドライブ２１０への電源供給を停止してストレージシステム１０の電力消費量を低減することができ、また、起動スケジュールに従ってディスクドライブ２１０を予め起動させておくこともでき、ストレージシステム１０の応答性を高めることできる。
【０１１３】
なお、第１実施例と第３実施例とを結合させることもできる。即ち、起動スケジュールに登録された論理ボリューム２３０に関するディスクドライブ２１０については、起動スケジュールに従って電源を供給し、起動スケジュールに登録されていない論理ボリューム２３０に関するディスクドライブ２１０については、予測部１２０による予測結果に従って電源を供給する構成とすることができる。
【実施例４】
【０１１４】
図１３に基づいて、第４実施例を説明する。本実施例では、起動スケジュールに、電源供給開始時刻及び電源供給の停止時刻の両方を含めている。
【０１１５】
図１３は、本実施例によるストレージシステム１０で使用される起動スケジュール登録処理を示すフローチャートである。本処理は、図１２に示す処理と同様のステップＳ６０〜Ｓ６２を備えている。Ｓ６０〜Ｓ６２は、図１２中のＳ５０〜Ｓ５２に対応するため、重複した説明を省略する。
【０１１６】
本実施例の起動スケジュール登録画面では、電源供給を停止させる時刻を指定するための停止時刻指定部５３０が追加されている。これに対応して、起動スケジュール管理テーブルＴ６には、停止時刻Ｉ６３が追加されている。
【０１１７】
従って、ユーザは、電源供給を停止させる時刻を管理端末３０からコントローラ１００に登録することができる。コントローラ１００は、起動スケジュール管理テーブルＴ６の登録内容に従って、所定の論理ボリューム２３０に関連するディスクドライブ２１０に電源を供給したり、電源供給を停止させる。
【０１１８】
このように構成される本実施例も第１実施例及び第３実施例と同様の効果を奏する。また、本実施例も前記第３実施例と同様に、第１実施例と結合させることができる。即ち、起動スケジュールに登録されていない論理ボリューム２３０に関するディスクドライブ２１０については、第１実施例で述べたように、ホスト２０からのアクセス要求に基づく予測に従って、電源が供給される。そして、例えば、所定時間以上アクセスされていないディスクドライブ２１０への電源供給が停止される。一方、起動スケジュールに登録された論理ボリューム２３０に関するディスクドライブ２１０については、登録された起動時刻に電源が供給され、登録された停止時刻に電源供給が停止される。
【実施例５】
【０１１９】
図１４に基づいて、第５実施例を説明する。本実施例では、各ディスクドライブ２１０に通電した回数（以下、オンオフ回数と言う）を考慮して、各ディスクドライブ２１０への電源供給を停止させる。
【０１２０】
コントローラ１００は、ドライブ利用状態管理テーブルＴ４を参照し（Ｓ７０）、通電中の各ディスクドライブ２１０のうち最終アクセス時刻が最も古いディスクドライブ２１０を検出する（Ｓ７１）。説明の便宜のため、この最終アクセス時刻が最古のディスクドライブ２１０を、ここではディスクドライブＤ０と呼ぶ。
【０１２１】
図１４の下側に示すように、ドライブ利用状態管理テーブルＴ４は、図８に示すテーブルＴ４と同様に、項目Ｉ４１〜Ｉ４２を含み、さらに新規な項目としてオンオフ回数Ｉ４４を備えている。オンオフ回数Ｉ４４とは、そのディスクドライブ２１０に電源を供給し停止した通算の回数である。
【０１２２】
フローチャートの説明に戻る。コントローラ１００は、最古にアクセスされたディスクドライブＤ０の最終アクセス時刻から予め設定された所定時間が経過しているか否かを判定する（Ｓ７２）。例えば１時間程度の所定時間が経過していない場合（S72:NO）、コントローラ１００は本処理を終了する。
【０１２３】
ディスクドライブＤ０の最終アクセス時刻から所定時間が経過している場合（S72:YES）、コントローラ１００は、ディスクドライブＤ０の次に最終アクセス時刻が古いディスクドライブ２１０を検出する（Ｓ７３）。以下の説明では、最終アクセス時刻がディスクドライブＤ０の次に古いディスクドライブをディスクドライブＤ１と呼ぶ。
【０１２４】
コントローラ１００は、ディスクドライブＤ１の最終アクセス時刻から所定時間が経過しているか否かを判定する（Ｓ７４）。ディスクドライブＤ１の最終アクセス時刻から所定時間が経過していない場合（S74:NO）、コントローラ１００は、ディスクドライブＤ０への電源供給を停止させる（Ｓ７５）。
【０１２５】
ディスクドライブＤ１の最終アクセス時刻から所定時間が経過している場合（S74:YES）、コントローラ１００は、ディスクドライブＤ０のオンオフ回数Ｎ０とディスクドライブＤ１のオンオフ回数Ｎ１とをそれぞれ取得する（Ｓ７６）。ディスクドライブＤ０，Ｄ１のいずれもが、最後にアクセスされた時刻からそれぞれ所定時間以上の時間が経過しており、いずれのディスクドライブＤ０，Ｄ１も停止対象として選択可能なため、オンオフ回数に基づいて決定する。
【０１２６】
そこで、コントローラ１００は、ディスクドライブＤ０のオンオフ回数Ｎ０の方がディスクドライブＤ１のオンオフ回数Ｄ１よりも多いか否かを判定する（Ｓ７７）
【０１２７】
ディスクドライブＤ０のオンオフ回数Ｄ０がディスクドライブＤ１のオンオフ回数Ｄ１よりも大きい場合（S77:YES）、コントローラ１００は、ディスクドライブＤ１をディスクドライブＤ０として（Ｓ７８）、Ｓ７２に戻る。
【０１２８】
即ち、ディスクドライブＤ０の通算のオンオフ回数Ｄ０が多いため、このディスクドライブＤ０への電源供給を停止させると、ディスクドライブＤ０の寿命を低下させる可能性があるためである。そこで、コントローラ１００は、最終アクセス時刻が最も古く、かつオンオフ回数Ｎ０の大きいディスクドライブＤ０の電源供給停止を行わずに、最終アクセス時刻が次に古いディスクドライブＤ１を処理対象として（Ｄ０←Ｄ１）、上述のＳ７２〜Ｓ７７を繰り返す。一方、ディスクドライブＤ０のオンオフ回数Ｎ０がディスクドライブＤ１のオンオフ回数Ｎ１以下の場合（S77:NO）、Ｓ７２に戻る。
【０１２９】
以上の処理により、各ディスクドライブ２１０のオンオフ回数を考慮して、各ディスクドライブ２１０の電源供給を停止させることができる。従って、本実施例では、通電時間を短縮できると共に、オンオフ回数を低減することができ、ディスクドライブ２１０の寿命を延ばすことができる。
【実施例６】
【０１３０】
図１５に基づいて、第６実施例を説明する。本実施例では、第１実施例における予測処理の詳細な一例を説明する。但し、アクセスパターン記録テーブルとしては、図９に示すテーブルＴ５を使用する。
【０１３１】
まず、図６に示したアクセスパターン検出処理によって、ホスト２０が新しい論理ボリューム２３０にアクセスする度に、予め定める最大長さｍのアクセス履歴を一時的に記録する。このアクセス履歴は、例えば、プロセッサメモリ１２２に記録すればよい。このホスト２０からの最近アクセスされた最大長さｍのアクセス履歴を、以下の説明では、最近のアクセス履歴と呼ぶ。
【０１３２】
予測部１２０は、変数Ｋに２をセットする（Ｓ８０）。変数Ｋは、プロセッサメモリ１２２に格納しても良いし、プロセッサ１２１内の何らかのレジスタや一時記憶領域に記憶させても良い。
【０１３３】
次に、予測部１２０は、アクセスパターン記録テーブルＴ５から、履歴の長さがＫである履歴を取り出す（Ｓ８１）。
【０１３４】
予測部１２０は、最近のアクセス履歴のうち先頭（最も新しい方）から長さＫ−１まで、アクセスパターン記録テーブルＴ５より取り出した長さＫの履歴の先頭から（最も時間的に後の方から）２番目からの履歴と比較する（Ｓ８２）。
【０１３５】
予測部１２０は、比較の結果、一致した履歴があれば、（最も時間的に後の方から）１番目のボリュームをそのヒット回数の起動候補とする（Ｓ８３）。
【０１３６】
次に、予測部１２０は、再び最近のアクセス履歴のうち先頭（最も新しい方）から長さＫまで、アクセスパターン記録テーブルＴ５より取り出した長さＫの履歴の先頭（最も時間的に後の方から）１番目からの履歴と比較する（Ｓ８４）。
【０１３７】
予測部１２０は、Ｓ８４での比較の結果、一致した履歴があるか否かを判定する（Ｓ８５）。一致した履歴があると判定された場合（S85:YES）、予測部１２０は、アクセスパターン記録テーブルＴ５において、一致した履歴を有するアクセスパターンのヒット数を１つ増加させる（Ｓ８６）。
【０１３８】
もしも、一致する履歴を一つも発見できなかった場合（S85:NO）、予測部１２０は、最近のアクセス履歴の先頭から長さＫまでを新しくアクセスパターン記録テーブルＴ５に登録する（Ｓ８７）。
【０１３９】
そして、予測部１２０は、Ｋの値を１つ増加させ（Ｓ８８）、増加後のＫの値がｍ−１以下であるか否かを判定する（Ｓ８９）。ｍ−１以下であると判定された場合（S89:YES）、予測部１２０は、Ｓ８１に戻って以降のステップを繰り返す。ｍ−１よりも大きいと判定された場合（S89:NO）、予測部１２０は、Ｋの値がｍ以下であるか否か判定する（Ｓ９０）。
【０１４０】
Ｋの値がｍ以下であると判定された場合（S90:YES）、予測部１２０は、Ｓ８４に戻り、Ｓ８４以降の新しく履歴を登録する処理のみを行う。
【０１４１】
Ｋの値がｍより大きいと判定された場合（S90:NO）、予測部１２０は、アクセスパターン記録テーブルＴ５を参照することにより、Ｓ８１〜Ｓ９０までの処理で起動候補として挙げられた論理ボリューム２３０のヒット数をそれぞれ調べ、最もヒット数の高いアクセスパターンから予測された論理ボリューム２３０を次アクセス先のボリュームとして選択する（Ｓ９１）。
【０１４２】
そして、このＳ９１において、予測部１２０は、アドレス変換テーブルＴ２を参照することにより、選択された論理ボリューム２３０に関するディスクドライブ２１０を特定し、特定されたディスクドライブ２１０へ電源を供給すべき旨を電源制御部１３０に指示する（Ｓ９１）。
【０１４３】
ここで、予測部１２０（または電源制御部１３０）は、Ｓ９１において、電源供給の開始を指示する際に、アクセス履歴の間隔とディスクドライブ２１０の起動に要する時間とを考慮することにより、ホスト２０からアクセスされるであろうと予測される時点に間に合うように、ディスクドライブ２１０へ電源供給開始信号を出力させる（Ｓ９１）。
【０１４４】
なお、図１５のＳ８７において、最近のアクセス履歴の先頭から長さＫまでを新たなアクセスパターンとしてアクセスパターン記録テーブルＴ５に登録する際に、このテーブルＴ５に登録済みアクセスパターンの一部を消去することにより、テーブルＴ５の記憶量を一定値に保持することもできる。
【０１４５】
例えば、テーブルＴ５に登録可能なレコード数の上限に達した場合は、登録済みアクセスパターンのうち、ヒット数の最も少ないアクセスパターンや、ヒットした時刻が最も古いアクセスパターンを消去する構成でもよい。
【０１４６】
このように構成される本実施例も第１実施例、第２実施例と同様の効果を奏する。
【０１４７】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、各実施例を適宜組み合わせることができる。
【図面の簡単な説明】
【０１４８】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】ストレージシステムが用いられるストレージシステムの概略構成を示す説明図である。
【図３】コントローラの構成を示すブロック図である。
【図４】ディスクドライブと論理ボリュームとの関係及び管理方法を示す説明図である。
【図５】アクセスパターンを管理するためのテーブル構成を示す説明図である。
【図６】アクセスパターンを検出するための処理を示すフローチャートである。
【図７】ホストから次にアクセスされるディスクドライブを予測するための処理を示すフローチャートである。
【図８】ディスクドライブへの電源供給を停止させる処理を示すフローチャートである。
【図９】本発明の第２実施例に係るストレージシステムで使用されるアクセスパターン記録テーブルの構成を示す説明図である。
【図１０】予測結果に基づいてディスクドライブに電源を供給するための処理を示すフローチャートである。
【図１１】本発明の第３実施例に係るストレージシステムが用いられるストレージシステムの構成を示す説明図である。
【図１２】ディスクドライブを起動させるためのスケジュールをコントローラに登録するための処理を示すフローチャートである。
【図１３】本発明の第４実施例に係るストレージシステムで用いられる起動スケジュール登録処理を示すフローチャートである。
【図１４】本発明の第５実施例に係る電源供給停止処理を示すフローチャートである。
【図１５】本発明の第６実施例に係る予測処理を示すフローチャートである。
【符号の説明】
【０１４９】
１…ストレージシステム、２…ホスト、３…ディスクドライブ、４…アクセス処理部、５…電源部、６…電源制御部、７…予測部、８…アクセスパターン管理情報、１０…ストレージシステム、２０…ホスト、３０…管理端末、３１…スケジュール登録指示部、１００…コントローラ、１０１…ホスト接続部、１１０…コマンド処理部、１１１…コマンド抽出部、１１２…コマンド応答送信部、１１３…データ転送部、１２０…予測部、１２１…プロセッサ、１２２…プロセッサメモリ、１２３…メモリコントローラ、１３０…電源制御部、１３１…制御ドライブ決定部、１３２…制御信号生成部、２００…記憶部、２１０…ディスクドライブ、２２０…RAIDグループ、２３０…論理ボリューム、３０１…電源供給ライン、３１０…個別電源部、３２０…集合ドライブ電源部、４００，４０１…信号線、５００…起動スケジュール登録画面、５１０…ボリューム指定部、５２０…起動時刻指定部、５３０…停止時刻指定部
【図１】
2008112292.tif 000003
【図２】
2008112292.tif 000004
【図３】
2008112292.tif 000005
【図４】
2008112292.tif 000006
【図５】
2008112292.tif 000007
【図６】
2008112292.tif 000008
【図７】
2008112292.tif 000009
【図８】
2008112292.tif 000010
【図９】
2008112292.tif 000011
【図１０】
2008112292.tif 000012
【図１１】
2008112292.tif 000013
【図１２】
2008112292.tif 000014
【図１３】
2008112292.tif 000015
【図１４】
2008112292.tif 000016
【図１５】
2008112292.tif 000017