Stockage : ScaleFlux améliore ses SSD qui calculent à la place du CPU
Le fabricant lance le CSD3000, un SSD qui intègre huit cœurs ARM pour exécuter certains algorithmes au niveau du stockage. Sur un serveur, le gain de vitesse serait global.
Les SSD qui embarquent de la puissance de calcul, alias Computational Storage Drive ou CSD, font reparler d’eux. ScaleFlux, l’une des startups qui se sont lancées dans cette aventure, vient de présenter sa nouvelle gamme, les CSD 3000, lors du sommet mondial de l’Open Compute Project qui s’est tenu début novembre à San Jose, aux USA. Ces nouveaux SSD NVMe disposent d’une puce SFX 3000 bardée de circuits d’accélération et de cœurs ARM pour déplacer une partie des calculs dans l’unité de stockage, au plus proche de l’endroit où résident les données.
L’enjeu des CSD est de gagner en vitesse sur plusieurs points. D’abord, exécuter certaines fonctions liées aux données, au plus près de l’endroit où elles sont stockées, permet de réduire la latence, donc d’augmenter la quantité de données traitées en laps de temps. Ensuite, soulager le processeur central de ces fonctions-là lui laisse une plus grande réserve de puissance pour résoudre plus rapidement les calculs dans les applications principales, soit une accélération globale. Enfin, mettre une puce aussi puissante dans le SSD contribue à augmenter le débit général du stockage.
« Le Computational Storage est un domaine encore très marginal, mais qui se développe vite, car il existe quelques cas d’usage dans lesquels il apporte un grand intérêt. Je pense bien évidemment au supercalcul et aux algorithmes de Machine Learning », commente l’analyste Randy Kerns, du cabinet d’études Evaluator Group, au micro de nos confrères de TechTarget USA.
Randy KernsAnalyste, Evaluator Group
Selon des benchmarks pas très compréhensibles publiés par ScaleFlux, en confiant par exemple la compression/décompression des informations au CSD3000, un serveur lirait environ trois fois plus de données, en un temps imparti, qu’il ne le ferait depuis un SSD NVMe classique.
Chiffrer des données et exécuter des algorithmes à la volée
La puce SFX 3000 est bien plus riche en circuits que l’électronique embarquée dans le précédent CSD 2000, le SSD NVMe que ScaleFlux commercialisait jusque-là. Le CSD 2000 ne savait que compresser/décompresser les données à la volée, ce qui lui permettait déjà de doubler, tripler voire quadrupler virtuellement sa capacité de base (les CSD 2000 et 3000 sont livrés en 3,84, 7,68 et 15,26 To de capacité) sans ralentir le serveur. La puce SFX 3000 intègre en plus un circuit de chiffrement/déchiffrement à la volée et, surtout, huit cœurs ARM qui s’accompagnent d’une mémoire DDR4 de 16 Go sur le CSD 3000 pour exécuter toutes sortes d’algorithmes.
Simultanément au CSD 3000, ScaleFlux lance une carte CSP 3000, également équipée de la puce SFX 3000, mais sans mémoire NAND et qui est censée apporter de la puissance de calcul à des SSD classiques. On trouve aussi un SSD NVMe NSD 3000 avec une puce SFX 3000 bridée, qui dispose des mêmes circuits d’accélération pour la compression et le chiffrement, mais qui est dépourvue des cœurs ARM.
Enfin, ces SSD s’accompagnent d’une nouvelle pile logicielle, CSware, qui offre toutes les APIs pour que les applications et les systèmes d’exploitation utilisent la puce SFX 3000. CSware est livré avec une base de données KallaxDB qui optimise le stockage des petites informations très nombreuses (typiquement les métadonnées), un pilote RAID 10 appelé CS RAID et un pilote B-Tree censé accélérer les écritures des bases de données SQL.
Huit cœurs ARM, huit canaux PCIe 4.0
Dans le détail, la puce SFX 3000 est un ASIC, un processeur spécialisé gravé sur mesure en usine, alors que le contrôleur du CSD 2000 était un FPGA. Le FPGA est une sorte de processeur vierge que ScaleFlux achetait sur étagère et dont il programmait manuellement les portes logiques et, ce, pour chaque exemplaire qu’il mettait en circulation. Opter pour un ASIC permet de graver des cœurs ARM et, surtout, signifie que ScaleFlux a dépassé le stade artisanal.
L’ASIC comprend quatre parties principales : le contrôleur de NAND, les circuits spécialisés dans l’accélération des fonctions prédéfinies, un processeur central avec les cœurs ARM et un contrôleur de bus qui permet désormais de connecter les CSD/NSD/CSP3000 à un bus PCIe 4.0.
Le contrôleur de NAND supporte des capacités brutes de 64 To de NAND, soit 256 To logiques adressables après compression maximale. Notons que, pour l’heure, les SSD de ScaleFlux atteignent au mieux un peu moins de 16 To de capacité brute et que le fabricant parle plus souvent d’une compression à la volée avec un facteur 2:1 (soit un maximum de 32 To logiques). LeMagIT croit comprendre que le même contrôleur sera toujours utilisé sur plusieurs générations de CSD, au sein d’autres ASICs à venir encore plus performants sur la compression. Ce contrôleur dispose aussi de seize canaux pour accéder en parallèle aux données.
Les circuits d’accélération sont appelés des HCE (Hardware Compute Engine). Outre la compression et le chiffrement, ils prennent aussi à leur charge la comparaison d’empreintes, ce qui sera utile pour, typiquement, des fonctions de déduplication.
Les huit cœurs ARMs Cortex A53 (jeu d’instructions 64 bits ARMv8) sont pour leur part regroupés en deux blocs de quatre cœurs. Sur le SSD CSD3000, un bloc est dédié à l’exécution du firmware du SSD et l’autre est programmable par des applications externes. Sur la carte d’accélération CSP3000, les deux blocs sont utilisables par les applications.
Enfin, l’interface PCIe 4 .0 est dotée de huit canaux de communication, contre un ou deux d’ordinaire sur les SSD NVMe. Selon ScaleFlux, ces huit canaux doivent permettre d’enchaîner soit huit flux de communication simples en parallèle (mode « 1x8 ») soit deux flux de communications redondants en parallèle (mode « 2x2 »).
Quid de quatre flux redondants en parallèle ? Dans sa documentation, ScaleFlux indique que le mode « 2x4 » est réservé à l’utilisation de quatre flux simples entre la SFX 3000 et le processeur de la machine hôte, plus quatre autres flux qui relient la SFX 3000 à un coprocesseur. Il s’agirait typiquement d’un GPU (accélérateur graphique et mathématique) ou d’un DPU (accélérateur de communication, le plus souvent réseau) qui pourraient directement charger leurs données depuis le stockage sans passer par le processeur. Nvidia, le principal fabricant de ces composants, a précédemment indiqué qu’il prenait désormais en charge cette possibilité.
La puce SFX3000 augmente la consommation électrique de 9 watts par rapport à un SSD normal, portant la consommation d’un CSD3000 à un peu moins de 20 watts.
Des SSD qui atteignent 7,1 Go/s
Concernant les SSD eux-mêmes, les CSD 3000 et NSD 3000 existent en deux modèles de NAND : à cellules TLC (modèles « Datacenter » en 3,84 et 7,68 To) ou à cellules QLC (modèles « DataScale » en 7,68 et 15,36 To). Les QLC sont plus capacitives, tandis que les TLC ont une meilleure durée de vie et des accès plus rapides en écriture. ScaleFlux indique cependant que, grâce au contrôleur de la puce SFX 3000, ces différences de performances et d’endurance sont invisibles entre les deux gammes.
Les performances affichées sont des débits de 7,1 Go/s en lecture et 4,8 Go/s en écriture, ainsi que des quantités d’accès de 1,55 million d’IOPS en lecture et 0,35 million d’IOPS en écriture. De telles vitesses étaient déjà atteintes par les SSD haut de gamme FL6 BiCS4 de Kioxia et P5800X d’Intel, deux modèles également en PCIe 4.0 et reposant sur des mémoires spéciales, respectivement de la XL-Flash (NAND SLC avec 16 canaux) et de la 3D Xpoint (« Optane »).
Cependant, l’utilisation de tels composants mémoires très rapides pose la contrainte d’une capacité limitée, puisque ces SSD chez Kioxia et Intel ne sont proposés qu’en 800 Go, 1,6 To et 3,2 To. C’est environ cinq fois moins que les modèles de ScaleFlux qui s’appuient, eux, sur des cellules NAND standard. Le secret de la rapidité des SSD de ScaleFlux serait l’utilisation en amont de huit canaux PCIe 4.0, alors que les FL6 BiCS4 et P5800X utilisent quatre canaux. Le plafond théorique par canal PCIe 4.0 est de 2,5 Go/s.
ScaleFlux ne se prononce pas vraiment sur une accélération des débits grâce aux cœurs de sa puce SFX 3000 puisque ceux-ci accélèrent les algorithmes et non la transmission des données. Tout au plus, il indique que si la compression à la volée est activée la quantité d’accès en écriture grimpe à 1 million d’IOPS. Mais il s’agit d’un effet de bord : lorsque la compression est activée, les données en cours ne logent pas sur la NAND, mais dans la RAM DDR4 embarquée sur les SSD de ScaleFlux.
Les CSD 3000 et NSD 3000 sont présentés sous trois formats : U.2 (une unité de 2,5 pouces classique), HHHL AIC (format carte PCIe pour un placement perpendiculaire aux slots de la carte mère) et E1 (format barrette, pour un placement dans l’alignement de la carte mère). La carte CSP 3000 est quant à elle uniquement disponible au format HHHL AIC, évidemment.
ScaleFlux n’a pas encore dévoilé de tarifs pour ses SSD. Si le fabricant reconnaît que le prix des CSD 3000 sera nécessairement bien plus élevé que celui des SSD NVMe normaux, celui des NSD 3000 serait très compétitif par rapport au marché. LeMagIT croit comprendre que ScaleFlux entend mettre en avant une capacité logique, résultante de la compression matérielle, au moins deux fois plus élevée que la capacité brute des autres SSD sans le coût d’une NAND au moins deux fois plus volumineuse.