Master-Master replication question

Remko Lodder remko at FreeBSD.org
Mon Jul 11 15:40:03 UTC 2016


> On 11 Jul 2016, at 17:36, Rick Romero <rick at havokmon.com> wrote:
> 
> Quoting "William L. Thomson Jr." <wlt-ml at o-sinc.com>:
> 
>> You are not alone!
>> 
>> On Wednesday, July 06, 2016 01:15:34 PM Remko Lodder wrote:
>>> Dear list,
>>> 
>>> I have setup a master-master replication setup. My primairy MX's send
>>> email
>>> over on a DNS loadbalanced way, so DNS is doing some kind of round-robin
>>> way of sending mail to both master servers.
>>> 
>>> I found out, that on one of the two machines, the email synchronisation
>>> is
>>> heavily delayed. Lets assume server A receives a mail from the MX; it
>>> synchronises almost instantly with the other server.
>>> 
>>> Whenever server B receives the email, it could take up to several hours
>>> to
>>> synchronise the email, it seems that it is not detected prior.
>> 
>> I have been dealing with this for months.
>> http://www.dovecot.org/list/dovecot/2016-March/103680.html
>> 
>> For a band aid I use  this crontab entry. On the 2nd mail server.
>> 
>> */15 * * * *   root    /usr/bin/doveadm sync -u "*" remote:mail1
>> <snip>
> 
> Are you guys using LMTP to deliver from your MX server to the mailbox
> server?

Local delivery on the destination server is LMTP but the transport between
MX and destination server is just plain SMTP.

I could try and revert to dovecot-lda and see what that does?

Cheers
remko


> 
> I have a similar setup, but not yet synched, because as I understand it -
> using 'deliver' to drop mail into an NFS mount won't inititate a sync.  I
> have to migrate my procmail scripts to sieve (and use the execute plugin)
> and change my final delivery to be a redirect to LMTP.   Not sure how
> replication will work when running old procmail scripts from sieve...
> 
> In any case..  If you're piping to dovecot's deliver/dovecot-lda, here is
> a rudimentary LMTP script I hacked together that I planned to use to
> replace deliver with...   I'd grab the 'master' mailbox server IP for
> each user for the command line.
> 
> #!/usr/bin/perl
> 
> use Net::LMTP;
> use Getopt::Std;
> 
> $opts{'s'} = "localhost";
> $opts{'p'} = "24";
> $opts{'f'} = 'root@' . `hostname`;
> chomp($opts{'f'});
> chomp($opts{'s'});
> getopts("hs:p:f:u:", \%opts);
> 
> if ($opts{'h'}) {
>     print "
> lmtpsend [-s lmtpserver] [-f fromaddress] [-u subject] toaddress [...]
> 
>   lmtpsend will send an email from the commandline.
> 
>   Options:
>     -s lmtpserver      Sets the lmtpserver for where to send the
> mail through.
>     -f fromaddress     Sets the email address to be used on the
> From: line.
>     -u subject         Sets the email subject to be used from
> the Subject line.
>     toaddress          Where you want the email sent to.
> 
> ";
>     exit;
> }
> 
> die "no recepients to send mail to" if ($#ARGV < 0);
> 
> @emailbody = <STDIN> ;
> 
> # send the message
> 
> $message = Net::LMTP->new($opts{'s'},$opts{'p'}) || die "can't talk to
> server $opts{'s'}\n";
> 
> $message->mail($opts{'f'});
> $message->to(@ARGV) || die "failed to send to the recepients
> ",join(",", at ARGV),": $!";
> $message->data();
> $message->datasend("To: " . join(", ", at ARGV) . "\n");
> $message->datasend(@emailbody);
> $message->dataend();
> $message->quit;
> 
> Rick



More information about the dovecot mailing list