Re: [RFC PATCH v3 0/3] ceph: kernel client cephfs quota support

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

 



On Wed, Dec 20, 2017 at 11:18 PM, Luis Henriques <lhenriques@xxxxxxxx> wrote:
> A cephfs-specific quota implementation has been available in the
> user-space fuse client for a while.  This quota implementation allows an
> administrator to restrict the number of bytes and/or the number of files
> in a filesystem subtree.  This quota implementation, however, is
> supported at the client-level only, which means that cooperation is
> required between different clients accessing the system.
>
> This obviously assumes that all clients are trusted entities and will
> respect the quotas, preventing users from exceeding the quota limits.
> Since the kernel client doesn't support quotas, it has not been possible
> to use it in a cluster where quotas are a requirement.
>
> This patchset is an RFC that adds kernel client support for cephfs
> quotas as it is currently implemented in the ceph fuse client.  Note
> however that this patchset is not yet feature complete, as it only
> implements the max_files quota (max_bytes is still missing).
>
> ** Changes since v2 **
>
> Rework after review from Yan, Zheng:
>
> - Dropped patch 0001 ("ceph: add seqlock for snaprealm hierarchy change
>   detection") and use mdsc->snap_rwsem for walking the snaprealm
>   hierarchy instead of adding a seqlock.  This means that patches 0003
>   and 0004 needed to be reworked.
>
> - Added a NULL check in ceph_handle_quota() after the inode lookup with
>   ceph_find_inode().
>
> ** Changes since v1 **
>
> Instead of trying to do a reverse path walk to find the "quota realm"
> for a given directory, this patchset is now using snaprealms.  Thus, for
> testing it, a modified MDS is required:
>
>   https://github.com/ukernel/ceph/tree/wip-cephfs-quota-realm
>
> This modified MDS creates a snaprealm when a quota is set in a
> directory.  This means that a client needs only to walk up the snaprealm
> hierarchy to find a directory that has quotas instead of doing the full
> reverse path walking.
>
> Note however that this requires an extra patch that adds a seqlock (1st
> patch in series) to detect changes in the snaprealm hierarchy.
>
> Luis Henriques (3):
>   ceph: quota: add initial infrastructure to support cephfs quotas
>   ceph: quotas: support for ceph.quota.max_files
>   ceph: quota: don't allow cross-quota renames
>
>  fs/ceph/Makefile                   |   2 +-
>  fs/ceph/dir.c                      |  16 ++++
>  fs/ceph/file.c                     |   4 +-
>  fs/ceph/inode.c                    |   6 ++
>  fs/ceph/mds_client.c               |  23 +++++
>  fs/ceph/mds_client.h               |   2 +
>  fs/ceph/quota.c                    | 190 +++++++++++++++++++++++++++++++++++++
>  fs/ceph/super.h                    |  10 ++
>  fs/ceph/xattr.c                    |  44 +++++++++
>  include/linux/ceph/ceph_features.h |   3 +-
>  include/linux/ceph/ceph_fs.h       |  17 ++++
>  11 files changed, 314 insertions(+), 3 deletions(-)
>  create mode 100644 fs/ceph/quota.c
>

a few minor comments, otherwise this series looks good.

Regards
Yan, Zheng

> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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