(57)【要約】【課題】リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更し省電力化を図る。【解決手段】ストレージ装置は、コントローラ部１０１と、複数のディスク装置２１で構成されるストレージ部１０３とを有する。コントローラ部１０１は、速度ステップ登録テーブル１０７、回転速度管理テーブル１０４、リクエストの処理状況を監視するプログラム１０５、リクエストの処理状況に従ってディスク装置の回転速度を制御するプログラム１０６を格納するメモリ１１０と、リクエスト処理状況監視プログラムを実行して、一定期間内のリクエストの処理状況を監視し、回転速度制御プログラムを実行して、リクエストの処理状況の変化に応じて、ディスク装置の回転速度を、登録されている速度ステップの範囲内で制御する制御装置１２０とを有する。【選択図】図１Ｂ
2008310898.tif 000002
【特許請求の範囲】
【請求項１】
複数の回転速度でリード・ライト処理可能なディスク装置と、
前記ディスク装置で設定可能な速度ステップを登録する第１のテーブルと、前記ディスク装置の現行の回転速度を登録する第２のテーブルと、上位装置からのリクエストの処理状況を監視する第１のプログラムと、リクエストの処理状況に従って前記ディスク装置の回転速度を制御する第２のプログラムとを格納するメモリと、
前記第１のプログラムを実行して、一定期間内のリクエストの処理状況を監視し、前記第２のプログラムを実行して、リクエストの処理状況の変化に応じて、前記第２のテーブルに登録されている前記ディスク装置の回転速度を、前記第１のテーブルに登録されている速度ステップの範囲内で制御する制御装置と、を有することを特徴とするストレージ装置。
【請求項２】
前記制御装置は、前記第１のプログラムの実行に際し、一定期間経過後に未処理のリクエストが残っている場合、一定期間内のリクエストの総数に占める未処理のリクエスト数の割合を算出し、この割合に応じて前記ディスク装置の回転速度を上げるように制御することを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記ディスク装置の回転速度を上げる場合、当該ディスク装置の現行の速度を前記
第２のテーブルから求め、前記第１のテーブルを参照して現行の速度からの前記割合に応じた速度段階数を求め、求めた速度段階数分の変更を行うことを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記制御装置は、前記第１のプログラムの実行に際し、一定期間経過後に未処理のリクエストが残っていない場合、一定期間内において前記ディスク装置で処理が行われていない期間を求め、この処理が行われていない期間が前記一定期間に占める割合を算出し、この割合に応じて前記ディスク装置の回転速度を下げるように制御することを特徴とする請求項１記載のストレージ装置。
【請求項５】
前記ディスク装置の回転速度を下げる場合、当該ディスク装置の現行の速度を前記
第２のテーブルから求め、前記第１のテーブルを参照して現行の速度からの前記割合に応じた速度段階数を求め、求めた速度段階数分の変更を行うことを特徴とする請求項４記載のストレージ装置。
【請求項６】
前記変更後の回転速度を前記第２のテーブルに登録することを特徴とする請求項３または５記載のストレージ装置。
【請求項７】
前記回転速度の変更後、所定の時間が経過してからリクエスト処理状況の監視を開始することを特徴とする請求項２または４記載のストレージ装置。
【請求項８】
任意の時点におけるディスク装置の未処理のリクエスト数を求めるステップと、
最新のリクエスト処理終了時刻を保存するステップと、
前記任意の時点から一定期間経過するまでに受領するリクエスト数をカウントするステップと、
前記一定期間経過時点における未処理のリクエスト数を求めるステップと、
前記各ステップの処理に基づいて、リクエストの処理状況の変化を検出するステップと、
前記ステップにおいて検出したリクエストの処理状況の変化に応じて、前記ディスク装置の回転速度を制御するステップと、を含むことを特徴とするストレージ装置におけるディスク装置の回転速度制御方法。
【請求項９】
前記一定期間経過後に未処理のリクエストが残っている場合、一定期間内のリクエストの総数に占める未処理のリクエスト数の割合を算出し、この割合に応じて前記ディスク装置の回転速度を上げることを特徴とする請求項８記載のストレージ装置におけるディスク装置の回転速度制御方法。
【請求項１０】
前記一定期間経過時点における未処理のリクエスト数が無い場合、一定期間経過時点の時刻から前記最新のリクエスト処理終了時刻を差し引くことにより、前記ディスク装置の空き時間を求め、該空き時間の前記一定期間に対する割合を算出し、この割合に応じて前記ディスク装置の回転速度を下げることを特徴とする請求項８記載のストレージ装置におけるディスク装置の回転速度制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージサブシステム、サーバ及びディスク装置において、リクエストの処理状況に合わせてディスク装置の回転速度を変更し省電力化を図る技術に関する。
【背景技術】
【０００２】
一般にストレージサブシステムやサーバでは、最大負荷に合わせてシステムを構築する。実際のシステム運用では最大負荷となることは少ないため、過剰仕様での運用となることが多く、余分な電力が消費されてしまうという問題があった。
【０００３】
上記問題を解決するため、システムの運用状況に応じてディスク装置を制御する方法として以下の３つの方法が検討されている。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
【発明の開示】
【発明が解決しようとする課題】
【０００６】
非特許文献１の回転制御では、所定のリクエスト回数ごとに求めた平均リクエスト処理時間に基づき回転速度の制御をしているものの、リクエストの発行間隔が考慮されていないため、リクエストの処理状況の変化を速やかに反映して回転速度を制御できないという問題があった。たとえば、リクエストの発行間隔が非常に大きい場合やリクエストの発行間隔のばらつきが非常に大きい場合には、平均リクエスト処理時間を求めるのに時間がかかってしまう。
【０００７】
上記問題点を考慮して本発明は、リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明のストレージ装置は、複数の回転速度でリード・ライト処理可能なディスク装置と、
ディスク装置で設定可能な速度ステップを登録する速度ステップ登録テーブルと、ディスク装置の現行の回転速度を登録する回転速度管理テーブルと、上位装置からのリクエストの処理状況を監視するリクエスト処理状況監視プログラムと、リクエストの処理状況に従ってディスク装置の回転速度を制御する回転速度制御プログラムとを格納するメモリと、
前記リクエスト処理状況監視プログラムを実行して、一定期間内のリクエストの処理状況を監視し、回転速度制御プログラムを実行して、リクエストの処理状況の変化に応じて、回転速度管理テーブルに登録されているディスク装置の回転速度を、速度ステップ登録テーブルに登録されている速度ステップの範囲内で制御する制御装置と、を有する。
【０００９】
上記課題を解決するために、本発明のストレージ装置におけるディスク装置の回転速度制御方法は、任意の時点におけるディスク装置の未処理のリクエスト数を求めるステップと、最新のリクエスト処理終了時刻を保存するステップと、任意の時点から一定期間経過するまでに受領するリクエスト数をカウントするステップと、一定期間経過時点における未処理のリクエスト数を求めるステップと、前記各ステップの処理に基づいて、リクエストの処理状況の変化を検出するステップと、検出したリクエストの処理状況の変化に応じて、ディスク装置の回転速度を制御するステップと、を含む。
【発明の効果】
【００１０】
本発明によれば、リクエストの処理状況の変化を速やかに検出し、その変化に応じてディスク装置の回転速度を変更できるので、省電力効果を高めることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を図面により説明する。図１Ａは本発明の実施例に係るストレージ装置の概略構成を示す機能ブロック図である。ストレージ装置は、コントローラ部１０１と、複数のディスク装置で構成されたRedundant Arrays of Inexpensive Disks （RAID）のグループ１０２で構成されるストレージ部１０３より成る。コントローラ部１０１は、RAID グループ１０２を構成するディスク装置の回転速度を制御する。なお、RAID グループ１０２は、物理的な制御単位を示している。また、コントローラ部１０１は、回転速度管理テーブル１０４、リクエスト処理状況監視部１０５、回転速度制御部１０６、速度ステップ登録テーブル１０７より成る。
【００１２】
図１Ｂに、図１Ａに示した機能を実現するハードウェア構成を示す。リクエスト処理状況監視部１０５と回転速度制御部１０６はマイクロプログラムであり、これらのマイクロプログラムは、回転速度管理テーブル１０４および速度ステップ登録テーブル１０７とともにメモリ１１０に格納されており、マイクロプロセッサ等で構成される制御装置１２０にて実行されるものである。
【００１３】
図２にRAIDグループ１０２の構成例を示す。RAIDグループ１０２は、複数の磁気ディスク装置（HDD）２１で構成される。なお、本実施例のストレージ装置では、HDD２１は複数の回転速度でリード・ライト処理可能なHDDで構成する。またRAIDグループ１０２は、単数または複数の論理空間（Logical Unit：LU）２２で構成される。図２の例では、RAIDグループ１０２が２つのLU２２により構成されている。
【００１４】
図３はRAID５で構成した場合のＬＵ３１の構成例を示している。RAID５で構成した場合、ディスク上の物理空間は、ストライプ３２といわれるデータ単位で構成される。このストライプをRAIDグループ１０２内で順に配置してLU３１を構成する。なお、このストライプ３２には、保存するデータだけではなく、HDDが故障した場合にデータを復元するためのデータ（このデータをパリティデータという）３３も記録する。図３において数値を記述したストライプ３２は保存データを示し、「P」はパリティデータを示している。
【００１５】
図４は、複数の回転速度でリード・ライト処理可能なディスク装置２１の回転速度の設定例である。ディスク装置２１は、リクエストの処理に際し、この回転速度のうち、１つの回転速度を選択して実行する。また、ストレージ装置は、図４に示した回転速度のうち、実際にリクエスト処理を実行している回転速度を図１の回転速度管理テーブル１０４に登録する。また、ディスク装置２１で設定可能な速度ステップは、システム構築時、あらかじめ速度ステップ登録テーブル１０７に登録しておく。図４の例は、2500rpmを下限として、2500rpmごとに５段階の回転速度を設定した場合の例を示している。ストレージ装置は、リクエスト処理状況監視部１０５においてリクエストの処理状況を調べ、回転速度制御部１０６においてその状況に応じた回転速度を求めると、RAID グループ１０２を構成する各ディスク装置２１の回転速度を変更する。
【００１６】
図５に、リクエスト処理状況監視部の処理のフローチャートを示す。リクエスト処理状況監視部１０５では、Time(A)における未処理のリクエスト数を求める（ステップ５０１）。次に、最新のリクエスト処理終了時刻を保存する（ステップ５０２）。次に、Time(A)から一定期間ΔＴが経過するまでに受領するリクエストの数をカウントする（ステップ５０３）。次にTime(A+ΔＴ)における未処理のリクエスト数を求める（ステップ５０４）。Time(A+ΔT)における未処理のリクエスト数がなければ（ステップ５０５）、ディスク装置の空き時間を求める（ステップ５０６）。空き時間は、Time(A＋ΔT)から最新リクエスト処理終了時刻を差し引くことにより求めることが可能である。次に空き時間のΔTに対する割合（（以下では、空き時間の割合と表記する）を求める（ステップ５０７）。空き時間の割合は、以下の式で求めることができる。
空き時間の割合＝空き時間／ΔＴ
ステップ５０５に戻り、Time(A+ΔT)における未処理のリクエスト数があれば、リクエストの未消化率を求める（ステップ５０８）。リクエストの未消化率は、以下の式で求めることができる。
リクエストの未消化率＝Time(A+ΔＴ)における未処理のリクエスト数／（Time(A)における未処理のリクエスト数＋ΔT中に受領したリクエストの総数）
回転速度制御部（１０６）では、上記で求めた、空き時間の割合またはリクエストの未消化率により、ディスク装置２１の回転速度を決定する。なお、本実施例のストレージ装置では、RAIDグループ１０２ごとにリクエストの処理状況の監視を行う。
【００１７】
図６に空き時間の割合により回転速度を下げる処理のフローチャートを示す。本実施例によるストレージ装置は、空き時間の割合が５%より大きく、25％以下となるか調べ（ステップ６０１）、５%より大きく、25％以下となる場合には、回転速度を現行の回転速度より１段下げる（ステップ６０２）。また、ステップ６０１に戻り、空き時間の割り害が５%より大きく、25％以下とならない場合には、さらに空き時間の割合が25％より大きく、50％以下となるか調べる（ステップ６０３）。25％より大きく、50％以下となる場合には、回転速度を現行の回転速度より２段階下げる（ステップ６０４）。また、ステップ６０３に戻り、空き時間の割合が25％より大きく、50％以下とならない場合には、さらに空き時間の割合が、50％より大きく、75％以下となるか調べる（ステップ６０５）。その結果、50％より大きく、75％以下となる場合には、回転速度を現行の回転速度よりさ３段階下げる（ステップステップ６０６）。ステップ６０５に戻り、50％より大きく、75％以下とならない場合には、空き時間の割合＞75％となるか調べる（ステップ６０７）。空き時間の割合＞75％となる場合には、現行の回転速度より４段階下げる（ステップ６０８）。ステップ６０７に戻り、空き時間の割合＞75％とならない場合には、現行の回転速度を維持する。
【００１８】
図１１に、図６の処理により求めた相対的な速度段階数によって、変更する回転速度を求める処理のフローチャートを示す。ストレージ装置は、回転速度管理テーブル１０４より、処理の対象となるRAIDグループ１０２の現行の回転速度を求める（ステップ１１０１）。次に、速度ステップ登録テーブル１０７を参照して、現行の回転速度から図６の処理で求めた相対速度段階の回転速度を求める（ステップ１１０２）。求める相対速度段階が、速度ステップ登録テーブル１０７の登録範囲内であれば（ステップ１１０３）、求めた回転速度に変更する（ステップ１１０４）。ステップ１１０３に戻り、速度ステップ登録テーブル１０７の登録範囲内になければ、登録範囲の最小の回転速度に変更する（ステップ１１０５）。
【００１９】
たとえば、図４に示すような回転速度をもつディスク装置において、現行の回転速度が7500rpmである場合、回転速度制御部で決定した結果が３段階下となっても7500rpmから下げられる回転速度は２段階下までなので、2500rpmに回転速度を変更する。なお、回転速度を変更した場合は、変更後の回転速度を、回転速度管理テーブル１０４に再登録する。
【００２０】
図７に現行の回転速度より、２段階回転速度を下げる場合の例を示す。ストレージ装置を構成するディスク装置２１が、図４で示した５段階の回転速度を持つ場合において、現行の回転速度７１が10000rpmであり、その回転速度より２段階、回転速度を下げる場合は、5000rpm（７２）に回転速度を変更することとなる。なお、現行の回転速度７１は、回転速度管理テーブル１０４を使って調べることが可能である。
【００２１】
図８にリクエストの未処理の状況に応じて回転速度を上げる処理のフローチャートを示す。ストレージ装置は、リクエスト未消化率が５%より大きく、25％以下となるか調べ（ステップ８０１）、５%より大きく、25％以下となる場合には、回転速度を現行の回転速度より１段上げる（ステップ８０２）。また、ステップ８０１に戻り、５%より大きく、25％以下とならない場合には、リクエスト未消化率が25％より大きく、50％以下となるか調べ（ステップ８０３）、25％より大きく、50％以下となる場合には、回転速度を現行の回転速度より２段階上げる（ステップ８０４）。ステップ８０３に戻り、リクエスト未消化率が25％より大きく、50％以下とならない場合には、リクエスト未消化率が50％より大きく、75％以下となるか調べる（ステップ８０５）。リクエスト未消化率が50％より大きく、75％以下となれば、回転速度を現行の回転速度より３段階上げる（ステップ８０６）。ステップ８０５に戻り、リクエスト未消化率が50％より大きく、75％以下とならない場合には、リクエスト未消化率＞75％となるか調べる（ステップ８０７）。その結果、リクエスト未消化率＞75％となる場合には、現行段階より回転速度を４段階上げる（ステップ８０８）。また、ステップ８０７において、リクエスト未消化率＞75％とならない場合には、現行の回転速度を維持する。
【００２２】
図１２に、図８の処理により求めた相対的な速度段階数によって、変更する回転速度を求める処理のフローチャートを示す。ストレージ装置は、回転速度管理テーブル１０４より、処理の対象となるRAIDグループ１０２の現行の回転速度を求める（ステップ１２０１）。次に、速度ステップ登録テーブル１０７を参照して、現行の回転速度から図８の処理で求めた相対速度段階の回転速度を求める（ステップ１２０２）。求める相対速度段階が、速度ステップ登録テーブル１０７の登録範囲内であれば（ステップ１２０３）、求めた回転速度に変更する（ステップ１２０４）。ステップ１２０３に戻り、速度ステップ登録テーブル１０７の登録範囲内になければ、登録範囲の最大の回転速度に変更する（ステップ１２０５）。
【００２３】
たとえば、図４に示すような回転速度をもつディスク装置において、現行の回転速度が7500rpmである場合、回転速度制御部で設定した結果が３段階上となっても7500rpmから上げられる回転速度は２段階上までであるので12500rpmに回転速度を変更する。なお、回転速度を変更した場合は、変更後の回転速度を、回転速度管理テーブル１０４に再登録する。
【００２４】
図９に現行の回転速度より、２段階回転速度を上げる場合の例を示す。ストレージ装置を構成するディスク装置が図４で示した５段階の回転速度を持つ場合、現行の回転速度９１を5000rpmであるとすると、２段階回転速度上げた場合は、10000rpm（９２）に回転速度を変更することとなる。なお、現行の回転速度９１は、回転速度管理テーブル１０４を使って調べることが可能である。
【００２５】
上記の回転速度の変更方法は、RAIDグループ１０２ごとに実施するのが望ましい。ストレージ装置が複数のRAIDグループ１０２で構成される場合は、上記回転速度の制御をRAIDグループ１０２ごとに実施することになる。
【００２６】
図１０にリクエストの処理状況を監視するタイミングを制御する処理のフローチャートを示す。回転速度の変更した直後は、変速によりリクエストが滞りやすくなるため、回転速度の変更後、処理が安定してからリクエストの処理状況の監視を開始する。
本実施例のストレージ装置は、ディスク装置の回転速度変更後、T秒が経過したか調べ（ステップ１００１）、Ｔ秒経過した場合にリクエスト処理状況の監視を開始する（処理１００２）。ステップ１００１に戻り、Ｔ秒経過していなければ処理の先頭に戻る。
【００２７】
以上の説明のとおり、本発明の実施例によれば、一定間隔ごとにリクエストの処理状況を監視することで、リクエストの処理状況に応じて速やかにディスク装置の回転速度を変更することが可能となり、ストレージ装置の省電力効果を高めることができる。特にリクエストの発行間隔にばらつきのあるアプリケーションに有効である。
【図面の簡単な説明】
【００２８】
【図１Ａ】本発明の実施例によるストレージ装置の機能ブロック図である。
【図１Ｂ】本発明の実施例によるストレージ装置のハードウェア構成図である。
【図２】RAIDグループの構成例を示す図である。
【図３】RAIDグループ内のデータフォーマットの例を示す図である。
【図４】ディスク装置の回転速度の設定例を示す図である。
【図５】リクエスト処理状況監視部の処理を示すフローチャートである。
【図６】回転速度を下げる場合の相対速度段階を求める処理を示すフローチャートである。
【図７】回転速度を下げる場合の変速動作の例を示す図である。
【図８】回転速度を上げる場合の相対速度段階を求める処理を示すフローチャートである。
【図９】回転速度を上げる場合の変速動作の例を示す図である。
【図１０】リクエスト処理状況監視処理の開始のタイミングを制御するフローチャートである。
【図１１】回転速度を下げる場合の処理を示すフローチャートである。
【図１２】回転速度を上げる場合の処理を示すフローチャートである。
【符号の説明】
【００２９】
２１…ディスク装置、
２２…ＬＵ(Logical Unit)、
３１…ＬＵ，
３２…ストライプ、
３３…パリティデータ、
７１，９１…現行の回転速度、
７２，９２…変更後回転速度、
１０１…コントローラ部、
１０２…RAIDグループ、
１０３…ストレージ部、
１０４…回転速度管理テーブル、
１０５…リクエスト処理状況監視部（プログラム）、
１０６…回転速度制御部（プログラム）、
１０７…速度ステップ登録テーブル、
１１０…メモリ、
１２０…制御装置。
【図１Ａ】
2008310898.tif 000003
【図１Ｂ】
2008310898.tif 000004
【図２】
2008310898.tif 000005
【図３】
2008310898.tif 000006
【図４】
2008310898.tif 000007
【図５】
2008310898.tif 000008
【図６】
2008310898.tif 000009
【図７】
2008310898.tif 000010
【図８】
2008310898.tif 000011
【図９】
2008310898.tif 000012
【図１０】
2008310898.tif 000013
【図１１】
2008310898.tif 000014
【図１２】
2008310898.tif 000015