JP4480153B2 - 分散ファイル・システムおよび方法 - Google Patents
分散ファイル・システムおよび方法 Download PDFInfo
- Publication number
- JP4480153B2 JP4480153B2 JP2004550258A JP2004550258A JP4480153B2 JP 4480153 B2 JP4480153 B2 JP 4480153B2 JP 2004550258 A JP2004550258 A JP 2004550258A JP 2004550258 A JP2004550258 A JP 2004550258A JP 4480153 B2 JP4480153 B2 JP 4480153B2
- Authority
- JP
- Japan
- Prior art keywords
- volume
- file system
- node
- system object
- logical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/944—Business related
- Y10S707/947—Human resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、コンピュータのファイル・システムに関し、とくにはファイル・システム・オブジェクトが複数のファイル・システム・ノード上の複数の自己完結ボリュームに分散されているファイル・システムに関する。
ネットワーク接続型ストレージ(NAS)ノードのクラスタにおける分散ファイル・システムおよび方法は、ファイル・システム・オブジェクトを多数の自己完結ボリュームにわたって分散させており、各ボリュームが、固有のクラスタ・ノードに所有されている。ボリューム間でファイル・システム・オブジェクトを参照するため、論理リンクが使用される。各ファイル・システム・オブジェクトは、当該オブジェクトのコンテンツがどこに保存されているのかを複数の属性(長さ、および所有者情報など、を含む)とともに記述する「i−node」と呼ばれるメタデータ構造によって実装されている。各クラスタ・ノードは、リロケーション・ディレクトリを含んでおり、該リロケーション・ディレクトリが、ローカルに保存され、論理リンクを使用して他のクラスタ・ノードから参照されるファイル・システム・オブジェクトへのハード・リンクを保持している。複数のボリュームが関与するさまざまなファイル・システム操作が、一度に2つ以上のボリュームに書き込みロックを置く必要なく実行される。さまざまなキャッシュの仕組みが、種々のクラスタ・ノードがファイル・システム・オブジェクト・データおよびメタデータをキャッシュできるようにしている。
1 はじめに
本発明の実施の形態は、ファイル・システム・クラスタリングのソリューションを提供する。ファイル・システム・クラスタの鍵となる構成要素には、クラスタを実現すべく相互接続され、受信したクライアントの要求の処理を実行する個々のサーバ(ノード)、および1つのエンティティとして管理される個々のファイル・システム・パーティション(ボリューム)が含まれる。
本明細書および添付の図面において使用されるとき、以下の用語は、文脈上そのようでない場合を除き、以下に示す意味を有する。
以下の参考文献は、そのすべてがここでの言及によって本明細書に組み込まれるものとするが、本明細書の全体を通じ、カッコ内の参照名を使用して引用される。
本明細書に記載の主題に、本件出願と所有者が同一であって同一日に出願されたGeoffrey S. Barrall、Simon L. Benham、Trevor E. Willis、およびChristopher J. Astonによる「Apparatus and Method for Hardware−Based File System」という名称の米国特許出願第10/286,015号が関連し、この米国特許出願は、その全体がここでの言及によって本明細書に組み込まれたものとする。
一般的に言って、以下の2種類のクラスタが存在する。
以下で検討する主たる論点は、以下のとおりである。
・ここに提案するクラスタリングのソリューションによってもたらされる可能性を、限界および固有の制約のリスト、ならびに性能および可用性の両者に関する期待値とともに示すこと。
・このソリューションによって解決すべき重要な技術的課題、すなわち
どのクラスタ・ノードがクラスタ化されたファイル・システムのどの構成要素を管理するのか、およびクラスタ化されたグローバル名空間がどのように統合されるのか、
さまざまな種類の要求(読み出しアクセス、変更)が、性能向上のためクラスタにおいていかに取り扱われるのか、
故障を診断して高い可用性を提供するため、クラスタ・ノードの監視がどのように実行されるのか、
故障ノードの発生によってストレージ・ボリュームの引き継ぎがどのように管理されるのか、
クラスタがどのように管理および構成されるのか、および
典型的な実装のためのさまざまな構成要素。
このセクションは、要件をより詳細に概括する。さらに、基本的なアーキテクチャ上の選択肢、ならびに解決すべき鍵となる技術的課題のいくつかを概括する、
2.1 要件
先の検討にもとづき、このアーキテクチャが満足すべき要件は、以下のとおりである。
2.2 全体アーキテクチャの選択肢
以下では、適切な機構(フロントエンド・スイッチ、またはクラスタ・ノードへのクライアントの静的なパーティショニングなど)が、クラスタ・ノードとネットワークとの間に介装されるものと仮定する(これは論理的観点であり、実際においてスイッチが使用される場合、高可用性の要件を満足するために二重化されることが通常である)。その目的は、クラスタ・ノード間の負荷をバランスさせることにある。これについては、セクション3でより詳しく検討する。
Microsoft Clustering productに実装されるような「無共有」の性質のクラスタリング・ソリューションは、ストレージの相互に排他的なサブセットを管理するクラスタ・ノードを設けることによって、高可用性(HA)の要件をサポートできる。サーバの1つがクラッシュした場合にのみ、他のサーバが、クラッシュのためにもはや可用でないストレージ・ボリュームの取り扱いを引き継ぐ。当然ながら、これにより設計が簡潔に保たれ、可用性が増す。
ここに記載するソリューションは、DiFFSアーキテクチャ(参考文献[Karamanolis 2001])に大まかにもとづいている。DiFFSの提案は、以下のコンセプトを実装するアーキテクチャを考案することによって、分散ロッキングおよびキャッシュの一貫性に関する問題を大幅に簡略化する。
このアーキテクチャは、完全に自己完結のボリュームを想定している。これは、論理ボリューム間のいかなる物理的な相互参照(Unix(登録商標)の「ハード・リンク」など)も存在しないことを意味する。換言すると、ボリューム内の各ファイル・システム・ツリーが、自身の外の物理ポインタを有していない。物理的に自己完結である論理ボリュームを有することで、モデルが簡潔になり、完全性チェックがより簡単になり、効率的な実装に好適である。これに加え、より良好な故障の隔離(高度に可用なプラットフォームのための鍵となる属性である)がもたらされる。
・1つの論理ボリューム内のファイル・システムから異なるボリューム内に実装されたFSOへの参照が存在しない可能性がある。
・異なるボリュームのFSOのいくつかを割り当てることによって1つのボリューム内のツリーを広げることが、できないと思われる。
・あとで示されるように、ハード・リンクのシンボリックかつ特別な変種を、ボリュームを横断する論理リンクの存在が期待されるあらゆる場所で使用できる。後者は、実際、NASクライアントの利益のためのボリュームを横断するハード・リンクのセマンティクスの実装である。シンボリックなリンクおよび特別なハード・リンクのセマンティクスは、ボリューム横断の参照が、ファイル・システム完全性ルールに影響しないようなものである。
・あとで示されるように、ここのボリュームの空間的限界が、実際には、単に他のボリューム内に新しいファイル・システム・オブジェクトを割り当てるだけで克服できる。
先のセクションにおいて概括した問題が、少なくとも検討のための全体的枠組みを提供する。しかしながら、それらは単に、詳細に分析すべき問題の表面を引っ掻くのみである。
アーキテクチャの詳細な説明には、キャッシングおよびロッキングのファイル・システム名前空間の構造の説明が必要である。
本明細書の残りを読んだのちに明らかになるとおり、ここで定めるアーキテクチャは、1つのボリュームが全ファイル・システムのルートとして機能できるようにする。他のすべてのディレクトリおよびファイルは、他のボリューム内に割り当てることができるが、そのようなルートで始まるパス名によって参照される。これは、このアーキテクチャのクライアントの典型的ニーズにとって、的確、簡潔、かつ適切である。
ここに記載するような設計は、各論理ボリュームのための「ボリューム・オーナ」の役割を、半静的なやり方(すなわち、ノードがクラスタに加わったときから、シャットダウンまたはクラッシュなど、いかなる理由にせよ当該ノードがクラスタを離れるときまで)でただ1つのクラスタ・ノードに割り当てるため、論理ボリューム更新の管理の問題を簡単にする。同時に、それはクラスタ・ノードを横断する相互に排他的ではないキャッシュを必要とする。これは、ただ1つのノードが論理ボリューム・オーナであるとしても、複数のノードが読み出しのために1つのボリュームに同時にアクセスしうるためである。したがって、結果として生じる主要な問題は、SANバックエンドを通じて読み込まれ、読み出しのみのアクセスを供えるノードにキャッシュされたデータが、論理ボリューム・オーナによって実行される修正に関して古くならないようにすることにある。これは、キャッシングおよびロッキングについてのセクションで詳細に取り扱われる。
・ローカル読み出しおよび書き込みについて、要求を直接実行する。
・外部読み出しについて、要求を直接実行する。
・外部書き込みについて、要求をボリューム・オーナに向け直す。
・作業負荷において1つのボリュームへの外部書き込みが支配的であるとき、ボリューム・オーナがボトルネックとなりうるため、うまく拡張されない。このような何かが生じうる考えられるユーザ側のシナリオは、以下のものである。
・SIM(ストレージ・インターフェイス・モジュール−SANバックエンドおよびホストとセクタ・キャッシュをやり取りするシステム・ボード)キャッシュのコンテントが、同じセクタにアクセスしているすべてのノードにわたって複製される。これは、統合クラスタ・キャッシュの全体的な効率をいくらか制限する。この負の属性がこの設計に存在するが、これは多くのクラスタ設計に共通である。
・読み出し操作が、要求に関連するボリュームにかかわらずクラスタ・ノードを横断して並列に効率的に取り扱われる。
・ファイル・システム内の実際の書き込み操作は、ボリューム・オーナによって実行されなければならないが、プロトコル処理の大部分は要求を受信するノード内で実行される。これが、ボリューム・オーナの負荷を制限する。
・ボリュームのオーナがボリューム・コンテントの更新を許されている唯一のノードであるというルールが、分散された設計にもとづく必要がないため、ファイル・システム・アーキテクチャを大幅に簡略化する。これが、関連の開発コストおよびリスクを少なくする。
スクイジー・リンク(以下では、SL)は、シンボリック・リンクとハード・リンクの間の混成である。それは、異なるボリュームに保存されたFSOへのシンボリック参照を提供する。
・ファイルまたはディレクトリを参照するために使用できる(シンボリック・リンクが行なうように)。
・クライアント側において、ハード・リンクと弁別不可能である。
・シンボリック情報のみを埋め込んでいる。したがって、目標ボリュームの明白な内部知識を有しておらず、ボリュームが自己完結であるという制約に違反しない。例えば、FSOをサポートするi−nodeの知識が存在せず、したがって任意の時点においてi−nodeが変化しても、RD内のFSOの名前が同じままである限り、SLには影響がない。
・リロケーテッドFSOを指しているSLは、FSOについてのリンク・カウントを増加させない。この点のもとで、ハード・リンクのみがカウントされ、それらはボリュームに対し常にローカルである。したがって、やはりボリュームの完全性は、外部で生じる何物にも影響されない。
・あらゆるファイルを、ハード・リンク(ローカルに)およびSL(RDに設定された適切なハード・リンクを通じて)の両者によって参照できる。
・RD内の各リンクが、それを指す正確に1つのSLを有する(所与のリロケーテッド・ファイルは、RD内に複数のハード・リンクを有することができるが、そのようなハード・リンクのそれぞれは、ただ1つのSLによってのみ指定されることができる)。これは、FSOについてのリンク・カウントの完全性を、複数のボリュームを横断する完全性制約を生成する必要なく保つために必要である。
・クライアントがSLを削除するとき、これはそれが位置するディレクトリからのSLエントリの削除、およびそれが参照するFSOの名前の削除の両者を生じさせるべきである。これは、もたらされるFSO参照カウントに応じ、FSOそのものの削除を含んでもよく、含まなくてもよい。
・SLをダングリング(dangling)なままにすべきではない。ダングリングなSLは、FSOの削除と参照しているSLの削除の時間の間にクラッシュが生じた場合に、一時的に生じる(SLが、リンクが存在しているそれではないボリューム上のFSOを参照するという事実のため)可能性があり、ダングリングなリンクは害を生じることはないが、クライアントに見えないままに残り、すでに述べたように扱われる場合、検出されると即座に除去される。シンボリック・リンクと同様、SLは、実際には、存在しないオブジェクトを指しうる。これは、例えばSLが参照するボリュームがマウントされる前など、一時的な基準で生じうる。恒久的にダングリングなリンク(ボリュームにはアクセスできるが、葉にはアクセスできない)を検出したノードは、SLを除くことによって対処すべきである。
・ボリューム間の「関心の分離」は、以下をサポートする。
ディレクトリへのSLの生成が可能であるとき、SLが厳密にクライアントへのハード・リンクとして振る舞うことを確実にするため、「..」ディレクトリ・エントリを正しく取り扱うことが必要である。これは、「..」が常に、エントリを含んでいるRD(物理的なペアレント)ではなく、SLを含んでいるディレクトリ(「仮想ペアレント・ディレクトリ」、すなわちVPD)にマップされるべきであるということを意味している。
ひとたびSLの概念が定められると、それを、ボリュームを横断するハード・リンクのセマンティクスの実装に有用に使用することができる。これは、これがグローバル・ファイル・システムが個々のボリュームによって実装されているという概念をクライアントから隠す最後のステップであるという点で、真に有益である。換言すれば、クライアントは、自身が任意のディレクトリからファイル・システム内の任意のファイルへのハード・リンクであると理解するものを、それらが存在するボリュームにかかわらず、常に生成することが可能である。
・SLが、リロケーテッド・ファイルへのハード・リンクのみを参照することができるため、SLの除去が、依然先に説明したように行なわれる。基本的に、異なるボリュームのデータ構造を結び付けるSLについての参照カウントを加える必要がない。SLの除去は、RD内のハード・リンクの除去を生じさせる。これが、ファイル参照カウントの減少を生じさせ、次いで、参照数が0に達したときファイルは削除される。したがって、これを扱うために追加の符号を設ける必要がなく、ファイル参照カウント機構は影響を受けない。
・RD内の各ハード・リンク(=名前)が、依然ただ1つのSLによって参照されるため、ハード・リンク名が、関連のSLへの参照を埋め込むために必要な情報を埋め込むことができる。
・ハード・リンクを通じてFSOに接続され、RDにFSOを含んでおり、それぞれが自身の内部ヒエラルキを有しているボリュームの集合によって実装された物理的な名前空間(システムによってのみ見ることができる)。
・ボリュームを横断して全ファイル・システムに広がる論理名前空間(NASクライアントによって見られる)が、ハード・リンクおよびスクイジー・リンクによって接続されたFSOから作られ、ハード・リンクとSLの間の相違を、ボリューム境界およびRDの存在とともにクライアントから隠す。図4は、ハード・リンクおよびSLによって実装されたこの名前空間を、論理的観点(左上)を参照しつつ描いている。図2において、ディレクトリ「W」およびファイル「a」を生成したクライアントが、ノードP(ボリューム1のオーナ)を通じてそのようにしており、ディレクトリ「B」およびファイル「x」を生成したクライアントが、ノードQ(ボリューム2のオーナ)を通じてそのようにしており、ファイル「c」および「y」がノードR(ボリューム3のオーナ)を通じて生成されている点に注目すべきである。
このセクションでは、SLに実装される動作についてさらに詳細に説明する。
入ってくるFSO生成要求が、以下の条件の1つ(または2つ以上)が真であるときに、自動的にSLの生成を生じさせるべきである。
・FSOがファイルであり、生成が外部のボリュームのディレクトリで生じるべきである場合。
・ローカル・ボリュームにファイルのための充分な空間が存在しない場合。
・適切な構成パラメータが、SLの生成がディレクトリにも当てはまる(ファイルには常に当てはまる)ように指示しており、かつ、
FSOが、外部ボリュームのディレクトリ内に生成されるべきディレクトリである場合、または
ローカル・ボリュームにディレクトリのための充分な空間が存在しない場合。
SL内に収容されたシンボリック参照が、或るペアレント・ディレクトリ内の特定の名前のためのハンドルを得るために参照される。これは、常に通常の参照であり、返されたハンドルは、ディレクトリ・エントリ指定のとおり、要求されたオブジェクトについてのオブジェクト番号およびボリューム番号を含んでいる。
・葉が見つけられない場合、FSOがもはや存在しない場合であると診断されるべきである。
・第1のパス名成分に到達できない場合、ボリュームが現時点でマウントされていないゆえ、故障(おそらくは)と診断されるべきである。
入ってくる削除要求が受信されたとき、修正すべき2つのFSOが存在し、すなわちペアレント・ディレクトリおよび削除の目標である。これらFSOのそれぞれは、ローカルであっても外部であってもよく、以下の4つの場合を生じさせる。
・ローカル・ペアレント・ディレクトリおよびローカル目標について、通常の削除。
・外部ペアレント・ディレクトリおよびローカル目標について、ペアレント・ディレクトリのオーナへの転送。
・ローカル・ペアレント・ディレクトリおよび外部目標について、以下に述べるとおり進行。
・外部ペアレント・ディレクトリおよび外部目標について、ペアレント・ディレクトリのオーナへの転送。
適切な構成パラメータによって可能にされる最適な機構は、システム動作において集めた使用統計にもとづき、ファイルの自動リロケーションを促進する。これはディレクトリにも適用可能であるが、複雑さおよび大規模なツリーのコピーを減らすため、おそらくはディレクトリではなくファイルにのみ適用される。これは、外部ディレクトリにおけるFSOの生成について概括したものと類似の機構によって実行される。バックグラウンドのタスクがこれを実行し、ホット・スポットのさらなる分散およびクラスタ・ノードを横断しての負荷のバランスを可能にする。各ファイルのリロケーションに関係するステップは、以下のものである。
・各ファイルがロックされ、リロケーションが終わるまで書き込みが阻止される。
・各ファイルが、リロケーションを実行するノードによって所有されているボリュームの1つのRDへとコピーされる。
・ボリューム・オーナが、含んでいるディレクトリのディレクトリ参照を無効にし、リロケートされたコピーへのSLで置き換え、ロックを解除して元のファイルを削除するよう要求される。
・ファイルが現在開かれており、すなわちファイルが共有されている場合、そこにファイルについての争いが存在するため、すべての書き込みアクセスは、当該ファイルが物理的に割り当てられているボリュームのオーナを通って集中される。したがって、この場合は、ボリューム・オーナによって処理される。
・ファイルが使用されていない場合、操作を処理しているローカル・ノードは、
ファイルをロックして、リロケーションが終わるまで書き込みを阻止し、
RD内にコピーを生成することによって、ファイルをローカルにキャッシュし、
ボリューム・オーナに、含んでいるディレクトリのディレクトリ参照を無効にし、コピーへのSLで置き換え、ロックを解除して元のファイルを削除するよう要求する。
適切な性能、ならびにクラスタ内のデータの一貫性および完全性を保証するため、各ノードにおける適切なキャッシングがサポートされなければならない。これは、読み出しのみのアクセスのノードのキャッシュ・データが、論理ボリュームのオーナによって実行される修正に関し、古くならないことを確実にしなければならない。
・ノードが自身のキャッシュ内のページを更新したときに、他のクラスタ・ノードに保持されているあらゆるコピーが確実に無効にされること。このタイミングは、古いキャッシュ・ページのオーナが当該ページを再取得しなければならないかもしれず、得られたビューがボリューム・オーナのものとコヒーレントであるように生じるべきであるため、重要である。ページは、更新されたバージョンがディスク上で利用可能なときにのみフラッシュされるべきであり、あるいは新しいバージョンが、ボリューム・オーナから直接取得されるべきである。
・得られるビューが一貫していることを確実にするために必要なとき、複数のメタデータ・キャッシュ・ページを一緒にフラッシュすること。
このアーキテクチャは、2つのキャッシュが論理的に利用可能であると期待している。1つはメタデータ・キャッシュであり、FSM(ファイル・システム・モジュール)ボード(すなわち、ファイル・システムを実行させるシステム・ボード)上で動作する。もう1つはセクタ・キャッシュであり、SIMボード上で動作する。
セクタ・キャッシュに使用される仕組みは、読み取りロックが有効であるとき、外部ボリューム・セクタが、読み出しのみモードでキャッシュされることを許すべきである。したがって、クラスタ・ノード(「要求者」)が外部ボリュームに属するセクタへの読み出しアクセスを必要とし、かつそれがまだキャッシュにないとき、読み出しのみロックを有する1つの読み出し要求をボリューム・オーナへと発行し、同じセクタについての他の読み出し要求をSANバックエンドへと発行すべきである(図5参照)。要求者は、セクタおよびそれのための読み出しのみロックの両者を受信するまで、ブロックすべきである。2つの場合が存在する。
すべての論理ボリューム(実際には、いくつかの物理的なディスクによって構成されているであろう)は、特定のクラスタ・ノードによって「所有」され、そのノードのみが当該ボリュームに書き込みできる。一方で、クラスタ内の他のすべてのノードは、潜在的に、自身の所有ではないボリュームから読み出しデータをキャッシュすることができ、したがって、ボリュームがオーナによって書き込まれたときに、データの一貫性を保つために他のノードのキャッシュ・データをすべて確実に無効にする仕組みを有する必要がある。
ボリューム・オーナは、自身の所有するボリューム上のデータについて読み出しの要求を受信したとき、いかなるロックも取得することなく、あるいはロックの状態をチェックすることなく、ボリュームからオーナ・セクタ・キャッシュへとデータを読み出すことは自由である。ページがすでに書き込みロックされている場合、それは書き込みロックされたままである。
非オーナが読み出し要求を受け取った場合、最初に、当該ページの読み取りロックをすでに有しているか否かを確かめるべくチェックが行なわれる。有している場合、要求されたデータを読み出すだけである。有していない場合、読み取りロックを求めてロック・マネージャに照会を行なわなければならない。この要求について、考えられる結果が2つ存在する。
オーナ・ノードが書き込み要求を得たとき、生じうる3つの事象が存在する。
メタデータ・キャッシュについて考えられる実装の仕組みは、メタデータ・キャッシュが、セクタ・キャッシュによってもたらされるものときわめて似ているが実際には独立である機構を実装しているものか、あるいはメタデータ・キャッシュがセクタ・キャッシュの従属であって特別な設備装置を必要としないものか、のいずれかである。
・外部クラスタ・ノードは、ボリューム全体を読み取りロックする必要を決して有さない。したがって、ボリューム・ロックは、完全にボリューム・オーナへとローカルである。
・ボリューム・オーナがFSOの更新を必要とするとき、FSOへの書き込みロックを得なければならない。外部ノードは、FSOを直接更新することが決してできず、i−nodeロックの必要を有さない。しかしながら、ディレクトリのコンテントまたはファイルのコンテントあるいはマッピングが、外部ノードがそれを読み出している間に変化しうるリスクが存在する。よりトリッキーなのは、外部ノードが、読み出しアクセスを実行するときに複数の項目を考慮に入れる必要がある場合である。そのような場合に対処するため、ボリューム・オーナがFSOへの書き込みロックを得る必要がある場合に、それがまず、FSOのi−nodeを表わしている最初のセクタ(このセクタそのものが修正されようとしているのではなくても)についてのあらゆる未決の読み取りロックを破壊すべきであり、さらに、修正すべきあらゆるセクタが読み取りロックされなければならないというルールを設定できる。読み取りロックの破壊が、外部ノードのセクタ・キャッシュが知らされることを含んでいる点に注意すべきである。次いで、それらが、それらのFSM複製をメタデータ・キャッシュにキャッシュされるセクタのために知らせることができる。
・このように、クラスタ内のFSMコードが、所与の操作を実行するためにメタデータへのアクセスを必要とする場合、それはFSOのi−nodeを得、ついで適切なデータを得なければならない。それがこれを実行したとき、要求された読み出し操作を実行する直前に、それが取り扱っているオブジェクトのi−nodeの最初のセクタが依然読み取りロックされているか確認される。より一般的には、いくつかの項目が一貫していなければならない場合、それらの有効性が、それらが取得された順序に対して逆の順序で確認されなければならない。そうである場合、操作を続けることができる。そうでない場合、それは放棄され、スクラッチから再開されなければならない。そのような場合(実際は、競合ゆえの例外であると考えられる)において考えられる代案は、書込み操作の場合と同様、要求をボリューム・オーナに送るというものである。ここで、以下に留意すべきである。
・SIMが他のデータのための空間を作るべくそのようにするとき、FSMボードのメタデータ・キャッシュが、外部メタデータを放棄しなければならない状態にならないようにすることが望ましい。これを得るため、外部メタデータが、それがもはや必要とされなくなる(または、他のメタデータのための余地を作るためフラッシュが必要になる)まで、あるいは無効になるまで、FSMキャッシュに保たれることが期待される。したがって、外部メタデータを含んでいるSIMキャッシュ・エントリが、他のデータのための余地を作るためにフラッシュされるとき、SIMボードは、フラッシュされたメタデータを有する旨をオーナに知らせることを回避する。したがって、無効化要求がオーナから入ってきたとき、SIMボードは、その要求を直接処理する代わりに、それをFSMメタデータ・キャッシュにリレーし、FSMメタデータ・キャッシュが適切に対処する。
・このように、メタデータ・ロックを別個の機構として実装する必要はない。また、これにより、ボリューム・オーナが所与のセクタについてのすべての読み取りロックの無効化を要求し、コピーを有していたすべてのノードがこれを確実にするまでブロックするという煩わしい同期プロトコルの必要性も避けられる。
・ボリューム・オーナは、ボリュームへの書き込みを扱う唯一の存在(他のノードの代理としてでさえも)であり、常に一貫したビューを有している。したがって、一貫したビューを保証するという問題は、外部読み出しにのみ当てはまる。
使用される仕組みゆえ、以下に留意すべきである。
・古くなったセクタ・キャッシュ・エントリのコピーは、決して使用されない。
・ボリューム・オーナによってキャッシュされたセクタが、常に好ましい。
・SANバックエンドからのいくらかの追加の読み出しを要求でき、次いで単純に落とされる。実際、係属中の要求を放棄することによって、より盲目でない挙動が達成できる。さもなくば、読み出しを前もって発行するか否かについての判断を、ボリューム・オーナによる応答に関し、SANバックエンドが当該ボリュームについて扱っているトラフィックの量によって、調節できる。
・ボリューム・オーナのみがロックを管理する。これにより、設計が簡略化される(さらに、拡張性が減らされる)。
・書き込みロックが、常に外部読み取りロックよりも高い優先順位を享受する。
・別個のノードに接続されたクライアントが同じファイルにアクセスしている場合、複数のノード・キャッシュ内でボリューム・セクタの潜在的複製が存在する。
・デッドロック管理の複雑な部分が、書き込みロックの使用に関係する。これは、ボリューム・オーナの側では変化しない。したがって、分散化設計が必要とされない。外部ノードにおいて、読み取りロックを常に破壊/解放および再取得できる。これにより、デッドロックの必要条件の1つが取り除かれる。したがって、デッドロックが存在し得ない。
・この仕組みそのものは、拘束のない拡張性を保証しない。実際、それは以下の場合に最もよく機能するであろう。
−クラスタ・オーナにおける読み取りロック/データ要求の管理のオーバヘッドが、限定されている。他の何よりも、このプロトコルは、きわめて簡潔であることが期待されており、読み取りロック要求(ボリューム・オーナへの)、データが添付されておりあるいは添付されていない読み取りロック応答(ボリューム・オーナから)およびフラッシュ/読み出しのみロックの破壊(ボリューム・オーナから)に限定されている。
・ここに記載のクラスタ間のセクタ・キャッシュのやりとりが、VLSIにて取り扱われる場合、この仕組みがクラス他の拡張性を小数のノードに限定しないと期待することが妥当である。
・キャッシュに実装された共有のセマンティクスが、システムがクライアントに対し一貫したビューを常に保証できるようなものである。メタデータおよびセクタが、それらが一貫したやり方でキャッシュされたのち(キャッシュ・エントリの有効性をチェックすることによって確認される)、そのコンテントが直後に変化するかもしれないが、クライアントへと提供される情報は常に一貫している。これは、実際、データの同期が共通のアプリケーションまたは環境内で協働しているクライアント間の共通のロッキング・プロトコルの使用にのみもとづいている限りにおいて、充分である。しかしながら、NASの確認を使用する分散アプリケーションが、別のチャネル(例えば、ソケット通信)を通じて他のクライアントとの同期を引き起こすために書き込む場合、この仮定は当てはまらないかもしれない。したがって、初期設定のルールとして、データがキャッシュされるべきであるとの非同期の告知をサポートし、特定のアプリケーションがこの挙動に依存する場合に、構成スイッチを通じて動機モードを可能にできるようにすることが適切かもしれない。
・メタデータ・キャッシュのサイズおよび効果が、決してセクタ・キャッシュのサイズによって制限されない。
・キャッシュ・マネージャが、新規クラスタ・ノードが動的にクラスタに合流/離脱したとき、それらを登録/未登録できなければならない。ハードウェア状態モニタ(高可用性ソフトウェアの一部)が、関連の事象を告知する。
これまでに、メタデータ・キャッシュおよびセクタ・キャッシュの管理に関して、内部ロッキングを考察した。これは、完全にボリューム内の操作にとって正に必要とされているものであり、ロッキングが完全にボリューム・オーナの担当範囲内であり、実際に、スタンドアロンのノードで使用されるそれらと一致するやり方で扱われるべきである。
・ボリューム「A」のRDへと「X」のローカル・リネームを、数値名を割り当てi−node内のVPDバックリンクを更新しつつ実行する。
・ボリューム「B」の適切なディレクトリに、前記リロケーテッド・ディレクトリを指す「Y」と命名されたSLを生成する。
・「X」についてのディレクトリ・エントリを、参照されたディレクトリを取り除くことなくボリューム「A」から取り除かなければならない(これは、目標ディレクトリの更新を含む)。
・参照されたディレクトリのi−nodeを、新しいVPDを指すVPDバックラインを有するように更新しなければならない。
・参照されたディレクトリのための新しいSLを、ボリューム「B」の適切なディレクトリに生成しなければならない。
・外部ディレクトリ内のFSO生成:ファイルまたはディレクトリの生成の特別な場合である。
・既存のファイルへのSLの作成:リンク・プリミティブの特別な場合である。
・非共居住ディレクトリへのファイルまたはディレクトリのリネーム/移動:一般的なリネーム/移動操作の特別な場合である。
・既存のファイルまたはディレクトリを指すSLのリネーム/移動:一般的なリネーム/移動操作のさらに特別な場合である。
・ファイルまたはディレクトリへのSLの除去:一般的な除去の特別な場合である。
・ダングリングなSL:これが生じたとき、ダングリングなSLは、名前が参照されたとき、または清掃機プロセスが不整合を検知したときに、ゴミとして収集されるべきである。
・RD内の参照されていないリンク名:先の場合と同様、RD内の参照されていないリンク名も、ゴミとして収集されるべきである。これが、当該リンクの指すオブジェクトが、それが当該オブジェクトへの最後のリンクであるときにのみ取り除かれなければならないことを意味していることに注意すべきである。
・RD内のリンク名が複数のSLによって参照されている場合:RD内の名前が数値であって単調に増加しているため、この場合は生じないであろう。新しいSLのそれぞれについて、リンクが新しい数値名で再生成される。
・FSOの元のSLが取り除かれたが、新しいものが生成できなかった場合:この場合には、部分的に成功した操作をアンドゥする能力が必要とされる。
この操作のためのコーディネータは、新しいFSOが生成されるべきボリュームを所有するノードである。これが、FSOが実行中のノードのボリューム内に生成されることを確実にし、ローカル・アクセスに関して新しいFSOの割り当てを最適化することに注意すべきである。
・ローカル・ボリュームのRD内に新しいFSOが生成される。このFSOの名前は新規であり、クラスタ内のいかなるSLによっても知ることができず、あるいは参照することができない。このオブジェクトは、SLにリンクされるまでは、RDの外には知られていない。したがって、クラスタ内の他のエンティティがこのオブジェクトに干渉することはできない。
・新規なFSOを参照する新規なSLの生成は、原子的な操作である。したがって、やはりここでも、他のプロセスまたはノードからの干渉は不可能である。FSOの生成後に、名前が使用中のためSLを生成できない場合、新しいFSOを削除しなければならない。
・成功。
・成功したが、クライアントが成功の通知を受信する前にノードがクラッシュした。アプリケーションの状態が失われ、FSOがすでに存在するが、操作を再度実行しなければならない。
・FSOが存在するが、SLが生成されなかった:参照されないFSOはゴミとして収集されることになる。
・リモート・ノードがSLを生成することなくクラッシュした。コーディネータがこれを検知し、FSOを取り除く。
・リモート・ノードが、SL生成後かつコーディネータへの通知前にクラッシュした。コーディネータがFSOを取り除き、SLがダングリングなまま残される。クライアントが操作の繰り返しを試みた場合、ダングリングなSLが正しいものと置き換えられる。そうでない場合、SLはゴミとして収集される。
・FSOが生成されなかった。
コーディネータは、新しいSLが配置されなければならないディレクトリを所有するノードである。この操作には、このノードおよびファイルを収容しているボリュームのオーナが関与する。ディレクトリに適用できるものと同様のコールは、あらゆるディレクトリは自身を指すSLをただ1つだけ有することができるため、利用できないことに注意すべきである。
・既存のファイルへの新しいリンクがRD内に生成される。この操作は、原子的である。リンクの生成が試みられた時点において、元となるファイルが存在する場合、生成は成功する。そうでない場合、操作の全体が中止される。やはり、リンクが生成されたのち、このリンクの名前は新規であり、クラスタ内のいかなるSLによっても知ることができず、あるいは参照することができない。古いリンクは、それが参照しているオブジェクトが正の参照カウントを有していて消失することがないため、この時点において任意のエンティティによって削除さえ可能である。新しいリンク名は、SLにリンクされるまでは、RDの外には知られていない。したがって、クラスタ内の他のエンティティがそれと干渉することはありえない。
・新規なFSOを参照する新規なSLの生成は、原子的な操作である。したがって、やはりここでも、他のプロセスまたはノードからの干渉は不可能である。
・成功。
・成功したが、成功の通知を返す前にコーディネータはクラッシュした。
・新規リンクが生成されたが、コーディネータがクラッシュし、あるいは応答が失われた。したがって、SLが生成されなかった。参照されなかった新規リンクは、ゴミとして収集されることになる。
・新規リンクが生成され、SLリンクの生成に失敗したが、新規リンクを削除できなかった。上記と同じ。
・リンクが生成されなかった。
コーディネータが、FSOを除去しなければならないディレクトリを所有している。このコールには、このノードおよびFSOを含んでいるボリュームのオーナが関与する。
・参照されたオブジェクトへの既存のFSOリンクを、それが存在するディレクトリからRDへとリネームする。この操作は原子的であり、成功するか行なわれないかである。やはり、リネームののち、このリンクの名前は新規であり、クラスタ内のいかなるSLによっても知ることができず、あるいは参照することができない。新しいリンク名は、SLにリンクされるまではRDの外には知られていない。したがって、クラスタ内の他のエンティティがそれと干渉することはありえない。
・新規なFSOを参照する新規なSLの生成は、原子的な操作である。したがって、やはりここでも、他のプロセスまたはノードからの干渉は不可能である。
・成功。
・成功したが、成功の通知が返される前にノードがクラッシュした。
・FSOがリロケートされたが、SLが生成されなかった。有用なコンテントを有する参照されていないFSO。タイムアウトの経過によってFSOが元の状態に戻され、LUD機構が新しいSLによって上書きされたあらゆるオブジェクトを元に戻す。
・FSOがリロケートされ、SLが生成されたが、命令文7を実行する前にコーディネータがクラッシュした。この場合、すべてが実行されたにもかかわらず、FSOは以前の状態に戻る。
・FSOのリロケートが行なわれなかった。
コーディネータは、FSOの目標ペアレント・ディレクトリ(またはVPD)が位置しているボリュームのオーナであろう。
・SLのリネームによって、SLが既存のFSOと共存在になる場合、この操作は、FSOが存在するボリュームについてのローカル・リネームということになり、続いて元のSLが取り除かれる。これが、共存在のSLが、次の場合で扱われるとおり、機能的に等価であるという点で、単なる最適化であることに注意すべきである。この場合において、最初の状態は図9に示すとおりである。最後の状態は図10に示すとおりである。
・リネームによってSLが参照されたFSOと共存在にならない場合、まずFSOがリロケートされ(これは、RD内でのリネームのみを必要とするであろう)、次いで、目標FSOへの参照を埋め込んだ新しいSLが生成される。最後に古いSLが削除される。新旧のSLが同じボリューム内にあるか否かに応じ、最初のステップは、コーディネータ・ノードにローカルであるかもしれないし、ローカルでないかもしれない。この場合において、最初の状態は図11に示すとおりである。最後の状態は図12に示すとおりである。
・成功。
・成功したが、成功の通知が返される前にノードがクラッシュした。
・リンクが同じボリューム内でリネームされたが、コーディネータに知らされたか否かに関係なく、古いSLが削除されなかった(そして、ダングリングなまま残された)。この古いSLは、ゴミとして収集される。
・FSOがリロケートされたが、コーディネータのクラッシュまたはコーディネータへの通知の欠落によって、新しいSLが生成されなかった。タイムアウトの経過後にFSOが元の状態に戻り、LUD機構が新しいSLによって上書きされたあらゆるオブジェクトを元に戻す。
・FSOがリロケートされ、SLが生成されたが、コーディネータのクラッシュによって命令文14が実行されなかった。タイムアウトの経過後にFSOが元の状態に戻り、次いで、ダングリングな新しいSLがゴミとして収集される。
・FSOがリロケートされ、SLが生成されたが、コーディネータのクラッシュまたはリモート・ノードのクラッシュによって古いSLが削除されなかった(そしてダングリングなまま残された)。この古いSLは、ゴミとして収集される。
・失敗、変化なし。
コーディネータは、SLのオーナである。
・成功。
・成功したが、成功の通知が返される前にノードがクラッシュした。
・SLが削除されたが、RD内のリンクは削除されず、参照されていない。このリンクは、ゴミとして削除される(これが唯一のリンクである場合、FSOが削除される)。
LUDは、RDと同様、NASクライアントにとって見ることができない。それは、ローカル・ボリュームがローカルFSOを置換したSLによって参照を有しているシステム内の各ボリュームに1つずつ、いくつかのサブディレクトリを有している。
クライアント・ロッキングは、所与のサービスが呼び出された時点におけるロックを明示的に要求するクライアント操作に関係する。これは、共有または排他モードにおけるファイル全体のロッキングまたはその一部のロッキングを含むことができる。
・FSOにアクセスするための最初のノードが、すべてのクライアントが当該ファイルへのアクセスをやめるときまで、当該FSOについてのロック・マネージャとなることができる。これは、クラスタ・ノード間のロック管理の役割のよりよい分散をもたらす傾向にあり、これをかなり動的にする。
・あるいは、ロックが適用されるFSOのオーナが、常に当該FSOのためのロック・マネージャの役割を実施することができる。この第2のアプローチは、FSOを修正できるエンティティのみが、そのロッキング・プロトコルを扱うエンティティであるという利点を有している。
スタンドアロンのサーバのために設計されたような保持されたチェックポイント機構が、個々のボリュームに関して機能する。ファイルの外部ボリュームへのリロケートが許される場合、保持されたチェックポイントは、保持されたチェックポイントが取られた時点においてファイルのコンテントがクラスタ全体のビューと同期していることを保証しない。したがって、クラスタ・サービスは、すべてのボリュームについてのI/Oの中断、および各ボリュームについての保持されたチェックポイントの取得(これは並列に行なうことができる)を処理するクラスタ全体の保持されたチェックポイントを実装するであろう。このクラスタリング・サービスは、以下によって2相コミット機構を通じてのI/Oの中断をグローバルに調和しなければならない。
先に概括したように、個々のボリュームの完全性を他のあらゆるボリュームのそれとは独立にチェックできるため、これを行なうために使用されるプログラムを、種々のボリューム上で並列に実行させることができる。
・SLは、それが参照しているボリュームがオンラインである場合に調べられる。RD内のFSOは、そのSLが存在すべきボリュームがアクティブである場合に調べられる。例えば、オフラインのボリュームを指しているSLは、調べるべきではない。
・調べられるべきFSOまたはSLは、少なくともX分以上古いものである。Xは、あらゆる多ボリューム操作の完了を保証するために充分大きくあるべきである。
各クラスタ・ノードは、DS/HAサブシステムを含んでいる。DS/HAサブシステムは、分散ファイル・システムのために必要なメンバーシップ、メッセージング、および構成インフラストラクチャを提供する。DS/HAサブシステムのための要件および仮定は、かなり一般的であり、以下のものを含んでいる。
・各PNの健康を監視する。
・スプリット・ブレイン・シンドロームを防止するため、クラスタ・クォーラムを確立して維持する。
・必要な状態移行を生じさせるため、イベントをPNに伝える。
・故障したPNからアクティブなPNへのVNの切り替え、および復帰の担当。
・秩序正しい起動が実行できるようにするための個々のボリュームの起動とローカルおよびグローバル完全性チェックの実行との協調。
・相互接続ハードウェア・モジュール:保証なしおよび保証ありの両者の順次メッセージ配信を備える基本的なデータグラム機構を実装する。欠けているセマンティクスがもしあれば、IMF層(下記参照)に実装される。
・ノード間メッセージング設備(IMF)モジュール:(a)保証ありのメッセージ配信、および(b)ノードのハートビートを提供する。クラスタ・メンバーシップをサポートするより低レベルの構成要素である。
・クォーラム・モジュール(QM):クラスタ・クォーラム機構、ならびにクラスタ結合/分離機構を提供する。実際のクラスタ・メンバーシップ情報は、IMF内に保持される。
・メッセージング・モジュール(MM):ユニキャスト/マルチキャストな同期/非同期のメッセージング・プリミティブ、ならびにクラスタリングおよび他のモジュールのためのイベント登録およびハンドリングを提供する。IHMが保証ありのユニキャスト・メッセージングをサポートする場合、対応するMMおよびIMF機能は、単純なスタッブまたはマクロである。
・構成データベース・モジュール(CDM):複製された、常時オンの構成データベースを提供する。任意のノードについて実施された更新が、MMの上部の2相コミット機構を使用して、他のすべてのノード上に自動的に複製される。
ハートビート機構は、所与のノードが死んでいるか、生きているのかの判断を担当する。本発明の典型的な実施の形態においては、以下の理由から、ハートビート機構がIMFモジュール(QMモジュールではなく)の一部である
1.ハートビート・タイムアウトの場合に、ノードは死んでいると宣告(当該ノードが「誤った」パーティションに属しているのではないことを確認するため、CMモジュールと相談のうえで)され、IMFモジュールが当該ノードについて係属中のすべてのメッセージを、(エラー状態とともに)フラッシュする。これは、CMモジュールとIMFモジュールとの間の不一致を防止する。
HAのサポートおよび個々のノード故障からの回復は、ストレージ・リソース(ボリューム)をそれらのオーナとして機能する「仮想ノード」(VN)へと関連付けることにある。VNのそれぞれは、仮想名および仮想IPアドレスを有しており、物理ノード(PN)に関連付けられている。HAサブシステムがPNの故障を検出したとき、HAサブシステムは、典型的には、当該PNをシャットダウン(すでに死んでいる場合を除く)させ、故障したPNに関連付けられているVNを他の利用可能なPNへと移動(連結)させる。この移行は自動的であるが、故障はアプリケーションにとって完全にトランスペアレントではない。換言すれば、リカバリの進行中にアプリケーションがタイムアウトになる可能性があり、これはアプリケーションから見ることができる。しかしながら、アプリケーションは、同じ仮想名および同じ仮想アドレスを通じてアクセスしていたストレージへのアクセスを続け、この組が、他の物理ノードにトランスペアレントに関連付けられる。
・高度な冗長性を備える完全に成熟したクラスタ構成。
・限られたノード数のローエンド・クラスタ構成。
・各ノードが故障したノードによって管理されていたボリュームの管理を引き継ぐことができる簡単なローエンド・アクティブ/アクティブなフェイルオーバ構成。しかしながら、そのような構成は、個々の集合していないボリュームを直接エクスポートすることを選択するかもしれない。
以上説明したアーキテクチャは、第1に、要求を複数のクラスタ・ノードへと並列に配ることによって、拡張可能な性能をもたらすことを目的にしている。加えて、可用性も向上する。
・使用統計にもとづくファイルの自動リロケーション。これにより、観測された使用パターンを利用してファイルの存在位置を改善することができる。
・クラスタのマージ。独立したクラスタを1つに合体させるための方法が存在すべきである。
・性能評価およびボトルネックの特定にもとづくさまざまな最適化。
このセクションでは、種々の実装上の問題を取り扱う。
クラスタ・メンバーが効率的に通信できるために、好ましくは、高速なプライベート通信チャネルが、クラスタ・ノードを相互接続するために使用される。プライベート(すなわち、クラスタ・ノードのみが利用可能であり、クラスタ・クライアントは利用できない)チャネルは、クラスタのあらゆるトランザクションに関与する当事者について認証および許可のチェックを不要にすることによって、通信プロトコルを能率化する。
ファイルが常に指定のクラスタ・ノードを通じて書き込まれることを確実にすることによって、性能を向上させることができる。
・クラスタ・ノードをクライアント−ベースで割り当てることによって。
・クラスタ・フロントエンドとして機能して適切なクライアント・パーティショニングの提供を担当するスイッチを設置するハードウェア−ベースのソリューションによって。
・DNSサーバの適切な設定によって。
・クラスタ・ノードに実装されたアドホック・ソフトウェアによって。
このソリューションは、クラスタが含まれているネットワークの適切な構成によって得られる。それは、以下の原理にもとづいている。
・各クラスタ・ノードに、物理IPアドレスならびに仮想IPアドレスおよび名前が割り当てられている。この仮想アドレスは、最初はそれらのオーナ・ノードに結び付けられている。
・クライアントが、いくつかの基準に従ってクラスタ・ノードを横断してパーティションされる。例えば、クライアントを、クライアントが共通のファイルまたはディレクトリへの書き込みアクセスを共有しなければならない必要性に従って、クラスタ・ノードを横断してパーティションできる。そのようなクライアントのグループのそれぞれが、自身の所有するボリューム内に共有ファイルおよびディレクトリを割り当てるノードを特定する1つの仮想名へのアクセスを与えられる。
・クラスタ・ノードが故障したとき、VN/PNの関係のため、セクション3.1.9で説明したとおりスイッチオーバがクライアントにとってトランスペアレントである。
・簡潔であって、単刀直入である。
・追加の設備を必要としないため、安価であり、システム全体の可用性に影響を及ぼさない。
・クライアントとサーバ・ノードとの間に設備もソフトウェアも挿入しないため、性能を低下させる可能性がない。
・スイッチや追加の経路付け装置を使用しないため、クライアント・ネットワークとの互換性または一体化についての問題がない。
・クラスタの再構成がトランスペアレントである(ハードウェア−ベースのソリューションにも存在するクラスタ再構成に要する短いインターバルを除く)。
・ネットワークが、背後にクラスタ・ノードを隠しているスイッチに割り当てられた1つのアイデンティティではなく、多数の仮想ノード・アイデンティティを承知していなければならない。
・このソリューションの負担が、構成の問題に移されている。しかしながら、スイッチ−ベースのソリューションでは、これがスイッチそのものを構成することによって対処される一方で、ここでは、クライアントが適切に設定されなければならない。この負担は、構成プロセスを容易にする適切な管理ユーティリティを提供することによって、いくぶんか軽減できる。
スイッチを使用することによって、クライアントは、ただ1つの名前/IPアドレスによってクラスタ全体をアドレスすることができ、スイッチが、適切なノードへのトランスペアレントなアクセスを管理する。
・「クッキー」の使用による方法。クッキーは、サーバによって供給され、ブラウザによってクライアント内に保存されるトークンである。それらは、スイッチがコンテクストを推論してサーバへの適切な結びつきを確立できるようにする充分な参照情報をもたらす。これは、基本的に、HTTPトラフィックに適用される。
・SSLセッションIDによる方法。これは、SSLセッションにのみ適用される。
・コンテクストに依存したパケット検査による方法。これは、使用中のアプリケーション・プロトコルに大きく依存し、Webサービスには限られない。
・スイッチに関連付けられたただ1つのIPアドレス/名前を発行すればよい。スイッチそのものがクラスタ・ノードを隠し、それが構成されたやり方に従ってトラフィックを経路付けする。
・中央集権化された構成によって、全所有コストが低減される。
・スイッチによって、顧客のネットワーク設定の大きな変更を回避でき、したがって極めて望ましい。
・スイッチ−ベースのソリューションは、一般に、ソフトウェア−ベースまたは構成ベースのソリューションよりも高価である。
・高可用性要件を満足させるため、スイッチ配置構成が冗長性を有していなければならず、さらにコストを増大させる。
・必要な特徴をさまざまな供給元から入手することができるが、以下に述べるとおり、それらは標準的な設備ではなく、継続的に入手可能であるかについて保証がない。
・或る特定の供給元からのスイッチを選択することが、別の供給元を標準としているユーザにとって受け入れられない。一方、複数の供給元からのスイッチを適用可能にすることは、余分な努力とコストを必要とする。
5 多ボリューム操作のための故障回復
このセクションでは、多ボリューム操作において生じうる考えられるいくつかのノード故障(ノード・クラッシュ)について、典型的な故障回復手順を説明する。セクション3.1.4で説明した多ボリューム操作のそれぞれ、および故障のそれぞれについて、典型的な回復の動作を示す。下記の表において、「ローカル・ノード」は「コーディネータ・ノード」の別名であって、ローカル・ノードが要求された操作を実行している(おそらくは他の要求者の代理として)ノードであることを意味している。
この操作は、2つの異なる場合を有する。場合1は、目的地ボリュームがFSOを保持しているボリュームである場合である。場合2は、目的地、ソース、およびFSOボリュームが異なっている場合である。
以上、本発明のさまざまな実施の形態を、FSM、SIM、およびNIMなどの種々のモジュールを含む特定のハードウェア−ベースのファイル・システム・プラットフォームに関して説明したが、本発明がここに記載した実施の形態またはプラットフォームに限られるものでは決してなく、本発明を他のやり方で具現化し、他のファイル・システム・プラットフォームに広く一般的に適用できることは、当業者であれば明らかである。
Claims (111)
- それぞれが複数の論理ストレージ・ボリュームへのアクセスを有している複数のクラスタ・ノードを使用して、前記ノードと通信するクライアントによる前記ボリューム上のデータへのアクセスを提供するための方法であって、
前記方法は、
各ボリュームを、単一のノードにより所有されるように制限することであって、ボリュームのオーナのみが前記ボリュームへの書き込みの許可を有している、こと、および
第1のノードに、前記第1のノードが所有する第1のボリュームへのファイル・システム・オブジェクトの保存を実行させることと、前記第1のボリュームと第2のノードが所有する第2のボリュームとの間の論理リンクを生成することとによって、ファイル・システム・オブジェクトを前記複数のボリュームを横断して保持すること
を含んでおり、
前記論理リンクは、前記第1のボリューム内の前記ファイル・システム・オブジェクトを参照し、
前記第1のボリュームと前記第2のボリュームとの間の論理リンクを生成するプロセスは、前記論理リンクにより参照される前記ファイル・システム・オブジェクトを識別する論理識別子を前記第2ボリュームのディレクトリ内に生成することと、前記論理識別子と前記第2のボリュームとの間の固有の連関を前記第1のボリューム内に作成することとを含んでいる、方法。 - 前記論理識別子を、前記第1のボリュームのリロケーション・ディレクトリであって、前記第1のボリューム以外のボリュームから論理的に参照される前記第1のボリューム内のすべてのファイル・システム・オブジェクトについての論理識別子を列挙しているリロケーション・ディレクトリに保存すること
をさらに含んでいる、請求項1に記載の方法。 - 前記第1のノードに前記ファイル・システム・オブジェクトの保存を実行させるプロセス、および前記論理リンクを生成するプロセスが、多ボリューム・ロッキングが回避されるよう、書き込みロックを一度にただ1つのボリュームにのみ置きつつ実行される、請求項1に記載の方法。
- 前記プロセスを実行する過程において、前記第1のノードに前記第1および第2のボリュームのための書き込みロック・マネージャの役割を割り当てること
をさらに含んでいる、請求項3に記載の方法。 - 前記リロケーション・ディレクトリが階層構造を有している、請求項2に記載の方法。
- 前記論理リンクを生成することが、少なくとも前記第1のボリュームにおいて固有である識別子を前記論理識別子として割り当てることを含んでいる、請求項1に記載の方法。
- 固有の識別子を割り当てることが、前記第1のボリューム内のファイル・システム・オブジェクトのためにすでに割り当てられた論理識別子のカウントにもとづく数字を割り当てることを含んでいる、請求項6に記載の方法。
- 任意のノードによる所与のストレージ・ボリュームに対する読み出しを実行可能にすること
をさらに含んでいる、請求項1に記載の方法。 - 前記ボリュームのそれぞれにボリューム・キャッシュが関連付けられ、前記ノードのそれぞれにノード・キャッシュが関連付けられており、
前記方法が、
選択されたボリューム内のセクタを読み出すための要求であって、前記選択されたボリュームとは別個のボリュームを所有している活動ノードによって受信された要求を、
前記活動ノードに、前記選択されたボリュームのオーナであるノードへと、前記セクタに対する第1の読み出し要求であって、読み出しのみロックを有している読み出し要求の発行を実行させ、前記選択されたボリュームへと、前記セクタに対する第2の読み出し要求の発行を実行させることと、
前記選択されたボリュームのオーナであるノードに、自身が自身のキャッシュ内に前記セクタを有しているか否かを判断させることと、
有していない場合に、前記読み出しのみロックを認可して前記選択されたボリュームが前記要求を満足させるようにすることと、
有しており、かつ前記セクタが書き込みロックされていない場合に、前記読み出しのみロックを認可して前記セクタのコンテントを前記選択されたボリュームを所有しているノードのキャッシュから前記活動ノードへと送信し、前記要求に関する前記選択されたボリュームの通信を停止することと、
有しており、かつ前記セクタが書き込みロックされている場合、前記読み出しのみロックの認可が可能になるまで前記要求についての肯定的動作を引き延ばし、次いで前記セクタが書き込みロックされていないときに至って処理を再開することと
によって処理することをさらに含んでいる、請求項8に記載の方法。 - 前記読み出しのみロックを認可がすることが、キャッシュ状態を追跡できるよう、前記活動ノードおよび前記セクタのアイデンティティを記録することを含んでいる、請求項9に記載の方法。
- 前記第2のボリュームのディレクトリに、前記第1のボリュームの前記リロケーション・ディレクトリに保存された前記論理識別子への論理参照を保存すること
をさらに含んでいる、請求項2に記載の方法。 - 前記論理参照が、
前記論理識別子、および
前記第1のボリュームの前記リロケーション・ディレクトリの前記参照されているファイル・システム・オブジェクトの名前を表わしている数値列を符号化する数値
を含んでいる、請求項11に記載の方法。 - 前記論理参照を、前記第1のボリュームの前記リロケーション・ディレクトリに保存された前記論理識別子に対する唯一無二の論理参照であるように制限すること
をさらに含んでいる、請求項11に記載の方法。 - 前記第1のノードに前記別個および選択されたボリュームのための書き込みロック・マネージャの役割を割り当てることが、
前記第1のノードに前記第1および第2のボリュームのための書き込みロック・マネージャの役割を、書き込みロック・マネージャの役割が前記第1のノードに、前記第1のノードが前記複数のクラスタ・ノードに合流するときから前記第1ノードが前記複数のクラスタ・ノードを離れるときまで割り当てられるよう、半静的なやり方で割り当てること
を含んでいる、請求項4に記載の方法。 - 前記第2のボリュームから前記論理参照を削除すること、および
前記第1のボリュームの前記リロケーション・ディレクトリから前記論理識別子を削除すること
をさらに含んでいる、請求項11に記載の方法。 - 前記第1のボリュームから前記ファイル・システム・オブジェクトを削除すること、および
前記第2のボリュームから前記論理参照を削除すること
をさらに含んでいる、請求項11に記載の方法。 - 前記論理参照が存在しないファイル・システム・オブジェクトを参照していることを割り出すこと、および
前記論理参照を前記第2のボリュームから削除すること
をさらに含んでいる請求項11に記載の方法。 - 前記論理参照が存在しないファイル・システム・オブジェクトを参照していることを割り出すことが、
前記論理参照を折々に調べて前記論理参照が参照しているファイル・システム・オブジェクトが存在するか否かを割り出す清掃機プロセスを、第2において実行すること
を含んでいる、請求項17に記載の方法。 - 前記第1のボリュームの前記ファイル・システム・オブジェクトが、もはや他のボリュームのいかなる論理参照によっても参照されていないことを割り出すこと、および
前記ファイル・システム・オブジェクトを前記第1のボリュームから削除すること
をさらに含んでいる、請求項11に記載の方法。 - 前記第1のボリュームの前記ファイル・システム・オブジェクトがもはや他のボリュームのいかなる論理参照によっても参照されていないことを割り出すことが、
前記リロケーション・ディレクトリを折々に調べて前記ファイル・システム・オブジェクトが他のボリュームの少なくとも1つの論理参照によって参照されているか否かを割り出す清掃機プロセスを、前記第1のノードにおいて実行すること
を含んでいる、請求項19に記載の方法。 - 前記第1のボリュームの「..」ディレクトリ・エントリを、前記第2のボリューム内の前記論理参照を含んでいるディレクトリへとマッピングすること
をさらに含んでいる請求項11に記載の方法。 - 前記第1のボリュームの「..」ディレクトリ・エントリを、前記第2のボリューム内の前記論理参照を含んでいるディレクトリへとマッピングすることが、
前記第1のボリュームの前記リロケーション・ディレクトリに、前記第2のボリューム内の前記論理参照を含んでいるディレクトリへの参照を保存すること
を含んでいる、請求項21に記載の方法。 - 前記第2のボリューム内の前記論理参照を含んでいるディレクトリへの参照が、
前記第2のボリュームに関連付けられたボリューム識別子、および
前記第2のボリューム内の前記論理参照を含んでいるディレクトリに関連付けられたノード識別子
を含んでいる、請求項22に記載の方法。 - 前記第2のボリューム内の前記論理参照を含んでいるディレクトリへの参照が、前記第2のボリューム内の前記論理参照を含んでいるディレクトリへの可変長パス名を含んでいる、請求項22に記載の方法。
- 前記第1のボリュームの「..」ディレクトリ・エントリを、前記第2のボリューム内の前記論理参照を含んでいるディレクトリへとマッピングすることが、
前記第1のボリュームに、前記第2のボリューム内の前記論理参照を含んでいる前記ディレクトリへの参照を含んでいる別個のファイルを保存すること
を含んでいる、請求項21に記載の方法。 - 前記ファイル・システム・オブジェクトを、前記第1のボリュームから第3のノードによって所有されている第3のボリュームへと、
前記第1のボリュームの前記リロケーション・ディレクトリから前記論理識別子を削除することと、
新しい論理識別子を前記第1のボリュームの前記リロケーション・ディレクトリに保存することと、
前記第3のボリュームのディレクトリに、前記第1のボリュームの前記リロケーション・ディレクトリに保存された前記新しい論理識別子への新しい論理参照を保存することと
によって、論理的にリロケートすること
をさらに含んでいる、請求項11に記載の方法。 - 前記論理参照を前記第2のボリュームの前記ディレクトリから削除すること
をさらに含んでいる、請求項26に記載の方法。 - 第3のボリュームによって前記ファイル・システム・オブジェクトを、
新しい論理識別子を前記第1のボリュームの前記リロケーション・ディレクトリに保存することと、
前記第3のボリュームのディレクトリに、前記第1のボリュームの前記リロケーション・ディレクトリに保存された前記新しい論理識別子への新しい論理参照を保存することと
によって参照すること
をさらに含んでいる、請求項11に記載の方法。 - 前記第1のボリュームと前記第2のボリュームとの間の論理リンクを生成することが、
前記ハード・リンクおよび前記論理リンクが、
前記複数のノードの前記クライアントからは見えない物理名前空間であって、前記第1のボリュームの前記リロケーション・ディレクトリ内の前記ハード・リンクを含むハード・リンクによってファイル・システム・オブジェクトに接続される固有の内部階層をそれぞれ備えている前記複数のボリュームを通じて実装された物理名前空間、および
前記複数のノードの前記クライアントから見える論理名前空間であって、前記ボリュームを横断して全ファイル・システムにわたって広がり、かつハード・リンクと論理リンクとの間の相違が前記クライアントから隠されるようにハード・リンクおよび論理リンクを介して接続されたファイル・システム・オブジェクトで作られている論理名前空間
を形成することをさらに含んでいる、
請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトへの書き込みの要求を、前記第2のノードによって受信すること、
前記要求を前記第1のノードへと、前記第2のノードによって転送すること、および
前記第1のノードによって前記ファイル・システム・オブジェクトへの書き込みを行なうこと
をさらに含んでいる、請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトへの書き込みの要求を、前記第1のノードによって受信すること、および
前記第1のノードによって前記ファイル・システム・オブジェクトへの書き込みを行なうこと
をさらに含んでいる、請求項1に記載の方法。 - 第3のノードによって前記ファイル・システム・オブジェクトを、
前記第3のノードによって所有されている第3のボリュームへの変更済みファイル・システム・オブジェクトの保存を、前記第3のノードに実行させること、および
前記第2のボリュームと前記第3のボリュームとの間の論理リンクを、前記論理リンクが前記第3のボリューム内の前記ファイル・システム・オブジェクトにアクセスするための論理識別子を前記第2のボリューム内に提供するように生成すること
によって変更すること
をさらに含んでいる、請求項1に記載の方法。 - 前記第1のボリュームと前記第2のボリュームとの間の論理リンクを生成することが、
前記論理リンクを生成するための要求を、前記第1のノードによって前記第2のノードへと送信すること、および
前記要求の受信をうけて、前記第2のノードによって前記論理リンクを生成すること
を含んでいる、請求項1に記載の方法。 - 前記第1のノードに前記第1のボリュームへのファイル・システム・オブジェクトの保存を実行させることが、
前記第2のノードに前記ファイル・システム・オブジェクトを生成するための要求を、前記第1のノードによって受信すること
を含んでいる、請求項1に記載の方法。 - 前記第1のノードに前記第1のボリュームへのファイル・システム・オブジェクトの保存を実行させることが、
前記第2のノードに前記ファイル・システム・オブジェクトを生成するための要求を、前記第2のノードによって受信すること、および
前記第1のノードに前記ファイル・システム・オブジェクトを生成すべきであることを、前記第2のノードによって判断すること
を含んでいる、請求項1に記載の方法。 - 各ボリュームが固有のボリューム識別子に関連付けられており、
前記方法が、
前記第2のノードに、前記第1のボリュームに関連付けられた前記ボリューム識別子を含んでいる、前記ファイル・システム・オブジェクトのためのファイル・ハンドルの生成を実行させること
をさらに含んでいる、請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトを削除するための要求を、前記第2のノード以外のノードで受信すること、および
前記要求を前記第2のノードへと向けること、ならびに
前記ファイル・システム・オブジェクトを前記第2のノードによって削除すること
をさらに含んでいる、請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトを削除するための要求を、前記第2のノードによって受信すること、
前記論理リンクの前記第2のノードからの除去を生じさせること、
前記ファイル・システム・オブジェクトを削除するための要求を、前記第2のノードによって前記第1のノードへと送信すること、および
前記ファイル・システム・オブジェクトを前記第1のノードによって削除すること
をさらに含んでいる、請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトが、
ファイル、および
ディレクトリ
のうちの1つを含んでいる、請求項1に記載の方法。 - 前記ファイル・システム・オブジェクトを、前記第1のボリュームから第3のノードによって所有されている第3のボリュームへと論理的にリロケートすることが、所定の条件のもとで自動的に実行される、請求項26に記載の方法。
- 前記ファイル・システム・オブジェクトを、前記第1のボリュームから第3のノードによって所有されている第3のボリュームへと、
前記第1のボリュームから前記第3のボリュームへと、前記ファイル・システム・オブジェクトのコピーを生じさせること、
前記第1のボリュームの前記リロケーション・ディレクトリから、前記論理識別子を除去すること、
前記第2のボリュームから、前記第1のボリュームの前記リロケーション・ディレクトリに保存されていた前記論理識別子への論理参照を除去すること、
前記第2のボリュームと前記第3のボリュームとの間の新しい論理リンクを、前記新しい論理リンクが前記第3のボリューム内の前記ファイル・システム・オブジェクトにアクセスするための新しい論理識別子を前記第2のボリューム内に提供するように生成すること、および
前記第1のボリュームから前記ファイル・システム・オブジェクトを削除すること
によってリロケートすること
をさらに含んでいる、請求項11に記載の方法。 - 前記新しい論理識別子を、前記第3のボリュームのリロケーション・ディレクトリに保存すること
をさらに含んでいる、請求項41に記載の方法。 - 前記第3のボリュームの前記リロケーション・ディレクトリに保存された前記新しい論理識別子への新しい論理参照を、前記第2のボリュームのディレクトリに保存すること
をさらに含んでいる、請求項42に記載の方法。 - 前記第1のボリュームから前記第3のボリュームへと前記ファイル・システム・オブジェクトのコピーを生じさせることが、
前記第1のボリュームから前記第3のボリュームへと、怠惰なコピー技法を使用して前記ファイル・システム・オブジェクトをコピーすること
を含んでいる、請求項41に記載の方法。 - 前記ファイル・システム・オブジェクトを、前記第1のボリュームから前記第2のボリュームへと、
前記第1のボリュームから前記第2のボリュームへと前記ファイル・システム・オブジェクトのコピーを生じさせること、
前記第1のボリュームの前記リロケーション・ディレクトリから、前記論理識別子を取り除くこと、および
前記第1のボリュームの前記リロケーション・ディレクトリに保存されていた前記論理識別子への前記論理参照を、前記第2のボリュームから取り除くこと
によってリロケートすること
をさらに含んでいる、請求項11に記載の方法。 - 前記ファイル・システム・オブジェクトに関するデータのコピーを、前記第1のノードとは別の少なくとも1つのノードによって保持すること、
前記ファイル・システム・オブジェクトに関する前記データを、前記第1のノードによって変更すること、および
前記少なくとも1つの別のノードに、前記ファイル・システム・オブジェクトに関する前記データの無効化を実行させること
をさらに含んでいる、請求項1に記載の方法。 - 前記少なくとも1つの別のノードに、前記ファイル・システム・オブジェクトに関する前記データの前記第1のボリュームからの再取得を実行させること
をさらに含んでいる、請求項46に記載の方法。 - 前記少なくとも1つの別のノードに、前記ファイル・システム・オブジェクトの一部分のコピーの無効化を実行させることが、
前記ファイル・システム・オブジェクトに関するデータのコピーを有している他のノードのリストを、前記第1のノードによって保持すること、および
前記他のノードのそれぞれに、前記ファイル・システム・オブジェクトに関する前記データが変更された旨の告知を送信すること
を含んでいる、請求項46に記載の方法。 - 前記ファイル・システム・オブジェクトに関する前記データが、メタデータを含んでおり、
前記ファイル・システム・オブジェクトに関するデータのコピーを、前記第1のノードとは別の少なくとも1つのノードによって保持することが、
前記メタデータを保存するためのメタデータ・キャッシュであって、ファイル・システム・オブジェクト・データのコピーを保存するために使用されるあらゆる他のキャッシュから独立して動作するメタデータ・キャッシュを、前記少なくとも1つの別のノードによって保持すること
を含んでいる、請求項46に記載の方法。 - 前記ファイル・システム・オブジェクトに関するデータのコピーを、前記第1のノードとは別の少なくとも1つのノードによって保持することが、
前記少なくとも1つの別のノードに、前記第1のノードから前記ファイル・システム・オブジェクトに関するメタデータを読み出す前に、前記第1のノードから読み取りロックを取得するよう要求すること
をさらに含んでいる、請求項49に記載の方法。 - 前記ファイル・システム・オブジェクトに関するデータが、ファイル・システム・オブジェクト・データおよびメタデータを含んでおり、
前記ファイル・システム・オブジェクトに関するデータのコピーを、前記第1のノードとは別の少なくとも1つのノードによって保持することが、
ファイル・システム・オブジェクト・データを保存するためのデータ・キャッシュを保持すること、
メタデータを保存するためのメタデータ・キャッシュを保持すること、および
前記データ・キャッシュ内の各データを、前記メタデータ・キャッシュ内の対応するメタデータへとマッピングすること
を含んでいる、請求項46に記載の方法。 - 前記ファイル・システム・オブジェクトが、前記第1のボリューム内の第1の名前に関連付けられており、
前記ファイル・システム・オブジェクトを前記第1のボリュームから前記第3のボリュームへと論理的にリロケートすることが、
前記ファイル・システム・オブジェクトを、前記第3のボリューム内の第2の名前に関連付けること
をさらに含んでいる、請求項26に記載の方法。 - 1つのノードを、前記ファイル・システム・オブジェクトに作用する多ボリューム操作のためのコーディネータとして指定することをさらに含んでおり、
前記コーディネータが、前記多ボリューム操作に関係するボリュームのうちの1つのオーナである、請求項1に記載の方法。 - 各ボリュームについて、ファイル・システム・オブジェクトへの参照、およびボリュームから取り除かれて前記ファイル・システム・オブジェクトへの論理リンクまたは他の論理リンクで置き換えられた論理リンクを一時的に保存するためのローカル・ディレクトリを保持すること、および
対応するボリュームに影響する多ボリューム操作における故障からの回復のために、ローカル・ディレクトリを使用すること
をさらに含んでいる、請求項1に記載の方法。 - 複数の論理ストレージ・ボリュームへのアクセスをそれぞれ有している複数のクラスタ・ノードを相互接続して備え、前記ノードと通信するクライアントに前記ボリューム上のデータへのアクセスを提供するファイル・サーバ・クラスタにおいて、クラスタ・ノードとして動作するための装置であって、
前記装置は、
固有のペアレント・ノードをそれぞれ有するファイル・システム・オブジェクトを保存するためのデータ・ストレージ・ボリュームであって、前記装置のみが前記データ・ストレージ・ボリュームへの書き込みを許されるよう、前記装置によって所有されているデータ・ストレージ・ボリューム、
前記種々のデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへの参照を保存するための少なくとも1つのディレクトリ、および
前記データ・ストレージ・ボリューム内にファイル・システム・オブジェクトを保存し、さらに前記装置がペアレント・ノードであると考えられる他のクラスタ・ノードによって所有されているデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへの論理参照、および他のノードがペアレント・ノードであると考えられるデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへのハード参照を、前記少なくとも1つのディレクトリに保存するため、作用可能に組み合わされたオブジェクト・ストレージ・ロジック
を有している、装置。 - 前記論理参照のそれぞれが、他のノードによって所有されているデータ・ストレージ・ボリュームに保存された参照されているファイル・システム・オブジェクトを識別するための論理識別子を有し、
前記ハード参照のそれぞれが、対応するペアレント・ノードによる対応するファイル・システム・オブジェクトを識別するための論理識別子を有している
請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、多ボリューム・ロッキングが回避されるよう、書き込みロックを一度にただ1つのボリュームにのみ置きつつ、前記データ・ストレージ・ボリュームに前記ファイル・システム・オブジェクトを保存し、前記少なくとも1つのディレクトリに前記参照を保存するため、作用可能に組み合わされている、請求項55に記載の装置。
- 前記操作を実行する過程において、前記オブジェクト・ストレージ・ロジックに前記種々のデータ・ストレージ・ボリュームのための書き込みロック・マネージャの役割が割り当てられる、請求項57に記載の装置。
- 前記少なくとも1つのディレクトリが、前記ハード参照を保存するため、階層構造を有するリロケーション・ディレクトリを有している、請求項56に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、ハード参照のそれぞれについて前記論理識別子を、前記論理識別子のそれぞれが前記データ・ストレージ・ボリューム内において固有であるように割り当てるため、作用可能に組み合わされている、請求項56に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記データ・ストレージ・ボリューム内のファイル・システム・オブジェクトにすでに割り当てられた論理識別子のカウントにもとづいて固有の識別子を割り当てるため、作用可能に組み合わされている、請求項60に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記ノードのいずれかによる前記データ・ストレージ・ボリュームの読み出しを実行可能にするため、作用可能に組み合わされている、請求項55に記載の装置。
- ノード・キャッシュおよび前記データ・ストレージ・ボリュームに関連付けられたボリューム・キャッシュをさらに有しており、
前記オブジェクト・ストレージ・ロジックが、他のノードによって所有されているデータ・ストレージ・ボリューム内のセクタを読み出すための要求を、
前記セクタについての第1の読み出し要求であって、読み出しのみロックを有している読み出し要求を、前記他のノードへと発行し、前記セクタについての第2の読み出し要求を、前記他のノードによって所有されている前記データ・ストレージ・ボリュームへと発行すること
によって処理するため、作用可能に組み合わされている
請求項62に記載の装置。 - ノード・キャッシュおよび前記データ・ストレージ・ボリュームに関連付けられたボリューム・キャッシュをさらに有しており、
前記オブジェクト・ストレージ・ロジックが、前記データ・ストレージ・ボリューム内のセクタについての読み出し要求であって、読み出しのみロックを有している読み出し要求を、
前記セクタが前記ボリューム・キャッシュに保存されているか否かを判断することと、
保存されていない場合に、前記読み出しのみロックを認可して前記要求を満足させることと、
保存されており、かつ前記セクタが書き込みロックされていない場合に、前記読み出しのみロックを認可して前記セクタのコンテントをキャッシュから送信することと、
保存されており、かつ前記セクタが書き込みロックされている場合に、前記読み出しのみロックの認可が可能になるまで前記要求についての肯定的動作を引き延ばし、次いで前記セクタが書き込みロックされていないときに至って処理を再開することと
によって処理するため、作用可能に組み合わされている、請求項62に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、キャッシュ状態を追跡できるよう前記読み出しのみロックの認可時に前記他のノードおよび前記セクタのアイデンティティを記録するため、作用可能に組み合わされている、請求項64に記載の装置。
- 論理参照のそれぞれが、他のノードのデータ・ストレージ・ボリュームのリロケーション・ディレクトリ内の対応するエントリを参照している、請求項56に記載の装置。
- 論理参照のそれぞれが、
前記他のノードのデータ・ストレージ・ボリュームの前記リロケーション・ディレクトリ内の前記参照されているファイル・システム・オブジェクトの名前を表わしている数値列を符号化する数値
をさらに有している、請求項66に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、各ハード参照について対応するペアレント・ノードへと戻る参照を保持するため、作用可能に組み合わされている、請求項55に記載の装置。
- 前記対応するペアレント・ノードへと戻る参照が、
前記ペアレント・ノードのデータ・ストレージ・ボリュームに関連付けられたボリューム識別子、および
前記ペアレント・ノードのデータ・ストレージ・ボリューム内の前記論理参照を含んでいるディレクトリに関連付けられたノード識別子
を有している、請求項68に記載の装置。 - 前記対応するペアレント・ノードへと戻る参照が、
前記ペアレント・ノードの前記データ・ストレージ・ボリューム内の前記論理参照を含んでいるディレクトリへの可変長パス名
を有している、請求項68に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、前記対応するペアレント・ノードへと戻る参照を、前記少なくとも1つの内のハード参照とともに保存するため、作用可能に組み合わされている、請求項68に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記対応するペアレント・ノードへと戻る参照を、前記データ・ストレージ・ボリューム内の別個のファイル・システム・オブジェクトとして保存するため、作用可能に組み合わされている、請求項68に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、新しいファイル・システム・オブジェクトを、
新しいファイル・システム・オブジェクトを前記データ・ストレージ・ボリュームに保存すること、
前記新しいファイル・システム・オブジェクトへのハード参照について、論理識別子を割り当てること、
前記新しいファイル・システム・オブジェクトへの前記ハード参照を、前記少なくとも1つのディレクトリに保存すること、および
前記新しいファイル・システム・オブジェクトへの論理参照を、他のノードによって所有されているデータ・ストレージ・ボリュームによって生成するため、前記他のノードに前記論理識別子を提供すること
によって生成するため、作用可能に組み合わされている、請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、前記装置がペアレント・ノードであると考えられるファイル・システム・オブジェクトを、
前記ファイル・システム・オブジェクトを前記データ・ストレージ・ボリュームから削除すること、および
前記ファイル・システム・オブジェクトへのハード参照を、前記少なくとも1つのディレクトリから削除すること
によって削除するため、作用可能に組み合わされている、請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、前記削除されたファイル・システム・オブジェクトへの論理参照を前記対応するペアレント・ノードに削除させるため、作用可能に組み合わされている、請求項74に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、他のノードがペアレント・ノードであると考えられるファイル・システム・オブジェクトを、
削除されるファイル・システム・オブジェクトへの論理参照を、前記少なくとも1つのディレクトリから削除すること
によって削除するため、作用可能に組み合わされている、請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、もはや前記データ・ストレージ・ボリューム中に存在しないファイル・システム・オブジェクトについてのハード参照を削除するため、作用可能に組み合わされている、請求項55に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記ハード参照を折々に調べて前記ハード参照が参照しているファイル・システム・オブジェクトが存在するか否かを割り出すための清掃機プロセスを有している、請求項77に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、もはや他のノードのデータ・ストレージ・ボリューム中に存在しないファイル・システム・オブジェクトについての論理参照を削除するため、作用可能に組み合わされている、請求項55に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記論理参照を折々に調べて前記論理参照が参照しているファイル・システム・オブジェクトが存在するか否かを割り出すための清掃機プロセスを有している、請求項79に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記データ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトを他のノードへと、
前記ファイル・システム・オブジェクトへのハード参照のために論理識別子を割り当てることと、
前記ファイル・システム・オブジェクトへの前記ハード参照を、前記少なくとも1つのディレクトリに保存することと、
前記ファイル・システム・オブジェクトへの論理参照を、前記他のノードによって所有されているデータ・ストレージ・ボリュームによって生成するため、前記他のノードに前記論理識別子を提供することと
によってリロケートするため、作用可能に組み合わされている、請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、他のノードのデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトを、
前記他のノードから論理識別子を入手すること、および
前記論理識別子を含んでいる論理参照を前記少なくとも1つのディレクトリに保存すること
によってリロケートするため、作用可能に組み合わされている、請求項55に記載の装置。 - 他のノードに保存されたファイル・システム・オブジェクトに関するデータのコピーを保存するため、少なくとも1つのキャッシュをさらに有しており、
前記オブジェクト・ストレージ・ロジックが、特定のファイル・システム・オブジェクトが前記ファイル・システム・オブジェクトが保存されているノードによって変更されたことを知ったときに、前記ファイル・システム・オブジェクトに関するデータのコピーを無効化するよう、作用可能に組み合わされている、請求項55に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、前記ファイル・システム・オブジェクトに関するデータを再取得するよう、作用可能に組み合わされている、請求項83に記載の装置。
- 前記オブジェクト・ストレージ・ロジックが、前記データ・ストレージ・ボリュームに保存された各ファイル・システム・オブジェクトについて、前記ファイル・システム・オブジェクトに関するデータのコピーを有している他のノードのリストを保持し、特定のファイル・システム・オブジェクトが変更されたときに前記他のノードのそれぞれに通知を行なうよう、作用可能に組み合わされている、請求項55に記載の装置。
- 前記少なくとも1つのキャッシュが、ファイル・システム・オブジェクトに関連付けられたメタデータのコピーを保存するためのメタデータ・キャッシュを有しており、
前記オブジェクト・ストレージ・ロジックが、前記メタデータ・キャッシュをファイル・システム・オブジェクト・データのコピーを保存するために使用される他のあらゆるキャッシュから独立して動作させるよう、作用可能に組み合わされている、請求項83に記載の装置。 - 前記オブジェクト・ストレージ・ロジックが、前記データ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトに関するメタデータを読み出す前に読み取りロックを取得するよう他のノードに要求するため、作用可能に組み合わされている、請求項86に記載の装置。
- 前記少なくとも1つのキャッシュが、ファイル・システム・オブジェクト・データを保存するためのデータ・キャッシュおよびメタデータを保存するためのメタデータ・キャッシュを有しており、
前記オブジェクト・ストレージ・ロジックが、前記データ・キャッシュ内の各データを前記メタデータ・キャッシュ内の対応するメタデータへとマップするよう、作用可能に組み合わされている、請求項83に記載の装置。 - 前記少なくとも1つのディレクトリが、ローカル・アンドゥ・ディレクトリを含んでおり、
前記オブジェクト・ストレージ・ロジックが、ファイル・システム・オブジェクトへの参照、および論理参照で置き換えられた論理参照または他の論理参照を、前記ローカル・アンドゥ・ディレクトリに一時的に保存し、前記データ・ストレージ・ボリュームに影響する多ボリューム操作における故障からの回復のために、前記ローカル・アンドゥ・ディレクトリを使用するよう、作用可能に組み合わされている、請求項55に記載の装置。 - 複数の論理ストレージ・ボリュームへのアクセスをそれぞれ有している複数のクラスタ・ノードを相互接続して備え、前記ノードと通信するクライアントに前記ボリューム上のデータへのアクセスを提供するファイル・サーバ・クラスタにおいて、クラスタ・ノードとして動作するための装置であって、
前記装置は、
固有のペアレント・ノードをそれぞれ有するファイル・システム・オブジェクトを保存するためのデータ・ストレージ・ボリュームであって、前記装置のみが前記データ・ストレージ・ボリュームへの書き込みを許されるよう、前記装置によって所有されているデータ・ストレージ・ボリューム、
前記種々のデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへの参照を保存するための少なくとも1つのディレクトリ、
ファイル・システム・オブジェクトを複数のボリュームを横断して保持するための手段であって、
他のノードがペアレント・ノードであると考えられるデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへのハード参照を、前記少なくとも1つのディレクトリに保存するための手段、および
前記装置がペアレント・ノードであると考えられる他のクラスタ・ノードによって所有されているデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへの論理参照を、前記少なくとも1つのディレクトリに保存するための手段
を含んでいる手段
を有している装置。 - 複数のボリュームを横断してファイル・システム・オブジェクトを生成するための手段をさらに有している、請求項90に記載の装置。
- 複数のボリュームを横断してファイル・システム・オブジェクトを削除するための手段をさらに有している、請求項90に記載の装置。
- 1つのボリュームから他のボリュームへとファイル・システム・オブジェクトをリロケートするための手段
をさらに有している、請求項90に記載の装置。 - 複数のボリュームを横断してファイル・システム・オブジェクトをリネームするための手段
をさらに有している、請求項90に記載の装置。 - 複数のボリュームを横断してファイル・システム・オブジェクトへのアクセスを制御するための手段であって、
他のノードによって所有されているファイル・システム・オブジェクトから読み出しを行なうための手段、
他のノードによって所有されているファイル・システム・オブジェクトへと書き込みを行なうための手段、
前記装置によって所有されているファイル・システム・オブジェクトへの、他のノードによる読み出しアクセスを提供するための手段、および
前記装置によって所有されているファイル・システム・オブジェクトへの、他のノードによる書き込みアクセスを提供するための手段
を含んでいる手段をさらに有している、請求項90に記載の装置。 - 他のノードによって所有されているファイル・システム・オブジェクト・データをキャッシュするための手段、および
他のノードによって所有されているファイル・システム・オブジェクトに関するメタデータをキャッシュするための手段
をさらに有している、請求項95に記載の装置。 - 多ボリューム・ロッキングが回避されるよう、書き込みロックを一度にただ1つのボリュームにのみ置きつつ、複数のボリュームを横断してファイル・システム・オブジェクトを操作するための手段
をさらに有している、請求項90に記載の装置。 - 複数のボリュームを横断して生じて前記ファイル・システム・オブジェクトに影響を及ぼす故障から回復するための手段
をさらに有している、請求項90に記載の装置。 - 複数の論理ストレージ・ボリュームへのアクセスをそれぞれ有している複数のクラスタ・ノードを相互接続して備え、前記ノードと通信するクライアントに前記ボリューム上のデータへのアクセスを提供するファイル・サーバ・クラスタのクラスタ・ノードを動作させるためのコンピュータ・プログラムを具現化してなるコンピュータで読み出し可能な媒体を有する装置であって、
前記コンピュータ・プログラムが、
前記クラスタ・ノードの少なくとも1つのディレクトリに、他のノードがペアレント・ノードであると考えられるクラスタ・ノードによって所有されているデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへのハード参照を保存するためのプログラム・コード手段、
他のクラスタ・ノードがペアレント・ノードであると考えられるクラスタ・ノードによって所有されているデータ・ストレージ・ボリュームに保存されたファイル・システム・オブジェクトへの論理参照を、前記少なくとも1つのディレクトリに保存するためのプログラム・コード手段、および
各ボリュームを、単一のノードにより所有されるように制限するためのプログラム・コード手段であって、ボリュームのオーナのみが前記ボリュームへの書き込みの許可を有している、プログラム・コード手段
を含んでいる複数のボリュームを横断してファイル・システム・オブジェクトを保持するためのプログラム・コード手段
を有している装置。 - 前記コンピュータ・プログラムが、
複数のボリュームを横断してファイル・システム・オブジェクトを生成するためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
複数のボリュームを横断してファイル・システム・オブジェクトを削除するためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
1つのボリュームから他のボリュームへとファイル・システム・オブジェクトをリロケートするためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
複数のボリュームを横断してファイル・システム・オブジェクトをリネームするためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
複数のボリュームを横断してファイル・システム・オブジェクトへのアクセスを制御するためのプログラム・コード手段であって、
他のノードによって所有されているファイル・システム・オブジェクトから読み出しを行なうためのプログラム・コード手段、
他のノードによって所有されているファイル・システム・オブジェクトへと書き込みを行なうためのプログラム・コード手段、
前記装置によって所有されているファイル・システム・オブジェクトへの、他のノードによる読み出しアクセスを提供するためのプログラム・コード手段、および
前記装置によって所有されているファイル・システム・オブジェクトへの、他のノードによる書き込みアクセスを提供するためのプログラム・コード手段
を含んでいるプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
他のノードによって所有されているファイル・システム・オブジェクト・データをキャッシュするためのプログラム・コード手段、および
他のノードによって所有されているファイル・システム・オブジェクトに関するメタデータをキャッシュするためのプログラム・コード手段
をさらに有している、請求項104に記載の装置。 - 前記コンピュータ・プログラムが、
多ボリューム・ロッキングが回避されるよう、書き込みロックを一度にただ1つのボリュームにのみ置きつつ、複数のボリュームを横断してファイル・システム・オブジェクトを操作するためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - 前記コンピュータ・プログラムが、
複数のボリュームを横断して生じて前記ファイル・システム・オブジェクトに影響を及ぼす故障から回復するためのプログラム・コード手段
をさらに有している、請求項99に記載の装置。 - ファイル・システム・オブジェクトに関するメタデータを、複数の論理ストレージ・ボリュームへのアクセスをそれぞれ有している複数のクラスタ・ノードを相互接続して備え、前記ノードと通信するクライアントに前記ボリューム上のデータへのアクセスを提供するファイル・サーバ・クラスタのクラスタ・ノードによって保持するための方法であって、
各ノードについて、ファイル・システム・オブジェクト・データを保存するためのデータ・キャッシュを保持すること、
各ボリュームについて、メタデータを保存するための別個のメタデータ・キャッシュを保持すること、
各ノードについて、他のノードから得たファイル・システム・オブジェクト・データを前記データ・キャッシュに保存すること、
各ボリュームについて、他のノードから得たメタデータを前記メタデータ・キャッシュに保存すること、
各ボリュームを、単一のノードにより所有されるように制限することであって、ボリュームのオーナのみが前記ボリュームへの書き込みの許可を有している、こと、および
前記メタデータ・キャッシュを前記データ・キャッシュに隷属するものとして操作すること
を含んでいる、方法。 - 前記メタデータ・キャッシュを前記データ・キャッシュに隷属するものとして操作することが、
前記データ・キャッシュ内の各データを、前記メタデータ・キャッシュ内の対応するメタデータにマップすること
を含んでいる、請求項108に記載の方法。 - 前記メタデータ・キャッシュを前記データ・キャッシュに隷属するものとして操作することが、
或るノードによって他のノードから、ファイル・システム・オブジェクトに関連付けられたメタデータを、
前記他のノードに保存されたメタデータを読み出すための読み取りロックを要求すること、および
前記読み取りロックが認可されたのちにのみ、前記他のノードからメタデータを読み出すこと
によって取得することを含んでいる、請求項108に記載の方法。 - 前記メタデータ・キャッシュを前記データ・キャッシュに隷属するものとして操作することが、
或るノードによって、前記ノードが所有するファイル・システム・オブジェクトについての読み取りロックを有している他のあらゆるノードのリストを保持すること、および
前記ノードによって前記ファイル・システム・オブジェクトに変更を、すべての読み取りロックを再取得させ、すべての読み取りロックが再取得されたのちにのみ前記ファイル・システム・オブジェクトを変更することによって加えること
を含んでいる、請求項108に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/286,153 US8041735B1 (en) | 2002-11-01 | 2002-11-01 | Distributed file system and method |
PCT/US2003/034495 WO2004042618A2 (en) | 2002-11-01 | 2003-10-30 | Distributed file system and method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010020731A Division JP2010108520A (ja) | 2002-11-01 | 2010-02-01 | 分散ファイル・システムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006505071A JP2006505071A (ja) | 2006-02-09 |
JP4480153B2 true JP4480153B2 (ja) | 2010-06-16 |
Family
ID=32312065
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004550258A Expired - Fee Related JP4480153B2 (ja) | 2002-11-01 | 2003-10-30 | 分散ファイル・システムおよび方法 |
JP2010020731A Pending JP2010108520A (ja) | 2002-11-01 | 2010-02-01 | 分散ファイル・システムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010020731A Pending JP2010108520A (ja) | 2002-11-01 | 2010-02-01 | 分散ファイル・システムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8041735B1 (ja) |
EP (1) | EP1556793B1 (ja) |
JP (2) | JP4480153B2 (ja) |
AU (1) | AU2003284377A1 (ja) |
CA (1) | CA2504340C (ja) |
WO (1) | WO2004042618A2 (ja) |
Families Citing this family (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343487B2 (en) * | 2001-10-10 | 2008-03-11 | Nokia Corporation | Datacast distribution system |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US8285825B1 (en) * | 2002-11-13 | 2012-10-09 | Novell, Inc. | Method and system for managing network resources based on a dynamic quorum |
US7865536B1 (en) * | 2003-02-14 | 2011-01-04 | Google Inc. | Garbage collecting systems and methods |
US8452821B2 (en) | 2007-06-29 | 2013-05-28 | Microsoft Corporation | Efficient updates for distributed file systems |
US8086565B2 (en) | 2008-02-18 | 2011-12-27 | Microsoft Corporation | File system watcher in the presence of different file systems |
US8548956B2 (en) * | 2008-02-28 | 2013-10-01 | Mcafee, Inc. | Automated computing appliance cloning or migration |
US8214404B2 (en) | 2008-07-11 | 2012-07-03 | Avere Systems, Inc. | Media aware distributed data layout |
US9323681B2 (en) * | 2008-09-18 | 2016-04-26 | Avere Systems, Inc. | File storage system, cache appliance, and method |
US9170953B2 (en) * | 2008-09-18 | 2015-10-27 | Avere Systems, Inc. | System and method for storing data in clusters located remotely from each other |
JP5234342B2 (ja) | 2008-09-22 | 2013-07-10 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
WO2010036889A1 (en) * | 2008-09-25 | 2010-04-01 | Bakbone Software, Inc. | Remote backup and restore |
US8103621B2 (en) * | 2008-10-03 | 2012-01-24 | International Business Machines Corporation | HSM two-way orphan reconciliation for extremely large file systems |
WO2010131373A1 (en) * | 2009-05-15 | 2010-11-18 | Hitachi,Ltd. | Storage subsystem |
US8326802B2 (en) * | 2009-06-11 | 2012-12-04 | International Business Machines Corporation | File system location verification using a sentinel |
US8495044B2 (en) * | 2009-09-02 | 2013-07-23 | Microsoft Corporation | File system node updates |
CN102055779B (zh) * | 2009-10-30 | 2013-11-20 | 国际商业机器公司 | 生成高可用性组的方法、设备及系统 |
US9037620B2 (en) * | 2009-12-16 | 2015-05-19 | Microsoft Technology Licensing, Llc | File system active symbolic link |
US9479480B2 (en) * | 2010-01-29 | 2016-10-25 | Citrix Systems, Inc. | Systems and methods of using SSL pools for WAN acceleration |
US8793645B2 (en) | 2010-04-02 | 2014-07-29 | Microsoft Corporation | Replacement of data element in a graph |
US8285762B2 (en) | 2010-05-11 | 2012-10-09 | International Business Machines Corporation | Migration of metadata and storage management of data in a first storage environment to a second storage environment |
JP5824519B2 (ja) * | 2010-09-13 | 2015-11-25 | 株式会社東芝 | 分散型メタデータキャッシュ |
US9400799B2 (en) * | 2010-10-04 | 2016-07-26 | Dell Products L.P. | Data block migration |
US8793328B2 (en) * | 2010-12-17 | 2014-07-29 | Facebook, Inc. | Distributed storage system |
US9348712B1 (en) * | 2010-12-22 | 2016-05-24 | Netapp, Inc. | Policy-based volume caching in a clustered storage system |
US9009196B2 (en) * | 2011-03-16 | 2015-04-14 | Microsoft Technology Licensing, Llc | Discovery and client routing to database nodes |
JP2012205088A (ja) | 2011-03-25 | 2012-10-22 | Toshiba Corp | ノード及びグループ鍵更新方法 |
US8943019B1 (en) * | 2011-04-13 | 2015-01-27 | Symantec Corporation | Lookup optimization during online file system migration |
US9342599B2 (en) * | 2011-05-25 | 2016-05-17 | Thomas Stetson Elliott | Methods and systems for centralized audio and video news product collection, optimization, storage, and distribution |
US10684989B2 (en) * | 2011-06-15 | 2020-06-16 | Microsoft Technology Licensing, Llc | Two-phase eviction process for file handle caches |
US8621603B2 (en) | 2011-09-09 | 2013-12-31 | Lsi Corporation | Methods and structure for managing visibility of devices in a clustered storage system |
US8996467B2 (en) * | 2011-12-29 | 2015-03-31 | Druva Inc. | Distributed scalable deduplicated data backup system |
WO2013116530A1 (en) * | 2012-02-01 | 2013-08-08 | Xerocole, Inc. | Dns outage avoidance method for recursive dns servers |
WO2013119516A1 (en) | 2012-02-06 | 2013-08-15 | Xerocole, Inc. | Data sharing method for recursive dns servers |
JP5867161B2 (ja) * | 2012-02-29 | 2016-02-24 | 富士通株式会社 | データアクセス制御装置、データアクセス制御方法およびプログラム |
US9207877B1 (en) * | 2012-03-30 | 2015-12-08 | Emc Corporation | Detection and avoidance of stalled filesystems to prevent stalling of virtual tape drives during tape mounts |
US8583840B1 (en) | 2012-04-25 | 2013-11-12 | Lsi Corporation | Methods and structure for determining mapping information inconsistencies in I/O requests generated for fast path circuits of a storage controller |
US9774676B2 (en) | 2012-05-21 | 2017-09-26 | Google Inc. | Storing and moving data in a distributed storage system |
US9195611B2 (en) | 2012-06-04 | 2015-11-24 | Google Inc. | Efficiently updating and deleting data in a data storage system |
US9449006B2 (en) * | 2012-06-04 | 2016-09-20 | Google Inc. | Method and system for deleting obsolete files from a file system |
US9230000B1 (en) | 2012-06-04 | 2016-01-05 | Google Inc. | Pipelining Paxos state machines |
US9659038B2 (en) | 2012-06-04 | 2017-05-23 | Google Inc. | Efficient snapshot read of a database in a distributed storage system |
US9298576B2 (en) | 2012-06-04 | 2016-03-29 | Google Inc. | Collecting processor usage statistics |
WO2013184712A2 (en) | 2012-06-04 | 2013-12-12 | Google Inc. | Systems and methods of increasing database access concurrency using granular timestamps |
US9317511B2 (en) * | 2012-06-19 | 2016-04-19 | Infinidat Ltd. | System and method for managing filesystem objects |
WO2014000822A1 (en) * | 2012-06-29 | 2014-01-03 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and apparatus for implementing a distributed database |
US9852073B2 (en) * | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
US9549037B2 (en) | 2012-08-07 | 2017-01-17 | Dell Products L.P. | System and method for maintaining solvency within a cache |
US20140047183A1 (en) * | 2012-08-07 | 2014-02-13 | Dell Products L.P. | System and Method for Utilizing a Cache with a Virtual Machine |
US9367480B2 (en) | 2012-08-07 | 2016-06-14 | Dell Products L.P. | System and method for updating data in a cache |
US9311240B2 (en) | 2012-08-07 | 2016-04-12 | Dell Products L.P. | Location and relocation of data within a cache |
US9495301B2 (en) * | 2012-08-07 | 2016-11-15 | Dell Products L.P. | System and method for utilizing non-volatile memory in a cache |
WO2014046650A1 (en) | 2012-09-19 | 2014-03-27 | Bluearc Uk Limited | System and method for managing deduplication using checkpoints in a file storage system |
US8924443B2 (en) * | 2012-10-05 | 2014-12-30 | Gary Robin Maze | Document management systems and methods |
KR20140047230A (ko) * | 2012-10-10 | 2014-04-22 | (주)티베로 | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 |
US9152501B2 (en) * | 2012-12-19 | 2015-10-06 | International Business Machines Corporation | Write performance in fault-tolerant clustered storage systems |
US20140201177A1 (en) * | 2013-01-11 | 2014-07-17 | Red Hat, Inc. | Accessing a file system using a hard link mapped to a file handle |
EP2951978A4 (en) * | 2013-01-29 | 2016-08-31 | Hewlett Packard Entpr Dev Lp | METHOD AND SYSTEMS FOR STORING COMMONLY USED FILES |
US9984083B1 (en) * | 2013-02-25 | 2018-05-29 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines across non-native file systems |
US9805092B1 (en) | 2013-02-25 | 2017-10-31 | EMC IP Holding Company LLC | Parallel processing database system |
US9613119B1 (en) * | 2013-03-14 | 2017-04-04 | Nutanix, Inc. | Unique identifiers for data replication, migration, failover operations and failback operations |
US9769111B1 (en) * | 2013-04-28 | 2017-09-19 | Amdocs Software Systems Limited | System, method, and computer program for many-to-one communications in a network |
US9529890B2 (en) * | 2013-04-29 | 2016-12-27 | Moogsoft, Inc. | System for decomposing events from managed infrastructures using a topology proximity engine, graph topologies, and k-means clustering |
US9152776B2 (en) * | 2013-04-30 | 2015-10-06 | Netapp, Inc. | Secure access-based enumeration of a junction or mount point on a clustered server |
US10754825B2 (en) * | 2013-08-28 | 2020-08-25 | Red Hat, Inc. | Path resolver for client access to distributed file systems |
US9571356B2 (en) | 2013-09-27 | 2017-02-14 | Zettaset, Inc. | Capturing data packets from external networks into high availability clusters while maintaining high availability of popular data packets |
US9798791B1 (en) * | 2013-12-04 | 2017-10-24 | Ca, Inc. | System and method for filtering files during data replication |
US9450852B1 (en) * | 2014-01-03 | 2016-09-20 | Juniper Networks, Inc. | Systems and methods for preventing split-brain scenarios in high-availability clusters |
WO2015110171A1 (en) | 2014-01-24 | 2015-07-30 | Hitachi Data Systems Engineering UK Limited | Method, system and computer program product for replicating file system objects from a source file system to a target file system and for de-cloning snapshot-files in a file system |
US20150248443A1 (en) * | 2014-03-02 | 2015-09-03 | Plexistor Ltd. | Hierarchical host-based storage |
CN103984768B (zh) | 2014-05-30 | 2017-09-29 | 华为技术有限公司 | 一种数据库集群管理数据的方法、节点及系统 |
WO2016018447A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | File creation |
WO2016024986A1 (en) | 2014-08-15 | 2016-02-18 | Hewlett-Packard Development Company, L.P. | Three phase commit for a distributed file system |
US10270735B2 (en) * | 2014-10-10 | 2019-04-23 | Microsoft Technology Licensing, Llc | Distributed components in computing clusters |
US9870368B2 (en) | 2014-10-27 | 2018-01-16 | Cohesity, Inc. | Concurrent access and transactions in a distributed file system |
US9697227B2 (en) * | 2014-10-27 | 2017-07-04 | Cohesity, Inc. | Concurrent access and transactions in a distributed file system |
WO2016073029A1 (en) * | 2014-11-03 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Detecting inconsistencies in hierarchical organization directories |
WO2016073030A1 (en) | 2014-11-03 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Policy and configuration data for a user directory |
US20160212198A1 (en) * | 2015-01-16 | 2016-07-21 | Netapp, Inc. | System of host caches managed in a unified manner |
US10108624B1 (en) * | 2015-02-04 | 2018-10-23 | Amazon Technologies, Inc. | Concurrent directory move operations using ranking rules |
US10887429B1 (en) * | 2015-06-30 | 2021-01-05 | EMC IP Holding Company LLC | Processing multi-protocol redirection links |
CN106469150B (zh) * | 2015-08-14 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
US10320702B2 (en) | 2015-09-30 | 2019-06-11 | Veritas Technologies, LLC | Input/output fencing optimization |
US10733147B2 (en) * | 2015-10-19 | 2020-08-04 | Google Llc | Distributed management of file modification-time field |
US10467005B2 (en) * | 2015-12-15 | 2019-11-05 | International Business Machines Corporation | Resilient distributed garbage collection |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10353916B2 (en) * | 2016-03-25 | 2019-07-16 | Bentley Systems, Incorporated | Techniques for conversion of CAD descriptions |
US10719499B2 (en) * | 2016-06-06 | 2020-07-21 | INTERNATIONAL BUSINESS MACHINES CORPORATIOb | Establishing distributed consensus via alternate voting strategies in a dispersed storage network |
US10248470B2 (en) | 2016-08-31 | 2019-04-02 | International Business Machines Corporation | Hierarchical hardware object model locking |
US11119870B2 (en) * | 2016-09-21 | 2021-09-14 | Nec Corporation | Calculator, cluster management system, method, and non-transitory computer readable medium |
KR102162466B1 (ko) * | 2016-10-07 | 2020-10-08 | 한국전자통신연구원 | 분산 스토리지 서버, 그것에 포함되는 서버 장치, 및 서버 장치를 동작시키는 방법 |
US10810165B2 (en) * | 2016-10-07 | 2020-10-20 | Electronics And Telecommunications Research Institute | Distributed storage server, server device included therein, and method of operating server device |
US10635648B2 (en) | 2016-11-30 | 2020-04-28 | Nutanix, Inc. | Entity identifier generation in distributed computing systems |
KR20180085187A (ko) * | 2017-01-18 | 2018-07-26 | 한국전자통신연구원 | 토러스 연결망 기반 분산 파일 시스템의 볼륨 확장 및 축소 방법 및 이를 위한 장치 |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
CN106776055B (zh) * | 2017-02-19 | 2019-10-25 | 网宿科技股份有限公司 | 一种分布式锁实现方法和系统 |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10721719B2 (en) * | 2017-06-20 | 2020-07-21 | Citrix Systems, Inc. | Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node |
US11860819B1 (en) * | 2017-06-29 | 2024-01-02 | Amazon Technologies, Inc. | Auto-generation of partition key |
US10915497B1 (en) * | 2017-07-31 | 2021-02-09 | EMC IP Holding Company LLC | Multi-tier storage system with controllable relocation of files from file system tier to cloud-based object storage tier |
US10735369B2 (en) * | 2018-06-22 | 2020-08-04 | Microsoft Technology Licensing, Llc | Hierarchical namespace service with distributed name resolution caching and synchronization |
US10984022B2 (en) * | 2018-07-30 | 2021-04-20 | Sap Se | Clustering process for objects using link counts |
US11423080B2 (en) | 2018-07-30 | 2022-08-23 | Sap Se | Clustering process for objects using comparison structures |
US10320625B1 (en) | 2018-08-21 | 2019-06-11 | Capital One Services, Llc | Managing service deployment in a cloud computing environment |
US10938897B2 (en) * | 2019-01-31 | 2021-03-02 | EMC IP Holding Company LLC | Extended group service changes |
US11271992B2 (en) * | 2020-01-22 | 2022-03-08 | EMC IP Holding Company LLC | Lazy lock queue reduction for cluster group changes |
KR102289834B1 (ko) * | 2020-03-09 | 2021-08-12 | 한림대학교 산학협력단 | 센서 장치의 저장 공간을 이용한 가상 스토리지 시스템 및 이의 작동 방법 |
US11934679B2 (en) * | 2020-10-21 | 2024-03-19 | EMC IP Holding Company, LLC | System and method for segmenting volumes across a multi-node storage system |
US11803511B2 (en) * | 2021-11-05 | 2023-10-31 | Microsoft Technology Licensing, Llc | Methods and systems for ordering operations on a file system having a hierarchical namespace |
CN114579514B (zh) * | 2022-04-25 | 2022-10-04 | 阿里云计算有限公司 | 一种基于多计算节点的文件处理方法、装置及设备 |
Family Cites Families (252)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US665689A (en) * | 1900-06-21 | 1901-01-08 | Martin Landenberger | Bottle-stopper. |
US3702462A (en) | 1967-10-26 | 1972-11-07 | Delaware Sds Inc | Computer input-output system |
US3588831A (en) | 1968-11-13 | 1971-06-28 | Honeywell Inf Systems | Input/output controller for independently supervising a plurality of operations in response to a single command |
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
CS164932B2 (ja) | 1971-09-07 | 1975-11-28 | ||
US4075691A (en) | 1975-11-06 | 1978-02-21 | Bunker Ramo Corporation | Communication control unit |
JPS6038740B2 (ja) | 1976-04-19 | 1985-09-03 | 株式会社東芝 | デ−タ処理装置 |
US4074072A (en) | 1976-05-24 | 1978-02-14 | Bell Telephone Laboratories, Incorporated | Multiprocessor control of a partitioned switching network by control communication through the network |
US4079452A (en) | 1976-06-15 | 1978-03-14 | Bunker Ramo Corporation | Programmable controller with modular firmware for communication control |
US4096567A (en) | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4080649A (en) | 1976-12-16 | 1978-03-21 | Honeywell Information Systems Inc. | Balancing the utilization of I/O system processors |
US4156907A (en) | 1977-03-02 | 1979-05-29 | Burroughs Corporation | Data communications subsystem |
US4101960A (en) | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
US4156906A (en) | 1977-11-22 | 1979-05-29 | Honeywell Information Systems Inc. | Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands |
JPS54111726A (en) | 1978-02-22 | 1979-09-01 | Hitachi Ltd | Control unit for multiplex virtual memory |
US4399503A (en) | 1978-06-30 | 1983-08-16 | Bunker Ramo Corporation | Dynamic disk buffer control unit |
US4253144A (en) | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
US4240143A (en) | 1978-12-22 | 1980-12-16 | Burroughs Corporation | Hierarchical multi-processor network for memory sharing |
US4377843A (en) | 1979-04-19 | 1983-03-22 | Wescom Switching, Inc. | Data distribution interface |
FR2472234A1 (fr) | 1979-12-21 | 1981-06-26 | Philips Ind Commerciale | Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti |
US4333144A (en) | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
US4323967A (en) | 1980-04-15 | 1982-04-06 | Honeywell Information Systems Inc. | Local bus interface for controlling information transfers between units in a central subsystem |
US4488231A (en) | 1980-09-29 | 1984-12-11 | Honeywell Information Systems Inc. | Communication multiplexer having dual microprocessors |
US4414624A (en) | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
US4385206A (en) | 1980-12-16 | 1983-05-24 | Stromberg-Carlson Corporation | Programmable port sense and control signal preprocessor for a central office switching system |
FR2500659B1 (fr) | 1981-02-25 | 1986-02-28 | Philips Ind Commerciale | Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur |
JPS57155666A (en) | 1981-03-20 | 1982-09-25 | Fujitsu Ltd | Instruction controlling system of vector processor |
US4445174A (en) | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
AU551032B2 (en) | 1981-03-31 | 1986-04-17 | British Telecommunications Public Limited Company | Safety arrangement in computer control system |
US4412285A (en) | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
JPS57164340A (en) | 1981-04-03 | 1982-10-08 | Hitachi Ltd | Information processing method |
US4394727A (en) | 1981-05-04 | 1983-07-19 | International Business Machines Corporation | Multi-processor task dispatching apparatus |
US4456957A (en) | 1981-09-28 | 1984-06-26 | Ncr Corporation | Apparatus using a decision table for routing data among terminals and a host system |
US4442487A (en) | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
US4448419A (en) | 1982-02-24 | 1984-05-15 | Telnaes Inge S | Electronic gaming device utilizing a random number generator for selecting the reel stop positions |
US4500960A (en) | 1982-06-28 | 1985-02-19 | At&T Bell Laboratories | Geographically distributed multiprocessor time-shared communication processing system |
US4685125A (en) | 1982-06-28 | 1987-08-04 | American Telephone And Telegraph Company | Computer system with tasking |
US4614841A (en) | 1982-06-29 | 1986-09-30 | At&T Bell Laboratories | Geographically distributed multiprocessor time-shared communication processing system |
US4527232A (en) | 1982-07-02 | 1985-07-02 | Sun Microsystems, Inc. | High-speed memory and memory management system |
US4550368A (en) | 1982-07-02 | 1985-10-29 | Sun Microsystems, Inc. | High-speed memory and memory management system |
US4608631A (en) | 1982-09-03 | 1986-08-26 | Sequoia Systems, Inc. | Modular computer system |
US4626634A (en) | 1982-09-30 | 1986-12-02 | At&T Bell Laboratories | Multiprocessor computing system featuring shared global control |
US4590556A (en) | 1983-01-17 | 1986-05-20 | Tandy Corporation | Co-processor combination |
US4654654A (en) | 1983-02-07 | 1987-03-31 | At&T Bell Laboratories | Data network acknowledgement arrangement |
US4536874A (en) | 1983-07-21 | 1985-08-20 | Stoffel James C | Bandwidth efficient multipoint data communication system |
JPS6054052A (ja) | 1983-09-02 | 1985-03-28 | Nec Corp | 処理継続方式 |
US4558413A (en) | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4633245A (en) | 1983-12-30 | 1986-12-30 | International Business Machines Corporation | Local area network interconnect switching system |
US5255369A (en) | 1984-03-10 | 1993-10-19 | Encore Computer U.S., Inc. | Multiprocessor system with reflective memory data transfer device |
US4638427A (en) | 1984-04-16 | 1987-01-20 | International Business Machines Corporation | Performance evaluation for an asymmetric multiprocessor system |
JP2539352B2 (ja) | 1984-06-20 | 1996-10-02 | 株式会社日立製作所 | 階層型多重計算機システム |
US4710868A (en) | 1984-06-29 | 1987-12-01 | International Business Machines Corporation | Interconnect scheme for shared memory local networks |
US5067071A (en) | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4769772A (en) | 1985-02-28 | 1988-09-06 | Honeywell Bull, Inc. | Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases |
US4754395A (en) | 1985-05-06 | 1988-06-28 | Computer X, Inc. | Network interface module with minimized data paths |
US5113523A (en) | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4694396A (en) | 1985-05-06 | 1987-09-15 | Computer X, Inc. | Method of inter-process communication in a distributed data processing system |
US4649473A (en) | 1985-06-17 | 1987-03-10 | International Business Machines Corporation | Flexible data transmission for message based protocols |
US4714995A (en) | 1985-09-13 | 1987-12-22 | Trw Inc. | Computer integration system |
US4719569A (en) | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
US4825354A (en) | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
JPS62192820A (ja) | 1986-02-20 | 1987-08-24 | Mitsubishi Electric Corp | マン・マシン・インタフェイス管理方式 |
US4783705A (en) | 1986-02-27 | 1988-11-08 | Quantum Corporation | High capacity disk file with embedded sector servo and SCSI interface |
US4809169A (en) | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US4727538A (en) | 1986-05-20 | 1988-02-23 | American Telephone And Telegraph Company, At&T Bell Laboratories | Information transfer method and arrangement |
US4803621A (en) | 1986-07-24 | 1989-02-07 | Sun Microsystems, Inc. | Memory access system |
US4845609A (en) | 1986-07-25 | 1989-07-04 | Systech Corporation | Computer communications subsystem using an embedded token-passing network |
US4780821A (en) | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4819159A (en) | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4783730A (en) | 1986-09-19 | 1988-11-08 | Datapoint Corporation | Input/output control technique utilizing multilevel memory structure for processor and I/O communication |
US4766534A (en) | 1986-10-16 | 1988-08-23 | American Telephone And Telegraph Company, At&T Bell Laboratories | Parallel processing network and method |
JPS63100562A (ja) | 1986-10-17 | 1988-05-02 | Hitachi Ltd | フアイルシステム管理方式 |
US5764922A (en) | 1986-11-04 | 1998-06-09 | Unisys Corporation | I/O system for off-loading operating system functions |
JPH0821926B2 (ja) | 1987-01-12 | 1996-03-04 | 株式会社東芝 | 情報通信ネツトワ−ク |
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US5133053A (en) | 1987-02-13 | 1992-07-21 | International Business Machines Corporation | Interprocess communication queue location transparency |
US4897781A (en) | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
US5001628A (en) | 1987-02-13 | 1991-03-19 | International Business Machines Corporation | Single system image uniquely defining an environment for each user in a data processing system |
US4805107A (en) | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
US5201040A (en) | 1987-06-22 | 1993-04-06 | Hitachi, Ltd. | Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor |
US5113496A (en) | 1987-08-04 | 1992-05-12 | Mccalley Karl W | Bus interconnection structure with redundancy linking plurality of groups of processors, with servers for each group mounted on chassis |
CA1301294C (en) | 1987-08-21 | 1992-05-19 | Klaus Kuhlmann | Modularly structured digital communications system |
US5109515A (en) | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
JPH01108675A (ja) | 1987-10-21 | 1989-04-25 | Hitachi Ltd | 電子伝票処理システム |
JP2644780B2 (ja) | 1987-11-18 | 1997-08-25 | 株式会社日立製作所 | 処理依頼機能を持つ並列計算機 |
NZ226733A (en) | 1987-12-21 | 1990-05-28 | Honeywell Bull | Coupling incompatible cpu to data processing system |
US5050070A (en) | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
US4993017A (en) | 1988-03-15 | 1991-02-12 | Siemens Aktiengesellschaft | Modularly structured ISDN communication system |
US4899333A (en) | 1988-03-31 | 1990-02-06 | American Telephone And Telegraph Company At&T Bell Laboratories | Architecture of the control of a high performance packet switching distribution network |
US4922486A (en) | 1988-03-31 | 1990-05-01 | American Telephone And Telegraph Company | User to network interface protocol for packet communications networks |
US4872157A (en) | 1988-03-31 | 1989-10-03 | American Telephone And Telegraph Company, At&T Bell Laboratories | Architecture and organization of a high performance metropolitan area telecommunications packet network |
US4875206A (en) | 1988-03-31 | 1989-10-17 | American Telephone And Telegraph Comopany, At&T Bell Laboratories | High bandwidth interleaved buffer memory and control |
US4872159A (en) | 1988-03-31 | 1989-10-03 | American Telephone And Telegraph Company At&T Bell Laboratories | Packet network architecture for providing rapid response time |
US4914583A (en) | 1988-04-13 | 1990-04-03 | Motorola, Inc. | Method of indicating processes resident within a cell of a data processing system |
US5008814A (en) | 1988-08-15 | 1991-04-16 | Network Equipment Technologies, Inc. | Method and apparatus for updating system software for a plurality of data processing units in a communication network |
US4991133A (en) | 1988-10-07 | 1991-02-05 | International Business Machines Corp. | Specialized communications processor for layered protocols |
US5262965A (en) | 1988-10-31 | 1993-11-16 | Bts-Broadcast Television Systems, Inc. | System and method for high speed computer graphics image computation using a parallel connected, asynchronous multiprocessor ring coupled to a synchronous special purpose video processing ring |
EP0367182A3 (en) | 1988-10-31 | 1992-07-22 | Bts Broadcast Television Systems Gmbh | High-speed digital computing system |
IT1227360B (it) | 1988-11-18 | 1991-04-08 | Honeywell Bull Spa | Sistema multiprocessore di elaborazione dati con replicazione di dati globali. |
US5073852A (en) | 1988-12-16 | 1991-12-17 | Cayman Systems, Inc. | Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead |
US5210824A (en) | 1989-03-03 | 1993-05-11 | Xerox Corporation | Encoding-format-desensitized methods and means for interchanging electronic document as appearances |
JPH02297229A (ja) | 1989-03-03 | 1990-12-07 | Xerox Corp | データベース・システム |
US5036459A (en) | 1989-03-09 | 1991-07-30 | U.S. Philips Corporation | Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism |
US5058110A (en) | 1989-05-03 | 1991-10-15 | Ultra Network Technologies | Protocol processor |
US5113522A (en) | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
US5155809A (en) | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5283868A (en) | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
US5359713A (en) | 1989-06-01 | 1994-10-25 | Legato Systems, Inc. | Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system |
US5557798A (en) | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5113500A (en) | 1989-08-23 | 1992-05-12 | Unisys Corporation | Multiple cooperating and concurrently operating processors using individually dedicated memories |
US5371885A (en) | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
ATE179811T1 (de) | 1989-09-08 | 1999-05-15 | Auspex Systems Inc | Betriebssystemaufbau mit mehreren verarbeitungseinheiten |
JPH05502526A (ja) | 1989-09-08 | 1993-04-28 | オースペックス システムズ インコーポレイテッド | 擬似同期ハンドシェイキングおよびブロックモードデータ転送を利用したエンハンストvmeバスプロトコル |
US5185857A (en) | 1989-12-13 | 1993-02-09 | Rozmanith A Martin | Method and apparatus for multi-optional processing, storing, transmitting and retrieving graphical and tabular data in a mobile transportation distributable and/or networkable communications and/or data processing system |
US5276860A (en) | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5179702A (en) | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5175825A (en) | 1990-02-02 | 1992-12-29 | Auspex Systems, Inc. | High speed, flexible source/destination data burst direct memory access controller |
US5118975A (en) | 1990-03-05 | 1992-06-02 | Thinking Machines Corporation | Digital clock buffer circuit providing controllable delay |
US5218697A (en) | 1990-04-18 | 1993-06-08 | Microsoft Corporation | Method and system for networking computers having varying file architectures |
ATE119732T1 (de) | 1990-06-26 | 1995-03-15 | Siemens Ag | Programmgesteuerte kommunikationsanlage. |
CA2045799C (en) | 1990-07-11 | 1999-03-23 | Kenneth L. Thompson | File system with read/write and read only storage |
JP2888958B2 (ja) | 1990-10-20 | 1999-05-10 | 富士通株式会社 | 部分書き換え可能な記憶媒体におけるファイル管理方式 |
US5673394A (en) | 1990-10-31 | 1997-09-30 | Microsoft Corporation | Method of sharing memory between an operating system and an application program |
US5367698A (en) | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
US5243699A (en) | 1991-12-06 | 1993-09-07 | Maspar Computer Corporation | Input/output system for parallel processing arrays |
US6256642B1 (en) | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
CA2131627A1 (en) | 1992-03-09 | 1993-09-16 | Yu-Ping Cheng | High-performance non-volatile ram protected write cache accelerator system |
JP3213766B2 (ja) | 1992-03-16 | 2001-10-02 | 株式会社日立製作所 | レプリケートファイル更新システム |
EP0672277B1 (en) | 1992-12-01 | 1998-05-13 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
GB9300913D0 (en) | 1993-01-19 | 1993-03-10 | Madge Networks Ltd | Interface apparatus |
US5519853A (en) | 1993-03-11 | 1996-05-21 | Legato Systems, Inc. | Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system |
EP0622922B1 (en) | 1993-04-29 | 2000-11-29 | International Business Machines Corporation | Method and device of multicasting data in a communications system |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
DE69435146D1 (de) | 1993-06-03 | 2008-11-13 | Network Appliance Inc | Verfahren und Vorrichtung zum Beschreiben beliebiger Bereiche eines Dateisystems |
US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
WO1994029796A1 (en) | 1993-06-03 | 1994-12-22 | Network Appliance Corporation | A method for allocating files in a file system integrated with a raid disk sub-system |
JPH08511368A (ja) | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
US5613105A (en) | 1993-06-30 | 1997-03-18 | Microsoft Corporation | Efficient storage of objects in a file system |
JPH0778098A (ja) * | 1993-09-08 | 1995-03-20 | Fujitsu Ltd | ファイル管理システム |
US5699518A (en) | 1993-11-29 | 1997-12-16 | Microsoft Corporation | System for selectively setting a server node, evaluating to determine server node for executing server code, and downloading server code prior to executing if necessary |
JPH07175710A (ja) | 1993-12-20 | 1995-07-14 | Canon Inc | データ管理方法及び装置 |
US5701462A (en) | 1993-12-29 | 1997-12-23 | Microsoft Corporation | Distributed file system providing a unified name space with efficient name resolution |
US5608909A (en) | 1994-04-15 | 1997-03-04 | Microsoft Corporation | Method and system for caching presentation data of a source object in a presentation cache |
US5657455A (en) | 1994-09-07 | 1997-08-12 | Adaptec, Inc. | Status indicator for a host adapter |
US5960180A (en) | 1994-09-07 | 1999-09-28 | Adaptec, Inc. | Host adapter integrated circuit having autoaccess pause |
US5835953A (en) | 1994-10-13 | 1998-11-10 | Vinca Corporation | Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating |
US5745752A (en) | 1994-12-13 | 1998-04-28 | Microsoft Corporation | Dual namespace client having long and short filenames |
CA2167790A1 (en) | 1995-01-23 | 1996-07-24 | Donald S. Maier | Relational database system and method with high data availability during table data restructuring |
US5513314A (en) | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
US5630059A (en) | 1995-02-06 | 1997-05-13 | International Business Machines Corporation | Expedited message transfer in a multi-nodal data processing system |
US5819306A (en) | 1995-02-14 | 1998-10-06 | General Magic | Shadow mechanism for a modifiable object oriented system |
US5930831A (en) | 1995-02-23 | 1999-07-27 | Powerquest Corporation | Partition manipulation architecture supporting multiple file systems |
JP3123012B2 (ja) | 1995-03-02 | 2001-01-09 | 松下電器産業株式会社 | マルチメディアサーバー |
US5701491A (en) | 1995-05-31 | 1997-12-23 | Microsoft Corporation, Inc. | Method and system for transitioning the network mode of a workstation |
US5761669A (en) | 1995-06-06 | 1998-06-02 | Microsoft Corporation | Controlling access to objects on multiple operating systems |
US5675782A (en) | 1995-06-06 | 1997-10-07 | Microsoft Corporation | Controlling access to objects on multiple operating systems |
US5628005A (en) | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
US6275867B1 (en) | 1995-09-12 | 2001-08-14 | International Business Machines Corporation | Operation-partitioned off-loading of operations in a distributed environment |
US5845280A (en) | 1995-09-25 | 1998-12-01 | Microsoft Corporation | Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process |
US5892917A (en) | 1995-09-27 | 1999-04-06 | Microsoft Corporation | System for log record and log expansion with inserted log records representing object request for specified object corresponding to cached object copies |
US5802288A (en) | 1995-10-26 | 1998-09-01 | International Business Machines Corporation | Integrated communications for pipelined computers |
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 |
US5742818A (en) | 1995-12-15 | 1998-04-21 | Microsoft Corporation | Method and system of converting data from a source file system to a target file system |
US5754771A (en) | 1996-02-12 | 1998-05-19 | Sybase, Inc. | Maximum receive capacity specifying query processing client/server system replying up to the capacity and sending the remainder upon subsequent request |
US5794230A (en) | 1996-03-15 | 1998-08-11 | Microsoft Corporation | Method and system for creating and searching directories on a server |
US5907703A (en) | 1996-05-08 | 1999-05-25 | Mijenix Corporation | Device driver for accessing computer files |
US6901509B1 (en) | 1996-05-14 | 2005-05-31 | Tumbleweed Communications Corp. | Apparatus and method for demonstrating and confirming the status of a digital certificates and other data |
US5867657A (en) | 1996-06-06 | 1999-02-02 | Microsoft Corporation | Distributed scheduling in a multiple data server system |
US5958061A (en) | 1996-07-24 | 1999-09-28 | Transmeta Corporation | Host microprocessor with apparatus for temporarily holding target processor state |
US6044367A (en) | 1996-08-02 | 2000-03-28 | Hewlett-Packard Company | Distributed I/O store |
US5889952A (en) | 1996-08-14 | 1999-03-30 | Microsoft Corporation | Access check system utilizing cached access permissions |
US5832205A (en) | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US5926832A (en) | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
US6034963A (en) | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US6487644B1 (en) | 1996-11-22 | 2002-11-26 | Veritas Operating Corporation | System and method for multiplexed data back-up to a storage tape and restore operations using client identification tags |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US6026474A (en) * | 1996-11-22 | 2000-02-15 | Mangosoft Corporation | Shared client-side web caching using globally addressable memory |
US6006228A (en) | 1996-12-11 | 1999-12-21 | Ncr Corporation | Assigning security levels to particular documents on a document by document basis in a database |
SG77151A1 (en) | 1997-01-09 | 2000-12-19 | Sun Microsystems Inc | Full-featured special purpose network server |
US5905855A (en) | 1997-02-28 | 1999-05-18 | Transmeta Corporation | Method and apparatus for correcting errors in computer systems |
US5950225A (en) | 1997-02-28 | 1999-09-07 | Network Appliance, Inc. | Fly-by XOR for generating parity for data gleaned from a bus |
US5929655A (en) | 1997-03-25 | 1999-07-27 | Adaptec, Inc. | Dual-purpose I/O circuit in a combined LINK/PHY integrated circuit |
US6012107A (en) | 1997-05-22 | 2000-01-04 | Adaptec, Inc. | Hardware control block delivery queues for host adapters and other devices with onboard processors |
US6047332A (en) * | 1997-06-30 | 2000-04-04 | Sun Microsystems, Inc. | Global file system-based system and method for rendering devices on a cluster globally visible |
US6044438A (en) | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US5931920A (en) | 1997-08-05 | 1999-08-03 | Adaptec, Inc. | Command interpreter system in an I/O controller |
US6105075A (en) | 1997-08-05 | 2000-08-15 | Adaptec, Inc. | Scatter gather memory system for a hardware accelerated command interpreter engine |
US6088740A (en) | 1997-08-05 | 2000-07-11 | Adaptec, Inc. | Command queuing system for a hardware accelerated command interpreter engine |
US6230200B1 (en) | 1997-09-08 | 2001-05-08 | Emc Corporation | Dynamic modeling for resource allocation in a file server |
US6192408B1 (en) | 1997-09-26 | 2001-02-20 | Emc Corporation | Network file server sharing local caches of file access information in data processors assigned to respective file systems |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
US5941969A (en) | 1997-10-22 | 1999-08-24 | Auspex Systems, Inc. | Bridge for direct data storage device access |
US6081883A (en) | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
AU3304699A (en) * | 1998-02-20 | 1999-09-06 | Storm Systems Llc | File system performance enhancement |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6173293B1 (en) * | 1998-03-13 | 2001-01-09 | Digital Equipment Corporation | Scalable distributed file system |
WO1999059064A1 (en) * | 1998-05-12 | 1999-11-18 | Sun Microsystems, Inc. | Highly available cluster virtual disk system |
US6269252B1 (en) | 1998-05-27 | 2001-07-31 | Motorola, Inc. | Programmable bridging apparatus to connect multiple networks of different protocols |
US6085278A (en) | 1998-06-02 | 2000-07-04 | Adaptec, Inc. | Communications interface adapter for a computer system including posting of system interrupt status |
US6070200A (en) | 1998-06-02 | 2000-05-30 | Adaptec, Inc. | Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus |
US6279011B1 (en) | 1998-06-19 | 2001-08-21 | Network Appliance, Inc. | Backup and restore for heterogeneous file server environment |
US6263445B1 (en) | 1998-06-30 | 2001-07-17 | Emc Corporation | Method and apparatus for authenticating connections to a storage system coupled to a network |
US6604236B1 (en) | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6192375B1 (en) | 1998-07-09 | 2001-02-20 | Intel Corporation | Method and apparatus for managing files in a storage medium |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
US6425034B1 (en) | 1998-10-30 | 2002-07-23 | Agilent Technologies, Inc. | Fibre channel controller having both inbound and outbound control units for simultaneously processing both multiple inbound and outbound sequences |
US6321238B1 (en) | 1998-12-28 | 2001-11-20 | Oracle Corporation | Hybrid shared nothing/shared disk database system |
US6871224B1 (en) | 1999-01-04 | 2005-03-22 | Cisco Technology, Inc. | Facility to transmit network management data to an umbrella management system |
US6564252B1 (en) | 1999-03-11 | 2003-05-13 | Microsoft Corporation | Scalable storage system with unique client assignment to storage server partitions |
US6446141B1 (en) | 1999-03-25 | 2002-09-03 | Dell Products, L.P. | Storage server system including ranking of data source |
US6442617B1 (en) | 1999-03-31 | 2002-08-27 | 3Com Corporation | Method and system for filtering multicast packets in a peripheral component environment |
US6466978B1 (en) | 1999-07-28 | 2002-10-15 | Matsushita Electric Industrial Co., Ltd. | Multimedia file systems using file managers located on clients for managing network attached storage devices |
US6961749B1 (en) | 1999-08-25 | 2005-11-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
US6785822B1 (en) | 1999-09-16 | 2004-08-31 | International Business Machines Corporation | System and method for role based dynamic configuration of user profiles |
ATE390788T1 (de) | 1999-10-14 | 2008-04-15 | Bluearc Uk Ltd | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
US6484177B1 (en) | 2000-01-13 | 2002-11-19 | International Business Machines Corporation | Data management interoperability methods for heterogeneous directory structures |
US6894976B1 (en) | 2000-06-15 | 2005-05-17 | Network Appliance, Inc. | Prevention and detection of IP identification wraparound errors |
US6728897B1 (en) | 2000-07-25 | 2004-04-27 | Network Appliance, Inc. | Negotiating takeover in high availability cluster |
US6640233B1 (en) | 2000-08-18 | 2003-10-28 | Network Appliance, Inc. | Reserving file system blocks |
US6751635B1 (en) | 2000-08-18 | 2004-06-15 | Network Appliance, Inc. | File deletion and truncation using a zombie file space |
US6910154B1 (en) | 2000-08-18 | 2005-06-21 | Network Appliance, Inc. | Persistent and reliable delivery of event messages |
US6862648B2 (en) | 2000-10-30 | 2005-03-01 | Sun Microsystems, Inc. | Interface emulation for storage devices |
US7003780B2 (en) | 2000-12-11 | 2006-02-21 | International Business Machines Corporation | Method and an apparatus to extend the logic volume manager model to allow device management plug-ins |
US20020078066A1 (en) * | 2000-12-18 | 2002-06-20 | David Robinson | Data storage system including a file system for managing multiple volumes |
US6775792B2 (en) | 2001-01-29 | 2004-08-10 | Snap Appliance, Inc. | Discrete mapping of parity blocks |
ATE480822T1 (de) | 2001-02-13 | 2010-09-15 | Candera Inc | Failover-verarbeitung in einem speicherungssystem |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US6728735B1 (en) | 2001-03-12 | 2004-04-27 | Network Appliance, Inc. | Restartable dump that produces a consistent filesystem on tapes |
US6668264B1 (en) | 2001-04-03 | 2003-12-23 | Network Appliance, Inc. | Resynchronization of a target volume with a source volume |
US6748380B2 (en) | 2001-05-14 | 2004-06-08 | International Business Machines Corporation | Method, system, and program product for permission to access software |
US6928478B1 (en) | 2001-06-25 | 2005-08-09 | Network Appliance, Inc. | Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6920579B1 (en) | 2001-08-20 | 2005-07-19 | Network Appliance, Inc. | Operator initiated graceful takeover in a node cluster |
US7017084B2 (en) | 2001-09-07 | 2006-03-21 | Network Appliance Inc. | Tracing method and apparatus for distributed environments |
US6895429B2 (en) | 2001-12-28 | 2005-05-17 | Network Appliance, Inc. | Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses |
US6748510B1 (en) | 2002-02-28 | 2004-06-08 | Network Appliance, Inc. | System and method for verifying disk configuration |
US7039828B1 (en) | 2002-02-28 | 2006-05-02 | Network Appliance, Inc. | System and method for clustered failover without network support |
US7007046B2 (en) | 2002-03-19 | 2006-02-28 | Network Appliance, Inc. | Format for transmission file system information between a source and a destination |
US6983296B1 (en) | 2002-08-12 | 2006-01-03 | Network Appliance, Inc. | System and method for tracking modified files in a file system |
US7080223B2 (en) | 2002-10-15 | 2006-07-18 | International Business Machines Corporation | Apparatus and method to manage and copy computer files |
US7373366B1 (en) | 2005-06-10 | 2008-05-13 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume |
-
2002
- 2002-11-01 US US10/286,153 patent/US8041735B1/en active Active
-
2003
- 2003-10-30 CA CA2504340A patent/CA2504340C/en not_active Expired - Fee Related
- 2003-10-30 WO PCT/US2003/034495 patent/WO2004042618A2/en active Application Filing
- 2003-10-30 EP EP03776614A patent/EP1556793B1/en not_active Expired - Lifetime
- 2003-10-30 JP JP2004550258A patent/JP4480153B2/ja not_active Expired - Fee Related
- 2003-10-30 AU AU2003284377A patent/AU2003284377A1/en not_active Abandoned
-
2010
- 2010-02-01 JP JP2010020731A patent/JP2010108520A/ja active Pending
-
2011
- 2011-10-14 US US13/273,493 patent/US8788530B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20120036161A1 (en) | 2012-02-09 |
EP1556793B1 (en) | 2013-02-27 |
AU2003284377A1 (en) | 2004-06-07 |
US8041735B1 (en) | 2011-10-18 |
EP1556793A2 (en) | 2005-07-27 |
JP2006505071A (ja) | 2006-02-09 |
CA2504340A1 (en) | 2004-05-21 |
WO2004042618A2 (en) | 2004-05-21 |
US8788530B2 (en) | 2014-07-22 |
WO2004042618A3 (en) | 2004-12-09 |
CA2504340C (en) | 2016-01-05 |
JP2010108520A (ja) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4480153B2 (ja) | 分散ファイル・システムおよび方法 | |
US10248655B2 (en) | File storage system, cache appliance, and method | |
US6950833B2 (en) | Clustered filesystem | |
US8001222B2 (en) | Clustered filesystem with membership version support | |
AU2005207573B2 (en) | Geographically distributed clusters | |
US8311980B2 (en) | Namespace consistency for a wide-area file system | |
US7383463B2 (en) | Internet protocol based disaster recovery of a server | |
US5991771A (en) | Transaction synchronization in a disconnectable computer and network | |
US9275058B2 (en) | Relocation of metadata server with outstanding DMAPI requests | |
US20050289152A1 (en) | Method and apparatus for implementing a file system | |
US7475077B2 (en) | System and method for emulating a virtual boundary of a file system for data management at a fileset granularity | |
AU2005207572B2 (en) | Cluster database with remote data mirroring | |
US20030028514A1 (en) | Extended attribute caching in clustered filesystem | |
US20030140210A1 (en) | Dynamic and variable length extents | |
AU2005269315A1 (en) | Metadata management for fixed content distributed data storage | |
US20040153841A1 (en) | Failure hierarchy in a cluster filesystem | |
CA2227430C (en) | Transaction clash management in a disconnectable computer and network | |
AU2011265370B2 (en) | Metadata management for fixed content distributed data storage | |
Shillingsburg | Fault tolerance in the Pulsar cluster server | |
Abdala | {ota, naffouri, fanwar, mbilal}@ mit. edu December 6, 2002 | |
Johnson et al. | Designing Distributed Search Structures with Lazy Updates |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061023 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090731 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091030 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091109 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091126 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100311 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100315 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140326 Year of fee payment: 4 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |