[lvm-devel] lvresize in test mode sends BLKDISCARD to SSD block devices, this will result in the file system corruption
Zdenek Kabelac
zkabelac at redhat.com
Fri Jun 22 13:34:25 UTC 2018
Dne 22.6.2018 v 11:31 Gang He napsal(a):
> Hello List,
>
> I found a bug for lvresize command, this issue can be reproduced by lvm2-2.02.178 code base.
> The reproduce steps are as below,
Hi
Good catch - yep - it seem in this case ioctl operation are flowing to device
even in test mode.
Please create BZ for lvm2 on this issue.
Zdenek
> 1) create a LV on a SSD based partition, then format this LV with ext4 file system, and mount this LV.
> e.g.
> linux-cy2k:/ # lsblk
> ...
> sdc 8:32 0 37.3G 0 disk
> ├─sdc1 8:33 0 2G 0 part [SWAP]
> ├─sdc2 8:34 0 14.7G 0 part
> │ └─cluster--vg1-test--lv 254:20 0 14G 0 lvm /mnt/ext4 <<= this LV
> └─sdc3 8:35 0 20.6G 0 part
>
> 2) enable issue discards to a logical volumes's underlying physical volume via edit "/etc/lvm/lvm.conf" file.
> e.g.
> linux-cy2k:/ # vi /etc/lvm/lvm.conf
> set "issue_discards = 1"
>
> 3) run lvresize command in test mode.
> e.g.
> inux-cy2k:/ # lvresize -v -n -L -10GB /dev/cluster-vg1/test-lv --test
>
> 4) unmount this LV, then mount this LV again.
> You will probably encounter the file system on this LV is corrupted.
> e.g.
> linux-cy2k:~ # mount /dev/cluster-vg1/test-lv /mnt/ext4/
> mount: wrong fs type, bad option, bad superblock on /dev/mapper/cluster--vg1-test--lv,
> missing codepage or helper program, or other error
>
> In some cases useful info is found in syslog - try
> dmesg | tail or so.
>
> linux-cy2k:~ # dmesg
> [3711112.342424] JBD2: no valid journal superblock found
> [3711112.342429] EXT4-fs (dm-20): error loading journal
>
> To summarize, I think this behavior is a bug and is very dangerous,
> the command in test mode should not send BLKDISCARD to the underlying block device,
> the BLKDISCARD command will make the related sectors on the block device be trimmed (lost data).
>
>
> Thanks
> Gang
>
>
> --
> lvm-devel mailing list
> lvm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/lvm-devel
>
More information about the lvm-devel
mailing list