Project

General

Profile

Rados namespaces » History » Version 1

Jessica Mack, 06/09/2015 07:23 AM

1 1 Jessica Mack
h1. Rados namespaces
2
3
h3. Summary
4
5
RADOS currently uses pools both for data distribution (pools are shared into PGs, which map to OSDs) and as the granularity for security (capabilities can restrict access by pool).  Overloading pools for both purposes makes it hard to do multi-tenancy because it not a good idea to have a very large number of pools.
6
A namespace would be a division of a pool into separate logical namespaces.  Instead of (pool, object) to identify an object, it would be (pool, namespace, object) where the default namespace is the empty string. 
7
8
h3. Owners
9
10
* Sage Weil (Inktank)
11
* Sam Just (Inktank)
12
13
h3. Interested Parties
14
15
* Josh Durgin
16
* Dan Mick
17
* Loic Dachary
18
* Christophe Courtaut christophe.courtaut@gmail.com
19
* Wido den Hollander (42on)
20
* Xiaobing Zhou(xzhou40 (AT) hawk.iit.edu)
21
22
h3. Current Status
23
24
There is some underlying plumbing in the OSD to make this possible: the FileStore already has a (currently unused) namespace field that should let us avoid an expensive disk format update/conversion to add namespace support.
25
26
h3. Detailed Description
27
28
- a namespace will be a logical separation of a pool
29
- the librados API will need new methods to specify the namespace for most operations.  any legacy operation will implicitly be namespace=''.
30
- the osd cap syntax/grammar will be extended to allow caps like 'allow pool foo namespace bar rwx'
31
Open questions:
32
- namespace enumeration: will it be supported?  the simplest approach is to not support it explicitly and instead just add the namespace field to the object enumeration path (which is O(n)).
33
- namespace stats: will it be supported?  probably not, at least initially.  the stats (object count, byte count) will remain per-pool.
34
 
35
h3. Work items