Stockage : la startup Pliops accélère les SSD NVMe
La carte XDP décharge le processeur d’un serveur de toutes les fonctions de stockage. Elle démultiplie les IOPS en RAID, compresse en temps réel, rend les SSD QLC économiques plus durables que les TLC.
C’est un peu le retour des cartes SCSI, sauf que celle-ci est un contrôleur de SSD NVMe. La Extrem Data Processor (XDP) de la startup israélienne Pliops arrive sur le marché pour confier à nouveau la gestion des unités de stockage dans un serveur à une puce dédiée. Le bénéfice est de soulager le processeur principal, pour qu’il ait plus de temps de calcul à dépenser dans les applications. Mais aussi, surtout, pour exécuter quantité de fonctions d’optimisation trop lourdes pour le commun des serveurs : la compression en temps réel, la sérialisation des écritures pour limiter l’usure des mémoires NAND, etc.
« Les processeurs x86 sont assez puissants pour exécuter des fonctions de stockage de haut niveau dans l’interstice du goulet d’étranglement des disques SAS/SATA. En revanche, en NVMe, la bande passante est autrement plus importante. Le débit de données est si important qu’un x86 ne pourrait plus rien faire d’autre s’il devait traiter ce flux en temps réel », explique Uri Beiter, le PDG de Pliops.
« En RAID 0, c’est-à-dire lorsque l’on réunit plusieurs SSD NVMe en une seule unité logique, nos IOPS sont 40 fois plus importantes sur des SSD TLC, pour des bases de données qui lisent/écrivent des blocs de 4 Ko, et 60 fois meilleurs sur des SSD QLC, pour des systèmes de fichiers qui lisent/écrivent des blocs de 64 Ko. Nos fonctions d’optimisation en temps réels permettent même de faire durer 1,5 fois plus longtemps des SSD QLC que ne durent des SSD TLC sur un serveur ou une baie de disques qui n’ont aucune accélération matérielle », ajoute Steve FingerHut, le directeur commercial de la startup.
De PCIe à PCIe, sans passer par le processeur
L’accélérateur XDP est une carte contrôleur qui pilote les SSD NVMe directement au travers des bus PCIe, sans nappe supplémentaire. Le simple fait de l’insérer dans un slot libre suffirait à accélérer le stockage. Elle pilote d’ailleurs aussi les commandes NVMe envoyées aux cartes NVMe-over-Fabrics (NVMe/FC, NVMe/TCP, NVMe/TCP, etc.) qui gèrent les baies de disques externes. Pour l’heure, la XDP fonctionne en PCIe 3.0 ; le prochain modèle adoptera directement le PCIe 5.0.
Outre les commandes NVMe de base, en l’occurrence le protocole Key-Value qui indexe les données sur des adresses mémoires, la carte XDP supporte une préversion du protocole SDXI (Smart Data Accelerator Interface) qui permet de répliquer des données entre des cellules de Flash sans passer par le processeur. La carte supporte aussi le mode bloc des disques durs, qui reste utilisable sur les SSD, notamment pour accélérer les accès directs des bases de données qui ne travaillent pas encore en NVMe. À l’inverse, elle supporte aussi de piloter des SSD Optane d’Intel.
Au-dessus de ces protocoles d’accès, la carte exécute des fonctions de haut niveau : elle virtualise des volumes logiques au sein d’un RAID, leur attribue différentes priorités selon les applications, compresse les flux à la volée, réorganise les ordres d’écritures en séquences qui préservent la longévité des cellules NAND. Ces séquences sont calculées selon le type d’application qui accède aux SSD : des bases SQL (Oracle, MySQL…), NoSQL (MongoDB, Redis…), analytiques (Elastic, Splunk, Hadoop) ou encore du stockage en cluster (Ceph, MinIO, mais aussi les SDS). Pour chaque cas, il existe un pilote avec les API adéquates.
« Une particularité de notre solution est que les performances du stockage ne baissent plus au fur et à mesure que les SSD se remplissent », souligne Steve FingerHut.
Pour accompagner les traitements GPU et les bases de données en mémoire
Sur le plan électronique, la carte dispose d’un processeur ARM pour les accès de base et d’un FPGA pour les fonctions de haut niveau. Ses traitements se font dans une mémoire de 16 Go embarquée sous la forme d’une barrette classique. En cas de coupure de courant, les accès en cours sont sauvegardés sur une NAND qui loge au dos de la carte, quatre piles fournissant l’énergie nécessaire à l’opération d’urgence.
La carte en elle-même est capable de gérer un maximum de 128 To de capacité, quel que soit le nombre de SSD connectés pour atteindre cette capacité. Selon les informations que le MagIT a pu obtenir, les clients de Pliops utiliseraient une carte XDP pour gérer quatre, huit, ou douze SSD NVMe.
Steve FingerHutDirecteur commercial, Pliops
« Nos marchés initiaux sont de fournir du stockage accéléré aux utilisateurs de GPU NVidia, que ce soit pour le supercalcul ou pour la création vidéo, l’animation », dit Steve FingerHut, en expliquant que les cartes communiquent directement en PCIe sans passer par le processeur.
« Cependant, nous pensons que nous allons à présent connaître un certain succès dans les bases de données In Memory. Ces bases sont limitées par la capacité de la RAM, qui n’est que de quelques centaines de Go sur un serveur, alors qu’elles sont susceptibles de traiter des téraoctets d’informations. D’ordinaire, les données excédentaires sont utilisées depuis des SSD, moyennant d’importants investissements pour compenser le goulet d’étranglement du stockage. Avec notre solution, les SSD d’un seul serveur deviennent aussi rapides que ceux de sept serveurs disposés en parallèle », conclut-il, en citant un test mené sur la base de données RocksDB.