(57)【要約】【課題】ストレージ装置の省電力の効果を比較的高く維持しつつ、アクセス要求に適切に応答することのできる技術を提供する。【解決手段】ストレージ装置１０において、ＭＰＵ２４０が、ＨＤＤ３３０を省電力状態からアクセス可能状態に移行させるために使用可能な電力値を取得し、ホストＩ／Ｆ２１０を介してアクセスコマンドを受信し、ＬＵを構成するＨＤＤ３３０の中のアクセス可能な状態のＨＤＤ３３０により、アクセスコマンドに応答できるか否かを判定し、応答することができないと判定された場合に、アクセスコマンド対象のＬＵの省電力状態のＨＤＤ３３０から、使用可能な電力の値以内の電力でアクセス可能な状態に移行することができ、且つ応答を可能にすることのできる１以上のＨＤＤ３３０を優先的にアクセス可能な状態に移行させる対象として選択する。【選択図】図１
2010003149.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置により構成される論理ユニットを対象とするアクセスを制御するとともに、所定の条件に合致した際に前記ディスク装置を省電力状態に移行させる制御が可能なストレージ装置において、
前記ディスク装置を前記省電力状態からアクセス可能な状態に移行させるために使用可能な電力の値を取得する電力値取得部と、
前記ディスク装置により構成される論理ユニットの所定の記憶領域を対象とするアクセスコマンドを受信する受信部と、
前記論理ユニットを構成する複数の前記ディスク装置の中のアクセス可能な状態のディスク装置により、前記アクセスコマンドに応答できるか否かを判定する状態判定部と、
前記アクセスコマンドに応答することができないと判定された場合に、前記アクセスコマンドの対象の前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることのできる、１以上のディスク装置をアクセス可能な状態に移行させる対象として選択する選択部と
を有するストレージ装置。
【請求項２】
前記ディスク装置を前記省電力状態からアクセス可能な状態に移行させるために増加する増加電力の値を記憶する増加電力値記憶部を更に備え、
前記選択部は、前記増加電力値記憶部に記憶された前記増加電力値に基づいて、前記使用可能な電力の値以内の電力でアクセス可能な状態に移行できる１以上の前記ディスク装置であるかを判断して、アクセス可能な状態に移行させる対象を選択する
請求項１に記載のストレージ装置。
【請求項３】
前記選択された１以上のディスク装置を前記アクセス可能な状態に移行させる第１移行制御部と、
前記アクセス可能な状態に移行させた前記ディスク装置を用いて、前記アクセスコマンドに対する応答を行う応答実行部と
を有する請求項１又は請求項２に記載のストレージ装置。
【請求項４】
前記アクセスコマンドに応答することができないと判定された場合に、前記使用可能な電力の値以内の電力で、前記論理ユニットの前記ディスク装置の中の省電力状態の前記ディスク装置の全てをアクセス可能な状態に移行させることができるか否かを判定する移行可否判定部を更に有し、
前記選択部は、前記使用可能な電力の値以内の電力で、前記論理ユニットの前記ディスク装置の中の省電力状態の前記ディスク装置の全てをアクセス可能な状態に移行させることができないと判定された場合に、優先的にアクセス可能な状態に移行させる対象を選択する
請求項１乃至３のいずれか一項に記載のストレージ装置。
【請求項５】
前記アクセスコマンドが対象とする前記記憶領域は、前記論理ユニットの一部のディスク装置に対応しており、
前記選択部は、前記アクセスコマンドの対象の前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、前記一部のディスク装置であって、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１乃至請求項４のいずれか一項に記載のストレージ装置。
【請求項６】
前記アクセスコマンドが対象とする前記論理ユニットは、冗長性を有するＲＡＩＤグループに生成されており、
前記選択部は、前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、冗長性により全てのデータを生成可能にするために必要なディスク装置数に対して不足している数のディスク装置であって、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１乃至請求項４のいずれか一項に記載のストレージ装置。
【請求項７】
前記アクセスコマンドが対象とする前記論理ユニットは、ＲＡＩＤ５又はＲＡＩＤ６のＲＡＩＤグループに生成されている
請求項６に記載のストレージ装置。
【請求項８】
前記アクセスコマンドが対象とする前記論理ユニットは、同一のデータを多重化してディスク装置に格納するＲＡＩＤ１のＲＡＩＤグループに生成されており、
前記選択部は、前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、全てのデータをアクセス可能な状態とするために必要な１以上のディスク装置であって、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１乃至請求項４のいずれか一項に記載のストレージ装置。
【請求項９】
前記アクセス可能な状態に移行させる対象として選択された前記ディスク装置をアクセス可能な状態に移行させた後に、前記アクセスコマンドが対象とする前記論理ユニットの残りの省電力状態のディスク装置を前記アクセス可能な状態に移行させる第２移行制御部
を更に有する請求項３に記載のストレージ装置。
【請求項１０】
前記アクセスコマンドが対象とする前記論理ユニットの全ての前記ディスク装置を前記アクセス可能な状態に移行させた後に、アクセスコマンドによる変更が反映されていない前記ディスク装置に対して、アクセスコマンドに応じたデータを反映させる反映部
を更に有する請求項９に記載のストレージ装置。
【請求項１１】
前記省電力状態は、前記ディスク装置のディスクの回転を停止させた状態である
請求項１に記載のストレージ装置。
【請求項１２】
前記選択部は、前記省電力状態のディスク装置の中に、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることができる１以上のディスク装置の候補が複数存在する場合に、スピンアップ時間が最も短い１以上の前記ディスク装置の候補を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１１に記載のストレージ装置。
【請求項１３】
前記ディスク装置の実スピンアップ時間を測定する測定部と、
前記実スピンアップ時間の履歴を記憶する履歴記憶部とを更に有し、
前記選択部は、前記履歴記憶部に記憶された実スピンアップ時間に基づく時間を前記スピンアップ時間として用いる
請求項１２に記載のストレージ装置。
【請求項１４】
前記選択部は、前記省電力状態のディスク装置の中に、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることができる１以上のディスク装置の候補が複数存在する場合に、スピンアップに要する電力が最も少ない１以上の前記ディスク装置の候補を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１１に記載のストレージ装置。
【請求項１５】
前記選択部は、前記省電力状態のディスク装置の中に、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることができる１以上のディスク装置の候補が複数存在する場合に、アクセスコマンドの応答が完了するまでに要する時間が最も短い１以上の前記ディスク装置の候補を優先的にアクセス可能な状態に移行させる対象として選択する
請求項１に記載のストレージ装置。
【請求項１６】
複数のディスク装置により構成される論理ユニットを対象とするアクセスを制御するとともに、所定の条件に合致した際に前記ディスク装置を省電力状態に移行させる制御が可能なストレージ装置において、
前記ストレージ装置は、複数のディスク装置と、ホスト計算機に接続されるインタフェースと、前記インタフェースに接続されるプロセッサとを有し、
前記プロセッサは、前記ディスク装置の前記省電力状態からアクセス可能な状態に移行するために使用可能な電力の値を取得し、前記インタフェースを介して前記論理ユニットの所定の記憶領域を対象とするアクセスコマンドを受信し、前記論理ユニットを構成する複数の前記ディスク装置の中のアクセス可能な状態のディスク装置により、前記アクセスコマンドに応答できるか否かを判定し、前記アクセスコマンドに応答することができないと判定された場合に、前記アクセスコマンドの対象の前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることのできる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する
ストレージ装置。
【請求項１７】
複数のディスク装置により構成される論理ユニットを対象とするアクセスを制御するとともに、所定の条件に合致した際に前記ディスク装置を省電力状態に移行させる制御が可能なストレージ装置におけるディスク装置制御方法であって、
前記ディスク装置を前記省電力状態からアクセス可能な状態に移行させるために使用可能な電力の値を取得する電力値取得ステップと、
前記論理ユニットの所定の記憶領域を対象とするアクセスコマンドを受信する受信ステップと、
前記論理ユニットを構成する複数の前記ディスク装置の中のアクセス可能な状態のディスク装置により、前記アクセスコマンドに応答できるか否かを判定する状態判定ステップと、
前記アクセスコマンドに応答することができないと判定された場合に、前記アクセスコマンドの対象の前記論理ユニットを構成する複数の前記ディスク装置の中の省電力状態のディスク装置から、前記使用可能な電力の値以内の電力で前記アクセス可能な状態に移行することができ、且つ前記アクセスコマンドの応答を可能にすることのできる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する選択ステップと
を有するディスク装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のディスク装置から構成される論理ユニットを有し、所定の条件に従ってディスク装置を省電力状態に移行させるストレージ装置及びディスク装置制御方法に関し、省電力状態のディスク装置をアクセス可能状態に移行させるための技術に関する。
【背景技術】
【０００２】
従来、複数のディスク装置を備えたストレージ装置が知られている。ストレージ装置においては、例えば、複数のディスク装置により論理ユニットを構成し、論理ユニットに対してホスト計算機等がアクセスするようになっている。このようなストレージ装置において、すべてのディスク装置を常にアクセス可能な状態としておくと、消費電力が大きいという問題がある。
【０００３】
そこで、ホスト計算機等から所定時間内にアクセスがない場合には、アクセスがない論理ユニットのディスク装置群を、例えば、スピンダウン（ディスクの停止）等を行うことにより省電力モードに移行させる技術が知られている（特許文献１参照）。
【０００４】
このように、ディスク装置群を省電力モードとしている際に、例えば、アクセスが発生した場合には、ディスク装置群の全てのディスク装置を立ち上げることとなる。この場合、全てのディスク装置を立ち上げるためには、大量の電力を必要とすることがある。これに対応するためには、ストレージ装置にその電力を供給することができる大容量の電源を用意しておくか、或いは、電源が供給できる電力内で逐次ディスク装置を立ち上げる制御を行う必要がある。
【０００５】
大容量の電源を用意すると、大量のディスク装置の立ち上げが可能になるが、立ち上げ時以外においては、立ち上げ時ほどの電力が必要ではないので、電源の使用効率が低くなってしまう。また、大容量の電源を用意すると、ストレージ装置の製造コストが掛かってしまうとともに、設置場所等を広く確保しなくてはならないという問題がある。一方、逐次ディスク装置を立ち上げる制御を行う場合には、すべてのディスク装置が立ち上がるまで、ホスト計算機等からのアクセスに応答することができず、応答性が悪く、ホスト計算機でタイムアウトとなってしまうという問題がある。
【０００６】
なお、ホスト計算機等からのアクセスと関係ない時点において、電源が供給できる電力内でディスク装置群を立ち上げる制御として、電力供給能力から起動できる最大数の装置を計算し、起動させる技術が知られている（特許文献２）。この特許文献２は、装置のホスト計算機からのアクセスと関係ない時点における起動に関するものであり、ホスト計算機からのアクセスの応答性については何ら考えられていない。
【０００７】
一方、電力消費を削減しつつ、ホスト計算機等からのアクセスに迅速に対応する技術として、ＲＡＩＤ（Redundant Array of Inexpensive Disks）グループとして構成された論理ボリュームについて冗長性に応じた数のディスク装置を節電モードとする技術が知られている（特許文献３）。
【０００８】
【特許文献１】特開２０００−２９３３１４号公報
【特許文献２】特開２０００−１０６７８号公報
【特許文献３】特開２００５−２２８２８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記した特許文献３の技術によると、ＲＡＩＤ（Redundant Array of Inexpensive Disks）グループによる冗長性を用いてアクセスに応答することにより、アクセス性能は維持できるものの、冗長性を利用できるだけのディスク装置を常にアクセス可能状態としておくこととなるので、省電力状態にできるディスク装置数が限られている。例えば、ＲＡＩＤ５の３Ｄ＋１Ｐ構成については、１つのディスク装置のみが省電力状態とされる。このため、ストレージ装置全体における省電力効果があまり高くないという問題がある。
【００１０】
そこで、本発明は、ストレージ装置の省電力の効果を比較的高く維持しつつ、アクセス要求に適切に応答することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的達成のため、本発明の第１の観点に係るストレージ装置は、複数のディスク装置により構成される論理ユニットを対象とするアクセスを制御するとともに、所定の条件に合致した際にディスク装置を省電力状態に移行させる制御が可能なストレージ装置において、ディスク装置を省電力状態からアクセス可能な状態に移行させるために使用可能な電力の値を取得する電力値取得部と、論理ユニットの所定の記憶領域を対象とするアクセスコマンドを受信する受信部と、論理ユニットを構成する複数のディスク装置の中のアクセス可能な状態のディスク装置により、アクセスコマンドに応答できるか否かを判定する状態判定部と、アクセスコマンドに応答することができないと判定された場合に、アクセスコマンドの対象の論理ユニットを構成する複数のディスク装置の中の省電力状態のディスク装置から、使用可能な電力の値以内の電力でアクセス可能な状態に移行することができ、且つアクセスコマンドの応答を可能にすることのできる１以上のディスク装置を優先的にアクセス可能な状態に移行させる対象として選択する選択部とを有する。
【発明を実施するための最良の形態】
【００１２】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、本発明の一実施形態に係る計算機システムの機能構成図である。
【００１４】
計算機システム１は、ホスト計算機７００と、管理端末６００と、ストレージ装置１０とを有する。ホスト計算機７００は、ＯＳ（Operating System）７２０と、アプリケーション７３０と、Ｉ／Ｆ７１０とを有する。ホスト計算機７００の図示しないプロセッサは、ＯＳ７２０及びアプリケーション７３０を実行することにより、所定の処理を実行し、処理に応じてストレージ装置１０に対するデータのアクセスコマンド（リードコマンド、ライトコマンドの他、制御コマンド等のコマンドを含む）を送信する。ホスト計算機７００から送信されるリードコマンドには、例えば、リード対象のデータが管理されている論理ユニット（ＬＵ：Logical Unit）の番号（ＬＵＮ：Logical Unit Number）及び論理ユニットにおけるブロックアドレス（ＬＢＡ：Logical Block Address）が含まれる。また、ホスト計算機７００から送信されるライトコマンドには、例えば、ライト対象のデータを書き込むＬＵＮ及びＬＢＡと、ライト対象のデータとが含まれる。Ｉ／Ｆ７１０は、ホスト計算機７００とストレージ装置１０とのデータのやり取りの仲介を行う。本実施形態では、ホスト計算機７００と、ストレージ装置１０とは、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、インターネット、専用回線、公衆回線等のいずれのネットワークで接続されてもよく、データ通信を行うことのできるネットワークであればよい。また、ネットワークにおけるプロトコルとしては、ファイバチャネルプロトコルや、ＴＣＰ／ＩＰプロトコルであってもよく、ホスト計算機７００とストレージ装置１０との間でデータのやりとりが可能なプロトコルであればよい。
【００１５】
管理端末６００は、ストレージ管理ソフトウェア６１０を有し、管理端末６００内の図示しないプロセッサによりストレージ管理ソフトウエア６１０を実行することにより、管理者（ユーザ）による各種指示、設定指示等に従ってストレージ装置１０を設定する処理を実行する。管理端末６００と、ストレージ装置１０とは、例えばＬＡＮ（Local Area Network）によって接続されている。
【００１６】
ストレージ装置１０は、基本筐体１００と、拡張筐体４００とを有する。拡張筐体４００は、備えなくてもよいし、複数備えるようにしてもよい。基本筐体１００は、コントローラ２００と、複数のディスク装置（ＨＤＤ）３３０とを有する。本実施形態では、基本筐体１００には、複数のディスク装置３３０によってＲＡＩＤ構成（例えば、ＲＡＩＤ１、５、６等）されたＲＡＩＤグループ３００が備えられている。なお、ＲＡＩＤグループ３００を複数備えるようにしてもよい。ＲＡＩＤグループ３００においては、ＲＡＩＤグループ３００の少なくとも一部の記憶領域を自身の記憶領域とする１以上の論理ユニット（論理ボリューム）３４０が生成されている。
【００１７】
コントローラ２００は、ホストインタフェース（ホストＩ／Ｆ）２１０と、バックエンドコントローラ２２０と、データコントローラ（ＤＣＴＬ）２３０と、プロセッサの一例としてのＭＰＵ（Micro Processing Unit）２４０と、増加電力記憶部の一例としてのキャッシュメモリ２５０と、履歴記憶部の一例としてのメモリ２６０と、ブリッジ２７０と、ＬＡＮ  Ｉ／Ｆ２９０とを有する。
【００１８】
ホストＩ／Ｆ２１０は、ホスト計算機７００との間でのデータのやり取りを仲介する。バックエンドコントローラ２２０は、コントローラ２００と、基本筐体１００及び拡張筐体４００に備えられた複数のＨＤＤ３３０との間のデータのやり取りを制御する。データコントローラ２３０は、ホストＩＦ２１０、バックエンドコントローラ２２０、キャッシュメモリ２５０、ブリッジ２７０、及びＬＡＮ  Ｉ／Ｆ２９０に接続され、各部間のデータの流れを制御する。ブリッジ２７０は、ＤＴＣＬ２３０、ＭＰＵ２４０、及びメモリ２６０に接続され、各部間のデータを中継する。ＬＡＮ  Ｉ／Ｆ２９０は、ホスト計算機７００とストレージ装置１０とのデータのやり取りの仲介を行う。
【００１９】
ＭＰＵ２４０は、キャッシュメモリ２５０、メモリ２６０に格納されたプログラムやデータを用いて各種処理を実行する。ここで、ＭＰＵ２４０がメモリ２６０の各種プログラムを実行することにより、電力取得部、受信部、状態判定部、選択部、第１移行制御部、第２移行制御部、応答実行部、反映部、及び測定部を構成する。メモリ２６０は、プログラムやデータを記憶する。メモリ２６０は、本実施形態では、電力制御プログラム２６１と、アクセス記録管理プログラム２６２と、ホストＩ／Ｏ制御プログラム２６３と、電力モニタプログラム２６４と、稼働状況管理テーブル２６５と、省電力設定データ２６６とを記憶する。
【００２０】
電力制御プログラム２６１は、複数のＨＤＤ３３０の動作の制御処理をＭＰＵ２４０に実行させるためのプログラムである。アクセス記録管理プログラム２６２は、ホスト計算機７００によるアクセスの情報を記録させる処理をＭＰＵ２４０に実行させるためのプログラムである。ホストＩ／Ｏ制御プログラム２６３は、ホスト装置からのリードコマンド、ライトコマンド等のコマンドに応じて、ＨＤＤ３３０へのリードやライトの処理をＭＰＵ２４０に実行させるためのプログラムである。電力モニタプログラム２６４は、ストレージ装置１０の各部における使用電力の情報を収集する処理をＭＰＵ２４０に実行させるためのプログラムである。
【００２１】
キャッシュメモリ２５０は、各種データを記憶する。キャッシュメモリ２５０は、本実施形態では、電力仕様管理テーブル２５１と、ＨＤＤ仕様管理テーブル２５２と、省電力設定管理テーブル２５３と、ＬＵ管理テーブル２５４とを記憶する。ここで、各テーブル２５１〜２５４の少なくとも１つをメモリ２６０に格納するようにしてもよい。なお、各２５１〜２５４の構成については後述する。
【００２２】
拡張筐体４００は、複数のＨＤＤ３３０を有する。本実施形態では、拡張筐体４００には、複数のＨＤＤ３３０によってＲＡＩＤ構成（例えば、ＲＡＩＤ１、５、６等）されたＲＡＩＤグループ３００が備えられている。なお、ＲＡＩＤグループ３００を複数備えるようにしてもよい。ＲＡＩＤグループ３００においては、ＲＡＩＤグループ３００の少なくとも一部の記憶領域を自身の記憶領域とする１以上の論理ユニット（論理ボリューム）３４０が設けられている。
【００２３】
次に、計算機システム１における電力供給及び電力状態のモニタについて説明する。
【００２４】
図２は、本発明の一実施形態に係る計算機システムの電力供給に関する一部構成図である。
【００２５】
基本筐体１００には、基本筐体１００内に電力を供給する電源１１０が設けられている。電源１１０と、複数のＨＤＤ３３０やコントローラ２００とは、電力を供給するための電線Ｗを介して接続されている。電線Ｗにおける、電源１１０と複数のＨＤＤ３３０との間と、電源１１０とコントローラ２００との間には、それぞれに供給される電力を監視する電力監視チップ１２０、１３０が設けられている。電力監視チップ１２０、１３０は、それぞれの監視結果（例えば、電力値）を電力モニタプログラム２６４を実行するＭＰＵ２４０に通知する。
【００２６】
また、拡張筐体４００には、拡張筐体４００内に電力を供給する電源５１０が設けられている。電源５１０は、拡張筐体４００内の複数のＨＤＤ３３０と電線Ｗによって接続されている。電線Ｗにおける電源５１０と複数のＨＤＤ３３０との間には、複数のＨＤＤ３３０へ供給される電力を監視する電力監視チップ５２０が設けられている。電力監視チップ５２０は、監視結果（例えば、電力値）を電力モニタプログラム２６４を実行するＭＰＵ２４０に通知する。なお、同図では図示していないが、基本筐体１００や拡張筐体４００の他のコンポーネントの消費電力を監視する電力監視チップも設けられており、これら電力監視チップからの監視結果もＭＰＵ２４０に通知されるようになっている。
【００２７】
次に、キャッシュメモリ２５０及びメモリ２６０に格納されたテーブル及びデータについて説明する。
【００２８】
図３は、本発明の一実施形態に係る電力仕様管理テーブルの一例を示す図である。
【００２９】
電力仕様管理テーブル２５１は、コンポーネントフィールド２５１１と、定格電力フィールド２５１２と、通常時消費電力フィールド２５１３と、省電力時電力フィールド２５１４とを有するレコードを格納する。コンポーネントフィールド２５１１には、ストレージ装置１０におけるコンポーネント名が格納される。コンポーネントとしては、例えば、サブシステム（ストレージ装置）１０、基本筐体１００、拡張筐体４００、コントローラ２００、ＭＰＵ２４０等がある。定格電力フィールド２５１２には、対応するコンポーネントにおける定格電力値が格納される。通常時消費電力フィールド２５１３には、対応するコンポーネントにおける通常時の消費電力値（通常時消費電力値）が格納される。なお、サブシステム１０、基本筐体１００、拡張筐体４００においては、構成等に応じて変動するので通常時消費電力値が格納されていない。省電力時電力フィールド２５１４には、省電力時における消費電力値（省電力時消費電力値）が格納される。
【００３０】
電力仕様管理テーブル２５１の各値は、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。なお、コンポーネントに対応する値を、コンポーネント内のメモリや、その他の記憶装置に予め格納させておき、ＭＰＵ２４０がそこから収集して電力仕様管理テーブル２５１に自動的に設定するようにしてもよい。
【００３１】
図４は、本発明の一実施形態に係るＨＤＤ仕様管理テーブルの一例を示す図である。
【００３２】
ＨＤＤ仕様管理テーブル２５２は、ベンダフィールド２５２１と、型名フィールド２５２２と、スピンアップ時間フィールド２５２３と、スピンアップ電力フィールド２５２４と、アイドル電力フィールド２５２５と、Ｉ／Ｏ電力フィールド２５２６と、Ｓｔａｎｄｂｙ電力フィールド２５２７とを有するレコードを格納する。
【００３３】
ベンダフィールド２５２１には、ＨＤＤ３３０のベンダ名が格納される。型名フィールド２５２２には、ＨＤＤ３３０の型名が格納される。スピンアップ時間フィールド２５２３には、対応するＨＤＤ３３０におけるスピンアップに要する時間、すなわち、ＨＤＤ３３０のディスクの回転を始動してから規定回転数に達するまでに要する時間が格納される。スピンアップ電力フィールド２５２４には、スピンアップ時に必要な電力の値が格納される。アイドル電力フィールド２５２５には、アイドル状態、すなわち、Ｉ／Ｏに直ちに対応することのできる状態（アクセス可能状態の一例）において必要な電力の値が格納される。Ｉ／Ｏ電力フィールド２５２６には、入力（ライト）又は出力（リード）を行っている状態（Ｉ／Ｏ状態時：アクセス可能状態の一例）において必要な電力の値が格納される。Ｓｔａｎｄｂｙ電力フィールド２５２７には、ディスクの回転を停止し、ディスクの回転指示を待っているスタンバイ状態（省電力状態の一例）におけるＨＤＤ３３０に必要な電力の値が格納される。なお、ＨＤＤ仕様管理テーブル２５２には、スタンバイ状態からスピンアップする際に増加する電力値そのものは、格納されていないが、スタンバイ状態における電力値と、スピンアップ時に必要な電力値とが格納されているので、実質的には、スタンバイ状態からスピンアップする際に増加する電力値が格納されているということができる。
【００３４】
例えば、ＨＤＤ仕様管理テーブル２５２の１番上のレコードは、ベンダ”Ａ”の型名”Ａ０００１”のＨＤＤ３３０は、スピンアップ時間が、２０ｓ（秒）であり、スピンアップ電力が３５ｗであり、アイドル電力が１２ｗであり、Ｉ／Ｏ電力が１８ｗであり、スタンバイ電力が２ｗであることを示している。
【００３５】
ＨＤＤ仕様管理テーブル２５２の各値は、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。なお、各フィールドに対応する値を、ＨＤＤ３３０内等の記憶装置に予め格納させておき、ＭＰＵ２４０がそこから収集してＨＤＤ仕様管理テーブル２５２に自動的にデータを収集し、設定するようにしてもよい。
【００３６】
図５は、本発明の一実施形態に係る稼働状況管理テーブルの一例を示す図である。
【００３７】
稼働状況管理テーブル２６５は、ＨＤＤ番号フィールド２６５１と、スピンアップ最長時間フィールド２６５２と、複数のスピンアップ時間フィールド２６５３と、最終アクセス時刻フィールド２６５４と、型名フィールド２６５５と、配置フィールド２６５６とを有するレコードを格納する。
【００３８】
ＨＤＤ番号フィールド２６５１には、ＨＤＤ３３０をストレージ装置１０内で一意に識別するＨＤＤ番号が格納される。スピンアップ最長時間フィールド２６５２には、対応するＨＤＤ３３０のスピンアップに実際に要した最長の時間（スピンアップ最長時間）が格納される。スピンアップ時間フィールド２６５３には、対応するＨＤＤ３３０の実際のスピンアップ時間が格納される。本実施形態では、複数のスピンアップ時間フィールド２６５３があるので、複数回のスピンアップ時間の履歴を管理することができる。最終アクセス時刻フィールド２６５４には、対応するＨＤＤ３３０にアクセスした最終の時刻（最終アクセス時刻）が格納される。型名フィールド２６５５には、対応するＨＤＤ３３０の型名が格納される。配置フィールド２６５６には、対応するＨＤＤ３３０が配置されている筐体名が格納される。
【００３９】
稼働状況管理テーブル２６５においては、例えば、ＨＤＤ番号、型名、配置については、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。一方、最終アクセス時刻については、アクセス記録管理プログラム２６２を実行するＭＰＵ２４０がＨＤＤ３３０へのアクセスを監視することにより把握して格納する。スピンアップ最長時間及びスピンアップ時間については、電力制御プログラム２６１を実行するＭＰＵ２４０がＨＤＤ３３０のスピンアップを監視することにより把握して格納するようになっている。
【００４０】
図６は、本発明の一実施形態に係る省電力設定管理テーブルの一例を示す図である。
【００４１】
省電力設定管理テーブル２５３は、ＨＤＤ番号フィールド２５３１と、動作状態フィールド２５３２と、消費電力フィールド２５３３と、停止移行時間フィールド２５３４と、復帰時間フィールド２５３５とを有するレコードを格納する。
【００４２】
ＨＤＤ番号フィールド２５３１には、ＨＤＤ番号が格納される。動作状態フィールド２５３２には、対応するＨＤＤ３３０の動作状態が格納される。動作状態としては、スタンバイ状態（省電力状態の一例）、アイドル状態、Ｉ／Ｏ状態等がある。また、スタンバイ状態を、ヘッドのアンロード状態、ディスク回転数減少、ディスク回転数停止などのように段階的に変化するように設定してもよい。消費電力フィールド２５３３には、対応するＨＤＤ３３０の消費電力の値が格納される。停止移行時間フィールド２５３４には、アクセスがない場合に、省電力状態に移行するまでの時間（停止移行時間）が格納される。復帰時間フィールド２５３５には、省電力状態から復帰すべき時間が格納される。
【００４３】
省電力設定管理テーブル２５３においては、例えば、ＨＤＤ番号、停止移行時間、復帰時間については、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。一方、動作状態については、電力制御プログラム２６１を実行するＭＰＵ２４０がＨＤＤ３３０の状態を格納し、消費電力については、電力モニタプログラム２６４を実行するＭＰＵ２４０がＨＤＤ３３０の消費電力を把握して格納するようになっている。
【００４４】
図７は、本発明の一実施形態に係る省電力設定データの一例を示す図である。
【００４５】
省電力設定データ２６６としては、ホストタイムアウト時間２６６１と、データ補完開始時間２６６２とがある。ホストタイムアウト時間２６６１は、ホスト計算機７００がホスト要求をしてからタイムアウト（処理の打ち切り）となるまでの時間である。データ補完開始時間２６６２は、タイムアウトにならないようにするために、ホスト計算機７００からのリード要求に対して冗長性を利用してデータを補完して応答する際に、補完を開始すべき時間である。ホストタイムアウト時間とデータ補完開始時間とは、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。
【００４６】
図８は、本発明の一実施形態に係るＬＵ管理テーブルの一例を示す図である。
【００４７】
ＬＵ管理テーブル２５４は、ＲＡＩＤグループフィールド２５４１と、ＨＤＤフィールド２５４２と、ＬＵフィールド２５４３と、動作モードフィールド２５４４とを対応付けて記憶する。ＲＡＩＤグループフィールド２５４１には、ＲＡＩＤグループを識別するＲＡＩＤグループ番号が格納される。ＨＤＤフィールド２５４２には、対応するＲＡＩＤグループを構成する複数のＨＤＤ３３０のＨＤＤ番号が格納される。ＬＵフィールド２５４３には、対応するＲＡＩＤグループに生成されたＬＵ（論理ユニット）の番号（ＬＵＮ）が格納される。動作モードフィールド２５４４には、対応するＬＵが所定の条件に合致する場合に省電力状態に移行させる省電力モードであるのか、省電力状態に移行させず通常状態のままにする通常モードであるかの、モード設定が格納される。ここで、本実施形態では、電力制御プログラム２６１を実行するＭＰＵ２４０の処理により、同一のＲＡＩＤグループに属する全てのＬＵが省電力モードに設定されている場合には、当該ＲＡＩＤグループのＨＤＤ３３０が省電力モードとして制御され、同一ＲＡＩＤグループに属するＬＵの中に１つでも通常モードが設定されている場合には、省電力モードとして制御されないようになっている。
【００４８】
このＬＵ管理テーブル２５４によると、例えば、ＬＵＮが”１”の論理ユニットは、ＲＡＩＤグループ”０”に作成され、このＲＡＩＤグループは、”０〜４”のＨＤＤ３３０によって構成され、省電力モードであることがわかる。ＬＵ管理テーブル２５４のＲＡＩＤグループ、ＨＤＤ番号、ＬＵＮ、及び動作モードとは、例えば、ユーザが管理端末６００を用いて入力を行うことにより、設定、変更できるようになっている。
【００４９】
次に、本発明の一実施形態に係る計算機システムによる処理動作を説明する。
【００５０】
図９は、本発明の一実施形態に係る省電力設定処理のフローチャートである。この省電力設定処理は、例えば、ストレージ装置１０の電源を投入した後に実行される。
【００５１】
省電力設定処理においては、電力制御プログラム２６１を実行するＭＰＵ２４０がストレージ装置１０を起動し、省電力機能を有効化する（ステップＳ１）。すなわち、ＭＰＵ２４０は、同一のＲＡＩＤグループの全てのＬＵが省電力モードで設定されているＲＡＩＤグループについては、構成するＨＤＤ３３０を省電力状態とし、それ以外のＲＡＩＤグループを構成するＨＤＤ３３０については通常状態とし、起動させるようにする。
【００５２】
次いで、ＭＰＵ２４０は、電力仕様管理テーブル２５１を所定の格納先（例えば、装置内の所定のＲＡＩＤグループのＨＤＤ３３０）からキャッシュメモリ２５０に読み出し（ステップＳ２）、ＨＤＤ仕様管理テーブル２５２を所定の格納先（例えば、装置内の所定のＲＡＩＤグループのＨＤＤ３３０）からキャッシュメモリ２５０に読み出し（ステップＳ３）、ホストタイムアウト時間及びデータ補完開始時間を所定の格納先（例えば、装置内の所定のＲＡＩＤグループのＨＤＤ３３０）からメモリ２６０に読み出す（ステップＳ４）。
【００５３】
次いで、ＭＰＵ２４０は、新たなＨＤＤの仕様、ＬＵの動作モードの設定等の省電力関連情報の外部入力要求があるか否かを判定し（ステップＳ５）、外部入力要求がない場合には処理を終了する一方、外部入力要求がある場合には、管理端末６００から省電力関連情報の入力を受け付けて、対応するテーブル等に追加等行い（ステップＳ６）、処理を終了する。
【００５４】
図１０は、本発明の一実施形態に係る情報取得処理のフローチャートである。
【００５５】
情報取得処理は、例えば、所定時間おきに繰り返し実行される。情報取得処理においては、電力モニタプログラム２６４を実行するＭＰＵ２４０が、ストレージ装置１０内の各コンポーネント（、例えば、コントローラ２００等）の消費電力を電力監視チップ１３０等から取得し、メモリ２６０に記憶する（ステップＳ１１）。次いで、電力制御プログラム２６１を実行するＭＰＵ２４０は、ＨＤＤ３３０の動作状態を取得し、省電力設定管理テーブル２５３に格納し（ステップＳ１２）、更に、電力監視チップ１２０、５２０から各ＨＤＤ３３０の消費電力を取得し、省電力設定管理テーブル２５３に格納する（ステップＳ１３）。
【００５６】
図１１は、本発明の一実施形態に係るホストコマンド処理のフローチャートである。
【００５７】
ホストコマンド処理は、例えば、所定時間おきに繰り返し実行される。ホストコマンド処理においては、まず、ホストＩ／Ｏ制御プログラム２６３を実行するＭＰＵ２４０が、ホスト計算機７００から送信されたホストコマンド（リードコマンド、又はライトコマンド）を受領し（ステップＳ２１）、ホストコマンドに対する応答が直ちにできるか否かを判定する（ステップＳ２２）。
【００５８】
本実施形態では、まず、ＭＰＵ２４０は、ホストコマンドに含まれているＬＵＮに対応するＬＵ（対象ＬＵ）が生成されているＲＡＩＤグループの全てのＨＤＤ３３０をＬＵ管理テーブル２５４により特定し、省電力設定管理テーブル２５３の動作状態フィールド２５３２により、特定したＨＤＤ３３０の動作状態を把握する。そして、特定したＨＤＤ３３０の全てがアクセス可能な状態（省電力状態でない状態、例えば、アイドル状態、Ｉ／Ｏ状態）となっている場合には、応答が可能であると判定する。また、ＭＰＵ２４０は、対象ＬＵが生成されているＲＡＩＤグループにおいて、冗長性を利用することにより応答できる台数（例えば、４台のＨＤＤでＲＡＩＤ５を構成している場合には、３台）のＨＤＤ３３０がアクセス可能な状態となっている場合にも、応答可能であると判定する。また、ＭＰＵ２４０は、ホストコマンドに含まれているＬＵＮ及びＬＢＡに対応する全てのデータを格納しているＨＤＤ３３０が全てアクセス可能な状態となっている場合にも応答可能であると判定する。具体的には、アクセスコマンドが示すＬＵＮ及びＬＢＡに対応する領域が１つのＨＤＤ３３０に格納されているときに、そのＨＤＤ３３０がアクセス可能な状態となっている場合がこれに相当する。なお、ＬＵＮにおけるＬＢＡと、ＬＢＡが格納されているＨＤＤ３３０との対応関係は、図示しないテーブルによって管理されている。
【００５９】
この結果、ホスト応答可能であると判定した場合には、ＭＰＵ２４０は、ホスト応答を行う（ステップＳ２４）。例えば、ホストコマンドがリードコマンドであり、冗長性を利用することにより応答できる台数のＨＤＤ３３０がアクセス可能状態となっている場合には、リード対象のデータの中でアクセス可能状態となっているＨＤＤ３３０から読み出せるデータについては、そのまま読み出し、リード対象のデータの中でアクセス可能状態のＨＤＤ３３０に格納されていないデータについては、冗長性を使って補完する。例えば、これらＨＤＤ３３０がＲＡＩＤ５構成のＲＡＩＤグループであれば、パリティデータと、パリティデータを作成する際に用いられたデータであってアクセス可能状態のＨＤＤ３３０から読み出せるデータとから、アクセス可能状態のＨＤＤ３３０に含まれていないデータ（省電力状態のＨＤＤ３３０に含まれているデータ）を生成する。そして、読み出したデータ及び補完したデータをホスト応答としてホスト計算機７００に送信する。
【００６０】
一方、ホスト応答可能でないと判定した場合（ステップＳ２２：ＮＯ）には、ＭＰＵ２４０は、ディスク制御処理（ステップＳ２３）を実行する。
【００６１】
図１２は、本発明の一実施形態に係るディスク制御処理のフローチャートである。
【００６２】
ディスク制御処理においては、ＭＰＵ２４０がストレージ装置１０の基本筐体１００において使用されている電力値と、拡張筐体４００において使用されている電力値を算出する（ステップＳ３１）。本実施形態では、ＭＰＵ２４０は、メモリ２６０に記憶されている基本筐体１００のコンポーネント（コントローラ２００等）の使用電力値と、基本筐体１００に配置されているすべてのＨＤＤ３３０の消費電力（省電力設定管理テーブル２６６から取得）とを加算することにより、基本筐体１００において使用されている電力値を算出することができ、拡張筐体４００においては、メモリ２６０に記憶されている拡張筐体４００のコンポーネントの電力値と、拡張筐体４００に配置されているすべてのＨＤＤ３３０の消費電力（省電力設定管理テーブル２６６から取得）を加算することにより算出することができる。
【００６３】
次いで、ＭＰＵ２４０は、基本筐体１００と拡張筐体４００とのそれぞれにおいて、ＨＤＤ３３０のスピンアップに使用可能な電力値を算出する（ステップＳ３２）。すなわち、ＭＰＵ２４０は、電力仕様管理テーブル２５１の基本筐体１００の定格電力値から基本筐体１００において使用されている使用電力値を減算することにより基本筐体１００において使用可能な電力値を算出し、電力仕様管理テーブル２５１の拡張筐体４００の定格電力値から拡張筐体４００において使用されている使用電力値を減算することにより拡張筐体４００において使用可能な電力値を算出する。
【００６４】
次いで、ＭＰＵ２４０は、ホストコマンドが示すＬＵ（対象ＬＵ）の全てのＨＤＤ３３０をスピンアップさせる際に必要となる電力値を算出する（ステップＳ３３）。本実施形態では、ＭＰＵ２４０は、対象ＬＵの省電力状態である全てのＨＤＤ３３０の型名及び配置を稼働状況管理テーブル２６５で特定し、特定した型名のＨＤＤ３３０のスピンアップ電力とスタンバイ電力との差の電力値、すなわち、スピンアップする際に増加する電力値をＨＤＤ仕様管理テーブル２５２に基づいて算出し、対象ＬＵが示す省電力状態である全てのＨＤＤ３３０についての差の電力値を、その配置に従って、基本筐体１００と拡張筐体４００とのそれぞれに分けて、それぞれ毎に合計することにより、基本筐体１００においてスピンアップする際に必要な電力値と、拡張筐体４００においてスピンアップする際に必要な電力値とを求める。
【００６５】
次いで、ＭＰＵ２４０は、ホストコマンドが示すＬＵ（対象ＬＵ）の全てのＨＤＤ３３０をスピンアップ可能か否か、すなわち、省電力状態のＨＤＤ３３０の全てをスピンアップしても、基本筐体１００と拡張筐体４００とのそれぞれにおける使用可能な電力値以内に収まるか否かを判定する（ステップＳ３４）。すなわち、ＭＰＵ２４０は、既に算出した基本筐体１００においてスピンアップする際に必要な電力値と、拡張筐体４００においてスピンアップする際に必要な電力値とが、それぞれの筐体の使用可能な電力値以内か否かを判定する。
【００６６】
この結果、対象ＬＵの全てのＨＤＤ３３０のスピンアップが可能である場合、すなわち、使用可能な電力量以内に収まる場合（ステップＳ３４：ＹＥＳ）には、ＭＰＵ２４０は、対象ＬＵを構成するＨＤＤ３３０の中で省電力状態となっている全てのＨＤＤ３３０のスピンアップを開始させ、全てのスピンアップが終了した後に、対象ＬＵに対するアクセス（リード又はライト）処理を実行し、ホスト計算機７００に対して応答を行う（ステップＳ３６）。
【００６７】
一方、対象ＬＵの全てのＨＤＤ３３０のスピンアップが可能でない場合（ステップＳ３４：ＮＯ）には、ＭＰＵ２４０は対象ＬＵの中の省電力状態の全てのＨＤＤ３３０の中から、基本筐体１００及び拡張筐体４００における使用可能な電力値以内でスピンアップが可能であり、アクセスコマンドの応答が可能であり、且つスピンアップ時間がタイムアウト時間以内である１以上のＨＤＤ３３０を優先的にスピンアップ対象として選択する（ステップＳ３７）。なお、スピンアップ時間がタイムアウト時間以内であるとの条件は、場合によっては用いなくてもよい。さらに、使用可能な電力値以内でスピンアップできるＨＤＤでは、アクセスコマンドの応答が可能でない場合には、使用可能な電力値以内でスピンアップできるＨＤＤをスピンアップさせ、その後、アクセスコマンドの応答するために必要な他のＨＤＤをスピンアップする。本実施形態においては、アクセスコマンドの応答が可能であるＨＤＤ３３０とは、例えば、ホストコマンド（リード／ライトコマンド）が対象とするデータの格納領域が一部のＨＤＤ３３０に限られている場合には、当該一部のＨＤＤ３３０である。また、例えば、対象ＬＵを格納するＲＡＩＤグループがＲＡＩＤ１である場合においては、同一のデータの一方を格納する１以上のＨＤＤ３３０である。また、対象ＬＵを格納するＲＡＩＤグループがＲＡＩＤ５、又はＲＡＩＤ６である場合においては、データを補完することのできる複数、例えば、ＲＡＩＤ５であれば、１台を除く複数のＨＤＤであり、ＲＡＩＤ６であれば、２台を除く複数のＨＤＤである。
【００６８】
ここで、基本筐体１００及び拡張筐体４００における使用可能な電力値以内でスピンアップが可能であり、アクセスコマンドの応答が可能であり、且つスピンアップ時間がタイムアウト時間以内である１以上のＨＤＤ３３０の候補が複数ある場合には、例えば、スピンアップ時間が短いＨＤＤ候補を優先して選択するようにしてもよい。ここで、ＨＤＤ３３０の選択に用いるスピンアップ時間としては、ＨＤＤ使用管理テーブル２５２のスピンアップ時間フィールド２５２３のスピンアップ時間を用いてもよく、また、稼働状況管理テーブル２６５の複数の実際に要したスピンアップ時間の平均のスピンアップ時間を用いてもよく、また、稼働状況管理テーブル２６５のスピンアップ最長時間を用いてもよい。また、１以上のＨＤＤ３３０の候補が複数ある場合には、ＨＤＤ３３０のデータ転送速度に基づいて、ホストコマンドの完了が短時間ですむＨＤＤ３３０の候補を優先して選択してもよい。このようにすると、ホストアクセスの完了を短時間にすることができる。また、１以上のＨＤＤ３３０の候補が複数ある場合には、ＨＤＤ仕様管理テーブル２５２のスピンアップ電力が少ないＨＤＤの候補を優先して選択するようにしてもよい。このようにすると、スピンアップ時の電力を抑えることができ、例えば、他のホストアクセスに対応してスピンアップする際の電力に振り分けることができる。
【００６９】
次いで、ＭＰＵ２４０は、選択されたＨＤＤ３３０のスピンアップを開始させ、スピンアップを終了した後（ステップＳ３８）に、ホストコマンドに対する応答が直ちに可能か否かを判定する（ステップＳ３９）。ステップＳ３９における具体的な処理は、ステップＳ２２と同様である。
【００７０】
この結果、ホスト応答が直ちに可能であると判定した場合（ステップＳ３９：ＹＥＳ）には、ＭＰＵ２４０は、ホスト応答を行う（ステップＳ４０）。ステップＳ４０における具体的な処理は、ステップＳ２４と同様である。次いで、ＭＰＵ２４０は、対象ＬＵの全てのＨＤＤ３３０がスピンアップを完了しているか否かを判定し（ステップＳ４１）、スピンアップを完了していない場合には、対象ＬＵの残りの省電力状態のＨＤＤ３３０のスピンアップを行う（ステップＳ４２）。なお、この処理においては、基本筐体１００及び拡張筐体４００での使用可能な電力の範囲内で、最大数のＨＤＤ３３０ずつスピンアップを行う。
【００７１】
一方、対象ＬＵの全てのＨＤＤ３３０がスピンアップしている場合（ステップＳ４１）には、必要な処理、例えば、ホストコマンドがライトコマンドである場合には、ホスト応答後にスピンアップしたＨＤＤ３３０に対して、反映すべきデータやパリティデータを格納する処理を実行して、ディスク制御処理を終了する。
【００７２】
一方、ステップＳ３９において、ホスト応答が直ちに可能でないと判定した場合（ステップＳ３９：ＮＯ）には、ステップＳ３１と同様な処理により、基本筐体１００において使用されている電力値と、拡張筐体４００において使用されている電力値を算出し（ステップＳ４３）、ステップＳ３２と同様な処理により、基本筐体１００と拡張筐体４００とのそれぞれにおいて、ＨＤＤ３３０のスピンアップに使用可能な電力値を算出し（ステップＳ４４）、対象ＬＵのスピンアップをしていない省電力状態の全てのＨＤＤ３３０をスピンアップさせる際に必要となる電力値を算出し（ステップＳ４５）、上記したステップＳ３７からの処理を実行する。
【００７３】
次に、ステップＳ３７におけるスピンアップ対象のＨＤＤ３３０の選択についての具体例について説明する。
【００７４】
図１３乃至図１６は、本発明の一実施形態に係るスピンアップ対象のＨＤＤの選択を説明する図である。
【００７５】
図１３に示すように、ホスト計算機７００から送信されたリード／ライトコマンドが対象とするデータＤ１、Ｄ２の格納領域がＲＡＩＤグループの一部のＨＤＤ３３０（３３０Ａ、３３０Ｂ）に限られている場合には、ステップＳ３７において、ＭＰＵ２４０は、ＨＤＤ３３０Ａ及び３３０Ｂのスピンアップにより増加する各筐体（基本筐体１００、拡張筐体４００）における電力量が、各筐体における使用可能な電力値以内であって、ＨＤＤ３３０Ａと、ＨＤＤ３３０Ｂとのスピンアップ時間がホストタイムアウト時間以内であれば、ＨＤＤ３３０Ａ及び３３０Ｂをスピンアップの対象のＨＤＤ３３０として選択する。なお、リード／ライトコマンドが対象とするデータＤ１、Ｄ２の格納領域となるＨＤＤ３３０については、ホストコマンド中のＬＵＮ及びＬＢＡと、キャッシュメモリ２５０等に記憶されたテーブルとにより、ＭＰＵ２４０が特定することができる。
【００７６】
この結果、ＨＤＤ３３０Ａ及び３３０Ｂをスピンアップした後に、ＨＤＤ３３０Ａに対しては、データＤ１のアクセスをし、ＨＤＤ３３０Ｂに対しては、データＤ２のアクセスをし、応答がホスト計算機７００に送信されることとなる。これにより、一部のＨＤＤ３３０Ａ、３３０Ｂをスピンアップするだけ立ち上げることにより、使用可能な電力値以内で、ホストタイムアウトを起こさずホスト計算機７００に応答することができる。なお、ホストコマンドがライトコマンドであって、ＲＡＩＤグループ３００がＲＡＩＤ５又はＲＡＩＤ６の構成である場合には、一部のＨＤＤ３３０Ａ、３３０Ｂをスピンアップした後に、ＭＰＵ２４０がＨＤＤ３３０Ｃ、ＨＤＤ３３０Ｄをスピンアップし、変更されたデータＤ１及びデータＤ２に対応するパリティデータをＨＤＤ３３０Ｃ又は３３０Ｄに格納する。
【００７７】
また、図１４に示すように、ＲＡＩＤグループ３００がＲＡＩＤ１構成（ミラーリング）である場合には、ステップＳ３７において、ＭＰＵ２４０は、同一のデータを格納するＨＤＤ３００（本例では、ＨＤＤ３３０ＡとＨＤＤ３３０Ｄ、ＨＤＤ３３０ＢとＨＤＤ３３０Ｃ）のうちの一方側のＨＤＤ３００（例えば、ＨＤＤ３３０Ａ及びＨＤＤ３３０Ｄ）をスピンアップすることにより、各筐体（基本筐体１００、拡張筐体４００）における電力量が、各筐体における使用可能な電力値以内であって、ＨＤＤ３３０Ａと、ＨＤＤ３３０Ｄとのスピンアップ時間がホストタイムアウト時間以内であれば、ＨＤＤ３３０Ａ及び３３０Ｄをスピンアップの対象のＨＤＤ３３０として選択する。選択される、ＨＤＤはこれに限らず、各ＨＤＤの省電力状態から通常状態への移行時間（スピンアップ時間など）や省電力状態から通常状態への移行するために必要な電力（スピンアップ電力など）と、応答のタイムアウト時間や各筐体が使用可能な電力量とを比較し選択する。
【００７８】
この結果、ＨＤＤ３３０Ａ及び３３０Ｄをスピンアップした後に、ＨＤＤ３３０Ａに対しては、データＤ１のアクセスをし、ＨＤＤ３３０Ｂに対しては、データＤ２のアクセスをし、応答がホスト計算機７００に送信されることとなる。これにより、半分のＨＤＤ３３０を立ち上げるだけで、使用可能な電力値以内で、ホストタイムアウトを起こさずにホスト計算機７００に応答することができる。なお、コマンドがライトコマンドである場合には、以降において、ＭＰＵ２４０がＨＤＤ３３０Ｂ及びＨＤＤ３３０Ｃをスピンアップし、変更されたデータＤ１をＨＤＤ３３０Ｃに格納し、データＤ２をＨＤＤ３３０Ｂに格納する。
【００７９】
また、図１５に示すように、ＲＡＩＤグループ３００がＲＡＩＤ５構成である場合には、ステップＳ３７において、ＭＰＵ２４０は、パリティデータを使用するとデータ復元できる複数台（本例では、ＲＡＩＤグループ全体から１台を除いた３台）のＨＤＤ３３０の組（例えば、ＨＤＤ３３０Ａ、３３０Ｂ、３３０Ｄの組）のスピンアップにより増加する各筐体（基本筐体１００、拡張筐体４００）における電力量が、各筐体における使用可能な電力値以内であって、ＨＤＤ３３０Ａ、ＨＤＤ３３０Ｂ、及びＨＤＤ３３０Ｄとのスピンアップ時間がホストタイムアウト時間以内であれば、ＨＤＤ３３０Ａ、３３０Ｂ、３３０Ｄをスピンアップの対象のＨＤＤ３３０として選択する。選択される、ＨＤＤはこれに限らず、各ＨＤＤの省電力状態から通常状態への移行時間（スピンアップ時間など）や省電力状態から通常状態への移行するために必要な電力（スピンアップ電力など）と、応答のタイムアウト時間や各筐体が使用可能な電力量とを比較し選択する。  
【００８０】
この結果、ＨＤＤ３３０Ａ、３３０Ｂ及び３３０Ｄをスピンアップした後に、ＭＰＵ２４０がＨＤＤ３３０ＡからデータＤ１を読出し、ＨＤＤ３３０ＢからデータＤ２を読出し、ＨＤＤ３３０ＤからパリティデータＰを読出し、パリティデータＰとデータＤ１とデータＤ２とからデータＤ３を補完（生成）し、データＤ１、Ｄ２及びＤ３をホスト計算機７００に送信する。これにより、一部のＨＤＤ３３０を立ち上げるだけで、使用可能な電力値以内で、ホストタイムアウトを起こさずホスト計算機７００に応答することができる。
【００８１】
また、図１６に示すように、ＲＡＩＤグループ３００がＲＡＩＤ６構成である場合には、ステップＳ３７において、ＭＰＵ２４０は、パリティデータを使用するとデータ復元できる複数台（本例では、ＲＡＩＤグループ全体から２台を除いた３台）のＨＤＤ３３０の組（例えば、ＨＤＤ３３０Ａ、３３０Ｂ、３３０Ｅの組）のスピンアップにより増加する各筐体（基本筐体１００、拡張筐体４００）における電力量が、各筐体における使用可能な電力値以内であって、ＨＤＤ３３０Ａ、ＨＤＤ３３０Ｂ、及びＨＤＤ３３０Ｅとのスピンアップ時間がホストタイムアウト時間以内であれば、ＨＤＤ３３０Ａ、３３０Ｂ、３３０Ｅをスピンアップの対象のＨＤＤ３３０として選択する。選択される、ＨＤＤはこれに限らず、各ＨＤＤの省電力状態から通常状態への移行時間（スピンアップ時間など）や省電力状態から通常状態への移行するために必要な電力（スピンアップ電力など）と、応答のタイムアウト時間や各筐体が使用可能な電力量とを比較し選択する。  
【００８２】
この結果、ＨＤＤ３３０Ａ、３３０Ｂ及び３３０Ｅをスピンアップした後に、ＭＰＵ２４０がＨＤＤ３３０ＡからデータＤ１を読出し、ＨＤＤ３３０ＢからデータＤ２を読出し、ＨＤＤ３３０ＥからパリティデータＱを読出し、パリティデータＱとデータＤ１とデータＤ２とからデータＤ３を補完（生成）し、データＤ１、Ｄ２及びＤ３をホスト計算機７００に送信する。これにより、一部のＨＤＤ３３０を立ち上げるだけで、使用可能な電力値以内で、ホストタイムアウトを起こさずに、ホスト計算機７００に応答することができる。
【００８３】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【００８４】
例えば、上記実施形態では、同一のＲＡＩＤグループ内に、省電力モードに設定されていないＬＵが１つでもある場合には、当該ＲＡＩＤグループ内のＨＤＤ３３０を省電力状態としないようにしていたが、本発明はこれに限られず、同一のＲＡＩＤグループ内に、省電力モードに設定されているＬＵが１つでもある場合には、当該ＲＡＩＤグループ内のＨＤＤ３３０を所定の省電力条件を満たした場合に省電力状態にするようにしてもよい。
【００８５】
また、上記実施形態では、筐体毎にＲＡＩＤグループが分かれていた例を示したが、本発明はこれに限られず、複数の筐体に配置された複数のＨＤＤを同一のＲＡＩＤグループとして構成するようにしてもよい。
【００８６】
また、上記実施形態では、ＲＡＩＤグループにＬＵを生成する例を示していたが、これに限られず、例えば、複数のＲＡＩＤグループの記憶領域を集めた記憶容量プールにＬＵを生成するようにしてもよい。
【００８７】
また、上記実施形態では、対象ＬＵの省電力状態の全てのＨＤＤをスピンアップできないとき（ステップＳ３４：ＮＯ）に、ステップＳ３７に続く処理を実行するようにしていたが、本発明はこれに限られず、例えば、ステップＳ３３の次にステップＳ３４をせずに、ステップＳ３７に進むようにしてもよい。このようにすると、対象ＬＵの省電力状態の全てのＨＤＤ３３０をスピンアップする場合に比して、スピンアップ時の電力を抑えることができ、例えば、他のホストアクセスに対応して他のＨＤＤ３３０をスピンアップする際の電力に振り分けることができる。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態に係る計算機システムの機能構成図である。
【図２】本発明の一実施形態に係る計算機システムの電力供給に関する一部構成図である。
【図３】本発明の一実施形態に係る電力仕様管理テーブルの一例を示す図である。
【図４】本発明の一実施形態に係るＨＤＤ仕様管理テーブルの一例を示す図である。
【図５】本発明の一実施形態に係る稼働状況管理テーブルの一例を示す図である。
【図６】本発明の一実施形態に係る省電力設定管理テーブルの一例を示す図である。
【図７】本発明の一実施形態に係る省電力設定データの一例を示す図である。
【図８】本発明の一実施形態に係るＬＵ管理テーブルの一例を示す図である。
【図９】本発明の一実施形態に係る省電力設定処理のフローチャートである。
【図１０】本発明の一実施形態に係る情報取得処理のフローチャートである。
【図１１】本発明の一実施形態に係るホストコマンド処理のフローチャートである。
【図１２】本発明の一実施形態に係るディスク制御処理のフローチャートである。
【図１３】本発明の一実施形態に係るスピンアップ対象のＨＤＤを選択を説明する第１の図である。
【図１４】本発明の一実施形態に係るスピンアップ対象のＨＤＤを選択を説明する第２の図である。
【図１５】本発明の一実施形態に係るスピンアップ対象のＨＤＤを選択を説明する第３の図である。
【図１６】本発明の一実施形態に係るスピンアップ対象のＨＤＤを選択を説明する第４の図である。
【符号の説明】
【００８９】
１  計算機システム、１０  ストレージ装置、１００  基本筐体、２００  コントローラ、２１０  ホストＩ／Ｆ、２２０  バックエンドコントローラ、２３０  データコントローラ、２４０  ＭＰＵ、２５０  キャッシュメモリ、２５１  電力仕様管理テーブル、２５２  ＨＤＤ仕様管理テーブル、２５３  省電力設定管理テーブル、２５４  ＬＵ管理テーブル、２６０  メモリ、２６１  電力制御プログラム、２６２  アクセス記録管理プログラム、２６３  ホストＩ／Ｏ制御プログラム、２６４  電力モニタプログラム、２６５  稼働状況管理テーブル、２６６  省電力設定データ、２７０  ブリッジ、２９０  ＬＡＮ  Ｉ／Ｆ、３００  ＲＡＩＤグループ、３３０  ハードディスクドライブ、３４０  論理ユニット、４００  拡張筐体、５００  ＲＡＩＤグループ。
【図１】
2010003149.tif 000003
【図２】
2010003149.tif 000004
【図３】
2010003149.tif 000005
【図４】
2010003149.tif 000006
【図５】
2010003149.tif 000007
【図６】
2010003149.tif 000008
【図７】
2010003149.tif 000009
【図８】
2010003149.tif 000010
【図９】
2010003149.tif 000011
【図１０】
2010003149.tif 000012
【図１１】
2010003149.tif 000013
【図１２】
2010003149.tif 000014
【図１３】
2010003149.tif 000015
【図１４】
2010003149.tif 000016
【図１５】
2010003149.tif 000017
【図１６】
2010003149.tif 000018