[linux-lvm] lvm2 2.02.105 breaks snapshots
Christian Hesse
list at eworm.de
Fri Feb 7 13:14:20 UTC 2014
Zdenek Kabelac <zkabelac at redhat.com> on Tue, 2014/02/04 17:47:
> Dne 4.2.2014 09:55, Christian Hesse napsal(a):
> > Christian Hesse <list at eworm.de> on Thu, 2014/01/23 14:27:
> >> Hello everybody,
> >>
> >> looks like lvm2 2.02.105 breaks snapshots. This is my block device tree:
> >>
> >> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
> >> sda 8:0 0 477G 0 disk
> >> |-sda1 8:1 0 767M 0 part
> >> | `-vg0-boot 254:0 0 64M 0 lvm /boot
> >> |-sda2 8:2 0 444,2G 0 part
> >> | `-cvg 254:3 0 444,2G 0 crypt
> >> | |-cvg-root 254:4 0 40G 0 lvm /
> >> | |-cvg-swap 254:5 0 4G 0 lvm [SWAP]
> >> | |-cvg-log 254:6 0 1G 0 lvm /var/log
> >> | `-cvg-home 254:8 0 320G 0 lvm /home
> >> |-sda3 8:3 0 32G 0 part
> >> `-sda128 259:0 0 1M 0 part
> >>
> >> Creating a snapshot succeeds, but it is broken and can not be mounted:
> >>
> >> # lvcreate -s -pr -l50%free -n snap-home cvg/home
> >> Logical volume "snap-home" created
> >> # mount /dev/cvg/snap-home /mnt/tmp
> >> mount: /dev/mapper/cvg-snap--home is write-protected, mounting read-only
> >> mount: wrong fs type, bad option, bad superblock on
> >> /dev/mapper/cvg-snap--home, missing codepage or helper program, or other
> >> error
> >>
> >> Syslog has a lot of these messages:
> >>
> >> [ 4823.002220] EXT4-fs (dm-7): ext4_check_descriptors: Checksum for group
> >> 256 failed (43470!=57954)
> >>
> >> Downgrading to lvm2 2.02.104 fixes the problem:
> >>
> >> # lvcreate -s -pr -l50%free -n snap-home
> >> cvg/home Logical volume "snap-home" created
> >> # mount /dev/cvg/snap-home /mnt/tmp
> >> mount: /dev/mapper/cvg-snap--home is write-protected, mounting read-only
> >>
> >> This is an Arch Linux system with Linux 3.12.8.
> >
> > Hello everybody,
> >
> > did anybody notice my mail? This is a real regression for me and I would
> > like to get this sorted. I will help with whatever is needed to find the
> > problem.
>
> Ok - could you test this:
>
> Create an lv - ('lvcreate -Lsmallsize vg'
> mount this lv somewhere
> modify this filesystem (via dd)
>
> 'fsfreeze --freeze mountpoint'
>
> now - copy whole frozen device somewhere (via dd)
>
> 'fsfreeze --unfreeze mountpoint'
>
> umount mountpoint
>
> losetup -r /dev/loop_free_number frozen_copy_of_device
>
> and now - try to mount your read-only loop device copy.
>
> Does it work for you ?
>
> I've been testing this - and it seem fsfreeze API in kernel is not working
> properly and you need to reply journal.
>
> Then try to repeat the same with 3.10 kernel and 3.4 kernel.
>
> So far I'm not convinced lvm2 version has anything to do with this problem
>
> For 3.10 ext4 seems to work, but xfs is broken.
Ok, here we go:
root at leda ~ # lvcreate -n test -L 2G cvg
Logical volume "test" created
root at leda ~ # mkfs.ext4 -L test /dev/cvg/test
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=test
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root # mount /dev/cvg/test /mnt/ext
root # dd if=/dev/urandom bs=1M count=1500 of=/mnt/ext/testfile
1500+0 records in
1500+0 records out
1572864000 bytes (1,6 GB) copied, 116,697 s, 13,5 MB/s
root # fsfreeze --freeze /mnt/ext
root # dd if=/dev/cvg/test of=/tmp/test.img
4194304+0 records in
4194304+0 records out
2147483648 bytes (2,1 GB) copied, 6,15333 s, 349 MB/s
root # fsfreeze --unfreeze /mnt/ext
root # umount /mnt/ext
root # lvremove cvg/test
Do you really want to remove active logical volume test? [y/n]: y
Logical volume "test" successfully removed
root # file -s /tmp/test.img
/tmp/test.img: Linux rev 1.0 ext4 filesystem data,
UUID=18e5dba2-6d04-4d8f-b448-31bbcfbc1462, volume name "test" (extents)
(large files) (huge files)
root # losetup -f /tmp/test.img
root # mount /dev/loop0 /mnt/ext
root # losetup -f /tmp/test.img
root # mount /dev/loop0 /mnt/ext
root # umount /mnt/ext
root # losetup -d /dev/loop0
Mounting the dumped filesystem image just gives:
kernel: EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts:
(null)
Please note that file does report a clean filesystem, there is no "(needs
journal recovery)" flag set.
And just another hint... If the LVM problem occurs I can not mount the
snapshot at all. Freezer problems should not be that bad, no? (e.g. a journal
replay could be required, but it should not end up with a completely broken
filesystem.)
BTW, I found a second report with exactly this problem:
https://bugs.archlinux.org/task/38710
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Chris get my mail address: */=0;b=c[a++];)
putchar(b-1/(/* gcc -o sig sig.c && ./sig */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20140207/f018aa6a/attachment.sig>
More information about the linux-lvm
mailing list