私は現在、下のカラフルな図のような、ドルーパルベースのウェブアプリ用に水平方向にスケーラブルなクラスターを仕様化しようとしています。
ロードバランサーはスティッキーセッションを実装しているため、ユーザーは、作業するサーバーが割り当てられると状態を維持します。
各アプリサーバーには次のものがあります。
- 正面のニス
- ランプスタックで実行されている真ん中のdrupal 6
- 後ろにmemcached
2つのmysqlデータベースサーバーは共有IP上にあり、DRBDとハートビートを備えたHAクラスター内にあるため、1つが失われてもプラットフォーム全体がダウンすることはありません。
次の点について、ご意見をいただければ幸いです。
ファイルストレージを水平方向に拡張するにはどうすればよいですか?
NFSを使用して各アプリサーバーに共有ファイルディレクトリをマウントすることを考えているので、一度にアップロードされたファイルをすべてのアプリサーバーで利用できます。私はNFSを考えています。それは古くからあるからです。また、MogileFSやGlusterFSの経験はありません。NFSは以前に使用したことがあるので、より慣れています。
この方法でNFSを介してディレクトリを共有するのが賢明なサーバーの数を算出するために従うべきガイドラインはありますか?
ここで共有ファイルストレージにHAをどのように提供する必要がありますか?
ここでの1つの問題は、NFSサーバーが単一障害点であることです。
私たちはすでにMysqlサーバーでハートビートとDRBDを使用しており、スタックに含まれるテクノロジの数をできるだけ少なくしたいのですが、ファイルに同じHA戦略を使用した場合、どのような落とし穴がありますかサーバーも?
代替アプローチ
これは、内部向けのサイトであり、内部のイニシアチブがオンになっているときに、限られた数のユーザーが時々非常に集中的に短期間使用する場合があります。したがって、これは一部のスタートアップのように無限に拡張する必要はありません。
とすれば
- 予想できるトラフィックには上限があります
- HAをファイルサーバーに追加し、このように水平方向にスケーリングするようにセットアップを設計すると、かなり複雑になります。
また、2台のWebサーバーを強化して、2台のWebサーバー間のピーク負荷を処理し、cronジョブで2台のサーバーにユニゾンまたはrsyncを設定することを検討しています。
- それらのファイルはまだ同期しています(スティッキーセッションは、ファイルをアップロードしたのと同じサーバー上のユーザーを維持します)
- 1つを失うと、サイトはまだ稼働しています。
これは、NFS / DRBD HAの複雑な頭痛を回避するための可能な方法のように聞こえますか?
おかげで、
C