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


21

У мене є такі сценарії:

Один розділ, встановлений як /, з великою кількістю дискового простору.

Існує діапазон каталогів (/ pg / tbs1, / pg / tbs2, / pg / tbs3 тощо), і я хотів би обмежити загальний розмір цих каталогів.

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

Чи є якийсь інший спосіб змусити квоти працювати в каталозі?

linux  quota 

Монтаж файлів за допомогою петлі насправді не представляє проблеми з розширенням. Ви б просто розширити базовий файл, а потім використовувати resize2fsдля вирощування файлової системи. Я думаю, що використання LVM є кращим рішенням, але той, який ви запропонували, не має обмежень, на вашу думку, це є.
larsks

також 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, relatime, data = впорядковано)
timdiels

3

Нова файлова система для кожної спільної папки - це перевиконання IMHO. Просто створіть нову групу для кожної спільної папки, встановіть групу власників спільної папки до цієї групи, встановіть липкий біт для групи (щоб кожен новий файл і каталог мав цю групу як власника), а для дозволів на файли та папки використовуйте списки acl. Потім встановіть квоти для цих груп.


1

Мені невідомий жоден метод встановлення лапок на каталог.

Але разом з вашою ідеєю створення файлових систем з обмеженим розміром. Це може бути місцем, де lvm був би хорошим рішенням.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.