Dovecot Director 概要
- 1. Copyright ? 2014 Open Source Solution Technology, Corp. 1
振り分け先バックエンドサーバー固定化による
共有ファイルシステム上の
メールボックスアクセスの最適化
Dovecot Director 概要
- 2. Copyright ? 2014 Open Source Solution Technology, Corp. 2
共有ファイルシステム上のメール
ボックスの同時アクセス問題
● 問題点
? ホストごとのキャッシュによりファイルデータの不整合が発生
? 最悪はメールボックス破壊
maildir であればメールメッセージ自身が破壊?消失する可能性は皆無
Dovecot の場合は付随するデータファイルで問題となる
(メッセージ識別子管理、インデックス、クォータ情報)
● 解決方法
? キャッシュ無効化
メールボックスアクセス性能が低下してしまう
? 複数ホストからの同一メールボックスの同時アクセスを避ける
Dovecot Director で実現可能
プロクシーサーバーとして動作し、ユーザーごとに特定の単一ホストへアクセ
スを振り分ける
- 3. Copyright ? 2014 Open Source Solution Technology, Corp. 3
ソフトウェア構成
●
フロントエンド: Dovecot Director
? LMTP/POP3/IMAP/ManageSieve プロクシー
? ユーザーごとに特定の単一バックエンドサーバーにプ
ロクシーする
●
バックエンド: Dovecot
? LMTP/POP3/IMAP/ManageSieve サーバー
? Doveadm サーバーを有効化することで Director からの
doveadm コマンドの受け付けも可能
●
バックエンド死活監視: poolmon
- 4. Copyright ? 2014 Open Source Solution Technology, Corp. 4
Dovecot Director によるユーザー振り分け
構成図
Dovecot
Director
poolmon
Postfix
LMTP
(ユーザーA/B)
バックエンド
有効/無効
切替え
メールサーバー2
Dovecot
バックエンド
LMTP
POP3
IMAP
ManageSieve
(ユーザーB)
Dovecot
Director
Postfix
poolmon
バックエンド
有効?無効
切替え
ユーザーB
メールサーバー1
SMTP
(ユーザーA/B)
Dovecot
バックエンド
LMTP
POP3
IMAP
ManageSieve
(ユーザーA)
負荷分散装置
POP3
IMAP
ManageSieve
(ユーザーA/B)
死活
監視
共有ストレージ
メールボックス
ユーザーA
SMTP
POP3
IMAP
ManageSieve
SMTP
POP3
IMAP
ManageSieve
死活
監視
LMTP
POP3
IMAP
ManageSieve
(ユーザーA)
LMTP
POP3
IMAP
ManageSieve
(ユーザーB)
SMTP
(ユーザーA/B)
LMTP
(ユーザーA/B)
共有ファイルシステム
(NFS,GFS,HSFS 等)
バッファキャッシュ
共有ファイルシステム
(NFS,GFS,HSFS 等)
バッファキャッシュ
メールボックス
アクセス
(ユーザーA)
メールボックス
アクセス
(ユーザーB)
ユーザー→バックエンド
振り分け情報の複製
ストレージ
アクセス
ストレージ
アクセス
- 5. Copyright ? 2014 Open Source Solution Technology, Corp. 5
振り分け先バックエンド決定処理
●ユーザーを識別
●
ユーザーの振り分け先バックエンドは過去に決定済み?
? 決定済みならばそのバックエンドに振り分け開始(完了)
? 決定済みでなければ以下に継続
●ユーザー名のハッシュ値を計算
●ユーザー名のハッシュ値と有効なバックエンドから振り分け先
バックエンドを決定
? ユーザー名、ハッシュ、振り分け先バックエンド情報を保存
? ほかの Director に振り分け情報を複製
? バックエンドに振り分け開始(完了)
- 6. Copyright ? 2014 Open Source Solution Technology, Corp. 6
既知の問題点
●
Director (9090/TCP), LMTP (24/TCP) のアクセス制限機能
がない
? ユーザー認証機能もクライアント認証機能(IP アドレス制限など)も
ない
? OS のパケットフィルター機能 (Linux iptables) での制限が必要
●
doveadm fts が動作しない
? バックエンドの doveadm サーバーでエラー発生
Error: doveadm: Client sent unknown command: fts rescan
? 調査中
●
poolmon が ManageSieve の死活監視に非対応
? Sieve ユーザーは少ないため致命的ではない?
- 7. Copyright ? 2014 Open Source Solution Technology, Corp. 6
既知の問題点
●
Director (9090/TCP), LMTP (24/TCP) のアクセス制限機能
がない
? ユーザー認証機能もクライアント認証機能(IP アドレス制限など)も
ない
? OS のパケットフィルター機能 (Linux iptables) での制限が必要
●
doveadm fts が動作しない
? バックエンドの doveadm サーバーでエラー発生
Error: doveadm: Client sent unknown command: fts rescan
? 調査中
●
poolmon が ManageSieve の死活監視に非対応
? Sieve ユーザーは少ないため致命的ではない?