Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Fragmentierung (Dateisystem)

Unter Fragmentierung (Fragment = Bruchstück) versteht man die verstreute Speicherung von logisch zusammengehörigen Datenblöcken des Dateisystems auf einem …

Inhalt6 Abschnitte
  1. 1. Grundidee und Bedeutung
  2. 2. Ursachen und Formen
  3. 3. Folgen auf verschiedenen Speichern
  4. 4. Vorbeugung und Messung
  5. 5. Verfahren zur Neuordnung
  6. 6. Umsetzung bei Windows

Grundidee und Bedeutung

Fragmentierung bedeutet, dass logisch zusammengehörige Datenblöcke eines Dateisystems verstreut auf einem Datenträger gespeichert sind. Sie ist ein Spezialfall der allgemeinen Speicherfragmentierung. Besonders bei Speichermedien mit sequenziellem Zugriff, etwa magnetischen Festplatten, kann sie Lese- und Schreibvorgänge spürbar verlangsamen.

Defragmentierung ist die Neuordnung solcher Datenblöcke durch spezielle Programme. Zusammengehörige Blöcke werden dabei möglichst direkt nacheinander abgelegt. Das kann den sequenziellen Zugriff und damit die Arbeitsgeschwindigkeit des Systems erhöhen.

Bei Flash-Speichern, insbesondere SSDs, bringt eine Defragmentierung dagegen keinen solchen Vorteil und kann sogar schaden: Die zusätzlichen Schreibvorgänge verkürzen möglicherweise die Lebensdauer, weil Flash-Speicher nicht unbegrenzt oft beschrieben werden können.

Ursachen und Formen

Auf einem beschreibbaren Datenträger werden ständig Daten gelesen, geschrieben und gelöscht. Dadurch entstehen verteilte freie Bereiche. Soll eine Datei gespeichert werden, die größer als der gefundene freie Bereich ist, schreibt das Dateisystem zunächst diesen Bereich voll und legt den Rest in einem anderen freien Bereich ab. Auch das nachträgliche Vergrößern bestehender Dateien kann dazu führen, dass neue Datenblöcke an einer anderen Stelle gespeichert werden.

Man unterscheidet mehrere Formen:

• Intrafile-Fragmentierung: Die Datenblöcke einer einzelnen Nutzdatei liegen verteilt. Beim sequenziellen Lesen können dadurch zusätzliche Verzögerungen entstehen.

• Interfile-Fragmentierung: Dateien und Metadateien, die normalerweise nacheinander gelesen werden, liegen weit auseinander. Das ist besonders beim zusammenhängenden Lesen vieler kleiner Dateien bedeutsam, etwa in einem Verzeichnis mit vielen kleinen Bildern.

• Metafile-Fragmentierung: Verzeichnisse, Blockbelegungstabellen und andere Metainformationen sind fragmentiert.

• Freispeicherfragmentierung: Der unbenutzte Speicherplatz ist auf viele Lücken verteilt. Das verlangsamt den Zugriff auf vorhandene Dateien nicht unmittelbar, fördert aber die Fragmentierung neu angelegter Dateien.

Ein typischer Ablauf ist: Eine Datei wird zusammenhängend angelegt, danach belegt eine zweite Datei den anschließenden Platz. Wird die erste Datei später vergrößert, muss ihr neuer Teil hinter der zweiten oder in einer anderen Lücke gespeichert werden. Nach einer Defragmentierung liegen die Teile der ersten Datei wieder zusammen.

Folgen auf verschiedenen Speichern

Wie stark Fragmentierung die Geschwindigkeit beeinflusst, hängt vom Speichermedium ab. Bei modernen Dateisystemen wie ReiserFS, XFS und NTFS können außerdem die Metadaten größer werden, weil sie die Speicherorte der verteilten Daten beschreiben müssen.

Bei einer magnetischen Festplatte muss der Lesekopf beim Zugriff auf eine verstreut gespeicherte Datei häufig neu positioniert werden, teilweise über längere Strecken. Jede Bewegung verursacht kleine Verzögerungen von einigen Millisekunden. Abhängig von Dateigröße, Fragmentierungsgrad und Zugriffszeit können sie sich zu einer deutlich spürbaren Verlangsamung summieren.

USB-Sticks, Speicherkarten und SSDs besitzen keine beweglichen Teile und daher keine mechanisch verursachten Suchzeiten. Hybridfestplatten, die Magnetplatten und Speicherchips verbinden, sind nur teilweise von diesem mechanischen Problem betroffen. Dennoch kann ein fragmentiertes Dateisystem auch nichtmechanische Medien verlangsamen. Die Wirkung hängt stark von Gerät, Hersteller und interner Speicherorganisation ab. Der Controller kann Daten in einer anderen physischen Reihenfolge speichern, als das Dateisystem abbildet. Durch Wear Leveling werden Schreibvorgänge auf verschiedene physische Speicherzellen verteilt, damit nicht immer dieselben Zellen belastet werden. Deshalb lässt sich keine allgemeingültige Aussage über die Geschwindigkeitswirkung der Fragmentierung auf Flash-Medien treffen. Sicher ist laut Artikel aber, dass Defragmentieren ihre Lebensdauer durch zusätzliche Schreibvorgänge beeinträchtigt.

Vorbeugung und Messung

Die genannten Gegenmaßnahmen beziehen sich vor allem auf Festplatten. Bei anderen Speichermedien bringen sie möglicherweise wenig oder keinen Vorteil. Grundsätzlich vermindert es die Fragmentierung, 5 bis 20 Prozent des Speicherplatzes freizulassen. Je voller ein Dateisystem ist, desto kleiner werden seine freien Bereiche. Ist eine neue Datei größer als die größte freie Lücke, kann sie nicht mehr zusammenhängend gespeichert werden.

Programme und Nutzerdaten können auf verschiedene Partitionen verteilt werden. Nutzerdaten verändern sich laufend, während Programme vor allem durch Updates neue Fragmente bilden. Die Trennung kann daher die Fragmentierung begrenzen und spätere Defragmentierungen verkürzen. Weitere Maßnahmen sind eine geeignete Verteilung von Betriebssystem, Verzeichnisbäumen und Nutzerdaten sowie eine größere Blockgröße; größere Blöcke können allerdings Speicherplatz verschwenden.

Auch Anwendungen und Systemdienste können die Belegung beeinflussen: Bei der Preallocation werden Blöcke vorsorglich reserviert. Late Allocation legt die tatsächlich verwendeten Blöcke erst spät fest, statt sie bei der Early Allocation sofort zu bestimmen. Mehrstufige Allozierungssysteme gliedern eine Festplatte beispielsweise in Cluster, Blockgruppen und Blöcke.

Der Fragmentierungsgrad kann unter anderem als Verhältnis fragmentierter Dateien zu allen Dateien, des von fragmentierten Dateien belegten Platzes zum belegten oder vorhandenen Platz, der zusammenhängenden zu den belegten oder vorhandenen Blöcken oder anhand des Geschwindigkeitsverhältnisses zwischen realem und optimal nichtfragmentiertem Dateisystem angegeben werden. Werte aus unterschiedlichen Verfahren sind nicht vergleichbar. Selbst beim gleichen Verfahren hängen die tatsächlichen Folgen von Blockgröße, durchschnittlicher Dateigröße, Geschwindigkeit und interner Organisation des Mediums ab. Auch fragmentierte Metadaten – bei NTFS beispielsweise die Master File Table (MFT) – und Schutzmechanismen des Dateisystems beeinflussen die Leistung.

Bei Linux-Dateisystemen fasst das extended filesystem Blöcke zu Blockgruppen zusammen. Dateien und freie Bereiche werden möglichst gleichmäßig verteilt; hinter Dateien bleibt nach Möglichkeit Platz für kleinere Erweiterungen. Ext4 verbessert dies durch Extents, also Beschreibungen zusammenhängender Blockbereiche. XFS verwendet Delayed Write: Schreibdaten werden möglichst lange im RAM gesammelt, damit vor dem Speichern eine günstige Position gewählt werden kann.

Zu unterscheiden sind Performance und Durchsatz. Performance ist die maximale Datenrate in MB/s, die ein einzelner Prozess erreicht. Durchsatz ist die summierte Datenrate über alle Benutzer und Prozesse mit konkurrierenden Ein-/Ausgabeanfragen. Linux-Algorithmen zielen häufig auf höheren Durchsatz. Starke Fragmentierung beeinträchtigt besonders die Performance eines einzelnen Zugriffs.

Verfahren zur Neuordnung

Eine zuverlässige, aber aufwendige Methode ist das Kopieren aller Dateien auf eine leere Partition. Beim einzelnen Kopieren werden die verstreuten Teile auf der Quelle zusammengesetzt und auf der Zielpartition in aufeinanderfolgenden Blöcken abgelegt. Alternativ können die Dateien in ein Archiv auf derselben Partition geschrieben, die Originale gelöscht und das Archiv wieder entpackt werden. Diese Methode funktioniert bei jedem Dateisystem, benötigt aber eine zusätzliche Partition oder genügend freien Platz für eine zweite Datenkopie.

Defragmentierprogramme arbeiten offline oder online. Bei der Offline-Defragmentierung darf das Dateisystem nicht eingebunden sein; die Systempartition eines laufenden Systems kann deshalb auf diese Weise nicht bearbeitet werden. Eine Online-Defragmentierung ist im laufenden Betrieb möglich. XFS unterstützt sie beispielsweise mit xfs_fsr.

Unter Unix und Linux verhindert die Gestaltung vieler Dateisysteme einen Teil der Fragmentierung, beseitigt sie aber nicht vollständig. Die häufige Behauptung, unixoide Systeme benötigten grundsätzlich keine Defragmentierung, geht auf die Masterarbeit „A Fast Filesystem for UNIX“ von Bill Joy, Samuel Leffler und Kirk McKusick zurück. Deren Aussage betrifft jedoch UFS und lässt sich nicht auf alle Dateisysteme übertragen. Laut Artikel kann ext2 mit defrag und XFS mit xfs_fsr bearbeitet werden; für ReiserFS und ext3/ext4 werden dort keine entsprechenden Programme genannt, sodass als Lösung das Kopieren auf eine leere Partition bleibt.

APFS, HFS+ und das historische HFS unter macOS suchen für eine Datei zunächst den größten freien Speicherblock. Erst wenn die Datei dort nicht vollständig hineinpasst, wird sie geteilt. Für HFS+ beschreibt der Artikel außerdem eine im Hintergrund laufende Defragmentierung, die keine Ausgabe zeigt und bei Festplattenzugriffen automatisch pausiert.

Umsetzung bei Windows

Unter Windows entsteht durch autonome Systemdienste, Systemupdates und die Installation großer Anwendungspakete fortlaufend neue Fragmentierung. Eine erneute Defragmentierung kann sinnvoll sein, wenn die Systemleistung danach erheblich sinkt.

Bei PC-kompatiblem DOS waren Dateiverzeichnis und Dateiinhalt nicht getrennt. Digital Research lieferte 1991 mit DR DOS 6.0 das Disk Optimizer Utility DISKOPT.EXE aus; Microsoft folgte in MS-DOS 6 mit DEFRAG.EXE, einer eingeschränkten lizenzierten Version von Norton SpeedDisk. Auf damaligen 386-/486-Computern konnten solche Programme die Geschwindigkeit deutlich steigern. Bis Windows Me zeigte Defrag das Verschieben einzelner Blöcke visuell. Programme von Norton/Symantec und Central Point boten zusätzlich Sortierungen nach Dateiname, Größe oder Datum. Diese steigerten die Effizienz kaum, konnten aber bestimmte Systemdateien an den Anfang einer Partition legen und so deren erneute Fragmentierung verlangsamen.

Bei NTFS werden Verzeichnisse und Dateiinhalte getrennt gespeichert und daher in mehreren Phasen defragmentiert. 1995 lizenzierte Executive Software den Quelltext von Windows NT und veröffentlichte im April Diskeeper für Windows NT 3.5, später auch für Windows NT 3.51. Nach Problemen mit Service Packs entstand in Zusammenarbeit mit Microsoft eine standardisierte, zunächst undokumentierte Defragmentierungs-API für Windows NT 4.0. Windows 2000 enthielt erstmals ein Microsoft-Defragmentierungsprogramm. Windows Vista ersetzte dessen grafische Darstellung durch eine Prozentanzeige.

Windows 7 defragmentiert bei geringer Systemauslastung zeitweise automatisch; laut den im Artikel genannten Messungen verbessert dies Start und laufenden Betrieb spürbar. Ab Windows 7 läuft der Windows-eigene Dienst standardmäßig einmal wöchentlich im Hintergrund und kann deaktiviert werden. Unter Windows-NT-Systemen ab Windows 2000 steht das mitgelieferte Werkzeug nur Administratoren zur Verfügung und besitzt gegenüber Fremdprodukten einen eingeschränkten Funktionsumfang. Als Freeware nennt der Artikel Ultimate Defrag, MyDefrag und Defraggler.

Weiterlesen

Festplattenlaufwerk Ein Festplattenlaufwerk (englisch hard disk drive, Abkürzung HDD), früher auch Festplatten-Speichersystem oder Festplatten-System, oft auch als Festplatte … Betriebssystem Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start … Flash-Speicher Flash-Speicher sind digitale Speicherbausteine für eine nichtflüchtige Speicherung ohne Erhaltungs-Energieverbrauch. Die genaue Bezeichnung dieses … Solid-State-Drive SSDs haben keine beweglichen Teile und sind daher unempfindlich gegen Stöße, Erschütterungen und Vibrationen. Sie haben außerdem wesentlich schnellere … Korrelation Die Maßzahlen der Korrelation liegen betragsmäßig meist in einem Bereich von Null (kein Zusammenhang) bis Eins (starker Zusammenhang). · Ein Beispiel für eine … Controller (Hardware) Controller haben im Computer verschiedene Aufgaben der physikalischen Datenverarbeitung und fungieren als Kommunikationsschnittstelle. In der Regel sind die … Multitasking Der Begriff Multitasking [ˌmʌltiˈtɑːskɪŋ] (engl.) bzw. Mehrprozessbetrieb bezeichnet die Fähigkeit eines Betriebssystems, mehrere Aufgaben (Tasks) … Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Volume (Datenspeicher) Volumes werden oft gemeinsam mit Partitionen und tatsächlichen Laufwerken (oder sonstigen Datenspeichern) genutzt und die Begriffe teilweise synonym verwendet.