赛勒斯谋杀和IMAP后端群集故障转移

我有一个cyrus murder(聚合器)master和一个包含2个节点( backend1backend2 )的故障转移的IMAP后端群集。

我使用corosync / pacemaker来设置:

  • 一个虚拟IP
  • 启动和停止cyrus-imapd服务

为后端IMAP群集。

我也使用drbd来同步我的2个IMAP后端之间的/ var / lib / imap和/ var / spool / imap。

例如,cyrus-imapd服务在后端1上运行。 当用户A在其INBOX中创build文件夹和子文件夹时,后端1会使用mupdate protocole来请求聚合器。 它积极地回复,并在聚合器的mailboxes.db我们有文件夹加上存储文件夹的后端名称

即使后端1停止, 后端2也会接pipe。 当userA创build文件夹时,来自聚合器的cyrus-imapd请求可以创build文件夹。 由于聚合器知道用户A的邮箱是由后端1pipe理的,所以聚合器回答是否定的。 它不知道backend1backend2是“相同的”。 所以它命令backend2删除邮箱。 但是随着他们的数据被复制,所以maibox在后端消失1。

所以我的问题是:有没有一个选项,在imapd.conf或其他的东西,允许我的2后端的IMAP显示具有相同的名称?

听起来就像你只需要在imapd.conf中的两台机器上设置相同的“servername”选项。

{“servername”,NULL,STRING} / *这是在POP,IMAP和LMTP守护程序的问候消息中可见的主机名。 如果未设置,则使用从gethostname(2)返回的结果。 * /

但这并不是全部 – 它也被谋杀使用来识别服务器。