[linux-lvm] lvm commands hanging when run from inside a kubernetes pod

Abhishek Agarwal mragarwal.developer at gmail.com
Wed Jun 1 08:28:03 UTC 2022


These are not different LVM processes. The container process is using the
LVM binary that the node itself has. We have achieved this by using scripts
that point to the same lvm binary that is used by the node.

Configmap(~shell script) used for the same has the following contents where
`/host` refers to the root directory of the node:

get_bin_path: |
  #!/bin/sh
  bin_name=$1
  if [ -x /host/bin/which ]; then
    echo $(chroot /host /bin/which $bin_name | cut -d ' ' -f 1)
  elif [ -x /host/usr/bin/which ]; then
    echo $(chroot /host /usr/bin/which $bin_name | cut -d ' ' -f 1)
  else
    $(chroot /host which $bin_name | cut -d ' ' -f 1)
  fi

lvcreate: |
  #!/bin/sh
  path=$(/sbin/lvm-eg/get_bin_path "lvcreate")
  chroot /host $path "$@"

Also, the above logs in the pastebin link have errors because the vg lock
has not been acquired and hence creation commands will fail. Once the lock
is acquired, the `strace -f` command gives the following output being
stuck. Check out this link for full details ->
https://pastebin.com/raw/DwQfdmr8

P.S: We at OpenEBS are trying to provide lvm storage to cloud native
workloads with the help of kubernetes CSI drivers and since all these
drivers run as pods and help dynamic provisioning of kubernetes
volumes(storage) for the application, the lvm commands needs to be run from
inside the pod. Reference -> https://github.com/openebs/lvm-localpv

Regards

On Wed, 1 Jun 2022 at 13:06, Demi Marie Obenour <demi at invisiblethingslab.com>
wrote:

> On Wed, Jun 01, 2022 at 12:20:32AM +0530, Abhishek Agarwal wrote:
> > Hi Roger. Thanks for your reply. I have rerun the command with `strace
> -f`
> > as you suggested. Here is the pastebin link containing the detailed
> output
> > of the command: https://pastebin.com/raw/VRuBbHBc
>
> Even if you can get LVM “working”, it is still likely to cause data
> corruption at some point, as there is no guarantee that different LVM
> processes in different namespaces will see each others’ locks.
>
> Why do you need to run LVM in a container?  What are you trying to
> accomplish?
> --
> Sincerely,
> Demi Marie Obenour (she/her/hers)
> Invisible Things Lab
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at redhat.com
> https://listman.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20220601/86e8e2ca/attachment.htm>


More information about the linux-lvm mailing list