谷歌已经解析了这篇杜克大学 IT 知识库文章进入信息卡声称任何人搜索“linux配额块大小”
块配额是对帐户可以使用的实际磁盘空间量的限制。此空间以 1 KB 块为单位(1 KB = 1024 字节或字符)。
在这个网站上快速搜索后发现这个答案指的是其他“块大小”的定义,包括 EXT4 的:
典型的块大小为 4KiB。
我闲逛了一下这些源文件有点,但他们的代码注释很少,我无法理解它。
我还隐隐约约认为报告quota(1)
关联文件系统特定块中的“块大小”(大小而不是像 1KiB 这样的通用常量),但是我怎么能核实这?配额工具代码库和文件系统驱动程序代码库之间的联系点在哪里?
答案1
块大小没有通用常数; “UNIX 编程环境”(1984) 第 50 页指出du(1)
文件名很明显;这些数字是每个文件存储的磁盘块数(通常为 512 或 1024 字节)。
4096现在也很流行。
话虽这么说,对于http://sourceforge.net/projects/linuxquota/edquota(8)
文档指出的 工具(可能与其他实现不同)
默认情况下,块使用情况和限制以千字节(1024 字节)块的倍数进行报告和解释。符号 K、M、G 和 T 可以附加到数值上以表示 kibibytes、mebibytes、gibibytes 和 tebibytes。
并xfs_quota(8)
可能会发现
每个限制有四个数字:当前使用量、软限制(配额)、硬限制和时间限制。软限制是用户期望保持在以下的 1K 块(或文件)数量。 ... 报告 [ -gpu ] [ -bir ] [ -ahntlLNU ] [ -f file ] 报告文件系统配额信息。这将报告指定配额类型(u/g/p 和/或块/索引节点/实时)的文件系统的所有配额使用情况。默认情况下,它以 1KB 为单位报告块。 -h 选项以类似于 df(1) 命令的“人类可读”格式进行报告。
“解释为...的倍数”可以轻松支持 4096;-b 4096
配额系统应将文件系统上消耗 1 个 4096 块的用户报告为消耗 4 个 1024 块。对于 512 块文件系统的 1024 字节镜头来说,这可能稍微不准确。然而根据mkfs.ext2
EXT2 仅支持 1024 块或更大:
选项 -b block-size 指定块的大小(以字节为单位)。有效的块大小值为每块 1024、2048 和 4096 字节。
因此,只要程序能够正确计算,将这些转换为 1024 字节进行显示就不会出错。
XFS 允许您创建-b 512
文件系统,因此一个简单的验证测试是创建一个-b 512
文件系统和一个-b 1024
文件系统,在它们上启用配额,并为用户在两者上写入 512 字节。如果 1024-for-quota-display 成立,则两者都应显示消耗了 1 个块。然后再写入 512 个字节,它们仍然应该显示已使用 1 个块。
head -c 512 /dev/zero > a_test_file
否则,您可以使用-b 4096
文件系统进行测试,并查看配额是否以 1024 为单位报告,如上面列出的配额或文件系统的文档所示。对于其他配额软件,请查看文档,并通过执行文件写入测试进行验证。文件写入测试是了解硬限制是否有效、警告和报告是否良好、是否存在合适的文档等的好方法。