WavebreakmediaMicro - Fotolia
Comment éviter que la structure du système de fichiers diminue les performances du NVMe
Découvrez ce qui est important lorsqu'il s'agit de concevoir des systèmes de fichiers et comment éviter que ceux-ci ne deviennent des goulets d'étranglement pour obtenir des performances optimales dans les systèmes de stockage NVMe.
La technologie NVMe permet à l'infrastructure de stockage de tirer pleinement parti du stockage flash en améliorant l'interface physique, ainsi qu'en augmentant le nombre de commandes et la profondeur des files d'attente des requêtes.
Mais NVMe crée aussi un défi : NVMe est si efficace en latence qu'il met en exergue les faiblesses des autres composants de l'infrastructure de stockage. Tout maillon faible de l'infrastructure augmente la latence et réduit la valeur du NVMe.
L'un des points les plus problématiques dans l'infrastructure de stockage réside dans le système de fichiers. Il est temps pour les fournisseurs de repenser la structure de celui-ci. Ils doivent revoir en particulier la façon dont leurs systèmes de fichiers interagissent avec le stockage compatible NVMe afin d'éviter d'être le principal goulet d'étranglement.
Pourquoi les systèmes de fichiers sont-ils importants ?
Les systèmes de fichiers exploités par des algorithmes d'IA ou des workloads qui nécessitent une grande vitesse de traitement, sont généralement de type « Scale-Out ».
Un système de fichiers « Scale-Out » est constitué de plusieurs serveurs de stockage, ou nœuds. Le système de fichiers agrège le stockage interne dans chacun de ces nœuds, le présentant comme un pool de stockage unique auquel les utilisateurs et les applications peuvent accéder.
Les systèmes de fichiers traditionnels peuvent également évoluer, mais ils fonctionnent en mode série, ce qui signifie que toutes les E/S passent par un nœud primaire que les IA et les charges de travail à grande vitesse peuvent facilement submerger, créant un goulet d'étranglement. Ces charges de travail reposent sur une structure de système de fichiers parallèle qui permet à n'importe quel nœud du cluster de fournir des services d'E/S à l'utilisateur ou à l'application, rendant l'efficacité du réseau encore plus importante.
La plupart des systèmes de stockage NVMe sont conçus pour le stockage en mode bloc. En conséquence de cela, il évite le surcoût de traitement généré par la structure du système de fichiers. Dans la plupart des cas, cependant, un système de fichiers est ajouté au système de stockage en bloc pour que ces charges de travail AI et à grande vitesse puissent l’exploiter. La plupart des applications modernes - en particulier l'intelligence artificielle, l'apprentissage machine et le traitement analytique des données - nécessitent un système de fichiers.
Un système de stockage NVMe bien conçu, basé sur des blocs et auquel est ajouté un système de fichiers, sera probablement plus rapide qu'un système de stockage SAS basé sur des blocs, mais la baisse de performance entre le stockage de blocs bruts et le stockage contrôlé par le système de fichiers est significative. Les organisations ont besoin de systèmes de fichiers optimisés pour le NVMe.
Ce qu'il faut rechercher dans les benchmarks
Les fournisseurs utilisent plusieurs tests d’analyse comparative pour démontrer les capacités de leurs systèmes de fichiers. La plupart de ces tests utilisent le stockage par blocs NVMe avec un système de fichiers parallèle, tel que le système de fichiers Spectrum Scale d'IBM. Les vendeurs sont libres d'utiliser différentes configurations pour figurer dans les classements, mais cela peut être trompeur.
Par exemple, pour passer l'actuel benchmark SFS 2014 du Standard Performance Evaluation Corp., les principaux fournisseurs de solutions choisissent des configurations considérablement différentes en termes de nombre de disques, de types de disques et de nombre de nœuds de stockage dans leurs environnements de test.
Dans la plupart des cas, les fournisseurs de matériel tentent d'atténuer l’overhead (frais généraux) généré par la structure du système de fichiers en utilisant plus de matériel que nécessaire et en augmentant le coût de la configuration au-delà de ce qui est raisonnable pour la plupart des organisations.
Ce qui compte vraiment, c'est la façon dont le matériel et le système de fichiers fonctionneront avec les types de charge de travail et le budget de l'organisation. La plupart des entreprises n'ont pas de fonds illimités pour créer la combinaison parfaite de système de fichiers NVMe. Les experts IT doivent rechercher la configuration la plus simple possible pour obtenir les résultats recherchés.
Ce qu'il faut rechercher dans un système de fichiers
Il existe principalement trois facteurs limitants dans la performance du système de fichiers :
- l'efficacité avec laquelle le système de fichiers communique avec le nœud de stockage,
- l'efficacité avec laquelle le système de fichiers gère le réseau qui relie les divers nœuds de stockage et l'efficacité avec laquelle il communique avec les clients,
- l'efficacité avec laquelle le système de fichiers gère l'accès aux métadonnées.
Dans la plupart des environnements applicatifs modernes, les métadonnées représentent plus de 80 % de toutes les E/S.
Les systèmes de fichiers communiquent généralement avec les supports de stockage via la pile E/S du système d'exploitation. Les systèmes de fichiers les plus avancés sont basés sur Linux et communiquent par cette pile.
Mais la pile Linux ajoute un overhead. Une alternative possible est de laisser le système de fichiers créer son propre canal d'E/S vers le système de fichiers NVMe. La communication directe avec le lecteur est plus difficile dans le développement d’un système de fichiers, mais cette solution constitue pour les utilisateurs du système de fichiers le meilleur moyen d'obtenir une performance maximale sans avoir à surinvestir dans du matériel coûteux.
Les systèmes de fichiers communiquent généralement avec les clients en utilisant les protocoles NFS standard, mais NVMe offre une variante réseau (NVMe-oF). Les systèmes de fichiers modernes devraient fournir un logiciel permettant un accès NVMe-oF natif et en mode parallèle sur le client. NVMe-oF pourrait également être utilisé pour interconnecter différents nœuds de stockage. Le résultat pour le client du système de fichiers est d’avoir la meilleure latence possible dans l'accès aux systèmes de fichiers.
Dans une structure de système de fichiers entièrement NVMe, l'accès aux métadonnées est, par nature, rapide, mais la façon dont les métadonnées sont disposées doit être efficace afin de bénéficier des faibles latences offertes par NVMe. Optimiser les performances des métadonnées signifie les répartir sur tous les nœuds du cluster du système de fichiers afin d'éviter les goulots d'étranglement au niveau d'un seul nœud.
Comment tirer le meilleur parti de NVMe
Plus que tout autre type de workloads, l'intelligence artificielle et les cas d’usage nécessitant une grande vitesse de traitement peuvent potentiellement tirer pleinement parti du NVMe. Le défi de ces charges de travail réside dans le fait que les applications accèdent généralement au stockage par l'intermédiaire d'un système de fichiers. Les systèmes de fichiers traditionnels n'optimisent pas leurs E/S pour les lecteurs NVMe. Un équipement de nœud plus rapide et des lecteurs NVMe offrent des performances améliorées, mais la structure du système de fichiers ne permet pas au matériel d’en tirer pleinement parti.
Pour contourner ce problème, privilégiez les systèmes de fichiers qui écrivent directement sur les lecteurs NVMe au lieu de passer par la pile E/S du système d'exploitation. Recherchez également des systèmes de fichiers qui permettent au client de communiquer à travers NVMe-oF et de gérer vos métadonnées d'une manière qui ne soit pas un goulet d'étranglement en termes de performance.