MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Migration de Maxscale vers l'équilibreur de charge ProxySQL

Un équilibreur de charge de base de données, ou proxy, est un service intermédiaire entre la couche application et la couche base de données. L'application se connecte au proxy de base de données et le proxy transfère la connexion à la base de données. L'utilisation d'un proxy de base de données présente certains avantages, par exemple :diviser les requêtes en lecture et en écriture, mettre en cache les requêtes, distribuer les requêtes en fonction d'un algorithme de routage, réécrire les requêtes et faire évoluer votre charge de travail en lecture seule. Un proxy de base de données résume également la topologie de la base de données (et toute modification) pour la couche d'application, de sorte que les applications n'ont besoin de se connecter qu'à un seul point de terminaison.

Il existe différents proxys de base de données, des options commerciales aux options open source, par exemple, HAProxy, Nginx, ProxySQL, Maxscale, etc. Dans ce blog, nous expliquerons comment migrer les proxys de base de données de Maxscale vers ProxySQL avec l'aide de ClusterControl.

Architecture actuelle avec Maxscale

Envisagez une architecture de base de données hautement disponible qui se compose de 3 nœuds dans un cluster Galera et, en plus, de 2 services Maxscale et Keepalived pour la haute disponibilité du proxy de base de données. Galera Cluster est des réplications "virtuellement" synchrones, il utilise une certification basée sur la réplication garantissant que vos données seront disponibles sur tous les nœuds. L'architecture actuelle est illustrée ci-dessous :

Maxscale est un proxy de base de données de MariaDB Corporation, qui agit comme middleware entre les applications et bases de données.

Voici l'architecture topologique des équilibreurs de charge Galera Cluster et Maxscale dans ClusterControl. Vous pouvez déployer tout cela directement à partir de ClusterControl ou importer des bases de données et des nœuds proxy existants dans ClusterControl. Vous pouvez voir la topologie de votre base de données dans l'onglet Topologie.

Déployer ProxySQL et Keepalived

ProxySQL est un autre proxy de base de données de ProxySQL, qui fournit certaines fonctionnalités telles que la mise en cache des requêtes, les réécritures de requêtes, les requêtes divisées pour l'écriture et la lecture en fonction du modèle de requêtes. Pour déployer ProxySQL dans ClusterControl, vous devez aller dans Gérer -> Équilibreurs de charge dans votre cluster. ClusterControl prend en charge quelques proxys de base de données différents; HAProxy, ProxySQL, MaxScale.

Choisissez ProxySQL, et la page ci-dessous s'affichera :

Nous devons choisir l'adresse du serveur où ProxySQL sera installé. Nous pouvons soit installer sur les nœuds existants ou si vous souhaitez avoir un nœud dédié pour ProxySQL, il suffit de taper l'adresse IP dans la liste. Remplissez le mot de passe pour les utilisateurs d'administration et de surveillance, ajoutez l'utilisateur de l'application dans ProxySQL ou vous pouvez configurer plus tard. Activez les serveurs de base de données à inclure dans l'ensemble d'équilibrage de charge dans ProxySQL. Cliquez sur le bouton Déployer ProxySQL. Nous avons besoin d'au moins 2 ProxySQL pour une haute disponibilité.

Si nous oublions d'ajouter un utilisateur de base de données dans ProxySQL lors de l'installation, nous pouvons le configurer dans l'onglet utilisateur ProxySQL comme indiqué ci-dessous :

ProxySQL exige que les utilisateurs de la base de données soient également configurés dans ProxySQL.

Après le déploiement de ProxySQL, nous continuons à configurer le Keepalived sur chaque hôte ProxySQL. Les services Keepalived agiront en tant que rôles maître/sauvegarde sur les instances ProxySQL. Le service Keepalived utilise VIP (adresse IP virtuelle), donc l'application se connectera à une adresse IP virtuelle sur le rôle de maître et transmettra la connexion au ProxySQL local. Si les services échouent, le VIP est automatiquement transféré vers un autre nœud.

Le déploiement de keepalived dans ClusterControl se fait sur la même page que le proxy de base de données, il vous suffit de choisir l'onglet Keepalived. Choisissez le type d'équilibreurs de charge, qui est ProxySQL, puis ajoutez le ProxySQL actuel pour Keepalived1 et Keepalived2. Remplissez l'adresse IP virtuelle et l'interface réseau. Et enfin, cliquez sur le bouton Déployer Keepalived.

L'exécution de deux ProxySQL avec les services Keepalived nous offre une couche proxy haute disponibilité. Dans ClusterControl, il est affiché dans la vue de topologie ci-dessous :

Basculement

La commutation du trafic est vraiment simple, il suffit de changer la connexion de l'adresse IP dans la couche application pour utiliser l'adresse IP virtuelle pour ProxySQL, puis de surveiller le trafic via ProxySQL.