[linux-lvm] fsync() and LVM

Stuart D. Gathman stuart at bmsi.com
Mon Mar 16 17:17:28 UTC 2009

On Sun, 15 Mar 2009, Marco Colombo wrote:

> Stuart D. Gathman wrote:
> > On Sat, 14 Mar 2009, Dietmar Maurer wrote: 
> > It just means that write barriers won't get passed to the device.
> > This is only a problem if the devices have write caches.  Note 
> > that with multiple devices, even a FIFO write cache could cause 
> > reordering between devices (one device could finish faster than another).
> No, it's more than that. PostgreSQL gurus say LVM doesn't honor fsync(),

That is clearly wrong - since fsync() isn't LVM's responsibility.
I think they mean that fsync() can't garrantee that any writes are
actually on the platter.

> that data doesn't even get to the controller, and it doesn't matter
> if the disks have write caches enabled or not. Or if they have battery backed
> caches. Please read the thread I linked. If what they say it's true,

That is clearly wrong.  If writes don't work, nothing works.

> you can't use LVM for anything that needs fsync(), including mail queues
> (sendmail), mail storage (imapd), as such. So I'd really like to know.

fsync() is a file system call that writes dirty buffers, and then waits
for the physical writes to complete.  It is only the waiting part that
is broken.

	      Stuart D. Gathman <stuart at bmsi.com>
    Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flammis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.

More information about the linux-lvm mailing list