On Tue, 2026-08-25 at 11:49 -0400, Justin wrote:
> Historically, logically breaking out indexes, WAL, tables, swap, and temporary tables onto
> individual LUNs or disks made sense when spinning disks throughput bottlenecked before any
> other component in the array. However, a major drawback of splitting storage across multiple
> LUNs or disks is that it complicates disk-level snapshot backups, making it difficult to
> guarantee crash consistency across volumes captured at the exact same point in time.
>
> If you are partitioning storage by database/cluster—so each cluster or database resides on
> its own dedicated LUN—that makes sense from an isolation standpoint.
> Additionally, each VM should have its own LUN/disk isolated from other VMs. Within each VM,
> I typically use two disks: one for the OS and one for the database, configured with LVM so
> storage can easily be expanded online.
>
> Regarding WAL archiving: archive logs need to be shipped off to completely separate storage
> hardware, ideally offsite, in a different datacenter.
I agree with all that.
I recommend three file systems for a database cluster: one for the data directory, one for
pg_wal, and one for the log files. The main reason is not performance, but to avoid that
lots of data or log messages written can fill up the WAL disk and crash the server.
With multiple clusters on a single machine, you don't need a log file system for each of
them; a single one would suffice. But I'd still like to separate the data and WAL for each
cluster.
Yours,
Laurenz Albe