Haute disponibilité avec PostgreSQL



Documents pareils
La replication dans PostgreSQL

La Haute disponibilité des modules EOLE

Haute-disponibilité et bases de données

Sommaire. La haute-disponibilité. L'offre OpenSource. Les systèmes tiers. MySQL

Slony1 2.1 Londiste 3

Tungsten: une implémentation du futur clustering de PostgreSQL

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

FORMATION PostgreSQL Réplication / Haute Disponibilité

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

PostgreSQL, le cœur d un système critique

PostgreSQL. Formations. Catalogue Calendrier... 8

CA XOsoft. Suite logiciels. WANSync Solution de réplication des données en LAN ou WAN.

Solution Haute Disponibilité pour Linux

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Présentation du projet

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

«clustering» et «load balancing» avec Zope et ZEO

PostgreSQL. Formations. SQL avancé Calendrier... 18

PostgreSQL. Formations. Calendrier... 14

Réplication des données

Mise en place d'un antivirus centralisé

Les clients GNU/Linux

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Live box et Nas Synology

DSI - Pôle Infrastructures

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

PGI EBP Openline

Mise en place d un cluster. De basculement. Et DHCP Failover. Installation. Préparation. Vérification

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

LIVRE BLANC PRODUIT. Evidian SafeKit. Logiciel de haute disponibilité pour le clustering d application

Automatisation de l administration système

TARDITI Richard Mise en place d une Haute Disponibilité

et Groupe Eyrolles, 2006, ISBN :

Microsoft Live Messenger

La Continuité d Activité

OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation.

Bases de données documentaires et distribuées Cours NFE04

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

Cluster High Availability. Holger Hennig, HA-Cluster Specialist

Dossier Solution - Virtualisation CA arcserve Unified Data Protection

WebSphere MQ & Haute Disponibilité

CATALOGUE FORMATION 2014

Redondance de service

MOBILITE. Datasheet version 3.0

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

3. Quels sont les avantages d'enregistrer un compte de compagnie/d'administrateur?

CELAR Sécurité des logiciels libres Haute disponibilité

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

La continuité de service

Base de données MySQL

Artica. La déduplication. Révision Du 08 Février 2011 version

L unique SAN industriel proposant un stockage multiniveau automatisé (Automated Tiered Storage)

Fonctions Réseau et Télécom. Haute Disponibilité

Pré-requis serveur d'applications AppliDis pour Microsoft Windows Server 2012

Logiciel HP StorageWorks Enterprise Virtual Array (EVA) Fiche technique

Notes de cours : bases de données distribuées et repliquées

Exchange Server 2013 Préparation à la certification MCSE Messaging - Examen

Installation SharePoint Foundation 2013 en mode Stand-Alone

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé

Un concept multi-centre de données traditionnel basé sur le DNS

Guide de déploiement

CAHIER DES CHARGES D IMPLANTATION

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Exemple de configuration ZyWALL USG

Windows Server 2012 R2 Failover de serveurs DHCP

Unitt Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données

CA ARCserve Backup r12

IBM Tivoli Monitoring, version 6.1

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

WebSSO, synchronisation et contrôle des accès via LDAP

Continuité d activité : le choix des armes

Du 10 Fév. au 14 Mars 2014


Exercices Active Directory (Correction)

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

A. À propos des annuaires

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

MySQL 5.6. Performances et Tuning. MySQL Performances et Tuning. MySQL 5.6. Vincent TAHON

Lettre d annonce ZP d IBM Europe, Moyen-Orient et Afrique,, datée du 20 octobre 2009

Installation d un groupe de disponibilité avec SQL Server 2012 AlwaysOn (CTP3) qsjdlkqjs

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

CA ARCserve Backup. Avantages. Vue d'ensemble. Pourquoi choisir CA

LINUX - ADMINISTRATION PROGRAMME DE FORMATION

Migration d un Cluster Fiber Channel+SAN+Lames sous Xen vers Ethernet +iscsi+serveurs sous KVM

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

arcserve r16.5 Protection des données hybride

Manuel Utilisateur de l'installation du connecteur Pronote à l'ent

Transcription:

Haute disponibilité avec PostgreSQL

Table des matières Haute-disponibilité avec PostgreSQL...4 1 À propos des auteurs...5 2 Licence...5 3 Au menu...6 4 PostgreSQL...6 5 Haute-disponibilité...7 6 Pooling de connexions...7 6.1 pgpool-ii - introduction...8 6.2 pgpool-ii - avantages...8 6.3 pgpool-ii - inconvénients...9 6.4 pgbouncer - introduction...9 6.5 pgbouncer - Avantages...9 6.6 pgbouncer - Inconvénients...10 6.7 Autres solutions de pooling...10 6.8 Comment choisir un pooler...11 7 Solutions de réplication...11 7.1 Asynchrone Asymétrique...12 7.2 Asynchrone Symétrique...12 7.3 Synchrone Asymétrique...12 7.4 Synchrone Symétrique...13 7.5 Warm Standby - Introduction...13 7.6 Warm Standby - Avantages...13 7.7 Warm Standby - Inconvenients...14 7.8 Hot Standby...14 7.9 Streaming Replication...15 7.10 HS/SR - Inconvénients...15 7.11 Slony - Introduction...15 7.12 Slony - Techniques...16 7.13 Slony - Avantages...16 7.14 Slony - Inconvénients...17 7.15 Londiste - Introduction...17 7.16 Londiste - Techniques...17 7.17 Londiste - Avantages...18 7.18 Londiste - Inconvénients...18 7.19 Bucardo - Introduction...19 7.20 Bucardo - Techniques...19 7.21 Bucardo - Avantages...20 7.22 Bucardo - Inconvénients...20 7.23 Replicator - Introduction...20 7.24 Replicator - Techniques...21 7.25 Replicator - Avantages...21 7.26 Replicator - Inconvénients...21 7.27 pgpool-ii - Techniques...22 7.28 pgpool-ii - Avantages...22 2 / 31

7.29 pgpool-ii - Inconvénients...23 7.30 rubyrep - Introduction...23 7.31 rubyrep - Techniques 1/2...23 7.32 rubyrep - Techniques 2/2...24 7.33 rubyrep - Avantages...24 7.34 rubyrep - Inconvénients...25 7.35 DRBD - Introduction...25 7.36 DRBD - Techniques...25 7.37 DRBD - Avantages...26 7.38 DRBD - Inconvénients...26 7.39 RHCS - Introduction...26 7.40 RHCS - Avantages...27 7.41 RHCS - Inconvénients...27 7.42 Autres solutions de réplication...28 8 Répartition de charge...28 8.1 pgpool-ii - Répartition...29 8.2 PL/proxy...29 9 Tableau récapitulatif...30 10 Sondage...30 11 Conclusion...31 3 / 31

Haute-disponibilité avec PostgreSQL 4 / 31

1 À propos des auteurs...» Auteur : Guillaume Lelarge» Société : DALIBO» Date : Février 2011» URL : https://support.dalibo.com/kb/conferences/haute_disponibilite_avec_p ostgresql/ 2 Licence Licence Creative Common BY-NC-SA 3 contraintes de partage : Citer la source (dalibo) Pas d'utilisation commerciale Partager sous licence BY-NC-SA Cette formation (diapositives, manuels et travaux pratiques) est sous licence CC-BY-NC-SA. Vous êtes libre de redistribuer et/ou modifier cette création selon les conditions suivantes : Paternité Pas d'utilisation commerciale Partage des conditions initiales à l'identique Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'œuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait 5 / 31

qu'ils vous soutiennent ou approuvent votre utilisation de l'œuvre). Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci. Ceci est un résumé explicatif du Code Juridique. La version intégrale du contrat est disponible ici : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/legalcode 3 Au menu PostgreSQL Généralités sur la haute-disponibilité Poolers de connexion Réplication Répartition de charge Récapitulatif Un sondage Quel futur pour PostgreSQL? Cette présentation fait le tour de la haute-disponibilité avec PostgreSQL. 4 PostgreSQL Moteur de base de données libre Licence BSD 6 / 31

Né en 1996 Projet dirigé par sa communauté Bien qu'aidé et soutenu par de nombreuses entreprises Un des moteurs les plus fidèles au standard SQL Grand nombre de fonctionnalités entreprise 5 Haute-disponibilité 3 composantes Pooling de connexions Réplication Répartition de charge 6 Pooling de connexions Accélère la connexion au serveur Mise en attente des connexions 7 / 31

Permet d'accéder à plusieurs serveurs Répartition de charge dans le cas de pgpool-ii Connexion à plusieurs serveurs dans le cas de pgbouncer 6.1 pgpool-ii - introduction Premier logiciel de pooling pour PostgreSQL, créé et maintenu par la communauté Licence BSD Dernière version 3.0.1 (19 octobre 2010) http://pgpool.projects.postgresql.org/ 6.2 pgpool-ii - avantages Architecture prefork Contrôle des ressources Transparent pour les applications en mode pooling de connexions Indépendant du langage de développement Support de SSL Mise en place simple 8 / 31

6.3 pgpool-ii - inconvénients Un peu fourre-tout : pooling, répartition de charge, réplication, parallélisation Impact sur les méthodes d'authentification trust, password, crypt, md5 et pam 6.4 pgbouncer - introduction Dernier logiciel de pooling pour PostgreSQL, créé et maintenu par Skype Licence BSD Dernière version 1.4 (11 janvier 2011) http://pgfoundry.org/projects/pgbouncer/ 6.5 pgbouncer - Avantages 9 / 31

Les mêmes que pour pgpool-ii Bien plus léger que pgpool-ii Permet la connexion à plusieurs serveurs Différentes méthodes de pooling Session, transaction, requête Console d'administration Statistiques d'utilisation Commandes du pooler 6.6 pgbouncer - Inconvénients Impact sur les méthodes d'authentification trust, password, crypt, md5 Pas de support de SSL 6.7 Autres solutions de pooling sqlrelay c3po (pour Java/Hibernate) 10 / 31

6.8 Comment choisir un pooler Si vous ne pensez pas avoir besoin de répartition de charge pgbouncer Sinon pgpool-ii 7 Solutions de réplication But fréquent : pouvoir basculer sur un autre serveur si le premier tombait Autres buts Disposer d'un serveur de tests Disposer d'un serveur de génération de rapports Types de réplication Diffusion des modifications 11 / 31

7.1 Asynchrone Asymétrique Écritures uniquement sur le maître Mise à jour différée des tables sur l'autre serveur 7.2 Asynchrone Symétrique Écritures sur les deux «maîtres» Mise à jour différée des tables sur l'autre serveur Difficile d'avoir un respect d'acid 7.3 Synchrone Asymétrique Écritures uniquement sur le maître Mise à jour immédiate des tables sur l'autre serveur Source de lenteurs 12 / 31

7.4 Synchrone Symétrique Écritures sur les deux «maîtres» Mise à jour immédiate des tables sur l'autre serveur 7.5 Warm Standby - Introduction Réplication interne de PostgreSQL Archivage, puis re-jeu des journaux de transactions Le serveur maître envoie les journaux qu'il génère à l'esclave L'esclave les rejoue dès réception 7.6 Warm Standby - Avantages Simple à mettre en place Et des outils pour automatiser encore plus: Pitrtools (de Command Prompt) Walmgr (de Skype) Interne, donc suivant au plus près les évolutions de PostgreSQL Réplique toutes les modifications 13 / 31

Données comme structure des bases 7.7 Warm Standby - Inconvénients Pas de granularité sur les objets à répliquer Tout le cluster Perte au pire d'un journal de transactions Esclaves non accessibles 7.8 Hot Standby Esclaves en lecture seule Possibilité de choisir entre Réplication très proche Requêtes longues pour rapport 14 / 31

7.9 Streaming Replication Réplication en flux Asynchrone Un processus sur le maître, un processus sur l'esclave 7.10 HS/SR - Inconvénients Toujours pas de granularité Switchover complexe Administration/monitoring complexe Pas de réplication synchrone Pas de maître/maître 7.11 Slony - Introduction Premier outil de réplication libre (PostgreSQL) Créé par un développeur majeur de PostgreSQL Licence BSD Dernières versions 15 / 31

1.2.22 (6 décembre 2010) : à partir de PostgreSQL 7.3 2.0.6 (6 décembre 2010) : à partir de PostgreSQL 8.3 http://slony.info/ 7.12 Slony - Techniques Réplication par trigger 1 maître sur un ensemble de tables et séquences Les autres nœuds sont esclaves pour cet ensemble Mais peuvent être maîtres sur d'autres ensembles Cascade des serveurs possible 7.13 Slony - Avantages Choix des objets à répliquer Esclaves en lecture seule Mise à jour majeure de PostgreSQL facilitée Quelques outils simplifient la vie Outils alt-perl Outils slony1-ctl 16 / 31

7.14 Slony - Inconvénients Pas de réplication de la structure d'une base Pas de réplication des Large Objects Par contre, pas de soucis avec les Bytea Pas de réplication du TRUNCATE Complexe à maîtriser Une documentation qui, bien que complète, laisse à désirer 7.15 Londiste - Introduction Outil créé et maintenu par Skype Licence BSD Dernière version : 2.1.12 (10 novembre 2010) http://pgfoundry.org/projects/skytools/ 7.16 Londiste - Techniques 17 / 31

Réplication par trigger Un ensemble de tables a un maître et un esclave Mais pas de set comme pour Slony 7.17 Londiste - Avantages Très simple à mettre en place Pas de configuration compliquée Choix des objets à répliquer Esclaves en lecture seule Outil bien conçu Beaucoup de finition bien réalisée 7.18 Londiste - Inconvénients Pas de réplication de la structure d'une base Pas de réplication des Large Objects Par contre, pas de soucis avec les Bytea Pas de support de l'exécution de scripts SQL sur le maître et sur l'esclave en même temps 18 / 31

Pas de serveurs en cascade Pratiquement pas de documentation 7.19 Bucardo - Introduction Outil créé et maintenu par la société End Point Corporation Licence BSD Dernière version : 4.4.0 (14 octobre 2009) http://bucardo.org/wiki/bucardo 7.20 Bucardo - Techniques Réplication par trigger Démon Perl à l'écoute de NOTIFY Utilise une base de données pour stocker ses méta-données Maître/maître possible Dans ce cas, deux nœuds uniquement 19 / 31

7.21 Bucardo - Avantages Error: Reference source not found Seul outil à faire du maître/maître Un outil utilisateur pour mettre en place la réplication Outil en fort développement Documentation en très forte augmentation 7.22 Bucardo - Inconvénients Nécessite au minimum PostgreSQL 8.1 Ne fonctionne pas sous Windows, mais devrait accepter tout système Unix 7.23 Replicator - Introduction Outil créé par Command Prompt Auparavant connu sous le nom de Mammoth Replicator Licence BSD Dernière version : 1.8.2 (9 septembre 2009) https://public.commandprompt.com/projects/replicator 20 / 31

7.24 Replicator - Techniques Extension à PostgreSQL (patch) Nouvelles instructions SQL ALTER TABLE une_table ENABLE REPLICATION ON SLAVE 0; PROMOTE 7.25 Replicator - Avantages Réplication des données, mais aussi: des «Large Objects» des rôles des droits 7.26 Replicator - Inconvénients 21 / 31

Réplication d'une seule base par cluster Difficile de supprimer la réplication d'une base Une table répliquée ne peut plus voir son schéma modifié Une nouvelle version de PostgreSQL nécessite une nouvelle version du patch 7.27 pgpool-ii - Techniques Réplication par requêtes SQL Une requête est envoyée à pgpool-ii Qui se charge de l'envoyer à tous les serveurs PostgreSQL 7.28 pgpool-ii - Avantages Réplication de la structure d'une base Très simple à mettre en œuvre Fonctionnement très simple à comprendre Tous les nœuds sont disponibles en lecture 22 / 31

7.29 pgpool-ii - Inconvénients Prérequis importants: Ne pas utiliser les fonctions now(), random(), etc. Les clients doivent passer par pgpool-ii (SPOF) Si un serveur tombe, il faut entièrement le reconstruire 7.30 rubyrep - Introduction Outil communautaire, mais non spécifique à PostgreSQL Licence MIT Dernière version : 1.0.9 (14 octobre 2009) http://www.rubyrep.org/ 7.31 rubyrep - Techniques 1/2 Mode scan Détecte les différences de contenu entre deux tables 23 / 31

Mode sync Synchronise deux tables Résolution des conflits personnalisable 7.32 rubyrep - Techniques 2/2 Mode réplication Réplication par triggers Gère maître/maître comme maître/esclave Gestion des conflits personnalisable Configuration automatique des triggers Détection automatique des nouvelles tables 7.33 rubyrep - Avantages Mode scan et sync très intéressant pour les réplications à un instant t Maître/maître possible Détection automatique des nouvelles tables 24 / 31

7.34 rubyrep - Inconvénients Ruby 7.35 DRBD - Introduction Outil créé par LINBIT HA-Solutions GmbH Licence GPL Dernière version : 8.3.10 http://www.drbd.org/ 7.36 DRBD - Techniques Réplication des blocs disque Sous-couche disque Module noyau Quelques outils pour la configuration 25 / 31

7.37 DRBD - Avantages Simple à mettre en œuvre Intégré à Linux depuis la 2.6.33 Réplication synchrone Documentation excellente Intégration facile à HeartBeat / Pacemaker 7.38 DRBD - Inconvénients Pas de granularité sur la réplication Tout le cluster obligatoirement Esclaves indisponibles Lenteur à prévoir dû au caractère synchrone Deux serveurs uniquement 7.39 RHCS - Introduction 26 / 31

Red Hat Cluster Suite Réplication par disque partagé Un seul moteur fonctionnel à un instant t Bascule automatique suite à une heuristique Perte du réseau (ping) Perte de salle panne électrique (disque de quorum) 7.40 RHCS - Avantages Forcément synchrone Bascule simple à mettre en place Disque partagé, donc pas de lenteur en écriture 7.41 RHCS - Inconvénients Pas de granularité sur la réplication Esclaves indisponibles Attention à ce que les deux serveurs PostgreSQL ne soient pas exécutés en même temps Sinon, catastrophe assurée! 27 / 31

SPOF sur la baie 7.42 Autres solutions de réplication PGCluster Ancienne implémentation trop lente Nouveau prototype en cours de conception/codage Postgres-R Patch, prototype, maître/maître synchrone Fournit en plus pooling de connexions et répartition de charge CyberCluster Tungsten / Continuent 8 Répartition de charge But : répartir les requêtes sur plusieurs serveurs pour accélérer le tout Deux moyens principalement Répartir les requêtes suivant leur nombre 28 / 31

Répartir les requêtes suivant la charge des serveurs 8.1 pgpool-ii - Répartition Pool circulaire de serveur Requêtes en écriture sur le serveur 0 Réplication réalisée par pgpool-ii, Slony ou la Streaming Replication Requêtes en lecture sur l'un des serveurs disponibles Répartition par nombre de requêtes, et non pas charge réelle des serveurs Possibilité de préciser un poids pour chaque serveur 8.2 PL/proxy Langage créé par Skype Partitionnement horizontal 29 / 31

9 Tableau récapitulatif Error: Reference source not found Réplicatio Type Esclave Schéma Synchrone n Warm Journaux Indisponible Oui Non Standby HS/SR Journaux Lecture seule Oui Non Slony Triggers Lecture seule Non Non Londiste Triggers Lecture seule Non Non Bucardo Triggers Lecture/Écritu Non Non re Replicator Interne Oui Oui Non pgpool-ii Requêtes Lecture seule Oui Non rubyrep Triggers Lecture/Écritu Non Non re DRBD Blocs disques Indisponible Oui Oui RHCS Disque partagé Indisponible Oui Oui 10 Sondage Outils Réponse Pourcentage pgpool-ii 23 11,79% Bucardo 9 4,61% Slony 74 37,95% Londiste 39 20,00% Continuent 5 2,56% 30 / 31

pgcluster 12 6,15% DRBD 13 6,67% Autres 20 10,26% Chiffres en évolution depuis avril 2009: Slony descend beaucoup et Londiste grimpe bien, suivi par Bucardo. 11 Conclusion Quel que soit le projet choisi pour répliquer les données, il ne faut pas oublier : de bien définir son besoin d'identifier tous les SPOF de redonder chaque service jugé critique de bien superviser son cluster de répéter les opérations de switchover et failover 31 / 31