Linux - квота на каталог?


21

У меня есть следующие сценарии:

Один раздел, смонтированный как /, с большим количеством дискового пространства.

Существует несколько каталогов (/ pg / tbs1, / pg / tbs2, / pg / tbs3 и т. Д.), И я хотел бы ограничить общий размер этих каталогов.

Один из вариантов - создать несколько больших файлов, затем mkfs, смонтировать их по кольцу, а затем установить квоту, но это делает расширение немного проблематичным.

Есть ли другой способ заставить квоту работать на каталог?

linux  quota 

Монтирование файлов через loopback на самом деле не представляет проблемы расширения. Вы бы просто расширили базовый файл и затем использовали его resize2fsдля расширения файловой системы. Я думаю, что использование LVM - лучшее решение, но предложенное вами не имеет ограничений, которые, как вы думаете, оно имеет.
Жаворонки

также btrfs и zfs
hanshenrik

Ответы:


17

Если вы вынуждены использовать 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

6

Если вы не полагаетесь на групповые разрешения, вы можете использовать разные группы UNIX для каждого «каталога квот», а затем установить бит sgid для каждого каталога (поэтому созданные файлы и каталоги будут принадлежать группе каталога, а не основной группе). пользователя-создателя) и использовать групповые квоты.


5

Да. Посмотрите на файловую систему XFS и квоту проекта. Другие файловые системы не предлагают эту функцию.


К сожалению, я не могу изменить основной фс. Но хорошо знать, что в XFS есть такая возможность.

5

Я действительно хотел сделать это некоторое время, потому что я не хотел делать системных пользователей для всех моих пользователей виртуальной почты. Файловые системы ZFS с квотами были бы хороши, и zfs-fuse делает успехи каждый день, но то, что я хотел, было очень легким решением. Наконец, я решил написать файловую систему FUSE, которую я мог бы монтировать как слой поверх другой файловой системы (любой базовый каталог будет работать на самом деле). У него есть утилита для управления квотами, которые можно легко создавать с помощью сценариев, а поскольку значения квот просто хранятся в виде xattrs в каталогах или файлах, одна точка монтирования может обеспечить поддержку произвольного количества квот.

Я тестировал его на почтовом сервере некоторое время и недавно решил, что он достиг подросткового возраста и был готов к выпуску в дикую природу. Если вам интересно, вы можете проверить это по адресу http://code.google.com/p/fusequota/ . Буду очень признателен за любые отзывы.



Зеркало Git не работает для меня. Никаких ошибок, но я могу превысить квоту (на ext4 с опциями монтирования rw, relaytime, data =
order

3

Новая файловая система для каждой общей папки является ИМХО излишним. Просто создайте новую группу для каждой общей папки, задайте для этой группы группу владельцев общей папки, установите липкий бит для группы (чтобы каждый новый файл и каталог имел эту группу в качестве владельца), а для разрешений для файлов и папок используйте списки ACL. Затем установите квоты для этих групп.


1

Я не знаю ни одного метода, чтобы установить кавычки для каталога.

Но наряду с вашей идеей создания файловых систем с ограниченным размером. Это может быть место, где lvm будет хорошим решением.

Вы можете сделать резервную копию / переустановить и использовать lvm , выделяя только минимальный объем пространства, необходимый для ваших логических томов. Расширить логические тома lvm очень просто .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.