05.05.2014

Windows Server 2012 R2 Storage Spaces – Write Back Cache

Technical Value

Windows 2012 R2 Storage schematisch:

Der Windows Server 2012 R2 hat ein umfassendes Update der Speicherbereitstellung erhalten, mit einigen genialen neuen Features, die bisher nur dedizierten Storage Appliances vorbehalten waren.

Features:

  • Thin Provisioning
  • Simple-, Mirror und Parity-Storage Layout
  • 3Way Mirroring
  • Hot Spare Disk
  • 2-Tier Storage
  • Dual Parity Storage
  • Write-Back Cache

Letzteres sehen wir uns genauer an - den Write-Back Cache.

Cache, oder kein Cache?
Um Leistungsspitzen abzudämpfen, (Datenbank-, Mailserver-, oder Virtualisierungs- Szenarien), nutzen kann theoretisch ein Cache-Mechanismus verwendet werden, um zufällige, oder gleichzeitige Datenzugriffe in einem Cache zwischen zu speichern und Arbeitslast von rotierenden Speichersystemen zu nehmen, für lesende Zugriffe funktioniert dieses System auch mit Einschränkungen hervorragend. Beispielsweise geht MS im neuen 2014er SQL Server mit In-Memory Tables den Weg Datentabellen, entweder komplett, oder zu großen Teilen im Arbeitsspeicher zu halten.

Viele Applikationen umgehen aus Datensicherheitsgründen die vorhandenen Betriebssystem Cache-Funktionen und warten auf eine Schreibbestätigung der Datenplatte – mit der entsprechenden Verzögerung. Bei plötzlichem Hardwareversagen, ist dieses Verhalten äußerst positiv, da nur so gesichert werden kann das alle Daten konsistent und wie beabsichtigt abgelegt werden. Insbesondere im Zusammenhang mit Hyper-V tritt dieses Phänomen massiv zu Tage: Viele verschiedene virtuelle Maschinen greifen parallel und komplett zufällig auf eine gemeinsame Speicherhardware zu, und es darf unter keinen Umständen zu Dateninkonsistenzen kommen. Bei vielen Hyper-V Installationen mit unterdimensionierten Storagesystemen gerät alleine schon ein wartungsbedingter Systemneustart zur Geduldsprobe.

Als Alternative bot sich bisher nur an, den kompletten Datenbereich auf SSD Medien zu verlagern, was aber zumindest bis heute mit immensen Kosten verbunden ist.

Hier kommt jetzt die Write-Back-Cache Funktion des neuen Windows Server 2012 R2 Storage Spaces ins Spiel. Nun ist es möglich aus verschiedenen, beliebig kombinierbaren Datenträgersystemen (Tatsächlich werden sogar USB-Medien unterstützt) einen neuen Datenträgerverbund (Storage Pool) zu generieren (z.B.: 4 * SSD + 10 * HDD).

Während der Erstellung des neuen virtuellen Datenträgers (Storage Space) kann frei definiert werden wie viel Speicher von den verwendeten SSD’s als Cache verwendet werden soll z.B.: (50GB).

Dieser SSD Cache fängt dann selbständig Lastspitzen bei zufälligen Zugriffen, oder Schreiboperationen ab und speichert diese zwischen. Aus diesem nicht flüchtigen SSD-Cache können anschließend, sequenziell sämtliche Informationen im Hintergrund auf die wesentlich größeren Datenplatten abgelegt werden.

Durch die Kombination der SSD mit der einer klassischen HDD können sehr preisgünstig die Vorteile beider Technologien vereint werden, ohne Einschränkungen der Datensicherheit in Kauf zu nehmen. Je nach verwendeter Hardware kann hier durch den Einbau einer SSD als Cachemedium eine Verbesserung der RandomIO Schreib und Leseprozesse um den Faktor 10-20 erreicht werden. Beispielkonfigurationen:

Erstellung einer virtuellen Platte „HYPER-V DATA“ innerhalb des Storage Pools „DATAPOOL“ mit 600GB Datengröße und zusätzlichen 20GB Cache (Bis auf die Einstellungen zum Cache können diese auch mit dem Storage Pool Wizard vollzogen werden):

  1. $PhysicalDisks = (Get-PhysicalDisk -CanPool $True)
  2. New-StoragePool -FriendlyName "DATAPOOL" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks
  3. $SSD_Tier = New-StorageTier -StoragePoolFriendlyName " DATAPOOL" -FriendlyName SSD_Tier -MediaType SSD
  4. $HDD_Tier = New-StorageTier -StoragePoolFriendlyName " DATAPOOL" -FriendlyName HDD_Tier -MediaType HDD
  5. New-VirtualDisk -StoragePoolFriendlyName "DATAPOOL" -FriendlyName "HYPER-V DATA" -StorageTiers @($SSD_Tier, $HDD_Tier) -StorageTierSizes @(100GB, 500GB) -ResiliencySettingName Mirror -WriteCacheSize 20GB

Erstellung einer virtuellen Datenplatte „DATA“ innerhalb des Storage Pools „DATAPOOL“ mit 4TB Datengröße und dreifacher Spiegelung:

  1. New-VirtualDisk -StoragePoolFriendlyName DATAPOOL -FriendlyName DATA -ResiliencySettingName Mirror -NumberOfDataCopies 3 -Size 4TB -ProvisioningType Thin

 

Kommentare

F Karls
Frank
Karls
Mi, 28.10.2015 - 10:26

Hallo Florian,

generell würde das die Performance natürlich erhöhen.
Aber ich würde stark davon abraten dafür einen USB-Stick zu verwenden, wenn es sich bei dem System um mehr als einen reinen Testserver handelt. Falls sich wichtige Daten auf dem Server befinden (unwiederbringliche Familienfotos etc.) hängt Ihre komplette Datensicherheit von einem USB-Stick ab. Ich würde hier dringend zu einen SSD Raid1 Verbund als Cache-Medium raten.
Des Weiteren halte ich persönlich Raid 5 ebenfalls nicht mehr für praktikabel. Im Falle eines Ausfalls einer Festplatte ergibt sich bei großen Laufwerken eine extrem lange Wiederherstellungszeit (<a href="https://social.technet.microsoft.com/Forums/windowsserver/de-DE/3255881…; target="_blank" rel="nofollow">Technet Raid 5 Rebuild</a>). Wärend dieser Wiederherstellungszeit sind die übrigen Festplatten komplett ausgelastet,und das Sytem ist bei einem Software Raid 5 kaum ansprechbar. Noch schlimmer, im Falle eines Serienfehlers (Alle Festplatten aus der selben Charge) steigt gerade in dieser Zeit die Wahrscheinlichkeit eines weiteren Ausfalls.

Wie gesagt als Entwicklungsumgebung kann man so etwas testen, aber als Produktivsystem rate ich in Ihrem Fall dringend zu eventuell größeren Festplattn im Raid1/Raid10 Verbund.

Gruß Frank

Florian
Do, 22.10.2015 - 12:18

Hallo
Sehr schöne Beschreibung! Ich teste gerade WS2012r2 als Betriebssystem für eine Home-NAS. Server ist ein HP Microserver N54L, der leider Boardseitig kein Raid5 liefert.
Als Softwareraid-5 liegt die Schreibleistung in meinem Test jedoch jenseits von Gut und Böse. Lesend zwar ~250 MB/s, Schreibend jedoch magere 45MB/s.
Könnte ein SSD Cache... wie Sie schreiben sogar durch einen USB-3-Stick (zB Sandisk Extreme mit ~200MB/s Schreibleistung (~250MB/s lesend)) hier eine Besserung bringen?

Danke
Flo

Neuen Kommentar schreiben

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.

Klartext

  • Keine HTML-Tags erlaubt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Web page addresses and email addresses turn into links automatically.
Teilen auf

Newsletter Anmeldung

Abonnieren Sie unseren Newsletter!
Lassen Sie sich regelmäßig über alle Neuigkeiten rundum ORAYLIS und die BI- & Big-Data-Branche informieren.

Jetzt anmelden