説明

ストレージ装置及びディスク装置の回転速度制御方法

【課題】リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更し省電力化を図る。
【解決手段】ストレージ装置は、コントローラ部101と、複数のディスク装置21で構成されるストレージ部103とを有する。コントローラ部101は、速度ステップ登録テーブル107、回転速度管理テーブル104、リクエストの処理状況を監視するプログラム105、リクエストの処理状況に従ってディスク装置の回転速度を制御するプログラム106を格納するメモリ110と、リクエスト処理状況監視プログラムを実行して、一定期間内のリクエストの処理状況を監視し、回転速度制御プログラムを実行して、リクエストの処理状況の変化に応じて、ディスク装置の回転速度を、登録されている速度ステップの範囲内で制御する制御装置120とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージサブシステム、サーバ及びディスク装置において、リクエストの処理状況に合わせてディスク装置の回転速度を変更し省電力化を図る技術に関する。
【背景技術】
【0002】
一般にストレージサブシステムやサーバでは、最大負荷に合わせてシステムを構築する。実際のシステム運用では最大負荷となることは少ないため、過剰仕様での運用となることが多く、余分な電力が消費されてしまうという問題があった。
【0003】
上記問題を解決するため、システムの運用状況に応じてディスク装置を制御する方法として以下の3つの方法が検討されている。1つはアイドル期間中にディスク装置を停止し、省電力化を図る方法である。この方法はアクセス頻度が低く、アイドル時間の長いアプリケーションに適している。2つ目は、低回転速度の省電力モード(リード・ライトは不可)をもつディスク装置で構成し、アイドル期間中に低回転速度の省電モードに移行し省電力化を図る方法である。この方法は、アクセス頻度が比較的高く、アイドル時間の短いアプリケーションに適している。最後の1つは、複数の回転速度でリード・ライト処理可能なディスク装置で構成し、ディスク装置に対するリクエストの処理状況を監視して負荷に対するディスク装置の性能の過不足を予測し、その結果に応じてディスクの回転速度を変更し省電力化を図る方法である。この方法は、アクセス頻度が高く、負荷が大きく変動するアプリケーションに適している。
【0004】
3つ目の省電力化の方法には例えば、一定のリクエスト数ごとに、リクエスト処理にかかる時間の平均時間を求め(以下、平均リクエスト処理時間と称す)、求めた平均リクエスト処理時間を直前に調べた平均リクエスト処理時間と比較し、それらの平均リクエスト処理時間との差分によりディスク装置の性能の過不足を予測し、その結果に基づいて、回転速度を変更する方法がある。このような回転速度制御は、非特許文献1に記載されている。
【0005】
【非特許文献1】S. Gurumurthi, A. Sivasubramaniam, M. Kandemir, H. Franke, ”DRPM: dynamic speed control for power management in server class disks”, Annual International Symposium on Computer Architecture, (USA), IEEE Computer Society ,2003,VOL 30, p.169 181
【発明の開示】
【発明が解決しようとする課題】
【0006】
非特許文献1の回転制御では、所定のリクエスト回数ごとに求めた平均リクエスト処理時間に基づき回転速度の制御をしているものの、リクエストの発行間隔が考慮されていないため、リクエストの処理状況の変化を速やかに反映して回転速度を制御できないという問題があった。たとえば、リクエストの発行間隔が非常に大きい場合やリクエストの発行間隔のばらつきが非常に大きい場合には、平均リクエスト処理時間を求めるのに時間がかかってしまう。
【0007】
上記問題点を考慮して本発明は、リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更可能にすることを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明のストレージ装置は、複数の回転速度でリード・ライト処理可能なディスク装置と、
ディスク装置で設定可能な速度ステップを登録する速度ステップ登録テーブルと、ディスク装置の現行の回転速度を登録する回転速度管理テーブルと、上位装置からのリクエストの処理状況を監視するリクエスト処理状況監視プログラムと、リクエストの処理状況に従ってディスク装置の回転速度を制御する回転速度制御プログラムとを格納するメモリと、
前記リクエスト処理状況監視プログラムを実行して、一定期間内のリクエストの処理状況を監視し、回転速度制御プログラムを実行して、リクエストの処理状況の変化に応じて、回転速度管理テーブルに登録されているディスク装置の回転速度を、速度ステップ登録テーブルに登録されている速度ステップの範囲内で制御する制御装置と、を有する。
【0009】
上記課題を解決するために、本発明のストレージ装置におけるディスク装置の回転速度制御方法は、任意の時点におけるディスク装置の未処理のリクエスト数を求めるステップと、最新のリクエスト処理終了時刻を保存するステップと、任意の時点から一定期間経過するまでに受領するリクエスト数をカウントするステップと、一定期間経過時点における未処理のリクエスト数を求めるステップと、前記各ステップの処理に基づいて、リクエストの処理状況の変化を検出するステップと、検出したリクエストの処理状況の変化に応じて、ディスク装置の回転速度を制御するステップと、を含む。
【発明の効果】
【0010】
本発明によれば、リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更できるので、省電力効果を高めることができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施例を図面により説明する。図1Aは本発明の実施例に係るストレージ装置の概略構成を示す機能ブロック図である。ストレージ装置は、コントローラ部101と、複数のディスク装置で構成されたRedundant Arrays of Inexpensive Disks (RAID)のグループ102で構成されるストレージ部103より成る。コントローラ部101は、RAID グループ102を構成するディスク装置の回転速度を制御する。なお、RAID グループ102は、物理的な制御単位を示している。また、コントローラ部101は、回転速度管理テーブル104、リクエスト処理状況監視部105、回転速度制御部106、速度ステップ登録テーブル107より成る。
【0012】
図1Bに、図1Aに示した機能を実現するハードウェア構成を示す。リクエスト処理状況監視部105と回転速度制御部106はマイクロプログラムであり、これらのマイクロプログラムは、回転速度管理テーブル104および速度ステップ登録テーブル107とともにメモリ110に格納されており、マイクロプロセッサ等で構成される制御装置120にて実行されるものである。
【0013】
図2にRAIDグループ102の構成例を示す。RAIDグループ102は、複数の磁気ディスク装置(HDD)21で構成される。なお、本実施例のストレージ装置では、HDD21は複数の回転速度でリード・ライト処理可能なHDDで構成する。またRAIDグループ102は、単数または複数の論理空間(Logical Unit:LU)22で構成される。図2の例では、RAIDグループ102が2つのLU22により構成されている。
【0014】
図3はRAID5で構成した場合のLU31の構成例を示している。RAID5で構成した場合、ディスク上の物理空間は、ストライプ32といわれるデータ単位で構成される。このストライプをRAIDグループ102内で順に配置してLU31を構成する。なお、このストライプ32には、保存するデータだけではなく、HDDが故障した場合にデータを復元するためのデータ(このデータをパリティデータという)33も記録する。図3において数値を記述したストライプ32は保存データを示し、「P」はパリティデータを示している。
【0015】
図4は、複数の回転速度でリード・ライト処理可能なディスク装置21の回転速度の設定例である。ディスク装置21は、リクエストの処理に際し、この回転速度のうち、1つの回転速度を選択して実行する。また、ストレージ装置は、図4に示した回転速度のうち、実際にリクエスト処理を実行している回転速度を図1の回転速度管理テーブル104に登録する。また、ディスク装置21で設定可能な速度ステップは、システム構築時、あらかじめ速度ステップ登録テーブル107に登録しておく。図4の例は、2500rpmを下限として、2500rpmごとに5段階の回転速度を設定した場合の例を示している。ストレージ装置は、リクエスト処理状況監視部105においてリクエストの処理状況を調べ、回転速度制御部106においてその状況に応じた回転速度を求めると、RAID グループ102を構成する各ディスク装置21の回転速度を変更する。
【0016】
図5に、リクエスト処理状況監視部の処理のフローチャートを示す。リクエスト処理状況監視部105では、Time(A)における未処理のリクエスト数を求める(ステップ501)。次に、最新のリクエスト処理終了時刻を保存する(ステップ502)。次に、Time(A)から一定期間ΔTが経過するまでに受領するリクエストの数をカウントする(ステップ503)。次にTime(A+ΔT)における未処理のリクエスト数を求める(ステップ504)。Time(A+ΔT)における未処理のリクエスト数がなければ(ステップ505)、ディスク装置の空き時間を求める(ステップ506)。空き時間は、Time(A+ΔT)から最新リクエスト処理終了時刻を差し引くことにより求めることが可能である。次に空き時間のΔTに対する割合((以下では、空き時間の割合と表記する)を求める(ステップ507)。空き時間の割合は、以下の式で求めることができる。
空き時間の割合=空き時間/ΔT
ステップ505に戻り、Time(A+ΔT)における未処理のリクエスト数があれば、リクエストの未消化率を求める(ステップ508)。リクエストの未消化率は、以下の式で求めることができる。
リクエストの未消化率=Time(A+ΔT)における未処理のリクエスト数/(Time(A)における未処理のリクエスト数+ΔT中に受領したリクエストの総数)
回転速度制御部(106)では、上記で求めた、空き時間の割合またはリクエストの未消化率により、ディスク装置21の回転速度を決定する。なお、本実施例のストレージ装置では、RAIDグループ102ごとにリクエストの処理状況の監視を行う。
【0017】
図6に空き時間の割合により回転速度を下げる処理のフローチャートを示す。本実施例によるストレージ装置は、空き時間の割合が5%より大きく、25%以下となるか調べ(ステップ601)、5%より大きく、25%以下となる場合には、回転速度を現行の回転速度より1段下げる(ステップ602)。また、ステップ601に戻り、空き時間の割り害が5%より大きく、25%以下とならない場合には、さらに空き時間の割合が25%より大きく、50%以下となるか調べる(ステップ603)。25%より大きく、50%以下となる場合には、回転速度を現行の回転速度より2段階下げる(ステップ604)。また、ステップ603に戻り、空き時間の割合が25%より大きく、50%以下とならない場合には、さらに空き時間の割合が、50%より大きく、75%以下となるか調べる(ステップ605)。その結果、50%より大きく、75%以下となる場合には、回転速度を現行の回転速度よりさ3段階下げる(ステップステップ606)。ステップ605に戻り、50%より大きく、75%以下とならない場合には、空き時間の割合>75%となるか調べる(ステップ607)。空き時間の割合>75%となる場合には、現行の回転速度より4段階下げる(ステップ608)。ステップ607に戻り、空き時間の割合>75%とならない場合には、現行の回転速度を維持する。
【0018】
図11に、図6の処理により求めた相対的な速度段階数によって、変更する回転速度を求める処理のフローチャートを示す。ストレージ装置は、回転速度管理テーブル104より、処理の対象となるRAIDグループ102の現行の回転速度を求める(ステップ1101)。次に、速度ステップ登録テーブル107を参照して、現行の回転速度から図6の処理で求めた相対速度段階の回転速度を求める(ステップ1102)。求める相対速度段階が、速度ステップ登録テーブル107の登録範囲内であれば(ステップ1103)、求めた回転速度に変更する(ステップ1104)。ステップ1103に戻り、速度ステップ登録テーブル107の登録範囲内になければ、登録範囲の最小の回転速度に変更する(ステップ1105)。
【0019】
たとえば、図4に示すような回転速度をもつディスク装置において、現行の回転速度が7500rpmである場合、回転速度制御部で決定した結果が3段階下となっても7500rpmから下げられる回転速度は2段階下までなので、2500rpmに回転速度を変更する。なお、回転速度を変更した場合は、変更後の回転速度を、回転速度管理テーブル104に再登録する。
【0020】
図7に現行の回転速度より、2段階回転速度を下げる場合の例を示す。ストレージ装置を構成するディスク装置21が、図4で示した5段階の回転速度を持つ場合において、現行の回転速度71が10000rpmであり、その回転速度より2段階、回転速度を下げる場合は、5000rpm(72)に回転速度を変更することとなる。なお、現行の回転速度71は、回転速度管理テーブル104を使って調べることが可能である。
【0021】
図8にリクエストの未処理の状況に応じて回転速度を上げる処理のフローチャートを示す。ストレージ装置は、リクエスト未消化率が5%より大きく、25%以下となるか調べ(ステップ801)、5%より大きく、25%以下となる場合には、回転速度を現行の回転速度より1段上げる(ステップ802)。また、ステップ801に戻り、5%より大きく、25%以下とならない場合には、リクエスト未消化率が25%より大きく、50%以下となるか調べ(ステップ803)、25%より大きく、50%以下となる場合には、回転速度を現行の回転速度より2段階上げる(ステップ804)。ステップ803に戻り、リクエスト未消化率が25%より大きく、50%以下とならない場合には、リクエスト未消化率が50%より大きく、75%以下となるか調べる(ステップ805)。リクエスト未消化率が50%より大きく、75%以下となれば、回転速度を現行の回転速度より3段階上げる(ステップ806)。ステップ805に戻り、リクエスト未消化率が50%より大きく、75%以下とならない場合には、リクエスト未消化率>75%となるか調べる(ステップ807)。その結果、リクエスト未消化率>75%となる場合には、現行段階より回転速度を4段階上げる(ステップ808)。また、ステップ807において、リクエスト未消化率>75%とならない場合には、現行の回転速度を維持する。
【0022】
図12に、図8の処理により求めた相対的な速度段階数によって、変更する回転速度を求める処理のフローチャートを示す。ストレージ装置は、回転速度管理テーブル104より、処理の対象となるRAIDグループ102の現行の回転速度を求める(ステップ1201)。次に、速度ステップ登録テーブル107を参照して、現行の回転速度から図8の処理で求めた相対速度段階の回転速度を求める(ステップ1202)。求める相対速度段階が、速度ステップ登録テーブル107の登録範囲内であれば(ステップ1203)、求めた回転速度に変更する(ステップ1204)。ステップ1203に戻り、速度ステップ登録テーブル107の登録範囲内になければ、登録範囲の最大の回転速度に変更する(ステップ1205)。
【0023】
たとえば、図4に示すような回転速度をもつディスク装置において、現行の回転速度が7500rpmである場合、回転速度制御部で設定した結果が3段階上となっても7500rpmから上げられる回転速度は2段階上までであるので12500rpmに回転速度を変更する。なお、回転速度を変更した場合は、変更後の回転速度を、回転速度管理テーブル104に再登録する。
【0024】
図9に現行の回転速度より、2段階回転速度を上げる場合の例を示す。ストレージ装置を構成するディスク装置が図4で示した5段階の回転速度を持つ場合、現行の回転速度91を5000rpmであるとすると、2段階回転速度上げた場合は、10000rpm(92)に回転速度を変更することとなる。なお、現行の回転速度91は、回転速度管理テーブル104を使って調べることが可能である。
【0025】
上記の回転速度の変更方法は、RAIDグループ102ごとに実施するのが望ましい。ストレージ装置が複数のRAIDグループ102で構成される場合は、上記回転速度の制御をRAIDグループ102ごとに実施することになる。
【0026】
図10にリクエストの処理状況を監視するタイミングを制御する処理のフローチャートを示す。回転速度の変更した直後は、変速によりリクエストが滞りやすくなるため、回転速度の変更後、処理が安定してからリクエストの処理状況の監視を開始する。
本実施例のストレージ装置は、ディスク装置の回転速度変更後、T秒が経過したか調べ(ステップ1001)、T秒経過した場合にリクエスト処理状況の監視を開始する(処理1002)。ステップ1001に戻り、T秒経過していなければ処理の先頭に戻る。
【0027】
以上の説明のとおり、本発明の実施例によれば、一定間隔ごとにリクエストの処理状況を監視することで、リクエストの処理状況に応じて速やかにディスク装置の回転速度を変更することが可能となり、ストレージ装置の省電力効果を高めることができる。特にリクエストの発行間隔にばらつきのあるアプリケーションに有効である。
【図面の簡単な説明】
【0028】
【図1A】本発明の実施例によるストレージ装置の機能ブロック図である。
【図1B】本発明の実施例によるストレージ装置のハードウェア構成図である。
【図2】RAIDグループの構成例を示す図である。
【図3】RAIDグループ内のデータフォーマットの例を示す図である。
【図4】ディスク装置の回転速度の設定例を示す図である。
【図5】リクエスト処理状況監視部の処理を示すフローチャートである。
【図6】回転速度を下げる場合の相対速度段階を求める処理を示すフローチャートである。
【図7】回転速度を下げる場合の変速動作の例を示す図である。
【図8】回転速度を上げる場合の相対速度段階を求める処理を示すフローチャートである。
【図9】回転速度を上げる場合の変速動作の例を示す図である。
【図10】リクエスト処理状況監視処理の開始のタイミングを制御するフローチャートである。
【図11】回転速度を下げる場合の処理を示すフローチャートである。
【図12】回転速度を上げる場合の処理を示すフローチャートである。
【符号の説明】
【0029】
21…ディスク装置、
22…LU(Logical Unit)、
31…LU,
32…ストライプ、
33…パリティデータ、
71,91…現行の回転速度、
72,92…変更後回転速度、
101…コントローラ部、
102…RAIDグループ、
103…ストレージ部、
104…回転速度管理テーブル、
105…リクエスト処理状況監視部(プログラム)、
106…回転速度制御部(プログラム)、
107…速度ステップ登録テーブル、
110…メモリ、
120…制御装置。

【特許請求の範囲】
【請求項1】
複数の回転速度でリード・ライト処理可能なディスク装置と、
前記ディスク装置で設定可能な速度ステップを登録する第1のテーブルと、前記ディスク装置の現行の回転速度を登録する第2のテーブルと、上位装置からのリクエストの処理状況を監視する第1のプログラムと、リクエストの処理状況に従って前記ディスク装置の回転速度を制御する第2のプログラムとを格納するメモリと、
前記第1のプログラムを実行して、一定期間内のリクエストの処理状況を監視し、前記第2のプログラムを実行して、リクエストの処理状況の変化に応じて、前記第2のテーブルに登録されている前記ディスク装置の回転速度を、前記第1のテーブルに登録されている速度ステップの範囲内で制御する制御装置と、を有することを特徴とするストレージ装置。
【請求項2】
前記制御装置は、前記第1のプログラムの実行に際し、一定期間経過後に未処理のリクエストが残っている場合、一定期間内のリクエストの総数に占める未処理のリクエスト数の割合を算出し、この割合に応じて前記ディスク装置の回転速度を上げるように制御することを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記ディスク装置の回転速度を上げる場合、当該ディスク装置の現行の速度を前記
第2のテーブルから求め、前記第1のテーブルを参照して現行の速度からの前記割合に応じた速度段階数を求め、求めた速度段階数分の変更を行うことを特徴とする請求項2記載のストレージ装置。
【請求項4】
前記制御装置は、前記第1のプログラムの実行に際し、一定期間経過後に未処理のリクエストが残っていない場合、一定期間内において前記ディスク装置で処理が行われていない期間を求め、この処理が行われていない期間が前記一定期間に占める割合を算出し、この割合に応じて前記ディスク装置の回転速度を下げるように制御することを特徴とする請求項1記載のストレージ装置。
【請求項5】
前記ディスク装置の回転速度を下げる場合、当該ディスク装置の現行の速度を前記
第2のテーブルから求め、前記第1のテーブルを参照して現行の速度からの前記割合に応じた速度段階数を求め、求めた速度段階数分の変更を行うことを特徴とする請求項4記載のストレージ装置。
【請求項6】
前記変更後の回転速度を前記第2のテーブルに登録することを特徴とする請求項3または5記載のストレージ装置。
【請求項7】
前記回転速度の変更後、所定の時間が経過してからリクエスト処理状況の監視を開始することを特徴とする請求項2または4記載のストレージ装置。
【請求項8】
任意の時点におけるディスク装置の未処理のリクエスト数を求めるステップと、
最新のリクエスト処理終了時刻を保存するステップと、
前記任意の時点から一定期間経過するまでに受領するリクエスト数をカウントするステップと、
前記一定期間経過時点における未処理のリクエスト数を求めるステップと、
前記各ステップの処理に基づいて、リクエストの処理状況の変化を検出するステップと、
前記ステップにおいて検出したリクエストの処理状況の変化に応じて、前記ディスク装置の回転速度を制御するステップと、を含むことを特徴とするストレージ装置におけるディスク装置の回転速度制御方法。
【請求項9】
前記一定期間経過後に未処理のリクエストが残っている場合、一定期間内のリクエストの総数に占める未処理のリクエスト数の割合を算出し、この割合に応じて前記ディスク装置の回転速度を上げることを特徴とする請求項8記載のストレージ装置におけるディスク装置の回転速度制御方法。
【請求項10】
前記一定期間経過時点における未処理のリクエスト数が無い場合、一定期間経過時点の時刻から前記最新のリクエスト処理終了時刻を差し引くことにより、前記ディスク装置の空き時間を求め、該空き時間の前記一定期間に対する割合を算出し、この割合に応じて前記ディスク装置の回転速度を下げることを特徴とする請求項8記載のストレージ装置におけるディスク装置の回転速度制御方法。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2008−310898(P2008−310898A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−158903(P2007−158903)
【出願日】平成19年6月15日(2007.6.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】