On 01/04/18 13:34, Aurelien RAINONE wrote:
Hello Philippe,
Did you mean it like I could directly use the FSAL you developed,
modify some code (or not?) in order to use S3 as a storage? Or is it
to share solutions you found to some problems I will encounter during
the development of my FSAL_S3.
My position is that object storage (I consider S3 as an "object
accessor") has its own semantic which differs from the POSIX one.
Because of this, it's quite difficult to fit creatures from the object
storage world into a FSAL. What I did is a lib in two sub-component that
emulates a POSIX namespace using object storage as a backup. Since
object storage have few mds (and they are quite different from the POSIX
ones), a (potentially distributed) KVS is used to manage them. What you
can try is taking this lib (look here
https://github.com/phdeniel/kvsns), and use REDIS to store your mds.
You'll then have to implement access to storage (that's the "extstore"
sub library). In particular, this lib handles inodes, open fd (with
management of the "open and deleted" case).
Once you have this, I do have a FSAL that make the interface between
nfs-ganesha and this lib, exposing the emulated namespace. As said
previously, it has no support_ex, it rely on the former version of the
FSAL_API.
The simplest for you is to have a look at the code :
/github.com/phdeniel/kvsns
In both cases, I sure would be happy to have a look at your project,
thank you for that.
What do you mean by no compliancy to support_ex, does that imply a
specific range of ganesha versions? other constraints?
Regards,
Aurélien
2018-01-04 13:18 GMT+01:00 DENIEL Philippe <philippe.den...@cea.fr
<mailto:philippe.den...@cea.fr>>:
Hi Aurélien,
I can provide you an alternate solution, still nfs-ganesha based.
For the need of a project, I developed an open-source library that
emulate a POSIX namespace using a KVS (for metadata) and an object
store (for data). For example, you can use REDIS and RADOS. I have
written a FSAL for it (it is not pushed in the official branch)
but with no compliancy to support_ex, it's still using the former
FSAL semantics (so it should be ported to support_ex). If you are
interested, I can give you some pointers (the code is on github).
You could use S3 as data storage for example. In particular, I had
to solve the same "inode" issue that you met. This solution as
very few impact on nfs-ganesha code (it just adds a new FSAL).
Regards
Philippe
On 01/03/18 19:58, Aurelien RAINONE wrote:
To follow up on the development on an FSAL for S3, I have some
doubts and questions I'd like to share.
Apart from its full path, S3 doesn't have the concept of file
descriptor, I mean, there's nothing else
than the full path that
IcanprovidetoS3inordertogetattributeofcontentofaspecificobject.
I have some doubts regarding the implementation of the S3 fsal
object handle (s3_fsal_obj_handle).
Should s3_fsal_obj_handle be very simple, for example should it
only contain a key that maps to the full S3 filename, in an
key-value store.
Or on the contrary, should the handle implement a tree like
structure, like I saw in FSAL_MEM?
Or something in between, but what?
Having a very simple handle has some advantages but may require
some more frequent network calls,
for example readdir won't have any kind of information about the
content of the directory.
Having a whole tree-like structure in the handle would allow to
have direct access to directory content,
but isn't that the role of ganesha cache to do that?
My questions probably shows that I have problems to understand
the responsability of my FSAL implementation
regarding the cache. Who does what, what doesn't do what?
Good evening,
Aurélien
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
<mailto:Nfs-ganesha-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
<https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel