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

Что происходит с репликацией Dovecot dsync, если другой сервер недоступен?

Я собираюсь установить еще один почтовый сервер в одном из наших офисов, используя Postfix и Dovecot. У нас есть сторонний спам-фильтр, который может ретранслировать входящую почту на два сервера с помощью SMTP, и если один из серверов недоступен, он будет ставить почту в очередь, пока она не вернется в онлайн.

Мне было интересно, происходит ли что-то подобное при использовании dsync для синхронизации двух экземпляров Dovecot. Я не смог найти однозначного ответа в Интернете.

Я понимаю, что если я настроил реляцию master / master с помощью dsync, изменения, которые пользователь вносит с помощью своего IMAP-клиента на одном сервере (A), будут реплицированы на другой сервер (B). Но если B перейдет в автономный режим, а пользователь продолжит вносить изменения в A, будут ли эти изменения автоматически реплицированы на B, когда он вернется в онлайн? Или тогда A и B будут рассинхронизированы и потребуют какого-то ручного вмешательства?

dsync является «идемпотентным» и будет синхронизироваться из любого состояния, в котором вы находитесь в данный момент; нет очереди ожидающих изменений, как в случае с репликацией MySQL.

Это означает, что, когда сервер B возвращается в рабочее состояние, при следующем запуске dsync вы в конечном итоге снова синхронизируете оба сервера. Никакого ручного вмешательства не требуется, и они вернутся к синхронизации, даже если вся файловая система почты на B будет стерта (хотя для этого может потребоваться некоторое время).

Вы, вероятно, захотите, чтобы пользователи обычно получали доступ только через сервер A, и в случае сбоя A и вашего прокси-сервера, перенаправляющего их на B, удалите A из пула прокси, пока ваш dsync не завершится и A снова не синхронизируется.