Eine ext-Partition defragmentieren?

10

Warum muss ext2 / 3/4 nicht defragmentiert werden? Gibt es überhaupt keine Fragmentierung?

uray
quelle

Antworten:

10

Moderne Dateisysteme, insbesondere solche, die für Mehrbenutzer- und / oder Multitasking-Anwendungsfälle effizient sind, können Daten nur dann ziemlich fragmentieren, wenn die Dateisysteme nahezu voll sind (es gibt keine genaue Zahl dafür, wo die "nahezu voll" sind "Mark ist, wie es davon abhängt, wie groß das Dateisystem ist, wie verteilt die Dateigrößen sind und wie Ihre Zugriffsmuster sind - Zahlen zwischen 85% und 95% werden häufig angegeben) oder das Muster der Dateierstellung und -schreibvorgänge ist ungewöhnlich oder das Dateisystem ist ungewöhnlich sehr alt, also hat viel "Action" gesehen. Dies umfasst ext2 / 3/4, reiser, btrfs, NTFS, ZFS und andere.

Derzeit gibt es keine Möglichkeit, ext3 oder 4 auf Kernel- / Dateisystemebene zu defragmentieren ( weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Ext3#Defragmentation ), obwohl ext4 in Kürze online verfügbar sein soll Defragmentierung.

Es gibt User-Land-Tools (wie http://vleu.net/shake/).und andere in diesem Wikipedia-Artikel aufgeführte), die versuchen, einzelne Dateien oder Dateigruppen durch Kopieren / Umschreiben zu defragmentieren. Wenn genügend ausreichend freier Speicherplatz vorhanden ist, wird der Datei im Allgemeinen ein zusammenhängender Block zugewiesen. Dies garantiert jedoch in keiner Weise, dass Dateien nahe beieinander liegen. Wenn Sie also ein Shake über ein Paar großer Dateien ausführen, werden Sie feststellen, dass die beiden Dateien selbst defragmentiert werden, jedoch nicht in der Nähe voneinander auf der Festplatte. In einem Mehrbenutzer-Dateisystem ist die Lokalität von Dateien zueinander nicht oft wichtig (es ist sicherlich weniger wichtig als die Fragmentierung der Dateien selbst), da die Laufwerksköpfe überall umgedreht werden, um unterschiedliche Benutzer zu bedienen. '

Wenn Sie ein Dateisystem haben, das im Laufe der Zeit stark fragmentiert wurde und derzeit über ausreichend freien Speicherplatz verfügt, kann das Ausführen etwa shakealler Dateien den gewünschten Effekt haben. Eine andere Methode wäre, alle Daten in ein neues Dateisystem zu kopieren, das Original zu entfernen und es dann wieder zu kopieren. Dies hilft auf die gleiche Weise shake, kann jedoch bei größeren Datenmengen schneller sein.

Machen Sie sich bei kleinen Fragmentierungen keine Sorgen. Ich kenne Leute, die mehr Zeit damit verbringen, Defragmentierungsfortschrittsbalken zu beobachten, als sie jemals (aufgrund eines effizienteren Festplattenzugriffs) in mehreren Lebensdauern des normalen Betriebs sparen werden!

David Spillett
quelle
Gibt es einen Mechanismus wie: Dateien, die häufig beim Booten verwendet werden, werden nahe beieinander platziert, um die Lokalität zu nutzen? so schneller booten?
Ura
1
Nicht, dass ich davon Wüste. Sie können ureadaheadwie bei aktuellen Ubuntu-Builds standardmäßig (siehe ubuntuforums.org/showthread.php?t=1434502 für weitere Informationen) einen ähnlichen Effekt erzielen. Ein Teil der Verzögerung in der Linux-Startsequenz kann verringert werden, indem Sie aufgefordert werden, die Dienste nach Möglichkeit gleichzeitig zu starten, wenn das Boot-Setup Ihrer Disro dies unterstützt (setzen Sie CONCURRENCY = Shell in / etc / defaults / rc auf Debian) und ähnliche Optimierungen. Um zu überprüfen, ob Sie mit den vorgenommenen Änderungen einen Unterschied machen, verwenden Sie bootchart.org, um zu zeigen, was passiert, bevor Sie die Dinge im Vergleich zu später optimieren.
David Spillett
@uray, ich habe das lange Verlassene wiederbelebt e2defragund damit experimentiert, um eine solche Verpackung zu erreichen. Sie finden es unter launchpad.net/e2defrag .
Psusi
@ David: Ich habe keine, /etc/defaults/rcaber /etc/default/rcSauf Debian 6
Strg-Alt-Delor
@psusi - e2defragUnterstützt dies jetzt Ext3 besser als shake?
Alex S
0

Es gibt nicht viel Fragmentierung, solange die Festplatte nicht zu stark gefüllt ist (füllen Sie eine Festplatte also nicht zu stark aus, wenn Sie dies vermeiden können).

JanC
quelle
2
Wenn die Festplatte voll ist, müssen wir sie defragmentieren?
Ura