Lines Matching +full:server +full:- +full:side
9 server to reliably handshake to determine if they are on the same
10 host. Select "NFS client and server support for LOCALIO auxiliary
14 Once an NFS client and server handshake as "local", the client will
26 But unlike the LOCALIO protocol, the sockaddr-based matching didn't
29 The robust handshake between local client and server is just the
32 directly to the server without having to go over the network. The
36 server.
42 - With LOCALIO:
48 - Without LOCALIO:
55 - With LOCALIO:
61 - Without LOCALIO:
72 a. Workloads where the NFS client and server are on the same host
75 running on the same host as the knfsd server being used for
83 b. Allow client and server to autonomously discover if they are
93 deciding if the NFS client and server are co-located on the same
98 server. This sets up a requirement for a handshake protocol that
100 identify that the client and the server really are running on the
103 in shared kernel memory if they are truly co-located.
108 advantage of NFS client and server locality. Policy that initiates
109 client IO as closely to the server where the data is stored naturally
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
131 client perform a server-side file open, without using RPC, is ideal.
137 works by establishing a context that is cached by the server, and
151 as they do for non-LOCALIO.
156 See the detailed "NFS Client and Server Interlock" section below.
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
202 verification by the NFS server and if matched the NFS server populates
204 transfer the nfs_uuid_t from its nfs_uuids to the nn->nfsd_serv
210 (e.g. 'net' is the server's network namespace, through it the client can
211 access nn->nfsd_serv with proper rcu read access). It is this client
212 and server synchronization that enables advanced usage and lifetime of
213 objects to span from the host kernel's nfsd to per-container knfsd
217 NFS Client and Server Interlock
221 allow proper network namespace (net-ns) and NFSD object refcounting.
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
238 This interlock of the NFS client and server has been verified to fix an
244 NFSD's net-ns.
246 NFS Client issues IO instead of Server
255 focused use of select nfs server objects to allow a client local to a
256 server to open a file pointer without needing to go over the network.
259 server's fs/nfsd/localio.c:nfsd_open_local_fh() and carefully access
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
270 done by the nfs server). As such, for these operations, the NFS client
272 the NFS server. See: fs/nfs/localio.c:nfs_local_doio() and
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
282 the NFS server, by setting the 'localio_O_DIRECT_semantics' nfs module
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
300 NFS client access to the NFS server is also used for LOCALIO.
303 namespace the server has. This is required to allow the client to access
304 the server's per-namespace nfsd_net struct. With traditional NFS, the
307 altered or purposely extended from the server to the client.
313 controls if LOCALIO is enabled, defaults to Y. If client and server are
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
336 local and remote client and server.
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