[linux-lvm] Multiple snapshots do weird things?

Glen Harris glen at gbrmpa.gov.au
Tue Sep 9 22:29:02 UTC 2003

 From a few notes here and there, I've been under the impression that
multiple snapshots of a single LV are possible. The problem is that
whenever I try to take more than two, everything falls apart.

I'm running Debian unstable, kernel 2.4.20, with the following packages:
kernel-patch-device-mapper	1.00.03-1
libdevmapper1.0		1.00.03-1
lvm2			2.00.06-1

I've also applied the linux-2.4.20-VFS-lock.patch from the device-mapper
1.00.05 tarball at sistina.

The kernel compiles fine and dm-mod loads. I've run devmap_mknod.sh from
the tarball as well, and I can create PVs, VGs and LVs. I can make file-
systems on them which survive reboots, and everything looks fine.

I have a shell script which creates a snapshot named for the current time:
WHEN=`date "+%Y%m%d%H%M%S"`
lvcreate -L 4M -s -n $WHEN /dev/vg0/lv0
mkdir /test/snap/$WHEN
mount /dev/vg0/$WHEN /test/snap/$WHEN

So, here's an example session which demonstrates my problem. Everything
looks fine until the third snapshot, which gives an I/O error when I try
to mount it, and also appears to trash the first snapshot - "ls -la"
doesn't even list "." or ".."!

test:~# pvcreate /dev/hdb
   Physical volume "/dev/hdb" successfully created

test:~# vgcreate -s 256k vg0 /dev/hdb
   Volume group "vg0" successfully created

test:~# lvcreate -L 512m -n lv0 vg0
   Logical volume "lv0" created

test:~# mke2fs /dev/vg0/lv0
[SNIPPED - Believe me, it worked fine]

test:~# mount /dev/vg0/lv0 /test/fs

test:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2               841340    742420     56184  93% /
/dev/mapper/vg0-lv0     507748        13    481521   1% /test/fs

test:~# ./snap
   Logical volume "20030910123716" created

test:~# cp -R * /test/fs/

test:~# sync

test:~# ./snap
   Logical volume "20030910123756" created

test:~# rm -rf /test/fs/src/

test:~# ./snap
   Logical volume "20030910123812" created
/dev/vg0/20030910123812: Input/output error
mount: you must specify the filesystem type

test:~# ls -la /test/snap/20030910123716/
total 0

test:~# ls -la /test/snap/20030910123756/
total 22
drwxr-xr-x    4 root     root         1024 Sep 10 12:37 .
drwxr-xr-x    5 root     root         4096 Sep 10 12:38 ..
drwx------    2 root     root        12288 Sep 10 12:37 lost+found
-rwxr-xr-x    1 root     root           62 Sep 10 12:37 makelv0
-rwxr-xr-x    1 root     root           41 Sep 10 12:37 makelv0~
-rwxr-xr-x    1 root     root          166 Sep 10 12:37 snap
-rwxr-xr-x    1 root     root          151 Sep 10 12:37 snap~
drwxr-xr-x    5 root     root         1024 Sep 10 12:37 src

test:~# ls -la /test/snap/20030910123812/
total 8
drwxr-xr-x    2 root     root         4096 Sep 10 12:38 .
drwxr-xr-x    5 root     root         4096 Sep 10 12:38 ..

Thanks, glen.

| Nine megs for the secretaries fair,      | One disk to rule them all,     |
| Seven megs for the hackers scarce,       | One disk to bind them,         |
| Five megs for the grads in smoky lairs,  | One disk to hold the files     |
| Three megs for system source;            | And in the darkness grind 'em. |
| Glen Harris | glen at gbrmpa.gov.au | 07 47500893 | http://www.gbrmpa.gov.au |

If you have received this transmission in error please notify us immediately
by return email and delete all copies. Any unauthorised use, disclosure or
distribution of this email is prohibited.

More information about the linux-lvm mailing list