Project

General

Profile

RGW - NFS » History » Version 1

Jessica Mack, 08/26/2015 02:30 AM

1 1 Jessica Mack
h1. RGW - NFS
2
3
h3. Summary
4
5
We'd like to be able to export user's data via NFS.
6
7
h3. Owners
8
9
* Yehuda (Red Hat)
10
11
h3. Interested Parties
12
13
* Name (affiliation)
14
15
h3. Current Status
16
 
17
h3. Detailed Description
18
19
Access to rgw objects through nfs. Use case is users that need to migrate existing data into rgw. The mount will be done on a single user’s data. There are two options:
20
The nfs mount will be done on the user itself. The nfs mount will present a view of the user’s buckets at the top level, the next level will present the bucket view
21
The mount will be done on a single user’s bucket.
22
23
Listing directory
24
Bucket data will be shown using the virtual directory structure. For example, having a key /foo/bar, the correct directory structure will be represented, and when listing the root directory, the server will return the ‘foo’ directory.
25
Creating directory
26
an empty object that contains the name of the directory will be created
27
Removing directory
28
if directory is ‘empty’, remove the object associated with the directory. This is racy, we might not want to support it
29
Open file
30
Verify validity of corresponding object
31
Read opened file
32
Read corresponding object
33
Write file
34
Chunked write, continue writing from previous offset, no seeks.
35
Permissions
36
Translate user / group permissions to ACLs
37
 
38
Implementation Options
39
ganesha (fuse FSAL) -> s3fs-fuse
40
s3fs mounts S3 buckets (works at the bucket level). Some work will be needed to make it work on the user level (if needed). It supports most of the functionality out of the box. Doesn’t translate permissions to ACLs, but keeps that data as application specific attributes on the objects.
41
ganesha dropped support for the fuse FSAL recently due to heavy development that was done for version 2.0, and made it obsolete. Some work will be needed to resurrect the fuse FSAL, not clear how hard that would be, however, it seems that there is/was demand for it to happen.
42
any nfs server -> s3fs-fuse
43
more moving parts than (1), s3fs-fuse still has the same issues.
44
ganesha (librgw FSAL) -> librgw[fs]
45
requires developing both librgw, and librgw FSAL layer for ganesha. Note that librgw is not likely to go through the radosgw authentication / authorization sequence, so permissions might be problematic. Also will require setting cephx user on the ceph cluster, and not using the user’s S3 credentials.
46
47
h3. Work items
48
49
h4. Coding tasks
50
51
# Task 1
52
# Task 2
53
# Task 3
54
55
h4. Build / release tasks
56
57
# Task 1
58
# Task 2
59
# Task 3
60
61
h4. Documentation tasks
62
63
# Task 1
64
# Task 2
65
# Task 3
66
67
h4. Deprecation tasks
68
69
# Task 1
70
# Task 2
71
# Task 3