Linux - Quote pro Verzeichnis?

20

Ich habe folgende Szenarien:

Einzelne Partition gemountet als /, mit viel Speicherplatz.

Es gibt eine Reihe von Verzeichnissen (/ pg / tbs1, / pg / tbs2, / pg / tbs3 usw.), und ich möchte die Gesamtgröße dieser Verzeichnisse begrenzen.

Eine Möglichkeit besteht darin, einige große Dateien zu erstellen, diese dann zu mkfs zu machen, über Loopback zu mounten und dann das Kontingent festzulegen. Dies macht die Erweiterung jedoch etwas problematisch.

Gibt es eine andere Möglichkeit, um das Kontingent pro Verzeichnis arbeiten zu lassen?


quelle
Das Mounten von Dateien über Loopback ist eigentlich kein Erweiterungsproblem. Sie würden einfach die zugrunde liegende Datei erweitern und dann resize2fsdas Dateisystem vergrößern. Ich denke, die Verwendung von LVM ist eine bessere Lösung, aber die von Ihnen vorgeschlagene Lösung weist nicht die Einschränkungen auf, die Sie glauben.
Larsks
auch btrfs und zfs
hanshenrik

Antworten:

17

Wenn Sie ext3 verwenden müssen, ist LVM wahrscheinlich die beste Lösung. Erstellen Sie pro Projekt ein neues Dateisystem. Das würde ungefähr so ​​aussehen:

# 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

Das Erweitern der Projektdateisysteme ist einfach:

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

# Grow the filesystem.
resize2fs /dev/vg0/project1
larsks
quelle
6

Wenn Sie nicht auf Gruppenberechtigungen angewiesen sind, können Sie für jedes "Kontingentverzeichnis" eine andere UNIX-Gruppe verwenden und dann für jedes Verzeichnis das sgid-Bit festlegen (so dass erstellte Dateien und Verzeichnisse zur Gruppe des Verzeichnisses anstelle der primären Gruppe gehören des Erstellers), und verwenden Sie Gruppenkontingente.

jpetazzo
quelle
5

Ja. Schauen Sie sich das XFS-Dateisystem und die Projektquote an. Andere Dateisysteme bieten diese Funktion nicht an.

Ondra
quelle
Leider kann ich die zugrunde liegende fs nicht ändern. Es ist jedoch gut zu wissen, dass XFS über diese Funktion verfügt.
5

Eigentlich wollte ich das eine Weile machen, weil ich nicht alle meine virtuellen E-Mail-Benutzer zu Systembenutzern machen wollte. ZFS-Dateisysteme mit Quoten wären großartig, und zfs-fuse macht jeden Tag Fortschritte, aber ich wollte eine sehr leichte Lösung. Schließlich habe ich beschlossen, ein FUSE-Dateisystem zu schreiben, das ich als Layer über ein anderes Dateisystem mounten kann (jedes Basisverzeichnis funktioniert tatsächlich). Es verfügt über ein Dienstprogramm zum Verwalten von Kontingenten, mit dem einfach Skripte erstellt werden können. Da Kontingentwerte nur als xattrs in Verzeichnissen oder Dateien gespeichert werden, kann ein Mountpunkt eine beliebige Anzahl von Kontingenten unterstützen.

Ich habe es eine Weile auf einem Mail-Server getestet und vor kurzem festgestellt, dass es das Jugendalter erreicht hat und bereit ist, es in die Freiheit zu entlassen. Wenn Sie neugierig sind, können Sie dies unter http://code.google.com/p/fusequota/ nachlesen . Über Feedback würde ich mich sehr freuen.


quelle
Der Git-Spiegel hat bei mir nicht funktioniert. Keine Fehler, aber ich kann die Quote überschreiten (auf ext4 mit Mount-Optionen RW, Relatime, Daten = bestellt)
Timdiels
3

Neues Dateisystem für jeden freigegebenen Ordner ist IMHO Overkill. Erstellen Sie einfach eine neue Gruppe für jeden freigegebenen Ordner, setzen Sie die Eigentümergruppe des freigegebenen Ordners auf diese Gruppe, setzen Sie ein Sticky-Bit auf group (damit jede neue Datei und jedes neue Verzeichnis diese Gruppe als Eigentümer hat) und verwenden Sie für Berechtigungen für Dateien und Ordner ACL-Listen. Legen Sie dann Quoten für diese Gruppen fest.

user207604
quelle
1

Mir ist keine Methode bekannt, um Anführungszeichen pro Verzeichnis festzulegen.

Aber entlang Ihrer Idee, Dateisysteme mit einer begrenzten Größe zu erstellen. Dies könnte ein Ort sein, an dem lvm eine gute Lösung wäre.

Sie können lvm sichern / erneut installieren und verwenden, indem Sie Ihren logischen Volumes nur den minimalen Speicherplatz zuweisen . Es ist sehr leicht zu erweitern LVM Logical Volumes.

Zoredache
quelle