(57)【特許請求の範囲】
【請求項１】
１又は複数のディスクドライブを備えたディスク装置と、
前記ディスク装置に入出力要求を発行する入出力要求部と、
ディスク装置への入出力元を少なくともシーケンシャルアクセス入出力グループあるいはランダムアクセス入出力グループにグループ化した入出力グループを形成すると共に各入出力グループがディスクを使用する時間の比率を定義し、定義された時間比率に基づき各入出力グループが連続してディスク装置を使用できる割当時間（クォンタム）を決定し、複数の入出力グループからディスク装置に入出力の依頼を受け付けている場合、競合した入出力グループ間で前記割当時間を順番に切り替えて前記入出力グループがディスク装置を使用するタイムシェアリングを行う入出力スケジュール機構とを備えたディスク・タイムシェアリング装置に於いて、
利用者からの全ての要求項目が達成できるようチューニングができると判断した場合で前記要求項目毎に複数の選択肢があるときは各要求項目中の選択肢が相互に重なる部分のうち最も高いチューニング結果を選択し、チューニングしても全ての要求項目が達成できないときは、予め設定されていた要求項目の優先度に従い、所定のチューニングを行うチューニング部を設けたことを特徴とするディスク・タイムシェアリング装置。
【請求項２】
請求項１記載のディスク・タイムシェアリング装置に於いて、前記チューニング部は、達成できない要求性能値がある場合に、要求性能の種別に優先順を付け、上位の優先度の要求性能を達成できる設定範囲では下位の要求性能が達成できない場合に、下位の要求性能は考慮しないで調整値を決定する第１モードと、
上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合も、下位の要求性能を考慮して調整値を決定する第２モードと、
上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合に、上位の設定範囲内から下位の性能が最善になる調整値を選択する第３モードと、
上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合に、上位の設定範囲に対応する下位の性能のうちでも性能の良い候補を複数点選択し、選択した候補の中から上位の性能が最善になる調整値を選択する第４モードと、
のいずれかのモードを使用して動作条件を自動調整することを特徴とするディスク・タイムシェアリング装置。
【請求項３】
１又は複数のディスクドライブを備えたディスク装置と、前記ディスク装置に少なくともシーケンシャルアクセスあるいはランダムアクセスの入出力要求を発行する入出力要求部と、前記入出力に基づいて前記ディスク装置の使用をスケジューリングする入出力スケジュール機構とを備えたディスク・タイムシェアリング装置に適用されるディスク・タイムシェアリング方法に於いて、
前記ディクス装置への入出力元をグループ化した入出力グループを形成すると共に各入出力グループがディスクを使用する時間の比率を定義し、
定義された時間比率に基づき各入出力グループが連続してディスク装置を使用できる割当時間（クォンタム）を決定し、
複数の入出力グループからディスク装置に入出力の依頼を受け付けている場合、競合した入出力グループ間で前記割当時間を順番に切り替えてディスク装置を使用するタイムシェアリングを行い、
更に、利用者からの全ての要求項目が達成できるようチューニングができると判断した場合は、その中で前記要求項目毎に複数の選択肢があるときは各要求項目中の選択肢が相互に重なる部分のうち最も高いチューニング結果を選択し、チューニングしても全ての要求項目が達成できないときは、予め設定されていた要求項目の優先度に従い、所定のチューニングを行うことを特徴とするディスク・タイムシェアリング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の入出力に基づいてディスク装置の使用をスケジューリングするディスク・タイムシェアリング装置及び方法に関し、特に、競合する入出力に対し割当て時間を順番に切替えるようにディスク装置の使用をスケジューリングするディスク・タイムシェアリング装置及び方法に関する。
【０００２】
【従来の技術】
従来、ハードディスクドライブ等のディスク装置を使用してデータを管理するストレージシステムにあっては、例えばディクス装置をＲＡＩＤ構成の装置とし、このＲＡＩＤ装置をディスク制御装置の配下に接続して上位のホストからの入出力を処理したり、直接、サーバにＲＡＩＤ装置を接続し、サーバＯＳからの入出力を処理するようにしている。
【０００３】
このようなストレージシステムにあっては、同一のディスク装置に対して、応答時間の保証が要求されるランダムアクセスと、単位時間当たりの処理量が重視されるシーケンシャルアクセスを行う必要がある場合、ランダムアクセスとシーケンシャルアクセスが競合しないように、時間帯を分けた運用を行っている。例えば、昼間は、ディスク装置のデータベースに対してランダムアクセス中心のＯＬＴＰ業務（On Line Transaction Processing）を行い、業務終了後の夜間にデータベースのバックアップを行っている。
【０００４】
【発明が解決しようとする課題】
１．ランダムアクセスとシーケンシャルアクセスの資源配分
しかしながら、このようなストレージシステムにあっては、業務の無停止化に伴い、夜間といえどもランダムアクセス系のＯＬＴＰ業務を継続する必要が出てきたため、ランダムアクセス系のＯＬＴＰ業務中にシーケンシャルアクセスであるバックアップの実行が必要となってきている。
【０００５】
ランダムアクセスのみの場合は、ある平均応答時間、例えば30ｍｓを満たせる単位時間当りの入出力回数であるＩＯＰＳ（Input Output Per Second ）、例えば１００IOPSを見積もることができる。シーケンシャルアクセスのみの場合は、例えば２０ＭＢ／ｓといったスループットを見積もることができる。
【０００６】
ところが、ランダムアクセスとシーケンシャルアクセスを同時に行った場合は、受け付けた入出力を要求をＦＩＦＯを用いたキューで処理するため、ランダムアクセスがディスク装置を使用できる時間およびシーケンシャルアクセスがディスク装置を使用できる時間を保証する仕組みがない。
【０００７】
例えば、平均応答時間３０ｍｓで５０IOPSのランダムアクセスと、５ＭＢ／ｓのシーケンシャルアクセスが欲しい場合でも、シーケンシャルアクセスが頻繁に発生するとシーケンシャルアクセスのスループットは、上がる必要はないのであるが、５ＭＢ／ｓから１０ＭＢ／ｓに上がる。逆にランダムアクセスで平均応答時間３０ｍｓを満たすIOPSは、低下させたくはないにもかかわらず、５０IOPSから２５IOPSに低下する。
２．論理ボリューム間の資源配分
また従来のストレージシステムは、性能要件の異なるデータは異なるディスク装置に配置することで、それぞれの性能特性を引き出している。例えば、小量データのランダムアクセスで応答時間の保証が要求されるデータと、大量データのシーケンシャルアクセスで単位時間当たりの処理量が重視されるデータは、異なるディスク装置に配置している。
【０００８】
ところが、ディスク装置の大容量化に伴い、異なる性能要件のデータを同一ディスク装置に配置するケースが増えてきている。このように異なる性能要件の論理ボリュームを同一ディスクに配置した場合も同様の問題が生じる。従来は、受け付けた入出力をＦＩＦＯでスケジュールして論理ボリューム間のディスク資源分配を制御する仕組みがない。このため、ある論理ボリュームへの入出力が頻繁に発生すると、他の論理ボリュームへの入出力性能が低下する。
【０００９】
例えば、１０IOPSを保証して欲しいボリュームＡと、５０IOPSを保証して欲しいボリュームＢを同一ディスクに配置した場合、ボリュームＡへのアクセスが頻繁に発生するとボリュームＡのIOPSは、上がる必要はないにもかかわらず、１０IOPSから２０IOPSに上がる。逆にボリュームＢのIOPSは、低下させたくはないにもかかわらず、５０IOPSから４０IOPSへと低下する。
３．通常処理とバックアップ／コピー処理間の資源配分
従来のストレージシステムで、同一ディスク装置上に複数の論理ボリュームが存在し、個々の論理ボリューム単位でバックアップやコピーを行う場合を考える。従来は、バックアップ／コピー処理による通常の入出力への影響を抑えるため、バックアップ／コピー処理のペース（インターバル）を、バックアップ／コピー処理の実行時に設定する手法を採っている。
【００１０】
ところが、ボリュームＡをコピー中に、ボリュームＡと同じディスク装置上のボリュームＢに対してコピーを実行すると、同時に２多重のコピー処理が同一のディスク装置上で動作するため、通常の入出力への影響は２倍になる。
４．通常処理とリビルディング間の資源配分
ＲＡＩＤ装置では、複数のディスクドライブでデータを冗長化させることにより、１つのディスクドライブに障害が発生しても残りのディスクドライブからデータを復旧することができる。このため、ＲＡＩＤ装置では、ディスクドライブに障害が発生しても、通常の入出力を継続することができる。
【００１１】
また、交換されたディスクドライブに対して、残りのディスクドライブからデータの復旧が行われる。この復旧処理のことをリビルディング(Rebuilding)と呼ぶ。リビルディングは、ＲＡＩＤ装置を構成するディスクドライブに対する入出力処理を伴うため、同一のディスクドライブを通常の入出力と奪い合うことになる。
【００１２】
このため、リビルディングにより通常の入出力の性能は低下する。例えば、ミラー構成をとるＲＡＩＤ１の場合、リビルディングは、ディスクドライブの障害により１台になったディスクドライブから交換された新しいディスクドライブへデータをコピーする処理であり、コピー元のディスクドライブに対しリード入出力が発生する。このリード入出力が通常の入出力を待たせることになり、通常の入出力の性能が低下する。
【００１３】
この問題を解消するための従来のアプローチは２つある。第１のアプローチは、通常の入出力に影響を与えないように、十分長いインターバルで、十分小さいデータをコピーする。この場合、通常の入出力への影響は小さくすることができるが、リビルディング完了までの時間が長くなる。例えば９ＧＢのディスクドライプで構成するＲＡＩＤ１の場合、１０時間前後が必要となる。
【００１４】
第２のアプローチは、ディスクドライブが空いていれば、即ち、通常の入出力でディスクドライブを使用していなければ、リビルディングの入出力をスケジュールする。この場合の問題は、リビルディング完了までの時間が保証できない点にある。これはディスクドライブがほとんど空いていないと、リビルディングに長時間必要になってしまう。
５．最大応答時間保証
ミッションクリティカルな業務では、入出力性能の要件として平均応答時間の他に最大応答時間が重要となる。近年のディスク装置は、実行待ち入出力を処理時間が最短になるように並び替えるリ・オーダリング機能（Re-ordering 機能）を持っている。
【００１５】
リ・オーダリング機能は、ディスク装置が、実行待ち入出力の中からシーク時間と回転待ち時間の和で定義されるポジショニング時間を最小にする入出力を、次に実行する入出力として選ぶ機能である。ディスク装置に入出力を依頼する際に、リ・オーダリングの対象として良い旨のタスク指定となるシンプルタスク（Simple task）をディスク装置に通知する。
【００１６】
ディスク装置はシンプルタスク指定の入出力の場合は、ポジショニング時間を最小にするような順番で入出力をスケジュールする。これにより、ランダムアクセス時の平均処理時間が短縮される。例えば、ランダムアクセスの平均処理時間は、リ・オーダリング機能を使用することにより、９ｍｓから５ｍｓに短縮する。
【００１７】
リ・オーダリング機能は、このようにディスク装置のスループットを向上させるが、最大応答時間が大きくなる問題がある。これは、次の入出力にポジショニング時間が最小となる入出力を選択するため、ある入出力が長い間待ちのままでスケジュールされない現象が発生するためである。
【００１８】
この現像を解決するため、ディスク装置は、リ・オーダリングの対象として良いことを指定するシンプルタスクの他に、オーダードタクス（Ordered task）を指定する機能を備えている。オーダードタクスの指定で入出力を依頼すると、ディスク装置は、それまでに受け付けていた未だ完了していない入出力を全て完了させた後、オーダードタスクの入出力をスケジューリングする。
【００１９】
このようにシンプルタクスの間にオーダードタスクを混ぜることにより、入出力の最大応答時間の延長を抑えることが可能となる。しかし、ランダムアクスセとシーケンシャルアクセス間、論理ボリューム間、通常処理とバックアップ／コピー処理やリビルディング処理間の資源配分を考えた場合、スループット（IOPS）を向上させるためのシンプルタクスの利用に加え、シンプルタクスクを使った場合の最大応答時間の保証が課題となる。
【００２０】
このような問題を解決するため、本願発明者にあっては、ディクス装置に種類の異なる複数の入出力が競合した場合の性能の最低保証を可能とするディスク・タイムシェアリング装置及び方法を提案している（特願平１１−２１８７５７号）。
【００２１】
このディスク・タイムシェアリング装置は、１又は複数のディスクドライブを備えたディスク装置、ディスク装置に入出力要求を発行する入出力要求部、及びディスク装置への入出力元をグループ化した入出力グループを形成すると共に各入出力グループがディスク装置を使用する時間の比率を定義し、定義された時間比率に基づき各入出力グループが連続してディスク装置１６を使用できるクォンタムτ１，τ２，τ３（割当時間）を決定し、複数の入出力グループからディスク装置に入出力の依頼を受け付けている場合、競合した入出力グループ間でクォンタムτ１，τ２，τ３を順番に切り替えてディスク装置を使用するタイムシェアリングを行う入出力スケジュール機構を備える。
【００２２】
具体的には、入出力スケジュール機構は、シーケンシャルアクセスと判断された入出力はシーケンシャルアクセス入出力グループに、それ以外の入出力はランダムアクセス入出力グループに対応させ、シーケンシャルアクセスとランダムアクセスでディスク装置のタイムシェアリングを行う。
【００２３】
このため、ランダムアクセス要求がどれだけ多く発生しようとも、シーケンシャルアクセスの入出力でディスク装置を使用できる時間が保証されているから、シーケンシャルアクセス性能の最低値保証が可能となる。また、ランダムアクセスの入出力でディスク装置を使用できる時間が保証されているから、ランダムアクセス性能の最低保証が可能となる。
【００２４】
ところで、システム管理者であるユーザの要求として、ランダムアクセス入出力の平均レスポンス時間は例えば３０ｍｓ以下に抑えたいという要求があるとする。ここでディスクタイムシェアリングにより、１回のタイムシェアリングの周期ＴＳをＴＳ＝１００ｍｓ、ランダムクォンタムとシーケンシャルクォンタムの時間比率（以下「ＲＳ比」という）をＲＳ比＝９０％（但し、ランダム側からみた比率ＲＳ＝Ｒ／ＴＳで算出される）で、タイムシェアリング処理を行っているものとする。
【００２５】
通常の比較的軽い負荷の状態で、タイムシェアリング周期ＴＳを１００ｍｓと設定した場合は、平均レスポンス時間Ａｖｅ［ｍｓ］、最大レスポンス時間Ｍａｘ［ｍｓ］はともに短くなるため、この設定で都合が良い。しかし、負荷が重くなった場合には、タイムシェアリング周期ＴＳ＝１００ｍｓでは処理し切れず、平均レスポンスＡｖｅの悪化を招く。
【００２６】
そこでタイムシェアリング周期ＴＳを予め例えば３００ｍｓのように長い時間に設定することで、負荷が重くなった場合の平均レスポンスＡｖｅの悪化を抑制できるが、逆に負荷が軽い時のレスポンス時間がＴＳ＝１００ｍｓの設定に比べて長くなり、素早い応答が得られない問題がある。
【００２７】
本発明は、ユーザの要求性能を満足するタイムシェアリングの動作条件を実績値に基づいて自動的に調整可能なディスク・タイムシェアリング装置及び方法を提供することを目的とする。
【００２８】
【課題を解決するための手段】
図１は本発明の原理説明図である。まず本発明は、図１（Ａ）のように、ディスク装置１６、入出力要求部１８及び入出力スケジュール機構２０を備えたディスク・タイムシェアリング装置を対象とする。
【００２９】
ここで、ディスク装置１６は、１又は複数のディスクドライブを備え、入出力要求部１８は、ディスク装置に入出力要求を発行する。更に、入出力スケジュール機構２０は、ディスク装置への入出力元をグループ化した入出力グループを形成すると共に各入出力グループがディスクを使用する時間の比率を定義し、定義された時間比率に基づき各入出力グループが連続してディスク装置を使用できる割当時間（クォンタム）を決定し、複数の入出力グループからディスク装置に入出力の依頼を受け付けている場合、競合した入出力グループ間で前記割当時間を順番に切り替えてディスク装置を使用するタイムシェアリングを行う。
【００３０】
このようなディスク・タイムシェアリング装置につき本発明は、要求性能と実績に応じて前記タイムシェアリングの動作条件を自動的に調整するチューニング部５２を設けたことを特徴とする。
【００３１】
このため本発明のディスク・タイムシェアリング装置は、シミュレーションあるいは実測等により得られた平均レンスポンス、最大レスポンス、スループット等の実績（統計情報）を保存し、チューニング部により負荷の状態と保存した実績を元に、ユーザ要求性能を満たす最適な調整値を決定し、この調整値に基づいてタイムシェアリングの動作条件を自動的に調整でき、ユーザの性能要求に適切に対応できる。
【００３２】
ここで入出力スケジュール機構２０は、複数の入出力グループとして、少なくともランダムアクセス入出力グループとシーケンシャルアクセス入出力グループを形成する。
【００３３】
チューニング部５２は、図１（Ｂ）のように、要求性能設定部５６、第１乃至第３基礎データ６２，６４，６６、及び動作条件決定部５８を備える。要求性能設定部５６は、
（１）負荷の状態ＩＯＰＳ（実測値又は設定値）、
（２）ランダムアクセス入出力グループに平均レスポンス時間Ａｖｅ［ｍｓ］と最大レスポンス時間Ｍａｘ［ｍｓ］、
（３）シーケンシャルアクセス入出力グループのスループットＴｈＰ［ＭＢ／ｓ］、
の各々を要求性能値として設定する。
【００３４】
第１基礎データ６２は、ランダムアクセスの負荷ＩＯＰＳ毎に分けた平均レスポンスＡｖｅの実績値を、タイムシェアリング周期ＴＳと、ランダムアクセスとシーケンシャルアクセスの割当時間比率（クォンタム比率）であるＲＳ比率に対応して格納する。
【００３５】
第２基礎データ６４は、ランダムアクセスの負荷ＩＯＰＳ毎に分けた最大レスポンスＭａｘの実績値を、タイムシェアリング周期ＴＳと、ランダムアクセスとシーケンシャルアクセスの割当時間比率であるＲＳ比率に対応して格納する。
【００３６】
第３基礎データ６６は、スループットＴｈＰの実績値を、タイムシェアリング周期ＴＳと、ランダムアクセスとシーケンシャルアクセスの割当時間比率であるＲＳ比率に対応して格納する。
【００３７】
更に、動作条件決定部５８は、要求性能設定部で設定した１又は複数の要求性能値を満足するタイムシェリング周期ＴＳと、ランダムアクセスとシーケンシャルアクセスの割当時間比率（ＲＳ比）を、ランダム負荷と第１乃至第３基礎データの参照で調整値として決定し、タイムシェアリングの動作条件を自動的に調整する。
【００３８】
チューニング部５２は、達成できない要求性能値がある場合に、要求性能の種別に優先順を付け、次のいずれかのモードを使用して動作条件を自動調整する。
（１）上位の優先度の要求性能を達成できる設定範囲では下位の要求性能が達成できない場合に、下位の要求性能は考慮しないで調整値を決定する第１モード。
（２）上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合も、下位の要求性能を考慮して調整値を決定する第２モード。
（３）上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合に、上位の設定範囲内から下位の性能が最善になる調整値を選択する第３モード。
（４）上位の優先度の要求性能が達成できる設定範囲では下位の要求性能が達成できない場合に、上位の設定範囲から回の性能が良くなる候補を複数点選択し、全託した候補の中から上位の性能が最善になる調整値を選択する第４モード。
【００３９】
このように要求性能に優先順位を付けて調整値を決定することで、全ての要求性能を満足しなくとも、ユーザの重視する優先度の高い要求性能を満足するように自動調整され、ユーザの要求を適切に反映できる。
【００４０】
また本発明は、１又は複数のディスクドライブを備えたディスク装置と、前記ディスク装置に入出力要求を発行する入出力要求部と、前記入出力に基づいて前記ディスク装置の使用をスケジューリングする入出力スケジュール機構とを備えたディスク・タイムシェアリング方法を提供するものであり、
ディクス装置への入出力元をグループ化した入出力グループを形成すると共に各入出力グループがディスクを使用する時間の比率を定義し、
定義された時間比率に基づき各入出力グループが連続してディスク装置を使用できる割当時間（クォンタム）を決定し、
複数の入出力グループからディスク装置に入出力の依頼を受け付けている場合、競合した入出力グループ間で割当時間を順番に切り替えてディスク装置を使用するタイムシェアリングを行い、
更に、要求性能と実績に応じてタイムシェアリングの動作条件を自動的に調整することを特徴とする。
【００４１】
尚、この方法につていの詳細は、装置と基本的に同じになる。
【００４２】
【発明の実施の形態】
図２は、本発明が適用されるストレージシステムのブロック図である。図２において、ストレージシステムは、デバイス制御装置１２、アレイディスク装置１４、及びディスク装置１６で構成される。デバイス制御装置１２に対しては、ホスト１０−１〜１０−ｎが接続されており、ホスト１０−１〜１０−ｎのアプリケーションにより入出力要求をデバイス制御装置１２に対し行っている。
【００４３】
アレイディスク装置１４は、デバイス制御装置１２からの入出力要求を受けつけ、ディスク装置１６に対し受けつけた入出力要求を発行する。本発明のディスク・タイムシェアリング装置は、アレイディスク装置１４に設けた入出力要求依頼部１８及びディスク入出力スケジュール機構２０と、ディスク装置１６に設けたディスク入出力処理部２２及びディスクドライブ２４−１〜２４−ｎで構成される。
【００４４】
またディスク装置１６に設けている複数のディスクドライブ２４−１〜２４−ｎがＲＡＩＤ構成をとる場合には、アレイディスク装置１４にはＲＡＩＤ制御機構がさらに設けられることになる。
【００４５】
更に本発明のディスク・タイムシェアリング装置は、アレイディスク装置１４のディスク入出力スケジュール機構２０に対しチューニング機構５０を設けており、チューニング機構５０はチューニング部５２と基礎データファイル５４を備える。
【００４６】
チューニング部５２は、ユーザが希望した要求性能を満足するように、負荷と基礎データに基づいてディスク入出力スケジュール機構２０におけるタイムシェアリングの動作条件を自動的に調整する。
【００４７】
図３は、図２のストレージシステムに適用された本発明のタイムシェアリング装置の基本的な実施形態のブロック図であり、ＲＡＩＤ構成のディスク装置を例にとっている。
【００４８】
図３において、アレイディスク装置１４は、入出力要求部１８、ＲＡＩＤ制御部２６、ディスク入出力スケジュール機構２０を備える。またディスク装置１６にはディスク入出力処理部２２が設けられ、このディスク入出力処理２２に対し、例えばＲＡＩＤ１の構成（ミラーディスク構成）をとる２台のディスクドライブ２４−１，２４−２が接続されている。
【００４９】
このような本発明のディスク・タイムシェアリング装置は、入出力要求部１８からのディスク装置１６への入出力要求をグループ化して入出力グループを形成すると共に、各入出力グループがディスク装置１６を使用する時間の比率を定義し、定義された時間比率に基づき各入出力グループが連続してディスク装置を使用できるクォンタム（割当時間）を決定し、複数の入出力グループから依頼を受けつけている場合に競合した入出力グループ間でクォンタムを順番に切り替えてディスク装置１６を使用するようにスケジューリングする処理を行う。
【００５０】
またひとつの入出力グループからのみ入出力の依頼のある場合は、ひとつの入出力グループからの入出力に対しディスク装置１６を連続して使用可能とするスケジューリングを行う。
【００５１】
このような本発明のディスク・タイムシェアリング処理を実現する図３の各部の構成及び機能を更に詳細に説明すると次のようになる。入出力要求部１８は、例えば図２に示した上位のデバイス制御装置１２からのコマンドに基づきディスク装置１６に対する入出力要求をＲＡＩＤ制御部２６を介してディスク入出力スケジュール機構２０に発行する。ＲＡＩＤ制御部は、依頼された論理入出力要求を物理入出力要求に変換する処理を主に行う。
【００５２】
ディスク入出力スケジュール機構２０には、ディスク・タイムシェアリング制御情報３０−１，３０−２、入出力スケジュール部３２、入出力要求受付部３４、及び入出力完了処理部３６が設けられる。ディスク・タイムシェアリング制御情報３０−１，３０−２は、ディスク装置１６に設けているディスクドライブ２４−１，２４−２単位に設けられる。
【００５３】
入出力スケジュール部３２は、ディスクドライブ２４−１，２４−２単位に設けられたディスク・タイムシェアリング制御情報３０−１，３０−２を参照及び更新してディスク・タイムシェアリングを行う。
【００５４】
ここでディスク・タイムシェアリング制御情報３０−１について説明すると、この実施形態にあっては入出力グループをＧ１，Ｇ２，Ｇ３の３つに分けて定義した場合を例にとっており、入出力グループＧ１〜Ｇ３に対応してスケジュール待ちグループキュー３８−１，３８−２が設けられる。このスケジュール待ちグループキュー３８−１〜３８−３には、入出力要求受付部３４で受けつけた入出力要求がキューを構成するＦＩＦＯに格納することで並ぶ。
【００５５】
また入出力グループＧ１〜Ｇ３に対応して完了待ちグループキュー４０−１，４０−２，４０−３が設けられる。完了待ちグループキュー４０−１，４０−３には、ディスク装置１６への入出力依頼が完了し、ディスク装置１６から入出力完了応答を受けていない入出力要求がキューを構成するＦＩＦＯに格納することで並んでいる。
【００５６】
更に入出力グループＧ１〜Ｇ３に対応してグループ用クォンタム４２−１，４２−２，４２−３が設けられる。このグループ用クォンタム４２−１〜４２−３には、入出力グループＧ１〜Ｇ３がディスク装置１６を使用する時間の比率α１，α２，α３を予め定義し、この定義された比率α１，α２，α３に基づき、それぞれの入出力グループＧ１〜Ｇ３が連続してディスク装置を使用できる割当時間となるクォンタムτ１，τ２，τ３を決定して格納している。
【００５７】
例えば１回のタイムシェアリングを行なうタイムシェアリング周期をＴＳとすると、入出力グループＧ１〜Ｇ３のクォンタムτ１〜τ３は次式で定義される。
【００５８】
τ１＝α１・ＴＳ
τ２＝α２・ＴＳ
τ３＝α３・ＴＳ
このような入出力グループＧ１〜Ｇ３のディスク装置１６の使用を決めるクォンタムτ１〜τ３の適正値は次のようにして決める。まずクォンタムは値を小さくしすぎるとディスク装置１６の入出力処理時間に近くなり、ポジショニング時間を最小とするように入出力を選択するリ・オーダリングの効果が小さくなり、全体の入出力性能が低下する。
【００５９】
逆にクォンタムの値が大きすぎると、他の入出力グループに切り替えるクォンタムの待ち時間が延びることにより、平均入出力処理時間及び最大入出力処理時間が延びることになる。例えばクォンタムτ１とクォンタムτ２をそれぞれ１時間に設定すると、クォンタムτ１の処理中はクォンタムτ２の入出力を実行できないため、クォンタムτ２の入出力はクォンタムτ１の終了を１時間待つことになる。
【００６０】
本願発明者の実験によれば、入出力の平均処理時間が数ｍｓ〜２０ｍｓのディスク装置１６の場合、クォンタムの値としては数十ｍｓ〜数百ｍｓが望ましい。
【００６１】
また本発明のディスク・タイムシェアリングにあっては、ランダムアクセスの割当時間となるクォンタムをＲ、シーケンシャルアクセスの割当時間となるクォンタムをＳとした場合、両者のクォンタム比率（割当時間比率）をＲＳ比と呼び、次式で定義する。
【００６２】
ＲＳ比＝Ｒ／（Ｒ＋Ｓ）
これはランダムアクセス側から見たクォンタム比率である。そして、このＲＳ比を調整値として可変設定することで、タイムシェアリング周期ＴＳ内でのランダムアクセスとシーケンシャルアクセスの割当時間を変更できるようにしている。
【００６３】
ここでディスク入出力スケジュール機構２０でグループ化する入出力としては、例えば次のグループ化がある。
【００６４】
（１）ランダムアクセスの入出力グループ
（２）シーケンシャルアクセスの入出力グループ
（３）論理ボリュームによる入出力グループ
（４）コピー／バックアップ処理による入出力グループ
（５）ＲＡＩＤのリ・ビルディング処理による入出力グループ
これにの入出力グループの形成は、入出力要求依頼部１４にシーケンシャルアクセス検出機構４５、バックアップ検出機構７８及びリビルディング機構８４が設けられていることを前提としている。
【００６５】
このため本発明にあっては、例えばランダムアクセス、シーケンシャルアクセス、及びコピー／バックアップ処理、及びリ・ビルディング処理の４つの入出力グループＧ１〜Ｇ４を形成してタイムシェアリング周期ＴＳにつき各々にクォンタムを設定してタイムシェアリングする。
【００６６】
また複数の入出力グループを１つにまとめてもよい。例えばランダムアクセスとシーケンシャルアクセスを１つの入出力グループにまとめ、コピー／バックアップ処理を各々独立のグループとして３グループを形成してもよい。この場合の同じグループに属するランダムアクセスとシーケンシャルアクセスについては、ＲＳ比を応じた割当時間をもつ。
【００６７】
ディスク・タイムシェアリング制御情報３０−１には、現クォンタム種別４４、現クォンタム開始時刻４６、更に次入出力タスク種別４８が設けられる。この現クォンタム種別４４は、ディスク装置１６のディスクドライブ２４−１，２４−２毎に設けられ、現在、ディスクドライブ２４−１，２４−２を使用している入出力グループの識別子が設定される。
【００６８】
現クォンタム開始時刻４６は、ディスク装置１６のディスクドライブ２４−１，２４−２毎に設けられ、現在クォンタム種別４４に設定されている現在のクォンタムが開始した時刻Ｔ0 が設定される。更に次入出力タスク種別４８は、ディスク装置１６のディスクドライブ２４−１，２４−２毎に設けられ、次のディスクドライブに対する入出力依頼をシンプル・タスクとするかオーダード・タスクとするかが設定される。この次入出力タスク種別４８に設定されるシンプル・タスク又はオーダード・タスクは、ディスク装置１６におけるリ・オーダリング機能の効果を十分に生かすために行う。
【００６９】
ここでディスク装置１６のリ・オーダリング機能は、ディスクドライブ２４−１又は２４−２のそれぞれについて、実行待ちの入出力の中からシーク時間と回転時間の和で与えられるポジショニング時間を最小とする入出力を次に実行する入出力として選ぶ機能である。
【００７０】
このようなリ・オーダリング機能を備えたディスク装置に入出力を依頼する場合、サンプル・タスクを指定するとリ・オーダリングの対象としてよいことをディスクドライブに通知することになる。このサンプル・タスクを指定した入出力を受けつけたディスクドライブは、ポジショニング時間を最小とするような順番で入出力をスケジュールする。
【００７１】
しかしながら、リ・オーダリング機能は常にポジショニング時間が最小となる入出力を選択するため、ある入出力が長い間待ちのままスケジュールされない現象が発生する。この現象を解消するためディスクドライブはシンプル・タスクの他にオーダー・タスクの機能を備えている。オーダー・タスクを指定して入出力を依頼すると、ディスクドライブはそれまで受け継いでいた未だ完了していない入出力を全て完了させた後に、オーダード・タスクの入出力をスケジュールする。このためシンプル・タスクの間にオーダード・タスクを混ぜることで、入出力の最大応答時間の延長を押さえることが可能となる。
【００７２】
本発明のディスク・タイムシェアリング処理にあっては、クォンタムを切り替えた後の最初の入出力は、オーダード・タスクを指定してディスク装置１６に依頼し、クォンタム切り替え前の未だ完了していない入出力を完了させた後に次のクォンタムの入出力を実行する。このためクォンタムに切り替えた後の２つ目以降の入出力についてはシンプル・タスクを指定する。
【００７３】
またひとつの入出力グループからの入出力しかない場合には、その入出力グループのスケジュールを連続するためにクォンタムをリセットしながら繰り返すことになる。この場合にあってはクォンタムをリセットした直後の最初の入出力はオーダード・タスクで依頼し、前のクォンタムで完了してない入出力を総て完了した後にリセット後のクォンタムの入出力をスケジュールする。
【００７４】
これによって複数の入出力グループの入出力が競合する場合、及びひとつの入出力グループのみの入出力のみを連続させる場合の最大応答時間の延長を防止することができる。
【００７５】
図４は、図３のディスク入出力スケジュール機構２０に設けている入出力スケジュール部３２によるディスク・タイムシェアリングのスケジュールの一例である。
【００７６】
図４において、３つの入出力グループＧ１〜Ｇ３について、ディスク・タイムシェアリング制御情報３０−１のスケジュール待ちグループキュー３８−１〜３８−３に入出力要求が格納されている競合状態にあっては、入出力グループＧ１〜Ｇ３毎に決定されたクォンタム持ち時間τ１，τ２，τ３に従って、グループＧ１〜Ｇ３の順に各入出力をスケジューリングしてディスク装置１６に入出力を依頼する。
【００７７】
例えば時刻ｔ０からのクォンタム持ち時間τ１の間は、入出力グループＧ１の２つの入出力がスケジュールされる。クォンタム切替えは、入出力完了時点の時刻が現クォンタム切替え時刻を越えた時点で、次の入出力グループのクォンタムに切替える。この切替えは次式で判断する。
0004091225.tif 000002
即ち、（１）式を満たせば、現クォンタム種別に対応する入出力グループＧ１の入出力をディスク装置に依頼し、満たさない場合は、次の入出力グループＧ２のクォンタムに切替える。
【００７８】
次の入出力グループＧ２のクォンタム持ち時間τ２の間には、例えば６つの入出力がスケジュールされている。更に時刻ｔ２でクォンタム持ち時間τ２が経過すると、入出力グループＧ３のクォンタム持ち時間τ３への切り替えが行われ、例えば入出力グループＧ３の３つの入出力がスケジュールされる。以下同様にクォンタム持ち時間τ１，τ２，τ３を切り替えて、それぞれの入出力グループの入出力をスケジュールする。
【００７９】
図５は、特定の入出力グループの入出力のみが連続した場合のタイムシェアリング処理の一例である。図５において、時刻ｔ０で入出力グループＧ１のみの入出力が図３のスケジュール待ちグループキュー３８−１に並んでおり、残りの入出力グループＧ２，Ｇ３のスケジュール待ちキュー３８−２，３８−３は空であったとする。
【００８０】
この場合には時刻ｔ０からの入出力グループＧ１のクォンタム持ち時間τ１で入出力グループＧ１の２つの入出力をスケジュールした後、時刻ｔ１でクォンタム持ち時間τ１をリセットすることで次の同じ入出力グループＧ１のクォンタムτ持ち時間１をリ・スタートさせ、例えば３つの入出力をスケジュールする。
【００８１】
このようにひとつの入出力グループの入出力のみ待ち状態にある時は、そのクォンタムをリセットすることで連続してひとつの入出力グループの入出力をスケジュールする。
【００８２】
更に図５にあっては、時刻ｔ２で３つの入出力グループＧ１〜Ｇ３の入出力が競合状態となることで、次のクォンタム持ち時間τ２への切り替えが行われる。しかしながら、クォンタム持ち時間τ２において入出力グループＧ２の入出力が３つしかなく、クォンタム持ち時間τ２の途中の時刻ｔ３で３つの入出力要求が途絶えている。
【００８３】
この場合には、例えば入出力グループＧ３に待ち状態の入出力要求があることから、時刻ｔ３でクォンタム持ち時間τ３に切り替え、入出力グループＧ３の例えば３つの入出力をスケジュールする。
【００８４】
この図４及び図５に示したディスク・タイムシェアリングのスケジュールにおいて、ディスクドライブに対する入出力の依頼は、クォンタムを切り替えた直後の入出力はオーダード・タスクで依頼し、２回目以降の次のクォンタム切替えまでの入出力はシンプル・タスクで依頼する。
【００８５】
このようにディスクドライブ２４−１，２４−２のリ・オーダリング機能を生かすためには、クォンタムを切り替えた際に現在ディスクトドライブ２４−１，２４−２に依頼している入出力要求が全て完了するまでの時間を予測し、この予測時間が切り替え後のクォンタム以内であれば、切り替え後にクォンタムの入出力を依頼し、予測時間が切り替え後のクォンタムを越えていた場合には、切り替え後の入出力を依頼せずに次のクォンタムへの切り替えを待つようにする。
【００８６】
これはディスク装置１６のリ・オーダリングの恩恵を受けるためにはディスク入出力スケジュール機構２０において、できるだけ多くの入出力をディスク装置１６に依頼する環境を作るためである。
【００８７】
シンプルタスクを使う場合、ディスク装置に対して複数の入出力要求を依頼することになる。本発明のディスクタイムシェリングは、ディスク装置での入出力処理時間の時分割制御を目的としているので、ディスク装置へ入出力要求を依頼する際には、依頼された複数の要求をディスク装置で処理するのに必要な時間を予測し、次のクォンタムに切替えた後に切替え後のクォンタム種別の入出力をディスク装置に投入するか否か判断する必要がある。
【００８８】
このため、クォンタム切替え時に現在ディスクドライブに依頼している要求が次のクォンタム内で完了して新たな入出力要求が投入できるか否かを判断するため残り時間τr を次式で算出する。
τr ＝Ｔ0 ＋τ−Ｔw −Ｔnow               （２）
但し、Ｔ0 はクォンタム開始時刻（予測値）
τはクォンタム割当時間
Ｔw は未処理Ｉ／Ｏ処理時間（予測値）
Ｔnow は現在時刻
Ｔ0 ＝Ｔs ＋Ｔw                           （３）
但し、Ｔs は切替え前のクォンタム開始時刻
Ｔw ＝Ｎ×Ｔａ                          （４）
但し、Ｎは未処理のＩ／Ｏ数
Ｔa はアクセス種別毎によるＩ／Ｏの平均処理時間
ここで未処理Ｉ／０とは、ディスク装置に入出力要求を投入して完了応答が返っていなものをいう。この未処理Ｉ／Ｏには、本発明の実施形態の場合、前未処理Ｉ／Ｏ、前々未処理Ｉ／Ｏおよび全未処理Ｉ／Ｏがあり、それぞれ直前のクォンタムの未処理Ｉ／Ｏ、２つ前のクォンタムの未処理Ｉ／Ｏ、および全てのクォンタムを通じた未処理Ｉ／Ｏを意味する。
【００８９】
またクォンタム開始時刻Ｔ0 も予測値であり、前クォンタムの残り時間予測により、現クォンタムへの切替えを判断した際に予測する。この時、ディスク装置上で前クォンタムの未処理Ｉ／Ｏの処理が全て完了するのに必要な時間Ｔｗを（４）式で予測し、ディスク装置上での前クォンタムの終了時刻、即ち、現クォンタムの開始時刻Ｔ0 を（３）式で予測する。
【００９０】
（２）式の残り時間Ｔｒは、ディスク入出力スケジュール機構が新たな入出力を受け付けた場合、またはディスク装置から入出力の完了応答を受けた場合に算出され、残り時間Ｔr が
Ｔｒ ＞０
あれば、残り時間ありと判断し、現クォンタムの入出力をディスク装置に投入する。また
Ｔr ≦０
であれば、残り時間なしと判断し、クォンタムを切替える。
【００９１】
ここで前記（２）式のの残り時間Ｔr の算出に使用するディスクドライブの平均入出力処理時間Ｔa の算出方法は、例えば直前のｎ個の入出力処理時間の平均値とする。この場合ｎは例えばｎ＝１０の有限値であってもよし、例えばｎ＝∞つまりシステム始動時からの総ての入出力についてでもよい。
【００９２】
更に入出力処理時間の平均値の算出については、入出力グループ毎に平均値を算出する方法と、全ての入出力グループの平均値を算出する方法のいずれかとすることができる。
【００９３】
一方、大量データをアクセスする場合、ポジショニング時間がデータ転送時間に比較して短いため、アクセスするデータ量とディスクドライブの転送能力から平均入出力処理時間Ｔa を予測する。この場合、ポジショニング時間はリ・オーダリング機能の恩恵をどの程度受けられるか、即ちその時のディスクドライブでのリ・オーダリング対象の入出力の数、個々の入出力要求のアドレスの分散具合などによって違ってくるが、大量データアクセスの場合、処理時間に占めるポジショニング時間の割合が小さいため、この場合には処理時間を
（平均ポジショニング時間）＋（データ転送時間）
と予測する。
【００９４】
例えば転送速度が２０ＭＢ／ｓ、平均回転待ち時間が３ｍｓ、平均シーク時間が５ｍｓのディスクドライブで１ＭＢのデータをアクセスする場合、平均ポジショニング時間が８ｍｓに対し、転送時間は５２ｍｓなので、処理時間は両者を加えた６０ｍｓとする。
【００９５】
図６は、クォンタム切替え時の残り時間予測の例であり、シーケンシャル・クォンタムとランダム・クォンタムを交互に繰り返す場合について、図６（Ａ）〜（Ｊ）と時間が経過する場合の例である。
【００９６】
図６（Ａ）（Ｂ）は、ランダム・クォンタムからシーケンシャル・クォンタムへの切替え時に、次のクォンタム開始時刻Ｔ0 を予測する例である。ランダム・クォンタムに切替っている現在時刻Ｔnow で、ランダム・クォンタムの残り時間不足になったとする。このとき、前クォンタムのシーケンシャルＩ／Ｏが１要求、現クォンタムのランダムＩ／Ｏが３要求の完了応答が返ってきておらず、ディスク装置で処理中である。
【００９７】
この場合、図６（Ｂ）のように、ディスク装置に投入している処理中Ｉ／Ｏが全て完了するまでの時間Ｔw1を（４）式で予測し、（２）式より次のシーケンシャル・クォンタムの開始時刻Ｔ0 を決定する。またクォンタムをシーケンシャル・クォンタムに切替える。
【００９８】
図６（Ｃ）〜（Ｆ）は、残り時間予測で、残り時間ありと判断する例である。図６（Ｂ）でシーケンシャル・クォンタムに切替わった後、ディスク入出力スケジュール機構がシーケンシャルＩ／Ｏを現在時刻Ｔnow で１要求受け付けたとする。この時、ディスク装置に依頼しているＩ／Ｏ要求で完了応答が返ってきていない未処理Ｉ／Ｏとして、ランダムＩ／Ｏの１要求がある。即、ディスク装置は、前クォンタムのランダムＩ／Ｏの１要求を処理中である。
【００９９】
この場合、図６（Ｅ）のように、ランダムＩ／Ｏの１要求をディスク装置で完了するまでの時間Ｔw2を（４）式で予測し、図６（Ｂ）で求めたクォンタム開始時刻Ｔ0 を使用して（２）式より残り時間Ｔr2を図６（Ｆ）のように求める。この場合、Ｔr2＞０であることから、シーケシンャルＩ／Ｏをディスク装置に投入することができる。
【０１００】
図６（Ｇ）〜（Ｊ）は、残り時間予測で、残り時間なしと判断する例である。さらに時間が進み、図６（Ｇ）の現在時刻Ｔnow でディスク入出力スケジュール機構がシーケンシャルＩ／Ｏを１要求受け付けたとする。この時、ディスク装置に依頼しているＩ／Ｏ要求で完了応答が返ってきていない未処理Ｉ／Ｏとして、のシーケンシャルＩ／Ｏの１要求がある。即、ディスク装置は、現クォンタムのシーケンシャルＩ／Ｏの１要求を処理中である。
【０１０１】
この場合、図６（Ｉ）のように、シーケンシャルＩ／Ｏの１要求をディスク装置で完了するまでの時間Ｔw3を（４）式で予測し、図６（Ｂ）で求めたクォンタム開始時刻Ｔ0 を使用して（２）式より残り時間Ｔr3を図６（Ｊ）のように求める。この場合、Ｔr3＜０であることから、残り時間なしと判断し、次のランダム・クォンタムに切替える。
【０１０２】
図７は、図３のディスク入出力スケジュール機構２０に設けた入出力スケジュール部３２による本発明のディスクタイム・シェアリング制御処理のフローチャートである。
【０１０３】
この入出力スケジュール部３２によるディスクタイム・シェアリング制御処理は、入出力要求受付部３４で入出力要求部１８より、ある入出力要求を受付けた際の呼出し、或いは入出力完了処理部３６でディスク装置１６に依頼した入出力に対する完了報告があったときからの呼出しを受けて動作する。
【０１０４】
まず図４のスケジュールに示したように、図３のディスク入出力スケジュール機構２０において、競合した３つの入出力グループ間でクォンタムを順番に切替えてディスクドライブ２４−１のタイムシェアリングを行なう場合を説明する。
【０１０５】
ステップＳ１で現クォンタム種別に設定されているクォンタム識別子ｉ＝１に対応するスケジュール待ちグループキュー３８−１を調べ、待ちの入出力の有無を判定する。
【０１０６】
スケジュール待ちグループキュー３８−１に待ちの入出力があれば、ステップＳ２に進み、前々クォンタムに未完了の入出力があるか否かチェックする。いま、クォンタム識別子ｉ＝１が最初のスケジュールであるとすると、前々クォンタムに未完了入出力はないことから、ステップＳ３に進み、残り時間Ｔr を（２）式から予測する。
【０１０７】
続いてステップＳ４で残り時間ＴｒがＴr ＞０か否かチェックし、この条件が成立する場合には残り時間ありと判断してステップＳ８に進む。ステップＳ４にあっては、現クォンタムのスケジュール待ちグループキュー３８−１の先頭の入出力をディスク装置１６のディスク入出力処理部２２を介してディスクドライブ２４−１に依頼し、次入出力タスク種別情報４８のタスクをシンプルタクスに設定する。
【０１０８】
続いてステップＳ１に戻り、現クォンタムのスケジュール待ちグループキュー３８−１に待ちの入出力があるか否かチェックし、待ちがあればステップＳ２、Ｓ３，Ｓ８の処理を繰り返す。このような入出力グループＧ１のクォンタム持ち時間τ１における入出力のスケジュールによりステップＳ３でＴr ≦０となり、残り時間無しが判断されるとステップＳ５に進み、他の入出力グループＧ２，Ｇ３のスケジュール待ちグループキュー３８−２，３８−３に待ちの入出力があるか否かチェックする。
【０１０９】
このとき次の入出力グループＧ２のスケジュール待ちグループキュー３８−２に入出力の待ちがあるとステップＳ１０に進み、次の入出力グループＧ２のクォンタム持ち時間τ２に切替え、次入出力タスク種別情報４８について、次のタスクをオーダードに設定する。同時に、クォンタム現在時刻Ｔ0 を（３）式から予測し、予測したＴ0 を現クォンタム開始時刻に設定する。
【０１１０】
これにより最初の入出力グループＧ１のクォンタム持ち時間τ１から次の入出力グループＧ２のクォンタム持ち時間τ２への切替えが行われ、再びステップＳ１に戻り、クォンタム切替えに伴う次の入出力グループＧ２をステップＳ２，Ｓ３，Ｓ４，Ｓ８により処理する。
【０１１１】
この時、ステップＳ１０で次のタスクをオーダードに設定しているため、クォンタム切替え後の最初の入出力はオーダードの指定でディスクドライブ２４−１に依頼される。依頼が済んだならば次入出力タスク種別情報４８のタスクをシンプルに設定する。
【０１１２】
次に図５に示したように１つの入出力グループ、例えば入出力グループＧ１の入出力要求が連続した場合の処理を説明する。同じ入出力グループＧ１の入出力要求の受付けが連続した場合には、ステップＳ１〜Ｓ４の処理をクォンタムｔ１で繰り返して同じ入出力グループの入出力要求をディスクドライブ２４−１に依頼し、この間にステップＳ４で残り時間無しが判別されるとステップＳ５に進み、他の入出力グループのスケジュール待ちグループキュー３８−２，３８−３に待ちの入出力があるか否かチェックする。
【０１１３】
この時、他の入出力グループＧ２，Ｇ３のスケジュール待ちクループキュー３８−２，３８−３に待ちの入出力がなく空であった場合には、ステップＳ９に進み、現クォンタム持ち時間τ１をリセットし次のタスクをオーダードに設定し、同時に、クォンタム現在時刻Ｔo を予測して現クォンタム開始時刻に設定し、ステップＳ１に戻る。この場合、現クォンタム種別はそのままとする。
【０１１４】
このため現クォンタム持ち時間τ１をリセットした後の次のクォンタムも同じクォンタム持ち時間τ１となり、入出力グループＧ１の入出力要求が続いている場合には、同じクォンタムτ１が継続される。
【０１１５】
一方、図５の時刻ｔ２以降に示すように時刻ｔ０〜ｔ２の間に同一入出力グループＧ１の入力要求が連続してクォンタムｔ１，ｔ２がリセットにより継続し、時刻ｔ２までに残り２つの入出力グループＧ２，Ｇ３の入出力要求が受付けられてスケジュール待ちグループキュー３８−２，３８−３に格納されていると、次の入出力グループＧ２のクォンタム持ち時間τ２への切替えが行われる。
【０１１６】
しかしながら、図５の時刻ｔ３のようにクォンタム持ち時間τ２の途中で入出力グループＧ２のスケジュール待ちグループキュー３８−２が空になってステップＳ１で待ちキュー無しが判別されると、ステップＳ６に進み、他のクォンタムについてスケジュール待ちグループキュー３８−１，３８−３に待ちの入出力があるか否かチェックする。
【０１１７】
この時、他のクォンタムに待ちの入出力があればステップＳ１０に進み、全てのクォンタムに未完了の入出力があるか否かチェックし、無ければステップＳ１１に進み、次の入出力グループＧ３のクォンタム持ち時間τ３に切替え、次タスクをオーダードに設定し、更に、クォンタム開始時刻Ｔ0 を予測して設定し、ステップＳ１に戻ることで切替え後の入出力グループＧ３の最初の入出力要求をオーダードでディスクドライブ２４−１にステップＳ１〜Ｓ４，Ｓ８の処理を通じて依頼することになる。
【０１１８】
ここで図３でシーケンシャルアクセスとランダムアクセスについて入出力をグループを形成する場合には、入出力要求部１８にシーケンシャルアクセス検出機構４５を設けている。例えばＲＡＩＤ制御部２６に対する入出力依頼インターフェースに、シーケンシャルアクセス検出機構４５で検出したシーケンシャルアクセスの入出力であることを通知するインターフェースを追加する。
【０１１９】
シーケンシャルアクセス検出機構４５は、図２に示した上位のデバイス制御装置１２から発行された入出力コマンドに含まれるアドレスとデータ長から次の入出力コマンドのアドレスを認識しており、次の入出力コマンドのアドレスが予測したアドレスに一致した場合には、シーケンシャルアクセスを検出し、シーケンシャルアクセスを示すフラグなどの情報をインタフェースによりＲＡＩＤ制御部２６を介してディスク入出力スケジュール機構２０の入出力要求受付部３４に発行する。
【０１２０】
このため入出力要求受付部３４にあっては、入出力要求部１８から受付けた入出力要求について、シーケンシャルアクセスかランダムアクセスかを認識することができる。
【０１２１】
またコピー／バックアップ処理の入出力グループを形成する場合には、入出力要求部１８にバックアップ機構７８を設けている。バックアップ機構７８からの入出力は、バックアップ入出力を通知するための追加インターフェースによりＲＡＩＤ制御部２６に通知される。ＲＡＩＤ制御部２６は、ディスク入出力スケジュール機構２０への入出力依頼時に、バックアップの入出力であることを伝え、コピー処理／バックアップ処理の入出力グループについてディスクタイムシェアリングを行う。
【０１２２】
更に、リビルディング処理の入出力グループを形成する場合は、入出力要求部１８にリビルディング機構８４を設けている。リビルディング処理の際には、ＲＡＩＤ制御部２６に対する入出力要求につき、リビルディング処理であることを示すインターフェースを追加している。ＲＡＩＤ制御部２６はディスク入出力スケジュール機構２０に入出力を依頼する際に、リビルディング入出力の通知を行ない、リビルディング処理の入出力グループについてディスクタイムシェアリングを行う。
【０１２３】
図８は図２のチューニング機構５０の機能ブロック図である。図８において、チューニング機構５０は、チューニング部５２と基礎データファイル５４で構成されている。チューニング部５２には要求性能設定部５６と動作条件決定部５８が設けられる。
【０１２４】
要求性能設定部５６はユーザによるランダムアクセスの平均レスポンスＡｖｅと最大レスポンスＭａｘ及びシーケンシャルアクセスのスループットＴｈＰを受け付け、更に図２のアレイディスク装置１４側のディスク入出力スケジュール機構２０側で観測したランダムアクセスの負荷状態ＩＯＰＳを入手し、動作条件決定部５８に出力する。尚、ランダムアクセスの負荷状態ＩＯＰＳは直接、動作条件決定部５８に供給してもよい。
【０１２５】
動作条件決定部５８は、要求性能設定部５６で設定した要求性能値を満足するタイムシェアリング周期ＴＳとランダムアクセスとシーケンシャルアクセスのクォンタム比率のＲＳ比を調整値として決定し、図２のディスク入出力スケジュール機構２０のタイムシェアリング周期ＴＳと各グループのクォンタムを自動的に調整する。
【０１２６】
基礎データファイル５４には、平均レスポンス用の第１基礎データ６２、最大レスポンス用の第２基礎データ６４及びスループット用の第３基礎データ６６が格納されている。
【０１２７】
図９は図８の基礎データファイル５４に格納している各基礎データのデータ構造を示す。このデータ構造で格納されている基礎データはシミュレーションあるいは実測値により得られたデータである。
【０１２８】
図９（Ａ）は、ランダムアクセスの平均レスポンスに関する第１基礎データ６２であり、ランダムアクセスの負荷ＩＯＰＳごとに分けて、対応する基礎データを格納している。例えば負荷ＩＯＰＳ＝１００，１５０について平均レスポンスに関する基礎データを格納している。
【０１２９】
負荷ＩＯＰＳ＝１００を例にとると、タイムシェアリング周期ＴＳ＝１００ｍｓ，２００ｍｓ，３００ｍｓとＲＳ比＝９０％，８０％，７０％の組合せに応じた平均レスポンス時間が基礎データとして格納されている。同様に負荷ＩＯＰＳ＝１５０についても、３つのタイムシェアリング周期ＴＳと３つのＲＳ比の組合せに対応して平均レスポンスが格納されている。
【０１３０】
図９（Ｂ）は、ランダムアクセスの最大レスポンスに関する第２基礎データ６４であり、図９（Ａ）の平均レスポンスの基礎データ６２と同様、ランダムアクセスの負荷ＩＯＰＳ＝１００，１５０に分けて基礎データを格納している。それぞれの基礎データはタイムシェアリング周期ＴＳ＝１００ｍｓ，２００ｍｓ，３００ｍｓとＲＳ比＝９０％，８０％，７０％の組合せに対応して、最大レスポンスを基礎データとして格納している。
【０１３１】
図９（Ｃ）は、シーケンシャルアクセスのスループットＴｈＰに関する第３基礎データ６６であり、このスループットに関してはランダムアクセスの負荷ＩＯＰＳには関わらず、タイムシェアリング周期ＴＳとＲＳ比の組合せに対応したスループットが基礎データとして格納されている。
【０１３２】
次に図８の動作条件決定部５８によるチューニング処理を図９の基礎データを例にとって説明すると次のようになる。まず要求性能設定部５６から平均レスポンス、最大レスポンス、スループットの順に優先度が指示されており、このときユーザの要求値が次の値であったとする。
・平均レスポンスＡｖｅ＝４０ｍｓ以下
・最大レスポンスＭａｘ＝８０ｍｓ以下
・スループットＴｈＰ＝３．０ＭＢ／ｓ以上
また、このときのランダムアクセスの負荷状態の観測値が１００ＩＯＰＳであったとする。
【０１３３】
図１０は、このような要求性能及び優先度が設定された状態でのチューニング処理の手順を表している。まず最も優先度が高い平均レスポンスに関し、図９（Ａ）の第１基礎データ６２の中の負荷ＩＯＰＳ＝１００のデータを図１０の第１基礎データ６２Ａのように抽出し、この第１基礎データ６２Ａの中から平均レスポンスＡｖｅが要求性能値である４０ｍｓ以下となる斜線の領域を抽出する。
【０１３４】
次に図９（Ｂ）の第２基礎データ６４の中からランダムアクセスの負荷ＩＯＰＳ＝１００のデータを図１０の第２基礎データ６４Ａのように抽出し、ユーザが要求した最大レスポンス８０ｍｓ以下を達成できる斜線部の領域を獲得する。続いて共通領域検査部７１で第１基礎データ６２Ａの斜線部と第２基礎データ６４Ａの斜線部の比較で、平均レスポンスと最大レスポンスの両方のユーザ要求を達成する第１共通データ６８に示す斜線部の領域を獲得する。
【０１３５】
次に優先度が最も低い図９（Ｃ）のスループットに関する第３基礎データ６６について、３．０ＭＢ／ｓ以上とするスループットのユーザ要求を達成できる領域を、図１０の第３基礎データ６６の斜線部に示すように獲得する。
【０１３６】
最終的に第１共通データ６８の平均レスポンスと最大レスポンスのユーザ要求を達成している斜線部の領域と、第３基礎データ６６のスループットのユーザ要求を達成している斜線部の領域との比較により、平均レスポンス、最大レスポンス及びスループットの全てのユーザ要求を達成できる領域の共通部分を、第２共通データ７０の斜線部のように獲得する。
【０１３７】
以上の結果から第２共通データ７０の斜線部の領域に対応するタイムシェアリング周期ＴＳ＝３００ｍｓとＲＳ比＝９０％の組合せが、平均レスポンス、最大レスポンス及びスループットの全てのユーザ要求を達成できる調整値として決定され、図２のディスク入出力スケジュール機構２０に設定されてタイムシェアリングの動作条件を自動的に調整する。
【０１３８】
例えばディスク入出力スケジュール機構２０において、ランダムアクセスとシーケンシャルアクセスの２グループのタイムシェアリングを行っていた場合には、タイムシェアリング周期ＴＳ＝３００ｍｓの設定と同時にＲＳ比＝９０％に基づいて、ランダムアクセスのクォンタムが２７０ｍｓ、シーケンシャルアクセスのクォンタムが３０ｍｓに設定される。
【０１３９】
図１１は図８のチューニング処理のフローチャートである。まずステップＳ１でユーザ要求の優先度の高い方から順に要求性能の基礎データを獲得する。例えば平均レスポンス、最大レスポンス、スループットの順に優先度が設定されていた場合には、まず平均レスポンスについての基礎データを獲得する。
【０１４０】
続いてステップＳ２について、ユーザ要求値を達成できる設定が可能な領域を基礎データについて獲得する。続いてステップＳ３でユーザ要求を達成できる要求がある場合には、ステップＳ４に進み、現在処理している基礎データが最優先の要求性能の項目か否か判定する。
【０１４１】
最優先の要求性能であった場合には、最初のデータ領域であるために共通領域を判定することができないので、ステップＳ１に戻り、次の要求性能についての要求達成領域の獲得をステップＳ１〜Ｓ３で行う。２番目以降の優先度の要求性能であった場合にはステップＳ５に進み、既に獲得している要求性能の領域を獲得して新たな共通領域とする。
【０１４２】
続いてステップＳ６で共通領域が獲得できたか否かチェックし、獲得できればステップＳ７に進む。ステップＳ７にあっては、次のユーザ要求性能の項目がある場合にはステップＳ１に戻り、ない場合にはステップＳ８に進む。ステップＳ８にあっては、最終的に得られた複数の要求性能の共通領域から最優先の要求性能の項目が最も良い値をとる組合せを選択する。
【０１４３】
ここでステップＳ８の最善の組合せ選択で、例えば平均レスポンス、最大レスポンス、スループットの３つの要求性能について全ての要求を満足するタイムシェアリング周期ＴＳとＲＳ比の組合せが１または複数ある場合には問題ないが、下位の要求性能が達成できていない場合には、例えば第１モード〜第４モードのいずれかのモードによる調整値の決定を行う。例えば上位の平均レスポンス及び最大レスポンスについては要求性能を満足したが下位のスループットについては要求性能が達成できない場合には、モード１〜４の処理は次のようになる。
【０１４４】
（１）上位の優先度となる平均レスポンスと最大レスポンスを達成できる設定範囲で下位のスループットの要求性能が達成できない場合、下位のスループットは考慮しないで調整値を決定する。
【０１４５】
（２）第２モードは、上位の優先度をもつ平均レスポンスと最大レスポンスが達成できる設定範囲では下位のスループットの要求性能が達成できない場合も、下位のスループットの要求性能を考慮して調整値を決定する。
【０１４６】
（３）第３モードは、上位の優先度をもつ平均レスポンスと最大レスポンスの要求性能が達成できる設定範囲では下位のスループットの要求性能が達成できない場合に、上位の平均レスポンスと最大レスポンスの共通領域の設定範囲内から下位のスループットの性能が最善になる調整値を選択する。
【０１４７】
（４）第４モードは、上位の優先度をもつ平均レスポンスと最大レスポンスが達成できる設定範囲では下位のスループットの要求性能が達成できない場合に、上位の平均レスポンスと最大レスポンスの共通領域の設定範囲から下位のスループットの性能が良くなる候補を複数点選択し、選択した候補の中から上位の平均レスポンス及び最大レスポンスが最大になる調整値を選択する。
【０１４８】
図１２は、上位の優先度の要求性能を達成できる設定範囲で下位の要求性能が達成できない場合の調整値の決定の具体例を示している。ここでユーザの要求性能は図９の場合と同様、
・平均レスポンスＡｖｅ＝４０ｍｓ以下
・最大レスポンスＭａｘ＝８０ｍｓ以下
・スループットＴｈＰ＝３．０ＭＢ／ｓ以上
である。
【０１４９】
また平均レスポンスの第１基礎データ６２、最大レスポンスの第２基礎データ６４は、図９（Ａ）（Ｂ）と同じデータである。これに対しスループットに関する第３基礎データ６６が図９（Ｃ）の場合と若干異なっており、図１３の第３基礎データ６６０となっている。相違点はタイムシェアリング周期ＴＳ＝３００ｍｓとＲＳ比＝９０％の組合せについて、スループットが２．６ＭＢ／ｓとなっている点である。
【０１５０】
この図１３のチューニング処理にあっては、平均レスポンス４０ｍｓ以下を抽出した第１基礎データ６２Ａの斜線部の領域と最大レスポンス８０ｍｓ以下を抽出した第２基礎データ６４Ａの斜線部の領域についての共通領域検査部７１による判断で第１共通データが得られている点は、図１０と同じである。
【０１５１】
これに対しスループットの第３基礎データ６６０についてはユーザ要求のスループットを満足する領域が斜線部となっており、共通領域検査部７２による第１共通データ６８による検出結果としての第２基礎データ７２０にあっては、平均レスポンス、最大レスポンス及びスループットの全てのユーザ要求を達成できる領域は獲得できない。
【０１５２】
このような場合、モード１にあっては下位のスループットの要求性能は考慮しないことから、第１共通データ６８Ａの斜線部の共通領域のいずれか１つを選択する。また第２モードでは第１共通データ６８Ａの中の斜線部の共通領域の選択において、下位のスループットの第３基礎データ６６０を考慮し、スループットが最大となる３．６ＭＢ／ｓに対応した共通領域についてのタイムシェアリング周期ＴＳ＝３００ｍｓとＲＳ比＝９０％の組合せを選択する。
【０１５３】
また第３モードの場合は、第１共通データ６８Ａの３つの共通領域に対応する下位のスループットの第３基礎データ６６０の中の対応する領域の中からスループットの改善が最善となる２．６ＭＢ／ｓに対応したタイムシェアリング周期ＴＳ＝３００ｍｓとＲＳ比＝９０％を選択する。この場合にはモード３はモード２の場合と同じ選択結果となっている。
【０１５４】
図１３は上位の優先度の要求性能を達成できる設定範囲では下位の要求性能が達成できない場合のモード４による調整値の選択処理の説明図である。
【０１５５】
図１３にあっては、優先度が最も低いスループットの第３基礎データ６６０におけるタイムシェアリング周期ＴＳ＝２００ｍｓ，３００ｍｓとＲＳ比＝９０％の組合せに格納しているデータが３．４ＭＢ／ｓ、３．６ＭＢ／ｓと、図１２の場合と異なっている。
【０１５６】
また図１３の場合のユーザの要求値は
・平均レスポンスＡｖｅ＝４０ｍｓ以下
・最大レスポンスＭａｘ＝８０ｍｓ以下
・スループットＴｈＰ＝４．０ＭＢ／ｓ以上
と、スループットが図１２に対し高めの要求となっている。
【０１５７】
このような場合についても、図１２と同様、第２共通データ７２０には平均レスポンス、最大レスポンス及びスループットの全てのユーザ要求を達成できる領域は存在しない。この場合、第４モードにあっては、平均レスポンスと最大レスポンスの共通領域を獲得した第１共通データ６８の３つの斜線部の領域に対応するスループットの第３基礎データ６６０の中から下位のスループットの性能が良くなる領域の候補を複数点選択する。
【０１５８】
この場合にはスループット３．４ＭＢ／ｓと３．６ＭＢ／ｓの２点が選択される。このように選択した２つの候補の中から上位の平均レスポンス及び最大レスポンスの性能が最善となる候補を選択する。即ち、第１基礎データ６２Ａで平均レスポンスが２５ｍｓ、第２基礎データ６４Ａで最大レスポンスが６０ｍｓとなるタイムシェアリング周期ＴＳ＝２００ｍｓとＲＳ比９０％の組が選択される。
【０１５９】
図１４は、図８において自動チューニングを行わない場合のシミュレーション結果の特性図である。
【０１６０】
このシミュレーションにあっては、ランダムアクセス、シーケンシャルアクセス、ＯＰＣアクセス（コピーアクセス）、ＥＣアクセス（エラーアクセス）の４つの入出力グループについて、それぞれ４つのクォンタムを設定してタイムシェアリングを行っている。またランダムアクセスとシーケンシャルアクセスは同一のグループに属する。他のＯＰＣアクセスとＥＣアクセスは全て独立したグループに属する。
【０１６１】
またシミュレーションにあっては、シーケンシャル入出力要求が流れないようにしているため、同じグループに属しているシーケンシャルアクセスのクォンタムは全てランダムアクセスのクォンタムに使用される。
【０１６２】
各クォンタムの時間比は
（ランダム）：（シーケンシャル）：（ＯＰＣ）：（ＥＣ）
＝６５：５：１５：１５
となる。ここでシーケンシャルクォンタムについては入出力要求がないため、実質的には
（ランダム）：（ＯＰＣ）：（ＥＣ）＝７０：１５：１５
となっている。またタイムシェアリング周期ＴＳは１００ｍｓとしている。更にランダムアクセスは７．５ｍｓごとに負荷を２０ＩＯＰＳ，１００ＩＯＰＳ，２２０ＩＯＰＳ，１００ＩＯＰＳとして、この振幅を繰り返している。更に、図１５は、図１４のシミュレーション開始時間０〜１００ｍｓ部分の拡大図である。
【０１６３】
図１４，図１５の自動チューニングを行っていない場合については、最も高くなる２２０ＩＯＰＳのランダムアクセスの負荷を処理しきれず、最高でもＡ部のように２００ＩＯＰＳのランダムアクセスしか処理することができない。
【０１６４】
またランダムアクセスの平均レスポンス（Ｒ  Ａｖｅ）は、負荷が高いときはＢ部のように１２０ｍｓ前後であり、最悪の場合はＣ部のように１５０ｍｓ強まで悪化する。
【０１６５】
図１６は、本発明による自動チューニングを行った場合のシミュレーション結果であり、図１７に図１６の０〜１００ｍｓ付近を拡大して示している。
【０１６６】
このシミュレーションにおけるランダムアクセスの負荷ＩＯＰＳの与え方は図１４の場合と同じであり、またタイムシェアリング周期ＴＳと各クォンタムの時間比は、要求性能は固定であるが負荷ＩＯＰＳの観測値により自動的に変動する。また自動チューニングの設定ではユーザ要求の優先度として、平均レスポンス、最大レスポンス、スループットの順とすることで、ランダムアクセス優先のチューニングとしている。
【０１６７】
この結果、図１６，図１７の自動チューニングした場合については、Ａ部のように２２０ＩＯＰＳのランダムアクセスの負荷を概ね処理することができている。また負荷ＩＯＰＳが高いときの平均レスポンスもＢ部のように５０ｍｓ前後であり、最悪でもＣ部のように６０ｍｓ強という値に抑えられている。
【０１６８】
尚、上記の実施形態にあっては、要求性能として平均レスポンス、最大レスポンス、スループットを例にとるものであったが、必要に応じて適宜の要求性能を設定することができる。また優先度をランダムアクセス優先とすることで平均レスポンス、最大レスポンス、スループットの順に設定しているが、逆にシーケンシャルアクセス優先で優先度をスループット、平均レスポンス、最大レスポンスの順に設定するようにしても良い。
【０１６９】
また本発明は、その目的と利点を含まない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０１７０】
【発明の効果】
以上説明してきたように本発明によれば、シミュレーションあるいは実測等により得られた負荷、平均レスポンス、最大レスポンス、スループット等の実績（統計情報）を基礎データとして保存し、チューニング部により負荷の状態と保存した基礎データによる実績を基にユーザ要求性能を満たす最適な調整値、例えばタイムシェアリング周期とランダムアクセスとシーケンシャルアクセスのクォンタム比率（ＲＳ比）を決定し、この調整値に基づいてタイムシェアリングの動作条件を自動的に調整することで、ユーザの要求性能に適切に対応した入出力処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明が適用されるストレージシステムのブロック図
【図３】３つの入出力グループを形成する本発明の基本的な実施形態の機能ブロック図
【図４】図３の３つの入出力グループの入出力を対象とした場合のディスク・タイムシェアリング処理のスケジュール説明図
【図５】１つの入出力グループのみの入出力が連続する場合のディスク・タイムシェアリング処理のスケジュール説明図
【図６】クォンタム切替え時の残り時間の予測処理の説明図
【図７】図３のディスク・タイムシェアリング処理のフローチャート
【図８】図２のチューニング機構の機能ブロック図
【図９】図８の基礎データファイルに基礎データとして格納する平均レスポンス、最大レスポンス、スループットの実績値の説明図
【図１０】要求性能の優先度に従って調整値を選択する図８のチューニング処理の説明図
【図１１】図８のチューニング処理のフローチャート
【図１２】下位の要求性能ができない場合のチューニング処理の説明図
【図１３】下位の要求性能ができない場合の他のチューニング処理の説明図
【図１４】チューニングを行っていない場合の負荷ＩＯＰＳ、ランダムアクセスの平均レスポンスと最大レスポンス、コピー処理、エラー処理実行のシミュレーション結果の特性図
【図１５】図１４の部分拡大図
【図１６】チューニングを行った場合の負荷ＩＯＰＳ、ランダムアクセスの平均レスポンスと最大レスポンス、コピー処理、エラー処理実行のシミュレーション結果の特性図
【図１７】図１６の部分拡大図
【符号の説明】
１０−１〜１０−ｍ：ホスト
１２：デバイス制御装置
１４：アレイディスク装置
１６：ディスク装置
１８：入出力要求部
２０：ディスク入出力スケジュール機構
２２：ディスク入出力処理部
２４−１〜２４−ｎ：ディスクドライブ
２６：ＲＡＩＤ制御部
３０−１〜３０−４：ディイスタイムシアリング制御情報
３２：入出力スケジュール部
３４：入出力受付部
３６：入出力完了処理部
３８−１〜３８−３：スケジュール待ちグループキュー
４０−１〜４０−３：完了待ちグループキュー
４２−１〜４２−３：グループ用クォンタム
４４：現クォンタム種別情報
４５：シーケンシャルアクセス検出機構
４６：現クォンタム開始時刻
４８：次入出力タスク種別情報
５０：チューニング機構
５２：チューニング部
５４：基礎データファイル
５６：要求性能設定部
５８：動作条件決定部
６２：第１基礎データ
６４：第２基礎データ
６６：第３基礎データ
７８：バックアップ／コピー機構
８４：リビルディング機構
【図１】
0004091225.tif 000003
【図２】
0004091225.tif 000004
【図３】
0004091225.tif 000005
【図４】
0004091225.tif 000006
【図５】
0004091225.tif 000007
【図６】
0004091225.tif 000008
【図７】
0004091225.tif 000009
【図８】
0004091225.tif 000010
【図９】
0004091225.tif 000011
【図１０】
0004091225.tif 000012
【図１１】
0004091225.tif 000013
【図１２】
0004091225.tif 000014
【図１３】
0004091225.tif 000015
【図１４】
0004091225.tif 000016
【図１５】
0004091225.tif 000017
【図１６】
0004091225.tif 000018
【図１７】
0004091225.tif 000019