web-dev-qa-db-ja.com

Apache + PHPを実行しているWebサーバークラスターのR / W分散ファイルシステムに関する提案が必要

過去数か月間、私はすべてApache + PHPを実行している複数のWebサーバー(12以上)間で複数のWebサイトのコンテンツを共有するための最良の方法を見つけようとしてきました。私が直面している最大の課題の1つは、あらゆる種類の良い理由と悪い理由(つまり、アプリが制御できない)のために、ファイルシステムに対して常に読み取りおよび書き込みができる必要があることです。 wordpress Webインターフェイスなどを介して管理されるサイト...)。

これが私が試したもののいくつかであり、それが判明しました:

  • Rsync/duplicity/csync2:1分に1回だけ実行されます。つまり、特定の変更は、大きな問題を防ぐのに十分な速度でクラスター全体で共有されません。
  • inotify/incron:監視するファイルとディレクトリの量が膨大であることを考えると、複雑すぎます。また、新しいファイルではうまく機能しませんでした。
  • GlusterFS:4サーバーのglusterバックエンドがあり、パフォーマンスは明らかに遅いものの、許容範囲内でした。残念ながら、各Webサーバーで実行されているglusterクライアントは絶えずクラッシュし、4つのファイルサーバーの1つが2〜15分間フリーズしました。 Gluster Inc.に連絡して、エンジニアの何人かを助けてもらいましたが、彼らは問題を理解できませんでした。 3ヶ月の使用で諦めました。

セットアップに関する一般情報:

  • AmazonEC2でホスト
  • UbuntuMaverickの実行
  • Nginx(2)->ワニス(2)-> Apache(12+)の実行
  • 最高のパフォーマンスを得るには、.htaccessを無効にします。ディレクティブをサイトの構成ファイルに直接追加します
  • 私たちが実行しているウェブサイト/アプリのほとんどは私たちのものではなく、残念ながら、読み取り専用環境は不可能です
  • これらのWebサーバーが処理しているタスクを考慮すると、自動フェイルオーバーによる高可用性は非常に重要です。

だから私はそれがすべてをカバーしていると思います:)。お手数をおかけしますが、よろしくお願いいたします。

6
Pierre

ここでの「最悪」(TM)オプションはNFSです。飲み込むのが難しいことは知っています。私はrsyncでそれを避けようとしました、GFSでそれを避けようとしました、私はincron/inotifyでそれを避けようとしました。私は、開発者にファイルシステムをデータストアとして使用するのをやめるように促すことで、それを回避しようとしました。結局、NFSよりも優れたオプションはありません。あなたが言ったように、NFSが良いからではなく、そのHAの部分が荒いからですが、それ以上の選択肢は本当にないからです。

3
cagenut

技術的にはまだ「ベータ版」ですが、BittorrentSyncはあなたにぴったりだと思います。私はそのような環境(複数のWebサーバー)を持っていないので、自分で試したことはありませんが、他の人がまさにこれを行っていると聞いて、とても満足しています。私はそれを分散サーバーのバックアップに使用しますが、これは技術的な観点からも同様の使用法です: http://wandin.net/dotclear/index.php?post/2013/07/17/Distributed-server-backups -with-btsync

http://labs.bittorrent.com/experiments/sync.html

1
fukawi2

古き良きNFS + DRBDの何が問題になっていますか(これがLinux上にあると仮定します)?

0
Chris S