(57)【要約】【課題】  複数ストリーム混在時も各ストリームの転送レートを保証する。【解決手段】  ホスト計算機から多重ストリームの処理を要求されるディスクアレイ装置が、転送レートを認識する転送レート認識処理と、ドライブ性能及び障害処理時間認識処理と、各ストリームを格納するシーケンシャルバッファのサイズ決定処理と、ドライブＩ／Ｏサイズ決定処理を行い、かつ、各処理において決定した転送レートとバッファサイズを用いて先読みやデステージ処理を終了すべき終了要求時刻を求め、この時刻に基づいてＩ／Ｏの優先順位を決める。【選択図】  図１０
2006285809.tif 000002
【特許請求の範囲】
【請求項１】
計算機と接続される制御部と、
前記制御部と接続されるディスク装置とを有し、
前記ディスク装置は複数のコンテンツを格納し、
前記制御部は、前記計算機から前記複数のコンテンツのうちの第一のコンテンツに対する第一のアクセス要求を受信し、前記第一のアクセス要求に関する第一のデータ転送レートを計算し、前記計算結果に基づいて前記第一のアクセス要求に基づく処理を行うことを特徴とする記憶装置システム。
【請求項２】
前記制御部は、前記第一のアクセス要求に基づく処理を前記第一のデータ転送レートを維持するための第一の時間間隔内で実行し、
前記第一の時間間隔は、該記憶装置システムが有する資源、処理能力及び前記第一のデータ転送レートによって決定されることを特徴とする請求項１記載の記憶装置システム。
【請求項３】
前記制御部は、前記第一のアクセス要求を処理中に、前記計算機から前記複数のコンテンツのうちの第二のコンテンツに対する第二のアクセス要求を受信し、前記第二のアクセス要求に関する第二のデータ転送レートを計算し、前記計算結果に基づいて前記第二のアクセス要求に基づく処理を行うことを特徴とする、請求項２記載の記憶装置システム。
【請求項４】
前記制御部は、前記第二のアクセス要求に基づく処理を前記第二のデータ転送レートを維持するための第二の時間間隔内で実行し、
前記第二の時間間隔は、該記憶装置システムが有する資源、処理能力及び前記第二のデータ転送レートによって決定されることを特徴とする請求項３記載の記憶装置システム。
【請求項５】
前記制御部は、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較し、前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して行うことを特徴とする請求項４記載の記憶装置システム。
【請求項６】
更にメモリを有し、
前記制御部は、前記第一のデータ転送レートに基づいて、前記第一のアクセス要求に基づく処理に対して前記メモリが有する記憶領域を割り当てることを特徴とする請求項５記載の記憶装置システム。
【請求項７】
前記第一のアクセス要求を受信した場合、前記制御部は、該記憶装置システムにおける最大データ転送レートに基づいて前記計算機に前記第一のアクセス要求で要求されるデータを転送し、前記計算機に送信されたデータ量を計算し、前記データ量を用いて前記第一のデータ転送レートを計算することを特徴とする請求項６記載の記憶装置システム。
【請求項８】
前記制御部は、前記ディスク装置が有する記憶領域に基づいて複数の論理ユニットを構成し、
前記複数の論理ユニットのうち、第一の論理ユニットには前記第一のコンテンツが格納され、第二の論理ユニットには前記第二のコンテンツが格納され、
前記制御部は、前記第一の論理ユニットに対するアクセス要求を前記第一のアクセス要求として、前記第一のデータ転送レートを計算し、前記第二の論理ユニットに対するアクセス要求を前記第二のアクセス要求として、前記第二のデータ転送レートを計算することを特徴とする請求項７記載の記憶装置システム。
【請求項９】
前記制御部は、前記第一のアクセス要求がシーケンシャルアクセスであるかどうかを判定し、シーケンシャルアクセスである場合に前記第一のアクセス要求に対応する前記第一のデータ転送レートを計算することを特徴とする請求項７記載の記憶装置システム。
【請求項１０】
前記制御部は、前記第一のデータ転送レートの情報を記憶し、前記第一のアクセス要求を再度受信した際に、前記記憶された前記第一のデータ転送レートを使用することを特徴とする請求項７記載の記憶装置システム。
【請求項１１】
複数のコンテンツを格納する記憶装置システムにおけるデータ転送方法であって、
前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第一のコンテンツへの第一のアクセス要求を受信し、
前記第一のアクセス要求に対応する第一のデータ転送レートを計算し、
計算された前記第一のデータ転送レートに基づいて前記第一のアクセス要求で要求されるデータを前記計算機に送信することを特徴とするデータ転送方法。
【請求項１２】
更に、前記第一のアクセス要求で要求されるデータを転送するための第一の処理を、前記第一のデータ転送レートを維持するために要求される第一の時間間隔で実行し、
前記第一の時間間隔は、前記記憶装置システムの資源、性能及び前記第一のデータ転送レートに基づいて決定されることを特徴とする請求項１１記載のデータ転送方法。
【請求項１３】
更に、前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第二のコンテンツへの第二のアクセス要求を受信し、
前記第二のアクセス要求に対応する第二のデータ転送レートを計算し、
計算された前記第二のデータ転送レートに基づいて前記第二のアクセス要求で要求されるデータを前記計算機に送信することを特徴とする、請求項１２記載のデータ転送方法。
【請求項１４】
更に、前記第二のアクセス要求で要求されるデータを転送するための第二の処理を、前記第二のデータ転送レートを維持するために要求される第二の時間間隔で実行し、
前記第二の時間間隔は、前記記憶装置システムの資源、性能及び前記第二のデータ転送レートに基づいて決定されることを特徴とする請求項１３記載のデータ転送方法。
【請求項１５】
更に、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較し、
前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して行うことを特徴とする請求項１４記載のデータ転送方法。
【請求項１６】
更に、前記第一のデータ転送レートを計算するステップは、
前記第一のアクセス要求を受信した場合、該記憶装置システムにおける最大データ転送レートに基づいて前記計算機に前記第一のアクセス要求で要求されるデータを転送し、
前記計算機に送信されたデータ量を計算し、
前記データ量を用いて前記第一のデータ転送レートを計算するステップを含むことを特徴とする請求項１５記載のデータ転送方法。
【請求項１７】
更に、前記第一のデータ転送レートを計算するステップは、
前記計算機から受信する前記第一のアクセス要求がシーケンシャルアクセスであるかどうかを判定し、
シーケンシャルアクセスである場合に前記第一のアクセス要求に対応する前記第一のデータ転送レートを計算するステップを含むことを特徴とする請求項１６記載のデータ転送方法。
【請求項１８】
複数のコンテンツを格納する記憶手段と、
前記記憶装置システムに接続される計算機から前記複数のコンテンツのうちの第一のコンテンツへの第一のアクセス要求及び前記計算機から前記複数のコンテンツのうちの第二のコンテンツへの第二のアクセス要求を受信する手段と、
前記第一のアクセス要求に対応する第一のデータ転送レート及び前記第二のアクセス要求に対応する第二のデータ転送レートを計算する手段と、
計算された前記第一のデータ転送レートに基づいて前記第一のアクセス要求で要求されるデータを送信し、計算された前記第二のデータ転送レートに基づいて前記第二のアクセス要求で要求されるデータを送信する手段を有することを特徴とする記憶装置システム。
【請求項１９】
更に、前記第一のアクセス要求で要求されるデータを転送するための第一の処理を、前記第一のデータ転送レートを維持するために要求される第一の時間間隔で実行し、かつ前記第二のアクセス要求で要求されるデータを転送するための第二の処理を、前記第二のデータ転送レートを維持するために要求される第二の時間間隔で実行する手段を有し、
前記第一の時間間隔は、前記記憶装置システムの資源、性能及び前記第一のデータ転送レートに基づいて決定され、前記第二の時間間隔は、前記記憶装置システムの資源、性能及び前記第二のデータ転送レートに基づいて決定されることを特徴とする請求項１８記載の記憶装置システム。
【請求項２０】
更に、前記第一の時間間隔と前記第二の時間間隔の終了時間を比較する手段と、
前記第二の時間間隔の終了時間が前記第一の時間間隔の終了時間よりも早い場合は、前記第二のアクセス要求に基づく処理を前記第一のアクセス要求に基づく処理に優先して実行する手段とを有することを特徴とする請求項１９記載の記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置において転送レートや応答時間といった品質を保証する技術に関する。
【背景技術】
【０００２】
近年、広帯域通信サービスの普及に伴い、デジタル化された映画やニュース等のリッチコンテンツのストリーミング配信が盛んになってきている。ストリーミング配信のためのシステムに含まれる記憶装置（以下「ストレージ装置」あるいは「記憶装置システム」とも言う）には、顧客への安定したデータ配信の保証のために、限界スループット性能だけでなく、転送レートや応答時間といったデータ転送の品質（以下「ＱｏＳ」：Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）の保証が要求される。このような品質保証に関する従来技術として、特許文献１から３がある。
【０００３】
特許文献１では、記憶装置内の構成要素及びその構成要素各々の性能値を考慮して、計算機から記憶装置の記憶領域までの通信品質を保証することを目的とした技術が開示されている。具体的には、特許文献１には記憶装置と計算機との間の通信品質を保証する通信品質設定装置が開示されている。この通信品質設定装置は、通信品質保証に関する要求情報、記憶装置のインターフェースの保証可能な性能値及び記憶装置の記憶領域の保証可能な性能値に基づいて、記憶領域各々で保証すべき性能値を決定する保証性能値生成部と、保証すべき性能値に従って記憶領域インターフェースとの間でデータの配置を制御するように記憶制御装置に対して指示することにより計算機と記憶装置内の記憶領域との間の通信を保証する保証性能値設定部を有する。
【０００４】
特許文献２では、データ転送速度を保証する記憶装置が開示されている。具体的には、特許文献２では、期待データ転送レートとトラック毎の転送レートを用いる技術が開示されている。記憶装置には、要求する期待データ転送レートが通知され、これが管理テーブルに登録される。記憶装置はフォーマット時などに、トラック毎にデータの書き込みおよび読み出しを行うことで不良セクタを認識し、不良セクタを除いた書き込み時間を管理テーブルに登録する。このデータ転送レートが、既に登録されている期待データ転送レートよりも小さければ、この記憶装置にはデータは格納できないことを認識し、転送レートを保証できる領域のみを用いてデータを格納する。
【０００５】
特許文献３では、記録部に記録されたデータへのアクセスを終了させるべき時間を記録したタイムアウトテーブルと、タイムアウトテーブルに記憶された時間を経過してもアクセスが終了しない場合に、上記記録部に記録された冗長データをアクセスし、データを生成するデータ生成手段を備える記憶装置が開示されている。
【０００６】
【特許文献１】特開２００４−８６５１２号公報
【特許文献２】特開平１０−１６２５０５号公報
【特許文献３】特許第３０８０５８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したストリーミング配信のシステムでは、顧客にサービスを提供する計算機は、複数の顧客に対してコンテンツ配信を同時に行うために、コンテンツを格納したストレージ装置に対して複数のアクセスを同時に（以下「多重ストリームアクセス」）行う。ここで「ストリーム」とはある一単位のデータ転送を指し、例えば一つのストリームは一つのコンテンツのデータ転送に該当する。多重ストリームアクセスを処理するストレージ装置は、各ストリームに対してＱｏＳを保証する必要がある。
【０００８】
前述の各文献では、一つのストリームに関してＱｏＳを保証することについては言及されているが、多重ストリームについてどのように個々のストリームのＱｏＳを保証するかについてはまったく言及されていない。
【０００９】
本発明の課題は、多重ストリームを処理する記憶装置において、各ストリームに対してＱｏＳを保証することである。
【課題を解決するための手段】
【００１０】
本発明の実施形態として、計算機からストリームアクセスを受信する記憶装置システムにおいて、記憶装置システム自身が、ストリームアクセスのデータ転送レートを検出する構成が考えられる。
【００１１】
又、上述の構成において、記憶装置システムは、検出したデータ転送レートに基づいて、データ読み出し等の内部処理の実行に要求される時間を計算し、その結果に基づいてデータ処理を行う構成も考えられる。
【００１２】
より具体的には、記憶装置システムは、自身が有する資源や性能等と検出されたデータ転送レートとから実行に要求される時間を計算する。ここで、その時点での資源で検出されたデータ転送レートを維持できない場合、記憶装置システムは、資源の構成を変更しても良い。ここで資源とは、例えばバッファメモリサイズ等が考えられる。性能とは、ドライブ性能や障害時の処理時間等が考えられる。
【００１３】
また、記憶装置システムにおいて、複数のストリームを処理する際に、要求される処理時間に応じてＩ／Ｏを内部でスケジューリングする構成も考えられる。
【００１４】
更に、記憶装置システムにおいて、ストリームアクセスをシーケンシャルアクセスかどうかで判定する構成も考えられる。又、ストリームアクセスをアクセス先に基づいて判断する構成も考えられる。
【００１５】
本発明の他の構成等については実施形態の記載から明らかにされる。ただし、本発明の概念が実施形態の記載に限定されることが無いのは言うまでも無い。
【発明の効果】
【００１６】
多重ストリームを受信する記憶装置システムにおいて、各ストリームのビットレートや応答時間を安定させることができる。
【発明を実施するための最良の形態】
【００１７】
図１は、第一の実施形態のコンピュータシステムの一例を示す図である。本実施形態のコンピュータシステムは、ユーザが使用する端末（以下単に「ユーザ」）１０１〜１０４、インターネット１０５を介してユーザからの配信要求を受け付ける計算機（以下「ホスト計算機」とも言う）１０９、１１０、ホスト計算機からのアクセス要求を処理するストレージ装置（以下「ディスクアレイ装置」とも言う）１１３を有する。ユーザとホスト計算機はインターネット１０５を介して相互に接続される。又、ホスト計算機とディスクアレイ装置１１３とは、通信線を介して接続される。尚、この通信線はインターネット１０５と置き換えられても良い。
【００１８】
ディスクアレイ装置１１３は、ディスクアクセス等を制御するディスクアレイ制御装置１１４及びデータを格納するドライブ１１８〜１２１を有する。ディスクアレイ制御装置１１４は、制御プログラムを実行するＭＰＵ１１５とデータを格納するキャッシュメモリ１１６を有する。
【００１９】
本実施形態においてはディスクアレイ装置１１３は複数のホスト計算機に共有され、更にホスト計算機は複数のユーザからコンテンツ要求のアクセスを受信する。したがってディスクアレイ装置１１３は多くのユーザから共有されることになり、ディスクアレイ装置１１３は多重ストリームアクセスを処理する必要がある。
【００２０】
ホスト計算機は一般的な計算機であり、プロセッサ、ネットワークとのインターフェース、メモリ等を有する。上述したように、ホスト計算機はユーザからのコンテンツ配信要求などを受信し、その内容に応じてディスクアレイ装置１１３にコンテンツの読み出し（又は書き込み）（以下「ストリームアクセス」とも言う）を要求する。
【００２１】
ユーザはコンテンツを表示できる装置であればよく、例えば携帯電話、パソコン、テレビ等が考えられる。ユーザとして使用される装置には、ネットワークへ接続するためのインターフェース、ホスト計算機と通信を行うための装置及び表示装置が備わっている。
【００２２】
以下、本実施形態における多重ストリームの処理概要について説明する。
本実施形態のディスクアレイ装置１１３は、まず多重ストリームを受信する際に、個々のストリームで要求されるデータ転送レート（以下単に「転送レート」とも言う）を検出する。その後、ディスクアレイ装置１１３は、個々のストリームのデータ転送レートを維持するために必要なディスクアレイ装置１１３の資源（ここではストリーム毎のバッファサイズやディスクI/Oサイズ）割当を決定する。その後、その資源割当に基づいて、ディスクアレイ装置１１３は、多重ストリームの処理を行う。
【００２３】
又、実際に多重ストリームの処理を行う場合、ディスクアレイ装置１１３は、受信したＩ／Ｏの処理が、検出されたデータ転送レートを維持できる時間で完了できるよう、他のストリームのI/O処理を考慮しながら、処理順番を決定する。
【００２４】
図１０は、上述した処理概要における各処理間の関係の一例を示す図である。ディスクアレイ装置１１３は、上述した処理を、図１０に示す各処理を実行することによって実現する。
【００２５】
上述した処理概要は、具体的には、パラメータ設定処理１００３、バッファサイズ決定処理及びドライブＩ／Ｏサイズ決定処理１００５並びにＩ／Ｏスケジューリング処理１００６とを含む。即ち、ディスクアレイ装置１１３は、これらの処理を実行する。パラメータ設定処理１００３は、更に、転送レート認識処理１０００及びドライブ性能、障害時の処理時間認識処理１００４を有する。
【００２６】
バッファサイズ決定処理及びドライブＩ／Ｏサイズ決定処理１００５では、ディスクアレイ装置１１３は、設定されたパラメータからバッファサイズやディスクＩ／Ｏサイズを決定する。Ｉ／Ｏスケジューリング処理１００６では、ディスクアレイ装置１１３は、設定されたパラメータ及びバッファサイズを用いて、多重ストリームで発生するＩ／Ｏをスケジューリングする。
【００２７】
これらの処理に基づいて、ディスクアレイ装置１１３は、多重ストリームに含まれる個々のストリームの転送レートを認識し、その転送レートに見合う資源を各ストリームに割り当て、更に、その資源に基づいて多重ストリームのI/Oをスケジューリングして処理する。以下、各処理の詳細について説明する。
【００２８】
転送レート認識処理１０００では、ディスクアレイ装置１１３は、ホスト計算機からディスクアレイ装置１１３に対して発行される各ストリームの転送レートを認識する。この処理によって認識される転送レートを用いて、各ストリームに必要な転送レートを維持するための処理をディスクアレイ制御装置１１４で実施する。具体的には、ディスクアレイ装置１１３は、自動認識１００１又はユーザ指定１００２のいずれかの方法を用いて転送レートを認識する。
【００２９】
自動認識１００１の場合、ホスト計算機からディスクアレイ装置１１３に対してストリームアクセスが発生したとき、ディスクアレイ装置１１３は、まず受け取ったアクセスがストリームアクセスであるかどうかを判定する。
【００３０】
以下、ディスクアレイ装置１１３がストリームアクセスを見分ける方法について説明する。一般的に、ストリームアクセスはシーケンシャルアクセス（連続領域に対するアクセス）となることが多い。したがって、本実施形態では、ディスクアレイ装置１１３が、ホスト計算機からのアクセス要求をシーケンシャルアクセスであると判断した場合にストリームアクセスと判断する。
【００３１】
シーケンシャルアクセスの判定法は、例えばホスト計算機から受信するＩ／Ｏで指定されるデータのアドレスの連続性で確認する方法がある。より具体的には、ディスクアレイ装置１１３は、ホスト計算機からI/Oを受信した際、キャッシュメモリに要求されたデータが存在するかどうかのチェックを行う。このときディスクアレイ装置１１３は、要求されたデータが格納される領域の直前のアドレス(例えば論理ブロックアドレス（ＬＢＡ）)で示される領域のデータがキャッシュメモリ上に存在するかも併せてチェックする。そして、そのデータが存在する場合、受信したＩ／Ｏを一つのストリームアクセスと判断する。
【００３２】
ストリームアクセスと判断した場合、ディスクアレイ装置１１３は、ビットレートの計算を行う。まず、ディスクアレイ装置１１３は、ディスクアレイ装置１１３の最大転送レートをパラメータとして設定し、ホスト計算機との間で一定期間、ストリームアクセスに関するＩ／Ｏを最大転送レートで実行する。その後、ディスクアレイ装置１１３は、この一定期間で実際にホスト計算機との間で該当ストリームアクセスに関して転送されたデータ量を測定する。そして、ディスクアレイ装置１１３は、測定された値から該当ストリームに関する転送レートを求め、求めた転送レートを該当ストリームの転送レートとする。その後、ディスクアレイ装置は、割り出したデータ転送速度を維持するように自身を制御しながら、ストリームアクセスに基づくデータ転送を行う。
【００３３】
ストリーム配信においては、ユーザからホスト計算機に対する配信要求で要求されるデータ転送レートは、ストリーム毎に一定であることが多い。この場合、ホスト計算機からディスクアレイ装置１１３への転送要求で要求される転送レートもストリーム毎に一定となる。したがってディスクアレイ装置において一定期間各ストリームに関して転送レートを記録することにより各ストリームの転送レートを認識することができる。
【００３４】
尚、「一定時間」とは、データ送信の状態が落ち着くまでの任意の時間間隔を指す。これは管理者が指定してもよいし、ストレージ装置が一定の時間間隔（例えば３０秒）でビットレートの計算を繰り返し、計算結果の変動幅がある値を下回った時点までの時間としても良い。
【００３５】
又、他の実施形態として、シーケンシャルアクセスかどうかではなく、ある特定のアドレス（あるいはアドレス領域）へのアクセス要求であるかどうかに基づいて、ディスクアレイ装置装置１１３がストリームアクセスかどうかを判定しても良い。単純には、ディスクアレイ装置１１３に格納されるコンテンツの先頭アドレス（又はアドレス領域）をディスクアレイ装置１１３が把握し、その先頭アドレス（又はアドレス領域）へのアクセスがあったときに、ディスクアレイ装置１１３がストリームアクセスと判断する。
【００３６】
ただし、全てのコンテンツの先頭アドレス等をディスクアレイ装置１１３が把握するのは現実的ではないため、例えば、ディスクアレイ装置１１３における記憶領域の管理単位（論理ユニット（ＬＵ）等）へのアクセス要求の有無をストリームアクセスの判定に用いても良い。例えば、ある特定のＬＵにアクセスがあった場合、ディスクアレイ装置１１３は、このアクセスをストリームアクセスと認識し、データ転送レートの計算を開始する。この場合、管理者は、同じようなデータ転送レートが要求されるコンテンツを同じＬＵに格納するようにディスクアレイ装置１１３を管理すると良い。
【００３７】
又、ディスクアレイ装置１１３は、一度計算したデータ転送レートの情報を保存し、再度同じコンテンツへのアクセスがあった場合に、保存した情報を用いてデータ転送レートを設定（すなわちデータ転送レートの計算を省く）しても良い。この場合、ディスクアレイ装置１１３は、コンテンツとデータ転送レートとの関係を情報として記録しなければならない。これは例えばコンテンツの先頭アドレス（あるいはＬＵの先頭アドレス）とデータ転送レートとを関連付けて記録すればよい。
【００３８】
尚、複数のストリームアクセスを受信した場合にも同様の処理を行う。シーケンシャルアクセスでストリームアクセスを判別する場合、ディスクアレイ装置１１３は、異なるシーケンシャルアクセスを異なるストリームアクセス（同じコンテンツに対する複数アクセスでも異なるコンテンツに対する異なるアクセスも含む）と判断する。
【００３９】
一方、アドレス（コンテンツ又はＬＵ）でストリームアクセスを判断する場合、ディスクアレイ装置１１３は、異なるアドレスへのアクセスを異なるストリームアクセスと判断する。この場合、同じアドレスへの複数のアクセスと判断すると、ディスクアレイ装置１１３は、複数のうちのどれか一つのストリームアクセスのデータ転送レートのみを計算し、その結果を複数のストリームアクセスに適用することもできる。
【００４０】
0 ・ ・ ・ 0 ・ 0 0 ・ 尚、ディスクアレイ装置１１３は、認識した各ストリームの転送レートの情報を、ストリーム毎にディスクアレイ制御装置１１４に格納する。
【００４１】
次にユーザ指定方法１００２について、図４を用いて説明する。ディスクアレイ装置１１３の管理者または、ホスト計算機がエージェントプログラムを実行することで、要求する転送レートをディスクアレイ装置１１３に対して設定する。ディスクアレイ装置１１３の管理者が設定する場合、管理者が管理端末１２２を通してディスクアレイ装置１１３に指示し、ディスクアレイ装置１１３内のディスクアレイ制御装置１１４がディスクアレイ制御装置１１４内に存在する図４に示すテーブルに値を設定する。ホスト計算機がエージェントプログラムを実行することによって設定する場合、ホスト計算機は、配信サーバー等の配信を制御するプログラムからの転送レート情報を受けて、ディスクアレイ装置１１３に対してＩｎｂａｎｄで転送レート情報の設定の指示を出す。具体的にはホスト計算機から特殊コマンドを送信し、ディスクアレイ装置１１３はそれを受信して図４に示すテーブルに指定された値を設定する。
転送レートは、４０１に示すようなＬＵ毎、または４０２、４０３に示すような領域毎に指定される。４０４の転送レートは、１０Ｍｂｐｓ、１．５Ｍｂｐｓといったビットレートが直接設定されるか、またはＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、高精細（以下「ＨＤ」）といった圧縮レートの規格の情報が設定される。後者の場合、ディスクアレイ装置１１３は、これらの規格から転送レートを判断する。更に、転送レート以外に、各ストリームに対応する各Ｉ／Ｏの要求応答時間４０５をＬＵ毎または領域毎に設定することができる。
【００４２】
ドライブ性能および障害処理時間認識処理１００４では、ディスクアレイ制御装置１１４が、ドライブ性能情報や障害情報処理時間情報を認識する。ディスクアレイ装置１１３におけるドライブの種類はあらかじめ決められており、ドライブのシーク時間や、データ転送時間といったドライブの性能情報もドライブによって固定の値がある。これらの値はディスクアレイ制御装置１１４にあらかじめ設定されており、ディスクアレイ制御装置１１４は、実際に使用されているドライブの情報を、これらあらかじめ設定されている値から求めて、ディスクアレイ制御装置１１４内のテーブルに設定する。障害時処理時間情報もあらかじめ決まっている情報であり、これらの情報はディスクアレイ制御装置１１４内のテーブルに設定されている。ディスクアレイ制御装置１１４はＩ／Ｏを処理する際にこれらドライブの性能情報や障害処理時間を考慮して処理を行う。
【００４３】
これらの情報はドライブに発行したコマンドの予測終了時刻を求めるために使用される。又予測終了時刻は、Ｉ／Ｏスケジューリング処理１００６で使用される。
【００４４】
ディスクアレイ装置１１３は、パラメータ設定処理１００３で設定されたパラメータを用いて、バッファサイズおよびディスクＩ／Ｏサイズの決定処理１００５を行う。図２及び図３は、リードおよびライト時のバッファサイズの決定およびバッファの使用方法例の概要を説明する図である。
【００４５】
図２を用いて、ホスト計算機からのデータ読み出し（リード）に関する多重ストリームアクセス受領時のバッファの使用方法とバッファサイズの決定方法例について説明する。ここで、ディスクアレイ装置１１３には多重ストリームアクセスが発生し、各ストリームはリードアクセスであるとする。一般的にデータを読み出すストリームアクセスは連続読み出し（以下「シーケンシャルリード」と称する）アクセスである。このため、データを読み出すストリームに対しては、ディスクアレイ装置１１３は、図２に示すようにシーケンシャルバッファをキャッシュ１１６内に設ける。シーケンシャルバッファはＮ個設けられ、それぞれが１ストリームに対応する。
【００４６】
また、ディスクアレイ装置１１３は、シーケンシャルバッファを２面以上の複数の面で構成する。ここで「面」とは、キャッシュメモリ１１６を構成するメモリの物理的な単位を指す。例えば、一枚の基板の表裏に記憶素子が実装されているメモリが使用される場合、表裏それぞれが「面」に相当する。図２では各シーケンシャルバッファは、面０（２２７：例えば表）と面１（２２８：例えば裏）から構成される。シーケンシャルバッファの各面には１ストライプ列分のデータが格納される。ここで「ストライプ列」とは、記憶装置においてアレイ構成を使用する際のデータ格納の単位を指す。
【００４７】
図２は、ディスクアレイ装置１１３がRAID４又はRAID５のアレイ構成で４Ｄ１Ｐ（データディスク４つ、パリティディスク１つ）の場合を表している。一つのシーケンシャルバッファの面０は、データを格納する領域２０７〜２１０とパリティデータを格納する領域２１１を有する。面１も同様にデータを格納する領域２１２〜２１５及びパリティデータを格納する領域２１６を有する。
【００４８】
シーケンシャルリードでは、ディスクアレイ装置１１３が有する記憶領域の連続領域に対するリード処理が発生する。この場合、ディスクアレイ装置１１３は先読み処理を行う。「先読み処理」とは、データの読み出し場所が予測できる場合、ホスト計算機からのリード要求が発生する前に、ディスクアレイ制御装置１１４があらかじめドライブからキャッシュメモリ１１６にデータを読み込んでおくことにより、ディスクアレイ装置１１３におけるドライブへのアクセス時間を隠蔽する方法である。シーケンシャルリードの場合、データの読み出し場所が予測可能なので、データの読み出し処理はこの先読み処理が行われると考えて良い。本実施形態でも、先読み処理を採用する。
【００４９】
本実施形態では、ディスクアレイ装置１１３は、面０または面１のストライプ列単位に先読み処理を行う。したがって、ディスクアレイ制御装置１１４は、ホスト計算機からの要求毎にドライブへのリード要求を発行するのではなく、ストライプ列単位にドライブ２２１〜２２４に対してリード要求を発行する。ホスト計算機からのリード要求が実際に発生すると、ディスクアレイ制御装置１１４は、シーケンシャルバッファにリード要求に該当するデータが存在すればそのデータをホスト計算機に転送する。リード要求に該当するデータがシーケンシャルバッファに存在しない場合、ディスクアレイ制御装置１１４は先読み処理を実行し、該当するストライプ列分のデータをドライブから読み出してホスト計算機へ転送する。
【００５０】
尚、ディスクアレイ制御装置１１４は、一つの面に格納されたデータのホスト計算機へのデータ転送が完了すると、該当バッファに対して次の先読み処理を行う。又、ディスクアレイ制御装置１１４は、一つの面について先読み処理によって格納されたデータをホスト計算機へ転送している間、他の面にデータを格納するために、この面に対する先読み処理を行う。これにより、ディスクアレイ装置１１３は、間断なくデータをホスト計算機に送信することができる。逆に言うと、ある面に関するホスト計算機へのデータ転送が終了した時点で他の面へのデータ先読み処理が終了していないと、ホスト計算機へのデータ転送は、他の面へのデータ先読み処理が終了するまで待たされることになる。この場合、ディスクアレイ装置１１３は、データ転送レートを保証できなくなる恐れがある。
【００５１】
ここでディスクアレイ装置１１３は、先に説明したパラメータ設定処理１００３で得られた情報に基づいて、個々のリードストリームに割り当てるシーケンシャルバッファのサイズを決定する。より具体的に言えば、ディスクアレイ装置１１３は、検出（あるいは設定）されたリードストリームの転送レートを保証できるように、シーケンシャルバッファのサイズを決定する。
【００５２】
図２の下部（２２６）は、パラメータ設定処理にて設定されたストリームの転送レートと先読み処理終了時刻の関係を表している。一般的に、先読み処理が、（バッファ１面のサイズ）／（要求転送レート）以内に終わらなければ、ホスト計算機への要求転送レートを守れない（転送すべきデータがキャッシュに存在しなくなる）。２２６では、ストライプサイズ１２８ＫＢ，４Ｄ１Ｐ、ストライプ列サイズが５１２ＫＢ、シーケンシャルバッファ１面のデータ領域のサイズが５１２ＫＢ場合に、転送レートがそれぞれ（１）１９２ＫＢ／ｓ、（２）６．２５ＭＢ／ｓの場合の先読み終了時刻（以下「先読み終了要求時刻」とも称する）の例を示している。
【００５３】
ここで、要求転送レートが１９２ＫＢ／ｓの場合、前記計算式から２．６ｓ以内に先読み処理が終わればホスト計算機が要求する転送レートを保証できる。また要求転送レートが６．２５ＭＢ／ｓの場合、１ストライプ列分の先読み処理は８０ｍｓ以内に終了しなければならない。
【００５４】
ディスクアレイ装置１１３は、まずこの計算式を用いて、現時点でリードストリームに割り当てられているシーケンシャルバッファのサイズに基づいて先読み終了要求時刻を算出する。そして、ディスクアレイ装置１１３は、パラメータ設定処理１００３で設定されたドライブ性能、障害処理時間パラメータを参照し、計算で求めた先読み終了要求時間内で、ディスクアレイ制御装置１１４が先読み処理を完了できるかどうか確認する。
【００５５】
例えば図３の例では、転送レートが・ ６．２５ＭＢ／ｓ、・ ４Ｄ１Ｐ、ストライプサイズ１２８ＫＢ、・ バッファ１面が１ストライプ列（１２８ＫＢ＊４＝５１２ＫＢ）の場合、バッファ１面５１２ＫＢのデータをホスト計算機がリードするのに、５１２ＫＢ／６．２５ＭＢ＝８０ｍｓかかる。したがって８０ｍｓ以内にバッファ１面に対して先読みが終了すれば、ホスト計算機が要求する転送レートを守ることができる。先読みはストライプ列単位に行われるため、各ドライブに対する１２８ＫＢのリード要求が、８０ｍｓ以内に終了すれば上記転送レートを守ることができる。
【００５６】
ここで、ディスクアレイ制御装置１１４は、ドライブ性能情報により、一つのリード要求に対するドライブのリード時間を求めることができる。
【００５７】
例えば、コマンド時間：０．５ｍｓ、・ 回転待ち時間：２ｍｓ、・ シーク時間：３．８ｍｓ、・ 内部転送時間：０．２４ｍｓ、・ ディスクアレイ制御装置へのデータ転送時間：０．１５ｍｓのドライブだったとすると、１回のドライブＩ／Ｏ時間（一つのリード要求を処理する時間）が７ｍｓ程度になる。したがって、ドライブにコマンドが複数発行されていたり、障害が発生していなければ、このドライブは８０ｍｓ以内で１２８ＫＢのリード要求を処理することができる。
【００５８】
しかしドライブに複数のコマンドが発行されている場合、例えば１０個コマンドが発行されている場合、最後（つまり１１番目）にコマンドが発行され、そのコマンドに対応するデータが送信されるまでには１１×７ｍｓ＝７７ｍｓかかる。このような場合、このドライブが８０ｍｓ以内で１２８ＫＢのリード要求を処理することは厳しくなる。障害処理時間も同様に考え、例えばドライブ障害が発生していることがわかり、データ回復のために、パリティデータなどを再度読む必要がある場合、その分ドライブアクセスが発生し、先読みの終了時刻が遅延することになる。
【００５９】
ここで、上述したようにディスクアレイ制御装置１１４が、ドライブ性能及び障害処理時間を考慮した結果、計算で求めた先読み終了要求時間以内に先読み処理を行えるならば、ディスクアレイ装置１１３は、既に割り当てられているシーケンシャルバッファを、バッファサイズを変更せずに使用する。
【００６０】
一方、ディスクアレイ制御装置１１４が計算で求めた先読み終了要求時間内に先読み処理を行うことが不可能な場合、ディスクアレイ装置１１３は、ドライブ性能、障害処理時間を考慮し、ディスクアレイ制御装置１１４が処理可能な時間内に先読み終了要求時間が収まるように、ストリームに割り当てられたシーケンシャルバッファのサイズを増加させる。例えば２２６においてバッファ１面のサイズを２ストライプ列分の１ＭＢに増加させると、（１）の先読み終了要求時間は５．２ｓ、（２）の先読み終了要求時間は１６０ｍｓに増加する。
【００６１】
上述した例では、例えばコマンドが１０個送信されているドライブについては、転送レートを維持するために、例えばバッファサイズを１ＭＢとすれば、先読み処理終了要求時間が１６０ｍｓになるので、転送レートが維持できるようになる。
【００６２】
図３は、ホスト計算機からの多重ストリームアクセス要求がライトの場合について説明する図である。ライト要求（以下「ライトストリーム」とも言う）の場合もリードストリーム同様に各ストリームはシーケンシャルアクセスとなる。従って、ディスクアレイ装置１１３は、図２と同様に各ライトストリームに対してシーケンシャルバッファを割り付ける。又、図２と同様に、一つのシーケンシャルバッファは２面（又はそれ以上）に割り付けられる。
【００６３】
ライトストリームの場合、ディスクアレイ装置１１３は、１面分のデータをホスト計算機から受領した後、ホスト計算機から受信したデータのみでパリティを生成し、１ストライプ列分のデータとパリティをドライブに書き込む。又、ディスクアレイ装置１１３は、１面のデータ格納後、その面についてパリティ生成とドライブへの書き込み処理（デステージ処理）を起動する。一方、一方の面でパリティ生成とドライブへのデステージ処理が開始されると、ディスクアレイ装置１１３は、もう一方の面を用いてホスト計算機からの書き込みデータの受信を行う。
【００６４】
したがって、一方の面のパリティ生成及びデステージ処理が、他方の面でのホスト計算機から受信したデータの格納が終了するまでに終了すれば、ディスクアレイ装置１１３は、ホスト計算機からのライト要求を待たせることなくデータを受領することができる。
【００６５】
したがって、ディスクアレイ装置１１３は、図２と同様の計算式を用いて、現時点でライトストリームに与えられたシーケンシャルバッファのサイズに基づいたパリティ生成及びデステージ処理に与えられる時間を計算する。そして、ディスクアレイ装置１１３は、計算された時間内にディスクアレイ制御装置１１４がデータを書き込むことができるかを、ドライブ性能および障害処理時間の情報を用いて確認する。
【００６６】
計算された時間内にディスクアレイ制御装置１１４がデータを書き込むことが出来ない場合、ディスクアレイ装置１１３は、シーケンシャルバッファのサイズを、ディスクアレイ制御装置１１４がデータ書き込みにかかる時間を満たす程度にまで増加させる。
【００６７】
図３の下部（３３０）は、パリティ生成およびデステージ処理時間とバッファサイズ、転送レートの関係例を表している。ストライプサイズが１２８ＫＢ、４Ｄ１Ｐ、バッファ１面のサイズが５１２ＫＢの場合、ホスト計算機からの転送レートがそれぞれ（１）１９２ＫＢ／ｓ、（２）６．２５ＭＢ／ｓの例を示している。転送レートが１９２ＫＢ／ｓの場合、パリティ生成およびデステージ処理の終了要求時間は、リードの場合と同様に計算して、２．６ｓ、転送レートが６．２５ＭＢ／ｓの場合、８０ｍｓとなる。図２に示したリードの場合と同様に、ドライブ性能および障害処理時間との関係から、計算により求めた終了要求時刻内にディスクアレイ制御装置１１４がデステージ処理等を完了させることが可能かどうかを検査し、不可能ならばバッファサイズを増加させる。
【００６８】
尚、ドライブ性能及び障害処理時間認識処理１００４では、ドライブ単体のシーク時間、転送時間といった性能に加え、ドライブ毎の許容キューイングタグ数の設定も行われる。図１１は、ドライブ毎の許容キューイングタグ数の設定例を示す図である。このテーブルは、ディスクアレイ制御装置１１４に格納される。「キューイングタグ数」とは、ディスクアレイ制御装置１１４がドライブに発行したコマンドのうち、ドライブからディスクアレイ制御装置１１４に完了通知が戻ってきていない、すなわちドライブ内で処理中のコマンドの数を指す。また図１１に示す許容キューイングタグ数は、キューイングタグ数の制限値を表している。
【００６９】
ディスクアレイ制御装置１１４は、ドライブへのＩ／Ｏ発行時に図１１のテーブルを参照し、現在のキューイングタグ数がテーブルに記載の制限数に達しているかどうかを確認する。そして、キューイングタグ数が制限値に達していれば、ディスクアレイ制御装置１１４は、ドライブへのＩ／Ｏの発行を抑止する。この制御は、緊急度の高いストリームの転送レート保証や応答時間保証のために使用される。
【００７０】
一般的に、ドライブからのＩ／Ｏの応答時間（以下「ドライブＩ／Ｏ応答時間」とも言う）は、キューイングタグ数にほぼ比例して増加する。したがって、キューイングタグ数を無制限に許可すると、ドライブＩ／Ｏ応答時間が、図２及び図３で示した先読み及びデステージ処理の終了要求時間を越える可能性が高くなる。このような状況を回避するため、図１１に示す値によってドライブへのキューイングタグ数を制限し、全てのＩ／Ｏの最大ドライブ応答時間を保証する。
【００７１】
尚、最大ドライブ応答時間とは、ホスト計算機への転送レートを守るために必要なドライブの応答時間、すなわちリードコマンドをドライブに発行してから、データが戻ってくる時間の許容可能な最大値を表す。ここで、上述の、Ｉ／Ｏを発行するとき既に１０個のコマンドがドライブにキューイングされている場合、１Ｉ／Ｏのドライブ処理時間はほぼ固定（上述では７ｍｓ程度）なで、該当コマンドのデータが帰ってくるのに７０ｍｓ程度（これがキューイングタグ数１０の場合の最大ドライブ応答時間）かかる。一方、キューイングタグ数が０だと、データは７ｍｓ程度で送信される。
【００７２】
つまり、キューイングタグ数を制限してやれば、一つのコマンド処理にドライブが必要とする処理時間の最大値が予測できる。そして、ディスクアレイ制御装置１１４でコマンド発行の優先制御（例えばキューイング制限でドライブへの発行をディスクアレイ制御装置内で待たされているコマンドよりも、優先度の高いコマンド（ビットレートの高いストリームに起因するコマンド）が発生した場合、その優先度の高いコマンドを待たされている複数のコマンドより優先してドライブに発行すること）をすると、優先度の高いコマンドのドライブからの応答時間を、最大でキューイングコマンド数＊１コマンドのドライブ処理時間（最大ドライブ応答時間）に保証することができる。
【００７３】
なおドライブへの発行を抑止されたＩ／Ｏはドライブキューにおいて待たされるが、高転送レートストリームに伴う先読みなど終了要求時間の短いジョブが発生した場合は、ドライブキューの先頭に登録する等により、終了要求時間内に処理を終了させる制御が行われる。
【００７４】
ドライブＩ／Ｏサイズの決定処理１００５では、ディスクアレイ装置１１３は、バッファサイズ決定処理によって決定されたシーケンシャルバッファのサイズに基づいてドライブＩ／Ｏサイズを決定する。ここで「ドライブI/Oサイズ」とは、ディスクアレイ制御装置１１４からドライブに対して発行するデータ読み出し（又は書き込み）コマンドで設定される一回のデータ読み出し（又は書き込み）の量を指す。したがって、ドライブＩ／Ｏサイズを増加させると、ドライブへのリード、ライトのスループット性能は向上する。
【００７５】
このため、高い転送レートが要求されるストリームを多重に受ける場合は、ドライブＩ／Ｏサイズを増加させることでドライブ効率を上げ、性能を向上することができる。尚、ディスクアレイ制御装置１１４は、リードに対してはバッファ１面分の先読み処理の要求コマンドをドライブに発行し、ライトに関してはバッファ１面分のデステージ処理の要求コマンドをドライブに対して発行する。したがって、シーケンシャルバッファのサイズを増加させることで、ドライブへのＩ／Ｏサイズを増加させる。
【００７６】
次にＩ／Ｏスケジューリング処理１００６について説明する。本実施形態におけるI/Oスケジューリング処理１００６では、１００７に示す方法を用いる。ディスクアレイ制御装置１１４は、１００７を用いて、多重ストリーム処理に関わる各処理（例えばドライブに対する先読み要求等。以下「ジョブ」とも言う）の実行順番を、各ジョブの終了要求時間に基づいて並べ替えて実行する。これにより、各ストリームの転送レートを保証しながら多重ストリームを処理することが出来る。以下、図６〜図９を用いて具体的処理について説明する。
【００７７】
図６は、ディスクアレイ制御装置１１４における処理と処理時間の関係の説明する図である。図６では、上述したように、ディスクアレイ制御装置における処理単位をジョブとして表している。前述したリードの先読み処理は、先読みジョブによって実施し、ライトのパリティ生成およびデステージ処理は、デステージジョブによって実施されるものとする。
【００７８】
ここで時刻Ｔｇ（６０１）は、あるストリームの処理に対応して、ディスクアレイ制御装置１１４でジョブが生成された時刻を表している。これは例えばリードストリームに基づいてシーケンシャルリードが発生したときに、バッファ１面分のデータをドライブから読み出す先読みジョブをディスクアレイ制御装置１１４が生成した時刻を表す。ライトストリームの場合は、バッファ１面のデータを格納した後で、ディスクアレイ制御装置１１４がデステージジョブを生成した時刻に対応する。
【００７９】
時刻Ｔｅ（６０３）は、Ｔｇで生成されたジョブの終了要求時刻を表す。上述したように、ジョブの終了要求時刻Ｔｅは、シーケンシャルバッファサイズとストリームの要求転送レートから求められる。この時間までに各ジョブを終了できなければ、シーケンシャルバッファが枯渇してホスト計算機へのデータ転送が遅延したり、ホスト計算機からのデータを受け付けられなくなったりする。
【００８０】
時間Ｔｒ（６０５）は、Ｔｇで生成されたジョブ処理に要する所要時間を表す。Ｔｒは、上述したように、ドライブへのキューイングコマンド数、ドライブ性能及び障害処理時間の情報に基づいて求められる。
【００８１】
時刻Ｔｓ（６０２）は、Ｔｅ―Ｔｒより求められるジョブを開始しなければならない時刻を表す。より具体的に言えば、ディスクアレイ装置１１３は、遅くともジョブの処理を時刻Ｔｓまでに開始しなければ、該当するストリームの転送レートを保証できない。
【００８２】
ディスクアレイ装置１１３は、上述の時刻Tsを多重ストリームに含まれる全てのストリームについて随時計算する。そして、ディスクアレイ装置１１３は、その結果に従って、その時点でもっとも早い時刻のTsに対応するストリームのジョブから、ジョブを実行する。したがって、ジョブの生成順と実行順は異なることがある。つまり、ジョブのＴｓが早い順に対応して、各ジョブに優先度が与えられる。
【００８３】
尚、本実施形態では、一つのジョブの実行時間が他のジョブとほぼ同じであることを前提にして、Ｔｅからジョブ開始要求時間（Ｔｓ）を求め、Ｔｓの前後関係に基づいてジョブの実行順を決定している。つまり、時間的に早いＴｅを有するジョブは、Ｔｓも早いと仮定している。しかし一つのジョブの実行時間が他のジョブと異なる場合も有りうるので、この場合には、単純にＴｅの時間の前後関係を比較し、その順番に応じてジョブを実行しても良い。
【００８４】
このように、ジョブの属性としてその開始時刻や終了時刻、処理時間といった時間の概念を導入する。このような時間の概念を導入することで、要求転送レートが異なる多数のストリームの処理の各々に優先度を付けることができ、より時間的に優先度の高いストリームを優先して処理することが可能になる。
【００８５】
尚、前述のジョブ生成時刻、ジョブ開始時刻、ジョブ終了要求時刻、所要処理時間は図５に示すジョブ管理テーブルに格納される。ジョブ管理テーブルは、ディスクアレイ制御装置１１４に格納される。図５の５０４欄に登録されるジョブ開始要求時刻Ｔｓを基に、ディスクアレイ制御装置１１４は、＃１、＃２、＃３、＃４の順で優先付けを行う。
【００８６】
以下、ディスクアレイ制御装置１１４における、Ｉ／Ｏスケジューリング処理１００６の手順例を説明する。
【００８７】
図７は、ディスクアレイ制御装置１１４におけるジョブのスケジューリング処理の概要を説明する図である。ディスクアレイ制御装置１１４は、ストリームの処理要求を受信すると、ストリームに対応するジョブ（例えばドライブへの処理要求コマンド）を作成する。ディスクアレイ制御装置１１４は、キャッシュメモリ１１６中にキュー領域をあらかじめ設定する。ディスクアレイ制御装置１１４は、作成したジョブをキュー領域に一つのキューとして登録する。
【００８８】
尚、図７では、ディスクアレイ制御装置１１４は、キュー領域に優先キュー７０２と非優先キュー７０８の二つの領域を設けている。優先キュー７０２には、例えばストリーミングで使用される場合の先読みジョブやデステージジョブに関するキューが登録される。これに対して非優先キューには、ストリーミングにおけるシーケンシャルアクセスではない、ランダムＩ／Ｏに対するジョブに関するキューが格納される。尚、他の実施形態として、優先キューと非優先キューを設けない構成も考えられる。
【００８９】
また、ディスクアレイ装置１１３においてリード処理を優先とすることが設定されている場合、リードに関わるジョブを優先キューに登録し、ライト等のリード以外のジョブを非優先キューに格納することもできる。
【００９０】
ディスクアレイ制御装置１１４は、上述した条件に基づいて、作成したジョブ（図の７００）を優先キュー又は非優先キューのどちらに登録するかを決定し（キュー登録処理７１４）、各キューにジョブを登録する（７０４〜７１０）。又、ディスクアレイ制御装置１１４は、各ジョブを実行するために、各キューからジョブを選択し（実行ジョブ選択処理７１１）、選択したジョブを実行する（７１２）。
【００９１】
以下、キュー登録処理７１４と実行ジョブ選択処理７１１の手順の詳細例を説明する。
【００９２】
図８は、ディスクアレイ制御装置１１４におけるキュー登録処理７１４の処理手順例を示す図である。ディスクアレイ制御装置１１４は、まず登録の対象となるジョブ（以下「登録要求ジョブ」）をＪＯＢと定義する。この際、ディスクアレイ制御装置１１４は、登録要求ジョブについて、図５に示すテーブルに登録された情報に基づいて、ＪＯＢにＴｇ（ジョブ生成時刻）、Ｔｓ（開始要求時刻）、Ｔｅ（終了要求時刻）の情報を設定する（ステップ８０２）。
【００９３】
次にディスクアレイ制御装置１１４は、ＪＯＢが優先キューに登録されるジョブ（以下「優先ジョブ」）か、非優先キューに登録されるジョブ（以下「非優先ジョブ」）かどうかを判定する（ステップ８０３）。
【００９４】
ディスクアレイ制御装置１１４は、ステップ８０３の判定結果に従って、ＪＯＢが非優先ジョブであれば登録対象キューを非優先キューとし（ステップ８０４）、ＪＯＢが優先ジョブであれば、登録対象キューを優先キューとする（ステップ８０５）。ステップ８０４又はステップ８０５の処理後、ディスクアレイ制御装置１１４は、ＪＯＢのキュー内の登録位置を決定する。具体的には、ディスクアレイ制御装置１１４は、登録対象キューに既に登録されている各ジョブの開始要求時刻とＪＯＢに設定されたＴｓを比較し、Ｔｓよりも開始要求時刻が早い各ジョブのうち、最も開始要求時刻が遅いジョブの直後をＪＯＢの登録位置とする（ステップ８０６）。最後にディスクアレイ制御装置１１４は、ＪＯＢをステップ８０６で決定した位置に登録する（ステップ８０７）。
【００９５】
図９は、実行ジョブの選択処理７１１の処理手順例を示す図である。実行ジョブ選択処理７１１では、ディスクアレイ制御装置１１４は、優先キューおよび非優先キューから最も優先度の高いジョブを選択する。優先キューと非優先キューに登録されているジョブは、登録時にＴｓを用いて登録されているため、各キュー内では優先度順に並べられている。よって実行ジョブの選択では、優先キューと非優先キューの先頭のジョブが選択対象であり、選択対象の２つのジョブのうち、優先度の高いジョブが選択される。非優先キューに登録するランダムアクセス等の処理については、コマンドがタイムアウトにならない範囲のデフォルト値をＴｓとして設定する。
【００９６】
まずディスクアレイ制御装置１１４は、優先キューの先頭のジョブを優先キューの選択対象ジョブＪＯＢｐとし、非優先キューの先頭ジョブを非優先キューの選択対象ジョブＪＯＢｎｐとし、Ｔｐ＿ｓをＪＯＢｐの開始要求時刻とし、Ｔｎｐ＿ｓをＪＯＢｎｐの開始要求時刻とし、Ｔｃを現在の時刻とする（ステップ９０１）。
【００９７】
次に、ディスクアレイ制御装置１１４は、現在時刻ＴｃとＴｐ＿ｓ、現在時刻ＴｃとＴｎｐ＿ｓを比較する（ステップ９０２）。Ｔｐ＿ｓとＴｎｐ＿ｓが共にＴｃよりも遅ければ、双方のキューに登録されたジョブの両方ともに開始要求時刻に達していないので、ディスクアレイ制御装置１１４は、Ｔｐ＿ｓとＴｎｐ＿ｓを比較して早い方をステップ９０５、９０７において実行ジョブとする（ステップ９０４）。
【００９８】
少なくともいずれか一方のキューに登録されたジョブの開始要求時刻が現在時刻Tcよりも早い場合、ディスクアレイ制御装置１１４は、Ｔｐ＿ｓとＴｎｐ＿ｓが共にＴｃを超えているかどうか検査する（ステップ９０３）。共に現在時刻が開始要求時刻を超えている場合は、ディスクアレイ制御装置１１４は、優先キューのジョブを優先して実行する（ステップ９０６）。
【００９９】
いずれか一方のキューに登録されたジョブの開始要求時刻が現在時刻Ｔｃよりも早い場合、ディスクアレイ制御装置１１４は、双方の開始要求時刻を比較し（ステップ９０４）、ステップ９０５、９０７において開始要求時刻の早いほうを選択する。これは、結果的には開始要求時刻が現在時刻Ｔｃよりも早いジョブを選択することと同義である。
【０１００】
上述した処理により、開始要求時刻以内ならばどちらの優先ジョブ、非優先ジョブのどちらの実行も可能なので開始要求時刻が小さいほうを選択し、双方の開始要求時刻が現在時刻を越えている場合は、優先ジョブの処理遅れを最小限とするために、優先ジョブを選択する。
【０１０１】
図７に示すＩ／Ｏスケジュール処理は、ディスクアレイ制御装置内の複数の箇所で使用可能である。例えば待ち状態であったジョブが実行可能となったためにキューイングされるレディーキューや、ドライブへのコマンド発行時にキューイングされるドライブキューに適用可能である。
【０１０２】
他の実施形態としては、ディスクアレイ装置であって、特にディスクアレイ制御装置が、転送レートの認識部と、ドライブ性能および障害処理時間認識部と、転送レート認識部において認識した転送レートと、バッファサイズ決定部とドライブＩ／Ｏサイズ決定部と、Ｉ／Ｏ処理スケジューリング部を有し、転送レート認識部において認識された転送レートと、ドライブ性能および障害処理時間認識部において認識されたドライブ性能と障害処理時間を用いてバッファサイズおよびドライブＩ／Ｏサイズ決定部がバッファサイズおよびドライブＩ／Ｏサイズを決定し、さらに認識された転送レートと、ドライブ性能および障害処理時間と、決定されたバッファサイズと、ドライブＩ／Ｏサイズを用いて、Ｉ／Ｏ処理スケジューリング部においてＩ／Ｏの処理に優先順位付けを行なうことで、転送レートを保証するディスクアレイ装置が考えられる。
【図面の簡単な説明】
【０１０３】
【図１】システムの構成例を示す図である。
【図２】リードストリームの処理概要例を説明する図である。
【図３】ライトストリームの処理概要例を説明する図である。
【図４】転送レート設定テーブルの例を示す図である。
【図５】ジョブ管理テーブルの例を示す図である。
【図６】ジョブ生成時刻、ジョブ開始要求時刻、ジョブ終了要求時刻及びジョブ処所用時間との間の関係について示す図である。
【図７】優先キュー及び非優先キューへのジョブ登録及びジョブ選択の概要を示した図である。
【図８】キュー登録処理の手順例を示す図である。
【図９】実行ジョブ選択処理の手順例を示す図である。
【図１０】本実施形態で実行される各処理の関係の概要を示す図である。
【図１１】許容キューイングタグ数テーブルの例を示す図である。
【符号の説明】
【０１０４】
１０１‥ユーザ、１０５‥ネットワーク、１０９‥ホスト計算機、１１３‥ディスクアレイ装置、１１４‥ディスクアレイ制御装置、１１５‥プロセッサ、１１６‥キャッシュメモリ
【図１】
2006285809.tif 000003
【図２】
2006285809.tif 000004
【図３】
2006285809.tif 000005
【図４】
2006285809.tif 000006
【図５】
2006285809.tif 000007
【図６】
2006285809.tif 000008
【図７】
2006285809.tif 000009
【図８】
2006285809.tif 000010
【図９】
2006285809.tif 000011
【図１０】
2006285809.tif 000012
【図１１】
2006285809.tif 000013