+
25
-

回答

在 CentOS/RHEL Stream 里,最常用、最稳定的单目录容量限制有两种:XFS 目录配额(project quota)虚拟磁盘镜像绑定(loop+镜像)。下面用通俗、可直接复制的步骤讲清楚。

一、XFS 文件系统:目录配额(推荐)

适用:目录所在分区是 XFS(CentOS/RHEL 7/8/9 默认)。

1. 挂载选项加 pquota

编辑 /etc/fstab,给对应分区加 pquota(项目配额):

/dev/mapper/...  /data  xfs  defaults,pquota  0 0

重新挂载:

mount -o remount /data
2. 配置项目与目录
# 1) 项目ID → 目录
echo "100:/data/limit_dir" >> /etc/projects

# 2) 项目名 → ID
echo "mydir:100" >> /etc/projid
3. 初始化项目
xfs_quota -x -c "project -s mydir" /data
4. 限制大小(硬限制 10G)
xfs_quota -x -c "limit -p bsoft=9G bhard=10G mydir" /data
5. 查看状态
xfs_quota -x -c "report -pbh" /data

二、ext4 等:虚拟镜像绑定(通用)

适用:ext4/btrfs 等不支持目录配额的文件系统。

1. 创建 10G 空镜像
dd if=/dev/zero of=/data/dir.img bs=1G count=10
2. 格式化
mkfs.xfs /data/dir.img
# 或 mkfs.ext4 /data/dir.img
3. 挂载到目标目录
mkdir -p /data/limit_dir
mount /data/dir.img /data/limit_dir
4. 开机自启(/etc/fstab)
/data/dir.img  /data/limit_dir  xfs  loop,defaults  0 0

三、一句话区别

XFS 配额不占预分配空间、原生、性能好,只限制目录实际用量。

镜像挂载占满 10G 空间、通用所有文件系统。

--- 水平线 ---

四、简单判断

目录在 XFS → 用 xfs_quota project(推荐)。

目录在 ext4 → 用 loop 镜像 最简单。

网友回复

我知道答案,我要回答