[dm-devel] Snapshot and sparse device

Guillaume Lacôte Linux at glacote.com
Tue Oct 12 15:49:12 UTC 2004


Hello,

I am confused by how snapshotting works in dm; I base this discussion on vanilla
kernel 2.6.8. Documentation/device-mapper/zero.txt claims that if I do
  echo "0 21474836480 zero" | dmsetup create zero1
  echo "0 21474836480 snapshot /dev/mapper/zero1 /dev/sdb1 p 128" | \
     dmsetup create sparse1
and /dev/sdb1 is a 10GB partition then /dev/mapper/sparse1 will be a sparse
device with 10TB declared space back by a 10GB actual storage room. I
understand that this means that I can write up to 10GB of real data anywhere in
the 0..10TB sector range, while accesses outside of already-written data will
read zeros.

However reading from Kevin Corry presentation
http://evms.sourceforge.net/presentations/evms-utexas-lecture-2003.pdf , slide
23 I read that snapshotting performs copy-on-write. Thus if I attempt to write
from /dev/mapper/sparse1 the old data (actually a chunk of zeros) will be
written to /dev/sdb1 while my new data will be written to /dev/mapper/zero1
(which will actually discard it, see drivers/md/dm-zero.c:56-58).

This is not the expected behaviour, is it ? I believe I am confused by what the
snapshot and the snapshot-origin targets are for, and would appreciate if you
could point me to the relevant documentation on them.

 Thanks in advance,
 Guillaume Lacôte.




More information about the dm-devel mailing list