ssd – data beheer, hostsysteem, flexibiliteit en zones

Daniel Dupré
0

Inhoudsopgave

    In principe gedraagt de ssd zich net als een harde schijf: ze ontvangt de data van het hostsysteem, slaat ze op in blokken of zones en roept ze weer op als erom wordt gevraagd en wordt geholpen door SMR. De traditionele ssd verzorgt de distributie van de data naar opslagcellen zelf. Door een deel van de taken naar de hostcontroller te verplaatsen, neemt de capaciteit van de ssd toe en verbeteren de prestaties. Hoe en waar de data worden opgeslagen, is voor de host of het besturingssysteem verder niet van belang.

    Zones, hulp en SMR methode

    ssd

    Hulp bij vullen zones harde schijf met SMR

    Die taakverdeling is in het geval van harde schijven de laatste jaren iets minder strikt gescheiden geworden door de ontwikkeling van de Shingled Magnetic Recording (SMR)-methode: terwijl SMR-schijven voor consumenten zich naar buiten toe gedragen als klassieke harde schijven (Drive-Managed SMR) en hun speciale kenmerken in hun firmware verwerken, hebben zogenaamde Host-Managed SMR-schijven hulp nodig van het hostsysteem. Dat moet zorgen dat de zones van de harde schijf op de juiste wijze worden gevuld (meer over de SMR-technologie lees je in ARCHIEF: verhogen capaciteit harde schijf met technieken als SMR).

    SMR vindt weg naar ssd

    Dat principe vindt zijn weg nu ook naar ssd’s. Net als de host-managed SMR-schijven zullen dergelijke speciale ‘zoned namespace’ ssd’s voorlopig waarschijnlijk alleen in datacenters gebruikt worden – voor desktop-pc’s en laptops zal er in de nabije toekomst niets veranderen.

    Geheugen verdelen in zones

    De standaardisatie-organisatie NVM Express heeft de NVMe Zoned Namespaces (ZNS) en de bijbehorende ZNS Command Set voor NVMe-ssd’s gedefinieerd. Dergelijke ZNS-ssd’s zijn geen traditionele blokapparaten, maar zogeheten ‘zoned block devices’. Zij ver­delen hun flashgeheugen in regio’s met een vaste grootte in – zones genaamd.

    ssd harde schijf: data hostsysteem zones SMR

    afb 1- Verdeling van een ssd in zones
    De zones van een ZNS-ssd mogen alleen vanaf het begin worden beschreven. De ssd onthoudt daarvoor de positie van de write-pointer.

    Schrijven in reeksen met eindpunt

    Terwijl bij traditionele blokapparaten een sector naar elke willekeurige positie kan worden geschreven, kunnen ZNS-ssd’s binnen zo’n zone alleen sequentieel van voor naar achter worden geschreven. Het einde van de reeds geschreven data wordt aangegeven door een write-pointer. Bij die methode mogen er dan geen data meer voor de write-pointer worden geschreven.

    Data bewerken binnen zone

    Om de data binnen een zone te wissen, moet de hele zone worden teruggezet en wordt de write-­pointer weer naar het begin teruggezet. Het schrijven naar willekeurige adressen moet door de driver van het bestands­systeem worden omgezet in opeen­volgende adressen. De data kunnen in willekeurige volgorde worden gelezen.

    fysieke blokken en erase blokken

    Hoewel afzonderlijke fysieke geheugenblokken in flashgeheugen afzonderlijk kunnen worden be­naderd om te lezen, worden zij voor het wissen samengevoegd tot zogenaamde erase-blokken. Wanneer een enkel blok binnen een erase-blok wordt gewijzigd, wordt het niet overschreven maar gemarkeerd als ongeldig, en wordt de gewijzigde inhoud naar een ander vrij blok binnen hetzelfde erase-blok geschreven.

    Logische blokken en gebruik geheugen bij beheer

    De zogeheten Flash Translation Layer (FTL) van conventionele ssd’s zorgt ervoor dat wanneer een logisch blok wordt benaderd, het op dat moment bij­behorende fysieke blok teruggeleverd wordt. Om dat te realiseren, heeft de FTL van de ssd zelf ook een deel van de ssd-bronnen nodig, zowel van het DRAM als van het flashgeheugen. Daar slaat de FTL de toewijzings­tabellen op.

    Erase-blok opruimen en wissen

    Als het aandeel ongeldige data in een erase-blok boven een bepaalde drempelwaarde komt, moet de FTL beginnen met opruimen (garbage-collection). Dan worden de nog geldige gebruiksdata naar een nieuw erase-blok gekopieerd en de toewijzingstabellen bijgewerkt. Zodra dat proces voltooid is, kan de FTL het erase-blok dat niet langer nodig is wissen.

    Reserveren en gebruik van opslagcellen

    Conventionele ssd’s reserveren delen van hun opslag om versleten of defecte flashcellen te kunnen vervangen en voor administratieve taken zoals garbage-­collection en voor de FTL-tabellen. Bij consumer-­ssd’s omvat dat reservegebied meestal 7 procent van de hele ssd, bij bijzonder schrijfbestendige enterprise-­ssd’s kan dat oplopen tot 28 procent.

    Ingedeeld in zones (ZNS)

    Bij een ZNS-ssd zijn er geen reserves, de ssd heeft aanzienlijk minder geheugen nodig voor de FTL-tabellen en defecte cellen leiden gewoon tot kleinere zones. Het voordeel is dat bijna de volledige bruto capaciteit van een ssd beschikbaar is om data op te slaan, maar het nadeel is dat het hostbesturingssysteem of de toepassing de taken van de FTL moet overnemen.

    Herschikken defecten doet ssd zelf

    Het herschikken van defecte sectoren blijft de ssd doen. Hij verplaatst ze naar het einde van de bijbe­horende zone. De host of het besturingssysteem ontvangt alleen logische sectoren van de ssd. De defecte sectoren reduceren daarbij de capaciteit van de zone.

    Host controleert garbage-collection

    De hostsoftware heeft de controle over wanneer de garbage-collection begint. Daardoor kan de host de latenties die optreden bij het schrijven naar het ­medium beter beheersen. De garbage-collection wordt dan gestart op het moment dat er geen applicaties data naar de ssd schrijven.

    Voordelen bij zware belasting

    Een ZNS-ssd heeft daarmee vooral voordelen bij zware belasting, dus wanneer de schijf continu boven zijn capaciteit moet (over)schrijven, lezen en wissen. Uit een vergelijking van drie 1TB-ssd’s – ZNS, enter­prise en consumer – bij Western Digital bleek dat de doorvoer van de conventionele ssd’s daalde bij het bereiken van de nominale capaciteit, terwijl de ZNS-ssd de data met gelijke snelheid bleef verwerken.

    ssd harde schijf: data hostsysteem zones SMR

    afb 2 -Vergelijking van de schrijfprestaties van traditionele ssd’s en ZNS-ssd’s De schrijfprestaties van traditionele ssd’s kelderen bij zware belasting. ZNS-­ssd’s kunnen hun snelheid behouden omdat de garbage-collection door de host geregeld wordt.

    Verschil conventionele ssd en ZNS-ssd

    Die daling van de schrijfsnelheid kan worden verklaard door het feit dat de twee conventionele ssd’s de garbage-collection starten op het moment dat de nomi­nale capaciteit van de ssd wordt bereikt, wat betekent dat de ssd op dat moment druk aan de slag gaat met het herschikken en daardoor minder nieuwe data kan verwerken. Dat proces vindt bij de ZNS-ssd niet plaats, omdat die voor het overschrijven een volledige zone uit meerdere erase-blokken kan resetten.

    Firmware voor begrip van indeling en gebruik zones

    De nieuwe kenmerken van de ZNS-standaard moeten ook door de firmware van de ZNS-ssd’s worden ondersteunt. Die moeten de nieuwe commando’s begrijpen en implementeren, en zones met logische adressen aan de host kunnen leveren. Zones zijn tussen 256 MB en 2 GB groot, het aantal wordt bepaald door de bruto capaciteit van de schijf en de grootte van de zone.

    ssd harde schijf: data hostsysteem zones SMR

    afb3 -Verschillen tussen traditionele ssd’s en ZNS-ssd’s
    Terwijl bij traditionele ssd’s de data van verschillende toepassingen in het flashgeheugen worden gemengd, worden ze bij ZNS-ssd’s gesorteerd.

    Openen en sluiten zones voor schrijven

    De ZNS-norm maakt onderscheid tussen in­actieve, actieve en open resources. Om in een zone te kunnen schrijven, moet hij open zijn. Dat kan worden gedaan door de zone expliciet te openen door het juiste commando naar de ssd te sturen of impliciet door naar die zone te schrijven. Aangezien elke open zone opslag op de ssd gebruikt, sluit de host zones die niet gebruikt worden. Een host kan echter meerdere zones parallel gebruiken.


    Blijf op de hoogte van de nieuwste informatie en tips!
    Schrijf je in voor de nieuwsbrief:

    Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

     

    Toepassingen in krachtige parallelle mogelijkheden

    Zoned storage is met name geschikt voor virtualisatie- en cloudservers. De virtuele opslag van de afzonder­lijke virtuele machines kun je dan verdelen over een of meer zones van de ssd. Bij traditionele ssd’s kunnen de garbage-collection en applicaties die in de virtuele machines draaien elkaar in de weg zitten, maar bij ZNS-ssd’s is dat uitgesloten.

    Die krachtigere parallelle mogelijkheden komen ook andere toepassingen ten goede die sequentieel schrijven, zoals back-up- en archiefsoftware, video-­opname- en editingsoftware, en key-value-databases zoals RocksDB en bestandssystemen zoals Ceph.

     

    Programmeren voor zoned storage

    Om zoned storage te kunnen gebruiken, moeten besturingssystemen en toepassingen daarop worden aangepast. Bij traditionele ssd’s schrijft de host data naar het opslagapparaat door het adres aan het opslagapparaat door te geven waar de data naar geschreven moeten worden.

    Schrijven in zones via in- en outpointers

    Met ZNS-ssd’s gebruikt de host voor het schrijven het zone-append-commando. Hij geeft dan niet het absolute adres door, maar alleen het startadres van de betreffende zone. De firmware van de ssd schrijft de data dan naar het einde van de Zone Write Pointers en levert het absolute adres van de geschreven data terug aan de host. Dat reduceert de complexiteit van de block-allocation aanzienlijk. De ssd onthoudt de positie van de write-pointers.

    SMR, ZNS en Linux

    Aangezien dat mechanisme ook grote voordelen kan opleveren voor SMR-harddisks, implementeert de Linux-kernel een emulatie van het zone-append-commando voor die schijven. Daarmee kunnen onder ­Linux bestandssystemen die met zoned-block-­devices kunnen werken hetzelfde I/O-pad gebruiken voor zowel ZNS-ssd’s als SMR-schijven.

    Op dit moment zijn dat het Flash-Friendly-Filesystem (F2FS) en Zonefs. Die laatste schotelt een eenvoudige abstractie van het apparaat voor en presenteert de afzonderlijke zones als bestanden aan toepassingen. Het copy-on-write-­bestandssysteem BTRFS is ook aangepast om te werken met zoned-block-devices. De ontwikkelaars van de Linux-kernel controleren de implementatie momenteel om die in de hoofdkernel op te nemen.

    Ext4 en XFS gebruiken omweg voor zones

    Bestandssystemen zoals Ext4 en XFS die niet zijn voorbereid om met zoned-devices te werken, kunnen desondanks gebruikt worden door middel van dm-zoned device mapper target. Daarbij voegt dm-zoned een extra abstractielaag in tussen het bestands­systeem en de ssd door de geschreven data te serialiseren en op een tweede opslagmedium een vertaaltabel op te slaan, zodat het bestandssysteem zijn data ­terug kan vinden. Applicatieontwikkelaars kunnen via de opensource library libsbc toegang krijgen tot zoned-­devices (zie de links hieronder).

    Informatie over Zoned Storage

    Open bibliotheek libzbc

    Wat profiteert van ZNS-ssd

    Met name prestatiekritische toepassingen zoals key-value-databases, object-stores en virtualizers profiteren nog het meest van de verminderde latentie van een ZNS-ssd, maar ook audio- en videotoepassingen doen er hun voordeel mee. Bovendien kunnen toepassingen hun data er beter mee van elkaar scheiden.

    Beter gebruik beschikbare resources

    De Linux-kernel vanaf versie 5.9 bevat de nodige driveraanpassingen om met ZNS-ssd’s overweg te kunnen. Radian Memory, Samsung en Western Digital hebben de eerste ssd-exemplaren al. De prijs per GB opslagruimte zal in de toekomst ook lager zijn met ZNS-ssd: zoned-storage maakt simpelweg beter gebruik van de beschikbare resources.


    Afkortingen:

    SMR = Shingled Magnetic Recording

    ZNS = zoned namespace

    FTL + Flash Translation Layer

     

    Dit artikel verscheen in c’t magazine 6; 2021, p44 – door Johannes Thumshirn en Daniel Dupré

    c't 05/2024

    Meer over

    SSD

    Deel dit artikel

    Daniel Dupré
    Daniel DupréDaniel koestert een liefde voor het in elkaar zetten van zinnen en van computers, en heeft in c't een prachtige mogelijkheid gevonden om beide te combineren.

    Lees ook

    Sonnet PCIe-adapter voor vier ssd’s

    De PCIe-adapter van Sonnet is geschikt voor vier snelle PCIe-ssd’s. Als je ze samen in een RAID-array stopt, lopen de prestaties nog verder op.

    Ssd koeling: nuttig of alleen voor de show?

    Steeds meer M.2-ssd’s worden geleverd met koellichamen en ook bij moederborden wordt de ssd koeling vaak meegeleverd. We hebben getest of koeling voor...

    0 Praat mee
    avatar
      Abonneer  
    Laat het mij weten wanneer er