zos icon indicating copy to clipboard operation
zos copied to clipboard

qsfs mounted on /var/lib/docker not working as expected

Open sameh-farouk opened this issue 4 years ago • 5 comments

i used terraform conf file to delpoy a vm with qsfs volume to test.

if qsfs volume is mounted on /var/lib/docker, the docker daemon will show some errors when started and will not be able to save images in the docker directory.

ERRO[2021-10-14T00:31:38.585981823Z] failed to mount overlay: function not implemented  storage-driver=overlay2
ERRO[2021-10-14T00:31:38.591254931Z] exec: "fuse-overlayfs": executable file not found in $PATH  storage-driver=fuse-overlayfs
ERRO[2021-10-14T00:31:38.605236802Z] AUFS was not found in /proc/filesystems       storage-driver=aufs
ERRO[2021-10-14T00:31:38.629026028Z] failed to mount overlay: function not implemented  storage-driver=overlay
ERRO[2021-10-14T00:31:38.630029245Z] Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a more recent version of libdevmapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/dockerd/#storage-driver-options  storage-driver=devicemapper

if I try to download an image, it will fail with input/output error.

vm1:/# docker run -dit --name my-running-app -p 8080:80 httpd:2.4
Unable to find image 'httpd:2.4' locally
2.4: Pulling from library/httpd
b380bbd43752: Pull complete 
d0c6942edac3: Pull complete 
d027638c026c: Pull complete 
17082a2122d5: Pull complete 
0b7d42e498cc: Pull complete 
Digest: sha256:f03a63735d3653045a3b1f5490367415e9534d8abfe0b21252454dc85ca09800
Status: Downloaded newer image for httpd:2.4
ERRO[2021-10-14T00:35:54.127680460Z] Handler for POST /v1.41/containers/create returned error: symlink libext2fs.so.2.4 /var/lib/docker/vfs/dir/589193b59dec0c966863b4893e9d56255b654bcfb7ac2ebb0c6ce61f44563c56-init/lib/x86_64-linux-gnu/libext2fs.so.2: input/output error 
docker: Error response from daemon: symlink libext2fs.so.2.4 /var/lib/docker/vfs/dir/589193b59dec0c966863b4893e9d56255b654bcfb7ac2ebb0c6ce61f44563c56-init/lib/x86_64-linux-gnu/libext2fs.so.2: input/output error.
See 'docker run --help'.

mount a normal volume on the same path /var/lib/docker will not show the errors when docker daemon starting, and it will be able to download images and start containers normally.

docked full starting logs when qsfs mount used

m1:/# INFO[2021-10-14T00:31:37.978119960Z] Starting up                                  
INFO[2021-10-14T00:31:38.065237508Z] libcontainerd: started new containerd process  pid=254
INFO[2021-10-14T00:31:38.065892904Z] parsed scheme: "unix"                         module=grpc
INFO[2021-10-14T00:31:38.066070061Z] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2021-10-14T00:31:38.066232889Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2021-10-14T00:31:38.066541459Z] ClientConn switching balancer to "pick_first"  module=grpc
INFO[2021-10-14T00:31:38.219446439Z] starting containerd                           revision=05f951a3781f4f2c1911b05e61c160e9c30eaa8e version=v1.4.4
INFO[2021-10-14T00:31:38.301253826Z] loading plugin "io.containerd.content.v1.content"...  type=io.containerd.content.v1
INFO[2021-10-14T00:31:38.308883928Z] loading plugin "io.containerd.snapshotter.v1.aufs"...  type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.325156116Z] skip loading plugin "io.containerd.snapshotter.v1.aufs"...  error="aufs is not supported (modprobe aufs failed: exit status 1 \"modprobe: can't change directory to '/lib/modules': No such file or directory\\n\"): skip plugin" type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.325313520Z] loading plugin "io.containerd.snapshotter.v1.btrfs"...  type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.328964585Z] skip loading plugin "io.containerd.snapshotter.v1.btrfs"...  error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.btrfs (virtiofs) must be a btrfs filesystem to be used with the btrfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.329211452Z] loading plugin "io.containerd.snapshotter.v1.devmapper"...  type=io.containerd.snapshotter.v1
WARN[2021-10-14T00:31:38.329312059Z] failed to load plugin io.containerd.snapshotter.v1.devmapper  error="devmapper not configured"
INFO[2021-10-14T00:31:38.329380119Z] loading plugin "io.containerd.snapshotter.v1.native"...  type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.335195945Z] loading plugin "io.containerd.snapshotter.v1.overlayfs"...  type=io.containerd.snapshotter.v1
WARN[2021-10-14T00:31:38.344246104Z] failed to load plugin io.containerd.snapshotter.v1.overlayfs  error="/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs does not support d_type. If the backing filesystem is xfs, please reformat with ftype=1 to enable d_type support"
INFO[2021-10-14T00:31:38.344647394Z] loading plugin "io.containerd.snapshotter.v1.zfs"...  type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.345122161Z] skip loading plugin "io.containerd.snapshotter.v1.zfs"...  error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.zfs must be a zfs filesystem to be used with the zfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1
INFO[2021-10-14T00:31:38.345216241Z] loading plugin "io.containerd.metadata.v1.bolt"...  type=io.containerd.metadata.v1
WARN[2021-10-14T00:31:38.348455643Z] could not use snapshotter devmapper in metadata plugin  error="devmapper not configured"
WARN[2021-10-14T00:31:38.348576350Z] could not use snapshotter overlayfs in metadata plugin  error="/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs does not support d_type. If the backing filesystem is xfs, please reformat with ftype=1 to enable d_type support"
INFO[2021-10-14T00:31:38.348804530Z] metadata content store policy set             policy=shared
INFO[2021-10-14T00:31:38.361313134Z] loading plugin "io.containerd.differ.v1.walking"...  type=io.containerd.differ.v1
INFO[2021-10-14T00:31:38.361452231Z] loading plugin "io.containerd.gc.v1.scheduler"...  type=io.containerd.gc.v1
INFO[2021-10-14T00:31:38.361571641Z] loading plugin "io.containerd.service.v1.introspection-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.361730751Z] loading plugin "io.containerd.service.v1.containers-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.361809291Z] loading plugin "io.containerd.service.v1.content-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.361895731Z] loading plugin "io.containerd.service.v1.diff-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.361961531Z] loading plugin "io.containerd.service.v1.images-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.362018181Z] loading plugin "io.containerd.service.v1.leases-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.362072991Z] loading plugin "io.containerd.service.v1.namespaces-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.362127568Z] loading plugin "io.containerd.service.v1.snapshots-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.362180964Z] loading plugin "io.containerd.runtime.v1.linux"...  type=io.containerd.runtime.v1
INFO[2021-10-14T00:31:38.382948210Z] loading plugin "io.containerd.runtime.v2.task"...  type=io.containerd.runtime.v2
INFO[2021-10-14T00:31:38.406024901Z] loading plugin "io.containerd.monitor.v1.cgroups"...  type=io.containerd.monitor.v1
INFO[2021-10-14T00:31:38.409472950Z] loading plugin "io.containerd.service.v1.tasks-service"...  type=io.containerd.service.v1
INFO[2021-10-14T00:31:38.410086220Z] loading plugin "io.containerd.internal.v1.restart"...  type=io.containerd.internal.v1
INFO[2021-10-14T00:31:38.410795794Z] loading plugin "io.containerd.grpc.v1.containers"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411055221Z] loading plugin "io.containerd.grpc.v1.content"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411138799Z] loading plugin "io.containerd.grpc.v1.diff"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411229514Z] loading plugin "io.containerd.grpc.v1.events"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411314899Z] loading plugin "io.containerd.grpc.v1.healthcheck"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411399314Z] loading plugin "io.containerd.grpc.v1.images"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411494131Z] loading plugin "io.containerd.grpc.v1.leases"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411549364Z] loading plugin "io.containerd.grpc.v1.namespaces"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.411732984Z] loading plugin "io.containerd.internal.v1.opt"...  type=io.containerd.internal.v1
INFO[2021-10-14T00:31:38.417082177Z] loading plugin "io.containerd.grpc.v1.snapshots"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.417253672Z] loading plugin "io.containerd.grpc.v1.tasks"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.417309625Z] loading plugin "io.containerd.grpc.v1.version"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.417366208Z] loading plugin "io.containerd.grpc.v1.introspection"...  type=io.containerd.grpc.v1
INFO[2021-10-14T00:31:38.437524982Z] serving...                                    address=/var/run/docker/containerd/containerd-debug.sock
INFO[2021-10-14T00:31:38.458576378Z] serving...                                    address=/var/run/docker/containerd/containerd.sock.ttrpc
INFO[2021-10-14T00:31:38.474999714Z] serving...                                    address=/var/run/docker/containerd/containerd.sock
INFO[2021-10-14T00:31:38.475581007Z] containerd successfully booted in 0.280236s  
INFO[2021-10-14T00:31:38.515874160Z] parsed scheme: "unix"                         module=grpc
INFO[2021-10-14T00:31:38.516029683Z] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2021-10-14T00:31:38.516098630Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2021-10-14T00:31:38.516131707Z] ClientConn switching balancer to "pick_first"  module=grpc
INFO[2021-10-14T00:31:38.527000384Z] parsed scheme: "unix"                         module=grpc
INFO[2021-10-14T00:31:38.527083547Z] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2021-10-14T00:31:38.527199660Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2021-10-14T00:31:38.527239430Z] ClientConn switching balancer to "pick_first"  module=grpc
ERRO[2021-10-14T00:31:38.585981823Z] failed to mount overlay: function not implemented  storage-driver=overlay2
ERRO[2021-10-14T00:31:38.591254931Z] exec: "fuse-overlayfs": executable file not found in $PATH  storage-driver=fuse-overlayfs
ERRO[2021-10-14T00:31:38.605236802Z] AUFS was not found in /proc/filesystems       storage-driver=aufs
ERRO[2021-10-14T00:31:38.629026028Z] failed to mount overlay: function not implemented  storage-driver=overlay
ERRO[2021-10-14T00:31:38.630029245Z] Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a more recent version of libdevmapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/dockerd/#storage-driver-options  storage-driver=devicemapper
WARN[2021-10-14T00:31:38.722360290Z] Your kernel does not support CPU realtime scheduler 
WARN[2021-10-14T00:31:38.722430533Z] Your kernel does not support cgroup blkio weight 
WARN[2021-10-14T00:31:38.722453983Z] Your kernel does not support cgroup blkio weight_device 
INFO[2021-10-14T00:31:38.722933277Z] Loading containers: start.                   
WARN[2021-10-14T00:31:38.753576571Z] Failed to find ip6tables: exec: "ip6tables": executable file not found in $PATH 
INFO[2021-10-14T00:31:39.185606140Z] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address 
INFO[2021-10-14T00:31:39.453686274Z] Loading containers: done.                    
INFO[2021-10-14T00:31:39.525360626Z] Docker daemon                                 commit=46229ca1d815cfd4b50eb377ac75ad8300e13a85 graphdriver(s)=vfs version=20.10.3
INFO[2021-10-14T00:31:39.538124173Z] Daemon has completed initialization          
INFO[2021-10-14T00:31:39.664916147Z] API listen on /var/run/docker.sock

sameh-farouk avatar Oct 18 '21 10:10 sameh-farouk

@maxux @LeeSmet

xmonader avatar Oct 18 '21 11:10 xmonader

This is (from experience) a fuse filesystem issue. the zdb-fs is probably missing the statfs call implementation. and then the overlay filesystem fails to use it.

@maxux

muhamadazmy avatar Oct 19 '21 10:10 muhamadazmy

statfs is implemented.

Docker use special driver for each filesystem. It make sens for me that it doesn't support fuse stuff. Why would you do that anyway ?!

It could maybe works by forcing some legacy driver ? Anyway this is not a zdbfs issue but docker issue.

maxux avatar Oct 19 '21 13:10 maxux

@maxux latest update that this might be related to zdbfs not working as upper layer in an overlay mount. So can we link this issue here with update if this gonna be fixed or not ?

muhamadazmy avatar Oct 21 '21 08:10 muhamadazmy

https://github.com/threefoldtech/0-db-fs/issues/29 Again it's not zdbfs issue, but any fuse fs not supporting this.

maxux avatar Oct 21 '21 11:10 maxux