Largefile-Funktion beim Erstellen eines Dateisystems

Largefile-Funktion beim Erstellen eines Dateisystems

Ist nützlich zu verwenden-T große DateiFlag beim Erstellen eines Dateisystems für eine Partition mit großen Dateien wie Video und Audio im FLAC-Format?

Ich habe die gleiche Partition mit und ohne dieses Flag getestet und dabeitune2fs -l [Partition], ich habe in den „Dateisystemfunktionen“ nachgesehen, dass beide „large_file“ aktiviert haben. Es ist also nicht notwendig,-T Flag für große Dateien?

Antwort1

Das -T largefileFlag passt die Anzahl der Inodes an, die bei der Erstellung des Dateisystems zugewiesen werden. Nach der Zuweisung kann ihre Anzahl nicht mehr angepasst werden (zumindest für ext2/3, bei ext4 bin ich mir nicht ganz sicher). Der Standardwert ist ein Inode für jeweils 16 KB Festplattenspeicher. -T largefileDas ergibt einen Inode für jedes Megabyte.

Jede Datei benötigt einen Inode. Wenn Sie keine Inodes mehr haben, können Sie keine neuen Dateien erstellen. Aber diese statisch zugewiesenen Inodes benötigen auch Speicherplatz. Sie können davon ausgehen,Sparen Sie etwa 1,5 Gigabyte pro 100 GB Festplattedurch die Einstellung -T largefilevon im Gegensatz zur Standardeinstellung -T largefile4(ein 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, legen Sie auf jeden Fall fest -T largefile. Ich verwende es gerne für meine Speicherpartitionen und denke, dass es keine zu radikale Einstellung ist.

Wenn Sie jedoch ein sehr großes Quell-Tarball mit vielen Dateien (denken Sie an Hunderttausende) auf diese Partition entpacken, besteht die Möglichkeit, dass Ihnen die Inodes für diese Partition ausgehen. In dieser Situation können Sie nicht viel tun, außer eine andere Partition zum Entpacken auszuwählen.

Mit dem folgenden Befehl können Sie überprüfen, wie viele Inodes Ihnen auf einem Live-Dateisystem zur Verfügung stehen dumpe2fs:

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

Hier kann ich immer noch 34.000 Dateien erstellen.

Folgendes habe ich erhalten, nachdem ich dies mkfs.ext3 -T largefile -m 0auf einer 100 GB großen Partition getan habe:

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 verfügt über 102.400 Inodes, während die normale Version 6.553.600 Inodes erstellt und dabei 1,5 GB gespart hat.

Wenn Sie eine gute Vorstellung davon haben, welche Dateigröße Sie im Dateisystem ablegen möchten, können Sie die Anzahl der Inodes direkt mit dem -iSchalter feinabstimmen. Er legt das Verhältnis von Bytes pro Inode fest. Sie würden 75 % der Speicherplatzeinsparungen erzielen, wenn Sie verwenden würden -i 65536, und trotzdem über eine Million Dateien erstellen können. Ich rechne im Allgemeinen damit, mindestens 100.000 Inodes freizuhalten.

Antwort2

Meiner Meinung nach vermischen Sie 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 größer als 2 GiB aufnehmen kann. Ich glaube, dass dies von modernen Kerneln automatisch eingestellt wird. Es hat nichts mit der -TOption von zu tun mke2fs.

verwandte Informationen