NVMe (non-volatile memory express) is een Host controller interface en opslag protocol gemaakt om de overdrachtsnelheid van gegevens tussen enterprise en client systemen en solid-state drives (SSD ‘ s) via een computer high-speed Peripheral Component Interconnect Express (PCIe) bus.
aangezien solid-state-technologie het meest geschikte medium werd op de opslagmarkt, werd het al snel duidelijk dat bestaande interfaces en protocollen-met name Serial Advanced Technology Attachment (SATA) en Serial-Attached SCSI (Sas) – niet geschikt waren, met name in datacenteromgevingen. Het werk aan een nieuw protocol speciaal ontworpen voor NAND flash begon al in 2007, met Intel het voortouw. Begin 2011 werd de eerste NVMe spec uitgebracht — bijna 100 tech bedrijven waren betrokken bij de ontwikkeling.
de NVMe-specificatie definieert een registerinterface, opdrachtset en verzameling van functies voor PCIe-gebaseerde SSD ‘ s met als doel hoge prestaties en interoperabiliteit over een breed scala van NVM-subsystemen. De NVMe-specificatie bepaalt niet het ultieme gebruiksmodel, zoals solid-state opslag, hoofdgeheugen, cachegeheugen of back-upgeheugen.
NVMe biedt een alternatief voor de SCSI-standaard (Small Computer System Interface) en de ATA-standaard voor het verbinden en verzenden van gegevens tussen een hostsysteem en een perifeer doelopslagapparaat. De ATA commando set in gebruik met SATA SSD ’s en de SCSI commando set voor SAS SSD’ s werden ontwikkeld op een moment dat harde schijven (HDD ‘ s) en tape waren de primaire opslagmedia. NVMe is ontworpen voor gebruik met snellere media.
de belangrijkste voordelen van NVMe-gebaseerde PCIe-SSD ’s ten opzichte van SAS-en SATA-gebaseerde SSD’ s zijn verminderde latency in de hostsoftwarestack, hogere input/output-bewerkingen per seconde (IOPS) en mogelijk lager energieverbruik, afhankelijk van de vormfactor en het aantal gebruikte PCIe-lanes.
Het NVMe-protocol kan SSD ‘ s ondersteunen die verschillende typen niet-vluchtig geheugen gebruiken, waaronder NAND flash en de 3D XPoint-technologie die is ontwikkeld door Intel en Micron Technology. NVMe referentie drivers zijn beschikbaar voor een verscheidenheid van besturingssystemen (OS ‘ s), waaronder Windows en Linux.
NVMe maakt het niet alleen mogelijk voor bestaande toepassingen om sneller en efficiënter te werken; het is eigenlijk een belangrijke enabler van nieuwere en evoluerende technologieën en toepassingen zoals het internet of things (IoT), kunstmatige intelligentie (AI) en machine learning (ML), die allemaal kunnen profiteren van de lage latency en hoge prestaties van NVMe-attached storage.
hoe NVMe werkt
NVMe geeft input/output (I / O) – opdrachten en antwoorden aan op gedeeld geheugen in een hostcomputer via de PCIe-interface. De NVMe-interface ondersteunt parallelle I / O met multicore-processoren om een hoge doorvoer te vergemakkelijken en knelpunten in de centrale verwerkingseenheid (CPU) te beperken.
NVMe biedt een meer gestroomlijnde opdrachtset om een I / O-verzoek te verwerken dan de SCSI-en ATA-opdrachtsets. NVMe vereist minder dan de helft van het aantal CPU-instructies dan de SCSI-opdrachtset doet met SAS-apparaten en de ATA-opdrachtset gebruikt met SATA-schijven.
NVMe SSD ’s vs.SATA SSD’ s
SATA is een communicatieprotocol ontwikkeld voor computers om te interageren met HDD-opslagsystemen. SATA werd in 2000 geïntroduceerd door een groep grote tech-spelers en verving parallel ATA en werd al snel het alomtegenwoordige opslagsysteemprotocol voor computers, variërend van laptops tot servers. In de loop der jaren, herzieningen van de spec zijn revved up en het draait momenteel op 6 Gbps met een effectieve doorvoer van maximaal 600 MBps.
hoewel ontwikkeld voor harde schijftechnologie met mechanische draaiende schotels en actuatorgestuurde lees-/schrijfkoppen, werden vroege SSD ‘ s op de markt gebracht met SATA-interfaces om te profiteren van het bestaande SATA-ecosysteem. Het was een handig ontwerp en hielp bij het versnellen van SSD-adoptie, maar het was niet-en is nog steeds niet-de ideale interface voor NAND flash-opslagapparaten en werd steeds meer gezien als een systeem knelpunt.
ontworpen voor flits, laten de snelheid van NVMe en de lage latentie SATA in het stof achter, en NVMe zorgt voor veel hogere opslagcapaciteiten in kleinere vormfactoren zoals M. 2. Over het algemeen, NVMe prestatieparameters overtreffen die van SATA vijf keer of hoger.
SATA is misschien meer gevestigd met een langere geschiedenis en lagere implementatiekosten dan NVMe, maar het is duidelijk harde schijftechnologie die is aangepast aan modernere opslagmedia.
NVMe SSD ’s vs.SAS SSD’ s
NVMe ondersteunt 64.000 commando ‘ s in een enkele berichtwachtrij en een maximum van 65.535 I / O-wachtrijen. De wachtrijdiepte van een SAS-apparaat ondersteunt daarentegen meestal maximaal 256 commando ’s en een SATA-schijf ondersteunt maximaal 32 commando’ s in één wachtrij.
echter, NVMe-gebaseerde PCIe-SSD ’s zijn momenteel duurder dan SAS – en SATA-gebaseerde SSD’ s met gelijkwaardige capaciteit; hoewel die delta kleiner wordt. Ook kunnen high-end enterprise NVMe-SSD ’s meer stroom verbruiken dan SAS-of SATA-SSD’ s. De SCSI Trade Association beweert dat de meer volwassen SAS-SSD ’s extra voordelen bieden ten opzichte van NVMe PCIe-SSD’ s, zoals grotere schaalbaarheid, hot pluggability en beproefde failover-mogelijkheden. NVMe PCIe SSD ‘ s kunnen ook een prestatieniveau bieden dat veel toepassingen niet nodig hebben.
geschiedenis en evolutie van NVM Express
De werkgroep Non-Volatile Memory Host Controller Interface (NVMHCI) begon met de ontwikkeling van de NVMe-specificatie in 2009 en publiceerde de 1.0-versie op 1 maart 2011. De 1.0 specificatie omvatte de wachtrij interface, de NVM commando set, Beheer commando set en beveiligingsfuncties.
De Nvmhci werkgroep, algemeen bekend als de NVM Express Werkgroep, heeft een update uitgebracht voor de NVMe specificatie op Oct. 11, 2012. NVMe 1.1 heeft ondersteuning toegevoegd voor SSD ‘ s met meerdere PCIe-poorten om multipath I/O en namespace sharing mogelijk te maken. Andere nieuwe mogelijkheden omvatten autonome overgangen van de energietoestand tijdens inactieve tijd om de energiebehoeften te verminderen en reserveringen waardoor twee of meer hosts de toegang tot een gedeelde naamruimte kunnen coördineren om de fouttolerantie te verbeteren.
de NVM Express-werkgroep hield zijn eerste Plugfest in Mei 2013 om bedrijven in staat te stellen de conformiteit van hun producten met de NVMe-specificatie te testen en de interoperabiliteit met andere NVMe-producten te controleren.
de NVM Express werkgroep opgericht onder de naam NVM Express organisatie in maart 2014. De oprichters waren Cisco Systems, Dell, EMC, Western Digital ‘ s HGST-dochteronderneming, Intel, LSI, Micron Technology, NetApp, Oracle, PMC-Sierra, Samsung Electronics, SanDisk en Seagate Technology.
de NVM Express organisatie werd later gewoon bekend als NVM Express Inc. De non-profit organisatie heeft meer dan 100 technologiebedrijven als leden.
de NVMe 1.2 specificatie verscheen op Nov. 3, 2014, met verbeteringen zoals ondersteuning voor live firmware-updates, verbeterd energiebeheer en de optie voor end-to-end gegevensbescherming.
Op Nov. 17, 2015, de NVM Express organisatie geratificeerd de 1.0 versie van de NVM Express Management Interface (NVMe-MI) om een architectuur en commando set voor het beheren van een niet-vluchtig geheugen subsysteem buiten de band. NVMe-MI stelt een managementcontroller in staat om taken uit te voeren zoals SSD-device en capability discovery, gezondheid en temperatuurbewaking en niet-destructieve firmware-updates. Zonder NVMe-MI vertrouwden IT-managers over het algemeen op eigen, leverancierspecifieke beheerinterfaces om het beheer van PCIe-SSD ‘ s mogelijk te maken.
NVMe 1.3 feature enhancements
NVM Express heeft NVMe 1 uitgebracht.3 in juni 2017. Highlights center on sanitize operations, een nieuw framework dat bekend staat als richtlijnen en virtualisatie verbeteringen.
in een ontsmettingsbehandeling worden alle gebruikersgegevens in het NVMe-subsysteem zodanig gewijzigd dat herstel niet mogelijk is “uit een cache, niet-vluchtige media of geheugenbuffer voor controllers”, volgens een NVM Express-referentieblad. Sanitize operaties worden aanbevolen wanneer een SSD wordt gepensioneerd of hergebruikt voor een nieuwe use case. Ontsmetten modi omvatten low-level block erase op NAND media, crypto-erase om een media-encryptiesleutel te wijzigen en te overschrijven.
het kader voor richtlijnen definieert een mechanisme voor de uitwisseling van gegevens tussen een host en een NVMe-subsysteem. Dit maakt per-I/O command tagging mogelijk en geeft IT-beheerders de mogelijkheid om te rapporteren attributen en instellingen te configureren.
Het eerste gebruik van richtlijnen is een functie genaamd Streams voor het optimaliseren van de plaatsing van gegevens om het uithoudingsvermogen en de prestaties van NAND SSD ‘ s te verbeteren. Traditioneel, voordat nieuwe gegevens naar de SSD kunnen worden geschreven, moeten eerst grote blokken gegevens worden gewist.
met de functie Streams kan een host een “stream identifier” gebruiken om de specifieke logische opslagblokken aan te geven die tot een groep van geassocieerde gegevens behoren. Hierdoor kan een lezen of schrijven worden gelabeld met gerelateerde gegevens die op andere locaties zijn opgeslagen.
virtualisatieverbeteringen bepalen hoe NVMe flash kan worden gebruikt in een gedeelde opslagomgeving waar zowel fysieke als virtuele controllers aanwezig zijn, inclusief primaire opslagcontrollers en secundaire opslagcontrollers. NVM Express zei dat het doel is om ontwikkelingsteams in staat te stellen een specifieke SSD te wijden aan een specifieke virtuele machine (VM).
NVMe 1.4 feature enhancements
NVMe 1.4 werd geïntroduceerd in Juli 2019. Deze nieuwste versie bevat een aantal verbeteringen en nieuwe functies, waaronder:
- Rebuild Assist verbetert data recovery en verbetert data migratie operaties.
- Persistent Event Log houdt een gedetailleerde schijfgeschiedenis bij die kan worden gebruikt voor het debuggen en het bepalen van de oorzaken van problemen.
- NVM-Sets en IO-determinisme verbeteren de prestaties en de kwaliteit van de dienstverlening (QoS).
- Asymmetric Namespace Access (ANA) verbetert multipathing voor hoge beschikbaarheid.
- Hostgeheugenbuffer (HMB) vermindert de latentie en helpt bij het ontwerpen van SSD ‘ s.
- Persistent Memory Region (PMR) stelt hostsystemen in staat om direct te lezen en te schrijven naar het dynamic random access memory (Dram) dat SSD ‘ s bevatten samen met hun core flash, die voornamelijk werd gebruikt voor caching
de nieuwe functies vereisen dat fabrikanten van flashstations hun producten upgraden om de verbeteringen op te nemen. Er zullen ook nieuwe bestuurders nodig zijn voor besturingssystemen.
NVMe form factors and standards
de behoefte aan een opslaginterface en een protocol om het prestatiepotentieel van NAND flash in bedrijfsomgevingen beter te benutten was de belangrijkste drijfveer achter de ontwikkeling van de NVMe spec. Maar het opnieuw uitvinden van de verbindingsstandaard opende de deuren naar verschillende soorten interface-implementaties die binnen de grenzen van de nieuwe specificatie konden blijven, terwijl het aanbieden van een verscheidenheid aan implementatieopties.
in korte volgorde ontstonden een aantal flash-form-factoren conform de NVMe-specificaties, waaronder conventionele invoegkaarten (AIC) voor de PCIe-bus en nieuwe form-factoren voor SSD ‘ s die M. 2 en U. 2 worden genoemd.
- AIC. De AIC-vormfactor stelt fabrikanten in staat om hun eigen kaarten te maken die in de PCIe-bus komen zonder zich zorgen te maken over opslagruimteontwerpen of soortgelijke beperkingen. De kaarten zijn vaak ontworpen voor speciale toepassingen en kunnen extra processors en andere chips bevatten om de prestaties van de solid-state opslag te verbeteren.
- M. 2. De M.2 form factor is ontwikkeld om te profiteren van het compacte formaat van NAND flash en de lage warmteafvoer. Als zodanig zijn M. 2 apparaten niet bedoeld om te passen in de traditionele aandrijfbaaier compartimenten, maar eerder om te worden ingezet in veel kleinere ruimtes. Vaak beschreven als ongeveer de grootte van een gom, M. 2 SSD ‘ s meten 22mm breed en over het algemeen 80mm lang, hoewel sommige producten langer of korter kunnen zijn.
- U. 2. In tegenstelling tot de M. 2 form factor, U. 2 SSD ‘ s zijn ontworpen om te passen in bestaande opslag bays oorspronkelijk bedoeld voor standaard SATA of SAS-apparaten. U.2 SSD ’s lijken erg op die oudere media, omdat ze meestal gebruik maken van de 2,5-inch of 3,5-inch behuizingen die bekende behuizingen zijn voor HDD’ s. Het idee was natuurlijk om het zo eenvoudig mogelijk te maken om NVMe-technologie te implementeren met zo min mogelijk herontwerpen.
een andere, minder wijd verspreide NVMe-vormfactor is ssd-vormfactor voor ondernemingen en datacenters, of EDSFF. Het wordt ondersteund door belangrijke spelers uit de opslagindustrie, zoals Intel, Dell EMC, Hewlett Packard Enterprise (HPE), Lenovo, Samsung en anderen. Het doel van EDSFF is om hogere prestaties en capaciteiten te leveren aan enterprise-class opslagsystemen. Misschien wel het bekendste voorbeeld van EDSFF flash zijn Intel ‘ s E1.L (lang) en E1.S (korte) flash-apparaten, die worden geleverd in wat oorspronkelijk werd aangeduid als de” liniaal ” vormfactor.
NVMe over weefsels
NVM Express Inc. gepubliceerd op 5 juni 2016 de 1.0 versie van de NVMe over Fabrics (NVMe-oF) specificatie. NVMe-oF is ontworpen om de high-performance en low-latency voordelen van NVMe uit te breiden over netwerkstoffen die servers en opslagsystemen verbinden, zoals Fibre Channel (FC), Ethernet en InfiniBand.
Fabric transports omvatten NVM – van het gebruik van remote direct memory access (RDMA) en NVMe-van toegewezen aan FC. Een technische subgroep van NVM Express Inc. werkte aan NVMe-oF met RDMA, en de T11 Commissie van de International Committee for Information Technology Standards (INCITS) is verantwoordelijk voor de ontwikkeling van NVMe boven FC (FC-NVMe).
de NVMe-of-specificatie is grotendeels hetzelfde als de NVMe-specificatie. Een van de belangrijkste verschillen tussen NVMe-oF en NVMe is de methodologie voor het verzenden en ontvangen van commando ‘ s en reacties. NVMe is ontworpen voor lokaal gebruik en wijst commando ‘ s en reacties toe op het gedeelde geheugen van een computer via PCIe. In tegenstelling, NVMe over Fabrics maakt gebruik van een bericht-gebaseerd systeem om te communiceren tussen de host computer en het doel opslagapparaat.
het opgegeven ontwerpdoel voor NVMe-oF was om niet meer dan 10 microseconden latentie toe te voegen voor communicatie tussen een NVMe-hostcomputer en een op het netwerk aangesloten NVMe-opslagapparaat, in vergelijking met de latentie geassocieerd met een NVMe-opslagapparaat dat gebruik maakt van de PCIe-bus van een lokale computer.