2011-06-30 9 views
4

私はDebianコンピュータと1台のOS Xラップトップで以下の作業をしようとしています。Amazon S3をバックエンドとして使用したファイルシステムのバージョン

Amazon S3をバックエンドとして使用する、ある種のバージョン管理ファイルシステムです。

私が考えていたのは、FUSEを使ってs3fsを使用してバケットをマウントし、ファイルを書き込むたびに新しいコミットを行うファイルシステムを作成することです(x日までの完全なバージョン履歴が必要です)。マウントされたフォルダには、ファイルの最新バージョンが表示されます。 解決方法がわからない問題の1つ(経験が不足しているため)は、ファイルをローカルフォルダと同期させたいということです。もちろん、私はすべてのファイルをダウンロードすることができますが、帯域幅に優しいわけではありません。

もう1つの問題は、s3fsの現在のバージョンがMacFUSEで動作しないように見えることです。

さらに、おそらく何か起こることはありませんが、2台のコンピュータが同時にファイルに書き込むと、ファイルが壊れないようにしたいと考えています。私が正しく理解していれば、gitは何らかのファイルロックを実装しており、オペレーティングシステムのファイルロックに依存しません。

この作業を行うための概要は何ですか?私がこれらの方法で保存したいファイルは、単に.texファイルとベクトルイメージです。

解決策が存在することがわかっています(dropboxなど)が、閉鎖ソースであることを本当に気に入っていません。

答えて

5

まず、s3で盲目的にgitを実行することはお勧めしません。 gitは操作中にたくさんの小さなファイルを生成します。多くの非常に小さなオブジェクトを扱う場合、S3は高価(かつ低速)です。あなたが推測しているように、S3には機構ロックもありません。最終的な整合性はこれを不可能にする。最後に、gitはオブジェクトデータベースへの高速ランダムアクセスに依存します。 S3はこれを提供できませんので、リポジトリ全体のローカルミラーが必要です。

代わりに、既存のgit httpバックエンドを拡張してS3にプッシュすることをお勧めします。緩いファイルをプッシュするのではなく、単一のパックファイルをプッシュします。これは、S3がうまくいくもの、つまり大きなオブジェクトの大量の負荷を活用します。あなたはまだロッキングがありませんが、手動で押すタイミングを決めるので、他の方法で簡単に物事を調整することができます。

+0

S3にEC2インスタンスからのみアクセスするとどうなりますか?まだ問題はありますか?私は、S3がプロビジョニングされたEBSストレージよりも安く、耐久性があるため、これらのラインを考えていました。 S3はコンテンツの配信には適していますが、EC2がフォントの終わりである場合、S3 <-> EC2 <->ユーザーが常に存在します。 - / –

関連する問題