Project

General

Profile

Rgw multi-tenancy » History » Version 3

Yehuda Sadeh, 06/29/2015 09:03 PM

1 2 Yehuda Sadeh
*Summary*
2 1 Yehuda Sadeh
3
Currently RGW follows the S3 scheme, in which users and buckets all reside in a single global tenant.
4
Swift, on the other hand has a distinct tenant entity. Note that the swift tenant is closer to the rgw user in functionality, whereas the swift users are closer to the rgw subusers.
5
All swift users within the same tenant share the same data (as with subusers under rgw user).
6
Buckets names don’t need to be unique across different tenants (unlike rgw).
7
Owners
8
9
    Yehuda (Red Hat)
10
11 2 Yehuda Sadeh
*Interested Parties*
12 1 Yehuda Sadeh
13
    Name (affiliation)
14
15 2 Yehuda Sadeh
*Current Status*
16 1 Yehuda Sadeh
17
 
18 2 Yehuda Sadeh
*Detailed Description*
19 1 Yehuda Sadeh
20
The suggested solution:
21
22 3 Yehuda Sadeh
*Basic*
23 1 Yehuda Sadeh
24
* add ‘tenant’ property to rgw users
25
* add ‘tenant’ property to rgw buckets
26
* any bucket that a user creates will reside under the user’s tenant
27
* buckets will not need to be unique across tenants
28
* user could be referred to as <tenant>:<user>
29
* bucket could be referred to as <tenant>#<bucket> or <tenant>/<bucket> (can’t use <tenant>:<bucket>)
30
for backward compatibility, the global tenant also exists, in which the tenant name is empty. Accessing a bucket through the virtual dns bucket naming scheme (e.g., bucket.dreamhost.com), will got to the bucket in the global region. A configurable will make it possible to change this scheme to be able to specify a tenant, e.g. <bucket>.<tenant>.<domain>.
31
when a user refers to a user or a bucket, if the tenant is not specified its own tenant will be used; when a user specifies permissions on object / bucket, each acl that specifies another user will refer to its own tenant by default. E.g.,
32
33
User sage under the redhat tenant (redhat:sage) gives greg permissions, sage could either specify redhat:greg <- READ_ONLY, or just greg <- READ_ONLY, as greg and sage are on the same tenant.
34
a tenant entity will also exist, and would have several optional configurables
35
default placement target (storage policy)
36
quota (per user in the tenant, for the entire tenant -- if implemented)
37
name[s] of dns entry point[s] for the tenant
38
39 2 Yehuda Sadeh
*Advanced functionality*
40
_not necessarily part of initial solution_
41 1 Yehuda Sadeh
ability to list users that belong to each tenant
42
tenant admin users that can administer their tenant
43
quota per tenant, statistics per tenant