On Sun, Mar 14, 2010 at 9:14 AM, Christian Brunner <c...@muc.de> wrote: > > Attached is an updated version of my rados kvm driver. I did the following > changes: >
We tested it and it looks great. We were working on a native linux rados block device, and it'll be great if it would be compatible with the kvm one. There were some fairly minor issues that were related to the header. This is the modified metadata header that we're currently using: struct rbd_obj_header_ondisk { char text[64]; char signature[4]; char version[8]; __le64 image_size; char obj_order; unsigned char crypt_type; unsigned char comp_type; __le16 snap_count; __le32 snap_id[0]; } __attribute__((packed)); Note that I changed objsize to obj_order, so that it'd be clear that the object size is a power of 2. Also, each of the fields should have be endian aware. We prefer using little-endian data, just so that it would be consistent across the ceph system. Another issue is that the structure should be packed, so that it doesn't have any alignment problems. The original structure specified an array of MAX_SNAPS snap_id, where MAX_SNAPS is currently 4096. I'd rather have it set later on dynamically, as this is huge and quite a waste. The following was also changed: #define RBD_SUFFIX ".rbd" #define RBD_MAX_OBJ_NAME_SIZE 96 #define RBD_MAX_SEG_NAME_SIZE 128 I'd rather that the RBD_SUFFIX be a bit more meaningful. The object name size was reduced to 96 so that we don't overflow when adding the segment name. Thanks! Yehuda ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Ceph-devel mailing list Ceph-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ceph-devel