Proxmox LXC container Rocky + ZFS + Podman + Redis

NethServer Version: NS8
Module: Proxmox LXC container with ZFS

Good morning dear friends,
I am trying in vain to use LXC Rocky for N8 on Proxmox.

I found this post, which is somewhat similar to my problem, but it doesn’t seem to use ZFS.

Proxmox 9.0.10
Storage ZFS: dataset/ns8-data

LXC Rocky unprivileged
Storage: dataset/ns8-data

Before installing NS8, I installed this:

dnf install dnf-plugins-core -y

Installation:

curl https://raw.githubusercontent.com/NethServer/ns8-core/ns8-stable/core/install.sh | bash

There are two issues here: sometimes podman returns an overlay error, and sometimes I get another error.

Scenario 1

At some point, it freezes during Podman configuration (?), regardless of whether I use another non-root user (but then I use sudo su -) or run it directly as root. The error is always the same:

Podman → overlay (above zfs)
ERRO[0000] ‘overlay’ is not supported over zfs at “/var/lib/containers/storage/overlay”
Error: remount /var/lib/containers/storage/overlay, flags: 0x40000: permission denied

If overlay returns an error:
nano /etc/containers/storage.conf

It never works that way:
[storage]
driver = “zfs”

This works, but then returns an error
[storage]
driver = “vfs”
ERRO[0000] [graphdriver] prior storage driver overlay failed: ‘overlay’

Created symlink /etc/systemd/system/default.target.wants/redis.service → /etc/systemd/system/redis.service. Job for redis.service failed because the control process exited with error code. See “systemctl status redis.service” and “journalctl -xeu redis.service” for details.

Scenario 2
Sometimes Podman does not display overlay notifications. It is unusual that it sometimes gives an error and sometimes does not, but it freezes at this point.

Start Redis DB:
Created symlink /etc/systemd/system/default.target.wants/redis.service → /etc/systemd/system/redis.service.
Generating cluster password:
Generating api-server password:
Generating node password:
AUTH failed: WRONGPASS invalid username-password pair or user is disabled.
OK
3
3
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
Start API server and core agents:
Created symlink /etc/systemd/system/multi-user.target.wants/api-server.service → /etc/systemd/system/api-server.service.
Created symlink /etc/systemd/system/default.target.wants/agent@cluster.service → /etc/systemd/system/agent@.service.
Created symlink /etc/systemd/system/default.target.wants/agent@node.service → /etc/systemd/system/agent@.service.
Created symlink /etc/systemd/system/default.target.wants/rclone-webdav.service → /etc/systemd/system/rclone-webdav.service.
Start node timers
Created symlink /etc/systemd/system/timers.target.wants/password-warning.timer → /etc/systemd/system/password-warning.timer.
Grant initial permissions:
Install Traefik:
<7>podman-pull-missing Package traefik · GitHub
Trying to pull ``ghcr.io/nethserver/traefik:4.0.1…
Getting image source signatures
Copying blob sha256:fe4f9d99cae99518c257c7c84d881b7e063840bbb5d24f5b9e849a9afa8f015c
Copying config sha256:6faf33d8bd223cc5604384ae13d772f9b5fd12d1fa869910e42f1c45b0cd059d
Writing manifest to image destination
6faf33d8bd223cc5604384ae13d772f9b5fd12d1fa869910e42f1c45b0cd059d
<7>extract-ui Package traefik · GitHub
Extracting container filesystem ui to /var/lib/nethserver/cluster/ui/apps/traefik1
ui/index.html
cf606b607b03b1f653b548888e3d09080634b712a4ac798cbc3a8dfd738bb539
Assertion failed
File “/var/lib/nethserver/cluster/actions/add-module/50update”, line 196, in
agent.assert_exp(create_module_result[‘exit_code’] == 0) # Ensure create-module is successful

DEBUG senario 2:
podman --version
podman version 5.4.0

podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54dd7289bffb ``ghcr.io/nethserver/redis:3.12.3`` redis-server /dat… 15 minutes ago Up 15 minutes 6379/tcp redis
5a7597674714 ``ghcr.io/nethserver/restic:3.12.3`` rclone serve webd… 15 minutes ago Up 15 minutes rclone-webdav

podman info | grep -i storage:

configFile: /etc/containers/storage.conf
graphRoot: /var/lib/containers/storage
runRoot: /run/containers/storage
volumePath: /var/lib/containers/storage/volumes

podman system reset
WARNING! This will remove:
- all containers
- all pods
- all images
- all networks
- all build cache
- all machines
- all volumes
- the graphRoot directory: “/var/lib/containers/storage”
- the runRoot directory: “/run/containers/storage”
Are you sure you want to continue? [y/N] y
[… I run the installation command again.]
Start Redis DB:
Generating cluster password:
Generating api-server password:
Generating node password:
AUTH failed: WRONGPASS invalid username-password pair or user is disabled.
OK
3
3
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
Start API server and core agents:
Start node timers
Grant initial permissions:
Install Traefik:
Traceback (most recent call last):
File “/usr/local/sbin/add-module”, line 34, in
result = agent.tasks.run(
^^^^^^^^^^^^^^^^
File “/usr/local/agent/pypkg/agent/tasks/run.py”, line 39, in run
results = runp([taskrq], **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/agent/pypkg/agent/tasks/run.py”, line 50, in runp
return asyncio.run(_runp(tasks, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/asyncio/base_events.py”, line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File “/usr/local/agent/pypkg/agent/tasks/run.py”, line 120, in _runp
return await asyncio.gather(*runners, return_exceptions=(len(tasks) > 1))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/agent/pypkg/agent/tasks/run.py”, line 127, in _run_with_protocol
return await run_redisclient(taskrq, **pconn)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/agent/pypkg/agent/tasks/redisclient.py”, line 77, in run_redisclient
await _task_submission_check_client_idle(rdb, taskrq, kwargs[‘check_idle_time’])
File “/usr/local/agent/pypkg/agent/tasks/redisclient.py”, line 41, in _task_submission_check_client_idle
raise TaskSubmissionCheckFailed(f"Client "{taskrq[‘agent_id’]}" was not found")
agent.tasks.exceptions.TaskSubmissionCheckFailed: Client “cluster” was not found

I’m afraid it’s not possible, see also Nethserver 8 inside a Proxmox LXC Debian Container?

2 Likes

:confused: :downcast_face_with_sweat:
I actually see many people trying to install NS8 in an LXC container. It might be useful to mention this on the installation page, as it would save a lot of wasted time.

3 Likes
3 Likes