>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
C

Comment DAOS extrait des performances maximales du NVMe et de la mémoire SCM

Lorsqu'un système de fichiers standard commence à peiner face à des millions de petites opérations d'E/S aléatoires, les développeurs cherchent généralement des solutions de contournement. L'histoire familière : les disques NVMe modernes fonctionnent à des vitesses fulgurantes, mais la pile standard du noyau Linux consomme beaucoup de temps en locks et changements de contexte.

DAOS Logo

Les spécialistes de la Linux Foundation développent DAOS (Distributed Asynchronous Object Storage). Il s'agit d'un système de stockage objet distribué au code source ouvert écrit en C. Il a été conçu spécifiquement pour la mémoire non volatile (NVM), les modules Storage Class Memory et les disques NVMe.

Quelle est l'Idée

Le stockage traditionnel tente d'imposer l'ancien modèle POSIX à la mémoire rapide. Cela crée des goulots d'étranglement. DAOS adopte une approche différente : le projet abandonne complètement la pile d'E/S traditionnelle du noyau.

Au lieu de fichiers et dossiers familiers, le système offre une structure clé-valeur avec des E/S transactionnelles asynchrones. Les flux de données ne se bloquent pas mutuellement lors des écritures, et l'accès au matériel se fait directement via les bibliothèques SPDK et PMDK.

Quelles Fonctionnalités le Projet Offre

Les développeurs ont intégré plusieurs capacités fondamentales dans l'architecture pour travailler avec de grands volumes de données.

  • Transactions asynchrones non bloquantes pour les écritures parallèles
  • Vérification d'intégrité des données de bout en bout du client au stockage
  • Récupération automatique en cas de défaillance de nœuds individuels
  • Mise à l'échelle élastique du cluster sans interruption de service

Un point intéressant concerne les interfaces. Contrairement aux stockages KV à usage étroit, DAOS offre des wrappers clients pratiques. Vous pouvez travailler avec via un dictionnaire Python natif, vous connecter à Spark, le passer via TensorFlow-IO, ou utiliser les bibliothèques HDF5 et MPI-IO traditionnelles pour les logiciels scientifiques. Pour la compatibilité avec les logiciels hérités, il y a l'émulation de système de fichiers parallèle.

Ce qui se Cache sous le Capot et les Nuances Existantes

Le code est écrit en C et le dépôt existe depuis 2016. Le projet a recueilli environ mille étoiles sur GitHub, mais ne vous attendez pas à un déploiement facile. Ce n'est pas un utilitaire CLI mignon que vous installez avec une seule commande.

Le fonctionnement complet de DAOS nécessite du matériel spécialisé avec support NVMe et de préférence de la mémoire non volatile (SCM). Vous ne pourrez pas évaluer le concept avec un budget de quelques serveurs cloud bon marché. La configuration du plan de contrôle et des bibliothèques clientes nécessite une solide compréhension des piles réseau et de l'infrastructure.

Les journaux d'erreurs et la documentation sont détaillés mais volumineux. Si quelque chose se passe mal lors de la compilation, vous devrez fouiller dans les journaux ou demander de l'aide sur le Slack communautaire et les forums.

Qui Devrait l'Essayer

Le projet n'a pas été créé pour les sites web quotidiens ou les petites bases de données PostgreSQL. Sa niche est l'infrastructure avec des exigences de débit colossales.

  1. Les équipes formant d'énormes réseaux neuronaux sur TensorFlow, où le chargement des ensembles de données est devenu le goulot d'étranglement.
  2. Les ingénieurs de données travaillant avec l'analytique distribuée sur Hadoop et Spark.
  3. Les laboratoires scientifiques et les clusters HPC où Lustre ou GPFS standard ont cessé de suffire.
  4. Les développeurs de systèmes à forte charge créant leur propre stockage sur des disques NVMe bruts.

En Résumé

DAOS est un excellent exemple de la façon dont l'architecture logicielle s'adapte aux nouveaux matériels. Le projet est complexe, à usage étroit et exigeant en infrastructure, mais dans son domaine, il résout un vrai problème de surcharge système. Si vous construisez du stockage pour des tâches d'apprentissage automatique ou d'analytique de big data, consulter la documentation a definitely du sens.

Projets similaires