mysql cluster cette présentation illustre la solution open source mysql cluster 7.1. larchitecture...

Download MySQL Cluster Cette présentation illustre la solution open source MySQL Cluster 7.1. Larchitecture MySQL Cluster 7.1 permet de répondre aux besoins suivants

Post on 03-Apr-2015

106 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • Page 2
  • MySQL Cluster Cette prsentation illustre la solution open source MySQL Cluster 7.1. Larchitecture MySQL Cluster 7.1 permet de rpondre aux besoins suivants : - La haute disponibilit : limination du SPOF par redondances des donnes et failover, - Le passage lchelle : possibilit dun nombre lev de nuds, - Rpartition de la charge : sur lensemble des nuds grce au partitionnement & round robin. N.B. MySQL Cluster 7.1 (ou MySQL Cluster NDB 7.1) comprend le noyau MySQL Server 5.1 ainsi que le moteur de stockage NDB 7.1. CaractristiquesLimitesConclusion
  • Page 3
  • Page 4
  • MySQL Cluster : Un cluster en shared nothing Shared nothing : Chaque nud est autonome et possde son propre disque et sa mmoire. Cela implique quil ny a aucun accs disques concurrents partir de plusieurs nuds. Dans le cas de MySQL Cluster, une rplication synchrone des mises jour est effectue entre les nuds. Shared disk : Les nuds possdent chacun leur mmoire mais ils partagent une ou plusieurs ressources de stockage. Elle utilise un accs centralis aux disques partir de tous les nuds. Tous les nuds pouvant crire de manire de concurrente via le cache disque, un mcanisme de synchronisation est ncessaire pour prserver la cohrence des donnes : cest un manager de verrous distribus qui assume ce rle. Shared everything : Les nuds partagent une ou plusieurs ressources de stockage. Elle utilise un cache de donnes dit commun : un mcanisme (dit de cache fusion sur Oracle RAC) a t implment afin que la mmoire physiquement distincte de chaque nud soit vue comme un tout par chaque nud. Ce type de cluster permet un haut niveau de disponibilit car si un nud est inaccessible les autres ne sont pas affects, et de hautes performances car le cache de donnes commun permet de rduire les accs disques.
  • Page 5
  • Un cluster en shared nothing MySQL Cluster consiste en trois types de nuds diffrents, chacun d'eux offrant des services spcialiss au sein du cluster : Les nuds d'applications (sql node) sont ceux par lesquelles passent toutes demandes daccs aux donnes, il parse lordre SQL, dtermine le coordinateur de transactioncela peut tre un serveur mysql ou une application exploitant lapi ndb. Les nuds de gestion (management node) sont chargs de loguer les vnements du cluster, d'effectuer le rle d'arbitre, arrter/dmarrer les nuds de donnes, effectuer les sauvegardesOn utilise le client de gestion. Les nuds de donnes (data node) sont les nuds principaux du cluster et sont dots des fonctionnalits suivantes : Stockage et gestion des donnes, Partitionnement, Rplication synchrone,
  • Page 6
  • Un partitionnement des donnes (1/2) La rpartition des donnes seffectue grce au mcanisme de partitionnement (via les data nodes). Il peut tre automatique (par dfaut) ou manuel. Le partitionnement possde les caractristiques suivantes : - Fragmentation horizontale : les partitions sont obtenues par rpartition des lignes. - Par dfaut seffectue par hachage de la cl primaire (d'o obligation d'avoir une cl primaire, dans le cas contraire une colonne cache en auto incrment est cre). Le partitionnement manuel permet de hacher sur une partie de la cl. - Chaque table a autant de partitions que de nuds de donnes; Les nuds sont regroups dans des groupes de nuds (node group) de sorte que les nuds dun mme groupe de nuds stockent les mmes donnes. - Permet le paralllisme pour certaines oprations.
  • Page 7
  • Un partitionnement des donnes (2/2) Dans lexemple ci contre le cluster est configur pour avoir 4 partitions et 2 rplicas, on appelle fragment primaire la partition qui est utilise par les ordres SQL et le fragment secondaire la partition qui est utilise lors du failover. Le terme de rplica est utilis afin de dterminer le nombre de copies de fragments dont dispose le systme.
  • Page 8
  • Une rplication synchrone Afin de garantir le failover, une mme donne se trouve sur au moins deux nuds de donnes diffrents, et ce grce au mcanisme de rplication synchrone (via les data nodes). Pour la rplication il est essentiel d'utiliser le moteur de stockage NDBCluster. Tant quun nud dans chaque node group est vivant, le cluster continue de fonctionner car lentiret des donnes est disponible. Par contre si tous les nuds dun node group tombent, le cluster sarrte de fonctionner. Pour garantir la haute disponibilit il faut au minimum NoOfReplicas=2. Caractristiques de la rplication : - Protocole 2PC - un thread joue le rle du coordinateur
  • Page 9
  • Le nud de donnes Un nud de donnes consiste en 4 threads qui excutent un ensemble de composants logiciels appels block : - TC (Transaction Coordinator) : il intervient au niveau global du systme afin de traiter les requtes distribues, il est responsable de lacheminement des requtes vers le thread LQH. - LQH (Local Query Handler) : il intervient au niveau local du systme (par opposition au TC) afin de traiter la transaction locale (slections, mises jour, .) et coordonner la rplication 2PC avec le TC. Parmi les composants quil excute on peut citer : ACC (Access Manager) : il intervient dans la gestion des verrous et des indexes, TUP (Tuple Manager) : il intervient dans le stockage des enregistrements, - SUMA (Subscription Manager) : il logue les vnements du cluster. - Transporter : il gre la communication entre les nuds.
  • Page 10
  • Les mthodes daccs Le nud de donnes dispose de 4 mthodes daccs aux donnes : Primary key access accs par cl primaire (hash) Unique Key access accs par index unique (Hash) Range scan recherche par intervalle (index ordonn) Full table scan analyse complte de la table Contrainte importante : tous les indexes doivent pouvoir tenir en mmoire.
  • Page 11
  • Paralllisme au sein du cluster Lorsqu'aucun index n'est utilis pour accder aux donnes. Dans ce cas, la requte est excute avec un scan de table (Full table scan). Le TC (Coordinateur de transaction) envoie en parallle la requte tous les nuds, chaque local Query Handler (LQH) ayant la charge de lire entirement son fragment primaire. Lorsque un index ordonn est utilis. Dans ce cas, la requte est excute avec un range scan (Ordered index scan). Lors d'un Range scan le TC envoie en parallle la requte tous les noeuds, chaque local Query Handler (LQH) ayant la charge de lire son index T-Tree (index en mmoire qui ne contient que les donnes locales).
  • Page 12
  • Paralllisme au sein dun nud Les serveurs dots dune architecture multi curs/processeurs permettent une scalabilit verticale au sein du systme MySQL Cluster. Chacun des threads du gestionnaire LQH (Local Query Handler) est responsable dune sous partition principale (portion dune partition dont un nud de donnes la charge) et dune sous partition rplique (dans le cas dun nombre de replicas 2). Ce fonctionnement permet un accs paralllis aux diffrentes sous partitions dune partition.
  • Page 13
  • Configuration et dmarrage On commence par la configuration : - du cluster : config.ini sur le nud de gestion, - des nuds SQL & data : my.cnf. On dmarre dans lordre suivant : - le nud de gestion (il charge la configuration du cluster), - les nuds de donnes (il lit son fichier my.cnf et communique avec le nud de gestion pour rcuprer la configuration du cluster), - le nud dapplication (idem). ..on fini par contrler le statut du cluster.
  • Page 14
  • NDBINFO La base NDBINFO permet dobtenir en temps rel des informations sur ltat de sant et les statistiques dutilisation du cluster. Parmi les informations les plus pertinentes ont peut citer lutilisation de la mmoire de chaque nuds de donnes (table memoryusage) ainsi que leur statut (table nodes). Cette base est cre au dmarrage initial du serveur MySQL.
  • Page 15
  • Ajout dun nud de donnes Il est possible dajouter un nud chaud puis de lancer une redistribution des donnes sur lensemble des nuds. Les donnes doivent ensuite tre rorganises (ALTER TABLE .REORGANIZE), en mmoire ou sur disque (Disk Data Tables). Par contre il est impossible de supprimer une partition.
  • Page 16
  • Sauvegarde/Restauration On peut effectuer une sauvegarde chaud via le client du nud de gestion. Un backup est alors cr sur chaque des nuds de, il consiste en 3 fichiers : les mta donnes de la base (nom & dfinition des tables du cluster), les donnes (de son propre nud), un historique des transactions archives effectue durant la sauvegarde. Seules les transactions impliquant les tables stockes sur le nud sont stockes dans le log. La restauration doit tre excute pour chaque fichier de sauvegarde via lutilitaire ndb_restore, c'est dire aussi souvent qu'il y a de nuds de donnes dans le cluster au moment de la cration de la sauvegarde.
  • Page 17
  • Reprise sur incident Lorsquun nud est arrt (arrt planifi, problme hardware, problme software) il se trouve dsynchronis vis--vis des autres. Le systme met en place un procd de recover permettant de le rendre nouveau disponible et synchronis. Lors dun recover le nud de donnes rcupre le plus rcent LCP et applique les mises jour des fichiers redo logs jusquau dernier GCP. Il contacte ensuite le(s) nud(s) du mme groupe de donnes pour savoir si des mises jour ont t effectues depuis le crash et va se resynchroniser. LCP : LocalCheckPoint : cest le checkpoint spcifique un nud de donnes. Lors dun LCP il y criture des dirty blocks en mmoire vers le disque. GCP : GlobalCheckpoint : ce checkpoint intervient trs rgulirement (frquence de quelques secondes) de manire synchronise sur lensemble des nuds. En rsum lors dun GCP il y a criture synchronis pour tous les nuds de leur redo buffer en mmoire vers les