CEPH-Devel Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v3 00/10] ceph-rbd: ceph RADOS block device
@ 2010-07-07 22:11 Yehuda Sadeh
  2010-07-07 22:11 ` [PATCH v3 01/10] ceph-rbd: lookup pool in osdmap by name Yehuda Sadeh
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Yehuda Sadeh @ 2010-07-07 22:11 UTC (permalink / raw)
  To: linux-kernel; +Cc: ceph-devel, linux-fsdevel, sage, Yehuda Sadeh

The following is our latest version of the rados block device. Any comments,
questions, suggestions are more than welcome. We would like to have that ready
for inclusion for the next window and it'd be nice having it reviewed by
someone more familiar with the block/storage layer. Note that the actual block
device implementation that we'd happy to get review for is located in the last
patch of the series. All the preceding patches just build up the groundwork,
and implement the infrastructure for it.

RBD allows striping of data across rados, the ceph distributed block layer, and
is binary compatible with Christian Brunner's kvm-rbd implementation. Similarly
to the Sheepdog project, it stripes the block device across 4MB (or other
configurable size) objects stored by the distributed object store, and enjoys
all the rados features (high availability, scalability, snapshots, etc.)

A use case for this device would be to have some kind of a local file system
created on it, and use it with conjuction of kvm to do migration and other
related stuff.  Another option would be to use it as data devices for other
distributed file systems (e.g., ocfs2, gfs2).

The device driver is is based on osdblk. Currently, it resides under the
fs/ceph tree and does not exist as a separate module of its own, such that the
ceph.ko module contains both the ceph file system and the rbd block device.
Another option would be to have it as a separate module that resides under
drivers/block, however, it would still depend on the ceph.ko module.

This version of the patch series includes many bug fixes. The major change is
that it moves the snapshot administration functionality (e.g., snapshot
creation, listing) to the osd side, and takes advantage of the osd extensible
functionality. Also, snapshots can now be rolled back to a specific version.


Yehuda
---

Yehuda Sadeh (10):
  ceph-rbd: lookup pool in osdmap by name
  ceph-rbd: refactor osdc requests creation functions
  ceph-rbd: messenger and osdc changes for rbd
  ceph-rbd: enable creation of clients that don't need mds
  ceph-rbd: refactor mount related functions, add helpers
  ceph-rbd: generalize mon requests, add pool op support
  ceph-rbd: some super.c changes for rbd
  ceph-rbd: osdc support for osd call and rollback operations
  ceph-rbd: sync common header and source files with server version
  ceph-rbd: rados block device

 fs/ceph/Kconfig        |   10 +
 fs/ceph/Makefile       |    2 +-
 fs/ceph/README         |    1 +
 fs/ceph/ceph_fs.c      |   50 +-
 fs/ceph/ceph_fs.h      |    8 +-
 fs/ceph/ceph_strings.c |    1 +
 fs/ceph/debugfs.c      |   11 +-
 fs/ceph/decode.h       |    5 +
 fs/ceph/file.c         |   46 ++
 fs/ceph/messenger.c    |  215 +++++-
 fs/ceph/messenger.h    |    4 +
 fs/ceph/mon_client.c   |  173 ++++-
 fs/ceph/mon_client.h   |    5 +
 fs/ceph/osd_client.c   |  353 ++++++++--
 fs/ceph/osd_client.h   |   66 ++
 fs/ceph/osdmap.c       |   13 +
 fs/ceph/osdmap.h       |    2 +
 fs/ceph/pagelist.c     |    2 +-
 fs/ceph/pagelist.h     |    2 +-
 fs/ceph/rados.h        |    8 +
 fs/ceph/rbd.c          | 1835 ++++++++++++++++++++++++++++++++++++++++++++++++
 fs/ceph/rbd.h          |    8 +
 fs/ceph/rbd_types.h    |   71 ++
 fs/ceph/super.c        |  194 ++++--
 fs/ceph/super.h        |   36 +-
 25 files changed, 2918 insertions(+), 203 deletions(-)
 create mode 100644 fs/ceph/rbd.c
 create mode 100644 fs/ceph/rbd.h
 create mode 100644 fs/ceph/rbd_types.h


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, back to index

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-07 22:11 [PATCH v3 00/10] ceph-rbd: ceph RADOS block device Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 01/10] ceph-rbd: lookup pool in osdmap by name Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 02/10] ceph-rbd: refactor osdc requests creation functions Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 03/10] ceph-rbd: messenger and osdc changes for rbd Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 04/10] ceph-rbd: enable creation of clients that don't need mds Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 05/10] ceph-rbd: refactor mount related functions, add helpers Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 06/10] ceph-rbd: generalize mon requests, add pool op support Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 07/10] ceph-rbd: some super.c changes for rbd Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 08/10] ceph-rbd: osdc support for osd call and rollback operations Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 09/10] ceph-rbd: sync common header and source files with server version Yehuda Sadeh
2010-07-07 22:11 ` [PATCH v3 10/10] ceph-rbd: rados block device Yehuda Sadeh

CEPH-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/ceph-devel/0 ceph-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ceph-devel ceph-devel/ https://lore.kernel.org/ceph-devel \
		ceph-devel@vger.kernel.org
	public-inbox-index ceph-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.ceph-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git