Storage Spaces Write Back Cache (Parity)

glacios

Enthusiast
Thread Starter
Mitglied seit
22.02.2008
Beiträge
298
Hi,

es ist ja bekannt, dass die Schreibperformance in einem Parity-Pool unter Storage Spaces sehr langsam ist (weit weg von Gbit). Durch das Hinzufügen von SSDs und erstellen eins WBC auf der SSD lässt sich hingegen die Schreibgeschwindigkeit massiv erhöhen. So weit so bekannt.

Bisher geht es bei allen Tests, die ich gesehen habe, aber immer um einen Pool aus mindestens 2 SSDs + 4 HDDs. Manche schreiben gar, es müsse immer eine gerade Anzahl an SSDs im Pool vorliegen, obwohl ich mir das rein logisch beim besten Willen nicht erklären kann (Ist ja kein Mirror/RAID1).

Daher meine Frage: Wieso? Beziehungsweise: Ist das so?
Hat schonmal jemand SS-Parity mit nur einer SSD im Pool getestet - leidet darunter die Schreibgeschwindigkeit?



Hintergrund ist, dass auf ITX-Boards nur eine begrenzte Anzahl an SATA-Ports zur Verfügung steht, die ich durch große Festplatten bestmöglich ausschöpfen will. Ein Verzicht auf 1 SSD hätte gleich einen immensen Speicherplatzgewinn zur Folge.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Getestet nicht aber macht doch Sinn. Wenn Storage Spaces SSDs zum verschnellern in einem Redundanten System benutzt werden soll, müssen die Daten die auf einer SSD lagern auch mindestens Doppelt vorliegen. Also denke ich wird Intern auf zwei SSDs ein RAID1 ähnliches Verfahren angewendet.
 
Hmm für die neue Journaling-Funktion mag das ja so sein, aber für stinknormalen Write Back Cache?

Leider gibts zu Storage Spaces weder von Microsoft, noch von anderen, mir bekannten Quellen irgendwelche näheren Informationen.
Sollte jemand also bestimmte Foren/Seiten kennen, die man evtl. mal darauf ansprechen kann oder die da Experten haben, wäre ich sehr dankbar, wenn er sie hier mitteilen könnte.
 
interessantes Thema. Bist du schon zu neuen Erkenntnissen gekommen?

Ich hab z.Zt. 3 HDDs und 2 SSDs an einer Kiste hängen. Plan war, mit 3 HDDs einen Parity-Pool zu haben und die SSDs (einzeln oder als Mirror) als WBC laufen zu lassen. Glaube aber das geht nicht?!
Eine weitere HDD wäre aber kein Problem.

Hast du sowas Laufen?
 
Nein, bin da nicht weiter gekommen. Ich benutze vorerst weiter meinen HW-Raid-Controller, Storage Spaces ist mir einfach zu neu und unbekannt, um alle meine Daten dort ablegen zu wollen. Einige Vollverluste, über die im Internet berichtet wurde, haben mich darüber hinaus noch weiter abgeschreckt (z.B. hatten viele Leute nach dem Update auf Win 8.1 plötzlich ein Raid, das nicht mehr erkannt wurde etc.)

Mit 4 HDDs + 2 SSDs kannst du aber problemlos WBC + Journaling benutzen.
Geht aber nur über Powershell, gibt dazu ein paar Threads.
 
mit 4 HDDs hab ichs geschafft. Schade, dass nur 100 GB WBC gehen.
Ich steig auch noch nicht ganz durch ;) Ansich interessant, Doku könnte aber besser sein.
 
Hast du denn mal getestet, obs auch mit 3HDDs und/oder nur einer SSD geht?

Das mit der fehlenden Dokumentation ist einfach das Problem schlechthin. Wenn MS es so stiefmüttlerich behandelt, dann bin ich als Kunde erst recht kritisch. Wer sagt mir, ob bei Win 9 das Feature schon wieder entfernt wird oder so überarbeitet, dass es nicht mehr kompatibel zu Win 8 ist?!
Das braucht noch einige Jahre, um zu reifen.
 
ne, ich hab einfach noch eine HDD dazugesteckt. Kann ich aber auch mal probieren mit 3+1.
 
Wenns für dich kein Stress wäre, wäre das natürlich genial. Wobei mich wohl 4+1 mehr interessieren würde.

Was hast du denn für Schreib- Leseraten mit und ohne SSD?
 
kann ich alles testen :)
 
Wäre natürlich super. Für solche Tests ist wahrscheinlich auch ein eigener Thread sinnvoller, je nachdem wie ausführlich du das Ganze machen willst.
Vielleicht wird ja sogar ne Art Sammelthread für Storage Spaces draus^^

Wenn du das so vorhast, wäre es natürlich gut, wenn du dann den Link hier rein posten könntest, sonst vergess ich das :)
 
Sammler wäre cool, aber soviel Zeit habe ich atm nicht.
4+1 geht. Diskmark-Screenshots folgen...

- - - Updated - - -

so, mein System:

Board: Asrock C2750D4I im 19" 1HE Barebone von Asrock
2x8 GB DDR3 ECC Kingston
System-SSD: M500 120GB - nicht mehr, da Probleme mit dem Board
System-HDD: WD5000AAKS
HDDs: 3x WD1003FBYX, 1x WD2003FYYS
SSDs: 2x M500 240GB

OS: Windows 2012 R2 Storage Server

Konfig:
System-SSD/HDD an SATA vom Chipsatz bzw. Prozessor
HDDs+SSDs an den Marvell-Controllern

StorageSpaces-Konfig:
für 4+2
Code:
$phy = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName PoolImages -StorageSubSystemFriendlyName "Storage Spaces*" -PhysicalDisks $phy
Get-StoragePool -FriendlyName poolimages | Get-PhysicalDisk
Get-StoragePool -FriendlyName poolimages | Get-PhysicalDisk | ? Size -lt 300GB | Set-PhysicalDisk -MediaType SSD
Get-StoragePool -FriendlyName poolimages | Get-PhysicalDisk | ? Size -gt 300GB | Set-PhysicalDisk -MediaType HDD
New-StorageTier -FriendlyName TierSSD -StoragePoolFriendlyName PoolImages -MediaType SSD
New-StorageTier -FriendlyName TierHDD -StoragePoolFriendlyName PoolImages -MediaType HDD
Get-StoragePool -FriendlyName PoolImages | Get-PhysicalDisk | ? MediaType -eq SSD | Set-PhysicalDisk -Usage Journal
New-VirtualDisk -StoragePoolFriendlyName PoolImages -FriendlyName vDiskImages -UseMaximumSize -ResiliencySettingName Parity -ProvisioningType fixed -WriteCacheSize 100GB

für 4+1
Code:
$phy = Get-PhysicalDisk | ? Size -gt 500GB
$phy = $phy + (Get-PhysicalDisk | ? FriendlyName -eq "PhysicalDisk2")
Rest wie oben


Benchmark:
Single HDD (WD1003FBYX):
single-hdd.png


Single SSD (M500 240GB):
single-ssd.png


Parity über 4 HDDs:
storage-spaces_parity_hdd.png


Parity über 4 HDDs + 2 SSDs:
storage-spaces_parity_ssd_42.png


Parity über 4 HDDs + 1 SSD:
storage-spaces_parity_ssd_41.png


mal ohne Wertung, da Hirn leer :coffee:
 
Der Hammer, vielen Dank für deine Tests.

Bei den Ergebnissen ergeben sich natürlich einige Fragen, die du aber wahrscheinlich auch nicht vollständig beantworten kannst.

So wie ich das sehe, hast du die SSDs immer als Journals angelegt, nicht wahr? In einem anderen Forum wird unter anderem darüber berichtet, dass Journaling nicht unbedingt die R/W-Rate beeinflusst oder evtl. sogar verschlechtern kann (siehe hier - überhaupt ein guter Thread, falls dich das Thema Storage Spaces noch weiter interressiert). Ebenso geht durch Journaling afaik der komplette Speicherplatz der SSD flöten, da diese eben als "Zwischenspeicher" dient. Ohne Journals wird der Speicher der SSD zu den HDDs dazu gerechnet.

Was natürlich völlig verrückt an den Ergebnissen ist, dass bei nur einer SSD die Write-Werte konsequent höher sind als bei zwei SSDs. Das verstehe ich überhaupt nicht.
Was aber genauso unsinnig ist, ist, warum die Read-Werte dafür so gering sind (für 512K und 4K)....wenn das mal jemand erklären könnte.

Die Erklärung, die ich als Laie in Sachen SS hätte, ist die, dass Journals nur mit zwei SSDs funktionieren (so habe ich das mal irgendwo gelesen), aber WBC auch mit einer SSD. Das würde auch erklären, warum zwar eine hohe Write-Rate erzielt wird, aber die Read-Rate überhaupt nicht von der SSD profitiert (de facto die Geschwindigkeit einer HDD).
Bei Journals hingegen wird gleichermaßen auch von der SSD gelesen, da sie ja als Zwischenspeicher dient und nicht nur für den WriteCache zuständig ist.
 
Zuletzt bearbeitet:
Ja, immer als Journal.
Mein Plan war ja im Grunde ein X HDDs Parity-Array zu haben und dann X SSDs dazuzupacken als WBC. Bin also froh, wenn die SSD ansich nicht im Pool auftauchen würde.
Ich weiss (noch) nicht, wie er die beiden SSDs behandelt. Nutzt er sie wie in einem Raid0, oder eher Raid1 oder ganz anders? Daher evtl. der Geschwindigkeitsunterschied.

Ich kann das ganze auch mal ohne Journal betreiben. Das Einrichten dauert dank PS ja nur "Sekunden".
Vielleicht komm ich morgen dazu, ansonsten Montag.

Den Krautmaster-Thread hab ich vor Ewigkeiten, noch bevor ich SS das erstemal probiert hab, schon gesehen. Danke für die Erinnerung.
 
Jo wäre gut, das mal durchzutesten.
AFAIK werden die Journals als RAID 1 geführt, bzw. als "Mirror".
Hast du eigentlich mal getestet, ob es einen Unterschied macht, die SSDs oder eine SSD nachträglich hinzuzufügen? Könnte sein, dass sich Journals nicht mehr im Nachhinein bilden lassen. WBC muss ja zumindest bei der Erstellung des Pools angegeben werden und kann imo nicht nachträglich geändert werden.
 
also: SSDs auf Journal gesetzt, keine Angabe zu WBC gemacht:
storage-spaces_parity_hdd-journal-sofort-ohne-extra-wbc.png


Pool erstellt aus HDDs, SSDs nachträglich dazu, als Journal:
storage-spaces_parity_hdd.png
 
Danke für die Tests. Aber jetzt blicke ich irgendwie gar nicht mehr durch.
Bin absolut nicht zufrieden mit der Komplexität, die Microsoft ihren Kunden da aufbürdet. Ich hatte mit einer sinnvollen Konkurrenz zu Synolgys SHR gerechnet, aber das ist einfach nur schwach.

Was lernen wir aus deinen Ergebnissen:

-WBC ist ein Muss und wichtiger als Journaling. Ob Journaling überhaupt einen Vorteil bringt sei nach den Ergebnissen mal dahingestellt. Das müsste man evtl. gegentesten, indem man eine Parity erstellt mit 2 SSDs + 4 HDDs, aber mit default Einstellungen (also ohne Journaling und erhöhten WBC).
Darüber hinaus wäre es gut zu wissen, ob WBC (auf 100GB erhöht) in einem Parity ohne SSDs ebenfalls zusätzliche Performance bringen würde. Ein Parity aus HDDs hat sonst automatisch nur 32MB Cache.

-Späteres Hinzufügen von neuen SSDs erhöht nicht mehr die Geschwindigkeit des gesamten Volumes, zumindest wenn der WBC vorher nicht erhöht wurde.

-Microsoft kriegts einfach nicht hin genauso benutzerfreundlich und effizient zu arbeiten wie deutlich kleinere Entwicklerteams.
 
Zuletzt bearbeitet:
ja über die Infos seitens MS brauchen wir nicht reden, sehr dürftig.

Sobald ich wieder etwas Zeit habe, kann ich das alles testen. Erstmal schauen wie's mit dem Board weiter geht ;)
 
Versteh ich, hat natürlich Vorrang. Viel Glück! :shot:
 
So, hier mal meine Ergebnisse zu den Storage Spaces.

Setup:
  • SuperMicro X10SL7-F
  • Intel Xeon E3-1231 v3
  • 32GB Samsung RAM (M391B1G73QH0-YK0)
  • be quiet! PurePower L8 300Watt
  • Betriebssystem - Windows Server 2012 R2 Datacenter Edition

Storage Layout:


  • 1mal SSD für OS - Crucial M500 240GB, SATA 6Gb/s (CT240M500SSD1)
  • Storage Spaces:
    • 3mal SSD - ​Crucial MX100 256GB, SATA 6Gb/s (CT256MX100SSD1)
    • 8mal HDD - Western Digital WD Red 3TB, 3.5", SATA 6Gb/s (WD30EFRX)


Geplant ist, dass ich aus den drei SSDs einen großen "Simplen" Storage baue. Auf dem Simplen Storage erstelle ich drei VHDx Dateien (60GB) um diese als Journal in den großen HDD Storage Space mit hinzuzufügen. Aus den acht HDDs erstelle ich ein Parity mit den drei VHDx Dateien als Journal.

Soweit klappt das ganz gut, alles per Powershell zu automatisieren.
Folgende Entdeckungen habe ich gemacht beim großen Parity. Wenn ich bei der Anlage 60GB als WriteCahce definiere, also 100% der VHDx Dateien angebe, dann kann ich diese ohne Probleme Online nachträglich entfernen. Dies ist enorm wichtig, da die VHDx Dateien bei einem Server Reboot nicht automatisch gemountet werden. Lege ich das Parity mit nur 52Gb Write Cache an, so kann ich die VHDx Dateien nicht mehr entfernen, bis ich neue hinzugefügt habe (das ist ja nicht der Sinn der Sache).

Somit kommt für mich aktuell nur das Szenario in Betracht, wo ich Parity und 100% WDC der virtuellen SSDs verwende.

Folgende Performance Tests habe ich durchgeführt (immer mit den acht WD 3TB):


  • 3mal Journal + 60GB WDC



  • 3mal Journal + 60GB WBC (Wiederholung)



  • 3mal Journal + 60GB WBC - vorher die SSDs entfernt und wieder hinzugefügt



  • 3mal Journal + Default WBC



  • 3mal Journal + 52GB WBC



  • 3mal Journal + 52GB WBC Wiederholung



  • 3mal Journal + 52GB WBC + Paramter "-IsPowerProtected $true"


So im Endergebnis liegen die Konfigurationen nicht Lichtjahre auseinander. Das Journal bremst die Leserate etwas ein.
 
Zuletzt bearbeitet:
Ich habe gerade ein Tiered Storage aufgestellt das seq auf 900 MB/s lesen und ca. 420 MB schreiben kommen soll. Zumindest lt. CrystalBenchmark.

Ich habe nur dazu gerade etwas Angst, dass ich nicht ein Pseudo-Raid0 erstellt habe und es deswegen so schnell ist. Konstellation sind hier zwei 120 GB Samsung Evo und 3 2 TB WD Red.

Bei der Einrichtung habe ich auf Mirror geklickt. Entsprechend kam dann bei den WDs eine Raid5 Kapazität raus. Hoffe, dass das auch so sein wird.
 
Nein. Mirror ist wie der Name schon sagt gespiegelt, also Raid1. Ob bei 3 Platten ein ordentliches Mirror überhaupt aufgebaut werden kann, ist die andere Frage.
Mach lieber ein Parity (Raid5) draus.
 
Könntet Ihr mir bitte kurz sagen ob auch folgendes möglich ist?

DELL T20 mit E3 1225
4 x 4TB in Parity bzw. Journal (Habe noch nicht ganz verstanden was Journal ist)
1 x xxGB als WBC von einer 500GB SSD Evo die gleichzeitig auch fürs OS ist.


Und was auch super wäre falls das möglich ist - wie das unter win 2012 r2 konfigurieren wird nur die Powershell befehle verstehe ich nicht ganz. Geht das nicht auch per GUI :d?

Besten Dank vorab für alle Tipps hierzu
 
1. Nein ist nicht möglich und auch total schwachsinnig.
2. Nein das geht nur über Powershell, leider.
 
Hmm

das heißt man braucht immer mindestens eine komplette ssd dafür? Warum reicht keine Partition wenn der WBC im default gerade mal 32 MB ist?
 
Zuletzt bearbeitet:
Mal ne blöde Frage dazu, hat mal jemand versucht diesen WBC auf HDDs zu legen?

Ich mein, wenn ich mir die diversen Benchmarks so anschaue, dann sind HDDs im Mirror Mode nicht langsamer, was Schreiben angeht, als was die Platten einzeln auch unter normalen Bedinungen zu halten scheinen. Auch im vergleich zu nem Hardware Raidcontroller.

Hintergrund für mich ist der, das ich meinen Backup Filer gern mit Storage Spaces aufbauen würde... Ich hatte da schonmal vor xx Tagen nen Test mit gemacht und die HDD Schreibperformance ist unterirdisch.
Ich will mir aber eigentlich sparen, da SSDs reinzubauen, nur damit die Schreibleistung mal etwas ansteigt.
In meinem Fall dient die Büchse ausschließlich als Backup Filer, sprich fast ausschließlich sequenzielle Schreibrate notwendig (nur im Restorefall mal lesend) -> dann aber ebenso sequenziell.
In der Büchse stecken diverse verschieden große HDDs. Aktuell sind wieder zwei 1TB HDDs und ne weitere 500GB HDD bei mir frei, die in die Backup Büchse rein sollen...

Nach etwas recherche ist mir aufgefallen, das man wohl scheinbar mit dem Set-StorageTier Befehl den Mediatyp festlegen kann.
Frage, kann man hier also tricksen?


Rein von meinem Verständis her müsste ja der WBC rein als Durchgangscache genutzt werden. Sprich ich habe die Performance solange, wie die Daten in den Cache passen. Die Daten werden dazu gleichsam in den Pool übertragen. Wenn ich aber über 1GBit Ethernet kopiere, dann benötige ich so oder so nie mehr wie 125MB/sec, da mehr eben gar nicht über die NIC geht.
Wäre es also nicht möglich, hier den WDC auf HDDs auszulagern um die sequenzielle Schreibperformance der HDD nutzen zu können? Weis das wer? Hat das gar wer schonmal probiert?

In den diversen INet Listungen zum Thema ist halt immer nur die Rede von SSDs. Mir ist aber aufgefallen, das man wohl scheinbar mit dem Befehl Set-StorageTier den MediaTyp verbiegen kann. Der Gedanke dazu kam mir, als ich jünst für einen SSD Pool als Datastore in einem ESXi eben genau dieses machen musste, da im Raid1 Mode der ESXi die SSDs nicht mehr als solche identifizieren kann respektive der Raidcontroller diese nicht mehr als solche ausgibt.
 
Zuletzt bearbeitet:
Dazu müsste man imo nichtmal HDDs als SSDs angeben, das müsste auch einfach über den Befehl "WriteCacheSize" gehen. Obs was bringt, habe ich mich auch schon gefragt. Muss halt mal irgendjemand testen.
Ich hatte auch vor meinen nächsten Server mit SS aufzubauen, aber atm ist das einfach noch keine gute Idee. Das Internet ist voll mit Hilfethreads zum Thema SS und das liegt nicht an der Unfähigkeit der User. Stabil ist einfach was anderes.
Vielleicht tut sich ja mit Win 10 endlich was. Vorher würde ich definitiv nicht ohne externes Vollbackup auf SS setzen.
 
Neja in meinem Fall wäre die Büchse halt nur das Backup für die Livedaten... Auch ist das Teil nur mal für ein zwei WEs im Monat überhaupt an, je nachdem, wie viele Daten transferiert werden müssen und wie sich Zeit findet dies zu bewerkstelligen.

Ich denke mit dem Risikofaktor könnte ich prinzipiell leben.

Ich hatte halt vorher einfach simple Software Raid 5 Volumes. Software Raid, weil ich möglichst den optimalen Platz der verschieden großen HDDs aufnutzen will um genügend Backup Space bereit stellen zu können.
So 100% hat mich das aber auch nicht überzeugt.


Was ich auch noch nicht so 100% rausgefunden habe, wie ich verschieden große Volumes mit verschiedenen Parity Leveln/Mirror Modes am Ende dann zu einem einzigen im Windows freigebbaren Volume verbinden kann.
Sagen wir ich hab ein Single Parity Volume aus drei 500GB HDDs und eins mit drei 1TB HDDs -> bekommt man das irgendwie in einem verketteten Windows Volume zusammen? Das war nämlich eigentlich der Hauptgrund, warum ich weg vom Software Raid 5 wollte. Da konnte man zwar ganz brauchbar die Volumes bilden aber irgendwie blieben am Ende dann immer die kleinen Volumes über -> die dann als verschiedene Laufwerke durchschienen.
Soweit ich das in Erinnerung habe, geht das mit Linux und LVM wohl definitiv. Dachte ich komm da mit Storage Spaces ran... Scheint aber irgendwie nicht so. Oder ich steh auf dem Schlauch. Leider ist die Lektüre dazu ja auch etwas dürftig um nicht zu sagen, nicht vorhanden :fresse:
 
SS; 4x4TB SATA; Parity; WBC 32MB (Default); => Capacity 10,9TB

T20E1225v3_4_4TB_Parity.jpg
-----------------------------------------------------------------------
CrystalDiskMark 3.0.3 x64 (C) 2007-2013 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

Sequential Read : 452.167 MB/s
Sequential Write : 42.346 MB/s
Random Read 512KB : 46.080 MB/s
Random Write 512KB : 15.537 MB/s
Random Read 4KB (QD=1) : 0.584 MB/s [ 142.7 IOPS]
Random Write 4KB (QD=1) : 0.427 MB/s [ 104.2 IOPS]
Random Read 4KB (QD=32) : 2.786 MB/s [ 680.2 IOPS]
Random Write 4KB (QD=32) : 0.433 MB/s [ 105.7 IOPS]

Test : 4000 MB [E: 0.0% (0.5/11171.9 GB)] (x5)
Date : 2014/10/11 19:24:25
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

Jetzt wäre es schon cool wenn man die SSD noch irgendwie nutzen könnte um das schreiben zu beschleunigen
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh