distribution/registry/storage/driver
Vincent Giersch 394eea0231 Storage Driver: Ceph Object Storage (RADOS)
This driver implements the storagedriver.StorageDriver interface and
uses Ceph Object Storage as storage backend.

Since RADOS is an object storage and no hierarchy notion, the
following convention is used to keep the filesystem notions stored in
this backend:

* All the objects data are stored with opaque UUID names prefixed
  (e.g. "blob:d3d232ff-ab3a-4046-9ab7-930228d4c164).
* All the hierarchy information are stored in rados omaps, where the
  omap object identifier is the virtual directory name, the keys in
  a specific are the relative filenames and the values the blob
  object identifier (or empty value for a sub directory).

  e.g. For the following hierarchy:

     /directory1
     /directory1/object1
     /directory1/object2
     /directory1/directory2/object3

  The omap "/directory1" will contains the following key / values:
    - "object1" "blob:d3d232ff-ab3a-4046-9ab7-930228d4c164"
    - "object2" "blob:db2e359d-4af0-4bfb-ba1d-d2fd029866a0"
    - "directory2" ""

  The omap "/directory1/directory2" will contains:
    - "object3" "blob:9ae2371c-81fc-4945-80ac-8bf7f566a5d9"

* The MOVE is implemented by changing the reference to a specific
  blob in its parent virtual directory omap.

This driver stripes rados objects to a fixed size (e.g. 4M). The idea
is to keep small objects (as done by RBD on the top of RADOS) that
will be easily synchronized accross OSDs. The information of the
original object (i.e total size of the chunks) is stored as a Xattr
in the first chunk object.

Signed-off-by: Vincent Giersch <vincent.giersch@ovh.net>
2015-05-20 01:44:34 +00:00
..
azure Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
base Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
factory Move storagedriver package to registry/storage/driver 2015-02-11 12:43:04 -08:00
filesystem Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
inmemory Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
ipc fix some typos in source comments 2015-04-17 12:39:52 +00:00
middleware Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
rados Storage Driver: Ceph Object Storage (RADOS) 2015-05-20 01:44:34 +00:00
s3 Merge pull request #410 from RichardScothern/driver-context 2015-05-04 19:18:30 -07:00
testsuites Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00
fileinfo.go Move storagedriver package to registry/storage/driver 2015-02-11 12:43:04 -08:00
storagedriver.go Make Storage Driver API calls context aware. 2015-04-27 15:58:58 -07:00