我有以下几种情况:
单个分区安装为/,具有大量磁盘空间。
目录范围很广(/ pg / tbs1,/ pg / tbs2,/ pg / tbs3等),我想限制这些目录的总大小。
一种选择是制作一些大文件,然后对它们进行mkfs,并通过环回挂载,然后设置配额,但这会使扩展有些问题。
还有其他方法可以使每个目录的配额工作吗?
我有以下几种情况:
单个分区安装为/,具有大量磁盘空间。
目录范围很广(/ pg / tbs1,/ pg / tbs2,/ pg / tbs3等),我想限制这些目录的总大小。
一种选择是制作一些大文件,然后对它们进行mkfs,并通过环回挂载,然后设置配额,但这会使扩展有些问题。
还有其他方法可以使每个目录的配额工作吗?
Answers:
如果您被迫使用ext3,那么使用LVM可能是最好的解决方案。为每个项目创建一个新的文件系统。看起来像这样:
# Create a 10g filesystem for "project1" in volume group "vg0"
lvcreate -L 10g -n project1 vg0
# Create an ext3 filesystem.
mke2fs -j /dev/vg0/project1
# Mount it (obviously you would want this in /etc/fstab)
mount /dev/vg0/project1 /projects/project1
扩展项目文件系统很容易:
# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1
# Grow the filesystem.
resize2fs /dev/vg0/project1
我实际上已经做了一段时间,因为我不想让所有虚拟邮件用户都成为系统用户。具有配额的ZFS文件系统会很棒,并且zfs-fuse每天都在进步,但是我想要的是一个非常轻巧的解决方案。最终,我决定编写一个FUSE文件系统,该文件系统可以作为另一个文件系统上的一层安装(任何基本目录实际上都可以工作)。它具有用于管理配额的实用程序,可以轻松编写脚本,并且由于配额值只是作为xattrs存储在目录或文件中,因此一个安装点可以支持任意数量的配额。
我已经在邮件服务器上测试了一段时间,最近又确定它已经达到青春期,可以发布了。如果您感到好奇,可以访问http://code.google.com/p/fusequota/进行检查。我将不胜感激任何反馈。
resize2fs
来扩展文件系统。我认为使用LVM是更好的解决方案,但是您提出的解决方案没有您认为的限制。