Skip to Content

Qu’est-ce que la haute disponibilité MySQL ?

La haute disponibilité MySQL est une option que vous pouvez sélectionner pour permettre à votre base de données MySQL de demeurer disponible en cas de panne ou d’interruption. Cette fonctionnalité vous permet de définir des exigences de disponibilité plus strictes et une tolérance de perte de données nulle. Dans cet article, nous allons clarifier le concept général de haute disponibilité et expliquer le fonctionnement de cette option dans MySQL. 

Qu’est-ce que la haute disponibilité ?

La haute disponibilité désigne la capacité d’un système ou service à continuer de fonctionner et à demeurer disponible malgré une défaillance ou une panne. Un système hautement disponible est un moyen pour les organisations d’obtenir la garantie que leurs systèmes et applications stratégiques demeurent constamment opérationnels. Cette disponibilité se révèle tout particulièrement cruciale dans certains secteurs comme la santé, la finance et l’aviation, où la moindre défaillance d’un système critique peut entraîner de lourdes conséquences.

La haute disponibilité est généralement exprimée en pourcentage de temps disponible défini par des accords de niveau de service (SLA), sachant qu’un score de 100 représente un système qui ne subit jamais la moindre défaillance. Il est pratiquement impossible d’atteindre un tel score, c’est pourquoi la plupart des organisations visent les « cinq neuf », c’est-à-dire une disponibilité de 99,999 %.

Comment fonctionne la haute disponibilité dans MySQL

Un système hautement disponible doit pouvoir être restauré instantanément en cas de panne. Une architecture haute disponibilité s’articule autour de trois composantes de base qui interagissent pour garantir la capacité de restauration et la haute disponibilité :

Détection des pannes

MySQL intègre une option de haute disponibilité qui permet aux applications de respecter des exigences de disponibilité plus élevée (avec une tolérance de perte de données nulle). Lorsque cette option est activée, le système MySQL crée trois instances dans différents domaines de défaillance, ou zones de disponibilité.

Les données sont répliquées sur ces trois instances à l’aide de la réplication de groupe MySQL, et l’application se connecte à l’instance primaire pour lire et écrire des données dans la base de données. Si une défaillance se produit, le système déclenche en quelques secondes un basculement automatique sur une instance secondaire.

Basculement

Le basculement est un mécanisme qui consiste à transférer des services vers une instance répliquée. Si plusieurs instances de sauvegarde sont disponibles, le mécanisme de basculement choisit celle qui convient le mieux pour le transfert sur le nœud primaire. 

Mécanisme de redirection

Après le basculement sur une instance secondaire, la fonction de haute disponibilité redirige l’ensemble des applications et connexions utilisateur vers le nouveau nœud primaire. Elle redirige également toutes les requêtes entre l’ancien nœud primaire et la nouvelle base de données primaire. 

Haute disponibilité MySQL : temps disponible

Le temps disponible désigne la durée pendant laquelle un système est disponible et opérationnel ; il est exprimé en pourcentage du temps total pendant lequel le système doit logiquement fonctionner. Un temps disponible élevé signifie que le système est disponible et qu’il fonctionne comme prévu la plupart du temps. 

Le temps disponible que vous pouvez espérer obtenir avec les différents niveaux de haute disponibilité MySQL dépend de la solution de haute disponibilité spécifique que vous déployez.

Réplication MySQL

La réplication MySQL vous permet de configurer plusieurs serveurs pour assurer la redondance et le basculement afin de garantir des temps disponibles plus élevés qu’un serveur MySQL qui n’intègre pas de capacité de haute disponibilité. Une configuration maître-esclave utilise un seul serveur qui accepte les lectures et les écritures, et un ou plusieurs serveurs esclaves en lecture seule. Les données du serveur maître sont répliquées de manière asynchrone sur les serveurs esclaves.

Pour mettre en œuvre le mécanisme de basculement, vous devez configurer un ou plusieurs serveurs esclaves de secours que vous pourrez promouvoir au rang de maîtres en cas de défaillance. En règle générale, le basculement repose sur un processus manuel au cours duquel vous devez promouvoir le nœud esclave sur le nœud maître en modifiant son état pour le faire passer en mode lecture/écriture afin qu’il accepte les requêtes.

Comme le basculement est effectué manuellement, ce processus est long et induit un risque d’erreur humaine, ce qui peut conduire à allonger la durée de la panne. La réplication MySQL utilise également une réplication asynchrone ; en cas de défaillance du maître, cela signifie que les transactions validées sur le maître peuvent ne pas avoir été encore répliquées sur les serveurs esclaves. En cas de perte de données critiques, les données doivent être restaurées, ce qui allonge encore la durée d’indisponibilité du système.

Réplication de groupe MySQL

La réplication de groupe MySQL vous permet d’atteindre des temps disponibles plus élevés que la réplication MySQL. Cette fonctionnalité vous permet de configurer plusieurs serveurs MySQL dans un groupe, en désignant un serveur comme serveur primaire et en configurant les autres comme serveurs secondaires. Chaque serveur du groupe conserve une copie des données et utilise la réplication pour assurer la synchronisation des copies. 

Si le serveur primaire tombe en panne, les serveurs secondaires du groupe détectent automatiquement la défaillance et déclenchent le processus de basculement. L’un des serveurs secondaires est automatiquement promu comme nouveau serveur primaire et commence à traiter les requêtes des clients. Dès lors, les autres membres secondaires du groupe reçoivent les mises à jour du nouveau serveur primaire et continuent à traiter les demandes de lecture client.

Lorsque le serveur en panne est de nouveau opérationnel, il rejoint automatiquement le groupe en tant que serveur secondaire.

Avec la réplication de groupe MySQL, la détection des pannes et le basculement interviennent automatiquement ; les temps d’arrêt sont donc réduits au minimum, sans que les applications sachent qu’une panne est survenue. 

Cluster MySQL

Une solution de haute disponibilité basée sur un cluster MySQL garantit un niveau optimal de disponibilité. Ce système de base de données distribué et hautement disponible, qui intègre des capacités de basculement et d’équilibrage de charge automatiques, assure des niveaux élevés de disponibilité, de performance et d’évolutivité, et est conçu pour garantir des niveaux d’interruption proches de zéro. 

Un cluster MySQL utilise trois types de nœuds, qui fonctionnent de concert pour stocker et administrer les données.

  • Nœuds de données : stockent les données et traitent les requêtes de lecture/écriture.
  • Nœuds de serveur MySQL : reçoivent les requêtes envoyées par les applications clientes, les traitent sur les nœuds de données, puis renvoient les résultats aux clients.
  • Nœuds de gestion : gèrent le fonctionnement du cluster et assurent le basculement et la reprise en cas de défaillance.

En cas de défaillance d’un ou plusieurs nœuds du cluster, ce dernier détecte automatiquement le problème et déclenche le processus de basculement. En règle générale, l’ensemble du processus est exécuté dans la seconde qui suit la défaillance, sans interrompre le traitement des applications clientes. Le cluster poursuit son fonctionnement normal avec un temps d’arrêt quasi inexistant.

Essayer FlashArray

Découvrez comment Pure Storage simplifie considérablement le stockage en mode bloc et fichier dans un environnement en libre-service.

Essayer maintenant

Haute disponibilité MySQL : délai de récupération 

Le délai de récupération mesure le temps nécessaire à un système MySQL pour récupérer d’une panne. Un délai de récupération plus long réduit la disponibilité et peut avoir des répercussions directes sur la capacité d’une entreprise à générer des revenus. Il peut également affecter la productivité des employés et nuire à la satisfaction client.

Dans MySQL, les délais de récupération varient en fonction du type de réplication utilisé :

  • Avec la réplication MySQL, le processus de basculement manuel affecte les délais de récupération pour la réplication maître-esclave. Après avoir promu le serveur esclave sur le nouveau nœud primaire, vous devez le redémarrer pour qu’il commence à répliquer les données sur les autres serveurs esclaves. Vous devez ensuite tenir compte des transactions manquantes et résoudre les éventuels conflits.
  • La réplication de groupe utilise un processus de détection de panne et de basculement automatique qui permet d’obtenir des délais de récupération inférieurs à ceux observés avec une réplication maître-esclave. Grâce à des mécanismes de détection et de résolution des conflits, les données de chaque serveur sont systématiquement synchronisées sur l’ensemble des serveurs du groupe. La réplication de groupe utilise également des types de données répliquées sans conflit (CRDT, Conflict-free Replicated Data Types) pour rapprocher automatiquement les données chaque fois qu’un conflit est détecté. Avec la réplication de groupe, le système est capable de récupérer d’une défaillance avec un temps d’arrêt minimal.
  • Un cluster MySQL adopte une approche sans partage (« shared nothing »), dans laquelle chaque nœud du cluster se voit attribuer sa propre mémoire et son propre stockage sur disque, et communique avec les autres nœuds via une connexion haut débit. Le cluster MySQL continue à fonctionner même en cas de défaillance d’un ou plusieurs nœuds. Le cluster détecte automatiquement le problème et déclenche le processus de basculement pour être restauré sans pratiquement aucun temps d’arrêt.

Comment évaluer vos besoins de haute disponibilité MySQL

Vous devez prendre en compte plusieurs facteurs, à savoir :

  • Votre architecture système actuelle : quels sont les composants de votre système actuel et comment sont-ils configurés ? Sont-ils capables de prendre en charge la haute disponibilité MySQL ?
  • Budget : quelle somme devez-vous investir dans les ressources dont vous avez besoin (matériel, logiciel, personnel, etc.) ? Veillez également à tenir compte des coûts associés à la formation et à la maintenance continue.
  • Besoins métier : tenez compte de vos délais de récupération (RTO) ou de vos points de récupération (RPO). Quel serait le temps de récupération idéal ? À quelle vitesse devez-vous récupérer d’une panne ? Évaluez si votre organisation est soumise à des exigences de réglementation ou de conformité spécifiques qui imposent une haute disponibilité.
  • Criticité des données : vos données métier présentent-elles un caractère stratégique ? Est-il important que ces données soient à jour ? Quelle quantité de données pouvez-vous vous permettre de perdre ?

Dans quels scénarios utiliser la haute disponibilité MySQL

Vous trouverez ci-dessous quelques cas d’usage qui nécessitent le déploiement de solutions de haute disponibilité MySQL :

Sites Web qui génèrent un fort trafic

Les sites Web qui attirent un grand nombre d’internautes traitent des milliers de requêtes et de transactions chaque seconde, ainsi que des milliers d’utilisateurs simultanés. En implémentant des mesures de haute disponibilité, comme la redondance des serveurs ou l’équilibrage de charge, vous obtenez la garantie que la base de données demeurera disponible pour pouvoir supporter la charge. 

Les serveurs redondants garantissent la disponibilité du site Web, même en cas de panne de serveur, et l’équilibrage des requêtes entrantes sur plusieurs serveurs permet d’éviter la surcharge et l’indisponibilité d’un serveur spécifique.

Applications et charges de travail stratégiques

Les entreprises qui gèrent des systèmes et applications stratégiques ont besoin d’un niveau élevé de disponibilité. La plupart du temps, ces systèmes ne peuvent tolérer la moindre interruption et la base de données doit demeurer disponible en toutes circonstances. 

Les solutions de haute disponibilité MySQL telles que la réplication de groupe ou le cluster sont idéales dans ce scénario, car elles reposent sur un mécanisme de basculement automatique qui limite voire élimine les temps d’arrêt.

Comment Pure Storage prend en charge la haute disponibilité MySQL

Pure Storage® Evergreen™ est un portefeuille d’abonnements qui assurent des déploiements sans le moindre temps d’arrêt. Associé à l’architecture de baies de stockage exclusive de Pure Storage, Evergreen vous permet de mettre à niveau votre infrastructure de stockage sans interrompre le traitement de vos charges de travail. 

Pour garantir des RPO et des RTO de zéro, Pure prend également en charge le clustering en mode actif-actif et assure un basculement automatique et transparent grâce à Purity ActiveCluster™, un cluster étendu actif/actif sur plusieurs sites.

Par ailleurs, notre solution Pure Cloud Block Store™ procure aux applications stratégiques la fiabilité d’un cloud d’entreprise. Avec des mises à niveau sans interruption et une haute disponibilité étendue à plusieurs zones de disponibilité, vous bénéficiez d’une disponibilité maximale pour garantir la continuité de vos opérations et la reprise après sinistre dans un environnement multi-cloud.

12/2024
Making the Future More Efficient and Affordable
To address a disk space shortage,Reynaers invested in Pure Storage FlashArray and an ActiveCluster storage system.
Études de cas clients
4 pages
CONTACTEZ-NOUS
Des questions, des commentaires ?

Vous avez des questions ou des commentaires concernant des produits ou certifications Pure ?  Nous sommes là pour vous aider.

Planifier une démo

Planifiez une démo en direct et découvrez comment Pure peut vous aider à transformer vos données. 

Tél. : +33 1 89 96 04 00

Services Médias : pr@purestorage.com

 

Pure Storage France

32 rue Guersant

75017 Paris

info@purestorage.com

 

FERMER
Votre navigateur n’est plus pris en charge !

Les anciens navigateurs présentent souvent des risques de sécurité. Pour profiter de la meilleure expérience possible sur notre site, passez à la dernière version de l’un des navigateurs suivants.