Re: Installing multiple instances of Postgred on one FreeBSD server - Mailing list pgsql-admin

From Jim Mercer
Subject Re: Installing multiple instances of Postgred on one FreeBSD server
Date
Msg-id 20130502125849.GA72269@reptiles.org
Whole thread Raw
In response to Installing multiple instances of Postgred on one FreeBSD server  ("Benjamin Krajmalnik" <kraj@servoyant.com>)
Responses Re: Installing multiple instances of Postgred on one FreeBSD server  (Achilleas Mantzios <achill@matrix.gatewaynet.com>)
List pgsql-admin
On Thu, May 02, 2013 at 10:10:51AM +0300, Achilleas Mantzios wrote:
> Hi, i was just lurking around,
> being previously interested in running pgsql in jail environment (must have been some years back)
> i noticed that jails had issues with running many instances of postmaster listening on the same port
> and with the same user (say e.g. postgres). So basically having cloned jails running pgsql was not
> out of the box possible without tweaking either user or port.
> Being many years out of freebsd admin, has this been remedied by now?

yeah, those issues are no longer

the key thing is to have things running on the base machine set to listen
on a specific IP, rather than all interfaces, as many applications do by
default.

so, for instance, for ssh on the base system, you would do:

sshd_enable="YES"
sshd_flags="-o ListenAddress=120.121.122.123"

this will prevent it from listening for ssh on the ip you intend to use for
the jail.

and in the jail, you can leave it listen on all interfaces, since, in the
jail, it only has its own interface.

in the case of pgsql, the best way to do it is to not have pgsql installed
on the base server, and only run it in a jail (or a couple jails, if you are
looking to smooth the upgrade from one to the next).

if you want to run pgsql on the base server, then set:
listen_addresses = '120.121.122.123'
in postgresql.conf, and there will be no conflict of listeners.

it issue of users/uids is moot, since the jail is independent of the main system.

assuming you configure the base system to listen only on its own IP, installing
on the jail, is no different than installing on a normal system.

--jim

>
> On ?????? 01 ?????? 2013 16:24:01 Jim Mercer wrote:
> > On Wed, May 01, 2013 at 02:21:44PM -0600, Benjamin Krajmalnik wrote:
> > > So essentially we would have to run jails on this - does that affect
> > > performance?
> >
> > i would say minimal impact.
> >
> > >
> > >
> > > -----Original Message-----
> > > From: Jim Mercer [mailto:jim@reptiles.org]
> > > Sent: Wednesday, May 01, 2013 2:20 PM
> > > To: Benjamin Krajmalnik
> > > Cc: pgsql-admin@postgresql.org
> > > Subject: Re: [ADMIN] Installing multiple instances of Postgred on one
> > > FreeBSD server
> > >
> > > On Wed, May 01, 2013 at 01:58:21PM -0600, Benjamin Krajmalnik wrote:
> > > > I would like to install PG 9.2 on the same server and use Slony to
> > > > replicate the databases, and once everything is up take the 9.0
> > > > cluster down.
> > >
> > > allocate a new ip to the server.
> > > reconfigure/restart 9.0 to listen on the main IP (not "all" as default)
> > >
> > > use ezjail to create a freebsd jail on thenew IP
> > >
> > > install 9.2 in the jail
> > >
> > > treat it them as two servers.
> > >
> > > point clients at new ip.
> > >
> > > once migrated, delete all 9.0 from the main server.
> > >
> > > if you need to upgrade again, add another jail.
> > >
> > > stop and delete the old jail whe the next upgrade is complete.
> > >
> > > repeat as often as you want to upgrade.
> > >
> > > i'm pretty sure this can be adapted to linux, but i forget what their
> > > jail equivilent is.
> > >
> > > the overhead is minimal
> > >
> > >
> > >
> >
> >
> -
> Achilleas Mantzios
> IT DEV
> IT DEPT

--
Jim Mercer     Reptilian Research      jim@reptiles.org    +1 416 410-5633
"He who dies with the most toys is nonetheless dead"


pgsql-admin by date:

Previous
From: Jim Mercer
Date:
Subject: Re: Installing multiple instances of Postgred on one FreeBSD server
Next
From: Silvana Bravo
Date:
Subject: Migration from Oracle 11g to Postgresql