L’élan vers le stockage informatique
10 min readL’industrie informatique s’efforce toujours de surmonter les goulots d’étranglement, et l’un des plus importants est l’entrée/sortie (E/S). Qu’il s’agisse de la bande passante mémoire, de la bande passante réseau ou de la vitesse de rafraîchissement d’un écran haute résolution, la vitesse à laquelle les données peuvent être copiées par le CPU (unité centrale ou microprocesseur) vers un périphérique externe limite les performances globales.
Les nouvelles générations de RAM dynamique (mémoire à accès aléatoire) améliorent les E/S entre le CPU et la mémoire principale de l’ordinateur. Les GPU (unités de traitement graphique) prennent en charge le traitement graphique, réduisant les E/S nécessaires au rendu des graphiques tout en augmentant considérablement les performances, en particulier dans les jeux informatiques.
Mais l’immense puissance du GPU a également conduit à de nouveaux domaines d’application où des calculs hautement parallélisés sont nécessaires. Un GPU accélérera l’apprentissage automatique et les moteurs d’inférence pour une prise de décision basée sur l’intelligence artificielle (IA).
Existe-t-il un cas pour le traitement des données en stockage ?
Les logiciels fonctionnent sur des données et les données sont souvent considérées comme la « nouvelle huile ». Il est donc logique de placer les données aussi près que possible de l’endroit où elles sont traitées, afin de réduire la latence pour les tâches de traitement gourmandes en performances. Certaines architectures nécessitent de gros morceaux de stockage de type mémoire situés à proximité de la fonction de calcul, tandis qu’à l’inverse, dans certains cas, il est plus logique de déplacer le calcul plus près du stockage en masse.
La croissance des données a conduit certains dans l’industrie à se demander si les périphériques de stockage peuvent être utilisés d’une manière analogue au GPU, pour accélérer les tâches de traitement des données. C’est le domaine du stockage informatique, un terme utilisé pour décrire une combinaison de logiciels et de matériel pour décharger et alléger les contraintes sur le calcul, la mémoire et le stockage existants, dans le but d’améliorer les performances des applications et/ou l’efficacité de l’infrastructure.
Plus tôt cette année, Antonio Barbalace, maître de conférences à l’Institute for Computing Systems Architecture de l’Université d’Édimbourg, a publié un article, co-écrit avec Microsoft Research, Stockage informatique : où en sommes-nous aujourd’hui ?, en regardant l’état actuel du stockage de calcul.
« Pouvons-nous faire quelque chose avec le stockage ? » dit-il, soulignant que les organisations investissent de grandes quantités de données, qui doivent ensuite être traitées. « Par exemple, les bases de données sont extrêmement volumineuses », ajoute-t-il. « Ils copient les données des périphériques de stockage pour les traiter en RAM. Il faut beaucoup de temps pour déplacer une base de données en mémoire.
Il existe donc un cas valable pour exécuter une requête de base de données sur le périphérique de stockage, afin d’éviter le goulot d’étranglement d’E/S lorsque les données sont copiées dans les deux sens depuis le périphérique de stockage vers la RAM de l’ordinateur.
Certaines tâches sont déjà exécutées sur les contrôleurs de stockage utilisés pour gérer les périphériques physiques tels que les baies de disques, explique Matt Armstrong-Barnes, CTO chez HPE. « La déduplication, la compression et la décompression sont déjà gérées par les baies de stockage », dit-il. De telles utilisations ne sont pas classées comme stockage de calcul, mais elles illustrent comment les contrôleurs de stockage deviennent plus intelligents.
Accélération matérielle
Mais pour Barbalace, le stockage informatique a des aspirations plus élevées. Il dit qu’un périphérique de stockage informatique pourrait exécuter des opérations simples sur les données pour réduire la quantité de données à envoyer au processeur. Le traitement des données à la périphérie, comme sur un appareil Internet des objets (IoT), est l’un des domaines d’application possibles, où les données des capteurs sont transmises directement à un périphérique de stockage. Le processeur de l’appareil de périphérie serait alors alerté au fur et à mesure qu’il y avait une anomalie ou à intervalle de temps régulier, pour télécharger les données du capteur dans le cloud.
Certains fabricants ont développé des dispositifs SSD intelligents basés sur des circuits intégrés spécifiques à l’application (ASIC) pour accélérer des fonctions fixes, telles que des algorithmes de transcodage vidéo, qui s’exécutent directement sur les appareils.
Une autre option est l’utilisation de réseaux de portes programmables sur le terrain (FPGA) pour accélérer les fonctions fixes. Xilinx a développé une plate-forme basée sur FPGA, qui est utilisée dans le périphérique de stockage informatique SmartSSD de Samsung.
La société a annoncé une augmentation de 20% de son activité de datacenter pour le quatrième trimestre 2021 et le stockage a été l’un des domaines de croissance. Le dossier de Xilinx au quatrième trimestre 2021 montre que la croissance annuelle des revenus est due à l’adoption par ses clients hyperscale des charges de travail de calcul, de mise en réseau et de stockage.
« Xilinx maintient de solides engagements avec les hyperscalers pour fournir des solutions pour le calcul de l’IA, l’accélération vidéo, la mise en réseau composable et le stockage informatique », a déclaré la société dans ses états financiers pour le quatrième trimestre 2021.
L’un de ses partenaires, Lewis Rhodes Labs, propose ce qu’il décrit comme une recherche de cybercriminalité dans un appareil de stockage. Il s’agit d’un appareil de moteur de recherche d’expressions régulières, qui, selon la société, a été optimisé pour la détection d’anomalies. Selon Lewis Rhodes Labs, l’appliance accélérée par FPGA, équipée de 24 SmartSSD, peut rechercher 96 To de stockage à un débit de 60 Gbit/s, fournissant des résultats en moins de 25 minutes.
NGD Systems est une autre entreprise souvent mentionnée dans les conversations sur le stockage informatique. Il propose un SSD intelligent basé sur le processeur ARM, ce qui signifie que ses produits peuvent utiliser le système d’exploitation Linux sur lequel des algorithmes plus généraux peuvent ensuite être exécutés.
En février 2020, NGD Systems a annoncé une levée de fonds de série C de 20 millions de dollars pour soutenir et accélérer la production et le déploiement de ce qu’il prétend être le premier disque de stockage informatique NVMe (mémoire non volatile express) au monde. Les domaines d’application incluent la fourniture d’un moyen d’exécuter l’IA et l’apprentissage automatique au sein de l’appareil où résident les données.
Booking.com utilise cette technologie dans ses propres centres de données. La puissance et la latence d’écriture sont des mesures clés du centre de données dans les centres de données du site Web de voyage.
Peter Buschman, Product Owner, stockage chez Booking.com, déclare : « Nous avons trouvé que les disques NGD Systems étaient les meilleurs de leur catégorie en ce qui concerne cette combinaison de caractéristiques. La latence, en particulier, était toujours faible pour un appareil avec une si petite consommation d’énergie. La puissance, et non l’espace, étant notre plus grande contrainte et l’impact environnemental étant une préoccupation croissante, cette technologie est très prometteuse pour une utilisation dans les environnements de datacenter de nouvelle génération.
Le stockage informatique ne se limite pas à ajouter des fonctionnalités intelligentes directement à un SSD. Tout comme les cartes graphiques équipées de GPU sont utilisées pour accélérer les applications optimisées pour le calcul parallèle, une carte d’extension de stockage informatique pourrait être branchée sur une carte mère de PC pour accélérer certaines fonctions de traitement de données.
Programmation du stockage de calcul
Dans l’article qu’il a co-écrit avec Microsoft Research, Barbalace a examiné comment les applications peuvent être adaptées à tirer parti du stockage informatique. Il dit qu’il existe de nombreux algorithmes qui peuvent être classés comme des flux de données. Un exemple est AWS Lamda, qui est utilisé pour traiter les flux de données. « Une application peut décomposer les données pour les transmettre à plusieurs parties », dit-il. « L’un d’entre eux pourrait être affecté au stockage informatique. »
Par exemple, une charge de travail d’IA peut être divisée de sorte que certaines parties s’exécutent directement sur le stockage de calcul, tandis que d’autres utilisent le processeur. Les charges de travail de calcul hautes performances hautement distribuées, telles que les prévisions météorologiques, peuvent également tirer parti du stockage de calcul. « La question est de savoir si les données peuvent être traitées plus efficacement sur un périphérique de stockage informatique », explique Barbalace.
Cela s’applique à la fois aux données sur site et hébergées dans le cloud. Un exemple récent d’Amazon Web Services (AWS) illustre comment le traitement des données peut être rapproché de l’endroit où il est stocké pour gagner en efficacité. Bien qu’il ne s’agisse pas d’un stockage strictement computationnel, dans un blog publié en mars 2020, les architectes AWS David Green et Mustafa Rahimi ont expliqué comment une fonctionnalité du stockage cloud S3 appelée S3 Select pourrait être utilisée pour exécuter des requêtes SQL directement sur les données stockées dans le cloud Amazon.
Ils ont écrit : « Les clients pouvaient télécharger des données directement sur S3 à l’aide d’AWS SFTP. [secure shell file transfer protocol] puis interrogez les données à l’aide de S3 Select. Ce travail peut être déclenché automatiquement par une exécution AWS Lambda après un nouveau CSV [comma separated value] l’objet est téléchargé sur S3 avec les notifications d’événement S3. La recherche dans vos données à l’aide de S3 Select peut potentiellement vous faire économiser du temps et de l’argent pour parcourir les données d’autres manières.
L’article de Barbalace et Microsoft couvre également deux autres options de programmation du stockage informatique. La mémoire partagée est une technique souvent utilisée dans le matériel multiprocesseur pour permettre à différents processeurs de travailler sur le même ensemble de données. Cette technique peut également être appliquée au stockage informatique, si le logiciel système est modifié en conséquence.
L’informatique client/serveur est la troisième catégorie de stockage informatique que Barbalace identifie dans ses recherches. Un article de NGD Systems et de chercheurs de l’Université de Californie et de l’Université de Téhéran, publié dans le Journal du Big Data en 2019, discuté de la façon dont le stockage informatique pourrait s’appuyer sur l’approche hautement distribuée du stockage et du traitement des données que Hadoop MapReduce utilise avec ses DataNodes, qui sont utilisés pour stocker et traiter les données.
« Les périphériques de stockage informatique compatibles Hadoop peuvent jouer simultanément le rôle d’unités de stockage rapide pour les DataNodes Hadoop conventionnels et les DataNodes compatibles avec le traitement en stockage, ce qui entraîne une augmentation de la puissance de traitement », ont écrit les auteurs du rapport.
Défis et orientation future
Il est encore tôt pour le stockage informatique. L’analyste principal de CCS Insight, Bola Rotibi, pense que l’un des défis est de savoir comment les gestionnaires de stockage évoluent en programmeurs. « Les gens du stockage ne font pas beaucoup de programmation », dit-elle.
Armstrong-Barnes de HPE n’est pas convaincu que les SSD intelligents et le stockage informatique obtiendront le même succès que les GPU dans l’informatique grand public. « Le pétrole ne se mélange pas très bien et c’est le défi lorsque l’on ajoute des charges de travail de science des données à partir de différents endroits », dit-il.
Pour Barbalace, un domaine qui n’est toujours pas résolu est la multi-location, au fur et à mesure que le stockage informatique est fourni à la demande par les fournisseurs de cloud public. Étant donné que les données sont stockées dans le cloud public sur plusieurs pools de stockage, le stockage de calcul peut devoir s’exécuter sur un sous-ensemble spécifique de données qui peut être réparti sur différents serveurs physiques.
Malgré ces défis, la raison pour laquelle les gens pensent au stockage informatique est la croissance exponentielle des volumes de données. « Aujourd’hui, les données sont stockées de certaines manières uniquement en raison de l’évolution des architectures de processeurs », explique Adrian Fern, fondateur et directeur technique de Prizsm Technologies. “Mais il n’est pas adapté à l’objectif lorsqu’il s’agit d’accéder aux volumes de données disponibles actuellement et à la croissance exponentielle que nous connaîtrons à l’approche de l’âge quantique.”
Ainsi, alors qu’il n’en est qu’à ses débuts pour le stockage informatique, l’informatique quantique grand public en est également à un stade précoce de développement. Cependant, à mesure que ces deux domaines de l’informatique évoluent, le stockage informatique peut être nécessaire pour suivre le rythme appétit de traitement d’un ordinateur quantique.