[linux-lvm] fsync() and LVM
greg.freemyer at gmail.com
Mon Mar 16 19:36:33 UTC 2009
On Mon, Mar 16, 2009 at 2:50 PM, Les Mikesell <lesmikesell at gmail.com> wrote:
> Stuart D. Gathman wrote:
>>> 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
>>> 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.
> It's a yes or no question... Fsync() either guarantees that the write is
> committed to physical media so the application can continue knowing that
> it's own transactional expectations are met (i.e. you can crash and recover
> that piece of data), or it is broken. If it doesn't wait for completion, it
> can't possibly report the correct status.
This discussion seems a bit bizarre to me. Many apps require data get
to stable memory in a well defined way. Barriers is certainly one way
to do that, but I don't think barriers are supported by LVM, mdraid,
Those are some very significant subsystems. I have to believe
filesystems have another way to implement fsync if barriers are not
supported in the stack of block susbsystems.
Maybe this discussion needs to move to a filesystem list, since it is
the filesystem that is responsible for making fsync() work even in the
absence of barriers.
Head of EDD Tape Extraction and Processing team
Litigation Triage Solutions Specialist
First 99 Days Litigation White Paper -
The Norcross Group
The Intersection of Evidence & Technology
More information about the linux-lvm