Re: unsharing tcp connections from different NFS mounts

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

 



On Tue, Oct 06, 2020 at 05:46:11PM -0400, Olga Kornievskaia wrote:
> On Tue, Oct 6, 2020 at 3:38 PM Benjamin Coddington <bcodding@xxxxxxxxxx> wrote:
> >
> > On 6 Oct 2020, at 11:13, J. Bruce Fields wrote:
> >
> > > NFSv4.1+ differs from earlier versions in that it always performs
> > > trunking discovery that results in mounts to the same server sharing a
> > > TCP connection.
> > >
> > > It turns out this results in performance regressions for some users;
> > > apparently the workload on one mount interferes with performance of
> > > another mount, and they were previously able to work around the
> > > problem
> > > by using different server IP addresses for the different mounts.
> > >
> > > Am I overlooking some hack that would reenable the previous behavior?
> > > Or would people be averse to an "-o noshareconn" option?
> >
> > I suppose you could just toggle the nfs4_unique_id parameter.  This
> > seems to
> > work:
> >
> > flock /sys/module/nfs/parameters/nfs4_unique_id bash -c "OLD_ID=\$(cat
> > /sys/module/nfs/parameters/nfs4_unique_id); echo imalittleteapot >
> > /sys/module/nfs/parameters/nfs4_unique_id; mount -ov4,sec=sys
> > 10.0.1.200:/exports /mnt/fedora2; echo \$OLD_ID >
> > /sys/module/nfs/parameters/nfs4_unique_id"
> >
> > I'm trying to think of a reason why this is a bad idea, and not coming
> > up
> > with any.  Can we support users that have already found this solution?
> >
> 
> What about reboot recovery? How will each mount recover its own state
> (and present the same identifier it used before). Client only keeps
> track of one?

Looks like nfs4_init_{non}uniform_client_string() stores it in
cl_owner_id, and I was thinking that meant cl_owner_id would be used
from then on....

But actually, I think it may run that again on recovery, yes, so I bet
changing the nfs4_unique_id parameter midway like this could cause bugs
on recovery.

--b.



[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