Die DesktopdateienDie Wahrheit über Defragmentierung

Wes Miller

Die Datenträgerfragmentierung gibt es, seit es Festplatten gibt. Wenn Sie wirklich Grund zur Sorge um Ihre Systeme haben, sollten Sie sie regelmäßig defragmentieren. Dies erinnert Sie wahrscheinlich an die alljährliche Unterhaltung mit Ihrem Zahnarzt – wenn es um die Anwendung von Zahnseide geht. Defragmentierung ist genauso wichtig.

Wenn Ihr Computer nicht in einer Ecke steht und immer ausgeschaltet ist, wird er immer mehr fragmentiert. Wie dies vor sich geht, wird gleich erläutert, doch zuerst soll Stück Defragmentierungsgeschichte erwähnt werden.

Defragmentierung und Windows NT

Windows NT® enthielt kein integriertes Dienstprogramm zur Defragmentierung, und zu jener Zeit wurde allgemein angenommen, dass es auch nicht nötig ist. Immerhin stand bei der Erstellung von NTFS der Optimierungsgedanke im Mittelpunkt, und seine Fragmentierung stellte kein so großes Problem dar wie ein vergleichbarer FAT-Datenträger. Doch mit der Zeit kann sogar die NTFS-Leistung unter einer nicht optimalen Dateiverteilung leiden. Dadurch entstand ein blühender Markt für die Defragmentierungstools von Drittanbietern. Eines der beliebtesten Produkte unter IT-Experten war Diskeeper von Executive Software (heute Diskeeper Corporation). Als Windows 2000 die Defragmentierungsfunktionalität integrierte, erwarb Microsoft von Executive Software eine Lizenz für die Technologie. Die Windows® 2000-Defragmentierungsfunktionalität war in einem eigenen Microsoft® Management Console (MMC)-Snap-In (dfrg.msc) verfügbar, das durch Klicken auf einen Datenträger oder durch manuelles Ausführen von „defrag.exe“ über die Befehlszeile aufgerufen werden konnte. Obwohl keine Zeitplanung und nur eine eingeschränkte Befehlszeile verfügbar waren, erstellten viele IT-Experten weiterhin funktionale Skripts, um die Defragmentierung mithilfe dieser integrierten Version zu automatisieren. Defrag.exe in Windows XP und Windows Server® 2003 hatte sich im Vergleich zur früheren Version verbessert, bot jedoch nur eine begrenzte Automatisierung, denn es erforderte nach wie vor eine Skripterstellung.

Eine Anzahl von Anbietern, einschließlich Winternals Software (mein ehemaliger Arbeitgeber), hat Software für die Defragmentierung von Speicherplatz in Unternehmen hergestellt. Die meisten dieser Produkte funktionieren auf die gleiche Weise mit einer zentralisierten Konsole, einer Art Agent, der sich auf Clientsystemen befindet (manchmal fortlaufend, manchmal nur bei Bedarf), und einer Struktur, anhand derer bestimmt werden kann, wann und wie eine Defragmentierungsaufgabe ausgeführt wird.

Windows Vista® setzt im Großen und Ganzen den Trend der Einzelsystemdefragmentierung fort. Dabei wird das Defragmentierungsprogramm optimiert, und es werden Optionen wie das Defragmentieren kleiner Dateifragmente (64 MB oder kleiner) integriert. Dadurch wird die Defragmentierung beschleunigt, doch viele größere Dateifragmente werden auf dem Dateiträger belassen. Das Defragmentierungsmodul an sich ist in Windows Vista und Windows Server 2008 leistungsfähiger als in früheren Versionen von Windows. Es wird zudem automatisch ausgeführt und erfordert keine manuelle Zeitplanung. In einem großen Unternehmen oder wenn Sie Ihre Systeme in einer Weise optimieren möchten, die von den Standardoptionen des Defragmentierungsprogramms nicht abgedeckt wird, kann es sein, dass Sie eine Lizenz für Drittanbietersoftware erwerben müssen. Wie in früheren Versionen treten bei der Defragmentierung eines Datenträgers möglicherweise Schwierigkeiten auf, wenn die NTFS-Komprimierung aktiviert ist und viel verwendet wird. Ein Drittanbietertool könnte bei solch einem Szenario ebenfalls nützlich sein.

Weshalb findet die Fragmentierung statt?

Fragmentierung findet statt, weil sich die Dateien mit der Zeit ändern. Im Idealfall ändern sich Windows-Dateien nicht. Zumindest ändern sie sich nicht so oft, im Grunde eigentlich nur durch Installationen von Service Packs und Softwareupdates. Sonst bleiben die Systemdateien relativ unverändert. Nach dem Durchführen einer größeren Aktualisierung wie etwa der Installation eines Service Packs, findet die Fragmentierung automatisch statt, da die aktualisierten Dateien normalerweise nicht an ihrem Datenträgerspeicherort überschrieben werden können (und zur Aktualisierung eventuell einen Neustart erfordern), was zu weiterer Fragmentierung führt.

Benutzerdateien und -daten (und die Windows-Registrierung) hingegen unterliegen ständigen Änderungen. Das Lesen, Schreiben, Bearbeiten, Kopieren und Löschen von Dateien führt zu umfangreicher Fragmentierung, vor allem bei zunehmender Auslastung der Laufwerkkapazität.

Um sich ein Bild davon zu machen, stellen Sie sich einen perfekt geordneten Datenträger vor, auf dem die Dateien den Platz lückenlos auffüllen. Angenommen, Sie öffnen und bearbeiten eine Datei und versuchen anschließend, die Datei zu speichern. Wenn die Dateigröße zugenommen hat, muss sie von Windows entweder in ihrer Gesamtheit an einem anderen Ort auf dem Datenträger gespeichert werden (angenommen nach der Datei N), oder die aktuellsten Daten müssen nach der Datei N gespeichert werden. Das bedeutet, dass Datei 2 jetzt fragmentiert ist. Wenn Sie jetzt Datei 1 bearbeiten, liegen zwei fragmentierte Dateien vor. Wenn Sie dies eine Zeit lang fortsetzen, erhalten Sie am Ende ein stark fragmentiertes System, in dem das Laufwerk an mehreren Orten suchen muss, um auf eine einzelne Datei zuzugreifen. Bei großen Datenbankdateien, umfangreichen Festplattendateien für virtuelle Computertechnologien und zahlreichen, auf einem durchschnittlichen Datenträger gespeicherten Video- und Audiodateien tritt oft Fragmentierung auf. Selbstverständlich ist dies aufgrund der zunehmenden Größe moderner Festplatten kein großes Problem, doch die Fragmentierung ist damit nicht beseitigt. Die Reaktionsfähigkeit älterer Laptops mit kleineren Festplatten nimmt immer mehr ab, sie starten langsamer und benötigen mehr Zeit, um Dateien zu öffnen und zu speichern.

Das Hauptproblem ist nicht unbedingt, wie fragmentiert das System ist, sondern wie fragmentiert die einzelnen Dateien sind. Schon von Anfang an, als die ersten Datenträger-Defragmentierungsprogramme mit mehrfarbigen Grafiken eingeführt wurden, sahen sich die Benutzer die Grafiken an und dachten sich: „Ich will einen durchgehenden Balken“. Doch im Grunde ist das überhaupt nicht wünschenswert. Einige Produkte versuchen, ihren Datenträgern den Anschein zu geben, dass es sich um zwei Blöcke handelt: einen farbigen (Dateidaten) und einen in der Regel weißen (freier Speicherplatz). Leider ist dies eines der schlimmsten Dinge, die Sie einem Datenträger antun können, wenn Sie die Absicht haben, die Frequenz und die Kosten der Defragmentierung zu reduzieren. Wenn Sie alle Dateidaten intensiv komprimieren und an den Anfang des Datenträgers stellen sowie den Großteil des freien Speicherplatzes bei zusätzlichen Dateibearbeitungen entfernen, müssen alle zusätzlichen Dateibearbeitungen an das Ende der Dateidaten gestellt werden. Diese Vorgehensweise führt im Grunde zur Fragmentierung, die mit der nächsten Dateibearbeitung einsetzt. Statt zwei Blöcke mit sauber geordneten Dateidaten zu haben, führt eine gute Defragmentierung zu einem Speicherabbild, das nicht unbedingt perfekt ist. In Abbildung 1 ist beispielsweise mein Testsystem vor der Defragmentierung dargestellt. Betrachten Sie als Nächstes Abbildung 2, in der das gleiche System nach dem Abschluss der Windows-Defragmentierung zu sehen ist.

Abbildung 1 Mein Laufwerk vor dem Defragmentieren

Abbildung 1** Mein Laufwerk vor dem Defragmentieren **(Klicken Sie zum Vergrößern auf das Bild)

Abbildung 2 Mein Laufwerk nach dem Defragmentieren

Abbildung 2** Mein Laufwerk nach dem Defragmentieren **(Klicken Sie zum Vergrößern auf das Bild)

Beachten Sie, dass bei Windows nicht die Fragmentierung der Dateien auf dem gesamten Datenträger, sondern die Fragmentierung der einzelnen Dateien im Mittelpunkt steht (in Abbildung 3 wird der Abschnitt des Defragmentierungsberichts für „Am stärksten fragmentierte Dateien“ vor der Defragmentierung angezeigt).

Abbildung 3 Defragmentierungsbericht

Abbildung 3** Defragmentierungsbericht **

Demzufolge wird Windows auch nach der Defragmentierung keinen vollständig komprimierten Satz von Dateidaten am Anfang des Datenträgers anzeigen. Beachten Sie auch den großen Abschnitt grüner Daten in den beiden Abbildungen 1 und 2. Das ist die Windows-Auslagerungsdatei, die weiter unten behandelt wird. Wenn Sie auf Ihrem Windows-System den Ruhezustand aktiviert haben, wird dies ebenso in einer Defragmentierung angezeigt.

Regelmäßige Defragmentierung ist unerlässlich

Wie beim Beispiel mit der Zahnseide: Denken Sie daran, dass das Wichtigste das regelmäßige Defragmentieren ist. Es ist sogar noch wichtiger, auf Systemen mit hoher Nutzungsrate wie Servern oft zu defragmentieren. Denn wenn Sie damit warten, dauert der Prozess möglicherweise zu lange, sodass Ihr Server nicht verfügbar oder nicht reaktionsfähig ist (weil die Defragmentierung relativ viel Zeit in Anspruch nehmen kann und bestimmte Phasen der Defragmentierung zudem CPU-intensiv sein können).

Sogar die besten Onlinedefragmentierungsprogramme können nicht alles defragmentieren. Diese können zum Beispiel geöffnete oder gesperrte Dateien (wie zum Beispiel die Auslagerungsdatei oder die Registrierungsdateien) nicht immer defragmentieren und müssen die Ruhezustandsdatei umgehen, falls sie vorhanden ist (sie ist so groß wie der auf Ihrem System verwendete Arbeitsspeicher). Weitere Informationen zum Optimieren gesperrter Dateien finden Sie folgenden Abschnitt über Defragmentierungstricks.

Es ist wichtig, die falschen Vorstellungen und die Fakten im Zusammenhang mit Defragmentierung zu verstehen. In Abbildung 4 und Abbildung 5 werden einige allgemeine Themen aufgelistet, die in Diskussionsrunden zur Defragmentierung vorgebracht werden, sowie die Wahrscheinlichkeit, dass diese Probleme tatsächlich auftreten.

Figure 5 Falsche Vorstellungen über das Defragmentieren

Falsche Vorstellung Wahrscheinlichkeit
Systeme stürzen ab. Unwahrscheinlich – Abstürze werden in der Regel durch Treiber- oder Hardwareprobleme verursacht (Speicherbeschädigung bzw. Neustarts oder Datenträgerfehler aufgrund von Temperaturproblemen).
Anwendungen stürzen ab. Unwahrscheinlich – Wie auch bei einem Gesamtsystem dürfte eine ordnungsgemäß entworfene Anwendung nicht aufgrund von Fragmentierung abstürzen. Solange bei der Ursachenermittlung nicht das Gegenteil festgestellt wird, sollten Sie nicht annehmen, dass dies von der Fragmentierung verursacht wird.
Die Registrierung wird beschädigt. Unwahrscheinlich (siehe oben) – Fragmentierung verursacht keine Registrierungsbeschädigung.
Das Ergebnis einer Defragmentierung sollte ein durchgehender Balken in einer visuellen Darstellung des Datenträgers sein. Unwahrscheinlich – Drängen Sie im Allgemeinen nicht alle Dateien auf dem System zusammen, es sei denn, Sie haben die Absicht, ein Abbild des Systems mit einem sektorbasierten Abbilderstellungstool zu erstellen, das freien Speicherplatz nicht ausschließt bzw. die Partitionen nicht verkleinert oder teilt. Sie müssen die Dateien an den Anfang des Datenträgers stellen. Ansonsten führt intensive Dateikonsolidierung nur zu weiterer Fragmentierung.
   

Figure 4 Häufige Bedenken beim Defragmentieren

Bedenken Wahrscheinlichkeit
Die Systemleistung wird leiden. Hoch – Hängt insbesondere von der Systemverwendung ab.
Das Wiederherstellen versehentlich gelöschter Dateien könnte schwierig oder unmöglich werden. Hoch – Die meisten Tools zur Dateiwiederherstellung hängen von der heuristischen Methode (zur Bestimmung des Datentyps) und der Dateiclusternähe ab. Verstreute Dateien führen zu einem komplexeren oder unmöglichen Wiederherstellungsvorgang.
Es wird teuer, das System zu defragmentieren. Mittel – Es gibt einen direkten Zusammenhang zwischen dem Nutzungsgrad des Systems und dem Ausmaß, wie sehr sich die Dateien auf dem System mit der Zeit ändern. Wenn die Benutzer zum Beispiel Dateien sehr intensiv bearbeiten, aber nur auf Serverfreigaben speichern, wird sich die Leistung mit der Zeit nicht stark verringern.
Der Datenträger wird beschädigt. Gering – Eher unwahrscheinlich. Auch hier gilt: Je mehr ein System in Anspruch genommen wird (eingeschaltet mit ständig aktiven Datenträgern, auf denen Dateien bearbeitet, geändert oder gelöscht werden), umso wahrscheinlicher ist eine Beschädigung. Doch angesichts der heutigen Hardware ist es unwahrscheinlich, dass dies einfach aufgrund der Dateibearbeitung auftritt.
   

Defragmentierung als Teil Ihrer Infrastruktur

Sie sollten ernsthaft erwägen, ein Defragmentierungsprogramm regelmäßig auf allen Ihren Systemen auszuführen. Sie können das in Windows integrierte Defragmentierungsprogramm verwenden oder das Angebot von Drittanbietern wahrnehmen. Letzten Endes hängt es davon ab, wie viel Aufwand Sie betreiben möchten. In Windows XP und höheren Versionen können Sie „defrag.exe“ als geplanten Task hinzufügen. Im Knowledge Base-Artikel unter support.microsoft.com/kb/555098 erfahren Sie mehr dazu. Beachten Sie, dass die Laptopdefragmentierung einige spezielle Überlegungen erfordert. Das System eines Benutzers soll defragmentiert werden, wenn es (im Idealfall über einen Netzanschluss) eingeschaltet ist, doch CPU- oder Datenträgerzyklen sind unerwünscht, wenn ein Benutzer mobiler Geräte gerade arbeitet. Wenn jedoch ein Benutzer mobiler Geräte momentan nicht auf seinem System arbeitet, ist die Netzverbindung aller Wahrscheinlichkeit nach leider unterbrochen, und das System befindet sich entweder im Standby- oder im Ruhezustand (was aus der Sicht der Energieverwaltung und der geplanten Tasks ausgeschaltet ist). Bei Winternals (wie wahrscheinlich überall) wurde viel Zeit darauf verwendet, ein ideales Szenario für Benutzer mobiler Geräte zu entwerfen. Wenn Sie Windows Vista verwenden, eine Lösung mit einem integrierten Defragmentierungsprogramm und geplanten Tasks, die eine viel bessere Leistung bietet als frühere Versionen, ist dies möglicherweise schon ausreichend. Andernfalls ist eventuell eine Drittanbieterlösung für mobile Systeme notwendig. Einige davon starten einen Defragmentierungstask und teilen Ihnen mit, dass und wann er ausgeführt wurde (und wie oft) und wie lange die Ausführung gedauert hat.

Zusätzlich zu mobilen Szenarios empfiehlt es sich, an die Fragmentierung über das Dateisystem hinaus zu denken. Im Allgemeinen stellt dies bei Desktops oder mobilen Systemen nicht notwendig, doch Server, Microsoft Exchange, SQL ServerTM oder andere Datenspeicher erfordern unter Umständen ihr eigenes Defragmentierungsprogramm. In solchen Fällen müssen Sie entscheiden, ob dies vor oder nach dem Durchführen einer Dateisystemdefragmentierung erfolgen soll.

Wenn Sie das Defragmentierungsprogramm eines Drittanbieters verwenden, werden Sie sicherstellen wollen, dass es die Windows-Defragmentierungs-API verwendet. Seit Windows NT 4.0 hat Windows seine eigene Defragmentierungs-API zur Verhinderung eines unerwarteten Datenverlusts. Wenn Sie zum Beispiel gerade eine Datei verschieben und Ihr System die Energieversorgung verliert, ist eine unvollständige Fragmentverschiebung, die zum Datenverlust und gar einem nicht mehr startfähigen System führen könnte, alles andere als willkommen.

Abschließend sei angemerkt: Wenn Sie eine virtuelle Computertechnologie verwenden, empfiehlt sich außerdem die Überlegung, wie Sie die Defragmentierung Ihrer virtuellen Datenträger verwalten. Die Wahrscheinlichkeit der Fragmentierung ist ebenso hoch wie bei physischen Datenträgern. In vielerlei Hinsicht dürfte die Fragmentierung hier aufgrund von Größeneinschränkungen noch stärker ausgeprägt sein. Hinzu kommt, dass Sie, wenn Ihre Virtualisierungslösung die Verkleinerung von Datenträgern und Partitionen ermöglicht, u. U. als Erstes defragmentieren müssen, um Speicherplatz freizumachen (oder zumindest die Dauer des Verkleinerungsvorgangs zu verkürzen).

Zusätzliche Tools

Jetzt sind Sie bestimmt davon überzeugt, dass die Defragmentierung eine wichtige und wertvolle Funktion ist. Selbst wenn Sie kein Drittanbietertool für die Defragmentierung selbst verwenden, empfiehlt sich ein von Mark Russinovich entwickeltes Tool namens „PageDefrag“, das Sie auf der Microsoft Sysinternals-Toolwebsite (siehe microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx) herunterladen können. Wie weiter oben bereits erwähnt, kann die Windows-Auslagerungsdatei nicht defragmentiert werden, während Windows online ist. Das Gleiche gilt eigentlich auch für die Windows-Registrierungsdateien und die Ereignisprotokolle. PageDefrag ermöglicht mithilfe eines kleinen Treibers die Defragmentierung dieser gesperrten Dateien, bevor Windows den Startvorgang abgeschlossen und diese Dateien gesperrt hat. Führen Sie einfach PageDefrag aus, und stellen Sie es so ein, dass es entweder beim nächsten Neustart oder bei jedem Neustart ausgeführt wird. Wenn das System neu startet (an dem Punkt im Startvorgang, an dem Sie schon einmal eine Datenträgerüberprüfung bemerkt haben), werden die in der Liste angegebenen Dateien defragmentiert (siehe Abbildung 6).

Abbildung 6 In PageDefrag zu defragmentierende Dateien

Abbildung 6** In PageDefrag zu defragmentierende Dateien **

Nachdem PageDefrag abgeschlossen ist, beendet das System den Vorgang normalerweise durch einen Neustart. Weitere Informationen zu PageDefrag erhalten Sie in der Septemberausgabe von „Schwerpunkt Dienstprogramme“ von Lance Whitney (siehe technetmagazine.com/issues/2007/09/UtilitySpotlight). Beachten Sie, dass PageDefrag nur unter Windows NT 4.0, Windows 2000, Windows XP und Windows Server 2003 unterstützt wird, nicht jedoch unter Windows Vista.

Zusätzlich zu PageDefrag gibt es ein anderes Tool namens „Contig“, das Sysinternals zur Verfügung stellt und mit dem Sie eine bestimmte Datei manuell defragmentieren können (siehe microsoft.com/technet/sysinternals/FileAndDisk/Contig.mspx). Dies kann nützlich sein, wenn eine bestimmte Datei über einen gewöhnlichen Defragmentierungstask nicht defragmentiert werden konnte oder wenn sie seitdem fragmentiert wurde (nicht jedoch der restliche Datenträger).

Contig kann zudem ein ganzes Verzeichnis oder Unterverzeichnisse mithilfe von Platzhaltern defragmentieren. Im Folgenden werden alle Dateien im Windows-Verzeichnis unabhängig von ihrem Speicherort defragmentiert.

Contig –s c:\Windows\*.*

Durch Anwenden des Schalters „–v“ wird der Vorgang zu einem ausführlichen Vorgang, und „–q“ bewirkt, dass der Vorgang automatisch ausgeführt wird.

Wes Miller ist Entwicklungsmanager bei Pluck (www.pluck.com) in Austin, Texas. Davor arbeitete er bei Winternals Software in Austin und bei Microsoft als Programmmanager und Produktmanager für Windows. Sie können Wes Miller unter technet@getwired.com erreichen.

© 2008 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.