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.