linuxserver / docker-kasm

Kasm Workspaces platform provides enterprise-class orchestration, data loss prevention, and web streaming technology to enable the delivery of containerized workloads to your browser.
GNU General Public License v3.0
315 stars 28 forks source link

[BUG] Unable to lauch when mounted volumes are on a ZFS pool mounted over NFS #53

Closed jonny190 closed 7 months ago

jonny190 commented 7 months ago

Is there an existing issue for this?

Current Behavior

dmesg output from insode the continer

[1417769.078106] overlayfs: upper fs does not support tmpfile.
[1417769.102210] overlayfs: upper fs does not support RENAME_WHITEOUT.
[1417769.102218] overlayfs: failed to set xattr on upper
[1417769.102220] overlayfs: ...falling back to xino=off.
[1417769.102222] overlayfs: upper fs missing required features.

Expected Behavior

Unknown

Steps To Reproduce

services:
  kasm:
    image: lscr.io/linuxserver/kasm:latest
    container_name: kasm
    privileged: true
    environment:
      - PUID=1000
      - PGID=1000
      - KASM_PORT=443
      - DOCKER_MTU=1500 #optional
      - NVIDIA_VISIBLE_DEVICES=all
    volumes:
      - /mnt/nfs/appdata/kasm/data:/opt
      - /mnt/nfs/appdata/kasm/profiles:/profiles #optional
    restart: unless-stopped
    runtime: nvidia

Where fstab has the mount configured 172.*.5.208:/mnt/local/appdata /mnt/nfs/appdata nfs4 _netdev,auto 0 0

Environment

- OS: Ubuntu 22.04.3
- How docker service was installed: Installed via the guide on the docker website

CPU architecture

x86-64

Docker creation

docker compose up -d

Container logs

kasm  | [migrations] started
kasm  | [migrations] no migrations found
kasm  | ───────────────────────────────────────
kasm  |
kasm  |       ██╗     ███████╗██╗ ██████╗
kasm  |       ██║     ██╔════╝██║██╔═══██╗
kasm  |       ██║     ███████╗██║██║   ██║
kasm  |       ██║     ╚════██║██║██║   ██║
kasm  |       ███████╗███████║██║╚██████╔╝
kasm  |       ╚══════╝╚══════╝╚═╝ ╚═════╝
kasm  |
kasm  |    Brought to you by linuxserver.io
kasm  | ───────────────────────────────────────
kasm  |
kasm  | To support LSIO projects visit:
kasm  | https://www.linuxserver.io/donate/
kasm  |
kasm  | ───────────────────────────────────────
kasm  | GID/UID
kasm  | ───────────────────────────────────────
kasm  |
kasm  | User UID:    1000
kasm  | User GID:    1000
kasm  | ───────────────────────────────────────
kasm  |
kasm  | [custom-init] No custom files found, skipping...
kasm  | [ls.io-init] done.
kasm  | time="2024-04-17T22:47:11.153763425Z" level=error msg="failed to initialize a tracing processor \"otlp\"" error="no OpenTelemetry endpoint: skip plugin"
github-actions[bot] commented 7 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

thelamer commented 7 months ago

correct

jonny190 commented 7 months ago

Is there any workaround for this ?

thelamer commented 7 months ago

NFS is not a universal swap in for a hard drive. It lacks specific mechanisms for security and file locking that exist on a sane Linux filesystem. You can't store things like database file over NFS and you certainly cannot mount your docker storage directory over NFS which is what you are attempting to do here as this is a DinD container. If you are attempting to run all your applications on one machine and use NFS for 100% of your storage you are going to run into many other issues than this. Stuff like sqlite does not work properly over NFS and is used by many web applications. Look into xattrs and NFSv4 in this case specifically for Docker or consider iSCSI as it replicates a block device for network storage.