Comprendre : quelles architectures de stockage pour le Big Data ?
LeMagIT fait un tour d'horizon rapide des technologies de stockage en lice pour les applications analytiques de masse.
À l’ère du Big Data, la question se pose souvent de savoir quelles sont les architectures de stockage les mieux adaptées pour soutenir des processus analytiques à grande échelle. En fait, plusieurs technologies rivalisent aujourd’hui dans ce domaine, certaines parfois mieux adaptées à certains types de traitements que d’autres. Chacune a ses propres forces et faiblesses. Et en général, l’usage de l’une n’exclut pas celui d’une autre. En l’état actuel des développements, quatre technologies sont en lice pour les applications Big Data : le stockage massivement distribué, le NAS en mode Scale-out (ou NAS en cluster), les baies de stockage 100 % Flash et le stockage objet. En collaboration avec nos confrères de SearchStorage, LeMagIT a passé en revue les caractéristiques de ces quatre technologies :
Stockage distribué : les architectures de stockage distribuées sont souvent associées au « grid computing », car elles évoluent en parallèle de l’environnement de calcul. Dans ces architectures, les capacités de traitement sont co-résidentes des capacités de stockage sur les nœuds de la grille. C’est par exemple le cas pour les clusters HDFS (le file system d’Hadoop) ou pour certains clusters à base de la technologie Red Hat Storage. Ceph est aussi un bon exemple dans le monde Open Source.
Le principal avantage de ces architectures est leur faible coût, mais aussi la proximité du stockage des capacités de calcul. Cette affinité peut permettre d’accélérer considérablement les traitements si l’on parvient à localiser, les traitements pertinents à certaines données sur les nœuds où sont stockées ces données (ce qui est l’objectif de mapreduce dans Hadoop).
Dans certains cas, les déploiements se font en utilisant les emplacements de disques internes aux serveurs. Dans d’autres cas, on s’appuie sur des JBOD connectés aux différents nœuds.
Le Scale-out NAS est d’une certaine façon une variante du stockage distribué, à ceci prêt qu’à quelques rares exceptions, aucun traitement de calcul n’est effectué sur les nœuds de stockage distribués. La capacité CPU est intégralement dédiée à la gestion des fonctions de stockage. Les NAS en mode Scale-out ont des caractéristiques de performance uniques puisque l’ajout d’un nœud additionnel ajoute à la fois de la capacité, mais aussi de la connectivité additionnelle – donc de la bande passante -, ce qui les rend très attractifs pour le stockage de quantités massives de données avec des contraintes de performances fortes. Le Scale-Out NAS est ainsi massivement utilisé dans le monde du HPC et du calcul scientifique. Un autre avantage par rapport aux systèmes de stockage distribués est que les NAS en cluster disposent en général d’un environnement logiciel riche avec des fonctions avancées de gestion du stockage (snapshots, réplication, compression, déduplication de données) qui font encore défaut aux technologies de stockage distribué open source. Autant de fonctions importantes lorsque l’on manipule de grandes quantités de données avec des contraintes de performances, de capacité et de disponibilité fortes.
Les NAS Scale-out modernes, chez NetApp, EMC-Isilon, IBM mais aussi chez des spécialistes comme Data Direct Networks ou Panasas peuvent gérer des dizaines de petaoctets, parfois sur un seul file system ; ce qui est suffisant pour bien des applications d’entreprises. Leur support de protocoles ouverts, comme CIFS ou NFS, permet aussi l’ingestion facile de données depuis des sources variées. Petit bémol, la performance de ces systèmes se dégrade en général lorsqu’ils doivent stocker des millions de petits fichiers. Ils tendent en général à être mieux adaptés au stockage de fichiers de grande taille.
Les baies de stockage 100 % Flash souffrent de leur réputation de cherté. De ce fait, elles ne paraissent pas, au premier abord, des solutions bien adaptées pour les applications Big Data. En fait, dans certains cas bien précis, où il est important d’obtenir des résultats d’analyse en quasi temps-réel, les baies 100 % Flash sont incontournables. Elles sont par exemple un complément de choix pour les architectures In-Memory. Qui plus est, les architectures 100 % Flash ne sont pas nécessairement monolithiques. Il est possible dans certains cas d’assembler un cluster Hadoop avec des SSD. De même, les architectures Flash en cluster se multiplient. Un autre point à ne pas ignorer est que le prix des SSD et de la mémoire Flash en général ne cesse de baisser ; ce qui fait que l’écart de prix entre SSD et disques durs SAS se réduit, alors que les SSD ont un avantage majeur en matière d’IOPS. D’ailleurs, pour toutes les applications analytiques requérant un nombre massif d’IOPS et un faible temps de latence, les SSD sont aujourd’hui sans équivalent.
Le stockage objet n’en est qu’à ses débuts commerciaux, mais il pourrait bien avoir des atouts importants pour le Big Data. Tout d’abord comme les deux premiers types de stockage évoqués, il est fourni par un ensemble de nœuds distribués, capable de stocker des jeux de données contenant des milliards voire des billions d’objets. Ces jeux de données peuvent, qui plus est, être répliqués dans des géographies différentes, ce qui permet d’envisager d’exécuter des requêtes différentes sur les mêmes données en plusieurs endroits de la planète. Un autre atout est que le stockage objet est bien plus efficace que les autres modes de stockage en matière de protection de données. Les mécanismes d’erasure coding assurent en effet une protection supérieure à celle des mécanismes RAID sans avoir leurs inconvénients en termes de performance lors d’une défaillance (les reconstructions de données sont distribuées massivement à l’échelle du cluster et s’opèrent en quelques minutes contre quelques heures, voire quelques jours, dans certains cas pour les baies RAID). Un autre atout est que les systèmes de stockage objets modernes ont singulièrement progressé en terme de temps d’accès et peuvent offrir des bandes passantes et un nombre d’IOPS très élevés par rapport à des systèmes NAS du fait de leur échelle (un système objet peut avoir des milliers voire des dizaines de milliers de nœuds. A titre d’exemple, le dernier WOS 7000 de Data Direct Networks peut accueillir jusqu’à 500 000 disques durs (ce qui veut dire une aptitude à traiter des dizaines de millions d’IOPS en parallèle et plus si une partie de la grille est composée de SSD). Seul bémol, les temps d’accès restent plus élevés que ceux des autres technologies citées dans cet article, ce qui pose des problèmes pour les applications temps réel.
Un autre atout important des systèmes objets est qu’ils intègrent de plus en plus des modes d’accès variés. Par exemple, les données stockées sur une grille Scality peuvent désormais être consommées par des nœuds Hadoop (via une API REST spécifique). De même, en couplant ses systèmes objets Lattus (fruits d’un OEM d’Amplidata) avec son file system en cluster StorNext, Quantum permet d’envisager des applications originales dans certains secteurs verticaux comme celui de la videosurveillance ou de l’analyse d’images satellitaires. Ces évolutions ouvrent sans doute la porte à un usage bien plus large du stockage objet pour certaines applications analytiques, par exemple dans le cadre d’applications M2M massives où les données de capteurs se déverseraient dans une grille objet à grande échelle pour être ensuite traitées par un cluster Hadoop.
Avec la contribution de Phil Goodwin, consultant stockage, SearchStorage.com