[Dovecot] Dsync via dovecot proxy
Hi All,
I need to import mailboxes into my Director NFS setup via one of my director proxy's as doing a direct dsync to the backend mailstores appears to giving me NFS locking issues. It looks like it may be possible to do this using doveadm listeners. I have setup doveadm listeners on a test proxy and backend mailstore. I am not sure how to make the dsync proxy through to the backend mailstore - it doesn't appear to be doing so below. My dovecot configs follow further below.
Any help would be greatly appreciated.
Murray
dsync -v -D -u test1@example777.com mirror ssh root@mailproxy-test01 dsync -c /etc/dovecot/dovecot.conf -u test1@example777.com doveadm(test1@example777.com): Debug: Added userdb setting: mail=maildir:/home/user1/mail/example777.com/test1 doveadm(test1@example777.com): Debug: Added userdb setting: plugin/quota=maildir:storage=0 doveadm(test1@example777.com): Debug: Effective uid=501, gid=502, home=/home/user1/mail/example777.com/test1 doveadm(test1@example777.com): Debug: Namespace : type=private, prefix=INBOX., sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/user1/mail/example777.com/test1 doveadm(test1@example777.com): Debug: maildir++: root=/home/user1/mail/example777.com/test1, index=, indexpvt=, control=, inbox=/home/user1/mail/example777.com/test1, alt= doveadm(test1@example777.com): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none doveadm(test1@example777.com): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt= doveadm(test1@example777.com): Debug: Namespace INBOX.: Using permissions from /home/user1/mail/example777.com/test1: mode=0751 gid=default root@mailproxy-test01's password: doveadm(test1@example777.com): Error: user test1@example777.com: Initialization failed: Initializing mail storage from environment MAIL failed: Ambiguous mail location setting, don't know what to do with it: /var/mail/root (try prefixing it with mbox: or maildir:) doveadm(test1@example777.com): Fatal: User init failed dsync-local(test1@example777.com): Debug: brain M: in state=master_recv_handshake dsync-local(test1@example777.com): Error: read(remote) failed: EOF (version not received) dsync-local(test1@example777.com): Debug: brain M: out state=master_recv_handshake changed=0
# 2.2.9: /etc/dovecot/dovecot-director.conf # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.1 auth_cache_size = 32 M auth_cache_ttl = 2 hours auth_debug = yes auth_mechanisms = plain login auth_verbose = yes base_dir = /var/run/dovecot/ director_mail_servers = 27.54.95.50 director_servers = 27.54.95.36 disable_plaintext_auth = no doveadm_allowed_commands = all
doveadm_password = xxxxxxxxxxx lmtp_proxy = yes log_path = /var/log/dovecot.log mail_debug = yes passdb { args = nopassword=y proxy=y driver = static } protocols = " imap lmtp pop3" service auth-worker { user = dovecot } service auth { client_limit = 4096
unix_listener auth-userdb { group = mail mode = 0666 user = dovecot
} } service director { fifo_listener login/proxy-notify { mode = 0666
} inet_listener { address = 27.54.95.36 port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service doveadm { executable = doveadm-server director
inet_listener doveadm-server { port = 24245 } } service imap-login {
chroot = login executable = imap-login director inet_listener imap {
port = 143 } inet_listener imaps { port = 993 ssl = yes }
process_limit = 2048 process_min_avail = 32 service_count = 1 user = dovecot vsz_limit = 256 M } service imap { process_limit = 4096
vsz_limit = 256 M } service ipc { unix_listener ipc { mode = 0666
user = dovecot } } service lmtp { inet_listener lmtp { address = 27.54.95.36 port = 24 } process_limit = 2048 process_min_avail = 32 } service pop3-login { chroot = login executable = pop3-login director inet_listener pop3 { port = 110 } inet_listener pop3s {
port = 995 ssl = yes } process_limit = 2048 process_min_avail = 32
service_count = 1 user = dovecot vsz_limit = 256 M } service pop3 {
process_limit = 4096 vsz_limit = 256 M } ssl_cert = ssl_key = userdb {
driver = prefetch } userdb { args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap } protocol lmtp { auth_socket_path = director-userdb
lmtp_save_to_detail_mailbox = yes recipient_delimiter = + } protocol doveadm { auth_socket_path = director-userdb } protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep imap_logout_format = bytes=%i/%o imap_max_line_length = 128 k mail_max_userip_connections = 50 mail_plugins = quota imap_quota } protocol pop3 {
mail_max_userip_connections = 50 mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls pop3_fast_size_lookups = yes
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
pop3_uidl_format = %08Xu%08Xv }
# 2.2.9: /etc/dovecot/dovecot-mailstore.conf # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.1 auth_cache_size = 64 M auth_cache_ttl = 2 hours auth_debug = yes auth_debug_passwords = yes auth_failure_delay = 0 auth_mechanisms = plain login auth_verbose = yes auth_worker_max_count = 256 base_dir = /var/run/dovecot/ disable_plaintext_auth = no first_valid_gid = 1001 first_valid_uid = 1001 mail_debug = yes mail_fsync = always mail_location = maildir:~/ mmap_disable = yes namespace { inbox = yes location = mailbox Drafts { special_use = Drafts } mailbox Junk { special_use = Junk } mailbox Sent { special_use = Sent }
mailbox "Sent Messages" { special_use = Sent } mailbox Trash {
special_use = Trash } prefix = subscriptions = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin {
mail_log_fields = uid box msgid size quota = maildir:User quota sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = " imap lmtp pop3" service anvil { client_limit = 4106 } service auth-worker { user = dovecot } service auth { client_limit = 4096 unix_listener auth-userdb { group = mail mode = 0666 user = dovecot } } service doveadm { inet_listener doveadm-server { port = 24245 } user = root } service imap-login { chroot = login inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_limit = 2048 process_min_avail = 32 service_count = 1 user = dovecot
vsz_limit = 256 M } service imap { process_limit = 4096 vsz_limit = 256 M } service lmtp { inet_listener lmtp { address = 27.54.95.50
port = 24 } process_min_avail = 32 } service pop3-login { chroot = login inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_limit = 2048 process_min_avail = 32
service_count = 1 user = dovecot vsz_limit = 256 M } service pop3 {
process_limit = 4096 vsz_limit = 256 M } ssl_cert = ssl_key = userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } verbose_proctitle = yes verbose_ssl = yes protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep imap_logout_format = bytes=%i/%o imap_max_line_length = 128 k mail_max_userip_connections = 50 mail_plugins = quota imap_quota } protocol pop3 {
mail_max_userip_connections = 50 mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls pop3_fast_size_lookups = yes
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
pop3_uidl_format = %08Xu%08Xv } local 27.54.95.32/27/27 {
doveadm_password = xxxxxxxxxx }
On 8.5.2014, at 15.02, mtrainer@cloud-free.com wrote:
I need to import mailboxes into my Director NFS setup via one of my director proxy's as doing a direct dsync to the backend mailstores appears to giving me NFS locking issues. It looks like it may be possible to do this using doveadm listeners. I have setup doveadm listeners on a test proxy and backend mailstore. I am not sure how to make the dsync proxy through to the backend mailstore - it doesn't appear to be doing so below. My dovecot configs follow further below.
dsync doesn't currently work through doveadm proxying. It's definitely something that should be fixed though.
Anyway, dsyncing from wrong server might cause some index errors, but NFS locking errors are probably something completely different. You could try lock_method=dotlock.
participants (2)
-
mtrainer@cloud-free.com
-
Timo Sirainen