Import nfs share on cells running in podman

Hi all,

I’m running a community edition of Pydio Cells v3 in a container and I’m facing some issues creating datasources attached to NFS shares.
I first set up the system with Podman 4.0.2 and created a volume with nfs type like

podman volume create --opt type=nfs --opt o=async --opt device=mynfs-server:/data cellsnfs

/data contains many files and subdirectories.

Then I created a pod with two containers, one for Cells and one for MySQL. In particular the Cells container has been created with:

/usr/bin/podman run --cidfile=%t/%n.ctr-id --cgroups=no-conmon --rm -d --sdnotify=conmon --replace --name pydio_cells --pod=pydiocells_pod -v data:/var/cells/data -v cellsdir:/var/cells -v /data/import:/data/import --mount 'type=volume,src=cellsnfs,dst=/opt/nfsmount' pydio/cells:latest

so that Cells mounts the NFS share as a volume on /opt/nfsmount. Note that the pod is rootfull and it’s started by systemd. So everything inside the Cells container is owned by root and all cells processes are launched by root.
I checked inside the container and the directory /opt/nfsmount contains exactly what I expect, that is the files of the NFS share. So far, so good.

Now I want to create a datasource pointing to my NFS share, that is /opt/nfsmount, so I click on +datasource and select import existing data. I choose the Datasource Identifier, say “media”, then I leave “Any peers” as “Peer address”. When it comes to Pick a folder, I select /opt/nfsmount, but then I get a bunch of errors:

When the services restart, Pydio tries to “contact object service data.objects.local3” many times, but the datasource keeps showing this message “Sync down”.

I understood that Pydio needs to write a .minio.sys directory inside /opt and in fact when I checked, no directory was present. This is the first thing I don’t get, given that cells processes are owned by root and the directory is owned by root as well.

So I decided to attach the datasource to a new directory under /opt/nfsmount, that is /opt/nfsmount/data/media. The directories being created with the Cells admin GUI, not directly by the Linux OS.

The trick works, the datasource is created. The point is that I’m not able to see the files inside /opt/nfsmount because the mountpoint of the datasource is two directories deeper.

I tried also:

  • to mount the NFS share directly on the host, that is without using a podman volume, but the result is the same.
  • to select also “flat storage”, just to be sure, but it didn’t work as well, unless again I create the mount point two directories beneath /opt/nfsmount

Did anybody else face this situation? And if yes, is there a specific setup to implement to solve it?

Thanks in advance,

Marco

You are going on right track
.minio.sys and data should be stored in the same disk.
If you use /opt/nfsmount, .minio.sys is stored in local disk - /opt but the data is in remote storage - /opt/nfsmount

You can create one more level eg: /opt/nfsmount/cellsdss, then move all existed data in /opt/nfsmount/* => /opt/nfsmount/cellsdss.
Then create new datasource from /opt/nfsmount/cellsdss.

Please clean .minio.sys & deleted existed datasource before create a new one.