Project

General

Profile

RGW - NFS » History » Version 1

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

1 1 Jessica Mack
h1. RGW - NFS
2 1 Jessica Mack
3 1 Jessica Mack
h3. Summary
4 1 Jessica Mack
5 1 Jessica Mack
We'd like to be able to export user's data via NFS.
6 1 Jessica Mack
7 1 Jessica Mack
h3. Owners
8 1 Jessica Mack
9 1 Jessica Mack
* Yehuda (Red Hat)
10 1 Jessica Mack
11 1 Jessica Mack
h3. Interested Parties
12 1 Jessica Mack
13 1 Jessica Mack
* Name (affiliation)
14 1 Jessica Mack
15 1 Jessica Mack
h3. Current Status
16 1 Jessica Mack
 
17 1 Jessica Mack
h3. Detailed Description
18 1 Jessica Mack
19 1 Jessica Mack
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 1 Jessica Mack
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 1 Jessica Mack
The mount will be done on a single user’s bucket.
22 1 Jessica Mack
23 1 Jessica Mack
Listing directory
24 1 Jessica Mack
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 1 Jessica Mack
Creating directory
26 1 Jessica Mack
an empty object that contains the name of the directory will be created
27 1 Jessica Mack
Removing directory
28 1 Jessica Mack
if directory is ‘empty’, remove the object associated with the directory. This is racy, we might not want to support it
29 1 Jessica Mack
Open file
30 1 Jessica Mack
Verify validity of corresponding object
31 1 Jessica Mack
Read opened file
32 1 Jessica Mack
Read corresponding object
33 1 Jessica Mack
Write file
34 1 Jessica Mack
Chunked write, continue writing from previous offset, no seeks.
35 1 Jessica Mack
Permissions
36 1 Jessica Mack
Translate user / group permissions to ACLs
37 1 Jessica Mack
 
38 1 Jessica Mack
Implementation Options
39 1 Jessica Mack
ganesha (fuse FSAL) -> s3fs-fuse
40 1 Jessica Mack
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 1 Jessica Mack
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 1 Jessica Mack
any nfs server -> s3fs-fuse
43 1 Jessica Mack
more moving parts than (1), s3fs-fuse still has the same issues.
44 1 Jessica Mack
ganesha (librgw FSAL) -> librgw[fs]
45 1 Jessica Mack
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 1 Jessica Mack
47 1 Jessica Mack
h3. Work items
48 1 Jessica Mack
49 1 Jessica Mack
h4. Coding tasks
50 1 Jessica Mack
51 1 Jessica Mack
# Task 1
52 1 Jessica Mack
# Task 2
53 1 Jessica Mack
# Task 3
54 1 Jessica Mack
55 1 Jessica Mack
h4. Build / release tasks
56 1 Jessica Mack
57 1 Jessica Mack
# Task 1
58 1 Jessica Mack
# Task 2
59 1 Jessica Mack
# Task 3
60 1 Jessica Mack
61 1 Jessica Mack
h4. Documentation tasks
62 1 Jessica Mack
63 1 Jessica Mack
# Task 1
64 1 Jessica Mack
# Task 2
65 1 Jessica Mack
# Task 3
66 1 Jessica Mack
67 1 Jessica Mack
h4. Deprecation tasks
68 1 Jessica Mack
69 1 Jessica Mack
# Task 1
70 1 Jessica Mack
# Task 2
71 1 Jessica Mack
# Task 3