Architectureshaute disponibilité   avec MySQL    Architectures haute disponibilité avec MySQL MySQL           Architecture...
Votre conférencierOlivier DASINIConsultant / Formateur certifié MySQLResponsable du pôle bases de données dANASKA Alter Wa...
Au menu...●   Introduction à la haute disponibilité●   MySQL replication●   MySQL cluster●   Shared disk clustering●   Que...
Introduction à la haute disponibilité●   Définition    –   Disponibilité = uptime/(uptime+downtime)         –   90% => 36,...
MySQL ReplicationMySQL Replication  Architectures haute disponibilité avec MySQL     Olivier DASINI - http://dasini.net/bl...
MySQL Replication                  Vue d’ensemble de la réplication                                                       ...
MySQL Replication●   Log binaire●   Row based / Statement based●   SET binlog_format = row | statement | mixed            ...
MySQL Replication        Détail de la réplication Application WServeur MySQL                                    Serveur My...
MySQL Replication●   IO thread       –   Récupère les informations du log binaire du            maître et les copie dans l...
MySQL Replication               Configuration du maître●   Activer log binaire●   Définir server-id●   Utilisateur avec dr...
MySQL Replication             Configuration de lesclave●   Définir server-id●   Restaurer la sauvegarde●   CHANGE MASTER T...
MySQL Replication - Avantages●   Simplicité●   Natif dans MySQL●   Stable●   Possibilité dutiliser SSL●   Possibilité de m...
MySQL Replication - Inconvénients●   Asynchrone●   Pas de basculement automatique●   Pas « scalable » en écriture●   Le ma...
MySQL Replication - Avancée●   Réplication circulaire●   Changement de structure online●   Mise à jour online●   Mélanger ...
MySQL Cluster MySQL Cluster  Architectures haute disponibilité avec MySQL     Olivier DASINI - http://dasini.net/blog     ...
MySQL Cluster  Architectures haute disponibilité avec MySQL     Olivier DASINI - http://dasini.net/blog                For...
MySQL Cluster – Les nœuds●   Noeuds sql        –   Serveur MySQL(en général) avec ndbcluster activé        –   Autres: ndb...
MySQL Cluster●   Partitionnement●   Réplication synchrone●   Transactions●   Shared nothing●   No SPOF                   A...
MySQL Cluster – Configuration●   MySQL Cluster (avec le moteur ndb cluster SE ou CGE)●   Créer le fichier de configuration...
MySQL Cluster – config.ini[ndbd default]NoOfReplicas= 2DataDir= /var/lib/mysql-cluster[ndb_mgmd]Hostname= adresse_serveur_...
MySQL Cluster – Avantages●   Haute disponibilité        –   Basculement automatique        –   Sauvegarde à chaud        –...
MySQL Cluster – Inconvénients●   Requêtes complexes        –   Performances moindres avec plusieurs sous-requêtes,        ...
Shared Disk ClusteringShared Disk Clustering     Architectures haute disponibilité avec MySQL        Olivier DASINI - http...
Shared Disk Clustering   Architectures haute disponibilité avec MySQL      Olivier DASINI - http://dasini.net/blog        ...
Shared Disk Clustering●   Plusieurs machines partagent un même espace de    stockage        –   SAN (storage area network)...
Shared Disk Clustering Active-Passive●   Un nœud est accessible (actif)●   Lautre en attente (passif)●   Le basculement es...
Shared Disk Clustering Active-Active●   Tous les nœuds sont actif en même temps●   Quelques limitations avec MySQL        ...
Shared Disk Clustering – Avantages●   Haute disponibilité●   Assurance que les données sont les mêmes quelque    soit le s...
Shared Disk Clustering – Inconvénients●   Coût●   SPOF           –   Le système de stockage (en théorie)                  ...
Questions ?Architectures haute disponibilité avec MySQL   Olivier DASINI - http://dasini.net/blog              Forum PHP 2...
Prochain SlideShare
Chargement dans…5
×

Architectures haute disponibilité avec MySQL

6 284 vues

Publié le

La haute disponibilité consiste à faire en sorte qu’un service ou une architecture soit le moins souvent indisponible…

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 284
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2 009
Actions
Partages
0
Téléchargements
63
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Architectures haute disponibilité avec MySQL

  1. 1. Architectureshaute disponibilité avec MySQL Architectures haute disponibilité avec MySQL MySQL Architectures haute disponibilité avec Olivier Olivier DASINI - http://dasini.net/blog DASINI - http://dasini.net/blog Forum PHP 2008 2008 Forum PHP
  2. 2. Votre conférencierOlivier DASINIConsultant / Formateur certifié MySQLResponsable du pôle bases de données dANASKA Alter Wayolivier.dasini@anaska.comhttp://dasini.net/blog/ Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  3. 3. Au menu...● Introduction à la haute disponibilité● MySQL replication● MySQL cluster● Shared disk clustering● Questions / Réponses Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  4. 4. Introduction à la haute disponibilité● Définition – Disponibilité = uptime/(uptime+downtime) – 90% => 36,5 jours/an || 99,9999% => 31 sec/an● Quel but – Minimiser le downtime – Redondance logicielle et/ou matérielle● Les termes – Synchrone / Asynchrone – Réplication / Cluster – Shared disk / Shared nothing Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  5. 5. MySQL ReplicationMySQL Replication Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  6. 6. MySQL Replication Vue d’ensemble de la réplication D ELETE UPDA TE INSERT,Client de mise à jour Maître Client de mise à jour UPDATE Log INSERT binaire DELETE TE LE UPD DE T ER UPD ATE S UP ATE IN Esclave E D AT INSE RT D Esclave INS AT E IN E LET PD SE E ERT U RT DE D LE ELE TE Esclave Esclave TE SE T C LE LE SEL CT SE CT LE ECT Clients de lecture SE SE SELECT T LE C LE CT SE Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  7. 7. MySQL Replication● Log binaire● Row based / Statement based● SET binlog_format = row | statement | mixed Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  8. 8. MySQL Replication Détail de la réplication Application WServeur MySQL Serveur MySQL Maître esclave SQL thread relaylog .info binlog IO thread Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  9. 9. MySQL Replication● IO thread – Récupère les informations du log binaire du maître et les copie dans le relay log● SQL thread – Joue les requêtes du relay log sur lesclave Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  10. 10. MySQL Replication Configuration du maître● Activer log binaire● Définir server-id● Utilisateur avec droit REPLICATION SLAVE● Faire une sauvegarde synchronisée avec les logs binaires – mysqldump --master-data Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  11. 11. MySQL Replication Configuration de lesclave● Définir server-id● Restaurer la sauvegarde● CHANGE MASTER TO MASTER_HOST=adresse_maitre, MASTER_USER=utilisateur_replication, MASTER_PORT= port, MASTER_LOG_FILE=log_binaire_maitre, MASTER_LOG_POS=position_ds_log_binaire_maitre;● SLAVE START; Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  12. 12. MySQL Replication - Avantages● Simplicité● Natif dans MySQL● Stable● Possibilité dutiliser SSL● Possibilité de mélanger différents moteurs Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  13. 13. MySQL Replication - Inconvénients● Asynchrone● Pas de basculement automatique● Pas « scalable » en écriture● Le maître est le goulot détranglement● Le maître est SPOF● Load balancing non géré par MySQL Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  14. 14. MySQL Replication - Avancée● Réplication circulaire● Changement de structure online● Mise à jour online● Mélanger différents moteurs de stockage● Différents réglages serveur – delay_key_write (MyISAM) – innodb_flush_log_at_trx_commit (InnoDB) – sync_binlog (log binaire)● Différentes structures dindex Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  15. 15. MySQL Cluster MySQL Cluster Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  16. 16. MySQL Cluster Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  17. 17. MySQL Cluster – Les nœuds● Noeuds sql – Serveur MySQL(en général) avec ndbcluster activé – Autres: ndb_restore... – Reçoivent les requêtes et renvoient les résultats à lapplication● Noeuds de données – Processus ndbd – Stockage des données et index● Noeuds de gestion – Processus ndb_mgmd – Configuration (config.ini) – Gestion (arrêt, redémarrage des nœuds, sauvegarde...) Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  18. 18. MySQL Cluster● Partitionnement● Réplication synchrone● Transactions● Shared nothing● No SPOF Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  19. 19. MySQL Cluster – Configuration● MySQL Cluster (avec le moteur ndb cluster SE ou CGE)● Créer le fichier de configuration (config.ini)● Démarrer le noeud de gestion● Démarrer les noeuds de données● Démarrer les noeuds sql Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  20. 20. MySQL Cluster – config.ini[ndbd default]NoOfReplicas= 2DataDir= /var/lib/mysql-cluster[ndb_mgmd]Hostname= adresse_serveur_gestionDataDir= /var/lib/mysql-cluster[ndbd]HostName= adresse_noeud_donnée_1[ndbd]HostName= adresse_noeud_donnée_2[mysqld]HostName= adresse_noeud_sql_1[mysqld] Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  21. 21. MySQL Cluster – Avantages● Haute disponibilité – Basculement automatique – Sauvegarde à chaud – Mise à jour à chaud – Ajout de nœud sql à chaud● Faible coût● « Scalable » lecture & écriture● Shared Nothing● No SPOF Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  22. 22. MySQL Cluster – Inconvénients● Requêtes complexes – Performances moindres avec plusieurs sous-requêtes, jointures...● Systèmes dexploitation – Pas de support MS Windows● MySQL 5.0.x – Données & index nécessairement en RAM● MySQL 5.1.x – Index nécessairement en RAM● Spécificités du moteur NDB – Pas de fulltext, intégrité référentielle... Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  23. 23. Shared Disk ClusteringShared Disk Clustering Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  24. 24. Shared Disk Clustering Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  25. 25. Shared Disk Clustering● Plusieurs machines partagent un même espace de stockage – SAN (storage area network)● Connexion haut débit vers le système de stockage – Fibre channel, iSCSI, ...● Un système est nécessaire pour vérifier létat des noeuds et gérer le basculement – Heartbeat, Linux HA,... Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  26. 26. Shared Disk Clustering Active-Passive● Un nœud est accessible (actif)● Lautre en attente (passif)● Le basculement est géré par un programme externe● Vérification des tables avant démarrage du passif – MyISAM: myisamchk, --myisam-recover Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  27. 27. Shared Disk Clustering Active-Active● Tous les nœuds sont actif en même temps● Quelques limitations avec MySQL – Seulement les tables MyISAM – Problèmes liés aux caches(requêtes, index,...) – ... Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  28. 28. Shared Disk Clustering – Avantages● Haute disponibilité● Assurance que les données sont les mêmes quelque soit le serveur● Supporte de grands volumes de données Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  29. 29. Shared Disk Clustering – Inconvénients● Coût● SPOF – Le système de stockage (en théorie) Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008
  30. 30. Questions ?Architectures haute disponibilité avec MySQL Olivier DASINI - http://dasini.net/blog Forum PHP 2008

×