From: Mike Snitzer <snitzer@kernel.org>
To: Jeff Layton <jlayton@kernel.org>
Cc: linux-nfs@vger.kernel.org, Chuck Lever <chuck.lever@oracle.com>,
Anna Schumaker <anna@kernel.org>,
Trond Myklebust <trondmy@hammerspace.com>,
NeilBrown <neilb@suse.de>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v12 24/24] nfs: add FAQ section to Documentation/filesystems/nfs/localio.rst
Date: Wed, 21 Aug 2024 16:12:49 -0400 [thread overview]
Message-ID: <ZsZKQV8qRVQY8g00@kernel.org> (raw)
In-Reply-To: <115f7c93d81d080ce6aac64eaa4e8616a5fe0cdd.camel@kernel.org>
On Wed, Aug 21, 2024 at 03:03:07PM -0400, Jeff Layton wrote:
> On Mon, 2024-08-19 at 14:17 -0400, Mike Snitzer wrote:
> > From: Trond Myklebust <trond.myklebust@hammerspace.com>
> >
> > Add a FAQ section to give answers to questions that have been raised
> > during review of the localio feature.
> >
> > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
> > Co-developed-by: Mike Snitzer <snitzer@kernel.org>
> > Signed-off-by: Mike Snitzer <snitzer@kernel.org>
> > ---
> > Documentation/filesystems/nfs/localio.rst | 77 +++++++++++++++++++++++
> > 1 file changed, 77 insertions(+)
> >
> > diff --git a/Documentation/filesystems/nfs/localio.rst b/Documentation/filesystems/nfs/localio.rst
> > index d8bdab88f1db..acd8f3e5d87a 100644
> > --- a/Documentation/filesystems/nfs/localio.rst
> > +++ b/Documentation/filesystems/nfs/localio.rst
> > @@ -40,6 +40,83 @@ fio for 20 secs with 24 libaio threads, 128k directio reads, qd of 8,
> > - Without LOCALIO:
> > read: IOPS=12.0k, BW=1495MiB/s (1568MB/s)(29.2GiB/20015msec)
> >
> > +FAQ
> > +===
> > +
> > +1. What are the use cases for LOCALIO?
> > +
> > + a. Workloads where the NFS client and server are on the same host
> > + realize improved IO performance. In particular, it is common when
> > + running containerised workloads for jobs to find themselves
> > + running on the same host as the knfsd server being used for
> > + storage.
> > +
> > +2. What are the requirements for LOCALIO?
> > +
> > + a. Bypass use of the network RPC protocol as much as possible. This
> > + includes bypassing XDR and RPC for open, read, write and commit
> > + operations.
> > + b. Allow client and server to autonomously discover if they are
> > + running local to each other without making any assumptions about
> > + the local network topology.
> > + c. Support the use of containers by being compatible with relevant
> > + namespaces (e.g. network, user, mount).
> > + d. Support all versions of NFS. NFSv3 is of particular importance
> > + because it has wide enterprise usage and pNFS flexfiles makes use
> > + of it for the data path.
> > +
> > +3. Why doesn´t LOCALIO just compare IP addresses or hostnames when
> > + deciding if the NFS client and server are co-located on the same
> > + host?
> > +
> > + Since one of the main use cases is containerised workloads, we cannot
> > + assume that IP addresses will be shared between the client and
> > + server. This sets up a requirement for a handshake protocol that
> > + needs to go over the same connection as the NFS traffic in order to
> > + identify that the client and the server really are running on the
> > + same host. The handshake uses a secret that is sent over the wire,
> > + and can be verified by both parties by comparing with a value stored
> > + in shared kernel memory if they are truly co-located.
> > +
> > +4. Does LOCALIO improve pNFS flexfiles?
> > +
> > + Yes, LOCALIO complements pNFS flexfiles by allowing it to take
> > + advantage of NFS client and server locality. Policy that initiates
> > + client IO as closely to the server where the data is stored naturally
> > + benefits from the data path optimization LOCALIO provides.
> > +
> > +5. Why not develop a new pNFS layout to enable LOCALIO?
> > +
> > + A new pNFS layout could be developed, but doing so would put the
> > + onus on the server to somehow discover that the client is co-located
> > + when deciding to hand out the layout.
> > + There is value in a simpler approach (as provided by LOCALIO) that
> > + allows the NFS client to negotiate and leverage locality without
> > + requiring more elaborate modeling and discovery of such locality in a
> > + more centralized manner.
> > +
> > +6. Why is having the client perform a server-side file OPEN, without
> > + using RPC, beneficial? Is the benefit pNFS specific?
> > +
> > + Avoiding the use of XDR and RPC for file opens is beneficial to
> > + performance regardless of whether pNFS is used. However adding a
> > + requirement to go over the wire to do an open and/or close ends up
> > + negating any benefit of avoiding the wire for doing the I/O itself
> > + when we´re dealing with small files. There is no benefit to replacing
> > + the READ or WRITE with a new open and/or close operation that still
> > + needs to go over the wire.
> > +
> > +7. Why is LOCALIO only supported with UNIX Authentication (AUTH_UNIX)?
> > +
> > + Strong authentication is usually tied to the connection itself. It
> > + works by establishing a context that is cached by the server, and
> > + that acts as the key for discovering the authorisation token, which
> > + can then be passed to rpc.mountd to complete the authentication
> > + process. On the other hand, in the case of AUTH_UNIX, the credential
> > + that was passed over the wire is used directly as the key in the
> > + upcall to rpc.mountd. This simplifies the authentication process, and
> > + so makes AUTH_UNIX easier to support.
> > +
> > RPC
> > ===
> >
>
> I'd just squash this into patch #19.
That'd use the fact Trond is the author.
Does linux have a shortage on commit ids I'm unaware of? ;)
next prev parent reply other threads:[~2024-08-21 20:12 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-19 18:17 [PATCH v12 00/24] nfs/nfsd: add support for localio Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 01/24] nfs_common: factor out nfs_errtbl and nfs_stat_to_errno Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 02/24] nfs_common: factor out nfs4_errtbl and nfs4_stat_to_errno Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 03/24] nfs: factor out {encode,decode}_opaque_fixed to nfs_xdr.h Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 04/24] nfsd: factor out __fh_verify to allow NULL rqstp to be passed Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 05/24] nfsd: fix nfsfh tracepoints to properly handle NULL rqstp Mike Snitzer
2024-08-21 17:46 ` Jeff Layton
2024-08-21 21:23 ` Mike Snitzer
2024-08-22 15:07 ` Chuck Lever
2024-08-22 16:04 ` Mike Snitzer
2024-08-22 17:07 ` Jeff Layton
2024-08-22 17:20 ` Mike Snitzer
2024-08-22 18:14 ` Chuck Lever III
2024-08-19 18:17 ` [PATCH v12 06/24] nfsd: add nfsd_file_acquire_local() Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 07/24] SUNRPC: remove call_allocate() BUG_ONs Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 08/24] SUNRPC: add rpcauth_map_clnt_to_svc_cred_local Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 09/24] nfs_common: add NFS LOCALIO auxiliary protocol enablement Mike Snitzer
2024-08-21 18:04 ` Jeff Layton
2024-08-21 18:39 ` Jeff Layton
2024-08-19 18:17 ` [PATCH v12 10/24] nfsd: add localio support Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 11/24] nfsd: implement server support for NFS_LOCALIO_PROGRAM Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 12/24] SUNRPC: replace program list with program array Mike Snitzer
2024-08-21 18:31 ` Jeff Layton
2024-08-21 20:40 ` Mike Snitzer
2024-08-21 21:43 ` Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 13/24] nfs: pass struct file to nfs_init_pgio and nfs_init_commit Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 14/24] nfs: add localio support Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 15/24] nfs: enable localio for non-pNFS IO Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 16/24] pnfs/flexfiles: enable localio support Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 17/24] nfs/localio: use dedicated workqueues for filesystem read and write Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 18/24] nfs: implement client support for NFS_LOCALIO_PROGRAM Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 19/24] nfs: add Documentation/filesystems/nfs/localio.rst Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 20/24] nfsd: use GC for nfsd_file returned by nfsd_file_acquire_local Mike Snitzer
2024-08-21 18:34 ` Jeff Layton
2024-08-19 18:17 ` [PATCH v12 21/24] nfs_common: expose localio's required nfsd symbols to nfs client Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 22/24] nfs: push localio nfsd_file_put call out to client Mike Snitzer
2024-08-21 18:50 ` Jeff Layton
2024-08-19 18:17 ` [PATCH v12 23/24] nfs: switch client to use nfsd_file for localio Mike Snitzer
2024-08-19 18:17 ` [PATCH v12 24/24] nfs: add FAQ section to Documentation/filesystems/nfs/localio.rst Mike Snitzer
2024-08-21 19:03 ` Jeff Layton
2024-08-21 20:12 ` Mike Snitzer [this message]
2024-08-21 20:14 ` Mike Snitzer
2024-08-21 23:46 ` Jeff Layton
2024-08-19 18:29 ` [PATCH v12 00/24] nfs/nfsd: add support for localio Chuck Lever III
2024-08-19 18:43 ` Mike Snitzer
2024-08-21 19:20 ` Jeff Layton
2024-08-21 20:05 ` Mike Snitzer
2024-08-22 12:35 ` Jeff Layton
2024-08-22 2:00 ` Mike Snitzer
2024-08-22 12:50 ` Jeff Layton
2024-08-22 15:18 ` Chuck Lever III
2024-08-22 15:42 ` Mike Snitzer
2024-08-21 19:56 ` Chuck Lever
2024-08-21 20:10 ` Mike Snitzer
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=ZsZKQV8qRVQY8g00@kernel.org \
--to=snitzer@kernel.org \
--cc=anna@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=trondmy@hammerspace.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.