So berechnen Sie die richtige Menge an Inode- / Blockgrößen für ein Linux-Dateisystem

15937
Kurt Pfeifle

Ich habe ein altes Reiser-Dateisystem, das ich in Ext3 konvertieren werde. Ich habe das Problem, die richtigen Block- und Inode-Größen für diese Partition zu ermitteln.

Die Partition ist 44 GB groß und muss mehr als 3.000.000 Dateien mit einer Größe zwischen 1 KB und 10 KB enthalten. Wie kann ich das beste Verhältnis zwischen Inodes und Blocksize ermitteln?

Das Folgende ist etwas, das ich ausprobiert habe, was in Ordnung ist, aber das Kopieren von Dateien unglaublich langsam macht.

mkfs.ext3 \ -t ext3 \ -c \ -c \ -b 1024 \ -i 4096 \ -I 128 \ -v \ -j \ -O sparse_super,filetype,has_journal\ /dev/sdb1 

Vielen Dank.

5
Versuchen Sie, mit Standardoptionen (Nein -b oder -i oder -I usw.) zu arbeiten, verwenden Sie jedoch das `-n`-Flag. Dies führt zu einem "Trockenlauf" und erstellt das Dateisystem nicht. Es wird jedoch angegeben, wie viele Inodes und welche Blocksize * Mkfs * standardmäßig erstellen würde. quack quixote vor 14 Jahren 2

2 Antworten auf die Frage

2
fragileswan

Auf eine solche begrenzte Frage gibt es keine "richtige" Antwort. Wenn Sie einen Desktop oder Laptop einrichten, machen Sie einfach Folgendes:

mkfs.ext3 /dev/sda1 

Das Programm kann besser als ein unerfahrener Mensch wählen. Wenn Sie eine große Website speichern, benötigt ext3 möglicherweise bis zu 25% Inodes, da möglicherweise sehr viele kleine Dateien vorhanden sind.

Aber Sie sagen dem mkfsProgramm eigentlich nur "bis zu 25% Inoden". Die meisten Einstellungen zum Erstellen von Dateisystemen werden in speziellen Anwendungen verwendet, z. B. beim RAID-Striping, bei denen die Geometrie des Dateisystems angepasst werden muss, oder es wird unglaublich langsam.

Ich weiß, dass die Leute ihre Haustierdateisystemeinstellungen haben. Ich muss noch jemanden finden, der auf einer 40-GB-Desktop- oder Laptop-Partition nachweisen kann, dass es von Standardwerten abweicht.

Und ext3 ist nicht das beste Dateisystem für alles! Ich verwende drei verschiedene Partitionsformattypen für meine Lappy, da bestimmte Partitionen viele kleine, individuelle Dateien enthalten. Andere enthalten eine viel kleinere Anzahl größerer Dateien (gut für ext3-System), wie / home-Partition.

/usrkann 500.000 einzelne Dateien enthalten, wodurch ext3 klunky wird, aber reiserfs fliegt. Die andere Sache ist Acls . Sie müssen informieren, mkfs.ext3dass Sie acls verwenden, wenn Sie diese verwenden. acls ist eine Feinabstimmung der Berechtigungen, die auf einem System mit einem einzelnen Benutzer normalerweise nicht wichtig ist. Wenn Sie jedoch eine Gruppe von 20 normalen Benutzern haben und für einige unterschiedliche Zugriffskontrollen wünschen, müssen Sie acls verwenden .

Ich persönlich mag xfs für ein allgemeines Dateisystem, obwohl es mit SELinux nicht sofort funktioniert. Aber es ist das ausgefeilteste und effizienteste Dateisystem. Es wird bei verschiedenen Marken von HPCs verwendet. Sie können es googeln, wenn Sie dies wünschen. ext3 unnütz vergeudet 8% der Partition. Das ist unerhört.

Aber ext4 ist besser. Ich werde keine Befehlszeile für Sie ausspucken. Sie müssen die Verwendung der Partition bestimmen und das Dateisystem entsprechend entwerfen. ext3 ist zuverlässig, aber auch ein Tank. Das heißt nicht, dass Sie in der Stadt herumfahren möchten.

Ich hoffe das hilft ein wenig.

1
jneves

Sie benötigen einen Inode für jede Datei. Die Größe des Inodes bestimmt die Anzahl der direkten Blöcke, die er erreichen kann, bevor ein weiterer Inode und genügend Blöcke für die Verarbeitung der Dateien benötigt werden.

In Ihrem Fall ist die Mindestanzahl von Inodes 3.000.000+. Wenn Sie den Standardwert verwenden, erhalten Sie 12 direkte Blöcke. Mit einer Blockgröße von 1 KB würden Sie also das bekommen, was Sie brauchen.

Natürlich können Sie die Inode-Größe reduzieren und die Blockgröße erhöhen, um die Anzahl der Inodes zu erhöhen. Dadurch erhalten Sie weniger Speicherplatz, aber mehr Dateien im selben Dateisystem.

Wahrscheinlich nicht von Bedeutung, aber für jedes Verzeichnis ist auch ein Inode erforderlich. Wahrscheinlich nirgendwo in der Nähe von 3.0e + 6 für Dateien, aber Sie wissen nie. hotei vor 14 Jahren 0