From: Chris Beck <cbeck@gene.concordia.ca>
To: linux-lvm@sistina.com
Subject: Re: [linux-lvm] LVM Snapshots for remote archiving.
Date: Wed Jan 28 14:06:01 2004 [thread overview]
Message-ID: <401807B2.6060900@gene.concordia.ca> (raw)
In-Reply-To: <1075310348.25365.43.camel@david.internal.NorcrossGroup.com>
It is whispered that Greg Freemyer was heard, on or about 1/28/2004
12:19 PM to say:
>A snapshot is based on copy on write technology. I guess you could use
>it to create the transaction log you are talking about, but it is not
>what it is designed to do, and I believe significant effort would be
>involved.
>
>Basically with a snapshot, a blank disk volume is created with a flag
>table with one entry per block of master volume data. All of the flag
>entries are initialized as "unmodified".
>
>When a write is performed to the master volume, the flag table is
>checked. If the flag for that particular block is set to "unmodified",
>then a copy of the unmodified block is made to the snapshot area prior
>to the write being performed. The flag is then set to modified.
>
>Future writes to that specific block will have no effect on the flag
>table, nor on the snapshot volume.
>
>
Oh well, I guess I was thinking that it was the reverse: changes were
written to the new volume, which was then merged into the old one once
the snapshot was finished.
>For your transaction log, the flag table is significant, but the actual
>snapshot volume is not. It is just the old unmodified content.
>
>To get a true set of differences over a 24-hour period, you would have
>to create a snapshot at time T, and another at time T+24. (Easily done
>I think).
>
>Then have code that went thru the flag table for snapshot T and
>retrieved the blocks from snapshot T+24 that were marked as modified.
>(LVM will automatically get the block from the appropriate source: T+24
>or Master volume)
>
>Once done, the snapshot T would be deleted, and snapshot T+24 would be
>maintained. At the 48 hour mark, snapshot T+48 would be created and the
>process repeated.
>
>I don't think that is a trivial issue, and I think the code would have
>to implemented in the kernel.
>
>
Why the kernel? ... surely reading the flag tables could be done in user
space? I think you have the necessary logic spot on.
>New code would also have to be developed to apply the above blocks.
>
>
Hmmm. I can mess around in perl and java as well as the next guy, but
my c-fu is weak, very weak. How much would it cost to sponsor someone
to do this do you think?
--
Chris Beck / Y.A.B.A. / Fungal Genomics
CFSG / Concordia University
"La loi dans sa majestueuse égalité, interdit à tous, aux riches comme
aux pauvres de dormir sous les ponts, de coucher dans la rue et de voler
du pain." -- Anatole France (Les Lys Rouge - 1894)
next prev parent reply other threads:[~2004-01-28 14:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-27 18:05 [linux-lvm] LVM Snapshots for remote archiving Chris Beck
2004-01-27 18:46 ` Greg Freemyer
2004-01-28 11:44 ` Chris Beck
2004-01-28 12:33 ` Greg Freemyer
2004-01-28 14:06 ` Chris Beck [this message]
2004-01-29 11:52 ` Greg Freemyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=401807B2.6060900@gene.concordia.ca \
--to=cbeck@gene.concordia.ca \
--cc=linux-lvm@sistina.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.