From: bfields@fieldses.org (J. Bruce Fields)
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [RFC PATCH v3 00/13] Basic multipathing support and demonstrator
Date: Mon, 1 Feb 2016 15:48:25 -0500 [thread overview]
Message-ID: <20160201204825.GD5499@fieldses.org> (raw)
In-Reply-To: <1454347277-10997-1-git-send-email-trond.myklebust@primarydata.com>
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), as well as helpers to allow
> iteration of tasks across all tranports (for instance in order to
> support NFSv4.1's BIND_CONN_TO_SESSION).
>
> A lot of polish and finishing touches are missing. For instance, I have yet
> to add support in debugfs for these transports, and there is no support
> for mounting with NFSv4.1 session trunking. However there is a demonstrator
> that implements pNFS multipathing over NFSv3. Adding support for NFSv4.1
> requires that you call EXCHANGE_ID to allow verification of the
> major/minor server and scopeid fields, which should not be too hard.
>
> More to come, but in the meantime, comments are welcome...
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?
--b.
>
> Cheers
> Trond
>
> --------------
> v2 & v3: Fix up kbuild warnings
>
> Trond Myklebust (13):
> SUNRPC: Remove unused function rpc_task_reset_client
> SUNRPC: Reorder rpc_task to put waitqueue related info in same
> cachelines
> SUNRPC: Uninline xprt_get(); It isn't performance critical.
> SUNRPC: Make freeing of struct xprt rcu-safe
> SUNRPC: Add a structure to track multiple transports
> SUNRPC: Make rpc_clnt store the multipath iterators
> SUNRPC: Use the multipath iterator to assign a transport to each task
> SUNRPC: Allow caller to specify the transport to use
> SUNRPC: Add a helper to apply a function to all the rpc_clnt's
> transports
> SUNRPC: Make NFS swap work with multipath
> NFSv4.1: nfs4_proc_bind_conn_to_session must iterate over all
> connections
> SUNRPC: Allow addition of new transports to a struct rpc_clnt
> pnfs/NFSv4.1: Add multipath capabilities to pNFS flexfiles servers
> over NFSv3
>
> fs/nfs/nfs4proc.c | 51 +++-
> fs/nfs/pnfs_nfs.c | 16 +-
> include/linux/sunrpc/clnt.h | 18 +-
> include/linux/sunrpc/sched.h | 32 +--
> include/linux/sunrpc/xprt.h | 22 +-
> include/linux/sunrpc/xprtmultipath.h | 69 +++++
> net/sunrpc/Makefile | 3 +-
> net/sunrpc/auth_gss/auth_gss.c | 4 +-
> net/sunrpc/clnt.c | 326 ++++++++++++++++++------
> net/sunrpc/rpcb_clnt.c | 10 +-
> net/sunrpc/sched.c | 2 +
> net/sunrpc/xprt.c | 42 ++--
> net/sunrpc/xprtmultipath.c | 473 +++++++++++++++++++++++++++++++++++
> net/sunrpc/xprtsock.c | 4 +-
> 14 files changed, 938 insertions(+), 134 deletions(-)
> create mode 100644 include/linux/sunrpc/xprtmultipath.h
> create mode 100644 net/sunrpc/xprtmultipath.c
>
> --
> 2.5.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-02-01 20:48 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 ` J. Bruce Fields [this message]
2016-02-01 21:12 ` [RFC PATCH v3 00/13] Basic multipathing support and demonstrator Trond Myklebust
2016-02-01 21:54 ` Tom Talpey
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=20160201204825.GD5499@fieldses.org \
--to=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.