<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Postfix and NFS</title><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body><h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix and NFS</h1><hr><p> This question was asked on the postfix-users mailing list a
while ago: </p><blockquote><p> Also, what considerations are there for file
locking or other potential problems when running Postfix with a
Netapp-style box for /var/mail delivery? I know that FreeBSD has
broken NFS file locking (both client and server?) but I'm not sure
if this is something Postfix can work around or not. </p></blockquote><p> Postfix jumps several hoops in order to deal with NFS-specific
problems. Thus, Postfix on NFS is slightly less reliable than
Postfix on a local disk. That is not a problem in Postfix; the
problem is in NFS and affects other MTAs as well. </p><p> For queue locking within Postfix, NFS is not an issue because
you cannot share Postfix queues among multiple Postfix instances.
</p><p> In order to have mailbox locking over NFS, you have to configure
everything to use fcntl() locks for mailbox access (or switch to
maildir style, which needs no application-level lock controls).
</p><p> To turn on fcntl() mailbox locks with Postfix you specify: </p><blockquote><pre>
/etc/postfix/main.cf:
<a href="postconf.5.html#virtual_mailbox_lock">virtual_mailbox_lock</a> = fcntl
<a href="postconf.5.html#mailbox_delivery_lock">mailbox_delivery_lock</a> = fcntl
</pre></blockquote><p> Obviously, this approach is useful only if all other mailbox
access software also uses fcntl() locks. </p><p> You can also "play safe" and throw in <i>username</i>.lock files: </p><blockquote><pre>
/etc/postfix/main.cf:
<a href="postconf.5.html#virtual_mailbox_lock">virtual_mailbox_lock</a> = fcntl, dotlock
<a href="postconf.5.html#mailbox_delivery_lock">mailbox_delivery_lock</a> = fcntl, dotlock
</pre></blockquote><p> This is the combination that many applications end up using. </p></body></html>