I haven’t done enough with Proxy… There is a handle mapping option that you may need to
use if the proxied handles are too big for NFSv3.
Frank
From: Nick Couchman [mailto:nick.e.couchman@gmail.com]
Sent: Friday, June 25, 2021 4:38 PM
To: support(a)lists.nfs-ganesha.org
Subject: [NFS-Ganesha-Support] Proxy FSAL - NFS4 -> 3
I'm using Ganesha NFS with the Proxy FSAL. It seems to work fine as long as I'm
going between NFS clients and servers of the same version (NFSv4.1 client -> NFSv4.1
server). However, I have a situation where I'm trying to proxy a NFSv4.1 service
(Azure File Share NFS) for clients that do not support NFSv4. When I do this, the
"mount" command on the NFSv3 clients works fine, but as soon as I try to do any
data operations, I get I/O errors:
# mount -t nfs -o vers=3 10.11.12.13:/azure-nfs-file /mnt/azure
# ls -l /mnt/azure
ls: reading directory '/mnt/azure': Remote I/O error
total 0
I've posted my (sanitized) configuration below. My questions are:
1) Is it possible to use Ganesha to proxy this way - allowing clients to access a NFS
server that differs in version, or is this not supported?
2) Am I missing something within my Ganesha config to enable this?
I can also provide the debug logging, if that's helpful.
Thanks - Nick
==ganesha.conf==
NFS_CORE_PARAM {
mount_path_pseudo = true;
Protocols = 3,4;
MNT_Port = 20048;
}
LOG {
Default_Log_Level = INFO;
Components {
FSAL = FULL_DEBUG;
}
}
EXPORT_DEFAULTS {
Access_Type = RW;
}
## Azure NFS Share
EXPORT
{
Export_id = 902;
Path = "/stgaccount/azure-file";
Pseudo = "/azure-file";
Access_Type = RW;
Squash = no_root_squash;
Sectype = sys;
FSAL {
Name = proxy;
Srv_Addr = 10.1.2.3;
Enable_Handle_Mapping = TRUE;
HandleMap_DB_Dir = "/var/ganesha/handledb/902";
HandleMap_Tmp_Dir = "/run/ganesha/tmp/902";
HandleMap_DB_Count = 8;
}
}