JP4398470B2 - 仮想ファイルシステム - Google Patents

仮想ファイルシステム Download PDF

Info

Publication number
JP4398470B2
JP4398470B2 JP2006542744A JP2006542744A JP4398470B2 JP 4398470 B2 JP4398470 B2 JP 4398470B2 JP 2006542744 A JP2006542744 A JP 2006542744A JP 2006542744 A JP2006542744 A JP 2006542744A JP 4398470 B2 JP4398470 B2 JP 4398470B2
Authority
JP
Japan
Prior art keywords
sub
chunk
virtual file
disk drive
chunks
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.)
Expired - Fee Related
Application number
JP2006542744A
Other languages
English (en)
Other versions
JP2007513429A (ja
Inventor
ローズ,スティーヴン,ダブリュ
ローズ,ニール,エイ
アブドゥル,コリナ,ジー
Original Assignee
インタラクティヴ コンテント エンジンズ,エルエルシー
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34681498&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4398470(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by インタラクティヴ コンテント エンジンズ,エルエルシー filed Critical インタラクティヴ コンテント エンジンズ,エルエルシー
Publication of JP2007513429A publication Critical patent/JP2007513429A/ja
Application granted granted Critical
Publication of JP4398470B2 publication Critical patent/JP4398470B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21815Source of audio or video content, e.g. local disk arrays comprising local storage units
    • H04N21/2182Source of audio or video content, e.g. local disk arrays comprising local storage units involving memory arrays, e.g. RAID 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21815Source of audio or video content, e.g. local disk arrays comprising local storage units
    • H04N21/21825Source of audio or video content, e.g. local disk arrays comprising local storage units involving removable storage units, e.g. tertiary storage such as magnetic tapes or optical disks
    • 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
    • H04N21/2318Data placement on disk arrays using striping
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers

Description

本発明は、対話的なブロードバンドサーバーシステムに、より詳細には記憶装置のアレイにまたがって分散されているデータの情報を管理し、維持するための仮想ファイルシステムに関する。
ストリーミングメディアコンテンツの記憶および配送のためのソリューションを提供することが望まれている。スケーラビリティーについての初期の目標は、ストリームあたり4メガビット毎秒(Mbps)での100ないし100万の同時の(simultaneous)個別的なアイソクロナス(isochronous)・コンテンツストリームである。ただし、異なるデータレートも考えられている。利用可能な全通信帯域幅は利用可能な最大のバックプレーンスイッチによって制約される。現在最大のスイッチはテラビット毎秒の範囲、すなわち20万同時出力ストリーム程度である。出力ストリームの数は一般にストリームあたりのビットレートに反比例する。
コンテンツ記憶装置の最も単純なモデルは、単一のネットワークコネクタを有する単一のプロセッサに接続された単一のディスクドライブである。データはディスクから読み出され、メモリに入れられ、パケットとしてネットワークを通じて各ユーザーに配布される。ウェブページなどのような伝統的なデータは非同期的に配送できる。つまり、ランダムな時間的遅延をもったランダムな量のデータがある。低ボリューム、低解像度のビデオはウェブサーバーから配送できる。ビデオおよびオーディオのようなリアルタイムのメディアコンテンツはアイソクロナス伝送、すなわち配送時間を保証された伝送を必要とする。このシナリオでは、通信帯域幅の制約はディスクドライブに存在する。ディスクはアームの動きや回転による遅延と競合しなければならない。システムが任意の所与の時点においてドライブからプロセッサへの連続的なコンテンツの同時ストリームを6つしかサポートできないとすると、7番目のユーザーの要求は先の6人のユーザーの一人がコンテンツストリームを放棄するのを待たねばならない。この設計の長所は単純さである。短所は、当該設計中で唯一の機械的装置であるディスクがその速さでしかデータのアクセス・転送ができないということである。
一つまたは複数の別のドライブを追加したり、ドライブアクセスをインターリーブしたりすることによって改良することもできる。また、重複コンテンツを各ドライブに保存して冗長性およびパフォーマンスを稼ぐこともできる。これは前進ではあるが、それでもいくつかの問題がある。ローカルな単数または複数のドライブ上には一定量のコンテンツしか置くことができない。ディスクドライブ、CPUおよびメモリはそれぞれ破綻につながりかねない単一障害点である。このシステムは、ディスクコントローラが扱うことのできるドライブ数までしか拡大できない。ユニット数がたくさんあったとしても、タイトルの配布に問題がある。実世界では、誰もが最新の映画を見たいと思う。大まかにいって、コンテンツ要求の80%はほんの20%のタイトルについてのものである。機械の通信帯域幅のすべてを一つのタイトルにつぎ込むわけにはいかない。それではその機械にしか保存されていない人気の劣るタイトルへのアクセスが遮断されてしまう。結果として、「高需要」タイトルはほとんど、あるいはすべての機械に登録されなければならなくなる。端的にいえば、ユーザーが古い映画を見たいとしたら、そのユーザーは不運なことになりうる――たとえシステムに登録されていたとしても。大きなライブラリでは、先の比はこの例で用いた80/20の割合よりずっと大きくなりうる。
システムがデータ処理で使われる標準的な構内ネットワーク(LAN: Local Area Network)に基づいているとしたら、他の不十分な点もあるだろう。現代のイーサネット(登録商標)ベースのTCP/IPシステムは配送が保証される驚くべきものであるが、パケットの衝突や部分的に紛失したパケットの再送信によって引き起こされる時間的な代価ならびにいっさいを機能させるために必要とされる管理を伴っている。コンテンツストリームのセットが適時に利用可能である保証はない。また、各ユーザーが一つのスイッチポートを消費し、各コンテンツサーバーが一つのスイッチポートを消費するので、スイッチポート数はサーバー数の2倍でなければならず、全体的なオンライン通信帯域幅を制限することになる。
本発明の恩恵、特徴および利点は以下の記述および付属の図面に関してよりよく理解されるであろう。
以下の記述は、特定の用途と要件のコンテキストにおいて与えられる本発明を通常の当業者が作成し、利用できるようにするために提示される。ただし、好ましい実施形態に対するさまざまな修正が当業者には明白であろうし、ここに定義される一般的な原理は他の実施形態にも適用されうる。したがって、本発明はここに示され、説明される特定の実施形態に限定されることを意図したのではなく、ここに開示される原理および新規の特徴と一致する最も広範な範囲を与えられることを意図したものである。
ここに記載されるアーキテクチャはさまざまな性能の個々の構成要素を受け入れられるので、導入が最初のシステム購入時点に限定されるのを避けることができる。利便性(commodity)構成要素の使用によって、近年の十分に実証済みの技術、単一ソースの回避およびストリームあたりのコスト最小化を保証する。個別の構成要素の障害は耐えられる。多くの場合には、ユーザーの観点から目につく動作の変化はない。その他の場合には、短い「自己修復」サイクルがある。多くの場合には多重障害にも耐えうる。また、すべてではないまでもほとんどの場合には、システムはすぐに対処してやらなくても復旧できるので、「無人」(lights-out)運転にとっては理想的となる。
コンテンツ記憶割り当ておよび内部通信帯域幅は、最長未使用時間(LRU: Least Recently Used)アルゴリズムによって自動的にやりくりされる。このアルゴリズムは、RAMキャッシュおよびハードディスクアレイキャッシュにある内容が現在の需要に対して適切であり、バックプレーンスイッチ通信帯域幅が最も効率的な仕方で使用されることを保証する。システム内の通信帯域幅が申し込み過多になることは、よしあるとしてもまれなので、パケットの伝送を破棄または遅延することは必要でない。本アーキテクチャは、各構成要素の複合的な通信帯域幅を最大限に利用する機能を提供し、よって保証が満たされることができ、当該ネットワークはプライベートでありかつ完全なコントロール下にあり、予期しないピーク需要の状況であってもどのデータ経路も過負荷にならない。どんなビットレートのストリームでも受け入れることができるが、典型的なストリームは1ないし20Mbpsの範囲に留まると期待される。非同期コンテンツは利用可能な通信帯域幅に基づいて受け入れられる。アプリケーションが要求すればその目的のために通信帯域幅をリザーブしてもよい。ファイルはいかなるサイズでもよく、記憶の不効率が最小限となる。
図1は、本発明の例示的な実施形態に基づいて実装された対話的コンテンツエンジン(ICE: Interactive Content Engine)100の一部分の単純化されたブロック図である。本発明の十分にして完全な理解のために適用できない部分は明快のため示されていない。ICE100は、適切な多重ポート(またはマルチポート)ギガビットイーサネット(登録商標)(GbE)スイッチ101を、いくつかのストレージ・プロセッサ・ノード(SPN: Storage Processor Node)103に結合された複数のイーサネット(登録商標)ポートを有するバックプレーンファブリックとして含んでいる。各SPN103は簡略化したサーバーであり、2つのギガビットイーサネット(登録商標)ポート、一つまたは複数のプロセッサ107、メモリ109(たとえばランダムアクセスメモリ(RAM))および適切な数(たとえば4ないし8)のディスクドライブ111を含んでいる。各SPN103上の第一のGbポート105は全二重動作(各SPN/ポート接続における同時の送信および受信)のためにスイッチ101の対応するポートに接続されており、ICE100内でデータを移動させるのに使う。もう一方のGbポート(図示せず)はコンテンツ出力を下流のユーザー(図示せず)に配送する。
各SPN103はそのローカルディスクドライブへの、および5つのSPNからなる各グループ内の他の4つのSPNの他のディスクドライブへの高速アクセスを有する。スイッチ101は単なるSPN103間の通信デバイスではなく、ICE100のためのバックプレーンである。図解のためにSPN103は5つしか示されていないが、ICE100は典型的にはより多くのサーバーを含んでいることは理解されている。各SPN103はコンテンツの記憶装置、処理器および送信機の役をする。図示した構成では、各SPN103は、市販の構成要素を使って構成され、通常の意味におけるコンピュータではない。標準的なオペレーティングシステムが考えられているが、そのような割り込み駆動型のオペレーティングシステムは無用なボトルネックを生じることもある。
各タイトル(たとえばビデオ、映画または他のメディアコンテンツ)はどの単一のディスクドライブ111にも全体としては保存されていない。そうではなく、インターリーブ・アクセスによるスピード上の恩恵を実現するため、各タイトルのデータは分割されてICE100内のいくつかのディスクドライブにまたがって保存されている。単一のタイトルの内容は複数のSPN103の複数のディスクドライブにまたがっている。タイトルコンテンツの短い「時間フレーム」がラウンドロビン式に各SPN103内の各ドライブから収集される。この仕方では、物理的な負荷は拡散されてSCSIおよびIDEのドライブ数限界を免れ、ある形のフェイルセーフ動作が得られ、タイトルの大きな集合が組織・管理される。
図示した特定の構成では、各コンテンツタイトルは固定サイズのばらばらなチャンク(かたまり)(典型的にはチャンク1つあたり2メガバイト(MB)程度)に分割される。各チャンクはラウンドロビン式に異なるSPN103のセットに保存される。各チャンクは4つのサブチャンクに分割され、パリティを表す5番目のサブチャンクが生成される。各サブチャンクは異なるSPN103のディスクドライブ上に保存される。図示して説明される構成では、約512キロバイト(KB)(ここで「K」は1024である)のサブチャンクのサイズはディスクドライブ111のそれぞれのデータの名目的な単位に一致する。SPN103は5つずつグループ化され、各グループすなわちSPNセットがタイトルのデータの一つのチャンクを保存する。図示したように、前記5つのSPN103は1〜4、そして「パリティ」とラベル付けされ、これらが集団的にチャンク113を、それぞれSPN1、2、3、4および「パリティ」に保存される5つの別個のサブチャンク113a、113b、113c,113d、113eとして保存する。サブチャンク113a〜113eは各異なるSPNのための異なるドライブ上に(たとえばSPN1/ドライブ1、SPN2/ドライブ2、SPN3/ドライブ3など)分散式に保存されて示されているが、他のいかなる可能な組み合わせで保存されてもよい(たとえばSPN1/ドライブ1、SPN2/ドライブ1、SPN3/ドライブ3など)。サブチャンク1〜4はデータを含み、サブチャンク「パリティ」はデータサブチャンクのためのパリティ情報を含む。各SPNセットのサイズは典型的には5であるが任意であり、たとえば2つのSPNから10のSPNまでといったその他いかなる好適な数であっても全く同じようにできる。2つのSPNはその記憶の50%を冗長性のために使用することになり、10個ならそれは10%である。5は記憶の効率と障害の確率との間の妥協点である。
このようにしてコンテンツを分散させることによって、少なくとも二つの目標が達成される。まず、単一のタイトルを視聴できるユーザーの数が単一のSPNセットによってサービスを受けられる数に限定されず、その限界はSPNセットすべてを合わせた通信帯域幅によって決まるようになる。したがって、各コンテンツタイトルのコピーは一つしか必要とされない。その代償は、毎秒立ち上げることのできる所与のタイトルのための新規視聴者の数の制限であるが、これは冗長記憶による無駄なスペースおよび管理上のオーバーヘッドに比べればはるかに取るに足りない制約である。第二の目標とは、ICE100の全体的な信頼性の向上である。単一ドライブの障害はパリティドライブを使ってのその内容のリアルタイムの再生成によって隠蔽される。独立したディスクの冗長なアレイ(RAID: redundant array of independent disks)と同様である。SPN103の障害は、それが、それぞれは動作し続けるいくつかのRAIDセットのうちのそれぞれから一つのドライブを含んでいるという事実によって隠蔽される。障害のあったSPNに接続していたユーザーは非常にすばやく他のSPNで走っている影のプロセスによって引き継がれる。ディスクドライブの、あるいはあるSPN全体の障害の場合には、障害のあった装備を修理または交換するよう運用者に通知される。紛失したサブチャンクがユーザープロセスによって再構築されると、それはそれを提供したはずだったSPNに送り返され、そこでRAM内にキャッシュされる(あたかもそのローカルディスクから読まれた場合のように)。これにより、人気のあるタイトルについて同じ再構築をすることにおいて他のユーザープロセスの時間を無駄にすることが回避される。その人気がサブチャンクがキャッシュされ続けるのに十分なほどでありさえすれば、その後の要求はRAMから充填されるからである。
各「ユーザー」SPN103で走っているユーザープロセス(UP: user process)の目標は、自分のディスクからのサブチャンクと他のユーザーSPNからの対応する4つのサブチャンクとを収集して、配送のためにビデオコンテンツのチャンクを組み立てることである。ユーザーSPNは一つまたは複数の管理用の(management)MGMT SPNからは区別される。後者は同じように構成されるが、後述するように異なる機能を実行する。信頼性およびパフォーマンスを向上させるために、冗長なMGMT SPNのペアが考えられる。各UPによって実行される収集および組み立て機能は、各ユーザーSPN103上の多くのユーザーのために何度もなされる。結果として、ユーザーSPN103どうしの間にはかなりの量のデータトラフィックが行き交うことになる。そうでなければパケット衝突検出および再試行をもつ典型的なイーサネット(登録商標)プロトコルは圧倒されるだろう。典型的なプロトコルはランダムな送信のために設計されており、それらのイベントの間の不活発な時間をあてにしている。よって、このアプローチは使用されない。ICE100では、衝突は全二重の、フルスイッチ式(fully switched)アーキテクチャを使うことによって、そして通信帯域幅を注意深く管理することによって回避される。ほとんどの通信は同期的になされる。のちにさらに説明するように、スイッチ101そのものは同期的な仕方で管理され、伝送の調整がされる。どのSPN103がいつ送信できるかが決定されているので、ポートが所与の期間の間にさばける以上のデータで圧倒されることはない。実際、データはまずユーザーSPN103のメモリ109において収集され、次いでその転送が同期的に管理される。調和の一環として、ユーザーSPN103どうしの間に状態信号がある。エンドユーザーに向かう実際のコンテンツとは異なり、ユーザーSPNユニットどうしの間の信号のためのデータサイズはきわめて小さい。
各サブチャンクの長さ(約512Kバイト;ここで「K」は1024)は、もしそうではなくサブチャンクの送信がランダムまたは非同期的に行われることが許されるとしたら、GbEスイッチ101において利用可能ないかなるバッファリングをも圧倒してしまうだろう。これだけの情報を送信するための期間は約4ミリ秒(ms)であり、複数のポートが単一のポートに同時に送信しようとしないことを保証することが望まれる。したがって、のちにさらに説明するように、スイッチ101は、すべてのポートが最大負荷条件のもとでフルに利用されて同期的に動作するように管理される。
ファイルシステム(あるいは仮想ファイルシステム(virtual file system)すなわちVFS)を管理する冗長ディレクトリプロセスは、ユーザーによる要求があったときに所与のコンテンツタイトルがどこに保存されているかを報告することを受け持っている。それはまた、新たなタイトルをロードすべき時に必要になる記憶スペースを割り当てることも受け持っている。すべての割り当ては一体の諸チャンクにおいてなされ、その各チャンクは5つのサブチャンクからなる。各ディスクドライブ上のスペースは当該ドライブ内では論理ブロックアドレス(LBA: Logical Block Address)によって管理される。一つのサブチャンクはあるディスクドライブ上で連続的なセクタまたはLBAアドレスに保存される。ICE100における各ディスクドライブの容量は、その最大LBAアドレスをサブチャンクあたりのセクタ数で割ったもので表される。
各タイトルマップまたは「ディレクトリ項目」は、そのタイトルの諸チャンクがどこに保存されているか、そしてより特定的には各チャンクの各サブチャンクがどこに位置しているかを示すリストを含んでいる。図示した実施例では、リスト中で一つのサブチャンクを表す各項目には、特定のユーザーSPN103を同定するSPNID、同定されたユーザーSPN103の特定のディスクドライブ111を同定するディスクドライブ番号(DD#)およびサブチャンクポインタ(または論理ブロックアドレスすなわちLBA)が64ビット値としてパックされて含まれている。各ディレクトリ項目は、公称4Mbpsでの約30分のコンテンツのためのサブチャンクリストを含む。これは450チャンク、すなわち2250サブチャンクに等しい。各ディレクトリ項目は補助データを含めて約20KBである。SPN上で実行されているUPがディレクトリ項目を要求すると、その項目全体が送られ、対応するユーザーのためにローカルに保存される。たとえSPNが1000ユーザーをサポートしていたとしても、ローカルなリストまたはディレクトリ項目のために消費されるメモリは20MBでしかない。
ICE100はあるユーザーに利用可能な全タイトルのデータベースを維持している。このリストはローカルな光ディスクライブラリ、リアルタイムネットワークプログラミングおよび使用許諾および転送の手配がなされているところではリモート位置にあるタイトルを含む。このデータベースは各タイトルについての全メタデータを含む。それには管理情報(使用許諾期間、ビットレート、解像度など)とともにユーザーにとって関心のある情報(プロデューサー、監督、キャスト、スタッフ、原作者など)も含まれる。ユーザーが選択をすると、仮想ファイルシステム(VFS)209(図2)のディレクトリに問い合わせがされて、そのタイトルがすでにディスクアレイにロードされているかどうかが判別される。まだであれば、ロードプロセス(図示せず)がそのコンテンツ作品について開始され、必要ならいつ視聴のために利用可能になるかについてUPに通知される。たいていの場合、遅延は光ディスク取得ロボット(図示せず)の機械的遅延、すなわち約30秒を超えない。
光ディスク(図示せず)に保存されている情報は全メタデータ(ディスクが最初にライブラリにロードされたときにデータベースに読み込まれる)とともに、当該タイトルを表す圧縮されたデジタルビデオおよびオーディオならびにそれらのデータストリームについて事前に知得できる全情報を含む。たとえば、クロック値およびタイムスタンプのようなデータストリーム中のあらゆる有意な情報へのポインタを含んでいる。それはすでにサブチャンクに分割されており、パリティサブチャンクも事前計算されてディスク上に保存されている。一般に、ロード時間と処理オーバーヘッドを節約するために事前になしうることは何でも光ディスク上に含められる。
リソース管理システムに含まれるものに、ディスパッチャー(図示せず)がある。UPはこのディスパッチャーを参照してそのストリームについての開始時刻を受け取る(通例要求から数ミリ秒以内に)。ディスパッチャーはシステムへの負荷が均一のままであり、遅延が最小化され、いかなる時点でもICE100内で要求される通信帯域幅が利用可能な値を超えることのないことを保証する。ユーザーが停止、一時停止、早送り、巻き戻しあるいはその他ストリームの流れを中断する動作を要求したときには常に、その通信帯域幅は割り当てを解除され、新たに要求される何らかのサービス(たとえば早送りストリーム)のために新たな割り当てが行われる。
図2は、本発明のある実施形態に基づいて実装された同期データ転送システム200を図解する、ICE100の一部分の論理ブロック図である。スイッチ101は、いくつかの例示的なSPN103に結合して示されている。SPN103には第一のユーザーSPN201、第二のユーザーSPN203および管理(MGMT)SPN205が含まれる。先に注記したように、多くのSPN103がスイッチ101に結合されており、本発明を解説するために二つのユーザーSPN201、203のみが示されており、先に述べたようにどのSPN103として物理的に実装されてもよい。MGMT SPN205は物理的実装は他のどのSPN103とも同様であるが、一般に特定のユーザー機能よりむしろ管理機能を実行する。SPN201は各ユーザーSPN103のある種の機能を図解し、SPN203は他の機能を図解する。しかし、各ユーザーSPN103が同様の機能を実行するよう構成され、SPN201について述べた機能(およびプロセス)はSPN203で与えることもでき、その逆も言えることは理解されるものである。
先に述べたように、スイッチ101はポートあたり1Gbpsで動作し、よって各サブチャンク(約512KB)があるSPNから別のSPNに渡されるのに約4msかかる。各ユーザーSPN103は一つまたは複数のユーザープロセス(UP)を実行するが、そのそれぞれが下流のユーザーをサポートするためのものである。あるタイトルの新しいチャンクがユーザー出力バッファ(図示せず)を再充填するために必要とされるとき、リストからの次の5つのサブチャンクが、それらのサブチャンクを保存している他のユーザーSPNに対して要求される。多くのUPが複数サブチャンクを実質同時に要求する可能性があるため、サブチャンク伝送期間はほうっておいたら単一ポートのためのGbEスイッチでさえほとんどどんなものでもバッファリング容量を圧倒してしまうだろう。ましてや全体スイッチの場合はそうである。これは図示したスイッチ101について成り立つ。もしサブチャンク伝送が管理されていなければ、それは可能性として各UPのための5つのサブチャンクすべてが同時に返されて出力ポートの通信帯域幅を圧倒する結果につながりうる。ICE100のSPNの伝送のタイミングを緊密にし、最も枢要なデータが最初に無傷で伝送されるようにすることが望まれる。
SPN201は、対応する下流のユーザーにサービスを提供するためにUP207を実行しているものとして示されている。ユーザーがタイトル(たとえば映画)を要求し、その要求はUP207に転送される。UP207はタイトル要求(TR: title request)をMGMT SPN205に位置しているVFS209(のちにさらに説明する)に送信する。VFS209はディレクトリ項目(DE: directory entry)をUP207に返し、該UP207は211で示されるDEをローカルに保存する。DE211は当該タイトルの各サブチャンク(SC1、SC2など)の位置を示すリストを含んでおり、各項目には、特定のユーザーSPN103を同定するSPNID、同定されたSPN103の特定のディスクドライブ111を同定するディスクドライブ番号(DD#)および同定されたディスクドライブ上のサブチャンクの特定の位置を与えるアドレスすなわちLBAが含まれている。SPN201は、DE211内の各サブチャンクについて同時に一つずつタイムスタンプ付き読み出し要求(TSRR: time stamped read request)を開始する。ICE100では、要求はすぐに直接なされる。換言すれば、SPN201はサブチャンクの要求を行うことを、そのデータを保存している特定のユーザーSPN103に対してすぐに直接に開始する。図示した構成では、たとえローカルに保存されていても同じようにして要求がなされる。つまり、要求されたサブチャンクがSPN201のローカルディスクドライブ上にあったとしても、リモートにあるかのようにスイッチ201を通じて要求を送出するのである。ネットワークは、あるSPNからその同じSPNに要求が送られようとしていることを認識するよう構成されていてもよい位置である。すべての場合を同じように扱うほうが簡単である。特に、要求が実際にローカルであることが比較的ありそうもないような大きな施設ではそうである。
要求はすぐに直接に送出されるが、サブチャンクはそれぞれ完全に管理された仕方で返される。各TSRRは当該SPNIDを使っている特定のユーザーSPNに対するものであり、対象となるユーザーSPNがそのデータを取得して返すためのDD#およびLBAを含んでいる。TSRRはさらに、要求されたサブチャンクが適正に適切な要求者に返されることを保証し、要求者がそのサブチャンクを識別することを可能にするのに十分な他のいかなる識別情報をも含みうる(たとえば宛先SPN上で実行されている複数UPの間の区別をするUP識別子、各データチャンクについてのサブチャンクの間の区別をするサブチャンク識別子など)。各TSRRはもともとの要求がなされた特定の時点を同定するタイムスタンプ(TS: timestamp)をも含む。TSは同期伝送のために要求の優先度を同定する。ここで、優先度は時間に基づいており、早い要求ほど高い優先度を得る。要求されたタイトルの返されたサブチャンクは、受け取られると、さらなる処理およびそのタイトルを要求したユーザーへの配送のためにローカルなタイトルメモリ213に保存される。
ユーザーSPN203は、TSRRを受け取るため、そして要求されたサブチャンクを返すために各ユーザーSPN(たとえば201、203)上で実行されている、転送プロセス(TP: transfer process)215および支援機能の動作を図解している。TP215はストレージ・プロセス(図示せず)を含むか、あるいは他の仕方でストレージ・プロセスとのインターフェースをもつ。ストレージ・プロセスは、保存されているサブチャンクの要求およびアクセスのためのSPN203上のローカルなディスクドライブ111のインターフェースとなるものである。ストレージ・プロセスは状態機械などのような、いかなる所望の仕方で実装されてもよく、TP215とローカルディスクドライブ111との間でインターフェースされる別個のプロセスであってもよい。これは当業者には既知のとおりである。図示したように、TP215は他のユーザーSPN103上で実行されている一つまたは複数のTSRRを一つまたは複数のUPから受け取り、各要求をローカルメモリ109内の読み取り要求待ち行列(RRQ: read request queue)217に保存する。RRQ217はサブチャンクSCA、SCBなどのための要求のリストを保存する。要求されたサブチャンクを保存しているディスクドライブは、対応する要求をRRQ217から除去し、物理的な順番にソートし、それからそれぞれの読み出しをソートされた順番で実行する。各ディスク上のサブチャンクへのアクセスはグループで管理される。各グループは「エレベーター・シーク」動作に従って物理的順序にソートされている(低位から高位へ一回の掃引、次に高位から低位への掃引などといった具合にディスクヘッドがシーケンス上次のサブチャンクを読むために一時停止しながらディスク表面を行き来する)。うまくいった読み込みの要求は成功読み込み待ち行列(SRQ: successful read queue)218にTS順にソートされて保存される。失敗した読み込みの要求(もしあれば)は失敗読み込み待ち行列(FRQ: failed read queue)220に保存され、失敗した情報がネットワーク管理システム(図示せず)に転送され、該ネットワーク管理システムがエラーおよび適切な是正動作を決定する。図示した構成では待ち行列217、218および220が実際のサブチャンクではなく要求情報を保存していることを注意しておく。
読み込みに成功した各サブチャンクは最近要求されたサブチャンクのLRUキャッシュのためにリザーブされているメモリに入れられる。取得された各サブチャンクについて、TP215は対応するメッセージ(MSG: message)を生成するが、これはそのサブチャンクのTS、そのサブチャンクのソース(SRC: source)(たとえばそのサブチャンクが送信されてくるもとのSPNIDおよびその物理メモリ位置ならびにその他任意の識別情報)ならびにそのサブチャンクを送信すべき先の宛先(DST: destination)SPN(たとえばSPN201)を含む。図示したように、SRQ218はサブチャンクSCA、SCBなどに対してそれぞれメッセージMSGA、MSGBなどを含んでいる。要求されたサブチャンクが読み出されてキャッシュされたのち、TP215は対応するMSGを、MGMT SPN205で実行されている同期スイッチマネージャ(SSM: synchronized switch manager)219に送る。
SSM219は諸ユーザーSPNのTPから複数MSGを受け取って優先順位付けし、最終的には、SRQ218内のMSGのうちの一つをメッセージ識別子(MSGID: message identifier)などを利用して同定する送信要求(TXR: transmit request)をTP215に送る。SSM219がSRQ218内のサブチャンクを同定するMSGIDをもつTXRをTP215に送ると、その要求リスト項目はSRQ218からネットワーク転送プロセス(NTP: network transfer process)221に移され、そこで当該サブチャンクを宛先のユーザーSPNに転送するのに使われるパケットが構築される(ここで、「移す」とはその要求をSRQ218からは除去することを表している)。サブチャンク要求リスト項目がSRQ218から除去される順序は、リストがタイムスタンプ順になっているにもかかわらず、必ずしもその順ではない。適正な順序を決定するのはSSM219だけだからである。SSM219は、送るべきサブチャンクを少なくとも一つもつ他のすべてのSPN103に対して一つのTXRを送る。ただし、サブチャンクを送るべき先がすでに同等以上の優先度のサブチャンクを受け取るようスケジュールされているSPN103上のUPである場合は別であり、これについてはのちにさらに説明する。SSM219は次いで全ユーザーSPN103に対して単一の送信コマンド(TX CMD: transmit command)をブロードキャストする。SSM219によってブロードキャストされたTX CMDコマンドに反応して、TP215はNTP221に、そのサブチャンクをユーザーSPN103の要求UPに送信するよう命令する。このようにして、SSM219からTXRを受け取った各SPN103は同時に別の要求元ユーザーSPN103に送信を行う。
MGMT SPN205上のVFS209はタイトルのリストおよびICE100内でのその位置を管理する。典型的なコンピュータシステムでは、ディレクトリ(データの情報)は通例当該データが存在するのと同じディスク上にある。ところがICE100では、VFS209は中央に位置していて分散データを管理する。各タイトルのデータがディスクアレイ中の複数のディスクにまたがって分散しており、前記複数のディスク自身も複数のユーザーSPN103にまたがって分散しているからである。先に述べたように、ユーザーSPN103上のディスクドライブ111は主としてタイトルのサブチャンクを保存する。VFS209は、先に述べたようにSPNID、DD#およびLBAを通じて各サブチャンクの位置を決めるための識別子を含んでいる。VFS209はまた、光記憶装置のようなICE100の外部にある他の部分のための識別子をも含んでいる。ユーザーがあるタイトルを要求すると、そのユーザー要求を受け付けたユーザーSPN103上で実行されているUPにはディレクトリ情報(ID/アドレス)の完全なセットが利用可能となる。そこからは、すべきことはサブチャンクをディスクドライブからメモリ(バッファ)へと転送し、該サブチャンクをスイッチ101を通じて要求元ユーザーSPN103に移すことである。要求元ユーザーSPN103はバッファ中で完全なチャンクを組み立て、それをユーザーに配送し、終了するまで繰り返す。
SSM219は、「準備完了」メッセージ(RDY MSG: ready message)リスト223中にタイムスタンプ順の準備完了メッセージのリストを作成する。ユーザーSPN103上でTPからメッセージが受け取られる順番は必ずしもタイムスタンプ順ではないが、RDY MSGリスト223中ではTS順に整理されている。次の一組の転送の直前に、SSM219は最も早いタイムスタンプから始まってRDY MSGリスト223をスキャンする。SSM219はまずRDY MSGリスト223内で最も早いTSを同定し、対応するTXRメッセージを生成して、対応するサブチャンクを保存しているユーザーSPN103のTP215に送り、それによりそのサブチャンクのペンディングの転送を開始させる。SSM219は後続の各サブチャンクについてTS順にリスト223のスキャンを続け、すでにペンディングのサブチャンク転送に関わっているのでないソースと宛先をもつ各サブチャンクについてTXRメッセージを生成する。全ユーザーSPN103にブロードキャストされる一つ一つのTX CMDに対しては、各ユーザーSPN103が送信するサブチャンクは同時に一つのみであり、受信するサブチャンクは同時に一つのみである。ただし、この両者は同時にできる。たとえば、SPN#2へのペンディングのサブチャンク転送をスケジュールするためにTXRメッセージがSPN#10のTPに送られた場合、SPN#10は同時に別のサブチャンクを送ることはできない。しかし、SPN#10は同時に別のSPNからサブチャンクを受信することはできる。さらに、SPN#2はSPN#10から前記サブチャンクを受信しながら同時に別のサブチャンクを受信することはできないが、SPN#2は同時に別のSPNに送信をすることはできる。これはスイッチ101の各ポートの全二重性のためである。
SSM219はユーザーSPN103が全部ふさがってしまうまで、あるいはRDY MSGリスト223の終わりに達するかするまでRDY MSGリスト223のスキャンを続ける。RDY MSGリスト223中のTXRメッセージに対応する各項目は最終的にはRDY MSGリスト223から除去される(TXRメッセージが送られたとき、あるいは転送が完了したあとに)。前の周期の最後の転送が終わったとき、SSM219は全ユーザーSPN103に次のラウンドの送信を開始するよう合図するTX CMDパケットをブロードキャストする。各転送は、図示した特定の構成については約4ないし5msの周期内で同期的に起こる。各転送ラウンドの間、追加的なMSGがSSM219に送られ、次の送信ラウンドをスケジュールするために新しいTXRメッセージが諸ユーザーSPN103に送出され、そのプロセスは繰り返される。TX CMDから次のTX CMDまでの間の周期は近似的には、一つのサブチャンクのバイトすべてを送信するために必要な、パケットオーバーヘッドおよびパケット間遅延を含めた期間に、そのサブチャンクの送信中にスイッチ内に発生したかもしれないすべてのキャッシュをクリアするための期間(典型的には60マイクロ秒(μs))と、個々のSPNによるTX CMDの認識における遅延によって引き起こされるあらゆるジッターのための期間(典型的には100μs未満)とを加えたものに等しい。
ある実施形態では、重複した、すなわちミラーされたMGMT SPN(図示せず)が主MGMT SPN205をミラーしており、SSM219、VFS209およびディスパッチャーがそれぞれ一対の冗長な専用MGMT SPNの上で重複される。ある実施形態では、同期TX CMDブロードキャストがMGMT SPN205の健全性を示す鼓動としてはたらく。鼓動とは、副次的なMGMT SPNに対する万事良好という信号である。鼓動がないと、たとえば5msなど所定の時間期間内のいっさいの管理機能を副次的MGMT SPNが引き継ぐのである。
図3は、本発明のある実施形態に基づく、VFS209および補助機能のさらなる詳細を図解する、ICE100の一部分のブロック図である。図示したように、VFS209は仮想ファイルマネージャ(VFM: virtual file manager)301およびVFSインターフェースマネージャ(VFSIM: VFS interface manager)302を含んでいる。VFSIM302はVFM301とICE100の残りとの間の通信コンジットであり、システムモニタ(SM: system monitor)303、ライブラリローダ(LL: library loader)305およびユーザーマスターモニタ(UMM: user master monitor)307を含んでいる。VFSIM302は要求および指令をSM303から受け取り、サービスをLL305およびUMM307に提供する。VFM301のために意図された要求および指令は待ち行列に入れられ、取得されるまで保持される。VFM301からの応答はバッファリングされ、要求者に返される。VFSIM302はそれ自身およびVFM301によって開始されたバックグラウンドタスクを管理する。これらのタスクには、自動コンテンツ再ストライピング、記憶装置検証/修復ならびに容量の拡大および縮小が含まれる。VFSIM302はハードウェア追加/除去通知をモニタリングし、必要なときに自動的に検証/修復を開始できるようデバイスのシリアル番号を覚えている。ここでの議論はVFS209を扱っているが、特に断りのない限りVSM301およびVFSIM302の一方または両方にも関わりうる。
VFS209は、タイトルコンテンツ記憶(複数の記憶装置またはディスクドライブにまたがって分散している)を管理して、全体としてのシステムパフォーマンスを最大化し、ハードウェア障害からの回復を容易にすることを受け持っている。VFS209は、幅広い範囲のハードウェア構成をサポートするようできるだけ柔軟なものとして設計される。ICE100の各サイト展開が特定の利用プロファイルを満たすよう、ハードウェア投資を微調整できるようにするのである。サイトは、全体としてのシステムが動作状態のままで新しいSPN103を追加することによって容量を増すことができる。同様に、VFS209はまた、動作状態のままSPNやシリアルATA(SATA: serial ATA)ドライブのような個々の記憶装置をスワッピングしてサービスに含めたり外したりする機能をも提供する。ICE100内のSPN103の数を制限するのは、スイッチ101を実装する最大の同時(contemporary)バックプレーンスイッチの通信帯域幅のみである(たとえば現在のところSPN数は約500)。各SPN103は記憶装置をいくつ持っていてもよく(SPNあたりの記憶装置の数は通例所与のサイトについては一定である)、各記憶装置は異なる記憶容量であってもよい(そのサイトについて指定される最低値以上とする)。現在のところ、典型的なサイトでは、SPN103一つあたり1ないし8のハードディスクドライブを持つが、設計は十分柔軟になっており、新たに利用可能になったタイプのデバイスを受け入れることもできる。さらに、ある個別の物理的なSPN103がそのサイトについての最低容量の2倍または3倍の容量をもつ場合には、それを2つまたは3つの論理SPNとしてVFS209に追加することもできる(このことは、最低容量のいかなるきりのいい倍数についてもいえる)。VFS209は各サイトに、それぞれの追加の時点における利用可能な最高のハードウェアを使って、必要に応じてハードウェアを年月を通じて徐々にアップグレードする機能を許容するよう設計されている。
VFS209はコンテンツをインテリジェントに管理する。ピーク負荷をなめらかにさばく備えを有し、時間が決定的ではないタスクを先送りでき、増大したサイト容量をフルに活用するため自動的にコンテンツを再分配し(再ストライピング処理)、需要の先を見越して必要とされる前にコンテンツを再構築するために障害回復を優先させ、以前に使用された記憶装置からコンテンツをサルベージするための堅牢な機能を有する。図示した実施形態では、VFM301はVFSIM302とのみ排他的に通信し、該VFSIM302は今度はSM303によって管理され、LL305およびUMM307にサービスを提供する。電源投入時には、VFS209はシステムハードウェア構成について何も知らない。各ユーザーSPN103がブートして自らを宣言するにつれて、SM303はそのSPNについて関連する詳細(グループ帰属、ディスク数、各ディスクの記憶容量など)を集め、それをVFSIM302に登録し、VFSIM302がVFM301に通知する。どのSPNもコンテンツを保存できるものの、全部が保存する必要があるわけではない。VFS209は、予備として保持しておく空のディスクを持った「ホット・スペア」をいくつでも許容する。それらは障害回復、予定されたメンテナンスその他の目的において役割を引き受けられるよう待機する。
サイト立ち上げに際して、RAIDグループ内のSPN数について決定がなされる。コンテンツはSPNの各グループに均等に拡散されるので、サイトにはSPNはRAIDグループのきざみで追加しなければならない。唯一の例外は、何個でも個々に追加してよいスペアに指定されるSPNについてと、冗長管理SPNについてのものである。ほとんどのSPN103はシステム初期化の間に追加されるが、システムの寿命の間のどの時点でも、新しいSPNのグループを追加することができる。新しいSPNのグループを追加することによってサイトがその容量を増すと、追加されたハードウェアを最大限に活用するため、既存のコンテンツはバックグラウンドで自動的に再ストライピングされる(再ストライピング処理についてはのちにより詳細に説明する)。ICE100の縮小はまず再ストライピングし(バックグラウンドでの再ストライピング処理)、それから割り当て解除されたデバイスを除去することによって達成される。
VFS209では、各SPN103に割り当てる論理IDは完全に任意でよいが、便宜上、通例はSPNの物理的位置に対応するようにする。ひとたび追加されると、所与のSPNはVFS209内において論理的な実体として削除されるまで存在する。空いているいかなるスペアSPNでも別のSPNのための代替とすることができ、それが行われるときには同じ論理アドレスが割り当てられる。こうして、物理的なSPNは随意にスワッピングでき(のちにより詳細に説明する)、サービスを中断することなく定期的なメンテナンスを実行する機能が提供される。SPNの一つの完全なグループがVFS209に登録されるとすぐ、コンテンツはそのグループ上に保存されはじめることができる。しかし、システム全体にコンテンツの一様な分配を許容するため、コンテンツ記憶のために意図されたすべてのSPNグループが登録されてから最初のタイトルのロードを行うのがよい。
前述したように、タイトルコンテンツの各チャンクは異なるグループに保存され、コンテンツはラウンドロビン式に全グループにまたがって拡散される。より特定的には、各チャンクはサブチャンクに分割され(サブチャンクの数はそのサイトのグループサイズに等しく、サブチャンクの一つはデータサブチャンクから導出されるパリティである)、各サブチャンクは所与のグループの異なるSPNに保存される。たとえば、ディスクドライブ5個のRAIDサイズを想定すると、SPNグループサイズは5である(そしてコンテンツの1チャンクあたり5つのサブチャンクがある)。各SPNが4つのドライブを含むとすると、全部で4つのRAIDグループがある。第一のグループは各SPNのドライブ1からなり、第二のグループは各SPNのドライブ2からなる、といった具合である。
ICE100の例示的な構成として、図4に示した表1で例解されているように、第一のタイトル「タイトル1」について3つのグループGP1〜GP3だけからなる場合を考える。ここで、各グループはGPと書かれ、各チャンクはCと書かれ、各チャンクの各サブチャンクはSCと書かれている。図4の表1はGP1からGP3と番号付けされた3つのグループ、C1〜C12と番号付けされた12のチャンク、SC 1、SC 2、SC 3、SC 4、SC Pと番号付けされた各チャンクの5つのサブチャンクを示している。ここで、最後の「P」サブチャンクがパリティサブチャンクを表している。タイトル1の第一のチャンクC1は5つのサブチャンクSC 1〜4、SC P(5番目のサブチャンクはパリティである)として記録されている。第一のグループGP1のSPN1から5のドライブ1にそれぞれ一つである。タイトル1の次のチャンクC2は5つのサブチャンクとして記録されている(やはりSC 1〜4、SC P)。第二のグループGP2のSPN1から5のドライブ1にそれぞれ一つである。同様に、第三のチャンクC3は第三のグループGP3の各SPN1〜5のドライブ1に記録される。第四のチャンクC4は第一のグループGP1の各SPN1〜5のドライブ2に記録される。表1は、第一のタイトル「タイトル1」がどのように保存されるかを示している。あるSPN全体(表1の1行)を失えば、4つのRAIDグループのそれぞれにおいて一つのドライブを失う結果となる。すべてのRAIDグループが内容の生成を続け、パリティ再構築を通じてコンテンツは失われずにすむ。追加的なタイトルは、直前のタイトルが始まった次のグループおよびドライブで始まる。よって、第二のタイトル「タイトル2」(図示せず)はGP2のドライブ2で始まる(第二のチャンクはGP3のドライブ2の上にあり、第三のチャンクはグループ1のドライブ3の上にある、等々)。タイトルはこのように開始時刻の遅延を最小化するように分配される。各タイトルは、グループ3の各SPN上のドライブ4からグループ1の各SPNのドライブ1に戻って再循環する渦巻き状にICE100を巡る。
図5の表2は表1の構成を使ってどのように4つのタイトルが保存されるかを示している。説明のため、第一のタイトルT1は24のチャンクT1C1〜T1C24からなり、第二のタイトルT2は10のチャンクT2C1〜T2C10を持ち、第三のタイトルT3は9つのチャンクT3C1〜T3C9を持ち、第四のタイトルT4は12のチャンクT4C1〜T4C12を持つ。簡単のため、3つのSPNグループのそれぞれ(SPNグループ1、SPNグループ2、SPNグループ3)は1行にまとめ、各タイトルの最初のチャンクに下線を付けてボールド表示している。典型的なタイトルは4Mbpsで1350チャンクからなり、450チャンクずつのVFSディレクトリ項目をなす。これは約30分のコンテンツである。100ギガバイト(GB)のディスクドライブを使って、各RAIDグループは20万チャンク以上を保持する(グループ内の各ドライブが20万サブチャンク以上を保持するということである)。あるRAIDグループの各ドライブ上でのサブチャンク割り当ては、典型的には各ドライブ上の同一点においてである。
図示した構成では、VFS209の各ディレクトリ項目(DE)は当該タイトルについてのさまざまなメタデータおよびチャンク位置指定子の配列からなる。チャンク位置指定子データ構造は8バイトからなる:グループ同定のために2バイト、ディスク同定のために2バイト、そしてディスク割り当てブロックの同定のために4バイトである。ここで、各ブロックは1つのサブチャンクを保持する。図6は、表2に掲げた4つのタイトルT1〜T4(タイトル1〜タイトル4として示されている)についての最初の12個の位置指定子の内容を示している。タイトル1については示されていないより上位の12個の位置指定子があるが、これらは各ディスク上でブロック2を占有する。各ディスクの論理アドレスを該ディスクが接続されているSPNのMAC(media access control[メディアアクセス制御])IDにマッピングする探索表が、VFSIM302上および各SPN103上で複製されている。あるサブチャンクに対応するLBAは単にブロック番号にサブチャンクあたりのセクタ数を乗算することで得られる。図7は、ICE100についてサブチャンクが異なるRAIDグループ、SPN(番号1〜5)およびディスクドライブ(番号1〜4)上に保存される仕方のさらなる詳細を図解する表4を示している。たとえば、タイトルT1のチャンクC01のサブチャンクSaはRAIDグループ1のSPN1のディスク1のブロック0に保存され、タイトル1のチャンクC01の次のサブチャンクSbはRAIDグループ1のSPN2のディスク1のブロック0に保存される、といった具合である。
コンテンツ長の変動は各SPN103上に保存されるコンテンツの量の予測不能な小さな変動を生じる。これらの例示的なタイトルについては、変動は誇張されているが、それぞれ1000以上のチャンクからなる何百ものタイトルについては、SPNどうしの間の相違は1%未満に留まると期待される。個々の記憶装置はサイト最低値以上のいかなる容量をも取りうるが、サイト最低値を超過した分をアイソクロナス・コンテンツの保存に使わないほうがいいことがある。したがって、サイト最低値はできるだけ大きく保つべきであり、典型的にはそのサイトの最小容量の記憶装置の容量に等しく設定されるのがよい。サイト最低値はいつでも増減させることができる。たとえば、最小容量の記憶装置がより大きな記憶装置で置き換えられるときにはいつでもより大きな値に増加させられるのがよい。
ICE100の所与の構成がどこに導入され、どのように使用されるかに依存して、VFS209は、時折新しいタイトルのための記憶割り当ての要求を受けるだけのこともあるし、あるいは30分ごとにほとんど同時の何百という要求を受けることもある。記憶に対する予期される需要を迅速かつ効率的に満たすため、VFS209は事前に割り当てられたディレクトリ項目のプールを維持している。プールのサイズはそのサイトの利用プロファイルに基づいて事前に設定され、該プールのサイズはパフォーマンス調整のため、あるいはサイトプロファイルの変化に反応するためにいつでも変更できる。VFS209が記憶割り当て要求を受け取ると、まず事前割り当てのディレクトリ項目のプールから要求を満たそうと試みる。利用可能であれば、事前割り当てのディレクトリ項目がすぐ要求者に返される。プールが枯渇していれば、新たなディレクトリ項目が以下に述べるようにオンデマンドで作成される。ある割り当て要求が同じタイトルについての複数のディレクトリ項目を要求している場合、最初の項目だけがすぐ返される。そのタイトルの残りの項目の割り当ては後刻行われることができ、VFS209によって維持されるバックグラウンドプロセスのリストにタスクが追加される。事前割り当て項目のプールへの補給もバックグラウンドタスクである。
事前割り当てまたはオンデマンドでディレクトリ項目を作成するためには、VFS209はまず要求されている容量が利用可能である(現在使用されていないなど)かどうかを判定する。大丈夫であれば、要求は容易に満たされる。そうでなければ、VFS209は要求を満たすために、最長未使用の(LRU: least recently used)タイトルを一つまたは複数必要に応じて割り当て解除する。このようにしてあるタイトルが割り当て解除されると、VFS209はSM303および諸SPN103にそのできごとを通知する。割り当て要求は最初はVFS209が要求者(または呼び出し者)に最初のディレクトリ項目を返したときに満たされる。タイトルが複数の項目をもつ場合、その後の項目は、必要とされるときに提供される。呼び出し者はどの項目を所望しているかを指定できる。同様に、既存のタイトルが拡大される場合、最初の拡大された項目はすぐ返され、その他の項目は必要とされるときに明示的に要求されることができる。各項目は30分相当までのコンテンツを保存できるサブチャンク位置指定子の表を含んでいる。こうして、95分の映画は4つの項目を必要とし、4番目の項目の大半は未使用となる。より正確には、4番目の項目表の大半は未使用であるが、消費されるディスクスペースは5分のコンテンツのために実際に必要とされる分だけなので実際のディスクドライブ上のスペースが無駄にされることはない。内部的には、VFS209は各記憶装置上の利用可能なサブチャンク位置をメモリ効率のよいデータ構造を使って追跡している。
未使用の記憶スペースの再生は、最終有効チャンク(LVC: Last Valid Chunk)ポインタを各項目に組み込むことによって可能となる。上記の例では、4番目の項目は要求者に与えられるとき、最初は30分相当の記憶をリザーブされて有している。実際にコンテンツを保存しているコンポーネントがそのタスクを完了したとき、それはLVCポインタを更新してVFS209に通知する。VFS209は次いであらゆる未使用のブロックを解放し、ほかでの使用のために利用可能にする。長さは一定しないので、各タイトルはそれが終わるところで終わる。何らかの任意の境界に記憶を揃えるといった何らかの理由のためにディスクスペースを無駄にする必要はない。よって、VFS209はディスクにめいっぱいに詰め込み、当該デバイス上で次の空いているブロックが何であろうと利用する。最初は簡単のため小さなファイル(たとえば単一ブロック内に完全に収まるようなシステムファイルなど)は他のあらゆるコンテンツと同じ仕方で管理される。ゆくゆくは一つのチャンクが多数の小さなファイルを保存するためのディスクドライブででもあるかのように扱うマイクロVFS機能を追加することもできる。
SM303はまた、VFS209にいつでもタイトルを割り当て解除するよう指令してよい。たとえばタイトルの使用許諾期間が切れたとき、あるいは他のいかなる理由によってでもよい。命令された割り当て解除は、そのタイトルが現在使用中であるかもしれないという事実によって複雑になる。そのような場合、ある実施形態では、割り当て解除はそのタイトルにアクセスしているすべてのユーザーがそのタイトルのすべての使用を終了したことを合図するまで完了されない。VFS209は各UMM307によって現在使用されているすべての項目を追跡し、またバックグラウンドプロセスによって使用されている項目も追跡する。遅延期間の間、割り当て解除のフラグが立てられたタイトルへは新規ユーザーのアクセスは認められない。
新しいSPNグループの追加または削除があると、既存のコンテンツはリソース利用をできるだけ一様にするために再分配される、すなわち再ストライピング処理の間に「再ストライピング」される。VFS209は必要なときは常に自動的に再ストライピングを行う。話を簡単にするため、新しい項目と古い項目はいかなる重なりもなく、新旧両方(下記参照)に共通の記憶ブロックはないものとする。ひとたび新しい再ストライピングされたコピーが完了すると(進行速度が利用可能な通信帯域幅によって制限されるため完了時間は予測できない)、新規ユーザーがそれにアクセスを開始でき、古いコピーは単に標準的な手続きを使って割り当て解除される。再ストライピング処理の間、ほとんどのサブチャンクはもとのSPNから別のSPNにコピーされるが、一部は同じSPN内の別の位置にコピーされる。同じSPN上に残るサブチャンクの割合は、以前のSPN数を「m」、新しいSPN数を「n」としてm/(m*n)で表される。SPN数が100から110にアップグレードするサイトについては、11000のうち100のサブチャンクが同一SPN内でコピーされる。
リアルタイム動作は、コンテンツが純粋に一時的なものである場合とコンテンツが保存されようとしている場合を含む。一時的なリアルタイムバッファが必要とされることがもしあった場合、ある実施形態では、ICE100は30分のディレクトリ項目を一つ、巡回バッファとして使用し、必要とされなくなったらその項目は他のすべての項目と同じ標準的な手続きを使って割り当て解除される。リアルタイムコンテンツが保存される場合、必要とされる追加的な30分項目がいくつか要求され、VFS209は必要に応じてLRUタイトルを割り当て解除する。他のすべてのタイトルと同様、生コンテンツは、LVCポインタによって指示される点まで再生のためにすぐ利用可能であり、LVCポインタは保存が起こり続ける間、定期的に更新される。場合によっては、「生コンテンツ」は、その最初の放映時より後にそれを要求したい加入者に利用可能にされるのに先立ち、単数または複数の個別タイトル(specific title(s))に分割されてもよい。準備ができたら、その編集されたコンテンツが他のどのタイトルとも同じようにVFS209に追加され、生コンテンツは削除できる。
時には何らかの目的のために動作状態のSPN103またはディスクドライブをオフラインで携行することが望まれることがある。悪影響なしにこれを実現するためには、ICE100は、ホット・スペアの一つをコンテンツ受信者として使って当該デバイスをコピーする、あるいはより正確には「クローン」するよう構成される。コピープロセスが完了すると(ここでもまた、利用可能な通信帯域幅によって制限されているので時間は予測できない)、そのクローンは前者のデバイスの素性を帯び、VFSIM302および諸SPN103が通知を受けて動作はなめらかに継続される。前記デバイスが物理的に切断されてICE100に再接続ない限り(すなわち、プラグを外されて移動されない限り)、VFM301の参加は必要とされない。クローニングプロセスと素性入れ替わりはVFM301には不可視だからである(MAC IDの代わりにインターネットプロトコル(IP)アドレスが使用されているので、SPNはVFM301に対して論理的な実体であって物理的な実体ではない)。ディスクまたはSPNがICE100に接続されると、それはデータ完全性を保証するために自動的に検証/修復プロセス(後述)を経る。
いかなる所与のコンテンツストリームの観点からも、記憶装置の損失またはSPN全体の損失は同じに見える。具体的には、nチャンクごとに一つのサブチャンクが欠落する(ここで、nはシステム中のSPN103の数によって決まる)。ICE100はこの種の損失をパリティ再構築によって補償するよう設計され、それによりハードウェア交換のために十分な時間が許される。修復、検証およびクローンは個別のディスクに関するプロセスである。SPNの修復、検証またはクローンを行うためには、当該SPN内の各ディスクについてのプロセスを開始するだけのことである。UPがあるチャンクのサブチャンクに対する要求を送って、いずれかのサブチャンクが所定の時間期間内に返されないとき、UPは取得されたサブチャンクを使って欠落したサブチャンクを再構築する。ある実施形態では、障害の理由に関わりなく(すなわち、SPNもしくは該SPN上のドライブの障害のためだろうが、あるいは単にネットワークの遅延のためだろうが)、再構築されたサブチャンクはそのサブチャンクのソースであったはずのユーザーSPNに送られる。欠落サブチャンクのソースであったはずのユーザーSPNが前記再構築されたサブチャンクを受信するよう利用可能でない場合には、そのサブチャンクは単に送信の間に失われる。前記SPNが前記再構築されたサブチャンクを受信するよう利用可能であれば(たとえばSPNがオンラインに戻った、あるいは障害がそのSPNのあるディスクドライブに限定されていたなど)、そのSPNはそのサブチャンクを、あたかもローカルなディスクドライブから読み込まれたかのようにメモリ中にキャッシュする。
ホットスワッピングおよびパリティ再構築は、各SPN103が各デバイス上の各ブロックが有効であるかどうかについての認識を有することを必要とする。最初、SPNがオンラインになったときには有効なブロックは持たない。SPNは、サブチャンクを受け取って保存する(あるいはすでにそこにあるものを検証した)時に、そのブロックを有効としてマークする。SPNは無効とマークされたブロック中に保存されているサブチャンクへの要求を受け取った時、そのサブチャンクを受け取ろうとする要求をもって返答する。欠落したサブチャンクがパリティ再構築を通じてICE100中のほかのところで再生されていれば、それは(利用可能な通信帯域幅を使って)SPNに送り返されて保存され、そのブロックは有効とマークされる。そのサブチャンクに対する要求がないということは、そのSPNはいまだ機能していなく、再構築されたサブチャンクを送ってもらう必要がないことを示している。このプロトコルを使って、最小限の追加的なオーバーヘッドをもって交換デバイスに内容が加えられる。その間、高需要のためにまだ対処されていないチャンクを捕らえるため、簡単なバックグラウンドでの検証/修復プロセスが、すでに有効とマークされたブロックは飛ばして最初から最後までの再構築を行う。
ある種の状況のもとでは、VFSIM302が以前に有効なコンテンツをもつとわかっていたディスクの再接続を認識したときには、SNP103は、無効とマークされたサブチャンクの送信禁止をオーバーライドするよう指令される。保留中のサブチャンクがそのチェックサム試験に合格した場合、そのサブチャンクは使うことができ、(そしてソースSPNはそれを有効とマークでき、)それによりパリティ再構築の無用なオーバーヘッドを避けることができる。あるSPNが要求されたサブチャンクを供給しなかったことは、前記サブチャンクの要求がなかったことと併せて、SPN障害を示す。そのような障害をモニタリングすることによって、ICE100は自動的にシステム運用者に通知を行い、無人運転の間の回復手続きを開始する。
VFSIM302は、コンテンツを含む既存のディスクが異なる物理的なディスクによって置き換えられると、ディスク検証/修復を自動的に開始および管理する。ディスク検証/修復のため、VFM301はディスク修復項目(DRE: Disk Repair Entry)を用意する。これはすでに使用されているディレクトリ項目と同様だが、若干の小さな相違がある。前記450個のサブチャンクはすべて不良ドライブからで、チャンクは複数のタイトルから含められている。全サブチャンク(欠落したものも含め)についてのチェックサムも含められる。DREは、最も最近使われたタイトルから始まって、次に最近使われたタイトルが続く、といった具合に埋められていく。タイトルが完全にぴったりでなくても、次のDREが直前のDREが終わったところから引き継ぐので問題ではない。DREの総数は事前にはわからないので、DREは単にそれが最後であるかどうかを告げるフラグを持つ。この手続きによって、修復が秩序だった、優先順位の付けられた仕方で、可能な最大限のデータ完全性をもってなされることが許容される。
動作不良のディスクが新しいディスクで置き換えられるときなど、データ損失があったときには、常に修復が望まれる。ICE100のどこかで動作不良のディスクが利用できないとき、修復は完全に新しいディスクをホストするSPN103上で行われる。同時に一つずつのDREを使って、ホストSPNは欠落サブチャンクのグループ仲間を要求し、該グループ仲間をパリティ再構築のために使う。再構築されたサブチャンクは保存され、そのブロックは有効とマークされる。他方、動作不良ディスクがスペアSPNに接続されている場合には、VFSIM302はそれを認識し、必要となるパリティ再構築の量を減らそうと努力しながらいかなる利用可能なサブチャンクをも回復しようと試みる。VFSIM302は前記DREをまず前記スペアSPNに送り、そこでチェックサムと位置指定子を使って諸候補サブチャンクの有効性を試験する。一つのサブチャンクが合格したら、スペアSPNはそのサブチャンクを有効とマークし、必要としているSPNに送り、そこでそのサブチャンクは有効として保存される。スペアSPNが回復し、送れるだけのサブチャンクをすべて送ったとき、VFSIM302にDREの用が終わったと通知する。この時点ですべてのサブチャンクが回復されていない場合には、VFSIM302はDREを前記新しいディスクをホストしているSPNに送り、必要に応じてパリティ再構築が執り行われる。
再構築されたディスクがあるSPNから別のSPNに移されるときなど、ディスクまたはSPNがシステムに接続されたときには常にコンテンツ検証が望まれる。検証プロセスは本質的には修復プロセスと同じであるが、ただより速い。同じDREが用いられ、各候補サブチャンクが同時に一つずつ吟味される。ディスク上に存在しているサブチャンクについてチェックサムが計算される。計算されたチェックサムがDRE中のチェックサムに一致すれば、そのサブチャンクは有効と考えられる。チェックサムが一致しなければ、そのサブチャンクに対応する他の4つのサブチャンクが当該RAIDグループ内の他の諸SPNから要求され、欠落サブチャンクが再構築されて保存される。検証プロセスが再構築プロセスよりも速いというのは、単に、全部ではないまでもほとんどのサブチャンクが最初のチェックサム試験に合格するからである。検証プロセスを再構築プロセスと同じにしておくことで、再構築プロセスが部分的にしか完了してない場合でも、あるドライブをその正しいスロットに動かす柔軟性が運用者に与えられる。運用者が部分的に再構築されたディスクのプラグを抜くとき、その再構築プロセスはアボートされ、そのディスクが新しいスロットにプラグ接続されると新しい検証/再構築プロセスが開始されるのである。
クローニングは再構築/検証プロセスよりも簡単である。これはホストデバイスからデータを単純にコピーできるという利点のためである。クローンのホストは保存されているコンテンツを受信者にプッシュし、加えて、前記クローンのホストは変化もそれが起こるたびにプッシュする。これは、コンテンツのボディ全体が受信者に転送されたのち、クローニングプロセスが無期限に続くことが許容され、二つのデバイスが完全に同期が保たれるということを意味している。クローニングが完了すると、クローンデバイスはホストデバイスの論理的な素性を帯び、それ以上の検証は要求されない(そのデバイスが動かされない限りは)。検証における潜在的な役割を別とすれば、VFS209はクローニングには関わっていない。ホストがプッシュと同期を受け持っているため、受信者にとってはVFS209内に重複データ構造を作成する(そして破壊する)必要はない。
SM303からの要求に際して、VFS209はICE100の管理のために、統計を含む最も最近使われた(MRU: Most Recently Used)タイトルリスト(図示せず)およびデバイス利用率報告(図示せず)を含む有用な情報を報告することができる。MRUリストは現在保存されている各タイトルについて一つのレコードを、そのタイトルについての最後に要求された日時、これまでに要求された総回数、総サイズ、そして削除できるかどうかといった個別的な情報とともに含んでいる。デバイス利用率報告は各SPNについて一つのレコードを含んでおり、IPアドレス、グループ帰属ならびに、デバイスID、その全ブロック数および現在割り当てがされているブロック数といった各記憶装置の情報をもつ配列を与える。

今や、本発明に基づく仮想ファイルシステムが、各タイトルのアクセススピードおよび効率的な記憶を最大にする、タイトルデータの整理された分配を提供することが理解される。各タイトルは複数のサブチャンクに細分され、そのサブチャンクが管理ノードを含む複数のストレージ・プロセッサ・ノードに結合されたディスクドライブアレイの諸ディスクドライブの間に分配される。管理ノード上で実行される仮想ファイルマネージャは前記アレイ中に保存される各タイトルの各サブチャンクの保存およびアクセスを管理する。仮想ファイルマネージャは各タイトルについてのディレクトリ項目を維持するが、ここで各ディレクトリ項目はそのタイトルについてのサブチャンク位置項目のリストである。各サブチャンク位置項目は、ディスクドライブアレイ上に保存されている各タイトルの各サブチャンクの位置を決めてアクセスするためのストレージ・プロセッサ・ノード識別子、ディスクドライブ識別子および論理アドレスを含む。
以上のファイル管理の中央集中は、従来技術のディスクおよび記憶システムに比べて数多くの恩恵および利点を与える。ファイルまたは「タイトル」は全ドライブを併せた全記憶容量までのいかなるサイズでもよく、単一のドライブまたは冗長記憶グループに制限されない。ディレクトリ情報が中央に保存されるため、各ドライブの全容量がコンテンツの保存のために利用可能である。あるタイトルに対する各要求は一つのディスクドライブあるいはいくつかのディスクドライブに制限されず、負荷はアレイ中の全ディスクドライブまでの多数の間に拡散される。同期スイッチマネージャは各ノードが逐次的な送信周期においてデータのサブチャンクを同時に一つずつ受け取ることを保証することによって効率を最大化する。中央集中されたファイルマネージャは、どのディスクドライブ上にも何らかの種類のローカルディレクトリを必要とするのではなく、各ディスクドライブの出力通信帯域幅に合わせた全円盤の実現を許容する。ある実施形態では、各ディスクドライブ上の工場設定された論理‐物理再マッピングが用いられる。これは各ドライブから単一のシーク動作で情報を取得できるようにするものである。当業者には理解されるように、標準的なディレクトリシークペナルティは極端であり、ドライブ通信帯域幅をその使用の半分よりずっと少なく減らすことがある。それに代わって、各サブチャンク位置項目はあるタイトルについての対応するサブチャンクを位置決定してアクセスするのに十分であり、それによりデータのサブチャンクを取得して転送するための各ストレージ・プロセッサ・ノードに対するオーバーヘッドを最小化する。込み入ったオペレーティングシステムとのインターフェースをとったり、あるいは中間的なディレクトリシークを実行したりなどといった必要はない。同定されたプロセッサノードの転送プロセスがサブチャンクにアクセスするには、論理アドレス(たとえば論理ブロックアドレス)を同定されたディスクドライブに与える。該同定されたディスクドライブはすぐにその論理アドレスに保存されているサブチャンクを返してくる。
本仮想ファイルシステムはさらにデータ損失への対策としてデータおよび/または冗長性保護を用い、再構築の間中断されないサービスを可能にする。冗長記憶グループは個々のストレージ・プロセッサ・ノードにまたがり、任意のドライブの、各冗長ディスクグループ(たとえばRAIDアレイ)の任意のドライブ、あるいは全ドライブを除いた任意の単一のノードの障害をも許容する。各ドライブは一意的に同定され、立ち上げ時の自動システム構成設定およびディスクの部分的障害もしくは予期された障害からのずっと迅速な回復を可能にする。ドライブエラーが発生したとき、部分的再構築が実行され、再構築されたデータはそのデータの起源となるはずだったノードに送られ、そこにキャッシュされることができる。そのような構造および処理は、そのドライブおよび/またはノードが交換されるまで人気のあるタイトルの冗長な再構築を回避する。これにより複数のノードにまたがって分散しているユーザープロセスのための主要な時間節約が提供される。さらに、冗長な仮想ファイルマネージャを実行する冗長な管理ノードは、全体としてのシステムにおける何らかの単一障害点の場合に中断されない動作を可能にする。
そのほかの多くの利点および恩恵が達成される。対話的コンテンツエンジン100は、記憶割り当てのための何百もの同時要求によって過負荷になることがない。何十万ものビデオストリームがディレクトリ・トランザクション(10万ストリームの場合、通信帯域幅の1%未満)でシステムに過負荷をかけることなく同時に記録され、再生されることが許容される。記憶の事前割り当て、コンテンツの再ストライピング、タイトルの削除ならびにドライブおよびSPNのクローニングといった管理機能がアイソクロナスなコンテンツ再生および摂取に干渉することなくバックグラウンドで生起することが許容される。
本発明はある種の好ましいバージョンを参照しつつかなりの詳細において記載されてきたが、他のバージョンおよび変形も可能であり、考えられている。当業者は開示された概念および具体的な実施例を、請求項によって定義される本発明の精神および範囲から外れることなく、本発明と同じ目的に資するための他の構造を考案したり修正したりする基礎として容易に使うことができる。
本発明のある例示的な実施形態に基づいて実装された対話的コンテンツエンジン(ICE: Interactive Content Engine)の一部分の簡略化したブロック図である。 同期データ転送システムを図解する、図1のICEの一部分の論理ブロック図である。 本発明のある実施形態に基づく、図2のVFSおよび補助機能のさらなる詳細を図解する、図1のICEの一部分のブロック図である。 ディスクアレイグループ3つだけからなる、図1のICEの例示的な構成を図解する表1を示す図である。 表1の構成を使って4つのタイトルが保存される仕方を図解する表2を示す図である。 表2で描かれた4つのタイトルについての最初の12個の位置指定子の内容を図解する表3を示す図である。 図1のICEについてサブチャンクが異なるグループ、SPNおよびディスクドライブ上に保存される仕方のさらなる詳細を図解する表4を示す図である。

Claims (25)

  1. 仮想ファイルシステムであって:
    それぞれがプロセッサおよび該プロセッサに結合された複数のディスクドライブを有する複数のストレージ・プロセッサ・ノードと、
    前記複数のストレージ・プロセッサ・ノードのそれぞれの間の通信を可能にする、前記複数のストレージ・プロセッサ・ノードに結合されたバックボーンスイッチとを有しており
    前記複数のストレージ・プロセッサ・ノードのそれぞれの各プロセッサは前記バックボーンスイッチと前記複数のディスクドライブとの間に結合され、
    前記複数のストレージ・プロセッサ・ノードの各ストレージ・プロセッサ・ノードの前記複数のディスクドライブは集団的に、複数のメディア・コンテンツ・データを保存するディスクドライブアレイをなし、各メディア・コンテンツ・データが複数のサブチャンクに分割され、該サブチャンクが前記ディスクドライブアレイにわたって分散され、各サブチャンクが前記ディスクドライブアレイの一つのディスクドライブ上に保存され、
    当該仮想ファイルシステムがさらに、前記バックボーンスイッチに結合された少なくとも一つの管理ノードを有し、前記少なくとも一つの管理ノードが仮想ファイルマネージャを実行し、該仮想ファイルマネージャが各メディア・コンテンツ・データについてのディレクトリ項目を含む複数のディレクトリ項目を保存し、前記ディレクトリ項目のそれぞれがサブチャンク位置項目のリストを有しており、該リスト中の各サブチャンク位置項目はストレージ・プロセッサ・ノード識別子およびディスクドライブ識別子をし、
    前記複数のストレージ・プロセッサ・ノードの各ストレージ・プロセッサ・ノードの前記各プロセッサは、前記複数のストレージ・プロセッサ・ノードの少なくとも二つのそれぞれからメディア・コンテンツ・データのサブチャンクを要求するよう構成されており、前記複数のストレージ・プロセッサ・ノードの前記少なくとも二つのそれぞれは要求されたサブチャンクを要求元プロセッサに前記バックボーンスイッチを介して送る、
    ステム。
  2. 理アドレスを同定されたストレージ・プロセッサ・ノードの同定されたディスクドライブに提供することによって、前記複数のサブチャンクのそれぞれが単一のシーク動作において取得されることを特徴とする、請求項1記載の仮想ファイルシステム。
  3. 前記ディスクドライブアレイの各ディスクドライブの全容量が前記複数のメディア・コンテンツ・データの前記複数のサブチャンクの保存のために利用可能であることを特徴とする、請求項1記載の仮想ファイルシステム。
  4. 請求項1記載の仮想ファイルシステムであって、さらに:
    ストレージ・プロセッサ・ノード上で実行され、選択されたメディア・コンテンツ・データについてのメディア・コンテンツ・データ要求を前記仮想ファイルマネージャに提出し、前記選択されたメディア・コンテンツ・データについての対応するディレクトリ項目を受け取り、前記対応するディレクトリ項目中の各サブチャンク位置項目についてのサブチャンク読み取り要求を提出するユーザープロセスを有しており、
    各サブチャンク読み取り要求が、前記対応するディレクトリ項目中の対応するサブチャンク位置項目中のストレージ・プロセッサ・ノード識別子によって同定されるストレージ・プロセッサ・ノードに送られ、各サブチャンク読み取り要求が宛先ノード識別子、前記ディスクドライブ識別子および論理アドレスを含んでおり、
    前記仮想ファイルマネージャが前記選択されたメディア・コンテンツ・データのために前記対応するディレクトリ項目を取得し、前記メディア・コンテンツ・データ要求に応答して前記ユーザープロセスに前記対応するディレクトリ項目を転送する、
    ことを特徴とするシステム。
  5. 請求項4記載の仮想ファイルシステムであって、さらに、サブチャンク読み取り要求を受け取り、前記ディスクドライブ識別子によって同定されるローカルディスクドライブに対して前記要求されたサブチャンクを位置特定するための前記論理アドレスを使ってサブチャンクを要求する、ストレージ・プロセッサ・ノード上で実行される転送プロセスを有することを特徴とするシステム。
  6. 請求項4記載の仮想ファイルシステムであって、各メディア・コンテンツ・データが複数のデータチャンクに細分され、前記データチャンクのそれぞれが複数のサブチャンクを有しており、該サブチャンクが集団として各データチャンクについての冗長データを有しており、前記ユーザープロセスが任意のデータチャンクを、該任意のデータチャンクを有する前記複数のサブチャンクのすべてよりも一つ少ないものから構築するよう動作できることを特徴とする方法。
  7. 請求項6記載の仮想ファイルシステムであって、前記ディスクドライブアレイが複数の冗長アレイグループに分割されており、各冗長アレイグループが複数のストレージ・プロセッサ・ノードにまたがって分散している複数のディスクドライブを有しており、各データチャンクの前記複数のサブチャンクが対応する冗長アレイグループのディスクドライブにまたがって分散していることを特徴とするシステム。
  8. 請求項7記載の仮想ファイルシステムであって、前記ユーザープロセスが:任意の一つのディスクドライブの障害;前記複数の冗長アレイグループのそれぞれのうちの任意の一つのディスクドライブの障害;および前記複数のストレージ・プロセッサ・ノードのうちの任意の一つの障害、のうちの任意の場合において、任意の保存されているメディア・コンテンツ・データを再構築するよう動作できることを特徴とするシステム。
  9. 請求項8記載の仮想ファイルシステムであって、前記ユーザープロセスが、データチャンクの欠落サブチャンクを前記データチャンクの残っているサブチャンクから再構築するよう動作し、前記再構築された欠落サブチャンクを本来ならその欠落サブチャンクのソースとなっていたはずのストレージ・プロセッサ・ノードに返すよう動作することを特徴とするシステム。
  10. 請求項9記載の仮想ファイルシステムであって、障害のあった前記本来なら前記欠落サブチャンクのソースとなっていたはずのストレージ・プロセッサ・ノードが交換ストレージ・プロセッサ・ノードに置き換えられた場合に、前記交換ストレージ・プロセッサ・ノードが、返された、および再構築されたサブチャンクを含む受け取ったサブチャンクを保存することによって、欠落および新規のメディア・コンテンツ・データを改めて保存することを特徴とするシステム。
  11. 請求項9記載の仮想ファイルシステムであって、さらに、前記本来なら前記欠落サブチャンクのソースとなっていたはずのストレージ・プロセッサ・ノードに結合されている、障害のあったディスクドライブの交換ディスクドライブに転送するために、返された、および再構築されたサブチャンクを含む受け取ったサブチャンクを一時的に保存するキャッシュメモリを有することを特徴とするシステム。
  12. 各サブチャンクが論理アドレスによって同定されるディスクドライブのあるブロック中に保存され、前記論理アドレスが論理ブロックアドレスであることを特徴とする、請求項1記載の仮想ファイルシステム。
  13. 請求項1記載の仮想ファイルシステムであって、前記仮想ファイルマネージャがメディア・コンテンツ・データ記憶を管理し、各メディア・コンテンツ・データが複数のデータチャンクに細分され、各データチャンクが各データチャンクについて冗長なデータを組み込んでいる複数のサブチャンクを有していることを特徴とするシステム。
  14. 請求項13記載の仮想ファイルシステムであって、前記ディスクドライブアレイが複数の冗長アレイグループに分割されており、各冗長アレイグループが複数のストレージ・プロセッサ・ノードにまたがって分散している複数のディスクドライブを有しており、各データチャンクの前記複数のサブチャンクが対応する冗長アレイグループのディスクドライブにまたがって分散していることを特徴とするシステム。
  15. 請求項14記載の仮想ファイルシステムであって、さらに:
    第一のストレージ・プロセッサ・ノードに結合された、複数の欠落サブチャンクをもつ交換ディスクドライブと、
    前記仮想ファイルマネージャであって、各欠落サブチャンクをその対応するパリティサブチャンクとともにリストするデータチャンクをなすディスク修復ディレクトリ項目を準備し、前記ディスク修復ディレクトリ項目を前記第一のストレージ・プロセッサ・ノードに転送する仮想ファイルシステムと、
    各欠落サブチャンクに対応する前記ディスク修復ディレクトリ項目中にリストされた各パリティサブチャンクに対するサブチャンク読み取り要求を提出し、受け取った対応するパリティサブチャンクを使って各欠落サブチャンクを再構築し、再構築されたサブチャンクを前記交換ディスクドライブ上に保存する、前記第一のストレージ・プロセッサ・ノード上で実行される、修復プロセス、
    とを有することを特徴とするシステム。
  16. 請求項15記載の仮想ファイルシステムであって、さらに:
    スペアのストレージ・プロセッサ・ノードと、
    前記スペアのストレージ・プロセッサ・ノードに結合され、前記交換ディスクドライブによって置き換えられる、部分的に障害のあったディスクドライブと、
    前記仮想ファイルマネージャであって、前記ディスク修復ディレクトリ項目を、前記第一のストレージ・プロセッサ・ノードに送るのに先立ってまず前記スペアのストレージ・プロセッサ・ノードに転送する仮想ファイルマネージャと、
    チェックサムおよび位置指定子を用いて前記部分的に障害のあったディスクドライブ上に保存されている前記欠落サブチャンクの有効性を試験し、前記部分的に障害のあったディスクドライブから読み込まれた有効なサブチャンクを前記第一のストレージ・プロセッサ・ノードに前記交換ディスクドライブ上に保存するために転送する、前記スペアのストレージ・プロセッサ・ノード上で実行されるサルベージプロセス、
    とを有することを特徴とするシステム。
  17. 請求項16記載の仮想ファイルシステムであって、前記修復プロセスが、対応する欠落サブチャンクがすでに再構築されて前記交換ディスクドライブ上に保存されていた場合に、前記部分的に障害のあったディスクドライブから読み込まれた受け取られた有効なサブチャンクを破棄することを特徴とするシステム。
  18. 請求項14記載の仮想ファイルシステムであって、前記ディスクドライブアレイが所定の数のディスクドライブを有し、前記仮想ファイルマネージャが前記複数の冗長アレイグループにまたがって均等な仕方で前記複数のデータチャンクを分配するよう動作することを特徴とするシステム。
  19. 請求項18記載の仮想ファイルシステムであって、前記仮想ファイルマネージャが、前記所定のディスクドライブ数の変化に反応して均等なデータの分配を維持するために再ストライピング処理を実行して前記複数のデータチャンクを再分配することを特徴とするシステム。
  20. 請求項19記載の仮想ファイルシステムであって、前記再ストライピング処理がバックグラウンドタスクとして実行されることを特徴とするシステム。
  21. 請求項19記載の仮想ファイルシステムであって、前記仮想ファイルマネージャが、前記ディスクドライブアレイの前記所定のディスクドライブ数の増加を検出したときに、データの均等な分配を維持するために、前記複数のデータチャンクを前記ディスクドライブアレイ中の新しいディスクドライブの間で再分配するよう前記再ストライピング処理を実行することを特徴とするシステム。
  22. 請求項19記載の仮想ファイルシステムであって、前記仮想ファイルマネージャが、前記ディスクドライブアレイの指定されたディスクドライブを除去する要求を検出し、残るディスクドライブのデータの均等な分配を維持するために前記複数のデータチャンクを再分配するよう前記再ストライピング処理を実行し、前記指定されたディスクドライブの割り当て解除を行うことを特徴とするシステム。
  23. 請求項1記載の仮想ファイルシステムであって、前記少なくとも一つの管理ノードが、前記仮想ファイルマネージャの動作をミラーするミラー仮想ファイルマネージャを実行するミラー管理ノードであることを特徴とするシステム。
  24. 請求項1記載の仮想ファイルシステムであって、前記仮想ファイルマネージャが事前割り当てされたディレクトリ項目のプールを保存しており、各ディレクトリ項目が利用可能なサブチャンク位置項目のリストを有していることを特徴とするシステム。
  25. 請求項24記載の仮想ファイルシステムであって、事前割り当てされたディレクトリ項目の前記プールがパフォーマンスおよびサイトの利用プロファイルに基づくものであることを特徴とするシステム。
JP2006542744A 2003-12-02 2004-12-02 仮想ファイルシステム Expired - Fee Related JP4398470B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US52639003P 2003-12-02 2003-12-02
US10/999,286 US7644136B2 (en) 2001-11-28 2004-11-30 Virtual file system
PCT/US2004/040367 WO2005057343A2 (en) 2003-12-02 2004-12-02 Virtual file system

Publications (2)

Publication Number Publication Date
JP2007513429A JP2007513429A (ja) 2007-05-24
JP4398470B2 true JP4398470B2 (ja) 2010-01-13

Family

ID=34681498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542744A Expired - Fee Related JP4398470B2 (ja) 2003-12-02 2004-12-02 仮想ファイルシステム

Country Status (7)

Country Link
US (1) US7644136B2 (ja)
EP (1) EP1692597A4 (ja)
JP (1) JP4398470B2 (ja)
CA (1) CA2547442C (ja)
DE (1) DE04812807T1 (ja)
MX (1) MXPA06006332A (ja)
WO (1) WO2005057343A2 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1561306B1 (en) * 2002-11-12 2007-03-07 Zetera Corporation Communication protocols, systems and methods
US7613945B2 (en) 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US7562125B2 (en) * 2005-02-02 2009-07-14 Cisco Technology, Inc. Techniques for locating distributed objects on a network based on physical communication costs
US7904649B2 (en) * 2005-04-29 2011-03-08 Netapp, Inc. System and method for restriping data across a plurality of volumes
US7437507B2 (en) * 2005-06-06 2008-10-14 Cisco Technology, Inc. Online restriping technique for distributed network based virtualization
JP2007108905A (ja) * 2005-10-12 2007-04-26 Fuji Xerox Co Ltd ファイルサーバ、ファイル提供方法及びプログラム
US7778960B1 (en) 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US8010829B1 (en) * 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US8010485B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7996608B1 (en) 2005-10-20 2011-08-09 American Megatrends, Inc. Providing redundancy in a storage system
WO2007063483A1 (en) 2005-11-29 2007-06-07 Koninklijke Philips Electronics N.V. Method of managing a distributed storage system
CN100444166C (zh) * 2005-12-16 2008-12-17 北京中星微电子有限公司 Fat文件系统中基于位置的接口访问方法及其装置
US7809892B1 (en) 2006-04-03 2010-10-05 American Megatrends Inc. Asynchronous data replication
EP2357552A1 (en) 2006-05-24 2011-08-17 Compellent Technologies System and method for RAID management, reallocation and restriping
WO2007140259A2 (en) * 2006-05-24 2007-12-06 Compellent Technologies Data progression disk locality optimization system and method
JP4963892B2 (ja) * 2006-08-02 2012-06-27 株式会社日立製作所 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
US7472223B1 (en) 2006-09-28 2008-12-30 Emc Corporation Surface level sparing in disk drives
US8046548B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US7908448B1 (en) 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US8498967B1 (en) 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US8108580B1 (en) 2007-04-17 2012-01-31 American Megatrends, Inc. Low latency synchronous replication using an N-way router
US8724521B2 (en) * 2007-07-30 2014-05-13 Verint Americas Inc. Systems and methods of recording solution interface
US7856437B2 (en) * 2007-07-31 2010-12-21 Hewlett-Packard Development Company, L.P. Storing nodes representing respective chunks of files in a data store
US8176017B2 (en) * 2007-12-14 2012-05-08 Microsoft Corporation Live volume access
WO2009149388A1 (en) 2008-06-06 2009-12-10 Pivot3 Method and system for distributing commands to targets
US8219750B2 (en) * 2008-06-30 2012-07-10 Pivot3 Method and system for execution of applications in conjunction with distributed RAID
US8176247B2 (en) 2008-10-28 2012-05-08 Pivot3 Method and system for protecting against multiple failures in a RAID system
CN107247565B (zh) * 2009-03-18 2020-06-09 株式会社日立制作所 存储控制装置以及虚拟卷的控制方法
US20110060882A1 (en) * 2009-09-04 2011-03-10 Petros Efstathopoulos Request Batching and Asynchronous Request Execution For Deduplication Servers
US8554994B2 (en) * 2009-09-29 2013-10-08 Cleversafe, Inc. Distributed storage network utilizing memory stripes
US8762338B2 (en) * 2009-10-07 2014-06-24 Symantec Corporation Analyzing backup objects maintained by a de-duplication storage system
US8526282B1 (en) * 2010-07-07 2013-09-03 Cinram Group, Inc. Method for replicating media using unique identifiers
JP5494556B2 (ja) * 2011-04-19 2014-05-14 コニカミノルタ株式会社 画像形成方法および画像形成装置
US8527699B2 (en) 2011-04-25 2013-09-03 Pivot3, Inc. Method and system for distributed RAID implementation
US8694724B1 (en) * 2011-09-06 2014-04-08 Emc Corporation Managing data storage by provisioning cache as a virtual device
WO2014051592A1 (en) * 2012-09-27 2014-04-03 Hewlett-Packard Development Company, L.P. Replacing virtual file system data structures deleted by a forced unmount
JP6142599B2 (ja) 2013-03-18 2017-06-07 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
US9274901B2 (en) 2013-11-20 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. I/O request mirroring in a clustered storage system
US9529552B2 (en) * 2014-01-14 2016-12-27 International Business Machines Corporation Storage resource pack management
US9575680B1 (en) 2014-08-22 2017-02-21 Veritas Technologies Llc Deduplication rehydration
US10423495B1 (en) 2014-09-08 2019-09-24 Veritas Technologies Llc Deduplication grouping
CN105700965A (zh) * 2014-11-26 2016-06-22 英业达科技有限公司 系统错误排除方法
US9753943B1 (en) * 2015-03-31 2017-09-05 EMC IP Holding Company LLC Techniques for distributing access to filesystems through multipe filesystem management nodes
CN104932953B (zh) * 2015-06-04 2017-11-21 华为技术有限公司 一种数据分发方法、数据存储方法、相关装置以及系统
US10942864B2 (en) * 2015-11-20 2021-03-09 Hewlett Packard Enterprise Development Lp Shared memory for distributed data
GB2545221B (en) * 2015-12-09 2021-02-24 7Th Sense Design Ltd Video storage
US10321167B1 (en) 2016-01-21 2019-06-11 GrayMeta, Inc. Method and system for determining media file identifiers and likelihood of media file relationships
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) * 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10719492B1 (en) 2016-12-07 2020-07-21 GrayMeta, Inc. Automatic reconciliation and consolidation of disparate repositories
US10682761B2 (en) * 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
CN107329707A (zh) * 2017-07-03 2017-11-07 郑州云海信息技术有限公司 统一存储的多存储设备管理方法、系统及gui管理系统
CN111159123B (zh) * 2019-12-30 2023-07-14 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法
EP3862824B1 (de) * 2020-02-04 2023-01-11 Siemens Aktiengesellschaft Schnittstellenmodul zur konfiguration und parametrierung eines feldbusteilnehmers

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55157181A (en) 1979-05-25 1980-12-06 Nec Corp Buffer memory control system
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5247347A (en) 1991-09-27 1993-09-21 Bell Atlantic Network Services, Inc. Pstn architecture for video-on-demand services
JP2666033B2 (ja) 1993-02-18 1997-10-22 日本アイ・ビー・エム株式会社 データ供給装置
DE69317267T2 (de) 1993-05-19 1998-06-25 Alsthom Cge Alcatel Netzwerk für Video auf Anfrage
EP0625857B1 (en) 1993-05-19 1998-06-24 ALCATEL BELL Naamloze Vennootschap Video server
US5581479A (en) * 1993-10-15 1996-12-03 Image Telecommunications Corp. Information service control point, which uses different types of storage devices, which retrieves information as blocks of data, and which uses a trunk processor for transmitting information
US5473362A (en) 1993-11-30 1995-12-05 Microsoft Corporation Video on demand system comprising stripped data across plural storable devices with time multiplex scheduling
JP3617089B2 (ja) 1993-12-27 2005-02-02 株式会社日立製作所 映像蓄積配送装置及び映像蓄積配送システム
US5732239A (en) 1994-05-19 1998-03-24 Starlight Networks Method for operating a disk storage system which stores video data so as to maintain the continuity of a plurality of video streams
US5521631A (en) 1994-05-25 1996-05-28 Spectravision, Inc. Interactive digital video services system with store and forward capabilities
US5606359A (en) 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US5671377A (en) 1994-07-19 1997-09-23 David Sarnoff Research Center, Inc. System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream
EP0699000B1 (en) * 1994-08-24 2001-06-20 Hyundai Electronics America A video server and system employing the same
US5712976A (en) 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
WO1996017306A2 (en) 1994-11-21 1996-06-06 Oracle Corporation Media server
US5729279A (en) 1995-01-26 1998-03-17 Spectravision, Inc. Video distribution system
EP0727750B1 (en) 1995-02-17 2004-05-12 Kabushiki Kaisha Toshiba Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
US5608448A (en) 1995-04-10 1997-03-04 Lockheed Martin Corporation Hybrid architecture for video on demand server
US5742892A (en) 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
JPH08328760A (ja) 1995-06-01 1996-12-13 Hitachi Ltd ディスクアレイ装置
US5721815A (en) 1995-06-07 1998-02-24 International Business Machines Corporation Media-on-demand communication system and method employing direct access storage device
JP3088268B2 (ja) * 1995-06-21 2000-09-18 日本電気株式会社 ビデオ・オン・デマンドシステムにおけるビデオサーバ
US5678061A (en) 1995-07-19 1997-10-14 Lucent Technologies Inc. Method for employing doubly striped mirroring of data and reassigning data streams scheduled to be supplied by failed disk to respective ones of remaining disks
US5790794A (en) 1995-08-11 1998-08-04 Symbios, Inc. Video storage unit architecture
US6049823A (en) 1995-10-04 2000-04-11 Hwang; Ivan Chung-Shung Multi server, interactive, video-on-demand television system utilizing a direct-access-on-demand workgroup
US5862312A (en) 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US5978843A (en) 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
US6128467A (en) * 1996-03-21 2000-10-03 Compaq Computer Corporation Crosspoint switched multimedia system
US6032200A (en) 1996-09-30 2000-02-29 Apple Computer, Inc. Process scheduling for streaming data through scheduling of disk jobs and network jobs and the relationship of the scheduling between these types of jobs
US5892915A (en) * 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US6230200B1 (en) 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6182128B1 (en) * 1998-03-05 2001-01-30 Touchmusic Entertainment Llc Real-time music distribution systems
US6101547A (en) 1998-07-14 2000-08-08 Panasonic Technologies, Inc. Inexpensive, scalable and open-architecture media server
US6370579B1 (en) 1998-10-21 2002-04-09 Genuity Inc. Method and apparatus for striping packets over parallel communication links
US6289383B1 (en) 1998-11-30 2001-09-11 Hewlett-Packard Company System and method for managing data retrieval bandwidth
US6401126B1 (en) 1999-03-10 2002-06-04 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
JP2001051890A (ja) 1999-08-10 2001-02-23 Toshiba Corp 仮想分散ファイルサーバシステム
US6604115B1 (en) * 1999-11-05 2003-08-05 Ge Marquette Medical Systems, Inc. Method and apparatus for storing data
US6604155B1 (en) * 1999-11-09 2003-08-05 Sun Microsystems, Inc. Storage architecture employing a transfer node to achieve scalable performance
CA2393462A1 (en) * 1999-12-10 2001-06-14 Diva Systems Corporation Method and apparatus for storing content within a video on demand environment
US6571351B1 (en) 2000-04-07 2003-05-27 Omneon Video Networks Tightly coupled secondary storage system and file system
US6898285B1 (en) 2000-06-02 2005-05-24 General Instrument Corporation System to deliver encrypted access control information to support interoperability between digital information processing/control equipment
US6542962B2 (en) * 2001-03-21 2003-04-01 Hitachi, Ltd. Multiple processor data processing system with mirrored data for distributed access
US20020157113A1 (en) 2001-04-20 2002-10-24 Fred Allegrezza System and method for retrieving and storing multimedia data
US20030046704A1 (en) 2001-09-05 2003-03-06 Indra Laksono Method and apparatus for pay-per-quality of service for bandwidth consumption in a video system
US6907466B2 (en) * 2001-11-08 2005-06-14 Extreme Networks, Inc. Methods and systems for efficiently delivering data to a plurality of destinations in a computer network

Also Published As

Publication number Publication date
JP2007513429A (ja) 2007-05-24
EP1692597A4 (en) 2008-08-13
WO2005057343A2 (en) 2005-06-23
EP1692597A2 (en) 2006-08-23
MXPA06006332A (es) 2006-08-23
US7644136B2 (en) 2010-01-05
CA2547442A1 (en) 2005-06-23
CA2547442C (en) 2011-01-11
DE04812807T1 (de) 2007-01-04
US20050114350A1 (en) 2005-05-26
WO2005057343A3 (en) 2006-03-16

Similar Documents

Publication Publication Date Title
JP4398470B2 (ja) 仮想ファイルシステム
JP4426589B2 (ja) 同期データ転送システム
JP5160657B2 (ja) コンピュータ・システムおよび多数の記憶装置および多数のアプリケーション間でスケーラブルにかつ信頼性高く多数の高帯域データ・ストリームを転送するプロセス
KR100192723B1 (ko) 매체 스트리머
US7254702B2 (en) Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US6233607B1 (en) Modular storage server architecture with dynamic data management
US6785768B2 (en) Computer system and process for transferring streams of data between multiple storage units and multiple applications in a scalable and reliable manner
JP3096409B2 (ja) メディア・ストリーマ
JP4328207B2 (ja) 対話型ブロードバンドサーバシステム
JP5208446B2 (ja) ネットワークデータストレージシステム
Mourad Issues in the design of a storage server for video-on-demand
JP2002500393A (ja) コンピュータ・システムおよび多数の記憶装置および多数のアプリケーション間でスケーラブルにかつ信頼性高く多数の高帯域データ・ストリームを転送するプロセス
JP2000515706A (ja) ストリームサーバにおいてデータを取り出すシステム
US20030154246A1 (en) Server for storing files
EP0701373B1 (en) Video server system
IL175837A (en) Synchronized data transfer system
CN1902620A (zh) 虚拟文件系统
JP2010244583A (ja) ストレージシステム
Tran Design and implementation of periodic broadcast video servers

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4398470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees