Dne 22. 01. 24 v 12:22 Su Yue napsal(a):
Hi lvm folks,
   Recently We received a report about the device cache issue after vgchange 
—deltag.
What confuses me is that lvm never calls fsync on block devices even at the end 
of commit phase.

IIRC, it’s common operations for userspace tools to call fsync/O_SYNC/O_DSYNC 
while writing
critical data. Yes, lvm2 opens devices with O_DIRECT if they support , but 
O_DIRECT doesn't
provide data was persistent to storage when write returns. The data can still 
be in the device cache,
If power failure happens in the timing, such critical metadata/data like vg 
metadata could be lost.

Is there any particular reason not to flush data cache at VG commit time?


Hi

It seems the call to 'dev_flush()' function got somehow lost over the time of conversion to async aio usage - I'll investigate.

On the other hand the chance here of losing any data this way would be really really very specific to some oddly behaving device.


Regards

Zdenek


Reply via email to