JP2010140507A - 分散ファイルシステム及び分散ファイルシステムの作動方法 - Google Patents

分散ファイルシステム及び分散ファイルシステムの作動方法 Download PDF

Info

Publication number
JP2010140507A
JP2010140507A JP2010035003A JP2010035003A JP2010140507A JP 2010140507 A JP2010140507 A JP 2010140507A JP 2010035003 A JP2010035003 A JP 2010035003A JP 2010035003 A JP2010035003 A JP 2010035003A JP 2010140507 A JP2010140507 A JP 2010140507A
Authority
JP
Japan
Prior art keywords
file
subfile
mapping
falls
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010035003A
Other languages
English (en)
Other versions
JP4799669B2 (ja
Inventor
Walter Tichy
ヴァルター ティヒー
Florin Isaila
フローリン イサイラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Partec AG
Original Assignee
Partec AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Partec AG filed Critical Partec AG
Publication of JP2010140507A publication Critical patent/JP2010140507A/ja
Application granted granted Critical
Publication of JP4799669B2 publication Critical patent/JP4799669B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

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)
  • Multi Processors (AREA)
  • Remote Monitoring And Control Of Power-Distribution Networks (AREA)

Abstract

【課題】 コンピュータのクラスターに対する分散ファイルシステムを提供する。
【解決手段】 相互接続ネットワークによって接続された、複数の計算ノードと複数のI/Oノードとを有する分散ファイルシステムを提供し、システムに格納されたファイルの物理的及び論理的な区分の両方のための共通のデータ表現を使用するようになっており、この区分は、リニアにアドレス可能である。複数のI/Oノードと複数の計算ノードとを有する分散ファイルシステムの作動方法を提供し、ファイルを複数のI/Oノードに亘って分配された複数のサブファイルに区分し、ファイルをその上にビューを設定することによって論理的に区分し、ファイルの線形空間とサブファイルの線形空間との間のマッピングを計算し、ビュー及びサブファイル間の交差を計算し、データ演算を実行する。
【選択図】図1

Description

本発明は、コンピュータのクラスターに対する分散ファイルシステムを提供する方法、及びそのようなファイルシステムをもたらす装置に関する。
コンピュータプロセッサの処理速度のすさまじい高速化は、入力/出力(I/O)サブシステムをコンピュータのクラスターにおける障害として露出している。これは、特に、大容量のデータをディスク記憶装置からメモリに取り込むことを要求するアプリケーションの性能に影響を及ぼす。従って、性能に与えるそれらの影響を最小限にするために、I/O作動をできるだけ速く実行することが重要である。
分散ファイルシステム(DFS)は、ネットワーキング技術によって接続されたいくつかのコンピューティングノードの記憶容量を管理し、クライアントにファイルシステムのインタフェースを提供するファイルシステムである。ノードのクラスターは、コンピューティングノード及びI/Oノードという、重なる場合もしない場合もある二組に分けられる。ファイルは、一般にI/Oノードに亘って配布される。アプリケーションは、計算ノード上で実行される。
並列アプリケーションは、順次アプリケーションと違う方法でファイルにアクセスする。「UNIX(登録商標)」ファイルシステム、及びいくつかの分散ファイルシステムでさえも、ファイルシェアリングはほとんどないという前提で設計されたのに対して、並列アプリケーションは、通常はファイルに同時にアクセスする。これは、並列ファイルシステムのファイル構造が、ファイルに対する並列アクセスを可能にすべきであるだけでなく、スケーラブルであって、可能であれば計算と同じくらいスケーラブルであるべきであるということを意味する。
並列アプリケーションはまた、広い範囲のI/Oアクセスパターンを有する。同時に、それらは、クラスター上のファイルデータの配置に対して十分な程度の制御を有しない。
従って、それらは、クラスター上のファイルの物理的レイアウトと異なるパターンでアクセスする場合が多い。これは、いくつかの点で性能を阻害する可能性がある。
第1に、レイアウトが悪いと、I/Oノードのディスク上のデータの断片化を引き起こす可能性があり、アクセスの複雑なインデックス計算が必要になる。第2に、データの断片化により、ネットワーク上で少ない大きなメッセージを送る代わりに、多くの小さなメッセージを送ることになる。メッセージの集合化は可能であるが、集めたり分散したりするためのコストは無視できない。第3に、関連する処理のI/Oノードでのコンテンションによって過負荷になる可能性があり、並列処理の妨げになる可能性がある。第4に、I/Oノードのディスク上のデータの空間的局所性が悪いと、ディスクアクセスが順次以外のものに変わる。また、レイアウトが悪いと、ファイルブロック内の間違ったシェアリングの確率が増える。
特定のファイルレイアウトによって並列アプリケーションの性能が改善される場合があるが、同じレイアウトが別々のアクセスパターンによって使用されるべきである。任意のアクセスパターン及びファイルレイアウト間のマッピングの計算は、扱いにくいものになる場合がある。
並列I/Oアクセスパターン及びファイルアクセス特性のいくつかの研究が存在する。
特に、次のものは本発明を理解するのに関係がある。
Nils Nieuwejaar、David Kotz、Apratim Purakayastha、Carla Schlatter Ellis、Michael L.Best他著「並列科学的ワークロードのファイルアクセス特性」、並列及び分散システムに対する「IEEE」会報、7(10)、1996年10月(Nieuwejaar他)、
Evgenia Smirni及びDaniel A.Reed著「I/O集中並列アプリケーションのワークロード特性」、モデリング技術及びコンピュータ性能評価のためのツールに関する会議議事録、コンピュータ科学の「Springer−Verlag」講演ノート、1997年6月(Smirni他)、及び
Huseyin Simitici及びDaniel A.Reed著「論理的及び物理的並列I/Oパターンの比較」、高性能コンピューティングアプリケーションの国際ジャーナル、特別号(並列アプリケーションにおけるI/O)、12(3)、1998年(Simitici他)。
上述の文献から、単一アプリケーション中のいくつかのプロセッサ間のファイルシェアリングは標準的であり、一方で並列アプリケーション間の同時シェアリングは極めて少なく、並列I/Oはバースト状態であり、集中I/O作動の期間は計算と交替し、「MIMD」システムにおいては、ある程度、ファイル中の物理的な区分(パーティション)と異なるパターンでプロセッサ間のデータを論理的に区分(パーティショニング)する結果である、多くの小さなI/O要求が存在し、計算ノードは、交互的アクセスパターンでファイルにアクセスすることが多く、これは、I/Oノードでのデータの高いプロセス間空間的局所性をもたらすが、また、低いプロセス内空間的局所性ももたらす場合があり、並列アプリケーションは、ストライドされた、最終的にはネストされたストライドのアクセスパターンを使用し、計算ノードに亘って区分された多次元アレーの使用を示している、ということが結論付けられる。
通常、分散ファイルシステムの実行の中心部分はファイルサーバである。ファイルサーバとは、記憶容量リソースのプールを管理し、遠隔又はローカルのクライアントにファイルサービスを提供する処理である。ファイルサービスとは、クライアントがファイルサーバにサービス(例えば、読み取る、書き込む、シークする)を要求するためのインタフェースである。
分散ファイルシステムの設計目標の1つは、記憶リソースをネットワーク全体に亘って効率よく使用することである。アクセス時間が遅いために、ディスクは、非常に多くの場合にシステムの障害になる。「廉価ディスクの冗長アレー(RAID)」と呼ばれるシステムは、ディスクに並列にアクセスすることによってディスクの帯域幅を増すスケーラブルな1つの方法であって、データは、利用可能なディスクに亘って重複して配布され、ディスクの1つが故障した場合にリカバリと利用可能性のために冗長性が使用される。分散ファイルシステムは、高性能ネットワークの利用可能な全てのディスクを利用するためのソフトウエア「RAID」として実行することができる。
分散ファイルシステム実行の主要な目標の1つは、位置の透明性である。これは、クライアント及びサーバ間の対話が、システムのユーザに対して不可視であるべきであることを意味する。ユーザは、システム内の全ての記憶リソースとそれらの抽象化(ファイル)とを、それらがあたかもローカルであるように見るはずである。ファイルのパスを見て、そのファイルが遠隔か又はローカルであるかを識別することができるべきではない。
残念なことに、局所性を隠すことがローカルと遠隔のアクセス時間の差を隠すことにはならない。この問題を軽減するために、キャッシュ及びプリフェッチという2つの手法が広く使用される。
1つのマシンのシステムにおいては、キャッシュが使用されてローカルディスクアクセス時間が改善され、より高速のメモリに低速ディスクのコピーが作られる。補足的分散ファイルシステムのキャッシュは、遠隔リソースのローカルコピーを提供する役目を担う。
キャッシュにより、アクセスの時間的局所性を示すアプリケーションの性能が改善され、すなわち、プログラムにおいて、ブロックがアクセスされた状態で、近い将来にそれが再度アクセスされるという可能性が高い。これがほとんどのアプリケーションに当てはまることを性能測定は示している。
分散ファイルシステムにおいて、最も多いクライアント/サーバの設計を仮定すると、サーバディスクのいくつかのキャッシュのレベルは、クライアントの次のような観点から識別することができる。すなわち、
クライアントのメモリキャッシュ、
サーバのメモリキャッシュ、
他のクライアントのメモリキャッシュ、及び
クライアントのディスクキャッシュ、
である。高性能ネットワークが使用される場合、実際の技術の条件下においては、アクセス時間は、上述の第1から第4までのキャッシュレベルまで増加することになる。
キャッシュレベルは、互いに独立に又は協働して使用することができる。協働キャッシュにより、ローカルキャッシュ(第1レベル)によって満足されない要求が、別のキャッシュレベルにより満足され、最後だけはオリジナルリソースによって満足されることが可能になる。
読取りアクセスの場合は、キャッシュの唯一の制約は、キャッシュサイズである。次に、キャッシュが書き込まれる時、キャッシュの干渉性を確保するために余分の注意が払われるべきであり、すなわち、処理が任意のキャッシュ位置に書き込む場合、それに続くいかなるキャッシュの次の読取りもその変更が分るべきである。
上の定義は、まさしく「Unix」の作動が保証することである。1つのマシンのシステムは、それらが通常は処理間で共有される集中型ファイルシステムキャッシュを有するために、これを実施するのは簡単である。分散ファイルシステムにおいては、いくつかのキャッシュエンティティが同一コピーを包含することができ、1つのコピーの変更が他の更新又は無効化のいずれかを開始すべきであり、これは、相当なオーバーヘッドを招くことになる。干渉性プロトコルを必要としない、この手法の代替方法は、分散ファイルシステムの全てのキャッシュを1つの大きなキャッシュと見なし、複製を許可しないことである。しかし、この手法の欠点は、アクセス局所性を低減させることである。
「Unix」作動の実行のオーバーヘッドを減少させるために、緩和された作動が提案された。セッション作動においては、開かれた後でファイルに処理によって実行された全ての変更は、処理がファイルを閉じた後でのみ他の処理に対して可視にされることになる。同様であるがより細分化した考えがデータベースファイルシステムで使用され、制御命令の開始トランザクションと終了トランザクションとの間で行われた全ての変更は、最後の命令の実行が終了した後でのみ他の処理に対して可視になることになる。
プリフェッチは、近い将来アクセスされる可能性が非常に高いキャッシュデータのブロックにディスクから予め読み取ることを意味する。予測可能なアクセスパターンを有するアプリケーションは、プリフェッチ処理から最も恩恵を受けることができる。
利用可能なディスクから並行して予め読み取るために、分散ファイルシステムにおいては、並行プリフェッチ処理を使用することができる。例えば、ソフトウエア「RAID」は、ネットワーク内のディスクを均衡のとれた方法で使用することができる。積極的なプリフェッチ処理は、データを非常に早期にキャッシュに入れるために使用することができるが、これは、キャッシュ交換の選択を悪くする可能性があり、実質的にアクセスの回数を増加させる場合がある。言い換えれば、早過ぎてプリフェッチされたデータは、まだ必要なブロックがキャッシュから追い出される可能性を増大し、また、データがフェッチされるのが遅すぎる場合、アクセス処理は、I/Oが完了するのを待たなければならない。
キャッシュ及びプリフェッチの方針の間で最適な妥協点を見出すために、いくつかのアルゴリズムが提案されている。残念ながら、分散ファイルシステム内のキャッシュ間の協力が欠如しているために、それらは広く実行されておらず、試験もまだである。
ログ構造ファイルシステムの設計は、キャッシュが大部分の読取りを吸収し、ディスクのトラフィックが小さな書込みによって支配されるという、2つの主な仮定によって導きかれる。その結果、ディスク時間の大部分は、正しいセクターをシークするために費やされる。ログ構造ファイルシステムは、全ての書込みをログと呼ばれるメモリセグメントに集め、それが一杯になった時に1回の作動でそれをディスクに書き込むことにより、この2つの主要な問題に対処している。この手法は、小さな書込みに対する平均ディスク時間のマグニチュードを1桁改善する。
ログ構造ファイルシステムは、リカバリのためにチェックポイント戦略を使用する。故障の場合は、最後のチェックポイントがロードされて利用可能なログが実行される。
分散ファイルシステムは、この考えを引継ぎ、ソフトウエア「RAID」と組み合わせてそれを効率的に実行した。「NFS」として公知のネットワークファイルシステム用のプロトコルは、サン・マイクロシステムズ・インコーポレーテッドによって開発され、「コメントの要求「RFC」1094」に説明され、インターネットを通じて「http://www.faqs.org/rfcs/rfc1094.html」で利用可能である。「NFS」は、最も一般的な分散ファイルシステムである。「NFS」アーキテクチャの基本的なエンティティは、サーバとクライアントである。サーバは、処理状態を把握せず、主な仕事は、ローカルファイルシステムのエクスポートである。クライアントは、遠隔ディレクトリに、それらをマウントすることによってアクセスする。位置の透明性は保証される。
実行は、この場合はアクセスの局所性/遠隔性を隠すために使用される「Unix」仮想ファイルシステム(VFS)インタフェースに基づいている。クライアントがファイルにアクセスすると、適切な「VFS」機能に対する呼び出しが行われる。ファイルがローカルの場合、ローカルファイルシステムによって要求にサービス提供が為される。そうでなければ、要求を満たすためにサーバと接触がとられる。
「NFS」は制限された形態の協働キャッシュを使用する。サーバ及びクライアントは、両方ともキャッシュを有する。アクセスされたブロックが1つのクライアントのキャッシュ内に発見することができない場合、サーバのキャッシュ内が探索され、その時だけディスクから取り出される。残念なことに、ブロックは、それをディスクから取り出すよりも速いであろう他のクライアントのキャッシュ内では探索されない。
「NFS」の主な欠点は、キャッシュが非干渉性になる可能性があることである。クライアントがそのキャッシュを変更すると、その変更は、データブロックに対して遅くとも3秒後、及びディレクトリブロックに対して30秒後にサーバに送ることができる。従って、他のクライアントは、それまで変更を見ないことになる。この選択は、「DFS」ではファイル共有が稀であるという仮定に基づいている。
「NFS」サーバはまた、スケーラブルでないことについて批判されてきた。クライアントの数が増加すると、それらが飽和してシステムの障害になる。また、サーバ及びクライアントは無停止型でもない。それらの1つが故障すると、マニュアルで再開しなければならず、変更されたキャッシュの内容は失われる場合がある。
「NFS」は、空間的局所性に基づいて単純なプリフェッチポリシーを使用する(ブロックがアクセスされた時、隣接する次のブロックが近い将来必要になる可能性が非常に高い)。通常、クライアントは、現在アクセスしているブロックが得られた後に、ファイルの次の隣接ブロックを予め読み取る。
「ペタル」は、分散論理ディスクである。それは、物理的ディスクのプールを管理するために協働する記憶サーバの集合として設計される。ペタルは、記憶リソースの局所性/遠隔性を隠すカーネルドライバインタフェースを提供する。従って、全ての現存するファイルシステムは、その上で変更なしで実行することができる。
ペタルは、任意の構成要素、すなわち、サーバ、ディスク、及びネットワークの故障に耐え、それから透過的に回復することができる。それはまた、スケーラブルであり、システムに対して新しい記憶装置を透過的に追加/削除することができる。
「フランジパーニ」は、ペタルの上で実行される「DFS」である。いくつかの独立ファイルサーバは、ペタル分散ディスクを共有し、分散ロックサービスを使用して同期する。それらは、非協働的に「Unix」バッファキャッシュを使用する。システムは、スケーラブルであり、ファイルサーバは、システムに対して性能の劣化なく透過的に追加/削除することができる。
「ゼブラ」は、長構造ファイルシステム及び「RAID」という2つの考えを初めて組み合わせた「DFS」である。各クライアントは、常に自分自身のログに書き込む。ログが一杯になると、それはストライピングされ、このストライプは、別々の記憶マネージャに書き込まれ、マネージャは、次に、それらをディスクに並列に書き込むことができる。
サーバは、記憶マネージャによって記憶及び管理される、データに対するポインタを含む管理情報(メタデータ)に関してのみ責任を負う。サーバは、データ転送の義務から解放される。従って、それらは、小さなファイルの頻繁なアクセスの場合にだけ性能上の障害となる可能性がある。
ゼブラは、単一の記憶マネージャの故障に耐え、それから回復することができる。それはまた、システムクラッシュから回復するために、長構造ファイルシステムと同様にチェックポイント戦略を使用する。ファイルサーバは、そのメタデータを記憶マネージャに保ち、クラッシュ時にメタデータをそこから回復することができる。
「XFS」は、サーバなしのネットワークファイルシステムを提案し、最初に協働キャッシュを実行した。システムは、密接に協働するワークステーションから成り、全てのファイルシステムサービスをスケーラブルな方法で提供する。
ゼブラと同様に、「XFS」は、書込みの性能と信頼性を改善するためにログ構造ファイルシステムと「RAID」の考えとの組合せを使用する。ゼブラ と違って、「XFS」は、制御情報をファイルの細分性でシステムに亘って配布し、アクセス特性を改善するために協働キャッシュを使用する。ブロックがローカルキャッシュで発見されない時はいつでも、それは、他のクライアントで探索し、最後の解決手段としてのみディスクから取り込まれる。局所性は、アクセスされる可能性が高いマシンのキャッシュにブロックを保つように試みることによって促進される。キャッシュ交換ポリシーにおいては、複数のコピーを有するブロックには、非複製ブロックに対して、交換される優先権がある。「XFS」は、アプリケーションに対して「Unix」作動を保証するトークンベースのキャッシュ整合性スキームを使用する。
ファイルシステムの古典的なサーバ/クライアント設計の制約は、サーバマシンが急速に障害になる可能性があるということである。提案された解決法の1つは、記憶装置をホストから切り離し、それを高性能ネットワークに取り付けることであった。サーバは、データ転送の義務から解放され、一方、スマート記憶システム(専用プロセッサを有する)は、転送及び最適配置を含むデータ管理に関して責任を負う。
「ネットワーク取付け安全ディスク(NASDA)」プロジェクトは、ファイル管理をファイル記憶から分離することを目標にしている。ファイルサーバの責任は、アクセスポリシー及び決定に低減される。従って、ファイルを開くためにクライアントがサーバに接触(通信)する時、クライアントは、認可トークンを受け取り、サーバをバイパスしてディスクにアクセスするために次にそれを使用することができる。
モバイルコンピューティングがますます進展し、頻繁に接続性が悪くなるので、脆弱に接続されたサービスに対する必要性を生み出した。クライアントは、接続が切れた時、又は接続が弱い時に作業を続け、復帰の後でそれ自体及びシステムを更新することができるべきである。コーダは「DFS」であり、モバイルファイルアクセスのために弱い接続を利用する。積極的プリフェッチ(蓄積)は、切断を予期してデータを収集するために使用される。間違ったデータが蓄積された場合、切断された時に進行が妨げられる。別の欠点は、キャッシュの干渉性問題がより起こりやすく、それらがユーザの介入を要求する場合があることである。残念なことに、上述の欠点は、両方ともシステム設計では解決することができず、接続性をもたらすことによって解決される。
多くの分散ファイルシステムの実行は、最も一般的なアクセスパターン及びハードウエア構成を仮定しており、誰にでも使用されるべき一般的な機構及びポリシーを実行する。
これにより、実行仮定の下で作動していないアプリケーションの性能が犠牲にされることになる。アプリケーションにそれら自体のポリシーを実施する可能性を与えるか、又はポリシーの交換を容易にすると、システムの性能が向上するであろう。外部カーネル及びマイクロカーネルは、実行者がリソース管理をユーザスペースに移動し、モノリシックカーネルと比較して比較的容易なシステム機能性の増強を提供することにより、アプリケーションの必要性に対してポリシーを容易に調整することを可能にする単なる2つの提案である。「DFS」の場合の局所性においては、キャッシュ及びプリフェッチポリシーは、アプリケーションの必要性を考慮に入れた実行から最も利益を得ることができると考えられる。
Nils Nieuwejaar、David Kotz、Apratim Purakayastha、Carla Schlatter Ellis、Michael L.Best他著「並列科学的ワークロードのファイルアクセス特性」、並列及び分散システムに対する「IEEE」会報、7(10)、1996年10月(Nieuwejaar他) Evgenia Smirni及びDaniel A.Reed著「I/O集中並列アプリケーションのワークロード特性」、モデリング技術及びコンピュータ性能評価のためのツールに関する会議議事録、コンピュータ科学の「Springer−Verlag」講演ノート、1997年6月(Smirni他) Huseyin Simitici及びDaniel A.Reed著「論理的及び物理的並列I/Oパターンの比較」、高性能コンピューティングアプリケーションの国際ジャーナル、特別号(並列アプリケーションにおけるI/O)、12(3)、1998年(Simitici他) Shankar Ramaswamy及びPrithviraj Banerjee著「分散メモリマルチコンピュータ用の効率的アレー再配布ルーチンの自動生成」、「フロンティア95」会報、超並列計算のフロンティアに関する第5回シンポジウム、マクリーン、1995年2月(Ramaswamy他)
従って、コンピュータのクラスターに対する分散ファイルシステムを提供する方法、及びそのようなファイルシステムをもたらす装置が必要である。
本発明は、相互接続ネットワークによって接続された、複数の計算ノードと複数の入力/出力(I/O)ノードとを有する分散ファイルシステムを提供し、本システムは、システムに格納されたファイルの物理的及び論理的な区分の両方のための共通のデータ表現を使用するようになっており、この区分は、線形的(リニア)にアドレス可能である。
本システムは、複数のI/Oノードからファイルに関する情報を集め、このI/Oノードを整合性のある状態に保持するようになっているメタデータマネージャを含むことができる。好ましくは、計算ノードは、ファイル作成、ファイルオープン、ファイルクローズ、及びメタデータに関わる要求のリストから選択されたイベントの場合に、メタデータマネージャと接触(通信)するようになっている。
本システムは、好ましくは、各計算ノードが、ファイルの線形空間(リニア空間)とサブファイルの線形空間(リニア空間)との間のマッピングの計算と、ビュー及びサブファイル間の交差アルゴリズムの実行と、データ演算の実行とを含む複数のファイル操作を実行するようにプログラムされるようなシステムである。
本システムの好ましい実施形態においては、ファイル構造は、そのコアに「プロセッサ指標付き標識ラインセグメント群(PITFALLS)」と呼ばれる通常のデータ分散のための表現を有し、これは、「フロンティア95」会報におけるShankar Ramaswamy及びPrithviraj Banerjee著「分散メモリマルチコンピュータ用の効率的アレー再配布ルーチンの自動生成」、超並列計算のフロンティアに関する第5回シンポジウム、マクリーン、1995年2月(Ramaswamy他)に詳しく紹介されている。
「PITFALLS」は、イリノイ州立大学において、効率的アレー再配布(再分配)ルーチンの自動生成のために「PARADIGM」コンパイラに使用されていた。「PITFALLS」表現は、より多くのアクセス形式を表現することができるように拡張される。例えば、全ての「MPI」データ形式は、本発明の表示を使用して表現することができる。
本発明は、更に、複数の入力/出力(I/O)ノードと複数の計算ノードとを有する分散ファイルシステムの作動方法を提供し、本方法は、ファイルを複数のI/Oノードのそれぞれに亘って配布された(Distributed)複数のサブファイルに区分する段階と、ファイルをその上にビューを設定することによって論理的に区分する段階と、このファイルの線形空間(linear space)とサブファイルの線形空間との間のマッピングを計算する段階と、ビュー及びサブファイル間の交差(Intersection)を計算する段階と、データ演算を実行する段階とを含む。
本発明はまた、複数の入力/出力(I/O)ノードと複数の計算ノードとを有する分散ファイルシステムを作動する方法を提供し、本方法は、ファイルをサブファイルに物理的に区分する段階と、ファイルをビューに論理的に区分する段階と、サブファイル及びビュー間のマッピング機能(Mapping Function)を実行する段階と、区分間でデータ再配布(Data Redistribution)を実行する段階とを含む。
本発明のシステム内でプログラムすることができる、本発明の方法を実行するためのアルゴリズムは、ファイルの線形空間からサブファイルの線形空間上への位置xのマッピングを計算するためのアルゴリズムと、サブファイルの線形空間からファイルまでのマッピングを計算するためのアルゴリズムと、サブファイル及びビュー間のマッピングを計算するためのアルゴリズムと、ラインセグメント群f1及びf2の交差を表すための一組のネストされたラインセグメント群を計算するためのアルゴリズムと、二組のネストされたラインセグメント群S1及びS2の交差を計算するためのアルゴリズムと、各交差する組の各々によって記述される線形空間上への二組のラインセグメント群の交差の投射を計算するためのアルゴリズムとを含む。
ここで、本発明の好ましい実施形態を添付図面を参照して単に例示的に以下に説明する。
本発明は、アプリケーションがファイル上に任意のビューを設定することを可能にする。この並列ファイルシステムは、例えばn次元アレー分布のような、通常のアクセスパターン及びファイルレイアウトを表現するコンパクトな方法を提供する。それはまた、レイアウト間の便利な変換を可能にする。
本発明の分散ファイルシステムの概略図である。 「FALLS」例(5,7,7,3)を示す図である。 ネストされた「FALLS」例を示す図である。 ネストされた「FALLS」のツリー表示を示す図である。 「PITFALLS」例(2,3,6,4,2,3)を示す図である。 ネストされた「PITFALLS」例を示す図である。 ファイル区分の例を示す図である。 更に別のファイル区分の例を示す図である。 I/Oノード上のサブファイル割当の例を示す図である。 ビュー/サブファイルマッピングを示す図である。 「FALLS」交差アルゴリズムを概略的に示す図である。 更に別の「FALLS」例(3,5,6,5)を示す図である。 ネストされた「FALLS」交差アルゴリズムを概略的に示す図である。 本発明の書込み作動を概略的に示す図である。 マトリックス区分の例を示す図である。
全体的に10で示す分散ファイルシステムを図1に概略的に示す。システム10は、相互接続ネットワーク16によって接続された、複数の計算ノード12と複数のI/Oノード14とを有する。
図2を参照すると、ラインセグメント(FALLS)18群の例が示されている。ラインセグメント(LS)、例えばラインセグメント20は、一対の数(l,r)によって定義され、lで始まりrで終了するファイルの連続した部分を記述する。
ラインセグメント(FALLS)群は、タプル(共有メモリ空間に保存されたメッセージ)(l,r,s,n)であり、等間隔に配置された同サイズのn個のラインセグメントの組を表す。図2に示すように、第1のLS20の左側のインデックスlは5であり、第1のLSの右側のインデックスrは7で、ストライドと呼ばれsで表される2つのLS毎の間の距離は7である。図2において、nは3に等しい。ラインセグメント(l,r)は、「FALLS」(l,r,−,1)と表現することができる.図2は、従って、「FALLS」(5,7,7,3)の例を示す。
ネストされた「FALLS」は、タプル(l,r,s,n,S)であり、一組の内側「FALLS」Sと共に、外側「FALLS」と呼ばれる「FALLS」(l,r,s,n)を表す。内側「FALLS」sは、lとrの間に配置され、lを基準にする。ネストされた「FALLS」を構成する時、外側「FALLS」から始めて内側「FALLS」にするのが賢明である。図3はネストされた「FALLS」(0,3,8,2,{0,0,2,2,O})の例を示す。外側「FALLS」22は、太線24で示されている。
ネストされた「FALLS」はまた、ツリーでも表すことができる。ツリーの各ノードは「FALLS」fを含み、その子は、fの内側「FALLS」である。図4は、ネストされた「FALLS」(0,15,32,2,{(0,0,4,2,O),(8,9,4,2,O)})を示す。
一組のネストされた「FALLS」は、ラインセグメントの集合として見られ、ファイルの部分集合をコンパクトに表す。ファイルのx番目のバイトは、Sのラインセグメントの1つに置かれる場合、一組のネストされた「FALLS」Sに属する。
一組の「FALLS」は、パラメータ化された「FALLS」である「PITFALLS」表示を使用して簡単に表現することができ、パラメータは、プロセッサ(I/Oノード)番号である。「PITFALLS」は、タプル(l、r、s、n、d、p)から成り、等間隔に配置されたp個の「FALLS」の組を表し、始めの2つの連続する「FALLS」間の距離は、d:(l+id,r+id,s,n)であり、i=0,p−1である。「FALLS」(l,r,s,n)は、「PITFALLS」(l,r,s,n,−,1)、及び、ラインセグメント(l,r)は、(l,r,−,1,−,1)と表すことができる。図5は、「PITFALLS」(2,3,6,4,2,3)を示し、これは、d=2:(2,3,6,4),(4,5,6,4)、及び(6,7,6,4)の間隔を置いて配置されたp=3「FALLS」のコンパクトな表示である。
ネストされた「PITFALLS」は、一組の内側「PITFALLS」Sと共に、外側「PITFALLS」と呼ばれる「PITFALLS」(l,r,s,n,d,p,S)を表すタプル(l,r,s,n,d,p,S)である。外側「PITFALLS」は、p個の外側「FALLS」(l+id,r+id,s,n)をコンパクトに表し、i=0,p−1である。各「FALLS」は、l+idとr+idとの間にl+idに対するインデックスを有する一組の内側「PITFALLS」を含む。ネストされた「PITFALLS」を構成する時、外側「PITFALLS」から始めて内側「PITFALLS」にするのが賢明である。図6は、4個のI/Oノード/プロセッサに亘る4×4マトリックスの二次元ブロックの周期的分布を表すネストされた「PITFALLS」の一例を示す。この分布は、{(0,3,8,2,4,2,{((0,0,2,2,1,2,O))})}のようにコンパクトに表される。外側「PITFALLS」は、2つの「FALLS」の(0,3,8,2)と(4,7,8,2)のコンパクトな表示であり、各々、内側「PITFALLS」(0,0,2,2,1,2)を含む。
好ましい実施形態は、I/Oノード上へのファイルの物理的区分、計算ノード上へのファイルの論理的区分、及び、それらの間のマッピングを表すために、ネストされた「PITFALLS」の組を使用する。しかし、プログラミングインタフェースが、ネストされた「PITFALLS」の複雑性を回避する。論理的及び物理的配布の指定は、「高性能フォートラン」と同様の方法で実行することができる。
データ表現のコアとしてネストされた「PITFALLS」を選択する主な理由は3つある。第1に、柔軟性が十分でデータの任意の配布を表現することができる。
例えば、一組のネストされた「PITFALLS」を使用して、任意の「MPI」データタイプを表現することができる。これは、極端な場合に、ネストされた「PITFALLS」がn=1及びp=1の単なるラインセグメントであるという事実のためである。従って、一組のネストされた「PITFALLS」は、不規則なパターンも表すことができる。第2に、それらは、複雑で規則的な配布を表現するコンパクトな方法を提供する。例えば、いくつかのI/Oノード又はプロセッサ上の多次元アレー分布は、ネストされた「PITFALLS」として単純に表現することができる。第3に、1つの配布を別の配布に変換する効率のよいアルゴリズムがある。例えば、Ramaswamy他の文献は、「PITFALLS」形式で表現されたデータの効率の良い多次元アレー再配布を実行するアルゴリズムの記述を含む。このアルゴリズムから始め、データ表現としてネストされた「PITFALLS」の組を使用して、任意の再配布を実行するアルゴリズムが設計された。
この場合、1つの配布の別の配布への変換は、2つのシナリオにおいて有用である。第1に、アプリケーションの要求に応じて物理的区分(I/Oノード及びそのディスク上へのデータの配布)を論理的区分に変換し、またその逆の変換も為される。これは、物理的区分が正確にアプリケーションの要求に対応しない時の場合である。第2に、2つの物理的配布間での変換が許される。これは、アプリケーションが現存する配布からよりも新しい物理的配布から実行時に更に利益を得る必要がある時に有用となり得る。
「FALLS」fのブロック長は、LENfで表され、fsブロックでのバイト数を表す。
LENf=rf−lf+1 (1)
例えば、図3のネストされた「FALLS」の外側「FALLS」のブロック長は4であり、内側「FALLS」のブロック長は1である。
ネストされた「FALLS」は、ファイルの部分集合を表す一組のインデックスである。ネストされた「FALLS」fのサイズは、fで定義される部分集合のバイト数である。一組のネストされた「FALLS」Sのサイズは、その要素全てのサイズの総計である。以下に示す2つの相互回帰方程式は、上述の2つの定義を形式的に表すものである。
Figure 2010140507
例えば、図3のネストされた「FALLS」のサイズは4である。
一組の「FALLS」は、lとrの間にホールがない領域を記述する場合は、lとrの間で連続であると呼ばれる。例えば、図2の「FALLS」を含む組は、11と14の間で連続であるが、3と8の間で連続ではない。
好ましい実施形態は、クラスターのノードを計算ノード及びI/Oノードという、重なるか又は重ならなくてもよい二組に区分する。I/Oノードは、ファイルデータを保存する。アプリケーションは、計算ノード上で作動する。また、ファイルのメタデータを集中させるメタデータマネージャも1つある。
好ましい実施形態におけるファイルは、線形的にアドレス可能なバイトシーケンスである。ファイルは、サブファイルに物理的に区分することができ、ビューに論理的に区分することができる。ファイルは、1つ又はそれ以上の重ならない線形的にアドレス可能なサブファイルに物理的に区分することができる。区分は、ファイルの変位及び区分パターンによって記述される。変位は、ファイルの始まりに対する絶対バイト位置である。区分パターンPは、各々がサブファイルを形成するn組のネストされた「FALLS」S0,S1,...,Sn-1の和集合から成る。
Figure 2010140507
この集合は、ファイルの非オーバーラップ領域を記述すべきである。更に、Pは、ファイルの連続領域を記述すべきである。区分パターンは、サブファイル内のサブファイル対の位置上にファイルの各バイトを独特にマッピングし、変位から始めてファイルの線形空間を通して繰り返し適用される。
区分パターンPのサイズをそのネストされた「FALLS」の全てのサイズの総計として定義する。
Figure 2010140507
図7は、変位2を有し、「FALLS」(0,1.6.1.O)、(2,3,6,1、O)、及び(4,5,6,1,O)として定義された3つのサブファイルに物理的に区分されたファイルを示す。区分パターンのサイズは6である。矢印は、ファイルの線形空間からサブファイルの線形空間へのマッピングを示す。ビュー内のファイルの論理的区分のために同じ機構が適用される。
ネストされた「PITFALLS」を使用する通常の区分の場合、ファイルのそのサブファイル上への区分パターンは、よりコンパクトに表現することができる。図8は、2つの例によってファイル構成を示す。図8(a)の例においては、ファイルは、変位2に対して「PITFALLS」(0,1,−,1,2,3,O)を使用することによって作り出された3つのサブファイルから成る。これは、変位2で3つのサブファイルで構成されたファイルを表す。ファイルは、サブファイル上に円形ロビン状に配置される。
図8(b)の例は、ネストされた「PITFALLS」(0,3,−,1,4,2,{((0,0,2,2,1,2,O))})を使用して構築された4つのサブファイルから成るファイルを示す。これは、サブファイルにおけるファイルの二次元ブロック循環配布を示す。
nがファイルに割り当てられたI/Oノードの数で、bがファイルブロックのサイズとすると、ファイルブロックの円形ロビン状配布は、「PITFALLS」(0,b−1,−,1,b,n,O)で表される。この表示は、ファイルをn個のサブファイルに区分する。それらは、各々、別のI/Oノード上にあることができる。
サブファイルは、単一のI/Oノードで連続して書き込まれるか、又はいくつかのI/Oノードに分散されるかのいずれかである。
サブファイルの数がI/Oノードの数を超える場合、各サブファイルは、単一のI/Oノードで連続して書き込まれる。サブファイルは、I/Oノードに円形ロビン状に割り当てられる。図9は、4つのサブファイルで構成され、2つのI/Oノードに書き込まれたファイルを示す。サブファイル0と2は、I/Oノード0に割り当てられ、それに対して、サブファイル1と3は、I/Oノード1に割り当てられる。
ファイルのサブファイル数がI/Oノード数よりも小さい場合、サブファイルは、接続をはずされたI/Oノードの組にデフォルトで分散される。この手法は、ファイル内の並列性を最大にして、全てのI/Oノードの集合帯域幅をアプリケーションが利用することを可能にする。例えば、単一サブファイルの構造を有するファイルは,そのデータを全てのI/Oノード上に円形ロビン状に配布することができる。図9(b)の別の例は、2つのサブファイルで構成され、4つのI/Oノード上に保存されたファイルを示す。2つのサブファイルは、各々、2つのI/Oノードに亘って円形ロビン状にストライピングされる。
物理的な区分は、非常に柔軟性があるが、同じファイルレイアウトに関するアプリケーションの要求は違う場合がある。従って、アプリケーションは、ビューを設定することによってファイルを論理的に区分することができる。ビューは、線形的にアドレス可能なバイトシーケンスであり、開いているファイルのデータの部分集合上にマップされる。アプリケーションは、ファイルを開くと、全体のファイルに関するビューをデフォルトで保持する。次に、それは、それ自身の必要に応じてビューを変更することができる。ビューを使用する主な利点は、複雑なインデックスの計算をすることからプログラマーを解放することである。ビューが設定された状態で、アプリケーションは、必要とされるデータセットの論理的に連続したビューを保持し、通常のファイルにアクセスするのと同じようにそのビューにアクセスすることができる。
ビューを設定すると、ファイルの論理的区分及び物理的区分間のマッピングを早期に計算する機会が得られる。マッピングは、次に、メッセージ内に又はそれからデータを収集/分散するために読取り/書込み演算で使用される。この手法の利点は、計算のアクセスインデックスのオーバーヘッドがビュー設定の時に一度だけ費やされることである。ビューはまた、オペレーティングシステムに対するヒントとして見ることができる。それらは、実際に可能性のある将来のアクセスパターンを開示し、I/Oのスケジューリング、キャッシュ、及びプリフェッチポリシーによって使用される。例えば、これらのヒントは、ディスク要求の整理、ディスク上のファイルブロックの配置、ネットワークメッセージの最適サイズの決定、バッファキャッシュの交換ポリシーなどを助けることができる。
アプリケーションの論理的区分は、ファイルのサブファイルへの物理的区分と同じではないかもしれない。従って、ビューが設定される度にビュー及びファイル間の直接のマッピングが計算されるべきである。図10(a)は、「PITFALLS」(0,1,4,2,1,2,O)を使用した、ファイルの2つのサブファイルへの区分を示す。図10(b)は、物理的区分と異なる2つの計算ノードによるファイルの論理的区分を示す。ノード0は、「PITFALLS」(1,2,4,2,−,1,O)とノード1(3,4,4,2,−,1,O)とを使用する。図10(c)は、論理的区分及び物理的区分間の直接マッピングを示す。
例えば、多次元アレー分布のような通常の配布の場合に、直接マッピング計算を効率的にするために、Ramaswamy他によって記述されたアレーの再配布アルゴリズムが使用される。このアルゴリズムにおいては、2つの通常の配布は、「PITFALLS」として表され、それらの交差が計算される。交差は、1つの配布の他の配布上へのマッピングを表す。ネストされた「PITFALLS」の組の任意の交差を計算するために、アルゴリズムは変更される。ビューとサブファイルは、両方ともネストされた「PITFALLS」の組として表すので、図9(c)に示すように直接マッピングを表すそれらの間の交差を計算するためにこのアルゴリズムが使用される。
アクセスパターンとファイルのレイアウトとが適合しない場合、直接マッピングにより、小さなメッセージがネットワーク全体に亘って送られることになるであろう。より小さなメッセージを単一メッセージに融合させるために、直接マッピングは、ビュー及びサブファイルの間でビューマッピングとサブファイルマッピングという2つの部分に区分される。
ビューマッピングは、ネットワークがビューデータを転送するために計算ノードによって使用される、所定のサブファイルに対するビューの線形バッファ上へのマッピングである。サブファイルのマッピングは、サブファイルデータのネットワーク転送のためにI/Oノードによって使用される、所定のビューに対するサブファイルの線形バッファ上へのマッピングである。図10(d)は、図10(c)の直接マッピングがどのようにビューマッピングとサブファイルマッピングとに区分されるかを示すものである。ビューマッピング及びサブファイルマッピングは、ビューが設定された後に計算ノードで計算される。
ビューマッピングは、計算ノードで保存され、サブファイルマッピングは、サブファイルがあるI/Oノードに送られる。
ビュー及びサブファイルマッピングは、計算ノードとI/Oノードとの間でビュー/サブファイルの不連続領域を転送すべきである場合にだけ必要である。それらは、ビューの設定時に予め計算され、必要に応じて分散/収集演算でアクセス時間によって使用される。そうでなければ、転送は、再複製することなく行われる。例えば、ビューの連続する領域がサブファイル上に連続してマップされる場合、データを融合させるための補助バッファは必要ない。
データの読取り及び書込みは、2段階作動と見ることができる。第1の段階は、上述のマッピングの予備計算によって表される。第2の段階は、効果的なデータの読取り又は書込みである。
効果的なデータの読取り及び書込みは、ビュー上で行われ、第1段階で予め計算されたマッピングを使用する。アプリケーションがファイルにバッファを書込みたい場合、次の段階が行われる。すなわち、(a)関連する全てのサブファイルに対して、ビューマッピングを使用して単一メッセージのビューからデータを収集する、(b)メッセージがI/Oノードに送られる、(c)I/Oノードは、データをサブファイル上に書き込むためにサブファイルマッピングを使用する。データ読取りの時は、逆の処理が行われる。例えば、図10(d)において、既にビューを設定した計算ノード0は、4つの要素のバッファを1から4までのビューに書き込む。サブファイル0に対するビューマッピングがバイト2及び4をメッセージに融合させるために使用され、これは、サブファイル0のI/Oノードに送られる。サブファイル0のI/Oノードにおいては、ビュー0に対するサブファイルマッピングは、アドレス3及び5においてデータを書き込むために使用される。アドレス0及び2においてサブファイル1に書き込まれるビュー0のバイト1及び3に対して同じ処理が行われる。
本発明の手法の効率を実証するために、「LINUX」上で実行される実験的な並列ファイルシステムを構築し、それを完全にユーザレベルで実施した。
好ましい実施形態は、メタデータマネージャ、I/Oサーバ、及びI/Oライブラリの3つの主要な構成要素を有する。クラスターの各ノードは、計算ノード、I/Oサーバ、又はその両方(パートタイムI/Oノード)の役割を果たすことができるが、唯一のノードのみがメタデータマネージャであることができる。
並列ファイルシステムで作動する1つのメタデータマネージャが存在する。このメタデータマネージャは、ファイルに関する情報をI/Oノードから周期的又は要求によって収集し、それらを安定した状態で保存する。それはまた、ファイルのメタデータに関する要求によるサービスを計算ノードに提供する。データ転送には、メタデータマネージャは関わらない。
メタデータは、ファイル構造(サブファイルへのファイルの区分、ファイルが書き込まれるI/Oサーバ)、ファイルサイズ、作成、及び変更時間などのようなファイルに関する情報を表す。
メタデータマネージャは、ファイル作成、オープン、クローズ、又はファイルのメタデータに関わる任意の要求時に計算ノードによって接触される。
ファイルが作り出され、計算ノードがファイルに対するレイアウトを指定しない場合、デフォルトのレイアウト(全てのI/Oノードに亘って円形ロビン状の形態でファイルブロックをストライピングする)が選択される。ファイルのレイアウトが指定されると、それがメタデータに保存される。それに続く各再オープンは、固有のファイル記述子と共にレイアウト情報を検索することになる。
並列ファイルシステム内の各I/Oノード上で作動するI/Oサーバが1つ存在する。
I/Oサーバの主なタスクは、サブファイルに対するデータの書込み及び読取りである。計算ノード及びI/Oサーバ間の接続は、ビューの設定において、又は予めビューが設定されていない場合は最初のアクセスにおいて確立される。ビューが設定されると、I/Oサーバは、ビューのサブファイルマッピングを受け取り、それは、上述の通り、将来のアクセスのために使用される。I/Oサーバは、メタデータを各サブファイルに関して保存し、要求に応じてそれをメタデータマネージャに配信する。
各計算ノードは、ファイルシステム上の作動をI/Oライブラリを使用して指定する。
I/Oライブラリは、「UNIX」標準ファイルシステムインタフェースを実行する。この時、それはユーザレベルで実行される。計算ノードとメタデータマネージャ又はI/Oサーバとの間の通信は、ライブラリによってアプリケーションから隠される。
アプリケーションは、標準「UNIX」の「ioctl」作動のユーザレベルの変形を使用して、ファイルのレイアウトを設定することができる。レイアウトの設定は、「create」コールに従わなければならない。レイアウトは、メタデータマネージャで送られるが、計算ノードでも保存される。
ファイル上へのビューの設定はまた、「ioctl」によって行われる。上述の通り、これは、ビュー及びサブファイルマッピングが計算される時である。サブファイルマッピングは、対応するI/Oノードに送られ、一方、ビューマッピングは、計算ノードで保存される。
一組のネストされた「FALLS」Sによって記述されたサブファイル/ビューが与えられると、ファイルの線形空間とサブファイルの線形空間との間のマッピングを計算する2つの関数MAPS(x)及びMAPS -1(x)を構築する方法がここで説明される。例えば、サブファイルが図7のようにネストされた「FALLS」{(2,3,6,1,O)}の組によって記述されるとすれば、ファイルの10番目のバイトは、サブファイル(MAPS(10)=2)の第2のバイト上にマップされるか、又はその逆(MAPS -1(2)=10)である。
MAPS(x)は、ファイルの線形空間からSによって定義されたサブファイルの線形空間上への位置xのマッピングを計算し、Sは、区分パターンPに属する。MAPS(x)は、現在の区分パターンの始めのマップ値と区分パターン内の位置のマップとの総計である。
MAPS(x)
1:((x−displ) div SIZEP)SIZES+MAP−AUXS((x−displ) mod SIZEP
MAP−AUXS(x)は、一組のネストされた「FALLS」に対するファイル/サブファイルマッピングを計算する。MAP−AUXS(x)の行1は、xがマップされるSのネストされた「FALLS」jを特定する。返されたマップ値(行2)は、「FALLS」の全サイズとfjの始めでlfjに対するfj上へのマッピングとの総計である。
MAP−AUXS(x)
1:j←min{k|x>lfk
Figure 2010140507
MAP−AUXf(x)は、ネストされた「FALLS」fによって記述された線形空間上へファイルの位置xをマップする。返される値は、fの以前のブロックのサイズと現在のブロックの始まりに対する内側「FALLS」の組上へのマッピングとの総計である。
MAP−AUXf(x)
1:If If=O then
2:return(x div sf)LENf+x mod sf
3:else
4:return(x div sf)SIZEIf+MAP−AUXIf(x mod sf
5:end if
例えば、図7のネストされた「FALLS」S=(0,1,6,1,O)によって記述されたサブファイルに対して、ファイル/サブファイルマッピングは、次の関数によって計算される。
MAPS(x)=2((x−2) div 6)+(x−2) mod 6 (6)
MAPS(x)は、xがSのラインセグメントの1つに属する場合のみ、Sによって定義されたサブファイル上へのxのマッピングを計算することに注意すべきである。例えば、図7において、ファイルの5番目のバイトは、サブファイル0上でマップされない。しかし、所定のサブファイル上に直接マップする、ファイルの次の又は以前のバイトのいずれかのマッピングを計算するために、MAP−AUXfを僅かに変更することは可能である。この考えは、xがfの任意のブロックの外側に位置する時に検知し、MAP−AUXfの本体を実行する前に、xを現在のストライドの終端(次のバイトマッピング)か、又は以前のブロックの終端(以前のバイトのマッピング)まで移動させることである。図7の場合、サブファイル0上へのファイルオフセット5の以前のマップは、サブファイルオフセット1であり、次のマップは、サブファイルオフセット2である。
Figure 2010140507
は、Sで記述されたサブファイルの線形空間からファイルへのマッピングを、現在の区分パターンの開始位置と現在の区分パターン内の位置との総計として計算する。
Figure 2010140507

Figure 2010140507
Figure 2010140507
は、xが配置されたFALLSfj∈Sを探す。結果はlfjと、fjの開始位置と、残りのオフセットのfj内のマッピングとの総計である。
Figure 2010140507

Figure 2010140507

Figure 2010140507
Figure 2010140507
は、ネストされた「FALLS」fによって記述された線形空間の位置xをファイル上にマップする。結果は、fの内側「FALLS」の開始位置のマッピングと、内側「FALLS」上の残りの位置のマッピングとの総計である。
Figure 2010140507
1:If If=O then
2:return(x div LENf)sf+x mod LENf
3:else
Figure 2010140507
5:end if
例えば、図7のネストされた「FALLS」S=(0,1,6,2,O)によって記述されたビューの場合、サブファイル/ファイルマッピングは、次の関数によって計算される。
Figure 2010140507
サブファイルS及びビューVが与えられると、S及びV間のxの直接マッピングは、
Figure 2010140507
として計算される。例えば、図10(b)において、サブファイル上へのビューオフセット4のマッピングは、
Figure 2010140507
である。
Figure 2010140507
は、実際に、同じSに関してMAPSの逆を表すことが分る。
Figure 2010140507
その結果、論理的区分及び物理的区分が同じ場合、各ビューは、正確にサブファイル上にマップされる。従って、全ての連続するビューのアクセスは、連続するサブファイルのアクセスに変わる。これは、所定の論理的分布に対して最適の物理的分布を表す。
好ましい実施形態は、ネストされた「FALLS」の組を使用してビュー及びサブファイルの区分の両方を表す。ファイルの線形空間内の一組のインデックスを表すネストされた「FALLS」の各組は、ファイルの部分集合を記述する。ビューを通してファイルデータにアクセスすることにより、アクセスされた領域は、いくつかのサブファイル上にマップされるかもしれない。従って、データを正しいサブファイルに再配布するために、ビューと各サブファイルとの間の交差が演算されるべきである。以下に説明する交差アルゴリズムは、ネストされた「FALLS」の二組の表示に共通するデータを表すのに使用することができるネストされた「FALLS」の組を計算する。ネストされた「FALLS」のインデックスは、ファイルの線形空間において与えられる。これらのインデックスの組は、ビュー又はサブファイルの線形空間上に投影することができる。
以下のネストされた「FALLS」交差アルゴリズムは、Ramaswamy他による「FALLS」交差アルゴリズムである「INTERSECT−FALLS(f1,f2)」に基づいており、これは、f1及びf2の交差を表すネストされた「FALLS」の組を効率的に計算する。
図11は、(a)INTERSECT−FALLS((0,7,16,2),(0,3,8,4))=(0,3,16,2)と、(b)INTERSECT−FALLS((0,1,4,1),(0,0,2,2))=(0,0,4,1)という2つの例を示す。
Ramaswamy他の方法においては、アレー再配布に「INTERSECT−FALLS」が使用される。n次元アレーの古い配布及び新しい配布は、各次元上の「FALLS」として表され、各次元上で交差が別々に実行される。好ましい実施形態の狙いが任意の再配布を提供することなので、多次元アレー再配布は適していない。任意の再配布を可能にし、同時に多次元アレー再配布を効率的に実行するアルゴリズムが要求される。
以下の手順は、最小限l及び最大限r間の「FALLS」fの切断からもたらされる「FALLS」の組を計算する。得られる「FALLS」は、lに対して計算される。この手順をネストされた「FALLS」交差アルゴリズムに使用する。
CUT−FALLS(f,l,r)
1:DEF g:FALLS
2:lg←l:rg←r;sg←LENg;ng←1
3:S←INTERSECT−FALLS(f,g)
4:for all h∈S do
5:lh←lh−1
6:rh←rh−1
7:end for
8:return S
例えば、図12からのFALLS(3,5,6,5)をl=4とr=28の間で切断すると、l=4に対して計算された集合{(0,1,1,2),(5,7,6,3),(23,24,2,1)}がもたらされる。
それぞれ区分パターンP1及びP2に属する、ネストされた「FALLS」S1及びS2の交差する集合に対するアルゴリズムについて以下に説明する。その集合は、ツリー表示に「FALLS」を含む。このアルゴリズムは、一般性を損なうことなく、ツリーの高さは同じと仮定する。同じでない場合は、低いツリーの高さは、外側「FALLS」を追加して変えることができる。
「INTERSECT」は、交差の区分パターンPのサイズをP1及びP2(行1)のサイズの最小公倍数として計算する。続いて、S1及びS2は、Pのサイズ(行2〜7)の上で交差することができるように拡張される。
INTERSECT(S1,S2
1:SIZEp←lcm(SIZEp1、SIZEp2
2:for all f∈S1 do
3:nf←nfSIZEp/SIZEp2
4:end for
5:for all f∈S2 do
6:nf←nflcm(SIZEp1、SIZEp2)/SIZEp2
7:end for
8:return INTERSECT−AUX(S1、0、;SIZEp、S2、0、SIZEp
「INTERSECT−AUX」は、「FALLS」をペアで交差した後で(行8)、「FALLS」ツリーを回帰的に横断することにより(行12)、二組のネストされた「FALLS」S1及びS2間の交差の計算をする。
「INTERSECT−AUX」は、f1∈S1及びf2∈S2であるような可能な全ての対(f1,f2)を最初に考慮する。「FALLS」は、S1及びS2(行4)の外側「FALLS」の交差の左側及び右側インデックスであるl1及びr1の間で切断される。インデックスl1及びr1は、S1の外側「FALLS」に対して計算され、回帰コールのパラメータとして行12から受け取られる。同じ説明がf2(行5)に当てはまる。「CUT−FALLS」は、内側「FALLS」の特性が外側「FALLS」の左側インデックスに対してであることを保証するために使用される。「FALLS」は、切断f1及びf2からもたらされ、続いてペアで交差される(行8)。回帰コールは、サブツリーf1及びf2に下り、その内側「FALLS」の交差を回帰的に計算する(行12)。
INTERSECT−AUX(S1,l1,r1,S2,l2,r2
1:S←0
2:for all f1∈S1 do
3:for all f2∈S2 do
4:C1←CUT−FALLS(f1、l1、r1
5:C2←CUT−FALLS(f2、l2、r2
6:for all g1∈C1 do
7:for all g2∈C2 do
8:S←S∪INTERSECT−FALLS(g1、g2
9:end for
10:end for
11:for all f∈S do
12:I←INTERSECT−AUX(If1,(lf−lf1) mod sf1,(rf−lf1) mod sf1,If2;(lf−lf2) mod sf2,(rf−lf2) mod sf2
13:end for
14:end for
15:end for
16:return S
例えば、図13は、サイズ32の区分パターンに属する二組のネストされた「FALLS」であるS1=(0,7,16,2,(0,1,4,1,O))と、S2=(0,3,8,4,(0,0,2,2,O))との交差を示す。外側及び内側「FALLS」の交差は、図11に既に示されている。交差の結果は、V∩S=(0,3,16,2,(0,0,4,1,O))であり、これは、(0,1,16,2,O)に簡略化することができる。
上述のアルゴリズムは、二組の「FALLS」S1及びS2の交差Sを計算する。その結果、Sは、S1とS2の両方の部分集合である。投影の手順は、S1とS2によって記述された線形空間(ビュー又はサブファイル)上にSを投影するための手順である。以下に示すように、この投影は、計算ノード及びI/Oノード間で交換されたデータの拡散及び収集に使用される。
PROJS(R)は、S上へのRの投影を計算する。それは、単に補助手順「PROJ−AUX」を呼び出す。
PROJS(R)
1:PROJ−AUXS(R,0)
PROJ−AUXS(R,オフセット)は、Rの「FALLS」を表すツリーを横切り、各「FALLS」をSによって記述されたサブファイル上に投影する。内側「FALLS」の各組が外側「FALLS」の左側インデックスに対して与えられるので、引数オフセットが必要である。従って、オフセットは、サブファイルの開始からの絶対変位を累積する。
PROJ−AUXS(R,オフセット)
1:P←0
2:for all f∈R do
3:P←PROJ−AUXS(f,オフセット)
4:if If≠0 then
5:IP←PROJ−AUXS(If,オフセット+lf
6:end if
7:P←P∪{p}
8:end for
9:return P
PROJ−AUXS(f,オフセット)は、オフセットと共に変位した「FALLS」fをSによって記述されたサブファイルに投影する。
PROJ−AUXS(f,オフセット)
1:DEF g:FALLS
2:lg←MAPS(lf+オフセット)−MAPS(オフセット)
3:rg←MAPS(rf+オフセット)−MAPS(オフセット)
4:sg←MAPS(sf+オフセット)−MAPS(オフセット)
5:ng←nf
6:return g
例えば、交差に関連して上に与えられた例においては、PROJV(V∩S)=(0,0,4,2,O)(図13(c))、及び、PROJS(V∩S)=(0,0,4,2,O)(図13(d))である。
「INTERSECT」と「PROJS」は、両方とも同じ組のツリーを横切るので単一アルゴリズムにコンパクト化することができる。明確にするために、それらは別々に表されてきた。
ここで、好ましい実施形態のデータ演算においてマッピング機能と交差アルゴリズムがどのように使用されるかを示す。書込み及び読取りは逆対称なので、ここでは書込み演算だけ説明する。図13に示すビュー及びサブファイルに対して、以下の説明は図14に示す例と共に為される。
一組のネストされた「FALLS」Sと、左及び右の限界l及びrとがそれぞれ与えられると仮定する。Sによって定義された不連続な領域と連続バッファ「buf」(又は、サブファイル)との間のデータをコピーするために2つの手順が実行される。
・GATHER(dest,src,m,M,S)は、Mとmの間のSによって定義されるように、不連続データを「src」バッファから連続バッファ(又は、サブファイル)「dest」にコピーする。例えば、図14(b)において、計算ノードは、FALLS{(0,0,4,2,O)}の組を使用して、m=0及びM=4の間でデータをビューからバッファ「buf2」に収集する。
・SCATTER(dest,src,m,M,S)は、mとMの間のSによって定義されるように、連続バッファ(又は、サブファイル)「src」からバッファ「dest」上に非連続的にデータを配布する。例えば、図14(b)において、I/Oノードは、FALLS{(0,0,4,2,O)}の組を使用して、m=0及びM=4の間で「buf2」からサブファイルにデータを分散する。
実行は、ネストされた「FALLS」のツリー表示の組のSからの回帰的横断から成る。複製する演算は、ツリーの葉で発生する。
計算ノードが現存するファイルを開くと、それは、メタデータマネージャから変位「displ」及び区分パターンPを受け取る。
計算ノードが、変位「displ」及び区分パターンPと共に、開いているファイル上にVによって記述されたビューを設定すると、V及び各サブファイル間の交差が計算される(行2)。V上への交差の投影が計算されて(行3)、計算ノードに保存される。S上への交差の投影が計算されて(行4)、対応するサブファイルのI/Oノードに送られる(行5)。
1:for all S∈P do
2:V∩S←INTERSECT(V,S)
Figure 2010140507

Figure 2010140507

Figure 2010140507
6:end for
図14(b)からの例は、投影に関連して上述の例で計算されたビュー及び1つのサブファイルに対する投影、
Figure 2010140507
を示す。
計算ノードが「displ」及びPによって定義されたファイルを開き、その上にビューVを設定したと仮定する。上述の通り、計算ノードは
Figure 2010140507
を保存し、サブファイルSのI/Oノードは、全てのS∈Pに関して、
Figure 2010140507
を保存する。次に、mVとMV間のビューの連続する部分のバッファ「buf」からファイルへの書込みに関連する段階を示す(図14及び以下の2つの擬似コード部分も参照)。
Sによって記述された各サブファイル(1)と交差V(2)に対して、計算ノードは、mV及びMVのサブファイル上へのマッピングmS及びMSをそれぞれ計算し(3及び4)、次に、それらをサブファイルSのI/Oサーバに送る(5)。続いて、
Figure 2010140507
が、mV及びMV間で連続する場合、I/Oサーバに「buf」が直接送られる(7)。そうでなければ、「buf」の不連続領域がバッファ「buf2」に収集されて(9)、I/Oノードに送られる(10)。
1:for all S∈P do
Figure 2010140507

Figure 2010140507

Figure 2010140507
5:SのI/OサーバにサブファイルSの(mS,MS)を送る。
Figure 2010140507
7:Sによって定義されたサブファイルのI/Oサーバに、mV及びMV間のMV−mV+1バイトを送る。
8:else
Figure 2010140507
10:Sによって定義されたサブファイルのI/Oサーバに、buf2を送る。
11:end if
12:end if
13:end for
I/Oサーバは、mS及びMS間でSによって定義されたサブファイルに対する書込み要求(1)と、バッファ「buf」に書き込まれるデータ(2)とを受け取る。
Figure 2010140507
が連続の場合、「buf」は、連続的にサブファイルに書き込まれる(4)。そうでなければ、データは、「buf」からファイルに分散される(6)。
1:計算ノードからmS及びMSを受け取る。
2:データをbufに受け取る。
Figure 2010140507
4:bufをmS及びMS間でサブファイルSに書き込む。
5:else
Figure 2010140507
7:end if
「Myrinet」によって相互接続された、256kBのL2キャッシュ及び512MBのRAMを有する16個の「Pentium(登録商標) III」800MHzのクラスター上で実験が行われた。各マシンは、「IDE」ディスクを備えている。それらは、全て「LINUX」カーネルを作動させた。バッファディスクの読取り処理量は、「hdparm」ユーティリティで測定して、毎秒25.50MBである。「TCP」処理量は、「ttcp」ベンチマークで測定して、毎秒82MBである。
好ましい実施形態においてファイルに対して二次元マトリックスを書き込み及び読み取りするベンチマークが書き込まれた。256×256、512×512、1024×1024、及び2048×2048の別々のサイズのマトリックスに対して実験が繰り返された。各サイズに対して、行のブロック(r)、列のブロック(c)、及び正方形ブロック(b)の3つの方法で、ファイルを4つのサブファイルに物理的に区分した(図15参照)。各サブファイルは、1つのI/Oノードに書き込まれた。各サイズ及び各物理的区分に対して、行のブロックの4つのプロセッサ間でファイルを論理的に区分した。全ての測定は数回繰り返され、最小値と最大値が削除されて平均値が計算された。
I/Oノードがそれらのバッファキャッシュ及びそれらのディスクにそれぞれ書き込んでいる時に、書込み及び読取り作動の異なる位相に対するタイミングが計測された。表1は、1つの計算ノードに対する平均的な結果を示し、表2は、1つのI/Oノードに対する平均的な結果を示す。
Figure 2010140507
Figure 2010140507
読取りに関する結果が書込みに非常に近かったので、書込みタイミングだけを示すことにする。それによると以下の所見が得られた。
・物理的及び論理的区分が与えられる時、交差を実行して投影を計算する時間は、マトリックスのサイズによって大きくは変わらない。予想通り、区分が同じであればtiは小さく、区分が適合しないとより大きい。尚、tiがビュー設定時のみに費やす必要があり、何回かのアクセスに亘って償却することができることが分る。
・サブファイルtm上にビューのアクセス間隔の端点をマップする時間は非常に短い。
・収集時間tgは、マトリックスサイズと、物理的及び論理的区分の適合の程度とによって変化する。それは、最適な適合では全てのサイズに対して0である。所定のマトリックスサイズに対しては、区分の適合が不良の場合、再区分によりバッファに集まるデータの小さな部分が多くなるのでtgは最大になる。
・所定のサイズに対しては、
Figure 2010140507
の時間は、計算ノードで測定されるネットワーク及びI/Oサーバの作動の合計を含む。
それらの値は、最も遅いI/Oサーバによって制約される。
・性能は、I/Oノードコンテンション、すなわち、1つのI/Oノードと接触する計算ノードの平均数によって影響される。適合が不良のパターンに対してコンテンションは大きく、従って、計算ノードの並列性,及び暗に拡張容易性を妨げる。例えば、ブロックの列とコラムの列との間のデータの再配布により、4つの計算ノードは、各々、全ての4つのI/Oサーバと接触することになる(表2の4番目のコラムを参照)。最適な適合に対しては、コンテンションは1であり、従って、各計算ノードの要求は、異なるI/Oノードに送られる。
・分散時間、
Figure 2010140507
は、不連続バッファをバッファキャッシュとディスクとにそれぞれ書き込むための時間を含む。ネットワークカードからバッファキャッシュに直接書き込む連続書込みの場合は最適化されなかった。従って、追加の複製が実行される。その結果、配布の全ての3つの異なる対に対する数値は、大きなメッセージに関しては近い値である。しかし、小さなサイズ(256と512)に関しては、バッファキャッシュ,及び特にディスクに対する書込み性能は、最適な配布の適合に対して最良になる。
表3は、1クライアントの平均処理量を示す。5番目と7番目のコラムは、同じマトリックスサイズについて、不良適合パターンに対する最適適合パターンに関して著しい性能の改善を示し、バッファキャッシュへの書込みでは、111%から295%の範囲であり、ディスクへの書込みでは、111%から322%の範囲である。
Figure 2010140507
実験の結果は、物理的区分及び論理的区分が適合する時に並列アプリケーションの性能が最適になることを示している。
本発明が説明されて、クラスター上のファイルレイアウトの高度な制御を提供する並列ファイルシステムが示された。本発明はまた、アプリケーションがファイル上に任意のビューを設定することを可能にする。この並列ファイルシステムは、例えばn次元アレー分布のような、通常のアクセスパターン及びファイルレイアウトを表現するコンパクトな方法を提供する。それはまた、レイアウト間の便利な変換を可能にする。本明細書の実験部分において、アクセスパターン及びファイルレイアウト間の適合がいかに本発明の性能に影響を与えるかが示された。アクセスパターンと適度に適合するファイルレイアウトを使用して、並列アプリケーションがそのI/O性能を改善することができることが見出された。これは、I/Oサーバの並列性、及び、ディスク及びネットワーク帯域幅のより良い利用法をもたらす。従って、物理的及び論理的区分の共通の内部データ表現は、柔軟性のある本発明の物理的レイアウトと共に、I/Oサブシステムのより広範囲で効率の良い利用法に貢献することができる。
マッピング機能及びデータ再配布という並列ファイルシステムにおけるデータ演算の実行のための2つの機構が示された。好ましい実施形態は、ファイルの物理的及び論理的区分の両方のために共通のデータ表現を使用する。区分(サブファイル又はビュー)の全てのエンティティは、線形的にアドレス可能とすることができる。そのような2つの線形空間の間のマッピングを計算するために、マッピング機能が使用される。データ再配布アルゴリズムは、2つの任意の配布間で変換する必要があるインデックスの組を計算する。これらの組は、ビュー設定時に一度だけ計算され、数回のアクセスに亘って償却される。その後、それらは、計算ノード及びI/Oノード間で通信中にデータ分散及び収集で使用される。
当業者によって様々な小さな変更及び修正が提案されるかもしれないが、特許請求の範囲は、分散ファイルシステムの分野への本発明の寄与の範囲に無理なく含まれるであろうそのような変更及び修正を含むように意図されていることが理解されるものとする。
10 分散ファイルシステム
12 計算ノード
14 I/Oノード
16 相互接続ネットワーク

Claims (9)

  1. 相互接続ネットワーク(16)によって接続された、複数の計算ノード(12)と複数の入力/出力(I/O)ノード(14)とを含む分散ファイルシステム(10)であって、前記システムは、
    前記システムに保存されたファイルの物理的及び論理的パーティションの両方のために共通のデータ表現を使用するようになっており、
    前記パーティションの要素は、リニアにアドレス可能であり、
    それぞれの計算ノード(12)は、複数のファイル操作を実行するようにプログラムされ、前記ファイル操作は、
    ファイルのリニア空間とサブファイルのリニア空間との間のマッピングを計算する段階と、
    ビューのリニア空間とサブファイルのリニア空間との間のマッピングを計算する段階と、
    ビュー及びサブファイル間で交差アルゴリズムを実行する段階と、
    データ演算を実行する段階と、を含み、
    それによって、プロセッサ指標付き標識ラインセグメント群(PITFALLS)が、外側ラインセグメント群(FALLS)を形成する、一組の等間隔で配置されたラインセグメント群(FALLS)を表わすデータ表現のために使用され、それによって、それぞれの外側FALLSは、I/Oノード(14)上へファイルの物理的パーティショニングを、計算ノード(12)上へファイルの論理的パーティショニングを表わすためのネストしたPITFALLSを形成し、それらの間をマッピングする、一組の内側PITFALLSを含み、それによって利用可能な記憶媒体上及び幾つかの計算ノード(12)の中のデータをそれぞれ任意にパーティショニングすることができる
    ことを特徴とするシステム。
  2. 前記複数のI/Oノード(14)からファイルに関する情報を収集し、該I/Oノード(14)を整合性のある状態に維持するようになっているメタデータマネージャを含むことを特徴とする請求項1に記載の分散ファイルシステム(10)。
  3. 各I/Oノード(14)は、それぞれのI/Oノード(14)上に保存されたサブファイルにデータを書き込み、かつそこからデータを読み取るタスクを実行するI/Oサーバを含むことを特徴とする請求項2に記載の分散ファイルシステム(10)。
  4. I/Oサーバが、前記I/Oノード(14)で保存されたサブファイルの各々に関するメタデータを維持し、要求に応じてそれを前記メタデータマネージャに配信するようになっていることを特徴とする請求項2に記載の分散ファイルシステム(10)。
  5. 前記計算ノード(12)は、システムのメタデータに関わる任意のファイル操作のために前記メタデータマネージャと通信するようになっていることを特徴とする請求項2に記載の分散ファイルシステム(10)。
  6. ファイルがサブファイルに物理的にパーティショニングされている複数のI/Oノード(14)、及びファイルがビューに論理的にパーティショニングされている複数の計算ノード(12)を含む分散ファイルシステム(10)を動作させる方法であって、前記方法は、
    (i)前記システムがサブファイルとビューとの間のマッピング機能を実行する段階と、
    (ii)前記システムがパーティションの間でデータを再分配する段階であって、
    それによって、プロセッサ指標付き標識ラインセグメント群(PITFALLS)が、外側ラインセグメント群(FALLS)を形成する、一組の等間隔で配置されたラインセグメント群(FALLS)を表わすデータ表現のために前記システムによって使用され、それによって、それぞれの外側FALLSは、I/Oノード(14)上へファイルの物理的パーティショニングを、計算ノード(12)上へファイルの論理的パーティショニングを表わすためのネストしたPITFALLSを形成し、それらの間をマッピングする、一組の内側PITFALLSを含み、それによって利用可能な記憶媒体上及び前記システムの幾つかの計算ノード(12)の中のデータをそれぞれ任意にパーティショニングすることができる
    ことを特徴とする方法。
  7. 前記再分配は、前記システムによって、
    (a)2つの物理的パーティション間、
    (b)2つの論理的パーティション間、及び
    (c)論理的パーティション及び物理的パーティション間、
    で行うことができる、
    ことを特徴とする請求項6に記載の方法。
  8. (a)ファイルのリニア空間からサブファイルのリニア空間上へのファイルオフセットのマッピングを前記システムによって計算するためのアルゴリズムと、
    (b)サブファイルのリニア空間からファイルへのマッピングを前記システムによって計算するためのアルゴリズムと、
    (c)サブファイル及びビュー間のマッピングを前記システムによって計算するためのアルゴリズムと、
    (d)ネストされたラインセグメント群の組の交差を前記システムによって計算するためのアルゴリズムと、
    (e)ラインセグメント群の別の組によって記述されたリニア空間上への一組のラインセグメント群の投影を前記システムによって計算するためのアルゴリズムと、
    を含む複数のアルゴリズムが前記システムによって実行される、
    ことを特徴とする請求項6に記載の方法。
  9. 前記方法は、
    (a)前記システムが、ビュー設定において、前記ファイルの前記論理的パーティショニングと前記物理的パーティショニングとの間のマッピングの計算を実行する段階と、
    (b)前記システムが、計算のアクセスインデックスのオーバーヘッドがビュー設定の時に前記システムによって一度だけ費やされるように、メッセージ内に又はそれからデータを収集/分散するための読取り/書込み演算において前記マッピングを使用する段階と、を含むことを特徴とする請求項6に記載の方法。
JP2010035003A 2001-10-01 2010-02-19 分散ファイルシステム及び分散ファイルシステムの作動方法 Expired - Lifetime JP4799669B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01122698.2 2001-10-01
EP01122698A EP1298536A1 (en) 2001-10-01 2001-10-01 Distributed file system and method of operating a distributed file system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003533157A Division JP2005504396A (ja) 2001-10-01 2002-10-01 分散ファイルシステム及び分散ファイルシステムの作動方法

Publications (2)

Publication Number Publication Date
JP2010140507A true JP2010140507A (ja) 2010-06-24
JP4799669B2 JP4799669B2 (ja) 2011-10-26

Family

ID=8178688

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003533157A Pending JP2005504396A (ja) 2001-10-01 2002-10-01 分散ファイルシステム及び分散ファイルシステムの作動方法
JP2010035003A Expired - Lifetime JP4799669B2 (ja) 2001-10-01 2010-02-19 分散ファイルシステム及び分散ファイルシステムの作動方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003533157A Pending JP2005504396A (ja) 2001-10-01 2002-10-01 分散ファイルシステム及び分散ファイルシステムの作動方法

Country Status (6)

Country Link
US (1) US7809774B2 (ja)
EP (2) EP1298536A1 (ja)
JP (2) JP2005504396A (ja)
AT (1) ATE305635T1 (ja)
DE (1) DE60206406T2 (ja)
WO (1) WO2003030022A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014103386A1 (ja) * 2012-12-26 2014-07-03 株式会社 東芝 情報処理装置、分散データベースシステム、およびバックアップ方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050257827A1 (en) * 2000-04-27 2005-11-24 Russell Gaudiana Rotational photovoltaic cells, systems and methods
US20050015511A1 (en) * 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US7953819B2 (en) * 2003-08-22 2011-05-31 Emc Corporation Multi-protocol sharable virtual storage objects
DE102004019854B4 (de) * 2004-04-23 2010-09-16 Nec Europe Ltd. Datenspeicher- und Zugriffssystem
US7634566B2 (en) * 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US7389298B2 (en) * 2004-11-18 2008-06-17 International Business Machines Corporation Seamless remote traversal of multiple NFSv4 exported file systems
US8521752B2 (en) * 2005-06-03 2013-08-27 Osr Open Systems Resources, Inc. Systems and methods for arbitrary data transformations
US7870173B2 (en) * 2005-10-13 2011-01-11 International Business Machines Corporation Storing information in a common information store
US8713576B2 (en) * 2006-02-21 2014-04-29 Silicon Graphics International Corp. Load balancing for parallel tasks
JP4175379B2 (ja) * 2006-04-25 2008-11-05 日本電気株式会社 ファイル共有方法およびファイル共有システム
EP2050002A2 (en) * 2006-08-01 2009-04-22 Massachusetts Institute of Technology Extreme virtual memory
US7512748B1 (en) 2006-08-17 2009-03-31 Osr Open Systems Resources, Inc. Managing lock rankings
US8539228B1 (en) 2006-08-24 2013-09-17 Osr Open Systems Resources, Inc. Managing access to a resource
CN101192227B (zh) * 2006-11-30 2011-05-25 阿里巴巴集团控股有限公司 一种基于分布式计算网络的日志文件分析方法和系统
US8024433B2 (en) * 2007-04-24 2011-09-20 Osr Open Systems Resources, Inc. Managing application resources
US7949693B1 (en) 2007-08-23 2011-05-24 Osr Open Systems Resources, Inc. Log-structured host data storage
US8326897B2 (en) 2007-12-19 2012-12-04 International Business Machines Corporation Apparatus and method for managing data storage
US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
US9058334B2 (en) * 2010-02-11 2015-06-16 Emc Corporation Parallel file system processing
US8224879B2 (en) * 2010-02-23 2012-07-17 Hitachi, Ltd. Management system and management method for storage system
US8701113B2 (en) 2010-05-27 2014-04-15 International Business Machines Corporation Switch-aware parallel file system
US8903874B2 (en) 2011-11-03 2014-12-02 Osr Open Systems Resources, Inc. File system directory attribute correction
US9122700B2 (en) 2011-12-20 2015-09-01 Los Alamos National Security, Llc Parallel log structured file system collective buffering to achieve a compact representation of scientific and/or dimensional data
US9165014B1 (en) * 2012-06-28 2015-10-20 Emc Corporation Methods and apparatus for multi-resolution replication of files in a parallel computing system using semantic information
US9087075B1 (en) * 2012-06-28 2015-07-21 Emc Corporation Storing files in a parallel computing system using list-based index to identify replica files
US9229657B1 (en) 2012-11-01 2016-01-05 Quantcast Corporation Redistributing data in a distributed storage system based on attributes of the data
US9811529B1 (en) * 2013-02-06 2017-11-07 Quantcast Corporation Automatically redistributing data of multiple file systems in a distributed storage system
US9792295B1 (en) 2013-02-06 2017-10-17 Quantcast Corporation Distributing data of multiple logically independent file systems in distributed storage systems including physically partitioned disks
CN103235754B (zh) * 2013-04-24 2016-10-05 曙光信息产业(北京)有限公司 分布式文件系统中请求的处理方法和装置
US9811530B1 (en) * 2013-06-29 2017-11-07 EMC IP Holding Company LLC Cluster file system with metadata server for storage of parallel log structured file system metadata for a shared file
US9767107B1 (en) * 2013-06-29 2017-09-19 EMC IP Holding Company LLC Parallel file system with metadata distributed across partitioned key-value store
CA2926935C (en) * 2013-10-21 2022-05-31 Ab Initio Technology Llc Checkpointing a collection of data units
US9830329B2 (en) 2014-01-15 2017-11-28 W. Anthony Mason Methods and systems for data storage
US10042682B2 (en) 2014-01-30 2018-08-07 Hewlett Packard Enterprise Development Lp Copy message from application buffer to send buffer within kernel
US9483516B2 (en) * 2014-03-14 2016-11-01 Sap Se Multi-version concurrency control across row store and column store
US10162836B1 (en) * 2014-06-30 2018-12-25 EMC IP Holding Company LLC Parallel file system with striped metadata
CN107305490B (zh) * 2016-04-22 2020-09-11 中国移动通信集团湖南有限公司 一种元数据分组方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014103386A1 (ja) * 2012-12-26 2014-07-03 株式会社 東芝 情報処理装置、分散データベースシステム、およびバックアップ方法
JP2014127015A (ja) * 2012-12-26 2014-07-07 Toshiba Corp 情報処理装置、分散データベースシステム、およびバックアップ方法

Also Published As

Publication number Publication date
EP1298536A1 (en) 2003-04-02
US20060101025A1 (en) 2006-05-11
US7809774B2 (en) 2010-10-05
DE60206406D1 (de) 2005-11-03
JP2005504396A (ja) 2005-02-10
JP4799669B2 (ja) 2011-10-26
ATE305635T1 (de) 2005-10-15
DE60206406T2 (de) 2006-06-14
WO2003030022A3 (en) 2003-10-16
EP1440393A2 (en) 2004-07-28
WO2003030022A2 (en) 2003-04-10
EP1440393B1 (en) 2005-09-28

Similar Documents

Publication Publication Date Title
JP4799669B2 (ja) 分散ファイルシステム及び分散ファイルシステムの作動方法
Cai et al. Efficient distributed memory management with RDMA and caching
Miller et al. RAMA: A file system for massively-parallel computers
Hwang et al. Orthogonal striping and mirroring in distributed RAID for I/O-centric cluster computing
Isaila et al. Clusterfile: A flexible physical layout parallel file system
Isaila et al. Integrating collective I/O and cooperative caching into the" clusterfile" parallel file system
Nelson et al. Caching in the Sprite network file system
Blas et al. View-based collective i/o for mpi-io
Choudhary et al. Data management for large‐scale scientific computations in high performance distributed systems
Bagrodia et al. Parallel simulation of parallel file systems and I/O programs
Cortes Cooperative caching and prefetching in parallel/distributed file systems
No et al. Design and implementation of a parallel I/O runtime system for irregular applications
Garcia Blas et al. Implementation and evaluation of file write-back and prefetching for MPI-IO over GPFS
Garcia et al. High performance cache management for parallel file systems
Isaila An overview of file system architectures
Ludwig Research trends in high performance parallel input/output for cluster environments
Jin et al. Adaptive Sector Grouping to Reduce False Sharing in Distributed RAID
Isaila Clusterfile: a parallel file system for clusters.
Bordawekar et al. Issues in compiling I/O intensive problems
Buenabad-Chavez et al. Comparing Two Parallel File Systems: PVFS and FSDDS
Thakur et al. Parallel I/O
Cortes et al. O performance of scientific-parallel applications under PAFS
Rosselló Cooperative caching and prefetching in parallel/distributed file systems
Garcia-Carballeira et al. An adaptive cache coherence protocol specification for parallel input/output systems
Shieh et al. Reducing File-related Network Traffic in TreadMarks via Parallel File Input/Output

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

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

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

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4799669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term