Prettyfs

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Event

    Prettyfs - Presentation Transcript

    1. PrettyFS perl による分散ファイルストレージ ふしはらかん ( 株式会社モバイルファクトリー )
    2. 自己紹介
      • 伏原幹(ふしはらかん)
      • 株式会社モバイルファクトリー所属
        • wassrをどうぞよろしく
      • 過去に作ったもの
        • wema (付箋wiki) perl 関係ない
        • wasaco (wassr client) perl関係ない
        • xircd (irc server) perl製
    3. agenda
      • Webサービスでのファイルの扱い
      • 分散ファイルストレージ
      • mogilefsの特徴と不満
      • prettyfsの概要
    4. Webサービスとファイル
      • ある程度大きなファイルをどう扱うか
        • 画像(写真、イラスト)
        • 音声(podcast, 着うた着メロ)
        • 動画
      • ユーザーのアップロードするファイルの置場
        • ローカルに保存
        • DB(RDBMS)に保存
    5. ローカル保存
      • 処理は簡単(普通のfile read/write)
      • app serverが分散している場合
        • NFSでディスク共有
          • ディスク障害が心配……
        • rsync等でファイル同期
          • 全app serverに配布するのは勿体無い
    6. DBに保存
      • app serverが分散していても平気
        • MySQLのBLOBとかでつっこむ
      • 検索しやすい
      • パフォーマンスに課題
    7. そこで分散ファイルストレージ
      • サーバの追加で容量を拡張できる
      • ファイルの種類に合わせた冗長性を確保
      • 実際のソフトウエア
        • mogilefs
        • livedoorでのapache+mod_perlによる実装
        • (amazon S3)
    8. mogilefsとは?
      • perlで実装された分散ファイルストレージ
      • Brad Fitzpatrick氏が開発
      • trackとstore(とperlbal)で構成されている
    9. mogilefsの構成 store store store store tracker tracker client perlbal
    10. tracker
      • clientとやりとりする
        • ファイルの登録
        • ファイルの取得
        • storeからファイルを参照するURLの一覧を返す(後述)
    11. store
      • ファイルを保存する
      • 実体はWebDAVに対応したHTTPサーバ
      • trackerが複数のstoreにファイルを保存する
    12. mogileのファイル管理
      • device
        • store内のストレージ最小単位
      • class
        • 保存するファイルのクラス
        • class毎に幾つのdeviceにファイルを保存するか決められる
      ファイル A ファイル B
    13. perlbal
      • Perlで実装されたロードバランサー
      • X-REPROXY-URL
        • 裏側のappが↑のURLを返すとperlbalがそのファイルを取りにいって返す
        • trackerが返すstoreのURL(s)を渡して使える
        • storeは適切なheader(content-typeとか)を返さないのでappで頑張る
    14. mogilefsの問題
      • 実質perlbalが前提
      • 同じキーのデータを更新するとstoreのURLが変わる(->X-REPROXY-CACHE-FORを迂闊に使えない)
      • class,deviceの概念が無駄に複雑
      • 運用処理の動作が不安定(均等化、store毎コピーなど)
    15. 不満があるなら
      • 作ればいい!
    16. prettyfs
      • 手軽に使える「かわいい」分散ファイルストレージ
      • 1hostに1対以上のtracker,storeが動く前提
      • trackerがrevers proxyとしても動く
        • perlbal不要(ただしロードバランサはあったほうが良いかも?)
    17. prettyfsの起動
      • ファイルとシステムの情報を記録するdbへの接続オプションを設定に書いて起動
        • db層を抽象化してあるので、RDBMSを使うこともKVSを使うこともできる
        • ファイルコピー数も指定できる
    18. ファイルの登録
      • クライアントからファイルを登録する
        • content-typeなど、出力時に指定したいHTTP headerを同時に指定できる
        • trackerでファイルを受け付け
        • workerも抽象化してあるので、job queueにどれを使うか、storeへの配置をどうやるか、等選べる
    19. ファイルの取得
      • mogileと同じ、クライアントによるデータ、store URLの取得も可能
      • trackerがhttpd(storeに対するrevers proxy)になってる
        • http://tracker/filekey のようなURLで直接データ取得ができる
        • ↑のURLはデータ更新しても当然不変
    20. 運用
      • mogilefs+αな管理
        • 起動中にtracker+storeを追加
        • 障害の発生したstoreを切り離す
        • storeからstoreへファイルを全コピー
        • 全storeの使用量が均質化するようファイル移動
    21. 今後の展望
      • とりあえず公開したい
      • trackerをplackで動くように
      • worker, dbの種類を増やす
      • パフォーマンス向上

    + kankan, 2 months ago

    custom

    438 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 438
      • 438 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events