Postfix and NFS


This question was asked on the postfix-users mailing list a while ago:

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.

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.

For queue locking within Postfix, NFS is not an issue because you cannot share Postfix queues among multiple Postfix instances.

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).

To turn on fcntl() mailbox locks with Postfix you specify:

/etc/postfix/main.cf:
    virtual_mailbox_lock = fcntl
    mailbox_delivery_lock = fcntl

Obviously, this approach is useful only if all other mailbox access software also uses fcntl() locks.

You can also "play safe" and throw in username.lock files:

/etc/postfix/main.cf:
    virtual_mailbox_lock = fcntl, dotlock
    mailbox_delivery_lock = fcntl, dotlock

This is the combination that many applications end up using.