Volume partitioning (was Re: pgbackrest when data/base is symlinkedto another volume) - Mailing list pgsql-general

From Ron
Subject Volume partitioning (was Re: pgbackrest when data/base is symlinkedto another volume)
Date
Msg-id cb2eb6b8-f020-b553-30d2-e02b2760ec93@gmail.com
Whole thread Raw
In response to Re: pgbackrest when data/base is symlinked to another volume  (David Steele <david@pgmasters.net>)
Responses Re: Volume partitioning (was Re: pgbackrest when data/base issymlinked to another volume)  (David Steele <david@pgmasters.net>)
List pgsql-general
On 09/08/2018 03:07 PM, David Steele wrote:
On 9/7/18 8:47 PM, Ron wrote:
On 09/07/2018 05:22 PM, David Steele wrote:

On 9/6/18 11:21 PM, Ron wrote:

Will pgbackrest properly backup and restore the cluster if data/base, data/pg_xlog and data/pg_log are symlinks?

PGDATA=/var/lib/pgsql/9.6/data
$PGDATA/base -> /Database/9.6/base
$PGDATA/pg_log -> /Database/9.6/pg_log
$PGDATA/pg_xlog -> /Database/9.6/pg_xlog

Yes, this will work.  Note that restore does not recreate symlinks by default so you'll need to specify --link-all to enable symlink creation.

See https://pgbackrest.org/configuration.html#section-restore/option-link-all for details.

Using symlinks in this way will make management of your clusters more difficult, mostly because systems need more provisioning before restores can be performed.  In general I'd recommend against it unless there are performance considerations.

Now that I'm thinking more about what you wrote... "data" isn't on it's own partition.  data/*base* has it's own partition.

What's the recommended method for putting *base**/* on a partition different from data/?  Or is that not recommended?

All the user data goes in base so there's really no need to separate it out of data.  Typically pg_wal and tablespaces are relocated onto different devices for performance (or to get more space).  If the partitions are on the same device then there's no performance benefit, just admin hassle.


Googled "postgresql disk partitioning" and "postgresql volume partitioning" without much success.

Is the best practice volume partitioning:
/Database/9.6/data
/Database/9.6/data/pg_log
/Database/9.6/data/pg_xlog

where /var/lib/pgsql/9.6 (on RHEL6) is a symlink to /Database/9.6/data and PGDATA=/Database/9.6/data

or

/Database/9.6/data/base
/Database/9.6/data/pg_log
/Database/9.6/data/pg_xlog

where PGDATA=/var/lib/pgsql/9.6/data and base, pg_log and px_xlog are symlinks to the partitions?

Thanks

--
Angular momentum makes the world go 'round.

pgsql-general by date:

Previous
From: David Steele
Date:
Subject: Re: pgbackrest when data/base is symlinked to another volume
Next
From: magodo
Date:
Subject: how to know current xlog location on standby after primary is down