(57)【要約】【課題】最適な負荷状態を維持できるディスクアレイ装置を実現する。【解決手段】複数のハードディスクドライブ（ＨＤＤ）１１の記憶領域でそれぞれ構成される複数のプール１１１に対して、アドレスを管理し、上位装置からの要求に応じたアクセスを行うディスクアレイ装置において、タイマ１２ｂ，１３ｂを用いて定期的にプール１１１〜１１３の負荷状況を監視し、アクセス頻度の高いデータが集中しているプールがあれば、そのプールから他のプールにアクセス頻度の高いデータを再配置し、負荷の分散を行う。【選択図】図２
2009252106.tif 000002
【特許請求の範囲】
【請求項１】
物理ディスクの記憶領域でそれぞれ構成される複数のプールに対して、アドレスを管理し、上位装置からの要求に応じたアクセスを行うディスクアレイ制御方法において、
定期的に前記各プールにおける負荷状況を監視する監視処理と、
前記負荷状況の監視結果に基づいて、特定のプールに記憶されているデータを他のプールに移動させる負荷分散処理とを、
含むことを特徴とするディスクアレイ制御方法。
【請求項２】
前記監視処理は、前記各プールにおけるアクセスの頻度を含む前記負荷状況を監視し、
前記負荷分散処理は、アクセスの頻度の高いデータが集中するプールから前記他のプールへ、該アクセスの頻度の高いデータの一部を移動させることを特徴とする請求項１に記載のディスクアレイ制御方法。
【請求項３】
前記監視処理は、前記各プールに書込まれているデータ量を含む前記負荷状況を監視し、
前記負荷分散処理は、書込まれているデータ量の多いプールから前記他のプールへ、データの一部を移動させることを特徴とする請求項１又は２に記載のディスクアレイ制御方法。
【請求項４】
前記複数のプールから構成される仮想論理ディスクに未使用の物理ディスクを配置しておき、
定期的に各プールの記憶領域の使用状況を監視し、該使用状況が既定値を超えるプールに対して前記未使用の物理ディスクの記憶領域を割り当てる容量拡張処理を行うことを特徴とする請求項１乃至３のいずれか１項に記載のディスクアレイ制御方法。
【請求項５】
前記仮想論理ディスクの容量が不足したときに新たな未使用の物理ディスクを該仮想論理ディスクに配置することを特徴とする請求項４に記載のディスクアレイ制御方法。
【請求項６】
前記上位装置からの要求がデータの書込みの場合、負荷の最も低いプールに該データを書込むことを特徴とする請求項１乃至５のいずれか１項に記載のディスクアレイ制御方法。
【請求項７】
物理ディスクの記憶領域でそれぞれ構成される複数のプールに対して、アドレスを管理し、上位装置からの要求に応じたアクセスを行うディスクアレイ装置において、
定期的に前記各プールにおける負荷状況を監視する監視手段と、
前記負荷状況の監視結果に基づいて、特定のプールに記憶されているデータを他のプールに移動させる負荷分散手段とを備えることを特徴とするディスクアレイ装置。
【請求項８】
前記監視手段は、前記各プールにおけるアクセスの頻度を含む前記負荷状況を監視し、
前記負荷分散手段は、アクセスの頻度の高いデータが集中するプールから前記他のプールへ、該アクセスの頻度の高いデータの一部を移動させることを特徴とする請求項７に記載のディスクアレイ装置。
【請求項９】
前記監視手段は、前記各プールに書込まれているデータ量を含む前記負荷状況を監視し、
前記負荷分散処理は、書込まれているデータ量の多いプールから前記他のプールへ、データの一部を移動させることを特徴とする請求項７又は８に記載のディスクアレイ装置。
【請求項１０】
前記複数のプールから構成される仮想論理ディスクに未使用の物理ディスクを配置しておき、
定期的に各プールの記憶領域の使用状況を監視し、該使用状況が既定値を超えるプールに対して前記未使用の物理ディスクの記憶領域を割り当てることを特徴とする請求項７乃至９のいずれか１項に記載のディスクアレイ装置。
【請求項１１】
前記仮想論理ディスクの容量が不足した時に新たな未使用の物理ディスクを該仮想論理ディスクに配置することを特徴とする請求項１０に記載のディスクアレイ装置。
【請求項１２】
前記上位装置からの要求がデータの書込みの場合、負荷の最も低いプールに該データを書込むことを特徴とする請求項７乃至１１のいずれか１項に記載のディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ制御方法及びディスクアレイ装置に関する。
【背景技術】
【０００２】
図７は、従来のディスクアレイ装置の概要を示す図である。
このディスクアレイ装置は、ディスク部１にディスクドライブ群を収容し、上位装置に対してディスクドライブの持つ記憶領域で論理ディスク（ＬＤ）２を形成し、任意数の論理ディスク２でプール３を形成し、且つ上位装置４からのアクセスをコントローラ５で管理している。
【０００３】
従来のディスクアレイ装置には、図７のように、負荷分散のために上位装置４に対するインターフェースパスを冗長化したものがある。この場合、各パスの負荷分散については有効であるが、ディスク部１の特定のプール３へのアクセスが集中すると、そのプールの記憶領域を形成するディスクドライブが過負荷となり、ディスク部１の応答性能が低下する。よって、ディスクアレイ装置としての入出力性能が低下するという問題があった。
【０００４】
これに対し、下記特許文献１に示されたディスク装置は、上位装置からのディスクドライブ群に対するアクセス回数をカウントし、予め決められた期間内でのアクセス回数に基づいて、プールに相当するストライプが高負荷であるか低負荷であるかをそれぞれ判定し、高負荷と判定したストライプについては、前記判定された時点以降、データ更新処理に関して、予め用意されたディスクドライブに対してデータを移動できるように、同じ容量のストライプ領域をコピー先として確保して、コピー先の領域に対して直接データの書き込みを行い、書き込み処理でデータの書き込みが行われず、更新されなかったデータについて、後の内部処理としてコピー先領域に対してコピーを行う。
【０００５】
下記特許文献２に示されたストレージ装置は、上位装置からのアクセス毎に、プールに相当するボリュームにかかる負荷を測定し、その結果に基づいて、負荷が既定値を超えるボリュームの内容を予備ボリュームにコピーし、コピー元のボリューム及びコピー先の予備ボリュームを１つの仮想ボリュームに対応付けて上位装置に提供し、上位装置から仮想ボリュームに対するデータの読出し処理を伴うライト要求（リードモデュファイライト）が与えられたときには、仮想ボリューム内の１つのボリュームからデータを読出し、全てのボリューム及び予備ボリュームに対してデータを書込み、仮想ボリュームに対するリード要求が単独で与えられたときには、リードモデュファイライトで読出された以外のボリューム又は予備ボリュームから対応するデータを読み出す。
【特許文献１】特開２００７−２９３４８６号公報
【特許文献２】特開２００７−３２８７３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１及び特許文献２では、仮想論理ディスクに対応するストライプ、ボリュームへのアクセス時の負荷分散は可能であるが、各ストライプ、ボリュームの容量や負荷を均一化することができない。よって、最適な負荷状態を維持できないという問題があった。
【０００７】
本願発明は、前述のような課題を解決し、最適な負荷状態を維持できるディスクアレイ装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の第１の観点に係るディスクアレイ制御方法は、
物理ディスクの記憶領域でそれぞれ構成される複数のプールに対して、アドレスを管理し、上位装置からの要求に応じたアクセスを行うディスクアレイ制御方法において、
定期的に前記各プールにおける負荷状況を監視する監視処理と、
前記負荷状況の監視結果に基づいて、特定のプールに記憶されているデータを他のプールに移動させる負荷分散処理とを含むことを特徴とする。
【０００９】
上記目的を達成するために、本発明の第２の観点に係るディスクアレイ装置は、
物理ディスクの記憶領域でそれぞれ構成される複数のプールに対して、アドレスを管理し、上位装置からの要求に応じたアクセスを行うディスクアレイ装置において、
定期的に前記各プールにおける負荷状況を監視する監視手段と、
前記負荷状況の監視結果に基づいて、特定のプールに記憶されているデータを他のプールに移動させる負荷分散手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、最適な負荷状態を維持できるディスクアレイ装置を実現できる。
【発明を実施するための最良の形態】
【００１１】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
［第１の実施形態］
図１は、本発明の実施形態に係るディスクアレイ装置を示す構成図である。
このディスクアレイ装置１０は、複数の物理ドライブであるハードディスクドライブ（以下、ＨＤＤという）１１をＲＡＩＤ（Redundant Array of Inexpensive Disks）統合し、それらＨＤＤ１１群の持つ記憶領域からなる記憶空間１００を上位装置２０に提供する装置である。
【００１２】
ディスクアレイ装置１０には、２つのコントローラ１２，１３と、ディスク部１４と、メモリ１５とを備えている。ディスク部１４に複数のＨＤＤ１１が収容され、複数のＨＤＤ１１が持つ記憶領域で記憶空間１００が形成されている。
【００１３】
コントローラ１２は、ディスク制御部１２ａとタイマ１２ｂとを備えている。ディスク制御部１２ａは、タイマ１２ｂを用いて定期的にディスク部１４の状態を監視し、メモリ１５を用いてディスク部１４の記憶空間１００のアドレス管理を行い、ディスク部１４の記憶空間１００に対するアクセスやその記憶空間１００内での負荷分散等を行う。
【００１４】
コントローラ１３は、コントローラ１２に対して冗長に設けられたものであり、ディスク制御部１３ａとタイマ１３ｂとを備えている。コントローラ１３のディスク制御部１３ａは、コントローラ１２のディスク制御部１２ａとは独立して、同様に機能する。
コントローラ１２及びコントローラ１３は、それぞれＣＰＵ等で構成してもよい。
【００１５】
コントローラ１２は、複数の上位装置２０とインターフェースパスで接続されている。コントローラ１３は、コントローラ１２とは独立して、複数の上位装置２０とインターフェースパスで接続されている。即ち、インターフェースパスが冗長に設けられ、各コントローラ１２，１３が、上位装置２０からの要求をそれぞれ受けることが可能になっている。
【００１６】
図２は、ディスク部１４の記憶空間１００を説明するための図である。
ディスク部１４の持つ記憶空間１００には、複数のプール１１１，１１２，１１３を統合した仮想論理ディスク１１０が設定されている。各プール１１１，１１２，１１３には、論理ディスク（ＬＤ）１１４がそれぞれ配置されている。論理ディスク１１４の容量は、例えば複数のＨＤＤ１１の記憶領域を合わせたものである。
【００１７】
次に、ディスクアレイ装置１０の動作を説明する。
図３は、ディスクアレイ装置１０の行うディスクアレイ制御方法を説明するためのフローチャートである。
【００１８】
各コントローラ１２，１３のディスク制御部１２ａ，１３ａは、ディスク部１４の各プール１１１〜１１３を仮想的に１つの論理ディスクとして管理し、個々のプール１１１〜１１３の物理アドレスに対して、論理アドレスを対応させて管理する。更に、ディスク制御部１２ａ，１３ａは、個々のプール１１１〜１１３の論理アドレスを統合して１つの仮想論理ディスクの論理アドレスとして管理する。これにより仮想論理ディスクの任意の論理アドレスと仮想論理ディスク内の各Ｐｏｏｌ（ＬＤ）との相関関係が維持可能である。仮想論理ディスク内の各プール１１１〜１１３へのアクセスはこの論理アドレスにより行われる。
【００１９】
ディスク制御部１２ａ，１３ａは、ステップＳ１０１では、上位装置２０からの指示を持ち、制御停止の指示が与えられたときには（ステップＳ１０１：ＹＥＳ）、ディスクアレイ制御方法を停止し、処理を終了する。
【００２０】
一方、タイマ１２ｂ，１３ｂは、負荷の状態を定期的に確認するための負荷確認時間を計時し、ディスク制御部１２ａ，１３ａに知らせる。ディスク制御部１２ａ，１３ａは、制御停止の指示が与えられず（ステップＳ１０１：ＮＯ）、タイマ１２ｂ，１３ｂによって負荷確認時間が経過したことを知らさせれると（ステップＳ１０２：ＹＥＳ）、タイマ１２ｂ，１３ｂをリセットすると共に、負荷状態を示す情報をメモリ１５から取得する（ステップＳ１０３）。
【００２１】
負荷状態を示す情報には、例えば現在の各プール１１１〜１１３の負荷の状態が高いか低いかを示す現在情報、各プール１１１〜１１３に書込まれているデータ量を示す使用情報、各プール１１１〜１１３に書込まれているデータの所定時間あたりのアクセス回数、即ち、アクセス頻度を示す統計情報とがある。ディスク制御部１２ａ，１３ａは、これらの負荷状態を示す情報を共用して参照する。
【００２２】
ディスク制御部１２ａ，１３ａは、統計情報に基づいて、各プール１１１〜１１３の負荷量を求め、負荷量が所定値を超える場合には負荷分散処理を開始する（ステップＳ１０４）。
【００２３】
図４は、負荷分散処理の説明図である。
このステップＳ１０４の負荷分散処理では、例えば特定のプールにアクセス頻度の高いデ−タが集中している場合は、アクセス頻度の高いデータを他のプールへ再配置する。また、書込まれているデータ量が多いプールからは、一部のデ−タを他のプールに再配置する。
【００２４】
負荷分散処理を行っている期間には、そのプールが負荷の高い状態になるので、負荷分散処理の開始時には、そのプールの負荷の高くなっていることを示す情報を現在情報としてメモリ１５上に示し、負荷分散処理の終了後に、負荷の低くなっていることを示す情報を現在情報としてメモリ１５上に示す。
【００２５】
負荷分散処理が開始された後、或いはタイマ１２ｂ、１３ｂから負荷確認時間が経過したことを知らされていない状態で（ステップＳ１０２：ＮＯ）、上位装置２０から書込み要求或いは読出し要求があると（ステップＳ１０５：ＹＥＳ）、ディスク制御部１２ａ，１３ａは、メモリ１５上の負荷状態を示す情報を参照し（ステップＳ１０６）、上位装置２０からの要求に対応して、ディスク部１４にアクセスする（ステップＳ１０７）。
【００２６】
上位装置２０からの要求が書込みの場合、ディスク部１４の仮想論理ディスク１１０内へデ−タの書込みを行う。この時、ディスク制御部１２ａ，１３ａは実際にデ−タを書込むプールを、メモリ１５内に保持している負荷情報を基に負荷状態の一番低いプールとする。また、上位装置２０からの要求が読出し要求の場合、ディスク制御部１２ａ，１３ａは、実際にデ−タが書込まれている仮想論理ディスク１１０内のプールからデ−タを読出し、上位装置２０へ転送する。
【００２７】
ステップＳ１０７でのアクセスが終了した段階で、ディスク制御部１２ａ，１３ａは、メモリ１５上の統計情報を更新する。即ち、データの書込み或いは読出しを行ったプールのアクセス頻度を示す情報を書換える（ステップＳ１０８）。
【００２８】
ステップＳ１０８が終了したとき、或いは上位装置２０から書込み或いは読出しの要求がない場合（ステップＳ１０５：ＮＯ）、処理をステップＳ１０１に戻し、一連の処理を繰り返す。
【００２９】
以上のように、本実施形態のディスクアレイ装置１０では、タイマ１２ｂ，１３ｂで設定される期間毎に、プール１１１〜１１３の負荷の状態を監視し、その結果に応じて、データをプール間で移動させている。その結果、プール１１１〜１１３のうちの特定のプールにアクセス頻度の高いデータが集中することがなくなる。また、各プールの使用率も平均化される。よって、各プール１１１〜１１３の負荷状態が均一化できる。
【００３０】
［第２の実施形態］
図５は、本発明の第２の実施形態に係るディスクアレイ装置３０を示す構成図である。
このディスクアレイ装置３０は、ディスク部１４の仮想論理ディスク１１０に未使用のＨＤＤ１６を配置し、プール１１１〜１１３の容量が不足するときに未使用のＨＤＤ１６を使用するようにしている。他の構成は、第１の実施形態のディスクアレイ装置１０と同様である。
【００３１】
この場合、コントローラ１２，１３のディスク制御部１２ａ，１３ａは、メモリ１５を用いてディスク部１４の記憶空間１００のアドレス管理を行うと共に、タイマ１２ｂ，１３ｂを用いて定期的にディスク部１４の状態を監視し、ディスク部１４の記憶空間１００に対するアクセスやその記憶空間１００内で負荷分散や容量拡張等を行う。
【００３２】
次に、ディスクアレイ装置３０の動作を説明する。
図６は、ディスクアレイ装置３０の行うディスクアレイ制御方法を説明するためのフローチャートである。
【００３３】
各コントローラ１２，１３のディスク制御部１２ａ，１３ａは、第１の実施形態と同様、ディスク部１４の各プール１１１〜１１３を仮想的に１つの論理ディスクとして管理し、個々のプール１１１〜１１３の物理アドレスに対して、論理アドレスを対応させて管理する。ディスク制御部１２ａ，１３ａは、個々のプール１１１〜１１３の論理アドレスを統合して一つの仮想論理ディスクの論理アドレスとして管理する。これにより仮想論理ディスクの任意の論理アドレスと仮想論理ディスク内の各プール１１１〜１１３との相関関係が維持可能である。仮想論理ディスク内の各プール１１１〜１１３へのアクセスはこの論理アドレスにより行われる。
【００３４】
ディスク制御部１２ａ，１３ａは、ステップＳ２０１では、上位装置２０からの指示を持ち、制御停止の指示が与えられたときには（ステップＳ２０１：ＹＥＳ）、ディスクアレイ制御方法を停止し、処理を終了する。
【００３５】
一方、タイマ１２ｂ，１３ｂは、プール１１１〜１１３の容量を定期的に確認するための容量確認時間を計時すると共に、プール１１１〜１１３の負荷の状態を定期的に確認するための負荷確認時間を計時する。
【００３６】
ディスク制御部１２ａ，１３ａは、制御停止の指示が与えられず（ステップＳ２０１：ＮＯ）、タイマ１２ｂ，１３ｂによってプール１１１〜１１３の容量を確認するための容量確認時間が経過したことをタイマ１２ｂ，１３ｂから知らさせれると（ステップＳ２０２：ＹＥＳ）、タイマ１２ｂ，１３ｂをリセットすると共に、プール１１１〜１１３から容量不足のプールを検出する（ステップＳ２０３）。
【００３７】
この容量不足のプールを検出する処理は、各プール１１１〜１１３の使用状態、つまり書込まれているデータ数を調べ、メモリ１５に格納する。そして、使用状態が既定値を超えるプールを容量不足のプールとして検出する。
容量不足のプールを検出したディスク制御部１２ａ，１３ａは、容量不足のプールに、仮想論理ディスク１１０中の未使用のＨＤＤ１６を割り当て、容量不足のプールの一部として使用可能にする。即ち、容量拡張を行う（ステップＳ２０４）。
【００３８】
容量拡張を行っている期間には、そのプールが負荷の高い状態になるので、容量拡張の開始時には、そのプールの負荷の高くなっていることを示す情報を現在情報としてメモリ１５上に示し、容量拡張処理の終了後に、負荷の低くなっていることを示す情報を現在情報としてメモリ１５上に示す。
【００３９】
ディスク制御部１２ａ，１３ａは、更に、仮想論理ディスク１１０に未使用のＨＤＤ１６がなくなった場合に、新たな未使用のＨＤＤを仮想論理ディスク１１０に配置する（ステップＳ２０５）。
【００４０】
尚、容量不足のプールが検出されなかった場合には、ステップＳ２０４及びステップＳ２０５の処理は、行わない。
【００４１】
ディスク制御部１２ａ，１３ａは、タイマ１２ｂ，１３ｂから容量確認時間が経過したことをタイマ１２ｂ，１３ｂから知らさせれていない状態で（ステップＳ２０２：ＮＯ）、プール１１１〜１１３の負荷確認時間が経過したことを知らされると（ステップＳ２０６：ＹＥＳ）、タイマ１２ｂ，１３ｂをリセットすると共に、負荷状態を示す情報をメモリ１５から取得する（ステップＳ２０７）。
【００４２】
負荷状態を示す情報には、例えば現在の各プール１１１〜１１３の負荷の状態が高いか低いかを示す現在情報、各プール１１１〜１１３に書込まれているデータ量を示す使用情報、各プール１１１〜１１３に書込まれているデータの所定時間あたりのアクセス回数、即ち、アクセス頻度を示す統計情報とがある。ディスク制御部１２ａ，１３ａは、これらの負荷状態を示す情報を共用して参照する
【００４３】
ディスク制御部１２ａ，１３ａは、統計情報に基づいて、各プール１１１〜１１３の負荷分散処理を開始する（ステップＳ２０８）。
このステップＳ２０８の負荷分散処理では、第１の実施形態と同様に、特定のプールにアクセス頻度の高いデ−タが集中している場合は、アクセス頻度の高いデータの一部を他のプールに再配置する。また、書込まれているデータ量が多いプールからは、一部のデ−タを他のプールに再配置する。
【００４４】
負荷分散処理を行っている期間には、そのプールが負荷の高い状態になるので、負荷分散処理の開始時には、そのプールの負荷の高くなっていることを示す情報を現在情報としてメモリ１５上に示し、負荷分散処理の終了後に、負荷が低くなっていることを示す情報を現在情報としてメモリ１５上に示す。
【００４５】
また、ディスク制御部１２ａ，１３ａは、タイマ１２ｂ，１３ｂから負荷確認時間が経過したことを知らされていない状態で（ステップＳ２０６：ＮＯ）、上位装置２０から書込み要求或いは読出し要求があると（ステップＳ２０９：ＹＥＳ）、メモリ１５上の負荷状態を示す情報を参照し（ステップＳ２１０）、上位装置２０からの要求に対応して、ディスク部１４にアクセスする（ステップＳ２１１）。
【００４６】
上位装置２０からの要求が書込みの場合、ディスク部１４の仮想論理ディスク内へデ−タの書込みを行う。この時、ディスク制御部１２ａ，１３ａは実際にデ−タを書込むプールを、メモリ１５内に保持している負荷情報を基に負荷状態の一番低いプールとする。また、上位装置２０からの要求が読出し要求の場合、ディスク制御部１２ａ，１３ａは、実際にデ−タが書込まれている仮想論理ディスク内のプールからデ−タを読出し、上位装置２０へ転送する。
【００４７】
アクセスが終了した段階で、ディスク制御部１２ａ，１３ａは、メモリ１５上の統計情報を更新する。即ち、データの書込み或いは読出しを行ったプールのアクセス頻度を示す情報を書換える（ステップＳ２１２）。
【００４８】
ステップＳ２１２が終了したとき、或いは上位装置２０から書込み或いは読出しの要求がない場合（ステップＳ２０９：ＮＯ）、処理をステップＳ２０１に戻し、一連の処理を繰り返す。
【００４９】
以上のように、本実施形態のディスクアレイ装置では、容量拡張処理を行うので、第１の実施形態の利点に加えて、さらに、各プール１１１〜１１３の容量が不足しても、未使用のＨＤＤ１６により、各プール１１１〜１１３の容量が補填されるという利点がある。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の実施形態に係るディスクアレイ装置を示す構成図である。
【図２】ディスク部の記憶空間を説明するための図である。
【図３】ディスクアレイ装置の行うディスクアレイ制御方法を説明するためのフローチャートである。
【図４】負荷分散処理の説明図である。
【図５】本発明の第２の実施形態に係るディスクアレイ装置を示す構成図である。
【図６】ディスクアレイ装置の行うディスクアレイ制御方法を説明するためのフローチャートである。
【図７】従来のディスクアレイ装置の概要を示す図である。
【符号の説明】
【００５１】
１０，３０      ディスクアレイ装置
１１      ＨＤＤ
１２，１３      コントローラ
１２ａ，１３ａ      ディスク制御部
１２ｂ，１３ｂ      タイマ
１４      ディスク部
２０      上位装置
１００      記憶空間
１１０      仮想論理ディスク
１１１〜１１３      プール
【図１】
2009252106.tif 000003
【図２】
2009252106.tif 000004
【図３】
2009252106.tif 000005
【図４】
2009252106.tif 000006
【図５】
2009252106.tif 000007
【図６】
2009252106.tif 000008
【図７】
2009252106.tif 000009