Hi, I would like to contribute source code for an experimaental pure userland library to provide transparent client access to rbd images without the use of the client kernel modules rbd.ko and libceph.ko. The attached rpm source package basically provides - the code for librbdwrapper.so - and for the admin command rbdwrapper_adm librbdwrapper.so can be utilized by an application via the LD_PRELOAD mechanism and intercepts some basic standard library calls like open(), close() read() or write() to rbd images. A call to open() is intercepted only if the path name in the call refers to a rbdwrapper file system object. These are administered by the rbdwrapper_adm command, while plays a similar role as the rbd subcommands rbd map <image name> rbd showmapped for rbd images via the rbd.ko and libceph.ko kernel modules. The benefit of librdbwrapper is that - it utilizes the same userland libraries which are used by the ceph daemons - allows for a higher degree of parallelism as far as the number of communication channels to the osd's is concerned: on a single system with multiple client applications, each of these applications uses its own instance of the ceph messenger communication module The drawback of librbdwrapper compared to real block devices as provided by the rbd.ko kernel module is that it does not provide a real block device, i.e. it cannot utilize linux kernel vfs services like mount() or the generic block device driver services. Regards Andreas Bluemle -- Andreas Bluemle mailto:Andreas.Bluemle@xxxxxxxxxxx ITXperts GmbH http://www.itxperts.de Balanstrasse 73, Geb. 08 Phone: (+49) 89 89044917 D-81541 Muenchen (Germany) Fax: (+49) 89 89044910 Company details: http://www.itxperts.de/imprint.htm
Attachment:
rbdwrapper-1-0.1.src.rpm
Description: application/rpm