gpt4 book ai didi

linux - ext4中的项目配额

转载 作者:行者123 更新时间:2023-12-03 09:59:33 30 4
gpt4 key购买 nike

这与在ext4文件系统上设置项目配额/目录配额有关。通过https://lore.kernel.org/patchwork/patch/541895/修补程序提交了允许在ext4文件系统中使用项目配额的修补程序。

我已经尝试了以下步骤(随后是相关命令):
1.在块设备上创建文件系统
mkfs.ext4/dev/nvme0n1

  • 启用项目配额
    tune2fs -O项目-Q prjquota/dev/nvme0n1
  • 安装块设备:
    挂载-o prjquota/dev/nvme0n1/test
  • 在安装路径上启用配额:
    quotaon -Pv -F vfsv1/test
  • 为项目配额创建项目ID/项目名称:
    回声51:/test/first >>/etc/projects
    echo testproj:51 >>/etc/projid
  • 编辑与项目用户相关的配额:testproj
    edquota -P testproj

  • 将软块单位设置为10,将硬块单位设置为20
  • 符合配额设置

  • repquota -avugP

    报告设备/dev/nvme0n1上的项目配额
    阻止宽限时间:7天; Inode宽限时间:7天
    阻止限制文件限制

    项目使用了软硬的宽限期

    testproj-0 10 20 0 0 0
  • 开始在/test/first
  • 下的所述目录上编写/执行IO

    fallocate -l 10G ten.txt
  • 我可以看到在该位置创建了一个大小为10G的文件,在#7中运行上述命令后,我发现消耗的inode没有变化。

  • 还有其他步骤可在ext4文件系统上启用配额吗?

    内核版本:4.15.0-36-通用

    最佳答案

    我相信你想念一个

    chattr +P -p 51 /test/first

    /etc/projects似乎仅由XFS工具使用。此外,/etc/projid仅用于 pretty-print 。

    仅供引用,这是我想出的过程:

    (第0步实际创建块设备:
    dd if=/dev/zero of=/tmp/fs bs=1024 count=80000
    losetup -f /tmp/fs
    losetup -l

    )
  • 创建一个具有足够大的inode的文件系统:
  • mkfs.ext4 -I 256 /dev/loop0
  • 启用项目配额,并确保默认情况下已安装文件系统(此处在-E中使用扩展选项,避免了step3中的mount选项,但由于在/proc/mounts中看不到已安装的文件,因此非常不方便这样)
  • tune2fs -Q prjquota  /dev/loop0
    tune2fs -E mount_opts=prjquota /dev/loop0
  • 挂载它
  • mount /dev/loop0 /mnt/loop/
  • 命令上的配额似乎没有用,因此跳过此
  • 设置了一个项目ID,但是纯粹出于礼貌供下一个登录到您的计算机的系统管理员使用。实际不是必需的
  • echo testproj:51 >> /etc/projid
  • 实际上使您的文件夹成为项目的一部分(列表中缺少该文件夹)
  • mkdir abc
    chattr +P -p 51 abc
  • 编辑配额。让我们使用setquota工具,该工具有一天可以在某个可笑的剧本中使用,不像edquota运行交互式编辑器:
  • setquota -P testproj 0 1234 0 0 /mnt/loop/
  • 确认已设置配额
  • repquota  -P   /mnt/loop/
    # in some parsable format, assuming you wrote some simple enough strings in projid, since the xml formatter is pretty basic
    repquota -P /mnt/loop/ -O xml
  • 验证它是否有效:

  • 作为普通用户:
    dd if=/dev/zero of=someoutput oflag=append
    loop0: write failed, project block limit reached.
    dd: writing to 'someoutput': Disk quota exceeded
    2471+0 records in
    2470+0 records out
    1264640 bytes (1.3 MB, 1.2 MiB) copied, 0.00985608 s, 128 MB/s
  • 验证您可以以普通用户的身份轻松逃脱它:
  • chattr  -p 43 someoutput
    dd if=/dev/zero of=someoutput oflag=append
    dd: writing to 'someoutput': No space left on device
    127427+0 records in
    127426+0 records out
    65242112 bytes (65 MB, 62 MiB) copied, 0.561987 s, 116 MB/s

    这里完全填充了文件系统。

    编辑:有关项目配额 Re: Project Quota file owner could change its project ID?Re: ext4 and project quotas bugs (/ features) 的限制的更多信息

    关于linux - ext4中的项目配额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52665377/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com