狠狠撸

狠狠撸Share a Scribd company logo
Copyright ? 2014 Open Source Solution Technology, Corp. 1
振り分け先バックエンドサーバー固定化による
共有ファイルシステム上の
メールボックスアクセスの最適化
Dovecot Director 概要
Copyright ? 2014 Open Source Solution Technology, Corp. 2
共有ファイルシステム上のメール
ボックスの同時アクセス問題
● 問題点
? ホストごとのキャッシュによりファイルデータの不整合が発生
? 最悪はメールボックス破壊
 maildir であればメールメッセージ自身が破壊?消失する可能性は皆無
 Dovecot の場合は付随するデータファイルで問題となる
(メッセージ識別子管理、インデックス、クォータ情報)
● 解決方法
? キャッシュ無効化
 メールボックスアクセス性能が低下してしまう
? 複数ホストからの同一メールボックスの同時アクセスを避ける
 Dovecot Director で実現可能
 プロクシーサーバーとして動作し、ユーザーごとに特定の単一ホストへアクセ
スを振り分ける
Copyright ? 2014 Open Source Solution Technology, Corp. 3
ソフトウェア構成
●
フロントエンド: Dovecot Director
? LMTP/POP3/IMAP/ManageSieve プロクシー
? ユーザーごとに特定の単一バックエンドサーバーにプ
ロクシーする
●
バックエンド: Dovecot
? LMTP/POP3/IMAP/ManageSieve サーバー
? Doveadm サーバーを有効化することで Director からの
doveadm コマンドの受け付けも可能
●
バックエンド死活監視: poolmon
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)
ユーザー→バックエンド
振り分け情報の複製
ストレージ
アクセス
ストレージ
アクセス
Copyright ? 2014 Open Source Solution Technology, Corp. 5
振り分け先バックエンド決定処理
●ユーザーを識別
●
ユーザーの振り分け先バックエンドは過去に決定済み?
? 決定済みならばそのバックエンドに振り分け開始(完了)
? 決定済みでなければ以下に継続
●ユーザー名のハッシュ値を計算
●ユーザー名のハッシュ値と有効なバックエンドから振り分け先
バックエンドを決定
? ユーザー名、ハッシュ、振り分け先バックエンド情報を保存
? ほかの Director に振り分け情報を複製
? バックエンドに振り分け開始(完了)
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 ユーザーは少ないため致命的ではない?
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 ユーザーは少ないため致命的ではない?

More Related Content

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 ユーザーは少ないため致命的ではない?