Re: [linux-lvm] RE: [PERFORM] backup/restore - another - Mailing list pgsql-admin

From CLeon@phs.org
Subject Re: [linux-lvm] RE: [PERFORM] backup/restore - another
Date
Msg-id FDF162266E09D81193350008C7E6346425091C@pinemail1
Whole thread Raw
List pgsql-admin
Does xfs_freeze work on red hat 7.3?

Cynthia Leon

-----Original Message-----
From: Murthy Kambhampaty [mailto:murthy.kambhampaty@goeci.com]
Sent: Friday, October 17, 2003 11:34 AM
To: 'Tom Lane'; Murthy Kambhampaty
Cc: 'Jeff'; Josh Berkus; markw@osdl.org;
pgsql-performance@postgresql.org; linux-lvm@sistina.com;
pgsql-admin@postgresql.org
Subject: [linux-lvm] RE: [ADMIN] [PERFORM] backup/restore - another
area.


Friday, October 17, 2003 12:05, Tom Lane [mailto:tgl@sss.pgh.pa.us] wrote:

>Murthy Kambhampaty <murthy.kambhampaty@goeci.com> writes:
>> ... The script handles situations
>> where (i) the XFS filesystem containing $PGDATA has an
>external log and (ii)
>> the postmaster log ($PGDATA/pg_xlog) is written to a
>filesystem different
>> than the one containing the $PGDATA folder.
>
>It does?  How exactly can you ensure snapshot consistency between
>data files and XLOG if they are on different filesystem

Say, you're setup looks something like this:

mount -t xfs /dev/VG1/LV_data /home/pgdata
mount -t xfs /dev/VG1/LV_xlog /home/pgdata/pg_xlog

When you want to take the filesystem backup, you do:

Step 1:
xfs_freeze -f /dev/VG1/LV_xlog
xfs_freeze -f /dev/VG1/LV_data
    This should finish any checkpoints that were in progress, and not
start any new ones
    till you unfreeze. (writes to an xfs_frozen filesystem wait for the
xfs_freeze -u,
    but reads proceed; see text from xfs_freeze manpage in postcript
below.)


Step2:
create snapshots of /dev/VG1/LV_xlog and /dev/VG1/LV_xlog

Step 3:
xfs_freeze -u /dev/VG1/LV_data
xfs_freeze -u /dev/VG1/LV_xlog
    Unfreezing in this order should assure that checkpoints resume where
they left off, then log writes commence.


Step4:
mount the snapshots taken in Step2 somewhere; e.g. /mnt/snap_data and
/mnt/snap_xlog. Copy (or rsync or whatever) /mnt/snap_data to /mnt/pgbackup/
and /mnt/snap_xlog to /mnt/pgbackup/pg_xlog. Upon completion, /mnt/pgbackup/
looks to the postmaster like /home/pgdata would if the server had crashed at
the moment that Step1 was initiated. As I understand it, during recovery
(startup) the postmaster will roll the database forward to this point,
"checkpoint-ing" all the transactions that made it into the log before the
crash.

Step5:
remove the snapshots created in Step2.

The key is
(i) xfs_freeze allows you to "quiesce" any filesystem at any point in time
and, if I'm not mistaken, the order (LIFO) in which you freeze and unfreeze
the two filesystems: freeze $PGDATA/pg_xlog then $PGDATA; unfreeze $PGDATA
then $PGDATA/pg_xlog.
(ii) WAL recovery assures consistency after a (file)sytem crash.

Presently, the test server for my backup scripts is set-up this way, and the
backup works flawlessly, AFAICT. (Note that the backup script starts a
postmaster on the filesystem copy each time, so you get early warning of
problems. Moreover the data in the "production" and "backup" copies are
tested and found to be identical.

Comments? Any suggestions for additional tests?

Thanks,
    Murthy

PS: From the xfs_freeze manpage:
"xfs_freeze suspends and resumes access to an XFS filesystem (see
xfs(5)).

xfs_freeze halts new access to the filesystem and creates a stable image
on disk. xfs_freeze is intended to be used with volume managers and
hardware RAID devices that support the creation of snapshots.

The mount-point argument is the pathname of the directory where the
filesystem is mounted. The filesystem must be mounted to be frozen (see
mount(8)).

The -f flag requests the specified XFS filesystem to be frozen from new
modifications. When this is selected, all ongoing transactions in the
filesystem are allowed to complete, new write system calls are halted,
other calls which modify the filesystem are halted, and all dirty data,
metadata, and log information are written to disk. Any process
attempting to write to the frozen filesystem will block waiting for the
filesystem to be unfrozen.

Note that even after freezing, the on-disk filesystem can contain
information on files that are still in the process of unlinking. These
files will not be unlinked until the filesystem is unfrozen or a clean
mount of the snapshot is complete.

The -u option is used to un-freeze the filesystem and allow operations
to continue. Any filesystem modifications that were blocked by the
freeze are unblocked and allowed to complete."

_______________________________________________
linux-lvm mailing list
linux-lvm@sistina.com
http://lists.sistina.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

==============================================================================
--- PRESBYTERIAN HEALTHCARE SERVICES DISCLAIMER ---

This message originates from Presbyterian Healthcare Services or one of its
affiliated organizations. It contains information, which may be confidential
or privileged, and is intended only for the individual or entity named above.
It is prohibited for anyone else to disclose, copy, distribute or use the
contents of this message. All personal messages express views solely of the
sender, which are not to be attributed to Presbyterian Healthcare Services or
any of its affiliated organizations, and may not be distributed without this
disclaimer. If you received this message in error, please notify us
immediately at postmaster@phs.org.
==============================================================================


pgsql-admin by date:

Previous
From: Nathan Scott
Date:
Subject: Re: [linux-lvm] RE: [PERFORM] backup/restore - another ar ea.
Next
From: Brian Ristuccia
Date:
Subject: dumping tables from badly damaged db