If you are using RBD, and want to avoid potential image corruption, add

        filestore fiemap = false

to the [osd] section of your ceph.conf and restart your OSDs.

We've tracked down the source of some corruption to racy/buggy FIEMAP 
ioctl behavior.  The RBD client (when caching is diabled--the default) 
uses a 'sparse read' operation that the OSD implements by doing an fsync 
on the object file, mapping which extents are allocated, and sending only 
that data over the wire.  We have observed incorrect/changing FIEMAP on 
both btrfs:

        fsync
        fiemap returns mapping
        <time passes, no modifications to file>
        fiemap returns different mapping

Josh is still tracking down which kernels and file system are affected; 
fortunately it is relatively easy to reproduce with the test_librbd_fsx 
tool.  In the meantime, the (mis)feature can be safely disabled. It will 
default to off in 0.48. It is unclear whether it's really much of a 
performance win anyway.

Thanks!
sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to