Imap
Cyrus 謀殺和 IMAP 後端集群故障轉移
我有一個 cyrus 謀殺(聚合器)主機和一個 IMAP 後端集群,由 2 個節點(backend1和backend2)組成。
我使用 corosync/pacemaker 來設置:
- 一個虛擬IP
- 啟動和停止 cyrus-imapd 服務
用於後端 IMAP 集群。
我也使用 drbd 在我的 2 個 IMAP 後端之間同步 /var/lib/imap 和 /var/spool/imap。
例如,cyrus-imapd 服務在backend1上執行。當使用者 A在其收件箱中創建文件夾和子文件夾時,後端1 使用****mupdate協議重新請求聚合器。它的回復是肯定的,並且在聚合器的mailboxes.db 上,我們有文件夾以及儲存文件夾的後端名稱。
即使後端1停止,後端 2 也會接管。當userA創建文件夾時,cyrus-imapd 向聚合器請求它是否可以創建文件夾。聚合器給出否定的答复,因為聚合器知道userA的郵箱由backend1管理。它不知道backend1和backend2是“相同的”。所以它命令後端2刪除郵箱。但是隨著他們的數據被複製,郵箱在 backend1 上消失了。
所以我的問題如下:是否有一個選項,在 imapd.conf 或其他允許我的 2 個後端的 IMAP 以相同名稱出現的選項?
聽起來您只需要在 imapd.conf 中的兩台機器上設置相同的“伺服器名稱”選項。
{ “servername”, NULL, STRING } /* 這是在 POP、IMAP 和 LMTP 守護程序的問候消息中可見的主機名。如果未設置,則使用從 gethostname(2) 返回的結果。*/
但這還不是全部——它還被謀殺用來辨識伺服器。