>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
C

Hoe DAOS maximale prestaties haalt uit NVMe en SCM-geheugen

Wanneer een standaard bestandssysteem begint te stikken in miljoenen kleine willekeurige I/O-bewerkingen, zoeken ontwikkelaars meestal naar workarounds. Het bekende verhaal: moderne NVMe-schijven werken met razendsnelle snelheden, maar de standaard Linux-kernelstack besteedt veel tijd aan locks en context switches.

DAOS Logo

Specialisten van de Linux Foundation ontwikkelen DAOS (Distributed Asynchronous Object Storage). Dit is een gedistribueerd objectopslagsysteem met open-source code geschreven in C. Het is specifiek ontworpen voor niet-vluchtig geheugen (NVM), Storage Class Memory-modules en NVMe-schijven.

Wat is het Idee

Traditionele opslag probeert het oude POSIX-model op snel geheugen te forceren. Dit creëert bottlenecks. DAOS neemt een andere aanpak: het project laat de traditionele kernel I/O-stack volledig achterwege.

In plaats van vertrouwde bestanden en mappen biedt het systeem een key-value structuur met asynchrone transactionele I/O. Datastromen blokkeren elkaar niet tijdens het schrijven, en hardware-toegang gaat direct via de SPDK- en PMDK-bibliotheken.

Welke Functies het Project Biedt

Ontwikkelaars hebben verschillende kernmogelijkheden in de architectuur ingebouwd voor het werken met grote datavolumes.

  • Asynchrone niet-blokkerende transacties voor parallelle schrijfbewerkingen
  • End-to-end data-integriteitsverificatie van client naar opslag
  • Automatisch herstel bij uitval van individuele nodes
  • Elastische cluster-schaling zonder service-onderbreking

Een interessant punt betreft de interfaces. In tegenstelling tot KV-stores met een smal doel, biedt DAOS handige client wrappers. Je kunt ermee werken via een native Python dictionary, verbinden met Spark, het doorgeven via TensorFlow-IO, of traditionele HDF5- en MPI-IO-bibliotheken gebruiken die gangbaar zijn in wetenschappelijke software. Voor compatibiliteit met legacy software is er parallelle bestandssysteem-emulatie.

Wat Er Onder de Motorkap Zit en Welke Nuances Er Bestaan

De code is geschreven in C en de repository bestaat sinds 2016. Het project heeft ongeveer duizend sterren verzameld op GitHub, maar verwacht geen eenvoudige implementatie. Dit is geen cute CLI-hulpprogramma dat je met één commando installeert.

Volledige DAOS-werking vereist gespecialiseerde hardware met NVMe-ondersteuning en bij voorkeur niet-vluchtig geheugen (SCM). Je kunt het concept niet evalueren met een budget van een paar goedkope cloud-servers. Het instellen van het control plane en client-bibliotheken vereist een gedegen begrip van netwerkstacks en infrastructuur.

Foutlogboeken en documentatie zijn gedetailleerd maar omvangrijk. Als er iets misgaat tijdens de build, moet je door logboeken graven of hulp zoeken op de community Slack en forums.

Voor Wie Het de Moeite Waard is om te Proberen

Het project is niet gecreëerd voor alledaagse websites of kleine PostgreSQL-databases. De niche is infrastructuur met kolossale doorvoervereisten.

  1. Teams die gigantische neurale netwerken trainen op TensorFlow, waar dataset-laden de bottleneck is geworden.
  2. Data engineers die werken met gedistribueerde analytics op Hadoop en Spark.
  3. Wetenschappelijke labs en HPC-clusters waar standaard Lustre of GPFS niet meer mee om kunnen.
  4. Ontwikkelaars van high-load systemen die hun eigen opslag bouwen op raw NVMe-schijven.

De Conclusie

DAOS is een uitstekend voorbeeld van hoe software-architectuur zich aanpast aan nieuwe hardware. Het project is complex, smal van doel en veeleisend voor infrastructuur, maar in zijn domein lost het een echt probleem van systeem-overhead op. Als je opslag bouwt voor machine learning of big data analytics-taken, is het zeker de moeite waard om de documentatie te bekijken.

Gerelateerde projecten