説明

ストレージ装置及びその制御方法、並びにディスク装置

【課題】複数の回転速度でリード・ライト処理可能なディスク装置で構成するストレージ装置において、回転速度の変更により省電力化を図る場合に、変速による応答の性能劣化を最小限にする。
【解決手段】コントローラ部101において、リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置が限定されており、複数のディスク装置の回転速度を順次変速するようにしている。そして、複数のディスク装置によりRAIDグループを構成し、一度に変速するディスク装置をRAIDグループの構成に基づいて限定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージ装置及びその制御方法、並びにディスク装置に関し、例えば、ディスク装置の回転速度を変更することにより省電力化を図る場合に、変速による性能劣化を抑える技術に関する。
【背景技術】
【0002】
一般にサブストレージシステムやサーバでは、最大負荷(最大I/O処理要求量)に合わせてシステムを構築する。実際のシステム運用では最大負荷となることは少ないため、過剰仕様での運用となることが多く、余分な電力が消費されてしまうという問題がある。
【0003】
この問題を解決するため、システムの運用状況に応じてディスク装置を制御する方法として3つの方法が検討されている。1)第1の方法は、アイドル期間中にディスク装置を停止し、省電力化を図る方法である。この方法はアクセス頻度が低く、アイドル時間の長いアプリケーションに適している。2)第2の方法は、低回転速度の省電力モード(リード・ライトは不可)をもつディスク装置で構成し、アイドル期間中に低回転速度の省電力モードに移行し省電力化を図る方法である。この方法は、アクセス頻度が比較的高く、アイドル時間の短いアプリケーションに適している。3)第3の方法は、複数の回転速度でリード・ライト処理可能なディスク装置で構成し、ディスク装置に対するリクエストの処理状況を監視して負荷に対するディスク装置の性能の過不足を予測し、その結果に応じてディスクの回転速度を変更し省電力化を図る方法である。この方法は、アクセス頻度が高く、負荷が大きく変動するアプリケーションに適している。
【0004】
上記省電力化(第3の方法)を実現するために、例えば、非特許文献1のように、回転速度制御を実行する方法がある。非特許文献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】
上記課題を解決するために、本発明では、RAIDシステムのよう冗長性のあるストレージ装置において、変速中のディスク装置に対するリードリクエストのデータが非変速中のディスク装置から読みだしたデータにより復元可能となるように、変速するディスク装置を限定し、回転速度を順次(直前の変速処理の終了を確認してから)変速する。そして、変更中のディスク装置のデータを読み出す必要が生じた場合には、変速していないディスク装置からデータを読み出して目的とするデータを復元し、リードリクエストを処理可能にする。
【0009】
また、本発明では、大容量のバッファメモリを備え、回転速度変更中にライトリクエストを受領した場合には、該メモリにデータをバッファし、RAIDグループ内の変速が終了するまで該データをディスクに書き込まないようにして、ライトリクエスト処理後のリードリクエスト処理の遅延を防いでいる。
【0010】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【0011】
本発明によれば、ディスク装置の回転速度を変更して省電力化を図る場合に、回転速度の変更中もリクエスト処理可能になり、変速による性能劣化を最小限に抑えることができる。特に、性能要求の高いシステムにおいて有効である。
【発明を実施するための最良の形態】
【0012】
本発明は、ディスク装置の回転速度変更中であっても、システムとして、変速中のディスク装置に記録されているデータを提示することができるストレージ装置に関するものである。
【0013】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【0014】
<第1の実施形態>
(1)ストレージ装置の構成
図1は、本発明の第1の実施形態に係るストレージ装置(100)の概略構成を示す図である。ストレージ装置(100)は、回転速度を制御するコントローラ部(101)と、複数のディスク装置で構成されたRedundant Arrays of Inexpensive Disks(RAID)のグループ(102)で構成されるストレージ部(103)と、を備えている。なお、RAIDグループ(102)のそれぞれ(RG1乃至RGN)は、システム上の制御単位を示している。各RAIDグループは、例えば、RG1がRAID1に相当し、RG2及びRG3がRAID5に相当するように構成される。
【0015】
また、コントローラ部(101)は、回転速度管理テーブル(104)と、速度ステップ登録テーブル(105)と、回転速度制御部(106)と、バッファメモリ(107)と、バッファデータ管理テーブル(108)と、を含んでいる。なお、図1は、ストレージ装置(100)の構成のみ示しているが、例えば、ストレージ装置(100)が図示しないサーバに接続され、図示しないネットワークを介して、図示しないクライアント端末装置に接続されるようにしてもよい。
【0016】
図2は、RAIDグループ(102)の構成例を示す。RAIDグループ(102)は、複数のディスク装置(21)で構成される。なお、本発明のストレージ装置は、複数の回転速度でリード・ライト処理可能なディスク装置で構成する。
【0017】
また、RAIDグループは、単数または複数の論理空間(Logical Unit、以下、LU(22))で構成される。図2の例では、RAIDグループ(102)が2つのLU(LU1とLU2)で構成されている。
【0018】
図3は、RAID5で構成した場合のLU(31)の構成例を示す。RAID5で構成した場合、ディスク上の論理空間は、ストライプ(32)といわれるデータ単位で構成される。このストライプを単位にRAIDグループ(102)内にLU(31)が作成される。なお、このストライプには、保存するデータだけではなくHDDが故障した場合にデータを復元するためのデータ(このデータをパリティーデータ(33)という)も記録される。図3において、数値を記述したストライプはホストコンピュータからの書き込みデータを示し、「P」を記述したストライプはパリティーデータを示している。
【0019】
図4は、複数の回転速度でリード・ライト処理可能なディスク装置の回転速度の設定例(速度ステップ登録テーブル(105))を示す。図4のテーブルで示された範囲において、各ディスク装置の速度が設定される。そして、各RAIDグループに対してそれぞれ速度ステップ登録テーブルが設けられている。なお、図4には、2500rpmを下限として2500rpmごとに5段階の回転速度を設定した場合の例が示されているが、これに限られるものではない。
【0020】
ストレージ装置(100)では、システム構築時、ディスク装置で設定可能な回転速度が速度ステップ登録テーブル(105)に予め登録される。
【0021】
また、ストレージ装置(100)は、リクエストの処理に際し、設定可能な回転速度のうちどれか1つの回転速度に設定してリクエストを処理する。具体的には、ストレージ装置(100)は、図4に示した回転速度のうち、実際にリクエスト処理を実行している回転速度を図1の回転速度管理テーブル(104)に登録して、リクエストを処理する。
【0022】
(2)回転速度変更処理
ストレージ装置(100)は、変速中のディスク装置にリードリクエストがあった場合、システムのデータの冗長性を活用し、非変速中のディスク装置よりデータを読み出すことにより、変速中のディスク装置へのリードリクエストデータが復元可能となるように変速するディスク装置を限定し、該ディスク装置の回転速度を変更する。
【0023】
図5は、回転速度変更処理を説明するためのフローチャートである。
ストレージ装置(100)において、コントローラ部(101)は、非変速中のディスク装置よりデータを読み出すことにより、変速中のディスク装置へのリードリクエストデータが復元可能となるように変速するディスク装置を限定し(ステップS51)、限定したディスク装置の回転速度を変更する(ステップS52)。ディスク装置の限定については、後述のように、RAIDの構成に従ってなされる。
【0024】
次に、コントローラ部(101)は、RAIDグループ内のディスク装置のすべての変速が終了したか調べ(ステップS53)、すべての変速が終了していれば処理を終了する。また、コントローラ部(101)は、RAIDグループ内のディスク装置のすべての変速がまだ終了していなければ、ステップS51に戻り、変速処理を継続する。
【0025】
ここで、回転速度の変更に使用するATAコマンドの例について説明する。図6は、ディスク装置の動作設定を行うSet Featuresコマンドの例を示している。ATAコマンドでは、例えばSet FeaturesコマンドのFeaturesレジスタに回転速度変更用のサブコマンドコードを入力することで、回転速度の変更を行うことが可能である。また、図6は、回転速度の変更を示すサブコマンドコードとして、61hを入力した場合の例を示している。なお、Sector Countレジスタ、LBA(Logical Block Address)Lowレジスタ、LBA Mid レジスタ、LBA Highレジスタには、サブコマンドに固有の数値を設定することが可能である。なお、回転速度設定コマンドでは、例えばSector Countのレジスタに、設定する回転速度を示す数値を入力してもよい。
【0026】
また、図7は回転速度を示すSector Countの値の例を示したものである。例えば、図7に示す値をSet FeaturesコマンドのSector Countレジスタに入力することにより、希望する回転速度に変更することが可能である。
【0027】
さらに、図8は、Set Featuresコマンドの実行結果の例を示す。Set Features コマンドが終了すると、ディスク装置はStatus レジスタのBSYビット(81)に0を設定する。したがって、このBSYビット(81)を参照することにより、コントローラ部(101)は回転速度の変更処理の終了を知ることができる。
【0028】
(3)リードリクエスト処理
図9は、変速中のディスク装置へのリードリクエスト処理を説明するためのフローチャートである。ストレージ装置(100)において、コントローラ部(101)は、変速中のディスク装置に対するリードリクエストを受領したか否かを調べる(ステップS91)。変速中のディスク装置へのリクエストであれば、コントローラ部(101)は、RAIDグループの非変速中のディスク装置より復元のためのデータを読み出し(ステップS92)、変速中のディスク装置のリードリクエストデータを復元する(ステップS93)。
【0029】
ここで、図10を参照して、RAID5のストレージ装置(100)において、回転速度変更中のディスク装置にリードリクエストがあった場合のリードデータの復元処理例について説明する。
【0030】
図10では、HDD−A、HDD−B、HDD−C、HDD−Dの順に順次変速を行っている。RAID5の場合は、1台ずつ回転速度を変更し、同時に1台のディスク装置だけが回転速度を変更するように制御を行っている。このようにすることで、リクエスト処理不可のディスク装置が1台だけとなり、したがってRAID5においては、変速処理中にリードリクエストがあっても、非変速中のディスク装置よりデータを読み出すことにより、リードリクエストに対するデータを復元することが可能である。
【0031】
図10の例では、変速中のHDD−Bにリード要求があった場合、HDD−Aの“データa”、HDD−Cの“データc”、HDD−Dの“データd”をそれぞれ読み出し、それらのデータのXORをとることにより”データb”を復元している。
【0032】
(4)ライトリクエスト処理
図11は、RAIDグループを構成するディスク装置の回転速度変更中にライトリクエストがあった場合の処理(ライトリクエスト処理)を説明するためのフローチャートである。
【0033】
ストレージ装置(100)において、コントローラ部(101)は、RAIDグループを構成する何れかのディスク装置が回転速度を変更している最中にライトリクエストがあった場合(ステップS111)、バッファメモリ(107)にライトデータを格納する(ステップS112)。次に、コントローラ部(101)は、当該ライトデータに対応するパリティーデータを新たに生成し(ステップS113)、ライトデータに加えてパリティーデータをバッファメモリ(107)に格納する(ステップS114)。また、コントローラ部(101)は、バッファしたライトデータ及びパリティーデータの管理データをバッファデータ管理テーブル(108)に登録する(ステップS115)。
【0034】
さらに、コントローラ部(101)は、RAIDグループ内のディスク装置の変速がすべて終了したか調べ(ステップS116)、変速が終了したらバッファ(107)に格納されたデータをディスクに書き込む(ステップS117)。RAIDグループ内のすべてのディスク装置の変速が終了していない場合(ステップS116)には、処理はステップS112に戻りそれ以降の処理が実行される。
【0035】
以上のように、ストレージ装置(100)は、RAIDグループ内のすべてのディスク装置の変速が終了するまではライトデータおよびそれに対応するパリティーデータをバッファ(107)に格納することとし、変速終了後に(107)に格納されたデータをディスクに書き込む。これにより、RAIDグループのディスク装置の回転速度の変更中に、ライトリクエストがあり、その後にリードリクエストがあった場合においてもすばやくリードリクエストの処理が可能となる。
【0036】
(5)バッファデータ管理テーブル
図12は、バッファ(107)上のデータを管理するためのバッファデータ管理テーブル(108)の構成例を示す図である。バッファデータ管理テーブル(108)は、Logical Unit(LU)の番号、LU内の開始アドレス、ストライプ番号/パリティー番号、バッファ(107)上の開始アドレスによって構成される。
【0037】
ストレージ装置(100)は、RAIDグループ内のすべてのディスク装置の変速が終了すると、バッファデータ管理テーブル(108)の情報を使用してライトデータ及びそれに対応するパリティーデータをディスクに書き込む。
【0038】
また、ストレージ装置(100)は、回転速度変更中にリードリクエストがあった場合、該リクエストのデータがバッファ(107)上にあるかどうかを検索し、該当データがバッファデータ管理テーブル(108)にある場合は該データをバッファ(107)から読みだしてホストコンピュータ(コントローラ部)に転送する。
【0039】
さらに、ストレージ装置(100)は、バッファリング中のライトデータが更新される場合には、データの整合性を保つため、最新のライトデータの管理情報のみバッファデータ管理テーブル(108)に登録する。
【0040】
(6)各RAID構成における具体的処理
以下では、冗長性のある、ストレージ装置の例として、RAID1、RAID5、及びRAID5で構成したグループを分散して配置した分散RAID5(以下分散RAID5という)を取り上げ、それぞれのストレージ装置における回転速度の変更方法及びリクエストの処理方法について説明する。なお、以下の説明により、本発明の適用範囲が限定されるものではない。
【0041】
図13は、RAID1のストレージ装置における回転速度の変更処理の具体例を示す図である。図13では、HDD1(1301)及びHDD2(1302)の2台でRAID1が構成されている。
【0042】
例えば、HDD1(1301)の変速中に、HDD1(1301)のストライプ1(1303)にリードリクエストがあった場合、コントローラ部(101)は、HDD2(1302)のストライプ1(1304)よりデータを読み出し、HDD1(1301)の回転速度の変更が終了したら、HDD2(1302)の回転速度の変更を行う。また、ディスク装置の回転速度の変更中にライトリクエストを受領した場合には、コントローラ部(101)は、HDD1(1301)及びHDD2(1302)の回転速度の変更が終了するまでライトデータをメモリにバッファリングし、ストレージ装置(100)を構成するすべてのディスク装置の回転速度の変更が終了したら、バッファされたライトデータをディスクに書き込むようにする。
【0043】
図14は、RAID5のストレージ装置における回転速度の変更処理の具体例を示す図である。
図14では、ディスク装置4台でRAID5が構成されている。
【0044】
例えば、HDD2(1401)の変速中に、ストライプ2(1402)にリードリクエストがあった場合、コントローラ部(101)は、HDD1(1403)のストライプ1(1404)、HDD3(1405)のストライプ3(1406)、及びHDD4(1407)のストライプP(1408)を読み出し、それらのデータのXORをとってストライプ2(1402)のデータを復元して、リードリクエストデータを転送する。
【0045】
なお、RAID5においては、ライトリクエストがあった場合、コントローラ部(101)は、該当するパリディーデータを生成し、そのデータもバッファ(107)に格納する。そして、RAIDグループ内のディスク装置の回転速度変更後にライトデータ及びそれに対応するパリティーデータをディスクに書き込む。また、ライトリクエストに後続のリードリクエストにおいて、直前のライトリクエストのデータ及びそれに対応するパリティーデータを使って、リードデータを復元する必要がある場合には、バッファ(107)上のデータを使ってリードデータの復元を行う。
【0046】
図15は、RAID5のストレージ装置において、変速中のディスク装置のストライプにライトリクエストがあった場合の例を示す図である。
また、図16は、図15におけるストライプ1(1502)の書き込みに対するパリティーデータの生成方法の一例を示す図である。
【0047】
図15では、ストライプ1(1502)がライトされた場合、コントローラ部(101)は、ストライプ2(1503)及びストライプ3(1504)を読み出す。そして、コントローラ部(101)は、当該ライトデータに対応するパリティーデータP(1)’を図16の方法を使って新たに生成し、ストライプ1’及びパリティーP(1)’をバッファデータ管理テーブル(108)に登録する。バッファデータ管理テーブル(108)には、ストライプ番号あるいはパリティーの番号、バッファ(107)上のライトデータあるいはパリティーデータの開始アドレスがそれぞれ登録される。
【0048】
図17は、図15の例のストライプ1のライトに対応するパリティーデータの別の生成方法の例を示す図である。図17では、ストライプ1(1701)及びパリティーデータP(1)(1702)のXORをとることにより、パリティーデータP(1)−1(1703)を生成する。次に、生成したパリティーデータP(1)−1(1703)と新たに書き込むストライプ1’(1704)とのXORをとることによりパリティーデータP(1)’(1705)を生成する。
【0049】
図18は、RAIDグループのディスク装置の回転速度の変更中に、図15の例で示したストライプ1(1502)のライト処理を実行し、その後にストライプ3(1504)に対してリードリクエストがあった場合(ただしディスク装置3(1505)は回転速度変更中)のリードデータの復元方法を示している。図18において、ストレージ装置(100)のコントローラ部(101)は、HDD2よりストライプ2(1503)を読み出す。さらに、コントローラ部(101)は、バッファデータ管理テーブル(108)からストライプ1’及びストライプP(1)’を読み出し、図18に示したようにそれらのXORをとることにより、ストライプ3(1504)のデータを復元する。
【0050】
図19は、RAID5で構成したグループを分散して配置した分散RAID5の場合の構成例を示す図である。分散RAID5の場合、RAID5を構成するRAID5グループ(1901、1902)では同時に変速処理を行うことができる。ただし、各RAID5グループ内のディスク装置(HDD)は1台ずつ変速する。
【0051】
図19において、何れかのHDDの変速中にリードリクエストがあった場合、変速中のHDDのストライプデータは、RAID5グループ内の非変速中のディスク装置のストライプのデータを用いて復元される。その方法は、上述のRAID5におけるデータの復元方法と同様であるのでここでは説明を省略する。
【0052】
また、回転速度変更中のライトリクエスト及びライト後のリードリクエストの処理の仕方も、RAID5と同様である。
【0053】
<第2の実施形態>
(1)ストレージ装置の構成
図20は、本発明の第2の実施形態に係るストレージ装置(2000)の概略構成を示す図である。ストレージ装置(2000)は、回転速度を制御するコントローラ部(2001)と、複数のディスク装置で構成されたRAIDグループ(2002)で構成されるストレージ部(2003)と、を備える。なお、RAIDグループ(2002)は、システム上の制御単位を示している。
【0054】
また、各RAIDグループ(2002)は、大容量のバッファメモリ(2004)及びバッファ上のライトデータを管理するバッファデータ管理テーブル(2005)を搭載するディスク装置(2006)を1或いは複数備えている。
【0055】
コントローラ部(2001)は、RAIDグループ内のディスク装置の回転速度を管理する回転速度管理テーブル(2007)と、ストレージ装置(2000)を構成するディスク装置の速度ステップを登録する速度ステップ登録テーブル(2008)と、回転速度制御部(2009)と、を備える。回転制御部(2009)は、変速中のディスク装置に対するリードリクエストのデータが、非変速中のディスク装置から読みだしたデータにより復元可能となるように変速するディスク装置を限定し、該ディスク装置の回転速度を順次(直前の変速処理の終了を確認してから)変速する。また、回転制御部(2009)は、RAIDグループを構成するディスク装置の回転速度変速中においては、ライトリクエストデータをディスク装置内に搭載された大容量不揮発メモリに書き込む処理を行う。なお、回転速度の変速を行うディスク装置の限定方法については、第1の実施形態と同様、採用するRAIDの構成(RAID1乃至RAID5)に依存するものである。
【0056】
(2)バッファデータ管理テーブル
図21は、ストレージ装置(2000)を構成するディスク装置(2006)内に実装されているバッファデータ管理テーブル(2005)の構成例を示す図である。
バッファデータ管理テーブル(2005)は、バッファ(2004)に格納されたデータのLBA、バッファ(2004)上のアドレス、データのサイズの情報によって構成されている。このバッファデータ管理テーブル(2005)を用いて、データの書き込み及び読み出しが管理される。つまり、ストレージ装置(2000)のコントローラ部(2001)は、RAIDグループ内のすべてのディスク装置の変速が終了すると、バッファデータ管理テーブル(2005)の情報を使用してライトデータ及びそれに対応するパリティーデータをディスクに書き込む。また、コントローラ部(2001)は、回転速度変更中にリードリクエストがあった場合、該リクエストのデータがバッファ(2004)上にあるかどうかを検索し、該当データがバッファデータ管理テーブル(2005)にある場合は該データをバッファ(2004)から読みだしてホストコンピュータに転送する。さらに、コントローラ部(2001)は、バッファリング中のライトデータが更新される場合には、データの整合性を保つため、最新のライトデータの管理情報のみバッファデータ管理テーブル(2005)に登録する。
【0057】
(3)ライトリクエスト処理(コントローラ部側の処理)
図22は、コントローラ部(2001)によるライトリクエスト処理について説明するためのフローチャートである。
【0058】
ストレージ装置(2000)のコントローラ部(2001)は、回転速度変更前にディスク装置内の大容量メモリ(2004)の初期化を行う(ステップS2201)。次に、コントローラ部(2001)は、ライトデータをライトリクエストの対象となるディスク装置(2006)の大容量バッファメモリ(2004)に格納する(ステップS2202)。続いて、コントローラ部(2001)は、ライトデータの書き込みによりバッファフルが発生するか調べ(ステップS2203)、バッファフルが発生した場合は、バッファフルが発生したディスク装置(2006)が変速中かを調べる(ステップS2204)。このように、コントローラ部(2001)によって、ディスク装置内のバッファメモリ(2004)のバッファ残量が管理される。そして、バッファフルを起こしたディスク装置(2006)が変速中でなければ、コントローラ部(2001)は、バッファフルが解消されるまでメモリ(2004)上のライトデータをディスクに書き込む(ステップS2205)。
【0059】
続いて、コントローラ部(2001)は、RAIDグループ(2002)内のディスク装置の変速処理が終了したかを調べ(ステップ2206)、全てのディスク装置において変速処理が終了した場合は、バッファメモリ(2004)上のデータをディスクに書き込むようにディスク装置に指示を出す(ステップS2207)。
【0060】
ステップS2206において、全てのディスク装置において変速が終了していなければ、処理はステップS2202に戻る。
【0061】
ステップS2204において、バッファフルが発生したディスク装置(2006)が変速中であれば、コントローラ部(2001)は、その変速処理が終了した後、バッファフルが解消されるまでバッファメモリ(2004)上のデータをディスクに書き込む(ステップS2208)。その後は、ステップ2206以降の処理が実行される。
【0062】
ステップS2203に戻り、ライトリクエストの対象となるディスク装置(2006)のバッファメモリ(2004)において、バッファフルが発生しなければ、処理は、ステップS2206に移行し、それ以降の処理が実行される。
【0063】
(4)ライトリクエスト処理(ディスク装置側の処理)
図23は、回転速度変更中のディスク装置(2006)側のライトリクエスト処理を説明するためのフローチャートである。
【0064】
ストレージ装置(2000)を構成するディスク装置(2006)は、コントローラ部からの初期化リクエストを受け、ディスク装置内の大容量バッファメモリ(2004)の初期化を行う(ステップS2301)。そして、ディスク装置(2006)は、ライトリクエストを受領した場合、ライトデータを大容量バッファメモリ(2004)に格納する(ステップS2302)。
【0065】
また、ディスク装置(2006)は、バッファメモリ(2004)上に同一論理アドレスのデータがあるかを調べ(ステップS2303)、同一論理アドレスのデータがなければ、上記ライトデータに関する情報をバッファデータ管理テーブル(2005)に登録する(ステップS2304)。そして、ディスク装置(2006)は、コントローラ部から大容量バッファメモリ(2004)のデータをディスクに書き込むようリクエストがあれば(ステップS2305)、バッファメモリ(2004)内のデータをディスクに書き込む(ステップS2306)。ステップS2305において、コントローラ部から大容量バッファメモリ(2004)のデータをディスクに書き込むようリクエストがなければ、処理は、ステップS2302に戻る。
【0066】
ステップS2303において、バッファメモリ(2004)上に同一論理アドレスのデータがあれば、ディスク装置(2006)は、最新のライトデータだけが登録されるようにバッファデータ管理テーブル(2005)を更新する(ステップS2307)。更新後は、ステップ2305以降の処理が実行される。
【0067】
なお、実施例2のストレージ装置においても、実施例1で実施したように、回転速度変更中のディスク装置へのリードリクエストデータをディスクに未書き込みのデータ及びそれに対応するパリティーデータを用いて復元することが可能である。その場合、実施例1における図12のテーブルのバッファ上アドレスを、ディスク装置番号とその装置上の論理アドレスをセットにして記述する必要がある。
【0068】
<まとめ>
以上のように、本実施形態によるストレージ装置は、複数の回転速度でリード・ライト処理可能なディスク装置で構成され、回転速度の変更により省電力化を図る場合に、変速による性能劣化、主にリード処理の応答性能の劣化を最小限に抑えるために活用可能である。
【0069】
本実施形態のストレージ装置では、それぞれが複数の回転速度で駆動可能な複数のディスク装置の何れかが変速中のとき、その変速中のディスク装置に対するリードリクエストがある場合の処理に特徴がある。具体的には、コントローラ部において、リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置が限定されており、複数のディスク装置の回転速度を順次変速するようにしている。そして、複数のディスク装置によりRAIDグループを構成し、一度に変速するディスク装置をRAIDグループの構成に基づいて限定する。例えば、RAIDグループがRAID1或いはRAID5で構成される場合には複数のディスク装置を1台ずつ変速処理し、RAIDグループが分散RAID5で構成される場合には各グループについて同時に変速処理可能であるが、各グループ内では複数のディスク装置を1台ずつ変速処理するようにしている。このようにすることにより、変速中にリードリクエストがあったとしても、変速処理に影響されずに、リードリクエストを処理することができ、よって、システム全体としての応答時間が極度に遅くなるのを防止することができるようになる。
【0070】
より詳細に記述すると、リクエストが変速中のディスク装置に対するリードリクエストの場合、RAIDグループのデータ冗長性を用いて、非変速中のディスク装置に格納されているデータに基づいて、リードリクエストに対応するデータを取得する。つまり、例えば、複数のディスク装置がRAID1で構成される場合、非変速中のミラーリングされたディスク装置からデータを読み出す。また、複数のディスク装置がRAID5、或いは分散RAID5で構成される場合には、非変速中のディスク装置から読み出したデータ及びパリティーデータに基づいて前記リードリクエストに対応するデータを復元する。このようにすることにより、回転速度変更処理中であっても、変速中のディスク装置にあるデータを復元して提示することができるので、システムとしての応答性能を保証することができるようになる。
【0071】
また、リクエストが何れかのディスク装置の変速中になされたライトリクエストである場合、複数のディスク装置の全てについて変速処理が終了した後に、ライトリクエストに対応するライトデータの書き込み処理を実行する。また、複数のディスク装置がRAID5、或いは分散RAID5で構成される場合、ライトデータとライトデータに対応するパリティーデータをバッファに格納して、変速処理が終了するのを待機する。そして、ライトリクエストの受領後であってその処理前に(ディスクにデータを書き込む前に)、リードリクエストを受領した場合は、リードリクエストに対応するデータを復元するためにライトデータを必要とするときには、ライトデータ及びパリティーデータをバッファメモリから読み出して、リードリクエストに対応するデータを復元する。このようにすることにより、ディスク装置の変速中にライトリクエストがあり、その処理が完了する前にリードリクエストがあったとしてもこのリードリクエストを処理することができるので、リード処理の応答性能を劣化させることが無い。なお、リードリクエストに対応するデータを復元する際には、バッファから読み出したライトデータ及びパリティーデータと、非変速中のディスク装置から取得したデータを用いるようにする。
【0072】
第2の実施形態によれば、RAIDグループを構成するディスク装置のそれぞれが、書き込むべきライトデータを格納するためのバッファメモリと、バッファメモリのアドレスとディスク装置の論理アドレスとの対応を管理するバッファデータ管理テーブルとを有している。ここでも、一度に変速するディスク装置はRAIDの構成に従って限定されている。上述同様、変速中のディスク装置に対するリードリクエストがある場合に、リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるようにするためである。そして、リクエストがライトリクエストの場合には、ディスク装置内のバッファメモリにライトデータの書き込み処理を実行する。ディスクへの書き込みは、コントローラ部からライトデータの書き込み要求を受信した場合にディスク装置が、実行する。さらに、ここでは、バッファメモリがフルの状態か否か、及びこのフルの状態のバッファメモリを有するディスク装置が変速中か否かを判断し、判断結果に応じてバッファメモリに格納されたライトデータの書き込み処理のタイミングを制御する。このようにすることでも、ライトリクエスト後にリードリクエストが発生しても、リードリクエスト処理の遅延を防止することができ、ストレージ装置の応答性能を担保することができる。
【図面の簡単な説明】
【0073】
【図1】第1の実施形態によるストレージ装置の概略構成を示す図である。
【図2】RAIDグループの構成例を示す図である。
【図3】RAIDグループ(RAID 5)内のデータフォーマットの例を示す図である。
【図4】ディスク装置において設定可能な回転速度の例を示す図である。
【図5】ストレージ装置の回転速度の変更処理を説明するためのフローチャートである。
【図6】回転速度変更のためのコマンドの例を示す図である。
【図7】回転速度を示すサブコマンドの例を示す図である。
【図8】回転速度を変更するためのコマンドの終了レジスタの例を示す図である。
【図9】回転速度変更中のディスク装置へのリードリクエストに対する処理を説明するためのフローチャートである。
【図10】RAID5のストレージ装置における回転速度変更中のリードリクエスト処理の例を示す図である。
【図11】回転速度変更中のライト処理を説明するためのフローチャートである。
【図12】回転速度変更中のライトリクエストデータを管理するバッファデータ管理テーブルの例を示す図である。
【図13】RAID1のストレージ装置におけるディスク装置の回転速度変更の例を示す図である。
【図14】RAID5のストレージ装置の変速の例を示す図である。
【図15】RAID5のストレージ装置における回転速度変更中のライトリクエスト処理の例を示す図である。
【図16】ライトデータに対応したパリティーデータ生成(例1)を説明するための図である。
【図17】ライトデータに対応したパリティーデータ生成(例2)を説明するための図である。
【図18】回転速度変更中のディスク装置に対するリードリクエストデータを、直前のライトリクエストデータを使って復元した場合の例を示す図である。
【図19】RAID5で構成したグループを分散して配置した分散RAID5のストレージ装置の例を示す図である。
【図20】第2の実施形態によるストレージ装置の概略構成を示す図である。
【図21】大容量メモリのライトデータを管理するバッファデータ管理テーブルの構成例を示す図である。
【図22】コントローラ部による回転速度変更中のRAIDグループに対するライト制御を説明するためのフローチャートである。
【図23】ディスク装置(の図示しないコントローラ)による回転速度変更中のライト制御を説明するためのフローチャートである。
【符号の説明】
【0074】
101 コントローラ部
102 RAIDグループ
103 ストレージ部
104 回転速度管理テーブル
105 速度ステップ登録テーブル
106 回転速度制御部
107 バッファメモリ
108 バッファデータ管理テーブル
2001 コントローラ部
2002 RAIDグループ
2003 ストレージ部
2004 大容量メモリ
2005 バッファデータ管理テーブル
2006 大容量メモリ搭載ディスク装置
2007 回転速度管理テーブル
2008 速度ステップ登録テーブル
2009 回転速度制御部

【特許請求の範囲】
【請求項1】
リクエストに応じてディスク装置にアクセスし、前記リクエストを処理するストレージ装置であって、
それぞれが複数の回転速度で駆動可能な複数のディスク装置と、
変速中のディスク装置に対するリードリクエストがある場合に、前記リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置を限定し、前記複数のディスク装置の回転速度を順次変速する回転速度制御部と、
を備えることを特徴とするストレージ装置。
【請求項2】
前記複数のディスク装置はRAIDグループを構成し、
前記回転速度制御部は、前記一度に変速するディスク装置を前記RAIDグループの構成に基づいて限定することを特徴とする請求項1に記載のストレージ装置。
【請求項3】
前記RAIDグループがRAID1或いはRAID5で構成される場合、前記回転速度制御部は、前記複数のディスク装置を1台ずつ変速処理し、
前記RAIDグループが、それぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記回転速度制御部は、各グループについて同時に変速処理可能であるが、各グループ内では前記複数のディスク装置を1台ずつ変速処理することを特徴とする請求項2に記載のストレージ装置。
【請求項4】
さらに、前記複数のディスク装置へのリクエストを処理するリクエスト処理部を備えることを特徴とする請求項1乃至3の何れか1項に記載のストレージ装置。
【請求項5】
前記複数のディスク装置はRAIDグループを構成し、
前記リクエストが変速中のディスク装置に対するリードリクエストの場合、前記リクエスト処理部は、前記RAIDグループのデータ冗長性を用いて、非変速中のディスク装置に格納されているデータに基づいて、前記リードリクエストに対応するデータを取得することを特徴とする請求項4に記載のストレージ装置。
【請求項6】
前記複数のディスク装置がRAID1で構成される場合、
前記リクエスト処理部は、非変速中のミラーリングされたディスク装置からデータを読み出し、
前記複数のディスク装置がRAID5、或いはそれぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記リクエスト処理部は、非変速中のディスク装置から読み出したデータ及びパリティーデータに基づいて前記リードリクエストに対応するデータを復元することを特徴とする請求項5に記載のストレージ装置。
【請求項7】
前記リクエストが何れかのディスク装置の変速中になされたライトリクエストである場合、前記リクエスト処理部は、前記複数のディスク装置の全てについて変速処理が終了した後に、前記ライトリクエストに対応するライトデータの書き込み処理を実行することを特徴とする請求項4に記載のストレージ装置。
【請求項8】
前記複数のディスク装置がRAID5、或いはそれぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記リクエスト処理部は、前記ライトデータと前記ライトデータに対応するパリティーデータをバッファメモリに格納して、前記変速処理が終了するのを待機することを特徴とする請求項7に記載のストレージ装置。
【請求項9】
前記ライトリクエストの受領後であってその処理前に、リードリクエストを受領した場合、前記リクエスト処理部は、前記リードリクエストに対応するデータを復元するために前記ライトデータを必要とする場合には、前記ライトデータ及び前記パリティーデータを前記バッファメモリから読み出して、前記リードリクエストに対応するデータを復元することを特徴とする請求項8に記載のストレージ装置。
【請求項10】
リクエストに応じてディスク装置にアクセスし、前記リクエストを処理するストレージ装置であって、
それぞれが複数の回転速度で駆動可能な、RAIDグループを構成する複数のディスク装置と、
変速中のディスク装置に対するリードリクエストがある場合に、前記リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置を限定し、前記複数のディスク装置の回転速度を順次変速する回転速度制御部と、
前記複数のディスク装置へのリクエストを処理するリクエスト処理部と、を備え、
前記複数のディスク装置のそれぞれは、書き込むべきライトデータを格納するためのバッファメモリと、バッファメモリのアドレスとディスク装置の論理アドレスとの対応を管理するバッファデータ管理テーブルと、を有し、
前記リクエスト処理部は、前記リクエストがライトリクエストの場合、前記バッファメモリにライトリクエストに対応するライトデータの書き込み処理を実行することを特徴とするストレージ装置。
【請求項11】
前記リクエストが何れかのディスク装置の変速中になされたライトリクエストである場合、前記リクエスト処理部は、前記ライトデータを前記バッファメモリに蓄積しておき、前記複数のディスク装置の全てについて変速処理が終了した後に、前記ライトデータの書き込み処理を実行することを特徴とする請求項10に記載のストレージ装置。
【請求項12】
前記リクエスト処理部は、前記バッファメモリがフルの状態か否か、及びこのフルの状態のバッファメモリを有するディスク装置が変速中か否かを判断し、判断結果に応じて前記バッファメモリに格納された前記ライトデータの書き込み処理のタイミングを制御することを特徴とする請求項11に記載のストレージ装置。
【請求項13】
前記リクエスト処理部は、前記バッファメモリに格納されたライトデータの書き込み要求を前記ディスク装置に送信し、
前記ディスク装置は、前記書き込み要求を受信した場合に、前記ライトデータの書き込みを実行することを特徴とする請求項10乃至12の何れか1項に記載のストレージ装置。
【請求項14】
リクエストに応じてディスク装置にアクセスし、前記リクエストを処理するストレージ装置の制御方法であって、
前記ストレージ装置が、それぞれが複数の回転速度で駆動可能な複数のディスク装置を備え、
回転速度制御部が、変速中のディスク装置に対してリードリクエストがある場合に、前記リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置を限定し、前記複数のディスク装置の回転速度を順次変速することを特徴とする制御方法。
【請求項15】
前記複数のディスク装置はRAIDグループを構成し、
前記回転速度制御部は、前記一度に変速するディスク装置を前記RAIDグループの構成に基づいて限定することを特徴とする請求項14に記載の制御方法。
【請求項16】
前記RAIDグループがRAID1或いはRAID5で構成される場合、前記回転速度制御部は、前記複数のディスク装置を1台ずつ変速処理し、
前記RAIDグループが、それぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記回転速度制御部は、各グループについて同時に変速処理可能であるが、各グループ内では前記複数のディスク装置を1台ずつ変速処理することを特徴とする請求項15に記載の制御方法。
【請求項17】
さらに、前記ストレージ装置はリクエスト処理部を備え、このリクエスト処理部が、前記複数のディスク装置へのリクエストを処理することを特徴とする請求項14乃至16の何れか1項に記載の制御方法。
【請求項18】
前記複数のディスク装置はRAIDグループを構成し、
前記リクエストが変速中のディスク装置に対するリードリクエストの場合、前記リクエスト処理部は、前記RAIDグループのデータ冗長性を用いて、非変速中のディスク装置に格納されているデータに基づいて、前記リードリクエストに対応するデータを取得することを特徴とする請求項17に記載の制御方法。
【請求項19】
前記複数のディスク装置がRAID1で構成される場合、前記リクエスト処理部は、非変速中のミラーリングされたディスク装置からデータを読み出し、
前記複数のディスク装置がRAID5、或いはそれぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記リクエスト処理部は、非変速中のディスク装置から読み出したデータ及びパリティーデータに基づいて前記リードリクエストに対応するデータを復元することを特徴とする請求項18に記載の制御方法。
【請求項20】
前記リクエストが何れかのディスク装置の変速中になされたライトリクエストである場合、前記リクエスト処理部は、前記複数のディスク装置の全てについて変速処理が終了した後に、前記ライトリクエストに対応するライトデータの書き込み処理を実行することを特徴とする請求項17に記載の制御方法。
【請求項21】
前記複数のディスク装置がRAID5、或いはそれぞれRAID5で構成した複数グループを分散して配置してなる分散RAID5で構成される場合、前記リクエスト処理部は、前記ライトデータと前記ライトデータに対応するパリティーデータをバッファメモリに格納して、前記変速処理が終了するまで待機することを特徴とする請求項20に記載の制御方法。
【請求項22】
前記ライトリクエストの受領後であってその処理前に、リードリクエストを受領した場合、前記リクエスト処理部は、前記リードリクエストに対応するデータを復元するために前記ライトデータを必要とする場合には、前記ライトデータ及び前記パリティーデータを前記バッファメモリから読み出して、前記リードリクエストに対応するデータを復元することを特徴とする請求項21に記載の制御方法。
【請求項23】
リクエストに応じてディスク装置にアクセスし、前記リクエストを処理するストレージ装置の制御方法であって、
前記ストレージ装置が、それぞれが複数の回転速度で駆動可能な、RAIDグループを構成する複数のディスク装置を備え、
前記複数のディスク装置のそれぞれは、書き込むべきライトデータを格納するためのバッファメモリと、バッファメモリのアドレスとディスク装置の論理アドレスとの対応を管理するバッファデータ管理テーブルと、を有し、
回転速度制御部は、変速中のディスク装置に対するリードリクエストがある場合に、前記リードリクエストに対応するデータが非変速中のディスク装置に格納されているデータから復元可能となるように一度に変速するディスク装置を限定し、前記複数のディスク装置の回転速度を順次変速し、
前記複数のディスク装置へのリクエストを処理するリクエスト処理部が、前記リクエストがライトリクエストの場合、前記バッファメモリにライトリクエストに対応するライトデータの書き込み処理を実行することを特徴とする制御方法。
【請求項24】
前記リクエストが何れかのディスク装置の変速中になされたライトリクエストである場合、前記リクエスト処理部は、前記ライトデータを前記バッファメモリに蓄積しておき、前記複数のディスク装置の全てについて変速処理が終了した後に、前記ライトデータの書き込み処理を実行することを特徴とする請求項23に記載の制御方法。
【請求項25】
前記リクエスト処理部は、前記バッファメモリがフルの状態か否か、及びこのフルの状態のバッファメモリを有するディスク装置が変速中か否かを判断し、判断結果に応じて前記バッファメモリに格納された前記ライトデータの書き込み処理のタイミングを制御することを特徴とする請求項24に記載の制御方法。
【請求項26】
前記リクエスト処理部は、前記バッファメモリに格納されたライトデータの書き込み要求を前記ディスク装置に送信し、
前記ディスク装置は、前記書き込み要求を受信した場合に、前記ライトデータの書き込みを実行することを特徴とする請求項23乃至25の何れか1項に記載の制御方法。
【請求項27】
大容量メモリ及びそのデータを管理するバッファデータ管理テーブル備えた複数の回転速度で駆動可能な複数のディスク装置であって、
ホストからの指示により前記大容量メモリにライトデータをバッファし、さらにホスト側から前記大容量メモリのデータをディスクに書き込む指示が来た時に前記大容量メモリのライトデータをディスクに書き込むことを特徴とするディスク装置。

【図1】
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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2009−70489(P2009−70489A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2007−238254(P2007−238254)
【出願日】平成19年9月13日(2007.9.13)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】