Professional Documents
Culture Documents
Auteur :
Licence :
Date :
2 Haute disponibilit ?
3 Seven Nine
4 Matriel
5 Technologies de rplication
10
11
12
13
14
11 Projets PostgreSQL
15
12 Warm Stand-by
16
13 Hot Stand-by
18
19
15 Slony : Identit
20
16 Slony : Fonctionnalits
21
17 Slony : Technique
22
23
dalibo.com
2 / 53
dalibo.org
19 Slony : Limites
24
20 Slony : Utilisations
25
21 Bucardo : Identit
26
22 Bucardo : Fonctionnalits
27
23 Bucardo : Technique
28
29
25 Bucardo : Limites
30
26 Bucardo : Utilisations
31
27 Londiste : Identit
32
28 Londiste : Fonctionalits
33
29 Londiste : Technique
34
35
31 Londiste : Limites
36
32 Londiste : Utilisations
37
33 Postgres-R : Identit
38
34 Postgres-R : Fonctionalits
39
35 Postgres-R : Technique
40
41
37 Postgres-R : Limites
42
38 Postgres-R : Utilisations
43
39 pgpool-II : Identit
44
dalibo.com
3 / 53
dalibo.org
40 pgpool-II : Fonctionalits
45
41 pgpool-II : Technique
46
47
43 pgpool-II : Limites
48
44 pgpool-II : Utilisations
49
45 Dautres projets...
50
46 Sondage
51
47 Conclusion
52
48 Questions
53
dalibo.com
4 / 53
dalibo.org
Sommaire
Gnralits sur la haute disponibilit et la rplication
Dans cette prsentation, nous reviendrons rapidement sur la qualification des solutions
de haute disponibilit, et la classification des solutions de rplication.
Prsentation des projets de rplication autour de PostgreSQL
Nous dtaillerons ensuite les projets de rplication pour PostgreSQL les plus en vue.
dalibo.com
5 / 53
dalibo.org
Haute disponibilit ?
Quel est mon besoin ?
Seul le rel besoin permet de trouver la solution adquate.
Quel est mon budget ?
Le budget est un lment important dans la mise en place dune solution de haute disponibilit. La plupart du temps, il faudra multiplier le nombre de machines, ou a minima
le nombre de disques durs. Dans certains cas, on en vient redonder aussi la mmoire,
les processeurs, etc. De nombreuses solutions existent en la matire. Cependant, cette
dbauche de moyens a toujours un cot.
Quelles comptences ?
Le cot de la comptence associe linstallation, et surtout, la maintenance dun cluster, fut-il install pour PostgreSQL ou non, est toujours important. Le cot du maintient
de la comptence pour la gestion dun cluster ne doit pas tre pris la lgre. Cependant, loffre de formation existe et est aujourdhui complte. On trouve aussi nombre de
socits prtes supporter la maintenance dun cluster PostgreSQL. Lentreprise a donc
le choix dexternaliser ou non cette comptence.
Quand ?
La donne temporelle est importante. Il convient en effet de savoir partir de quel moment on veut transformer son service en un service dont on attend une haute disponibilit. Gnralement, plus le service est plac sous haute disponibilit tt dans llaboration du projet, plus les cots engendrs sont importants.
dalibo.com
6 / 53
dalibo.org
Seven Nine
quivalences 99,(9)* et temps dindisponibilit :
99% dsigne le fait que le service est indisponible moins de 3,65 jours par an
99,9%, moins de 8,75 heures par an
99,99%, moins de 52 minutes par an
99,999%, moins de 5,2 minutes par an
99,9999%, moins de 54,8 secondes par an
99,99999%, moins de 3,1 secondes par an
dalibo.com
7 / 53
dalibo.org
Matriel
Pas le but de cette prsentation
En effet, cette prsentation est destine prsenter les solutions de rplication entrant
dans la composition dun cluster PostgreSQL haute disponibilit.
prendre videmment en compte...
De nombreuses techniques matrielles viennent en complment essentiel des technologies de rplication utilises dans la haute disponibilit.
Leur utilisation est gnralement obligatoire, du RAID en passant par les SAN et autres
techniques pour dedonder lalimentation, la mmoire, les processeurs, etc.
dalibo.com
8 / 53
dalibo.org
Technologies de rplication
Au choix :
Propritaires ou
Libres
Dans tous les cas, le support professionnel existe !
dalibo.com
9 / 53
dalibo.org
dalibo.com
10 / 53
dalibo.org
dalibo.com
11 / 53
dalibo.org
dalibo.com
12 / 53
dalibo.org
dalibo.com
13 / 53
dalibo.org
dalibo.com
14 / 53
dalibo.org
Projets PostgreSQL
Deux techniques de rplication existent pour PostgreSQL :
Warm Stand-by (aka Log Shipping)
Hot Stand-by
Cependant, seule la premire est stable, la seconde tant toujours en cours de dveloppement.
dalibo.com
15 / 53
dalibo.org
Warm Stand-by
Intgr PostgreSQL depuis plusieurs annes
Le Warm Stand-by existe depuis la version 8.2, sortie le 5 dcembre 2006. La robustesse de ce mcanisme simple est toute preuve.
Permet davoir une rplique dune cluster PostgreSQL sur un serveur secondaire
Les journaux de transactions (aka WAL, pour Write Ahead Log) sont immdiatement envoys au serveur secondaire aprs leur criture. Le serveur secondaire est dans un
mode spcial dattente, et lorsquun journal de transactions est reu, il est automatiquement appliqu au rplica.
Cette technique ne permet de rpliquer que lensemble du cluster PostgreSQL, cest
dire, lensemble des bases de donnes quil contient. On ne peut pas par exemple
ne rpliquer quune base parmi celles que contient le cluster. Cette limitation est lie
au fait que les journaux de transactions de PostgreSQL (aka WALs) tracent toutes les
transactions du cluster, quelle que soit la base de donnes.
Le rplica est identique au serveur primaire, au WAL prs
tant donn que le serveur distant napplique que les WAL quil reoit, il y a
toujours un risque de pertes de donnes en cas de panne majeure sur le serveur
primaire.
On peut cependant moduler le risque de deux faons :
Sauf en cas davarie trs grave sur le serveur primaire, le WAL sur ce
dernier peut gnralement tre rcupr et appliqu sur le serveur
secondaire
On peut rduire la fentre temporelle de la rplication en modifiant
la valeur de la cl de configuration archive_timeout. Au del des n
secondes dclares dans cette variable de configuration, le serveur
change de WAL, provoquant larchivage du prcdent.
On peut par exemple envisager un archive_timeout 30 secondes,
et ainsi obtenir une rplication 30 secondes prs
Un outil pratique : pg_standby
Loutil pg_standby de Simon Riggs (contrib de PostgreSQL 8.3) possde plusieurs options en ligne de commande :
pg_standby [OPTION]... [ARCHIVELOCATION] [NEXTWALFILE] [XLOGFILEPATH]
ARCHIVELOCATION correspond au rpertoire de stockage des journaux de transaction
archivs.
NEXTWALFILE est le nom du prochain journal rcuprer.
XLOGFILEPATH est lemplacement des journaux de transaction.
Options les plus intressantes :
Exemple :
dalibo.com
16 / 53
dalibo.org
dalibo.com
17 / 53
dalibo.org
Hot Stand-by
volution du Warm Stand-by
Le patch Hot Stand-by a ncessit environ 5 mois de travail intense de son auteur,
Simon Riggs, et environ 3 semaines de relecture un hacker mrite de PostgreSQL,
Heikki Linakangas. Il sagit dun patch de plusieurs milliers de lignes de C.
Bas sur le mme mcanisme
Lvolution : le serveur secondaire est ouvert en lecture seule
Cette volution majeure de PostgreSQL devait initialement tre intgre la toute prochaine version
8.4. Cependant, les relectures des patches de Simon Riggs (principal codeur de Warm et Hot StandBy) par Heikki Linakangas (autre codeur mrite du projet !), ont abouti la conclusion quil tait
prmatur dinclure cette fonctionnalit dans PostgreSQL 8.4 car des tests complmentaires, plus
pousss devaient tre raliss, dune part. Dautre part, il existe de nombreux axes damliorations
possibles au patch de Simon.
Cette nouvelle fonctionnalit de PostgreSQL ne remplacera pas des projets plus complexes de rplication. Elle nen a pas non plus la vocation.
Lvolution naturelle du Hot Stand-by sera probablement dalimenter le serveur secondaire directement avec les transactions du serveur primaire, en ne passant plus par les journaux de transaction.
Une fois cette dernire volution effectue, les utilisateurs doutils de rplication tiers se poseront
probablement la question sur la ncessit pour eux de garder leur installation actuelle, dans la mesure
o PostgreSQL possdera de manire native une rplication matre / esclave intressante.
dalibo.com
18 / 53
dalibo.org
Slony
Bucardo
Londiste
Postgres-R
pgpool-II
dalibo.com
19 / 53
dalibo.org
Slony : Identit
dalibo.com
20 / 53
dalibo.org
Slony : Fonctionnalits
Failover / Failback
Switchover / Switchback
Standalone
dalibo.com
21 / 53
dalibo.org
Slony : Technique
dalibo.com
22 / 53
dalibo.org
dalibo.com
23 / 53
dalibo.org
Slony : Limites
proscrire pour la rplication de bases itinrantes
Le rseau doit tre fiable : peu de lag, pas ou peu de coupures
Monitoring dlicat
dalibo.com
24 / 53
dalibo.org
Slony : Utilisations
dalibo.com
25 / 53
dalibo.org
Bucardo : Identit
dalibo.com
26 / 53
dalibo.org
Bucardo : Fonctionnalits
Failover ?
dalibo.com
27 / 53
dalibo.org
Bucardo : Technique
dalibo.com
28 / 53
dalibo.org
dalibo.com
29 / 53
dalibo.org
Bucardo : Limites
dalibo.com
30 / 53
dalibo.org
Bucardo : Utilisations
Cluster matre/matre simple
Base de donnes de secours
Bases spcialises (recherche plein texte, traitements lourds, etc)
dalibo.com
31 / 53
dalibo.org
Londiste : Identit
dalibo.com
32 / 53
dalibo.org
Londiste : Fonctionalits
Failover ?
Pour les tables : repair et compare
dalibo.com
33 / 53
dalibo.org
Londiste : Technique
dalibo.com
34 / 53
dalibo.org
dalibo.com
35 / 53
dalibo.org
Londiste : Limites
Technique de propagation des DDL basique, et surtout, unitaire
Pas de sets de rplication, mais les queues (PgQ) peuvent grer cela
Trs peu de fonctionnalits. Skytools 3 devrait corriger des carts avec Slony
Notamment au niveau de la propagation des DDL, on pourra par exemple excuter le
script suivant :
londiste.py conf.ini execute script.sql
dalibo.com
36 / 53
dalibo.org
Londiste : Utilisations
dalibo.com
37 / 53
dalibo.org
Postgres-R : Identit
dalibo.com
38 / 53
dalibo.org
Postgres-R : Fonctionalits
Resynchronisation automatique dun nud dsynchronis
La resynchronisation dun nud qui a subi une dsynchronisation suite so, arrt volontaire (ou non), peut tre partielle dans la plupart des cas : ne seront rejous que les
vnements qui doivent ltre
dalibo.com
39 / 53
dalibo.org
Postgres-R : Technique
Bas sur le Group Communication System (aka GCS)
La thorie sur le Group Communication System est trs aboutie (travaux de B. Kemme
en particulier). Cependant son implmentation est relativement complexe.
Est un gros patch pour PostgreSQL
Lauteur (Markus Wanner) explique lui-mme que pour des raisons de performances, et
parce quun systme de rplication multi-matres est une chose complexe, Postgres-R
est en fait une version patche de PostgreSQL.
dalibo.com
40 / 53
dalibo.org
dalibo.com
41 / 53
dalibo.org
Postgres-R : Limites
Un seul dveloppeur ce jour (Markus Wanner)
Postgres-R est un patch de PostgreSQL
Cela rend donc compliqu la maintenance du code pour son auteur, qui doit ladapter
chaque version majeure de PostgreSQL.
Surtout : Postgres-R est encore un projet de recherche, partiellement abouti.
Cest rdhibitoire pour les professionnels, qui privilgient juste titre la robustesse et
la stabilit des logiciels. Cependant, ce projet est trs prometteur et il convient de le
surveiller de trs prs.
dalibo.com
42 / 53
dalibo.org
Postgres-R : Utilisations
Limites actuellement, du fait du statut actuel du projet
Publication en Janvier 2009 dun document de spcifications
Ce document (tlchargeable sur http ://www.postgres-r.org/downloads/concept.pdf) semble
poser toutes les bases de la spcification de Postgres-R.
Mais lauteur lavoue lui-mme en ces termes : Note that the current prototype implementation doesnt cover all aspects mentioned . Ce qui, dans une traduction libre veut
dire Notez que limplmentation dans le prototype actuel ne couvre pas tous les aspects
mentionns (dans ce document).
Il est clair en tout cas que Markus a fait de nombreux appels du pied la communaut
PostgreSQL. Mais son projet ne semble pas attirer les foules.
dalibo.com
43 / 53
dalibo.org
pgpool-II : Identit
dalibo.com
44 / 53
dalibo.org
pgpool-II : Fonctionalits
Failover avec dtection automatique dun nud dficient
Le cas chant, le nud est dsactiv dans la rplication. La technique du Online
Recovery de pgpool
Failback : Online Recovery
dalibo.com
45 / 53
dalibo.org
pgpool-II : Technique
pgpool est lorigine un pooler de connexions
A sa configuration propre
Transparent pour les applications
dalibo.com
46 / 53
dalibo.org
dalibo.com
47 / 53
dalibo.org
pgpool-II : Limites
pgpool est un SPOF !
Il faudra donc veiller ce quun autre service pgpool-II existe sur une autre machine et
mettre en place un systme de bascule automatique. Cela est gnralement fait avec
des infrastructures redondantes bases sur heartbeat, lvm, etc.
Rplication base sur la rplication des requtes SQL
Il faut donc absolument veiller ce que les bases de donnes ne puissent tre accdes
que via pgpool-II ! En effet, il existe toujours un risque quune base soit modifie en
direct... Ce qui la dsynchroniserait des autres.
Documentation dorigine en Japonnais, dont les traductions sont parfois curieuses
Authentification en mode rplication : pas de md5
Effet trousse outils
Dans la communaut PostgreSQL, ce type de critique est rcurrent lencontre de
pgpool : beaucoup lui reprochent de tout faire un peu. pgpool est en effet la fois :
un pooler de connexions, mais aussi capable de faire de la rplication et de la requte
parallle.
Ces critiques sont cependant peu fondes, les sites utilisant pgpool en production sont
trs nombreux ! Ceux qui ne sintresseront quau seul mode de pooler de connexions
pourront sintresser lexcellent PgBouncer de Skype.
dalibo.com
48 / 53
dalibo.org
pgpool-II : Utilisations
Base de donnes de secours
Load-Balancing
dalibo.com
49 / 53
dalibo.org
Dautres projets...
Il existe bien dautres projets !
PGCluster : moribond
Mammoth Replicator / Command Prompt : libre + support commercial, moribond
Cybercluster / Cybertek : libre + support commercial, actif
Tungsten(ex Sequoia)/Continuent : libre + support commercial, trs actif
dalibo.com
50 / 53
dalibo.org
Sondage
Quel est votre outil de rplication favori pour PostgreSQL ?
Rponse
Nombre de votes
Pourcentage
pgpool-II
Bucardo
Slony-I
Londiste
Continuent
pgCluster
DRBD ou Sun Cluster
Autres
Total
7
1
35
6
2
2
2
7
62
11.290%
1.613%
56.452%
9.677%
3.226%
3.226%
3.226%
11.290%
Les rsultats ci-dessous sont consultables sur le site du projet PostgreSQL sur la page suivante :
http ://www.postgresql.org/community/survey.61
dalibo.com
51 / 53
dalibo.org
Conclusion
Quel que soit le projet choisi pour rpliquer les donnes, il ne faut pas oublier :
dalibo.com
52 / 53
dalibo.org
Questions
Jean-Paul Argudo <jean-paul.argudo@dalibo.com>
Grant de Dalibo SARL, LExpertise PostgreSQL Co-fondateur de PostgreSQL France
Trsorier de PostgreSQL Europe
Rendez-vous au stand PostgreSQLFr !
Sur le village des associations, o de nombreux contributeurs PostgreSQL pourront
rpondre vos questions.
et au pgDay 2009 : http ://2009.pgday.eu/
2 journes entirement consacres PostgreSQL, avec la participation de core-hackers
de PostgreSQL, ainsi que lensemble de la communaut Europenne, dont cest le 3me
pgDay Europen, qui vient, cette anne se greffer au pgDay Franais, aprs le pgDay
Italien en 2008, et le pgDay probablement Allemand en 2010 !
dalibo.com
53 / 53
dalibo.org