JP2008507771A - ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ - Google Patents

ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ Download PDF

Info

Publication number
JP2008507771A
JP2008507771A JP2007522753A JP2007522753A JP2008507771A JP 2008507771 A JP2008507771 A JP 2008507771A JP 2007522753 A JP2007522753 A JP 2007522753A JP 2007522753 A JP2007522753 A JP 2007522753A JP 2008507771 A JP2008507771 A JP 2008507771A
Authority
JP
Japan
Prior art keywords
file
block
storage device
asset
computer
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.)
Granted
Application number
JP2007522753A
Other languages
English (en)
Other versions
JP4663718B2 (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
Application filed by ビーチ・アンリミテッド・エルエルシー filed Critical ビーチ・アンリミテッド・エルエルシー
Publication of JP2008507771A publication Critical patent/JP2008507771A/ja
Application granted granted Critical
Publication of JP4663718B2 publication Critical patent/JP4663718B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/2181Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
    • 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/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/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【解決手段】 分散型ストレージアーキテクチャおよび階層キャッシングシステムが、ビデオオンデマンドまたはストリーミングメディアアプリケーションにおいて利用される。分散型のストレージアーキテクチャの例示の実施形態は、ブロックマップキャッシングおよび仮想ファイルシステムスタック可能なファイルシステムモジュールに基づくもので、コントローラと、第1のコンピュータおよび第2のコンピュータと、第1および第2のスイッチと、ストレージデバイスを含む。前記第1のコンピュータは、ローカルファイルシステムを含み、これを使用してアセットファイルを前記第1のストレージデバイス上のローカルファイルシステムに格納する。前記第1のコンピュータは、各アセットファイル用にブロックマップを作るためにプロセスを使用するものであるが、前記ブロックマップはアセットファイルが前記第1のストレージデバイスに格納される場所の境界に関する情報を含む。
【選択図】 図1

Description

本出願は、2004年7月21日付けで出願された米国仮出願第60/589,578号、発明の名称「Distributed Storage Architecture Based on Block Map Caching and VFS Stackable File System Modules」、及び2004年7月23日付けで出願された仮出願第60/590,431号、発明の明細「A Scalable Streaming Video Server Complex Based on Tiered Caching」に優先権を主張するものであるが、この参照によってこれら全体が本明細書に組み込まれる。
本開示は、ビデオデータのストリーミング等のデータ配信のための分散型ストレージシステムに関するものである。
本明細書において開示される内容に関連する背景情報は、以下の引用文献に記載される。
E.Zadokらの「Extending File Systems Using Stackable Templates」(Proc.1999 USENIX Annual Technical Conf.,June 1999)、 D.Rosenthalの「Evolving the Vnode Interface」(Proceedings of the Summer USENIX Conference,pp.107−117,June 1990) A.Danらの「Buffer Management Policy for an On−Demand video server」(IBM Research Report RC 19347) A.Danらの「Buffering and Caching in Large−scale video servers」(Proc.Compcon,pp.217−224,March 1995)、及び、 M. Barらの「Long−term Movie Popularity Models in Video−on−Demand Systems」(Proceedings of ACM Multimedia Conference,pp.349−357,November 1997)
ビデオサーバの複合体で用いられる共有ストレージシステムは、キャッシュされたブロックマップの概念に基づくことができる。前記システムは、分散型ファイルシステムのオーバヘッドと複雑さを減らすと同時に、複数のビデオサーバによってサーバ複合体の共有ストレージプールからのアセットを協同してストーリミングできるようにしてもよい。前記システムは、アセットの共通プールがビデオサーバ上のローカルファイルのように見えるようにし、且つ、ユーザに意識させないで、ストリーミング読出しリクエストをファイバーチャネルストレージエリアネットワーク(SAN)等のストレージエリアネットワーク(SAN)を通じて前記ストレージデバイスに再誘導できるようにしてもよい。
さらに、高度に拡張可能なビデオサーバの複合体は、階層キャッシングの概念に基づいてことができる。前記システムは、多数のビデオサーバが分散型複合体中の共有ストレージプールからアセットを協力してストリームできるようにしてもよい。前記システムは、ストレージ帯域幅、ストレージ容量およびストリーミング帯域幅をエンドユーザーの要件に関連付けできるようにしてもよい。
1実施形態によれば、データストリーミング用の分散型ストレージシステムは、コントローラと、第1および第2のコンピュータと、第1および第2スイッチと、ストレージデバイスを含む。前記第1のコンピュータは、ローカルファイルシステムを含み、前記第1のストレージデバイス上にアセットファイルを格納するために前記ローカルファイルシステムを使用する。更に、前記第1のコンピュータは、アセットファイルが前記第1のストレージデバイスに格納される場所の境界に関する情報を含み、ブロックマップを作るプロセスを使用する。ブロックマップは、各アセットファイル用に作成する。
別の実施形態によれば、階層キャッシュシステムが、デジタルアセットのストリーミング用に使用される。このタイプのシステムの典型的な実装は、前記アセットを格納する3次キャッシュメモリと、3次キャッシュに連結した複数のビデオポンプとを含む。各ビデオポンプは、前記3次キャッシュメモリから前記アセットのコピーを受け取り1つ以上のストリームを発信する2次キャッシュメモリと、前記2次キャッシュメモリからの前記アセットのコピーを受け取り、複数のストリームを発信する1次キャッシュメモリとを含む。前記システムは、また、前記アセットをストリームするために、前記複数のビデオポンプのうちから1つのビデオポンプを選択するリソースコントローラを有する。
図1は、データのストリーミングが可能な分散型のストレージシステムの1実施形態を示すものである。図示されるように、前記システムは、コントローラ10と、第1のコンピュータ12および第2のコンピュータ14と、第1及び第2のスイッチ16および18と、ストレージデバイス20とを含む。前記第1のコンピュータ12は、アセットファイルを前記第1のストレージデバイス20上のローカルファイルシステムに格納するために使用可能なローカルファイルシステム12Bを含む。更に、前記第1のコンピュータ12は、プロセス12Aを使用して、各アセットファイルのためのブロックマップを作成する。ブロックマップは、前記第1のストレージデバイス20中でのアセットファイルの格納場所の境界に関する情報を含む。
前記プロセス12Aは、前記第2のコンピュータ14に連結した第2のストレージデバイス14A上に前記ブロックマップのコピーを格納する。図示するように、前記第2のコンピュータ14は、また、前記第1のストレージデバイス20に連結する。
更に、前記システムは仮想ファイルシステム14Bを含み、これにより前記第2のコンピュータ14が前記ストレージデバイス14Aに格納されているブロックマップのコピーを使用して、前記第1のストレージデバイス20上にある前記アセットファイルにアクセスするのを可能にする。
前記第1のコンピュータがアセットファイルを保存するときに、ブロック配置アルゴリズムが前記第1のコンピュータ12のローカルファイルシステムによって使用され、複数ローカルファイルシステムブロックが連続的に書き込まれる。更に、前記スイッチ18は、前記第1のコンピュータ12と、前記第2のコンピュータ14と、前記ストレージデバイス20の間で並行のノンブロッキングアクセスを提供する。前記プロセス12Aは、前記アセットファイルの位置へのポインタを含む「ヒントファイル」(後述)を作成する。
第1のストレージデバイス上に格納された第1のファイルからデータを読み込む方法は、ブロックマップを第2のファイルに格納する工程を含むものであるが、前記ブロックマップは論理ブロックアドレスのリストを含み、且つ前記リスト中の各論理ブロックアドレスは前記第1のファイルに保存するために使用されるセクタを識別する。この方法は、前記第1のファイルと関連する仮想ファイルからデータを読み込むためのシステムコールを発行する工程と、前記データと関連する論理ブロックアドレスを取り出す工程と、前記の関連論理ブロックアドレスを使用して前記第1のストレージデバイスからデータを読み込む工程とを含む。
前記の例示的システムの別の観点は、デジタルアセットのストリーミング用の階層キャッシュシステムに関係する。この種のシステムの典型的な実施形態では、アセットを格納する3次キャッシュメモリを含む。例えば、これは図1のストレージデバイス20が可能である。更に、前記典型的なシステムは、前記3次キャッシュメモリに連結する1若しくはそれ以上のビデオポンプ(例えば第2のコンピュータ14)を含む。ここで、ビデオポンプは、前記3次キャッシュメモリからの前記アセットのコピーを受け取り、1つ以上のストリームを出す2次キャッシュメモリ14A(第2のストレージデバイス)と、前記2次キャッシュメモリから前記アセットのコピーを受け取り複数のストリームを出す1次キャッシュメモリ14Cと、前記複数のビデオポンプから前記アセットをストリームするビデオポンプを選択するリソースコントローラ(例えばコントローラ10)とを含む。
分散型ストレージアーキテクチャ
図1Aは、拡張可能なビデオサーバ複合体の例示を目的とした実施形態を示すものである。このような複合体は、リソースコントローラ10と、若干のコンテンツライタ12と(これの1つまたは複数が1若しくはそれ以上のファイルシステムを管理してもよい)、若干のビデオポンプ14を含む。コンポーネントの一部または全てが、イーサネットおよびファイバーチャネルスイッチ16および18を通じて、相互接続してもよい。前記ファイバーチャネルスイッチ18は、ビデオポンプ14と、コンテンツライタ12と、前記ストレージアレイ20との間で並行のノンブロッキングアクセスを提供する。
コンテンツライタ12は、外部ファイバーチャネルストレージアレイ20からの1若しくはそれ以上のファイルシステムボリュームを管理する。前記ストレージ20は、ローカルファイルシステムとして前記コンテンツライタ12上に載置してもよい。前記システムは、前記複合体の他のいかなるコンポーネントも直接ファイルシステムを取り付けず、前記アーキテクチャによってビデオポンプ14がそれがあたかもローカルの各ビデオポンプ上に取り付けられているかのように、前記ストレージ20からストリームできるように構成してもよい。1若しくはそれ以上の前記ファイルシステムは、RAIDストレージアレイ上に存在する単一のLUN(論理単位番号)を含む。
インジェスト、または、アセットのロードは前記コンテンツライタ12によって実行される。インジェストされているアセットは、前記コンテンツライタのローカルファイルシステムに書き込まれる。前記リソースコントローラ10は、ファイルシステム全体でのアセット配信を誘導し、アセットが前記ストレージアレイ間で均等に且つランダムにロードされることを確保する。
複合体中のコンテンツライタ12の数cは、必要とされる合計インジェスト容量によって決定される。各コンテンツライタは固定された最大インジェスト容量を有するので、cは単に、前記複合体で所望される合計インジェスト容量を各コンテンツライタの容量で割った数である。
ビデオポンプ14の数、vは、前記複合体から供給されるストリームの数によって決定されるもので、単に、所望されるストリーム合計数を各ビデオポンプの容量で割った数である。
ストレージアレイ20の数、sは、(1)最大ストレージ容量要件、(2)特殊な、またはキャッシュされない、前記複合体のストリーミング必要条件、及び/又は(3)各アレイで利用可能な帯域幅によって決定される。任意の時間においてもっとも多量にロードされるアレイにかかる最大のロード率を高確率で決定するには統計技術を使用する。
ブロックマップキャッシング
共有ストレージアーキテクチャは、前記ビデオポンプ14が前記コンテンツライタのローカルファイルシステムからストリームするのを可能にする。それは、ブロックマップ(bmap)キャッシング機構を使用して行われるが、これにより前記コンテンツライタ12が前記ビデオポンプ14にアセットデータブロックの場所を知らせることで可能になる。これにより、前記ビデオポンプ14は、前記ファイバーチャネルスイッチ18を通じて直接データブロックを読み込み、且つこれらからストリームできるようになる。前記システム中の1若しくはそれ以上のアセット用のブロックマップはそのアセットの存続期間の間、1若しくはそれ以上のビデオポンプ上のローカルファイルシステムでキャッシュされる。各々のビデオポンプで実行されるコンテンツsyncherプロセスは、前記ブロックマップキャッシュが前記コンテンツライタ12上のアセットの状態と一致した状態にあることを確保する。前記ビデオポンプ上のアセット用のブロックマップおよびヒントファイルを常時キャッシュすることにより、コンテンツライタ障害の際にストリーミングの続行を可能にする。
BCFS(ブロックマップキャッシュシステム)と呼ばれる新規なファイルシステム層は、ストリーミングの間、アプリケーションに気づかれることなく、ブロックマップからアセットデータへのルックアップを実行する。前記アセットに加えて、ヒントファイルがストリーミングのために必要とされる。前記ヒントファイルは、前記インジェストプロセスの間、前記コンテンツライタのローカルストレージ上で生成されてもよい。前記ヒントファイルは、前記bmapsと一緒に前記ビデオポンプ14に伝搬され、前記アセットの存続期間中、ローカルファイルシステムで同様に格納される。あるいは、前記ヒントファイルの前記ブロックマップはビデオポンプ14に伝搬されてもよく、それにより、前記ファイルは前記アセットに対するのと同じ様式でアクセス可能になり、より少ないローカルストレージとネットワークリソースを必要とするが、アセットインジェストの間に前記ヒントファイルデータが必要とされる場合は追加の遅れの原因となる。
ブロックマップキャッシュファイルシステム(BCFS)
BCFSは、トランスペアレントなインタフェースをユーザーレベルのアプリケーションに提供する、薄型ファイルシステム層で、これにより、3次ストレージ上のアセットを、まるでローカルにあるかのように、オープンし、そこからストリームすることを可能にする。
BCFSは、ファイルストアではない。つまり、いかなるディスク上のデータ構造も実行しないことを意味する。これは、下にあるUFSファイルシステムを使用して全アセットブロックとヒントファイルを維持する。
BCFSは、スタック可能なvnodeインタフェースの概念に基づいてもよい(参照文献:E.Zadokらの「Extending File Systems Using Stackable Templates」(Proc.1999 USENIX Annual Technical Conf.,June 1999)。仮想ノードまたはvnodeは、前記ファイルシステムネームスペースに現れるオープンファイルやディレクトリのような構成要素を表すためにUnixカーネル内で使用されるデータ構造であってもよい。前記vnodeは、基礎にあるオペレーティングシステムの物理的特性とは独立していてもよい。前記vnodeインタフェースは、より高レベルのモジュール用に、vnodes上のオペレーションを実行するための一定方法を提供する。前記仮想ファイルシステム(VFS)は、前記vnodeインタフェースを含む共通ファイルシステムコードを実行する。
前記vnodeインタフェースは、スタッキングとして公知の概念をサポートするものであるが、ここでファイルシステム機能は、1つのvnodeインタフェース実装が別のものを呼び出すことを可能にすることによりモジュール化する。Vnodeのスタッキングにより、複数のファイルシステム実装を存在させ、順番に各々を呼び出すことが可能になる。スタック可能なvnodeの実装において、前記スタックのあるレベルでのオペレーションは、前記スタック中のすぐ下位のレベルで、同じオペレーションを起動させてもよい。
図2は、ユーザーのread()呼び出しが、どのように、BCFSによって取り扱われるVFSのread操作へと変換できるかを示す。ステップ1〜3は、ユーザープロセスが出した前記readが、VNODE層にパスされて、bcfsに出されるのを表す。ステップ4〜6では、VNODE層を通じて、再帰的なreadを出すことにより、Bcfs_readがアセットのbmapファイルから前記bmapを読み込む。次に、BCFSは、前記bmapを解釈して、前記3次ストレージデバイス上の所望データブロックの場所を決定する。ステップ7は、bcfsが前記解釈済みreadを3次ストレージに対して直接出し、結果を返すのを表す。
BCFSを設計するにあたって下記の考慮点がある。
1.安定コードへの変更は最低限に抑える。
新規なファイルシステム層を導入することによって、ストリーミングアプリケーションは、修正なしに共有ヒントファイルおよびアセットにアクセス可能になる。
2.キャッシュされたブロックマップとヒントファイル用に永続的な格納を提供する。
これは、前記ブロックマップキャッシュのRAM要件を減らし、システム再起動を通じでブロックマップが持続されるようにし、3次ストレージ上のアセットの存続期間中、アセットブロックマップがビデオポンプ14に保持されるのを可能にする。
3.ビデオポンプ14とコンテンツライタ12間のバッファキャッシュの一貫性。
未加工のメタデータの代わりにブロックマップを使用したアセットに共有アクセスを提供することにより、モードだけ共有された場合に起こるかもしれないキャッシュ一貫性の問題を回避することができる。
4.ビデオポンプ14およびコンテンツライタ12間のタイミング要件。
アクティブにインジェストしているコンテンツからストリームしている場合、ヒントファイルへの変更は、迅速に前記コンテンツライタから前記ビデオポンプに通知する必要がある。前記ヒントファイルデータがディスクに同期化するまで待機してから、それを読み込むことは許容外の遅延をもたらすことになる。
FFSファイルシステムは共有ファイルシステムにならないように実装してもよい。たとえば、これは、単一のサーバ読込みまたは書込みマウント済みストレージがあると仮定する。この仮定に基づくと、そのバッファキャッシュにinodeおよび間接ブロックメタデータをキャッシュすることが可能になる。ファイルシステムメタデータがアセットファイルの書き込みまたは削除の結果として変更された場合、このキャッシュを他のサーバと同期化させるためのメカニズムは存在しない。アセットのメタデータがサーバAでキャッシュされて、サーバBが前記アセットに書き込むことにより前記メタデータを変更した場合、サーバAは新規メタデータは認識しない。概念的にはバッファキャッシュ同期化をFFSに加えることは可能であるが、そうすることにより前記ファイルシステムコンポーネントを複雑にし、潜在的に不安定にする。ブロックマップの伝搬は、全てのサーバにブロックマップの現在の状態を公開することによってキャッシュ一貫性の問題を回避する。この方法は、bmap通信のオーバーヘッドのために、汎用共用ファイルシステムではよく機能しない可能性がある点に注意する。しかし、下記の特徴:(1)アセット毎に単一のライター、(2)アセットは一度書き込まれ、何回もストリームされる、(3)アセットブロックサイズが大きいためにコンパクトなbmap表示になる、を有するビデオポンプ複合体においてたいへん効率的である。
VFSスタックは、前記BCFS層を既存の下位層にマウントすることによって設定可能である。たとえば、mount−t bcfs/localfs/assets/cacheにより、マウント位置「/assets/cache」でブロックキャッシュファイルシステム/localfsをマウントする。「/assets/cache」中のファイルへの全アクセスは、前記BCFSモジュールを通過して、前記ブロックマップおよびヒントファイルのコピーを含む下位ローカルファイルシステムにパスされる。前記ブロックマップファイルは、3次ストレージ上の遠隔ファイルの代理の役割をする。コンテンツsyncherプロセスは、ローカルブロックマップファイルが前記3次ストレージ上の実際のアセットファイルの名前と同じになるように(または任意に「.bmap」の拡張子を有する)設定する。
VFS実装の1実施例として、この例示的VFSの実装では、前記ローカルファイルではなくてリモートストレージ上のアセットのリストを示す。これは汎用共用ファイルシステムのための重要な機能であるかもしれないが、bcfsは、最小のオーバーヘッドでアセットへの共有アクセスを高効率で提供する事に関する問題を特に対処するために設計されている。分散型のディレクトリサービスを提供することは、前記bmapファイル(または関係する構造)が前記共有ストレージ上のディレクトリエントリ及びinodeを記載しているメタデータにアクセスするために十分な情報を必要とする場合がある。前記ビデオポンプ14にこの情報を伝搬することは、キャッシュ一貫性を維持し、付加オーバーヘッドを加えるものをロックする準備が必要となる。より重要なことは、これらのメタデータアクセスが前記ストレージアレイ20によるサービス用のアクセスのストリーミングと競争し、それによりストリーミングパフォーマンスの質を下げる可能性があることである。単純な1sのコマンドから生成されるreadの急増によりストリーム配信に混乱を生じさせる場合がある。設計では、ストリーミングの間に、VPによってストレージアレイ20に出される唯一のリクエストは、前記ストリームデータ用のみであり、メタデータのためであることは一切ない。
ブロックマップ定義
このセクションでは実施形態によって、ブロックマップまたはbmapの用語が意味するものを説明する。図3に示すように、ディスクに格納されたアセットは、ブロックと呼ばれる一連の隣接するセクタを含む。ファイルシステムのブロック配置ポリシーによって、ブロックは隣接して配置または、ディスクのアドレス空間の全域でなんらかの方法で分散される。
ブロックは、その論理ブロックアドレス(LBA)および長さによって完全に指定可能である。その場合、ブロックマップは一連のブロックであるが、LBAおよび長さがブロックを識別するために用いられる。
ディスクドライブから高いレベルの処理能力を達成するために、ブロックサイズは、大きなデータ転送でのシーク(ディスクヘッドをブロックの開始へ移動すること)と待ち時間(データが前記ディスクヘッドの下にくるまでプラッタが回転するのを待つ)のコストを清算するために大きい必要がある。ファイバーチャネルディスクドライブの現世代の場合、512Kから2MBまでの範囲のブロックサイズにより、隣接するデータ上での駆動維持可能な処理能力の50%〜80%が提供される。
単一の32ビットLBAおよび16ビット長は、ファイバーチャネルデバイス上のブロックを記載するのに十分であるので、アセットサイズのそのブロックマップのサイズに対する比率は最高で(ブロックサイズ/6):1に等しい。
1.ブロックが前記ファイルシステムによって連続配置される場合は、ブロックマップのサイズは更に縮小可能である。
1MBの連続ブロック配列に基づくと、アセットサイズおよびブロックマップサイズ間の比率は、167,000:1であり、可能な限りFFSがブロックを連続して配置するので通常更にずっと小さい。たとえば、1GBのアセット用のブロックマップは、最高でも6KBである。
前記ファイルシステムのブロックサイズは、前記ストレージアレイによって決定されず、むしろ、前記ビデオポンプ上で実行されるファイルシステムによって決定される。前記ストレージアレイは、論理ブロックアドレス(LBA)を使って作動し、ここで、LBAによって参照される各ブロックは通常512バイト(デバイスの「セクターサイズ」)である。前記ファイルシステムは、ファイルシステムブロックサイズの単位でデータブロックのアドレス指定を行う。FFS用の最大ファイルシステムブロックサイズは、64Kである。これは、処理能力目標を達成するのに十分な大きさではないので、前記ファイルシステムブロックが確実に前記アセットブロックサイズの倍数単位で連続して配置されるように前記ファイルシステムのブロック配置アルゴリズムを修正してもよい。フラグメンテーションの問題を避けるために、単一のアセットブロックサイズを特定ファイルシステム中の全アセット用に使用してもよい。
ブロックマップファイル形式
このセクションは、bmapファイルのサンプル形式を記載する。前記bmapファイルは、ヘッダとその後にブロックディスクリプタのリストを含んでもよい。
ヘッダ
前記bmapファイルヘッダは、バージョン番号および前記ストレージデバイスのSCSI ターゲットおよびのLUN IDを含んでもよい。
Figure 2008507771
「ディスクスライス」は、ドライブを別々の領域または「スライス」に分割可能にするパーティションに類似するFreeBSDの概念である。スライスにより、サーバが複数のオペレーティングシステムをブートできるようになる。各々のOSは、別々のスライス中に存在する。1スライス内で、複数のパーティションが定義されてもよく、ここで各パーティションは、論理ディスクに相当する(「a:」、「b:」、「c:」…等)。3次ストレージをフォーマットする際、特定の定義済スライスとパーティションを使用してもよいが、前記スライスとパーティションは前記bmapヘッダに入れて、ハードコーディングの仮定をさけ、3次ストレージ構成に柔軟性を持たせる。
LUNは、どのストレージアレイRAIDデバイスから読むべきかを識別するためにbcfsによって必要とされる可能性があるので、前記bmapヘッダであってもよい。ストレージアレイRAIDデバイス内において、物理ドライブ間でストライプされるブロックは、ビデオポンプに対して集合的に1つ(またはそれ以上の)LUNとして表される。ビデオポンプは複数のLUNbを使用する場合があるので、前記bmapヘッダのLUN IDがどのRAIDデバイスから読み込むかを識別できると有益である。
ブロックディスクリプタ
ブロックディスクリプタは、ディスク上の単一の連続データブロックの位置とサイズを定義する。論理ブロックアドレス(LBA)および、fs−ブロックサイズの倍数である長さが、ブロックの位置を定義する。
Figure 2008507771
BCFSを使用したアセットキャッシング
前記bmapファイルはアセットがロードされる時にコンテンツライタ12上に生成される。前記ビデオポンプ14上のコンテンツsyncherは、/assets/cache上の前記bmapファイルが前記コンテンツライタ上のファイルに対して最新であることを確保にする。ストリームがビデオポンプに割り当てられる際、あたかもアセットがローカルに格納されるかのように、前記ストリーミングサーバプロセスは前記アセットをオープンし、ファイルから読み込む。
前記ストリーミングアプリケーションがアセットデータ用にVOP_READ読出しリクエストを生成すると、bcfs_readは次に前記ファイルからブロックマップおよびデバイス情報を読み込んで、前記アセットのデータが存在する論理ブロックアドレスを決定し、bcfs_readは、次に必要に応じて前記データ用に1若しくはそれ以上の読込みリクエストを出して復帰する。
アセットがコンテンツライタ12から除去されたあと、ビデオポンプ14上のコンテンツsyncherは/assets/cache/assetname中の該当bmapファイルを削除する。この時に、前記コンテンツsyncherは、2次ローカルディスクキャッシュから前記アセットも消す。
BCFSを使用したヒントファイルキャッシング
ヒントファイルは、「トリックモード」(例えば早送り、巻戻し)を実行するためのアセットメタデータを含む。前記ヒントファイルは、アセットがストレージへロードされるときに、ソフトウェアによってビデオポンプ上に生成されてもよい。それらは、アセットの特定の場面へのポインタを含む。
ヒントファイルは、bmapファイルと同様に取り扱われてもよい。前記ヒントファイルは、アセットがロードされる時に、前記コンテンツライタ上に生成されてもよい。ビデオポンプ上のコンテンツsyncherは、/assets/cache中にある前記ヒントファイルがコンテンツライタ上のファイルに対して最新であることを確保する。ストリームがビデオポンプに割り当てられると、前記ヒントファイルはローカルにキャッシュされているので、ストリーミングサーバは次に前記ヒントファイルを開き、これを使用することができる。
あるいは、アセットがインジェストされる際に、前記アセットのストリーミングの待ち時間要件が許可するならば、前記ヒントファイル用のブロックマップを前記ビデオポンプ上でキャッシュしてもよい。前記ヒントファイルデータ用の読出しリクエストは上記に説明されるasset readと同様にbcfsによって処理されてもよい。
階層キャッシング
上述したように、前記マルチサーバ複合体のビデオポンプ14は、3階層のコンテンツストレージおよびキャッシングを使用する。階層キャッシングの目的は、2つあるが、まず、アセットストレージ帯域幅からストリーミング帯域幅を切り離すことである。前記キャッシュの追加によって、「ホットスポット」またはアレイ間でのロードの不均衡を回避することができる。アセットの人気度にばらつきがあるため、キャッシングなしでは特定ストレージアレイから要求されるストリームの数が不均等になるのでロードの不均衡が容易に発生可能である。もう1つは、アセットの人気度の多様さを利用して、最も経済的なメディアタイプから、異なる人気度のアセットからのストリームを供給することにより、ストリーム毎のコストを減らすことである。たとえば、人気度が高い単一のアセットはRAMから供給されるのが最も費用効率がよいのは、これのストレージ要件は低いが、帯域幅要件が高いからである。アクセスの頻度が低いコンテンツの大きなライブラリは、ストレージ容量が高いが帯域幅要件が低い安価な低速ハードドライブから供給されるのが最も費用効果が高い。階層キャッシングの実装により、現時点におけるアセットの人気度に基づいて最も経済的なメディアからアセットが動的および自動的に供給される。
1次システムは、最も人気がある比較的少数のアセットが供給されるローカルRAMを含む。2次は、最も最近にアセットの全体がストリームされたものを格納する大型のローカルディスクキャッシュを含む。2次キャッシュは、複製およびファイルシステムを持たない未処理のブロック−レベルストレージであってもよい。1次および2次は、両方とも「格納及び転送」タイプのキャッシュである。3次は、適度なストリーミング容量を有する大型の長期ストレージであり、任意時にリクエストされる固有ストリームの最高数に略一致する必要がある。
図4および図5は、ストリーム配信が3つのキャッシュ階層全体でどのように分散可能であるかを示す。ストリーム配信のためにビデオポンプ14をインテリジェントに選択することによって、前記リソースコントローラ10は、1若しくはそれ以上のサーバに接続されたキャッシュ階層全体でこのストリーム配信に近づける。前記リソースコントローラ10は、ビデオポンプ14全体でストリームを配信することによって2次ディスクキャッシュの帯域幅限度が超過されないことを確保するために使用してもよく、各ビデオポンプがキャッシュ可能およびキャッシュ不可能なアセットのバランスの取れたミックスが配給されるようにする。前記リソースコントローラ10は、1若しくはそれ以上のビデオポンプ14と、それらに関連したビューワストリームの現在の特性を監視して、特定のアセットに関連した新規ビューワストリームをどのビデオポンプに割り当てるかを決定する。このような方法で、前記複合体の帯域幅リソースは、グローバルに最適化される。
図4において、uは3次ストレージから読み込まれたアセット数であるが、そのためにちょうど1つのストリームが存在するものである。これらのアセット読取りの場合、ストリーム数n3は3次階層から読み込まれたアセットの数に等しい。u+uは、3次ストレージから読み込まれたアセット数でそのために複数のストリームが存在するものを表す。これらのストリームのために、前記2次キャッシュは帯域幅増幅器のような作用をするが、それは、前記2次キャッシュに入る各アセット読取りに対して、複数のビューワストリームが出てくるからである。前記の数、n+nは、複数ビューワと一緒に2次キャッシュから出てくるストリームの数の合計を表す。nは2次キャッシュから直接出るもので、1次キャッシュに転送されないビューワストリームの数である。2次キャッシュから出てくるビューワストリームは、前記2次キャッシュに入ってくるアセット読取りまたは同じアセットの他のビューワストリームと同期ではないのは、前記キャッシュ時間が各ビューワストリームを移動させるからである。前記1次キャッシュアルゴリズムは、高度にキャッシュ可能な、前記u+uストリーム中のサブセットuを選択し、これらのストリームを1次RAMキャッシュに誘導する。前記2次キャッシュと同様、1次キャッシュでは前記1次レベルでキャッシュされるストリームから複数のストリームが出る。数nは、2次または3次ストレージからのいかなる追加I/O帯域幅も使用しない1次キャッシュから出てくるストリームの合計数である。前記サーバによって提供されるストリームの合計数は、n+n+nである。3次ストレージから要求される合計帯域幅は、u+u+uである。図5は、これらのパラメータをIP2160ビデオポンプ用の標準値に関連付けるものであるが、この標準値はビデオの人気度に関連付けられたzipfianのアセット人気分布によって予測されるものであり、M. Barらによる、「Long−term Movie Popularity Models in Video−on−Demand Systems」(Proceedings of ACM Multimedia Conference,pp.349−357,November 1997)に開示されるものであるが、参照によって本明細書に組み込まれる。
前記2次ローカルディスクキャッシュ増幅効果に加えて、3次ストレージからのアセット読込みは、以前にすでに読み込まれて2次キャッシュにまだ存在するため、必要でない可能性がある。これがどれ程頻繁に起こるかは、3次キャッシュの合計ストレージサイズに対する2次キャッシュの合計サイズの比率によって決定することができる。この比率は、ディスクキャッシュヒット率(DHCR)と呼んでもよい。
1次RAMキャッシュ
このセクションでは、1次RAMキャッシングのアルゴリズムの可能な1実装を概説する。このアルゴリズムについては、拡張可能なサーバ複合体をサポートするためにどのように前記1次キャッシュが他のキャッシュ階層と連動して作動するかを示すためにここで説明する。
インターバルキャッシングは、サーバ処理能力を向上させるために能率的にキャッシュ可能な一時的に関連付けられストリームのセグメントを識別するバッファ管理手段である。前記アルゴリズムは、A.Danらの「Buffer Management Policy for an On−Demand video server」(IBM Research Report RC 19347)において記載されるもので、参照によって本明細書に組み込まれる。サーバコストの削減に関連するアルゴリズム処理能力は、A.Danらの「Buffering and Caching in Large−scale video servers」(Proc.Compcon,pp.217−224,March 1995)において記載されるが、参照によって本明細書に組み込まれる。インターバルは、同じアセットに対する、時間がオーバーラップする一対の連続したストリームリクエストとして定義可能である。インターバルキャッシングによって、前記1対の後方のストリームはキャッシュから提供可能になるが、その際、即時キャッシュ要件は、ストリーム開始時間のオフセットによって表されるデータサイズに等しい。前記ストリームの開始時間が近い場合、大きな節約となる。これは、インターバルキャッシングアルゴリズムによって、全てのインターバルのソートされたリストが維持され、最小のキャッシュ要件でインターバルのセットにキャッシュが割り当てられることにより達成される。
図6は、インターバルキャッシングの1例を示す。ストリームAは、時間0に前記サーバから要求される。少し時間が経過した後で、且つストリームAが完了する前に、ストリームBが要求される。ストリームAおよびBは同じアセットを再生しているので、インターバルが形成される。前記オーバーラップAによって表されるデータ量は計算され、前記インターバルは、インターバルのソートされたリストに挿入される。前記インターバルのために十分なキャッシュメモリがある場合は、そのインターバルに割り当てられ、前記ストリームBの陰影部分はすべてキャッシュから供給される。
静的アセット複製と比較すると、インターバルキャッシングはキャッシュメモリをより効率的に利用し、事前にアセットの人気度を把握する必要も手動のアセット複製も必要としない。トリックモードのストリームは、前記トリックモードによって呼び出される可変インターバル関係のため、1次キャッシングには関与しないが、要求されたデータが偶然1次キャッシュにある場合は、1次キャッシュヒットから益をえることができる。
2次ローカルディスクキャッシュ
前記2次キャッシュの目的は、アセットが外部ストレージ20から読み込まれる際にこれらのアセット全てをキャッシュすることにより、アセットストレージ帯域幅をストリーミング帯域幅から切り離すことである。それは、複製およびファイルシステムを有さない未加工のブロックレベルストレージとして管理される大型ローカルドライブアレイを含んでもよい。それは、「格納及び転送」タイプのキャッシュでもよく、すなわち、前記キャッシュコンテンツは前記ブロックが読み込まれるにつれて書き込まれ、前記保存操作は、外部ストレージからのデータフローに影響を与えないものである。IP2160メディアサーバ(Midstream Technologies)において、たとえば、前記2次キャッシュは、前記内部ドライブ・アレイの一部に内在する。
前記2次ローカルディスクキャッシュは、構造の点で1次インターバルキャッシュに類似するものでもよい。前記ビデオポンプが、キャッシュされたストリームに対してREADを出すと、すなわち、前記ストリームが外部ストレージから要求されると、前記ブロックは、前記2次キャッシュ中の割当ブロックにコピーされ、ディスク上のファイルのブロックを前記キャッシュブロックにマップするハッシュテーブルエントリが生成される。前記ビデオポンプがREADを出す前に、前記ブロックがローカルディスクキャッシュに存在するかどうかを見るために前記ハッシュテーブルを確認してもよい。もしそうならば、前記ブロックは3次ディスクデバイスの代わりに前記キャッシュブロックから読み込まれる。
リソースコントローラのオペレーション
前記ストリームサービスリクエストを処理するためにビデオポンプ14を選択する際、前記リソースコントローラ10は前記アセットをすでにキャッシュに有する可能性が最も高いサーバを検索するが、前記複合体中のリソースの最適な利用を行うために前記複合体中の別のサーバにリクエストを送る場合がある。たとえば、単一の非常に人気があるアセットが1ビデオポンプの1次RAMキャッシュから供給され、このアセットを要求しているビューワストリームの数が、前記ビデオポンプの帯域幅ストリーミング容量を飽和させているとする。この場合、前記ビデオポンプは、3次外部ストレージインタフェースまたは内部2次ディスクドライブを利用しないので、結果として、これらの階層から発せられる大域ストリーム・ロードのよい高いパーセンテージは前記複合体の他のビデオポンプ14に置かれることになる。ビデオポンプ上の2次ローカルキャッシュディスク帯域幅には限度があるので、他のビデオポンプ14上にキャッシュされたストリームの結果として生じた増加は、これらの2次ディスク帯域幅を上回り、実質的に前記複合体がサポートできるストリームの数を制限する可能性がある。前記複合体の全体としての処理能力を最大にするために、図5において示されるような比率で、キャッシュ可及びキャッシュ不可のアセットのバランスのとれたミックスが、各ビデオポンプで維持される必要がある。
前記リソースコントローラ10によって使用される比較的単純な1アルゴリズムによって効果的にこのバランスを維持することができる。各ビデオッポンプの動的キャッシュ状態を記載する前記リソースコントローラおよびビデオポンプ14間の通信を最小にするために、且つ、そのような情報を格納しなければならないことを避けるために、前記リソースコントローラは、要求されたアセットごとに1エントリを有するテーブルを格納し、どのビデオポンプが前記アセットからのビューワストリームを供給したかを示す。短い時間間隔で配置されたストリームにおいてキャッシュは最も能率的なので、最後にアセットを供給したビデオポンプ14に新規のストリームを誘導するとキャッシュの有効利用になる。更に、前記リソースコントローラは、各ビデオポンプで現在有効なストリーム数のカウントを維持する。このカウントが設定されたしきい値を上回ると、前記ストリームは最少のストリーミング帯域幅ロードを有するビデオポンプに誘導される。このメカニズムにより、人気度が高いアセットがビデオポンプ14全体で分配されるのが確保され、人気度が高い任意のアセットにおいても過剰な数のストリームが1つのビデオポンプで処理されないようにする。これは、ビデオポンプ14全体のストリーミングロードも分散する。
要約すると、前記ストリームロード平衡化アルゴリズムの例示的実装では、以下のステップを含む。
1.ストリームリクエストが、リソースコントローラ10にとどく。
2.前記リソースコントローラ10は、どのビデオポンプ14が最後に該当アセットを配信したかを判定する。
3.どのビデオポンプ14も前記アセットを配信していない場合は、前記リソースコントローラ10は最も使用可能なストリーミング帯域幅を有するビデオポンプに、前記リクエストを誘導する。
4.そうではなく、ビデオポンプ14が見つかった場合は、前記リソースコントローラ10は、前記ビデオポンプ上のこのアセットの現在有効な計数が定義済みのしきい値未満であるかどうかを確認する。
a.前記しきい値を上回らない場合、前記リソースコントローラ10は最後のビデオポンプに前記リクエストを誘導する。または、
b.前記しきい値を上回った場合、前記コントローラ10は、最も使用可能なストリーミング帯域幅を有するビデオポンプに前記リクエストを誘導する。
結論
請求項は、本明細書において開示された例示の実施形態に限定されるものではない。
たとえば、ブロックマップキャッシング及びVFSスタック可能ファイルシステムモジュールに基づく分散型のストレージアーキテクチャ、更に、階層キャッシングに基づく拡張可能なストリーミングビデオ・サーバ複合体の前述の開示では、コンテンツライタ、ビデオポンプ、コントローラなどの用語が使用されるが、それらは本出願の保護範囲を制限するためであると、または本明細書で記載される前記システム、デバイスおよび方法は開示された前述の特定の方法および装置に限定されることを意味すると、解釈されるべきではない。さらに、当業者によって理解されるように、本明細書で開示される多くの発明の観点は、ストリーミングメディアまたはビデオ・オン・デマンド以外の目的のために使用されるコンピュータシステムにおいても適用可能である。同様に、本発明は、上述されたような、VFSスタック可能ファイルシステムモジュールおよび/またはブロックマップを使用するシステム、または、特定タイプのコンピュータ、プロセッサ、スイッチ、ストレージデバイス、メモリ、アルゴリズム、その他を使用したシステムに限定されるものではない。前記コンテンツライタ、ビデオポンプ、リソースコントローラ等は、基本的にはプログラム可能なコンピュータであり、本明細書で開示された発明の概念から逸脱することなしに様々な形式を取り得るものである。デジタル処理、ネットワークおよびストレージ機能の急速なコスト低下により、前記システムの発明のオペレーションを変更することなしに、例えば、特定機能用の処理と格納を本明細書で記載された機能要素の1つから別の機能要素に移すことが容易に可能である。多くの場合、本明細書において記載されている実装箇所(すなわち機能要素)は、単に設計者の好みであって、厳密な必要条件ではない。したがって、それらが明白に限定されない限り、保護の範囲が上述された特定の実施形態に限定されるべきものではない。
図1は、分散型ストレージ複合体の1実施形態を概略的に図示する。 図1Aは、図1において示されるシステムのマルチサーバ配置の1つを概略的に図示する。 図2は、ブロックキャッシュファイルシステム(BCFS)の読取り操作の1例を図示する。 図3は、典型的なブロックマップを図示する。 図4は、1次および2次キャッシュの増幅効果の1例を図示する。 図5は、キャッシュ階層間のストリーム配信の1例を図示する。 図6は、インターバルキャッシングの1例を図示する。

Claims (50)

  1. データのストリーミングのための分散型ストレージシステムであって、前記システムは、
    1若しくはそれ以上のアセットファイルを第1のストレージデバイス上のローカルファイルシステム内に格納し、前記アセットファイル用のブロックマップを作成することができる第1のコンピュータと、
    前記ブロックマップのコピーを第2のコンピュータに連結した第2のストレージデバイス上に格納することができるプロセスであって、前記第2のコンピュータは前記第1のストレージデバイスにも連結している、前記プロセスと、
    前記第2のコンピュータが前記第1のストレージデバイス上の前記アセットファイルにアクセスするのを可能にするファイルシステムと、
    を有する、分散型ストレージシステム。
  2. 請求項1記載の分散型ストレージシステムにおいて、前記ブロックマップは、前記第1のストレージデバイスにおいて前記アセットファイルが格納される場所の境界に関する情報を含むものである。
  3. 請求項1記載の分散型ストレージシステムにおいて、前記ファイルシステムは、仮想ファイルシステム(VFS)を有し、前記VFSは、前記第2のコンピュータが前記ブロックマップのコピーを使用して、前記第1のストレージデバイス上にある前記アセットファイルへアクセスすることを可能にするものである。
  4. 請求項1記載の分散型ストレージシステムにおいて、前記第1のコンピュータが前記アセットファイルを格納する時に、前記ローカルファイルシステムは、ブロック配置アルゴリズムを使用して、複数ローカルファイルシステムブロックを連続的に書き込むことができるものである。
  5. 請求項1記載の分散型ストレージシステムにおいて、この分散型ストレージシステムは、さらに、前記第1のコンピュータと、前記第2のコンピュータと、前記ストレージデバイスとの間で並行のノンブロッキングアクセスを提供可能なスイッチを有するものである。
  6. 請求項1記載の分散型ストレージシステムにおいて、前記プロセスは、前記アセットファイルの位置へのポインタを含むヒントファイルを作成することができるものである。
  7. 請求項1記載の分散型ストレージシステムにおいて、前記第1のストレージデバイスは3次ストレージメカニズムを提供することができ、前記第2のコンピュータは1次および2次ストレージメカニズムを有するものである。
  8. 請求項7記載の分散型ストレージシステムにおいて、前記1次ストレージメカニズムはランダムアクセスメモリ(RAM)を有し、前記2次ストレージメカニズムはディスクストレージを有するものである。
  9. 請求項1記載の分散型ストレージシステムにおいて、前記VFSはスタック可能な仮想ノードインタフェースと少なくとも1つの仮想ノードを有するものである。
  10. 請求項1記載の分散型ストレージシステムにおいて、この分散型ストレージシステムは、さらに前記第2のコンピュータに連結する前記第2のストレージデバイス上のブロックマップファイルのコピーが前記第1のストレージデバイス上の対応するアセットファイルの名前と実質的に同じ名前になるように調整することができるコンテンツ同期(syncher)プロセスを有するものである。
  11. 請求項1記載の分散型ストレージシステムにおいて、
    前記ブロックマップは、前記アセットファイルが前記第1のストレージデバイスに格納される場所の境界に関する情報を含み、
    前記ファイルシステムは、前記第2のコンピュータが前記ブロックマップのコピーを使用して、前記第1のストレージデバイス上にある前記アセットファイルにアクセスすることを可能にする仮想ファイルシステム(VFS)と、スタック可能な仮想ノードインターフェースと、少なくとも1つの仮想ノードとを有し、
    前記プロセスは、前記アセットファイルの位置へのポインタを有するヒントファイルを作成することができるものである。
  12. 請求項11記載の分散型ストレージシステムにおいて、前記第1のストレージデバイスは3次ストレージメカニズムを提供することができ、前記第2のストレージデバイスは2次ストレージメカニズムを提供し、且つ、前記第2のコンピュータは1次ストレージメカニズムを有しており、前記1次ストレージメカニズムはランダムアクセスメモリ(RAM)を有し、前記2次ストレージメカニズムはディスクストレージを有するものである。
  13. 請求項11記載の分散型ストレージシステムにおいて、この分散型ストレージシステムは、さらに前記第2のストレージデバイス上のブロックマップフィルのコピーが前記第1のストレージデバイス上の対応するアセットファイルの名前と関連する名前を持つように調整することができるコンテンツ同期(syncher)プロセスを有するものである。
  14. 請求項11記載の分散型ストレージシステムにおいて、この分散型ストレージシステムは、さらに前記第1のコンピュータと、前記第2のコンピュータと、前記ストレージデバイスとの間で並行のノンブロッキングアクセスを提供可能なスイッチを有するものである。
  15. 第1のコンピュータにインターフェースする第1のストレージデバイス上の第1のファイルシステム中に格納されている複数のデータブロックを有するファイルを第2のコンピュータが読み込むのを可能にする仮想ファイルシステムであって、
    スタック可能なvnodeインタフェースと、
    前記第2のコンピュータによって使用される第2のファイルシステムに格納されたブロックマップファイルを使用して前記ファイルを表すものである、vnodeと、
    を有する仮想ファイルシステム。
  16. 請求項15記載の仮想ファイルシステムにおいて、前記ブロックマップファイルは、論理ブロックアドレスと、隣接するセクターの計数を含むブロック長とを含むブロックディスクリプタを含むものである。
  17. 請求項16記載の仮想ファイルシステムにおいて、前記ブロックディスクリプタは、前記ファイルのデータブロックを含む論理格納位置を表すものである。
  18. 請求項16記載の仮想ファイルシステムにおいて、前記ブロックマップファイルは、さらに前記ストレージデバイスのパラメータを有するヘッダを含むものである。
  19. 請求項18記載の仮想ファイルシステムにおいて、前記パラメータは小型コンピューターシステムインターフェース(SCSI)のターゲット識別子を含むものである。
  20. 請求項18記載の仮想ファイルシステムにおいて、前記パラメータは小型コンピューターシステムインターフェース(SCSI)の論理装置番号を含むものである。
  21. 請求項18記載の仮想ファイルシステムにおいて、前記パラメータはディスクスライスを含むものである。
  22. 請求項18記載の仮想ファイルシステムにおいて、前記パラメータは前記第1のファイルシステムのブロックサイズを含むものである。
  23. 請求項18記載の仮想ファイルシステムにおいて、前記パラメータは前記ブロックマップファイルのブロックディスクリプタの計数を含むものである。
  24. 請求項15記載の仮想ファイルシステムにおいて、前記データブロックのサイズは前記第1のファイルシステムのブロックサイズの倍数である。
  25. 請求項15記載の仮想ファイルシステムにおいて、前記ブロックマップファイルは、前記ファイルが前記ストレージデバイス上に格納されるときにプロセスにより作成されるものである。
  26. 請求項25記載の仮想ファイルシステムにおいて、前記プロセスは前記第1のコンピュータで実行可能である。
  27. 請求項15記載の仮想ファイルシステムにおいて、前記第1および第2のファイルシステムのタイプは同一のものである。
  28. 第1のストレージデバイスに格納された第1のファイルからデータを読み込む方法であって、
    ブロックマップを第2のファイルに格納する工程であって、前記ブロックマップは論理ブロックアドレスのリストを有し、且つ前記リスト中の少なくとも1つの論理ブロックアドレスは前記第1のファイルにデータを格納するために使用されるセクタを識別するものである、前記格納する工程と、
    前記第1のファイルと関連付けられた仮想ファイルからデータを読み込むためのシステムコールを発行する工程と、
    前記データと関連付けられた論理ブロックアドレスを取り出す工程と、
    前記関連した論理ブロックアドレスを使用して前記第1のストレージデバイスからデータを読み込む工程と、
    を有する方法。
  29. 請求項28記載の方法において、この方法は、さらに、前記第1のファイルが前記第1のストレージデバイスに格納される時に、前記ブロックマップを作成する工程を有するものである。
  30. 請求項28記載の方法において、この方法は、さらに、前記第1のファイルへのポインタを有するヒントファイルを作成する工程を有する。
  31. 請求項28記載の方法において、前記第2のファイルは第2のストレージデバイスに格納されるものである。
  32. 請求項31記載の方法において、この方法は、さらに、前記第1のストレージデバイスを第1のコンピュータおよび第2のコンピュータに連結させる工程と、前記第2のストレージデバイスを前記第2のコンピュータに連結させる工程とを有するものである。
  33. 請求項28記載の方法において、前記リストは、さらに、各論理ブロックアドレスに関連付けられたブロック長を有し、前記ブロック長は前記識別されたセクタに続く連続セクタの計数を表すものである。
  34. 請求項33記載の方法において、この方法は、さらに、関連したブロック長を取り出す工程を有し、前記データブロックは前記取り出された論理ブロックアドレスおよび前記関連したブロック長によって識別される論理記憶領域に含まれるものである。
  35. コンピュータ可読命令を有するコンピュータ可読媒体であって、
    前記命令は、ブロックマップを第2ファイルに格納する工程であって、前記ブロックマップは論理ブロックアドレスのリストを有し、且つ前記リスト中の少なくとも1つの論理ブロックアドレスは第1のファイルにデータを格納するために使用されるセクタを識別するものである、前記格納する工程と、
    前記第1のファイルに関連した仮想ファイルからデータを読み込むためのシステムコールを発行する工程と
    前記データに関連付けられた論理ブロックアドレスを取り出す工程と、
    前記関連付けられた論理ブロックアドレスを使用して、第1のストレージデバイスからデータを読み込む工程とのためのものである、
    コンピュータ可読媒体。
  36. 請求項35記載のコンピュータ可読媒体において、このコンピュータ可読媒体は、さらに、前記第1のファイルが前記第1のストレージデバイスに格納される際に前記ブロックマップを作成するためのコンピュータ可読命令を有するものである。
  37. 請求項35記載のコンピュータ可読媒体において、このコンピュータ可読媒体は、さらに、前記第1のファイルへのポインタを有するヒントファイルを作成するためのコンピュータ可読命令を有するものである。
  38. 請求項35記載のコンピュータ可読媒体において、前記第2のファイルは第2のストレージデバイスに格納されるものである。
  39. 請求項35記載のコンピュータ可読媒体において、前記リストは、さらに、各論理ブロックアドレスに関連付けられたブロック長を有し、前記ブロック長は前記識別されたセクタに続く連続セクタの計数を表すものである。
  40. 請求項39記載のコンピュータ可読媒体において、このコンピュータ可読媒体は、さらに、関連したブロック長を取り出す工程のためのコンピュータ可読命令を有し、前記データブロックは、前記取り出された論理ブロックアドレスおよび前記関連したブロック長によって識別される論理記憶領域に含まれるものである。
  41. 階層キャッシュシステムであって、
    デジタルアセットを格納可能な3次キャッシュメモリと、
    前記3次キャッシュメモリに連結された複数のサーバとを有し、
    1若しくはそれ以上のサーバは、前記3次キャッシュメモリからのアセットのコピーを受け取り、ストリームを出すことができる2次キャッシュメモリと、
    前記2次キャッシュメモリからのアセットのコピーを受け取り、複数のストリームを出すことができる1次キャッシュメモリと、
    を有する階層キャッシュシステム。
  42. 請求項41記載の階層キャッシュシステムにおいて、前記複数のサーバは複数のビデオポンプを有するものである。
  43. 請求項41記載の階層キャッシュシステムにおいて、この階層キャッシュシステムは、さらに、前記アセットをストリームするために前記複数のビデオポンプの内から1ビデオポンプを選択することができるリソースコントローラをさらに有するものである。
  44. 請求項41記載の階層キャッシュシステムにおいて、前記3次キャッシュメモリはディスクストレージを有するものである。
  45. 請求項41記載の階層キャッシュシステムにおいて、前記3次キャッシュメモリはディスクアレイを有するものである。
  46. 請求項41記載の階層キャッシュシステムにおいて、前記2次キャッシュメモリはディスクストレージを有するものである。
  47. 請求項41記載の階層キャッシュシステムにおいて、前記1次キャッシュメモリはランダムアクセスメモリ(RAM)を有するものである。
  48. 3次キャッシュと複数のサーバとを有する階層キャッシュシステム中のアセットをストリームするための方法であって、前記サーバの各々は前記3次キャッシュに連結され、1次キャッシュおよび2次キャッシュを含むものであり、
    前記複数のサーバの内で、前記3次キャッシュから前記アセットをストリームさせている最後のサーバと、前記最後のサーバの第1次および第2次キャッシュからのアセットのストリーム計数とを決定する工程と、
    前記計数が予め定められたしきい値未満の場合は、前記最後のサーバから前記アセットをストリームさせる工程と、
    そうでない場合は、最大の使用可能なストリーミング帯域幅を有するサーバから前記アセットをストリームさせる工程と
    を有するものである方法。
  49. 請求項48記載の方法において、前記サーバはビデオポンプとして構成されるものである。
  50. 請求項48記載の方法を実行するためのコンピュータ可読命令を有するコンピュータ可読媒体。
JP2007522753A 2004-07-21 2005-07-20 ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ Active JP4663718B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US58957804P 2004-07-21 2004-07-21
US59043104P 2004-07-23 2004-07-23
PCT/US2005/025883 WO2006012418A2 (en) 2004-07-21 2005-07-20 Distributed storage architecture based on block map caching and vfs stackable file system modules

Publications (2)

Publication Number Publication Date
JP2008507771A true JP2008507771A (ja) 2008-03-13
JP4663718B2 JP4663718B2 (ja) 2011-04-06

Family

ID=35079211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007522753A Active JP4663718B2 (ja) 2004-07-21 2005-07-20 ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ

Country Status (6)

Country Link
US (1) US7640274B2 (ja)
EP (1) EP1782287A2 (ja)
JP (1) JP4663718B2 (ja)
KR (1) KR100899462B1 (ja)
CN (1) CN101027668B (ja)
WO (1) WO2006012418A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517644A (ja) * 2009-02-13 2012-08-02 インディリンクス カンパニー リミテッド 高速記憶装置をキャッシュとして使用するストレージシステム
JP2013536515A (ja) * 2010-08-25 2013-09-19 ネヴェックス ヴァーチャル テクノロジーズ インコーポレイテッド キャッシュ階層化のための方法およびシステム

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7926052B2 (en) * 2004-11-19 2011-04-12 Hewlett-Packard Development Company, L.P. Stacked file systems and methods
US20060271972A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Popularity-based on-demand media distribution
US8396938B2 (en) * 2005-09-15 2013-03-12 Emc Corporation Providing direct access to distributed managed content
US8447827B2 (en) 2005-09-15 2013-05-21 Emc Corporation Providing local access to managed content
US20080002942A1 (en) * 2006-05-24 2008-01-03 Peter White Method and apparatus for creating a custom track
US8831408B2 (en) 2006-05-24 2014-09-09 Capshore, Llc Method and apparatus for creating a custom track
US8805164B2 (en) 2006-05-24 2014-08-12 Capshore, Llc Method and apparatus for creating a custom track
US20070274683A1 (en) * 2006-05-24 2007-11-29 Michael Wayne Shore Method and apparatus for creating a custom track
US7783686B2 (en) * 2006-06-16 2010-08-24 Microsoft Corporation Application program interface to manage media files
US7603387B2 (en) * 2006-06-16 2009-10-13 Microsoft Corporation Techniques to manage media files
US20080033980A1 (en) * 2006-08-03 2008-02-07 Jaroslav Andrew Delapedraja System and method for automatically adjusting file system settings
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US8543700B1 (en) 2007-06-28 2013-09-24 Emc Corporation Asynchronous content transfer
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8677241B2 (en) * 2007-09-10 2014-03-18 Vantrix Corporation Method and system for multimedia messaging service (MMS) to video adaptation
US8220051B2 (en) * 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
US8171167B2 (en) * 2007-11-13 2012-05-01 Vantrix Corporation Intelligent caching of media files
CN101334823B (zh) * 2008-07-17 2010-07-07 成都市华为赛门铁克科技有限公司 一种对文件虚拟化处理方法及装置
US8589993B2 (en) * 2008-08-29 2013-11-19 At&T Intellectual Property I, L.P. Distributing on-demand multimedia content
KR100983479B1 (ko) * 2009-02-11 2010-09-27 엔에이치엔(주) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2010099992A1 (en) * 2009-03-02 2010-09-10 International Business Machines Corporation Method, system and computer program product for managing the placement of storage data in a multi tier virtualized storage infrastructure
US10831721B2 (en) * 2009-03-23 2020-11-10 Riverbed Technology, Inc. Virtualized data storage system architecture
WO2011066644A1 (en) 2009-12-01 2011-06-09 Vantrix Corporation System and methods for efficient media delivery using cache
US9058334B2 (en) * 2010-02-11 2015-06-16 Emc Corporation Parallel file system processing
CN101794306B (zh) * 2010-03-02 2012-10-24 华平信息技术股份有限公司 多类型录像文件分块存储系统及方法
US8843459B1 (en) 2010-03-09 2014-09-23 Hitachi Data Systems Engineering UK Limited Multi-tiered filesystem
US8504670B2 (en) * 2010-03-23 2013-08-06 Riverbed Technology, Inc. Virtualized data storage applications and optimizations
JP5592493B2 (ja) * 2010-04-13 2014-09-17 株式会社日立製作所 ストレージネットワークシステム及びその制御方法
US8285762B2 (en) 2010-05-11 2012-10-09 International Business Machines Corporation Migration of metadata and storage management of data in a first storage environment to a second storage environment
CN102222213B (zh) * 2010-07-29 2013-08-07 郑文明 一种基于开放式Web Service架构的分布式视觉计算方法
CN102385606B (zh) * 2010-09-03 2016-08-03 腾讯科技(深圳)有限公司 一种分布式数据仓库的访问方法和装置
CN101944124B (zh) * 2010-09-21 2012-07-04 卓望数码技术(深圳)有限公司 分布式文件系统管理方法、装置以及对应的文件系统
US8495108B2 (en) 2010-11-30 2013-07-23 International Business Machines Corporation Virtual node subpool management
US8396832B2 (en) 2010-12-08 2013-03-12 International Business Machines Corporation Independent fileset generations in a clustered redirect-on-write filesystem
US8626713B2 (en) 2010-12-08 2014-01-07 International Business Machines Corporation Multiple contexts in a redirect on write file system
US8904006B2 (en) 2010-12-08 2014-12-02 International Business Machines Corporation In-flight block map for a clustered redirect-on-write filesystem
US8458181B2 (en) 2010-12-08 2013-06-04 International Business Machines Corporation Distributed free block map for a clustered redirect-on-write file system
CN102043732A (zh) * 2010-12-30 2011-05-04 成都市华为赛门铁克科技有限公司 一种缓存分配方法及装置
CN102215163B (zh) * 2011-03-24 2014-04-09 东莞中山大学研究院 一种多服务器视频点播处理方法
CN102314480B (zh) * 2011-07-05 2013-04-10 万达信息股份有限公司 一种针对海量数据的分布式数据存储方法
CN102355596B (zh) * 2011-10-11 2013-08-28 浪潮电子信息产业股份有限公司 一种适用于视频服务的缓存服务器部署方法
US9167049B2 (en) * 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching
US10097406B2 (en) * 2012-03-19 2018-10-09 Level 3 Communications, Llc Systems and methods for data mobility with a cloud architecture
CN103488640B (zh) * 2012-06-11 2017-01-25 北汽福田汽车股份有限公司 一种映射文件的自动分析方法和装置
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
US20140071157A1 (en) * 2012-09-07 2014-03-13 Htc Corporation Content delivery systems with prioritized content and related methods
US9015470B2 (en) * 2012-11-08 2015-04-21 Morega Systems, Inc Adaptive video server with fast initialization and methods for use therewith
US9276978B2 (en) 2012-12-31 2016-03-01 Microsoft Technology Licensing, Llc Program based caching in live media distribution
US9116904B2 (en) 2013-03-14 2015-08-25 Microsoft Technology Licensing, Llc File system operation on multi-tiered volume
US9141626B2 (en) 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9524300B2 (en) 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Heterogenic volume generation and use system
US9262313B2 (en) 2013-03-14 2016-02-16 Microsoft Technology Licensing, Llc Provisioning in heterogenic volume of multiple tiers
CN103327079A (zh) * 2013-05-31 2013-09-25 青岛海信传媒网络技术有限公司 一种多媒体资源的缓存方法及装置
JPWO2014199568A1 (ja) * 2013-06-12 2017-02-23 日本電気株式会社 永続記憶装置へのデータ書込制御方法
CN103686198A (zh) * 2013-12-30 2014-03-26 优视科技有限公司 视频数据的处理方法、装置和系统
ITRM20130728A1 (it) * 2013-12-31 2015-07-01 Prb S R L Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.
CN103777903A (zh) * 2014-01-23 2014-05-07 武汉市烽视威科技有限公司 一种适用于流媒体服务的数据存储方法
KR20170019799A (ko) * 2015-08-12 2017-02-22 삼성전자주식회사 파일 시스템을 제어하는 전자 장치 및 그 동작 방법
KR20180121733A (ko) 2017-04-28 2018-11-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107506494B (zh) * 2017-09-27 2019-04-12 Oppo广东移动通信有限公司 文件处理方法、移动终端及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148565A (ja) * 1998-11-13 2000-05-30 Hitachi Ltd 異種オペレーティングシステムファイル共用方法およびファイル共用システム
JP2002196954A (ja) * 2000-12-27 2002-07-12 Toshiba Corp 記憶資源自動管理方法及びネットワークコンピュータシステム
JP2004199535A (ja) * 2002-12-20 2004-07-15 Hitachi Ltd 計算機システムおよびそのストレージの管理方法

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2582175A1 (fr) * 1985-05-20 1986-11-21 Alcatel Espace Procede et dispositif de telecommunications par satellite en acces multiple a repartition dans le temps
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
US5367636A (en) * 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit
US5768598A (en) * 1993-09-13 1998-06-16 Intel Corporation Method and apparatus for sharing hardward resources in a computer system
US5515379A (en) * 1993-10-18 1996-05-07 Motorola, Inc. Time slot allocation method
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
US5638516A (en) * 1994-08-01 1997-06-10 Ncube Corporation Parallel processor that routes messages around blocked or faulty nodes by selecting an output port to a subsequent node from a port vector and transmitting a route ready signal back to a previous node
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6138147A (en) * 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US6112226A (en) * 1995-07-14 2000-08-29 Oracle Corporation Method and apparatus for concurrently encoding and tagging digital information for allowing non-sequential access during playback
US7058721B1 (en) * 1995-07-14 2006-06-06 Broadband Royalty Corporation Dynamic quality adjustment based on changing streaming constraints
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US5729292A (en) 1995-12-21 1998-03-17 Thomson Multimedia, S.A. Optimizing performance in a packet slot priority packet transport system
US5854924A (en) * 1996-08-08 1998-12-29 Globetrotter Software, Inc. Static debugging tool and method
US5781227A (en) * 1996-10-25 1998-07-14 Diva Systems Corporation Method and apparatus for masking the effects of latency in an interactive information distribution system
US6166730A (en) * 1997-12-03 2000-12-26 Diva Systems Corporation System for interactively distributing information services
US6253375B1 (en) * 1997-01-13 2001-06-26 Diva Systems Corporation System for interactively distributing information services
US6208335B1 (en) * 1997-01-13 2001-03-27 Diva Systems Corporation Method and apparatus for providing a menu structure for an interactive information distribution system
US6305019B1 (en) 1997-01-13 2001-10-16 Diva Systems Corporation System for interactively distributing information services having a remote video session manager
US6192408B1 (en) * 1997-09-26 2001-02-20 Emc Corporation Network file server sharing local caches of file access information in data processors assigned to respective file systems
US5941969A (en) * 1997-10-22 1999-08-24 Auspex Systems, Inc. Bridge for direct data storage device access
US6219693B1 (en) * 1997-11-04 2001-04-17 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6128717A (en) * 1998-01-20 2000-10-03 Quantum Corporation Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device
US6697846B1 (en) * 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6314573B1 (en) * 1998-05-29 2001-11-06 Diva Systems Corporation Method and apparatus for providing subscription-on-demand services for an interactive information distribution system
WO1999062261A1 (en) * 1998-05-29 1999-12-02 Diva Systems Corporation Interactive information distribution system and method
US6157051A (en) * 1998-07-10 2000-12-05 Hilevel Technology, Inc. Multiple function array based application specific integrated circuit
US7035278B2 (en) * 1998-07-31 2006-04-25 Sedna Patent Services, Llc Method and apparatus for forming and utilizing a slotted MPEG transport stream
US6574591B1 (en) * 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6618363B1 (en) * 1998-10-09 2003-09-09 Microsoft Corporation Method for adapting video packet generation and transmission rates to available resources in a communications network
US6389218B2 (en) 1998-11-30 2002-05-14 Diva Systems Corporation Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence
JP2000175189A (ja) * 1998-12-07 2000-06-23 Univ Tokyo 動画符号化方法およびそれに用いる動画符号化装置
US6785338B1 (en) 1999-01-19 2004-08-31 Sarnoff Corporation Constraining video production based on compression-related information
US6588017B1 (en) 1999-01-27 2003-07-01 Diva Systems Corporation Master and slave subscriber stations for digital video and interactive services
WO2000059220A1 (en) 1999-03-30 2000-10-05 Diva Systems Corporation User access to secondary content associated with a primary content
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US8065708B1 (en) 1999-03-31 2011-11-22 Cox Communications, Inc. Method for reducing latency in an interactive information distribution system
AU4048200A (en) 1999-03-31 2000-10-16 Diva Systems Corporation Method for distributing and managing content for on demand applications utilizing local storage
WO2000059203A2 (en) 1999-03-31 2000-10-05 Diva Systems Corporation Method and apparatus for performing impulse authorizations within a video on demand environment
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US7127737B1 (en) 2000-01-26 2006-10-24 Sedna Patent Services, Llc Bandwidth management techniques for delivery of interactive program guide
US6499039B1 (en) * 1999-09-23 2002-12-24 Emc Corporation Reorganization of striped data during file system expansion in a data storage system
DE60031145T2 (de) 1999-10-28 2008-02-21 nCUBE Corp., Beaverton System mit adaptiver bandbreite und verfahren für datenrundsendung
US7564873B1 (en) 1999-12-10 2009-07-21 Cox Communications, Inc. Method and apparatus for providing in-band messaging within a video on demand environment
WO2001043438A1 (en) 1999-12-10 2001-06-14 Diva Systems Corporation Method and apparatus for storing content within a video on demand environment
US7096481B1 (en) * 2000-01-04 2006-08-22 Emc Corporation Preparation of metadata for splicing of encoded MPEG video and audio
PT1264478E (pt) 2000-01-13 2008-10-30 Broadband Royalty Corp Método e equipamento para identificação dum encaminhamento de sinal para distribuição de vídeos-a-pedido, enviados para um terminal de assinante
US7159235B2 (en) * 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for content distribution via non-homogeneous access networks
CA2398071A1 (en) 2000-01-28 2001-08-02 Diva Systems Corporation A system for preprocessing content for streaming server
US6988188B2 (en) * 2000-03-01 2006-01-17 Realtek Semiconductor Corp. Data object architecture and method for xDSL ASIC processor
US20010034786A1 (en) * 2000-03-15 2001-10-25 Ibm Method ane system for streaming media data in heterogeneous environments
EP1297438A1 (en) * 2000-04-28 2003-04-02 Live365, Inc. System and method for reducing the resources required to deliver streaming media
US6745284B1 (en) * 2000-10-02 2004-06-01 Sun Microsystems, Inc. Data storage subsystem including a storage disk array employing dynamic data striping
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7272613B2 (en) * 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
US7031343B1 (en) 2000-11-17 2006-04-18 Alloptic, Inc. Point-to-multipoint passive optical network that utilizes variable-length packets
US7383288B2 (en) * 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US20020156973A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
US7444662B2 (en) * 2001-06-28 2008-10-28 Emc Corporation Video file server cache management using movie ratings for reservation of memory and bandwidth resources
GB2377284B (en) * 2001-07-02 2005-06-22 Sun Microsystems Inc Computer storage systems
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US7174086B2 (en) * 2001-10-23 2007-02-06 Thomson Licensing Trick mode using dummy predictive pictures
US7546364B2 (en) * 2002-05-16 2009-06-09 Emc Corporation Replication of remote copy data for internet protocol (IP) transmission
US7657917B2 (en) * 2002-05-23 2010-02-02 Microsoft Corporation Interactivity emulator for broadcast communication
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
US7197516B1 (en) * 2002-07-22 2007-03-27 Veritas Operating Corporation Method and system for an overlay filesystem
ATE346462T1 (de) 2002-10-10 2006-12-15 Koninkl Philips Electronics Nv Itv-trick-abspielen ber eine digitale schnittstelle
US7260576B2 (en) * 2002-11-05 2007-08-21 Sun Microsystems, Inc. Implementing a distributed file system that can use direct connections from client to disk
US8225194B2 (en) * 2003-01-09 2012-07-17 Kaleidescape, Inc. Bookmarks and watchpoints for selection and presentation of media streams
US20040158867A1 (en) * 2003-02-10 2004-08-12 General Instrument Corporation Methods, systems, and apparatus for determining transport stream channels for video-on-demand applications
US7051176B2 (en) * 2003-03-25 2006-05-23 Emc Corporation Reading data provided to a remote storage device
JP4301849B2 (ja) * 2003-03-31 2009-07-22 株式会社日立製作所 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法
US7233946B1 (en) * 2003-04-11 2007-06-19 Sun Microsystems, Inc. File interval lock generation interface system and method
US6986019B1 (en) * 2003-04-21 2006-01-10 Maxtor Corporation Method and apparatus for detection and management of data streams
US7484050B2 (en) * 2003-09-08 2009-01-27 Copan Systems Inc. High-density storage systems using hierarchical interconnect
US7305529B1 (en) * 2003-12-19 2007-12-04 Symantec Corporation Cooperative data replication
US7039662B2 (en) * 2004-02-24 2006-05-02 Hitachi, Ltd. Method and apparatus of media management on disk-subsystem
JP4718122B2 (ja) * 2004-04-06 2011-07-06 株式会社日立製作所 メディア配信装置
US7318190B2 (en) * 2004-06-10 2008-01-08 Intel Corporation Storage device parity computation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148565A (ja) * 1998-11-13 2000-05-30 Hitachi Ltd 異種オペレーティングシステムファイル共用方法およびファイル共用システム
JP2002196954A (ja) * 2000-12-27 2002-07-12 Toshiba Corp 記憶資源自動管理方法及びネットワークコンピュータシステム
JP2004199535A (ja) * 2002-12-20 2004-07-15 Hitachi Ltd 計算機システムおよびそのストレージの管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517644A (ja) * 2009-02-13 2012-08-02 インディリンクス カンパニー リミテッド 高速記憶装置をキャッシュとして使用するストレージシステム
JP2013536515A (ja) * 2010-08-25 2013-09-19 ネヴェックス ヴァーチャル テクノロジーズ インコーポレイテッド キャッシュ階層化のための方法およびシステム

Also Published As

Publication number Publication date
KR20070083489A (ko) 2007-08-24
US7640274B2 (en) 2009-12-29
EP1782287A2 (en) 2007-05-09
KR100899462B1 (ko) 2009-05-27
WO2006012418A3 (en) 2006-06-29
JP4663718B2 (ja) 2011-04-06
WO2006012418A2 (en) 2006-02-02
WO2006012418A9 (en) 2007-03-08
US20060064536A1 (en) 2006-03-23
CN101027668A (zh) 2007-08-29
CN101027668B (zh) 2012-01-04

Similar Documents

Publication Publication Date Title
JP4663718B2 (ja) ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ
US7631148B2 (en) Adaptive file readahead based on multiple factors
US7237061B1 (en) Systems and methods for the efficient reading of data in a server system
JP4824085B2 (ja) ネットワークファイルシステムをキャッシュするシステム、及び方法
US7058763B2 (en) File system for caching web proxies
US9348842B2 (en) Virtualized data storage system optimizations
US7797477B2 (en) File access method in a storage system, and programs for performing the file access
US20040193760A1 (en) Storage device
US9424314B2 (en) Method and apparatus for joining read requests
CN114860163B (zh) 一种存储系统、内存管理方法和管理节点
Kandlur et al. Design of a multimedia storage server
CN102521279A (zh) 一种流媒体文件播放方法、系统及播放器
US20030154246A1 (en) Server for storing files
US5909693A (en) System and method for striping data across multiple disks for continuous data streaming and increased bus utilization
US5737577A (en) Complementary block storage for breater minimumdata transfer rate
Duan et al. A high‐performance distributed file system for large‐scale concurrent HD video streams
Halvorsen et al. Storage system support for continuous media applications. 2. Multiple disks, memory, and integration
CN116795878A (zh) 数据处理方法及装置、电子设备及介质
Zhao et al. IncFS: an integrated high-performance distributed file system based on NFS
Jin et al. Multimedia storage server
Lim A NEW STORAGE ARCHITECTURE FOR A FLASH-MEMORY VIDEO SERVER
Wang Data caching and data allocation for multimedia servers

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100812

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: 20101207

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: 20110105

R150 Certificate of patent or registration of utility model

Ref document number: 4663718

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: 20140114

Year of fee payment: 3

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

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