MariaDB avec Galera Cluster : présentation du cluster
Le fonctionnement en continu et la disponibilité élevée sont indispensables aux solutions modernes de gestion de bases de données, au même titre que des possibilités de mise à l’échelle aussi flexibles que possible. C’est la seule façon de répondre aux exigences actuelles, avec des accès très fluctuants et des pointes de charge inattendues. Ce qui rend l’exercice périlleux, c’est de se conformer à ces attentes à l’aide du cloud tout en minimisant les coûts d’infrastructure.
Galera Cluster vous accompagne dans ce projet : cette solution cluster multi-maître pour les bases de données met en place une réplication très performante et synchrone pour alimenter tous les nœuds des serveurs d’une base de données en temps réel et avec les mêmes informations. Disponible, entre autres, pour MariaDB, Galera Cluster garantit une perte de données minimale et une grande sécurité en cas de panne. Découvrez dans notre article comment fonctionne la mise en place de clusters MariaDB avec Galera Cluster, les avantages de cette technologie et dans quels cas l’utiliser.
Qu’est-ce que Galera Cluster ?
Galera Cluster est une suite logicielle pour le système d’exploitation Linux permettant la mise en place et la gestion de clusters pour MySQL, XtraDB et MariaDB. Cette application de cluster constitue la base du moteur de stockage d’InnoDB et de son fork XtraDB. À titre expérimental, Galera Cluster supporte aussi le moteur MyISAM, utilisé depuis longtemps pour MySQL et MariaDB puisqu’il s’agit du prédécesseur d’InnoDB. Lors de l’enregistrement des données dans les différents nœuds de clusters indépendants, Galera Cluster utilise le principe de réplication synchrone : l’ensemble des processus de copie et des modifications appliqués aux données enregistrées est exécuté en même temps sur les unités de sauvegarde primaires et secondaires, afin que les données soient à jour à tout moment sur tous les nœuds et ne présentent aucune différence les unes des autres.
Un Galera Cluster se compose au minimum de trois nœuds (les développeurs recommandent en général un nombre impair). Si l’un des nœuds rencontre un problème pendant une transaction, par exemple à cause d’un problème de réseau ou d’un système défectueux, les deux autres nœuds constituent une majorité indispensable pour permettre, malgré tout, l’exécution réussie de la transaction.
Galera Cluster est prévu pour fonctionner avec les systèmes de gestion de bases de données MariaDB et MySQL. Retrouvez une comparaison détaillée de ces deux applications dans notre article MariaDB vs. MySQL.
Comment fonctionne un Galera Cluster pour MariaDB ?
Un cluster MariaDB basé sur Galera Cluster se distingue notamment par le fait que tous les nœuds du cluster affichent à tout moment le même niveau de mise à jour des données. La différenciation classique des serveurs de base de données employés, entre master (serveur en écriture) et slaves (serveurs en lecture seule) n’a plus cours avec ce logiciel de cluster : l’utilisateur peut écrire des données sur n’importe quel nœud de sauvegarde, car ces dernières seront automatiquement répliquées sur tous les autres composants du cluster. Cette propriété porte le nom de « multi-maître ».
Afin de sécuriser cet échange de données flexible, Galera Cluster administre ses serveurs à l’aide d’un processus de réplication synchrone, qui s’appuie sur l’échange de certificats. Lorsque des données sont répliquées, donc inscrites sur une des bases de données du cluster, deux principes fondamentaux s’appliquent avec le Galera Cluster de MariaDB :
- Chaque transaction sur une base de données se voit attribuer une séquence numérique unique. Avant d’autoriser les modifications correspondantes sur sa base de données, le nœud du cluster compare cette séquence numérique avec celle de la dernière transaction appliquée. Grâce à ce contrôle, tous les nœuds arrivent systématiquement au même résultat (« transaction acceptée » ou « transaction refusée »). Le nœud ayant initié la transaction le précise au client.
- À chaque transaction, toutes les répliques de la base de données sont actualisées. Si une transaction est acceptée suite à la certification, tous les nœuds appliquent la modification correspondante à leurs données. Si un nœud du Galera Cluster rencontre un problème technique, et uniquement dans ce cas, il sera temporairement exclu de la réplication synchrone.
À quoi ressemble la structure d’un cluster Galera ?
L’architecture interne d’un cluster Galera s’articule autour des quatre composants suivants :
- Système de gestion de bases de données : le SGBD est l’unité centrale du cluster. Chaque nœud est associé à un serveur de base de données correspondant. Comme évoqué, Galera Cluster supporte non seulement MariaDB, mais aussi MySQL et Percona XtraDB.
- wsrep-API : le wsrep-API définit et implémente l’interface et les responsabilités pour accéder aux serveurs de bases de données associés. De plus, wsrep régule la réplication des données. L’API met à disposition, entre autre, des wsrep hooks (liens vers les serveurs de bases de données pour la réplication des données) et la fonction « dlopen() » (permet la communication avec les liens ou « hooks »).
- Plug-in de réplication Galera : ce plug-in implémente le wsrep-API. Pour ce faire, il prépare une couche pour le processus de certification et une couche pour la réplication (protocole compris), sans oublier le cadre de communication groupée.
- Plug-ins de communication groupée : Galera Cluster fournit un grand nombre d’extensions pour implémenter des systèmes de communication groupée, comme le Spread Toolkit ou gcomm. Ces plug-ins sont basés sur le cadre de communication groupée.
Quels avantages présente un cluster MariaDB ?
Nous avons déjà mentionné l’avantage décisif d’un cluster Galera pour MariaDB dans cet article : cette technologie vous assure une sauvegarde flexible de vos données, tout en offrant une sécurité maximale en cas de panne et une haute disponibilité que l’on ne peut atteindre avec une configuration standard de MariaDB.
Grâce à la réplication synchrone, vous n’avez plus à vous inquiéter de l’état de mise à jour des unités de sauvegarde utilisées. Galera Cluster alimente automatiquement chaque unité associée à une base de données avec les modifications les plus récentes, ce qui rend obsolètes la copie à la main et la mise en place de stratégies de back-up fastidieuses. Le fonctionnement multi-maître permet également d’inscrire, de modifier ou de supprimer des données à partir de n’importe quel serveur de bases de données MariaDB associé. La possibilité de placer les nœuds à un endroit spécifique à proximité du client permet de minimiser la latence occasionnée.
Autre avantage du cluster MariaDB basé sur Galera Cluster : l’architecture supporte très bien le cloud. C’est la meilleure solution que vous pourrez choisir pour une mise à l’échelle flexible sur le cloud des ressources de vos bases de données. La répartition des données sur plusieurs centres de calcul ne pose elle non plus aucun problème, car chaque transaction dans Galera Cluster ne doit être envoyée qu’une seule fois à chaque centre de calcul.
IONOS vous propose directement un hébergement de serveur SQL sur mesure ! Choisissez votre solution serveur et hébergement pour votre système de base de données personnel avec MariaDB, MySQL ou MSSQL.
Cas d’utilisation : quand faut-il opter pour Galera Cluster ?
Au vu de ses propriétés et de ses avantages, le cluster Galera MariaDB s’avère remarquable pour administrer vos propres solutions de gestion de bases de données. Concrètement, cette configuration de cluster a démontré son utilité dans les cas suivants :
Applications de bases de données avec exigences élevées en matière de débit d’écriture
La répartition des processus d’écriture sur l’ensemble du cluster permet d’optimiser l’utilisation des ressources en écriture disponibles. Après l’exécution d’une transaction initiale du client, tous les nœuds auxquels cette transaction doit être transmise intègrent seulement les modifications comprises dans cette transaction. La méthode de réplication de Galera Cluster assure donc, dans l’ensemble, un débit d’écriture nettement plus rapide que celui de la configuration habituelle de votre base de données, ce qui rend la technologie des clusters particulièrement intéressante pour les applications avec un fort débit d’écriture.
Cluster sur WAN
Le principe de réplication synchrone de Galera Cluster fonctionne également sans problème sur un WAN (Wide Area Network) comme Internet. On constate cependant un petit delay (délai de transmission) proportionnel au temps de transmission total des paquets (RTT) du réseau. Ce délai porte uniquement sur le processus de confirmation des transactions de base de données entrantes. Un cluster MariaDB sur le cloud offrira par conséquent une solution particulièrement intéressante.
Disaster Recovery (reprise d’activité)
En lien étroit avec la sauvegarde et l’administration plus générales des mises à jour des données sur le cloud, citons le principe de Disaster Recovery, qui préconise de stocker les données dans un centre de calcul indépendant afin de disposer, en cas de panne, d’une image des données pour la restauration. Dans ce cas, Galera Cluster peut certes rediriger les données de réplication, mais ne permet pas leur modification par une transaction du client. Si la restauration s’avère nécessaire, la partition Disaster Recovery du cluster MariaDB est temporairement déclarée comme instance primaire afin de réduire au maximum le temps de défaillance.
Retrouvez des informations détaillées au sujet du Disaster Recovery dans notre article sur les plans de reprise d’activité informatique.