Fresh install of Pydio, using nfs backend in mounted docker host

Hi,

I installed pydio and resolved the database error in a previous topic Charset is not supported on this version of MySQL - Pydio Cells - Pydio Forums, now running into trouble again, how can I connect pydio which is running in a docker to a nfs mount that is mounted on the docker host?
I had to add the env variable below to import my storage.

  • CELLS_MINIO_ALLOW_CROSSMOUNT=true

But when adding the datastore in pydio it fails with below error:
INF | ts=2024-06-20T17:29:34+02:00 logger=pydio.grpc.data.objects.local2 msg=Error: disk does not support O_DIRECT

My /etc/fstab on the docker host which is running in an vmware vm is:

storage.mydomain.com:/mnt/storage/Homes     /mnt/homes        nfs4 auto,defaults,retrans=4,sec=sys 0 0
storage.mydomain.com:/mnt/storage/Storage   /mnt/storage      nfs4 auto,defaults,retrans=4,sec=sys 0 0
storage.mydomain.com:/mnt/storage/Friend1       /mnt/friend1          nfs4 auto,defaults,retrans=4,sec=sys 0 0
storage.mydomain.com:/mnt/storage/Friend2      /mnt/friend2         nfs4 auto,defaults,retrans=4,sec=sys 0 0

The mounted storage resides on another VM running in the same ESXi host, that vm is TrueNAS which is FreeBSD based, I imported that zfs pool from a previous FreeBSD install years ago when I ran Pydio 8 until it stopped the support for FreeBSD when it switched to Pydio Cells.

The nfs mounts are mapped in the docker-compose file to pydio.

my storage on the docker host looks like:

root@dockers [ /mnt/storage ]# ls -l
total 2259
drwxrwx---   36 donald root   36 Dec 22 00:43 3d
drwxrwx---   26 donald root   27 Dec 23 13:22 Applications
drwxrwx---    5 donald root    5 Mar 20 18:53 Backup
drwxrwx---   21 donald root   21 Dec 23 11:03 Books
drwxrwx---   52 donald root 1534 Jun 20 20:28 Downloads
drwxrwx---  195 donald root  195 May 13 18:08 Games
drwxrwx--- 3023 donald root 3024 Jun 20 01:27 Movies
drwxrwx---   40 donald root   40 Jun 13 20:25 Music
drwxrwx---  443 donald root  444 Jun 15 15:26 Tvshows
drwxrwxrwx    6 donald root    7 Jun  9 12:14 Uploads
drwxrwx---   10 donald root   11 Apr 21  2023 Video
root@dockers [ /mnt/storage ]#

How to resolve the "Error: disk does not support O_DIRECT
" error?

How to properly import an existing storage into Pydio?
I don’t need any desktop sync, and I don’t want pydio to touch the original files or hash them into binaries.

Best Regards,
Donald.

I fixed it myself by using different mount options (noatime,nodiratime,async) at the dockers host:

root@dockers [ /etc ]# cat fstab
#system mnt-pt  type    options dump    fsck
PARTUUID=9f4e182d-c07a-4439-830c-7ef3bf219d9c   /       ext4    defaults,barrier,noatime,noacl,data=ordered     1       1
PARTUUID=d49c6543-ed19-4b10-a791-6422723a095d   /boot/efi       vfat    defaults        1       2
PARTUUID=4f43f6b0-1bff-4848-805a-cdd27396cb76 none swap sw 0 0
#/dev/cdrom     /mnt/cdrom      iso9660 ro,noauto       0       0
storage.flissinger.com:/mnt/storage/Homes     /mnt/homes        nfs4 rw,noatime,nodiratime,async,sec=sys 0 0
storage.flissinger.com:/mnt/storage/Storage   /mnt/storage      nfs4 rw,noatime,nodiratime,async,sec=sys 0 0
storage.flissinger.com:/mnt/storage/Friend1       /mnt/friend1          nfs4 rw,noatime,nodiratime,async,sec=sys 0 0
storage.flissinger.com:/mnt/storage/Friend2      /mnt/friend2         nfs4 rw,noatime,nodiratime,async,sec=sys 0 0
root@dockers [ /etc ]#

I also had to add

privileged: true

to the docker-compose settings.

In a few words:

  • you want rather structured DS than flat DS
  • beware to mount the ā€œparent folderā€ and create the root folder of the ds as a child

Typically in your docker mount is something like:

        volumes: 
            - /mnt/friend1:/data/friend1

you have to create the DS at /data/friend1/files, the technical folder for Cells (and the underlying minio library) must be created by Cells at /data/friend1/.minio.sys
→ Cells must be a able to write at /data/friend1

This subject is discussed quite a lot in the forum and in our doc, please have a look around to get further details.

1 Like

I changed the datastore, minio writes its files in a mounted data directory at the dockerhost, while the actual ā€˜friend’ files are on a mounted zfs storage by nfs.

Still having problems, hundreds of ā€œError: disk does not support O_DIRECT (cmd.StorageErr)ā€

root@dockers [ / ]# tune2fs -l /dev/sda2 | grep 'Filesystem features'
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
root@dockers [ / ]#

Thinking of giving up on Pydio, error after error, it’s hard to set it up.

Have a read here, I ran into a similar problem. Although I chose to mount the data store within Portainer and my compose stack. I used SMB, but you might be able to get some insight using NFS.

I do like this project very much, I spent weeks sometimes getting things to work together nicely - some of the implementation is not what I am accustomed to, but once you get the logic and understanding in place, it does begin to make sense :wink:

2 Likes

Thanks! I will look into it.

How did you do? Get it installed and running properly?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.