Project Home Downloads Wiki Issues Source
ハイレベルの概要  
MOgileFSのハイレベルの概要
Updated Jan 9, 2012 by dorma...@rydia.net

以下は、MogileFSがどのように動くか、全ての動いているものは何か、についてのハイレベルの概要です。

含まれるものは

  • アプリケーション: ファイルを 格納/取出し をしたいもの
  • トラッカー (mogilefsd プロセス): event-based parent process/message bus that manages all client communication from applications (requesting operations to be performed), including load balancing those requests onto "query workers", and handles all communication between mogilefsd child processes. 高可用性のために、異なるホストで二つのトラッカーを実行する必要があります。あるいはロードバランシングのためにもっとです。(二つ以上必要です)mogilefsdの下の子プロセスは以下が含まれます:
    • Replication -- ファイルを周りにリプリケートします
    • Deletion --- 名前空間からの削除は即座に; ファイルシステムからの削除は非同期で
    • Query -- クライアントからのリクエストに応答します
    • Reaper -- ディスクがfailした後で、リプリケーションのためにファイルを再キューします
    • Monitor -- 健康状態と、ホストとデバイスのステータスを監視します
    • ...
  • データベース -- MogileFSのメタデータを格納するデータベース(名前空間、ファイルがどこにあるか)。これは、単一障害点を持たないように、HA構成でセットアップされなければなりません。
  • ストレージ ノード -- ファイルが格納される場所。ストレージノードは DELETE, PUT などを実行する単なるHTTPサーバです。どのような WebDAV サーバでも良いですが、mogstoredがお勧めです。mogilefsd は異なるポートで二つをサーバを使うように設定することができます ... mogstored for all DAV operations (and sideband monitoring), and your fast/light HTTP server of choice for GET operations. 一般的には、マウントポイントごとに一つの巨大なSATAディスクを持ち、それぞれは /var/mogdata/devNN にマウントされます。

高レベルの流れ:

  • アプリケーションはファイルを開くように要求します (does RPC via library to a tracker, finding whichever one is up). "create_open" リクエストを行います。
  • トラッカーはどこに行くことができるかについてちょっとしたロードバランシングの決定をし、アプリケーションに2,3の可能性のある場所を渡します
  • アプリケーションは場所の一つに書き込みます (もし一つに書き込む途中で失敗すると、リトライと他の場所への書き込みができます。)
  • アプリケーション(クライアント)は トラッカーに "create_close" API の中で どこに書き込むかを知らせます。
  • トラッカーはそれからその名前をドメインの名前空間にリンクします(データベースを経由します)
  • トラッカーはバックグラウンドで、ファイルのクラスのリプリケーションポリシーに従う限り、周りにファイルをリプリケートし始めます。
  • その後、アプリケーションはドメインとキー(key == "filename")のために"get_paths"リクエストを発行します。そしてトラッカーはファイルが利用可能な全てのURLをそれぞれの場所のI/Oの利用にもとづく重み付けで応答します( database/memcache/など に問い合わせた後で)。
  • アプリケーションはそれから順番にURLを試します。(トラッカーは頻繁に全ての ホスト/デバイス を監視して死亡したものは返らないですが、無効にしない限りデフォルトでは返ってきたリストの最初の項目の存在をダブルチェックします)
d
d
Comment by sei...@gmail.com, Dec 12, 2009

次の製品では何が取り組まれる予定なのかについて、ロードマップがあるのかなと思います。I am looking at the database portion of the overview and feeling that it seems to be the weak link in this design as far as a single point of failure, and complicating the setup.

Thanks

Comment by project member dorma...@rydia.net, Dec 24, 2009

The database portion hardly ever ends up being an issue... MySQL HA is easy enough, too. I'm not sure what about it ends up complicating anything... it's a really simple schema.

Comment by kimul...@gmail.com, Aug 8, 2011

I am curious about the capacity of MySQL as the quantities of data today goes larger and larger. Will Mogile consider to use Non-SQL Database such as HBase or Casandra in the future version? Thanks^^

Comment by goo...@shapirus.net, Jan 10, 2012

Same question here. MySQL it difficult to scale out, so having an ability to use some scalable database like mongodb would be a good option.

Comment by watter...@gmail.com, Mar 28, 2012

I've worked on a similar system and mysql really isn't an issue. A pair of mysql servers in different data centers gives you enough redundancy and metadata updates don't really cause a lot of load.

Comment by yasse...@gmail.com, Apr 30, 2012

hello . Application: thing that wants to store/load files <--- can this be a VMware ? if yes . can VMware see the Storage Nodes ?

thanks

Comment by cloud....@gmail.com, May 7, 2013

what do you mean don't really cause a lot of load ? for example I need storage for 100TB is it cause big load on my mysql server?


Sign in to add a comment
Powered by Google Project Hosting
TOP
inserted by FC2 system