linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tom Talpey <tom@talpey.com>
To: Trond Myklebust <trond.myklebust@primarydata.com>,
	"J. Bruce Fields" <bfields@fieldses.org>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [RFC PATCH v3 00/13] Basic multipathing support and demonstrator
Date: Mon, 1 Feb 2016 16:54:57 -0500	[thread overview]
Message-ID: <56AFD431.4050004@talpey.com> (raw)
In-Reply-To: <CAHQdGtSYnL905dj=P_HDdgXPHgrFWEzFnzFu54SjaHEP=UpREQ@mail.gmail.com>

On 2/1/2016 4:12 PM, Trond Myklebust wrote:
> On Mon, Feb 1, 2016 at 3:48 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
>>
>> On Mon, Feb 01, 2016 at 12:21:04PM -0500, Trond Myklebust wrote:
>>> The following patchset is intended as an RFC to demonstrate how we could
>>> implement multipathing in NFS.
>>> It adds basic support for attaching multiple RPC transports to a client,
>>> an embryonic policy mechanism for switching tasks across those transports
>>> (with a round-robin policy implementation),...
>>
>> Since your prototype is doing round-robin per task, I assume the
>> motivating problem is that you don't want to waste bandwidth when
>> there's multiple links available.  Is that right, or is there some other
>> goal you have in mind?
>>
>
> I did round-robin simply because it is easy to do, and because server
> vendors have been asking for it. That said, the policy is readily
> pluggable, and it should be straightforward to add path failover,
> should you want to.

I think servers probably want load balancing, which is not quite the
same thing as round robin. When we implemented mulitchannel in SMB3,
we quickly discovered many issues at scale, especially when network
links introduced additional variance. We eventually settled on a
selection method that attempted to balance outstanding queue depth,
as well as round robining.

Do you plan to support links of different speed or other characteristics
e.g. mixing TCP and RDMA? That introduces a number of other issues; in
SMB3 we simply avoid ever doing those. Channel selection can also be
used to tune multiprocessor affinity. There were Storage Developer
Conference talks back in 2012 and maybe 2013 that discussed the approaches.

You may also want to talk to the Samba folks, who are implementing SMB3
multichannel (server) recently, and may have insight to share.

All that said, it's great to see this.

Tom.

      reply	other threads:[~2016-02-01 22:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01 17:21 [RFC PATCH v3 00/13] Basic multipathing support and demonstrator Trond Myklebust
2016-02-01 17:21 ` [RFC PATCH v3 01/13] SUNRPC: Remove unused function rpc_task_reset_client Trond Myklebust
2016-02-01 17:21   ` [RFC PATCH v3 02/13] SUNRPC: Reorder rpc_task to put waitqueue related info in same cachelines Trond Myklebust
2016-02-01 17:21     ` [RFC PATCH v3 03/13] SUNRPC: Uninline xprt_get(); It isn't performance critical Trond Myklebust
2016-02-01 17:21       ` [RFC PATCH v3 04/13] SUNRPC: Make freeing of struct xprt rcu-safe Trond Myklebust
2016-02-01 17:21         ` [RFC PATCH v3 05/13] SUNRPC: Add a structure to track multiple transports Trond Myklebust
2016-02-01 17:21           ` [RFC PATCH v3 06/13] SUNRPC: Make rpc_clnt store the multipath iterators Trond Myklebust
2016-02-01 17:21             ` [RFC PATCH v3 07/13] SUNRPC: Use the multipath iterator to assign a transport to each task Trond Myklebust
2016-02-01 17:21               ` [RFC PATCH v3 08/13] SUNRPC: Allow caller to specify the transport to use Trond Myklebust
2016-02-01 17:21                 ` [RFC PATCH v3 09/13] SUNRPC: Add a helper to apply a function to all the rpc_clnt's transports Trond Myklebust
2016-02-01 17:21                   ` [RFC PATCH v3 10/13] SUNRPC: Make NFS swap work with multipath Trond Myklebust
2016-02-01 17:21                     ` [RFC PATCH v3 11/13] NFSv4.1: nfs4_proc_bind_conn_to_session must iterate over all connections Trond Myklebust
2016-02-01 17:21                       ` [RFC PATCH v3 12/13] SUNRPC: Allow addition of new transports to a struct rpc_clnt Trond Myklebust
2016-02-01 17:21                         ` [RFC PATCH v3 13/13] pnfs/NFSv4.1: Add multipath capabilities to pNFS flexfiles servers over NFSv3 Trond Myklebust
2016-02-01 17:31                           ` Matt W. Benjamin
2016-02-01 20:48 ` [RFC PATCH v3 00/13] Basic multipathing support and demonstrator J. Bruce Fields
2016-02-01 21:12   ` Trond Myklebust
2016-02-01 21:54     ` Tom Talpey [this message]

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=56AFD431.4050004@talpey.com \
    --to=tom@talpey.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@primarydata.com \
    /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;
as well as URLs for NNTP newsgroup(s).