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@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to