From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=46712 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OEox2-0000ke-Mv for qemu-devel@nongnu.org; Wed, 19 May 2010 15:29:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OEox0-0002Ss-Of for qemu-devel@nongnu.org; Wed, 19 May 2010 15:29:08 -0400 Received: from ncolin.muc.de ([193.149.48.11]:54418) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OEox0-0002Cd-Fy for qemu-devel@nongnu.org; Wed, 19 May 2010 15:29:06 -0400 Date: Wed, 19 May 2010 21:20:53 +0200 From: Christian Brunner Message-ID: <20100519192053.GC61706@ncolin.muc.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] [RFC PATCH 0/1] ceph/rbd block driver for qemu-kvm List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kvm@vger.kernel.org, qemu-devel@nongnu.org Cc: ceph-devel@vger.kernel.org Hi, this patch is a block driver for the distributed file system Ceph (http://ceph.newdream.net/). Ceph was included in the Linux v2.6.34 kernel. However, this driver uses librados (which is part of the Ceph server) for direct access to the Ceph object store and is running entirely in userspace. Therefore it is called "rbd" - rados block device. The basic idea is to stripe a VM block device over (by default) 4MB objects stored in the Ceph distributed object store. This is very similar to what the sheepdog project is doing, but uses the ceph server as a storage backend. If you don't plan on using the entire ceph filesystem you may leave out the metadata service of ceph. Yehuda Sadeh helped me with the implementation and put some additional usage information on the Ceph-Wiki (http://ceph.newdream.net/wiki/Kvm-rbd). He has also written a Linux kernel driver to make an rbd image accessible as a block device. To compile the driver a recent version of ceph (>= 0.20.1) is needed and you have to "--enable-rbd" when running configure. Since our tests where quite promising, I would like to have feedback from other qemu-kvm developers/users. If someone could check the AIO handling of the driver I would be glad, too. Thanks, Christian PS: The patch is based on git://repo.or.cz/qemu/kevin.git block --- Makefile | 3 + Makefile.objs | 1 + block/rados.h | 376 ++++++++++++++++++++++++++++++++++ block/rbd.c | 585 +++++++++++++++++++++++++++++++++++++++++++++++++++++ block/rbd_types.h | 48 +++++ configure | 27 +++ 6 files changed, 1040 insertions(+), 0 deletions(-) create mode 100644 block/rados.h create mode 100644 block/rbd.c create mode 100644 block/rbd_types.h