私が試したこと:
古い:
新着:
懸念/疑問:
質問:
中規模から大規模の企業で私が見たのは、NetAppやEMCなどの冗長ストレージデバイスです。実際、私は少し前に電子メールストレージについてEMCの担当者と話していましたが、彼は巨大な電子メールサーバーが彼らにとって非常に一般的な販売であると述べました。
基本的に、それらはすべてのストレージの問題をアプリケーションから取り除きます。 SSDまたはバッテリバックアップ式メモリキャッシュを使用すると、多くの短いランダム読み取りのパフォーマンスが実現されます。すべてのストレージが1つの場所にあり、冗長サーバーモジュールへの複数のパスがあるため、レプリケーションの待ち時間はありません。
アプリケーションサーバーは、柔軟性が低いNFSまたはiSCSIを使用してストレージにアクセスしますが、NFSで適切に動作しないアプリケーションで必要になる場合があります。これにより、ストレージを高速イーサネット経由で任意の数のサーバーで共有できるため、ストレージボックスの最大I/Oパフォーマンスに拡張して、必要に応じて拡張できます。
アプリケーションサーバーの冗長性に関しては、最も安価なのはソフトウェアクラスタリングパッケージです。ネットワークレベルでそれを処理し、OSに依存しないBig-IPのようなアプライアンスもあります。アプリケーションが他のインスタンスと並行してNFS上で確実に動作できるかどうかは大きく異なります。
私は大きな鉄のアプローチに少し警戒しています-スケーリングが難しいことが多く、人々はフェイルオーバーソリューションを構築し、停止が発生したときにそれが機能することを期待するアプローチを採用する傾向があります。ほとんどの人はずっと前にこのアプローチをディスクやネットワークカードなどのコンポーネントに適用することをやめましたが、サーバーに適用するのは少し難しいです。 LDAPを介してユーザーを分割することでデータをシャーディングできますが、これはレプリケーションの問題を直接解決しますが、たとえば8ペアの負荷分散サーバーで実行すると、競合が大幅に少なくなる可能性があります。確かに、glusterFS IMHOは、トランザクションの多いシステムではうまく機能しません。また、ニアライン型システム(AFSなど)も良い考えではないと思います。問題は、すべてのミラーで同期的に実行する必要のある小さな変更がたくさんあることです。実際、これは一貫性を維持するためにアプリケーションレベルで行うのが最適です。
Dovecotは、共有ストレージ上の複数のサーバーで動作することを目的としていますが、NFS/iSCSIタイプのアプローチは、負荷分散ではなく、SPOFまたはフェイルオーバータイプのアプローチを意味します。トランザクションワークロード用のGFS2について多くの良い点を聞いています。そして、より小さなシステムに縮小することで、これをDRBD上で実行すると、必要なレプリケーションが得られます。ただし、メインネットワークのノイズを維持するために、専用スイッチでペアを分離する(またはクロスオーバーイーサネット接続を使用する)ようにしてください。
つまり、申し訳ありませんが、このタイプの操作では、dovecotは宅配便よりもはるかに優れていますが、新しいアーキテクチャは一歩後退していると思います。
(mboxではなくmaildirを使用していると思います)
ユーザーのクラスターへのマッピングの固定セットを持つことは少しオーバーヘッドであり、利用可能なリソースの最も効率的な使用法ではないことに同意します-おそらく最良の妥協点はGFS2上のLVSである可能性がありますSANそしてSANにレプリケーション関連のものを処理させる。これは多くの推測作業であり、調査/テストが必要になるが、より安価なソリューションの場合、おそらくFuseファイルシステムをデータベースバックエンド-およびデータベースレプリケーション機能(例:mysqlfs)の使用
実行しているバックエンド作業に加えて、Nginxのimapプロキシを調査することをお勧めします。これは、ユーザー接続を特定のバックエンドサーバーにルーティングできるように設計されています。これは、トラフィックとIO負荷のバランスを取るために、ユーザーのデータを移行しようとするよりも簡単な場合があります。