191569Re: Best file system
- Feb 1, 2006Postfix uses the file system to store its queue, and it can be
broken in many ways by non-standard file system semantics. The
following list is incomplete because I have not considered all the
possible ways in which people can break file systems.
Postfix uses fsync() on the queue file to avoid loss of mail after
a system crash. This breaks when write caching is not turned off
on the disk drive, or when fsync() does not update the parent
directory (example: ext2fs). In the former case you lose mail and
probably much more, in the latter case it ends up in lost+found.
Postfix uses atime (last read/execute) time stamps to decide when
to update its "fast flush" logs, which are used by ETRN clients.
When this breaks, Postfix will attempt to deliver all deferred mail
that is listed in "fast flush" logs, whenever the flush daemon scans
its logs. By default, this happens every 1000s.
Postfix sets the execute bit to indicate that a queue file is
complete. On file systems that don't allow users to set the execute
bit on a file, Postfix will never deliver mail.
Postfix uses mtime (last update) time stamps to decide when to
deliver deferred mail. When they manage to break this, Postfix will
attempt to deliver all deferred mail whenever the queue manager
scans the queue, which is every 500s by default.
The fsync() issue also affects deliveries to mailbox/maildir files.
As far as Postfix is concerned, mtimes and atimes don't matter with
mailbox/maildir files but other software may need it.
- << Previous post in topic Next post in topic >>