(57)【特許請求の範囲】
【請求項１】
複数のＲＡＩＤグループの各々を制御するディスクアレイ装置において、
前記各ＲＡＩＤグループ内のデータブロック毎に、前記データブロックに対するアクセス回数のカウントを行い、ＲＡＩＤグループ毎に、前記ＲＡＩＤグループ内の全てのデータブロックに渡ってアクセス回数を集計し、前記各ＲＡＩＤグループの総アクセス回数を求めるアクセス監視部と、
前記各ＲＡＩＤグループ間の総アクセス回数の差が予め設定した割合よりも大きい場合、前記総アクセス回数が多いＲＡＩＤグループ内のデータブロックと前記総アクセス回数が少ないＲＡＩＤグループ内のデータブロックをスワップし、前記各ＲＡＩＤグループの総アクセス回数が平均化されるまで、データブロックのスワップを行うデータスワップ制御部と
を具備する
ディスクアレイ装置。
【請求項２】
請求項１に記載のディスクアレイ装置であって、
アクセスの度に、データブロックの移動先を記録するための管理テーブルを参照して、データブロックに対してアクセスを行う主制御部
を更に具備し、
前記データスワップ制御部は、データブロックをスワップした際、前記管理テーブルに対して、前記スワップされたデータブロックの移動先を、実際に移動した先のＲＡＩＤグループ番号及びデータブロック番号に更新する
ディスクアレイ装置。
【請求項３】
請求項２に記載のディスクアレイ装置であって、
前記データスワップ制御部は、前記管理テーブルを参照して、前記スワップされたデータブロックを元のＲＡＩＤグループに復元し、前記管理テーブルの当該データブロックの移動先の記録を元に戻し、全てのデータブロックが復元されたＲＡＩＤグループを、スワップ処理の対象から外し、運用中におけるＲＡＩＤグループの取り付け及び取り外しを受け付ける
ディスクアレイ装置。
【請求項４】
複数のＲＡＩＤグループの各々を制御するディスクアレイ装置により実施されるデータスワップ方法であって、
前記各ＲＡＩＤグループ内のデータブロック毎に、前記データブロックに対するアクセス回数のカウントを行い、ＲＡＩＤグループ毎に、前記ＲＡＩＤグループ内の全てのデータブロックに渡ってアクセス回数を集計し、前記各ＲＡＩＤグループの総アクセス回数を求めることと、
前記各ＲＡＩＤグループ間の総アクセス回数の差が予め設定した割合よりも大きい場合、前記総アクセス回数が多いＲＡＩＤグループ内のデータブロックと前記総アクセス回数が少ないＲＡＩＤグループ内のデータブロックをスワップし、前記各ＲＡＩＤグループの総アクセス回数が平均化されるまで、データブロックのスワップを行うことと
を含む
データスワップ方法。
【請求項５】
請求項４に記載のデータスワップ方法であって、
データブロックをスワップした際、データブロックの移動先を記録するための管理テーブルに対して、前記スワップされたデータブロックの移動先を、実際に移動した先のＲＡＩＤグループ番号及びデータブロック番号に更新することと、
アクセスの度に、前記管理テーブルを参照して、データブロックに対してアクセスを行うことと
を更に含む
データスワップ方法。
【請求項６】
請求項５に記載のデータスワップ方法であって、
前記管理テーブルを参照して、前記スワップされたデータブロックを元のＲＡＩＤグループに復元することと、
前記管理テーブルの当該データブロックの移動先の記録を元に戻すことと、
全てのデータブロックが復元されたＲＡＩＤグループを、スワップ処理の対象から外すことと、
運用中におけるＲＡＩＤグループの取り付け及び取り外しを受け付けることと
を更に含む
データスワップ方法。
【請求項７】
複数のＲＡＩＤグループの各々を制御するディスクアレイ装置により実行されるプログラムであって、
前記各ＲＡＩＤグループ内のデータブロック毎に、前記データブロックに対するアクセス回数のカウントを行い、ＲＡＩＤグループ毎に、前記ＲＡＩＤグループ内の全てのデータブロックに渡ってアクセス回数を集計し、前記各ＲＡＩＤグループの総アクセス回数を求めるステップと、
前記各ＲＡＩＤグループ間の総アクセス回数の差が予め設定した割合よりも大きい場合、前記総アクセス回数が多いＲＡＩＤグループ内のデータブロックと前記総アクセス回数が少ないＲＡＩＤグループ内のデータブロックをスワップし、前記各ＲＡＩＤグループの総アクセス回数が平均化されるまで、データブロックのスワップを行うステップと
をディスクアレイ装置に実行させるための
プログラム。
【請求項８】
請求項７に記載のプログラムであって、
データブロックをスワップした際、データブロックの移動先を記録するための管理テーブルに対して、前記スワップされたデータブロックの移動先を、実際に移動した先のＲＡＩＤグループ番号及びデータブロック番号に更新するステップと、
アクセスの度に、前記管理テーブルを参照して、データブロックに対してアクセスを行うステップと
を更にディスクアレイ装置に実行させるための
プログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記管理テーブルを参照して、前記スワップされたデータブロックを元のＲＡＩＤグループに復元するステップと、
前記管理テーブルの当該データブロックの移動先の記録を元に戻すステップと、
全てのデータブロックが復元されたＲＡＩＤグループを、スワップ処理の対象から外すステップと、
運用中におけるＲＡＩＤグループの取り付け及び取り外しを受け付けるステップと
を更にディスクアレイ装置に実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置に関し、特にＲＡＩＤグループの負荷分散を行うディスクアレイ装置に関する。
【背景技術】
【０００２】
ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）は、複数のハードディスクをまとめて１台のハードディスクとして管理する技術であり、データを分散して記録するため、高速化や安全性の向上が図られる。また、ＲＡＩＤはディスクアレイ（Ｄｉｓｋ  Ａｒｒａｙ）と呼ばれることもある。ディスクアレイとは、ハードディスク（磁気ディスク装置）を複数搭載し、大容量ディスクとして扱う技術、装置を指す。ディスクアレイは、装置の信頼性や処理能力を向上させるＲＡＩＤ技術が採用されている。
【０００３】
複数のＲＡＩＤグループを備えた従来のディスクアレイ装置では、１つのＲＡＩＤグループにアクセス負荷が集中し、他のＲＡＩＤグループにはアクセスが少ないという状況になった場合、それらの負荷を分散させて処理性能を向上させる必要があるが、そのためには負荷状況を分析し、予め平均的に負荷が分散できる様人手でＲＡＩＤグループを再構築する必要があり、時間と労力を必要とした。
【０００４】
特に、コンピュータシステムを構築する場合、ディスクアクセスを含めた処理が効率よく動作するかどうかが重要なポイントとなるため、どのＲＡＩＤグループに対してどの程度の負荷がかかるか分析を十分に行う必要があるが、それらの分析が十分でなかったり、また分析ができていたとしても、効率よく負荷分散を行える様システムを構築するためには時間と労力が必要となっていた。
【０００５】
関連する技術として、特開２００３−１５０３２４号公報（特許文献１）にディスクアレイ装置が開示されている。
このディスクアレイ装置は、記録媒体からＲＡＩＤグループを構成し、前記ＲＡＩＤグループを１つ又は複数のロジカルユニットに分割してアクセスすることができる。
また、前記ＲＡＩＤグループを前記ロジカルユニットに分割する時に、前記ＲＡＩＤグループに属する記録媒体の中に、自動的にスワップ領域を生成し、前記ロジカルユニットを任意の大きさからなるブロックに分割する。そして、上位装置のアクセスを前記ブロック単位に計測して、前記ブロックのアクセス頻度が所定の回数を超えた時には、そのブロックを、そのブロックを含むロジカルユニットの属するＲＡＩＤグループの別のＲＡＩＤグループのスワップ領域にコピーして、前記上位装置のそのブロックのアクセスを、前記スワップ領域の中のコピーしたブロックにより行うように制御することを特徴とする。
この従来技術では、スワップ領域を必要に応じて増やさなければならない点、及び、別のＲＡＩＤグループの負荷が大きい場合にもスワップしてしまう点が問題となる。
【０００６】
特開２００５−２０９０５５号公報（特許文献２）にストレージの負荷分散方法が開示されている。
このストレージの負荷分散方法は、入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて用いられる。そして、該ボリュームに関する負荷の偏りを監視する負荷監視部を有し，該負荷監視部により負荷の偏りを検知した場合，あるボリューム群内の論理ボリュームの内容を別のボリューム群に備えられたある論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動することを特徴とする。
この従来技術では、予備のボリュームを余計に用意しなければならないという問題がある。
【０００７】
特開２００５−２１５７１５号公報（特許文献３）に動的負荷分散方法が開示されている。
この動的負荷分散方法は、ファイルを格納するためのディスクと、ファイルをディレクトリツリー形式で管理するファイルシステム機能を備えた計算機システムにおける負荷分散方法である。そして、ディスクへのＩ／Ｏ要求に関する性能情報を取得し、その要求が発生したディレクトリの名称を取得し、ディスク装置上の負荷の高い局所を含むディレクトリとディレクトリ下のすべての情報を別のディスクに移動し、移動元と移動先のディレクトリを関連付ける。
この従来技術では、移動先のディスクの容量が小さい場合、負荷分散ができないという問題がある。
【０００８】
特開平８−６３２９８号公報（特許文献４）にディスクアレイ装置が開示されている。
このディスクアレイ装置は、複数のディスク装置と、該ディスク装置群を制御するアレイ制御部とから構成される。前記アレイ制御部は、前記上位装置との接続を目的とする上位インタフェース制御部と、前記ディスク装置との接続を目的とするディスクインタフェース制御部と、ディスクアレイ装置の統括制御を行うメイン制御部と、上位装置とディスク装置間での転送データを一時バッファリングするバッファ部とから構成される。更に、前記メイン制御部において、前記ディスクアレイ装置を構成する個々のディスク装置仕様情報を管理する構成ディスク仕様管理部と、この構成ディスク仕様管理情報に基づき個々のディスク装置に対するアクセス負荷を制御する負荷分散制御部とを具備する。
この従来技術は、容量と性能が異なるディスクを使用した場合にデータの配置の最適化を行うことにより性能向上を図ることを目的としたものであり、同一ディスクを使用した場合の負荷分散については明記されていない。また、実施例ではデータストライプ単位でアクセス回数をカウントしているが、どの時点でカウント開始や最適化を行うか等が明記されておらず、構成が明確でない。
【０００９】
【特許文献１】特開２００３−１５０３２４号公報
【特許文献２】特開２００５−２０９０５５号公報
【特許文献３】特開２００５−２１５７１５号公報
【特許文献４】特開平８−６３２９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、人手を介さずに自動でＲＡＩＤグループの負荷分散を行うことにより、ディスクアクセスを短時間で、より効率的にシステムを構築できることを可能としたディスクアレイ装置、データスワップ方法、及びプログラムを提供することである。
本発明の他の目的は、複数のＲＡＩＤグループの中でアクセス頻度が高いＲＡＩＤグループと、アクセス頻度が低いＲＡＩＤグループの間で、それぞれのデータブロックをスワップし、それぞれのＲＡＩＤグループのアクセス頻度が平均化されるまでデータブロックのスワップを行うことにより、ディスクアクセスの負荷を分散させるディスクアレイ装置、データスワップ方法、及びプログラムを提供することである。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明のディスクアレイ装置（２）は、複数のＲＡＩＤグループ（３，４）を制御するディスクアレイ装置（２）である。
本ディスクアレイ装置（２）は、各々のＲＡＩＤグループ内のデータブロック毎に、前記データブロックに対するアクセス回数のカウントを行い、且つ、ＲＡＩＤグループ毎に、前記ＲＡＩＤグループ内の全てのデータブロックに渡ってアクセス回数（総アクセス回数）を集計するアクセス監視部（２）と、前記ＲＡＩＤグループ間の総アクセス回数の差が予め設定した割合よりも大きい場合、前記総アクセス回数が多いＲＡＩＤグループ内のデータブロックと前記総アクセス回数が少ないＲＡＩＤグループ内のデータブロックをスワップするデータスワップ制御部（２４）とを具備する。
【００１３】
データブロック毎のアクセス回数及びスワップ先が記録される管理テーブル（２３）を更に具備し、前記アクセス監視部（２２）は、前記総アクセス回数を前記管理テーブル（２３）に記録し、前記データスワップ制御部（２４）にスワップの開始を通知する。
【００１４】
前記データスワップ制御部（２４）は、前記スワップを行ったデータブロックについて、スワップ先のＲＡＩＤグループ及びデータブロックの位置を前記アクセス監視部（２２）に通知し、前記管理テーブル（２３）に記録する。
【００１５】
前記アクセス監視部（２２）は、スワップの処理が完了したら、全てのアクセス回数を初期化し、次のアクセス監視処理に備える。
【００１６】
前記アクセス監視部（２２）は、アクセスの度に前記管理テーブル（２３）を参照してスワップ先のＲＡＩＤグループに対してアクセスを行うようにする。
【００１７】
前記データスワップ制御部（２４）は、前記総アクセス回数が多いＲＡＩＤグループ（３）内のアクセス回数の多いデータブロックから順に、前記総アクセス回数が少ないＲＡＩＤグループ（４）内のアクセス回数の少ないデータブロックから順に、前記総アクセス回数の差が最小になるまでスワップを繰り返す。
【００１８】
前記アクセス監視部（２２）は、外部のホストコンピュータ（１）からの指示で前記各ＲＡＩＤグループへのデータアクセスの制御を行う。
【００１９】
本発明のデータスワップ方法は、（ａ）ＲＡＩＤグループ内の各データブロック単位にアクセス回数のカウントを行うステップと、（ｂ）前記ＲＡＩＤグループ毎に全てのデータブロックのアクセス回数を集計した総アクセス回数を管理テーブル（２３）に記録するステップと、（ｃ）前記ＲＡＩＤグループ間の前記総アクセス回数が平均化されるまで前記データブロックのスワップを行うステップと、（ｄ）前記スワップを行ったデータブロックについて、スワップ先のＲＡＩＤグループ及びデータブロックの位置を管理テーブル（２３）に記録するステップとを具備する。
【００２０】
本発明のデータスワップ方法は、（ｅ）スワップの処理が完了したら、全てのアクセス回数を初期化するステップを更に具備する。
【００２１】
本発明のデータスワップ方法は、（ｆ）アクセスの度に前記管理テーブル（２３）を参照してスワップ先のＲＡＩＤグループに対してアクセスを行うステップを更に具備する。
【００２２】
本発明のプログラムは、上記のいずれか一項に記載のデータスワップ方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２３】
第１の効果は、ＲＡＩＤグループ間のアクセス頻度に差がある場合、自動でアクセス頻度の集計を行うので、人手を介さずに負荷の多いデータブロックを求めることができることである。
第２の効果は、負荷の多いＲＡＩＤグループのデータブロックと、負荷の少ないＲＡＩＤグループのデータブロックをアクセス頻度の順番に応じて自動でデータブロックのスワップを行うので、人手を介さず短時間でＲＡＩＤグループ間の負荷の分散ができることである。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の第１実施形態について添付図面を参照して説明する。
図１は、本発明のディスクアレイ装置のブロック図である。
本発明は、ホストコンピュータ１、ディスクアレイコントローラ２、ＲＡＩＤグループＡ；３、ＲＡＩＤグループＢ；４を含む構成となっている。
【００２５】
ホストコンピュータ１は、ディスクアレイコントローラ２に対して、ディスクアレイコントローラ２が監視している各ＲＡＩＤグループへのデータアクセスの制御を行うように指示する。
ディスクアレイコントローラ２は、ＲＡＩＤグループＡ；３とＲＡＩＤグループＢ；４の２つのＲＡＩＤグループを制御する。
【００２６】
この時、ディスクアレイコントローラ２は、主制御部２０、監視時間制御部２１、アクセス監視部２２、管理テーブル２３、データスワップ制御部２４、退避メモリ２５を備える。
【００２７】
主制御部２０は、ホストコンピュータ１やＲＩＡＤグループＡ；３、ＲＩＡＤグループＢ；４の外部要因により、監視時間制御部２１とアクセス監視部２２とデータスワップ制御部２４への制御指示を行う。
監視時間制御部２１は、アクセス監視の開始時間と終了時間を保持し、それらの時間に達した時にアクセス監視の開始、及び終了を制御する。
アクセス監視部２２は、各ＲＡＩＤグループ内の各データブロック単位とＲＡＩＤグループ全体のアクセス回数をカウントしてその結果を管理テーブル２３に保持する。
管理テーブル２３は、アクセス監視部２２がデータを格納するためのデータテーブルである。
データスワップ制御部２４は、ＲＩＡＤグループＡ；３、ＲＩＡＤグループＢ；４のそれぞれのアクセス回数が均一（差が予め設定された割合以内）になる様、アクセス回数の多い方のＲＡＩＤグループのデータブロックと、アクセス回数の少ない方のＲＡＩＤグループのデータブロックについてスワップを行う。
退避メモリ２５は、データスワップ制御部２４が一時的なデータの退避を行うためのメモリである。
【００２８】
ＲＡＩＤグループＡ；３は、データブロックＡ＃０（３０）、Ａ＃１（３１）、Ａ＃２（３２）、Ａ＃３（３３）、Ａ＃４（３４）を有する。
ＲＡＩＤグループＢ；４は、データブロックＢ＃０（４０）、Ｂ＃１（４１）、Ｂ＃２（４２）、Ｂ＃３（４３）、Ｂ＃４（４４）を有する。
【００２９】
図２を参照して、本実施形態における動作について説明する。
（１）ステップＳ１０１
監視時間制御部２１は、アクセス監視時間の開始時刻を検知した場合、それぞれアクセス監視部２２に対して開始を通知する。この開始の通知はホストコンピュータ１等のディスクアレイコントローラ２の外部からも可能とする。
（２）ステップＳ１０２
アクセス監視部２２は、監視時間制御部２１からの開始通知により、ＲＡＩＤグループＡ；３、及びＲＡＩＤグループＢ；４の各データブロック単位にアクセス回数のカウントを開始する。カウントは、データブロックのアクセス毎に管理テーブル上の対象となるデータブロックのアクセス回数欄の値をインクリメント（整数型の変数の値を１増やす処理）することにより行う。但し、実際には、インクリメントによる値の増加量は１に限らない。例えば、インクリメント１回につき、アクセス回数欄の値を１０増加するようにしても良い。
（３）ステップＳ１０３
監視時間制御部２１は、アクセス監視時間の終了時刻を検知した場合、それぞれアクセス監視部２２に対して終了を通知する。開始の通知の場合と同様、この終了の通知はホストコンピュータ１等のディスクアレイコントローラ２の外部からも可能とする。
（４）ステップＳ１０４
監視時間制御部２１から終了が通知された場合、アクセス監視部２２は、ＲＡＩＤグループ内のすべてのデータブロックのアクセス回数を集計してそのＴＯＴＡＬ（合計）数を管理テーブル２３に記録する。
（５）ステップＳ１０５
また、アクセス監視部２２は、データスワップ制御部２４にデータスワップ処理の開始を通知する。
（６）ステップＳ１０６
データスワップ制御部２４では、管理テーブル２３上のデータを元にＲＡＩＤグループＡ；３、及びＲＡＩＤグループＢ；４間のＴＯＴＡＬのアクセス回数が平均化される様、退避メモリ２５を利用してデータブロックのスワップを行う。具体的には、総アクセス回数がＲＡＩＤグループＢ；４よりもＲＩＡＤグループＡ；３の方が多い場合、ＲＡＩＤグループＡ；３で最もアクセス回数が多いデータブロックと、ＲＡＩＤグループＢ；４で最もアクセス回数の少ないデータブロックから順番にデータスワップを行い、その総アクセスの差が予め指定された割合以内になるまでデータスワップを行う。同時にデータスワップを行ったデータブロックについてはスワップ先のＲＡＩＤグループとデータブロック位置をアクセス監視部２２に通知し、管理テーブル２３に記録する。
（７）ステップＳ１０７
データスワップの処理が完了したら、すべてのアクセス回数を初期化し、次のアクセス監視処理に備える。
【００３０】
通常のアクセスでは、アクセス対象のデータブロックがスワップされている可能性があるため、アクセスの度に管理テーブル２３を参照してスワップ先のＲＡＩＤグループに対してアクセスを行う。
【００３１】
また、スワップされたデータブロックは必要に応じ元のＲＡＩＤグループに復元できるものとし、更に、全てのデータブロックが復元されたＲＡＩＤグループに対してはスワップ処理の対象から外すことも可能とすることにより、運用中においてもＲＡＩＤグループの取り付け／取り外しを可能とする。
【００３２】
管理テーブル２３には、データブロックの移動先が“無し”の状態から、実際に移動した先のＲＡＩＤグループ番号とデータブロック番号に、記録を更新する。その後の通常のデータアクセスは管理テーブル２３の移動先を参照してから移動先のデータブロックをアクセスする。
データブロックを元に戻す必要が生じた場合、管理テーブル２３の記録を参照して、データブロックを元のデータブロック位置に戻す（スワップする）。同時に、管理テーブル２３において、データブロックの移動先のＲＡＩＤグループ番号とデータブロック番号は“無し”の状態に更新する。
【００３３】
具体的な例として図３はスワップ前の管理テーブル２３の内容、図４はスワップ後の管理テーブル２３の内容を示す。
【００３４】
図３において、ＲＩＡＤグループＡのＴＯＴＡＬアクセス回数は２２４０、ＲＡＩＤグループＢのＴＯＴＡＬアクセス回数は１００となっており、ＲＡＩＤグループＡの最もアクセス回数の多いブロック番号＃０とＲＡＩＤグループＢの最もアクセス回数の少ないブロック番号＃４をスワップし、次いでＲＡＩＤグループＡのブロック番号＃２とＲＡＩＤグループＢのブロック番号＃２をスワップする。
【００３５】
その結果、図４で示すようにＲＩＡＤグループＡのＴＯＴＡＬアクセス回数は１１６０、ＲＡＩＤグループＢのＴＯＴＡＬアクセス回数は１１８０となり、アクセス回数がほぼ平均化される。この時、ＲＡＩＤグループＡとＢの総アクセス回数の差は２０で、全体のアクセスからの割合は０．８％であり、本実施形態では指定された割合が１％以内の場合、この時点でスワップ処理は終了する。
【００３６】
また、図３と図４に対応して、図１にスワップ前のＲＩＡＤ構成図、図５にスワップ後のＲＡＩＤ構成図を示す。
スワップ前は、図１の様に、ＲＡＩＤグループＡ；３のデータブロックは、Ａ＃０（３０）、Ａ＃１（３１）、Ａ＃２（３２）、Ａ＃３（３３）、Ａ＃４（３４）の構成となり、ＲＡＩＤグループＢ；４のデータブロックは、Ｂ＃０（４０）、Ｂ＃１（４１）、Ｂ＃２（４２）、Ｂ＃３（４３）、Ｂ＃４（４４）の構成となっている。スワップの結果、ＲＡＩＤグループＡ；３のデータブロックＡ＃０（３０）と、ＲＡＩＤグループＢ；４のデータブロックＢ＃４（４４）がスワップされ、また、ＲＡＩＤグループＡ；３のデータブロックＡ＃２（３２）と、ＲＡＩＤグループＢ；４のデータブロックＢ＃２（４２）がスワップされる。図５はその結果のＲＡＩＤグループの構成を示す。
スワップ後は、図５の様に、ＲＡＩＤグループＡ；３のデータブロックは、Ｂ＃４（４４）、Ａ＃１（３１）、Ｂ＃２（４２）、Ａ＃３（３３）、Ａ＃４（３４）の構成となり、ＲＡＩＤグループＢ；４のデータブロックは、Ｂ＃０（４０）、Ｂ＃１（４１）、Ａ＃２（３２）、Ｂ＃３（４３）、Ａ＃０（３０）の構成となっている。
【００３７】
データスワップ処理はデータブロックが均等化されるまで行う。上記の例では、＃４の後のデータブロックのアクセス回数は“０”  としているため、アクセス回数の多い順から処理していくと、Ａ＃０とＢ＃４、Ａ＃２とＢ＃２までスワップした時点でアクセス回数はほぼ均等化され、割合として指定範囲内に収まったため、データスワップ処理は終了する。
【００３８】
なお、本実施形態は、ＲＡＩＤグループＡ；３とＲＡＩＤグループＢ；４の２つの場合を示したものであるが、３つ以上のＲＩＡＤグループがある場合も同じ方法により、アクセスの平均化が行えるものとする。
【００３９】
３つのＲＩＡＤグループがある場合を例とすると、以下の様になる。
３つのＲＩＡＤグループのうち、総アクセス回数が最も多いＲＡＩＤグループと、最も少ないＲＡＩＤグループとの間でスワップを行う。
例えば、ＲＡＩＤグループＡ，Ｂ，Ｃの総アクセス回数の割合（実際には総アクセス回数で比較）が１０：３：１とした場合、ＲＡＩＤグループＡとＣとの間でスワップを行う。スワップを進めていき、総アクセス回数がＣよりもＢの方が少なくなった場合、ＡとＢとの間でスワップを行うようにする。また、ＢとＣの総アクセス回数が等しい場合、ＲＡＩＤグループ番号の若番の方（ここではＢ）とスワップを行う。更に処理を進めていくと、最終的にはＡ，Ｂ，Ｃの割合がほぼ均等になり、それらが予め設定された割合以内になるまで処理を進める。
【００４０】
以上のように、本発明のディスクアレイ装置は、複数のＲＡＩＤグループの中でアクセス頻度が高いＲＡＩＤグループと、アクセス頻度が低いＲＡＩＤグループの間で、それぞれのデータブロックをスワップし、それぞれのＲＡＩＤグループのアクセス頻度が平均化されるまでデータブロックのスワップを行うことにより、ディスクアクセスの負荷を分散させることを特徴とする。
【００４１】
すなわち、本発明のディスクアレイ装置は、ＲＡＩＤグループＡとＲＡＩＤグループＢで構成するディスクアレイ装置において、それぞれＲＡＩＤグループ内のデータブロック単位にそのデータブロックに対するアクセス回数のカウントを行い、更に、ＲＡＩＤグループ全体のアクセス回数を集計する。ＲＡＩＤグループＡとＢの全体のアクセス頻度の差が予め設定した割合よりも大きい場合、アクセス回数が多いＲＡＩＤグループのデータブロックとアクセス回数が少ないＲＡＩＤグループのデータブロックをスワップし、ＲＡＩＤグループＡとＢのアクセスが平均化されるまで、データブロックのスワップを行う。
【図面の簡単な説明】
【００４２】
【図１】図１は、本発明のディスクアレイ装置のブロック図である。
【図２】図２は、本発明の動作を示すフローチャートである。
【図３】図３は、スワップ前の管理テーブルの内容を示す図である。
【図４】図４は、スワップ後の管理テーブルの内容を示す図である。
【図５】図５は、スワップ後のＲＡＩＤ構成図である。
【符号の説明】
【００４３】
１…  ホストコンピュータ
２…  ディスクアレイコントローラ
３…  ＲＡＩＤグループＡ
４…  ＲＡＩＤグループＢ
２０…  主制御部
２１…  監視時間制御部
２２…  アクセス監視部
２３…  管理テーブル
２４…  データスワップ制御部
２５…  退避メモリ
３０…  データブロックＡ＃０
３１…  データブロックＡ＃１
３２…  データブロックＡ＃２
３３…  データブロックＡ＃３
３４…  データブロックＡ＃４
４０…  データブロックＢ＃０
４１…  データブロックＢ＃１
４２…  データブロックＢ＃２
４３…  データブロックＢ＃３
４４…  データブロックＢ＃４
【図１】
0004710530.tif 000002
【図２】
0004710530.tif 000003
【図３】
0004710530.tif 000004
【図４】
0004710530.tif 000005
【図５】
0004710530.tif 000006