JP2003525486A - 有限要求リオーダを用いるディスク・スケジューリング・システム - Google Patents

有限要求リオーダを用いるディスク・スケジューリング・システム

Info

Publication number
JP2003525486A
JP2003525486A JP2001563524A JP2001563524A JP2003525486A JP 2003525486 A JP2003525486 A JP 2003525486A JP 2001563524 A JP2001563524 A JP 2001563524A JP 2001563524 A JP2001563524 A JP 2001563524A JP 2003525486 A JP2003525486 A JP 2003525486A
Authority
JP
Japan
Prior art keywords
disk
traversal
head
requests
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001563524A
Other languages
English (en)
Inventor
デモニー,マイケル・エイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2003525486A publication Critical patent/JP2003525486A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • H04N21/2326Scheduling disk or memory reading operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Communication Control (AREA)
  • Polyesters Or Polycarbonates (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

(57)【要約】 有限要求リオーダを用いるディスク・スケジューリング・システム。ディスク上のディスク・ヘッドのトラバーサル中にディスク・アクセス要求を実行することができる。各トラバーサルが指定された方向へ移動することができる。複数のディスク・アクセスを1つのディスク・ヘッド・トラバーサル中に実行することができる。所与のディスク・ヘッド・トラバーサルに関するディスク・アクセス要求の総数を、最大個数Nまでに制限することができる。トラバーサルごとのディスク要求の数を制限することによって、単一のディスク要求を満たすのに要する時間の長さに対して、効果的に上限を設けることができる。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、コンピュータ・データ・ストレージ・システムおよびサーバ・シス
テムに関し、より詳細には、複数の連続するメディア・ストリームをサポートす
るディジタル・ビデオ/オーディオのストレージ・システムおよび再生システム
に関する。
【0002】 (関連技術の説明) マルチメディア・サーバ・システムまたはビデオ・サーバ・システムは、ビデ
オ、オーディオ、または他のマルチメディア・データ・ストリームを記憶し、か
つ再生するためにさまざまな応用例で使用される。たとえば、マルチメディア・
サーバは、クライアントまたは消費者にマルチメディア情報を配布する放送ソリ
ューション、有線ソリューション、または衛星ソリューションに使用することが
できる。ネットワークおよび関連団体またはケーブル・プロバイダなど専門の放
送会社および関連するサービス・プロバイダは、ディジタル・ビデオ・サーバを
使用して、多チャネル番組再生、広告挿入、およびディジタル・コンテンツ管理
を含む高バンド幅マルチメディア放送アプリケーションをサポートすることがで
きる。マルチメディア・サーバの他の応用例には、ネットワークまたはインター
ネットを介して学生がアクセスするサーバ・システム上にマルチメディア・トレ
ーニング素材またはマルチメディア講義を保管することができるコンピュータベ
ースのトレーニングを含むことができる。
【0003】 ビデオのアーカイビング、ブラウジング、および検索が、もう1つのマルチメ
ディア・サーバ応用例である。さまざまなムービーを、サーバによって保管し、
要求時にユーザに配布することができる。ビデオオンデマンドまたはビデオ配布
システムは、複数のユーザまたは視聴者が、1つまたは複数のビデオ・サーバま
たはメディア・サーバに保管されたムービーまたは他のオーディオ/ビデオ・シ
ーケンスを選択的に見ることができるようにする。ビデオ・サーバは、放送ケー
ブル・システム、衛星放送システム、またはインターネットなどデータ転送チャ
ネルを介して、複数のユーザまたは加入者に接続することができる。ビデオ・サ
ーバは、複数のムービーまたは他のオーディオ/ビデオ・シーケンスを保管する
ことができ、各ユーザは、ビデオ・サーバから1つまたは複数のムービーを選択
して見ることができる。各ユーザには、所望のムービーを選択して見るために、
テレビジョンまたは他の表示装置、ならびに関連するデコード論理を含むことが
できる。ユーザがムービーを選択する時、選択されたムービーをそれぞれのユー
ザの表示装置にデータ転送チャネルの1つで転送することができる。マルチメデ
ィア・サーバは、エンターテイメントがインターネット上で異なる加入者にマル
チキャストされるウェブキャスト・アプリケーションにもみられる。マルチメデ
ィア・サーバは、多数の他の応用例にも見られる。
【0004】 多数の異なるアプリケーションおよびユーザの需要を満たすために、マルチメ
ディア・サーバ・システムは柔軟性および拡張性を提供することが望ましい。マ
ルチメディア・サーバ・システムに関する2つの重要な要件が、ストレージ・ス
ペースとファイル・システムのバンド幅である。フルモーション・ディジタル・
ビデオなどのマルチメディア・データは、大量のストレージと広いデータ転送バ
ンド幅を必要とする。したがって、マルチメディア・システムでは、さまざまな
タイプのビデオ圧縮アルゴリズムを使用して、必要なストレージの量を減らし、
データ転送バンド幅を減少させる。一般に、静止グラフィック・イメージ用とフ
ルモーション・ビデオ用の異なるビデオ圧縮方法が存在する。静止グラフィック
・イメージまたは単一ビデオ・フレーム用のビデオ圧縮方法は、イントラフレー
ム(フレーム内)圧縮方法でよく、モーション・ビデオ用の圧縮方法は、インタ
ーフレーム(フレーム間)圧縮方法であろう。
【0005】 静止グラフィック・イメージ用のビデオ・データ圧縮の例が、RLE(ランレ
ングス・エンコーディング)圧縮およびJPEG(Joint Photogr
aphic Experts Group)圧縮である。JPEG圧縮は、当初
はビデオではなく静止イメージの圧縮のために設計されたが、JPEG圧縮は、
一部のモーション・ビデオ・アプリケーションで使用されている。ほとんどのビ
デオ圧縮アルゴリズムは、フル・モーション・ビデオを圧縮するように設計され
ている。ビデオ圧縮技法の例が、数ある中で、MPEG(Moving Pic
tures Experts Group)、MPEG−2、DVI(Digi
tal Video Interactive)、およびIndeoである。
【0006】 圧縮技法を使用しても、マルチメディア・アプリケーションは、なおも極めて
大量のストレージを必要とする。たとえば、1Mb毎秒でエンコードされた2時
間のビデオは、約1ギガバイト(1GB)のストレージを必要とする。多数の異
なるコンテンツをサポートするシステムは、数テラバイト(TB)に及ぶストレ
ージを必要とすることもある。サーバ・システムは、ストレージ・システムに過
負荷を与えずにさまざまなユーザが選択されたマルチメディア・コンテンツにア
クセスするのに充分なバンド幅を提供することもできなければならない。たとえ
ば、1Mb毎秒でエンコードされたマルチメディア・コンテンツを見る100人
の加入者を同時にサポートするために、サーバは、オーバーヘッドを考慮したと
き100Mb毎秒を超えるバンド幅をサポートする必要があるだろう。充分なバ
ンド幅が使用できない場合には、一部の要求を拒否しなければならない可能性が
あり、さもなければ再生品質が低下する(ビデオが、遅くなりすぎるか、「コマ
落ち」して見える可能性がある)。そのようなストレージおよびバンド幅の必要
を満たすために、マルチメディア・サーバが、1つまたは複数のRAID(Re
dundant Array of Inexpensive Drives)
ストレージ・システムを使用する場合がある。RAIDシステムでは、所与のマ
ルチメディア・ファイルについて、マルチメディア・データのブロックを、複数
のハード・ディスク・ユニットにまたがって保管することができる。これらのブ
ロックを、通信ネットワークに読み出すか転送し、1人または複数のユーザに送
信するかブロードキャストすることができる。受信端では、ブロックを、ディス
プレイ装置でユーザが見るためにデコードすることができる。
【0007】 各ハード・ディスク・ユニットのディスクは、ゾーンに分割されているとみな
すこともできる。これらは物理的により大きいので、ディスク外周のゾーン内の
トラックには、ディスクの回転軸付近のゾーン内のトラックより多数のセクタが
含まれる。したがって、ディスクが、一定速度で回転すると仮定すると、最外周
ゾーンから使用可能なデータ・バンド幅は、最内周ゾーンから使用可能なデータ
・バンド幅より大きい。現代のハード・ディスク・ドライブをもってしても、内
周ゾーンと外周ゾーンの間のセクタ/トラック数変動に起因する、ワースト・ケ
ースと平均的ケースのディスク転送バンド幅の間に2−1変動がある可能性があ
る。
【0008】 多くのマルチメディア・アプリケーションは、データ・ストリームが、指定さ
れたおそらく時間的に変動するデータ速度で、指定された均一性のその配布速度
で配布しなければならない、連続的なメディア・ストリームを必要とする。いく
つかの場合に、配布速度の均一性が、ディスク・アクセス要求を満たすために使
用されるアルゴリズムによって悪影響を受ける可能性がある。「先着順サービス
(first−come、first−served)」ディスク・アクセス・
アルゴリズムの使用は、読み書きヘッド(ディスクからの情報のアクセスに使用
される)の移動が最適でない可能性があるので、ディスク要求を満たす最も効率
的な方法ではない可能性がある。ヘッド移動のいくつかの最適化は、ディスク要
求を並べ変えるアルゴリズムの使用を介して実現することができる。そのような
並べ変えアルゴリズムでは、ディスク要求が、要求が行われた順序と異なる順序
で満たされる可能性がある。そのような並べ変えアルゴリズムの1つを、「エレ
ベータ」アルゴリズムと称する。通常のエレベータ・アルゴリズムでは、ディス
ク・ストレージ・システムのヘッドが、ディスク外周からディスク内周へスイー
プし、その間にディスク要求が満たされ、キューに置かれ、その後、方向を反転
する。このアルゴリズムを用いると、読み書きヘッドのより効率的な移動が可能
になるが、先にキューに置かれた要求の前に新たに到着する要求が満たされる可
能性があるので、非常に不均一なアクセス時間が依然として存在する。大量の新
たに到着する要求が、先にキューに置かれた要求を満たす際の長い遅延を引き起
こす可能性がある。
【0009】 不均一なディスク・アクセス時間は、多くのアプリケーション、特にマルチメ
ディア・アプリケーションにとって有害である可能性がある。たとえば、ディス
ク・ストレージ・システムからのビデオ再生は、ディスク・アクセス時間が不均
一であると不安定に見える可能性がある。オーディオ再生も、類似する形で影響
を受ける可能性がある。したがって、不均一なディスク・アクセス時間を有する
ディスク・ストレージ・システムからアクセスされるマルチメディア・プレゼン
テーションの品質が、悪くなる可能性がある。
【0010】 (発明の概要) 上記で概要を示した問題は、主に、本発明による有限ディスク要求リオーダ(b
ounded disk request reordering)のシステムおよび方法によって解決される。
一実施態様では、ディスク・アクセス要求を、ディスク上でのディスク・ヘッド
のトラバーサル中に実行することができる。各トラバーサルは、指定された方向
の移動を有することができる。複数のディスク・アクセスを、1つのディスク・
ヘッド・トラバーサル中に実行することができる。いくつかの場合に、ディスク
・アクセスを、元のディスク・アクセス要求が受け取られた順序と異なる順序で
実行することができる。所与のディスク・ヘッド・トラバーサルに関するディス
ク・アクセス要求の総数を、最大数Nまでに制限することができる。トラバーサ
ルごとのディスク要求の数を制限することによって、リオーダにかかわらず、単
一のディスク要求を満たすのに要する時間の長さに対して、効果的に境界を設け
ることができる。ディスク・ヘッド移動を最適化することもできる。
【0011】 もう1つの実施態様では、ディスク・ストレージ・システムが、トラバーサル
・リストと称するディスク・ヘッド・トラバースのリストを維持する。各トラバ
ースに、複数のコンポーネントが含まれる。トラバースの第1コンポーネントは
、所与のトラバースのディスク・ヘッド移動の向きに関する変数であり、「低→
高」または「高→低」の値を与えることができる。実際には、この変数によって
、所与のトラバースがディスクの外周部分から内周部分に読み取られるのか、そ
の逆であるのかが決定される。トラバースの第2コンポーネントは、所与のトラ
バース中に満たされなければならないディスク・アクセス要求の順序付きリスト
(ディスク要求リスト)である。トラバースの第3コンポーネントは、ディスク
要求リスト内のディスク要求の数を示す変数である。この変数は、所与のトラバ
ースについて満たすことができるディスク要求の数を制限するために、最大値(
「N」)を上限とする。トラバースの第4コンポーネントは、ブール変数「アク
ティブ」である。アクティブ変数には、トラバースを行う前に偽の値をセットす
ることができ、トラバースが実施される時に真にすることができる。トラバース
の最後のコンポーネントは、現在のディスク・ブロック・アドレスまたは、時間
の所与の瞬間にディスク・ヘッドが位置するディスク・アドレスである。ディス
ク・ヘッドの移動の向きは、新しいトラバーサルごとに交番するので、トラバー
サル・リスト内のトラバースの数を、偶数に制限することができる。
【0012】 一実施態様のシステムは、2つのアルゴリズムすなわち、入ってくるディスク
要求をキューに置くキューイング・アルゴリズムと、キューに置かれた要求を満
たす実行アルゴリズムを実行することができる。キューイング・アルゴリズムは
、新たに到着したディスク要求をトラバーサル・リストのトラバースに置くとい
う機能を実行する。新たに到着した要求は、アクティブ・トラバース(アクティ
ブ=真)または保留中のトラバース(アクティブ=偽)のディスク要求リストに
置くことができる。実行アルゴリズムは、トラバーサル・リストの各トラバース
のキューに置かれた要求を実行する。
【0013】 このアルゴリズムの構造は、リオーダにかかわらず、ディスク・ヘッド移動の
最適化およびより均一なディスク・アクセス時間を可能にすることができる。所
与のトラバースのディスク要求の数が、最大値(「N」)を上限とするので、所
与のディスク要求を満たす時間の長さに、限度を与えることができる。実際に、
このシステムは、所与のディスク要求について有限最大遅延を有するエレベータ
・アルゴリズムを使用する。
【0014】 したがって、さまざまな実施態様で、有限ディスク要求リオーダのシステムお
よび方法が、ディスク要求をリオーダでき、指定された限界以内で満たすことが
できる。これは、ディスク・ヘッド移動の最適化をもたらすことができ、さらに
、より均一なディスク・アクセス時間を可能にする。ディスク・アクセス時間の
均一性によって、このシステムを、比較的安定したデータ・ストリームが要求さ
れるいくつかのアプリケーションに適するものにすることができる。したがって
、このシステムは、さまざまなマルチメディア・アプリケーションと共に使用す
るのに特に適する可能性がある。
【0015】 本発明の他の目的および長所は、以下の詳細な説明を読み、添付図面を参照す
れば明らかになろう。
【0016】 本発明の他の目的および長所は、以下の詳細な説明を読み、添付図面を参照す
れば明らかになろう。
【0017】 本発明は、さまざまな修正形態および代替形態を可能とするが、その特定の実
施形態を、図に例として示し、本明細書で詳細に説明する。しかし、図面および
それに対する説明が、本発明を開示される特定の形態に制限することを意図され
たものではなく、逆に、本発明が請求項によって定義される本発明の趣旨および
範囲に含まれるすべての修正形態、同等物、および代替形態を含むことを理解さ
れたい。
【0018】 (発明の詳細な説明) 図2を参照すると、ビデオ・サーバおよびストレージ・システム200が示さ
れている。システム200には、サーバ202およびストレージ・システム20
4が含まれる。ストレージ・システム204を、1つまたは複数のバス205に
よってサーバ202に接続することができる。サーバには、1つまたは複数のプ
ロセッサ(図示せず)を含めることができ、このプロセッサは、1つまたは複数
のPCIバスおよび1つまたは複数のSCSIインターフェースなどの周辺バス
を介してストレージ・システム204と通信することができる。サーバ202に
は、マルチメディア・データ・ストリームのエンコードおよびデコードのために
複数のコーデックも含めることができる。コーデックを、1つまたは複数のPC
Iバスに結合することもできる。各ストレージ・システム204に、図示のよう
に1つまたは複数のRAIDシステムを含めることができる。
【0019】 データ・ストリームが指定されたおそらく時間的に変動するデータ速度で配布
される複数連続メディア・ストリームをサポートするために、サーバ202に、
ビデオ・ストレージ・マネージャ206が含まれる。ビデオ・ストレージ・マネ
ージャは、ストレージ・システム204でのマルチメディア・ストリームの保管
およびアクセスを制御する。好ましい実施形態では、マルチメディア・ファイル
が、高品位MPEG−2フォーマットでビデオ・ストレージ・マネージャ206
を介して保管されるが、他の適切な圧縮フォーマットを使用することができる。
マルチメディア・ストリームのクライアントまたはリクエスタは、所望のビット
速度でファイルにアクセスするために、ビデオ・ストレージ・マネージャ206
と取り決める。ビデオ・ストレージ・マネージャ206は、使用可能なストレー
ジ・バンド幅および使用可能なバッファ・メモリを査定して、要求を満たすこと
ができるか否かを判定する。ビデオ・ストレージ・マネージャが、要求に適応で
きることを確認した後に、クライアントに、契約された速度までのビット速度で
のファイルへのアクセスが与えられる。要求が使用可能なストレージ・バンド幅
を超え、かつ/またはバッファ・メモリが使い果たされた場合には、ビデオ・ス
トレージ・マネージャは要求を拒絶し、クライアントは、後で要求を調整し、か
つ/または再サブミットすることができる。保証ストリーム速度を提供すること
によって、ビデオ・ストレージ・マネージャが、一定ビット速度アクセスに加え
て可変ビット速度アクセスを完全にサポートする。クライアントは、0ビット毎
秒から取決速度までの任意の点まで、ファイルへのアクセスの速度を任意に変更
することができる。この柔軟性によって、フレームの正確な開始およびジョグ/
シャトル機能性を含む多数の機能がサポートされる。
【0020】 複数の異なるクライアントが、ビデオ・ストレージ・マネージャに異なるビッ
ト速度で異なるストリームを要求することができる。これらのストリームは、読
取、書込、ストリーム速度、およびアクセスされるファイルの任意の混合とする
ことができる。各ストリームは、異なる取決速度を有することができ、個々のス
トリームを、すべてのストリーム速度の総合集約がサーバ・システムの総合集約
ストリーミング容量を超えない、取決速度までの速度の任意の範囲とすることが
できる。すべてのストリームが同一のビット速度であること、またはあるストリ
ームのビット速度が別個の許容可能な速度の組から選択されるこという要件はな
い。ビデオ・ストレージ・マネージャは、クライアントが、同一のファイル、異
なるファイル、またはその間の任意の組合せにアクセスすることも許可する。下
で説明するように、ビデオ・ストレージ・マネージャは、サーバ集約バンド幅に
対する影響なしに、この柔軟性を提供する。
【0021】 図3に移ると、複数のビデオ・サーバ202およびファイル・システム204
を使用する分散マルチメディア・ファイル・システム300が示されている。こ
の実施形態では、ファイル・システム204が、ファイバ・チャネルを介してビ
デオ・サーバ202と通信する。各ストレージ・システム204に、fibre
channel arbitrated loop(FC−AL)でリンクさ
れた複数のRAIDシステムを含めることができる。各ビデオ・サーバ202を
、たとえばそれ自体のローカル・ファイル・システムまたはテープ・ライブラリ
にも接続することができる。さらに、テープ・ライブラリなどの他のストレージ
・システムを、ファイバ・チャネル上でこのシステムにアクセス可能にすること
ができる。クライアントは、マルチメディア・ストリームが伝送ネットワーク2
08上に送られることを要求することができる。伝送ネットワーク208は、コ
ンピュータ・ネットワーク、インターネット、放送システム、またはマルチメデ
ィア・ストリームに関する他の適切な伝送媒体とすることができる。1つまたは
複数のビデオ・サーバで実行されるビデオ・ストレージ・マネージャは、ストレ
ージ・システム204のファイルへのアクセスに関するマルチメディア・ストリ
ームの開始および追加を制御する。ビデオ・ストレージ・マネージャは、MEP
Gエンコーダおよびデコーダ、DVBマルチプレクサ、ATM、SONET、お
よびイーサネット(登録商標)などの広範囲のハードウェア・インターフェース
を介して伝送ネットワーク208に配布される複数連続メディア・ストリームを
管理する。
【0022】 図2および3に示されたものなどのシステムで使用されるビデオ・ストレージ
・マネージャは、すべての連続メディア・ストリームに関するデータを保証する
形で複数の連続するシーケンシャル・メディア・ストリームに関するディスク・
アクセスまたはストレージ・アクセスをスケジューリングする方法に対処し、保
証速度アクセスの新しい要求に適応できるかどうかを判定する正確な機構を提供
する。
【0023】 図4に移ると、ビデオ・ストレージ・マネージャ206の詳細な図が示されて
いる。ビデオ・ストレージ・マネージャ206には、クライアント要求をストリ
ーム・マネージャ404にインターフェースする要求プロセッサ402が含まれ
る。各ストリーム・マネージャ404は、バッファ・リング405を維持する。
別のストリーム・マネージャ404は、各連続マルチメディア・ストリームに対
応する。ファイル・システム406が、ストレージ・システム204へのストリ
ーム・アクセスのマッピングのために設けられる。ディスク・スケジューラ40
8が、ストレージ・システム204ごとに、各ストレージ・システムへのストレ
ージ・アクセスのフローを管理するために設けられる。各ディスク・スケジュー
ラに、下で詳細に説明するデッドライン・キュー410を含めることができる。
【0024】 ビデオ・ストレージ・マネージャ、ファイル・システム、およびディスク・ス
ケジューラは、ストリーム・データの固有のビット速度と完全に独立な形で、ス
トリーム・データをストレージ・システムに配置する。この特徴は、クライアン
トが、ストリーム・データの固有速度より何倍も高い(または低い)データ速度
での保証速度サービスを用いてビデオ・ストレージ・マネージャ・ファイル・シ
ステムとの間でコンテンツを転送できるという点で、追加の柔軟性を提供する。
ビデオ・ストレージ・マネージャ、ファイル・システム、およびデータ配置機構
は、固定ブロック・サイズ機構である。たとえば、データは、ストレージ・シス
テムとの間で一定のブロック・サイズで転送される。好ましい実施形態では、2
56キロバイトのブロック・サイズを選択することができる。ビデオ・ストリー
ム・マネージャは、システム初期化またはシステム構成中にブロック・サイズの
構成を提供することができる。固定ブロック・サイズ機構によって、ストレージ
の外部断片化が発生せず、内部断片化がファイルの最終ブロックでのみ発生する
(ファイルが正確にブロック境界で終わる可能性が低いので)ことが保証される
。速度依存の可変ブロック・サイズ機構は、ストリーム速度および現在のファイ
ル・システム内容に依存する特定のファイルの大きい変動およびストレージ要件
をもたらす外部断片化およびブロックごとの変動するレベルの内部断片化をこう
むるが、これとは異なって、ビデオ・ストレージ・マネージャの速度独立固定ブ
ロック・サイズ機構では、速度または現在のファイル・システム内容に無関係に
、すべてのファイルの予測可能なストレージ要件が保証される。
【0025】 図5に移ると、ビデオ・ストレージ・マネージャの一定データ、可変時間、速
度独立配置機構が、2つの同時連続メディア・ストリームについて示されている
。図からわかるように、データ・ブロック・サイズは、すべてのメディア・スト
リームについて固定されているが、データ・ブロックがアクセスされる時刻は、
所望のビット速度に従って、ストリームごとに変化する。
【0026】 一定データ(固定ブロック)可変時間アクセス・スケジューリング機構から生
じる問題の1つは、それぞれがそれ自体のストレージ・アクセスの頻度および位
相を有する複数のストリームが、ストレージ・システムに対する要求を行い、こ
れらのアクセス・パターンの相互作用が、ストレージ・アクティビティのピーク
と休止を引き起こすことである。異なるストリームによるストレージ・アクセス
の異なる頻度および位相により、ある時は多数のアクセスが同時に保留中になり
、他の時は、アクセスがほとんど保留にならない。この問題に対する解決策の1
つが、ストレージ・システムがアクティビティのピーク速度をサポートすること
を単純に要求することであるが、この解決策は、明らかに、コスト効率的でない
【0027】 図4に戻って、本発明の仮想ストレージ・マネージャは、各クライアントとフ
ァイル・システムの間にバッファのリングを導入することによって、ストレージ
・アクティビティを一様にすることによって上記の問題に対処する。各メディア
・ストリームは、ストリーム・マネージャ404によって管理される異なるバッ
ファ・リング405に関連する。したがって、ストリーム・マネージャ404は
、連続メディアのリクエスタとディスク・サブシステムの間にデータ・バッファ
のリングを関連付ける。リング内のバッファの数は、関連するメディア・ストリ
ームの契約された保証速度と、速度保証が必ず満たされるようにするストレージ
・システムの特性に従って決定される。バッファ・リング405は、ビデオ・ス
トリーミングは、本来シーケンシャルであり、かつファイル・システムがストレ
ージ要求を事前にキューに置くという事実を利用する。この手法によって、将来
の要求を小止みの間に満たすようになり、負荷がピークから谷にシフトされ、ス
トレージ・アクティビティが経時的に平滑化される。
【0028】 N個のバッファの各リング405は、リクエスタによってアクセスされる連続
メディア・ストリームの次のNブロックを保持するのに使用される。リング内の
バッファが、そのデータをリクエスタによって消費された後に、現在は空のバッ
ファへに書き込むアクセスが、空のバッファにメディア・ストリームの次のブロ
ックを書き込むために、適切なディスク・スケジューラ408のキューに置かれ
る。バッファ・リング405のバッファを満たす(または空にする)要求は、フ
ァイル・システム406によって、適切なディスク・スケジューラ408にマッ
ピングされる。ファイル・システム406は、論理ブロックを、ストレージ・シ
ステム204の物理ブロックにマッピングする。ファイル・システム406は、
論理ブロック位置対物理ブロック位置(たとえばiノード)のマップを維持する
ことができる。複数ストリームに関する要求が、各ディスク・スケジューラ40
8のキューに置かれる可能性があるので、システムは、1つのストリームからの
将来の要求が、別のストリームからのより緊急の要求の前に満たされず、その結
果、ストリームごとに保証速度が維持されるようになることを保証しなければな
らない。この目標を達成するために、デッドラインが、ストレージ・システムに
サブミットされる要求に関連付けられる。システムは、ストリーム速度ブロック
・サイズおよび既存の消費されていないバッファの数を記録することによって、
バッファが必要とされる時と一致するようにデッドラインを計算する。空のバッ
ファに関する要求がキューに置かれる時に、デッドライン時間が、ディスク・ス
ケジューラ408内の適切なデッドライン・キュー410に、要求と共に置かれ
る。デッドライン時間は、バッファに書き込むことができ、なおかつ特定のスト
リームの保証速度要件を満たす最後の時刻を示す。デッドライン時間は、現在時
刻+(N−1)×バッファ時間とし計算され、ここで、Nは、バッファ・リング
405内のバッファの数、バッファ時間は、リクエスタが取決速度保証を超えず
にバッファを消費できる最小時間である。ディスク・スケジューラ408は、要
求に関連するデッドラインを満たす順序で、特定のストレージ・システム204
にキュー要求を発行しなければならない。ディスク・スケジューラは、連続メデ
ィア・リクエスタからの要求を、各デッドライン・キュー410に置き、最も古
いものから最も新しいものへの順序を維持し、その結果、最も早いデッドライン
を有する要求が、最初に満たされるようにする。
【0029】 システムは、ストリームのデッドラインを満たすために、すべての要求をその
デッドラインの充分前にストレージ・システム内のキューに置くことができ、そ
の結果、要求に関する最悪の可能なサービス時間がデッドラインを超えないこと
を保証するのに充分に大きいバッファ・リングをセット・アップしなければなら
ない。ワースト・ケースのサービス時間が、システム上の集約負荷の関数であり
、集約負荷が、集約ストリーム速度(実際のストリーム速度の混合と独立の)の
直接の結果なので、所与のストレージ・システム上の特定のストリームのバッフ
ァ・リング・サイズは、その特定のストリームの速度の関数であり、混合内の他
のストリームのストリーム速度と独立である。この独立性を与えられて、さまざ
まなストリーム速度に適切なリング・サイズを、下で詳細に説明するストレージ
特性記述時に生成することができる
【0030】 図6に移ると、バッファ・リング405およびデッドライン・キュー410を
使用する一定データ、可変時間アクセス機構を示す流れ図が示されている。新し
いストリームが開始される時に、新しいストリームのストリーム・マネージャが
、602に示されているように、保証ストリーム速度およびストリームのブロッ
ク・サイズを決定する。ストリームは、ファイル・システム406を介して要求
されたファイルにアタッチされ、ストリーム・マネージャ404が、新しいスト
リームのバッファ・リング405を作成する。関連するファイルのブロックに関
する要求が、バッファ・リングを満たすのに適切なストレージ・システムに発行
される。各バッファを、1ブロックのサイズにすることができる。バッファ・リ
ングを満たした(606)後に、608に示されているように、ストリーミング
を開始することができる。
【0031】 各バッファがストリーム・リクエスタによって消費される時に、610に示さ
れるように、ブロック要求が、デッドライン時間と共に、今消費されたバッファ
を満たすために発行される。ブロック要求およびデッドライン時間は、要求され
たブロックがどこに配置されるかに従って、適切なストレージ・システムのデッ
ドライン・キュー410に置かれる。要求は、デッドライン時間の最も早いもの
から最も遅いものの順で、デッドライン・キュー内で順序付けられる。要求は、
612に示されるように、最も早いデッドラインに従って、デッドライン・キュ
ーから発行される。ストリーミング中に、バッファ・リングのバッファが、1つ
ずつ循環式にアクセスされる。デッドライン時間によって、各バッファが、保証
速度に従ってストリーム・リクエスタによって必要とされる前に満たされること
が保証される。バッファ・リングおよび関連するデッドライン時間によって、マ
ルチメディア・ストリーミングの本来のシーケンシャルな性質が活用されて、ス
トレージ要求が事前にキューに置かれる。これによって、ストレージ・アクティ
ビティの小止みの間に将来の要求を満たし、したがって、負荷がピークから谷に
シフトされ、ストレージ・アクティビティが経時的に平滑化される。図6を、ス
トリーム読取要求に関して説明したが、同一の機構を、ストリーム書込要求にも
使用できることに留意されたい。各バッファが、ストリーム・データのバッファ
を書き込まれる時に、要求およびデッドラインを、ストレージ・システムへのブ
ロックの書込のためのデッドライン・キューに置くことができる。
【0032】 ビデオ・ストレージ・マネージャ206は、複数の異なるメディア・ストリー
ム・クライアントを異なる速度保証でサポートする。異なるメディアのストリー
ム・マネージャ404およびバッファ・リング405を、ストリームごとに設け
ることができる。別のディスク・スケジューラ408およびデッドライン・キュ
ー410をストレージ・システム204ごとに設ける。したがって、各デッドラ
イン・キュー410に、複数の異なるメディア・ストリームに対応する要求が含
まれる場合がある。デッドライン・キュー410内の各要求のデッドライン時間
は、すべて、共通の現在時間に対して計算され、その結果、特定のデッドライン
・キューに保管されたいずれかのリクエスタからの最も早いデッドラインが、最
初に発行される。特定のストリームについて要求が満たされる間の時間は、他の
保留中の要求の数に依存して変動するが、関連するデッドライン時間によって、
速度保証が満たされることが保証される。
【0033】 速度保証連続メディア・ストリームの提供のほかに、マルチメディア・サーバ
が、優先順位を付けられるが遅くない保証された形でストレージ・システムに保
管されたデータへアクセスすることが望ましい。そのようなアクセスは、連続速
度保証メディア・ストリームに関して行われる保証に影響してはならない。たと
えば、NFSまたはFTPのリクエスタが、ファイルへのアクセスを望む場合が
ある。通常、そのようなアクセスは、非リアルタイムであり、速度保証は不要で
ある。そのようなアクセスは、すべての保証速度アクセスが満たされた後に使用
可能な残りのディスクバンド幅を使用して満たすことができる。すべての保証速
度要求が満たされた後に残っているストレージ・バンド幅は、一般プールに割り
振られる。使用可能バンド幅クライアントは、このバンド幅に、先着順でアクセ
スすることができる。ビデオ・ストレージ・マネージャは、使用可能バンド幅の
量を動的に判定する。未使用の保証速度契約からのバンド幅のどれもが、使用可
能バンド幅のプールの一部になることができる。
【0034】 図7に移ると、保証速度ストリームと非速度保証使用可能速度アクセスの両方
を提供するシステムが示されている。図7に示されているように、ビデオ・スト
レージ・マネージャ206は、保証速度クライアントと使用可能速度クライアン
トの両方から要求を受け入れることができる。ストリーム・バッファ712を、
保証速度クライアントのそれぞれに関連付けることができる。好ましい実施形態
では、各ストリーム・バッファ712が、図4および6に関して説明したバッフ
ァ・リングである。保証速度要求は、ファイル・システム406によって、適切
なディスク・スケジューラ408にマッピングされ、保証速度キュー706に置
かれる。好ましい実施形態では、保証速度キューが、図4および6に関して説明
したデッドライン・キューである。非速度保証である使用可能速度要求も、ファ
イル・システム406によって、要求されたデータが配置されているストレージ
・システムの適切なディスク・スケジューラにマッピングされる。データ・プー
ル704を、使用可能速度要求の共有バッファとして設けることができる。使用
可能速度要求は、各ストレージ・システムに関連する優先順位キュー708に置
かれる。ファイル要求のもう1つのソースが、ファイル・システム406自体で
ある場合がある。これらの要求には、さまざまなデータ・ストリームをサポート
するのに必要なメタデータ(たとえば、間接ブロックなど、ストリームに対して
ブロックのリストを保持するブロック)に関する要求を含めることができる。こ
れらのタイプのメタデータ要求は、ストリームの次のデータ・ブロックをポイン
トするストリーム・ポインタ・ブロック(間接ブロック)が使用不能である場合
にストリーミングが停止するという点で、時間にクリティカルである可能性があ
る。したがって、時間にクリティカルなメタデータに関する要求も、デッドライ
ンを担持し、保証速度キューまたはデッドライン・キュー706内で、ストリー
ミング・データ要求と共に直接にスケジューリングすることができる。ファイル
・システムは、最新の間接ブロックによって進行を常時監視する。適切な閾値で
、デッドラインを計算し、ストレージ・システムからの次の間接ブロックの取出
をスケジューリングする。他のメタデータ要求は、他のタイプのファイル管理と
ストリーミングに関係しない読取動作および書込動作(たとえば、ファイル・シ
ステム内のファイルのリスティング)など、非クリティカルである可能性がある
。これらの時間にクリティカルでないメタデータ要求は、優先順位キュー708
に置かれる。メタデータ・プール702を、メタデータ要求がそこから発行され
るファイル・システム406に関連付けることができる。
【0035】 他のメタデータ要求および使用可能バンド幅要求は、厳密なサービス時間要件
を有しないが、優先順位関係を有する可能性がある。たとえば、メタデータ書込
は、その完了が特定のストリーム・エピソードをクローズするのに必須である可
能性があるので、最高の優先順位とみなすことができる。メタデータ読取は、フ
ァイル・リスト、ファイル作成などのタイムリーな処理を保証するために、次の
優先順位とすることができる。使用可能I/O要求は、最も低い優先順位を有し
、リソースが使用可能である時に満たすことができる。優先順位キュー内の要求
は、最高優先順位から最低優先順位への順に順序付けられる。
【0036】 ディスク・スケジューリング機構は、キューに置かれた要求を、要求に関連す
るデッドラインを満たす順序でストレージ・システムに発行し、保証要求の後に
残っているバンド幅を、関連する優先順位との一貫性がある形で非保証要求に割
り振る。バンド幅アロケータ710を使用して、ストレージ・バンド幅のある部
分を保証速度要求に割り振り、残りのバンド幅部分を非保証優先順位要求に割り
振ることができる。ストレージ特性記述時に、ストレージ・システムのバンド幅
の構成可能なパーセンテージが、非保証優先順位要求を引き受けるために予約さ
れる。たとえば、バンド幅の90%を、保証速度キュー706からの保証速度要
求のために予約し、残りの10%を優先順位キュー708からの非速度保証要求
に割り振ることができる。保証要求と非保証要求のために予約されるパーセンテ
ージに基づいて、ディスク・スケジューラは、一方または他方のキューから要求
を選択してオペレーティング・システムに渡し、ストレージ・システムを満たす
。選択された要求キューが空の時には、スケジューラは、他方のキューからの要
求のデキューを試み、したがって、非保証要求と保証要求の両方が未使用のスト
レージ・バンド幅を吸収できるようにする。
【0037】 好ましい実施形態では、要求が、サイクルに従ってデッドライン・キューおよ
び優先順位キューからストレージ・システムに移される。サイクルの例を、図8
に示す。サイクルは、固定された数のスロットであり、各スロットが、保証アク
セスと非保証アクセスの間のディスクバンド幅の所望の割振りと等しい比率でデ
ッドライン・キューまたは優先順位キューのいずれかに割り当てられる。図8で
は、Dとマークされたスロットが、デッドライン・キューをポイントし、Pとマ
ークされたスロットが、優先順位キューをポイントする。スロットは、繰り返し
てトラバースされ、要求が、現在のスロットに従ってキューの1つから選択され
る。図8の例では、ディスク・スケジューラが、16回のストレージ・アクセス
のうちの13回だけデッドライン・キューを先に調べ、16回のアクセスの残り
の3回に優先順位キューを先に調べるように、バンド幅が割り当てられている。
この割振りは、単に1つの例であり、好ましい実施形態では、割振りを、10ス
ロットのうちの9スロットがデッドライン・キューをポイントし、10スロット
のうちの1スロットが優先順位キューをポイントするものとすることができる。
好ましい実施形態では、各用途に割り振られるスロットが、サイクル全体を通じ
てできる限り均等に分配される。
【0038】 好ましい実施形態では、デッドライン・キューおよび優先順位キューからの要
求が、現在のスロットに従ってストレージ・システムに移され、その後、サイク
ルが次のスロットに進む。現在のスロットによって示されるキューが空の場合に
は、他方のキューのエントリが空でなければ、そのエントリが選択される。した
がって、非速度保証要求は、実際には、デッドライン・キューを介して速度保証
バンド幅のすべてが使用されてはいない場合に、割り振られたバンド幅の時より
多くを達成することができる。
【0039】 図9に移ると、速度保証を有する複数連続メディア・ストリームのストレージ
・アクセスと、非速度保証要求に関するストレージ・アクセスを提供する方法を
示す流れ図が示されている。902に示されているように、ストレージ・バンド
幅の一部を、速度保証要求に割り振り、残りのバンド幅を、非速度保証要求に割
り振る。904に示されているように、速度保証要求を保証速度キューに置き、
非速度保証要求を優先順位キューに置く。速度保証要求は、各ストリームの特定
の保証された速度に合致する形でそれらが満たされることを保証する形で、速度
保証キューに入り、そこから発行される。非速度保証要求は、優先順位キュー内
で順序付けられ、その結果、より高い優先順位の要求が、より低い優先順位の要
求の前に満たされる。906に示されているように、システムは、バンド幅割振
りに従ってストレージ・バンド幅を割り当てる、サイクルからの現在のスロット
に従って、要求をストレージ・システムに発行するためにキューを選択する。ス
テップ908、910、および912に示されているように、選択されたキュー
にエントリが含まれる場合には、その要求が、選択されたキューから発行される
。選択されたキューが空である場合には、システムは、908および914に示
されているように、発行する要求について他方のキューを調べる。他方のキュー
が空でない場合には、916および912に示されているように、エントリを除
去し、発行する。その後、システムは、918に示されているように、次のスロ
ットへサイクルをトラバースし、キュー選択処理を繰り返す。914で、他方の
キューが空の場合には、エントリを含むキューが見つかるまで、この処理を繰り
返す。一実施形態では、両方のキューが空である場合に、スロットを進めない。
その代わりに、両方のキューが空である場合にスロットを進めることができる。
【0040】 図10に移ると、図4および7に関して説明した機構を組み合わせるビデオ・
ストレージ・マネージャが示されている。図10のストレージ・マネージャは、
クライアントが保証ビット速度でのファイルへのアクセスについて取り決める複
数連続メディア・ストリームをサポートする。各ストリーム・クライアントは、
任意の速度から保証速度まで、そのファイルへのアクセスの速度を変更すること
を許可される。さらに、図10のストレージ・マネージャは、使用可能バンド幅
クライアントをサポートする。ストレージ・バンド幅のある部分が、使用可能速
度クライアント752などの使用可能バンド幅クライアントまたは非速度保証ク
ライアントに割り振られる。さらに、保証速度クライアントによって使用されな
いバンド幅を、使用可能速度クライアントに使用可能にすることができる。した
がって、図10のビデオ・ストレージ・マネージャは、同一の集約バンド幅を配
分しながら保証速度クライアントの任意の混合をサポートでき、非保証速度で使
用可能速度クライアントもサポートする。
【0041】 図4に関して述べたように、各保証速度クライアントは、関連するストリーム
・マネージャ404と通信し、ストリーム・マネージャ404は、特定のストリ
ームについてバッファ・リング405を維持する。バッファ・リングは、リクエ
スタによってアクセスされる連続メディア・ストリームの次のNブロックを保持
するのに使用され、このNは、バッファ・リング内のバッファの数である。各バ
ッファは、バッファあたり1ブロックのデータについて同一のサイズにすること
ができる。リング内のバッファが、リクエスタによってそのデータを消費された
時に、今は空のバッファに関する要求が、デッドライン時間と共に、ファイル・
システム406によって決定される適切なディスク・スケジューラ408のキュ
ーに置かれる。デッドライン時間は、バッファ要求を満たすことができ、なおか
つストリームの保証速度要件が満たされる、最後の時を示す。デッドライン時間
は、 デッドライン時間=現在時刻+(N−1)×バッファ時間 として計算することができ、ここで、Nはリング内のバッファの数、バッファ時
間は、取決速度保証を超えずにリクエスタがバッファを消費できる最小時間であ
る。保証速度要求が適切なディスク・スケジューラ408のキューに置かれるの
と同時に、優先順位付きだが非保証速度の要求もキューに置かれる。非保証速度
要求は、デッドラインではなく優先順位を担持する。ディスク・スケジューラは
、キューに置かれた要求を、要求に関連するデッドラインが満たされる順序でス
トレージ・システムに発行すると同時に、ディスク・システムバンド幅の高い比
率を獲得し、保証要求の後に残りのディスクバンド幅を、優先順位との一貫性が
ある形で非保証要求に割り振る。
【0042】 連続ストリーム・リクエスタからの保証要求は、適切なディスク・スケジュー
ラの最も早いデッドライン順序付きキュー410に置かれる。非保証速度要求は
別の最高優先順位順序付きキュー708に置かれる。使用可能速度クライアント
752および保証速度クライアント754からの要求のほかに、要求は、ファイ
ル・システム自体から来る場合もある。ファイル・システムからの要求の一部は
、将来のストリーム・ブロックへのポインタを含むブロックの要求などの、時間
にクリティカルなものである場合がある。デッドラインがこれらの要求に関連付
けられ、これらの要求は適切なデッドライン・キュー410に挿入される。時間
にクリティカルでないファイル管理要求などの他の要求は、優先順位を割り当て
られ、適切な優先順位キュー708に挿入される。ファイル・システム要求を、
メタ・プール702でバッファリングすることができる。使用可能速度クライア
ント要求を、データ・プール704でバッファリングすることができる。
【0043】 要求は、バンド幅アロケータ710によって、構成可能な割振りに従ってバン
ド幅を割り振るサイクルに従って、デッドライン・キューおよび優先順位キュー
から移される。たとえば、特定のストレージ・システムのバンド幅の90%を、
デッドライン・キューに、したがって保証速度ストリーム・クライアントに割り
当て、10%を使用可能速度クライアントの優先順位キューに割り当てることが
できる。バンド幅アロケータ710は、デッドライン・キューおよび優先順位キ
ューからの要求を、シーク・リオーダ・キュー750に移すことができる。要求
は、ストレージ・デバイス上の要求されたデータ・ブロックの位置に従って、シ
ーク・リオーダ・キュー内でリオーダすることができる。シーク・リオーダ・キ
ューは、構成可能な最大サイズを有する。デッドライン・キューおよび優先順位
キューからの要求は、シーク・リオーダ・キューが最大サイズまで満たされてい
ない時には、必ず、現在のサイクル・スロットに従ってシーク・リオーダ・キュ
ーに移される。各移動は、サイクルの現在のスロットによって示されるキューか
ら行われ、その後、サイクルが次のスロットに進む。スロットによって示される
キューが空の場合には、代替キューが空でない場合に、そのキューからのエント
リが、選択される。移されるエントリは、シーク・リオーダ・キュー内でリオー
ダされ、エントリの片側のすべての要求が、そのアドレス以上のストレージ・ア
ドレスを有するデータ・ブロックを参照し、キューの反対側のすべての要求が、
そのアドレス以下のディスク・アドレスを有するデータ・ブロックを要求するよ
うにされる。
【0044】 各シーク・リオーダ・キュー750は、一方向でキュー内にエントリがそれ以
上存在しなくなるまで、並列に一方向に(すなわち、ディスク・アドレスを増や
すまたは減らす方向に)連続してトラバースされ、その後、方向を反転して再開
される。したがって、ディスク・スケジューラは、シーク・リオーダ・キューか
らの要求を、ディスク・アドレスの順でストレージ・システムに発行し、前に発
行された要求がディスク・システムによって完了された時に、次の要求に進む。
【0045】 デッドライン・キューおよび優先順位キューに、多数の異なるストリームおよ
びクライアントからの要求が含まれるので、これらのキューから生じるブロック
のシーケンスは、本質的にランダムである。これらの要求が、デッドライン・キ
ューおよび優先順位キューでの順序に従ってサービスされる場合には、過剰なデ
ィスク・シーク・オーバーヘッドが、要求のランダム・パターンから生じる。シ
ーク・リオーダ・キュー750は、デッドライン・キューおよび優先順位キュー
からの要求をそのディスク位置に従ってリオーダすることによって、シーク時間
を改善する。
【0046】 図11に移ると、シーク・リオーダ・キュー750の動作を示す流れ図が示さ
れている。1102に示されているように、シーク・リオーダ・キューが満杯で
ない時に、要求が、現在のサイクル・スロットに従ってデッドライン・キューま
たは優先順位キューのいずれかから移される。指示されたキューが空である場合
には、1104に示されているように、代替のキューが空でない場合に、代替キ
ューから要求をとる。移される要求は、要求されたブロックのディスク・アドレ
スに従ってシーク・リオーダ・キューに挿入され、その結果、シーク・リオーダ
・キュー内の要求が、ディスク・アドレスの昇順または降順で順序付けられるよ
うになる。それと同時に、1108に示されているように、シーク・リオーダ・
キューを一方向にトラバースし、次の要求をディスク・システムに発行する。1
110および1114に示されているように、シーク・リオーダ・キューの末尾
に達した場合には、キュー・トラバーサルの方向を反転する。1110および1
112に示されているように、シーク・リオーダ・キューの末尾に達していない
場合には、現在のトラバーサルの方向を維持する。現在の要求がディスク・シス
テムによって満たされた後に、1116および1108に示されているように、
シーク・リオーダ・キューの次の要求を、ディスク・システムに発行する。
【0047】 前に注記したように、ストレージ・システムによって見られるブロック要求は
、ストレージ・システムが多数のストリームからの要求を提示されるので、本来
ランダムである。このランダム性に対して、特定のファイルについてブロックを
シーケンシャルに割り振ることは、非効率的である。ディスクのI/Oシリンダ
が、しばしば異なる転送速度を有するので、特定のファイル内のブロック割振り
は、ディスクのI/Oゾーンの間で前へ行ったり後に行ったりする。したがって
、特定のストリーム・ファイルに関して、ブロック・ストレージ要求は、ブロッ
クがディスクの交番するI/Oゾーンに配置されるように、ディスク・アドレス
を割り当てられる。これによって、すべてのファイルが、平均ストレージ・スル
ープットを見ること、ストリーミングされるファイルが、完全にディスクの低性
能ゾーンから終わることがないことが保証される。
【0048】 上で述べたように、ビデオ・ストレージ・マネージャは、保証ストリーム速度
の集約が連続メディア・ストリームに割り振られる集約ストレージ・バンド幅を
超えないことを保証するために、新しい連続ストリームのアドミッションを制御
しなければならない。ストリーミングを開始する前に、ストレージ・システムは
、その性能またはバンド幅を判定するために特性を記述されなければならない。
ストレージ・システムバンド幅を判定した後に、ストリーミングを開始する時に
、新しいストリームのそれぞれが要求される際に、ビデオ・ストリーム・マネー
ジャが、要求されたビット速度が連続ストリームに割り振られた残りの使用可能
バンド幅を超えるか否かを判定する。超える場合には、要求を拒絶し、リクエス
タは、後程要求を再サブミットするか、より低いビット速度要求を用いることが
できる。充分なバンド幅が存在する場合には、要求を許可し、ストリーム・マネ
ージャが、上で述べた関連するバッファ・リングを作成する。
【0049】 ストリーミング中にストレージ・システムに提示される要求のシーケンスが、
本質的にランダムなので、ストレージ・バンド幅の特性を記述するストリーム負
荷のモデル化を、単純化することができる。この性能は、通常の負荷の特性を反
映する合成負荷を用いて特性を記述することができる。合成負荷は、所与のファ
イルのブロックが交番するI/Oディスク・ゾーンに配置される可能性があると
いう事実を考慮に入れるために、純粋にランダムなブロックのシーケンスから変
更することができる。したがって、代表的な負荷は、シーケンシャル・ブロック
をゾーン化されたランダムな形で割り振るようにファイル・システムを制限する
ことによって構成することができる。ディスク・ブロック・アドレス範囲を、半
分に分割することができ、シーケンシャル・ファイル・ブロック割振りを、2つ
のゾーンの間で交番するゾーン内のランダムな位置から選択することができる。
ディスク性能は、この合成負荷を使用し、その後、マージンを与えるために定格
を下げることによって、特性を記述することができる。定格低下の量を、主定格
低下パラメータと称することができる。定格を下げられたバンド幅の値に、総バ
ンド幅のうちで保証速度リクエスタについてサイクル処理で割り振られる部分の
分数をかける。結果の保証速度バンド幅を、追加のデッドライン安全マージンを
可能にするために、副定格低下パラメータによってもう一度定格を下げることが
できる。その結果が、すべての保証速度要求の集約に関する最大アドミッション
バンド幅である。保証速度リクエスタを、それらが保証速度アドミッションバン
ド幅のすべてを消費するまで、アドミットすることができる。
【0050】 アドミッション制御に関するストレージ特性記述を図12に示す。1202に
示されているように、ゾーン化されたランダムな形でブロックを割り振り、その
結果、シーケンシャル・ファイル・ブロック割振りが、I/Oディスク・ゾーン
の間で交番するゾーン内のランダムな位置から選択されるようにすることによっ
て、合成負荷を作成する。1204に示されているように、ストレージ・システ
ムバンド幅を、この合成負荷を使用して判定する。1206に示されているよう
に、判定されたバンド幅を主定格低下パラメータによって定格を下げて、あるマ
ージンをもたらす。1208に示されているように、定格を下げられたバンド幅
を、保証速度要求に割り振られるバンド幅の比率に従って減らす。1210に示
されているように、この分割されたバンド幅を、副定格低下パラメータによって
もう一度定格を下げて、余分のデッドライン・マージンをもたらすことができる
。1212に示されているように、結果のバンド幅を、保証速度ストリームの最
大集約アドミッションバンド幅として使用することができる。
【0051】 特性記述処理に、ストレージ・システムの所望の動作速度にまたがるさまざま
なストリーム速度に適切なバッファ・リング・サイズの判定も含めることができ
る。バッファ・リングのバッファの最適の個数は、下記のようにさまざまなスト
リーム速度について判定することができる。図13を参照すると、特定のストリ
ーム速度のそれぞれについて、1302に示されているように、特性記述ルーチ
ンが、ストレージ・システムの全集約スループットを消費するのに充分なストリ
ーム・シミュレータを作成する。1304に示されているように、ストリーム・
シミュレータのそれぞれについて、リング・バッファをモデル化する。1306
に示されているように、各ストリーム・シミュレータが、ゾーンの間のランダム
・ブロックの間で交番するブロック要求を生成する。シミュレートされたストリ
ームが、テスト時間の完了まで、またはストリームのいずれかがアンダーランを
こうむるまで、実行される。アンダーランが発生するのは、要求デッドラインの
前にバッファ要求が完了しない時である。好ましい実施形態では、プレフィル・
マージン・パラメータをセットし、その結果、バッファ要求が要求デッドライン
の前のプレフィル・マージン時間以内に完了しない場合にアンダーランが発生す
るようにすることができる。1308および1310に示されているように、正
しいリング・バッファ・サイズが得られるまで、モデルのリング・バッファの数
を調整し、シミュレーションを繰り返すことができる。1312に示されている
ように、このシミュレーション全体を、異なるストリーム速度について繰り返す
ことができる。したがって、適切なリング・バッファ・サイズの表を、システム
によってサポートされる最大ストリーム速度までのさまざまなストリーム速度に
ついて、特性記述中に構築することができる。動作中に、新しいストリームがア
ドミットされる時に、必ず、この表にアクセスすることによって、新しいストリ
ームのために適切なサイズのリング・バッファを作成することができる。
【0052】 ビデオ・ストレージ・マネージャの性能は、上で述べた複数のパラメータを調
整することによってチューニングすることができる。これらのパラメータを下の
表に要約する。
【0053】
【表1】
【0054】 これらのパラメータは、上で説明したシステムなどのメディア・ストレージ・
システムの性能を構成し、調整するのに使用することができる。ストレージ・シ
ステムの最大持続可能スループットは、合成負荷の使用によるなど、上で説明し
たように特性を記述することができる。最大スループットに対するストレージ・
システムの動作負荷レベルを調整するために、特性記述された最大持続可能スル
ープットを、主定格低下パラメータによって定格を下げることができる。主定格
低下パラメータは、構成可能であり、システム構成中に設定することができる。
上で説明したデッドライン・キューなどのキューは、主定格低下要因によって定
格を下げられた最大スループットに基づくサイズとすることができる。結果のス
ループットを主スループットと呼ぶ場合がある。この主スループットは、上で説
明したバッファ・リングのサイズを定めるのに使用することができる。主定格低
下パラメータは、平均最大スループットの低下を犠牲にして、ストレージ・シス
テムの動作負荷レベルに関する安全マージンを提供する。システム構成中に主定
格低下パラメータを設定することによって、ユーザが、ストレージ・システムの
特定の応用例の必要に応じてこのトレード・オフを調整することができる。
【0055】 使用可能I/O速度パラメータによって、バンド幅アロケータに関して上で説
明したように、非速度保証要求のために予約されるストレージ・バンド幅が指定
される。非保証速度要求と保証速度要求のために予約されるバンド幅の量を、こ
のパラメータを使用して構成することができる。システムの必要に応じて、ユー
ザは、この使用可能速度パラメータを調整することによって、非保証速度要求と
保証速度要求の間の割当を調整することができる。
【0056】 副定格低下パラメータによって、速度保証ストリームに使用可能なバンド幅が
減らされる。主スループットは、使用可能速度パラメータに従って割り当てられ
、速度保証ストリームに割り振られる比率は、追加のデッドライン安全マージン
を提供するために、副定格低下パラメータによってさらに減らされる。動作中に
、すべてのストリーム速度の集約が、主スループットのうちで副定格低下パラメ
ータによって定格を下げられた保証速度ストリームに割り振られる部分を完全に
消費する点まで、追加のストリームをアドミットすることができる。
【0057】 プレフィル・マージン・パラメータによって、バッファ・リング・サイズの計
算中に使用されるデッドライン安全マージンが指定される。システム構成中に、
図13に関して説明したものなど、バッファ・リング・サイズをさまざまなスト
リーム速度について計算することができる。プレフィル・マージン・パラメータ
では、このバッファ・リング・サイズ計算処理中にそれによってデッドラインを
満たさなければならないマージンが指定され、たとえば、プレフィル・マージン
は、バッファ・リング・サイズを判定する時に、それによってバッファ・アンダ
ーランを回避しなければならないマージンを与える。プレフィル・マージン・パ
ラメータでは、より大きいリング・バッファに使用される追加のメモリを犠牲に
、追加のアンダーラン保護を得ることに留意されたい。大きいプレフィル・マー
ジンは、より大きいリング・バッファ・サイズをもたらす。というのは、あるス
トリーム速度で、指定されたプレフィル・マージンだけ要求のデッドラインを取
り逃がさないようにするために、追加のバッファがバッファ・リング内で必要に
なるからである。対照的に、副定格低下パラメータでは、速度保証ストリームの
潜在的なバンド幅を犠牲にして、追加のアンダーラン保護を得る。したがって、
副定格低下パラメータおよびプレフィル・マージン・パラメータは、特定の応用
例に最適な複数の異なるトレードオフを行うことによって、ストレージ・システ
ムのユーザに、システム性能を調整する能力を与える。たとえば、大量のメモリ
が使用可能であるが、追加バンド幅が必要な場合に、副定格低下を下げ、プレフ
ィル・マージンを増やすことができる。しかし、メモリの需要が多い場合には、
プレフィル・マージンを減らし、副定格低下パラメータを増やすことができる。
【0058】 I/Oオーバーラップ・パラメータ(シーク・リオーダ・バッファ長パラメー
タとも称する)によって、ストレージ・ユニットに関してオペレーティング・シ
ステムを用いてキューに置かれるストレージ要求の数が指定される。たとえば、
上で説明したシステムでは、シーク・リオーダ・キューが、ストレージ要求の物
理ディスク・アドレスに従う順序で、ストレージ・ユニットに対する要求をキュ
ーに置くのに使用される。そのようなキューの長さを、I/Oオーバーラップ・
パラメータによって構成することができる。このパラメータによって、シーク効
率とサービス時間可変性のトレード・オフを行う。たとえば、シーク・リオーダ
・キューを大きくすると、線形の順序でより多くの要求をストレージ・ユニット
に提示でき、したがって、ドライブ・シーク効率が高まる。しかし、要求が、デ
ッドライン順序付けおよび優先順位順序付けからリオーダされるので、長いシー
ク・リオーダ・キュー長によって、要求デッドラインに合致する可変性が増える
。このパラメータは、より大きいシーク・リオーダ・キュー・サイズが、要求デ
ッドラインを満たす際の可変性を考慮に入れるためにより大きいバッファ・リン
グ・サイズをもたらす可能性があるので、バッファ・リングのサイズを決定する
時に考慮することができる。したがって、I/Oオーバーラップ・パラメータを
用いて、ユーザが、バッファ用に使用可能にされなければならないメモリと、よ
り高いドライブ・シーク効率のトレード・オフを行えるようになる。
【0059】 一実施形態で、メディア・データがストレージ・ユニット上でアクセスされる
ブロック・サイズを、ブロック・サイズ・パラメータに従って構成することがで
きる。ブロック・サイズを構成することによって、低いストリーム速度でのバッ
ファ断片化に対するシーク償還のトレード・オフが生じる。大きいブロック・サ
イズは、より高いシーク効率を可能になるが、大きいブロック・サイズは、より
多くの断片化およびあるファイル・サイズに関するストレージ容量のより非効率
的な使用をもたらす可能性がある。
【0060】 図14に移ると、一実施形態のトラバーサル・リスト内のディスク・アクセス
要求をスケジューリングする方法の一実施形態を示す流れ図が示されている。デ
ィスク・アクセス要求をスケジューリングするために、適切なディスク・ヘッド
・トラバーサルを見つけなければならない。ステップ2001で、トラバーサル
・リストの検索を開始する。ディスク・ヘッド・トラバーサルを検索する時には
、検索されるトラバーサルがアクティブであるかどうかに関する判定を行わなけ
ればならない(ステップ2002)。検索されるトラバーサルがアクティブであ
る場合には、現在のディスク・ブロック・アドレス(すなわち、ディスク・ヘッ
ドの現在のアドレス)をディスク要求のアドレスと比較する。ディスク要求のア
ドレスは、ディスク・ヘッド・トラバーサルの指定された方向に関して、現在の
ディスク・ブロック・アドレスを超えなければならない。この要件は、ディスク
・ヘッド移動を最小にするのに役立つ可能性がある。というのは、これによって
、ディスク・ヘッドが、所与のトラバーサル中に方向を変える必要がなくなるか
らである。ディスク要求のアドレスが、現在のディスク・ブロック・アドレスを
超えない場合には、ステップ2001で検索処理をもう一度開始しなければなら
ない。
【0061】 ディスク・ブロック・アドレスが、ディスク・ヘッドのアドレスを超える場合
(ステップ2004)、または現在検索されているトラバーサルがアクティブで
ない場合(アクティブ=偽、ステップ2002)場合に、検索アルゴリズムは、
ディスク要求リスト内のディスク要求の数を調べる(ステップ2003)。検索
アルゴリズムを開始する前に、ディスク・ヘッド・トラバーサルごとのディスク
要求の最大数Nを指定する。ディスク・ヘッド・トラバーサルごとのディスク要
求の数を制限することによって、所与のディスク・アクセス要求に関する応答時
間を、効果的に有限にすることができる。これによって、比較的均一なディスク
・アクセス時間が可能になり、これは、ある応用分野(特にマルチメディア応用
分野)に必要になる可能性がある。Nの通常の値は、トラバーサルごとに8と1
0の間であるが、Nの値は、さまざまな実施形態に合うように変更することがで
きる。Nの大きい値は、通常は、ディスク・ヘッド移動のよりよい最適化をもた
らすが、ディスク・アクセス時間が、より均一でなくなる可能性がある。逆に、
Nの小さい値は、より均一なディスク・アクセス時間を可能にするが、ディスク
・ヘッド移動の最適化は劣る。
【0062】 現在検索されているトラバーサルのディスク要求の数が、指定された最大値N
に達した場合には、新しいトラバーサルを検索しなければならない。ステップ2
005で判定を行って、すべてのトラバーサルを検索したかどうかを検査する。
ディスク・アクセス要求に適切な位置を見つけずに、トラバーサル・リスト上の
すべてのディスク・ヘッド・トラバーサルを検索した場合には、2つの新しいデ
ィスク・ヘッド・トラバーサルを構築し、トラバーサル・リストの末尾に付加す
る(ステップ2006)。新たに構築されたディスク・ヘッド・トラバーサルの
それぞれのディスク要求リストは、空であり、したがって、後続の検索で、ディ
スク要求アクセスに適する位置を簡単に見つけることができる。システムのさま
ざまな実施形態によって、ディスク・ヘッド・トラバーサルの数が偶数に制限さ
れ、各後続のトラバーサルでディスク・ヘッド移動の方向が交番する。したがっ
て、トラバーサル・リストに付加される第1の新たに構築されるトラバーサルで
は、前のディスク・ヘッド・トラバーサルと反対のヘッド移動の向きを指定する
ことができる。付加される、第2の新たに構築されるトラバーサルでは、第1の
新たに構築されたトラバーサルと反対のディスク・ヘッド移動の向きを指定する
ことができる。2つの新たに構築されたトラバーサルの付加の後に、検索が、ス
テップ2001で再開される。
【0063】 適切なディスク・ヘッド・トラバーサルが見つかった後に、ディスク・アクセ
ス要求を、そのトラバーサルのディスク要求リストに入れることができる(ステ
ップ2007)。ディスク要求は、トラバーサル中にディスク・ヘッド移動を単
一の方向で継続できるようになるリスト上の位置に挿入することができる。これ
は、既にディスク要求リストに入れられているディスク・アクセスの一部の再配
置を必要とする場合がある。この後に、ディスク要求リストのディスク要求の数
を示す変数を増分する(ステップ2008)。すべてのディスク・ヘッド・トラ
バーサルのディスク要求の総数を示すもう1つの変数も、増分される(ステップ
2009)。
【0064】 ディスク要求のリオーダの異なる方法を使用する他の実施形態が、可能であり
、企図されている。たとえば、1つの代替実施形態では、すべてのディスク要求
の単一のリストを維持することができる。ディスク要求に対応するリストの各エ
ントリに、元のディスク要求の前に満たされるためにリオーダされた、後に到着
したディスク要求の数を含む変数を含めることができる。この変数は、最大値を
有することができ、その最大値に達した時に、それ以降のディスク要求のすべて
が、元のディスク要求の後にスケジューリングされるようになる。したがって、
元のディスク要求の前に満たされるためにリオーダすることができるディスク要
求の数が、制限され、これによって、元のディスク要求を満たすのに必要な時間
の量を効果的に有限にすることができる。
【0065】 図15に移ると、図14の方法を使用してディスク・アクセス要求をスケジュ
ーリングするのに使用することができるトラバーサル・リストの例が示されてい
る。図に示されているように、トラバーサル・リスト2500には、8つの異な
るディスク・ヘッド・トラバーサルに対応するエントリが含まれる。リストの各
エントリには、トラバーサル番号、ディスク要求リスト、アクティブ変数、方向
変数、および対応するディスク・ヘッド・トラバーサルのディスク要求の数を示
す変数が含まれる。図示の例では、各ディスク要求リストに、10個までのディ
スク要求を含めることができる(すなわち、N=10)。ディスク要求リストに
入れられる各ディスク要求には、ディスク・アドレスが含まれる。ディスク・ア
ドレスは、要求を満たすためにディスク・ヘッドがデータを読み取らなければな
らない、ディスク上の位置である。図示の例では、各エントリのアドレスが、1
6進フォーマットで表されている。一般に、アドレスは、特定の実施形態に適す
る何らかのフォーマットでディスク要求リストに入れることができる。
【0066】 各トラバーサル・エントリに、方向変数も含まれる。図示の実施形態では、方
向が、低→高(低位アドレスから高位アドレスへ)または高→低のいずれかとし
て示されている。したがって、ディスク要求リストに入れられるディスク要求は
、所与のディスク・ヘッド・トラバーサルについて方向変数の状態との一貫性を
有する形で順序付けられる。いくつかの場合に、ディスク要求リストにディスク
要求を入れるために、方向変数の状態によって指定される方向を維持するために
前に入れられた要求のリオーダが必要になる場合がある。たとえば、ディスク・
アドレス1A2Fに関するディスク要求が、リストの3番目のトラバーサルに入
れられる場合に、そのエントリをリストの4番目の位置に入れることができる。
前に4番目の位置にあったディスク要求(ディスク・アドレス1FA1)を、デ
ィスク要求リストの5番目の位置に移動することができ、したがって、このトラ
バーサルについて指定された低→高方向が維持される。
【0067】 各トラバーサルには、トラバーサルがアクティブであるかどうかを示すブール
変数も含まれる。トラバーサルがアクティブとみなされるのは、ディスク要求が
、トラバーサルに関連するディスク要求リストから実行される時である。アクテ
ィブである時には、アクティブ変数に真状態がセットされる。残りのトラバーサ
ルについて、アクティブ変数は、それに関連するディスク要求リストからのディ
スク要求をシステムが満たし始めるまで、偽状態にとどまる。
【0068】 トラバーサル・リストには、ディスクに関するディスク・ヘッドの現在位置を
示す、現在のディスク・ブロック・アドレスも含まれる。図示の例では、現在の
ディスク・ブロック・アドレスが、0110である。これは、リストの最初のト
ラバーサルの第1ディスク・アクセス要求に対応する。現在のディスク・ブロッ
ク・アドレスは、アクティブ・トラバーサルでディスク要求のスケジューリング
を試みる時に、スケジューリング・アルゴリズムによって使用することができる
。たとえば、低→高の指定された向きを有するアクティブ・トラバーサル内のデ
ィスク・アクセス要求のスケジューリングを試みる場合に、ディスク要求は、こ
の実施形態では現在のディスク・ブロック・アドレスより上位のアドレスに関す
るものでなければならない。ディスク要求のアドレスが、この要件を満たさない
場合には、そのディスク要求を、非アクティブ・トラバーサルにスケジューリン
グすることができる。
【0069】 図16は、図14の方法を使用してスケジューリングされたディスク・アクセ
ス要求を実行する方法を示す流れ図である。ステップ3000が、トラバーサル
・リスト内でスケジューリングされたすべてのディスク要求の総数の検査から開
始される。ディスク要求がスケジューリングされていない場合には、システムが
待ち状態に入り(ステップ3001)、少なくとも1つのディスク要求がスケジ
ューリングされるまでアイドルになる。ディスク要求リストの数が、0より大き
い場合には、システムは、トラバーサル・リストの最初のエントリのディスク要
求リストを検査する(ステップ3003)。ディスク要求リストが空である(ト
ラバーサルのすべてのディスク要求が実行済みであることを示す場合がある)場
合には、トラバーサルに対応するエントリを、トラバーサル・リストから除去し
、アクティブ変数に偽をセットする(ステップ3008)。次に、トラバーサル
のディスク要求リストのディスク要求の数を示す変数に、0をセットする(ステ
ップ3009)。最後に、トラバーサルを、トラバーサル・リストの末尾に付加
する(ステップ3010)。
【0070】 ステップ3003で実行される検査から、ディスク要求リストが空でないこと
が示される場合には、検査を行って、アクティブ変数が真であるかどうかを調べ
る(ステップ3004)。通常、ディスク要求が現在のトラバースについて実行
されていない場合に、アクティブ変数が偽になり、したがって、真をセットしな
ければならない(ステップ3005)。アクティブ変数が真の状態で、次のディ
スク要求を、ディスク・アクセスの実行に備えてディスク要求リストから除去す
る(ステップ3006)。ディスク要求リストからのディスク要求の除去の後に
、トラバーサル・リストのすべてのエントリのディスク要求の総数を示す変数を
減分する(ステップ3007)。最後に、ステップ3011で、ディスク・アク
セスを実行し、これによって、ディスク・アクセス要求を満たす。
【0071】 本発明を、特定の実施形態に関して説明してきたが、これらの実施形態が例示
であり、本発明の範囲がこれに制限されないことを理解されたい。説明した実施
形態に対する変形、修正、追加、および改良が可能である。これらの変形、修正
、追加、および改良は請求項に詳細に示される本発明の範囲に含めることができ
る。
【図面の簡単な説明】
【図1】 一定時間/可変データ、速度依存、データ配置/スケジューリング機構を示す
図である。
【図2】 ビデオ・サーバおよびストレージ・システムを示す図である。
【図3】 複数のビデオ・サーバおよびファイル・システムを使用する分散マルチメディ
ア・ファイル・システムの図である。
【図4】 ビデオ・ストレージ・マネージャの詳細な図である。
【図5】 2本同時連続メディア・ストリームに関するビデオ・ストレージ・マネージャ
の一定データ、可変時間、速度依存配置機構の一例を示す図である。
【図6】 バッファ・リングおよびデッドライン・キューを使用する、一定データ、可変
時間アクセス機構を示す流れ図である。
【図7】 保証速度ストリームと非速度保証使用可能速度アクセスの両方を提供するシス
テムを示す図である。
【図8】 要求がデッドライン・キューおよび優先順位キューからストレージ・システム
に移されるサイクルの例を示す図である。
【図9】 速度保証を有する複数連続メディア・ストリームのストレージ・アクセスと、
非保証速度要求に関するストレージ・アクセスを提供する方法を示す流れ図であ
る。
【図10】 図4および7に示された機構を組み合わせるビデオ・ストレージ・マネージャ
を示す図である。
【図11】 図10に示されたシーク・リオーダの動作を示す流れ図である。
【図12】 アドミッション制御に関するストレージ特性記述を示す流れ図である。
【図13】 さまざまなストリーム速度に関するバッファ・リングのバッファの最適な個数
の判定を示す流れ図である。
【図14】 一実施形態のトラバーサル・リスト内のディスク・アクセス要求をスケジュー
リングする方法を示す流れ図である。
【図15】 図4の方法を使用してディスク・アクセス要求をスケジューリングするのに使
用することができるトラバーサル・リストの一実施形態の例である。
【図16】 図14の方法を使用してスケジューリングされたディスク・アクセス要求を実
行する方法の一実施形態を示す流れ図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成14年6月3日(2002.6.3)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW Fターム(参考) 5B065 BA01 CA11 CA50 5C053 FA23 GB38 JA30 LA11 LA15 5D044 AB07 BC01 CC05 CC09 DE38 DE91 GK08 HL02

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 データを保管するディスクと、 前記データを前記ディスクから読み取るディスク・ヘッドと、 複数のディスク・アクセス要求を受け取るスケジューラとを含み、前記スケジ
    ューラが、ディスク・アクセス要求を前記ディスク・ヘッドの第1トラバーサル
    にスケジューリングし、総数N個の要求が前記第1トラバーサルにスケジューリ
    ングされたと判定されたことに応答して、残りのディスク・アクセス要求を前記
    ディスク・ヘッドの1つまたは複数の追加のトラバーサルにスケジューリングす
    るように構成されるディスク・ストレージ・システム。
  2. 【請求項2】 前記ディスク・ストレージ・システムが、ディスク・ヘッド
    ・トラバーサルのリストを維持するように構成され、前記リストが、複数のエン
    トリを含む請求項1に記載のディスク・ストレージ・システム。
  3. 【請求項3】 前記複数のエントリのそれぞれが、ディスク要求リストを含
    み、前記ディスク要求リストが、関連するディスク・ヘッド・トラバーサルに関
    するディスク・アクセス要求を含む請求項2に記載のディスク・ストレージ・シ
    ステム。
  4. 【請求項4】 前記複数のエントリのそれぞれが、前記ディスク要求リスト
    内のディスク・アクセス要求の数を示す変数を含む請求項3に記載のディスク・
    ストレージ・システム。
  5. 【請求項5】 前記複数のエントリのそれぞれが、関連するディスク・ヘッ
    ド・トラバーサルがアクティブであるかどうかを示すブール変数を含む請求項2
    に記載のディスク・ストレージ・システム。
  6. 【請求項6】 前記ブール変数が、前記関連するディスク・ヘッド・トラバ
    ーサルがアクティブである時に真である請求項5に記載のディスク・ストレージ
    ・システム。
  7. 【請求項7】 前記複数のエントリのそれぞれが、関連するディスク・ヘッ
    ド・トラバーサルの前記ディスク・ヘッドの移動の方向を示す変数を含む請求項
    2に記載のディスク・ストレージ・システム。
  8. 【請求項8】 前記ディスク・ヘッドの前記第1トラバーサルの移動の方向
    が、前記ディスク・ヘッドの第2トラバーサルの移動の方向と反対の方向であり
    、前記ディスク・ヘッドの前記第2トラバーサルが、前記ディスク・ヘッドの前
    記第1トラバーサルに直接に続く請求項7に記載のディスク・ストレージ・シス
    テム。
  9. 【請求項9】 ディスク・ヘッド・トラバーサルの前記リストが、偶数のエ
    ントリを含む請求項8に記載のディスク・ストレージ・システム。
  10. 【請求項10】 前記ディスク・ストレージ・システムが、前記ディスク・
    ヘッドのアドレスを示す変数を維持するように構成される請求項1に記載のディ
    スク・ストレージ・システム。
  11. 【請求項11】 データを保管するディスクおよびデータを読み取るディス
    ク・ヘッドを含むディスク・ストレージ・システム内で、ディスク・アクセス要
    求をスケジューリングする方法であって、 複数のディスク・アクセス要求を、前記ディスク・ヘッドの第1トラバーサル
    にスケジューリングすること、および 総数N個の要求が前記ディスク・ヘッドの前記第1トラバーサルにスケジュー
    リングされたと判定されたことに応答して、残りのディスク・アクセス要求を前
    記ディスク・ヘッドの1つまたは複数の追加のトラバーサルにスケジューリング
    すること を含む方法。
  12. 【請求項12】 前記ディスク・ヘッドのトラバーサル中の実行のためにス
    ケジューリングされたディスク・アクセス要求のリストを維持することをさらに
    含む請求項11に記載の方法。
  13. 【請求項13】 前記方法が、前記第1トラバーサルがアクティブであるか
    どうかを判定することを含む請求項12に記載の方法。
  14. 【請求項14】 前記方法が、前記ディスク・ヘッドの現在のアドレスを判
    定することを含む請求項13に記載の方法。
  15. 【請求項15】 前記方法が、前記ディスク・ヘッド・トラバーサルに対応
    する複数のエントリを含むトラバーサル・リストを維持することを含む請求項1
    2に記載の方法。
  16. 【請求項16】 前記複数のエントリのそれぞれが、対応するディスク・ヘ
    ッド・トラバーサルがアクティブであるかどうかを示すブール変数を含む請求項
    15に記載の方法。
  17. 【請求項17】 前記ブール変数が、対応するディスク・ヘッド・トラバー
    サルがアクティブである時に真である請求項16に記載の方法。
  18. 【請求項18】 前記複数のエントリのそれぞれが、対応するディスク・ヘ
    ッド・トラバーサル中のディスク・ヘッド移動の向きを示す変数を含む請求項1
    5に記載の方法。
  19. 【請求項19】 第2トラバーサルのディスク・ヘッド移動の向きが、前記
    第1ディスク・ヘッド・トラバーサルのディスク・ヘッド移動の向きと反対であ
    り、前記第2ディスク・トラバーサルが、前記第1ディスク・ヘッド・トラバー
    サルに直接に続く請求項18に記載の方法。
  20. 【請求項20】 前記トラバーサル・リストが、偶数のエントリを含む請求
    項19に記載の方法。
  21. 【請求項21】 適切なディスク・ヘッド・トラバーサルがディスク・アク
    セス要求について見つからない場合に、2つの新しいディスク・ヘッド・トラバ
    ーサルをスケジューリングすることをさらに含み、前記2つの新しいヘッド・ト
    ラバーサルが、前記トラバーサル・リストの末尾に付加される請求項15に記載
    の方法。
  22. 【請求項22】 前記トラバーサル・リストの前記複数のエントリのすべて
    に関するディスク・アクセス要求の総数を示す変数が維持される請求項14に記
    載の方法。
  23. 【請求項23】 データを保管するディスクと、 前記データを前記ディスクから読み取るディスク・ヘッドと、 複数のエントリを含むトラバーサル・リストとを含み、前記エントリのそれぞ
    れが、前記ディスク・ヘッドのトラバーサルに関するディスク要求のリストを含
    み、ディスク要求の前記リストが、N個までのディスク・アクセス要求を含むこ
    とができるディスク・ストレージ・システム。
  24. 【請求項24】 前記複数のエントリのそれぞれが、前記ディスク・ヘッド
    のトラバーサル中の前記ディスク・ヘッドの移動の向きを示す変数を含む請求項
    23に記載のディスク・ストレージ・システム。
  25. 【請求項25】 前記トラバーサル・リストが、第1トラバーサルおよび第
    2トラバーサルに対応するエントリを含み、前記第1トラバーサルが、前記第2
    トラバーサルと反対の移動の向きを有し、前記第2トラバーサルが、前記第1ト
    ラバーサルに直接に続く請求項24に記載のディスク・ストレージ・システム。
  26. 【請求項26】 前記トラバーサル・リストが、偶数のエントリを含む請求
    項25に記載のディスク・ストレージ・システム。
  27. 【請求項27】 前記複数のエントリのそれぞれが、トラバーサルがアクテ
    ィブであるかどうかを示すブール変数と、ディスク要求の前記リスト内のディス
    ク要求の数を示す変数とを含む請求項23に記載のディスク・ストレージ・シス
    テム。
  28. 【請求項28】 ディスクからデータを読み取るディスク・ヘッドを含むデ
    ィスク・ストレージ・システム内でディスク・アクセス要求をスケジューリング
    する方法であって、 前記ディスク・ヘッドのトラバーサル中の実行のためにスケジューリングされ
    たディスク・アクセス要求のリストを維持すること、 前記ディスク・ヘッドの第1トラバーサルに関する複数のディスク・アクセス
    要求スケジュールが、最大数(N)に達したかどうかを前記リストから判定する
    こと、および 前記第1トラバーサルに関してスケジューリングされたディスク要求の前記数
    が、前記最大数(N)に達したと判定されたことに応答して、追加ディスク・ア
    クセス要求を追加のトラバーサルにスケジューリングすること を含む方法。
  29. 【請求項29】 前記方法が、前記第1トラバーサルがアクティブであるか
    どうかを判定するために、ブール変数を読み取ることを含む請求項28に記載の
    方法。
  30. 【請求項30】 前記方法が、前記第1トラバーサルがアクティブであると
    判定されたことに応答して、前記ディスク・ヘッドのアドレスを判定することを
    含む請求項29に記載の方法。
  31. 【請求項31】 トラバーサルのリストが維持され、前記トラバーサルのリ
    ストが、前記ディスク・ヘッドのトラバーサルに対応する複数のエントリを含む
    請求項28に記載の方法。
  32. 【請求項32】 前記複数のエントリのそれぞれが、対応するディスク・ヘ
    ッド・トラバーサルの移動の向きを示す変数を含む請求項31に記載の方法。
  33. 【請求項33】 前記第1トラバーサルの移動の向きが、第2トラバーサル
    の移動の向きと反対であり、前記第2トラバーサルが、前記第1トラバーサルに
    直接に続く請求項32に記載の方法。
JP2001563524A 2000-02-28 2001-02-28 有限要求リオーダを用いるディスク・スケジューリング・システム Pending JP2003525486A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/514,485 2000-02-28
US09/514,485 US6496899B1 (en) 2000-02-28 2000-02-28 Disk scheduling system with bounded request reordering
PCT/US2001/007091 WO2001065835A2 (en) 2000-02-28 2001-02-28 A disk scheduling system with recordering of a bounded number of requests

Publications (1)

Publication Number Publication Date
JP2003525486A true JP2003525486A (ja) 2003-08-26

Family

ID=24047365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001563524A Pending JP2003525486A (ja) 2000-02-28 2001-02-28 有限要求リオーダを用いるディスク・スケジューリング・システム

Country Status (8)

Country Link
US (2) US6496899B1 (ja)
EP (1) EP1262062B1 (ja)
JP (1) JP2003525486A (ja)
KR (1) KR20030001367A (ja)
AT (1) ATE341154T1 (ja)
AU (1) AU2001245457A1 (ja)
DE (1) DE60123396T2 (ja)
WO (1) WO2001065835A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011165105A (ja) * 2010-02-15 2011-08-25 Nec Corp 入出力制御装置、入出力制御方法
JP2016119020A (ja) * 2014-12-24 2016-06-30 富士通株式会社 ストレージ装置、ストレージ装置の制御方法およびストレージ装置制御プログラム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305610B1 (en) * 2000-04-06 2007-12-04 Google, Inc. Distributed crawling of hyperlinked documents
IL142504A0 (en) * 2000-04-16 2002-03-10 Hughes Electronics Corp An approach to minimize worst-case queueing delay for a switching communication system with transmission constraints
US6928470B1 (en) * 2000-07-31 2005-08-09 Western Digital Ventures, Inc. Transferring scheduling data from a plurality of disk storage devices to a network switch before transferring data associated with scheduled requests between the network switch and a plurality of host initiators
US6871011B1 (en) * 2000-09-28 2005-03-22 Matsushita Electric Industrial Co., Ltd. Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority
US6643654B1 (en) * 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7310345B2 (en) * 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US6883062B2 (en) * 2002-02-03 2005-04-19 Aleksandar Susnjar High-speed disk drive system
US6732196B2 (en) * 2002-02-26 2004-05-04 International Business Machines Corporation Allowing slots belonging to a second slot category to receive I/O access requests belonging to a first and a second access request categories in a round robin fashion
WO2004053676A2 (en) * 2002-12-11 2004-06-24 Koninklijke Philips Electronics N.V. Methods and apparatus for improving teh breathing of disk scheduling alogorithms
JP2004272604A (ja) * 2003-03-10 2004-09-30 Matsushita Electric Ind Co Ltd データの転送制御方法
US7409442B2 (en) * 2003-08-25 2008-08-05 International Business Machines Corporation Method for communicating control messages between a first device and a second device
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7418531B2 (en) * 2005-05-04 2008-08-26 Pillar Data Systems, Inc. Quality of service for data storage volumes
US20060288184A1 (en) * 2005-06-17 2006-12-21 Seagate Technology Llc Admission control in data storage devices
US20070083482A1 (en) * 2005-10-08 2007-04-12 Unmesh Rathi Multiple quality of service file system
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR100927190B1 (ko) * 2007-10-12 2009-11-18 한국전자통신연구원 디스크 스케줄링 방법 및 장치
EP2133783A1 (en) * 2008-06-09 2009-12-16 Deutsche Thomson OHG Data storage server, stored set of instructions, and method of controlling data access
WO2010141016A1 (en) 2009-06-03 2010-12-09 Hewlett-Packard Development Company, L.P. Scheduling realtime information storage system access requests
US8732394B2 (en) * 2009-12-24 2014-05-20 International Business Machines Corporation Advanced disk drive power management based on maximum system throughput
US8219716B2 (en) * 2010-02-08 2012-07-10 Red Hat, Inc. Methods for accounting seek time of disk accesses
EP2663920B1 (en) * 2011-01-11 2020-05-27 Hewlett-Packard Development Company, L.P. Concurrent request scheduling
CN109154883A (zh) * 2017-03-22 2019-01-04 波利伍德有限责任公司 驱动级内部服务质量
FR3082029B1 (fr) * 2018-06-05 2020-07-10 Thales Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644786A (en) 1990-11-08 1997-07-01 At&T Global Information Solutions Company Method for scheduling the execution of disk I/O operations
EP0716370A3 (en) 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
TW332284B (en) 1995-10-30 1998-05-21 Sony Co Ltd Method and apparatus for controlling access to a recording disk
US6263411B1 (en) * 1996-09-20 2001-07-17 Matsushita Electric Industrial Co., Ltd. Video server scheduling for simultaneous read-write requests
US5926649A (en) 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
AU9377298A (en) 1997-09-24 1999-04-12 Sony Pictures Entertainment Inc. Optimizing scheduler for read/write operations in a disk file system
US6023720A (en) * 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011165105A (ja) * 2010-02-15 2011-08-25 Nec Corp 入出力制御装置、入出力制御方法
JP2016119020A (ja) * 2014-12-24 2016-06-30 富士通株式会社 ストレージ装置、ストレージ装置の制御方法およびストレージ装置制御プログラム

Also Published As

Publication number Publication date
KR20030001367A (ko) 2003-01-06
WO2001065835A3 (en) 2002-03-14
EP1262062B1 (en) 2006-09-27
DE60123396D1 (de) 2006-11-09
AU2001245457A1 (en) 2001-09-12
DE60123396T2 (de) 2007-08-09
ATE341154T1 (de) 2006-10-15
US20030079080A1 (en) 2003-04-24
WO2001065835A2 (en) 2001-09-07
US6496899B1 (en) 2002-12-17
EP1262062A2 (en) 2002-12-04

Similar Documents

Publication Publication Date Title
JP2003525486A (ja) 有限要求リオーダを用いるディスク・スケジューリング・システム
EP1224527B1 (en) Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6385673B1 (en) System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US6438630B1 (en) Scheduling storage accesses for multiple continuous media streams
US5928327A (en) System and process for delivering digital data on demand
US7103595B2 (en) Streaming server
Yu et al. Grouped sweeping scheduling for DASD-based multimedia storage management
US5854887A (en) System for the management of multiple time-critical data streams
US6138221A (en) Method and system for supplying streams of data having identical maximum consumption rate in a storage medium
JP3617089B2 (ja) 映像蓄積配送装置及び映像蓄積配送システム
JP3338451B2 (ja) ビデオ・オン・デマンドのためのスタッガード・ストリームサポート
JP3308814B2 (ja) ビデオサーバシステムに於いて平均的なシーク時間及びバンド幅を達成するための方法及びシステム
US5815662A (en) Predictive memory caching for media-on-demand systems
AU2008270802B2 (en) Digital data management using shared memory pool
Ghandeharizadeh et al. Design and implementation of scalable continuous media servers
Wu et al. Scheduling for interactive operations in parallel video servers
US7139873B1 (en) System and method for caching data streams on a storage media
Halvorsen et al. Storage system support for continuous-media applications. Part 1. Requirements and single-disk issues