Was braucht keine Defragmentierung? Linux oder die ext2 ext3 FS?

32

Warum müssen Sie kein Linux-System defragmentieren? Weil es das ext2 / ext3-Dateisystem verwendet oder weil es Linux ist?

Das ist relevant, denn ich habe ein Double-Boot-System (W7 / Ubuntu) und eine gemeinsame Partition (NTFS), auf die beide Systeme zugreifen können. Wenn ich diese Partition unter Linux verwende, wird sie fragmentiert?

Ein weiteres Problem sind die Truecrypt-Container. Ich greife auch mit Linux und Windows auf sie zu, und sie sind FAT32. Werden sie durch Linux fragmentiert?

xyz
quelle
2
Die anderen Antworten sind gut, aber lassen Sie ein wichtiges Bit aus: Alle Dateisysteme: ext2 / 3/4 und NTFS fragmentieren Dateien ziemlich oft, wenn der Speicherplatz knapp ist. Wenn Sie eine Fragmentierung verhindern möchten, dürfen Sie nicht zulassen, dass Ihr Dateisystem mehr als 90% verwendet.
Zan Lynx
1
Wenn Sie ext4 verwenden, werden Sie überrascht sein, wie viel Fragmentierung Sie haben können, wenn Sie e4defrag -v .in einem Verzeichnisbaum ausgeführt werden, insbesondere wenn er beispielsweise Dateien enthält, die mit einem Torrent-Client heruntergeladen wurden (obwohl einige fallocate/ verwenden posix_fallocate).
Großbritannien
Auch wenn die Frage einer persönlichen Meinung unterliegt, stützt sie sich meiner Meinung nach eher auf tatsächliche Fakten.
Julie Pelletier

Antworten:

27

In diesem Artikel erfahren Sie, wie ext2 / ext3 Dateien auf der Festplatte zuordnet. Und sie haben auch einen Artikel mit der Frage " Müssen Sie wirklich defragmentieren ?"


Warum wird FAT fragmentiert:

"Wenn Sie eine Datei in einem FAT-Dateisystem speichern, wird [die Datei wird gespeichert] so nah wie möglich am Anfang des Datenträgers. Wenn Sie eine zweite Datei speichern, wird [die Datei wird gespeichert] direkt nach der ersten Datei - und so weiter Wenn die Originaldateien größer werden, werden sie immer fragmentiert. In der Nähe ist kein Platz mehr, in den sie hineinwachsen können. "
-Wie zu Geek

Und Wikipedia bietet weitere Informationen zur FAT-Fragmentierung .

Auf wie EXT2,3,4 Dateien zuordnen:

"Die Dateisysteme ext2, ext3 und ext4 [...] ordnen Dateien auf intelligentere Weise zu. Anstatt mehrere Dateien nebeneinander auf der Festplatte zu platzieren, verteilen Linux-Dateisysteme verschiedene Dateien auf der gesamten Festplatte und hinterlassen eine große Menge von freiem Raum zwischen ihnen. "
-Wie zu Geek

(Und mehr Infos zur Defragmentierung auf ext3, aus Wikipedia )

"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 dem anderen am nächsten liegt blockiert in einer Datei. Daher ist es nicht notwendig, sich Gedanken über die Fragmentierung in einem Linux-System zu machen. "
- TLDP

dougBTV
quelle
4
Gute Antwort! Aber Sie sollten etwas mehr Inhalt setzen. Die Idee ist, dass jede Antwort auf StackExchange für sich alleine ausreichen sollte. Wenn die Links Ihrer Fragen nicht mehr funktionieren, ist Ihre Antwort nicht hilfreich. Geben Sie in Ihrem Beitrag eine ausreichende Erklärung an und geben Sie die Links zur weiteren Lektüre an.
Dienstag,
1
Vielen Dank @lgeorget - Ich habe die Antwort mit ein paar Richtungszitaten versehen, damit es immer einen Inhalt gibt, in dem Sie nachlesen können, warum. Ich schätze Ihre Eingabe / konstruktive Kritik!
dougBTV
Msgstr "Wenn Sie eine Datei in einem FAT - Dateisystem speichern , wird sie gespeichert ". Ergibt keinen Sinn Was ist es"? FAT ist ein Dateisystemformat. Es beschreibt, wo Sie speichern können, aber es beschränkt Sie nicht auf einen einzelnen Speicherort. Tatsächlich entscheidet das Betriebssystem. Es gibt jedoch viele verschiedene Betriebssysteme, die an FAT schreiben können, und jedes trifft seine eigene Entscheidung.
MSalters
@MSalters - einverstanden. Ich werde den zitierten Abschnitt bearbeiten, um diese Unbestimmtheit wegzulassen.
dougBTV
Die Unbestimmtheit ist erst jetzt verborgen. Die Aussage ist immer noch ziemlich absolut (wo "FAT" sichert), während die gesamte FAT-Spezifikation nichts dergleichen aussagt. Tatsächlich widerspricht der von Ihnen zitierte Wikipedia-Link direkt: Er besagt ausdrücklich, dass Windows den Speicherort für die zweite Datei nicht direkt nach der ersten Datei auswählt. ("Auswählen großer zusammenhängender Gebiete im Voraus")
MSalters
23

Fragmentierung ist immer ein Problem, unabhängig vom Dateisystem. Ext3 / Ext2 haben das Problem jedoch so weit minimiert, dass die meisten Administratoren einfach so arbeiten, als wäre es kein Problem. Dies wird durch die Verwendung eines kompetenten E / A-Schedulers und durch das Dateisystem minimiert. Darüber hinaus werden zusätzliche Fragmente näher beieinander gespeichert, sodass die Effekte selbst bei Fragmentierung stark gedämpft werden. Das Wechseln von Ext4 zu Extents sollte auch dazu beitragen, die Fragmentierung noch weiter zu verringern.

Die Fragmentierung ist noch vorhanden, ext2 hatte ein Offline-Defragmentierungs-Tool, ext4 bekommt ein Online-Defragmentierungs-Tool und btrfs (nur weil es mit der Frage zusammenhängt) hat bereits ein Online-Defragmentierungs-Tool. Wenn Sie auf ext3 sind, können Sie entweder auf ext4 (via tune2fs) konvertieren oder versuchen, herauszufinden, wie viel Glück Sie mit User-Space-Tools wie haben shake.

Abhängig von der Art der E / A, die Ihr Dateisystem durchläuft, kann dies auch auf der stummgeschalteten Ebene ein Problem sein, weshalb die Online-Tools zunächst als nützlich erachtet wurden.

Bei der Frage zu FAT32 erfolgt die Fragmentierung nicht nur, wenn Sie eine Datei bearbeiten, sondern auch, wenn Sie in die Datei schreiben. Um Ihre Frage direkt zu beantworten, ist die Fragmentierung ein Aspekt des Dateisystemdesigns, sodass Ihr FAT32-Dateisystem bei jedem Schreiben fragmentiert werden kann.

Bratchley
quelle
"Dies wird durch den Einsatz eines kompetenten I / O-Schedulers minimiert." Es ist etwas nicht ganz richtig mit dieser Phrase.
Faheem Mitha
Danke, dass du das verstanden hast. Ich bin irgendwie schlecht darin, meine Sprache zu überarbeiten, ohne irgendwelche Probleme zu korrigieren, die die Überarbeitung mit der allgemeinen Grammatik des Satzes des Absatzes verursacht.
Bratchley
Das ist eine gute Antwort. Ich würde etwas über CoW hinzufügen (Kopie beim Schreiben). Es hat eine enge Beziehung dazu, ob das fs fragmentiert wird.
Martin Sugioarto
4

Beantworten Sie Ihre Fragen nacheinander:

Warum müssen Sie kein Linux-System defragmentieren? Weil es das ext2 / ext3-Dateisystem verwendet oder weil es Linux ist?

Da ext2 / 3/4 einen anderen Ansatz für die Dateien und Ordner hat, werden sie kaum fragmentiert. Andere haben bereits darauf geantwortet. Weitere Informationen finden Sie hier

Dies ist relevant, da ein Double-Boot-System (W7 / Ubuntu) und eine gemeinsame Partition (NTFS) vorhanden sind, auf die beide Systeme zugreifen können. Wenn ich diese Partition unter Linux verwende, wird sie fragmentiert?

Ja, es kann fragmentiert werden. Es ist egal, ob Windows oder Linux oder irgendetwas anderes darauf zugreift, es ist, wie jedes Dateisystem mit der Dateigröße umgeht, wie es all diese Blöcke speichert, ob es zwischen den einzelnen Dateien Leerzeichen lässt ...

Ein weiteres Problem sind die Truecrypt-Container. Ich greife auch mit Linux und Windows auf sie zu, und sie sind FAT32. Werden sie durch Linux fragmentiert?

Truecrypt-Container sind eine Datei für alle praktischen Angelegenheiten. Wenn Sie mit TrueCrypt einen Container erstellen, erstellen Sie eine Datei mit der von Ihnen gewählten Größe. Für Ihr Betriebssystem ist es wie jede andere Datei. Wenn Sie Kopien davon usw. erstellen, werden die Kopien möglicherweise fragmentiert gespeichert.

Denken Sie jedoch daran, dass es niemals gut ist, mehrere Kopien desselben Containers zu haben. Dies kann möglicherweise die Sicherheit des Containers verringern. Stellen Sie immer einen neuen Behälter her.

Wenn Sie Dateien innerhalb des Containers speichern, löschen, kopieren, verschieben usw., wissen die Betriebssysteme nichts davon. Sie öffnen, bearbeiten und speichern alle anderen Dateien, ohne ihre Größe zu ändern.

Wenn Sie sich wegen der Fragmentierungssicherheit von TrueCrypt Sorgen machen, sollten Sie sich mit der Verwendung von TrueCrypt mit SSDs befassen: Da die SSD versucht, die Abnutzung des gesamten Arbeitsspeichers zu heben, haben Sie möglicherweise den gleichen Effekt wie beim Kopieren des Containers.

woliveirajr
quelle
3

Letztendlich liegt es an den Dateisystemtreibern innerhalb des Betriebssystems.

ext2- und FAT-Dateisysteme sind beide Methoden, um aufzuzeichnen, welche Blöcke auf der Festplatte zu welcher Datei gehören. Wenn nicht alle Blöcke einer Datei zusammenhängend sind, wird die Datei als fragmentiert bezeichnet. Es sollte jedoch offensichtlich sein, dass die Fragmentierung durch die Blockzuweisungsstrategie beim Schreiben einer Datei verursacht wird und nicht durch die Art und Weise, wie Sie diese Blöcke dann aufzeichnen.

Was den Unterschied ausmacht, ist, wie weit die Dateisystemtreiber voraussehen können. Wenn der Treiber weiß, dass 10 weitere Blöcke zu schreiben sind, kann er einen zusammenhängenden freien Bereich auswählen und eine zukünftige Fragmentierung vermeiden. Dies hängt von der Treiberarchitektur ab, die betriebssystemspezifisch ist. Die genau gleiche Suche nach freiem Speicherplatz kann für FAT und ext2 durchgeführt werden.

Tatsächlich sind ext2 und FAT nicht so unterschiedlich, wie Sie vielleicht denken. Ich habe den ext2-Teil eines Bootloaders über den vorhandenen FAT-Code geschrieben, und dafür waren weniger als 100 zusätzliche Codezeilen erforderlich.

MSalters
quelle