Ik besloot dat wat achtergrondinformatie misschien zou kunnen helpen om dit antwoord duidelijk te maken, maar zoals je kunt zien ben ik een beetje OCD geworden, dus misschien wil je naar het einde overslaan en dan teruggaan indien nodig. Hoewel ik een beetje weet, ben ik geen expert op het gebied van S.S.D.‘s dus als iemand een fout ziet EDIT it. :).
Achtergrond Informatie:
Wat is een S.S.D.?:
Een S.S.D. of solid state drive is een opslagapparaat zonder bewegende delen. De term S.S.D. is vaak bedoeld om specifiek te verwijzen naar nand-flash gebaseerde solid state drives bedoeld om te fungeren als een harde schijf alternatief, maar in werkelijkheid zijn ze slechts een vorm van S.S.D., en niet eens de meest populaire. Het meest populaire type S.S.D. is nand-flash gebaseerde verwijderbare media zoals usb sticks (flash drives), en geheugenkaarten, hoewel ze zelden worden aangeduid als een S.S.D.. S.S.D.s kunnen ook op ram gebaseerd zijn, maar de meeste ram-drives zijn software gegenereerd in tegenstelling tot fysieke hardware.
**Waarom bestaan Nand-flash S.S.D.s die bedoeld zijn als alternatief voor harde schijven?
Om een besturingssysteem en de bijbehorende software te kunnen draaien, is een snel opslagmedium nodig. Dit is waar ram in het spel komt, maar van oudsher was ram duur en konden CPU’s geen enorme hoeveelheden aan. Wanneer je een besturingssysteem of programma draait, worden de op dat moment benodigde gegevens gekopieerd naar je ram, omdat je opslagmedium niet snel genoeg is. Er ontstaat een knelpunt, omdat je moet wachten tot de gegevens zijn gekopieerd van het langzame opslagmedium naar het ram. Hoewel niet alle nand-flash S.S.D.s betere prestaties leveren dan de meer traditionele harde schijf, helpen degenen die dat wel doen het knelpunt te verminderen door snellere toegangstijden, leessnelheden en schrijfsnelheden te bieden.
Wat is Nand-flash?:
Flash-opslag is een opslagmedium dat elektriciteit in plaats van magnetisme gebruikt om gegevens op te slaan. Nand-flash is flash-opslag die gebruik maakt van een NAND-gateway. In tegenstelling tot nor-flash die willekeurige toegang is, wordt nand-flash sequentieel benaderd.
Hoe slaan Nand-flash S.S.D.s gegevens op?:
Nand-flash opslag is opgebouwd uit blokken, die blokken zijn opgedeeld in cellen, de cellen bevatten pagina’s. In tegenstelling tot een harde schijf die magnetisme gebruikt om gegevens op te slaan, gebruiken flash-media elektriciteit, hierdoor kunnen gegevens niet worden overschreven; gegevens moeten worden gewist om de ruimte opnieuw te gebruiken. Het apparaat kan geen afzonderlijke pagina’s wissen; het wissen moet op blokniveau gebeuren. Omdat gegevens niet kunnen worden geschreven naar een blok dat al in gebruik is (ook al zijn niet alle pagina’s dat) moet eerst het hele blok worden gewist, en dan kunnen gegevens naar de pagina’s van het nu lege blok worden geschreven. Het probleem is dat je dan alle gegevens verliest die al op die pagina’s staan, ook gegevens die je niet wilt weggooien! Om dit te voorkomen moeten bestaande gegevens die bewaard moeten blijven ergens anders naar worden gekopieerd voordat het blok wordt gewist. Deze kopieerprocedure wordt niet uitgevoerd door het besturingssysteem van de computer, maar op apparaatniveau door een functie die bekend staat als garbage collection.
Op harde schijven wordt een magnetische plaat gebruikt om gegevens op te slaan. Net als bij vinylplaten heeft de plaat sporen, en deze sporen zijn verdeeld in secties die sectoren worden genoemd. Een sector kan een bepaalde hoeveelheid gegevens bevatten (meestal 512 bytes, maar sommige nieuwere zijn 4KB). Wanneer je een bestandssysteem toepast, worden sectoren gegroepeerd in clusters (gebaseerd op een grootte die je opgeeft, een toewijzingsgrootte of clustergrootte genoemd), en dan worden bestanden geschreven over clusters. Het is ook mogelijk om een sector op te delen om clusters te maken die kleiner zijn dan uw sectorgrootte. De ongebruikte ruimte in een cluster nadat een bestand over een cluster (of meerdere) is geschreven is niet bruikbaar, het volgende bestand begint in een nieuw cluster. Om veel onbruikbare ruimte te vermijden gebruikt men meestal kleinere clusters, maar dit kan de prestaties verminderen bij het schrijven van grote bestanden. Nand-flash S.S.D.s hebben geen magnetische plaat, zij maken gebruik van elektriciteit die door geheugenblokken gaat. Een blok is opgebouwd uit cellen die pagina’s bevatten. Pagina’s hebben een X-capaciteit (meestal 4 KB), en het aantal pagina’s bepaalt dus de capaciteit van een blok (meestal 512 KB). Op SSD’s is een pagina gelijk aan een sector op een harde schijf, omdat ze beide de kleinste verdeling van opslagruimte vertegenwoordigen.
Wat is Wear Leveling?:
Nand-flash opslagblokken kunnen worden geschreven naar, en gewist een beperkt aantal keren (aangeduid als hun levenscyclus). Om te voorkomen dat de schijf te lijden heeft van capaciteitsvermindering (dode blokken) is het zinvol om de blokken zo gelijkmatig mogelijk te laten slijten. De beperkte levenscyclus is ook de belangrijkste reden waarom veel mensen aanraden om geen page file of swap-partitie in je besturingssysteem te hebben als je een op Nand-flash gebaseerde S.S.D. gebruikt (hoewel de hoge datatransfersnelheden van het apparaat naar ram ook een belangrijke factor zijn in die suggestie).
Wat is Over Provisioning?:
Over Provisioning definieert het verschil tussen de hoeveelheid vrije ruimte die er is, vergeleken met de hoeveelheid die er lijkt te zijn. Nand-flash gebaseerde opslagapparaten beweren dat ze kleiner zijn dan ze zijn, zodat er gegarandeerd lege blokken zijn die de vuilnisverwijderaar kan gebruiken. Er is een tweede vorm van overbevoorrading die dynamisch overbevoorrading heet en eenvoudigweg verwijst naar bekende vrije ruimte binnen de getoonde vrije ruimte. Er zijn twee soorten dynamische overbevoorrading: op het niveau van het besturingssysteem en op het niveau van de schijfcontroller. Op het niveau van het besturingssysteem kan Trim worden gebruikt om blokken vrij te maken waarnaar dan onmiddellijk kan worden geschreven. Op controllerniveau kan niet-toegewezen schijfruimte (niet gepartitioneerd, geen bestandssysteem) worden gebruikt. Meer vrije blokken helpen om de schijf optimaal te laten presteren, omdat er onmiddellijk naar geschreven kan worden. Het vergroot ook de kans dat blokken sequentieel gelokaliseerd zijn, wat de toegangstijd verkort omdat Nand-flash S.S.D.s sequentiële toegang gebruiken om gegevens te lezen en te schrijven. 0x2 & 0x2 & Wat is schrijf versterking?: 0x2 & 0x2 & Omdat Nand-flash mediums vereisen een blok te worden gewist voordat het kan worden geschreven, alle gegevens binnen het blok dat niet wordt gewist moet worden gekopieerd naar een nieuw blok door vuilnisverwijdering. Deze extra schrijfbewerkingen worden schrijfversterking genoemd.
Wat is Trim.?:
Besturingssystemen zijn gebouwd met traditionele harde schijven in gedachten. Vergeet niet een traditionele harde schijf kan direct overschrijven van gegevens. Wanneer u een bestand verwijdert het besturingssysteem markeert het als verwijderd (oke om te overschrijven), maar de gegevens zijn er nog steeds totdat een schrijfoperatie gebeurt er. Op Nand-flash gebaseerde S.S.D.s is dit een probleem, omdat de gegevens eerst moeten worden gewist. Het wissen gebeurt op blokniveau, dus er kunnen extra gegevens zijn die niet worden gewist. Afvalverwijdering kopieert alle gegevens die niet worden gewist naar lege blokken, en dan kunnen de blokken in kwestie worden gewist. Dit kost allemaal tijd, en veroorzaakt onnodige schrijfbewerkingen (write amplification)! Om dit te omzeilen is een functie gemaakt die Trim heet. Trim geeft het besturingssysteem de macht om de S.S.D. te vertellen om blokken te wissen met pagina’s die gegevens bevatten die het besturingssysteem als verwijderd heeft gemarkeerd gedurende perioden dat je daar geen schrijfoperatie aanvraagt. Vuilnisophaling doet zijn ding, en als resultaat daarvan worden blokken vrijgemaakt zodat er hopelijk kan worden geschreven naar blokken die niet eerst hoeven te worden gewist, wat het proces sneller maakt, en helpt de schrijfversterking tot een minimum te beperken. Dit gebeurt niet op bestandsbasis; Trim gebruikt logische blok adressering. De L.B.A. specificeert welke sectoren (pagina’s) er gewist moeten worden, en het wissen gebeurt op blokniveau.
Het antwoord op uw vraag “Nadelen van partitioneren een SSD?”:
Ram Based S.S.D.s:
Er is absoluut geen nadeel, want ze zijn random access!
Nand-flash gebaseerde S.S.D.s:
De enige nadelen die mij te binnen schieten zouden zijn: 0x2 & 0x2 & 1. Wear leveling zal niet zo veel vrije ruimte om mee te spelen, omdat schrijfbewerkingen worden verspreid over een kleinere ruimte, dus je “zou kunnen”, maar niet noodzakelijkerwijs zal slijten dat deel van de schijf sneller dan je zou doen als de hele schijf was een enkele partitie, tenzij je zal worden het uitvoeren van gelijkwaardige slijtage op de extra partities (bijv.: een dual boot).
Net als harde schijven hebben nand-flash S.S.D’s sequentiële toegang, dus alle gegevens die u schrijft/leest vanaf de extra partities zullen verder weg zijn dan ze “zouden kunnen” zijn geweest als ze in een enkele partitie waren geschreven, omdat mensen meestal vrije ruimte in hun partities laten. Dit zal de toegangstijd voor de gegevens die op de extra partities zijn opgeslagen, verlengen.
Minder totale ruimte vergroot de kans op het schrijven van gefragmenteerde bestanden, en hoewel de invloed op de prestaties klein is, is het over het algemeen een slecht idee om een nand-flash S.S.D. te defragmenteren, omdat de schijf hierdoor slijt. Natuurlijk, afhankelijk van welk bestandssysteem je gebruikt, resulteren sommige in extreem lage hoeveelheden fragmentatie, omdat ze ontworpen zijn om bestanden als een geheel te schrijven waar mogelijk, in plaats van ze overal te dumpen om snellere schrijfsnelheden te creëren.
Ik zou zeggen dat het in orde is om meerdere partities te hebben, maar slijtage nivellering kan een punt van zorg zijn als je hebt sommige partities krijgen veel schrijfactiviteit, en anderen krijgen heel weinig. Als je ruimte die je niet van plan bent te gebruiken niet partitioneert, en in plaats daarvan laat staan voor dynamic over provisioning, krijg je misschien een performance boost omdat het dan makkelijker is blokken vrij te maken en sequentiële data te schrijven. Er is echter geen garantie dat overbevoorradingsruimte nodig zal zijn, wat ons terugbrengt naar punt #1 over wear leveling.
Sommige andere mensen in deze draad hebben de discussie aangezwengeld over hoe partitionering van invloed zal zijn op de bijdragen van Trim aan dynamische overbevoorrading. Voor zover ik het begrijp wordt TRIM gebruikt om sectoren (pagina’s) aan te wijzen die gegevens hebben die gemarkeerd zijn om te worden verwijderd, zodat de vuilnisverwijdering die blokken vrij kan wissen. Deze vrije ruimte werkt alleen binnen DIE partitie als dynamische overbevoorrading, omdat die sectoren deel uitmaken van clusters wordt gebruikt door het bestandssysteem van die partitie; andere partities hebben hun eigen bestandssystemen. Ik kan er echter helemaal naast zitten, want het hele idee van overbevoorrading is me een beetje onduidelijk, omdat er gegevens worden geschreven naar plaatsen die niet eens bestandssystemen hebben of in de schijfcapaciteit voorkomen. Dit doet me afvragen of overbevoorradingsruimte misschien op een tijdelijke basis wordt gebruikt vóór een laatste geoptomiseerde schrijfoperatie naar blokken binnen een bestandssysteem? Natuurlijk zouden de bijdragen van Trim aan dynamische overbevoorrading binnen het bestandssysteem niet tijdelijk zijn, omdat er direct naar geschreven zou kunnen worden, aangezien ze al in bruikbare ruimte zitten. Dat is althans mijn theorie. Misschien is mijn begrip van bestandssystemen verkeerd? Ik heb geen bronnen kunnen vinden die hier in detail op ingaan.