(57)【要約】【課題】  ボリューム群の負荷の偏りを自動的に分散させて、ボリューム群の間の負荷を均等化し、ディスク装置全体の性能向上を図る。【解決手段】入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて，論理ボリュームの負荷の偏りを監視する負荷監視部を有し，この負荷監視部によって負荷の偏りを検知した場合，負荷の大きいボリューム群内の論理ボリュームの内容を負荷の小さいボリューム群にある予備の論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動する。  【選択図】  図１
2005209055.tif 000002
【特許請求の範囲】
【請求項１】
入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて，該ボリュームに関する負荷の偏りを監視する負荷監視部を有し，該負荷監視部により負荷の偏りを検知した場合，あるボリューム群内の論理ボリュームの内容を別のボリューム群に備えられたある論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動することを特徴とするストレージの負荷分散方法。
【請求項２】
前記負荷監視部は、物理ディスクを有するディスク装置に備えられ、該負荷監視部により負荷の偏りを検知した場合，該負荷監視部からの指示により，あるボリューム群内の論理ボリュームを別ボリューム群にある予備の論理ボリュームへ内容のコピーして，ある論理ボリューム群にある論理ボリュームを他のボリューム群の間で移動することを特徴とする請求項１記載の負荷分散方法。
【請求項３】
前記負荷監視部は、該入出力要求を発行する処理装置に備えられ、該負荷監視部により負荷の偏りを検知した場合，該負荷監視部からの指示により，あるボリューム群内の論理ボリュームを別ボリューム群にある予備の論理ボリュームへ内容のコピーして，ある論理ボリューム群にある論理ボリュームを他のボリューム群の間で移動することを特徴とする請求項１記載の負荷分散方法。
【請求項４】
前記ストレージは，該ストレージの外部から入出力を行うために指定する論理ボリュームアドレスと，ストレージ内で用いる内部論理ボリュームアドレスを保持するボリューム管理テーブルを有し，該論理ボリュームアドレスと内部論理ボリュームアドレスの接続関係を変更することにより，論理ボリュームアドレスを変えることなく，論理ボリュームの構成を変更する請求項1乃至３のいずれかに記載の負荷分散方法。
【請求項５】
前記ストレージは入出力毎にアクセスログを採取し，前記負荷監視部は，該アクセスログから負荷の偏りを監視することを特徴とする請求項1乃至３のいずれかに記載の負荷分散方法。
【請求項６】
複数の論理ボリュームを備えた複数のボリューム群を含み、各ボリューム群内の論理ボリュームに対する入出力の処理が排他となるストレージシステムにおけるボリュームの移動制御方法において、
予め各ボリューム群の中に予備の論理ボリュームを形成するステップと、
該ボリューム群の負荷を監視するステップと、
該監視の結果、ボリューム群間で負荷の偏りが小さくなるように、負荷の大きいボリューム群内の論理ボリュームの内容を負荷の小さいボリューム群内の該予備の論理ボリュームへコピーするステップと、
を有することを特徴とするボリュームの移動制御方法。
【請求項７】
該ボリューム群の負荷の監視は、
処理装置から発行されるボリュームに対する入出力要求のアクセスログを取得するステップと、
該アクセスログを解析して論理ボリュームの負荷の偏りを算出するステップと、
を含むことを特徴とする請求項６記載のボリュームの移動制御方法。
【請求項８】
該ボリューム群の負荷の監視は、所定の時間内におけるボリューム群ごとの入出力要求に対するアクセス回数を計測して、アクセス回数の多いボリューム群とアクセス回数の少ないボリューム群を算出することにより行い、
該算出の結果、アクセス回数の多いボリューム群のうちのアクセス回数の多い論理ボリュームからアクセス回数の少ないボリューム群うちの予備の論理ボリュームへコピーすることにより論理ボリュームを移動することを特徴とする請求項６記載のボリュームの移動制御方法。
【請求項９】
複数のボリューム群を含むストレージは，外部の処理装置から入出力を行うために指定する論理ボリュームアドレスと，該ストレージ内で用いる内部論理ボリュームアドレスを保持するボリューム管理テーブルを有し，該論理ボリュームアドレスと内部論理ボリュームアドレスの接続関係を変更することにより，論理ボリュームアドレスを変えることなく，論理ボリュームの構成を変更する請求項６乃至８のいずれかに記載のボリュームの移動制御方法。
【請求項１０】
前記アクセスログの取得は、タイマが所定の時間を計数する間のアクセスログを内部ボリュームアドレス対応にメモリに記録しておくことにより行う請求項７記載のボリュームの移動制御方法。
【請求項１１】
あるボリューム群内の論理ボリュームを別ボリューム群にある予備の論理ボリュームへ内容のコピーして移動した後、あるボリューム群内の該論理ボリュームを予備の論理ボリュームとして使用することを特徴とする請求項１又は６記載の負荷分散方法。
【請求項１２】
論理ボリュームを移動する際、コピー処理中の論理ボリュームへ入出力要求があった場合，該入出力要求がＲＥＡＤ要求であれば，コピー元の該論理ボリュームからデータを読み出し，該入出力要求がＷＲＩＴＥ要求であれば，現在のコピー状況を判断し，既にコピー済みの領域であればコピー先の論理ボリュームとコピー元の論理ボリュームの両方へデータを書き込み，未だコピーしていない領域であればコピー元の論理ボリュームへデータを書き込むことを特徴とする請求項１又は６記載の負荷分散方法。
【請求項１３】
前記アクセスログは、アクセスのあった論理ボリュームを示す対象内部ボリュームアドレスに対応して、アクセス時刻，入出力の種別を示す入出力コマンド，及びキャッシュヒットの有無を含むことを特徴とする請求項７記載のボリュームの移動制御方法。
【請求項１４】
処理装置から送られる入出力要求に対する処理が排他となる複数の論理ボリュームから構成される複数のボリューム群を有するストレージシステムにおいて、
複数の論理ボリュームを含む複数のボリューム群が形成され、かつ該ボリューム群には少なくとも１つの予備の論理ボリュームを含む記憶装置と、
該ボリューム群間の負荷の偏りを監視する負荷監視部と、
該負荷監視部が負荷の偏りを検知した場合，該負荷監視部からの指示により，あるボリューム群内の論理ボリュームを別ボリューム群にある予備の論理ボリュームへ内容のコピーして，ある論理ボリューム群にある論理ボリュームを他のボリューム群の該予備の論理ボリュームへ移動するための制御を行う制御部と、
を有することを特徴とするストレージシステム。
【請求項１５】
処理装置から送られる論理ボリュームに対する入出力要求のアクセスログを格納するメモリを有し、
前記負荷監視部は、該メモリに格納されているアクセスログを解析して論理ボリュームの負荷の偏りを算出することを特徴とする請求項１４記載のストレージシステム。
【請求項１６】
前記アクセスログとして、アクセスのあった論理ボリュームを示す対象内部ボリュームアドレスに対応して、アクセス時刻，入出力の種別を示す入出力コマンド，及びキャッシュヒットの有無を含む情報を該メモリに格納することを特徴とする請求項１５記載のストレージシステム。
【請求項１７】
外部の処理装置から入出力を行うために指定する論理ボリュームアドレスと，該ストレージ内で用いる内部論理ボリュームアドレスを保持するボリューム管理テーブル格納するメモリを有し，前記制御部は、該論理ボリュームアドレスと内部論理ボリュームアドレスの接続関係を変更することにより，論理ボリュームアドレスを変えることなく，論理ボリュームの構成を変更することを特徴とする請求項１５又は１６記載のストレージシステム。
【請求項１８】
前記アクセスログを解析して求められる、ボリューム群及びボリューム群内の内部ボリュームアドレスごとのアクセス回数を格納するアクセス解析テーブルを有し、
前記制御部は、該アクセス解析テーブルを参照してアクセス回数の多いボリューム群及びその内のアクセス回数の多い第1の論理ボリューム、及びアクセス回数の少ないボリューム群及びその内の予備の第２の論理ボリュームを決定して、該第1の論理ボリュームから第２の論理ボリュームへコピーすることにより論理ボリュームを移動する制御を行うことを特徴とする請求項１５乃至１７のいずれかに記載のストレージシステム。
【請求項１９】
請求項１乃至１３のいずれかに記載の方法を実行するためのステップを有するコンピュータ上で実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージの負荷分散方法に係り、特に複数のディスクから構成されるＲＡＩＤのようなストレージを含むシステムにおける負荷分散のためのボリュームの移動制御に関する。
【背景技術】
【０００２】
データベースシステムの運用では、通常、磁気ディスク装置から成るストレージにデータベースを構築している。最近では一般に、１又は複数の磁気ディスクから構成されるＲＡＩＤ（Redundant Arrays of Inexpensive Disks）上に複数の論理ボリュームを生成してデータの管理が行なわれている。このようなデータベースシステムにおいて、特定のディスクへのアクセスが偏っている場合には，データベースシステムの性能が十分発揮されない。
【０００３】
１台のディスク装置や１つのＲＡＩＤ上に複数の論理ボリュームが構成される場合，それらの各論理ボリュームへの入出力コマンドが同時に発行されても，同時には１つのコマンドしか実行できないために，それぞれの入出力処理は排他される。そのような論理ボリュームの集合を、以下ボリューム群と呼ぶことにする。最適なデータベースを構築することが難しいため、アクセス頻度の高い複数の論理ボリュームがあるボリューム群に集中した場合，ディスク装置の性能が十分に発揮できないと言う問題がある。
【０００４】
これを解決するために、システムの設計時、或いはシステムの定期的な見直し時に，論理ボリュームの構成等を考慮して，データベースを構築または再構築しなければならない。しかし，データベースが複雑で大規模になるほど最適なデータベースの構築を行うには，多くのコストや熟練者による経験及び知識が必要となる。
【０００５】
例えばファイルの負荷分散に関する技術として、特開２０００−２３１４５４号公報（特許文献１）には、オペレーティングシステムによりハードディスクのハードディスク単位および物理パーティション単位で記録されたパフォーマンス情報から負荷状態の分析を行い、過負荷状態が検出された場合に物理パーティション単位での構成変更パターンを作成しファイルの負荷分散を行い、物理パーティション情報が変更された場合でも論理パーティション情報を変更すること無く使用を可能とする技術が開示されている。
【０００６】
【特許文献１】特開２０００−２３１４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記公報に開示された技術は、パフォーマンス情報に基く過負荷の状態に応じてオペレーティングシステムで物理パーティション単位の構成変更を行うものであり、この公報には、論理ボリュームの負荷の偏りに言及した課題及びその対応策については開示されていない。また、この技術において、物理パーティション情報のマッピングはＯＳが行うとしており、ディスク制御装置内でどのように制御が行われるかについては詳しく開示されていない。
【０００８】
そこで本発明の目的は、ボリューム群の間の負荷を自動的に分散させることにある。
本発明の他の目的は、ボリュームの負荷の分散に際して，処理装置へ影響を与えることなく，ディスク装置内で負荷分散のための構成の変更を行うことにある。
【課題を解決するための手段】
【０００９】
而して、本発明は、入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて，ボリュームに関する負荷の偏りを監視する負荷監視部を有し，負荷監視部により負荷の偏りを検知した場合，あるボリューム群内の論理ボリュームの内容を別のボリューム群に備えられたある論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動するものである。
【００１０】
好ましい例では、上記負荷監視部は、物理ディスクを有するディスク装置、又は入出力要求を発行する処理装置に備えられ、この負荷監視部により負荷の偏りを検知した場合，負荷監視部からの指示により，あるボリューム群内の論理ボリュームを別ボリューム群にある予備の論理ボリュームへ内容のコピーして，ある論理ボリューム群にある論理ボリュームを他のボリューム群の間で移動する。
【００１１】
本発明は、好ましくは、入出力処理が排他となる複数の論理ボリュームから構成される複数のボリューム群を有するストレージにおいて，あらかじめボリューム群へ予備論理ボリュームを準備しておき，処理装置からの入出力に対するこれら論理ボリュームのアクセスログを採取し，定期的にアクセスログを監視し，監視の結果，ボリューム群の間でアクセスの偏りが所定の閾値以上であった場合には，最も負荷の高いボリューム群の中で，最も負荷の高い論理ボリュームの内容を別ボリューム群の予備論理ボリュームへ移動させることで，ボリューム群の間の負荷を均等化させ，ストレージ全体の性能向上を図る。
【００１２】
本発明はまた、処理装置から入出力時に指定される論理ボリュームアドレスとは別に，ディスク装置内部で用いる内部論理ボリュームアドレスを用意し，論理ボリュームを移動した場合には，論理ボリュームアドレスは変えずに，内部論理ボリュームアドレスを変えることで，処理装置に，論理ボリュームの移動を意識させることなく，最適化を行う。この場合，処理装置からの入出力要求があったときには，指定された論理ボリュームアドレスを内部論理ボリュームアドレスへ読み替えて，入出力を実行する。
【００１３】
好ましい例では、論理ボリュームの移動は，ある論理ボリュームから予備論理ボリュームへデータを移動して行うので、元の論理ボリュームはデータの移動した後，予備論理ボリュームとして使用できる。
【００１４】
好ましい例ではまた，論理ボリュームを移動する際のコピー処理中の論理ボリュームへ入出力があった場合，ＲＥＡＤの要求であれば，コピー元の論理ボリュームから読み込みを行い，ＷＲＩＴＥの要求であれば，現在のコピー状況を判断し，既にコピー済みの領域であればコピー先とコピー元の両者へ，まだコピーしていない領域であればコピー元の論理ボリュームへ書き込みを行う。これにより，論理ボリュームのコピー中であっても，入出力を止めることなく最適化を行うことができる。もし，何らかの要因でコピーが中止されてしまった場合でも，論理ボリュームの内容を保障できる。
【００１５】
本発明はまた、上記の方法を実行するためのステップを有するコンピュータ上で実行可能なプログラムとして実現される。
【発明の効果】
【００１６】
本発明によれば、ボリューム群の間の負荷を自動的に分散させることができる。また、処理装置上のオペレーティングシステムに影響を与えることなく，ストレージ内で論理ボリュームの移動を行い，ボリューム群間のアクセスの自動最適化を行うことができる。また，論理ボリュームの移動中であっても，入出力を行うことができるため，稼動中の最適化が可能である。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の一実施例によるディスク装置における負荷分散について詳細に説明する。
図１は，一実施例によるディスク装置及び処理装置を含むストレージシステムの構成を示す図である。
ストレージシステムにおいて、処理装置１は、例えばクライアントとして機能するホスト計算機であり、それに接続されるディスク装置２に対して入出力要求を発行すると共に、ディスク装置２に入出力されるデータの処理を行う。
ディスク装置２は、例えばＲＡＩＤのような記憶装置であり、ディスク制御装置２０及び物理的なディスクを備えて構成される。ディスク制御装置２０は、アクセス制御部３，負荷監視部４，アクセスログ部５及びボリューム管理テーブル６を格納するメモリ２１、及びボリュームコピー制御部７を有する。ディスクは、複数のボリューム群８を有して構成される。尚、アクセス制御部3、負荷監視部４、及びアクセスログ部5、ボリューム管理テーブル６等については、後述する。
【００１８】
アクセス制御部３は、処理装置１との間でコマンドの送受信の制御、及びコマンドに基いてボリューム群８のアクセスの制御を行う。ボリュームコピー制御部７は、ボリュームの読み書きを制御する。この実施例において特徴的なことは、負荷の分散制御に基いて実用されているボリュームの内容を予備ボリュームにコピーするための制御を行う。上記負荷監視部４などの各部は、例えばマイクロプログラムにて構成され、本実施例の機能が実現される。
【００１９】
ここで、ボリューム群８について詳しく説明しておく。
それぞれのボリューム群８は複数の論理ボリューム９を含み、各論理ボリューム９への入出力処理が排他となる論理ボリュームの集合として構成される。各ボリューム群８は、論理ボリュームの内少なくとも１つを予備ボリューム１０として有する。
例えばボリューム群８として、1台の物理ディスク上に複数の論理ボリュームが形成される場合，それらの論理ボリュームへの入出力は同時に実行されずに排他的となることから，１つの物理ディスク上に形成される論理ボリュームの集合がボリューム群となる。同様に，複数台の物理ディスクで構成されるＲＡＩＤに複数の論理ボリュームが形成された場合も各論理ボリュームへの入出力が排他される形態のボリューム群となる。
処理装置１から発行される複数の入出力要求に対して，各ボリューム群８へアクセスが分散していれば性能的な問題は起こらないが，特定のボリューム群へ集中するとディスク装置の性能を十分発揮できなくなる。
【００２０】
図２は、処理装置からの入出力要求の命令形式を示す図である。
入出力要求１１は、コマンドの種類を示すコマンド部１１１、アクセス先のボリュームアドレスを示すボリュームアドレス部１１２、ボリューム内のブロックアドレスを示すブロックアドレス部１１３、ブロックの長さを示すレングス部１１４、及びデータ領域のアドレスを示すデータ領域アドレス部１１５から成る。ここで、ボリュームアドレス１１２は処理装置１など上位装置のＯＳ（Operating System）が入出力を行うための論理アドレスである。ブロックアドレス１１３は論理ボリューム内を指定する内部論理アドレスである。データ領域アドレス１１５は内部論理アドレスで指定されたボリューム内の物理アドレスを示す。
【００２１】
図３はアクセスログ５の内容を示す図である。
アクセスログ５は、アクセスのあった論理ボリュームを示す対象内部ボリュームアドレス５１に対応して，アクセス時刻５２，入出力の種別を示す入出力コマンド５３，及びキャッシュヒットの有無、即ちリード(READ)要求時にキャッシュ上にデータがあったか否かを示すキャッシュヒット識別子５４を具備して構成される。
【００２２】
図４は、ボリューム管理テーブル６の内容を示す図である。
各行は論理ボリュームの属性を示し、６１は論理ボリュームが属するボリューム群の識別子，６２は当該論理ボリュームのボリュームアドレス，６３はその論理ボリュームの内部ボリュームアドレス，６４は予備の論理ボリュームを持っているか否かを示す識別子，６５は論理ボリュームのコピー中にどのボリューム間でコピーを行っているかを識別するためのコピー相手となる論理ボリュームのアドレス，６６はその論理ボリュームがコピー中か否かを示す識別子、６７は論理ボリュームへのＷＲＩＴＥ要求を一時的に抑止するためのＷＲＩＴＥ抑止状態を示す。
【００２３】
図５は、アクセス制御部３の構成を示す図である。
入出力実行制御部３１は、処理装置１からのリード(READ)要求およびライト(WRITE)要求を受けて論理ボリューム９への入出力を制御する。入出力実行制御部３１は、コマンドに従ってリードデータを処理するリード処理部３２，及びライトデータを処理するライト処理部３３を有する。ライト待ちキュー３４は待ち状態にあるライト要求をセットする。尚、これらリード処理部３２及びライト処理部３３の処理動作については、図９，１０を参照して後述する。
ログ出力部３７は入出力実行制御部３６における入出力制御で生成されたログをアクセスログ部５に転送する。ボリュームコピー指示部３８は、負荷監視部４からのボリュームコピー要求に従い、入出力実行制御部３６及びボリュームコピー制御部７を制御する。尚、このボリュームコピー制御部７の処理動作については、図１１を参照して後述する。
【００２４】
図６は、負荷監視部４の構成を示す図である。
負荷監視部４は、アクセスログ5及びボリューム管理テーブル６からの情報に基いて論理ボリュームの負荷の偏りを解析し、その結果に従って予備の論理ボリュームにコピーするためにそれを決定する制御を行う。
ログ解析部４２はアクセスログ5及びボリューム管理テーブル６からアクセスログおよびテーブル情報を取得してボリューム群ごとにアクセスの回数を解析して、アクセス解析テーブル４４を作成する。タイマー制御部４１は負荷の監視時間を規定し、そのためにアクセスログを取得する時間を計数する。
【００２５】
コピーボリューム決定部４３は，論理ボリュームの負荷の偏りの算出結果から負荷を軽減するために予備の論理ボリュームを決定するために機能する。その詳細については図１３を参照して後述する。
【００２６】
アクセス解析テーブル４４は、ボリューム群ごとにアクセス回数を登録するテーブルである。図７に示すように、ボリューム群４４１に対応して内部ボリュームアドレス４４２およびそのボリューム群のアクセス回数４４３を登録する。
【００２７】
次に、図８以降の図を参照して，論理ボリュームの負荷を分散させるための論理ボリュームの移動制御について説明する。
まず最初に図８〜図１０を参照してアクセス制御動作、及びリード処理、ライト処理について説明する。
【００２８】
図８を参照してアクセス制御部３の制御動作について説明する。
処理装置１からのコマンド要求を受領すると、その要求の種別を判定する（３０１）。判定の結果、リード要求の場合にはリード処理部３２が実行され（３０３）、ライト要求の場合にはライト処理部３３が実行される（３０４）。これらの処理部３２，３３によりアクセス対象となるボリュームへ入出力の処理が実行される。また、ボリュームコピー要求またはコピー完了通知の場合には、ボリュームコピー指示部３８が実行される。
通常、リード処理部３２及びライト処理部３３では入出力要求に対してキャッシュメモリ又は対象の論理ボリュームをアクセスして目的のデータを読み出し又は書き込みする。
【００２９】
図９を参照するに、リード処理部３２では，処理装置１からのＲＥＡＤ要求を受けると，ボリューム管理テーブル６を参照して，入出力命令のボリュームアドレスを内部ボリュームアドレスへ変換する（３２１）。次にキャッシュ上に要求するデータがあれば，キャッシュからデータを読み（３２４），なければ指定された論理ボリュームからデータの読み出す（３２３）。読み出されたデータは処理装置１転送される（３２５）。
本実施例では、その後，現在時刻を採取してアクセスログのデータを作成し（３２６），アクセスログを出力する（３２７）。出力されたアクセスログは、図３に示す形式でメモリ２１内のアクセスログ部５に記録される。
リード処理では、論理ボリュームの移動中（コピー中）であっても，指定されるコピー元の論理ボリュームからデータを読み出せる。
【００３０】
次に図１０を参照してライト処理部３３の処理動作について説明する。
ライト処理部３３では，ＷＲＩＴＥ要求を受けると，ボリューム管理テーブル６を参照し，指定された論理ボリュームのＷＲＩＴＥ抑止状態６７を判別する（３３１）。判別の結果、ＷＲＩＴＥ抑止状態であれば，ＷＲＩＴＥ待ちキュー３４へ登録して終了する。
【００３１】
一方、ＷＲＩＴＥ抑止状態でなければ，コピー中か否かの判別を行う（３３２）。その判別の結果、もしコピー中でなければ，指定されたボリュームアドレスを内部ボリュームへ変換して（３３８），指定された論理ボリュームへ書き込みを行う（３３９）。これに対してコピー中であれば，指定された論理ボリュームに対する現在のコピー処理の進捗状況についてボリュームコピー制御部７へ問い合わせる（３３４）。
【００３２】
そして、書き込み要求のあったブロックアドレスが既にコピーされたか否か（二重書き）を判定し（３３５）、もしコピーされている場合には，指定されたボリュームアドレスを内部ボリュームへ変換して（３３６）、コピー元とコピー先の両方の論理ボリュームへ書き込みを行う（３３６，３３７）。一方、未だコピーされていなければ，コピー元の論理ボリュームのみへ書き込みを行うことで（３３８，３３９）、論理ボリュームのコピー中即ちボリュームの移動中であっても，ＷＲＩＴＥ処理が実行可能となる。そして，最後に現在時刻を採取してアクセスログのデータを作成し（３４０），アクセスログを出力する（３４１）。
【００３３】
次に、ボリュームの負荷の監視、及び負荷の均等化のための論理ボリュームの移動制御について説明する。
図１１を参照して負荷監視部４の処理動作について説明する。
負荷監視部４では定期的にアクセスログの解析を行い負荷の集中度を監視する。そのため、負荷監視部４は一定周期ごとにアクセスログを取得してボリュームの負荷の偏りを算出する処理を行う。
一定周期の時刻になると、まず、タイマー制御部４１はタイマーをセットして計数を開始する（４０１）。タイマーが一定値を計数し終わるまで待つ（４０２）。この間、アクセスログ部５には、図３に示すように、論理ボリューム対応に入出力要求の時刻、種類等が格納される。
【００３４】
タイマーが一定値を係数し終わると、アクセスログ５とボリューム管理テーブル６を参照して，アクセス解析テーブル４４を作成する（４０３）。この場合，アクセスログ５を参照してアクセス時刻５２（図３）が、ある定められた時刻の範囲内のアクセスログを対象にして，内部ボリュームアドレス５１毎のログの数を計数（合計）して、アクセス解析テーブル４４のアクセス回数４４３に算出する。これによりある一定時間内におけるボリューム群４４１及び内部論理アドレスで示される論理ボリュームのアクセス回数を、それらの負荷として計算できる。
なお、リード要求であってキャッシュヒットしたときには、ディスクへのアクセスが生じないため，負荷にならない。この場合の回数はアクセス回数には計数されないように処理される。
【００３５】
上記のようにボリューム管理テーブル６を参照して、各内部ボリュームアドレスに対応するボリューム群を求め，アクセス解析テーブル４４を作成処理して、これを出力する。
【００３６】
次に，コピーボリューム決定部４３にて，コピー元の論理ボリュームとコピー先の論理ボリュームを決定するための処理を行う（４０４）。この処理の詳細については、図１２を参照して後述するが、例えば，アクセス回数の偏差が大きいボリューム群及びそのボリューム群内のアクセス回数の多い論理ボリュームを特定し、その論理ボリュームをコピー元のボリュームと決める。また、例えばアクセス回数の少ないボリューム郡にある予備の論理ボリュームをコピー先ボリュームとして決める。そしてそれらコピー元の論理ボリュームのアドレスと、コピー先の論理ボリュームのアドレスを登録し（４０５）、アクセス制御部３へボリュームのコピー要求を送る（４０６）。コピー要求に従って双方のボリューム間でコピー処理が行われる。
【００３７】
図１２を参照して、コピーボリューム決定部４３の処理について説明する。
まず、アクセス解析テーブル４４を参照して、ボリューム群に対する負荷の偏りを検知する（４３１）。負荷の偏りとは、アクセス回数の差や偏差が所定の閾値以上となったボリューム群や論理ボリュームのことを言う。例えば、ボリューム群４４１ごとにアクセス回数４４３を集計し、アクセス回数の差や偏差が閾値以上となったボリューム群及びそのボリューム群内のアクセス回数の多い論理ボリュームを決める。
図７の例では、ボリューム群aのアクセス回数が７００回と最も多く、例えばアクセス回数の標準値（例えば３００回）からの偏差が２００回であり、それは閾値１５０回を超えている、と判定される。またボリューム群a内の内部アドレス２の論理ボリュームが最も負荷が大きいと分かる。
【００３８】
上記の判定で、負荷の偏りが検知されると、ボリュームを移動する先に使用可能な予備の論理ボリュームが存在するか否かをボリューム管理テーブル６を参照して確認する（４３２）。ここで，使用可能な予備の論理ボリュームとは，ボリューム管理テーブル６の予備ボリューム６４の識別子が「Ｙ」で，かつコピー相手アドレス６５が「−」のものを指す。
【００３９】
次に，最もアクセス回数の多いボリューム郡以外のボリューム群に使用可能な予備の論理ボリュームがあるかどうかを判定する（４３３）。判定の結果、最もアクセス回数の多いボリューム郡以外のボリューム群内に使用可能な予備の論理ボリュームが在れば，最もアクセス回数の多いボリューム郡のうち，最もアクセス回数の多い論理ボリュームをコピー元と決める（４３４）。そして次に、使用可能な予備の論理ボリュームが在るボリューム群の内、最もアクセス回数の少ないボリューム群内に在る使用可能な予備の論理ボリュームをコピー先と決める（４３５）。
【００４０】
一方、上記の判定の結果，最もアクセス回数の多いボリューム郡内だけに使用可能な予備の論理ボリュームが在ると判断した場合，最もアクセス回数の少ないボリューム郡の内，最もアクセス回数の少ない論理ボリュームをコピー元とし（４３６），予備の論理ボリュームの１つをコピー先と決める（４３７）。
このように，ボリューム群の負荷が分散するように，コピー元の論理ボリュームとコピー先の論理ボリュームが決められる。
【００４１】
この後は、図１１に示したように、コピー元及びコピー先ボリュームとなった論理ボリュームのボリューム管理テーブル６のコピー相手アドレス６５を更新して登録し（４０５）、アクセス制御部３へボリュームコピー要求を通知する（４０６）。そして負荷監視部４の処理は先頭へ戻る。
【００４２】
次に、図１３を参照して、ボリュームコピー指示部３６の処理について説明する。
アクセス制御部３では，まず要求の種別が判別され（３０１），負荷監視部４からのボリュームコピー要求はボリュームコピー指示部３８へ処理（３０２）が振り分けられる。ボリュームコピー指示部３８では，ボリュームコピー要求がある（３６１）と，ボリューム管理テーブル６のコピー相手アドレス６５に数値があり，コピー中６６識別子が「Ｎ」の論理ボリュームを探し出し，コピー中６６識別子を「Ｙ」に更新する（３６２）。探した論理ボリュームの予備論理ボリューム６４識別子が「Ｙ」の論理ボリュームをコピー先，「Ｎ」の論理ボリュームをコピー元とし，それぞれの内部ボリュームアドレスをボリュームコピー制御部７へ通知して，コピー開始を指示する（３６３）。
【００４３】
ボリュームコピー制御部７では、図１４の動作フローチャートに示すように、ボリュームコピー制御部７がボリュームコピー要求を受けると，指定されたコピー元の論理ボリュームからコピー先の論理ボリュームへ全データのコピーを実行する（７０２）。ボリュームのコピーが終了すると，ボリュームコピー指示部３８へコピーの終了した内部ボリュームアドレスと共にコピーの完了を通知する（７０３）。
【００４４】
ボリュームコピー指示部３８がコピー完了通知を受けると，図１３に示すように、コピー元とコピー先となったボリュームのボリューム管理テーブル６のＷＲＩＴＥ抑止状態６７識別子を「Ｙ」にしてから（３６４）、指定ボリュームのボリュームアドレスを入れ替える（３６５）。ここでＷＲＩＴＥ抑止状態とすることで，論理ボリュームへのＷＲＩＴＥ処理を抑止し，論理ボリュームの内容を保障する。もし，ＷＲＩＴＥ処理の抑止を行わなければ，ボリュームアドレス入替えとＷＲＩＴＥ処理がぶつかった場合，書き込みの行われる論理ボリュームが不定となってしまい，コピー元の論理ボリュームへ書き込みが行われてしまうと，アドレスの入替えにより，コピー先ボリュームへ論理ボリュームが切り替えられると，その書き込みの内容は捨てられてしまうことになる。
【００４５】
次に，ボリューム管理テーブル６のコピー元ボリュームの予備論理ボリューム６４識別子を「Ｙ」とし，コピー先ボリュームの予備論理ボリューム６４識別子を「Ｎ」とする（３６６）。さらに，両ボリュームのコピー中６６識別子を「Ｎ」とし，コピー相手アドレスを「−」へ変更し（３６７），ボリューム管理テーブル６のＷＲＩＴＥ抑止状態６７識別子を「Ｎ」とする（３６８）。
【００４６】
ＷＲＩＴＥ抑止中の論理ボリュームへのＷＲＩＴＥ要求はＷＲＩＴＥ待ちキューへキューイングし（３６９）、一時的に論理ボリュームへの書き込みが抑止されるが，抑止状態が解除された後，待ちキューの内容をＷＲＩＴＥ処理部３３へ指示を行う（３７０）。なお，ＷＲＩＴＥの抑止状態となってから，抑止状態が解除されるまでの時間は，入出力全体に掛かる時間に比べると微小であるため，これによって入出力の性能へ大きく影響することはない。
【００４７】
以上のように，論理ボリュームを移動することによりボリューム群の負荷を均等化できる。また、ボリュームの移動とＲＥＡＤ処理およびＷＲＩＴＥ処理を行うことで，処理装置からの入出力へ大きな影響を与えることなく，アクセス負荷の均等化を行うことができる。
【００４８】
図１５は、他の実施例によるストレージシステムの構成を示す。
前述した図１の例では、負荷監視部４はディスク装置２内に設けられているが、図１５の例では負荷監視部４´は処理装置１内に備えられる。この場合，アクセスログ５とボリューム管理テーブル６へアクセスするため制御コマンド、及びアクセス制御部３へボリュームコピー要求を発行するための制御コマンドが定義され、かつこれらの制御コマンドの処理を行うための制御コマンド処理部１１がディスク制御装置２０に設けられる。
この例によれば、処理装置1内で論理ボリュームの負荷監視を行うので、例えば複数台のディスク装置２が処理装置１に接続されているようなストレージシステムにおいて、複数台のディスク装置２に対する負荷の監視を集中的に行える。
【００４９】
なお、上記実施例において、論理ボリュームの移動は、ある論理ボリュームから予備論理ボリュームへデータを移動して行うので、元の論理ボリュームはデータの移動した後，予備論理ボリュームとして使用できる。負荷の高いボリューム群から論理ボリュームの移動を何度も行っていくうちに，予備論理ボリュームが負荷の高いボリューム群以外のボリューム群に無くなってしまう可能性があるが，そのときには，最も負荷の低いボリューム群の中で最も負荷の低い論理ボリュームを，最も負荷の高いボリューム群の予備論理ボリュームへ移動させ，最も負荷の高いボリューム群以外に予備論理ボリュームを作ることで，最適化を継続することが可能になる。
【００５０】
また、上記実施例以外にも本発明は種々変形して実施し得る。例えば、図３、図４、図７に示す各テーブルは一例であって、これに限定されない。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施例によるディスク装置を含むストレージシステムの構成を示す図である。
【図２】処理装置１からの入出力命令の形式を示す図である。
【図３】図１のアクセスログ５の内容を示す図である。
【図４】図１のボリューム管理テーブル６の内容を示す図である。
【図５】図１のアクセス制御部３の構成を示す図である。
【図６】図１の負荷監視部４の構成を示す図である。
【図７】アクセス解析テーブル４４の内容を示す図である。
【図８】アクセス制御部３の制御動作の説明に供するフローチャートである。
【図９】ＲＥＡＤ処理部３２の処理を示すフローチャートである。
【図１０】ＷＲＩＴＥ処理部３３の処理を示すフローチャートである。
【図１１】負荷監視部１２の処理を示すフローチャートである。
【図１２】コピーボリューム決定部４３の処理を示すフローチャートである。
【図１３】ボリュームコピー処理部３６の処理を示すフローチャートである。
【図１４】ボリュームコピー制御部７の処理を示すフローチャートである。
【図１５】他の実施例によるストレージシステムの構成を示す図である。
【符号の説明】
【００５２】
１ 処理装置、                      ２ ディスク装置、
３ アクセス制御部                  ４ 負荷監視部、
５ アクセスログ、                  ６ ボリューム管理テーブル、
７ ボリュームコピー制御部、        ８ ボリューム群、
９ 論理ボリューム、                １０ 予備論理ボリューム
【図１】
2005209055.tif 000003
【図２】
2005209055.tif 000004
【図３】
2005209055.tif 000005
【図４】
2005209055.tif 000006
【図５】
2005209055.tif 000007
【図６】
2005209055.tif 000008
【図７】
2005209055.tif 000009
【図８】
2005209055.tif 000010
【図９】
2005209055.tif 000011
【図１０】
2005209055.tif 000012
【図１１】
2005209055.tif 000013
【図１２】
2005209055.tif 000014
【図１３】
2005209055.tif 000015
【図１４】
2005209055.tif 000016
【図１５】
2005209055.tif 000017