public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: guy keren <guy@vastdata.com>
To: linux-nfs@vger.kernel.org
Subject: Re: Linux NFS4.1 client's "server trunking" seems to do the opposite of what the name implies
Date: Wed, 21 Apr 2021 10:42:16 +0300	[thread overview]
Message-ID: <ee933f9d-21fd-9bc7-cdce-8da2d43b30a1@vastdata.com> (raw)
In-Reply-To: <061a976c-2082-bb86-91ec-f0f97a73e1ac@vastdata.com>

hi Olga, thanks for the response. more comments/questions below:

On 4/21/21 2:28 AM, Olga Kornievskaia wrote:
 > On Tue, Apr 20, 2021 at 4:59 PM guy keren <guy@vastdata.com> wrote:
 >> Hi,
 >>
 >> when attempting to make two NFS 4.1 mounts from a linux NFS client, to
 >> two IP addresses belonging to two different hosts in the same cluster
 >> (i.e. the server major id in the EXCHANGE_ID response is the same) - the
 >> linux NFS4.1 client discards the new TCP connection (to the 2nd IP) and
 >> instead decides to use the first client connection for both mounts. this
 >> seems to be handled in a hard-coded inside the function named
 >> "nfs41_discover_server_trunking", and leads to reduced performance,
 >> relative to using NFS3 (which will use two different TCP connections to
 >> the two different hosts in the storage cluster).
 >>
 >> i was under the impression that (client_id) trunking is supposed to
 >> allow to multiplex commands over multiple TCP connections - not to
 >> consolidate different workloads onto the same TCP connection.
 >>
 >> is there a way to avoid this behaviour, other then faking that the
 >> "server major id" is different on each node in the cluster? (this is
 >> what appears to be done by NetApp, for instance).
 > Hi Guy,
 >
 > Current implementation of the linux client does not support session
 > trunking to the MDS (nor does it support client id trunking). I'm
 > hoping session trunking support comes in the near future. Clientid
 > trunking might not be something that's supported unless we'll have a
 > clustered NFS server out there that can utilize that behaviour.

i see.

 > Btw you can do multipath NFS flows by using the combination of
 > nconnect and the newly proposed sysfs interface (still in review) that
 > can manipulate server endpoints.

the problem with nconnect is that although we will have multiple TCP 
connections, they will all utilize the same session, which limits the 
requests parallelism that can be achieved (since the slot table size is 
the limiting factor for the number of in-flight commands).

the same problem will also exist with session trunking - while when 
doing only client-id trunking (with a separate NFS4.1 session per TCP 
connection) - the number of in-flight commands can be increased linearly 
to the number of TCP connections.

is there any way to work around that?


p.s. is there anyone actively working on session trunking support, or is 
it just a "future roadmap item: with no concrete plans?

thanks,

--guy keren


Vast Data.

  parent reply	other threads:[~2021-04-21  7:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-20 20:59 Linux NFS4.1 client's "server trunking" seems to do the opposite of what the name implies guy keren
2021-04-20 23:28 ` Olga Kornievskaia
     [not found]   ` <4999b214-db58-a5ab-3097-523cf9a51c75@vastdata.com>
2021-04-21 13:21     ` Olga Kornievskaia
2021-04-21  7:42 ` guy keren [this message]
2021-04-21 12:18   ` Trond Myklebust

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee933f9d-21fd-9bc7-cdce-8da2d43b30a1@vastdata.com \
    --to=guy@vastdata.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox