Вы уверены, что это действительно, что Вы хотите сделать? Существует очень хорошая статья о том, почему это - плохая плохая плохая идея, законченная в Joel на программном обеспечении (см. точку № 3)...
Заключение: в следующий раз кто-то пытается продать Вам продукт программирования, который позволяет Вам ресурсы сети доступа, которыми было то же, поскольку Вы получаете доступ к локальным ресурсам, выполняете полную скорость в противоположном направлении.
Если Вы хотите знать, почему, считайте соответствующие части статьи.
Если Вы вынуждены использовать 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
Да. Взгляд на файловую систему XFS и квоту проекта. Другая файловая система не предлагает эту функцию.
Я не знаю ни о каком методе для установки кавычек на каталог.
Но вдоль Вашей идеи создать файловые системы с ограниченным размером. Это могло бы быть местом, где lvm будет хорошим решением.
Вы могли копировать/переустанавливать и использовать lvm, только выделяя минимальное количество пространства, необходимого к Вашим логическим томам. Очень легко расширить lvm логические тома.
Я на самом деле хотел сделать это некоторое время, потому что я не хотел должным быть делать пользователей системы для всех моих виртуальных почтовых пользователей. Файловые системы ZFS с квотами были бы большими, и zfs-предохранитель делает успехи каждый день, но что я хотел, было очень легкое решение. Наконец я решил записать файловую систему FUSE, которую я мог смонтировать как слой по другой файловой системе (любой базовый каталог будет работать на самом деле). Это имеет утилиту для руководящих квот, которые могут быть заданы сценарием с легко и так как значения квоты просто хранятся как xattrs на каталогах или файлах, одна точка монтирования может оказать поддержку для произвольного числа квот.
Я тестировал его на почтовом сервере некоторое время и недавно решил, что это достигло юности и было готово выпустить на волю. Если Вам любопытно, можно проверить его по http://code.google.com/p/fusequota/. Я был бы очень признателен за любую обратную связь.
Если Вы не полагаетесь на полномочия группы, можно использовать другую группу UNIX для каждого "каталога квоты", то установленный sgid обдумал каждый каталог (так созданные файлы, и каталоги будут принадлежать группе каталога вместо основной группы пользователя создателя), и используйте квоты группы.
Новая файловая система для каждой общей папки - это ИМХО излишество. Просто создайте новую группу для каждой общей папки, установите группу владельцев общей папки для этой группы, установите липкий бит для группы (чтобы каждый новый файл и каталог имел эту группу в качестве владельца), а для разрешений на файлы и папки используйте списки acl. Затем установите квоты для этих групп.