Ist ext4 teurer als ntfs?


11

Ich habe gerade eine NTFS-Partition in ext4 konvertiert, aber der gesamte Speicherplatz scheint von 421G auf 415G reduziert zu sein. Wo ist der 6G geblieben? Und der reservierte Speicherplatz ist in ext4 auf 199 Millionen angewachsen, viel größer als in NTFS auf 78 Millionen. Warum?

Die Partition wird hauptsächlich für Filme / Musik verwendet, daher sind die meisten Dateien sehr groß (jeweils> 10 MB). Ich möchte das ext4-Dateisystem verwenden. Gibt es einen Vorschlag?

mkfs.ntfs:
    /dev/sdb4             421G   78M  421G   1% /mnt/mmedia

mkfs.ext4:
    /dev/sdb4             415G  199M  393G   1% /mnt/mmedia
                       (415G - 199M == 393G ?)

Es ist auch seltsam, dass die verbleibende Größe von ext4 393 G beträgt, sollte es nicht 415 G oder 414 G sein? Was ist mit dem verschwundenen 22G passiert? Im Vergleich zu NTFS verbrauchte ext4 6,6% des gesamten Speicherplatzes, das ist wirklich eine große Sache.

Die Frage ist:

  1. Was wird 6G hauptsächlich für, für Journal, für Redundanz oder für die Indizierung verwendet?
  2. Warum der verbleibende Platz 393G nicht 415G? Es gibt ein 22G-Loch, das ziemlich groß ist.
  3. Welche Parameter würden Sie empfehlen, wenn diese ext4-Partition zum Speichern von Film- / Musikdateien verwendet wird? Es heißt, dass ext4 bei großen Partitionen eine bessere Leistung als ext3 aufweist. Stimmt das? Ich werde nicht zu ext2 zurückkehren, das kein Journal ist.

Antworten:


8

Was wird 6G hauptsächlich für, für Journal, für Redundanz oder für die Indizierung verwendet?

(Noch nicht bekannt.)

Warum der verbleibende Platz 393G nicht 415G? Es gibt ein 22G-Loch, das ziemlich groß ist.

Es sind 5% reservierte Blöcke für Superuser, die verwendet werden, um eine Fragmentierung zu vermeiden. Sie können es auf 1% einstellen mkfs.ext4 -m 1.

Welche Parameter würden Sie empfehlen, wenn diese ext4-Partition zum Speichern von Film- / Musikdateien verwendet wird?

Sie können eine Verwendungsoption für mkfs.ext4 angeben, z. B. kann mkfs.ext4 -T large_filemkfs.ext4 so Parameter für Partitionen festlegen, die große Dateien enthalten.


1
Das 6G ist für die Inode-Listen.
Sirex

1
Reservierte Blöcke begrenzen auch die Auswirkungen eines Denial-Of-Service-Angriffs, bei dem reguläre Benutzer eine Festplatte so weit füllen, dass keine Protokolldateien mehr geschrieben werden können. Der reservierte Speicherplatz gibt root zumindest genügend Protokolle, um den beleidigenden Benutzer zu fangen.
MSalters

Meine Datei /etc/mke2fs.conf spricht von den Parametern "largefile" und "largefile4" für -T, nicht von "large_file".
user1338062

4
  1. Die 6 GB sind Inodes. ext4 ist standardmäßig 1/64 (1,56%) für Inodes, jeweils 256B; kann also mit 16KB Dateien füllen
  2. Der verfügbare df-Speicherplatz schließt den für root reservierten Speicherplatz aus. Standardmäßig 5%. Verwenden Sie tune2fs -m
  3. mkfs.ext4 -m 0 -N 4000000 / dev / was auch immer # neu formatiert, 0 reserviert, 4 Millionen Inodes verwenden 1 GB
  4. ext4 fsck ist viel schneller als ext3; Ansonsten werden Sie keinen Unterschied bemerken

Jede Datei / jedes Verzeichnis benötigt 1 Inode. Sie können die Anzahl der Inodes nach dem Erstellen eines ext-Dateisystems nicht ändern. Sogar 1000000 Inodes wären für diese Partition ausreichend, wenn Sie sie nur für Filme und Musik verwenden würden.

Die NTFS-Master-Dateitabelle (MFT) ist etwas flexibler, sodass NTFS standardmäßig mehr Daten speichern kann.

Der einzige gute Grund, NTFS unter Linux zu verwenden, besteht darin, Dateien für Windows freizugeben. Es funktioniert einwandfrei für Medien, es fehlen jedoch verschiedene UNIX-Funktionen, sodass es unter Linux nicht für allgemeine Zwecke geeignet ist. Kompiliere nicht darauf!


Each inode 256B, so can fill with 16KB filesMeinen Sie, dass jeder Inode 16K-256 = 16128 freie Bytes enthält?
Xiè Jìléi

1
Ich meine, wenn Sie 1/64 eines Geräts für Inodes-Tabellen verwenden und jeder Inode 256B beträgt, erhalten Sie einen Inode pro 16 KB Gerät ... tatsächlich ist es 1 Inode pro 15,75 KB des verbleibenden Geräts, aber nahe genug. Sie haben also genug Inodes, um die gesamte Festplatte mit 16-KB-Dateien zu füllen. Wenn Sie mit viel größeren Dateien rechnen, z. B. Videos, können Sie mit weniger Inodes auskommen und möglicherweise einige GB vom Gerät sparen.
Sam Watkins

3

Ja, das ist ein hübsches kleines Thema. Jedes Dateisystem implementiert seine Datenstrukturen unterschiedlich. Sie können versuchen, eine Partition mit verschiedenen Dateisystemen zu formatieren und zu vergleichen. Der "freie" Speicherplatz wird unterschiedlich sein. Wenn Sie sie ausfüllen, ist der Speicheraufwand unterschiedlich, und in gewissem Sinne kann der Speicherplatz für dieselbe Datei je nach Dateisystem unterschiedlich sein. Wenn Sie ein Dateisystem formatieren, können Sie normalerweise auch einige Parameter für die Anordnung auswählen - dies wirkt sich auch aus.

Die Antwort auf Ihre Frage ist eine dieser "es kommt darauf an" Antworten . Ich denke, insgesamt sind 6/400 GB keine schreckliche Abweichung, aber das macht sich tatsächlich bemerkbar. Der Speicherplatz wird immer billiger. Aber ich denke, Dateisysteme werden wahrscheinlich schwerer, da wir mehr ausgefallene Funktionen in ihnen wollen. Ich vermute, ext2 ist ein bisschen schlanker als ext4. Es würde mich interessieren, einige reale Zahlen dazu zu sehen. Natürlich hat diese "Effizienz" ihren Preis (der größte ist, dass sie nicht aufgezeichnet und somit schneller und leichter beschädigt wird).

Was den Grund betrifft, warum ext4 in diesem Fall mehr Speicherplatz beansprucht, gehe ich davon aus, dass Ihre Speichercuster unter NTFS so eingestellt wurden, dass Ihr Speicherplatz viel größer ist als die erforderlichen ext4-Parameter. Wenn dies zutrifft, sollten Sie eine effizientere Speichernutzung erhalten, wenn Sie viele relativ kleine Dateien haben.

Es genügt zu sagen, das ganze Thema geht weiter und weiter. Wenn Sie weitere Informationen wünschen, empfehlen wir Ihnen, einen Blick auf verschiedene Wikipedia-Seiten zu werfen, auf denen die Dateisysteme verglichen werden. Außerdem sollten Sie sich die Manpages für jeden FS ansehen, an dem Sie interessiert sind.

Ich hoffe, Sie finden das hilfreich.


1

Reservierte Superblöcke sind eine Sache, aber überhaupt nicht der Betrag, auf den Sie sich beziehen. Das Ändern der reservierten Superblöcke wird nicht im "insgesamt verfügbaren Speicherplatz" angezeigt. Dies ändert sich nicht. Dies ist die Anzahl der Inodes x ihrer Größe. Erwarten Sie auf ext4 standardmäßig etwa 256 Bytes pro Inode und 400 GB Ich vermute, mkfs.ext4 macht vielleicht ~ 25-30 Mill. Verwenden Sie dumpe2fs -h, um die tatsächliche Anzahl zu sehen. Dies macht die 6 GB aus, die Sie vermissen, und nicht die reservierten Blöcke, auf denen sich jemand befindet. (ZB inode- Anzahl x Inode-Größe b / 1024 ^ 3) GBs.

Ich vermute, dass die Ausgabe von df -h mit einer gewissen Lahmheit zu tun hat: p Versuchen Sie es erneut und geben Sie die Hälfte Ihrer i-Knoten an (Sie können dies sicher tun, und noch mehr, wenn Sie fett sind). Beachten Sie jedoch, dass viele Verzeichnisse dies können Lassen Sie Ihnen die Inodes vor dem Weltraum ausgehen.

Z.B. ext4 reserviert mehrere 93-4?) Inodes pro Verzeichnis, vorausgesetzt, Sie möchten mehr als nur ein oder zwei Dateien speichern und damit effizienter machen. Wenn Sie jedoch 1 Million Ordner mit 1 Million Dateien haben, werden Ihnen in diesem Layout die Inodes ausgehen, bevor Ihnen tatsächlich der Speicherplatz ausgeht. Normalerweise werden Inodes nur innerhalb weniger Prozent des Speicherplatzes verwendet, können jedoch auf 35% ansteigen, sodass das Teilen durch zwei für Desktop-Benutzer ziemlich sicher ist, aber nicht mehr tun, um auf der sicheren Seite zu sein.

Hier ist ein Beispiel:

415 GB RAW (dev / sdb1 say) mkfs.ext4 -m0 -Ndefault # / 2 -Lext4-1 -O Extent, dir_index, large_file, sparse_super, uninit_bg / dev / sdb1

Die Optionen helfen beispielsweise bei großen Dateien / Partitionen mit Medien. uninit_bg ist für aktuelle Kernel. Dies wird auch dann gepostet, wenn es für zukünftige Leser alt ist.

Malina Salina


0

Ich hatte ein (vollständiges) ntfs-Dateisystem mit etwa 1000 GB Daten und nur wenigen hundert Megabyte frei. Selbst wenn die formatierte Kapazität von ext4 weit unter der von ntfs lag, erinnere ich mich, dass ich beim Kopieren immer noch ungefähr 70 GB auf ext4 frei hatte, selbst wenn die formatierte Kapazität geringer war. (Denken Sie daran, das ntfs war voll). Ich kann nicht versprechen, dass Ihnen das passiert, aber zumindest für die Dateien, die ich mit ext4 hatte, war es ein echter Platzsparer! :) :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.