Lines Matching +full:use +full:- +full:handshake
9 server to reliably handshake to determine if they are on the same
14 Once an NFS client and server handshake as "local", the client will
24 preceded use of this LOCALIO protocol, a fragile sockaddr network
26 But unlike the LOCALIO protocol, the sockaddr-based matching didn't
27 handle use of iptables or containers.
29 The robust handshake between local client and server is just the
30 beginning, the ultimate use case this locality makes possible is the
34 as possible, this is particularly useful for container use cases
42 - With LOCALIO:
48 - Without LOCALIO:
55 - With LOCALIO:
61 - Without LOCALIO:
70 1. What are the use cases for LOCALIO?
80 a. Bypass use of the network RPC protocol as much as possible. This
86 c. Support the use of containers by being compatible with relevant
89 because it has wide enterprise usage and pNFS flexfiles makes use
93 deciding if the NFS client and server are co-located on the same
96 Since one of the main use cases is containerised workloads, we cannot
98 server. This sets up a requirement for a handshake protocol that
101 same host. The handshake uses a secret that is sent over the wire,
103 in shared kernel memory if they are truly co-located.
115 onus on the server to somehow discover that the client is co-located
122 6. Why is having the client perform a server-side file OPEN, without
125 Avoiding the use of XDR and RPC for file opens is beneficial to
131 client perform a server-side file open, without using RPC, is ideal.
151 as they do for non-LOCALIO.
163 NFS server can see the nonce (single-use UUID) the client generated and
165 standard, nor does it need to be considering it is Linux-to-Linux
174 by IANA, see https://www.iana.org/assignments/rpc-program-numbers/ ):
196 NFS Common and Client/Server Handshake
200 to generate a nonce (single-use UUID) and associated short-lived
204 transfer the nfs_uuid_t from its nfs_uuids to the nn->nfsd_serv
209 it has members that point to nfsd memory for direct use by the client
211 access nn->nfsd_serv with proper rcu read access). It is this client
213 objects to span from the host kernel's nfsd to per-container knfsd
221 allow proper network namespace (net-ns) and NFSD object refcounting.
223 LOCALIO required the introduction and use of NFSD's percpu nfsd_net_ref
225 each net-ns is not destroyed while in use by nfsd_open_local_fh(), and
230 reference for the nfsd_file and associated net-ns using
235 NFSD's net-ns (and nfsd_net by association) may have been destroyed
244 NFSD's net-ns.
255 focused use of select nfs server objects to allow a client local to a
260 both the associated nfsd network namespace and nn->nfsd_serv in terms of
262 nfsd objects (be it struct net or nn->nfsd_serv) it returns -ENXIO
275 With normal NFS that makes use of RPC to issue IO to the server, if an
277 the NFS server will not. The NFS server's use of buffered IO affords
280 can be configured to use end-to-end O_DIRECT semantics from the NFS
287 Once enabled, it will cause LOCALIO to use end-to-end O_DIRECT semantics
294 LOCALIO is only supported when UNIX-style authentication (AUTH_UNIX, aka
304 the server's per-namespace nfsd_net struct. With traditional NFS, the
324 (disabled). Must be power-of-2, admin keeps all the pieces if they
325 misconfigure (too low a value or non-power-of-2).
333 - Client and server both on the same host.
335 - All permutations of client and server support enablement for both
338 - Testing against NFS storage products that don't support the LOCALIO
341 - Client on host, server within a container (for both v3 and v4.2).
345 - Formalizing these test scenarios in terms of existing test
346 infrastructure is on-going. Initial regular coverage is provided in
347 terms of ktest running xfstests against a LOCALIO-enabled NFS loopback
349 https://evilpiepirate.org/~testdashboard/ci?user=snitzer&branch=snitm-nfs-next
352 - Various kdevops testing (in terms of "Chuck's BuildBot") has been
354 regressions to non-LOCALIO NFS use cases.
356 - All of Hammerspace's various sanity tests pass with LOCALIO enabled