From: Spelic <spelic@shiftmail.org>
To: device-mapper development <dm-devel@redhat.com>
Subject: dm-thin f.req. : SEEK_DATA / SEEK_HOLE / SEEK_DISCARD
Date: Tue, 01 May 2012 14:53:22 +0200 [thread overview]
Message-ID: <4F9FDCC2.2080905@shiftmail.org> (raw)
Dear dm-thin developers,
I thought that it would be immensely useful to have a SEEK_DATA /
SEEK_HOLE implementation for dm-thin and/or even for the older non-thin
snapshotting mechanism.
This would allow to implement a mechanism like the acclaimed "zfs send"
with dm snapshots, i.e. cheaply replicate a thin snapshot remotely once
the parent snapshot has been replicated already. Extremely useful imho.
Is there any plan to do that?
The "HOLE" would mean "data comes from parent snapshot/device", while
DATA is "data that has changed since the parent snapshot". Discarded
regions that were not discarded in the parent snapshot should preferably
appear as zeroed DATA and not HOLE, or a new type SEEK_DISCARD because
if you make it HOLE, you lose information (you lose: "such data region
was meaningful in the parent snapshot but is not meaningful in the child
snapshot", and this kind of information cannot be recovered later in any
way) and you lose the property that reading those regions return zeroed
data, which is a major problem for backups, see next paragraph.
Instead, if a discarded region returns zeroed DATA, not much information
is lost because any long string of zeroes is interchangeable with a
discard, i.e. you can detect zeroes and perform the discard afterwards.
A new type SEEK_DISCARD could still be better.
Another question / feature request: I would like to know if reading an
area of a thin device after a discard is guaranteed to return zeroes
(and/or can be identified as empty from userspace via a seek_data /
seek_hole or equivalent mechanism). This would be very important for
backups, so to not get scarcely compressible garbage out of an old and
now unused region.
If yes: how big should such discarded area be for that area to be seen
from userspace as hole/zeroes: 512b, 4k, or 64m? E.g. a 512b discarded
area surrounded by nondiscarded data will return zeroes on read?
Thank you
S.
next reply other threads:[~2012-05-01 12:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-01 12:53 Spelic [this message]
2012-05-01 13:08 ` dm-thin f.req. : SEEK_DATA / SEEK_HOLE / SEEK_DISCARD Christoph Hellwig
2012-05-01 14:10 ` Joe Thornber
2012-05-01 15:52 ` Spelic
2012-05-03 9:14 ` Joe Thornber
2012-05-04 17:16 ` Spelic
2012-05-09 7:55 ` Joe Thornber
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=4F9FDCC2.2080905@shiftmail.org \
--to=spelic@shiftmail.org \
--cc=dm-devel@redhat.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.