Re: LVM snapshots

From: Ragnar Kjørstad <postgres(at)ragnark(dot)vestdata(dot)no>
To: Matt Clark <matt(at)ymogen(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter_e(at)gmx(dot)net>, Murthy Kambhampaty <murthy(dot)kambhampaty(at)goeci(dot)com>, pgsql-admin(at)postgresql(dot)org
Subject: Re: LVM snapshots
Date: 2003-03-17 15:31:48
Message-ID: 20030317153148.GC23149@vestdata.no
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Mon, Mar 17, 2003 at 03:16:19PM -0000, Matt Clark wrote:
> > Ah, I see: so while the freeze is on, writes to the frozen volume cost
> > about 3x normal (1 write -> 1 read + 2 writes), but establishing and
> > discontinuing the freeze cost nothing. And if you have a crash the
> > volume is still in the proper state. Good.
>
> I think that should be 1 read + 2 writes for the first write to a given block, but just 1 write from then on.

Ah, the read is needed if you're not writing the full block, right?

Discard my email on this topic, then.

> > I would wonder though about the datastructure that LVM uses to remember
> > which blocks of the frozen volume have been copied (and where) on the
> > snapshot area. I assume this table lives in kernel memory --- what
> > happens if it gets large?
>
> /* copy on write tables in disk format */
> typedef struct lv_COW_table_disk_v1 {
> uint64_t pv_org_number;
> uint64_t pv_org_rsector;
> uint64_t pv_snap_number;
> uint64_t pv_snap_rsector;
> } lv_COW_table_disk_t;
>
> Looks like 256 bytes per disk block. At a default LVM block size of 64KB that's a 4MB table for 1GB of dirty blocks, plus whatever
> hash table overhead there might be. Not much at any rate.

I'm confused.

First I thought LVM used 32bit block-numbers.
Second, I thought 4 MB was the default extent-size.
Third, I thought this was a fixed mapping table, not a dynamic table.

I must admint it has been a long time since I read the lvm-source, so I
may have forgotten or they may have changed it.

Is this from LVM1 or LVM2?
Is the COW-table different from the regular LVM mapping table?

--
Ragnar Kjørstad
Zet.no

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Andreas Schmitz 2003-03-17 15:35:52 select database_size (another one)
Previous Message Victor Yegorov 2003-03-17 15:27:37 Re: DB archiving