Write amplification is het fenomeen waarbij de host computer een schrijfopdracht geeft voor één enkele blok, maar waarbij op de SSD zelf talrijke schrijfopdrachten uitgevoerd worden. |
-
Write amplification
Computers lezen en schijven de data naar de harde schijf in blokken met een vaste lengte, bijvoorbeeld 4k. Het operating system zelf houdt bij in welke blokken een bestand opgeslagen zit: een bestand bestaat meestal uit meerdere blokken. Ook de directories (lijst van bestanden) en de master file table of file allocation table (MFT of FAT) worden op de schijf opgeslaten.
Solid State Disks verslijten ten gevolge van de schrijfopdrachten: het is dus de bedoeling deze schrijfopdrachten tot een minimum te beperken: daarom is defragmentatie zeker niet goed voor een SSD, want de gegevens worden opnieuw geschreven in aangrenzende blokken. Voor een klassieke harde schijf betekent dit een snelheidswinst, niet voor een SSD.
Als er geen vrije pagina's meer over zijn, dan moeten ongeldige pagina's gewist worden. Het wissen kan niet per pagina gebeuren, maar moet per blok gebeuren (een blok kan duizenden pagina's bevatten). Als er nog geldige pagina's in de te wissen blok zitten, dan moeten ze eerst naar een andere blok gecopieerd worden (of tijdelijk in een buffer bewaard worden totdat de complete blok gewist is en de pagina's herschreven kunnen worden). Zo kan het gebeuren dat het schrijven van één enkele blok door de computer talrijke schrijfopdrachten veroorzaakt in de SSD:
Daarbij moet opgemerkt worden dat SSD schijven die in raid configuratie gebruikt worden het TRIM commando niet kunnen gebruiken. Het TRIM commando is namelijk van toepassing op de volledige array (de volume), niet op de individuele schijven. Ook het regelmatig wissen van blokken (zodat de schrijfopdrachten sneller kunnen verlopen omdat er al vooraf vrije pagina's gemaakt zijn) zorgt voor een zekere write amplification. De firmware is een compromis tussen snel data kunnen schrijven (veel beschikbare vrije pagina's) en de beperking van de write amplification (enkel blokken wissen als ze enkel ongeldige data bevatten of als er geen vrije pagina's meer zijn). De wear levelling is het verplaatsen van data die nooit gewijzigd wordt zodat alle delen van de schijf evenveel geschreven worden (en dus gelijktijdig verslijten). De wear levelling zorgt ook voor een write amplification en hier ook moet de firmware een compromis vinden.
Een voorbeeld van write amplification wordt door de tabel van SMART parameters van de SSD schijf in mijn server. Bepaalde SSD fabrikanten proberen de write amplification te beperken door de data te comprimeren voor opslag, of enkel dat deel weg te schrijven dat effektief gewijzigd werd (bij het wijzigen en opslaan van een document wordt soms maar een deel van het bestand gewijzigd). |
Publicités - Reklame