Я подумываю о настройке другого почтового сервера в одном из наших других офисов, используя Postfix и Dovecot. У нас есть сторонний спам-фильтр, который может ретранслировать входящую почту на два сервера с помощью SMTP, и если один из серверов недоступен, он будет ставить почту в очередь, пока не вернется в сеть.
Мне было интересно, происходит ли что-то подобное при использовании dsync to синхронизировать два экземпляра Dovecot. Я не смог найти однозначного ответа в Интернете.
Если я настрою репликацию master / master с помощью dsync, я понимаю, что изменения, которые пользователь вносит с помощью своего IMAP-клиента на одном сервере (A), будут затем реплицированы на другой сервер (B). Но если B перейдет в автономный режим, а пользователь продолжит вносить изменения в A, будут ли эти изменения автоматически реплицированы на B, когда он вернется в онлайн? Или тогда A и B будут не синхронизированы и потребуют какого-либо ручного вмешательства?
dsync является «идемпотентным» и будет выполнять синхронизацию из любого состояния, в котором вы в данный момент находитесь; нет очереди ожидающих изменений, как в случае с чем-то вроде репликации MySQL.
Это означает, что, когда сервер B возвращается в исходное состояние, в следующий раз, когда запускается dsync, вы в конечном итоге получите синхронизацию обоих серверов. Никакого ручного вмешательства не требуется, и они вернутся к синхронизации, даже если вся файловая система почты на B была стерта (хотя для этого может потребоваться некоторое время).
Вы, вероятно, захотите, чтобы пользователи обычно имели доступ только через сервер A, и в случае сбоя A и вашего прокси-сервера, перенаправляющего их на B, удалите A из пула прокси, пока ваш dsync не завершится и A снова не синхронизируется .