LargeFile-Funktion zum Erstellen von Dateisystemen

17

Ist es sinnvoll, das Flag -T largefile zu verwenden, um ein Dateisystem für eine Partition mit großen Dateien wie Video und Audio im Flac-Format zu erstellen?

Ich habe die gleiche Partition mit diesem Flag und ohne getestet und mit tune2fs -l [Partition] "Dateisystemfunktionen" eingecheckt, für die beide die Option "Große_Datei" aktiviert haben. Ist es also nicht notwendig, -T flag largefile zu verwenden ?

Marc
quelle
1
Beachten Sie, dass ich zwischen large_file (get in tune2fs) und largefile verwechselt habe. es sieht so aus, als ob sie Argumente für verschiedene Dinge sind.
Marc

Antworten:

24

Das -T largefileFlag passt die Anzahl der Inodes an, die bei der Erstellung des Dateisystems zugewiesen werden. Einmal zugewiesen, kann ihre Anzahl nicht angepasst werden (zumindest für ext2 / 3, bei ext4 nicht ganz sicher). Der Standardwert ist ein Inode pro 16 KB Festplattenspeicher. -T largefilemacht es eine Inode für jedes Megabyte.

Jede Datei benötigt einen Inode. Wenn Sie keine Inodes mehr haben, können Sie keine neuen Dateien erstellen. Diese statisch zugewiesenen Inodes belegen aber auch Platz. Sie können damit rechnen, dass Sie durch die Einstellung im Gegensatz zur Standardeinstellung etwa 1,5 Gigabyte pro 100 GB Festplatte einsparen-T largefile . -T largefile4(eine Inode pro 4 MB) hat keinen so dramatischen Effekt.

Wenn Sie sicher sind, dass die durchschnittliche Größe der auf dem Gerät gespeicherten Dateien über 1 Megabyte liegt, sollten Sie auf jeden Fall festlegen -T largefile. Ich verwende es gerne auf meinen Speicherpartitionen und denke, dass es nicht zu radikal für eine Umgebung ist.

Wenn Sie jedoch einen sehr großen Quell-Tarball mit vielen Dateien (z. B. Hunderttausende) auf diese Partition entpacken, können die Inodes für diese Partition ausgehen. In dieser Situation können Sie wenig tun, außer eine andere Partition zu wählen, für die Sie die Markierung aufheben möchten.

Mit dem dumpe2fsBefehl können Sie überprüfen, wie viele Inodes auf einem Live-Dateisystem verfügbar sind :

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Hier kann ich noch 34 Tausend Dateien anlegen.

Folgendes habe ich mkfs.ext3 -T largefile -m 0auf einer 100-GB-Partition erhalten:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

Die Largefile-Version hat 102.400 Inodes, während die normale Version 6.553.600 Inodes erstellt und dabei 1,5 GB eingespart hat.

Wenn Sie eine gute Vorstellung davon haben, welche Größe Dateien im Dateisystem gespeichert werden sollen, können Sie die Anzahl der Inodes direkt mit dem -iSchalter einstellen . Hier wird das Byte-pro-Inode-Verhältnis festgelegt. Sie würden 75% des Speicherplatzes einsparen, wenn Sie -i 65536mehr als eine Million Dateien erstellen könnten. Ich rechne im Allgemeinen damit, mindestens 100 000 Inodes zu sparen.

hhaamu
quelle
nette Antwort, aber wo du gesagt hast, "und dabei 1,5 GB gespart". Sie sollten sagen, "aber verwendet 1,5 GB Speicherplatz für die zusätzlichen Inodes". Sie lassen es so klingen, als hätten Sie im normalen Modus mehr Inodes erstellt und mehr Speicherplatz auf der Festplatte gelassen.
localhost
"Ich rechne im Allgemeinen damit, mindestens 100 000 Inodes zu sparen." - Warum? Sicherlich ist 0 Reserve (und 0 mehr benötigt) optimal? Befürchten Sie wirklich, dass Sie bei der Anzahl der Dateien oder Verzeichnisse, über die Sie verfügen, um 100.000 Punkte verloren haben könnten?
OJFord
3

Ich denke, Sie verwechseln zwei völlig unterschiedliche und unabhängige Konzepte.

Die large_fileFunktion, die Sie in der Ausgabe von dumpe2fs sehen können, bedeutet, dass dieses Dateisystem Dateien von mehr als 2 GB aufnehmen kann. Ich denke, sie wird von modernen Kerneln automatisch festgelegt. Es hat nichts mit der -TOption zu tun mke2fs.

Tyrannisieren
quelle