2010-12-02 16 views
3

現在、CakePHP(1.3)ベースのWebアプリケーションをHAセットアップで実行するように設定しています。私は4つのWebボックスをデータベースバックエンド用のMySQLクラスタとしてアプリケーション自体を実行している。ユーザーには1週間に12,000〜24,000枚の画像(35〜70GB)をアップロードさせていただきます。その後、アプリは元の画像から2つの追加ファイルを生成し、プレビュー用のサムネイルと中サイズの画像を生成します。これは、毎週リポジトリに合計36,000〜72,000の可能なファイルが追加されたことを意味します。CakePHP高可用性サーバーファームの設定

私が頭を抱えるようにしようとしているのは、これらの画像を表示しようとしているユーザーからの多数の静的ファイル要求を処理する方法です。私は、リクエストをディスパッチするロードバランサを持つ静的ファイルだけを扱う複数のWebボックスを持つことができるということです。

しかし、ここにいるすべての人が、すべての静的ファイルサーバーを同期させる方法について考えていますか?

あなたが経験したことがあれば、私には分かりやすいリンクや役に立つリンクがあります。

おかげで、

serialk

+1

これが役立つかどうかわかりませんが、Facebookはワニスを使って画像を提供しています。 http://www.varnish-cache.org – RabidFire

+0

リンクRabidFireをありがとう、私は私のプレートにいくつかの読書を得たLOL – serialk

答えて

2

これはかなり厄介な問題です。

技術的には、アクティブ/パッシブ設定にDRBDとLinux-HAを使用して、NFS(または、必要に応じてSMB)などの高可用性共有ディレクトリを取得できます。このような設定は、単一のサーバーの損失に対して優れた可用性を備えていますが、そのような設定は非常に浪費であり、規模を拡大するのは容易ではありません。アプリケーション自体がどのサーバーを選択してNFSマウントを構成するか、それはすべてかなり複雑になります。

私はおそらく、ファイルシステムに画像を保存することを避けるように促すでしょう - 少なくとも、従来の種類ではありません。将来ストレージを増やすためにこれを柔軟にする必要があると仮定しています。ストレージとIOの要件を一定に保つことができれば、DRBD、HA NFSはおそらく良いシステムです。もう少し統合が、いくつかの点で、おそらくより良いが必要となるプッシュ、カサンドラ、で、柔軟な「雲」、

Tahoe LAFS

それともどちらかでファイルを保存するための

MySQLのクラスタは大きなブロブにはあまり適していません。大部分はデータをRAMに保存するためです。また、高い整合性を実現するには、多くのロックを必要とします。

しかし、イメージをmysql-clusterに入れておくことは、とりわけあなたがすでに設定しているので、特にこれは操作上のオーバーヘッドを必要としません。

+0

私はあなたが示唆している様々なオプションを読んだ後、あなたの答えMarkRのおかげで私はカサンドラがあると思うこれの勝者。これは私の最初の統合であるため特に起きて走るにはいくつかの作業が必要ですが、間違いなく価値があるようです。再度、感謝します! – serialk

関連する問題