[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