web-dev-qa-db-ja.com

完全なメールサーバーフェイルオーバー

フォールバックサーバーに切り替えてクラッシュした場合でも、メールサーバーが完全に機能するようにするための最善の解決策を見つけようとしています。

PostfixとCourier-IMAPを使用してDebianでメールサーバーを実行します。

MXレコードと、新しい受信メールを見逃さないようにリレーを有効にすることについて知っています。ただし、古いメールに引き続きアクセスできる必要があります。

2台のサーバーの前にロードバランサーを配置し、自動フォールバックを設定することを検討しますが、LBの使用経験がほとんどないため、このようなソリューションがメールサーバーでどの程度うまく機能するかはわかりません。

パフォーマンスへの影響が無視できる限り、maildirにGlusterFSなどを使用することに反対していません。ただし、そのようなソリューションには高いパフォーマンスコストが伴うと聞いて調査しました。

最後の要件は、フォールバックが発生したときにメールクライアントを使用している間の接続の詳細を変更する必要がないことです。ただし、この要件は他のすべての要因にとって最も重要ではありません。

基本的に私は業界標準のソリューションを探しています。業界がそのようなソリューションが存在する必要がないと判断した場合は、潜在的な回避策をいただければ幸いです。

2
Christian

2つの可能な解決策があります。

  1. メールボックスを複製されたストレージに保存します。パフォーマンスのニーズに応じて、いくつかの選択肢があります。オープンソース/ソフトウェア定義の領域にとどまる場合は、Gluster( http://www.gluster.org)に裏打ちされたNFSエクスポートのいずれかをお勧めします。 )またはDRBD( http://www.drbd.org )デバイス。メールボックスの予想サイズによっては、Glusterが適していない場合があります。

  2. IMAPレプリケーションを使用してメールボックスをレプリケートし、2つのサーバー間で常に同期させます。Dovecotをお勧めします( https://wiki.dovecot.org/Replication

共有ストレージソリューション:

適切なパフォーマンスを備えたDRBDを使用すると仮定すると、Linux-HA( http://www.linux-ha.org )をセットアップして、1つのサーバーのみがアクティブになるようにする必要があります。時間と1台のサーバーだけがDRBDデバイスをマウントしました。 MXレコードは、Linux-HAによって管理されるフローティングIPを指します。

SMTP/POP/IMAPサービスは、MySQL/LDAPなどの同じ複製ルックアップサービスからアカウンティング情報(メールボックス、エイリアス、暗号化されたパスワード)を読み取る必要があります。

これはアクティブ/パッシブクラスターになります。

IMAPレプリケーションソリューション:

各メールサーバーには、独自の独立したローカルストレージがあります。 2つの同一のサーバーをセットアップし、PostfixとDovecotが同じ複製検索サービス(MySQL/LDAP)からアカウンティング情報を読み取ることを確認します。 2つのサーバー間でメールボックスを複製するようにDovecotを設定します。

これはアクティブ/アクティブクラスタになります。この場合、受信メールは2つのメールサーバーの1つにランダムに送信され、最終的にローカルストレージに保存されます。 Dovecot Syncは定期的に、各サーバーに保存されているメール間で双方向のレプリケーションを実行し、競合を自動的に解決します。一部のメッセージが失われる可能性のある小さな時間枠(2つの同期間の間隔)があります。これが受け入れられるかどうかを決めるのはあなた次第です。

3
Luca Gibelli