[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
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