VIP/Load Balancer en “round robin”

5 June 2007 par pébé

Dans une architecture MySQL nous retrouvons un maître (M) pour les écritures et plusieurs esclaves (S) pour la lecture. MySQL ne permet pas l’extensibilité en écriture mais en lecture, d’ou la notion de “Shards”, un ensemble de plusieurs blocks (M-S). L’idée est de partitionner vos données. Mais ceci est une autre histoire. Pour accéder à vos esclaves, nous utilisons une VIP/Load Balancer en “round robin”. Vos applications étant ainsi re-dirigées vers un esclave de façon aléatoire.
La question est maintenant: Comment puis je maintenant enlever un esclave de la rotation?
Tout va dépendre de ce qui vous utilisez comme HW / SW.

En tout cas, ce que nous voulons:

  • Ne pas arrêter l’esclave: pour pouvoir travailler dessus sans pour autant le laisser en rotation
  • Ne pas utiliser skip-networking: pour ne pas avoir à redémarrer MySQL

Donc nous allons devoir couper la vérification en 2 parties:

  • 1. Server OK
  • 2. MySQL OK

Votre VIP devra sortir le serveur MySQL de la rotation si (1) ou si (1) ET (2). Un simple stratagème est de mettre un serveur http avec un fichier X.html. Si le fichier X.html est présent alors le serveur est ok.
Ensuite vous pouvez vérifier la connectivité MySQL en elle même.



Autres billets susceptibles de vous intéresser :
  • Installation du MySQL Cluster
  • Les covering index, de la théorie à la pratique avec MyISAM et InnoDB
  • Dessine-moi MySQL : la réplication Master-Slave
  • Cardinalité, sélectivité et distributivité d’un index MySQL : quel impact sur le plan d’exécution ?
  • Générer un jeu de données : shell, mysqlslap, et procédure stockée
  • Laisser un commentaire