Re: Snapshot target and DAX-capable devices

Mike Snitzer
2018-12-12T22:43:27Z

On Wed, Dec 12 2018 at 4:15pm -0500,
Theodore Y. Ts'o <tytso@mit.edu> wrote:

> On Wed, Dec 12, 2018 at 12:50:47PM -0500, Mike Snitzer wrote:
> > On Wed, Dec 12 2018 at 11:12am -0500,
> > Christoph Hellwig <hch@infradead.org> wrote:
> >
> > > Does it really make sense to enhance dm-snapshot? I thought all serious
> > > users of snapshots had moved on to dm-thinp?
> >
> > There are cases where dm-snapshot is still useful for people. But those
> > are very niche users. I'm not opposed to others proposing enhancements
> > for dm-snapshot in general but it is definitely not a priority (Google's
> > dm-bow is an example of a case where dm-snapshot may get extended to
> > fulfill google's needs).
>
> I would expect that dm-snapshot will be used quite a lot for
> short-lived snapshots (that only live during a database backup or an
> fsck run). I would hardly call that a "niche use case".

dm-snapshot is only ~60% performant for 1 snapshot. Try to do
additional snapshots and performance crawls to a stop (though I haven't
reassessed performance in a while).

dm-snapshot has been in Linux since before 2005, I don't know of all the
users of it -- maybe there are a ton of users who only take a single
temporary snapshot and we're all oblivious.

Definitely not seeing many bugs against it (but it has been around
forever). I do know that there are relatively few people showing
interest in it. But for 4.21 I did stage a couple useful performance
fixes:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-4.21&id=61d594bb7e1cf86dca49cbc9524eb80169d9fca6
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-4.21&id=d1f7898c7a1b24aa9ae670f9cc21b65e730827eb

> One other major advantage that dm-snapshot has is that you can take a
> snapshot for any LVM volume. For dm-thinp you have migrate your
> storage to a thinp pool, and that adds a fair amount of friction to
> users migrating to dm-thinp.

dm-thinp has the concept of an "external origin". Changes to origin LVM
volume get copied out to the thin-pool (same copy cost as old
dm-snapshot). But IIRC from that point on your LVM volume is a dm-thin
device.

Mike