Hi all, There has been some confusion the past couple days at the CHEP conference during conversations about Ceph and protection from bit flips or other subtle data corruption. Can someone please summarise the current state of data integrity protection in Ceph, assuming we have an XFS backend filesystem? ie. don't rely on the protection offered by btrfs. I saw in the docs that wire messages and journal writes are CRC'd, but nothing explicit about the objects themselves. We also have some specific questions: 1. Is an object checksum stored on the OSD somewhere? Is this in user.ceph._, because it wasn't obvious when looking at the code… 2. When is the checksum verified. Surely it is checked during the deep scrub, but what about during an object read? 2b. Can a user read corrupted data if the master replica has a bit flip but this hasn't yet been found by a deep scrub? 3. During deep scrub of an object with 2 replicas, suppose the checksum is different for the two objects -- which object wins? (I.e. if you store the checksum locally, this is trivial since the consistency of objects can be evaluated locally. Without the local checksum, you can have conflicts.) 4. If the checksum is already stored per object in the OSD, is this retrievable by librados? We have some applications which also need to know the checksum of the data and this would be handy if it was already calculated by Ceph. Thanks in advance! Dan van der Ster CERN IT _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com