Greetings,

We're in the process of upgrading our Dovecot server to new hardware and new expanded storage.  We planned on using an NFS share for the mail storage, as we're running Postfix / Dovecot on a VM and wanted to separate out the mail storage from the VM for backup reasons.

I read as much as I could find on line regarding configuring Dovecot to use NFS, and set it up as best I could, but I'm still running into lock errors e.g.:

Sep 25 10:30:35 triata4 dovecot: imap(user@triata.globalchange.media)<75580><enQ/AWSTkQkKCgDu>: Error: fcntl(/vmail/triata.globalchange.media/user/dovecot.index.log, write-lock, F_SETLKW) locking failed: No locks available
Sep 25 10:30:35 triata4 dovecot: imap(user@triata.globalchange.media)<75580><enQ/AWSTkQkKCgDu>: Error: mail_index_wait_lock_fd() failed with file /vmail/triata.globalchange.media/user/dovecot.index.log: No locks available

Also, I have been trying to configure the Dovecot submission service to authenticate with Postfix, but I keep running into errors which are related to how I'm configuring the authentication.  How do we set the user@domain and password string for submission in the configs?

Thank you.

Please see doveconf -n below, if you see any other errors in this config, I'd be grateful if you pointed them out:

# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.7.2 (7372921a)
# OS: Linux 3.10.0-957.27.2.el7.x86_64 x86_64 CentOS Linux release 7.6.1810 (Core)  nfs
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = plain login
auth_verbose = yes
auth_verbose_passwords = plain
debug_log_path = /var/log/dovecot-debug.log
deliver_log_format = msgid=%m: from=%f: %$
hostname = triata.globalchange.media
mail_debug = yes
mail_fsync = always
mail_home = /vmail/%d/%n/home
mail_location = maildir:/vmail/%d/%n
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 index ihave duplicate mime foreverypart extracttext
namespace inbox {
  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 =
  separator = /
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-mysql.conf
  driver = sql
}
plugin {
  mail_log_fields = uid box msgid from flags
  sieve = file:/vmail/%d/%n/sieve;active=/vmail/%d/%n/.dovecot.sieve
}
protocols = imap lmtp submission sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    mode = 0666
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service managesieve {
  process_limit = 1024
}
service submission-login {
  inet_listener submission {
    port = 587
  }
}
ssl_cert = </etc/letsencrypt/live/triata.globalchange.media/fullchain.pem
ssl_key = # hidden, use -P to show it
submission_relay_host = triata.globalchange.media
submission_relay_password = # hidden, use -P to show it
submission_relay_port = 587
submission_relay_ssl = starttls
submission_relay_trusted = yes
submission_relay_user = %u
userdb {
  args = /etc/dovecot/dovecot-mysql.conf
  driver = sql
}
protocol lda {
  mail_plugins =
}