SSD technologie deep dive
‘Garbage Collection’ en ‘Trim command’ zijn methoden voor SSD harde schijf om data te markeren die niet meer in gebruik zijn zodat deze vervolgens gewist kunnen worden. Hierdoor kan nieuwe data direct worden weggeschreven naar een SSD gebaseerd op Flash NAND.
Deze twee methoden proberen een probleem op te lossen waar iedere SSD, die ontwikkeld is op basis van Flash NAND-chips, mee kampt: de Write Amplification (WA) en de Write Amplication Factor (WAF). Eén van de grootste verschillen tussen een ‘normale’ magnetische hard disk drive (HDD) en een solid state drive (SSD) is de manier waarop ze omgaan met het schrijven van gegevens. HDD’s schrijven de gegevens op een door het bestandsysteem als leeg aangemerkte ruimte (de zogenaamde unallocated areas) op de platter. SSD’s daarentegen moeten altijd eerst data wissen voordat ze nieuwe data kunnen schrijven in de Flash storage chips. Dit betekent dat delen van de Flash storage chips altijd eerst gewist moeten worden voordat ze kunnen worden herschreven, tenzij het gaat om compleet nieuwe SSD’s waar nog nooit eerder gegevens in zijn opgeslagen.
Dit zou geen probleem moeten zijn als het verwijderproces heel eenvoudig zou zijn. Dit is echter niet het geval. Data en metadata moeten namelijk meerdere keren geschreven worden, omdat de Flash-opslag uit datablokken en pagina’s bestaat. Dit behoeft enig uitleg. Bij een SSD wordt data opgeslagen over een aantal memorychips. Binnen deze opslagchips wordt de data georganiseerd in datablokken die vervolgens weer bestaan uit verschillende pagina’s.
De grootste uitdaging is dat Flash-cellen alleen blockwise verwijderd kunnen worden en op pagina’s kunnen worden geschreven. Om nieuwe data te schrijven op een pagina, moet deze helemaal leeg zijn. Als dit niet zo is, moet de content van de pagina verwijderd worden. Het is echter niet mogelijk om slechts één enkele pagina te wissen, maar dit moet gebeuren voor alle pagina’s die onderdeel zijn van één blok. Omdat de blokgrootte van een Write Amplification SSD vast staat, zoals 512 KB, 1024 KB of 4 MB, zal een blok dat alleen een pagina met 4K data bevat evengoed de volledige opslagruimte van bijvoorbeeld 512 KB in beslag nemen.
En daar blijft het niet bij. Als data in de Write Amplification factor SSD gewijzigd zijn, moet het overeenkomstige blok gemarkeerd worden voor verwijdering ter voorbereiding op het schrijven van nieuwe data. Vervolgens zal het lees-, wijzig- en schrijfalgoritme in de SSD-controller bepalen of het blok moet worden geschreven. Daarnaast zal het algoritme ook alle gegevens die erin zitten verzamelen, het blok voor verwijdering markeren, de oude gegevens herdistribueren en de nieuwe gegevens vastleggen in het oude blok.
Het ophalen en opnieuw distribueren van de nieuwe gegevens betekent dat de oude gegevens naar een nieuwe locatie worden gekopieerd. Andere complexe metadata en berekeningen zullen ook bijdragen aan de totale hoeveelheid data. Het resultaat is dat er meer gegevens worden gemaakt dan vernietigd bij het verwijderen van data van een Write Amplification SSD. Omdat Flash NAND-chips alleen goed zijn voor een bepaalde hoeveelheid lees- en schrijfcycli resulteert Write Amplification in een lagere levensverwachting, uithoudingsvermogen en snelheid.
De Write Amplification Factor (WAF) Zoals hierboven beschreven hadden SSD's een hoge WAF. Als je namelijk een bestand van 4 KB zou schrijven, dan zou de Solid State Drive misschien wel zo’n 40 KB aan gegevens schrijven. Dit komt doordat de SSD-controller gegevens uit verschillende blokken probeert te combineren om pagina's vrij te maken voor nieuwe gegevens. In dit geval is de Write Amplification Factor 10. Als er bijvoorbeeld 2 GB data van de hostcomputer naar de Write Amplification factor SSD wordt verzonden en 4 GB op de SSD wordt geschreven, dan is de WAF 2.
In deze video legt onze partner Kingston Technology op een mooie manier uit hoe de WAF wordt berekend: https://www.youtube.com/watch?v=MK6GmrTP0KM
Hoe kunnen we Write Amplification bestrijden? De effecten van Write Amplification kunnen bestreden worden door vrije ruimte geconsolideerd te houden op de Write Amplification SSD. Write Amplification kan zelfs geminimaliseerd worden als de TRIM command is ingeschakeld en de TRIM operations automatisch op de achtergrond worden uitgevoerd door het besturingssysteem om ongebruikte schrijfruimte schoon te maken.
Maar pas op! Dit brengt wel een groot risico met zich mee. Als TRIM eenmaal is geactiveerd en de opslagruimte is overschreven, is het vrijwel niet meer mogelijk om de oorspronkelijke gegevens te herstellen.
Gaat het om belangrijke data? Geef dan niet te snel op en leg de case in handen van data recovery specialisten. In sommige gevallen kunnen zij de data herstellen die op andere locaties ‘verborgen’ zijn of waar de TRIM command niet volledig is uitgevoerd.
Meer over:
SSD Data Recovery service