全部:
我正在使用有配额限制的 cephfs。
使用 ceph-fuse 安装
ceph-fuse fuse.ceph-fuse 105G 5.6G 100G 6% /ceph
创建配额限制
setfattr -n ceph.quota.max_bytes -v 100000000 /ceph/rc
显示配额限制
[root@localhost ~]# getfattr -n ceph.quota.max_bytes /ceph/rc
getfattr: Removing leading '/' from absolute path names
# file: ceph/rc
ceph.quota.max_bytes="100000000"
[root@locahost rc]# dd if=/dev/zero of=1G.img bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 31.0612 s, 34.6 MB/s
[root@localhost rc]# du -sh *
1.0G 1G.img
它不能与 cephfs 配额一起使用吗???
任何人都可以给我同样的建议吗?
我遇到了完全相同的问题,在使用
--client-quota
安装时使用 ceph-fuse
选项解决了。
ceph-fuse -m ip address:6789 --client-quota /XXX
文档说强制执行并不准确,当超出限制时,客户端可以再写入大约 10 秒。现在从您的
dd
输出看来,写入速度足够低,以至于超出配额的 0.9 GiB 大部分已稍后发送。但是,可能会发生缓冲,并且几乎所有时间都花在关闭文件上。为了正确测试这一点,您需要慢慢地达到极限并确保数据被写出。我建议重复附加到测试文件或创建多个文件,每次添加少量数据并在每次操作之间留出足够的时间。
在我可以访问的使用 CephFS 的 HPC 集群上执行此操作,我努力达到了 0.9 MiB 的限制(使用
truncate -s
并将 ceph.dir.rbytes 与 ceph.quota.max_bytes 进行比较;同时,数据使用量根据du
已经超出了限制几 MiB,平均每个文件约 262 字节,与 CephFS 向 du
报告的块大小为 512 字节一致)。我又等了30秒,用echo hello > test.txt
确认我仍然可以写入数据。然后我添加了 2 MiB 数据,超出了限制 1.1 MiB。这成功了,但又等了 30 秒并尝试 echo hello2 > test2.txt
,我收到“写入错误:磁盘配额超出”。