Stockage : l’Autrichien Linbit propose un SDS 100 % européen
La solution de Linbit se base sur plusieurs composants Open Source intégrés à Linux, et dont deux d’entre eux sont même développés depuis plus de 20 ans par le fondateur de la startup lui-même.
Un système de stockage distribué Open source qui fonctionne en répliquant les blocs logiques d’un serveur maître vers les blocs physiques d’un pool de disques situés ailleurs sur le réseau. Telle est la manière dont la startup autrichienne Linbit présente Linbit SDS, un nouveau SDS qui vient concurrencer SANsymphony et vSAN des Américains DataCore et VMware, avec la particularité d’être nativement conçu pour fonctionner sur Kubernetes.
Le MagIT a rencontré Linbit à l’occasion d’un événement IT Press Tour qui avait pour intention de présenter à la presse des startups exclusivement européennes qui innovent dans le domaine du stockage. Ces startups sont ainsi censées mieux répondre aux besoins de souveraineté des entreprises de l’UE. Un SDS tel que celui que propose Linbit est un système qui mime une baie SAN à partir d’un serveur et des disques auxquels il accède. Outre coûter moins cher qu’une vraie baie SAN, puisque basé sur des équipements communs, un SDS présente aussi généralement l’intérêt de pouvoir étendre plus facilement la capacité de stockage.
Techniquement, Linbit SDS est l’assemblage d’une multitude de couches système que Philip Reisner, le PDG de la startup (en photo), développe depuis plus d’une vingtaine d’années. Couches qui se retrouvent au fil du temps intégrées dans les différentes distributions Linux. L’avantage de la solution est donc le même que celui des systèmes Open source comme Linux ou Kubernetes : faire office de standard, loin des technologies qui verrouillent les entreprises sur un fournisseur en particulier.
DRBD, le composant au niveau du noyau Linux
Au plus bas niveau, il y a le module DRBD, un pilote intégrable au noyau Linux. Déjà utilisé dans les déploiements de serveurs Linux en haute disponibilité, DRBD recopie les blocs d’un système de stockage du serveur hôte vers un ou plusieurs autres systèmes de stockage. Une sorte de RAID 1 à cheval entre différents contrôleurs de disque. L’intérêt est d’avoir en temps réel une ou plusieurs copies redondantes au moyen d’une écriture en Y. DRDB chapeaute un maximum de 32 contrôleurs. Les répliques servent classiquement de copies de secours ou de clones sur lesquels on répartit la charge.
Fait notable, le serveur source n’intègre pas nécessairement lui-même des disques. L’accès aux données peut se faire via les différentes baies de disques externes auxquelles il a accès. Dans ce cas, le serveur qui exécute DRBD – dit « le proxy » – doit disposer d’une grande quantité de RAM pour faire office de cache.
Selon Philip Reisner, DRBD serait très utilisé dans les déploiements, car il reste à ce jour la solution la plus rapide, avec un record récemment affiché de 14,8 millions d’IOPS.
Dans ses dernières évolutions, DRBD sait même répliquer ses blocs au travers de liens NVMe/RoCE. Mieux, il tient compte de la présence de plusieurs cartes réseau pour accélérer ou paralléliser les transferts. Précédemment, il gérait les liens Infiniband, classiques dans les supercalculateurs, et iWarp, une manière de communiquer des blocs en RDMA (sans couche protocolaires) via des câbles Ethernet.
DRBD, à présent en version 9, gère aussi la réplication asynchrone, plus adaptée lorsque la cible est située loin, typiquement sur un site distant relié au premier par une fibre noire.
Linstor, un véritable SAN distribué
Au-dessus de DRBD, Linbit a développé le système de stockage en mode bloc Linstor. En clair, celui-ci sert à présenter aux serveurs l’ensemble des baies de stockage gérées par le DRDB du serveur qui l’héberge, comme un ou plusieurs volumes en mode bloc. A la manière des baies SAN, il dispose de fonctions de stockage de haut niveau : gestion des volumes logiques, snapshots (avec sauvegardes comprises vers services de stockage objet S3), monitoring, etc.
Dans les faits, Linstor est le contrôleur d’un système de stockage distribué. Mais, comme Ceph, il supporte, en plus des baies de disques rattachées à son serveur, d’intégrer dans son pool de stockage, d’autres serveurs avec des disques propres, eux-mêmes équipés d’un agent Linstor « satellite ». En tout, Linstor gère jusqu’à 650 satellites et jusqu’à 10 000 volumes logiques.
Le logiciel Open source Linstor prend le nom Linbit SDS à partir du moment où il est livré avec des pilotes pour être géré par des systèmes de virtualisation des applications ou des serveurs. Les principaux systèmes de virtualisation pour lesquels il existe un pilote Linstore sont OpenStack (machines virtuelles), via un pilote Cinder, et Kubernetes (containers), via un pilote CSI. Cela dit, Linbit a développé des pilotes pour quantité d’autres systèmes : Nomad (une alternative à Kubernetes), Apache CloudStack (une alternative à OpenStack), OpenNebula, Proxmox VE, ou encore XCP-ng.
Entre les deux, LVM ou ZFS
Pour être tout à fait complet sur le plan technique, précisons qu’entre DRBD et Linstor, Linbit a cousu des liens qui passent par d’autres couches Linux. À commencer par les pilotes Open-iSCSI qui permettent de gérer en mode bloc les disques d’un serveur satellite relié au serveur proxy par une liaison TCP/IP.
Dans l’écosystème des distributions Red Hat, Linbit utilise LVM, ce module du noyau qui permet de mapper les blocs de stockage d’autres serveurs sur le RAID d’un serveur principal. LVM peut lui-même enrichir la solution avec ses modules de snapshots, de déduplication (élimination des blocs redondants pour limiter la taille des données) et de mise en cache sur SSD ou sur mémoire NVDIMM (pour accélérer les accès aux disques durs).
Dans l’écosystème Ubuntu, Linbit se base sur ZFS, qui reprend les fonctions de mapping de LVM et apporte une fonction alternative de mise en cache sur SSD. ZFS amène également la gestion des volumes distribués (appelés ici zVols) et des fonctions de Thin Provisioning (permettre à plusieurs volumes d’accéder à la même capacité de stockage, mais ne l’attribuer ensuite qu’à celui qui s’en sert véritablement).