Nun gibt es wieder einen neuen Beitrag von mir :-). Diesmal zum Thema Storage Spaces. Storage Spaces sind die inoffiziellen Nachfolger des Windows Home-Server Balancings und seit Windows 8 in Windows integriert. Mit Windows 10 gibt es nun auch die Möglichkeit ein Storage Space mit SSD-Cache zu erstellen.

Storage Spaces bieten dabei die Möglichkeit mehrer physikalische Festplatten zu einem logischen Laufwerk zusammenzufassen. Dabei werden die folgenden Modi unterstützt:

  • Spiegelung
  • 2-Wege-Spiegelung
  • 3-Wege-Spiegelung-
  • Parität
  • Einfach (keine Resilizenz)

Windows 10 hat nun einige neue Funktionen erhalten, die unter Windows 8.1 lange vermisst wurden.

  • Ausgleich über mehrere Festplatten, auch Laufwerksoptimierung genannt
  • Entfernen von Festplatten aus dem Verbund
  • Storage Tiering, also die Möglichkeit schnellen SSD Speicher als Cache für Festplatten zu nutzen

Beim Storage Tiering werden zwei verschiedenen Bereich gebildet. Häufig genutzte Daten (Hot-Data) werden in den SSD-Bereich verschoben und von dort ausgeliefert. Weniger häufig genutzte Daten (Cold-Data) werden von dem HDD-Bereich ausgeliefert. Per Wartungsaufgabe wird in regelmäßigen Abständen die Nutzung des SSD-Bereichs optimiert. Der write-back-Cache wird bei einfachen und gespiegelten Speicherplätzen genutzt um zufällige Schreiboperationen auf die SSD umzuleiten und dann später gebündelt an die HDD weiterzugeben. Der write-back-Cache wird erst genutzt, sobald der SSD-Cache vollständig gefüllt ist.

Unter Windows 10 lässt sich das Tiering der Storag Spaces nur per PowerShell nutzen. Weiterhin ist es nicht möglich einen bestehende Speicherplatz, mit enthaltenen Daten um ein SSD-Cache zu erweitern.

Voraussetzungen

Folgende Tabelle zeigt, wie viele Festplatten und SSDs mindestens nötig sind um den entsprechenden Modus nutzen zu können.

  Einfach 2-Wege-Spiegelung 3-Wege-Speigelung Parität
SSD 1 2 3 3
HDD 1 2 3 3

Erstellung

1.) Festplatte vorbereiten

  • Alle Daten der später verwendeten Laufwerke sichern
  • Partitionen löschen unter Systemteuerung -> System und Sicherheit -> Festplattenpartitionen erstellen und formatieren

2.) Festplatten zu einem neuen Pool zusammenschließen

  • Entweder über die Oberfläche unter Systemsteuerung -> System und Sicherheit -> Speicherplätze
  • Wichtig ist, dass bei Nutzung der GUI keine neue Virtuelle Festplatte (auf deutsch auch Speicherplatz) erstellt wird.
  • Oder folgendes in die PowerShell mit Admin-Rechten eingeben
$pd = (Get-PhysicalDisk -CanPool $True | Where MediaType -NE UnSpecified)
New-StoragePool -PhysicalDisks $pd -StorageSubSystemFriendlyName "Storage Spaces*" -FriendlyName "Speicherpool"

3.) Virtuelle Festplatte mit SSD-Cache erstellen

Folgendes in der PowerShell mit Admin-Rechten eingeben

$ssd_Tier = New-StorageTier -StoragePoolFriendlyName "Speicherpool" -FriendlyName SSD_Tier -MediaType SSD
$hdd_Tier = New-StorageTier -StoragePoolFriendlyName "Speicherpool" -FriendlyName HDD_Tier -MediaType HDD
New-VirtualDisk -StoragePoolFriendlyName "Speicherpool" -FriendlyName "Speicherplatz" -StorageTiers  @($ssd_tier, $hdd_tier) -StorageTierSizes @(100GB, 1750GB) -ResiliencySettingName  Simple -WriteCacheSize 8GB

In diesem Beispiel wird eine neue virtuelle Festplatte mit der Gesamtgröße von 1850GB (1750 + 100) erstellt. Hier ist keine Spiegelung oder Parität eingestellt. Der SSD-Cache ist in diesem Beispiel 100GB groß, der Festplattenanteil 1750GB. Dazu wird ein write-back-Cache in Größe von 8GB genutzt.

4.) Bericht aktivieren

Mit folgendem Befehl in der PowerShell wird nach jeder Optimierung der Bericht unter C:\Windows\StorageTiersOutput.txt aktualisiert. Darin ist z.B zu sehen ob die Größe des SSD-Caches ausreicht.

schtasks /change /tn "\Microsoft\Windows\Storage Tiers Management\Storage Tiers Optimization" /tr "cmd /c %windir%\System32\defrag.exe /c /h /g /# > %windir%\StorageTiersOutput.txt"~ ~
schtasks /change /tn "\Microsoft\Windows\Storage Tiers Management\Storage Tiers Optimization" /tr "cmd /c C:\Windows\System32\defrag.exe /c /g /# > C:\Windows\StorageTiersOutput.txt"

[Update: Anpassung an Windows 10 1607, da die Kommandozeile das zweite %windir% nicht mehr auflösen konnte.]

5.) Optimierung manuell starten

Die Optimierung läuft nach den Standard-Einstellungen alle 4 Stunden. Manuell lässt sich die Optimierung durch folgenden PowerShell-Befehl starten:

Get-ScheduledTask -TaskName "Storage Tiers Optimization" | Start-ScheduledTask