Tags: Windows Server, Deduplizierung, PowerShell
Neben der Komprimierung ist die Deduplizierung eine der von Windows Server unterstützten Techniken zur Reduzierung des Speicherverbrauchs. Besonders geeignet ist das Feature für File-Server. Es lässt sich über den Server Manager aktivieren und konfigurieren. Mehr Optionen bietet hier wieder PowerShell.
Microsoft hat die Deduplizierung mit Server 2012 eingeführt und in den letzten Versionen erheblich weiterentwickelt. Einen großen Sprung vorwärts machte sie in der Version 2016, wo enge Limitierungen für Datei- und Volume-Größen fielen. In Server 2019 kam die Unterstützung für ReFS hinzu.
Größter Nutzen für File-Server
Die Deduplizierung eignet sich nicht für alle Workloads gleichermaßen. Relativ schlechte Kandidaten sind alle jene, die nicht primär sequentiell lesen und schreiben, sondern wo der wahlfreie Zugriff dominiert. Dazu gehören SQL-Datenbanken oder reguläre Hyper-V-Hosts, wogegen RD Virtualization Hosts als eigener Typ unterstützt werden.
Aber selbst Anwendungen, die auf den ersten Blick vielversprechend aussehen, erweisen sich möglicherweise als nicht Dedup-freundlich. Das gilt etwa für WSUS, dessen Hunger nach Speicherplatz sich kaum zügeln lässt. Die Updates sind zwar bereits komprimiert, was grundsätzlich kein Hinderungsgrund ist, aber offenbar gibt es relativ wenig redundante Datenblöcke.
Gewinn durch Dedup berechnen
Um schon vorab zu klären, ob sich die Deduplizierung überhaupt lohnt, kann man das Dienstprogramm DDPEval.exe konsultieren:
DDPEval.exe d:\wsus /v /o:C:\Users\root\dedup.txt
In diesem Beispiel würde es die Dateien unter d:\wsus untersuchen und deren mögliche Dedup-Rate berechnen (das Ergebnis schreibt es in die dedup.txt).
Es steht jedoch erst zur Verfügung, nachdem man das Dedup-Feature installiert hat. Unabhängig davon funktioniert die Freeware von StarWind, deren Kalkulation ähnlich ausfällt wie die des Bordmittels.
Feature hinzufügen
Erweist sich die Deduplizierung als vielversprechend, dann fügt man das Feature hinzu. Im Server Manager startet man dazu den Assistenten für Rollen und Features, die Datendeduplizierung findet man dann unter Serverrollen => Datei-/Speicherdienste => Datei- und iSCSI-Dienste.
Bevorzugt man PowerShell, dann gibt man folgenden Befehl ein:
Install-WindowsFeature -Name FS-Data-Deduplication
Dedup aktivieren
Im nächsten Schritt aktiviert man Dedup für bestimmte Volumes. Nimmt man dafür den Server Manager, dann navigiert man dafür nach Datei- und Speicherdienste => Volumes. In diesem Fenster öffnet man das Kontextmenü des gewünschten Volumes und führt den Befehl Deduplizierung konfigurieren aus.
Im anschließenden Dialog entscheidet man sich zwischen den Typen Allgemeiner Dateiserver, VDI-Server und Virtualisierter Sicherungsserver. Außerdem kann man hier noch einige Parameter konfigurieren, wie das Mindestalter der Dateien sowie Ordner und Dateitypen, die man ausschließen möchte. In den meisten Fällen wird man die Einstellungen nun speichern.
Folgt die Auslastung des Servers nicht dem Muster der meisten Anwendungen, wo während der Nacht oder über das Wochenende mehr Ressourcen für die Deduplizierung zur Verfügung stehen, dann kann man über die entsprechende Schaltfläche einen weiteren Dialog öffnen, um die Zeitpläne anzupassen.
Aktiviert man Dedup über PowerShell, dann erfolgt der Aufruf nach diesem Muster:
Enable-DedupVolume -Volume d: -UsageType Default
Er betrifft das Laufwerk d: und legt als Typ Default fest, was Allgemeiner Dateiserver auf der GUI entspricht. Darunter fallen neben normalen Netzlaufwerken auch Work Folder oder Ordnerumleitungen.
Weitere Optionen mit PowerShell konfigurieren
Möchte man die im Server Manager verfügbaren zusätzlichen Optionen konfigurieren, dann greift man dafür zu Set-DedupVolume. Damit kann man nicht nur bestimmte Ordner oder Dateitypen ausschließen, sondern auch die minimale Größe von Dateien festlegen, die dedupliziert werden sollen.
Außerdem kann man mit dem Parameter NoCompress die zusätzliche Komprimierung deaktivieren. Das wird man typischerweise dann tun, wenn die Daten ohnehin schon komprimiert sind.
Geplante Aufgaben für die Deduplizierung
Unabhängig davon, mit welchen Mitteln man die Deduplizierung für ein Laufwerk aktiviert, im Ergebnis legt das System dafür mehrere geplante Aufgaben an. Diese kann man sich mit
Get-ScheduledTask -TaskPath \Microsoft\Windows\Deduplication\
anzeigen lassen.
Eine davon ist für die eigentliche Dedup-Operation, die anderen kümmern sich um das Entfernen nicht mehr referenzierter Blöcke (Garbage Collection) und um die Fehlerkorrektur (Scrubbing). Möchte man dafür die Zeitpläne ändern, dann kann man das mit Set-DedupSchedule tun.
Status abrufen
Wenn die Dedup-Funktion aktiv ist, dann wird man gelegentlich nachsehen wollen, wie groß die Ersparnis beim Speicher ist. Das Cmdlet
Get-DedupStatus
gibt darüber Auskunft.
Dedup pausieren oder beenden
Will man die Deduplizierung anhalten, dann dient
Disable-DedupVolume -Volume <Laufwerk>
diesem Zweck. In diesem Fall bleiben die deduplizierten Daten in ihrem bisherigen Zustand und neu hinzukommende werden nicht mehr bearbeitet. Um die bereits erfolgte Deduplizierung rückgängig zu machen, gibt man den Befehl
Start-DedupJob -Type Unoptimization -Volume <Laufwerk>
ein.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links