4.7. 使用 Ceph 文件系统配额
作为存储管理员,您可以查看、设置和删除文件系统中任何目录的配额。您可以在 目录中对字节数或文件数施加配额限制。
4.7.1. 先决条件
-
确保已安装了
attr
软件包。
4.7.2. Ceph 文件系统配额
Ceph 文件系统 (CephFS) 配额允许您限制存储在目录结构中的字节数或文件数。
限制
- CephFS 配额依赖于客户端挂载文件系统,从而在达到配置的限制时停止写入数据。但是,仅使用配额并不能阻止对立的、不受信任的客户端填充文件系统。
- 当向文件系统写入数据的进程达到配置的限制后,在数据量达到配额限制和进程停止写入数据之间相隔短暂的时间。时间段通常以秒为单位测量。但是,在该时间内,进程会继续写入数据。进程写入的额外数据量取决于进程停止前经过的时间量。
-
在以前的版本中,配额只支持用户空间 FUSE 客户端。对于 Linux 内核版本 4.17 或更高版本,CephFS 内核客户端支持针对 Ceph 模拟或更新集群的配额。Red Hat Enterprise Linux 8 和 Red Hat Ceph Storage 4 分别满足了这些版本要求。用户空间 FUSE 客户端可用于较旧、较新的操作系统和集群版本。FUSE 客户端由
ceph-fuse
软件包提供。 -
在使用基于路径的访问限制时,请确保在限制客户端的目录或嵌套在它下的目录上配置配额。如果客户端的访问权限受限于基于 MDS 能力的特定路径,并且配额是在客户端无法访问的上级目录中配置的,则客户端不会强制实施配额。例如,如果客户端无法访问
/home/
目录,且在/home/
上配置了配额,客户端就无法强制设置目录/home/user/
目录的配额。 - 已删除或更改的快照文件数据不会计算配额数。
4.7.3. 查看配额
使用 getfattr
命令和 ceph.quota
扩展属性来查看目录的配额设置。
如果属性出现在目录索引节点中,则该目录具有配置的配额。如果索引节点中未显示这些属性,则该目录没有设置配额,尽管其父目录可能已配置了配额。如果扩展属性的值为 0,则不设置配额。
先决条件
-
确保已安装了
attr
软件包。
流程
查看 CephFS 配额:
使用字节限制配额:
语法
getfattr -n ceph.quota.max_bytes DIRECTORY
示例
[root@fs ~]# getfattr -n ceph.quota.max_bytes /cephfs/
使用 file-limit 配额:
语法
getfattr -n ceph.quota.max_files DIRECTORY
示例
[root@fs ~]# getfattr -n ceph.quota.max_files /cephfs/
其它资源
-
如需更多信息,请参阅
getfattr(1)
手册页。
4.7.4. 设置配额
本节介绍如何使用 setfattr
命令和 ceph.quota
扩展属性为目录设置配额。
先决条件
-
确保已安装了
attr
软件包。
流程
设置 CephFS 配额的步骤:
使用字节限制配额:
语法
setfattr -n ceph.quota.max_bytes -v 100000000 /some/dir
示例
[root@fs ~]# setfattr -n ceph.quota.max_bytes -v 100000000 /cephfs/
在本例中,100000000 字节等于 100 MB。
使用 file-limit 配额:
语法
setfattr -n ceph.quota.max_files -v 10000 /some/dir
示例
[root@fs ~]# setfattr -n ceph.quota.max_files -v 10000 /cephfs/
在本例中,10000 等于 10,000 个文件。
其它资源
-
如需更多信息,请参阅
setfattr(1)
手册页。
4.7.5. 删除配额
本节介绍如何使用 setfattr
命令和 ceph.quota
扩展属性从目录中移除配额。
先决条件
-
确保已安装了
attr
软件包。
流程
移除 CephFS 配额:
使用字节限制配额:
语法
setfattr -n ceph.quota.max_bytes -v 0 DIRECTORY
示例
[root@fs ~]# setfattr -n ceph.quota.max_bytes -v 0 /cephfs/
使用 file-limit 配额:
语法
setfattr -n ceph.quota.max_files -v 0 DIRECTORY
示例
[root@fs ~]# setfattr -n ceph.quota.max_files -v 0 /cephfs/
其它资源
-
如需更多信息,请参阅
setfattr(1)
手册页。
4.7.6. 其它资源
-
如需更多信息,请参阅
getfattr(1)
手册页。 -
如需更多信息,请参阅
setfattr(1)
手册页。