(57)【要約】【課題】ストレージシステムの性能の劣化を抑えつつストレージシステムの消費電力を削減する。【解決手段】Ｉ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類について、一以上のＩ／Ｏ処理関与装置又はその一部の負荷が、所定の閾値以下である低負荷の場合に、一以上のＩ／Ｏ処理関与装置又はその一部の状態に関わる処理を、他の一以上のＩ／Ｏ処理関与装置又はその一部分に移し、一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる。【選択図】図７
2009009194.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理ボリュームの基になる複数の記憶装置と、
前記複数の論理ボリュームのうち上位装置から送信されたＩ／Ｏコマンドで指定されている論理ボリュームにデータを書込む或いはその論理ボリュームからデータを読出す一以上のプロセッサと、
前記プロセッサによって論理ボリュームに書かれるデータ或いは前記プロセッサによって論理ボリュームから読み出されたデータを一時的に記憶する一以上のキャッシュメモリと、
前記Ｉ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類について、一以上のＩ／Ｏ処理関与装置又はその一部の状態に関わる処理を、他の一以上のＩ／Ｏ処理関与装置又はその一部分に移し、前記一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる節電制御部と
を備えるストレージシステム。
【請求項２】
前記プロセッサが複数個あり、
各プロセッサは、複数のプロセッサモジュールの構成要素であり、
各プロセッサモジュールは、一以上のプロセッサで構成されており、
前記一以上のＩ／Ｏ処理関与装置又はその一部は、プロセッサモジュール又はその一部である、
前記プロセッサモジュールの一部とは、プロセッサ、又は、プロセッサを構成する複数のプロセッサコアのうちの少なくとも一つである、
請求項１記載のストレージシステム。
【請求項３】
前記各プロセッサモジュールには、複数の論理ボリュームのうちの一以上の論理ボリュームが割当てられており、
前記上位装置から送信されたＩ／Ｏコマンドを受信し、前記複数のプロセッサモジュールのうちの、そのＩ／Ｏコマンドで指定されている論理ボリュームが割当てられているプロセッサモジュールに、そのＩ／Ｏコマンドを転送する上位インタフェース部、を更に備え、
前記節電制御部が、前記複数のプロセッサモジュールのうちの低負荷のプロセッサモジュールに割当てられていた論理ボリュームを、前記複数のプロセッサモジュールのうちの他のプロセッサモジュールに割当て、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させる、
請求項２記載のストレージシステム。
【請求項４】
前記節電制御部が、前記低負荷のプロセッサモジュールにかかる負荷が他のプロセッサモジュールにかかるとその他のプロセッサモジュールにかかる負荷が所定の閾値を超えるか否かを判断し、その負荷が所定の閾値を超えないとの判断結果になった場合に、前記低負荷のプロセッサモジュールに割当てられていた論理ボリュームを前記他のプロセッサモジュールに割当てる、
請求項３記載のストレージシステム。
【請求項５】
前記節電制御部が、前記論理ボリュームが割当てられた前記他のプロセッサモジュールの負荷が所定の閾値を超えた場合には、節電状態のプロセッサモジュールの状態を非節電状態に遷移させ、前記他のプロセッサモジュールからそのプロセッサモジュールに、その論理ボリュームに割当てる、
請求項３記載のストレージシステム。
【請求項６】
前記複数のプロセッサモジュールが二以上の電源系統に所属し、
前記節電制御部が、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させると、非節電状態のプロセッサモジュールが一の電源系統のみに存在することになるか否かを判断し、非節電状態のプロセッサモジュールが二以上の電源系統に存在するとの判断結果になった場合に、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させる、
請求項２記載のストレージシステム。
【請求項７】
前記節電制御部が、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させると、非節電状態のプロセッサモジュールが一つだけになるか否かを判断し、非節電状態のプロセッサモジュールが二つ以上存在するとの判断結果になった場合に、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させる、
請求項２記載のストレージシステム。
【請求項８】
前記各プロセッサモジュールには、プロセッサがＩ／Ｏコマンドの処理の際に参照するＩ／Ｏ処理制御情報が記憶される記憶領域が備えられ、
前記節電制御部が、前記低負荷のプロセッサモジュールの記憶領域に記憶されているＩ／Ｏ処理制御情報を、前記他のプロセッサモジュールの記憶領域に記憶させて、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させる、
請求項３記載のストレージシステム。
【請求項９】
前記節電制御部が、前記低負荷のプロセッサモジュールに非節電状態のプロセッサが複数個存在する場合には、そのプロセッサモジュールそれ自体ではなく、それら複数の非節電状態のプロセッサから選択したプロセッサ、又は、プロセッサを構成する複数のプロセッサコアから選択したプロセッサコアの状態を、節電状態に遷移させる、
請求項２記載のストレージシステム。
【請求項１０】
前記節電制御部は、前記選択したプロセッサの状態を節電状態に遷移させると性能が所定の要求性能未満になるとの判断結果になった場合に、前記選択したプロセッサではなく、プロセッサを構成する複数のプロセッサコアから選択したプロセッサコアの状態を、節電状態に遷移させる、
請求項９記載のストレージシステム。
【請求項１１】
管理者所望の省電力レベルを表す情報を記憶する記憶領域、を更に備え、
前記節電制御部は、前記情報が示す省電力レベルに応じて、プロセッサモジュール、プロセッサ及びプロセッサコアのうちのいずれを節電状態に遷移させる対象にするかを選択する、
請求項２記載のストレージシステム。
【請求項１２】
キャッシュメモリは、複数のキャッシュメモリ領域で構成されており、
前記一以上のＩ／Ｏ処理関与装置又はその一部は、一以上のキャッシュメモリ、又は、キャッシュメモリを構成する複数のキャッシュメモリ領域のうちの少なくとも一つである、
請求項１記載のストレージシステム。
【請求項１３】
前記節電制御部が、キャッシュメモリ領域の状態を節電状態に遷移させる前に、そのキャッシュメモリ領域に記憶されているデータを、非節電状態の他のキャッシュメモリ領域、又は、前記複数の記憶装置のうちの少なくとも一つに退避させる、
請求項１２記載のストレージシステム。
【請求項１４】
前記複数の記憶装置のうちの各二以上の記憶装置により各ＲＡＩＤグループが構成され、
前記節電制御部が、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションしてその低負荷のＲＡＩＤグループを構成する各記憶装置の状態を節電状態に遷移させることができるよう構成されており、前記キャッシュメモリ領域に記憶されているデータを記憶装置に退避することと、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションすることとが同時又は実質的に同時に発生する場合、いずれか一方を先に行い、その一方の処理が完了した後に、他方の処理を開始する、
請求項１３記載のストレージシステム。
【請求項１５】
前記複数の記憶装置のうちの各二以上の記憶装置により各ＲＡＩＤグループが構成され、
前記節電制御部が、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションしてその低負荷のＲＡＩＤグループを構成する各記憶装置の状態を節電状態に遷移させる、
請求項１記載のストレージシステム。
【請求項１６】
前記節電制御部が、マイグレーション対象の論理ボリュームの負荷が他のＲＡＩＤグループにかかるとその他のＲＡＩＤグループにかかる負荷が所定の閾値を超えるか否かを判断し、その負荷が所定の閾値を超えないとの判断結果になった場合に、前記低負荷のＲＡＩＤグループが基になっているマイグレーション対象の論理ボリュームを、前記他のＲＡＩＤグループにマイグレーションする、
請求項１５記載のストレージシステム。
【請求項１７】
管理者所望の一以上のＩ／Ｏ処理関与装置又はその一部を示す情報を記憶する記憶領域、を更に備え、
前記節電制御部は、前記情報が示す一以上のＩ／Ｏ処理関与装置又はその一部以外のＩ／Ｏ処理関与装置又はその一部については、低負荷であっても非節電状態を維持する、
請求項１記載のストレージシステム。
【請求項１８】
節電状態に遷移する前に管理者の許可が必要かどうかを示す情報を記憶する記憶領域、を更に備え、
前記節電制御部は、前記情報が、節電状態に遷移する前に管理者の許可が必要であることを示している場合、一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる前に、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させても良いか否かの問合せを出力し、その問合せに応答して、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させても良いとの回答が入力された場合に、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる、
請求項１記載のストレージシステム。
【請求項１９】
節電状態に遷移させられ得るＩ／Ｏ処理関与装置は、プロセッサ、キャッシュメモリ及び記憶装置のうちの二種類以上であり、
各種Ｉ／Ｏ処理関与装置についての低負荷を定義する各閾値は、複数のポリシー値から選択されたポリシー値に対応付けられている閾値である、
請求項１記載のストレージシステム。
【請求項２０】
一以上のストレージシステムと、
前記一以上のストレージシステム又はそれを管理する計算機に備えられ、ストレージシステム又はその一部の状態を節電状態に遷移させる節電制御部と
を備え、
ストレージシステムが、
論理ボリュームの基になる記憶装置と、
前記上位装置から送信されたＩ／Ｏコマンドで指定されている論理ボリュームにデータを書込む或いはその論理ボリュームからデータを読出す一以上のプロセッサと、
前記プロセッサによって論理ボリュームに書かれるデータ或いは前記プロセッサによって論理ボリュームから読み出されたデータを一時的に記憶する一以上のキャッシュメモリと
を備え、
前記節電制御部が、ストレージシステム又はその一部の負荷が、所定の閾値以下である低負荷の場合に、そのストレージシステム又はその一部の状態を節電状態に遷移させたら性能が所定の要求性能未満となるか否かを判断し、性能が所定の要求性能未満にならないとの判断結果になった場合に、前記低負荷のそのストレージシステム又はその一部の状態を節電状態に遷移させ、
前記ストレージシステムの一部とは、Ｉ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類、又はその一部である、
計算機システム。
【請求項２１】
前記節電制御部は、性能が所定の要求性能未満にならないとの判断結果になった場合に、前記低負荷のストレージシステムにある複数の論理ボリュームを他の一以上のストレージシステムにマイグレーションして、前記低負荷のストレージシステム又はそれが有するＲＡＩＤグループの状態を節電状態に遷移させる、
請求項２０記載の計算機システム。
【請求項２２】
ストレージシステムにおいてＩ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類について、一以上のＩ／Ｏ処理関与装置又はその一部の負荷が、所定の閾値以下である低負荷の場合に、前記一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させたら性能が所定の要求性能未満となるか否かを判断し、
性能が所定の要求性能未満にならないとの判断結果になった場合に、前記低負荷の一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる、
電力消費制御方法。
【請求項２３】
前記節電制御部が、前記一以上のＩ／Ｏ処理関与装置又はその一部の負荷が、所定の閾値以下である低負荷の場合に、前記一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させたら性能が所定の要求性能未満となるか否かを判断し、性能が所定の要求性能未満にならないとの判断結果になった場合に、前記低負荷の一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる、
請求項１記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムの消費電力の削減に関する。
【背景技術】
【０００２】
近年の情報技術の発展にともない、企業のコンピュータシステムが扱うデータの量が大幅に増加している。その結果、コンピュータシステムが扱うデータを格納するストレージシステムの高性能化及び大容量化が進み、ストレージシステムの消費電力が増加している。それ故、ストレージシステムの消費電力の削減が望まれる。
【０００３】
ストレージシステムの消費電力の削減に関する技術として、例えば、特許文献１及び特許文献２に開示の技術がある。特許文献１に開示の技術によれば、所定時間経ってもアクセスの無い磁気ディスク装置が節電モードに移行される。特許文献２に開示の技術によれば、複数のストレージ装置にまたがったデータ格納位置の制御装置が、低負荷時に他の処理装置に処理を移しCPUを省電力モードに移行させる。
【特許文献１】特開２０００−２９３３１４号公報
【特許文献２】特開２００３−２９６１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した磁気ディスク装置やＣＰＵは、それぞれ、ストレージシステムが上位装置から受信したＩ／Ｏコマンドの処理に関与する装置（以下、Ｉ／Ｏ処理関与装置）の一つである。単純に各Ｉ／Ｏ処理関与装置が節電状態に移行されると、ストレージシステムの性能が劣化するおそれがある。
【０００５】
従って、本発明の目的は、ストレージシステムの性能の劣化を抑えつつストレージシステムの消費電力を削減することにある。
【０００６】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
Ｉ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類について、一以上のＩ／Ｏ処理関与装置又はその一部の負荷が、所定の閾値以下である低負荷の場合に、一以上のＩ／Ｏ処理関与装置又はその一部の状態に関わる処理を、他の一以上のＩ／Ｏ処理関与装置又はその一部分に移し、一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる。
【発明を実施するための最良の形態】
【０００８】
実施形態１において、ストレージシステムが、複数の論理ボリュームの基になる複数の記憶装置と、複数の論理ボリュームのうち上位装置から送信されたＩ／Ｏコマンドで指定されている論理ボリュームにデータを書込む或いはその論理ボリュームからデータを読出す一以上のプロセッサと、プロセッサによって論理ボリュームに書かれるデータ或いはプロセッサによって論理ボリュームから読み出されたデータを一時的に記憶する一以上のキャッシュメモリとを備えている。そのストレージシステムに、節電制御部が備えられる。節電制御部は、Ｉ／Ｏコマンドの処理に関わるＩ／Ｏ処理関与装置である記憶装置、プロセッサ及びキャッシュメモリのうちの少なくとも一種類について、一以上のＩ／Ｏ処理関与装置又はその一部の状態に関わる処理を、他の一以上のＩ／Ｏ処理関与装置又はその一部分に移し、前記一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる。
【０００９】
ここで、「節電状態」とは、Ｉ／Ｏ処理関与装置又はその一部が消費する電力が通常の稼動状態における消費電力よりも少ない状態であることを意味する。具体的には、例えば、電源オフ状態、Ｉ／Ｏ処理関与装置又はその一部の一部の電源がオフになる状態である。また、例えば、Ｉ／Ｏ処理関与装置が、ディスクタイプの記憶メディアを駆動するドライブであれば、節電状態とは、その記憶メディアの回転速度を通常の稼動状態（データの読み書きが可能な状態）の回転速度よりも低速である状態とすることもできる。
【００１０】
実施形態２では、実施形態１において、プロセッサが複数個ある。各プロセッサは、複数のプロセッサモジュールの構成要素である。各プロセッサモジュールは、一以上のプロセッサで構成されている。一以上のＩ／Ｏ処理関与装置又はその一部は、プロセッサモジュール又はその一部である。プロセッサモジュールの一部とは、プロセッサ、又は、プロセッサを構成する複数のプロセッサコアのうちの少なくとも一つである。
【００１１】
実施形態３では、実施形態１乃至２のうちの少なくとも一つにおいて、各プロセッサモジュールには、複数の論理ボリュームのうちの一以上の論理ボリュームが割当てられている。ストレージシステムに、上位インタフェース部が更に備えられる。上位インタフェース部は、上位装置から送信されたＩ／Ｏコマンドを受信し、複数のプロセッサモジュールのうちの、そのＩ／Ｏコマンドで指定されている論理ボリュームが割当てられているプロセッサモジュールに、そのＩ／Ｏコマンドを転送する。節電制御部が、複数のプロセッサモジュールのうちの低負荷のプロセッサモジュールに割当てられていた論理ボリュームを、前記複数のプロセッサモジュールのうちの他のプロセッサモジュールに割当て、低負荷のプロセッサモジュールの状態を節電状態に遷移させる。
【００１２】
実施形態４では、実施形態３において、節電制御部が、低負荷のプロセッサモジュールにかかる負荷が他のプロセッサモジュールにかかるとその他のプロセッサモジュールにかかる負荷が所定の閾値を超えるか否かを判断し、その負荷が所定の閾値を超えないとの判断結果になった場合に、低負荷のプロセッサモジュールに割当てられていた論理ボリュームを前記他のプロセッサモジュールに割当てる。
【００１３】
実施形態５では、実施形態３乃至４のうちの少なくとも一つにおいて、節電制御部が、論理ボリュームが割当てられた他のプロセッサモジュールの負荷が所定の閾値を超えた場合には、節電状態のプロセッサモジュールの状態を非節電状態に遷移させ、他のプロセッサモジュールからそのプロセッサモジュールに、その論理ボリュームに割当てる。
【００１４】
実施形態６では、実施形態２乃至５のうちの少なくとも一つにおいて、複数のプロセッサモジュールが二以上の電源系統に所属する。節電制御部が、低負荷のプロセッサモジュールの状態を節電状態に遷移させると、非節電状態のプロセッサモジュールが一の電源系統のみに存在することになるか否かを判断し、非節電状態のプロセッサモジュールが二以上の電源系統に存在するとの判断結果になった場合に、前記低負荷のプロセッサモジュールの状態を節電状態に遷移させる。
【００１５】
実施形態７では、実施形態２乃至６のうちの少なくとも一つにおいて、節電制御部が、低負荷のプロセッサモジュールの状態を節電状態に遷移させると、非節電状態のプロセッサモジュールが一つだけになるか否かを判断し、非節電状態のプロセッサモジュールが二つ以上存在するとの判断結果になった場合に、低負荷のプロセッサモジュールの状態を節電状態に遷移させる。
【００１６】
実施形態８では、実施形態３において、各プロセッサモジュールには、プロセッサがＩ／Ｏコマンドの処理の際に参照するＩ／Ｏ処理制御情報が記憶される記憶領域が備えられる。節電制御部が、低負荷のプロセッサモジュールの記憶領域に記憶されているＩ／Ｏ処理制御情報を、他のプロセッサモジュールの記憶領域に記憶させて、低負荷のプロセッサモジュールの状態を節電状態に遷移させる。
【００１７】
実施形態９では、実施形態２乃至８のうちの少なくとも一つにおいて、節電制御部が、低負荷のプロセッサモジュールに非節電状態のプロセッサが複数個存在する場合には、そのプロセッサモジュールそれ自体ではなく、それら複数の非節電状態のプロセッサから選択したプロセッサ、又は、プロセッサを構成する複数のプロセッサコアから選択したプロセッサコアの状態を、節電状態に遷移させる。
【００１８】
実施形態１０では、実施形態２乃至９のうちの少なくとも一つにおいて、節電制御部は、選択したプロセッサの状態を節電状態に遷移させると性能が所定の要求性能未満になるとの判断結果になった場合に、上記選択したプロセッサではなく、プロセッサを構成する複数のプロセッサコアから選択したプロセッサコアの状態を、節電状態に遷移させる。
【００１９】
実施形態１１では、実施形態２乃至１０のうちの少なくとも一つにおいて、ストレージシステムが、記憶領域を更に備え、その記憶領域が、管理者所望の省電力レベルを表す情報を記憶する。節電制御部は、その情報が示す省電力レベルに応じて、プロセッサモジュール、プロセッサ及びプロセッサコアのうちのいずれを節電状態に遷移させる対象にするかを選択する。
【００２０】
実施形態１２では、実施形態１乃至１１のうちの少なくとも一つにおいて、キャッシュメモリは、複数のキャッシュメモリ領域で構成されている。一以上のＩ／Ｏ処理関与装置又はその一部は、一以上のキャッシュメモリ、又は、キャッシュメモリを構成する複数のキャッシュメモリ領域のうちの少なくとも一つである。
【００２１】
実施形態１３では、実施形態１２において、節電制御部が、キャッシュメモリ領域の状態を節電状態に遷移させる前に、そのキャッシュメモリ領域に記憶されているデータを、非節電状態の他のキャッシュメモリ領域、又は、前記複数の記憶装置のうちの少なくとも一つに退避させる。
【００２２】
実施形態１４では、実施形態１３において、複数の記憶装置のうちの各二以上の記憶装置により各ＲＡＩＤグループが構成される。節電制御部が、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションしてその低負荷のＲＡＩＤグループを構成する各記憶装置の状態を節電状態に遷移させることができるよう構成されている。節電制御部は、キャッシュメモリ領域に記憶されているデータを記憶装置に退避することと、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションすることとが同時又は実質的に同時に発生する場合、いずれか一方を先に行い、その一方の処理が完了した後に、他方の処理を開始する。
【００２３】
実施形態１５では、実施形態１乃至１４のうちの少なくとも一つにおいて、複数の記憶装置のうちの各二以上の記憶装置により各ＲＡＩＤグループが構成されている。節電制御部が、低負荷のＲＡＩＤグループを基に形成された全ての論理ボリュームを一以上の他のＲＡＩＤグループにマイグレーションしてその低負荷のＲＡＩＤグループを構成する各記憶装置の状態を節電状態に遷移させる。
【００２４】
実施形態１６では、実施形態１５において、節電制御部が、マイグレーション対象の論理ボリュームの負荷が他のＲＡＩＤグループにかかるとその他のＲＡＩＤグループにかかる負荷が所定の閾値を超えるか否かを判断し、その負荷が所定の閾値を超えないとの判断結果になった場合に、前記低負荷のＲＡＩＤグループが基になっているマイグレーション対象の論理ボリュームを、前記他のＲＡＩＤグループにマイグレーションする。
【００２５】
実施形態１７では、実施形態１乃至１６のうちの少なくとも一つにおいて、ストレージシステムが、記憶領域を備え、その記憶領域が、管理者所望の一以上のＩ／Ｏ処理関与装置又はその一部を示す情報を記憶する。節電制御部は、その情報が示す一以上のＩ／Ｏ処理関与装置又はその一部以外のＩ／Ｏ処理関与装置又はその一部については、低負荷であっても非節電状態を維持する。
【００２６】
実施形態１８では、実施形態１乃至１７のうちの少なくとも一つにおいて、ストレージシステムが、記憶領域を更に備え、その記憶領域が、節電状態に遷移する前に管理者の許可が必要かどうかを示す情報を記憶する。節電制御部は、その情報が、節電状態に遷移する前に管理者の許可が必要であることを示している場合、一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる前に、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させても良いか否かの問合せを出力し、その問合せに応答して、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させても良いとの回答が入力された場合に、その一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる。
【００２７】
実施形態１９では、実施形態１乃至１８のうちの少なくとも一つにおいて、節電状態に遷移させられ得るＩ／Ｏ処理関与装置は、プロセッサ、キャッシュメモリ及び記憶装置のうちの二種類以上である。各種Ｉ／Ｏ処理関与装置についての低負荷を定義する各閾値は、複数のポリシー値から選択されたポリシー値に対応付けられている閾値である。
【００２８】
実施形態２０では、実施形態１乃至１９のうちの少なくとも一つにおいて、節電制御部が、一以上のＩ／Ｏ処理関与装置又はその一部の負荷が、所定の閾値以下である低負荷の場合に、前記一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させたら性能が所定の要求性能未満となるか否かを判断し、性能が所定の要求性能未満にならないとの判断結果になった場合に、低負荷の一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させる。言い換えれば、その判断の結果が、性能が所定の要求性能未満になるとの判断結果である場合には、低負荷の一以上のＩ／Ｏ処理関与装置又はその一部の状態を節電状態に遷移させない。
【００２９】
前述した節電制御部は、ストレージシステムを管理する管理計算機で実行されても良い。
【００３０】
上述した複数の実施形態のうちの二以上の実施形態を組み合わせることができる。また、上述した各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶領域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００３１】
以下、図面を用いて本発明の実施の形態について説明する。
【００３２】
＜第一の実施形態＞。
【００３３】
最初に、本発明の第一の実施形態に係るコンピュータシステムの構成を、図１から図６を用いて説明する。
【００３４】
図１は、コンピュータシステムの構成例を示した図である。
【００３５】
コンピュータシステムは、ストレージシステム１００、１台以上のホスト２００、１台以上の管理サーバ３００、ストレージネットワーク４００及び管理ネットワーク５００から構成される。ホスト２００とストレージシステム１００は、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌインタフェースで接続され、ＦＣＰ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ）プロトコルを用いて、Ｉ／Ｏコマンドやデータの送受信を行う。また、ストレージシステム１００と管理サーバ３００は、Ｅｔｈｅｒｎｅｔ（登録商標）にて接続され、ＴＣＰ／ＩＰプロトコルによりデータ送受信を行う。
【００３６】
ストレージシステム１００とホスト２００間で用いるインタフェースおよびプロトコルは限定されない。本実施形態では、Ｆｉｂｒｅ  ＣｈａｎｎｅｌとＦＣＰを例示したが、他にＥｔｈｅｒｎｅｔ（登録商標）とｉＳＣＳＩなどを用いてもよい。同様に、ホスト２００と管理サーバ３００間のＥｔｈｅｒｎｅｔ（登録商標）とＴＣＰ／ＩＰプロトコルも例示にすぎない。
【００３７】
ホスト２００は、ストレージシステム１００が提供するＬＤＥＶ（ＬｏｇｉｃａＬＤＥＶｉｃｅ）にデータを格納する計算機である。ここでいう「ＬＤＥＶ」とは、ホスト２００から論理アドレスによりアクセス可能な仮想記憶領域のことをいう（「ＬＤＥＶ」は、「論理ボリューム」或いは「ＬＵ（Logical Unit）」と言い換えることもできる。ホスト２００は、ＬＤＥＶの識別情報を含んだＩ／Ｏコマンドをストレージシステム１００に送信する。これにより、ストレージシステム１００に対してデータの入出力が指示されることになる。なお、例えばＦＣＰを用いた場合、ホス２００トはＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）と呼ばれる番号をＬＤＥＶの識別情報としてＩ／Ｏコマンドに付加することで、データ入出力を行うＬＤＥＶ（データの書込み先、或いはデータの読出し元となるＬＤＥＶ）を指定することができる。Ｉ／Ｏコマンドには、読出しや書込みなどのコマンド種別を示すコマンドコードや、ＬＤＥＶ内でのデータ格納位置を示す論理アドレス（例えばＬＢＡ（Logical Brock Address））、及び、データ転送長などの情報が含まれる。
【００３８】
ストレージシステム１００は、コントローラ１０００、一つ以上の記憶ディスク筐体２０００、管理用端末３０００、及び、一つ以上の電源モジュール４０００を有する。コントローラ１０００と記憶ディスク筐体２０００は、Ｕｌｔｒａ  ＳＣＳＩインタフェース／プロトコルを用いてデータの送受信を行う。また、コントローラ１０００と管理用端末３０００はＥｔｈｅｒｎｅｔ（登録商標）で接続され、ＴＣＰ／ＩＰプロトコルによりデータ送受信を行う。電源モジュール４０００は、コントローラ１０００、ディスク筐体２０００、管理用端末３０００に電力を供給する。なお、これらのインタフェースおよびプロトコルは例示に過ぎない。
【００３９】
コントローラ１０００は、一つ以上のフロントエンドモジュール１２００、一つ以上のプロセッサモジュール１１００、一つ以上の共有メモリモジュール１３００、一つ以上のバックエンドモジュール１６００を有する。コントローラ１０００内の各モジュールは、内部ネットワーク１７００により相互接続される。内部ネットワークは、インタフェースおよびプロトコルとして、Ｆｉｂｒｅ  Ｃｈｅｎｎｅｌ・ＦＣＰを用いる。なおこれらのインタフェースおよびプロトコルについては例示に過ぎない。
【００４０】
プロセッサモジュール１１００は、Ｉ／Ｏコマンドを解釈し、その解釈の結果を基に、フロントエンドモジュール１２００に指示する。その指示の内容により、ホスト２００と共有メモリモジュール１３００間のデータ転送が制御される。また、プロセッサモジュール１１００は、Ｉ／Ｏコマンドの解釈の結果を基に、バックエンドモジュール１６００に指示する。その指示の内容により、共有メモリモジュール１３００と記憶ディスク筐体２０００間のデータ転送が制御される。また、プロセッサモジュール１１００は、後述する管理コマンドを解釈し、その解釈の結果を基に、ストレージシステム１００全体を制御する。
【００４１】
フロントエンドモジュール１２００は、ホスト２００からＩ／Ｏコマンドを受信し、そのＩ／Ｏコマンドをプロセッサモジュール１１００に転送する。また、フロントエンドモジュール１２００は、プロセッサモジュール１１００からの指示に従い、ホスト２００と共有メモリモジュール１３００間のデータ転送を行う。
【００４２】
バックエンドモジュール１６００は、プロセッサモジュール１１００からの指示に従い、共有メモリモジュール１３００と記憶ディスク筐体２０００間のデータ転送を行う。
【００４３】
共有メモリモジュール１３００は、キャッシュデータを格納する。ここでいう「キャッシュデータ」とは、高速な記憶媒体に一時的に格納されるデータのことをいう。また、共有メモリモジュール１３００は、ストレージシステム１００に関する後述の制御情報も格納する。フロントエンドモジュール１２００、バックエンドモジュール１６００及びプロセッサモジュール１１００は、内部ネットワーク１７００を通じて共有メモリモジュール１３００にアクセスすることが可能である。
【００４４】
記憶ディスク筐体２０００は、ＬＤＥＶに書かれるデータを記憶する。記憶ディスク筐体２０００は、バックエンドモジュール１６００に接続される。
【００４５】
管理用端末３０００は、管理者がストレージシステム１００の各種設定を行うために使用される。管理用端末３０００は、プロセッサモジュール１１００に接続され、後述する管理コマンドをプロセッサモジュール１１００に送信する。また、管理者は、管理サーバ３００を操作して、管理用端末３０００と同等の操作を行うことが出来る。以降、説明を簡単にするために、管理用端末３０００が使用され各種設定が行われることとするが、それには、管理サーバ３００が使用されて各種設定が行われることも含むこととする。
【００４６】
電源モジュール４０００は、ストレージシステム１００内の各装置に対して、外部（例えば商用電源）から供給される電力を供給する。以下、同一の電源モジュール４０００から電力が供給される装置群を「電源系統」と呼ぶ。
【００４７】
図２は、フロントエンドモジュール１２００およびバックエンドモジュール１６００のハードウェア構成例を示した図である。
【００４８】
フロントエンドモジュール１２００は、一つ以上の外部Ｉ／Ｆ１２１０、転送制御モジュール１２２０、メモリモジュール１２３０及びプロセッサ１２４０から構成される。また、バックエンドモジュール１６００のハードウェア構成例も、フロントエンドモジュール１２００と同等である。
【００４９】
まず、フロントエンドモジュール１２００について説明する。プロセッサ１２４０は、メモリモジュール１２３０に格納された各種プログラムを実行する。外部Ｉ／Ｆ１２１０は、プロセッサ１２４０からの指示に従い、ホスト２００から受信したＩ／Ｏコマンドの転送やＩ／Ｏデータ（Ｉ／Ｏコマンドの処理に伴って入出力されるデータ）の送受信を行う。転送制御モジュール１２２０は、プロセッサ１２４０からの指示に従い、プロセッサモジュール１１００や共有メモリモジュール１３００との間の通信や、データ転送を行う。メモリモジュール１２３０は、後述する各種プログラムおよびデータを格納する。電源モジュール４０００は、これらのモジュールに対して、電力を供給する。
【００５０】
続いて、バックエンドモジュール１６００について説明する。プロセッサ１２４０は、メモリモジュール１２３０に格納された各種プログラムを実行する。外部Ｉ／Ｆ１２１０は、プロセッサ１２４０からの指示に従い、記憶ディスク筐体２０００へのデータアクセスを行う。転送制御モジュール１１２０は、プロセッサ１２４０からの指示に従い、プロセッサモジュール１１００や共有メモリモジュール１３００との間の通信や、データ転送を行う。メモリモジュール１２３０は、後述する各種プログラムおよびデータを記憶する。電源モジュール４０００は、これらのモジュールに対して、電力を供給する。
【００５１】
図３は、プロセッサモジュール１１００のハードウェア構成例を示した図である。
【００５２】
プロセッサモジュール１１００は、一つ以上のプロセッサ１１１０、転送制御モジュール１１２０及びメモリモジュール１１３０から構成される。
【００５３】
プロセッサ１１１０は、メモリモジュール１１３０に記憶されている各種プログラムを実行する。転送制御モジュール１１２０は、プロセッサ１１１０からの指示に従い、他のプロセッサ１１１０、フロントエンドモジュール１２００、バックエンドモジュール１６００、共有メモリモジュール１３００及び管理用端末３０００との間の通信を制御する。メモリモジュール１１３０は、後述する各種プログラムや各種データを記憶する。電源モジュール４０００は、これらのモジュールに対して、電力を供給する。
【００５４】
プロセッサ１１１０は、内部に一つ以上のコア１１１１を有する。コア１１１１は、プロセッサ１１１０が持つ演算回路であり、コアの数が多いほど、プロセッサ１１１０の処理能力は向上する。コア１１１１への電力供給は、他のコア１１１１とは独立して制御することが可能である。言い換えれば、複数のコア１１１１の中から選択されたコア１１１１のみを休眠させる（休眠状態に移行させる）ことが可能である。
【００５５】
プロセッサモジュール１１００またはプロセッサ１１１０は、外部からの休眠命令を受信するか、自らが休眠命令を実行することにより、休眠する機能を有する。また、プロセッサモジュール１１００またはプロセッサ１１１０は、休眠中に外部からの起動命令を受信することにより、起動する機能も有する（例えば、少なくとも外部からの起動命令を受信する要素（例えば回路）を電源オン状態にしたまま休眠する構成となっている）。
【００５６】
なお、以下の説明では、稼動プロセッサモジュール、稼動プロセッサ、或いは稼動コアとは、状態が「稼動中」であるプロセッサモジュール、プロセッサ或いはコアのことを言う（ただし、稼動プロセッサについては、状態が「コア休眠中」のプロセッサも含まれる）。一方、休眠プロセッサモジュール、休眠プロセッサ或いは休眠コアとは、状態が「休眠中」であるプロセッサモジュール、プロセッサ或いはコアのことを言う。
【００５７】
図４は、共有メモリモジュール１３００のハードウェア構成例を示した図である。
【００５８】
共有メモリモジュール１３００は、キャッシュメモリモジュール１３４０、制御メモリモジュール１３２０及びメモリコントローラ１３１０から構成される。
【００５９】
キャッシュメモリモジュール１３４０は、ハードディスクドライブ（ＨＤＤ）よりも高速なアクセスが可能な、例えば揮発性のメモリである。キャッシュメモリモジュール１３４０は、記憶ディスク筐体２０００に記憶されるデータの一部をキャッシュデータとして一時的に記憶する。制御メモリモジュール１３２０は、ストレージシステム１００に関する後述の制御情報を格納する。メモリコントローラ１３１０は、これら二つのメモリモジュールとフロントエンドモジュール１２００、プロセッサモジュール１１００、記憶ディスク筐体２０００との間のデータの送受信を行う。電源モジュール４０００は、これらのモジュールに対して、電力を供給する。
【００６０】
また、制御メモリモジュール１３２０は、ロック機構を有する。ここでいう「ロック機構」とは、或る主体が使用中の資源に対して、他の主体からのアクセスを制限する同期機構である。プロセッサ１１１０が制御メモリモジュール１３２０にアクセスするためには、ロックを獲得しなければならない。
【００６１】
なお、キャッシュメモリモジュール１３４０は、外部からの休眠命令を受信することにより、キャッシュメモリモジュール１３４０全体の領域の一部を休眠させる機能を有する。また、キャッシュメモリモジュール１３４０は、休眠中に外部からの起動命令を受信することにより、再起動する機能も有する（例えば、キャッシュメモリモジュール１３４０全体を、少なくとも外部からの起動命令を受信する要素（例えば回路）を電源オン状態にしたまま休眠する構成となっている）。
【００６２】
図５は、管理用端末３０００のハードウェア構成例を示した図である。
【００６３】
管理用端末３０００は、一つ以上のプロセッサ３０１０、メモリモジュール３０３０、転送制御モジュール３０２０及びディスプレイ３０４０から構成される。プロセッサ３０１０は、メモリモジュール３０３０に記憶されている管理Ｉ／Ｆプログラムを実行する。メモリモジュール３０３０は、管理Ｉ／Ｆプログラムを記憶する。転送制御モジュール３０２０は、プロセッサ３０１０からの指示に従い、プロセッサモジュール１１００との間の通信を制御する。電源モジュール４０００は、これらのモジュールに対して、電力を供給する。
【００６４】
図６は、記憶ディスク筐体２０００のハードウェア構成例を示した図である。
【００６５】
記憶ディスク筐体２０００には、一つ以上の記憶ディスク２０１０が収納される。記憶ディスク筐体２０００では、複数の記憶ディスク２０１０の組合せによりＲＡＩＤ（Ｒｅｄａｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）が構成される。なお、ＲＡＩＤとは、複数台の記憶装置を組み合わせることで仮想的な１台のハードディスクとして運用する技術のことをいう。ＲＡＩＤを構成する記憶ディスク２０１０の集合を、「ＲＡＩＤグループ」と呼ぶものとする。また、ＬＤＥＶは、ＲＡＩＤグループにより提供される記憶空間を基に形成され、ＲＡＩＤグループの構成に基づいて定義される。複数のＬＤＥＶを一つのＲＡＩＤグループの記憶空間を基に形勢することが可能である。電源モジュール４０００は、各記憶ディスク２０１０に対して、電力を供給する。
【００６６】
なお、ＬＤＥＶの構成方法は限定されない。本実施形態では、一つのＲＡＩＤグループに対して複数のＬＤＥＶを定義する方法を例示しているが、一つのＲＡＩＤグループに対して一つのＬＤＥＶを定義することも、複数のＲＡＩＤグループに対して複数のＬＤＥＶを定義することも可能である。
【００６７】
また、記憶ディスク２０１０は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）であるが、他種のディスクドライブ（例えば光ディスクドライブ）であっても良い。また、ディスクドライブに代えて、他種の記憶装置（例えばフラッシュメモリ等の半導体メモリのドライブ）が採用されても良い。
【００６８】
続いて、図７を用いて、第一の実施形態の概要を説明する。
【００６９】
第一の実施形態では、プロセッサモジュール１１００の消費電力が削減される。
【００７０】
以下、プロセッサモジュール１１００が行うＩ／Ｏコマンド処理について簡単に説明する。なお、以下の説明では、各プロセッサモジュール１１００には、複数のＬＤＥＶのうちのどのＬＤＥＶを担当するかが割当てられていることとする。
【００７１】
フロントエンドモジュール１２００は、ホスト２００からＩ／Ｏコマンドを受信し、そのＩ／Ｏコマンドを、一以上のプロセッサモジュール１１００のうちの、そのＩ／Ｏコマンドで指定されているＬＤＥＶの担当プロセッサモジュール１１００に転送する。担当プロセッサモジュール１１００は、フロントエンドモジュール１２００から受信したＩ／Ｏコマンドを解釈し、その解釈の結果を基に、Ｉ／Ｏデータキャッシュメモリモジュール１３４０への書き込み・読み込み、および、記憶ディスク筐体２０００へのデータの書込み或いは記憶ディスク筐体２０００からのデータの読出しを行う。
【００７２】
このようなＩ／Ｏコマンド処理においては、プロセッサモジュール１１００が、Ｉ／Ｏコマンドの解釈、Ｉ／Ｏデータの読み書き、論理アドレスから物理アドレスへの変換などの多くの処理を行うため、プロセッサモジュール１１００が性能上のボトルネックとなりやすい。性能劣化を抑える方法としては、ストレージシステム１００に搭載するプロセッサモジュール１１００の数を増やす方法が考えられる。しかし、プロセッサモジュール１１００の数を増やすことにより、プロセッサモジュール１１００の消費電力が増大する。
【００７３】
そこで、第一の実施形態では、低負荷プロセッサモジュール１１００が、他の性能余剰プロセッサモジュール（或る程度負荷が増えても高負荷にならないプロセッサモジュール）１１００にＩ／Ｏコマンド処理を移行し、その後に、休眠する。これにより、ストレージシステム１００の消費電力を削減することができる。
【００７４】
具体的には、例えば、低負荷プロセッサモジュール１１００が、そのモジュール１１００にあるプロセッサ１１１０、又は、プロセッサ１１１０におけるコア１１１１を休眠させることで、消費電力を削減する。また、低負荷プロセッサモジュール１１００は、稼働プロセッサ１１１０が一つになってもなお低負荷状態の場合、他の性能余剰プロセッサモジュール１１００に担当ＬＤＥＶ（低負荷プロセッサモジュール１１００が担当するＬＤＥＶ）についてのＩ／Ｏコマンド処理を移行し、自らも休眠する。なお、本実施形態では、負荷の評価基準の例として、単位時間（例えば一秒間）あたりの最大Ｉ／Ｏコマンド処理数（処理可能なＩ／Ｏコマンドの最大数）と現在のＩ／Ｏコマンド数の比が用いられるものとする。他に、単位時間あたりに受信したＩ／Ｏコマンドの数や、プロセッサ１１１０が有するモニタ情報の示す負荷や温度などから負荷を評価することも可能である。
【００７５】
なお、この処理について考察すると、更なる下記の課題１乃至４が挙げられる。
【００７６】
（課題１）プロセッサモジュール１１００が休眠することにより、稼動プロセッサモジュール１１００が唯一つの電源系統にしか存在しなくなる恐れがある。その場合、稼働中プロセッサモジュール１１００の電源系統に障害が発生した場合、Ｉ／Ｏコマンドを処理可能なプロセッサモジュール１１００がいなくなり、一時的にシステムダウン状態となる。
【００７７】
（課題２）プロセッサモジュール１１００の休眠後に、ストレージシステム１００全体でのプロセッサ処理能力が低下し、ＬＤＥＶの要求性能が満たせなくなる恐れがある。ここでいう「ＬＤＥＶの要求性能」とは、ストレージシステム１００が単位時間（例えば一秒間）に処理しなければならないＬＤＥＶに対するＩ／Ｏコマンドの数のことをいう。ＬＤＥＶの要求性能は、管理者が設定することが可能である。
【００７８】
（課題３）異なるプロセッサモジュール１１００にＩ／Ｏコマンド処理を移行した場合、移行先で移行元プロセッサモジュール１１００のメモリモジュール１１３０を参照できないことが問題となる。例えば、プロセッサモジュール１１００は、メモリモジュール１１３０内の後述するＬＤＥＶ構成情報の複製１１３５やキャッシュテーブルの複製１１３６を利用し、Ｉ／Ｏコマンド処理を高速化する。しかし、Ｉ／Ｏコマンドを移行されたプロセッサモジュール１１００内のメモリモジュール１１３０には、新たに担当するＬＤＥＶに関するこれらの情報が存在しない。そのため、移行先プロセッサモジュール１１００は、移行されたＬＤＥＶへのＩ／Ｏコマンド受信時に、制御メモリモジュール１３２０上のこれらの情報を調べる必要がありレスポンス速度が低下する。
【００７９】
（課題４）管理者が電力削減量よりも性能を重視したい場合でも、性能や障害時耐性と、消費電力の削減量のトレードオフを設定することができない。
【００８０】
そこで、第一の実施形態では、これらの課題を解決するために、以下のような工夫１乃至４が施されている。
【００８１】
（工夫１）低負荷プロセッサモジュール１１００は、休眠する前に、他のプロセッサモジュール１１００が２つ以上の電源系統で稼動しているかどうかを判断し、稼働しているとの判断結果になった場合に、休眠する。これにより、ストレージシステム１００では、常に、２つ以上の電源系統で稼働中プロセッサモジュール１１００が存在することが保証される。このため、電源障害発生時にシステムダウン状態となることを防ぐことができる。なお、この（工夫１）では、稼動プロセッサモジュール１１００が存在する電源系統の数が確認されるが、それに代えて、稼動プロセッサモジュール１１００の数が確認されても良い。すなわち、低負荷プロセッサモジュール１１００は、休眠する前に、他の稼動プロセッサモジュール１１００が２つ以上存在するかどうかを判断し、存在するとの判断結果になった場合に、休眠する。これにより、いずれかの他の稼動プロセッサモジュール１１００に障害が発生してもシステムダウン状態となることを防ぐことができる。
【００８２】
（工夫２）低負荷プロセッサモジュール１１００は、自分にかかる負荷を他のプロセッサモジュール１１００に移行しても、ＬＤＥＶの要求性能を満たし、且つ、その他のプロセッサモジュール１１００が高負荷とならないかどうかを判断する。ＬＤＥＶの要求性能を満たし、且つ、その他のプロセッサモジュール１１００が高負荷とならない場合に、低負荷プロセッサモジュール１１００は、その他のプロセッサモジュール１１００に、自分に割当てられている担当ＬＤＥＶをその他のプロセッサモジュール１１００に割り当て、休眠する。これにより、移行先プロセッサモジュール１１００に、低負荷プロセッサモジュール１１００に割当てられていた担当ＬＤＥＶが割当てられても、ＬＤＥＶの要求性能を満たすことができる。
【００８３】
（工夫３）低負荷プロセッサモジュール１１１０は、Ｉ／Ｏコマンド処理の移行前に、移行先のプロセッサモジュール１１００に指示して、ＬＤＥＶ構成情報の複製１１３５とキャッシュテーブルの複製１１３６をメモリモジュール１１３０に作成させる。そのため、ストレージシステム１００は、異なるプロセッサモジュール１１００間のＩ／Ｏコマンド処理移行時においても、レスポンス性能の低下を防ぐことができる。
【００８４】
（工夫４）少なくともプロセッサモジュール１１００が、管理用端末３０００から、省電力レベル、低負荷閾値、及び高負荷閾値を受け付け、受けた省電力レベル、低負荷閾値及び高負荷閾値を、共有メモリモジュール１３００に書込む。プロセッサモジュール１１１０は、その省電力レベル、低負荷閾値及び高負荷閾値を基に、処理を実行する。これにより、性能や障害耐性と、消費電力の削減量のトレードオフを設定することができる。
【００８５】
「省電力レベル」は、プロセッサ休眠、プロセッサモジュール休眠、コア休眠のうち、許可する休眠方法を表す。本実施形態では、省電力レベルとしてレベル１からレベル４が設定可能である。レベル１が設定された場合、プロセッサモジュール１１００は、電力制御をおこなわない。レベル２が設定された場合、プロセッサモジュール１１００は、コア休眠を行うことが可能である。レベル３が設定された場合、プロセッサモジュール１１００は、コア休眠とプロセッサ休眠を行うことが可能である。レベル４が設定された場合、プロセッサモジュール１１００は、プロセッサ休眠、プロセッサモジュール休眠およびコア休眠を行うことが可能である。
【００８６】
ここでいう「プロセッサモジュール休眠」とは、プロセッサモジュール１１００内の全てのプロセッサ１１１０、メモリモジュール１１３０、転送制御モジュール１１５０が休眠することをいう。「プロセッサ休眠」とは、プロセッサ１１１０のみが休眠することをいう。「コア休眠」とは、コア１１１１が休眠することをいう。
【００８７】
これらの工夫１乃至４により、前述した課題１乃至４をそれぞれ解決することができる。以降では、第一の実施形態について、詳細を述べる。
【００８８】
図８を用いて、ストレージシステム１００の各種プログラムと各種データを説明する。
【００８９】
フロントエンドモジュール１２００は、メモリモジュール１２３０に格納されたＦＥ（Ｆｒｏｎｔ  Ｅｎｄ）データ転送プログラム１２３２をプロセッサ１２４０が実行することで、ＦＥデータ転送処理が行われる。
【００９０】
プロセッサモジュール１１００は、メモリモジュール１１３０に格納されたＩ／Ｏコマンド処理プログラム１１３１、ストレージ管理プログラム１１３２、電力制御プログラム１１３３及び障害回復プログラム１１３４をプロセッサ１１１０が実行することで、Ｉ／Ｏコマンド処理、ストレージ管理処理、電力制御処理、障害回復処理がそれぞれ行われる。
【００９１】
バックエンドモジュール１６００は、ＢＥデータ転送プログラム１６０１をプロセッサ１２４０が実行することにより、ＢＥデータ転送処理が行われる。
【００９２】
管理用端末３０００は、メモリモジュール３０３０に格納された管理インタフェース（Ｉ／Ｆ）プログラム３０３１をプロセッサ３０１０が実行することで、管理Ｉ／Ｆ処理が行われる。
【００９３】
ＦＥデータ転送プログラム１２３２、Ｉ／Ｏコマンド処理プログラム１１３１、ストレージ管理プログラム１１３２、電力制御プログラム１１３３、障害回復プログラム１１３４、ＢＥデータ転送プログラム１６０１、及び管理Ｉ／Ｆプログラム３０３１がそれぞれプロセッサ（例えばマイクロプロセッサ）に実行されることによって行われる各処理は、集積回路化する等によりハードウェアで実現されてもよい。以下、説明を簡単にするために各プログラムを、プロセッサ１１１０やプロセッサ１２４０、プロセッサ３０１０が実行することで実現される各処理を主体として説明する。
【００９４】
ＦＥデータ転送プログラム１２３２は、ホスト２００から受信したＩ／Ｏコマンドに含まれているＬＵＮに対応したプロセッサモジュール１１００に、そのＩ／Ｏコマンドを転送する。また、ＦＥデータ転送プログラム１２３２は、プロセッサモジュール１１００からの指示に従い、ストレージシステム１００とホスト２００間のデータ転送を制御する。ルーティング情報１２３１は、ＬＵＮごとの担当プロセッサモジュール１１００を示す。ルーティング情報１２３１の詳細は、図１５を用いて後述する。
【００９５】
ＢＥデータ転送プログラム１６０１は、プロセッサモジュール１１００からの指示に従い、コントローラ１０００と記憶ディスク筐体２０００の間のデータ転送を制御する。
【００９６】
プロセッサモジュール１１００のメモリモジュール１１２０に記憶される、ＬＤＥＶ構成情報の複製１１３５は、後述するＬＤＥＶ構成情報１３２５の全部又は一部の複製である。プロセッサモジュール１１００は、共有メモリモジュール１３００に記憶されているＬＤＥＶ構成情報１３２５ではなく、ＬＤＥＶ構成情報の複製１１３５を参照することにより、処理（例えば、論理アドレスと物理アドレスの変換）を高速に行うことが可能である。
【００９７】
プロセッサモジュール１１００のメモリモジュール１１２０に記憶される、キャッシュテーブルの複製１１３６は、後述するキャッシュテーブル１３２７の担当するＬＤＥＶに関する部分の複製である。プロセッサモジュール１１００は、キャッシュテーブルの複製１１３６を参照することで、ＬＤＥＶデータがキャッシュデータ１３４１中に存在するかどうかを高速に判定することができる。
【００９８】
プロセッサモジュール１１００で実行されるＩ／Ｏコマンド処理プログラム１１３１は、フロントエンドモジュール１２００から転送されて来たＩ／Ｏコマンドを解釈し、コマンドコードで指定される処理を行う。
【００９９】
コマンドコードでデータ読出しが指定されている場合、Ｉ／Ｏコマンド処理プログラム１１３１は、最初に、Ｉ／Ｏコマンド内のＬＵＮ、アドレス及び転送長を読み取る。次に、Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュテーブルの複製１１３６を参照し、キャッシュメモリモジュール１３４０上のキャッシュデータ１３４１に該当するデータ（Ｉ／Ｏコマンドに従って読み出されるべきデータ）が存在するかどうかを調べる。Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュデータが存在する場合、そのキャッシュデータ１３４１をホスト２００に転送することをＦＥデータ転送プログラム１２３２に指示する。
【０１００】
キャッシュデータが存在しない場合、Ｉ／Ｏコマンド処理プログラム１１３１は、記憶ディスク筐体２０００からキャッシュメモリモジュール１２３０へのデータ転送をＢＥデータ転送プログラム１６０１に指示する。その後、Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュデータが存在する場合、キャッシュデータ１３４１をホスト２００に転送することをＦＥデータ転送プログラム１２３２に指示する。最後に、Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュテーブル１３２７およびキャッシュテーブルの複製１１３６を更新する。
【０１０１】
コマンドコードでデータ書き込みが指定されている場合、Ｉ／Ｏコマンド処理プログラム１１３１は、最初に、Ｉ／Ｏコマンド内のＬＵＮ、アドレス及び転送長を読み取る。次に、Ｉ／Ｏコマンド処理プログラム１１３１は、ホスト２００からキャッシュメモリモジュール１３４０にデータを転送することをＦＥデータ転送プログラム１２３２に指示する。データ転送完了後に、Ｉ／Ｏコマンド処理プログラム１１３１は、ホスト２００に完了メッセージを送信する。その際、Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュテーブル１３２７およびキャッシュテーブルの複製１１３６を更新する。
【０１０２】
また、Ｉ／Ｏコマンド処理プログラム１１３１は、定期的に（又は不定期的に）、キャッシュテーブル１３２７を確認し、記憶ディスク筐体２０００に未書き込みのデータ量を調べる。未書き込みのデータが一定量を超えた場合、Ｉ／Ｏコマンド処理プログラム１１３１は、バックエンドモジュール１６００に指示してキャッシュデータ１３４１のデステージを行う。ここでいう「デステージ」とは、未書き込みキャッシュデータを記憶ディスク筐体２０００に書き込むことをいう。その後、Ｉ／Ｏコマンド処理プログラム１１３１は、キャッシュテーブル１３２７にアクセスし、デステージの済んだキャッシュデータが存在するメモリブロック（キャッシュメモリモジュール１３４０の構成要素）に対応した書込みフラグを、「未書込み」から「書き込み済み」に更新する。
【０１０３】
ストレージ管理プログラム１１３２は、管理用端末３０００から管理コマンドを受信し、その管理コマンドに従って、制御メモリモジュール１３２０に記憶されている各種制御情報を更新する。制御情報としては、例えば、プロセッサモジュール構成情報１３２１、プロセッサモジュール状態情報１３２２、プロセッサ情報１３２４、ＬＤＥＶ構成情報１３２５及び電力制御情報１３２６がある。ＬＤＥＶ構成情報１３２５の更新時には、ＬＤＥＶ構成情報の複製１１３５も同時に更新される。
【０１０４】
電力制御プログラム１１３３は、プロセッサ１１１０の稼動状態を監視し、定期的に（又は不定期的に）、制御メモリモジュール１３２０に記憶されているプロセッサ情報１３２４とプロセッサモジュール状態情報１３２２とを更新する。また、電力制御プログラム１１３３は、定期的に（又は不定期的に）、プロセッサ休眠制御を実行する。プロセッサ休眠制御の詳細は、図１６から図１９を用いて後述する。また、電力制御プログラム１１３３は、休眠中のプロセッサモジュール１１００、休眠中のプロセッサ１１１０、或いは休眠中のコア１１１１がある場合、定期的に（又は不定期的に）、図２０で説明するプロセッサ起動制御を実行し、プロセッサモジュール１１００の高負荷時には、休眠中のプロセッサモジュール１１００、休眠中のプロセッサ１１１０または休眠中のコア１１１１を起動する。ただし、管理者から管理用端末３０００を介して入力され共有メモリモジュール１３００に記憶された後述の電力制御情報１３２６が、レベル１を示している場合、プロセッサモジュール１１００は、以上のような電力制御処理を行わない。
【０１０５】
障害回復プログラム１１３４は、自身が実行されるプロセッサモジュール１１００の障害を検知したら、他の稼動プロセッサモジュール１１００のうちの一つに障害発生を通知する。また、障害回復プログラム１１３４は、他の稼動プロセッサモジュール１１００に対し、定期的に（又は不定期的に）、ハートビート信号を発信する。ここでいう「ハートビート信号」とは、自身が正常に稼動していることを外部に知らせるために送る信号のことをいう。障害回復プログラム１１３４は、他の稼動プロセッサモジュール１１００から障害を通知された場合やハートビート信号の受信が途絶えた場合、当該プロセッサモジュール１１００の障害回復を行う。プロセッサ障害回復時における障害回復プログラム１１３４の動作に関する詳細は、図２１を用いて後述する。
【０１０６】
制御メモリモジュール１３２０に記憶されている各種制御情報については、図９から図１４を用いて後述する。
【０１０７】
キャッシュデータ１３４１は、複数のデータブロックに分割され、それぞれが異なるＬＤＥＶに記憶される。ここでいう「データブロック」とは、キャッシュデータ１３４１の管理単位である。図１４を用いて後述するキャッシュテーブル１３２７は、これらデータブロックとＬＤＥＶアドレスの対応関係を保持する。
【０１０８】
管理Ｉ／Ｆプログラム３０３１は、ディスプレイ３０４０上に管理画面（例えばＧＵＩ（Graphical User Interface））を表示する。管理者は、その管理画面を通して、ＬＤＥＶの要求性能の設定、省電力レベル、プロセッサモジュール１１００の低負荷閾値と高負荷閾値を入力する。管理Ｉ／Ｆプログラム３０３１は、管理者から入力された情報を、管理コマンドとして、ストレージ管理を担当するプロセッサモジュール１１００に送信する。
【０１０９】
続いて、制御メモリモジュール１３２０に記憶されたプロセッサモジュール構成情報１３２１、プロセッサモジュール状態情報１３２２、プロセッサ情報１３２４、ＬＤＥＶ構成情報１３２５、電力制御情報１３２６及びキャッシュテーブル１３２７について図９から図１４を用いて説明する。これらの情報には、ハードウェアやＬＤＥＶなどの構成、管理者が定める設定、装置の性能、ホストからのアクセス数などの稼働状況などが含まれる。
【０１１０】
図９は、プロセッサモジュール構成情報１３２１の構成を示す。
【０１１１】
プロセッサモジュール構成情報１３２１は、例えばテーブルであり、プロセッサモジュール１１００の構成と設定に関する情報を含む。プロセッサモジュール構成情報１３２１は、プロセッサモジュール１１００ごとに、エントリ領域１３２１aからエントリ領域１３２１ｇを有する。
【０１１２】
具体的には、エントリ領域１３２１aには、プロセッサモジュール１１００の識別番号（プロセッサモジュール番号）が格納される。エントリ領域１３２１ｂには、プロセッサモジュール１１００内のプロセッサ１１１０の識別番号（プロセッサ番号）が格納される。エントリ領域１３２１ｃには、プロセッサモジュール１１００が担当しているＬＤＥＶの識別番号（担当ＬＤＥＶ番号）が格納される。エントリ領域１３２１ｄには、最初にプロセッサモジュール１１００が担当していたＬＤＥＶの識別番号（初期担当ＬＤＥＶ番号）が格納される。エントリ領域１３２１ｅには、プロセッサモジュール１１００が低負荷かどうかの基準となる閾値（低負荷閾値）が格納される。エントリ領域１３２１ｆには、プロセッサモジュール１１００が高負荷かどうかの基準となる閾値（高負荷閾値）が格納される。エントリ領域１３２１gには、プロセッサモジュール１１００が属している電源系統の識別番号（電源系統番号）が格納される。
【０１１３】
このプロセッサモジュール構成情報１３２１を参照することで、どのプロセッサモジュールにどのプロセッサが存在するかの特定が可能である。
【０１１４】
図１０は、プロセッサモジュール状態情報１３２２の構成を示す。
【０１１５】
プロセッサモジュール状態情報１３２２は、例えばテーブルであり、プロセッサモジュール１１００の性能と稼働状況に関する情報を含む。プロセッサモジュール状態情報１３２２は、プロセッサモジュール１１００ごとに、エントリ領域１３２２aからエントリ領域１３２２ｅを有する。
【０１１６】
エントリ領域１３２２ａには、プロセッサモジュール１１００の識別番号（プロセッサモジュール番号）が格納される。エントリ領域１３２２ｂには、プロセッサモジュール１１００内で稼動中のプロセッサ１１１０の能力性能の総和（プロセッサモジュール能力性能）が格納される。ここでいうプロセッサ１１１０の能力性能とは、単位時間（例えば一秒間）で処理可能なＩ／Ｏコマンド数のことである。その能力性能は、稼働中プロセッサ内１１１０の稼動中コアの数により変化する。エントリ領域１３２２ｃには、担当するＬＤＥＶの要求性能をみたすために、プロセッサモジュール１１００が一秒間あたりの処理しなければならないＩ／Ｏコマンド数（プロセッサモジュール要求性能）が格納される。そのため、エントリ領域１３２２ｃに格納される値は、プロセッサモジュール１１００が担当しているＬＤＥＶの要求性能の総和となる（各ＬＤＥＶ要求性能は、図１２のＬＤＥＶ構成情報テーブルに記録されている）。エントリ領域１３２２ｄには、現在のプロセッサモジュール１１００の負荷が格納される。格納される負荷は、エントリ領域１３２２ｂに格納されているプロセッサモジュール能力性能と、現在のプロセッサモジュール１１００が処理するＩ／Ｏコマンド数（以下、プロセッサモジュール現在性能）とを基に算出された値（例えば、プロセッサモジュール能力性能に対するプロセッサモジュール現在性能のパーセンテージ）である。エントリ領域１３２２ｅには、「稼働中」、「休眠中」或いは「障害」といった、プロセッサモジュール１１００の状態を表す情報（プロセッサモジュール状態）が格納される。
【０１１７】
図１１は、プロセッサ情報１３２４の構成を示す。
【０１１８】
プロセッサ情報１３２４は、例えばテーブルであり、プロセッサ１１１０に関する性能、構成、稼動状態に関する情報を含む。プロセッサ情報１３２４は、プロセッサ１１１０ごとにエントリ領域１３２４aからエントリ領域１３２４eを有する。
【０１１９】
エントリ領域１３２４ａには、プロセッサ１１１０の識別番号（プロセッサ番号）が格納される。エントリ領域１３２４ｂには、プロセッサ１１１０内のコア一つあたりの能力性能（コア能力性能）が格納される。エントリ領域１３２４ｃには、現在稼動しているコア数（稼動コア数）が格納される。なお、プロセッサ１１１０の性能（プロセッサ能力性能）は、コア能力性能と稼動コア数の積である。エントリ領域１３２４ｄには、現在のプロセッサ１１１０が処理している、一秒あたりのＩ／Ｏコマンド数（プロセッサ現在性能）を格納する。エントリ領域１３２５ｅには、「稼働中」、「休眠中」、「コア休眠中」などの、プロセッサ１１１０の状態を表す情報（プロセッサ状態）が格納される。
【０１２０】
なお、コア能力性能の値は、ストレージシステム１００の保守員または管理者が入力した値であっても良いし、プロセッサモジュール１１００が稼動実績または装置の仕様から自動的に算出された値であっても良い。
【０１２１】
図１２は、ＬＤＥＶ構成情報１３２５の構成を示す。
【０１２２】
ＬＤＥＶ構成情報１３２５は、例えばテーブルであり、ＬＤＥＶの構成と設定に関する情報を含む。ＬＤＥＶ構成情報１３２５は、ＬＤＥＶごとにエントリ領域１３２５aからエントリ領域１３２５fを有する。
【０１２３】
エントリ領域１３２５ａには、ＬＤＥＶの識別番号（ＬＤＥＶ番号）が格納される。エントリ領域１３２５ｂには、ＬＤＥＶが定義されているＲＡＩＤグループの識別番号（ＲＡＩＤグループ番号）が格納される。エントリ領域１３２５ｃには、ＬＤＥＶの、ＲＡＩＤグループ内における先頭物理アドレス（開始アドレス）が格納される。エントリ領域１３２５ｄには、ＲＡＩＤグループに割りあてられたＬＤＥＶの記憶容量（領域サイズ）が格納される。なお、本実施形態では、領域サイズの単位としてメガバイトを用いた例を示している。エントリ領域１３２５ｅには、ＬＤＥＶに対応するポート識別子とＬＵＮとのセットが格納される。エントリ領域１３２５ｆには、管理者によって定められたＬＤＥＶの要求性能が格納される。
【０１２４】
図１３は、キャッシュテーブル１３２７の構成を示す。
【０１２５】
キャッシュテーブル１３２７は、キャッシュデータ１３４１の格納位置に関する情報を含む。キャッシュテーブル１３２７は、データブロック（ＬＤＥＶの構成要素）ごとに、エントリ領域１３２７aからエントリ領域１３２７eを有する。
【０１２６】
エントリ領域１３２７ａには、データブロックを有するＬＤＥＶの識別番号（ＬＤＥＶ番号）が格納される。エントリ領域１３２７ｂには、データブロックに対応した先頭論理アドレスが格納される。エントリ領域１３２７ｃには、データブロックに格納されたデータのサイズ（格納データ長）が格納される。エントリ領域１３２７ｄには、データブロックに対応した、キャッシュメモリモジュールにおけるメモリブロックの物理アドレスが格納される。エントリ領域１３２７ｅには、メモリブロックに記憶されているデータが既に対応するデータブロックに書き込まれているかどうかの情報（例えば、「書き込み済み」または「未書き込み」といった情報）が格納される。
【０１２７】
図１４は、電力制御情報１３２６の構成を模擬的に示した図である。
電力制御情報１３２６は、電力制御関連の設定に関する情報を含む。電力制御情報１３２６はエントリ領域１３２６aを有し、そのエントリ領域１３２６ａに、前述した省電力レベルを表す値が格納される。
【０１２８】
図１５は、フロントエンドモジュール１２００に記憶されるルーティング情報１２３１の構成を示す。
【０１２９】
ルーティング情報１２３１は、ＬＵＮと、ＬＵＮに対応するＬＤＥＶを担当するプロセッサモジュールとの対応関係を含む。ルーティング情報１２３１は、例えばテーブルであり、ＬＵＮごとに、エントリ領域１２３１aとエントリ領域１２３１bを有する。
【０１３０】
エントリ領域１２３１ａには、ＬＵＮが格納される。エントリ領域１２３１ｂには、ＬＵＮに対応するＬＤＥＶを担当するプロセッサモジュール１１００の識別番号（担当プロセッサモジュール番号）が格納される。
【０１３１】
続いて、図１６から図２１を用いて、本実施形態で行われる各種処理を説明する。なお、これらの図中にて二重線で囲まれたステップは、他の図を用いてより詳細を説明している。
【０１３２】
図１６は、プロセッサ休眠制御処理のフローチャートである。以下、各ステップについて説明する。なお、この処理の対象となる或る一つのプロセッサモジュールを、以下、便宜上、「対象プロセッサモジュール」と呼ぶ。
【０１３３】
（Ｓ１００）電力制御プログラム１１３３は、制御メモリモジュール１３２０から、プロセッサモジュール構成情報１３２１、プロセッサモジュール状態情報１３２２、プロセッサ情報１３２４及び電力制御情報１３２６を読み取る。
【０１３４】
（Ｓ１０１）電力制御プログラム１１３３は、対象プロセッサモジュール（つまり自身の動作するプロセッサモジュール）１１００内の各稼動プロセッサ１１１０について、プロセッサ情報１３２４におけるコア能力性能（エントリ領域１３２４ｂに記録されている情報）と稼動コア数（エントリ領域１３２４ｃに記録されている情報）との積、つまりプロセッサ能力性能を算出する。また、電力制御プログラム１１３３は、対象プロセッサモジュール１１００に存在する一以上の稼動プロセッサ（プロセッサ状態「稼動中」に対応したプロセッサ）のプロセッサ能力性能の総和、つまりプロセッサモジュール能力性能を算出し、算出されたプロセッサモジュール能力性能を、エントリ領域１３２２ｂに記録する。更に、電力制御プログラム１１３３は、各稼動プロセッサのプロセッサ現在性能（エントリ領域１３２４ｄに記録されている情報であって、一秒あたりに処理されるＩ／Ｏコマンド数）を調べる。電力制御プログラム１１３３は、稼動プロセッサのプロセッサ現在性能の総和と、前述したプロセッサモジュール能力性能から、プロセッサモジュール負荷を計算し、その算出されたプロセッサモジュール負荷を、エントリ領域１３２２ｄに記録する。
【０１３５】
（Ｓ１０２）電力制御プログラム１１３３は、Ｓ１０１で得たプロセッサモジュール負荷と、対象プロセッサモジュール１１００に対応する低負荷閾値（エントリ領域１３２１ｅに記録されている情報）を比較し、プロセッサモジュール負荷が低負荷閾値より小さい場合、Ｓ１０３を行い、そうでない場合は、プロセッサ休眠制御を終了する。
【０１３６】
（Ｓ１０３）電力制御プログラム１１３３は、管理者によって設定された省電力レベル（電力制御情報１３２６が示す省電力レベル）に応じて、休眠方法を選択する。休眠方法の選択の詳細は、図１７を用いて後述する。なお、電力制御プログラム１１３３は、プロセッサモジュール休眠を選択する場合には、Ｉ／Ｏコマンド処理の移行先プロセッサモジュール１１００の検索も行う。
【０１３７】
（Ｓ１０４）電力制御プログラム１１３３は、Ｓ１０３にてプロセッサモジュール休眠を選択した場合、Ｓ１０５を行う。それ以外の場合はＳ１０６を行う。
【０１３８】
（Ｓ１０５）電力制御プログラム１１３３は、自身が実行されているプロセッサモジュール１１００の担当ＬＤＥＶについてのＩ／Ｏコマンド処理を、Ｓ１０３で発見した移行先プロセッサモジュール１１００に移行する。なおＩ／Ｏコマンド処理移行の詳細は、図１９を用いて後述する。
【０１３９】
（Ｓ１０６）電力制御プログラム１１３３は、Ｓ１０３でプロセッサモジュール休眠が選択された場合、対象プロセッサモジュール１１００に対応するエントリ領域１３２２ｅに記録される情報を、「休眠中」に更新する。電力制御プログラム１１３３は、Ｓ１０３でプロセッサ休眠が選択された場合、選択されたプロセッサ１１１０（図１７のＳ４１０の処理において選択されたプロセッサ１１１０）に対応するエントリ領域１３２４ｅに記録される情報を、「休眠中」に更新する。電力制御プログラム１１３３は、Ｓ１０３でコア休眠が選択された場合、選択された選択されたプロセッサ１１１０（図１７のＳ４２０の処理において選択されたコア１１１１）に対応するエントリ領域１３２４ｅに記録される情報を、「コア休眠中」に更新し、更に、一つのコア１１１１を休眠させるため、選択されたプロセッサ１１１０に対応したエントリ領域１３２４ｃに記録される稼動コア数を、一つ減らす（例えば、稼動コア数がＮならば、Ｎ−１に更新する）。
【０１４０】
その後、電力制御プログラム１１３３は、選択された休眠方法に応じ、プロセッサ１１１０、プロセッサモジュール１１００またはコア１１１１を休眠させる。ただし休眠方法が選択されていない場合は、電力制御プログラム１１３３は何も行わない。
【０１４１】
なお、電力制御プログラム１１３３は、これら一連の処理の間、制御メモリモジュール１３２０のロックを獲得し、他の電力制御プログラム１１３３の制御メモリモジュール１３２０へのアクセスを禁止する。
【０１４２】
図１７は、プロセッサ休眠方法選択処理のフローチャートである。
【０１４３】
（Ｓ４００）電力制御プログラム１１３３は、電力制御情報１３２６が示す省電力レベル（エントリ領域１３２６ａ）を調べ、省電力レベルが４の場合にはＳ４０１を、省電力レベルが３の場合にはＳ４１０を、省電力レベルが２の場合にはＳ４２０をそれぞれ行う。
【０１４４】
（Ｓ４０１）電力制御プログラム１１３３は、プロセッサモジュール構成情報１３２１のプロセッサ番号（エントリ領域１３２１ｂ）とプロセッサ情報１３２４のプロセッサ状態（エントリ領域１３２４ｅ）から、対象プロセッサモジュール１１００に存在する稼動プロセッサ１１１０が一つか二つ以上かを調べる。電力制御プログラム１１３３は、稼動プロセッサ１１１０が一つである場合、Ｓ４０２を行い、そうでない場合はＳ４１０を行う。
【０１４５】
（Ｓ４０２）電力制御プログラム１１３３は、移行先プロセッサモジュール１１００を検索する。移行先プロセッサモジュールの検索処理についての詳細は、図１８を用いて後述する。
【０１４６】
（Ｓ４０３）電力制御プログラム１１３３は、Ｓ４０２で移行先プロセッサモジュール１１００が見つかっている場合、Ｓ４０４を行う。それ以外の場合、電力制御プログラム１１３３は、Ｓ４２０を行う。
【０１４７】
（Ｓ４０４）電力制御プログラム１１３３は、プロセッサモジュール休眠を選択し、休眠方法の選択処理を終了する。
【０１４８】
（Ｓ４１０）電力制御プログラム１１３３は、対象プロセッサモジュール１１００における一以上の稼動プロセッサから一つのプロセッサ１１１０を選択し、選択されたプロセッサ１１１０が休眠した後のプロセッサモジュール１１００の現在性能を計算する。その現在性能は、例えば、対象プロセッサモジュールの現在性能から、選択されたプロセッサの現在性能を減算することで算出される。電力制御プログラム１１３３は、算出された現在性能がプロセッサモジュール要求性能（エントリ１３２２ｃに記録されている値）より大きい場合は、Ｓ４１１を行い、そうでない場合は、Ｓ４２０を行う。
【０１４９】
（Ｓ４１１）電力制御プログラム１１３３は、プロセッサ休眠を選択し、休眠方法の選択処理を終了する。
【０１５０】
（Ｓ４２０）電力制御プログラム１１３３は、或る稼動プロセッサにおける二以上の稼動コアから一つ（又は複数）のコアを選択し、選択したコア１１１１を休眠した後のプロセッサモジュール１１００の能力性能を計算する。その能力性能は、例えば、対象プロセッサモジュールの能力性能から、選択されたコアの能力性能を減算することで算出される。電力制御プログラム１１３３は、算出された能力性能がプロセッサモジュール要求性能（エントリ１３２２ｃに記録されている値）より大きい場合は、Ｓ４２１を行い、そうでない場合は、休眠方法を選択せずに休眠方法の選択処理を終了する。
【０１５１】
（Ｓ４２１）電力制御プログラム１１３３は、コア休眠を選択し、休眠方法の選択処理を終了する。
【０１５２】
図１８は、移行先プロセッサモジュール検索処理のフローチャートである。
【０１５３】
（Ｓ３００）電力制御プログラム１１３３は、プロセッサモジュール状態情報１３２２を参照し、対象プロセッサモジュール１１００ではない二以上の他のプロセッサモジュール１１００が二つ以上の電源系統で稼動中か否かを判断する。電力制御プログラム１１３３は、稼動中の場合はＳ３０１を行い、そうでない場合は処理を終了する。
【０１５４】
（Ｓ３０１）電力制御プログラム１１３３は、他の稼働中のプロセッサモジュール１１００のうち一つを、移行可能かどうかの判定対象として選択する。
【０１５５】
（Ｓ３０２）電力制御プログラム１１３３は、プロセッサモジュール状態情報１３２２を参照し、自身の動作する対象プロセッサモジュール１１００の能力性能及び負荷と、判定対象のプロセッサモジュール１１１０の能力性能及び負荷とを特定する。電力制御プログラム１１３３は、２つのプロセッサモジュール１１００の能力性能比（対象プロセッサモジュールの能力性能／判定対象プロセッサモジュールの能力性能）を計算し、対象プロセッサモジュール１１００の負荷と上記算出された能力性能比との積（つまり、判定対象プロセッサモジュール１１００の負荷増加見積もり）を計算する。その後、電力制御プログラム１１３３は、その負荷増加見積もりと判定対象プロセッサモジュール１１００の負荷の和（つまり、移行後の負荷見積もり）を計算する。移行後の負荷見積もりが判定対象プロセッサモジュール１１００の高負荷閾値（エントリ領域１３２１ｆに記録されている値）よりも低い場合、電力制御プログラム１１３３は、Ｓ３０３を行う。それ以外の場合は、電力制御プログラム１１３３は、現在の判定対象プロセッサ１１１０の判定を終了し、Ｓ３０５を実行する。
【０１５６】
（Ｓ３０３）電力制御プログラム１１３３は、対象プロセッサモジュール（言い換えれば移行元プロセッサモジュール）１１１０の要求性能と、判定対象のプロセッサモジュールの要求性能との和（つまり、判定対象プロセッサモジュールについての移行後の要求性能）を計算する。電力制御プログラム１１３３は、判定対象プロセッサモジュール１１００について、能力性能と移行後の要求性能とを比較する。電力制御プログラム１１３３は、移行後の要求性能が判定対象プロセッサモジュール１１００の能力性能以下の場合、Ｓ３０４を実行する。それ以外の場合は、電力制御プログラム１１３３は、現在現在の判定対象プロセッサ１１１０の判定を終了し、Ｓ３０５を実行する。
【０１５７】
（Ｓ３０４）電力制御プログラム１１３３は、検索結果に判定対象プロセッサモジュール１１００を追加する（例えば、メモリモジュール１１３０に一時的に用意された所定の電子的な情報に、判定対象プロセッサモジュール１１００のプロセッサモジュール番号を記録する）。
【０１５８】
（Ｓ３０５）全ての稼動プロセッサモジュール１１００が判定済みである場合、電力制御プログラム１１３３は、本検索処理を終了する。そうでない場合、電力制御プログラム１１３３は、Ｓ３００を行う。
【０１５９】
図１９は、Ｉ／Ｏコマンド処理移行処理のフローチャートである。
【０１６０】
（Ｓ５００）電力制御プログラム１１３３は、プロセッサモジュール構成情報１３２１から、対象プロセッサモジュール１１００の担当ＬＤＥＶ（エントリ領域１３２１ｃ）を読み取り、移行先プロセッサモジュール１１００の担当ＬＤＥＶ（エントリ領域１３２１ｃ）に追加する。その際、電力制御プログラム１１３３は、対象プロセッサモジュール１１１０に対応したエントリ領域１３２２ｅに記録される情報を、「休眠中」に更新する。また、電力制御プログラム１１３３は、対象プロセッサモジュールに存在する各プロセッサ１１１０に対応したエントリ領域１３２４ｅに記録される情報を、「休眠中」に更新する。
【０１６１】
（Ｓ５０１）電力制御プログラム１１３３は、移行先プロセッサモジュール１１００に、メモリモジュール更新メッセージを送信して、メモリモジュール更新を指示する。メモリモジュール更新メッセージには、自身が動作するプロセッサモジュール１１００の担当ＬＤＥＶ番号が含まれる。メッセージを受信した移行先プロセッサモジュール１１００の電力制御プログラム１１３３は、共有メモリモジュール１３００上のキャッシュテーブル１３２７から、移行されるＬＤＥＶに関する情報をキャッシュテーブルの複製１１３６に追加する。また、移行先プロセッサモジュール１１００の電力制御プログラム１１３３は、ＬＤＥＶ構成情報の複製１１３５についても、同様に更新する。また、移行先プロセッサモジュール１１００の電力制御プログラム１１３３は、追加するＬＤＥＶの要求性能（エントリ領域１３２５ｆ）を、プロセッサモジュールの要求性能（エントリ領域１３２２ｃ）の値に加算する。これらの処理の終了後に、移行先の電力制御プログラム１１３３は、移行元プロセッサモジュール１１００に完了メッセージを送信する。
【０１６２】
（Ｓ５０２）電力制御プログラム１１３３は、Ｓ５０１の完了メッセージ受信後に、ＬＤＥＶ構成情報の複製１１３５から、自身が動作するプロセッサモジュール１１１０の担当ＬＤＥＶを調べる。そして、電力制御プログラム１１３３は、フロントエンドモジュール１２００にルーティング変更メッセージを送信して、Ｉ／Ｏコマンドのルーティングの変更を指示する。ルーティング変更メッセージには、移動するＬＤＥＶのＬＵＮと、移行先プロセッサモジュール１１００の番号が含まれている。ルーティング変更を指示された、フロントエンドモジュール１２００のＦＥデータ転送プログラム１２３２は、ルーティング変更メッセージに示されたＬＵＮの担当プロセッサモジュールの番号を、移行先プロセッサモジュール１１１０の番号に更新。その後、ＦＥデータ転送プログラム１２３２は、完了メッセージを電力制御プログラム１１３３に送信する。また、ＦＥデータ転送プログラム１２３２は、それ以降の移行元プロセッサ１１１０に対するＩ／Ｏコマンドを、移行先プロセッサ１１１０に転送する。電力制御プログラム１１３３は、完了メッセージ受信後Ｉ／Ｏ処理の移行を完了する。
【０１６３】
図２０は、移行先プロセッサモジュール高負荷時のプロセッサ起動制御処理のフローチャートである。
【０１６４】
（Ｓ６００）図１９での移行先プロセッサモジュールで実行される電力制御プログラム１１３３は、図１６のＳ１０１について説明した方法にて、そのプロセッサモジュール１１００の負荷を計算する。
【０１６５】
（Ｓ６０１）電力制御プログラム１１３３は、Ｓ６００で得た負荷が、そのプロセッサモジュール１１００に対応した高負荷閾値（エントリ領域１３２１ｆ）以上の場合、Ｓ６０２を実行し、そうでない場合はプロセッサ起動制御を終了する。
【０１６６】
（Ｓ６０２）電力制御プログラム１１３３は、プロセッサ情報１３２４を参照し、そのプロセッサモジュール１１００内にコア休眠中のプロセッサ１１１０がないか調べる。電力制御プログラム１１３３は、休眠中のコアが存在しない場合、Ｓ６０３を行い、存在する場合はＳ６１０を行う。
【０１６７】
（Ｓ６０３）電力制御プログラム１１３３は、プロセッサ情報１３２４を参照し、そのプロセッサモジュール内に休眠中のプロセッサ１１１０がないか調べる。電力制御プログラム１１３３は休眠中のプロセッサが存在しない場合、Ｓ６０４を行い、存在する場合はＳ６２０を行う。
【０１６８】
（Ｓ６０４）電力制御プログラム１１３３は、プロセッサモジュール構成情報１３２１の担当ＬＤＥＶ（エントリ領域１３２１ｃ）と初期担当ＬＤＥＶ（エントリ領域１３２１ｄ）から、現在担当しているＬＤＥＶに他のプロセッサモジュール１１００から移行されてきたものがあるかどうかを調べる（言い換えれば、担当ＬＤＥＶと初期担当ＬＤＥＶが異なっているか否かを調べる）。もし、移行されてきたＬＤＥＶがある場合、電力制御プログラム１１３３は、Ｓ６０５を実行し、無い場合、プロセッサ起動制御を終了する。
【０１６９】
（Ｓ６０５）電力制御プログラム１１３３は、図１９での移行元プロセッサモジュールを再起動する。その後、電力制御プログラム１１３３は、移行元プロセッサモジュールに対応したエントリ領域１３２２ｅに記録される情報を、「稼動中」に更新する。また、電力制御プログラム１１３３は、移行元プロセッサモジュール１１００に含まれる各プロセッサに対応したエントリ領域１３２４ｅに記録される情報を、「稼動中」に更新し、その各プロセッサに対応したエントリ領域１３２４ｄに記録される値を、そのプロセッサが有するコアの数に更新する。
【０１７０】
（Ｓ６０６）電力制御プログラム１１３３は、図１９を用いて説明した方法で移行されてきたＬＤＥＶのＩ／Ｏコマンド処理を、図１９における移行元のプロセッサモジュール１１００に移行する。
【０１７１】
（Ｓ６１０）電力制御プログラム１１３３は、図１９での移行先プロセッサモジュール内の或る稼動プロセッサにおける全ての休眠コアを起動する。次に、電力制御プログラム１１３３は、それらのコア１１１１を有する稼動プロセッサ１１１０に対応したエントリ領域１３２４ｅに記録される情報を、「コア休眠」から「稼動中」に更新する。また、電力制御プログラム１１３３は、その稼動プロセッサ１１１０に対応したエントリ領域１３２４ｃに記録される情報を、そのプロセッサ１１１０が有するコアの数に更新する。
【０１７２】
（Ｓ６２０）電力制御プログラム１１３３は、図１９での移行先プロセッサモジュール内の或る休眠プロセッサ１１１０を起動する。次に、電力制御プログラム１１３３は、その或る休眠プロセッサ１１１０に対応したエントリ領域１３２４ｅに記録される情報を、「稼動中」に更新する。また、電力制御プログラム１１３３は、その或る休眠プロセッサ１１１０に対応したエントリ領域１３２４ｃに記録される情報を、そのプロセッサ１１１０が有するコアの数に更新する。
【０１７３】
なお、電力制御プログラム１１３３は、これら一連の処理の間、制御メモリモジュール１３２０のロックを獲得し、他の電力制御プログラム１１３３の制御メモリモジュール１３２０へのアクセスを禁止する。
【０１７４】
図２１は、プロセッサ障害回復処理のフローチャートである。
【０１７５】
（Ｓ７００）障害回復プログラム１１３４は、一定時間以上、他の稼動プロセッサモジュール１１００からハートビート信号を受信しない場合や、障害発生が通知された場合、その通知元或いはハートビート信号の送信元のプロセッサモジュール１１００に障害があることを検出する。以下、そのプロセッサモジュール１１００を「障害プロセッサモジュール１１００」と言う。
【０１７６】
（Ｓ７０１）障害回復プログラム１１３４は、移行先プロセッサモジュール１１００を選択する。例えば、障害回復プログラム１１３４は、一以上の稼動プロセッサモジュール１１００のうち、最も低負荷な稼動プロセッサモジュール１１００を選択する。
【０１７７】
（Ｓ７０２）障害回復プログラム１１３４は、障害プロセッサモジュール１１００が行うＩ／Ｏコマンド処理をＳ７０１で選択された移行先プロセッサモジュール１１００に転送することをフロントエンドモジュール１２００に指示する。フロントエンドモジュール１１００のＦＥデータ転送プログラム１２３２は、障害回復プログラム１１３４からの指示に応答して、障害プロセッサモジュール１１００の担当ＬＵＮを、移行先プロセッサモジュール１１００の担当ＬＵＮに更新する（つまりルーティング情報１２３１を更新する）。その後、ＦＥデータ転送プログラム１２３２は、更新後のルーティング情報１２３１に基づいたＩ／Ｏコマンド転送制御を開始する。
【０１７８】
（Ｓ７０３）障害回復プログラム１１３４は、移行先プロセッサモジュール１１００に対応するエントリ領域１３２１ｃに、障害プロセッサモジュール１１００の担当ＬＤＥＶの番号を追記する。また、電力制御プログラム１１３３は、移行先プロセッサモジュール１１００に対応したエントリ領域１３２２ｃに記録されている値に、障害プロセッサモジュール１１００の担当ＬＤＥＶの要求性能を追加し、更に、障害プロセッサモジュール１１００に対応したエントリ領域１３２２ｅに記録される情報を、「障害」に更新する。
【０１７９】
（Ｓ７０４）最後に、障害回復プログラム１１３４は、障害プロセッサモジュール１１００への電力供給を遮断する（つまり障害プロセッサモジュール１１００を休眠させる或いは閉塞する）。
【０１８０】
以上が、第一の実施形態についての説明である。なお、例えば、プロセッサモジュール１１００への電力制御方法として、休眠させる方法を例示したが、他に動作周波数を抑制することも可能である。
【０１８１】
＜第二の実施形態＞。
【０１８２】
以下、本発明の第二の実施形態を説明する。第二の実施形態では、コンピュータシステムの構成は第一の実施形態と実質的に同様のため、説明を省略する。
【０１８３】
図２２は、第二の実施形態の概要を示した図である。
【０１８４】
第二の実施形態では、キャッシュメモリモジュール１３４０の消費電力が削減される。キャッシュメモリモジュール１３４０の動作について説明する。ストレージシステム１００は、キャッシュメモリモジュール１３４０に、Ｉ／Ｏデータ（ホスト２００からのＩ／Ｏコマンドに伴って読み書きされるデータ）をキャッシュデータ１３４１として格納することで、ホスト２００からのＩ／Ｏコマンドの処理を高速化する。ストレージシステム１００は、データ書き込み時には、Ｉ／Ｏデータをキャッシュデータ１３４１として保存することで、Ｉ／Ｏデータの記憶ディスク筐体２０００への書き込みを、Ｉ／Ｏコマンドの受信と非同期に行う。また、ストレージシステム１００は、データ読み込みにおいて、キャッシュヒット時には、キャッシュデータをホスト２００へ転送する。ここでいう「キャッシュヒット」とは、Ｉ／Ｏコマンドに伴うＩ／Ｏデータがキャッシュメモリモジュール１３４０から見つかることをいう。
【０１８５】
ストレージシステム１００は、キャッシュメモリモジュール１３４０を大容量化しキャッシュヒット率を上げることで、データ読み込みの高速化を図ることができる。ここでいう、キャッシュヒット率とは、Ｉ／Ｏコマンド処理時にキャッシュヒットとなる確率をいう。キャッシュメモリモジュール１３４０が大容量となると、消費電力の増加が懸念される。
【０１８６】
そこで、第二の実施形態では、ストレージシステム１００が、Ｉ／Ｏコマンド数が少ない場合、キャッシュメモリモジュール１３４０の一部領域を休眠させ、消費電力を削減する。
【０１８７】
第二の実施形態では、次のような方法でキャッシュメモリモジュール１３４０の休眠を実現する。
【０１８８】
電力制御を実行するプロセッサモジュール１１００は、キャッシュメモリモジュール１３４０について、単位容量あたりのＩ／Ｏコマンド数を監視する。プロセッサモジュール１１００は、そのＩ／Ｏコマンド数が閾値以下になった場合、低アクセス頻度のメモリブロックを休眠させる。ここでいうメモリブロックとは、キャッシュメモリモジュール１３４０の、休眠制御が可能な物理的または論理的な分割単位のことをいう。
【０１８９】
ただし、プロセッサモジュール１１００は、メモリブロックを休眠させる前に、そのメモリブロックに記憶されている未書き込みのキャッシュデータ１３４１を、記憶ディスク筐体２０００にデステージする。なお、プロセッサモジュール１１００がデータ消失を防ぐため、メモリブロックの休眠前に未書き込みのキャッシュデータ１３４１をデステージする処理は例示にすぎない。他に、プロセッサモジュール１１００がメモリブロックの休眠前に、未書き込みのキャッシュデータ１３４１を他のメモリブロック（キャッシュデータの存在しないメモリブロック、或いは、上書きされても構わないキャッシュデータを記憶するメモリブロック）に移動することも可能である。
【０１９０】
なお、キャッシュメモリモジュールとしてフラッシュメモリなどの不揮発性のメモリが用いられている場合は、デステージが行われなくてもよい。その場合、プロセッサモジュール１１００は、休眠メモリブロック上のキャッシュデータにアクセスするならば、そのメモリブロックを再起動し、起動完了後、そのメモリブロックにアクセスする。
【０１９１】
また、プロセッサモジュール１１００は、メモリブロックを休眠させる前に、休眠後のアクセス性能の見積もりがＬＤＥＶの要求性能を満たすことを確認する。ここでいうアクセス性能とは、一秒間に処理可能な最大Ｉ／Ｏアクセス数のことをいう。Ｉ／Ｏアクセス数とは、キャッシュメモリモジュール１３４１または記憶ディスク筺体２０００へのアクセス数であり、キャッシュヒット数とキャッシュミス数の和となる。ここでいう「キャッシュミス」とは、キャッシュデータ１３４１上に、アクセス対象のキャッシュデータが格納されてないことをいう。
【０１９２】
また、ストレージシステム１００は、低アクセス閾値および高アクセス閾値を管理用端末３０００から受け付ける。管理者は、性能と省電力効果のトレードオフを設定することが可能である。なお、低アクセス閾値および高アクセス閾値は、例えば、単位容量あたりのＩ／Ｏコマンド数と比較されるが、それに代えて、キャッシュメモリモジュール１３４０への総アクセス数と比較されても良い。
【０１９３】
以下、第二の実施形態について詳細に説明する。
【０１９４】
図２３を用いて、第二の実施形態のストレージシステム１００のプログラムおよび各種データを説明する。なお、第一の実施形態と同等のものについては説明を省略する。図中で太線にて示されるデータやプログラムは、第一の実施形態では存在しない、もしくは第一の実施形態に対して変更点を有することを示す。
【０１９５】
Ｉ／Ｏコマンド処理プログラム１１３１は、第一実施形態の処理に加え、キャッシュメモリ全体でのキャッシュヒット率、Ｉ／Ｏコマンド数を監視し、定期的に後述するキャッシュメモリモジュール情報１３２８に書き込む。また、Ｉ／Ｏコマンド処理プログラム１１３１は、メモリブロックごとのキャッシュヒット数を監視し、定期的に後述するメモリブロック情報１３２８に記録する。
【０１９６】
電力制御プログラム１１３３は、定期的に後述するキャッシュメモリ休眠制御を行う。キャッシュメモリ休眠制御の詳細は、図２６〜図２７を用いて後述する。また、電力制御プログラム１１３３は、休眠メモリブロックがある場合には、定期的にキャッシュメモリ起動制御を行う。キャッシュメモリ起動制御の詳細は、図２８を用いて後述する。
【０１９７】
キャッシュメモリモジュール情報１３２８とメモリブロック情報１３２９は、図２４と図２５を用いて後述する。
【０１９８】
管理Ｉ／Ｆプログラム３０３１は、ディスプレイ３０４０上に管理画面を表示する。管理者は、管理画面を通して、後述するキャッシュメモリモジュールの１３４０低アクセス閾値と高アクセス閾値を入力する。管理Ｉ／Ｆプログラム３０３１は、管理内容（入力された低アクセス閾値と高アクセス閾値）を含んだコマンドをプロセッサモジュール１１００に管理コマンドとして送信する。
【０１９９】
図２４は、キャッシュメモリモジュール情報１３２８の構成を示す。
【０２００】
キャッシュメモリモジュール情報１３２８は、例えばテーブルであり、キャッシュメモリモジュール１３４０の性能や稼動状態、設定に関する情報を含む。キャッシュメモリモジュール情報１３２８は、エントリ領域１３２８ａからエントリ領域１３２８ｈを有する。
【０２０１】
エントリ領域１３２８ａには、キャッシュヒット時におけるストレージシステム１００の単位時間（例えば一秒間）に処理可能な最大Ｉ／Ｏアクセス数（キャッシュヒット性能）が格納される。エントリ領域１３２８ｂには、キャッシュミス時におけるストレージシステム１００の一秒間に処理可能な最大Ｉ／Ｏアクセス数（キャッシュミス性能）が格納される。エントリ領域１３２８ｃには、キャッシュヒット率が格納される。エントリ領域１３２８ｄには、直近の一秒間にホストから受信したＩ／Ｏコマンド数が格納される。エントリ領域１３２８ｅには、キャッシュメモリモジュール１３４０の稼働メモリ領域のサイズ（休眠してないメモリブロックのサイズの総和、以下、稼動メモリサイズ）が格納される。エントリ領域１３２８ｆには、キャッシュメモリモジュール１３４０に対するアクセス頻度が低アクセス頻度であるかどうかの基準となる閾値（低アクセス閾値）が格納される（例えば、本実施形態では、キャッシュメモリモジュール１３４０のアクセス頻度の評価方法として、一秒間のキャッシュメモリモジュール１ＭＢあたりのＩ／Ｏコマンド数が用いられる）。エントリ領域１３２８ｇには、キャッシュメモリモジュール１３４０のアクセス頻度が高アクセス頻度であるかどうかの基準となる閾値（高アクセス閾値）が格納される。エントリ領域１３２８ｈには、ストレージシステム１００が一秒間に処理を要求されるＩ／Ｏコマンド数（要求性能）が格納される。その要求性能は、ストレージシステム１００に存在する全てのＬＤＥＶの要求性能の総和である。
【０２０２】
なお、キャッシュヒット性能（エントリ領域１３２８ａ）とキャッシュミス性能（エントリ領域１３２９ｂ）は、ストレージシステム１００の保守員または管理者が手動で設定するか、プロセッサモジュール１１００が稼動実績または装置の仕様から自動的に計算されても良い。
【０２０３】
図２５は、メモリブロック情報１３２９の構成を示す。
【０２０４】
メモリブロック情報１３２９は、例えばテーブルであり、メモリブロックの構成や稼動状態に関する情報を含む。メモリブロック情報１３２９は、メモリブロックごとに、エントリ領域１３２９ａからエントリ領域１３２９e有する。
【０２０５】
エントリ領域１３２９ａには、メモリブロックの識別番号（メモリブロック番号）が格納される。エントリ領域１３２９ｂには、キャッシュメモリモジュール１３４０内におけるメモリブロックの先頭物理アドレス（開始アドレス）が格納される。エントリ領域１３２９ｃには、メモリブロックのサイズ（領域サイズ、例えば単位はメガバイト）が格納される。エントリ領域１３２９ｄには、メモリブロックの単位時間（例えば一秒間）あたりのキャッシュヒット数が格納される。エントリ領域１３２９ｅには、メモリブロックの状態を表す情報、例えば「稼働中」、「休眠中」などが格納される。
【０２０６】
続いて、第二の実施形態で行われる各種処理を、図２６から図２８を用いて説明する。
【０２０７】
図２６は、キャッシュメモリ休眠制御処理のフローチャートである。
【０２０８】
（Ｓ８００）電力制御プログラム１１３３は、制御メモリモジュール１３２０から、キャッシュメモリモジュール情報１３２８、メモリブロック情報１３２９及び電力制御情報１３２６を読み取る。
【０２０９】
（Ｓ８０１）電力制御プログラム１１３３は、キャッシュメモリモジュール情報１３２８の、Ｉ／Ｏコマンド数（エントリ領域１３２８ｄ）と稼動メモリサイズ（エントリ領域１３２８ｅ）の商から、キャッシュメモリモジュール１３４０の１ＭＢあたりのアクセス頻度を計算する。電力制御プログラム１１３３は、算出されたアクセス頻度と低アクセス閾値（エントリ領域１３２８ｆ）とを比較し、アクセス頻度が低アクセス閾値以下の場合には、Ｓ８０２を行い、そうでない場合は、キャッシュメモリ休眠制御を終了する。
【０２１０】
（Ｓ８０２）電力制御プログラム１１３３は、メモリブロック情報１３２９を参照し、最もキャッシュヒット数（エントリ領域１３２９ｄに記録されている値）が少ない稼動メモリブロックを、休眠対象として選択する。
【０２１１】
（Ｓ８０３）電力制御プログラム１１３３は、キャッシュメモリモジュール１３４０のキャッシュヒット性能ａ（エントリ領域１３２８ａ）、キャッシュミス性能ｂ（エントリ領域１３２８ｂ）、キャッシュヒット率ｃ（エントリ領域１３２８ｃ）、稼動メモリサイズｄ（１３２８ｅ）、及び、休眠対象メモリブロックのサイズｅ（エントリ領域１３２９ｃ）から、移行後の性能の見積もりを計算する。電力制御プログラム１１３３は、下記（式１）及び（式２）から、休眠後のキャッシュヒット率見積もりｘ、性能見積もりｙを計算する。
ｘ  ＝  ｃ  ×  （ｄ−ｅ）／ｄ・・・・・・（式１）
ｙ  ＝  ａ  ×  ｘ  ＋  ｂ  ×（１−ｘ）・・・・・・（式２）。
【０２１２】
（Ｓ８０４）電力制御プログラム１１３３は、Ｓ８０３で得た性能見積もりｙと要求性能（１３２８ｈ）とを比較し、性能見積もりｙが要求性能以上の場合、Ｓ８０５を行い、そうでない場合はキャッシュ休眠制御を終了する。
【０２１３】
（Ｓ８０５）電力制御プログラム１１３３は、キャッシュメモリ休眠を行う。これにより、Ｓ８０２で選択した休眠対象メモリブロックが休眠させられる。キャッシュメモリ休眠の詳細については、図２７を用いて後述する。
【０２１４】
図２７は、キャッシュメモリ休眠の処理のフローチャートである。
【０２１５】
（Ｓ９００）電力制御プログラム１１３３は、キャッシュテーブル１３２７を参照し、休眠対象メモリブロック内に記憶されているデータブロックが記憶ディスク２０００に未書き込みのデータブロックであるかどうかを調べる。未書込みのデータブロックであれば、電力制御プログラム１１３３は、その未書き込みデータブロックの記憶ディスク筐体２０００へのデステージを行う。
【０２１６】
（Ｓ９０１）電力制御プログラム１１３３は、キャッシュテーブル１３２７から、休眠対象メモリブロックに関する情報を削除する。また、電力制御プログラム１１３３は、全てのプロセッサモジュール１１００に、休眠対象メモリブロックの識別番号を通知する。その通知を受けたプロセッサモジュール１１００では、電力制御プログラム１１３３が、キャッシュテーブルの複製１１３４から、休眠対象メモリブロック（通知された識別番号に対応するメモリブロック）に関する情報を削除する。
【０２１７】
（Ｓ９０２）電力制御プログラム１１３３は、メモリブロック情報１３２９におけるエントリ領域１３２９ｅに記録される情報を、「休眠中」に更新する。また、電力制御プログラム１１３３は、キャッシュメモリモジュール１３２８の稼動メモリサイズ（エントリ領域１３２８ｅ）を、休眠対象メモリブロックの領域サイズ（エントリ領域１３２９ｃ）を引いた値に更新する。最後に、電力制御プログラム１１３３は、休眠対象メモリブロックを休眠させる。
【０２１８】
図２８は、キャッシュメモリ起動制御処理のフローチャートである。
【０２１９】
（Ｓ１０００）電力制御プログラム１１３３は、Ｓ８００と同様にキャッシュメモリモジュール１３４０の情報を取得する。
【０２２０】
（Ｓ１００１）電力制御プログラム１１３３は、Ｓ８０１と同様に、キャッシュメモリモジュール１３４０のアクセス頻度を計算する。電力制御プログラム１１３３は、算出されたアクセス頻度と高アクセス閾値（エントリ領域１３２８ｇ）とを比較し、そのアクセス頻度が高アクセス閾値以上の場合、Ｓ１００２を行い、そうでない場合は、キャッシュメモリ起動制御を終了する。
【０２２１】
（Ｓ１００２）電力制御プログラム１１３３は、休眠メモリブロックを一つ選び、その休眠メモリブロックを再起動する。電力制御プログラム１１３３は、メモリブロック情報１３２９における、起動するメモリブロックに対応したエントリ領域１３２９ｅに記録される情報を、「稼働中」に更新する。また、電力制御プログラム１１３３は、キャッシュメモリモジュール情報１３２８の稼動メモリサイズ（エントリ領域１３２８ｅ）を、起動させるメモリブロックの領域サイズ（エントリ領域１３２９ｃ）を足した値に更新する。
【０２２２】
以上が、第二の実施形態についての説明である。なお、例えば、メモリブロック毎に休眠することに代えて又は加えて、キャッシュメモリモジュールをＬＤＥＶごとに論理分割された領域ごとに休眠させることも可能である。
【０２２３】
＜第三の実施形態＞。
【０２２４】
以下、本発明の第三の実施形態を説明する。第三の実施形態では、コンピュータシステムの構成は第一の実施形態と実質的に同様のため、説明を省略する。
【０２２５】
図２９は、第三の実施形態の概要を示した図である。
【０２２６】
第三の実施形態では、記憶ディスク筐体２０００の消費電力が削減される。
【０２２７】
記憶ディスク筐体２０００は、複数の記憶ディスク２０１０から構成されるＲＡＩＤグループごとに、一以上のＬＤＥＶが用意され、ＬＤＥＶに、Ｉ／Ｏデータが格納される。ストレージシステム１００は、大量のデータを格納するために多くの数の記憶ディスク２０１０が必要となり、これらの消費電力が問題となる。そのため、第三の実施形態では、ストレージシステム１００が、一定時間データ入出力のないＲＡＩＤグループを構成する記憶ディスク２０１０を休眠させ、消費電力を削減する。なお、以降の説明では、説明を分かりやすくするために、ＲＡＩＤグループを構成する記憶ディスク２０１０の休眠を単に、ＲＡＩＤグループの休眠と表現する。
【０２２８】
なお、ＲＡＩＤグループの消費電力の削減について考察すると、例えば以下の（課題１）及び（課題２）を挙げることができる。
【０２２９】
（課題１）休眠ＲＡＩＤグループを基にしたＬＤＥＶが存在する場合、ホスト２００からのＩ／Ｏコマンドに伴いそのＬＤＥＶにデータ入出力が発生するたびに、休眠ＲＡＩＤグループを構成する全ての記憶ディスクの再起動が必要となる。このため、ホスト２００に対するレスポンスの速度が遅くなる。また、ＬＤＥＶに対するデータ入出力のたびにＲＡＩＤグループを起動すると、そのデータ入出力の頻度によっては、ＲＡＩＤグループを常に稼動している場合に比して、多くの電力を消費してしまうおそれがある。
【０２３０】
（課題２）管理者が性能と電力削減量のトレードオフを設定することができない。
【０２３１】
以上の課題（課題１）及び（課題２）をそれぞれ解決するために、第三の実施形態では、以下の（工夫１）及び（工夫２）が施されている。
【０２３２】
（工夫１）コントローラ１０００は、低負荷ＲＡＩＤグループを発見した場合、そのＲＡＩＤグループに含まれる全てのＬＤＥＶを、他のＲＡＩＤグループに移動してから、低付加ＲＡＩＤグループを休眠させる。ここでいうＬＤＥＶの移動とは、ＬＤＥＶの物理的な格納場所をホストから透過的に変更することをいう。ただし、ＲＡＩＤグループの負荷の評価方法は、単位時間（例えば一秒間）あたりに処理可能なディスクアクセス数と、現在のディスクアクセス数の比とする。また、ディスクアクセス数とは、実際の記憶装置へのアクセス数のことをいい、キャッシュデータへのアクセスは含まない。その結果、休眠したＲＡＩＤグループは、ホスト２００からアクセスされなくなり、再起動する必要がなくなる。
【０２３３】
なお、ＬＤＥＶの移動に伴い、移動先のＲＡＩＤグループの負荷が高負荷になる恐れや、ＬＤＥＶの要求性能を満たせなくなる恐れがある。そのため、更なる工夫として、コントローラ１０００は、ＬＤＥＶを移動する前に、移動先のＲＡＩＤグループの負荷が高負荷にならないかどうかや、ＬＤＥＶ移動を行ってもＬＤＥＶの要求性能をみたすかどうかを判断し、高負荷にならずＬＤＥＶの要求性能を満たす場合に、ＬＤＥＶの移動を実行する。
【０２３４】
また、ＬＤＥＶ移動は、コントローラ１０００や記憶ディスク２０１０に負荷がかかる。さらに、全てのＲＡＩＤグループが同等の信頼性や性能を有するとは限らない。そのため、ＬＤＥＶ移動により、管理者の意図に反した、ストレージシステム１００の一時的な負荷上昇やＬＤＥＶの信頼性や性能の変化が発生する恐れがある。そのため、更なる工夫として、ストレージシステム１００は、管理者に警告メッセージを通知し、ＲＡＩＤグループの休眠を許可するかどうか選択させることで、管理者の意図に反したＬＤＥＶ移動を防ぐ。
【０２３５】
（工夫２）ストレージシステム１００が、管理用端末３０００から、休眠を許可するＲＡＩＤグループ、低アクセス閾値、高アクセス閾値を受け付ける。管理者は、性能と電力削減量のトレードオフを設定することができる。
【０２３６】
以下、第三の実施形態について詳細に説明する。
【０２３７】
図３０を用いて、第三の実施形態におけるストレージシステム１００のプログラムおよび各種データを説明する。なお、第一の実施形態と同等のものについては説明を省略する。図中で太線にて示されるデータやプログラムは、第一の実施形態では存在しない、もしくは第一の実施形態に対して変更点を有することを示す。
【０２３８】
メモリモジュール１１３０に格納されたＬＤＥＶ移動プログラム１１３７をプロセッサ１１１０が実行することで、ＬＤＥＶ移動処理が行われる。ＬＤＥＶ移動処理は、集積回路化するなどして、ハードウェアで実現することもできる。
【０２３９】
Ｉ／Ｏコマンド処理プログラム１１３１は、第一の実施形態で説明した処理の他に、直近の一秒あたりの各ＬＤＥＶに対するＩ／Ｏコマンド数を後述するＬＤＥＶ状態情報１３３０に書き込む。また、Ｉ／Ｏコマンド処理プログラム１１３１は、定期的（又は不定期的）に、各ＲＡＩＤグループのディスクアクセス数、空き容量を調べ、後述するＲＡＩＤグループ情報１３３１を更新する。
【０２４０】
電力制御プログラム１１３３は、定期的（又は不定期的）に、ディスク休眠制御を行う。ディスク休眠制御の詳細については、図３４〜図３５を用いて後述する。また、電力制御プログラム１１３３は、休眠ＲＡＩＤグループがある場合には、定期的（又は不定期的）に、ディスク起動制御を行う。ディスク起動制御の詳細については、図３６を用いて後述する。
【０２４１】
ＬＤＥＶ移動プログラム１１３７は、指定されたＬＤＥＶを、指定されたＲＡＩＤグループに移動する。ＬＤＥＶ移動プログラム１１３７は、ＬＤＥＶを移動する前に、移動先のＲＡＩＤグループに移動するＬＤＥＶと同容量の領域を確保する。次に、ＬＤＥＶ移動プログラム１１３７は、移動するＬＤＥＶのデータを、確保した領域にコピーする。次に、ＬＤＥＶ移動プログラム１１３７は、ＬＤＥＶ構成情報１３２５の、移動ＬＤＥＶのＲＡＩＤグループ番号（１３２５ｂ）および開始アドレス（１３２５ｃ）の値をそれぞれ、移動先ＲＡＩＤグループ番号、および確保した領域の開始アドレスに更新する。次に、ＬＤＥＶ移動プログラム１１３７は、共有メモリモジュール１３００に記憶されているＬＤＥＶ構成情報１３２５を更新する。その際、ＬＤＥＶ移動プログラム１１３７は、全てのプロセッサモジュール１１００に対して、ＬＤＥＶ構成情報の複製１１３５の更新を指示する。最後に、ＬＤＥＶ移動プログラム１１３７は、移動元ＬＤＥＶに記憶されているデータを消去する。
【０２４２】
制御メモリモジュール１３２０の、ＬＤＥＶ状態情報１３３０、ＲＡＩＤグループ情報１３３１及び電力制御情報１３２６に関しては、図３１から図３３を用いて後述する。
【０２４３】
管理Ｉ／Ｆプログラム３０３１は、第一の実施形態の処理のほかに、休眠を許可するＲＡＩＤグループ、警告設定、ＲＡＩＤグループごと低負荷閾値、高負荷閾値の入力を受け付ける管理画面をディスプレイ３０４０に表示する。また、管理Ｉ／Ｆプログラム３０３１は、その管理画面を介して入力された種々の情報を含んだコマンドを管理コマンドとしてプロセッサモジュール１１００に通知する。
【０２４４】
続いて、図３１から図３３を用いて、各種情報の構成について説明する。
【０２４５】
図３１は、ＬＤＥＶ状態情報１３３０の構成を示した図である。
【０２４６】
ＬＤＥＶ状態情報１３３０は、例えばテーブルであり、ＬＤＥＶの稼動状態に関する情報を含む。ＬＤＥＶ状態情報１３３０は、ＬＤＥＶごとに、エントリ領域１３３０ａ及び１３３０ｂを有する。エントリ領域１３３０ａには、ＬＤＥＶの識別番号（ＬＤＥＶ番号）が格納される。エントリ領域１３３０ｂには、ＬＤＥＶに対する直近の一秒間のＩ／Ｏコマンド数が格納される。
【０２４７】
図３２は、ＲＡＩＤグループ情報１３３１の構成を示した図である。
【０２４８】
ＲＡＩＤグループ情報１３３１は、例えばテーブルであり、ＲＡＩＤグループの性能、構成、稼動状態に関する情報を含む。ＲＡＩＤグループ情報１３３１は、ＲＡＩＤグループごとに、エントリ領域１３３１ａからエントリ領域１３３１ｊを有する。
【０２４９】
エントリ領域１３３１ａには、ＲＡＩＤグループの識別番号（ＲＡＩＤグループ番号）が格納される。エントリ領域１３３１ｂには、ＲＡＩＤグループが一秒間あたりに処理可能なディスクアクセス回数（ＲＡＩＤグループ能力性能）が格納される。エントリ領域１３３１ｃには、ＲＡＩＤグループに要求される一秒間あたりのディスクアクセス回数（ＲＡＩＤグループ要求性能）が格納される。ＲＡＩＤグループの要求性能は、そのＲＡＩＤグループにある一以上のＬＤＥＶの要求性能の総和に所定の計数を掛けた値となる。ただし、計数は、例えば一般的なキャッシュミス率を基に定められる。エントリ領域１３３１ｄには、ＲＡＩＤグループにあるＬＤＥＶの識別番号が格納される。エントリ領域１３３１ｅには、ＲＡＩＤグループに最初に形成されたＬＤＥＶの識別番号が格納される。エントリ領域１３３１ｆには、一秒間あたりのディスクアクセス回数（ＲＡＩＤグループ現在性能）が格納される。エントリ領域１３３１ｇには、現在使われていない記憶領域のサイズ（空き容量）が格納される。エントリ領域１３３１ｈには、ＲＡＩＤグループの負荷が低負荷であるかどうかの基準となる閾値（低負荷閾値）が格納される。エントリ領域１３３１ｉには、ＲＡＩＤグループの負荷が高負荷であるかどうかの基準となる閾値（高負荷閾値）が格納される。エントリ領域１３３１ｊには、ＲＡＩＤグループの状態を示す情報として、例えば「稼動中」か「休眠中」が格納される。
【０２５０】
なお、ＲＡＩＤグループ能力性能は、ストレージシステム１００の保守員または管理者が手動で設定されても良いし、ストレージシステム１００が稼動実績または装置の仕様から自動的に設定されても良い。
【０２５１】
図３３は、第三の実施形態における電力制御情報１３２６の構成を示した図である。
【０２５２】
電力制御情報１３２６は、電力制御に関する情報を含む。電力制御情報１３２６は、エントリ領域１３２６ｂとエントリ領域１３２６ｃを有する。エントリ領域１３２６ｂに、休眠許可ＲＡＩＤグループ（休眠を許可するＲＡＩＤグループ）の識別番号が格納される。エントリ領域１３２６ｃに、ＲＡＩＤグループの休眠前に管理者に通知するかどうかを表す情報が格納される。
【０２５３】
続いて、第三の実施形態で行われる各種処理について、図３４から図３６を用いて説明する。
【０２５４】
図３４は、ディスク休眠制御処理のフローチャートである。
【０２５５】
（Ｓ１１００）電力制御プログラム１１３３は、制御メモリモジュール１３２０から、ＬＤＥＶ構成情報１３２５、ＬＤＥＶ状態情報１３３０、ＲＡＩＤグループ情報１３３１及び電力制御情報１３２６を読み込む。
【０２５６】
（Ｓ１１０１）電力制御プログラム１１３３は、電力制御情報１３２６を参照して、一以上の休眠許可ＲＡＩＤグループを特定し、且つ、各休眠許可ＲＡＩＤグループについて、ＲＡＩＤグループ性能（エントリ領域１３３１ｂ）とＲＡＩＤグループ現在性能（エントリ領域１３３１ｆ）を特定し、各休眠許可ＲＡＩＤグループの負荷を計算する。負荷は、例えば、ＲＡＩＤグループ能力性能とＲＡＩＤグループ現在性能の比から求められる（例えば、ＲＡＩＤグループ能力性能に対するＲＡＩＤグループ現在性能の百分率である）。電力制御プログラム１１３３は、各休眠許可ＲＡＩＤグループについて、負荷と低負荷閾値（エントリ領域１３３１ｈ）とを比較し、負荷が低負荷閾値以下である休眠許可ＲＡＩＤグループが少なくとも一つある場合、Ｓ１１０２を行い、そうでない場合はディスク休眠制御を終了する。
【０２５７】
（Ｓ１１０２）電力制御プログラム１１３３は、Ｓ１１０１で低負荷と判断したＲＡＩＤグループ（負荷が低負荷閾値以下の休眠許可ＲＡＩＤグループ）のうち、一つを、休眠するＲＡＩＤグループの候補（休眠ＲＡＩＤグループ候補）として選択する。
【０２５８】
（Ｓ１１０３）電力制御プログラム１１３３は、ＲＡＩＤグループ情報１３３１を参照し、Ｓ１１０２で選択した休眠ＲＡＩＤグループ候補に存在するＬＤＥＶを特定する。電力制御プログラム１１３３は、特定された各ＬＤＥＶについて、ＬＤＥＶ移動先となるＲＡＩＤグループを検索する。ＬＤＥＶ移動先の検索の詳細は、図３５を用いて後述する。
【０２５９】
（Ｓ１１０４）電力制御プログラム１１３３は、Ｓ１１０３の結果から、全てのＬＤＥＶに移動先がある場合はＳ１１０５を行い、そうでない場合はディスク休眠制御を終了する。
【０２６０】
（Ｓ１１０５）電力制御プログラム１１３３は、電力制御情報１３２６の警告設定（エントリ領域１３２６ｃ）が有効の場合、Ｓ１１０６を行い、そうでない場合はＳ１１０７を行う。
【０２６１】
（Ｓ１１０６）電力制御プログラム１１３３は、管理用端末３０００に、休眠するＲＡＩＤグループの識別番号と、各ＬＤＥＶの移動先のＲＡＩＤグループの識別番号を含む警告メッセージを送信する。管理用端末３０００の管理Ｉ／Ｆプログラム３０３１は、その警告メッセージを受信したら、ディスプレイ３０４０に警告メッセージを表示し、管理者に休眠を許可するか質問する。管理者は、上記警告メッセージの内容を確認し、ＲＡＩＤグループの休眠を許可するかどうかを入力する。電力制御プログラム１１３３は、管理者が休眠を許可した場合Ｓ１１０７を行い、許可しない場合、ディスク休眠制御を終了する。
【０２６２】
（Ｓ１１０７）電力制御プログラム１１３３は、Ｓ１１０２で選択した休眠ＲＡＩＤグループ候補（移動元ＲＡＩＤグループ）におけるすべてのＬＤＥＶを、Ｓ１１０３の検索処理で発見されたそれぞれの移動先ＲＡＩＤグループに移動する。実際の移動処理は、ＬＤＥＶ移動プログラム１１３７が行う。ＬＤＥＶ移動プログラム１１３７は、ＬＤＥＶの移動完了後、ＬＤＥＶ移動完了を電力制御プログラム１１３３に通知する。
【０２６３】
（Ｓ１１０８）電力制御プログラム１１３３は、その通知を受けたならば（つまり、移動対象の全てのＬＤＥＶの移動完了後に）、ＲＡＩＤグループ情報１３３１にアクセスし、移動元ＲＡＩＤグループ及び移動先ＲＡＩＤグループのそれぞれについて、ＲＡＩＤグループ要求性能（エントリ領域１３３１ｂ）、ＬＤＥＶの識別番号(エントリ領域１３３１ｄ)、空き容量（エントリ領域１３３１ｆ）、及び、ＲＡＩＤグループの状態（エントリ領域１３３１ｊ）を更新する。
【０２６４】
図３５は、ＬＤＥＶ移動先検索処理のフローチャートである。
【０２６５】
（Ｓ１２００）電力制御プログラム１１３３は、ＬＤＥＶの移動先として判定対象とするＲＡＩＤグループを選択する。ただし、電力制御プログラム１１３３は、判定対象として、まだ判定を行っていないＲＡＩＤグループのうち、Ｓ１１００で計算した負荷の低いＲＡＩＤグループから順に選択するものとする。
【０２６６】
（Ｓ１２０１）電力制御プログラム１１３３は、ＬＤＥＶ構成情報１３２５とＲＡＩＤグループ情報１３３１を参照し、ＬＤＥＶの領域サイズ（１３２５ｄ）と判定対象ＲＡＩＤグループの空き容量（１３３１ｇ）を特定し、それらを比較する。ＬＤＥＶの領域サイズが判定対象ＲＡＩＤグループの空き容量以下の場合、電力制御プログラム１１３３は、Ｓ１２０２を行い、そうでない場合はＳ１２１０を行う。
【０２６７】
（Ｓ１２０２）電力制御プログラム１１３３は、ＬＤＥＶ状態情報１３３０とＲＡＩＤグループ情報１３３１を参照し、移動するＬＤＥＶのＩ／Ｏコマンド数（エントリ領域１３３０ｂ）と判定対象ＲＡＩＤグループのディスクアクセス数（エントリ領域１３３ｆ）の和から、移動後の負荷見積もりを計算する。ただし、判定対象とするＲＡＩＤグループが他のＬＤＥＶの仮移行先となっている場合、そのＬＤＥＶのＩ／Ｏコマンド数（エントリ領域１３３０ｂ）についても、移動後のアクセス数見積もりに加算する。次に、電力制御プログラム１１３３は、ＲＡＩＤグループ情報１３３１を参照し、判定対象ＲＡＩＤグループの能力性能（エントリ領域１３３１ｂ）と移動後のディスクアクセス数見積もりの比（例えば、その能力性能に対する移動後のディスクアクセス数見積もりの百分率）、つまり負荷見積もりを計算する。電力制御プログラム１１３３は、負荷見積もりと高負荷閾値を比較し、負荷見積もりが高負荷敷居値以上の場合、Ｓ１２０３を行い、そうでない場合はＳ１２１０を行う。
【０２６８】
（Ｓ１２０３）電力制御プログラム１１３３は、ＬＤＥＶ構成情報１３２５とＲＡＩＤグループ情報１３３１を参照し、判定対象ＲＡＩＤグループの要求性能（エントリ領域１３３１ｄ）と、移行するＬＤＥＶの要求性能（１３２５ｆ）の和から、移行後の要求性能見積もりを求める。ただし、判定対象とするＲＡＩＤグループが他のＬＤＥＶの仮移行先となっている場合、当該他のＬＤＥＶの要求性能（エントリ領域１３３０ｂ）も、移行後の要求性能見積もりに加算する。電力制御プログラム１１３３は、ＲＡＩＤグループ情報１３３１を参照し、要求性能見積もりが、ＲＡＩＤグループ能力性能（１３３１ｂ）よりも小さい場合、Ｓ１２０４を行い、そうでない場合はＳ１２１０を行う。
【０２６９】
（Ｓ１２０４）電力制御プログラム１１３３は、判定対象のＲＡＩＤグループを仮移動先として、ＬＤＥＶ移動先の検索を終了する。
【０２７０】
（Ｓ１２１０）電力制御プログラム１１３３は、未判定のＲＡＩＤグループが存在する場合、Ｓ１２００を行い、そうでない場合はＬＤＥＶ移動先の検索を終了する。
【０２７１】
図３６は、ディスク起動制御処理のフローチャートである。
【０２７２】
（Ｓ１３００）電力制御プログラム１１３３は、Ｓ１１００と同様に、制御メモリモジュール１３２０からＲＡＩＤグループに関する情報を読み込む。
【０２７３】
（Ｓ１３０１）電力制御プログラム１１３３は、Ｓ１１０１と同様の方法で、ＬＤＥＶが移動されているＲＡＩＤグループの負荷見積もりを計算する。電力制御プログラム１１３３は、全ての移動先ＲＡＩＤグループの負荷見積もりが高負荷閾値（エントリ領域１３３１ｇ）以下の場合、ディスク起動制御を終了し、そうでない場合はＳ１３０２を行う。
【０２７４】
（Ｓ１３０２）電力制御プログラム１１３３は、ＬＤＥＶの移動元のＲＡＩＤグループを再起動する。次に、電力制御プログラム１１３３は、ＲＡＩＤグループ情報１１３３の、再起動したＲＡＩＤグループに対応するエントリ領域１３３１ｊに記録される情報を、「稼動中」に更新する。ただし、すでにＬＤＥＶの移動元のＲＡＩＤグループが起動している場合、電力制御プログラム１１３３は何も行わない。
【０２７５】
（Ｓ１３０３）電力制御プログラム１１３３は、Ｓ１１０６と同じ方法でＬＤＥＶを元のＲＡＩＤグループに移動する。
【０２７６】
以上が、第三の実施形態についての説明である。なお、例えば、ＬＤＥＶの移動先のＲＡＩＤグループの検索処理では、信頼性や性能の制限を加えることも可能である。
【０２７７】
＜第四の実施形態＞
図３７を用いて、本発明の第四の実施形態に係るコンピュータシステムの構成を説明する。
【０２７８】
第四の実施形態では、ストレージシステム１００に外部接続ストレージシステム６００が接続される。それ以外の構成は、第一の実施形態と実質的に同等のため、説明は省略する。
【０２７９】
外部接続ストレージシステム６００は、ファイバチャネルやＦＣＰを用いてストレージシステム１００内部のバックエンドモジュール１６００に接続される。バックエンドモジュール１６００はプロセッサモジュール１１００の指示に従い、ストレージシステム１００と外部接続ストレージシステム６００間のデータ転送を行う。外部接続ストレージシステム６００は、外部からの休眠指示または起動指示に応答して、休眠や再起動する機能を有する。
【０２８０】
図３８は、第四の実施形態の概要を示した図である。
【０２８１】
第四の実施形態では、外部接続ストレージシステム６００の消費電力が削減される。
【０２８２】
外部接続ストレージシステム６００について説明する。外部接続ストレージシステム６００は、それ自身もストレージシステム１００と同様に、ホスト２００に対してＬＤＥＶを提供する機能を有するストレージシステムである。ストレージシステム１００は、外部接続ストレージシステム６００のＬＤＥＶを仮想的に自らのＬＤＥＶとしてホスト２００に提供する。ストレージシステム１００は、外部接続ストレージシステム６００のＬＤＥＶへのＩ／Ｏコマンド受信時には、外部接続ストレージシステム６００を仮想的にストレージシステム１００内のＲＡＩＤグループとして制御する。
【０２８３】
ストレージシステム１００に複数の外部接続ストレージシステム６００を接続し、一元管理することで、管理の容易化を図ることができる。このようなシステム構成では、外部接続ストレージシステム６００による消費電力が問題となる。第四の実施形態では、外部接続ストレージシステム６００のうち、アクセス頻度の低い外部接続ストレージを休眠させることにより消費電力が削減される。
【０２８４】
外部接続ストレージシステム６００を休眠することにより、第三の実施形態におけるＲＡＩＤグループの休眠時と実質的に課題が発生することが考えられる。そのため、第四の実施形態では、以下のような工夫で、その課題の解決が図られる。
【０２８５】
すなわち、ストレージシステム１００は、外部接続ストレージシステム６００のＬＤＥＶを、その他の外部接続ストレージシステム６００、または自身の記憶ディスク筺体２０００内のＲＡＩＤグループに移動し、その後、外部接続ストレージシステム６００を休眠させる。ストレージシステム１００は、外部接続ストレージシステム６００を、仮想的なＲＡＩＤグループとして管理することにより、第三の実施形態と同等の電力制御を行う。
【０２８６】
以下、第三の実施形態との相違点を主に説明する。
【０２８７】
第四の実施形態におけるストレージシステム１００のプログラムおよび各種データについて、図３０を用いて説明する。
【０２８８】
Ｉ／Ｏコマンド処理プログラム１１３１は、外部接続ストレージシステム６００の提供するＬＤＥＶへのＩ／Ｏコマンド受信時には、バックエンドモジュール１６００に指示して、必要なデータ転送を行う。
【０２８９】
電力制御プログラム１１３３は、自身のＲＡＩＤグループおよび外部接続ストレージシステム６００を、第三の実施形態のＲＡＩＤグループと同等に扱う。
【０２９０】
ＬＤＥＶ移動プログラム１１３７は、外部接続ストレージシステム６００を仮想的なＲＡＩＤグループと見なし、外部接続ストレージシステム６００間、外部接続ストレージとストレージシステム１００間のＬＤＥＶ移動を行う。ただし、ＬＤＥＶ移動プログラム１１３７は、ＬＤＥＶ定義、およびＬＤＥＶ削除などのＬＤＥＶ移動に必要な外部接続ストレージシステム６００の機能を、外部接続ストレージシステム６００で指定された方法で呼び出す。
【０２９１】
共有メモリモジュール１３００は、ＬＤＥＶ構成情報１３２５、ＲＡＩＤグループ情報１３３１、ＬＤＥＶ状態情報１３３０は、ＲＡＩＤグループに関する情報のほかに、外部接続ストレージシステム６００に関する情報を記憶する。
【０２９２】
管理Ｉ／Ｆプログラム３０３１は、第三の実施形態の処理のほかに、休眠を許可する外部接続ストレージ内のＲＡＩＤグループに関する管理画面をディスプレイ３０４０に表示する。管理Ｉ／Ｆプログラム３０３１は、管理画面を介して入力された情報を含んだコマンドを管理コマンドとしてプロセッサモジュール１１００に通知する。
【０２９３】
以上が、第四の実施形態についての説明である。なお、例えば、外部接続ストレージシステム６００全体ではなくその一部、例えば、コントローラ或いはキャッシュメモリ、ディスクが休眠させられても良い。
【０２９４】
＜第五の実施形態＞。
【０２９５】
本発明の第五の実施形態に係るコンピュータシステムの構成を、図３９を用いて説明する。
【０２９６】
第五の実施形態では、コンピュータシステムは、２台以上のストレージシステム１００、１台以上のホスト２００、１台以上の管理サーバ３００、ストレージネットワーク４００及び管理ネットワーク５００から構成される。ストレージシステム１００、ホスト２００、管理サーバ間のシステム構成は、第一の実施形態と実質的に同様である。複数のストレージシステム１００間は、コントローラ１０００同士がＦＣとＦＣＰを用いて接続され、管理情報やデータが転送される。ただし、コントローラ１０００間のインタフェースとプロトコルは例示にすぎず、他のインタフェースやプロトコルを用いてもよい。ホスト２００からストレージシステム１００の提供するＬＤＥＶへのアクセスパスは、ホスト２００上で動作するパス制御モジュール２００１により制御される。ただし、アクセスパスとはホストからＬＤＥＶへのアクセス時のネットワークの経路のことを言う。パス制御モジュール２００１は、ハードウェアとして例示しているが、プロセッサに実行されるコンピュータプログラムであっても良い。
【０２９７】
なお、第五の実施形態では、ストレージシステム１００はコントローラ１０００により自ら休眠する機能と、外部から再起動する機能を有する。ハードウェア構成は、第一の実施形態と実質的に同等のため説明を省略する。
【０２９８】
続いて、第五の実施形態の概要について図４０を用いて説明する。
【０２９９】
第五の実施形態では、ストレージシステム１００の消費電力が削減される。
【０３００】
ストレージシステム１００の数を増やすことにより、より多くのデータの格納やＩ／Ｏコマンド処理が可能となる。しかし、ストレージシステム数の増加に伴い、消費電力が増加する。
【０３０１】
第五の実施形態では、ストレージシステム１００がアクセスの少ないＲＡＩＤグループ内のＬＤＥＶを、他のストレージシステム１００に移動し、ＲＡＩＤグループを休眠させる。この場合、以下のような課題の発生が考えられる。
【０３０２】
まず、他のストレージシステム１００にＬＤＥＶを移動した場合、ホスト２００からの該当ＬＤＥＶにアクセスするためのネットワーク経路が変化する。そのため、ホスト２００が移動したＬＤＥＶにアクセスできなくなる。
【０３０３】
また、他の実施形態と同様に、移動先のストレージシステム１００が高負荷になる恐れや、ＬＤＥＶの要求性能を満たせなくなる恐れがある。さらに、管理者が性能と省電力効果のトレードオフを設定できない。
【０３０４】
これらの課題を解決するために、第五の実施形態では以下のような工夫が施されている。
【０３０５】
ストレージシステム１００は、低負荷ＲＡＩＤグループのＬＤＥＶを他のストレージシステムに移動し、ＲＡＩＤグループを休眠させる。これらの処理は、ストレージシステム１００が、全てのストレージシステム内のＲＡＩＤグループを仮想的に自身のＲＡＩＤグループとみなし、第三の形態と同等の処理を行うことにより実現する。電力制御プログラムを実行するストレージシステム１００は、全てのＲＡＩＤグループが休眠する場合には、ストレージシステム１００を休眠させる。
【０３０６】
ただし、ＬＤＥＶを他のストレージシステム１００に移動する場合は、電力制御プログラムを実行するストレージシステム１００は、ホスト２００に、移動ＬＤＥＶの識別番号と移動先ストレージシステムの識別子を通知する。ホスト２００に、パス制御モジュール２００１が備えられ、パス制御モジュール２００１は、その通知を受信する。パス制御モジュール２００１は、その通知に応答して、移動したＬＤＥＶへのアクセスパスを更新する。なお、パス制御モジュール２００１は、例えば、ホスト２００内のプロセッサで実行されるコンピュータプログラムであり、ＬＤＥＶごとに、ＬＤＥＶ番号とＬＤＥＶが存在するストレージシステムの識別子とを表す情報（ホスト２００内のメモリなどの記憶資源に記憶される情報）を参照したり更新したりする。パス制御モジュール２００１は、ホスト２００内のプロセッサで実行されるアプリケーションプログラムからＬＤＥＶが指定されたＩ／Ｏ指示を受けた場合、そのＬＤＥＶが存在するストレージシステムがどれであるかを特定し、特定したストレージシステムに、そのＬＤＥＶを指定したＩ／Ｏコマンドを送信する。
【０３０７】
以下、第三の実施形態との相違点を主に説明を行い、共通点については説明を省略或いは簡略する。
【０３０８】
第五の実施形態のストレージシステム１００のプログラムおよび各種データを、図３０を用いて説明する。
【０３０９】
電力制御プログラム１１３３は、定期的（又は不定期的）に、他のストレージシステム１００に対し、ＬＤＥＶ構成情報１３３１、ＬＤＥＶ状態情報１３３０およびＲＡＩＤグループ情報１３３１を送信することを指示する。指示を受け取った他のストレージシステム上の電力制御プログラム１１３３は、電力制御処理を行うストレージシステム１００にそれらの情報を制御メモリモジュール１３２０から転送する。それらの情報の転送を受けたストレージシステム１００において、電力制御プログラム１１３３は、それらの情報を結合し、制御メモリモジュール１３２０上のＬＤＥＶ構成情報１３３１、ＬＤＥＶ状態情報１３３０およびＲＡＩＤグループ情報１３３１として格納する。
【０３１０】
ＬＤＥＶ移動プログラム１１３７は、他のストレージシステム１００と連携してストレージシステム１００間のＬＤＥＶ移動を実現する。
【０３１１】
電力制御を行うストレージシステム１００上の制御メモリモジュール１３２０に記憶されるＬＤＥＶ構成情報１３２５、ＬＤＥＶ状態情報１３３０及びＲＡＩＤグループ情報１３３１には、全てのストレージシステム１００に関する情報が含まれる。
【０３１２】
管理Ｉ／Ｆプログラム３０３１は、第三の実施形態の処理のほかに、他のストレージシステム１００についても休眠を許可するＲＡＩＤグループの管理画面をディスプレイ３０４０に表示する。また、管理Ｉ／Ｆプログラム３０３１は、管理画面を介して入力された情報を含んだコマンドを管理コマンドとしてプロセッサモジュール１１００に通知する。
【０３１３】
続いて、各種処理について、図３４から図３６を用いて説明した第三の実施形態と異なる点について説明する。
【０３１４】
電力制御プログラム１１３３は、仮想的にＲＡＩＤグループと認識された他のストレージシステム１００内のＲＡＩＤグループを、第三の実施形態のＲＡＩＤグループと同等に扱う。
【０３１５】
（図３４のＳ１１０８）電力制御プログラム１１３３は、ストレージシステム１００内の全てのＲＡＩＤグループが休眠する場合は、そのストレージシステム１００のコントローラ１０００に休眠指示をだす。
【０３１６】
（図３６のＳ１３０２）電力制御プログラム１１３３は、移動元のストレージシステム１００が休眠している場合、その移動元のストレージシステム１００に再起動を指示する。
【０３１７】
（図３４のＳ１１０６、及び、図３６のＳ１３０３）電力制御プログラム１１３３から指示を受けたＬＤＥＶ移動プログラム１１３７は、ホスト２００に、ＬＤＥＶ番号と移動先ストレージシステム１００のストレージシステム識別子とを通知する。ホスト２００上のパス制御モジュール２００１は、これらの通知を受け取った以降は、移動するＬＤＥＶへのアクセスパスを切り替える。例えば、パス制御モジュール２００１は、ホスト２００上のアプリケーションプログラム（図示せず）から或るＬＤＥＶを指定したＩ／Ｏ指示を受けた場合、受け取ったストレージシステム識別子が示す移動先ストレージシステム１００に、その或るＬＤＥＶを指定したＩ／Ｏコマンドを送信する。
【０３１８】
以上が、第五の実施形態についての説明である。なお、例えば、ストレージシステム１００に代えて、管理サーバ３００により電力制御が行われてもよい。
【０３１９】
＜第六の実施形態＞。
【０３２０】
例えば第一乃至第五の実施形態のうちの二以上を組み合わせることができる。そのため、例えば、一ストレージシステムにおいて、キャッシュ休眠とディスク休眠の両方を行うことが可能である。しかし、その場合、キャッシュ休眠およびディスク休眠間での実行タイミングの制御が必要となる。具体的には、例えば、キャッシュ休眠制御処理中に、ディスク休眠制御処理が発生した場合、キャッシュメモリモジュール１３４０上のディスク未書き込みのキャッシュデータ（記憶ディスクへ未書込みのデータ）のデステージとLDEV移動が同時に発生する可能性がある。ディスク未書き込みのキャッシュデータのデステージ先のLDEVが、移動するLDEVである場合、そのＬＤＥＶの移動中にデステージが行われ、移動先RAIDグループにおいて、ＬＤＥＶにキャッシュデータが反映されないおそれ（すなわち、キャッシュデータが消失するおそれ）が生じる。
【０３２１】
そこで、第六の実施形態では、キャッシュ休眠とディスク休眠のいずれか一方を先に行い、その先に行った処理が終了した後に、他方の処理が開始される。詳細を、図４１を参照して説明する（なお、図４１において、＜＞内の番号は、処理の順番を表している）。
【０３２２】
ディスク休眠とキャッシュ休眠がほぼ同時に発生したとする。ディスク休眠における移動対象のＬＤＥＶも、キャッシュ休眠におけるデステージ先ＬＤＥＶも、ＬＤＥＶ１´であるとする。
【０３２３】
電力制御プログラム１１３３は、キャッシュメモリモジュールからのダーティのキャッシュデータのデステージを停止し、ＬＤＥＶ移動プログラムにＬＤＥＶ１´の移動を実行させる。電力制御プログラム１１３３は、ＬＤＥＶ１´の移動の完了後、制御メモリモジュール１３２０に記憶されているＬＤＥＶ構成情報１３２５や、自身が動作するプロセッサモジュールにおけるＬＤＥＶ構成情報の複製１１３５を更新する。電力制御プログラム１１３３は、ＬＤＥＶ構成情報１３２５やＬＤＥＶ構成情報の複製１１３５の更新を完了した後に、停止していたデステージを開始する。その際、デステージ先は、移動先ＲＡＩＤグループにおけるＬＤＥＶ１´である。その後、電力制御プログラム１１３３は、共有メモリモジュールに記憶されているキャッシュテーブルや、自身が動作するプロセッサモジュールにおけるキャッシュテーブルの複製を更新し、処理を終了する。
【０３２４】
なお、上記の説明では、ＬＤＥＶの移動が先に行われる場合を例に採ったが、それに代えて、デステージが行われた後に、ＬＤＥＶの移動が開始されても良い。また、例えば、デステージとＬＤＥＶ移動のどちらを先に行うかは、例えば、ＬＤＥＶの移動先が、リモートのストレージシステムであるかどうかに応じて決定されても良い。例えば、ＬＤＥＶの移動先がリモートのストレージシステムである場合には、デステージが先に行われ、一方、ＬＤＥＶの移動先がローカルのストレージシステム（すなわち同一のストレージシステム）である場合には、ＬＤＥＶ移動が先に行われても良い。
【０３２５】
＜第七の実施形態＞。
【０３２６】
プロセッサ休眠、キャッシュ休眠及びディスク休眠の少なくとも二つが行われる場合、管理者は、各種休眠について、トレードオフ（例えば、低負荷閾値、低アクセス閾値、高負荷閾値、高アクセス閾値、省電力レベルなど）を設定しなければならない。これは、管理者によっては煩わしく感じられる可能性がある。
【０３２７】
そこで、第七の実施形態では、図４２に示す処理が行われる。
【０３２８】
すなわち、管理サーバ３００（又は管理用端末３０００）の記憶資源に、ポリシー管理テーブル３３１が記憶される。ポリシー管理テーブル３３１には、例えば図４３に示すように、ポリシー毎に、複数種類の休眠制御に使用される設定値の組合せが対応付けられている。例えば、ポリシー値「Ａ」には、プロセッサ休眠における省電力レベル「４」、高負荷閾値「８０％」及び低負荷閾値「３０％」と、キャッシュ休眠における高アクセス閾値「８０％」及び低アクセス閾値「３０％」と、ディスク休眠における休眠許可ＲＡＩＤグループ「１，２，３，４，５」、高負荷閾値「８０％」、低負荷閾値「３０％」及び警告設定「有効」とが対応付けられている。
【０３２９】
管理サーバ３００（又は管理用端末３０００）は、ポリシー管理テーブル３３１を編集したり管理者所望のポリシー値を入力するためのＧＵＩを提供する。管理者は、そのＧＵＩを介して、ポリシー値の入力やポリシー管理テーブル３３１の編集を行う。
【０３３０】
管理サーバ３００（又は管理用端末３０００）は、ＧＵＩを介してポリシー値が入力された場合、例えば管理サーバ３００（又は管理用端末３０００）のプロセッサで実行される設定制御プログラム（図示せず）が、そのポリシー値に対応した各種設定値をポリシー管理テーブル３３１から特定し、特定した各種設定値を含んだ管理コマンドを、プロセッサモジュール１１００に送信する。プロセッサモジュール１１００は、各実施例で述べた方法でこれらの管理コマンドを処理し、制御メモリモジュール１３２０に記憶されている電力制御情報１３２６やその他の情報（例えばＬＤＥＶ構成情報）を更新する。
【０３３１】
このように、この第七実施形態では、管理者は、複数のポリシー値のうちの所望のポリシー値を入力するだけで、複数種類の休眠制御における種々の設定を行うことができる。
【０３３２】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【０３３３】
【図１】本発明の第一実施形態に係るコンピュータシステムの構成図。
【図２】本発明の第一実施形態におけるフロントエンド（バックエンド）モジュールのハードウェア構成図。
【図３】本発明の第一実施形態におけるプロセッサモジュールのハードウェア構成図。
【図４】本発明の第一実施形態における共有メモリモジュールのハードウェア構成図。
【図５】本発明の第一実施形態における管理用端末のハードウェア構成図。
【図６】本発明の第一実施形態における記憶ディスク筐体のハードウェア構成図。
【図７】本発明の第一実施形態の概要図。
【図８】本発明の第一実施形態におけるプログラムおよび各種データを示す図。
【図９】本発明の第一実施形態におけるプロセッサモジュール構成情報の構成を示す図。
【図１０】本発明の第一実施形態におけるプロセッサモジュール常態情報の構成を示す図。
【図１１】本発明の第一実施形態におけるプロセッサ情報の構成を示す図。
【図１２】本発明の第一実施形態におけるＬＤＥＶ構成情報の構成を示す図。
【図１３】本発明の第一実施形態におけるキャッシュテーブルの構成を示す図。
【図１４】本発明の第一実施形態における電力制御情報の構成を示す図。
【図１５】本発明の第一実施形態におけるルーティング情報の構成を示す図。
【図１６】本発明の第一実施形態におけるプロセッサ休眠制御処理のフローチャート。
【図１７】本発明の第一実施形態におけるプロセッサ休眠方法選択処理のフローチャート。
【図１８】本発明の第一実施形態における移行可能プロセッサモジュール検索処理のフローチャート。
【図１９】本発明の第一実施形態におけるI/Oコマンド処理移行処理のフローチャート。
【図２０】本発明の第一実施形態におけるプロセッサモジュール高負荷時のプロセッサ起動制御処理のフローチャート。
【図２１】本発明の第一実施形態における障害回復処理のフローチャート。
【図２２】本発明の第二実施形態の概要図。
【図２３】本発明の第二実施形態におけるプログラムおよび各種データを示す図。
【図２４】本発明の第二実施形態におけるキャッシュメモリモジュール情報の構成を示す図。
【図２５】本発明の第二実施形態におけるメモリブロック情報の構成を示す図。
【図２６】本発明の第二実施形態におけるキャッシュメモリ休眠制御処理のフローチャート。
【図２７】本発明の第二実施形態におけるキャッシュメモリ休眠処理のフローチャート。
【図２８】本発明の第二実施形態におけるキャッシュメモリ起動制御処理のフローチャート。
【図２９】本発明の第三実施形態の概要図。
【図３０】本発明の第三実施形態におけるプログラムおよび各種データを示す図。
【図３１】本発明の第三実施形態におけるＬＤＥＶ状態情報の構成を示す図。
【図３２】本発明の第三実施形態におけるＲＡＩＤグループ情報の構成を示す図。
【図３３】本発明の第三実施形態における電力制御情報の構成を示す図。
【図３４】本発明の第三実施形態におけるディスク休眠制御処理のフローチャート。
【図３５】本発明の第三実施形態におけるＬＤＥＶ移動先検索処理のフローチャート。
【図３６】本発明の第三実施形態におけるディスク起動制御処理のフローチャート。
【図３７】本発明の第四実施形態に係るコンピュータシステムの構成図。
【図３８】本発明の第四実施形態の概要図。
【図３９】本発明の第五実施形態に係るコンピュータシステムの構成図。
【図４０】本発明の第五実施形態の概要図。
【図４１】本発明の第六実施形態の概要図。
【図４２】本発明の第七実施形態の概要図。
【図４３】本発明の第七実施形態におけるポリシー管理テーブルの構成を示す図。
【符号の説明】
【０３３４】
１００…ストレージシステム  ２００…ホスト  １１００…プロセッサモジュール  １３００…共有メモリモジュール  ２０００…記憶ディスク筐体
【図１】
2009009194.tif 000003
【図２】
2009009194.tif 000004
【図３】
2009009194.tif 000005
【図４】
2009009194.tif 000006
【図５】
2009009194.tif 000007
【図６】
2009009194.tif 000008
【図７】
2009009194.tif 000009
【図８】
2009009194.tif 000010
【図９】
2009009194.tif 000011
【図１０】
2009009194.tif 000012
【図１１】
2009009194.tif 000013
【図１２】
2009009194.tif 000014
【図１３】
2009009194.tif 000015
【図１４】
2009009194.tif 000016
【図１５】
2009009194.tif 000017
【図１６】
2009009194.tif 000018
【図１７】
2009009194.tif 000019
【図１８】
2009009194.tif 000020
【図１９】
2009009194.tif 000021
【図２０】
2009009194.tif 000022
【図２１】
2009009194.tif 000023
【図２２】
2009009194.tif 000024
【図２３】
2009009194.tif 000025
【図２４】
2009009194.tif 000026
【図２５】
2009009194.tif 000027
【図２６】
2009009194.tif 000028
【図２７】
2009009194.tif 000029
【図２８】
2009009194.tif 000030
【図２９】
2009009194.tif 000031
【図３０】
2009009194.tif 000032
【図３１】
2009009194.tif 000033
【図３２】
2009009194.tif 000034
【図３３】
2009009194.tif 000035
【図３４】
2009009194.tif 000036
【図３５】
2009009194.tif 000037
【図３６】
2009009194.tif 000038
【図３７】
2009009194.tif 000039
【図３８】
2009009194.tif 000040
【図３９】
2009009194.tif 000041
【図４０】
2009009194.tif 000042
【図４１】
2009009194.tif 000043
【図４２】
2009009194.tif 000044
【図４３】
2009009194.tif 000045