跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 10 XFS:项目配额与 xfs_repair -n

    XFS 的配额不是“设了就算”:必须在挂载时带 prjquota(或 uquota/gquota),否则 xfs_quota 的命令能跑,但不会拦截写入。本页在 393 的 2G 测试盘上验证 project quota 和只读修复检查。

    在 PVE 393 rhel9-lab(RHEL 10.2)执行:

    Terminal window
    sudo mkfs.xfs -f /dev/sdb
    sudo mkdir -p /mnt/xfsq
    sudo mount -o prjquota /dev/sdb /mnt/xfsq
    sudo xfs_info /mnt/xfsq

    E3 记录:plans/content-expansion/evidence/rhel/rhel-xfs/run.json(5 步,含 quota 与 repair 输出 sha256)。

    • prjquota 是挂载选项,不是 mkfs 参数;
    • xfs_quota -x -c 'limit ...' 只写配额记录;
    • 没有 prjquota,写入不会被拦;
    • xfs_repair -n 是只读检查,不改盘。
    $ sudo xfs_info /mnt/xfsq
    meta-data=/dev/sdb isize=512 agcount=4, agsize=131072 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=1 finobt=1 sparse=1 rmapbt=1
    = reflink=1 bigtime=1 inobtcount=1 nrext64=1

    bigtime=1、reflink=1、rmapbt=1 是 RHEL 10 mkfs.xfs 的默认特性。

    Terminal window
    sudo mkdir -p /mnt/xfsq/team
    sudo xfs_quota -x -c 'project -s -p /mnt/xfsq/team 100' /mnt/xfsq
    sudo xfs_quota -x -c 'limit -p bsoft=100m bhard=120m 100' /mnt/xfsq
    sudo xfs_quota -x -c 'report -h' /mnt/xfsq
    • project -s 把目录绑定到 project ID 100;
    • bsoft=100m 是软限(默认只警告);
    • bhard=120m 是硬限,超过直接 EDQUOT。
    $ sudo dd if=/dev/zero of=/mnt/xfsq/team/big bs=1M count=150
    120+0 records out
    125829120 bytes (126 MB, 120 MiB) copied
    $ sudo du -sh /mnt/xfsq/team
    120M /mnt/xfsq/team

    dd 在 120 个 1M 块后停止,说明 hard limit 生效;应用侧会看到 Disk quota exceeded(EDQUOT)。

    Terminal window
    sudo umount /mnt/xfsq
    sudo xfs_repair -n /dev/sdb
    Phase 1 - find and verify superblock...
    ...
    Phase 7 - verify link counts...
    No modify flag set, skipping filesystem flush and exiting.

    -n 只检查不写;最后一行表示没有修改标志、直接退出。如果没有 -n,xfs_repair 会实际修复,必须先 umount。

    • 挂载带 prjquota/uquota;
    • xfs_quota report 能看到 project;
    • 硬限用 bhard,软限用 bsoft;
    • 用 dd/应用验证 EDQUOT;
    • xfs_repair -n 前先 umount;
    • 生产修复前有备份。
    • 未测试用户/组配额(uquota/gquota);
    • 未测试 quota 宽限期修改;
    • 未测试 xfs_repair 实际修复;
    • 未测试 xfs_scrub 在线检查。