xfs
[Top] [All Lists]

Re: Which FileSystem do you use on your postfix server?

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: Which FileSystem do you use on your postfix server?
From: wietse@xxxxxxxxxxxxx (Wietse Venema)
Date: Fri, 31 Oct 2008 11:37:58 -0400 (EDT)
Cc: Justin Piszcz <jpiszcz@xxxxxxxxxxxxxxx>, Postfix users <postfix-users@xxxxxxxxxxx>, xfs@xxxxxxxxxxx, wietse@xxxxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=porcupine.org; s=dktest; t=1225467479; bh=4ZtqE0CRT+jW9tVQ4Wh883y4NRkqry+iMpZFE4NF nhg=; h=Subject:In-Reply-To:To:Date:CC:X-Time-Zone:X-Mailer: MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id: From; b=MmeNI9/oSZwRdWMtTsx+J4Gk8HH/9tx599NhpnlspyXtX2K6IsjYROWVpy Ji0Nvl1ZqPuYE3/mxp322QFzOvZadRWtuDdGEXJBGB4BqDPLrbWulArkyyjbV33i0GZ 7lMGtemfNZIpJMJY+UXDaGY7agOI/PYMLOrz6dCvxBu+vY=
In-reply-to: <490B1C8B.7010607@xxxxxxxxxxx> "from Eric Sandeen at Oct 31, 2008 09:56:11 am"
Eric Sandeen:
> > This
> > would violate a basic requirement of Postfix (don't lose data after
> > fsync).  Postfix updates existing files all the time: it updates
> > queue files as it marks recipients as done, and it updates mailbox
> > files as it appends mail.
> 
> As long as postfix is looking after data properly with fsyncs etc, xfs
> should be perfectly safe w.r.t. data integrity on a crash.  If you see
> any other behavior, it's a *bug* which should be reported, and I'm sure
> it would be fixed.  As far as I know, though, there is no issue here.

The specific question is, will unclean shutdown cause loss of data
that was already fsynced, when the file was updated after the fsync.
For example, if the on-disk file metadata is updated after the file
data is appended, then there is no need to have a zero-fill problem
after crash during append.

What if the crash happens after Postfix requests a 1-byte write in
the middle of a file, i.e. without changing the size? A reasonable
implementation would not corrupt the file, but would either update
the file data or not change it. I can deal with that.

        Wietse

<Prev in Thread] Current Thread [Next in Thread>