Re: [Nfs-ganesha-devel] NFSv4 referrals not working with ganesha.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Nov 1, 2017, at 10:53 AM, Pradeep <pradeepthomas@xxxxxxxxx> wrote:
> 
> Adding linux-nfs (did not work last couple of times because of email format).
> 
> Is this supposed to work with Linux NFS clients (see the problem
> description at the end of this email)?

Yes. I've used referrals successfully with upstream kernels in the
past week (against non-Linux servers, even).

Looks like this is a RHEL issue, though. Should you report the
issue to Red Hat?


> The NFSv4 referrals with Linux clients does not work with 'stat', 'ls'
> etc., But linux client follows referrals after a 'cd'. Is this the
> expected behavior?

I think so. "ls -l" in the parent directory isn't going to trigger
a mount, but "cd" will. After the mount, the mounted on directory
on the client will appear as expected with "ls -l".


> tcpdump is attached.

Traffic to the destination server might be going over a different
network interface. Check your tcpdump command line.

You could also enable NFS and/or RPC debugging (before reproducing)
to see the steps taken by the client displayed in /var/log/messages.

 # rpcdebug -m nfs -s
 # rpcdebug -m rpc -s


>>> On Mon, Oct 30, 2017 at 3:24 PM, Frank Filz <ffilzlnx@xxxxxxxxxxxxxx>
>>> wrote:
>>>> 
>>>> Oh, I had forgotten about that patch…
>>>> 
>>>> 
>>>> 
>>>> Can you try any other clients? This may be a client issue (I did see some
>>>> suspicious code in the client).
>>>> 
>>>> 
>>>> 
>>>> It may also be that you need a fully qualified path (starting with a /).
>>>> 
>>>> 
>>>> 
>>>> It looks like Ganesha is doing the right thing though.
>>>> 
>>>> 
>>>> 
>>>> Frank
>>>> 
>>>> 
>>>> 
>>>> From: Pradeep [mailto:pradeep.thomas@xxxxxxxxx]
>>>> Sent: Monday, October 30, 2017 2:21 PM
>>>> To: Frank Filz <ffilzlnx@xxxxxxxxxxxxxx>
>>>> Cc: nfs-ganesha-devel <nfs-ganesha-devel@xxxxxxxxxxxxxxxxxxxxx>;
>>>> ssaurabh.wisc@xxxxxxxxx
>>>> Subject: Re: [Nfs-ganesha-devel] NFSv4 referrals not working with
>>>> ganesha.
>>>> 
>>>> 
>>>> 
>>>> Hi Frank,
>>>> 
>>>> 
>>>> 
>>>> This is with latest version of Ganesha. The referral support is already
>>>> in VFS: https://review.gerrithub.io/c/353684
>>>> 
>>>> 
>>>> 
>>>> tcpdump is attached. From the tcpdump, we can see that the stat sent a
>>>> LOOKUP for the remote export and received a moved error. It also sent back
>>>> the fs_locations. But the client (CentOS 7.3) never followed that with a
>>>> LOOKUP to the remote server.
>>>> 
>>>> 
>>>> 
>>>> You can see that packet #41 has the correct FS locations. But client does
>>>> not do another lookup to get the correct attributes.
>>>> 
>>>> 
>>>> 
>>>> $ stat /mnt/nfs_d1
>>>> 
>>>>  File: ‘/mnt/nfs_d1’
>>>> 
>>>>  Size: 0               Blocks: 0          IO Block: 1048576 directory
>>>> 
>>>> Device: 28h/40d Inode: 1           Links: 2
>>>> 
>>>> Access: (0555/dr-xr-xr-x)  Uid: (4294967294/ UNKNOWN)   Gid: (4294967294/
>>>> UNKNOWN)
>>>> 
>>>> Context: system_u:object_r:nfs_t:s0
>>>> 
>>>> Access: 1969-12-31 16:00:00.000000000 -0800
>>>> 
>>>> Modify: 1969-12-31 16:00:00.000000000 -0800
>>>> 
>>>> Change: 1969-12-31 16:00:00.000000000 -0800
>>>> 
>>>> Birth: -
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Mon, Oct 30, 2017 at 12:13 PM, Frank Filz <ffilzlnx@xxxxxxxxxxxxxx>
>>>> wrote:
>>>> 
>>>> What version of Ganesha? I assume by “native” FSAL, you mean FSAL_VFS?
>>>> Did you add the fs locations XATTR support? FSAL_GPFS currently has the only
>>>> in-tree referral support and I’m not sure it necessarily works, but I’m
>>>> unable to test it.
>>>> 
>>>> 
>>>> 
>>>> If you have code for FSAL_VFS to add the fs locations attribute, go ahead
>>>> and post it and I could poke at it.
>>>> 
>>>> 
>>>> 
>>>> Also, tcpdump traces might help understand what is going wrong.
>>>> 
>>>> 
>>>> 
>>>> Frank
>>>> 
>>>> 
>>>> 
>>>> From: Pradeep [mailto:pradeep.thomas@xxxxxxxxx]
>>>> Sent: Monday, October 30, 2017 11:45 AM
>>>> To: nfs-ganesha-devel <nfs-ganesha-devel@xxxxxxxxxxxxxxxxxxxxx>
>>>> Cc: ssaurabh.wisc@xxxxxxxxx
>>>> Subject: [Nfs-ganesha-devel] NFSv4 referrals not working with ganesha.
>>>> 
>>>> 
>>>> 
>>>> Hi all,
>>>> 
>>>> 
>>>> 
>>>> We are testing NFSv4 referral for Linux CentOS 7 with nfs-ganesha and are
>>>> running
>>>> 
>>>> into some serious issues.
>>>> 
>>>> 
>>>> 
>>>> Although, we were able to set up NFSv4 referral using the native Ganesha
>>>> FSAL,
>>>> 
>>>> we could not get it fully functional for all Linux client system calls.
>>>> 
>>>> Basically, the NFSv4 spec suggests to return a NFS4ERR_MOVED on a
>>>> 
>>>> LOOKUP done for a remote export. However, this breaks the `stat` system
>>>> call on
>>>> 
>>>> Linux CentOS 7 (stat’ results in a LOOKUP,GETFH,GETATTR compound). An
>>>> easy way to
>>>> 
>>>> reproduce the broken behavior is:
>>>> 
>>>> 1) mount the root of the pseudo file system and
>>>> 
>>>> 2) issue a `stat` command on the remote export.
>>>> 
>>>> The stat returned are corrupt.
>>>> 
>>>> 
>>>> 
>>>> After digging into the CentOS 7 client code, we realized that the stat
>>>> operation
>>>> 
>>>> is never expected to follow the referral. However, switching to returning
>>>> NFS4_OK
>>>> 
>>>> for stat, then breaks `cd` or a `ls -l` command, because now we don't
>>>> know when
>>>> 
>>>> to follow the referral.
>>>> 
>>>> 
>>>> 
>>>> Does anyone have a successful experience in setting up the NFSv4
>>>> referrals that
>>>> 
>>>> they could share? Or, if some suggestions on what we might be doing
>>>> wrong?
>>>> 
>>>> 
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>>> 
>>>> Virus-free. www.avast.com
>>>> 
>>>> 
>>> 
>>> 
>> 
> <nfs_remote_export1.pcap>

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux