Назад | Перейти на главную страницу

Cyrus murder и серверный кластер IMAP при отказе

У меня есть один мастер cyrus murder (агрегатор) и серверный кластер IMAP при отказе, состоящий из 2 узлов (backend1 и backend2).

Я использую corosync / кардиостимулятор, чтобы установить:

для внутреннего кластера IMAP.

Я также использую drbd для синхронизации / var / lib / imap и / var / spool / imap между двумя моими бэкэндами IMAP.

Например, служба cyrus-imapd работает на backend1. когда userA создает папки и подпапки в их INBOX, backend1 запрашивает агрегатор с протоколом mupdate. Он ответил положительно, и на mailboxes.db агрегатора у нас есть папки плюс имя серверной части где хранится папка.

Даже если backend1 останавливается, backend2 берет на себя. когда userA создать папку, cyrus-imapd запрашивает у агрегатора, если он может создать папку. Агрегатор ответил отрицательно, потому что агрегатор знает, что userAпочтовый ящик пользователя управляется backend1. Он не знает этого backend1 и backend2 одинаковые". Поэтому он заказал backend2 чтобы удалить почтовый ящик. Но по мере того, как их данные реплицируются, мейбокс исчезает на backend1.

Итак, мой вопрос заключается в следующем: есть ли в imapd.conf опция или что-то еще, что позволяет моим двум внутренним IMAP отображаться с тем же именем?

Похоже, вам просто нужно установить одинаковую опцию «servername» на обеих машинах в imapd.conf.

{"servername", NULL, STRING} / * Это имя хоста, видимое в приветственных сообщениях демонов POP, IMAP и LMTP. Если он не установлен, то используется результат, возвращаемый gethostname (2). * /

Это еще не все, что он делает - он также используется при убийстве для идентификации сервера.