Thanks Jason, yes, I also do not think they can guarantee atomic in extent level. But for a stripe unit in a object, can the atomic write be guaranteed? thanks.
2016-04-06 19:53 GMT+08:00 Jason Dillaman <dillaman@xxxxxxxxxx>:
It's possible for a write to span one or more blocks -- it just depends on the write address/size and the RBD image layout (object size, "fancy" striping, etc). Regardless, however, RBD cannot provide any ordering guarantees when two clients are writing to the same image at the same extent. To safely use two or more clients concurrently on the same image you need a clustering filesystem on top of RBD (e.g. GFS2) or the application needs to provide its own coordination to avoid concurrent writes to the same image extents.
--
Jason Dillaman
----- Original Message -----
> From: "min fang" <louisfang2013@xxxxxxxxx>
> To: "ceph-users" <ceph-users@xxxxxxxxxxxxxx>
> Sent: Tuesday, April 5, 2016 10:11:10 PM
> Subject: ceph rbd object write is atomic?
> _______________________________________________
> Hi, as my understanding, ceph rbd image will be divided into multiple objects
> based on LBA address.
> My question here is:
> if two clients write to the same LBA address, such as client A write "aaaa"
> to LBA 0x123456, client B write "bbbb" to the same LBA.
> LBA address and data will only be in an object, not cross two objects.
> Will ceph guarantee object data must be "aaaa" or "bbbb"? "aabb", "bbaa" will
> not happen even in a stripe data layout model?
> thanks.
> ceph-users mailing list
> ceph-users@xxxxxxxxxxxxxx
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com