Linux - limit na katalog?


21

Mam następujące scenariusze:

Pojedyncza partycja zamontowana jako /, z dużą ilością miejsca na dysku.

Istnieje szereg katalogów (/ pg / tbs1, / pg / tbs2, / pg / tbs3 i tak dalej) i chciałbym ograniczyć całkowity rozmiar tych katalogów.

Jedną z opcji jest utworzenie dużych plików, a następnie ich zainstalowanie przez mkfs i zamontowanie pętli zwrotnej, a następnie ustawienie limitu, ale to sprawia, że ​​rozszerzenie jest nieco problematyczne.

Czy jest jakiś inny sposób, aby przydział działał na katalog?

linux  quota 

Montowanie plików przez sprzężenie zwrotne tak naprawdę nie stanowi problemu z rozszerzeniem. Po prostu rozszerzysz plik bazowy, a następnie użyjesz go resize2fsdo rozbudowy systemu plików. Myślę, że używanie LVM jest lepszym rozwiązaniem, ale to, które zaproponowałeś, nie ma ograniczeń, które Twoim zdaniem mają.
larsks

także btrfs i zfs
hanshenrik 16.04.16

Odpowiedzi:


17

Jeśli jesteś zmuszony użyć ext3, to użycie LVM jest prawdopodobnie najlepszym rozwiązaniem. Utwórz nowy system plików dla projektu. To by wyglądało mniej więcej tak:

# 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

Rozwijanie systemów plików projektu jest łatwe:

# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1

# Grow the filesystem.
resize2fs /dev/vg0/project1

6

Jeśli nie polegasz na uprawnieniach grupy, możesz użyć innej grupy UNIX dla każdego „katalogu przydziału”, a następnie ustaw bit sgid w każdym katalogu (tak utworzone pliki i katalogi będą należeć do grupy katalogu zamiast do grupy podstawowej użytkownika-twórcy) i użyj przydziałów grupowych.


5

Tak. Spójrz na system plików XFS i przydział projektu. Inne systemy plików nie oferują tej funkcji.


Niestety nie mogę zmienić podstawowego fs. Ale dobrze wiedzieć, że XFS ma taką możliwość.

5

Właściwie chciałem to zrobić przez jakiś czas, ponieważ nie chciałem zmuszać użytkowników systemu do korzystania z wszystkich moich wirtualnych użytkowników poczty. Systemy plików ZFS z przydziałami byłyby świetne, a program zfs-fuse robi postępy każdego dnia, ale chciałem bardzo lekkiego rozwiązania. W końcu postanowiłem napisać system plików FUSE, który mógłbym zamontować jako warstwę na innym systemie plików (każdy katalog podstawowy będzie działał). Ma narzędzie do zarządzania przydziałami, które można łatwo skrypty, a ponieważ wartości przydziałów są po prostu przechowywane jako xattr w katalogach lub plikach, jeden punkt montowania może obsługiwać dowolną liczbę przydziałów.

Od jakiegoś czasu testuję go na serwerze pocztowym, a ostatnio zdecydowałem, że osiągnął wiek dojrzewania i był gotowy do wypuszczenia na wolność. Jeśli jesteś ciekawy, możesz to sprawdzić na stronie http://code.google.com/p/fusequota/ . Byłbym bardzo wdzięczny za wszelkie opinie.



Lustro Git nie działało dla mnie. Żadnych błędów, ale mogę przekroczyć limit (na ext4 z opcjami montowania rw, relatime, data = zamówienie)
timdiels

3

Nowym systemem plików dla każdego folderu współdzielonego jest nadmiar IMHO. Po prostu utwórz nową grupę dla każdego folderu współdzielonego, ustaw grupę właściciela folderu współdzielonego na tę grupę, ustaw lepki bit do grupy (tak, aby każdy nowy plik i katalog miał tę grupę jako właściciela), a dla uprawnień do plików i folderów używaj list acl. Następnie ustaw kwoty dla tych grup.


1

Nie znam żadnej metody ustawiania cudzysłowów na katalog.

Ale zgodnie z Twoim pomysłem tworzenia systemów plików o ograniczonym rozmiarze. To może być miejsce, w którym lvm byłoby dobrym rozwiązaniem.

Możesz wykonać kopię zapasową / zainstalować ponownie i użyć lvm , przydzielając tylko minimalną ilość miejsca potrzebną twoim woluminom logicznym. Bardzo łatwo jest rozszerzyć woluminy logiczne lvm .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.