First published on TECHNET on Aug 11, 2017
Hi! Ik ben Cosmos. Volg me op Twitter @cosmosdarwin.
Achtergronden
Storage Spaces Direct in Windows Server 2016 en Windows Server 2019 beschikt over een ingebouwde, persistente, lees- en schrijfcache om de opslagprestaties te maximaliseren. U kunt er alles over lezen op Understanding the cache in Storage Spaces Direct . In all-flash implementaties worden NVMe-schijven doorgaans gecached voor SATA/SAS SSD’s; in hybride implementaties worden NVMe- of SATA/SAS SSD’s gecached voor HDD’s.
In elk geval zullen de cachestations het overgrote deel van de IO verwerken, inclusief 100% van de schrijfopdrachten. Dit is essentieel voor het leveren van de ongeëvenaarde prestaties van Storage Spaces Direct, of u die nu meet in miljoenen IOPS, Tb/s aan IO throughput of consistente sub-milliseconde latency.
Maar niets is gratis: deze cache drives kunnen snel slijten.
Review: Wat is flash-slijtage
Solid-state drives bestaan tegenwoordig bijna universeel uit NAND-flash, dat slijt bij gebruik. Elke flash-geheugencel kan maar zo vaak worden geschreven voordat hij onbetrouwbaar wordt. (Er zijn tal van grote schrijf-ups online die alle bloederige details te dekken – met inbegrip van op Wikipedia .)
U kunt dit zien gebeuren in Windows door te kijken naar de Wear-betrouwbaarheidsteller in PowerShell:
PS C:\> Get-PhysicalDisk | Get-StorageReliabilityCounter | Select Wear
Hier de uitvoer van mijn laptop – mijn SSD is na twee jaar voor ongeveer 5% versleten.
Note: niet alle schijven geven deze waarde nauwkeurig door aan Windows. In sommige gevallen kan de teller leeg zijn. Neem contact op met uw fabrikant om na te gaan of deze een eigen tool heeft waarmee u deze waarde kunt ophalen.
Over het algemeen slijten NAND-flashflashes niet bij het lezen.
Kwantificeren van flash-duurzaamheid
Meten van slijtage is één ding, maar hoe kunnen we de levensduur van een SSD voorspellen?
Het “uithoudingsvermogen” van flash wordt gewoonlijk op twee manieren gemeten:
- Drive Writes Per Day (DWPD)
- Terabytes Written (TBW)
Beide benaderingen zijn gebaseerd op de garantieperiode van de fabrikant voor de schijf, de zogenaamde “levensduur”.
Drive Writes Per Day (DWPD)
Drive Writes Per Day (DWPD) meet hoe vaak u de volledige grootte van de schijf per dag van zijn levensduur zou kunnen overschrijven. Stel bijvoorbeeld dat uw schijf 200 GB groot is en dat de garantieperiode 5 jaar is. Als de DWPD 1 is, betekent dit dat u er de komende vijf jaar elke dag 200 GB (de grootte, één keer) in kunt schrijven.
Als u dat vermenigvuldigt, is dat 200 GB per dag × 365 dagen/jaar × 5 jaar = 365 TB aan cumulatieve schrijfbewerkingen voordat u de schijf mogelijk moet vervangen.
Als de DWPD 10 was in plaats van 1, zou dat betekenen dat u er elke dag 10 × 200 GB = 2 TB (de grootte, tien keer) in kunt schrijven. Dat komt neer op 3.650 TB = 3,65 PB aan cumulatieve schrijfbewerkingen in 5 jaar.
Terabytes Written (TBW)
Terabytes Written (TBW) meet rechtstreeks hoeveel u cumulatief in de schijf kunt schrijven gedurende de levensduur ervan. In wezen wordt alleen de vermenigvuldiging die we hierboven hebben gedaan in de meting zelf opgenomen.
Als uw schijf bijvoorbeeld is beoordeeld op 365 TBW, betekent dit dat u er 365 TB in kunt schrijven voordat u de schijf mogelijk moet vervangen.
Als de garantieperiode 5 jaar is, komt dat neer op 365 TB ÷ (5 jaar × 365 dagen/jaar) = 200 GB aan schrijfbeurten per dag. Als uw schijf 200 GB groot was, is dat gelijk aan 1 DWPD. Als uw schijf berekend was op 3,65 PBW = 3.650 TBW, komt dat neer op 2 TB schrijven per dag, ofwel 10 DWPD.
Zoals u ziet, kunt u, als u de grootte van de schijf en de garantieperiode kent, altijd van DWPD naar TBW komen of omgekeerd met een paar eenvoudige vermenigvuldigingen of delingen. De twee metingen lijken erg op elkaar.
Wat is het verschil?
Het enige echte verschil is dat DWPD afhangt van de grootte van de schijf, terwijl TBW dat niet doet.
Neem bijvoorbeeld een SSD die gedurende zijn levensduur van 5 jaar 1.000 TB aan schrijfbewerkingen aankan.
Stel dat de SSD 200 GB is:
1.000 TB ÷ (5 jaar × 365 dagen/jaar × 200 GB) = 2,74 DWPD
Stel nu dat de SSD 400 GB is:
1.000 TB ÷ (5 jaar × 365 dagen/jaar × 400 GB) = 1,37 DWPD
De resulterende DWPD is anders! Wat betekent dat?
Aan de ene kant kan de grotere schijf van 400 GB tijdens zijn levensduur precies dezelfde cumulatieve schrijfbewerkingen uitvoeren als de kleinere schijf van 200 GB. Als we kijken naar TBW, is dit heel duidelijk – beide schijven zijn berekend op 1000 TBW. Maar als we naar DWPD kijken, blijkt de grotere schijf slechts half zoveel uithoudingsvermogen te hebben! U zou kunnen aanvoeren dat, omdat ze onder dezelfde werklast “hetzelfde” zouden presteren, het gebruik van TBW beter is.
Aan de andere kant zou je kunnen aanvoeren dat de 400 GB schijf meer werk kan opslaan omdat hij groter is, en daarom wordt zijn 1000 TBW dunner uitgesmeerd, en heeft hij echt maar de helft van het uithoudingsvermogen! Volgens deze redenering is het gebruik van DWPD beter.
Waar het op neerkomt
Je kunt de meting gebruiken die je verkiest. Het is tegenwoordig bijna universeel om zowel TBW als DWPD op de specificatiebladen van schijven te zien staan. Afhankelijk van uw aannames, is er een overtuigend argument voor een van beide.
Aanbeveling voor Storage Spaces Direct
Onze minimale aanbeveling voor Storage Spaces Direct staat vermeld op de pagina Hardwarevereisten. Vanaf medio 2017, voor cache drives:
- Als u ervoor kiest om in DWPD te meten, raden wij 3 of meer aan.
- Als u ervoor kiest om in TBW te meten, raden wij 4 TBW per dag van de levensduur aan. Spec sheets geven TBW vaak cumulatief aan, wat u moet delen door de levensduur. Als uw schijf bijvoorbeeld een garantieperiode van 5 jaar heeft, dan is 4 TB × 365 dagen/jaar × 5 jaar = 7.300 TBW = 7,3 PBW totaal.
Vaak zal een van deze metingen iets minder strikt zijn dan de andere.
U mag de meting gebruiken waaraan u de voorkeur geeft.
Er is geen minimumaanbeveling voor capaciteitsschijven.
Addendum: schrijfversterking
U kunt in de verleiding komen om het uithoudingsvermogen te beredeneren op basis van IOPS-getallen, als u die kent. Bijvoorbeeld, als uw werklast (gemiddeld) 100.000 IOPS genereert die (gemiddeld) 4 KiB elk zijn waarvan (gemiddeld) 30% writes zijn, zou u kunnen denken:
100.000 × 30% × 4 KiB = 120 MB/s aan writes
120 MB/s × 60 secs/min × 60 mins/uur × 24 uur = ca. 10 TBW/dag
Als je vier servers hebt met elk twee cache drives, dan is dat:
10 TBW/dag ÷ (8 totale cache drives) = ca. 1,25 TBW/dag per drive
Interessant! Minder dan 4 TBW/dag!
Helaas is dit gebrekkige wiskunde, omdat er geen rekening wordt gehouden met schrijfversterking.
Write amplification is wanneer één schrijfactie (op de gebruikers- of toepassingslaag) meerdere schrijfacties wordt (op de fysieke apparaatlaag). Schrijfversterking is onvermijdelijk in elk opslagsysteem dat veerkracht en/of crashconsistentie garandeert. Het meest flagrante voorbeeld in Storage Spaces Direct is three-way mirror: het schrijft alles drie keer, naar drie verschillende drives.
Er zijn ook andere bronnen van schrijfversterking: reparatietaken genereren extra IO; gegevensdeduplicatie genereert extra IO; het bestandssysteem, en vele andere componenten, genereren extra IO door hun metadata en logstructuren te persisteren; enz. In feite genereert de schijf zelf schrijfversterking door interne activiteiten zoals vuilnisophaling! (Als u geïnteresseerd bent, bekijk dan de JESD218 standaard methodologie voor hoe dit in de duurberekeningen te verdisconteren).
Dit is allemaal noodzakelijk en goed, maar het maakt het moeilijk om op een consistente manier IO-activiteit op schijfniveau onder aan de stapel af te leiden van IO-activiteit op toepassingsniveau boven aan de stapel. Daarom publiceren wij, op basis van onze ervaring, de aanbeveling voor minimale DWPD en TBW.
Laat ons weten wat u ervan vindt! 🙂