[linux-lvm] can't remove snapshot
Zdenek Kabelac
zkabelac at redhat.com
Thu Apr 11 11:09:16 UTC 2019
Dne 10. 04. 19 v 15:36 Lentes, Bernd napsal(a):
>
> ----- Am 9. Apr 2019 um 15:24 schrieb Zdenek Kabelac zdenek.kabelac at gmail.com:
>
>> Dne 09. 04. 19 v 15:00 Lentes, Bernd napsal(a):
>>> Hello list,
>>>
>>> I have a two-node HA-cluster which uses local and cluster LVM.
>>> cLVM is currently stopped, I try to remove a snapshot from the root lv which
>>> is located on a local VG.
>>> I get this error:
>>> ha-idg-2:/mnt/spp # lvremove -fv vg_local/lv_snap_pre_sp4
>>> connect() failed on local socket: No such file or directory
>>> Internal cluster locking initialisation failed.
>>> WARNING: Falling back to local file-based locking.
>>> Volume Groups with the clustered attribute will be inaccessible.
>>> Archiving volume group "vg_local" metadata (seqno 26).
>>> Removing snapshot volume vg_local/lv_snap_pre_sp4.
>>> Loading table for vg_local-lv_root (254:8).
>>> device-mapper: reload ioctl on (254:8) failed: Invalid argument
>>> Failed to refresh lv_root without snapshot.
>>>
>>
>> Hi
>>
>> Have you tried to converted clustered VG to be a non-clustered one ?
>> And use file locking to proceed with operation on local device?
>>
>> Zdenek
>
> Hi,
>
> i tried all i found on the net.
> Stopping udev before lvremove, dmsetup remove before, lock the device with lockdev,
> tried to deactivate the snapshot before removing (which didn't work because then i also had
> to deactivate the root lv which is the source for the snapshot),
> stopped monitoring the snapshot, update of the complete system ...
> nothing succeeded.
> I have a SLES 12 SP4 with 4.12.14-95.13-default and lvm2-2.02.180-9.7.1.x86_64.
>
> I finally did a strace on the program:
> ...
> write(2, "Loading table for vg_local-lv_ro"..., 43Loading table for vg_local-lv_root (254:9).) = 43
> write(2, "\n", 1
> ) = 1
> ioctl(3, DM_TABLE_STATUS, 0x563eacb00c80) = 0
> ioctl(3, DM_TABLE_LOAD, 0x563eacb00c80) = -1 EINVAL (Invalid argument) <========================================================
> write(2, " ", 2 ) = 2
> write(2, "device-mapper: reload ioctl on "..., 64device-mapper: reload ioctl on (254:9) failed: Invalid argument) = 64
> write(2, "\n", 1
> ) = 1
> brk(0x563eacf92000) = 0x563eacf92000
> write(2, " ", 2 ) = 2
> write(2, "Failed to refresh lv_root withou"..., 43Failed to refresh lv_root without snapshot.) = 43
> write(2, "\n", 1
> ) = 1
>
> This seems to be the culprit:
> ioctl(3, DM_TABLE_LOAD, 0x563eacb00c80) = -1 EINVAL
>
> fd 3 seems to be /dev/mapper/control. DM_TABLE_LOAD is defined in include/uapi/linux/dm-ioctl.h:
> #define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl)
> And the memory adress is the same as the one used successfully one line before.
> Error -1 is, following man:
> EINVAL: request or argp is not valid
> In the manpage sys/ioctl.h is mentioned, but i don't find it in my sources.
>
What is the related error message from kernel (IOCTL) - check and show dmesg
messages. Eventually please supply
'dmsetup table'
'dmsetup status'
'dmsetup info -c'
More information about the linux-lvm
mailing list