Ultraman schreef op zondag 09 augustus 2009 @ 20:22:
Omdat Flash geheugen over het gehele medium is defragmentatie van minder belang op SSDs dan op conventionele schijven. Echter kan defragmentatie, naar mijn mening, wel degelijk nuttig zijn op een SSD. Alleen behoef je dit minder regelmatig te doen dan met schijven. Tevens is het niet bevorderlijk voor de levensduur, dus dit bijvoorbeeld maar eens per maand of per 2 maanden doen hakt daar ook veel minder in.
Windows maakt gebruik van het NTFS bestandsysteem, welke is geoptimaliseerd voor conventionele schijven en niet voor SSDs. Data wordt op SSDs vaak opgeslagen in blokken van aanzienlijke grootte. Bij schrijfbewerkingen, voornamelijk met veel kleine bestanden, wordt vaak echter ook vrije ruimte in zo'n blok meegeschreven. Waardoor de vrije ruimte al snel gefragmenteerd raakt. Wanneer vervolgens data naar zulke gefragmenteerd stukjes vrije ruimte geschreven moet worden neemt de snelheid waarmee dat gebeurd sterk af. En dat is zonde van de SSD, welke je juist voor de snelheid aanschaft.
Door dergelijke fragmentatie ga je tevens wegschrijven over verschillende blokken, waardoor onnodig veel blokken gebruikt worden bij zo'n operatie. Dat heeft weer een negatief effect op de levensduur.
Dit soort 'probleempjes' zijn inherent aan het bestandsysteem dat gebruikt wordt. Dus gebruik je NTFS op een SSD, dan denk ik dat eens in de zoveel tijd defragmenteren een nodig kwaad is. Ik denk dat een zekere parabool met een ideaal maximum, een sweet spot of een lesser of two evils, bestaat tussen niet defragmenteren, waardoor je fragmentatie van je free space oploopt en schrijfacties meerdere blokken gaan gebruiken met gevolgen voor de levensduur, en wel defragmenteren waarin alles op een rijtje wordt gezet maar wel weer met een aantal erase-write cycles tot gevolg.
Ook is er interne fragmentatie, maar dat wordt aangepakt door het nieuwe TRIM command binnen de ATA interface.
Wat nodig is een bestandsysteem welke geoptimaliseerd is voor SSDs. Binnen de Open Source wereld zijn er al verschillende bestandsystemen welke aangeven beter te zijn voor Flash geheugen en ook SSDs. Omdat ik zelf geen SSD heb heb ik daar nog nooit mee getest, dus ik kan er weinig over zeggen. En er zijn er best een aantal, zoals JFFS2, YAFFS2, LogFS.
Maar ook bestandsystemen welke van nature minder fragmenteren, bijv door het gebruik van extents voor het alloceren van ruimte voor bestanden zoals onder Linux Ext4 en het aankomende btrfs.
Voor wie Linux gebruikt zijn er dus al opties om rekening met je SSD te houden.
In het kort: Defragmentatie is een stuk minder nodig, maar niet overbodig.