# NTFS Compression & Sparse Files: Effiziente Speichernutzung
TL;DR / Management Summary Auf kleinen SSDs oder bei riesigen Log-Dateien ist NTFS-Kompression ein Lebensretter. Wir nutzen die transparente Kompression für Archiv-Daten und Sparse Files (Dünnbesetzte Dateien) für Datenbank-Dateien oder VM-Disks, die viel “Leerraum” enthalten. Ein Senior Admin weiß: Kompression kostet CPU-Zyklen, spart aber I/O-Zeit – ein fairer Tausch auf modernen Systemen.
# 1. Einführung & Architektur
Wie NTFS Platz ‘schummelt’.
# NTFS Kompression
Der Kernel komprimiert Datenblöcke (16 Cluster), bevor sie auf die Disk geschrieben werden. Beim Lesen werden sie on-the-fly dekomprimiert.
- Algorithmus: LZNT1 (schnell, moderat effizient).
- Sichtbarkeit: Im Explorer werden komprimierte Dateien/Ordner blau dargestellt.
# Sparse Files (Dünnbesetzte Dateien)
Stellen Sie sich eine 1 TB Datei vor, die nur 1 MB Daten am Anfang und 1 MB am Ende hat.
- Ohne Sparse: Die Datei belegt 1 TB auf der Disk (meist Nullen).
- Mit Sparse: NTFS speichert nur die Metadaten über die Nullen. Die Datei belegt nur 2 MB physischen Platz.
# 2. Verwaltung in der Praxis
Platz schaffen per Befehl.
# Kompression via CLI (compact)
Das Tool compact.exe ist mächtiger als der Explorer-Dialog.
# Einen Ordner und alle Unterordner komprimieren
compact /c /s:"C:\Logs" /i
# Status prüfen (Kompressionsrate sehen)
compact /s:"C:\Logs"
# CompactOS: Das System schrumpfen
Windows 10/11 bietet eine spezielle Kompression für Systemdateien, um ca. 2-3 GB auf der C: Partition zu gewinnen.
# Status prüfen
compact /compactos:query
# System-Dateien komprimieren (Dauer: ca. 10-20 Min)
compact /compactos:always
# 3. Deep Dive: Sparse Files & Tools
Die Kunst des Weglassens.
Programmierer nutzen das FSCTL_SET_SPARSE Flag. Admins können Sparse-Eigenschaften mit fsutil beeinflussen.
# Sparse-Check
# Prüfen, ob eine Datei als Sparse markiert ist
fsutil sparse queryflag my_big_file.dat
# Eine Datei manuell als Sparse markieren
fsutil sparse setflag my_big_file.dat
# 4. Day-2 Operations: Performance & Einschränkungen
Wann man es NICHT tun sollte.
# Performance-Impact
- CPU: Moderne CPUs (i5/i7/Ryzen) merken die Last kaum.
- Fragmentierung: Komprimierte Dateien fragmentieren stärker, da die Größe nach dem Schreiben nicht präzise vorhersehbar ist. Vermeiden Sie Kompression auf rotierenden HDDs für Datenbanken!
# Die NTFS-Einschränkung
NTFS kann Dateien nur komprimieren, wenn die Clustergröße 4 KB oder kleiner ist. Bei 64 KB Clustern (oft für SQL-Server genutzt) ist der Reiter “Erweitert -> Komprimieren” ausgegraut.
# 5. Troubleshooting & “War Stories”
Wenn der Platz-Zauber versagt.
# Top 3 Fehlerbilder
-
Symptom: Datei ist komprimiert, belegt aber laut Explorer den gleichen “Größe auf Datenträger”.
- Ursache: Die Daten sind bereits komprimiert (z.B. JPG, ZIP, MP4). NTFS kann hier nichts mehr herausholen.
- Lösung: Nur Text-, Log- oder BMP-Dateien komprimieren.
-
Symptom: Hohe Latenz bei Schreibvorgängen auf komprimierte Volumes.
- Ursache: “Write amplification”. NTFS muss den Block lesen, dekomprimieren, ändern, neu komprimieren und schreiben.
- Lösung: Deaktivieren Sie Kompression für Temp-Ordner oder Transaktions-Logs.
-
Symptom: Sparse-Dateien werden beim Kopieren auf ein anderes Medium “riesig”.
- Ursache: Das Ziel-Dateisystem (z.B. FAT32 oder ein altes NAS) unterstützt keine Sparse-Files.
- Lösung: Nutzen Sie Tools wie
robocopy /sparseoder rsync mit Sparse-Support.
# “War Story”: Der 100-GB Log-Glitch
Ein Admin wunderte sich, warum sein Monitoring-Server voll lief. Eine Log-Datei war 120 GB groß.
Die Rettung: Er aktivierte compact /c auf dem Ordner. Die Datei schrumpfte auf 400 MB (99% Kompression bei Text). Er gewann genug Zeit, um den fehlerhaften Dienst zu fixen, ohne den Server herunterfahren zu müssen.
# 6. Monitoring & Reporting
Transparenz im Storage.
# PowerShell Analyse
# Zeigt die Kompressionsrate aller Dateien in einem Pfad
Get-ChildItem C:\Logs -Recurse | Select-Object Name,
@{Name="OriginalSize";Expression={$_.Length}},
@{Name="CompressedSize";Expression={(compact $_.FullName | Select-String "is" | ForEach-Object { $_.ToString().Split(" ")[-1] })}}
# 7. Fazit & Empfehlung
Nutzen Sie NTFS-Features als strategisches Werkzeug.
- Empfehlung: Nutzen Sie CompactOS auf allen Laptops mit < 256 GB SSD.
- Wahl: Verwenden Sie Sparse Files für Test-Datenbanken und VM-Snapshots.
- Warnung: Finger weg von Kompression bei hochfrequenten Schreib-Workloads!
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Ganze Disk komprimieren | compact /c /i /s:\ |
| Kompression aufheben | compact /u /s:"C:\Ordner" |
| System Status | compact /compactos:query |
| Sparse Range setzen | fsutil sparse setrange ... |