Stockage objet : 8 points pour bien comprendre

Si le stockage objet est l’une des tendances technologiques du moment, ce n’est pas une idée particulièrement nouvelle. Le concept a fait son apparition au milieu des années 90 et, en 2005, des alternatives sont arrivées sur le marché. La résistance des fournisseurs de systèmes de stockage fichier (NAS) et blocs (SAN) a cependant longtemps ralenti l’adoption du stockage objet.

 

Mais avec le succès actuel du système de stockage S3 d’Amazon Web Services, force est de constater que le stockage objet est désormais là pour durer et gagne énormément d’utilisateurs par rapport aux anciennes méthodes de stockage. Surtout, le stockage objet est bien adapté au nouvel environnement de données. Les données non structurées, qui incluent de gros fichiers multimédias et des objets dits Big Data, croissent à un rythme beaucoup plus rapide que les données structurées et, globalement, les données elles-mêmes augmentent à un rythme phénoménal.

L’expérience nous apprend que les systèmes blocs traditionnels deviennent complexes à gérer à une échelle relativement faible, et que le concept de création d’un pool unique de données n’est plus aussi performant quand le nombre d’appliances augmente, surtout si le pool dépasse les limites des différents types d’équipement. Les serveurs de fichiers (filers) fonctionnent avec des hiérarchies de dossiers de fichiers qui deviennent complexes quand il s’agit d’étendre le système, et ce alors que les milliers d’instances virtuelles actuelles rendent les systèmes de partage de fichiers carrément maladroits.

Vers des coûts de plus en plus faibles

Une des caractéristiques des instances de stockage objet est la distribution des objets sur tous les périphériques de stockage, ou au moins en sous-ensembles s’il y a un grand nombre de périphériques dans le cluster. Cela supprime une faiblesse de conception de l’approche type bloc / fichier, où la défaillance d’une appliance ou de plusieurs unités peut entraîner une perte de disponibilité des données ou même une perte des données.

Les magasins d’objets utilisent généralement un algorithme comme CRUSH pour répartir les morceaux d’objet de manière connue et prévisible. En couplant cette fonctionnalité avec de la réplication, et plus récemment avec le codage d’effacement, cela signifie que plusieurs nœuds ou disques peuvent tomber sans affecter matériellement l’intégrité des données ou les performances d’accès. L’approche par objet parallélise également efficacement l’accès à des objets plus grands, car un certain nombre de nœuds transféreront tous des éléments de l’objet en même temps.

Il existe à ce jour un grand nombre de fournisseurs de logiciels de gestion du stockage en mode bloc, tous pouvant être installés sur une grande variété de plates-formes matérielles COTS (commercial off-the-shelf, soit vendu sur étagère). Cela inclut la solution open source Ceph, soutenue par Red Hat. La combinaison d’un de ces logiciels et d’un équipement sur étagère à faible coût rend le stockage objet attrayant sur la base du prix par téraoctet, comparativement aux équipements NAS ou SAN propriétaires traditionnels.

L’arrivée du Software Defined Storage

Par ailleurs le stockage objets évolue pour absorber les autres modèles de stockage en offrant un modèle de « stockage universel » où les portails d’accès aux objets, aux fichiers et aux blocs communiquent tous avec le même pool de stockage d’objets bruts. À long terme, le stockage universel semble donc être la solution convergente pour l’ensemble de l’industrie.

Cette tendance est renforcée par la croissance du software defined storage (SDS). Le systèmes de stockage objet fonctionnent tous nativement avec un moteur de serveur standard, ce qui signifie que la transition d’un logiciel intégré à une appliance vers un logiciel virtualisé dans le pool d’instances est dans la plupart des cas triviale. Ce n’est certainement pas le cas pour les anciens NAS ou SAN. Pour systèmes de stockage objet, le SDS permet d’adapter facilement des services tels que la compression et la dé-duplication. Il ouvre également la voie à des services riches tels que l’indexation de données.

1. Qu’est ce qu’un objet ?

Un objet est un bout de données couplé à des métadonnées extensibles décrivant toutes sortes de choses sur ces données, toutes identifiées par un identificateur global unique (GUID – Globally Unique IDentifier). Ce morceau de données, c’est l’essence du stockage d’objets, puisqu’il peut s’agir de n’importe quoi : d’une ligne de base de données à un document Word en passant par un résultat quotidien de l’accélérateur du CERN. Le GUID est généralement un hachage de données et sert à garantir que les données sont intactes ou non altérées, ainsi qu’à identifier l’objet unique.

Les métadonnées sont un ensemble extensible de paramètres concernant les données. Ceux-ci peuvent définir la gestion du cycle de vie de l’objet, les contrôles d’accès, l’indexation du contenu et les relations entre ces données et d’autres données. Des métadonnées spécifiques à l’application peuvent également être créées.

Le fait que les objets puissent contenir n’importe quelle structure de données signifie que le stockage de fichiers et en mode bloc est effectivement un sous-ensemble, ce qui est un facteur important dans une perspective de « stockage universel ».

2. Qu’est ce qu’un système de stockage objet ?

Les systèmes de stockage objet, d’un point de vue théorique, sont des éléments logiciels. Ces systèmes stochent des objets et les identifient de manière unique, avec un GUID. Puis ils déterminent des groupes d’emplacements de stockage. Généralement, il existe plusieurs groupes qui peuvent se chevaucher sur les périphériques de stockage réels. Le logiciel gère l’ajout de plus d’emplacements de stockage (disques) ou s’attaque à de nouveaux disques et de nouveaux noeuds.

Les données sont ensuite écrites en les décomposant en morceaux, puis placées des dispositifs de stockage d’objets (OSD – Object Storage Devices) dans le groupe. Cette approche étend l’écriture et la lecture assez uniformément dans l’ensemble du pool de stockage.

Le matériel utilisé pour faire fonctionner des systèmes de stockage objet est basé sur du x64 ou de l’ARM. L’OSD peut être conçu de plusieurs façons. Cela va d’une appliance de type serveur avec 10 disques à des disques NVMe-over-Ethernet hébergés dans un JBOD et connectés directement au LAN.

Toutes ces options sont peu coûteuses et les solutions NVMe permettent d’utiliser une bande passante phénoménale. En règle générale, une configuration minimale comprend quatre appliances avec 40 disques, mais l’ajout d’espace ressemble beaucoup à la construction avec des Legos : il suffit d’ajouter plus de nœuds d’appliance et le logiciel assimile automatiquement le stockage supplémentaire dans le pool de stockage.

3. La performance

Les premiers systèmes de stockage objet étaient difficiles à optimiser et souffraient d’un haut niveau de surcharge et de faibles performances des disques durs. Cela a poussé le stockage objet dans le créneau du stockage secondaire pendant plusieurs années. Mais la technologie a changé de vitesse car le code de première génération a été réécrit pour la performance. Ensuite, côté rapidité, les LAN RDMA (Remote Direct Memory Access) et les disques SSD ont commencé à changer les latences constatées jusqu’alors.

Aujourd’hui, le stockage objet peut correspondre aux vitesses de des sytèmes de fichiers et de blocs. Mais nous sommes dans la phase d’adoption du NVMe, ce qui implique des E/S parallèles au niveau des disques, et un bond considérable des performances. Le stockage fichiers et blocs sur les systèmes de stockage objet permettra également de tirer parti de ces avantages, mais le stockage objet est le grand gagnant et nous pouvons nous attendre à ce qu’il éclipse des méthodes plus traditionnelles.

4. Les fournisseurs de systèmes de stockage objet

Il existe un large éventail de fournisseurs de logiciels de stockage d’objets. Sur le plan commercial, Caringo et Scality sont les leaders, mais ils sont en concurrence avec Ceph, un projet open source soutenu par Red Hat et une très grande communauté de contributeurs. OpenStack a aussi un projet open source : Swift, qui est en concurrence avec sur les installations OpenStack avec Ceph. L’installation d’un logiciel de stockage objet sur un nœud de serveur est simple à réaliser.

Les principaux fournisseurs de services de cloud computing comme AWS et Google ont leurs services de stockage objet. AWS S3 est de loin le plus grand pool de stockage au monde.

La plupart des fournisseurs de serveurs / de stockage et une multitude de startups proposent des systèmes de stockage objet avec du matériel et des logiciels déjà intégrés. Beaucoup sont basés sur Ceph, surtout parmi les startups, mais Scality et Caringo apparaissent aussi avec les grands fournisseurs de plate-formes.

5. Évolutivité

La question de l’échelle dans le stockage est un facteur de deux choses. Premièrement, il doit y avoir un système d’adressage pratique capable de gérer un grand nombre d’objets. La méthode GUID dans le stockage d’objets répond clairement à ce besoin et les concepts de buckets et de partitions pour séparer les espaces de travail des utilisateurs étendent la portée du système de stockage au-delà de tout besoin à court terme dans un cluster de stockage.

Un problème plus concret consiste à trouver et à gérer les identités des objets à cette échelle. L’idée d’une base de données centrale de GUID peut conduire à des latences de minutes ou d’heures, et un débit d’escargot. Toutes les systèmes de stockage objet qui fonctionnent évitent les goulets d’étranglement en utilisant un algorithme déterministe pour placer les données. Et par ailleurs en distribuant des informations de pointeur aux nœuds contenant le point de départ dans chaque thread d’objet.

En d’autres termes, lorsque vous augmentez le stockage, vous ajoutez de la puissance de traitement.

6. Cas d’utilisation du stockage objet

Un système de stockage objet est idéal pour stocker des données qui sont rarement modifiées, comme des films et d’autres médias, des pages Web et tout contenu fixe. Le Big Data est un autre domaine où les systèmes de stockage objet sont une bonne solution, à la fois en raison de leur capacité à évoluer et à gérer des données faiblement structurées. Les données scientifiques telles que les simulations, les résultats expérimentaux et les informations de télémétrie s’intègrent bien à cause de leur taille et de leur nature généralement non structurée. Traditionnellement, les systèmes de stockage objet sont aussi utilisés pour la sauvegarde et l’archivage, qui sont une autre forme de données statiques.

L’Internet des objets va déplacer la création de données vers des capteurs et dans le même temps les éloigner des mécanismes structurés comme les PC et même les téléphones. Cela va conduire à une croissance massive des données, tout au moins si les experts comme IDC et Gartner ont raison ! Et là encore, les systèmes de stockage objet sont les mieux adaptés.

L’Internet des objets va déplacer la création de données vers des capteurs et autres et loin des mécanismes structurés tels que les PC et même les téléphones, conduisant à une croissance massive des données, au moins si les experts comme IDC et Gartner ont raison! Encore une fois, les magasins d’objets sont les mieux adaptés.

Comme les systèmes de stockage objet offrent des méthodes d’accès universelles qui incluent des approches par blocs et par fichiers, les données bien structurées s’adapteront également au modèle de stockage objet.

7. SDS (Software Defined Storage) et stockage objet

Le Software Defined Storage (SDS) est un nouveau moyen de découpler le logiciel de contrôle des périphériques de stockage sous-jacents. La plupart des logiciels de stockage objet étant relativement nouveaux, ils peuvent être facilement remodelés dans le moule SDS. Et exécuter un système de stockage objet en tant que pool de services virtuels signifie que la scalabilité et l’agilité sont améliorés.

8. Le cloud computing

La plupart des systèmes de stockage dans le cloud utilisent le modèle objet. La technique de réplication peut facilement être déployée via une dispersion géographique pour assurer un système qui résiste par exemple aux catastrophes naturelles. AWS S3, par exemple, possède deux répliques de n’importe quel objet dans sa zone primaire, mais conserve une troisième copie dans une autre zone pour couvrir les pannes au niveau de la zone.

La nouvelle approche de codage par effacement permet encore plus de robustesse, avec la possibilité de gérer les pannes de zone ou la perte de nombreux périphériques de stockage objets dans la foulée.

Le stockage objet dans le cloud est très peu coûteux, ce qui a conduit à l’énorme croissance du modèle objet dans le stockage dans le cloud au cours de la dernière décennie. Les travaux à venir incluent le partage de données de cloud public et privé dans un modèle de cloud hybride suffisamment efficace pour couvrir simultanément les deux espaces de cloud.

ZDNet