Last week I was trying to deploy a MariaDB container to my home lab which has to use TrueNAS share as persistent storage. I'm currenly using NFS storage for my homelab docker cluster. I wasn't working right, due to some Lock errors.
So I found out that running a Sqlite db or really anything which requires files lock over NFS keep is really buggy when managed remotely via rpc.statd
and rpc.lockd
.
You can however opt for local locks, if the share is mount only by one user/server.
To enable local locks in TrueNAS, set a sysctl tunable in System->Tunables of vfs.nfsd.enable_locallocks=1
. Then add local_lock=all
to your NFS mount options.
That leads to an NFS share that can only be mounted by a single client safely, however that's usually the case with a database share.