Re: Internal error: Referenced LV pvmove0 not listed in VG

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Teigland kirjoitti 2019-04-24 21:05:
On Wed, Apr 24, 2019 at 08:10:11PM +0300, Anssi Hannula wrote:
Anssi Hannula kirjoitti 2019-04-24 02:06:
> Hi all,
>
> I'm getting the following error when trying to run a pvmove command:
>
> # pvmove -v /dev/md0:18122768-19076597
>     Cluster mirror log daemon not included in build.
>     Archiving volume group "delta" metadata (seqno 72).
>     Creating logical volume pvmove0
>     activation/volume_list configuration setting not defined: Checking
> only host tags for delta/home_r.
>     Moving 167398 extents of logical volume delta/home_r.
>     activation/volume_list configuration setting not defined: Checking
> only host tags for delta/data_r.
>   Internal error: Referenced LV pvmove0 not listed in VG delta.
>
> This is with git master, but I see the same on 2.02.177.

This old comment stands out as possibly related:

  /* FIXME Cope with non-contiguous => splitting existing segments */

https://sourceware.org/git/?p=lvm2.git;a=blob;f=tools/pvmove.c;h=c5e39292228393d6d2ce0a21018dba5b5c306da5;hb=HEAD#l342

It seems you're trying to pvmove a range that covers two segments, which I guess doesn't work (I don't know why it doesn't check for this to provide a better error.) If you pvmove segments separately it should avoid that
limitation (your test works for me if I do "pvmove
/dev/loop0:18122768-18909199" which avoids crossing a segment boundary.)

Thanks, pvmoving the segments separately seems to work around the issue (well, at least the first pvmove started fine).




Here is a short reproducer:

------clip------
#!/bin/sh

set -ex

mkdir -p lvmtestdir
mount -t tmpfs none lvmtestdir
cd lvmtestdir

truncate --size=$((156275497728*512)) testimg1
truncate --size=$((46883372928*512)) testimg2

dev1="$(losetup -f --show testimg1)"
dev2="$(losetup -f --show testimg2)"

pvcreate "$dev1"
pvcreate "$dev2"

vgcreate TESTVG "$dev1" "$dev2"

lvcreate --name=lv0 -l $((1048576+167398)) TESTVG \
	"$dev1":0+655360 \
	"$dev1":17037866+393216 \
	"$dev1":18909200+167398
lvcreate --name=lv1 -l $((16382506+1478118)) TESTVG \
	"$dev1":917504+16120362 \
	"$dev1":655360+262144 \
	"$dev1":17431082+1478118

# ERROR
pvmove -v "$dev1":18122768-19076597 || :

# cleanup
vgremove --force TESTVG
losetup -d "$dev1"
losetup -d "$dev2"
cd ..
sleep 1 # lvmtestdir busy?
umount lvmtestdir
------clip------

--
Anssi Hannula

_______________________________________________
linux-lvm mailing list
linux-lvm@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/



[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux