[Dovecot-de] Dovecot active/active-Replikation

Jan Behrend jbehrend at mpifr-bonn.mpg.de
Do Okt 2 09:31:03 CEST 2014


Hallo Peer,

vielen Dank für die Antwort.

On Thu, 2014-10-02 at 07:49 +0200, Peer Heinlein wrote:
> Am 01.10.2014 23:24, schrieb Jan Behrend:
> 
> > 1) Wie repliziere ich die dovecot home-Verzeichnisse, welche z.B.
> > die Sieve-Skripte enthalten?  Reicht da ein tägliches rsync?  Was
> > passiert dann aber wenn einer der Server vor dem rsync offline
> > geht?
> 
> sieve wird ganz normal mitrepliziert wie die Mails auch. Du brauchst
> da nichts besonderes.

Perfekt!

> > 2) Wie kann ich diesen Fehler umgehen? imap-mgt dovecot:
> > dsync-local(username): Error: Couldn't create lock
> > /home/username/.dovecot-sync.lock: No such file or directory
> 
> Existiert /home/username?
> 
> Und wenn es nicht existiert: Warum benutzt Du das dann?

Die "dovecot homes" liegen unter /home/<username>

Normalerweise erstellt Dovecot die Verzeichnisse selbst die es benötigt,
wenn die erste Mail eintrifft.  Nicht so bei der Replikation der
"dovecot homes".  Daher mein Problem.

> > Bin mir nicht ganz sicher warum Dovecot das home-Verzeichnis nicht 
> > erstellt, obwohl schon Mails in diesen Benutzeraccount abgeliefert 
> > wurden.
> 
> Na wo werden denn die Mails hingespeichert wenn nicht in das Userhome?

Die "dovecot homes" liegen unter /home/<username>,
Die Mailboxen unter /var/mail/<username>

Zur Erlärung hier die userdb config. Bitte nicht schlagen, falls es hier
konzeptionelle Fehler gibt ;-)

dovecot-ldap-userdb.conf.ext (watch the unintended line breaks):
debug_level = 0

uris             = ldap://ldap.mpifr-bonn.mpg.de
ldap://ldap2.mpifr-bonn.mpg.de ldap://ldap3.mpifr-bonn.mpg.de
ldap://ldap4.mpifr-bonn.mpg.de
tls              = yes
tls_ca_cert_file = /etc/ssl/certs/Max-Planck-Gesellschaft.pem
tls_require_cert = demand

base                = ou=people,dc=mpifr-bonn,dc=mpg,dc=de
user_attrs          = =home=/home/%
Ln,=uid=40000,=gid=40000,=mail=mdbox:/var/mail/%Ln
user_filter         = (&(objectClass=mpifrUser)(finalMailAddress=%
Ln at mpifr-bonn.mpg.de)(uid=%Ln))
pass_attrs          = uid=user,mailMd5Password=password
pass_filter         = (&(objectClass=mpifrUser)(finalMailAddress=%
Ln at mpifr-bonn.mpg.de)(uid=%Ln))

iterate_attrs       = uid=user
iterate_filter      = (objectClass=mpifrUser)
default_pass_scheme = MD5-CRYPT


> > 3) Was mache ich damit? dsync-server(username): Warning: Failed to
> > do incremental sync for mailbox INBOX, retry with a full sync
> 
> > Ignorieren und auf den nächsten full sync warten?
> 
> Komplette Logmeldung posten. Das sollte nicht alles sein.

Im Anhang zusammen mit der doveconf -n Ausgabe.

Noch zur Erklärung der Config:
Dieser Server ist der inaktive Teil eines DRBD-Linux-HA-Setups.  Mein
Ziel ist:  Weg vom DRBD der Mailboxen, hin zur
active/active-Replikation.  Der Ansatz ist, den aktiven DRBD-Teil laufen
zu lassen, und die Mailboxen auf eine extra Platte des inaktiven
DRBD-Server zu replizieren.  Wenn das fertig ist, kann ich nach dem
Umschalten des aktiven Servers das DRBD außer Betrieb nehmen.

Vielen Dank für die Hilfe und
LG aus Bonn von Jan

-- 
MAX-PLANCK-INSTITUT fuer Radioastronomie
Jan Behrend - Rechenzentrum
----------------------------------------
Auf dem Huegel 69, D-53121 Bonn                                  
Tel: +49 (228) 525 359, Fax: +49 (228) 525 229
jbehrend at mpifr-bonn.mpg.de http://www.mpifr-bonn.mpg.de


-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : dovecot.log
Dateityp    : text/x-log
Dateigröße  : 2282 bytes
Beschreibung: nicht verfügbar
URL         : <https://listen.jpberlin.de/pipermail/dovecot/attachments/20141002/b507e421/attachment-0001.log>
-------------- nächster Teil --------------
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.6 xfs
auth_gssapi_hostname = imap.mpifr-bonn.mpg.de
auth_mechanisms = plain login gssapi
auth_verbose = yes
default_process_limit = 1024
default_vsz_limit = 512 M
doveadm_password = xxx
doveadm_port = 50222
listen = 
lmtp_save_to_detail_mailbox = yes
mail_gid = 40000
mail_location = mdbox:/var/mail/%Ln
mail_plugins = acl zlib notify replication
mail_uid = 40000
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave imapflags notify
mdbox_rotate_size = 10 M
namespace {
  inbox = yes
  location = 
  prefix = 
  separator = .
}
namespace {
  list = children
  location = maildir:/var/mail/PUBLIC:INDEX=%h/Maildir/PUBLIC:INDEXPVT=%h/Maildir/PUBLIC-private-flags
  prefix = public.
  separator = .
  subscriptions = no
  type = public
}
namespace {
  list = children
  location = mdbox:/var/mail/%%n:INDEXPVT=%h/Maildir/shared
  prefix = sharedByUsers.%%n.
  separator = .
  subscriptions = no
  type = shared
}
passdb {
  args = /etc/dovecot/dovecot-ldap-passdb.conf.ext
  driver = ldap
}
plugin {
  acl = vfile
  acl_shared_dict = file:/var/mail/shared-mailboxes
  fts = solr
  fts_autoindex = yes
  fts_solr = break-imap-search url=http://127.0.0.1:8080/solr/
  mail_replica = tcp:192.168.42.111:50222
  sieve = ~/.dovecot.sieve
  sieve_after = /home/global-after.sieve
  sieve_dir = ~/sieve
  sieve_extensions = +notify +imapflags
  zlib_save = gz
  zlib_save_level = 6
}
protocols = " imap lmtp sieve pop3"
replication_dsync_parameters = -d -l 30 -U -n private -n shared
replication_max_conns = 6
service aggregator {
  fifo_listener replication-notify-fifo {
    user = vmail
  }
  unix_listener replication-notify {
    user = vmail
  }
}
service anvil {
  client_limit = 8192
}
service auth {
  client_limit = 8192
  unix_listener auth-userdb {
    group = vmail
    user = vmail
  }
}
service doveadm {
  inet_listener {
    address = 192.168.42.110
    port = 50222
  }
}
service imap-login {
  process_min_avail = 5
}
service imap {
  vsz_limit = 512 M
}
service indexer-worker {
  client_limit = 1
  process_limit = 10
  user = root
}
service pop3-login {
  process_min_avail = 5
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0666
  }
}
ssl = required
ssl_cert = </etc/dovecot/imap.pem
ssl_key = </etc/dovecot/imap.key
userdb {
  args = username_format=%Ln /etc/dovecot/non_ldap_users
  driver = passwd-file
}
userdb {
  args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
  driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = acl zlib notify replication sieve
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = acl zlib notify replication imap_acl imap_zlib
  ssl_cert = </etc/dovecot/imap.pem
  ssl_key = </etc/dovecot/imap.key
}
protocol pop3 {
  ssl_cert = </etc/dovecot/pop3.pem
  ssl_key = </etc/dovecot/imap.key
}
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 198 bytes
Beschreibung: This is a digitally signed message part
URL         : <https://listen.jpberlin.de/pipermail/dovecot/attachments/20141002/b507e421/attachment-0001.asc>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : smime.p7s
Dateityp    : application/x-pkcs7-signature
Dateigröße  : 6019 bytes
Beschreibung: nicht verfügbar
URL         : <https://listen.jpberlin.de/pipermail/dovecot/attachments/20141002/b507e421/attachment-0001.bin>


Mehr Informationen über die Mailingliste Dovecot