Comprendre les bénéfices du NVMe-over-Fabrics
Étendant le protocole NVMe interne aux baies SAN externes, le standard NVMe-over-Fabrics donne l’impression de rapprocher les données des serveurs.
Le protocole NVMe-over-Fabrics permet aux commandes de stockage NVMe de fonctionner en réseau, afin d’accélérer les baies de stockage externes. Même si cette technologie est récente, les avantages, les bonnes pratiques et les fournisseurs sont déjà nombreux.
Il étend le standard ouvert NVMe, adopté par la majorité des fournisseurs de stockage, et qui correspond aux spécifications de l’interface logique reliant des unités de stockage dites non volatiles au bus PCI Express. En pratique, connecter des unités NVMe sur des slots PCIe réduit singulièrement la latence des accès en lecture et en écriture et permet de paralléliser les accès, une fonctionnalité supportée par tous les SSD modernes.
Le NVMe a commencé sa carrière dans les serveurs dès 2012. En 2014, le consortium NVMe Express Inc. a été fondé pour promouvoir la technologie au rang de standard. Ce groupe est dirigé par Cisco, Dell EMC, Intel, Micron, Microsemi, NetApp, Seagate et l’unité HGST de Western Digital. Il est à l’origine de la mise au point de NVMe-over-Fabrics.
Un stockage interne plus rapide qui s’étend à présent au SAN
La première chose à savoir est qu’une interface NVMe sert à traiter les SSD comme de la mémoire, alors que ces disques Flash ont passé la majorité de leur carrière à fonctionner comme les anciens disques durs. Historiquement, les SSD sont en effet connectés à des contrôleurs SATA qui ne savent véhiculer les données qu’en file indienne, par paquet de 32 commandes. En NVMe, les accès sont au contraire parallélisés – une unité peut recevoir 65 536 flux de 65 536 commandes en même temps – et, ce, directement depuis le processeur. Cela permet d’atteindre facilement des débits de 2 à 4 Go/s par unité NVMe, soit quatre à huit fois meilleurs que ceux des SSD.
À l’échelle du datacenter, NVMe a porté dès le départ la promesse de fonctionner avec unités de stockage situées dans des baies de disques externes. Pour deux raisons. La première est que le protocole supporte de communiquer via des cartes contrôleur Fibre Channel. La seconde est qu’en considérant que plusieurs routes parallèles mènent à un périphérique, il devient possible d’assembler plusieurs disques NVMe en un seul équipement de stockage.
Mais pour aller plus loin, le consortium NVMe Inc. a proposé dès 2014 de standardiser un protocole de communication appelé NVMe-over-Fabrics (alias NVMe-oF). Celui-ci supporte de traverser une succession d’éléments sur le réseau, ce qui sert à augmenter la distance entre le serveur et une baie, mais aussi à faire communiquer ensemble plusieurs serveurs et plusieurs tiroirs de disques, exactement comme dans un SAN. Sur un plan plus technique, NVMe-oF rend aussi possible l’utilisation d’unités NVMe dont l’alimentation électrique est strictement séparée de celle du serveur, ce qui est utile dans les applications d’IoT.
L’accès en NVMe-oF vers des disques externes pose néanmoins quelques contraintes. Pour fonctionner, le serveur et le contrôleur de la baie distante doivent, à l’heure actuelle, exécuter Linux avec des modules particuliers dans leurs noyaux.
Différentes déclinaisons de NVMe-over-Fabrics
Au-delà de l’adaptation NVMe-over-FC de base, qui fonctionne donc sur une infrastructure Fiber Channel, NVMe-over-Fabrics décline aussi le protocole NVMe sur les réseaux Ethernet et Infiniband, respectivement sous les dénominations NVMe-over-RoCE et NVMe-over-Infiniband. Ces deux versions utilisent une technique de Remote Direct Memory Access (RDMA), un dispositif logique qui évite de passer, au niveau du serveur comme à celui du contrôleur de la baie, par tous les décodages liés aux pilotes réseau.
NVMe-over-FC présente le mérite d’être immédiatement compatible avec les équipements Fiber Channel Gen5 et Gen6. Il est même possible de mixer des baies qui communiquent encore en SCSI avec d’autres qui le font déjà en NVMe.
En revanche, NVMe-over-RoCE et NVMe-over-Infiniband nécessitent l’installation de nouveaux matériels, parmi lesquels des switches et des cartes contrôleurs non seulement compatibles RDMA, mais aussi exclusivement dédiés aux communications NVMe.
Plus récemment est apparue la déclinaison NVMe-over-TCP qui, elle, fonctionne sur les équipements Ethernet en place. La raison d’être de NVMe-over-TCP est d’offrir la solution la plus économique et celle qui supporte les plus grandes distances, puisque la baie de stockage peut même théoriquement se trouver sur Internet.