SSD harddisks ... Een zegen of een vloek ?

2013-09-05
5 SEP

Mijn persoonlijk idee: Een vloek !

Natuurlijk zijn ze supersnel. Iedereen die al eens een gewone harddisk vervangen heeft door een SSD is verbaasd over de snelheid.
Althans, in het begin.

Wanneer men data naar een SSD schrijft moet er eerst geheugen gewist worden vooraleer er iets nieuws kan geschreven worden. Dit in tegenstelling met een gewone harddisk waar men direct de oude data kan overschrijven.

Vandaar dat een nieuwe SSD supersnel is. Het geheugen is namelijk nog helemaal leeg en hoeft dus ook niet gewist te worden. Eens de schijf echter een tijdje in gebruik is kan maar nieuwe data geschreven worden als de oude data eerst gewist wordt. Dit geeft tijdverlies.

Daarom werd het TRIM commando geïntroduceerd. Dit laat toe om ongebruikte geheugenblokken te wissen wanneer de harddisk daar even tijd voor heeft. Hierdoor vermijdt men dat bij een nieuwe schrijfbewerking eerst nog een wis-bewerking moet gebeuren.
Het operating system moet daar echter wel voor uitgerust zijn.

Op gebied van datarecovery en forensisch onderzoek is dit een nachtmerrie, omdat de harddisk zelf de ongebruikte data wist, zonder tussenkomst van de gebruiker.
Stel u verwijdert per ongeluk een map met foto's, en merkt dat pas enkele dagen later op.
Op een gewone harddisk is er nog een grote kans dat we het merendeel terugvinden.
Op een SSD harddisk met TRIM commando is het heel waarschijnlijk dat we niets meer kunnen terughalen.

Waarom vindt ik SSD's een vloek ?

Als DataRecovery professional worden we vaak geconfronteerd met SSD's die niet meer werken.
Er zijn hiervoor allerlei redenen:

  1. Een bug in het programma dat de SSD bestuurd. Dit zijn kinderziektes die er normaal na een tijdje moeten uitgaan. Meestal is een firmware-update voldoende
  2. Slechte kwaliteit van geheugenchips
  3. Electronisch defect


Voor enkele jaren, toen we geheugenchips moesten uitlezen om de data te recupereren, hadden we enkele slechte sectoren per chip.
Doen we dat met een moderne chip, dan vinden we soms miljoenen slechte sectoren.
Deze 'bad sectors' worden tijdens de werking van de schijf gecorrigeerd door een zogenaamde ECC code. Die laat toe om bit-errors te herstellen.
Wanneer de kwaliteit van een geheugenchip met de tijd achteruitgaat, vergroot het aantal bit-errors, tot op het punt dat de data niet meer te corrigeren valt. Dan heeft men in het beste geval een onleesbare sector, en in het slechtste geval een defecte SSD.

Nu vinden bepaalde fabrikanten (zoals Sandforce) het een goed idee (om hun algoritmes af te schermen van de concurrenten) om de data op de geheugenchip te encrypteren.
Dat wil dus zeggen dat als de controller die de schijf bestuurt de geest geeft, niemand nog de data kan terughalen. De encryptiesleutel zit namelijk in de controller ingebakken.

De defecte controller vervangen door een werkend exemplaar haalt niets uit aangezien de encryptiesleutel verschillend is.

Is de data niet geëncrypteerd, dan zien we ons geconfronteerd met een gigantische puzzel.
De data wordt namelijk niet gestockeerd tot een geheugenchip vol is en dan op naar de volgende.
Nee, om het aantal schrijfbewerkingen per chip te beperken (een nand-chip kan maar een bepaald aantal schrijfbewerkingen doen) wordt de data uitgesplitst, vermengd met een XOR tabel en dan pas weggeschreven naar de verschillende chips.
Iedere blok data die weggeschreven wordt heeft een eigen adres en ECC code.
Aan de hand van die adressen moet de data dan terug geassembleerd worden, de ECC correctie toegepast, en dan opgeslagen op een ander medium.

Men kan nu natuurlijk denken dat dat nog zo moeilijk niet is. Het volstaat om de adressen op te zoeken en de blokken in de juiste volgorde te zetten, nee toch ?
Dan heeft men niet gerekend op de creativiteit van de ontwerpers.
Zo een SSD zit namelijk ook nog vol met zgn. mixes (net zoals een usb-stick en een flash kaart).

Wat is een mix ? Wel, om de snelheid te verhogen (en nog enkele andere redenen) wordt de data uitgesplitst en in verschillende chips tegelijkertijd geprogrammeerd.

Een eenvoudig voorbeeld: Stel we hebben de volgende data (hexadecimaal) 0A 12 45 BC en de SSD bevat 4 geheugenchips.
Dan is het niet ongebruikelijk om 0A naar de eerste chip te schrijven, 12 naar de tweede, 45 naar de derde en BC naar de laatste.
Hier stel ik het natuurlijk vrij simpel voor, maar er bestaan heel ingewikkelde mixes.

Het voordeel hiervan is dat men een 4 keer grotere schrijf- en leessnelheid kan halen.
Het nadeel is dat de puzzel véél complexer wordt, want dit moet allemaal uitgeplozen worden.

Er zijn nog veel factoren die hierbij komen kijken, maar dat zal voor een volgend artikel zijn.

Wat voor de één een zegen is (snelheid) is voor de andere een vloek (recovery).

Waarom Datarecuperatie kiezen?

Hoogtechnologisch Labo

100% veilig

80% succesratio

24u / 7d bereikbaar