On Tue, Jun 19 2012 at 3:58pm -0400,
Ted Ts'o <tytso@xxxxxxx> wrote:
> On Tue, Jun 19, 2012 at 11:28:56AM -0400, Mike Snitzer wrote:
> > That is an lvm2 BZ but there is further kernel work needed.
> > It should be noted that the "external origin" feature was added to the
> > thinp target with this commit:
> > http://git.kernel.org/linus/2dd9c257fbc243aa76ee6d
> > It is start, but external origin is kept read-only and any writes
> > trigger allocation of new blocks within the thin-pool.
> Hmm... maybe this is what I had been told. I thought there was some
> feature where you could take a read-only thinp snapshot of an external
> volume (i.e., a pre-existing LVM2 volume, or a block device), and then
> after that, make read-write snapshots using the read-only snapshot as
> a base? Is that something that works today, or is planned? Or am I
> totally confused?
The commit I referenced basically provides that capability.
> And if it is something that works today, is there a web site or
> documentation file that gives a recipe for how to use it if we want to
> do some performance experiments (i.e., it doesn't have to be a user
> friendly interface if that's not ready yet).
Documentation/device-mapper/thin-provisioning.txt has details on how to
use dmsetup to create a thin device that uses a read-only external
origin volume (so all reads to unprovisioned areas of the thin device
will be remapped to the external origin -- "external" meaning the volume
outside of the thin-pool).
The creation of a thin device w/ a read-only external origin gets you
started with a thin device that is effectively a snapshot of the origin
volume. That thin device is read-write -- all writes are provisioned
from the thin-pool that is backing the thin device. And you can take
snapshots (or recursive snapshots) of that thin device.