PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Système de fichiers clusterisé LUSTRE et PostgreSQL

Technique - général | Système de fichiers clusterisé LUSTRE et PostgreSQL

Par steuletg le 19/09/2005 - 17:04

Bonjour,

Je tente de réaliser une architecture hautement disponible à l'aide de PostgeSQL et un système de fichier clusterisé LUSTRE. Je rencontre bien évidemment de nombreux problèmes. Voici une brève explication de l'architecture: 3 Noeuds exécutent postgreSQL. Sur ces trois noeuds, l'installation et la configuration sont identiques. DATADIR= /u01/app/postgres, PREFIX=/usr/local/pgsql, PGDATA=/mnt/pgdata. /mnt/pgdata est mon volume clusterisé qui est partagé entre mes 3 noeuds.

Le premier problème que j'ai rencontré concerne le postmaster.pid qui vient bien évidemment se mettre dans PGDATA (/mnt/pgdata/postmaster.pid) ça ne m'arrange pas, car lorsque je démarre postgresql depuis mes trois noeuds, chaque instance de postmaster tente de le créer, hors dès le lancement de ma première instance il est déjà présent. A ce sujet, il me semble que PostgreSQL pourrait faire un petit effort dans la séparation des fichiers de données, fichiers logs, et fichiers de processus (postmaster.pid). Ma première question est la suivante: est-il possible de spécifier ou le fichier postmaster.pid doit se placer ?

Seconde question, après avoir démarré mes différentes instances (sans me préocuper des warnings du au fichier postmaster.pid), j'ai utilisé PGAdmin pour administrer mes différentes bases de données. Je me suis aperçu que PostgreSQL n'écrivait pas immédiatement les données sur disque, puisque mes autres instances (partageant le même PGDATA) ne voyaient pas les tables que j'avais créées, celà pose de gros problèmes de cohérence. Ma question est la suivante, est-il possible de spécifier à postgreSQL d'effectuer directement les changements sur disque à savoir dans PGDATA sans passer par un cache.

En vous remerciant, cordialement

PS: Tout conseil est le bienvenu !

Gregory Steulet

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour grégory, La solut

bsimon/ = 20 Septembre, 2005 - 09:28

Bonjour grégory,

La solution que tu essayes de mettre en place n'est pas réalisable. Plusieurs postmasters ne peuvent partager les mêmes bases de données. Les raisons sont nombreuses (gestion des verrous, du cache, problèmes de consistence ...). C'est une fonctionnalité qui n'existe tout simplement pas dans le SGBD PostgreSQL.

Tu as plusieurs solutions de remplacement, tout dépend de tes besoins applicatifs. Il existe plusieurs outlis de réplicaton et/ou de load balancing (slony, pgpool, pgcluster ...) qui te permettront certainement d'arriver à tes fins.

Concernant les bases opensource, seules MySQL et Ingres possèdent une vrai solution de clustering mais encore faut-il définir ce qu'est le clustering de bases ...

Benjamin.


Merci pour ta réponse Benjam

steuletg/ = 24 Septembre, 2005 - 02:27

Merci pour ta réponse Benjamin. Cependant, la seule chose qui puisse remplacer celà est un outil de réplication synchrone si l'on veut garantir une haute disponibilité hors, je n'en ai pas trouvé pour postgres. Sais-tu s'il en existe un ?

Il me semble que celé doit être étroitement lié avec le two phase commit ... hors est-elle implémenté dans postgres 8 ?

Je te remercie !

Greg


A ma connaissance, il n'exist

bsimon/ = 24 Septembre, 2005 - 08:47

A ma connaissance, il n'existe que pgcluster :
http://pgcluster.projects.postgresql.org/

Je l'ai testé personnlement et ca avait l'air de bien fonctionner. Cependant, il n'y a aucun réel retour sur expérience de mise en production d'une telle solution. Pour moi, le risque d'utilisation reste élévé pour une application critique.

Le projet slony2 (http://www.slony2.org/wiki/index.php?title=Main_Page) est lui aussi prometteur mais n'est hélas pas encore abouti.

Tu peux toujours (en attendant mieux) :
- utiliser pgpool (http://pgpool.projects.postgresql.org/)
- développer ta réplication dans ta couche applicative
- Partitionner des données sur plusieurs serveurs et gérer l'accès dans ton appli.

Le two-phase commit existe dans pg depuis la 8.1. C'est donc très (trop) récent.

Benjamin.


Ma première question est la

Christophe Chauvet/ = 22 Septembre, 2005 - 14:26

Ma première question est la suivante: est-il possible de spécifier ou le fichier postmaster.pid doit se placer ?

La réponse est oui, on peut préciser l'endroit ou l'on veut stocker les fichiers.

effectivement 3 instances ne peuvent pas utilisés le même cluster de données initialisé par initdb

Cordialement.

Christophe Chauvet.


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.