It should be!

The proxy code just acts like either a V4 client (ProxyV4 in the current tree) or V3 client (ProxyV3). Ganesha itself handles the clients and whatever they want to speak (v3, v4, 9p even I think, etc.).

Your use of Name = proxy, implies you're on an older branch perhaps, and I feel like I've had some bugfixes in the Proxy V4 code (in particular, I know for my ProxyV3 I had to fixup the handling of path vs pseudo... I don't recall if ProxyV4 had the same problem or not). I don't have any experience with the handle mapping code (though I've certainly looked at it). Is it strictly required for your test?

Either way, please provide some debug logs. You may want to add debug logging to NFS_PROTO or whatever the name is as well. (And if I finally get around to fixing my IRC setup, you can find folks in #ganesha, too for more live debugging).

On Fri, Jun 25, 2021 at 4:38 PM Nick Couchman <nick.e.couchman@gmail.com> wrote:
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;
        }
}
_______________________________________________
Support mailing list -- support@lists.nfs-ganesha.org
To unsubscribe send an email to support-leave@lists.nfs-ganesha.org