JP2004500660A5 - - Google Patents

Download PDF

Info

Publication number
JP2004500660A5
JP2004500660A5 JP2001565610A JP2001565610A JP2004500660A5 JP 2004500660 A5 JP2004500660 A5 JP 2004500660A5 JP 2001565610 A JP2001565610 A JP 2001565610A JP 2001565610 A JP2001565610 A JP 2001565610A JP 2004500660 A5 JP2004500660 A5 JP 2004500660A5
Authority
JP
Japan
Prior art keywords
storage
file
network
client
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001565610A
Other languages
English (en)
Other versions
JP2004500660A (ja
Filing date
Publication date
Priority claimed from US09/695,499 external-priority patent/US7428540B1/en
Priority claimed from US09/753,141 external-priority patent/US7506034B2/en
Application filed filed Critical
Publication of JP2004500660A publication Critical patent/JP2004500660A/ja
Publication of JP2004500660A5 publication Critical patent/JP2004500660A5/ja
Pending legal-status Critical Current

Links

Description

ネットワークストレージシステム
本発明は、ストレージの分野、および、特にローカル装置の使用を通してリモートストレージにアクセスすることを目的とする。
音楽、フィルムおよび写真の急速なデジタル化にともない、顧客の需要により、インターネットはデジタル媒体の全ての形式に対する最も好ましい移送機構になっている。インターネットを使用して、ユーザーは、彼(女)らの好きな映画、歌または個人的な思い出の品に対する即時の全世界に及ぶアクセスを有する。メディアコンテンツの製作者および所有者が全世界に及ぶ配布のための第一の方法としてますますインターネットを使用するにつれて、インターネットを通じて利用できるリッチメディアコンテンツの総計の量は極めて急速な割合で増加している。
インターネットを通じて利用できるリッチメディアオブジェクトの数が、指数的に増大しているだけでなく、本願明細書において一般にオブジェクトと称されるメディアのサイズもまた、劇的に増大している。中央値のウエブオブジェクトは、5キロバイト(KB)のサイズであるが、一方、リッチメディアオブジェクトのサイズは、100ないし100万倍大きい場合がある。例えば、高解像度デジタル写真は画像あたり平均で500KBに達する。デジタル音楽は曲あたり3ないし5メガバイト(「MB」)に達し、および、デジタル映画は大きさにおいて4ギガバイト(「GB」)まで達する場合がある。
パーソナルコンピュータ、デジタルカムコーダ、デジタルカメラおよびパーソナルデジタルオーディオプレーヤの数が増大するにつれて、インターネットを横断してメディアファイルを格納して、共有して、取り出すインターネット帯域幅に対する需要も増える。インターネットバックボーンの成長を支える、広帯域のデジタル加入者線(「DSL」)、ケーブルモデムおよびデジタル放送衛星ネットワークの使用が人気を増すにつれて、インターネットをリッチメディアオブジェクトに対する主要な配信チャンネルとして使用する需要もまた、人気を増す。この発展は広帯域ネットワークの設置がリッチメディアデバイスの使用を駆動する良いサイクルを引き起こし、それは次にネットワーク帯域幅、その他の更なる改善に対する需要を創造する。
インターネットを横断するリッチメディアオブジェクトの分散は、これらのリッチメディアオブジェクトを格納するために増加した記憶容量に対するニーズを生成する。パーソナルメディアデバイスの数が増大し、および、ネットワーク帯域幅が拡大するにつれて、さまざまなMP3ファイル、写真、フィルムおよびビデオクリップを格納することを必要とする記憶媒体の量もまた、増大する。また、より多くのストレージが直ちに利用できるようになるにつれて、より多くの人々がインターネットを使用して、彼(女)らのリッチメディアオブジェクト(例えば家族のデジタル写真)を分類し、格納し、およびそれにアクセスする。
現在まで、既定の事業ベンダからの従来のストレージソリューションだけが、リッチメディアリポジトリを導入するウェブサイト開発者に利用できた。インターネットの用途に、現在の既存のストレージ技術を採用することに関する1つの難題は、現在のおよび将来のスケーラビリティ要件を満たすことである。現在、大規模ストレージシステムは2、3ダースのテラバイトまで拡大するだけである。この量のストレージ空間は、十分な分量のリッチメディアオブジェクトを格納するのに不十分である。例えば、アメリカオンライン(「AOL」)ユーザーのほんの10パーセントが2本の15分のビデオを個人ホームページ上に配置する場合、1ペタバイト(すなわち1000テラバイト)のストレージが必要であろう。現在の事業ストレージシステムアーキテクチャは、このレベルの記憶容量をサポートすることができない。
インターネットの世界では、大容量記憶域を供給することに加えて、広域ネットワークを横切ってストレージに対する汎用アクセスを与えることもまた、きわめて重要である。それらのコンテンツサーバ、キャッシュサーバまたはストリームサーバの位置に関係なく、コンテンツプロバイダはリッチメディアオブジェクトの全てのストアに対して遍在するアクセスを提供することを理想的には好むであろう。ストレージエリアネットワークおよびネットワーク付加ストレージ技術を含む、現在の技術は、広域ネットワークに対する直接アクセスを提供しない。同じ大都市圏内に位置するサーバだけが、これらの種類のストレージシステムに直接アクセスすることができる。
インターネットユーザーが、数百人のユーザーの代わりに、何万またはさらに何百万ものユーザーに達するので、需要が増加するにつれて、大容量記憶における別の難題はメディアの配信を拡大する能力である。真のインターネットベースのストレージシステムは、世界中の全てからの何百万もの同時要求のピーク負荷を処理することが可能でなければならない。従来のストレージアーキテクチャは、サーバCPUの速度に適合させるために最速の可能な応答時間から2、3百の同時要求をサポートするように設計されている。インターネットにとって、ストレージシステムは広域ネットワークの速度で文字通り何百万もの同時ダウンロードを処理することが可能でなければならない。したがって、これらの従来のストレージアーキテクチャは、この記憶装置が、広域ネットワークの待ち時間要件をはるかに超える非常に少ない同時トランザクションを処理するので、広域ネットワークと「インピーダンスマッチ」していない。加えて、これらの従来のストレージアーキテクチャは一般的に高価なディスクおよび高価な接続技術によって実施される。
リッチメディアオブジェクトのストレージに関する別の問題は、製品化までの時間である。製品化までの時間は、しばしば新しいリッチメディアウェブサイトに対する決定的な要件である。成長率は、月あたりテラバイトに達する。新しい容量をすばやくオンラインにもたらすことは、動きが速い市場において戦略的な利点になる。一般的に、従来のストレージソリューションによって、顧客が、完全に使用可能な複数テラバイトの記憶ユニットをコンテンツプロバイダサイトと統合するのに2ないし6ヵ月かかる。この始動時間は、迅速に増加しているビジネス需要を満たすのが遅くなることである。この需要を予想して大量の過剰設備を前もって建設しておくことは予測不可能な需要スパイクを処理する1つの戦術であるが、この方法は極端に高価である。
従来のストレージアーキテクチャは、データベースおよびファイルサーバアプリケーションに対して最適化されてきた。インターネットは、スケーラビリティ、地球規模のアクセス、ユーザーアカウントおよび迅速な配備を含む、記憶装置に関するまったく新しい群の需要を導入する。次の数年にわたってインターネットを通じて供給されるリッチメディアの爆発的増加によって、これは重要な局面に達しつつある。リッチコンテンツの来たるべき表題波は、さらに最も強力な事業ストレージアーキテクチャの能力にまさる。したがって、インターネットレディのリッチメディアストレージシステムを設計する新しい方法で新しいパラダイムを開発する需要がある。
ネットワークストレージシステムが、仮想ファイルシステム(「VFS)、および、ストレージセンタを含む。このVFSは、このネットワークストレージシステムのファイルを管理するためにファイルシステム情報を格納する。このストレージセンタは、ネットワークストレージシステムのファイルを格納する。VFSおよびストレージセンタは、クライアントが、ファイルシステム操作を遂行するためにVFSにアクセスし、および、このクライアントがファイルをアップロード/ダウンロードするためにストレージセンタにアクセスするように、分離される。
一実施態様において、クライアントはストレージポートを通してネットワークストレージシステム(例えば仮想ファイルシステムおよびストレージセンタ)にアクセスする。このストレージポートは、ネットワークストレージシステムのクライアントのファイルへのアクセスを提供する。
一実施態様において、クライアントは、標準のNFSまたはCIFS操作を通して、ストレージポートをマウントして、ファイルシステム操作を実行し、かつローカルファイルシステム操作を発行することによってストレージポートにアクセスする。応答して、このストレージポートはローカルファイルシステム操作をネットワークストレージシステム操作に変換する。フェールオーバ状態の場合には、追加ストレージポートが、ネットワークストレージシステムにアクセスするようにクライアントにおいて構成されることができる。
一実施態様において、ストレージセンタは、複数の分散オブジェクトストレージマネージャ(DOSM)および複数の高機能ストレージノードを含むストレージクラスタを含む。DOSMは、ストレージセンタにアクセスする要求を受け取る。この高機能ストレージノードは、ネットワークストレージシステムのファイルを格納して、DOSMからのアクセス要求にサービスを提供する。このネットワークストレージシステムは、地理的に異なる場所における追加ストレージセンタを含む。一実施態様において、このネットワークストレージシステムは、異なるストレージセンタ内に格納されるファイルを含む、高機能ストレージノードに格納されるファイルに関するファイル情報をDOSMに保持するためにマルチキャストプロトコルを使用する。このストレージセンタは、ロードバランシング機構をさらに含む。このロードバランシング機構は、ストレージセンタにアクセスする需要に基づいてアクセス要求に対してDOSMを選択する。加えて、DOSMは高機能ストレージノード内に格納されるファイルの少なくともサブセットをキャッシュに格納するためのデータキャッシュを含む。ストレージセンタにおけるロードバランシングの使用は、DOSMのデータキャッシュ内の高需要のファイルに対してデータをキャッシュに格納することに結びつく。
(図面の簡単な説明)
図1は、本発明のストレージシステムに対する一実施態様を例示するブロック図である。
図2は、メディアストレージサービスとしてのネットワークストレージシステムの使用に対する一実施態様を例示する。
図3は、ストレージクラスタに対する一実施態様を例示するブロック図である。
図4は、ストレージクラスタ内のダウンロード操作に対する一実施態様を例示する流れ図である。
図5は、ネットワークストレージシステム内の認証に対する一実施態様を例示する流れ図である。
図6は、分散オブジェクトストレージマネージャ(「DOSM」)の一実施態様を例示する。
図7は、高機能ストレージノードに対する一実施態様を例示するブロック図である。
図8は、ストレージクラスタ内のアップロード要求を処理するための一実施態様を例示する流れ図である。
図9は、オブジェクトファイルの一意の指紋を生成するための一実施態様を例示する流れ図である。
図10は、ストレージクラスタ内のデータをキャッシュに格納するための一実施態様を例示するブロック図である。
図11は、ネットワークストレージシステムとともに用いられるVFSを実装するための一実施態様を例示するブロック図である。
図12は、データベースを有するファイルシステムを実装するためのサンプルデータベース表を例示する。
図13Aは、VFS内でディレクトリ操作を実行するための一実施態様を例示する流れ図である。
図13Bは、VFS内でディレクトリ操作を実行するための一実施態様を例示する流れ図である。
図14は、ネットワークストレージシステムの削除ファイル操作に対する一実施態様を例示する流れ図である。
図15は、ストレージセンタの地理的多重化を例示する。
図16は、ストレージセンタを複製するための一実施態様を例示するブロック図である。
図17は、コンテンツ配信ネットワーク内のストレージセンタの使用に対する一実施態様を例示する。
図18は、コンテンツ配信ネットワークによるストレージセンタの使用に対する一実施態様を例示する流れ図である。
図19は、ネットワークストレージシステム内のストレージポートの使用に対する一実施態様を例示する。
図20は、コンテンツを配信するためのストレージポートの使用に対する一実施態様を例示する流れ図である。
図21aは、ストレージポートデバイスに対する1つのハードウェア構成を例示する。
図21bは、ソフトウェアでストレージポートを実装するための実施態様を例示する。
図22は、ストレージポートに対する一実施態様を例示するブロック図である。
図23は、ストレージポート内のファイルシステム変換に対する一実施態様を例示するブロック図である。
図24は、ファイルシステム操作をローカルファイルシステムからネットワークストレージファイルシステムに変換するための一実施態様を例示する流れ図である。
図25は、オブジェクトファイルをエンドユーザに直接ダウンロードするためにストレージポートを使用するための一実施態様を例示するブロック図である。
図26は、オブジェクトファイルをエンドユーザに直接ダウンロードするための一実施態様を例示する流れ図である。
図27は、ストレージセンタをクライアントの専有ファイルディレクトリシステムにインターフェースする一実施態様を例示するブロック図である。
図28は、クライアントの専有ファイルシステムを使用してストレージセンタ内のオブジェクトファイルにアクセスするための一実施態様を例示する流れ図である。
図29は、ストレージポートフェールオーバ構成に対する一実施態様を例示するブロック図である。
図30は、ストレージポートフェールオーバプロセスに対する一実施態様を例示する流れ図である。
図31は、ストレージノードフェールオーバ状態の後でマルチキャストプロトコルを使用するための一実施態様を例示する流れ図である。
ネットワークストレージシステム概要:
このネットワークストレージシステムは、リッチメディアコンテンツ所有者のストレージ要件を満たすように設計されている。リッチメディアオブジェクトは、一般的にウェブサイトと関連するフィルム、音楽または写真アルバムに必要なストレージの90パーセントまでを代表する。このネットワークストレージシステムは、何ペタバイトものストレージをサポートし、かつ何百万ものユーザーをサポートするためにスケーラビリティを提供する分散処理システム技術を使用する。ユーザーは、高度にセキュアな「共有秘密」認証証明書技術を使用して、ネットワークストレージシステム内の、彼らのメディアオブジェクトにアクセスするだけである。このネットワークストレージシステムはまた、即座の拡張性を、それらの記憶容量を増やすことを望む任意のユーザーに提供する。また、このネットワークストレージシステムは、一実施態様において、それが最新の高密度ディスク技術を備えた標準規格品のCPUから成るので、極めて費用効率が高い。
標準名称の必要上、本願明細書に使われるように、用語「クライアント」はオブジェクトファイルを格納するためにストレージシステムを使用する実体を指す。例えば、クライアントは、彼らのウェブサーバの外側に、彼らのウェブサイト上のコンテンツと関連するリッチメディアオブジェクトを配信することを望むウェブサイト所有者から成ることができる。また、標準名称の必要上、本願明細書に使われるように、用語「エンドユーザ」はオブジェクトの受け側を指す。例えば、エンドユーザはウェブブラウザを使用して、インターネットを横断してウェブサイトからオブジェクトをダウンロードするコンピュータユーザから成ることができる。また、この定義の下で、エンドユーザはまた、クライアントであることができる。
図1は、本発明のストレージシステムに対する一実施態様を例示するブロック図である。図1の実施態様に対して、このストレージシステムは制御パスおよびデータパスから成る。制御パスは仮想ファイルシステム(「VFS」)50から成り、および、データパスは分散ストレージクラスタ70から成る。制御パスは、全てのディレクトリ操作を実施するのに用いられる。VFSは、部分的に、各リッチメディアオブジェクトに対するクライアント割当てファイル名およびネットワークストレージシステム割当て一意ファイル識別子を含む。この一意ファイル識別子は、記憶資源ロケータ(「SRL」)内に埋め込まれる。
分散ストレージクラスタ70は、このシステムに対するオブジェクトファイル(すなわち全てのクライアントデータ)を格納するのに用いられる。図1に示すように、VFSおよびストレージクラスタ70は、オブジェクトファイルの物理ストレージとファイルシステム情報を連係するように、情報を伝達するために接続される。
図1に示すように、ファイルシステム制御部60はVFS50にディレクトリ操作要求を発行する。さらに詳細に後述されているように、ファイルシステム制御部60は、ファイルシステム要求を、クライアントのローカルファイルシステムからネットワークストレージシステムと互換性があるファイルシステム要求に基本的に「変換する」ためにライブラリを使用するソフトウェアを備えることができる。他の実施態様では、ファイルシステム制御部60はクライアントのシステム(例えばクライアントのアプリケーションまたはウェブサーバ)に接続されるストレージポートから成る。一般に、このストレージポートは、ハードウェアまたはソフトウェアのどちらかで実装され、ファイルシステムコマンドを、クライアントのローカルファイルシステム(例えばNFSまたはCIFS)からネットワークストレージシステムと互換性があるファイルシステム要求に変換する。一実施態様において、クライアントのファイルシステムをネットワークストレージシステムにインターフェースするために、クライアントは、ネットワークドライブとしてストレージポートをマウントしなければならないだけである。このストレージポートは、次いで、ネットワークストレージシステムに対する完全なアクセスを提供する。ストレージポートの詳細な考察は、後述される。
図1に示すように、オブジェクト受け側80は、オブジェクト要求に応答して、ストレージクラスタ70からダウンロードされるオブジェクトを受信する。オブジェクト受け側80は、クライアントを含むことができ、または、オブジェクト受け側80は一つ以上のエンドユーザから成ることができる。エンドユーザおよびクライアントの双方を含んで、オブジェクトをストレージクラスタ70からオブジェクト受け側に転送するための実施態様を、さらに詳細に以下に記載する。
このネットワークストレージシステムは、インターネットベースのメディアストレージサービスとしての用途に対するアプリケーションを有する。このアプリケーションに対して、ネットワークストレージシステムは、リッチメディアコンテンツ所有者および配信ネットワークによって使われるインターネットインフラストラクチャの不可欠な部分である。図2は、メディアストレージサービスとしてのネットワークストレージシステムの使用に対する一実施態様を例示する。一般に、ストレージサービス130は、クライアント(例えばウェブサイトを運営する会社)の全ディレクトリのリッチオブジェクトの単一の調和した世界的なイメージを提供する。この実施態様に対して、エンドユーザ100はネットワークを通してコンテンツ発信元サーバ120およびストレージサービス130の双方に接続される。例えば、エンドユーザ100はインターネット経由でコンテンツ発信元サーバ120およびストレージサービス130に接続されることができる。ストレージサービス130は、サーバ140およびデータストア150のような、処理およびネットワーク機能を含む。ストレージサービス130およびコンテンツ発信元サーバ120は、ファイルディレクトリ操作およびオブジェクトファイル操作を実施するために通信する。データストア150、ストレージサービス130の一部は、図2のマルチメディアファイル160、170および180として例示するリッチメディアデータファイルのような、大きいデータファイルを格納する。一実施態様において、データストア150は高機能ストレージノードのクラスタから成る。
一実施態様において、ストレージサービスは標準インターネットハイパーテキスト転送プロトコル(「HTTP」)および汎用資源ロケータ(「URL」)経由で、エンドユーザコンピュータ100上で動作するウェブサーバ(例えばコンテンツ発信元サーバ120)およびブラウザ(例えばマイクロソフトエクスプローラまたはネットスケープナビゲータ)と通信する。HTTPの使用が本願明細書に記述されるとはいえ、任意の転送プロトコルが本発明の趣旨または有効範囲から逸脱せずに使われることができる。図2の構成に対して、エンドユーザコンピュータ100を通して、エンドユーザはハイパーテキストマークアップ言語(「HTML」)ファイルを取得するためにコンテンツ発信元サーバ120に対してハイパーテキスト転送プロトコル(「HTTP」)要求を生成する。加えて、それらのテキストファイルと関連する大きいデータオブジェクトを取得するために、エンドユーザは、エンドユーザコンピュータ100を通してストレージサービス130に対してHTTP要求を生成する。例えば、エンドユーザは、来るべきフィルムを記述するテキストのような、リッチオブジェクトを記述する数キロバイトのテキストデータをコンテンツ発信元サーバ120からダウンロードすることができる。ユーザーが来るべきフィルムからフィルム断片をダウンロードするためにURL上で「クリックする」と、HTTP要求がストレージサービス130に対して生成され、および、ストレージサービス130がエンドユーザコンピュータ100にフィルム断片をダウンロードする。図2のネットワーク構成は、コンテンツ発信元サーバ120からストレージサービス130にリッチオブジェクトのストレージをオフロードすることを可能にする。この構成は、リッチオブジェクトを格納して、管理して、エンドユーザに供給するために必要なコンテンツ発信元サーバのサイズおよび複雑性を大いに減らす。
分散ストレージクラスタ:
一実施態様において、ストレージクラスタは何百ものCPUのスループットおよび何千ものディスクドライブのストレージを利用する分散処理システム技術を活用する。図3は、ストレージクラスタに対する一実施態様を例示するブロック図である。ストレージクラスタ300は、記憶資源ロケータ(「SRL」)を含むアップロード、ダウンロードおよび削除操作を受信する。SRLは、その時クライアントファイルを一意的に識別するのに用いられる。図3に示すように、ストレージクラスタは分散オブジェクトストレージマネージャ(「DOSM」)320および高機能ストレージノード340から成る。「n」台の分散オブジェクトストレージマネージャ320があり、ここで「n」は1を超える任意の整数値である。同様に、高機能ストレージノード340構成要素に対して「n」個の高機能ストレージノードがある(すなわちここで「n」は、また、1を超える任意の整数値である)。
図3に示すように、ファイルアップロードおよびダウンロード操作がロードバランシング機構310に入力される。一実施態様において、ロードバランシング機構310はレイヤー4(「L4」)スイッチである。一般に、L4スイッチはTCPおよびUDPトラフィックに効果的に優先順位をつけることが可能である。加えて、ロードバランシング機能を組み込むL4スイッチは、HTTPセッションに対する要求を、サーバのような、複数の資源に分散する。この実施態様に対して、ロードバランシング機構310はアップロードおよびダウンロード要求をDOSM可用性に基づいて複数のDOSMのうちの1つに分配する。L4スイッチのロードバランシング機能は、現在商業的に入手可能である。
各DOSMは、何百もの同時ダウンロードトランザクションを独立に処理する。以下に記載する一実施態様において、各DOSMは頻繁にアクセスされるファイルオブジェクトを格納するためにローカル高速ディスクキャッシュを有する。各DOSMは、ストレージシステムの動的に生成されたマップを有する。このマップは、高機能ストレージノードアドレスとオブジェクト指紋との間の対応を識別する。一実施態様において、DOSMは別々のアカウントシステムおよび監視システムによって集められる全ての使用および性能データを記録する。
DOSM320は、相互接続機構330経由で高機能ストレージノード340と通信する。相互接続機構330は、全てのDOSM320がいつでもすべての高機能ストレージノードと通信することを確実にするために高速高帯域機構から成る。一実施態様において、DOSM320は、分散オブジェクトストレージプロトコル(「DOSP」)と名付けられたプロトコル経由で相互接続機構を通じて高機能ストレージノードと通信する。効果的に、DOSPは1つの大きなストレージクラスタに何百もの高機能ストレージノードをリンクする。下記に詳しく述べる通り、DOSPはマルチキャストプロトコル、同じく、ポイントツーポイントプロトコルから成る。
一般に、高機能ストレージノード340は持続的なストアをオブジェクトまたはファイルに提供する。この高機能ストレージノードは、何千もの高密度ディスクドライブを含む。この高機能ストレージノードは、図7の考察とともにさらに詳細に以下に記載する。
一実施態様において、このネットワークストレージシステムは要求を処理するために記憶資源ロケータ(「SRL」)を使用する。一実施態様において、このネットワークストレージシステムはSRLに対して以下のフォーマットを使用する:
http://<ストレージクラスタ>/<コード化された要求>/<デジタル署名>/<任意の顧客uri、
ここで、
「ストレージクラスタ」フィールドは、ストレージセンタDSMプールの名前またはIPアドレスを含み、
「コード化された要求」フィールドは、base64コード化されたオペコードおよび引数を備え、
「デジタル署名」フィールドは、以下の式に由来する証明書から成る:
md5(共有秘密+md5(共有秘密+コード化された要求))、および、
「任意の顧客uri」フィールドはネットワークストレージシステムクライアントによってSRLに加えられる任意の情報を含む。例えば、任意の顧客uriフィールドは、ブラウザがコンテンツを適切なプラグインに送信することを可能にするためにダウンロードされるファイルのファイル名および拡張子を含むことができる。
一実施態様において、「コード化された要求」フィールドはbase64エンコーディングを使用してコード化される。表1に示すように、このコード化された要求はURLタイプフィールド、バージョンフィールドおよびタイプ/バージョン特有ペイロードフィールドから成る。
Figure 2004500660
一実施態様において、タイプ/バージョン特有ペイロードフィールドはアカウンティング情報、オペコードおよびオペコード従属の引数リストを含む一連の『/』で区切られたフィールドから成る。表2は、タイプ/バージョン特有ペイロードフィールドに対する一実施態様を示す。
Figure 2004500660
表3は、アクセス法フィールドに対する2つのアクセス法タイプを含む。
Figure 2004500660
表4は、オペコードフィールドに対する使用可能なコードを含む。
Figure 2004500660
図4は、ストレージクラスタ内のダウンロード操作に対する一実施態様を例示する流れ図である。標準名称の必要上、ダウンロード操作の「受け側」はダウンロード操作に対するファイルの行き先である。ストレージクラスタは、一意ファイル識別子(例えばSRL)を含むダウンロード要求を受信する(ブロック400、図4)。ストレージクラスタがダウンロード要求を受信すると、L4スイッチのようなロードバランシング機構310(図3)が、利用できるDOSMを選択する(ブロック410、図4)。DOSMは、証明書およびコード化された要求を抽出するためにSRLを解析する(ブロック415、図4)。コード化された要求から、証明書が算出され、および、算出された証明書がSRL証明書と比較される。SRLが認証しない場合、エラーメッセージが受け側に送信される(ブロック420および425、図4)。代わりとして、SRLが認証する場合、DOSMはSRLによって識別されるオブジェクトが対応するDOSMのデータキャッシュ内に存在するかどうか判定する(ブロック420および430、図4)。データオブジェクトがキャッシュに格納されている場合、オブジェクトは(例えば、HTTPプロトコルを使用してインターネット経由で)ストレージクラスタから受け側まで送信される(ブロック430および495、図4)。このオブジェクトがDOSMでキャッシュに格納されていない場合、DOSMは高機能ストレージノードのうちの1つの中でオブジェクトの位置を識別することを試みる(ブロック430および440、図4)。
DOSMがオブジェクトの位置(例えば、オブジェクトファイルがDOSMルックアップテーブルのエントリである)を知っており、および、ストレージノードが読取り可能な場合、その時、DOSMはオブジェクトを格納するストレージノードとの接続を達成し、かつ、ストレージクラスタから受け側までオブジェクトを送信する(ブロック442、435および495、図4)。代わりとして、DOSMが高機能ストレージノード内のオブジェクトのストレージ位置を知らない場合、DOSMはオブジェクトの場所を突き止めるために高機能ストレージノードに対して要求をブロードキャストする(ブロック440および450、図4)。各高機能ストレージノードは、オブジェクトがそのディスクドライブのうちの1つに格納されているかどうか判定する(ブロック460、図4)。オブジェクトファイルが高機能ストレージノードのうちの1つに位置する場合、要求されたオブジェクトを格納する高機能ストレージノードは分散オブジェクトストレージマネージャの全てに識別情報をブロードキャストする(ブロック462および470、図4)。例えば、高機能ストレージノード340の高機能ストレージノード「1」が要求されたオブジェクトをディスク「3」内に格納する場合、高機能ストレージノード「1」は、オブジェクトファイルが高機能ストレージノード「1」のディスク「3」内に位置する全ての「n」台のDOSMに、ブロードキャストする。全てのDOSMが、ファイル識別情報を取得するためにバスをスヌープする。高機能ストレージノードのブロードキャストに応答して、各DOSMは適切なファイル識別情報によってそのルックアップテーブルまたはファイルシステムディレクトリを更新する。
DOSMがオブジェクトの場所を突き止めるために高機能ストレージノードに要求をブロードキャストし、および、オブジェクトが要求から場所を突き止められない場合、DOSMはオブジェクトに対してストレージノードを個別に問い合わせるために高機能ストレージノードとのポイントツーポイント接続を確立する(ブロック462および464、図4)。全ての高機能ストレージノードが問い合わせられ、または、オブジェクトが場所を突き止められるまで、このプロセスは繰り返される。オブジェクトが高機能ストレージノードのうちの1つに位置する場合、要求されたオブジェクトを格納する高機能ストレージノードは分散オブジェクトストレージマネージャの全てに識別情報をブロードキャストする(ブロック466および470、図4)。代わりとして、オブジェクトが高機能ストレージノードのうちの1つに位置しない場合、フェールオーバ手続きが異なるストレージセンタの中でオブジェクトの場所を突き止めるために実行される(ブロック466および468、図4)。
高機能ストレージノードが場所を突き止められると、DOSMは高機能ストレージノードとの接続を達成して、要求されたオブジェクトを有するファイルをオープンする。ストレージノードが読取り可能な(すなわち、DOSMがストレージノードから首尾よくファイルを読み込む)場合、オブジェクトは高機能ストレージノードからネットワーク経由で(例えば、インターネットを通じてHTTPプロトコルを使用して)受け側まで送信される。オブジェクトファイルが読取り可能でない場合、フェールオーバ手続きが異なるストレージノードおよび/またはストレージセンタ内のオブジェクトを取得するために実行され、および、DOSMは新しいストレージノードとの接続を達成する(ブロック442、468および435、図4)。その後に、オブジェクトはストレージクラスタから受け側まで送信される(ブロック495、図4)。
一実施態様において、ネットワークストレージシステムに対するアクセスは、有効な認証証明書を必要とする。CDNを利用する一実施態様において、この証明書はオブジェクトファイルの一意ユーザファイル名および各クライアントアカウントに割り当てられるセキュアなキーに基づく。他の実施態様において、ネットワークストレージシステムは完全なHTTPSおよびSSLプロトコルをクライアント/エンドユーザとネットワークストレージシステムとの間のセキュアな通信に対してサポートする。
図5は、ネットワークストレージシステム内の認証のための一実施態様を例示する流れ図である。要求を認証するために、ネットワークストレージシステムはクライアント識別、SRL証明書、および、クライアントファイル名、または、オブジェクト指紋を抽出するためにSRLを復号化する(ブロック500、図5)。ネットワークストレージシステム(すなわち仮想ファイルシステムまたはストレージクラスタ)は、要求によって識別されるクライアントに対応する「秘密」またはセキュアなキーを抽出する。一般に、「秘密」またはセキュアなキーはネットワークストレージシステム内の操作を認証するためにクライアントによって与えられるパスワードである。セキュアなキーおよびオブジェクト指紋を使用して、ネットワークストレージシステムは算出された証明書を生成する(ブロック520、図5)。一実施態様において、ネットワークストレージシステムは以下の式に従って要求に対する算出された証明書を生成する:
MD5ハッシュ(セキュアなキー+MD5ハッシュ(セキュアなキー+コード化されたSRL))
上記のように、第1のMD5ハッシュ計算が第1の結果を取得するためにオブジェクト指紋およびセキュアなキーに関して実行され、および、第2のMD5ハッシュ計算が算出された証明書を取得するために第1の結果およびセキュアなキーに関して実行される。ネットワークストレージシステムは、算出された証明書をSRL証明書(すなわちSRL要求によって送信される証明書)と比較する(ブロック530、図5)。証明書が合致する場合、その時、SRLは認証され、および、要求は実行される(ブロック540および560、図5)。代わりとして、算出された証明書がSRL証明書に合致しない場合、ネットワークストレージシステムは要求側にエラーメッセージを生成する(ブロック540および550、図5)。
図6は、分散オブジェクトストレージマネージャ(「DOSM」)の一実施態様を例示する。この実施態様に対して、各DOSMのプロセスおよび機能はコンピュータ、例えばサーバ600上に実行用のソフトウェアで実装される。他の実施態様において、分散オブジェクトストレージマネージャ320は一台以上のコンピュータ上のハードウェアおよびソフトウェアの組合せで実装されることができる。各DOSMは、高機能ストレージノード340内に格納されるオブジェクトファイルの位置を識別するファイルルックアップテーブルを保持する。図6の表610は、DOSMファイルルックアップテーブルに対する一実施態様を例示する。この実施態様に対して、表の各エントリは高機能ストレージノード内に格納される対応するオブジェクトファイルを識別する。具体的には、各エントリはファイル識別、IPアドレスおよびディスク識別を含む。ファイル識別は、また、本願明細書においてオブジェクト指紋とも称され、オブジェクトファイルのコンテンツに関するMD5ハッシュ計算を実行することによって導き出される。このMD5ハッシュ計算の結果は、128ビットストリングである。この実施態様に対して、DOSMファイルルックアップテーブルは、ファイル識別カラム内に、ファイル指定「MD5」によって、128ビットストリングを格納する。DOSMファイルルックアップテーブルの第2のカラムは、オブジェクトファイルを格納する高機能ストレージノードのIPアドレス(例えば「10.3.100.1」)を格納する。第3のカラムは、ディスクIDと呼ばれ、オブジェクトファイルを格納する高機能ストレージノード上の特定のディスクドライブを識別する整数値を格納する。ルックアップテーブルが最大容量にある一実施態様において、DOSMは受信される新しいエントリとDOSMルックアップテーブル内の既存のエントリを置換するために最長時間未使用法(「LRU」)キャッシュアルゴリズムを使用する。
図6に示すように、DOSMはまたデータキャッシュ620を含む。一般に、データキャッシュ620は、DOSMが、ダウンロード要求に応答して受け側に直接データを能率化することを可能にするために、オブジェクト(すなわちクライアントデータ)を格納する。ダウンロード要求中にキャッシュミスの場合には、オブジェクトが高機能ストレージノードから受け側まで転送される時、オブジェクトは、また、データキャッシュ620内にも格納される。DOSMファイルルックアップテーブルに類似して、データキャッシュ620はデータキャッシュが一杯である時、新しいデータオブジェクトと既存のエントリを置換するために最長時間未使用法(「LRU」)キャッシュアルゴリズムを使用する。
DOSMはまた、状態表630を保持する。一般に、状態表630は高機能ストレージノード340の全体的な容量および健康に関する情報を格納することによってシステムの状態を提供する。一実施態様において、状態表は、高機能ストレージノードから、対応する高機能ストレージノードについての情報を取得するためにマルチキャストプロトコルを使用して作成される。状態情報は、高機能ストレージノード上のディスクが健常かどうか、どれくらいのスペースがディスク上にあるか、などを示す。一実施態様において、図6に示すように、状態表630は、ストレージノードの読み書き状態、ストレージノードの健康状態(故障したノードの識別を含む)、および、利用できる記憶容量および毎秒の入出力(「I/O」)操作の数を含む、ストレージノードの現在の負荷、を格納する。DOSMは、アップロード操作において、新しいオブジェクトファイルのストレージ用の適切な高機能ストレージノードを選択するために状態情報を使用する。例えば、DOSMは、ストレージノードの負荷均衡を保つために毎秒の入出力(「I/O」)操作数に関する情報を使用する。DOSMはまた、新しいオブジェクトファイルを格納する高機能ストレージノードを選択するために利用できる記憶容量に関する情報を使用する。
図7は、高機能ストレージノードに対する一実施態様を例示するブロック図である。この実施態様に対して、高機能ストレージノードは、本願明細書に記述される機能を実行するソフトウェアを含む、コンピュータ上に実装される。高機能ストレージノード700は、1個以上の中央処理ユニット(「CPU」)から成る処理コア710を含む。一実施態様において、処理コア710は2個のCPUを備える。高機能ストレージノード700はまた、図7の中で730とラベルを貼られた揮発性メモリを含む。メモリ730は、処理コア710によって実行される命令、同じくこの高機能ストレージノードによって使われるデータを格納するのに用いられる。高機能ストレージノード700は、この高機能ストレージノードを、相互接続機構330経由で複数の分散オブジェクトストレージマネージャ320にインターフェースするネットワークインターフェース720をさらに含む。高機能ストレージノード700の要素は、コンピュータ移送機構750(例えば周辺構成要素相互接続(「PCI」)バス、プロセッサバス、など)経由で通信する。コンピュータ移送機構750は、周辺構成要素相互接続(「PCI」)バスまたは業界標準協会(「ISA」)バスのような、一つ以上のコンピュータバスの広いカテゴリを代表することを目的とされる。
高機能ストレージノード700は、オブジェクトファイルを格納するために複数のディスクドライブ740をさらに含む。図7に示すように、「n」が1を超える整数値であるように、高機能ストレージノード内のディスクの数は、「n」として表される。一実施態様において、処理コア710はISAプロトコルを使用してディスクドライブ740と通信する。しかし、標準コンピュータシリアルインターフェース(「SCSI」)プロトコルを含んで、ディスクドライブにアクセスするために用いられる任意のプロトコルが、本発明の趣旨または有効範囲から逸脱せずに使われることができる。
高機能ストレージノードは、それが格納するオブジェクトファイルを識別する情報を含む。一実施態様において、オブジェクトファイルを識別する情報は、高機能ストレージノードのファイルシステムディレクトリ内に格納される。他の実施態様では、オブジェクトファイルを識別する情報は、キャッシュに格納される。表5は、高機能ストレージノード内にオブジェクトファイルの識別をキャッシュに格納するために例証エントリを例示する。
Figure 2004500660
表5は、ファイル識別子およびディスク識別子を含む。ファイル識別子またはファイルIDは、オブジェクトファイルに対応する一意のファイルハンドラを格納する。一実施態様において、この一意のファイルハンドラはオブジェクトファイルのコンテンツ上でMD5ハッシュ関数を実行することから取得されるオブジェクト指紋である。表5の第1の例証エントリに対して、この一意のファイルハンドラは「file1.MD5」と表される。第2のカラムは、ディスクIDとラベルを貼られ、オブジェクトファイルを格納する高機能ストレージノード上の特定のディスクドライブを識別する。表5の第2の例証エントリに対して、オブジェクトファイル「file6.MD5」は、高機能ストレージノード上の第2のディスクドライブに格納される。高機能ストレージノードの最初のスタートアップに、高機能ストレージノードはファイル識別表を作成する。
ストレージクラスタはまた、アップロード要求を処理する。図8は、ストレージクラスタ内のアップロード要求を処理するための一実施態様を例示する流れ図である。標準名称の必要上、本願明細書に使われるように、「送信側」は、アップロード操作に対するオブジェクトファイルの送信側を指す。ストレージクラスタがアップロード要求を受信する場合、ロードバランシング機構320(図3)はアップロード要求を処理するために、利用できるDOSMを選択する(ブロック805および810、図8)。VFSは、ファイル識別(例えば、ストレージシステムノード)、および、新しいオブジェクトファイルに対する適切なディレクトリを作成する(ブロック805、図8)。選択されたDOSMは、証明書、オブジェクトファイル、同じくクライアントおよびディレクトリ情報を抽出するためにアップロード要求を解析する(ブロック820、図8)。アップロード要求が認証しない場合、DOSMはエラーメッセージを送信側に送信する(ブロック835、図8)。代わりとして、アップロード要求が認証する場合、DOSMはオブジェクトファイルを格納するために少なくとも一つの高機能ストレージノードを選択する(ブロック840、図8)。一実施態様において、アップロード操作はオブジェクトファイルを2つのストレージノード内に格納する。故障が1つの高機能ストレージノードで生じる場合、オブジェクトファイルの「ミラーリング」がオブジェクトに対するアクセス可能性を確実にする。オブジェクトファイルを「ミラーリングする」ための一実施態様において、ネットワークストレージシステムは異なる地理学的位置(例えば異なるストレージセンタ)にオブジェクトファイルを格納する。地理的に異なるストレージセンタへのアクセスが、オブジェクトファイルがアップロードされる時に利用できない場合、その時、ファイルの追加コピーがローカルストレージセンタに格納される。
一実施態様において、DOSMは新しいオブジェクトを格納する最も適切な高機能ストレージノードを選択するために状態表(図6)を用いる。説明のため、この選択された高機能ストレージノードは本願明細書において「行き先高機能ストレージノード」と呼ばれる。DOSMは、行き先高機能ストレージノードとの接続を確立する(ブロック850、図8)。一実施態様において、DOSMは行き先送信元ノードとのDOSPポイントツーポイント接続を確立する。オブジェクトファイルは、次いで行き先高機能ストレージノードへ転送される(ブロック860、図8)。加えて、ファイルを高機能ストレージノードへ転送した後に、DOSMはDOSPポイントツーポイントプロトコルの一部としてステータスメッセージを受信する。このステータスメッセージは、転送動作が成功したかどうか示す。
一実施態様において、行き先高機能ストレージノードはオブジェクトファイルに対する一意の指紋を生成する(ブロック870、図8)。具体的には、行き先高機能ストレージノードはオブジェクトファイルのコンテンツのMD5ハッシュを計算する。高機能ストレージノードはまた、オブジェクトファイルを確認する。DOSMで成功した状態を受信したあと、DOSMは仮想ファイルシステム(「VFS」)に対する接続を確立する。DOSMは、ファイル情報(例えば128bit.MD5一意のオブジェクト指紋、ファイルサイズ、など)、ディレクトリ情報(例えばフォルダID、親フォルダID、など)、同じくクライアント情報およびメタデータを伝達する(ブロック880、図8)。VFSは、アップロードを確認することを試みる。VFSがアップロードを確認しない場合、エラーメッセージがアップロード要求の送信側に送信される(ブロック890および835、図8)。VFSがアップロードを確認する場合、確認がDOSMに送信される。次に、DOSMは送信側にアップロードを確認する(ブロック895、図8)。また、ストレージシステムはネットワークストレージシステムに対してファイルを一意的に識別するファイルハンドラを送信側に戻す。
アップロード要求の送信側がエンドユーザである場合、DOSMはエンドユーザをクライアントにリダイレクトする。例えば、DOMはクライアントのウェブサイトでエンドユーザを所定のURLにリダイレクトすることができる。他の実施態様では、送信側がストレージポートである場合、DOSMはストレージシステムノード(すなわちストレージシステムの用途にだけ使用されるハンドラ)および一意のオブジェクトファイル指紋を送信する。
上で議論したように、アップロード操作の一部として、ネットワークストレージシステムはオブジェクトファイルの一意の指紋を生成する。図9は、オブジェクトファイルの一意の指紋を生成するための一実施態様を例示する流れ図である。まず、行き先高機能ストレージノードがオブジェクトファイルのコンテンツを有する一時ファイルを作成する(ブロック900、図9)。MD5ハッシュ計算が、一時ファイルのコンテンツに関して実行される(ブロック910、図9)。DOSMは、MD5ハッシュ操作から生成された一意の指紋が、ネットワークストレージシステム内に現在存在するかどうか判定する(ブロック920、図9)。この指紋が現在存在する場合、オブジェクトのコンテンツを保持する一時ファイルは削除される(ブロック930および940、図9)。また、既存の指紋ファイルと関連する参照カウントが、増加される(ブロック950、図9)。参照カウントの使用は、削除操作の考察に関連してさらに詳細に以下に記載する。一時ファイルから生成される指紋が存在しない場合、一時ファイルはパーマネントファイルに変換され、および、一意の指紋がストレージクラスタ内のファイルを識別するのに用いられる(ブロック960、図9)。
仮想ファイルシステム:
一実施態様において、ディレクトリ操作が仮想ファイルシステム(「VFS」)の中で実行される。図11は、ネットワークストレージシステムとともに用いられるVFSを実装するための一実施態様を例示するブロック図である。一般に、VFSはネットワークストレージシステムを保持するための制御パスである。各オブジェクトファイルに対して、VFSは顧客に割り当てられたファイル名および一意のネットワークストレージシステムファイル識別子を含む顧客ファイルディレクトリを保持する。上で論じられた一実施態様において、この一意のネットワークストレージシステムファイル識別子は、オブジェクトファイルのコンテンツに関するMD5ハッシュ計算を実行することで取得される128ビットデジタル指紋から成る。図11に示すように、VFSは分散ディレクトリマネージャ(DDM)1110および分散ディレクトリ1120から成る。「n」個のDDMおよび「n」個の分散ディレクトリがあり、ここで「n」は、1以上の任意の整数を表す。一実施態様において、各クライアントは分散ディレクトリにマップされる。
DDMは、共通ディレクトリ操作、例えば「ファイルを開く」、「ファイルを移動する」、「ファイルを削除する」、「フォルダを開く」、「フォルダを移動する」、および「フォルダを作成する」をサポートする。図11の矢印は、複数ディレクトリ要求および操作を表す。この要求は、ストレージポートまたはウエブストアを経て、エンドユーザまたはクライアントから生じることができる。一実施態様では、VFSに対する要求は、HTTP要求を使用して搬送されて、拡張マークアップ言語(「XML」)を使用してコード化される。VFSがXMLコード化された要求によってHTTPプロトコルを使用して記述されるとはいえ、任意のタイプの要求フォーマットによる任意のネットワークプロトコルが本発明の趣旨または有効範囲から逸脱せずに使われることができる。
一実施態様において、VFSはこのファイルシステムを実装するためにデータベースを使用する。データベース実装に対して、各ディレクトリ操作要求はデータベース操作に変換される。代わりとして、VFSはローカルファイルシステム(すなわち、VFSに対してローカルのファイルシステム)を使用してファイルシステムを実装することができる。ファイルシステム実施態様に対して、ファイルはデータベース実装で格納される情報を格納するために生成される。また、DDMは分散ディレクトリ内のファイルの位置決めをするルックアップテーブルを含む。このファイルまたはデータベーステーブルが、遠隔ストレージセンタ内に複製される。
このネットワークストレージファイルシステムは、ディレクトリまたはフォルダ(この後フォルダと称する)内に配置されるファイルから成る。大部分のファイルシステムに類似して、ネットワークストレージファイルシステムは階層ファイルシステムである。階層ファイルシステムにおいて、ディレクトリまたはフォルダは、ルートまたはベースフォルダから始めて、階層で配置される。追加フォルダまたは下位フォルダが、次いでルートフォルダの下に配置される。このファイルシステムは、下位フォルダの追加階層が他の下位フォルダの下に含まれるように、いかなる数の階層をも備えることができる。本願明細書において用いられる標準名称の必要上、フォルダに対する親フォルダは、フォルダまたはディレクトリの階層内のフォルダより上に配置されるフォルダである。
図12は、データベースを有するファイルシステムを実装するためのサンプルデータベース表を例示する。このデータベース実施態様に対して、VFSは顧客表1200、フォルダ表1210およびファイル表1220を保持する。顧客表1200は、「顧客ID」、「顧客名」および「顧客予約フィールド」に対するフィールドを含む。顧客IDは、クライアントを一意的に識別するのに用いられるネットワークストレージシステム識別子である。顧客名は、顧客と関連する実名である。顧客表1200内の第1の例証エントリに対して、「顧客A」は顧客ID「1」を有する。顧客予約フィールドは、クライアント用に確保されるストレージを提供する。
フォルダ表1210は「顧客ID」、「フォルダID」、「フォルダ親ID」および「メタデータ」に対するフィールドを含む。この実施態様に対して、フォルダ表内の各エントリはネットワークストレージファイルシステム内のフォルダに対応する。顧客ID、顧客表内に格納される同じ顧客IDは、クライアントを一意的に識別する。フォルダ表1210の例証エントリに対して、顧客ID「3」は、このフォルダが、「顧客C」に割り当てられたことを識別する。フォルダIDは、そのエントリに対する特定のフォルダを識別する。例えば、フォルダ表1210内の第1のエントリは識別「2」によって識別されるフォルダのためにある。第3のカラムは、「フォルダ親ID」とラベルをつけられ、データベースエントリまたは行に対応するフォルダに対する親フォルダを識別する。例えば、フォルダ表1210内の第2のエントリは表1210の第1のエントリに対する下位フォルダである(すなわち、フォルダ「100」はフォルダ「2」の下の次の階層的なレベルにある)。フォルダ表1210内の第1のエントリはフォルダ親IDに対する値を有しないことに留意されたい。これは、フォルダ「2」がルートフォルダであることを示す。
このファイル表は、ネットワークストレージファイルシステム内に格納される各オブジェクトファイルに対するエントリを含む。例証ファイル表1220は、「顧客ID」、「ファイルハンドラ」、「フォルダID」、「フォルダ親ID」、および、「メタデータ」に対するカラムまたはフィールドを含む。再び、顧客IDはファイルを所有する顧客を識別する。ファイル表1220に示されるエントリは、顧客Cによって格納されるファイルのためにある。ファイルハンドラフィールドは、ネットワークファイルシステムがファイルを一意的に識別するために使用する指紋を格納する。ネットワークファイルシステムが、ファイルを識別するために32バイト16進キャラクタシーケンスを格納するとはいえ、説明のために、ファイル表1220に対するファイルハンドラエントリは「52.MD5」、「55.MD5」、「99.MD5」および「67.MD5」として示される。フォルダIDフィールドは、ファイルを含むフォルダを識別する。例えば、ファイル「55.MD5」に対応する、ファイル表1220内の第1のエントリは、フォルダ100内に編成されるかまたは格納される。フォルダ親IDは、ファイルを格納するフォルダに対する親フォルダを識別する。「52.MD5」を含むフォルダ100は、親フォルダ「2」を有する。
図13Aおよび13Bは、VFS内のディレクトリ操作を実行するための一実施態様を例示する流れ図である。DDMがディレクトリ操作要求を受信するときに、DDMは証明書、操作可能コード、同じく操作可能コードに対応する引数、を抽出するために要求を解析する(ブロック1300および1310、図13A)。操作可能コードは、要求されたディレクトリ操作を指定する。証明書および要求に含まれる情報を使用して、DDMは要求を認証する。要求が認証しない場合、DDMは要求側にエラーメッセージを送信する(ブロック1320および1330、図13A)。代わりとして、要求が認証する場合、DDMは操作可能コードを解析し、かつオープン操作を実行するフォルダを含む引数を抽出する。(ブロック1320および1330、図13A)。
一般に、操作が「フォルダをオープンする」操作に対する場合、DDMは引数によって識別されるフォルダ内に含まれる全ての下位フォルダおよびファイルを戻す。具体的には、DDMは、適切な分散ディレクトリから、「フォルダをオープンする」要求の引数と確認されるフォルダに対応するファイルおよびフォルダ表を抽出する(ブロック1340および1345、図13A)。具体的には、DDMは要求による引数と確認されるフォルダに対応する全てのファイルおよび下位フォルダを抽出する。図12の例証を使用して、「フォルダをオープンする」要求が引数「フォルダID=2」および「顧客ID=3」を含む場合、DDMは、分散ディレクトリ内のフォルダ表から、フォルダID100および251を抽出する(すなわち、フォルダ100および251はルートフォルダ2の下位フォルダである)。「フォルダをオープンする」要求が引数「フォルダID=100」を含む場合、その時、DDMはファイル表からファイルハンドラ「52.MD5」および「55.MD5」を抽出する。
ディレクトリ要求の操作可能コードが、「フォルダをオープンする」要求に続く「ファイルをオープンする」操作に対する場合、その時、ファイル情報がファイルに対する認証証明書およびSRLを構成するために、ファイル表(すなわちファイルハンドラ)およびクライアント表(すなわちクライアント識別)から取得される。上記例に対して、「ファイルをオープンする」操作による引数がファイル「52.MD5」を指定した場合、ファイルおよびクライアント情報が「52.MD5」ファイルに対するSRLを構成するために取得される。
ディレクトリ要求の操作可能コードが「フォルダを移動する」操作に対する場合、データベース操作がフォルダの新しい位置を反映するためにファイルおよびフォルダ表内のエントリを修正するように実行される。「フォルダを移動する」操作は、引数として、フォルダに対する新しい行き先を含む。図12の例証を使用して、「フォルダを移動する」操作が、フォルダID166をフォルダID251の下位フォルダからルートフォルダ2の直接下に動かすことを指定した場合、その時、フォルダ表1210の第4のエントリ上の親フォルダIDは、「251」から「2」に修正される。また、ファイル表1220に対して、第3のおよび第4のエントリに対する親フォルダIDが「251」から「2」に修正される。
ディレクトリ操作が「フォルダを作成する」操作である場合、新しいエントリまたは行がフォルダ表に対して生成される(ブロック1360および1365、図13A)。「フォルダを作成する」操作は、引数として親フォルダを含む。下記のように、クライアントのフォルダ名はネットワークストレージシステムフォルダ識別に変換される。図12の例証を使用して、要求側が下位フォルダ166の下に新しいフォルダを作成することを望む場合、その時、DDMはフォルダに対して新しいフォルダ識別を割り当て、かつ、フォルダ親ID166によってフォルダ表1210に対する新しい行またはエントリを入力する。
ディレクトリ操作が「ファイルを移動する」操作である場合、データベース操作がファイルの新しい位置を反映するためにファイル表のエントリを修正するように実行される(ブロック1370および1375、図13A)。「ファイルを移動する」操作は、ディレクトリ要求の引数としてファイルに対する新しい行き先を含む。図12のサンプルデータベース表に対して、「ファイルを移動する」操作がフォルダ100からフォルダ166にファイル「52.MD5」を移動することを指定する場合、ファイル表1220の第1のエントリに対するフォルダIDおよびフォルダ親IDフィールドは、それぞれ、「166」および「251」に修正される。
図13Aのブロック1390に示すように、データベース表から抽出される引数は、要求側に戻される。一実施態様において、DDMからの応答はファイル(すなわち、SRLの形の)および/またはディレクトリのリストを有するXMLコード化された文書を含む。例えば、「フォルダをオープンする」要求に応答して、VFSは対象フォルダの下に配置されるファイルおよび下位フォルダに対してファイルおよびフォルダIDを戻す。
図13Bは、VFSの追加ファイルシステム操作を例示する図13Aの流れ図の続きである。操作可能コードが「フォルダを削除する」操作である場合、対応するフォルダエントリがフォルダ表から削除される(ブロック1372および1374、図13B)。操作可能コードが「ファイルを削除する」操作を指定する場合、この操作で識別されるファイルエントリが、そのファイル表から削除される(ブロック1376および1378、図13B)。「ファイルを作成する」操作に対して、VFSはファイル表内に新しいファイルに対するエントリを加える(ブロック1386および1388、図13B)。操作可能コードが「フォルダを更新する」操作を指定する場合、フォルダエントリに対して対応するフォルダ表内のクライアントメタデータが更新される(ブロック1386および1388、図13B)。「ファイルを更新する」操作に対して、VFSは対応するファイルエントリに対して表内のクライアントメタデータを更新する(ブロック1392および1394、図13B)。適切なデータベース操作を実行したあと、操作に対する引数が要求側に戻される(ブロック1396、図13B)。
一実施態様において、ネットワークストレージシステムは既存のファイルをアップロードして、削除することを管理するために参照カウントを使用する。一般に、新しいファイルが、ネットワークストレージシステムにアップロードされる、または、ファイル要求が、既存のファイルをアップロードするために受信される場合、参照カウントは、1だけ増やされる。逆に、ファイル要求がファイルを削除するために受信される場合、参照カウントは1だけ減らされる。ネットワークストレージシステムは、参照カウントがゼロである時オブジェクトファイルを削除するために参照カウントを使用する。例えば、クライアントは、「私のファイル」と名付けられたオブジェクトファイルをアップロードするために第1の要求を送信することができる。アップロード操作が完了したあと、「私のファイル」に対する参照カウントは1である。その後に、クライアントは「私のファイル」をアップロードするために第2の要求を送信することができる。「私のファイル」の第2のコピーを格納する代わりに、ネットワークストレージシステムは「私のファイル」の参照カウントを「2」に増加させる。この例に関して、クライアントは次いで、「私のファイル」を削除するために第1の要求を送信することができる。この要求に応答して、ネットワークストレージシステムは「私のファイル」を削除しない。その代わりに、ネットワークストレージシステムは参照カウントを「1」に減らす。その後に、クライアントが「私のファイル」を削除するために第2の要求を送信する場合、参照カウントは「0」に減らされ、および、ネットワークストレージシステムは「私のファイル」を削除する。
図14は、ネットワークストレージシステムの削除ファイル操作に対する一実施態様を例示する流れ図である。VFSが削除要求を受信する場合、DDMは妥当性確認チェックを実行する(ブロック1400および1405、図14)。削除要求が有効でない場合、エラーメッセージが要求側に送信される(ブロック1410および1415、図14)。要求が認証される場合、DDMはファイルハンドラ(すなわちMD5ファイルハンドラ)をデータベース内のファイル表から抽出する(ブロック1420、図14)。DDMは、データベース内のファイル表から、ファイル識別を削除する(ブロック1450、図14)。加えて、DDMは削除SRLを構成して、この削除SRLをストレージクラスタに送信する(ブロック1460、図14)。削除操作に応答して、ストレージクラスタは対応するファイルに対する参照カウントを抽出する。参照カウントが1より大きい場合、ストレージクラスタは1だけ参照カウントを減らす(ブロック1430および1440、図14)。代わりとして、参照カウントが1である場合、ストレージクラスタは参照カウントをゼロに減らして、適切な高機能ストレージノード内の、SRLによって識別されるファイルを削除する(ブロック1470、図14)。
ダイナミックデータキャッシング:
図10は、ストレージクラスタ内のデータをキャッシュに格納するための一実施態様を例示するブロック図である。図10に示すように、「n」台のDOSMが、ある。各々のDOSM(すなわちDOSM1、DOSM2、DOSM3...DOSM「n」)は、対応するデータキャッシュ(すなわちデータキャッシュ1、データキャッシュ2、データキャッシュ3...データキャッシュ「n」)を含む。ネットワークストレージシステムファイルアップロードおよびダウンロード操作が、ロードバランシング機構310によって受信される(また、図3も参照)。ロードバランシング能力を有するL4スイッチのような、スイッチが、資源のプールの間に資源を割り当てる。ネットワークストレージシステムに対して、ロードバランシング機構310は「n」台のDOSMの間に要求を効率的に割り当てる。一実施態様において、DOSMが、オブジェクトを高機能ストレージノードから行き先に転送する時、このオブジェクトは対応するDOSMのデータキャッシュ内に格納される。オブジェクトが、最長時間未使用法(「LRU」)キャッシュポリシー経由でより最近要求されたオブジェクトを格納するためにデータキャッシュから削除される。
ネットワークストレージシステム内のDOSMのロードバランシングは、高需要のオブジェクトの「自動」キャッシングを可能にする。従来技術システムにおいて、精巧な機構が高需要のデータを識別するために使用される。これらの決定機構に基づいて、高需要のニーズを満たそうとして、データがキャッシュに格納される。例えば、オブジェクトが、映画スタジオがそのウェブサイトを通じて、新しく公開されたかやがて公開されるフィルムのビデオプレビューを提供する時、高需要である可能性がある。この例に関して、映画スタジオはメディアリッチオブジェクト、「新フィルムプレビュー」を配信するためにネットワークストレージシステムを使用する。エンドユーザが映画スタジオのウェブサイトのURL上で「クリックする」場合、「新フィルムプレビュー」がエンドユーザに利用できることになる。この例に対して、この映画がきわめて人気があるならば、映画スタジオクライアントがそのウェブサイトを通して「新フィルムプレビュー」を提供する時、多くのエンドユーザが、リッチオブジェクト、「新フィルムプレビュー」をダウンロードすることを試みるかもしれない。
オブジェクト「新フィルムプレビュー」をダウンロードする最初の要求に対して、ロードバランシング機構310は要求を管理するためにDOSMを選択する。この例に関して、ロードバランシング機構310は要求を満たすためにDOSM1を選択する。DOSM1が現在オブジェクトをそのデータキャッシュ内に格納していない場合、DOSM1は適切な高機能ストレージノードからオブジェクトを取得する。オブジェクトが最初の要求を満たすために配信されるにつれて、オブジェクトはDOSM1データキャッシュ1内に格納される。この例に関して、ストレージクラスタが「新フィルムプレビュー」オブジェクトに対する第2の要求を受信し、および、ロードバランシング機構310が、可用性に基づいて、要求を処理するためにDOSM3を選択する。再び、DOSM3が現在オブジェクトをそのデータキャッシュ内に格納していない場合、DOSM3は適切な高機能ストレージノードからオブジェクトを取得し、かつオブジェクトを要求側へ転送し、同じく、データキャッシュ3内にオブジェクトを格納する。同様に、この例に関して、追加要求が「新フィルムプレビュー」オブジェクトをダウンロードするためにストレージクラスタになされる。利用可能資源に基づいて、2つの別々の要求に対して、ロードバランシング機構310は2つの要求を処理するためにDOSM2およびDOSM「n」を選択する。再び、DOSM2およびDOSM「n」が現在オブジェクトをそれらのデータキャッシュ内に格納していない場合、両方のDOSMが適切な高機能ストレージノードから「新フィルムプレビュー」オブジェクトを取得し、新フィルムプレビューを要求側へ転送し、ならびに、オブジェクトおよびそれらのそれぞれのデータキャッシュ(すなわちデータキャッシュ2およびデータキャッシュ「n」)を格納する。以前の例証で示したように、オブジェクトが高需要である場合、DOSMデータキャッシュの各々のストレージに対して、異なるDOSMを選択するロードバランシング機構を使用して、ストレージクラスタは高需要オブジェクトのコピーをフェッチする。したがって、DOSM資源の分散は高度に要求されたオブジェクトに対する高速アクセスに結びつく。
図10の例証に示すように、各データキャッシュはそれぞれのDOSMで処理される要求に従い潜在的に異なるオブジェクトを格納する。例えば、「新フィルムプレビュー」オブジェクトに加えて、データキャッシュ1は「写真Y」および「小塊X」を格納し、データキャッシュ2は、「Ad5」および「ビデオ断片8」を格納し、データキャッシュ3は、「写真Z」および「広告10」を格納し、および、データキャッシュ「n」は「小塊A」および「ビデオ断片2」を格納する。
ストレージセンタの地理的多重化:
ネットワークストレージシステムは、大量数の同時ダウンロードトランザクションをサポートするために最適化される。ネットワークストレージシステムは、全てのファイルオブジェクトの単一の仮想ディレクトリに依存する。インターネット上の任意の場所から、クライアントは彼らの専用ファイルシステムの正確な同じビューを見る。したがって、ネットワークストレージシステムは世界的にユーザーと同一に見える単一のオブジェクトの同時ダウンロードをサポートする。一実施態様では、ネットワークストレージシステムはストレージリポジトリまたはストレージセンタとともに複数の大陸にわたる。ストレージセンタ間の自動地理的ロードバランシングが、全ての要求が最も近いストレージセンタに向けられることを確実にする。しかし、フェールオーバおよび性能の向上を提供するために、ストレージクラスタおよびVFSを含んで、ストレージセンタが複製される。複数場所にわたる物理的な多重化は、トラフィックマネジメントサービスを含む。トラフィックマネジメントサービスは、地理学的位置の間のユーザートランザクションの地理的ロードバランシングを提供する。
図15は、ストレージセンタの地理的多重化を例示する。この例に関して、北アメリカストレージセンタ1510、アジアストレージセンタ1530および欧州ストレージセンタ1520がある。図15の例証に示すように、北米のクライアントおよびエンドユーザは、北アメリカストレージセンタ1510を通してストレージセンタに対する最適アクセスを有する。また、ヨーロッパのクライアントおよびエンドユーザは欧州ストレージセンタ1520に対する最適アクセスを有する。同様に、アジアのクライアントおよびエンドユーザはアジアストレージセンタ1530である最適アクセスを有する。この構成において、ストレージセンタは最大帯域幅をオブジェクトの配信に対して提供するために広域ネットワークに接続される。特定のストレージセンタが要求によってオーバーロードされる場合、新しい要求は次の最も近いストレージセンタに自動的に変更される。全てのオブジェクトが、100パーセント災害保護を提供するために地理的にミラーリングされる。また、地理的に異なるストレージセンタへのアクセスが、ファイルが格納される時に利用できない場合、その時、ファイルの追加コピーがローカルストレージセンタに格納される(すなわち、オブジェクトファイルはローカルにミラーリングされる)。
ネットワークストレージシステム内の構成要素は、自動リカバリによって完全に冗長である。したがって、このシステムは極めて高いレベルのサービスアベイラビリティをサポートする。
各地理的ストレージセンタに対するダウンロード要求は、最速の可能な応答時間をもたらすためにDOSM全体に連続的に分散される。加えて、一実施態様において、地球規模のロードバランシングシステムが、全てのストレージセンタにわたる全世界の負荷が、いかなる「ホットスポット」も除去して、一過性需要スパイクを軽減するために均一に分散されることを確実にする。ストレージシステムは、ネットワークそれ自体よりはるかにすばやく動作し、したがって、無視してよい遅延を全体的なファイル移動時間にもたらす。したがって、個々のオブジェクトダウンロードに対するより悪い場合の経過時間は、主としてオブジェクトを転送するのに用いられる広域ネットワークの速度で決定される。
ネットワークストレージシステム内の全ての構成要素が複製され、故障の場合には完全な回復性を提供するために冗長である。一実施態様において、各ストレージセンタは連続的なネットワークアクセスを確実にするために複数のネットワークバックボーンプロバイダに付属する。全てのファイルおよび制御パスディレクトリ構造は、いかなる起こりうるデータの損失も防ぐためにアップロードの時に地理的に複製される。さらに詳細に以下に記載さているように、このシステムはネットワークストレージ多重化プロトコルの使用を通して異なるストレージセンタの間の可干渉性を維持する。
図16は、ストレージセンタを複製するための一実施態様を例示するブロック図である。この例に関して、1510および1520とラベルをつけられた2つのストレージセンタが示される。しかし、ネットワークストレージシステムの分散アーキテクチャに基づいて、いかなる数のストレージセンタも複製されることができる。ストレージクラスタに対して、ストレージセンタ1510および1520は両方ともロードバランシング機構320、分散オブジェクトストレージマネージャ(「DOSM」)320、相互接続機構330および高機能ストレージノード340を含む。ストレージセンタ1510は、ストレージセンタ1520と同じオブジェクトファイルを格納する。例えば、「オブジェクトファイル1」がストレージノード10ストレージセンタ1510内に格納される場合、「オブジェクトファイル1」はストレージセンタ1520内のストレージノード「1」内に格納される。制御パスに対して、ストレージセンタおよび1510および1520は仮想ファイルシステム(「VFS)50を含む。同様に、ストレージセンタ1510内のVFSは、ストレージセンタ1520内のVFSと同じディレクトリ情報を格納する。したがって、ストレージセンタが複製される。VFSおよびストレージクラスタが同じ地理的「ストレージセンタ」内に示されるとはいえ、VFSおよびストレージクラスタは地理的に異なる場所に位置することができる。
この例に関して、ストレージクラスタ1510(すなわち、ストレージノード1、ストレージノード2...ストレージノード「n」)内の高機能ストレージノードは、それぞれ、インターネットプロトコル(「IP」)アドレスIP addr、IP addrおよびIP addr経由でアクセスされる。したがって、DOSMがストレージセンタ1510内の高機能ストレージノードと通信する場合、DOSMは、特定の高機能ストレージノードにアクセスするためにこれらのIPアドレスを使用する。ストレージセンタ1520は、それぞれ、IPアドレスIP addr’、IP addr’およびIP addr’によってアドレスされるストレージノード(すなわちストレージノード1、ストレージノード2、...ストレージノード「n」)を含む。したがって、ストレージセンタ1520の中で、DOSMがストレージノードと通信する場合、DOSMは、相互接続機構330を横断してIP addrを使用する。ストレージセンタの多重化がIP/TCPネットワークプロトコルを使用して記述されるとはいえ、任意のネットワークプロトコルおよび対応するアドレシング法がストレージセンタを複製するのに用いられることができる。
図16に示すようにストレージセンタ1510の分散オブジェクトストレージマネージャ、または、ストレージセンタ1520の相互接続機構に接続される。同様に、ストレージセンタ1520の分散オブジェクトストレージマネージャはストレージセンタ1510の相互接続機構に接続される。この構成に基づいて、ストレージセンタ1510の分散オブジェクトストレージマネージャはストレージセンタ1520の高機能ストレージノードにアクセスする。同様に、ストレージセンタ1520の分散オブジェクトストレージマネージャはストレージセンタ1510の高機能ストレージノードにアクセスする。上で議論したように、各DOSMはIPアドレスにファイルを相関させるルックアップテーブルを保持する(図6を参照)。例えば、ダウンロード要求で指定されるファイルがストレージセンタ1510のストレージノード1上に存在する場合、DOSMルックアップテーブルのエントリはIP addrを指定する。同様に、ストレージセンタ1520の中で、ファイルがストレージノード1内に存在する場合、DOSMルックアップテーブルに対するエントリはIP addr’を指定する。
このストレージセンタアーキテクチャは、「動的」フェールオーバをサポートする。ストレージノードまたはストレージノード上のディスクドライブによってファイルへのアクセスが得がたくなる場合、DOSMは複製されたストレージセンタからファイルを取得することができる。一実施態様において、「動的」フェールオーバを実行するために、マッピングがストレージセンタ1510の高機能ストレージノードとストレージセンタ1520の高機能ストレージノードとの間に格納される。下の表6は、図16の構成の例に対するマッピングを示す。
Figure 2004500660
この例に関して、IP addrはIP addr’にマップする。故障がストレージセンタ1510内のストレージノード1にある場合、その時、ストレージセンタ1510のDOSMはIP addr’を使用してストレージセンタ1520のストレージノード1にアクセスする。一実施態様において、ストレージセンタ間のIPマッピングは、マップされる2つのIPアドレス間のサブネットアドレス部分を修正することによって実施される。例えば、IP addrが10.3.100.1である場合、IP addr’は、必要に応じて、アドレスのサブネット部分を変更することによって導き出される(例えば10.10.100.1)。
VFS内に格納されるディレクトリ情報は、類似した方法でストレージセンタ1510と1520の間で複製される。したがって、ストレージセンタ1510の分散ディレクトリ内に故障が生じる場合、IPアドレスマッピングを使用して、ストレージセンタ1510内の分散ディレクトリマネージャはストレージセンタ1520内の複製された分散ディレクトリにアクセスする。
一実施態様において、フェールオーバモードに対する地理的アプリケーションをさらに実行するために、1つのディスクが故障する場合、DOSMは異なるストレージセンタにおける同じノード内のファイルを識別することを試みる。ストレージノードが実施不可能になる場合、DOSMはDOSMファイルルックアップテーブル内のエントリをクリアして、遠隔ストレージセンタにおけるファイルの場所を突き止めることを試みる。例えば、ストレージセンタ1510内のストレージノード「1」のディスク「2」が故障する場合、DOSM320は、ストレージセンタ1520の中で、ストレージノード「1」、ディスク「2」内のファイルの場所を突き止めることを試みる。ファイルがストレージセンタ1520の中で、ストレージノード「1」、ディスク2内に位置しない場合、DOSMは、マルチキャストプロトコルを用いて、ローカルに(すなわち、ストレージセンタ1510の中で)ファイルの場所を突き止めること試みる。ファイルがローカルに位置しない場合、マルチキャストプロトコルを使用して、DOSMは遠隔ストレージセンタ(例えばストレージセンタ1520)におけるファイルの場所を突き止めることを試みる。
ネットワークストレージシステムへのアクセス:
ネットワークストレージシステムは、コンテンツ配信ネットワークに用いられるアプリケーションを有する。一般に、コンテンツ所有者およびプロバイダはしばしばコンテンツ配信ネットワークのサービスを使用する。コンテンツ配信ネットワークは、共通にアクセスされたリッチメディアオブジェクトの配信を最適化することを試みる。リッチメディアオブジェクトの配信を最大化するために、コンテンツ配信ネットワークは広域ネットワークの端でローカルキャッシュを使用する。
ネットワークストレージシステムは、基本的なコンテンツをコンテンツ発信元ウェブサイトに提供することによってコンテンツ配信ネットワークを補足するアプリケーションを有する。一実施態様において、コンテンツ配信ネットワークにおける各キャッシュは、所望のオブジェクトの場所を突き止めるために、コンテンツ配信ネットワークがコンテンツ所有者の/プロバイダのウェブサイトにアクセスする必要性を除去するように、地理的に最も近いストレージセンタに直接アクセスする。
図17は、コンテンツ配信ネットワークにおけるストレージセンタの使用に対する一実施態様を例示する。図17の例証に対して、コンテンツ配信ネットワーク1700はコンテンツ発信元ウェブサーバ1720にネットワーク(例えばインターネット)を通じて接続されるエンドユーザコンピュータ1740を含む。コンテンツ発信元ウェブサーバ1720は、ウェブサイトを実行するかまたはホストをつとめる。ウェブサイトは、エンドユーザが、コンテンツ、例えばリッチメディアオブジェクトを選択することを可能にする。コンテンツ配信ネットワークは、(「CDN」)サーバ1730を含む。CDNサーバ1730は、コンテンツ発信元ウェブサーバ1720によってウェブサイト上に公開されるコンテンツを配信する。具体的には、エンドユーザコンピュータ1740は、エンドユーザへの、ウェブサイトと関連するリッチメディアオブジェクトを含む、コンテンツの配信を最大化するためにCDNサーバ1730に接続される。CDNにおいて、CDNサーバ1730はウェブサイト1730と関連するコンテンツの一部をキャッシュに格納する。
図示の必要上、広域ネットワーク1750は、衛星通信ネットワーク1760、ワイアレス通信ネットワーク1770および光ファイバネットワーク1780を含むように、示される。図17にて図示したように、CDNサーバ1730は広域ネットワーク1750の端の近くに位置する。広域ネットワーク1750の近くのCDNサーバ1730の位置は、CDNサーバ1730でキャッシュに格納されるオブジェクトの配信を最適化する。この実施態様に対して、一つ以上のストレージセンタ(複数のストレージセンタ)1710がCDNサーバ1730に接続される。CDNサーバ1730でのキャッシュミスの場合には、CDNサーバ1730はストレージセンタ(複数のストレージセンタ)1710からコンテンツ(例えばオブジェクトファイル)を取得する。エンドユーザコンピュータ1740によって要求されるコンテンツがCDNサーバ1730に位置しない場合には、この構成によってCDNサーバ1730がより遅いコンテンツ発信元ウェブサーバ1720をバイパスすることができる。それゆえに、所望のコンテンツがローカルキャッシュ内に位置しない場合、ストレージセンタ(複数のストレージセンタ)1710はCDNへのインターネットを通してのコンテンツのルーティングを最適化する。
図18は、コンテンツ配信ネットワークによるストレージセンタの使用に対する一実施態様を例示する流れ図である。エンドユーザは、エンドユーザコンピュータを通して、コンテンツ発信元ウェブサーバにHTTP要求を生成する(ブロック1800、図18)。ユーザー要求に応答して、コンテンツ発信元サーバは埋め込みファイルURLを有するHTMLをエンドユーザコンピュータに戻す(ブロック1810、図18)。埋め込みファイルURLは、CDNサーバに格納されるリッチメディアオブジェクトを識別する。リッチメディアオブジェクトを取得するために、エンドユーザコンピュータはコンテンツ配信ネットワーク(例えばCDNサーバ1730)に対してHTTPファイル要求を生成する(ブロック1820、図18)。このURLによって識別されるファイルがCDNサーバサイトのキャッシュ内に位置する場合、CDNサーバはファイルをエンドユーザコンピュータに配信する(ブロック1825および1850、図18)。代わりとして、ファイルがCDNサーバサイトのキャッシュに格納されていない場合、CDNサーバはストレージセンタに対してHTTPファイル要求を生成する(ブロック1825および1830、図18)。一実施態様において、HTTPファイル要求は、ファイルを一意的に識別するために、ネットワークストレージシステムのSRLを含む。CDNサーバの要求に応答して、ストレージセンタはCDNキャッシュにファイルをダウンロードする(ブロック1840、図18)。CDNサーバは、ファイルをエンドユーザコンピュータに配信する(ブロック1850、図18)。
ネットワークストレージシステムへのアクセス:
ネットワークストレージシステムにアクセスするために複数の方法がある。一実施態様において、クライアントは「ストレージポート」を使用する。ストレージポートは、標準ファイルシステムインターフェース(例えばネットワークファイルシステム(「NFS」)またはマイクロソフトNT CIFS)を通してネットワークストレージシステムへのアクセスを提供する。ストレージポートは、異なるアプリケーションに対してさまざまな方法でクライアントによってリッチメディアオブジェクトの配信を最適化するように構成されることができる。一実施態様において、ストレージポートはクライアントサイトにおいてクライアントサイトからネットワークストレージシステムまで途切れのない統合を提供するように構成される。別の実施態様において、ウェブサイトからリッチメディアオブジェクトトラフィックをさらにオフロードするために、ネットワークストレージシステムから直接にエンドユーザにファイルをダウンロードするファイルシステムマネージャとして、ストレージポートが使われることができる。他の実施態様では、ネットワークストレージシステムは専用ファイル構造に直接インターフェースされることができる。
1.ストレージポートアクセス:
ストレージポートデバイスは、ネットワークストレージシステムに透過的なゲートウェイ接続を提供する。1つのアプリケーションにおいて、ストレージポートデバイスはクライアントサイトに設置され、かつローカルエリアネットワーク(LAN)接続を通じて標準のNFSまたはCIFSプロトコル経由でローカルのウェブサーバにインターフェースする。具体的には、一実施態様において、ユーザーはクライアントネットワーク上に記憶装置としてストレージポートをマウントする。この構成において、ストレージポートはストレージセンタでの記憶容量を有する仮想NFSまたはCIFSファイルシステムをユーザーに効果的に提供する(すなわち、ユーザーに何百テラバイトもの記憶容量を提供する)。一実施態様において、ストレージポートデバイスはほぼ1.75インチだけのラック高さを占める。さらに詳細に以下に記載するように、複数のストレージポートが総計のスループットを向上するために単一のクライアントサイトに設置されることができる。
図19は、ネットワークストレージシステム内のストレージポートの使用に対する一実施態様を例示する。エンドユーザ1900は、広域ネットワーク1920を通じてクライアントサイト1910と通信する。エンドユーザコンピュータ1900は、クライアントのウェブサイトを通してアクセスされるファイルに対する要求(例えばHTTP要求)を生成する。コンテンツウェブサーバ1925は、クライアントサイト1910に位置し、リッチメディアオブジェクトをダウンロードする要求を含む、クライアントェブサイトに対する要求を処理する。コンテンツウェブサーバ1925は、複数のウェブサーバおよび/またはアプリケーションサーバのような、ウェブサイトを実施するのに用いられる広いカテゴリのコンピュータおよびソフトウェアを表すことを目的とされ、および、任意のハードウェア/ソフトウェア構成が本発明の趣旨または有効範囲から逸脱せずに使われることができる。
コンテンツウェブサーバ1925は、ネットワーク、例えばクライアントサイト1910のローカルエリアネットワークを通じてストレージポート1930に接続される。具体的には、コンテンツウェブサーバ1925は「ローカルの」ファイルシステムのフォーマットに従ってファイルおよびディレクトリ操作要求を生成する。ここで使用しているように、「ローカルの」ファイルシステムはクライアントサイトで使用される一つ以上のファイルシステムまたはファイル構造を意味する。例えば、コンテンツウェブサーバ1925はファイルおよびディレクトリ操作に対してNFSまたはマイクロソフトNT CIFS要求を生成することができる。ストレージポート1930をコンテンツウェブサーバ1925にインターフェースするために、ストレージポート1930が記憶装置としてマウントされる。一実施態様において、1つのディレクトリがオブジェクトファイルに対してマウントされ、および、第2のディレクトリがSRLに対してマウントされる。図19に示すように、ストレージポート1930はファイルおよびディレクトリ操作を実施するためにストレージセンタ1950と通信する。
図20は、コンテンツを配信するためにストレージポートの使用に対する一実施態様を例示する流れ図である。クライアントサイトは、エンドユーザコンピュータからURLファイル要求を受信する(ブロック2010、図20)。URLは、クライアントのウェブサイトと関連するオブジェクトファイルを識別する。エンドユーザのURLファイル要求に応答して、クライアントサイト(例えばコンテンツウェブサーバ)はオブジェクトファイルに対するローカルファイルシステム要求を生成する(ブロック2020、図20)。ローカルファイルシステム要求は、ストレージポートによって受信される。ストレージポートは、オブジェクトファイルおよびディレクトリ情報の双方を格納するキャッシュを含む。オブジェクトファイルがストレージポート内にローカル的に格納されている場合、ストレージポートはデータキャッシュからオブジェクトファイルを取り出して、ローカルファイルシステム要求に応答してコンテンツウェブサーバにオブジェクトファイルを戻す(ブロック2030、2040および2070、図20)。代わりとして、ストレージポートがオブジェクトファイルのコピーをそのデータキャッシュ内に格納していない場合、ストレージポートはストレージセンタからオブジェクトファイルを要求する(ブロック2030および2050、図20)。ローカルファイルシステム要求に応答して、ストレージセンタはストレージポートにオブジェクトファイルをダウンロードし、および、オブジェクトファイルはコンテンツウェブサーバに戻される(ブロック2060および2070、図20)。その後に、コンテンツウェブサーバはURLファイル要求に応答してオブジェクトファイルをエンドユーザに配信する(ブロック2080、図20)。
ストレージポートは、ハードウェアまたはソフトウェアのいずれかで実装されることができる。図21aは、ストレージポートデバイスに対する1つのハードウェア構成を例示する。図21aに示すように、コンテンツウェブサーバ2100が、ローカルエリアネットワークのような、通信リンク2120を通じてストレージポート2110と通信する。ストレージポート2110は、ストレージセンタ2130とのファイルおよびディレクトリ操作を実施する。
図21bは、ソフトウェアでストレージポートを実装するための実施態様を例示する。一実施態様において、ネットワークストレージシステムはライブラリ呼出を通してまたはアプリケーションプログラムインタフェース(「API」)呼出を通してアクセスされる。これらの実施態様に対して、このソフトウェアはクライアントのローカルファイルシステムとネットワークストレージファイルシステムとの間の変換を提供する。上で議論したように、ストレージセンタ2160はVFSおよび高機能ストレージクラスタの機能を実行するためのコンピュータ上で動作するソフトウェアを含む。このソフトウェアは、外部ソフトウェアのインターフェースを可能にするためにエントリポイント(すなわちAPI)を含む。部分的には、ここで記述されるように、ストレージセンタソフトウェア上のAPIは、クライアントがファイルおよびディレクトリ操作を実施することを可能にする。図21bに示すように、コンテンツウェブサーバ2140は、クライアントサイトを操作するソフトウェアに加えて、ネットワークストレージセンタのAPIを呼び出すソフトウェアを実行する。したがって、この実施態様に対して、コンテンツウェブサーバ2140は遠隔プログラムコールを通して広域ネットワーク2180を通じてネットワークストレージシステムファイルおよびディレクトリ操作を実行する。
ストレージシステムライブラリ呼出2155として示される、別の実施態様において、カスタマイズされたネットワークストレージシステムライブラリが一まとまりのファイルシステム操作を含む。例えば、1つのライブラリ関数が、ライブラリ関数の使用を通してストレージセンタにオブジェクトファイルダウンロードを要求するために、ソフトウェアが(例えば、コンテンツウェブサーバ2140上の)クライアントで動作することを可能にすることができる。この例に関してファイルダウンロード操作を実行するために、クライアントソフトウェアはファイルダウンロード機能を呼び出し、かつ関数呼出しに対して引数としてSRLを渡す。関数のライブラリは、ネットワークストレージシステムに直接アクセスするためにクライアントソフトウェアをインターフェースする付加手段を提供する。
図22は、ストレージポートに対する一実施態様を例示するブロック図である。図22に示すように、ストレージポート2200は処理コア2210、メモリ2230、ストレージポートデータストア2240、および、ネットワークインターフェース(複数のインターフェース)2220を含む。これらの構成要素は、一つ以上のバス(例えばISA、PCIまたはマイクロプロセッサバス)を含むことができるバストランスポート2250経由で、接続される。処理コア2210は、一つ以上の中央処理ユニット(「CPU」)を含む。一実施態様において、ストレージポートは2台のCPUを含む。メモリ2330は、デバイスの操作中に本願明細書に記述されるストレージポートの機能を実行するソフトウェアを格納するのに用いられる。ストレージポートデータストア2240は、ファイルシステム情報(すなわちディレクトリキャッシュ)およびオブジェクトファイル(すなわちデータキャッシュ)を部分的に、キャッシュに格納するために使われる、一台以上のハードディスクドライブ(すなわち、「n」台のハードディスクドライブ、ここで「n」は1以上の任意の数)を含む。「n」枚のネットワークインターフェースカードを含むネットワークインターフェース(複数のインターフェース)2220が、ストレージポート2200をクライアントデバイス(例えばコンテンツウェブサーバ)に接続する。加えて、フェールオーバアーキテクチャをサポートするために、ネットワークインターフェースカードが一つ以上のストレージポートを共に接続するのに用いられる。一実施態様において、ストレージポートは3枚のネットワークインターフェースカードを含む。
図23は、ストレージポート内のファイルシステム変換に対する一実施態様を例示するブロック図である。ネットワークストレージシステムは、ネットワークストレージシステムに対して一意の「ファイルハンドラ」を発行する。一実施態様において、対応するファイルに対して、ネットワークストレージシステムファイルハンドラは、a)クライアント識別、b)親ディレクトリ、c)メタデータ、および、d)一意のデジタル指紋(すなわち128ビットMD5識別)を識別する。一般に、ファイルシステム変換ソフトウェア2300はローカルファイルシステム操作をネットワークストレージシステムファイルシステム操作に変換する。一実施態様において、この機能を実行するために、このソフトウェアはファイルシステムトランスレータ2320およびストレージシステムアクセスプロセス2330を含む。ファイルシステムトランスレータ2320は、ローカルファイルシステムインターセプト2340およびストレージシステムカーネルプロセス2350を含む。
操作中に、クライアントのサイトで実行しているオペレーティングシステムソフトウェアを含むことができるローカルクライアントファイルシステム2310は、ローカルファイルシステム操作を発行する。例えば、ファイルをオープンするために、UNIXまたはマイクロソフトNTに従って、クライアントソフトウェアは要求を発行することができる。ファイルオープン操作は、ローカルファイルシステム内のファイルを識別するファイル記述子を含む。一般的に、ファイルシステム呼出しはオペレーティングシステムカーネル(図23の2360とラベルをつけられた)によって処理される。オペレーティングシステムカーネルソフトウェアは、「アイノード」に対するファイル記述子とディレクトリとの間のマッピングを保持する。アイノードは、システムに、システム内のファイルデータに対する物理的なポインタ(例えばハードディスクドライブに格納されるファイルに対するポインタ)を提供する。
図23の実施態様に対して、ローカルクライアントファイルシステム2310がファイルシステム操作を発行する場合、ローカルファイルシステムインターセプト2340は、呼出しを「トラップし」、またはインターセプトし、かつストレージシステムカーネルプロセス2350に実行のスレッドを渡す。一実施態様において、ローカルファイルシステムインターセプト2340は、カーネギーメロン大学で開発されたCODAソフトウェアを備える。一般に、CODAは一種の分散ファイルシステムである。CODAソフトウェアによって提供される機能の一部は、基本的なファイルシステムをエクスポートする。具体的には、CODAは、一般的に、メモリのユーザー部分にアクセス可能なアプリケーションプログラムに対して、カーネルレベルで実行されるファイルシステム操作をエクスポートする。ファイルシステム変換がローカルファイルシステム操作をインターセプトするためにCODAを使用して記述されるとはいえ、ファイルシステム呼出しをインターセプトする任意のソフトウェアが本発明の趣旨または有効範囲に逸脱せずに使われることができる。
一般に、ストレージシステムカーネルプロセス2350は、ローカルファイルシステム記述子とストレージハンドラとの間のマッピングを提供するためにオペレーティングシステムカーネル2360内のストレージに対するネットワークストレージシステムファイルハンドラ(本願明細書において「ストレージハンドラ」と称する)を取得する。したがって、ファイル記述子はローカルファイルシステム内のファイルおよびディレクトリを識別するハンドルを提供し、および、ストレージハンドラはネットワークストレージシステム内のファイルおよびディレクトリを識別するハンドルを提供する。
ローカルファイルシステム記述子とストレージハンドラとの間のマッピングを維持するために、ストレージシステムカーネルプロセス2350はストレージシステムアクセスプロセス2330からネットワークストレージファイルシステム情報を取得する。具体的には、ストレージシステムカーネルプロセス2350はストレージシステムアクセスプロセス2330からストレージハンドラおよびディレクトリ情報を取得する。図23に示すように、ストレージシステムアクセスプロセス2330はディレクトリキャッシュ2370からディレクトリおよびストレージハンドラ情報を取得する。代わりとして、ディレクトリおよびストレージハンドラ情報がストレージポートでキャッシュに格納されない場合、ストレージシステムアクセスプロセス2330は、ディレクトリ情報およびストレージハンドラを取得するためにネットワークストレージシステム(すなわちVFS)に問い合わせる。したがって、変換システム2300はクライアントのローカルファイルシステムとネットワークストレージファイルシステムとの間のマッピングを提供する。
図24は、ファイルシステム操作をローカルファイルシステムからネットワークストレージファイルシステムに変換するための一実施態様を例示する流れ図である。このプロセスは、ローカルファイルシステム要求を発行するクライアントによって開始される(ブロック2400、図24)。ローカルファイルシステム要求は、オペレーティングシステムカーネルによって受信され、かつ、ファイルシステムトランスレータにディスパッチされる(図23)。例えば、ファイルシステム操作がファイル「foo.txt」に対するオープンファイル操作である場合、オペレーティングシステムカーネルはファイルシステムトランスレータに引数としてファイル名「foo.txt」を有するオープンファイル操作をディスパッチする。ファイルシステム操作がフォルダ「dir1」に対する「フォルダをオープンする」操作である場合、オペレーティングシステムカーネルは引数としてフォルダ名「dir1」を有するオープンフォルダ操作をディスパッチする。
このプロセスは、充分なディレクトリ情報がストレージポートディレクトリキャッシュ内にあるかどうか判定する(ブロック2430、図24)。上記の「フォルダをオープンする」例証に対して、全ての下位フォルダおよびファイルに対するストレージハンドラがディレクトリキャッシュ内に格納されていない場合、追加ディレクトリ情報が要求を満たす必要がある。「ファイルをオープンする」例証に対して、ストレージポートが最近初期化され、したがって、ファイルに関する情報を含まない場合、ファイル(例えば「foo.text」)上の追加ディレクトリ情報がファイルをオープンするために必要である。
充分なディレクトリ情報が、ディレクトリキャッシュ内にあり、および、ファイルシステム操作がデータを取り出す必要がない(すなわち、ファイルシステム操作が「ファイルをオープンする」操作でない)かまたはディレクトリ情報を更新する必要がない場合、その時、ディレクトリキャッシュからの適切なディレクトリ情報が、ローカルファイルシステム操作に応答して取り出され、かつ戻される(ブロック2430および2435、図12)(ブロック2435および2437、図24)。上記の「フォルダをオープンする」例証に対して、対象フォルダ内の全ての下位フォルダおよびファイルに対するストレージハンドラがディレクトリキャッシュから取り出され、ストレージハンドラおよび対応するファイル識別子がオペレーティングシステムカーネル内に格納され、ならびに、ファイル識別子がローカルファイルシステムに戻される。
追加ディレクトリ情報が必要な(すなわち、情報がストレージポートディレクトリキャッシュ内にない)場合、要求が追加ディレクトリ情報のためにVFSに対して生成される(ブロック2070、図24)。一実施態様において、ストレージポートはXMLコード化された要求を生成する。「フォルダをオープンする」例証に対して、ストレージノードおよび対応するファイル識別子がディレクトリキャッシュ内に格納されていない場合、ストレージポートは対象フォルダ(すなわち「フォルダをオープンする」要求の対象であるフォルダ)内のファイルおよび下位フォルダに対するファイルおよびフォルダ情報を抽出するためにXMLコード化された「フォルダをオープンする」要求を生成する。一実施態様において、フォルダ情報に対する要求に応答して、VFSは名前、フォルダ識別、クライアントメタデータ、アップロードSRLおよび親フォルダ識別を返す。ファイル情報に対する要求に応答して、VFSは名前、ファイル識別、クライアントメタデータ、ダウンロードSRLおよび親フォルダ識別を返す。一実施態様において、クライアントメタデータフィールドは、ローカルファイルシステム(例えばUNIX、Microsoft WindowsまたはNTなど用の情報)に使用される状態情報を追跡して、保持するのに用いられる。追加ディレクトリ情報を取得することに加えて、クライアントローカルファイルシステムコマンドがディレクトリ操作(すなわち、「フォルダを移動する」、「フォルダを削除する」、など)である場合、VFSに対するXML要求がVFS内のディレクトリ操作を実行するために生成される。ディレクトリ情報は、ディレクトリキャッシュ内に受信されて、格納される(ブロック2480、図24)。
ファイルシステム操作が(例えばファイルをオープンする、ファイルを読取るなど)ファイルデータを必要とする場合、ストレージポートはこのファイルがデータキャッシュ内に位置するかどうか判定する(ブロック2440、図12)。ファイルがデータキャッシュ内に格納される場合、ファイルまたは適切な部分がストレージポートからクライアント要求側まで転送される(ブロック2090、図12)。代わりとして、ファイルがデータキャッシュ内にない場合、ストレージポートはストレージクラスタに対してファイルダウンロード要求を生成する(ブロック2050、図24)。ストレージクラスタ要求に応答して、ストレージポートはオブジェクトファイルを受信して、その後データキャッシュ内にいれる(ブロック2060、図12)。オブジェクトは次いで、ストレージポートからクライアント要求側に転送される(ブロック2090、図12)。
2.エンドユーザネットワークストレージシステムアクセス方式:
別の実施態様において、ストレージポートはエンドユーザに直接またはCDNパートナーを通してファイルダウンロードをサポートする。一実施態様において、SRLはウェブページHTMLに直接埋め込まれて、エンドユーザに送信される。これは、ストレージセンタからエンドユーザブラウザに直接にオブジェクトを転送することに結びつく。図25は、エンドユーザにオブジェクトファイルを直接ダウンロードするためにストレージポートを使用するための一実施態様を例示するブロック図である。この構成に対して、エンドユーザコンピュータ2610はクライアントサイト2620およびストレージセンタ2650と通信する。クライアントサイト2620は、ウェブサイトを保持する。この実施態様に対して、クライアントサイト2620はコンテンツウェブサーバ2630を通してウェブサイトを保持する。しかし、遠隔ウェブサイトホスティングを含んで、任意の構成のサーバが本発明の趣旨または有効範囲を逸脱させずに使われることができる。
コンテンツウェブサーバ2630はストレージポート2640と通信し、および、次に、ストレージポート2640はストレージセンタ2650と通信する。図25にて図示したように、エンドユーザコンピュータ2610を通して、エンドユーザはクライアントサイト2620に対するURL要求を生成して、代わりに、一つ以上の埋め込みSRLを有するHTMLを受信する。埋め込みSRLを使用して、エンドユーザコンピュータ2610は、広域ネットワーク2660を通じてストレージセンタ2650に直接SRL要求を生成する。応答して、ストレージセンタ2650はエンドユーザコンピュータ2610に直接オブジェクトファイルを供給する。
図26は、エンドユーザにオブジェクトファイルを直接ダウンロードするための一実施態様を例示する流れ図である。クライアントサイト(例えばコンテンツウェブサーバ)は、ファイル(複数のファイル)に対応するSRL(複数のSRL)に対してローカルファイルシステム要求を生成する(ブロック2700、図26)。ファイル(複数のファイル)は、クライアントがウェブページ内に埋め込むことを望むコンテンツを含む。一実施態様において、ストレージポートはコンテンツウェブサーバからの要求に応答してSRL(複数のSRL)を動的に生成する(ブロック2710、図26)。一実施態様において、タイムアウトパラメータがSRL(複数のSRL)に加えられる(ブロック2720、図26)。このタイムアウトパラメータは、クライアントが、SRLが有効な期間(すなわちエンドユーザがファイルにアクセスすることができる期間)を指定することを可能にする。一実施態様では、タイムアウトパラメータは秒の粒度によって期間を指定する。
SRL(複数のSRL)は、クライアントのウェブページのHTMLに埋め込まれる(ブロック2730、図26)。エンドユーザは、クライアントサイトにウェブページ要求を発行する(ブロック2740、図26)。コンテンツウェブサーバは、次いで埋め込みSRL(複数のSRL)を有する要求されたHTMLをダウンロードする(ブロック2745、図26)。埋め込みSRLによって、エンドユーザはストレージセンタに対してHTTP要求を生成する(ブロック2750、図26)。SRL(複数のSRL)がストレージセンタで認証しない場合、ストレージセンタはエラーメッセージをエンドユーザに送信する(ブロック2755、図26)。SRL(複数のSRL)が認証する場合、タイムアウトパラメータが、ファイルアクセスが有効かどうか判定するために調べられる(ブロック2760、図26)。SRLが有効でない(すなわち、タイムアウトパラメータが範囲の外にある)場合、操作は中断される(ブロック2760、図26)。SRLが指定された時間範囲内にある場合、ストレージセンタはエンドユーザにオブジェクトファイルをダウンロードする(ブロック2770、図26)。
ストレージポート2640は、ファイルシステムキャッシュとして作用する。この実施態様に対して、ストレージポートは、標準のNFSまたはCIFSディレクトリフォーマットで格納されるクライアントのSRLファイルを含む。各NFSまたはCIFSファイルは対応するSRLを含み、および、このSRLは一意のファイル識別子およびSRL認証証明書を含む。
一実施態様において、SRLをエンドユーザに配信するために、ネットワークファイルシステムは、オブジェクトファイルに対するディレクトリに加えて、オブジェクトファイルディレクトリをシャドウする、第2のディレクトリを利用する。クライアントは、シャドウファイルを取得するために第2のディレクトリを使用する。シャドウファイルは、ネットワークストレージシステムのオブジェクトファイルを識別するSRLを含む。一実施態様において、ウェブページHTMLにSRLを埋め込むために、クライアントは対応するオブジェクトファイルに対してシャドウファイルのコンテンツを読み込む。一実施態様において、シャドウファイルがアップロード操作中に生成される。クライアントは、第2のディレクトリをマウントすることによってシャドウファイルにアクセスすることができる。例えば、ファイル「foo.text」に対して、クライアントは以下のディレクトリファイル名を指定することができる:
storagefilesystem:/export/dir/foo.text。
クライアントは、オブジェクトファイル「foo.text」のコンテンツにアクセスするためにこのディレクトリおよびファイル名を使用する。例証ファイル「foo.text」に対してSRLを取得するために、クライアントは、以下のディレクトリ例のような、異なるディレクトリをマウントする:
storagefilesystem:/SRL/dir/foo.text、
ここで、SRLファイルは、一意のファイル識別子およびファイル「foo.text」に対するSRL認証証明書を含む。SRLをエンドユーザに配信するために、クライアントは対応するオブジェクトファイルに対してシャドウファイルのコンテンツを読み込んで、ユーザーにSRLを発行する。
3.クライアント専用ファイルシステムディレクトリ:
本発明のネットワークストレージシステムはまた、ストレージシステムにアクセスするために既存の専用ファイルディレクトリを使用してサポートする。この実施態様に対して、ネットワークストレージシステム顧客(例えばクライアント)はネットワークストレージシステムのファイルシステムと連動して専用のファイル構造を使用することを望むかもしれない。他の実施態様では、ネットワークストレージシステムのクライアントはNFSまたはCIFSを使用して追跡されるその情報を越えて、追加情報を追跡するためにファイルシステムを開発することを望むことができる。
図27は、クライアントの専有ファイルディレクトリシステムにストレージセンタをインターフェースする一実施態様を例示するブロック図である。一実施態様において、クライアントサイト2820のストレージポートは、専用ファイルマネージャ2840によって置換される。この実施態様に対して、専用ファイルマネージャ2840は、アップロードの時にユーザファイルに割り当てられる一意のファイル識別を使用して、同じくファイルシステム操作を認証する共有秘密を使用して、オブジェクトファイルに対するSRLを生成する。図27に示すように、クライアントサイト2820で動作する、コンテンツウェブサーバ2830は専用ファイルマネージャ2840に対してファイルシステム要求を生成する。次に、専用ファイルマネージャ2840が要求の対象であるオブジェクトファイルに対応するSRLを発行する。一実施態様において、クライアントは、クライアントがストレージセンタにファイルをアップロードする時に専用の一意のIDを供給する。別の実施態様において、ファイルをダウンロードする要求において、クライアントはストレージセンタによって戻されるオブジェクト指紋を利用する。
図27に示すように、エンドユーザは、エンドユーザコンピュータ2810を通して、クライアントのウェブサイトに対してURL要求を生成する。次に、クライアントサイト2820は埋め込みSRLを有するHTMLを返す。埋め込みSRLによって、エンドユーザコンピュータ2810は、広域ネットワーク2860を通じて、ストレージセンタ2850に対してSRL要求を生成する。次に、ストレージセンタ2850はSRLによって識別されるオブジェクトファイルを供給する。
図28は、クライアントの専用ファイルシステムを使用してストレージセンタ内のオブジェクトファイルにアクセスするための一実施態様を例示する流れ図である。エンドユーザは、クライアントェブサイトにURL要求を発行する(ブロック2900、図28)。応答して、クライアント(例えばコンテンツウェブサーバ)はファイルマネージャにファイル位置要求を生成する(ブロック2910、図28)。一般に、ファイルマネージャはクライアントの専用ファイルシステム内のファイルに対応するSRLを発行する要求にサービスを提供する。クライアントは、ネットワークストレージシステムと連携して任意のタイプのファイルシステムを使用することができる。必要な全ては、クライアントの専用ファイルシステムがクライアントの専用ファイルシステムによって管理されるファイルに対するSRLを発行することである。ファイルマネージャは、HTMLと関連するファイルに対するSRLを取り出して、ファイルをコンテンツウェブサーバに配信する(ブロック2920、図28)。コンテンツウェブサーバは、次いで埋め込みSRLを有するHTMLをエンドユーザに送信する(ブロック2930、図28)。その後に、エンドユーザはSRLを有するストレージセンタに対してHTTP要求を生成する(ブロック2940、図28)。SRLが認証しない場合、ストレージセンタはユーザーにエラーメッセージを発行する。代わりとして、SRLが認証する場合、ストレージセンタはファイルを識別するためにクライアント供給一意ファイルIDに関するMD5ハッシュを生成する(ブロック2947、図28)。ストレージセンタは、その後にエンドユーザにオブジェクトファイルをダウンロードする(ブロック2950、図28)。
クライアントの専有ファイルシステムアクセス方式に対して、クライアントは一意のファイル名とSRLとの間のマッピングを保持する。一実施態様において、この一意のファイル名はMD5ハッシュ操作から取得されないが、しかし、一意のファイル名である。したがって、ネットワークストレージシステムは、オブジェクトファイルのコンテンツおよびクライアント一意ファイル名に由来する、MD5ファイル名の間を区別する技法を利用する。一実施態様において、これらの2つのタイプのファイル名を区別するために、ネットワークストレージシステムは異なるストレージ指紋識別子を割り当てる。オブジェクトファイルのコンテンツに関するMD5ハッシュ操作によって生成されるファイル名に対して、ファイルは「128bits.MD5」と指定される。顧客の一意のファイル名を識別するために、ファイルは「MD5.UFID」に指定される(すなわち、ここで「MD5」がクライアントの一意のファイル名である)。この記法によって、ネットワークストレージシステムがtwpタイプのファイル識別子を区別することを可能にして、顧客が一意のファイル名を指定するだけでネットワークストレージシステムとインターフェースすることができる。
フェールオーバアーキテクチャ:
一実施態様において、ストレージポートはフェールオーバまたはフェールセーフアーキテクチャをサポートする。図29は、ストレージポートフェールオーバ構成に対する一実施態様を例示するブロック図である。説明のために、図29は2個のストレージポートを備えたフェールオーバ構成を例示する。しかし、このストレージポートフェールオーバ構成は任意の「2N」個のフェールオーバ構成まで拡張されることができる。この実施態様に対して、このフェールオーバ構成は能動ストレージポート3010および受動ストレージポート3020を含む。各ストレージポートは、複数のネットワークインターフェースカードを含む。能動ストレージポート3010および受動ストレージポート3020の双方は、それぞれ、ネットワークインターフェースカード3045および3025を通して、広域ネットワーク3065を通じてストレージセンタ(複数のストレージセンタ)へ通信する。能動ストレージポート3010および受動ストレージポート3020はまた、それぞれ、ネットワークインターフェースカード3050および3035経由でクライアントサイトネットワークへ通信する。図29に示すように、クライアントはIP Addrを使用してクライアントサイトネットワーク3060を通じて能動ストレージポート3010にアクセスする。
図29の実施態様に対して、第3のネットワークインターフェースカードがフェールオーバ監視のためにデバイスの間で通信するように能動ストレージポート3010(3055)および受動ストレージポート3020(3030)双方の上に含まれる。能動ストレージポート3010は、クライアントサイトで現在のストレージポートとして動作する。受動ストレージポート3020は、能動ストレージポート3010の健康を監視する。具体的には、能動ストレージポート3010は能動ストレージポート3020の健康(例えばCPU、ハードディスクドライブ、などの健康)を確認するために絶えずプロセスを実行する健康監視3070を含む。この実施態様に対して、受動ストレージポート3020は健康状態に対して能動ストレージポート3010を問い合わせる。フェールオーバ状態の根拠となる状態が能動ストレージポート3010内に生じる場合、受動ストレージポート3020が能動ストレージポートになる(すなわち、受動ストレージポートはストレージセンタ(複数のストレージセンタ)にクライアントサイトをインターフェースするのに用いられる)。
一実施態様において、フェールオーバをサポートするために、1つのIPアドレスがNFS/CIFSエクスポートに対して使われる。この実施態様に対して、標準IP切替え方式が利用されることができる。具体的には、フェールオーバ状態が生じる場合、受動ストレージポート3020は能動ストレージポート3010のIPアドレスを引き受ける。健康監視3070および3080は、能動および受動プロセスの双方を含み、それで、フェールオーバ状態が生じる場合、受動ストレージポートは能動ストレージポートプロセスを実行することができる。
図30は、ストレージポートフェールオーバプロセスに対する一実施態様を例示する流れ図である。ストレージポートフェールオーバが生じる場合、新しいストレージポートはそのディレクトリキャッシュ内に何のディレクトリ情報も、またはそのデータキャッシュ内に何のオブジェクトも含まない。したがってフェールオーバ操作の後で、ファイルが開いており、および、ストレージポートが読取りファイル要求を受信する場合、新しいストレージポートはファイルオープン操作を実行しなければならない(ブロック3130および3140、図30)。ストレージポートがファイル識別情報(例えばSRL)を受信したあと、ストレージポートは、読取りファイル要求に応答してオブジェクトデータのブロックを送信するために、オブジェクトファイルを取得するためにストレージセンタに対する要求を生成する。
フェールオーバ状態の後、ファイルが要求され(ブロック3120、図30)、または、オープンファイル操作が必要な場合、ストレージポートはファイル識別情報を取得するためにVFSに対してXMLを生成する(ブロック3150、図30)。応答して、VFSはファイル識別情報を返す(ブロック3160、図30)。ファイル識別情報によって、ストレージポートはそのディレクトリキャッシュを更新する(ブロック3170、図30)。ファイル識別情報(例えばSRL)によって、ストレージポートはオブジェクトファイルに対してストレージセンタに要求を生成する(ブロック3180、図30)。応答して、ストレージセンタはオブジェクトファイルを配信し、および、ストレージポートはそのデータキャッシュを更新する(ブロック3190、図30)。ストレージセンタダウンロード操作がストレージポートに対する読出し要求に応答してある場合、読出し要求は、読出し要求で指定されるようにデータを配信する。
ネットワークストレージシステム動的フェールオーバ:
一実施態様において、ストレージノードはそれらのそれぞれのノードの健康を監視する(例えばハードディスクドライブ、プロセッサ、ネットワークアクセス、などを監視する)。ストレージノードの健康が、ストレージノードは動作をやめるべきであると要求する場合、その時、ストレージクラスタはフェールオーバ操作を実行する。一実施態様において、フェールオーバ操作で、ストレージノードは、故障した状態をDOSMに報告し、および、DOSMはそれらの状態表を更新する。これが生じる場合、DOSMは異なるストレージノード(すなわちローカルにまたは遠隔にのどちらか)における複製されたファイルの場所を突き止めることを試みる。
図31は、ストレージノードフェールオーバ状態の後でマルチキャストプロトコルを使用するための一実施態様を例示する流れ図である。ストレージノードが故障する場合、DOSMが更新し、およびそれらの状態表が、このストレージノードがもはや使用中でないことを示す(ブロック3210および3220、図31)。DOSMが故障したストレージノードに以前格納されたファイルに対するファイル要求を受信する場合、その時、ダウンロード要求を受信したDOSMが、ストレージノードにマルチキャストプロトコル要求を発行する(ブロック3225および3230、図31)。一実施態様において、DOSMはローカルストレージノード(すなわちそのストレージセンタに位置するストレージノード)にマルチキャストプロトコル要求を発行することができる。
マルチキャスト要求を受信する各ストレージノードは、それが要求されたオブジェクトファイルを含むかどうか判定する(ブロック3240、図31)。ストレージノードのいずれもがこのオブジェクトファイルを含まない場合、その時、DOSMは遠隔ストレージ位置で別のマルチキャストプロトコル要求を発行することができる(ブロック3245および3247、図31)。再び、遠隔ストレージセンタで、各ストレージノードはそれが要求されたオブジェクトファイルを含むかどうか判定する(ブロック3240、図31)。別の実施態様において、DOSMがマルチキャストプロトコルを使用してファイルの場所を突き止めない場合、DOSMはDOSPポイントツーポイントプロトコルを使用して個々のストレージノードを問い合わせることができる。
ストレージノードが要求されたオブジェクトファイルの場所を突き止める場合、ストレージノードはマルチキャストプロトコルを使用してファイル識別情報をブロードキャストする(ブロック3250、図31)。各DOSMは、ファイル識別情報を受信するために、マルチキャストプロトコルを用いてスヌープする(ブロック3260、図31)。図31のプロセス実施態様にて図示したように、マルチキャストプロトコルが、フェールオーバ状態の場合にはDOSM内のファイル位置情報に同期させるのに用いられることができる。
マルチキャストプロトコル:
本発明のマルチキャストプロトコルは、ファイル情報のメンテナンスを分散ストレージシステムの中でサポートする。ネットワークストレージシステムが複数のストレージノードから成るので、マルチキャストプロトコルがファイル情報を追跡して、ネットワークストレージシステムの全体にわたってファイル情報に同期させるのに用いられる。ファイルおよびディレクトリ情報のトラッキングおよび保守は、地理的に異なるストレージセンタの全体にわたって情報を保持することを含む。一実施態様において、マルチキャストプロトコルはDOSM内のキャッシュ情報に同期させる。例えば、新しいオブジェクトファイルがロードされる場合、マルチキャストプロトコルは新しいオブジェクトファイルにアクセスするために必要な情報を取得するためにネットワークストレージシステム内の全てのDOSMに対する手段を提供する。加えて、削除ファイルまたは更新ファイル操作を含んで、若干のファイル操作はDOSMルックアップテーブルを更新することを必要とする。また、ストレージノードが故障する、および、フェールオーバ条件が実行される場合、マルチキャストプロトコルは、ファイルが複製されたストレージノードでファイルの場所を突き止めるための手段をDOSMに提供する。
分散オブジェクトストレージプロトコル(DOSP):
一実施態様において、DOSPはデーモン/マスタサービスおよびマルチキャストベースの監視通信を含む。デーモンとマスタ構成要素との間の通信は、一組の「要求パケット」および「応答パケット」を通して達成される。要求パケットは、三大下位構成要素:要求のタイプを指定するオペコード、あとに続くデータについての情報を提供するC++特有の構成経由で実装されるヘッダ、および、もしあれば送信されるデータから成る。
各操作は、関連したオペレーションコードおよび一対の構成:要求の発行に対するものおよび戻り値に対する第2の別々の構成を有する。一旦受信器が受信して、要求を処理する(データを送信した、ファイルを削除したなど)と、それは、次いで要求の状態(成功、失敗、など)および任意の必要戻り値を示す適切な「アウト構成」からなる応答を送信する。現在、DOSPによってサポートされる6つのサービス操作:ヌル、ファイルを格納する、ファイルを取り出す、ファイル範囲を取り出す、ファイルを削除する、および、コンテンツを得る、がある。
ヌルオペレーションは、プロトコルの将来の修正を作成して、マスタ/デーモン要求/応答対話の基本的機能を試験する枠組みを提供する。
ファイルが格納する準備のできている場合、DOSMクライアントは要求IDを送信し、要求ヘッダが続く。それは、次いでデータを一連のチャンクでdosdに送信し、チャンクのそれぞれが、読み込まれる次のチャンクのサイズを与えるDosdStoreHeaderおよびこれが送信される最後のパケットであるかどうか示すフィールドの後にある。
ファイルがストレージクラスタから取り出されている場合、DOSMクライアントは要求IDを送信し、要求構成が続く。DOSDは、最初にデータのサイズ、要求されるデータおよび最後に操作の戻り値とともにアウト構成を送信することによって応答する。
コンテンツを得る操作は、文字ベースのストリームとしてストレージノードのコンテンツを取得するのに用いられる。「イン構成」の後は、dosdに渡され、dosdは、最初にmd5hash/node&disk結合のストリームの長さを戻し、データのストリームが続き、「アウト構成」が最後に来る。
DOSPは、伸長可能な枠組みを任意の新しいサービスまたは付加機能に提供する。基本的に3つのステップが、新しい機能を加えることにある:新しい1対のイン/アウト構成を定義するステップ、新しいオペコードを割り当てて、DOSMクライアント内にハンドラを実装するステップ、および、dosdに対してサービスハンドラを追加するステップ。
システムについての情報の収集を容易にするために、DOSPは、いくつかのマルチキャストベースのサービスを提供する。一実施態様において、これらのサービスは非マルチキャスト態様のプロトコルにきわめて類似した方法で作用する。具体的には、要求は3つの部分:オペコード、要求イン構成、および、任意の追加データ、から成る。
応答は、戻り値および要求を満たすことを必要とするその他の戻り値を含む応答構成から成る。データがストリームされる場合、サイズフィールドがデータに先行し、データがあとに続いて、次いでアウト構成があとに続く。
マルチキャストトラフィックがポイントツーポイントdosm/dosdトラフィックから完全に別々のポート上に生じるので、マルチキャストイン/アウト構成はマルチキャストに特有でない。これは、DOSMが全dosdストレージクラスタを問い合わせるかまたは同じ要求/応答構成およびそれらの関連した操作可能シーケンスによって個々の機械を問い合わせることを可能にする。
DOSMのジョブのうちの1つは、クラスタ内のノードの現在の状態を監視することである。いくつかのツールが、このタスクを容易にするためにある。主として、さまざまなdosデーモンが、特定のマルチキャストポートおよびグループ上のハートビートをマルチキャストする。DOSMは、所定のストレージノード上で特定のディスクまたはディスクの全てを問い合わせるオプションを含む。「ディスク状態を得る」機能は、ディスクあたり1つのエントリを有する値およびディスク状態値のアレイ(オンライン、オフライン、ダウン)を戻す。「ディスク状態を得る」機能は、所定のノード上の特定のディスクまたはディスクの全てを問い合わせるオプションを含む。「ディスク状態を得る」は、戻り値およびディスク統計情報のアレイ、統計値あたり1つのアレイ(空いているバイト、利用できるバイト、使用されるアイノード、利用できるアイノード、発行済の操作の数)を含み、ディスクあたり1つのエントリを有する。DOSPは、ロードバランシング機能を含む。
DOSPは、ハートビート機能を含む。これは、マルチキャスト方法経由でシステム全体の追跡機能を提供することに加えてハートビートに対して特定の機械を問い合わせることを可能にする。
本発明が特定の例示的な実施態様に関して記述されたとはいえ、さまざまな変更態様および修正が本発明の趣旨と範囲から逸脱することなく、当業者によってなされるであろうことが理解されるであろう。
本発明のストレージシステムに対する一実施態様を例示するブロック図である。 メディアストレージサービスとしてのネットワークストレージシステムの使用に対する一実施態様を例示する。 ストレージクラスタに対する一実施態様を例示するブロック図である。 ストレージクラスタ内のダウンロード操作に対する一実施態様を例示する流れ図である。 ネットワークストレージシステム内の認証に対する一実施態様を例示する流れ図である。 分散オブジェクトストレージマネージャ(「DOSM」)の一実施態様を例示する。 高機能ストレージノードに対する一実施態様を例示するブロック図である。 ストレージクラスタ内のアップロード要求を処理するための一実施態様を例示する流れ図である。 オブジェクトファイルの一意の指紋を生成するための一実施態様を例示する流れ図である。 ストレージクラスタ内のデータをキャッシュに格納するための一実施態様を例示するブロック図である。 ネットワークストレージシステムとともに用いられるVFSを実装するための一実施態様を例示するブロック図である。 データベースを有するファイルシステムを実装するためのサンプルデータベース表を例示する。 VFS内でディレクトリ操作を実行するための一実施態様を例示する流れ図である。 VFS内でディレクトリ操作を実行するための一実施態様を例示する流れ図である。 ネットワークストレージシステムの削除ファイル操作に対する一実施態様を例示する流れ図である。 ストレージセンタの地理的多重化を例示する。 ストレージセンタを複製するための一実施態様を例示するブロック図である。 コンテンツ配信ネットワーク内のストレージセンタの使用に対する一実施態様を例示する。 コンテンツ配信ネットワークによるストレージセンタの使用に対する一実施態様を例示する流れ図である。 ネットワークストレージシステム内のストレージポートの使用に対する一実施態様を例示する。 コンテンツを配信するためのストレージポートの使用に対する一実施態様を例示する流れ図である。 図21aは、ストレージポートデバイスに対する1つのハードウェア構成を例示する。 図21bは、ソフトウェアでストレージポートを実装するための実施態様を例示する。 ストレージポートに対する一実施態様を例示するブロック図である。 ストレージポート内のファイルシステム変換に対する一実施態様を例示するブロック図である。 ファイルシステム操作をローカルファイルシステムからネットワークストレージファイルシステムに変換するための一実施態様を例示する流れ図である。 オブジェクトファイルをエンドユーザに直接ダウンロードするためにストレージポートを使用するための一実施態様を例示するブロック図である。 オブジェクトファイルをエンドユーザに直接ダウンロードするための一実施態様を例示する流れ図である。 ストレージセンタをクライアントの専有ファイルディレクトリシステムにインターフェースする一実施態様を例示するブロック図である。 クライアントの専有ファイルシステムを使用してストレージセンタ内のオブジェクトファイルにアクセスするための一実施態様を例示する流れ図である。 ストレージポートフェールオーバ構成に対する一実施態様を例示するブロック図である。 ストレージポートフェールオーバプロセスに対する一実施態様を例示する流れ図である。 ストレージノードフェールオーバ状態の後でマルチキャストプロトコルを使用するための一実施態様を例示する流れ図である。
符号の説明
50 仮想ファイルシステム(VFS)
90 ネットワークストレージシステム
130 ストレージサービス
300 ストレージクラスタ
600 DOSMサーバ
700 高機能ストレージノード
1710 ストレージセンタ
1730 CDNサーバ
2200 ストレージポート
2300 変換システム

Claims (23)

  1. ネットワークストレージシステムであって、
    単一のファイルシステムに対してファイルシステム情報を格納するための仮想ファイルシステム(「VFS」)であって、前記ネットワークストレージシステムのクライアントが、前記単一ファイルシステムの複数のファイルを管理するためにネットワークを通じて前記VFSにアクセスし、そして、前記クライアントが前記単一ファイルシステム内のファイルにアクセスするために前記VFSから記憶資源ロケータ(「SRL」)を受信する、前記VFSと、
    お互い、前記クライアント、および前記VFSから地理的に異なる場所に位置し、かつ、広域公衆アクセスネットワークを通して前記クライアントに接続される、複数のストレージセンタにおいて、各々が、前記単一ファイルシステムに対して複数のファイルを格納するための、前記複数のストレージセンタであって、前記ネットワークストレージシステムの前記クライアントが、前記広域公衆アクセスネットワークを通じて前記ファイルをダウンロードするために前記広域公衆アクセスネットワークを通じて前記ストレージセンタのうちの1つに前記受信されたSRLを送信し、そして、前記SRLが、前記広域公衆アクセスネットワークを通じて前記ストレージセンタのうちの1つにアクセスするためにストレージセンタに対する公衆アクセスネットワークアドレス、および前記ストレージセンタのうちの1つに格納される前記ファイルを一意的に識別するために前記ファイルの前記コンテンツと関連する一意の識別子を含む、前記ストレージセンタとを備える、前記ネットワークストレージシステム。
  2. クライアントにおいて、前記仮想ファイルシステムおよび前記ストレージセンタにアクセスするためのストレージポートであって、クライアントファイルシステム要求を、前記単一ファイルシステム内の前記ファイルを識別する前記ファイル識別子を含むファイルシステム要求に変換する、前記ストレージポートをさらに備える、請求項1記載のネットワークストレージシステム。
  3. 前記ストレージポートのフェールオーバ状態の場合には、前記仮想ファイルシステムおよび前記ストレージセンタにアクセスするための少なくとも一つの追加ストレージポートをさらに備える、請求項2記載のネットワークストレージシステム。
  4. 各ストレージセンタが、
    前記ストレージセンタにアクセスする要求を受信するための複数の分散オブジェクトストレージマネージャ(「DOSM」)と、
    前記DOSMからのアクセス要求にサービスを提供するために前記ネットワークストレージシステムのファイルを格納するための、各高機能ノードがプロセッサコアおよび複数の記憶装置を含む、複数の高機能ストレージノードを備える、ストレージクラスタとを備える、請求項1記載のネットワークストレージシステム。
  5. 前記高機能ストレージノード内に格納されるファイルに関するファイル情報を前記DOSMに保持するためのマルチキャストプロトコルをさらに備える、請求項4記載のネットワークストレージシステム。
  6. 前記DOSMが、前記高機能ノード内に格納されるファイルの少なくともサブセットをキャッシュに格納するためのデータキャッシュをさらに備える、請求項4記載のネットワークストレージシステム。
  7. 前記ストレージセンタにアクセスする需要に基づいて、アクセス要求に対するDOSMを選択するための、かつ、前記DOSMの前記データキャッシュ内の高需要のファイルに対するデータをキャッシュに格納するための、ロードバランシング機構をさらに備える、請求項6記載のネットワークストレージシステム。
  8. 故障が前記ストレージセンタの別の一つで生じる場合には、異なるストレージセンタからのアクセス要求にサービスを提供するための、動的フェールオーバ機構をさらに備える、請求項2記載のネットワークストレージシステム。
  9. 前記ネットワークストレージシステムに接続されるコンテンツ配信ネットワークをさらに備える、請求項1記載のネットワークストレージシステム。
  10. 前記ファイル識別子が、前記ファイルの前記コンテンツに由来するデジタル指紋を含む、請求項1記載のネットワークストレージシステム。
  11. ファイルをネットワークストレージシステム内に格納するための方法であって、前記方法が、
    ファイルシステム情報を単一ファイルシステムに対する仮想ファイルシステム(「VFS」内に格納するステップと、
    前記ネットワークストレージシステム内のファイルにアクセスするために前記VFSにおいてクライアントからの要求を受信するステップと、
    前記クライアントからの前記要求に応答して、前記VFSにおいて記憶資源ロケータ(SRL)を生成するステップと、
    複数のストレージセンタ内の前記単一ファイルシステムに対して複数のファイルを格納するステップであって、前記ストレージセンタが、お互い、から地理的に異なる場所に位置する、前記ステップと、
    前記ストレージセンタを、広域公衆アクセスネットワークを通して前記クライアントに接続するステップと、
    広域公衆アクセスネットワークを通じて、前記クライアントから前記ストレージセンタのうちの1つまで、前記VFSから受信される前記SRLを送信するステップであって、前記SRLが、前記広域公衆アクセスネットワークを通じてストレージセンタにアクセスするための情報を備え、かつ、前記ストレージセンタのうちの1つに格納される前記ファイルを一意的に識別するために前記ファイルのコンテンツと関連する一意のファイル識別子を備える、前記ステップと、前記広域公衆アクセスネットワークを通じて、前記クライアントに識別される前記ストレージセンタから前記SRLによって識別される前記ファイルをダウンロードするステップとを含む、前記方法。
  12. クライアントにおいて、ストレージポートを使用して前記仮想ファイルシステムおよび前記ストレージセンタにアクセスするステップであって、前記ストレージポートが、クライアントファイルシステム要求を、前記単一ファイルシステム内の前記ファイルを識別する前記ファイル識別子を含むファイルシステム要求に変換する、前記ステップをさらに含む、請求項11記載の方法。
  13. 少なくとも一つの追加ストレージポートから前記ストレージポートのフェールオーバ状態の場合には、前記仮想ファイルシステムおよび前記ストレージセンタをさらに含む、請求項11記載の方法。
  14. 前記ストレージセンタから前記ファイルをダウンロードするステップが、
    前記ストレージセンタへのアクセスに対する要求を受信するステップと、
    複数の分散オブジェクトストレージマネージャ(DOSM)のうちの1つを前記要求にサービスを提供するために選択するステップと、
    前記要求にサービスを提供するために選択される前記DOSMから高機能ストレージノードにアクセスするステップであって、各高機能ノードがプロセッサコアおよび複数の記憶装置を含む、前記ステップとを含む、請求項11記載の方法。
  15. 前記高機能ストレージノード内に格納されるファイルを要求するファイル情報を前記DOSMSに保持するためにマルチキャストプロトコルからコマンドを発行するステップをさらに含む、請求項14記載の方法。
  16. 前記DOSMにおける前記高機能ノード内に格納されるファイルの少なくともサブセットをキャッシュに格納するステップをさらに含む、請求項14記載の方法。
  17. 前記ストレージセンタにアクセスする需要に基づいてダウンロード要求に対してDOSMを選択するステップと、
    前記DOSM内の高需要のファイルに対するデータをキャッシュに格納するステップとをさらに含む、請求項14記載の方法。
  18. 故障が前記ストレージセンタで生じる場合には、異なるストレージセンタからのアクセス要求にサービスを提供するステップをさらに含む、請求項11記載の方法。
  19. コンテンツ配信ネットワークから前記ストレージセンタにアクセスするステップをさらに含む、請求項11記載の方法。
  20. 前記ファイル識別子が、前記ファイルの前記コンテンツに由来するデジタル指紋を含む、請求項11記載の方法。
  21. ネットワークストレージシステムであって、
    単一ファイルシステムに対してファイルシステム情報を格納するための仮想ファイルシステム(「VFS」)であって、前記ネットワークストレージシステムのクライアントが、前記単一ファイルシステムの複数のファイルを管理するためにネットワークを通じて前記VFSにアクセスし、そして、前記クライアントが前記単一ファイルシステム内のファイルにアクセスするために前記VFSから記憶資源ロケータ(「SRL」)を受信する、前記VFSと、
    広域公衆アクセスネットワークを通して前記クライアントに接続され、前記単一ファイルシステムに対して複数のファイルを格納するための、ストレージセンタであって、前記ネットワークストレージシステムの前記クライアントが、前記広域公衆アクセスネットワークを通じてファイルをダウンロードするために前記公衆アクセスネットワークを通じて前記ストレージセンタに前記受信されたSRLを送信し、そして、前記SRLが前記広域公衆アクセスネットワークを通じて前記ストレージセンタにアクセスするための情報を備え、かつ、前記ストレージセンタに格納される前記ファイルを一意的に識別するために前記ファイルの前記コンテンツと関連する一意のファイル識別子を備える、前記ストレージセンタとを備える、前記ネットワークストレージシステム。
  22. 前記ファイル識別子が、前記ファイルの前記コンテンツに由来するデジタル指紋を含む、請求項21記載のネットワークストレージシステム。
  23. 前記SRLが制御パスを通じて前記VFSから受信され、および、前記ファイルがデータパスを通じて前記ストレージセンタからダウンロードされる、請求項1記載のネットワークストレージシステム。
JP2001565610A 2000-03-03 2001-03-02 ネットワーク記憶システム Pending JP2004500660A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US18669300P 2000-03-03 2000-03-03
US18677400P 2000-03-03 2000-03-03
US09/695,499 US7428540B1 (en) 2000-03-03 2000-10-23 Network storage system
US09/753,141 US7506034B2 (en) 2000-03-03 2000-12-29 Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
PCT/US2001/006707 WO2001067707A2 (en) 2000-03-03 2001-03-02 A network storage system

Publications (2)

Publication Number Publication Date
JP2004500660A JP2004500660A (ja) 2004-01-08
JP2004500660A5 true JP2004500660A5 (ja) 2008-05-29

Family

ID=27497681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001565610A Pending JP2004500660A (ja) 2000-03-03 2001-03-02 ネットワーク記憶システム

Country Status (5)

Country Link
US (1) US7506034B2 (ja)
EP (1) EP1410247B1 (ja)
JP (1) JP2004500660A (ja)
AU (1) AU2001241921A1 (ja)
WO (1) WO2001067707A2 (ja)

Families Citing this family (229)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US7281168B1 (en) 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7266555B1 (en) 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US7844513B2 (en) 2000-07-17 2010-11-30 Galactic Computing Corporation Bvi/Bc Method and system for operating a commissioned e-commerce service prover
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
EP1532543A4 (en) * 2000-09-11 2008-04-16 Agami Systems Inc STORAGE SYSTEM COMPRISING PARTITIONED METADATA THAT MIGRATE LIKELY
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7089293B2 (en) * 2000-11-02 2006-08-08 Sun Microsystems, Inc. Switching system method for discovering and accessing SCSI devices in response to query
US20020103974A1 (en) * 2000-11-29 2002-08-01 Giacomini Peter Joseph Method and apparatus for economical cache population
US7249168B1 (en) * 2000-12-28 2007-07-24 Apple Inc. Method and apparatus for automated remote volume mounting using a plug-in installed on a client
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US20080059532A1 (en) * 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US9674575B2 (en) * 2001-01-19 2017-06-06 SITO Mobile R&D IP, LLC System and method for routing media
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US8180904B1 (en) 2001-04-26 2012-05-15 Nokia Corporation Data routing and management with routing path selectivity
US9143545B1 (en) 2001-04-26 2015-09-22 Nokia Corporation Device classification for media delivery
US9032097B2 (en) 2001-04-26 2015-05-12 Nokia Corporation Data communication with remote network node
US9900286B2 (en) 2001-04-26 2018-02-20 Nokia Technologies Oy Device classification for media delivery
US8990334B2 (en) * 2001-04-26 2015-03-24 Nokia Corporation Rule-based caching for packet-based data transfer
US6768989B2 (en) * 2001-06-21 2004-07-27 Kevin Wade Jameson Collection recognizer
US7546354B1 (en) * 2001-07-06 2009-06-09 Emc Corporation Dynamic network based storage with high availability
US7519575B1 (en) * 2001-08-31 2009-04-14 Novell, Inc. Method and apparatus for presenting, searching, and viewing directories
US7958199B2 (en) * 2001-11-02 2011-06-07 Oracle America, Inc. Switching systems and methods for storage management in digital networks
JP3983036B2 (ja) * 2001-11-21 2007-09-26 富士通株式会社 ファイルサーバプログラム
US7043503B2 (en) * 2002-02-15 2006-05-09 International Business Machines Corporation Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
WO2003088566A1 (en) * 2002-04-09 2003-10-23 Telefonaktiebolaget L M Ericsson (Publ) Secure file transfer
JP2005530280A (ja) * 2002-06-13 2005-10-06 アガミ システムズ, インコーポレイテッド 関連アプリケーション相互参照対称的共有ファイル記憶システム
US6931530B2 (en) * 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
US20040054943A1 (en) * 2002-08-08 2004-03-18 International Business Machines Corporation Method and system for improving the availability of software processes utilizing configurable finite state tables
CA2496243C (en) * 2002-08-28 2011-10-18 Grass Valley (U.S.) Inc. Video-storage network having increased performance
US7778438B2 (en) 2002-09-30 2010-08-17 Myport Technologies, Inc. Method for multi-media recognition, data conversion, creation of metatags, storage and search retrieval
US6996251B2 (en) 2002-09-30 2006-02-07 Myport Technologies, Inc. Forensic communication apparatus and method
US10721066B2 (en) 2002-09-30 2020-07-21 Myport Ip, Inc. Method for voice assistant, location tagging, multi-media capture, transmission, speech to text conversion, photo/video image/object recognition, creation of searchable metatags/contextual tags, storage and search retrieval
US7774325B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Distributed network attached storage system
AU2003301379A1 (en) * 2002-10-17 2004-05-04 Intel Corporation A distributed network attached storage system
US7428751B2 (en) * 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
US7475142B2 (en) 2002-12-06 2009-01-06 Cisco Technology, Inc. CIFS for scalable NAS architecture
US7443845B2 (en) 2002-12-06 2008-10-28 Cisco Technology, Inc. Apparatus and method for a lightweight, reliable, packet-based transport protocol
US20040139167A1 (en) * 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
JP3941700B2 (ja) * 2003-01-28 2007-07-04 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7610348B2 (en) 2003-05-07 2009-10-27 International Business Machines Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US7103681B2 (en) * 2003-06-19 2006-09-05 Nokia Corporation System for rendering multimedia messages by providing, in a multimedia message, URL for downloadable software to receiving terminal
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7444508B2 (en) * 2003-06-30 2008-10-28 Nokia Corporation Method of implementing secure access
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US8606880B2 (en) * 2003-12-04 2013-12-10 Sheng (Ted) Tai Tsao Use of wireless devices' external storage
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US20060064400A1 (en) * 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US7747717B2 (en) * 2003-08-14 2010-06-29 Oracle International Corporation Fast application notification in a clustered computing system
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
NZ547723A (en) * 2003-12-17 2009-09-25 Praecis Pharm Inc Methods for synthesis of encoded libraries
US7627617B2 (en) * 2004-02-11 2009-12-01 Storage Technology Corporation Clustered hierarchical file services
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
JP2005276094A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd 分散ストレージ装置のファイル管理方法及び分散ストレージシステム並びにプログラム
US8516035B2 (en) * 2006-06-21 2013-08-20 Apple Inc. Browsing and searching of podcasts
US8412763B2 (en) 2006-06-21 2013-04-02 Apple Inc. Podcast organization and usage at a computing device
US8266406B2 (en) 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7343459B2 (en) 2004-04-30 2008-03-11 Commvault Systems, Inc. Systems and methods for detecting & mitigating storage risks
US7409445B2 (en) * 2004-05-27 2008-08-05 International Business Machines Corporation Method for facilitating monitoring and simultaneously analyzing of network events of multiple hosts via a single network interface
KR20060060150A (ko) * 2004-11-30 2006-06-05 삼성전자주식회사 가상 파일 시스템을 만들어 멀티미디어 데이터를 재생하는장치 및 재생방법
US8458125B1 (en) * 2005-01-31 2013-06-04 Oracle America, Inc. Dynamic creation of replicas of streaming data from a storage device without added load
US9400875B1 (en) 2005-02-11 2016-07-26 Nokia Corporation Content routing with rights management
US20060209676A1 (en) * 2005-03-16 2006-09-21 Kun-Pu Chen Network link backup system
US7802144B2 (en) 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US7403949B2 (en) * 2005-08-17 2008-07-22 International Business Machines Corporation Elimination of redundant objects in storage systems
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8285784B2 (en) * 2005-11-08 2012-10-09 Alcatel Lucent Service creation via presence messaging
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
JP4492569B2 (ja) * 2006-03-20 2010-06-30 日本電気株式会社 ファイル操作制御装置、ファイル操作制御システム、ファイル操作制御方法及びファイル操作制御プログラム
EP1858228A1 (en) * 2006-05-16 2007-11-21 THOMSON Licensing Network data storage system with distributed file management
US7966362B2 (en) * 2006-06-21 2011-06-21 Apple Inc. Management of podcasts
US8140506B2 (en) * 2006-11-30 2012-03-20 Red Hat, Inc. File sharing based on social network
US20080154986A1 (en) * 2006-12-22 2008-06-26 Storage Technology Corporation System and Method for Compression of Data Objects in a Data Storage System
US8005790B2 (en) * 2007-02-07 2011-08-23 Agfa Healthcare N.V. Object cloning management system and method
GB2446832A (en) * 2007-02-23 2008-08-27 Quantel Ltd A file server system
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
JP2009129164A (ja) * 2007-11-22 2009-06-11 Nec Corp 分散ストレージでのファイル配置およびアクセス方法、その装置及びそのプログラム
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
TWI413376B (zh) * 2008-05-02 2013-10-21 Hon Hai Prec Ind Co Ltd 網路存儲管理裝置和方法
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
CN101729442B (zh) * 2008-10-23 2013-03-20 华为技术有限公司 一种实现内容共享的方法和装置
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8229890B2 (en) * 2008-12-15 2012-07-24 International Business Machines Corporation Opening document stored at multiple database replicas
US8510848B1 (en) 2009-02-02 2013-08-13 Motorola Mobility Llc Method and system for managing data in a communication network
KR101179472B1 (ko) * 2009-02-18 2012-09-07 (주)씨디네트웍스 파일관리 시스템 및 파일관리시스템의 컨텐츠 제공 방법
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
JP5317835B2 (ja) * 2009-06-03 2013-10-16 キヤノン株式会社 コンテンツ属性情報提供装置、コンテンツ属性情報提供方法、及びコンピュータプログラム
US8549038B2 (en) * 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
JP5644770B2 (ja) * 2009-11-09 2014-12-24 日本電気株式会社 アクセス制御システム、サーバ、およびアクセス制御方法
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9251164B2 (en) * 2010-02-26 2016-02-02 Salesforce.Com, Inc. System, method and computer program product for using a database to access content stored outside of the database
US8559036B1 (en) 2010-03-26 2013-10-15 Open Invention Networks, Llc Systems and methods for managing the execution of print jobs
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
US20110270892A1 (en) * 2010-05-03 2011-11-03 Pixel8 Networks, Inc. Application Network Storage
CN102316127B (zh) * 2010-06-29 2014-04-23 阿尔卡特朗讯 无线通信系统中基于分布式存储的文件传输方法
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US20120185558A1 (en) * 2011-01-14 2012-07-19 Ryder Scott W Data storage management
US8521860B2 (en) 2011-03-29 2013-08-27 Microsoft Corporation Providing a witness service
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9626378B2 (en) * 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9135269B2 (en) * 2011-12-07 2015-09-15 Egnyte, Inc. System and method of implementing an object storage infrastructure for cloud-based services
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US10019371B2 (en) * 2012-04-27 2018-07-10 Hewlett Packard Enterprise Development Lp Data caching using local and remote memory
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9881017B2 (en) 2012-08-03 2018-01-30 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9424437B1 (en) 2012-10-12 2016-08-23 Egnyte, Inc. Systems and methods for providing file access in a hybrid cloud storage system
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9729410B2 (en) 2013-10-24 2017-08-08 Jeffrey T Eschbach Method and system for capturing web content from a web server
US9251361B1 (en) * 2013-12-13 2016-02-02 Amazon Technologies, Inc. Data transmission to an untrusted entity
US11379425B1 (en) * 2013-12-18 2022-07-05 Open Text Corporation Optimizing synchronization of content management servers
US9503401B1 (en) * 2014-01-31 2016-11-22 Whatsapp Inc. Automated message recall from a sender's device
US10380076B2 (en) 2014-07-21 2019-08-13 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US10437789B2 (en) 2015-04-10 2019-10-08 Egnyte, Inc. System and method for delete fencing during synchronization of remote and local file systems
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US11144510B2 (en) 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10447761B2 (en) 2015-07-31 2019-10-15 Page Vault Inc. Method and system for capturing web content from a web server as a set of images
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US10158722B2 (en) 2015-07-31 2018-12-18 Jeffrey T Eschbach Method and systems for the scheduled capture of web content from web servers as sets of images
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US20170177613A1 (en) 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System
WO2017107123A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Universal interface for sensor devices
US10095506B2 (en) 2016-02-12 2018-10-09 Nutanix, Inc. Virtualized file server data sharing
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
CN107483520B (zh) * 2016-06-08 2020-10-02 阿里巴巴集团控股有限公司 一种网络附属存储实例处理的方法和装置
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US11176091B2 (en) * 2017-09-29 2021-11-16 Intel Corporation Techniques for dynamic multi-storage format database access
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11144501B2 (en) * 2018-03-12 2021-10-12 Microsoft Technology Licensing, Llc Locating files using a durable and universal file identifier
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US10897494B2 (en) 2019-06-18 2021-01-19 Software Ag Diversified file transfer
US11741060B2 (en) * 2019-11-27 2023-08-29 Veritas Technologies Llc Methods and systems for scalable deduplication
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11329803B2 (en) 2020-09-29 2022-05-10 Amazon Technologies, Inc. Redundancy controls in convergent encryption using dynamic salt values
US11582025B2 (en) 2020-09-29 2023-02-14 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption
CN113542418B (zh) * 2021-07-16 2024-03-26 厦门雅基软件有限公司 文件管理方法、装置、电子设备及存储介质

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US626342A (en) * 1899-06-06 Byron piielps
US640521A (en) * 1899-09-09 1900-01-02 Luther B Bailey Acetylene-gas apparatus.
EP0464352A3 (en) 1990-06-25 1994-11-17 Ibm Sub-entry point interface architecture for change management in a computer network
JPH04113429A (ja) * 1990-09-04 1992-04-14 Nec Corp 分散ファイル管理方式
JPH0778776B2 (ja) 1991-09-24 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション 分散資源部分のアクセス方法及びネットワーク
JP3037491B2 (ja) 1991-12-20 2000-04-24 キヤノン株式会社 磁気記録再生装置
JP3300399B2 (ja) * 1992-02-28 2002-07-08 株式会社東芝 計算機システムおよびファイル管理方法
DE69434311D1 (de) 1993-02-01 2005-04-28 Sun Microsystems Inc Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung
US5506984A (en) 1993-06-30 1996-04-09 Digital Equipment Corporation Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes
JP3237736B2 (ja) 1993-09-07 2001-12-10 ヒュンダイ エレクトロニクス アメリカ データ記憶装置のマトリックス構造
US5497422A (en) 1993-09-30 1996-03-05 Apple Computer, Inc. Message protection mechanism and graphical user interface therefor
US5999711A (en) 1994-07-18 1999-12-07 Microsoft Corporation Method and system for providing certificates holding authentication and authorization information for users/machines
US5757642A (en) 1995-01-20 1998-05-26 Dell Usa L.P. Multi-function server input/output subsystem and method
US5978577A (en) 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US5692155A (en) 1995-04-19 1997-11-25 International Business Machines Corporation Method and apparatus for suspending multiple duplex pairs during back up processing to insure storage devices remain synchronized in a sequence consistent order
US5948062A (en) * 1995-10-27 1999-09-07 Emc Corporation Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access
US5923846A (en) 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US5974455A (en) * 1995-12-13 1999-10-26 Digital Equipment Corporation System for adding new entry to web page table upon receiving web page including link to another web page not having corresponding entry in web page table
US5751961A (en) * 1996-01-31 1998-05-12 Bell Communications Research, Inc. Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point
US5870537A (en) 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5805699A (en) 1996-05-20 1998-09-08 Fujitsu Limited Software copying system
US5878248A (en) 1996-06-11 1999-03-02 Data General Corporation Device access controller for virtual video/keyboard/mouse input/output for remote system management and maintenance
US6108655A (en) * 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
US5991542A (en) 1996-09-13 1999-11-23 Apple Computer, Inc. Storage volume handling system which utilizes disk images
US5937406A (en) * 1997-01-31 1999-08-10 Informix Software, Inc. File system interface to a database
SE9700622D0 (sv) 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
US5796952A (en) 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6073209A (en) 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6108300A (en) 1997-05-02 2000-08-22 Cisco Technology, Inc Method and apparatus for transparently providing a failover network device
US6351775B1 (en) 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
JPH1145203A (ja) * 1997-07-28 1999-02-16 Matsushita Electric Ind Co Ltd ファイル管理装置
US6101508A (en) 1997-08-01 2000-08-08 Hewlett-Packard Company Clustered file management for network resources
JPH1185710A (ja) 1997-09-16 1999-03-30 Toshiba Corp サーバ装置およびファイル管理方法
JP2001519563A (ja) 1997-10-08 2001-10-23 シーゲイト テクノロジー エルエルシー ディスクドライブアレイおよびデータ格納方法
US5933834A (en) 1997-10-16 1999-08-03 International Business Machines Incorporated System and method for re-striping a set of objects onto an exploded array of storage units in a computer system
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
US6141759A (en) 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6622247B1 (en) 1997-12-19 2003-09-16 Hewlett-Packard Development Company, Lp Method for certifying the authenticity of digital objects by an authentication authority and for certifying their compliance by a testing authority
EP1049989B1 (en) * 1998-01-23 2003-05-07 Emc Corporation Access to content addressable data over a network
US6148349A (en) 1998-02-06 2000-11-14 Ncr Corporation Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US6173374B1 (en) 1998-02-11 2001-01-09 Lsi Logic Corporation System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network
US20010011238A1 (en) 1998-03-04 2001-08-02 Martin Forest Eberhard Digital rights management system
US6170013B1 (en) 1998-03-27 2001-01-02 Nortel Networks Limited Method and apparatus for controlling access to network information sources
US6128627A (en) 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6272584B1 (en) 1998-09-10 2001-08-07 Compaq Computer Corporation System board with consolidated EEPROM module
US6145012A (en) 1998-10-14 2000-11-07 Veritas Software Corporation Apparatus and method for efficiently updating files in computer networks
US6236999B1 (en) 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6553376B1 (en) 1998-11-18 2003-04-22 Infolibria, Inc. Efficient content server using request redirection
US6389462B1 (en) 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6256673B1 (en) 1998-12-17 2001-07-03 Intel Corp. Cyclic multicasting or asynchronous broadcasting of computer files
US6487561B1 (en) 1998-12-31 2002-11-26 Emc Corporation Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size
US6718347B1 (en) 1999-01-05 2004-04-06 Emc Corporation Method and apparatus for maintaining coherence among copies of a database shared by multiple computers
US6438125B1 (en) 1999-01-22 2002-08-20 Nortel Networks Limited Method and system for redirecting web page requests on a TCP/IP network
US6324581B1 (en) * 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6314465B1 (en) 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6393466B1 (en) 1999-03-11 2002-05-21 Microsoft Corporation Extensible storage system
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US6356929B1 (en) * 1999-04-07 2002-03-12 International Business Machines Corporation Computer system and method for sharing a job with other computers on a computer network using IP multicast
US6895418B1 (en) * 1999-04-28 2005-05-17 Emc Corporation Versatile indirection in an extent based file system
US6654772B1 (en) 1999-04-28 2003-11-25 Emc Corporation Multi-volume extent based file system
US6219753B1 (en) 1999-06-04 2001-04-17 International Business Machines Corporation Fiber channel topological structure and method including structure and method for raid devices and controllers
US6285656B1 (en) 1999-08-13 2001-09-04 Holontech Corporation Active-passive flow switch failover technology
US6553389B1 (en) 1999-09-13 2003-04-22 Hewlett-Packard Company Resource availability determination mechanism for distributed data storage system
US6578158B1 (en) 1999-10-28 2003-06-10 International Business Machines Corporation Method and apparatus for providing a raid controller having transparent failover and failback
US6611869B1 (en) 1999-10-28 2003-08-26 Networks Associates, Inc. System and method for providing trustworthy network security concern communication in an active security management environment
US6405201B1 (en) 1999-12-02 2002-06-11 Sun Microsystems, Inc. Method and apparatus for reducing network traffic for remote file append operations
US20020010757A1 (en) * 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US6460055B1 (en) 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6313855B1 (en) * 2000-02-04 2001-11-06 Browse3D Corporation System and method for web browsing
US7266555B1 (en) 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US7281168B1 (en) 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7203731B1 (en) 2000-03-03 2007-04-10 Intel Corporation Dynamic replication of files in a network storage system
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US6654722B1 (en) 2000-06-19 2003-11-25 International Business Machines Corporation Voice over IP protocol based speech system
US6912548B1 (en) 2000-06-27 2005-06-28 Emc Corporation Logical volume identifier database for logical volumes in a computer storage system
DE10033781C1 (de) 2000-07-12 2001-12-06 Lechler Gmbh & Co Kg Doppeldrallsprühdüse
US6782389B1 (en) 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6598051B1 (en) * 2000-09-19 2003-07-22 Altavista Company Web page connectivity server
US6574641B1 (en) 2000-09-29 2003-06-03 International Business Machines Corporation Management of physical media volumes in partitions of an automated data storage library
US6507883B1 (en) 2000-10-23 2003-01-14 International Business Machines Corporation Recalling logical volumes to cache from physical media volumes for redundant storage in automated data storage libraries
ATE381191T1 (de) 2000-10-26 2007-12-15 Prismedia Networks Inc Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US6931450B2 (en) 2000-12-18 2005-08-16 Sun Microsystems, Inc. Direct access from client to storage device
US7730213B2 (en) 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US7165096B2 (en) 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US20020133539A1 (en) 2001-03-14 2002-09-19 Imation Corp. Dynamic logical storage volumes
US20030154271A1 (en) 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US6948062B1 (en) 2001-12-12 2005-09-20 Intel Corporation Location dependent encryption and/or decryption
US7007047B2 (en) 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
US7194538B1 (en) 2002-06-04 2007-03-20 Veritas Operating Corporation Storage area network (SAN) management system for discovering SAN components using a SAN management server
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7774325B2 (en) 2002-10-17 2010-08-10 Intel Corporation Distributed network attached storage system
US7225247B2 (en) 2002-10-17 2007-05-29 Intel Corporation Serial port redirection using a management controller
US7698307B2 (en) 2004-05-01 2010-04-13 Microsoft Corporation System and method for synchronizing between a file system and presence of contacts on a network

Similar Documents

Publication Publication Date Title
US7203731B1 (en) Dynamic replication of files in a network storage system
US7428540B1 (en) Network storage system
US7506034B2 (en) Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7590747B2 (en) Distributed storage cluster architecture
US7266556B1 (en) Failover architecture for a distributed storage system
US7266555B1 (en) Methods and apparatus for accessing remote storage through use of a local device
JP2004500660A5 (ja)
US7281168B1 (en) Failover architecture for local devices that access remote storage
US11194719B2 (en) Cache optimization
US8914429B2 (en) Method for creating global distributed namespace
JP5264961B2 (ja) 組込型コンテンツ分散ゴースト・サーバを用いたグローバル文書ホスティング・システム
US7191290B1 (en) Apparatus and method for tandem operation in a storage network
JP4845321B2 (ja) 分散エッジ・ネットワーク・アーキテクチャ
US6687846B1 (en) System and method for error handling and recovery
US20150188994A1 (en) Dynamic content delivery
US8185630B2 (en) Method for creating global distributed namespace
JP2004511116A (ja) ネットワークアドレス指定のためのシステム
BRPI0709986A2 (pt) sistemas e métodos para a aceleração da entrega de um ambiente de computação para um usuário remoto
JP2001526814A (ja) 分散型キャッシュ、プリフェッチ、複写の方法およびそのシステム
EP1181652B1 (en) Extended file system
US8005889B1 (en) Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network
Alimi et al. A survey of in-network storage systems
JP2003288261A (ja) データ転送装置、データ転送方法及びプログラム
US7627650B2 (en) Short-cut response for distributed services
Cisco Broadband Provisioning Registrar