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