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? 

Thanks
—
Su

Reply via email to