Muss ich Unix-Dateisysteme defragmentieren?

24

Ich weiß, dass Windows-Dateisysteme sehr empfindlich auf Fragmentierung reagieren und Unix wie UFS, ZFS, ext3 oder ext4 nicht so empfindlich sind.

Aber gibt es überhaupt einen Grund, diese Dateisysteme zu defragmentieren?

Wenn ja, welche Tools gibt es dafür?

paulgreg
quelle
Die meisten modernen Dateisysteme müssen im Allgemeinen nicht manuell defragmentiert werden. Dies schließt ext3, NTFS, UFS und andere ein.
Chris S
3
Chris, ich kann andere nicht kommentieren, aber NTFS profitiert mit Sicherheit von der Defragmentierung. Es reduziert den durch Fragmentierung verursachten Druck auf den Kopf erheblich und verbessert dadurch die Reaktionszeiten.
John Gardeniers
@JohnGardeniers Jeder FS, der Fragmentierung unterstützt, profitiert von einer Defragmentierung. Dies ist jedoch nicht erforderlich, und die Leistungseinbußen aufgrund von Fragmentierung sind im Vergleich zu älteren Dateisystemen begrenzt.
Chris S

Antworten:

15

Zitiert die Wikipedia-Seite über das Ext3-Dateisystem

Moderne Linux-Dateisysteme minimieren die Fragmentierung, indem sie alle Blöcke in einer Datei nahe beieinander halten, auch wenn sie nicht in aufeinanderfolgenden Sektoren gespeichert werden können. Einige Dateisysteme, wie ext3, weisen effektiv den freien Block zu, der anderen Blöcken in einer Datei am nächsten liegt. Daher ist es nicht notwendig, sich um die Fragmentierung eines Linux-Systems zu kümmern

Alnitak
quelle
Die Fragmentierung summiert sich jedoch. Ich versuche zu zittern, wie von Gert unten vorgeschlagen.
bläulich
9

Tatsächlich reagiert NTFS nicht so empfindlich auf Fragmentierung. NTFS ist in jeder Hinsicht deutlich besser als FAT32 und ein vollständig modernes Dateisystem.

Ich habe Linux zu Hause seit 1996 ausgeführt und noch nie ein Dateisystem defragmentiert. Ich hatte noch nie das Bedürfnis. Das meiste, was ich in dieser Richtung getan habe, war, auf die Art von Dateien zu achten, die ich auf ein Dateisystem stellen werde, und entsprechende Optionen zu verwenden, wenn ich dies tue mkfs. Wenn ein Dateisystem beispielsweise hauptsächlich große Dateien enthält, verwende ich einen größeren Block. Wenn ich ein riesiges Dateisystem erstelle, aber weiß, dass es niemals mehr als 1.000.000 Dateien enthalten wird, nutze ich die -N 1000000Option, um die Anzahl der Inodes zu begrenzen. Im Allgemeinen werde ich das Dateisystem bei der Erstellung auf seine Aufgabe abstimmen, wenn eine bestimmte Art von Datei darin vorhanden ist.

Eddie
quelle
6

Sie müssen nicht brauchen , um nicht zu defragmentieren. Aber wenn Sie es trotzdem tun möchten, können Sie immer schütteln .

Gert M
quelle
3

Während ext2 und ext3 dies nicht bereitstellen (und im Allgemeinen weniger benötigen, da sie Dateien relativ zusammenhalten), sorgt ext4 für Defragmentierung . Dieser Artikel behandelt das Programm e4defrag. Aber ext4 ist ein neues Dateisystem.

Im Vergleich zu Windows sind Linux-Dateisysteme jedoch viel besser darin, nicht zu fragmentieren, weshalb ich mir darüber keine Sorgen machen würde.

Hamish Downer
quelle
1
ext2 und ext3 können defragmentiert werden. Sie brauchen es einfach nicht unter normalen Umständen.
Eddie
Denken Sie daran, dass Windows FS auch nie defragmentiert werden musste - NT3.51 wird verwendet, um Speicherplatz auf beiden Seiten von Blöcken zuzuweisen, genau wie ext3, aber MS hat dies aus irgendeinem Grund in NT4 abgeschafft.
gbjbaanb
1

Der einzige gute Grund für die Defragmentierung des Linux-Dateisystems ist das Verkleinern aufgeblähter virtueller Festplatten.

Füllen Sie ungenutzten Speicherplatz auf Null, defragmentieren Sie die virtuelle Festplatte und komprimieren Sie sie über den VM-Manager.

Fiasco Labs
quelle
1

Sie können das XFS-Dateisystem (mit xfs_fsr [dev|file]) und btrfs (mit) defragmentierenbtrfs filesystem defragment [file]

Vergewissern Sie sich wie bei allen anderen auch, dass mindestens 80% oder ein paar Dutzend Gigabyte (je nachdem, welcher Wert kleiner ist) frei sind, und machen Sie sich keine Sorgen über die Defragmentierung.

Hubert Kario
quelle