Re: libcephfs / librados namespace support for nfs-ganesha

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2018-10-05 at 22:31 +0200, Stefan Kooman wrote:
> Dear devs (ceph-devel / nfs-ganesha-devel),
> 
> Matt Benjamin asked me in this github issue [1] to send an email to the
> dev mailing lists to discuss a feature [1]. As this feature needs
> support from both "(lib)cephfs", librados as well as nfs-ganesha I'm
> sending it to both lists.
> 
> TL;DR:
> 
> Add support for nfs-ganesha to make use of 1) librados namespace, 2)
> (lib)cephfs namespace in order to avoid seperate pools for each
> nfs-ganesha instance.
> 
> Motivation:
> 
> As far as I'm aware of libcephfs / librados support "namespaces". Note:
> namespaces in this context are not "multiple filesystems" but rather an
> "object prefix" to separate different objects in cephfs / RADOS. One of
> the benefits of "namespaces" is that you can have multiple instances of
> ganesha using the same pool / filesystem without objects clashing.
> 
> Currently you would need a separate pool for "RADOS_KV" and "RADOS_URLS"
> per nfs-ganesha instance. With namespace support in libcephfs you
> would be able to logically seperate the objects per namespace: one for
> each nfs-ganesha instance ... and restrict access to only this namespace
> instead of the whole pool:
> 
> caps: [mds] allow rw path=/path/on/cephfs
> caps: [mon] allow r
> caps: [osd] allow rw pool=cephfs_data namespace=your-name-space-here
> 
> As a (Ceph) storage admin you would be able to provide tenants the
> (cephx) capabilities to use nfs-ganesha, without the need to give them
> rw access to your cephfs_data pool(s).
> 
> As it turns out the "librados" support is already present in nfs-ganesha
> 2.7 [2]. However, only when you are using the CEPH FSAL in
> "active/active" mode. It would be nice to "backport" / reuse this code
> to be able to use it with the "rados_ng" RADOS_KV recovery backend and /
> or RADOS_URLS. This would be useful for those that (still) want to use a
> "active/passive" setup (CTDB, pacemaker / corosync).
> 
> The "libcephfs" namespace support is not yet implemented in nfs-ganesha
> AFAIK. This would provide the benefits as discussed in motivation.
> 
> With adding support for "namespaces" it opens the way for nfs-ganesha
> multi-tenancy.
> 
> Does this makes sense? Do you agree on the use case? Would this indeed
> need support from both ceph as well as nfs-ganesha developers?
> 
> Thanks,
> 
> Stefan Kooman
> 
> [1]: https://github.com/nfs-ganesha/nfs-ganesha/issues/353
> [2]:
> https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/doc/man/ganesha-rados-grace.rst
> 

This is already implemented via a "namespace" parameter to RADOS_KV in
nfs-ganesha 2.7. It's not implemented in RADOS_URLS yet, but it wouldn't
be too hard to do.
-- 
Jeff Layton <jlayton@xxxxxxxxxx>




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux