1NFSTEST_SSC(1) nfstest_ssc 1.1 NFSTEST_SSC(1)
2
3
4
6 nfstest_ssc - Server side copy tests
7
9 nfstest_ssc --server <server> [options]
10
12 Verify correct functionality of server side copy
13
14 Copying a file via NFS the client reads the data from the source file
15 and then writes the same data to the destination file which is located
16 in the same server or it could be located in a different server. Either
17 way the file data is transferred twice, once for reading and the second
18 for writing. Server side copy allows unnecessary network traffic to be
19 eliminated. The intra-server copy allows the client to request the
20 server to perform the copy internally thus avoiding any data being sent
21 through the network at all. In the case for the inter-server copy where
22 the destination server is different from the source server, the client
23 authorizes both servers to interact directly with one another.
24
25 The system call copy_file_range is used to send both intra and inter
26 server side copy requests to the correct server.
27
28 Basic server side copy tests verify the actual file range from the
29 source file(s) are copied correctly to the destination file(s). Most
30 tests deal with a single source and destination file while verifying
31 the data is copied correctly. Also it verifies the data is copied
32 starting from the correct source offset and it is copied to the correct
33 offset on the destination file. Other tests deal with multiple files:
34 copying multiple source files to a single destination file, a single
35 source file to multiple destination files, or N number of source files
36 to M number of destination files.
37
38 Some tests include testing at the protocol level by taking a packet
39 trace and inspecting the actual packets sent to the server or servers.
40 For the intra-server side copy, these tests verify the COPY/CLONE oper‐
41 ation is sent to the server with correct arguments. For the inter-
42 server side copy, these tests verify the COPY_NOTIFY operation is sent
43 to the source server with correct arguments to authorize the source
44 server to allow the destination server to copy the data directly; then
45 the client sends the COPY operation to the destination server so it
46 could initiate the actual copy.
47
48 The server side copy could either be synchronous or asynchronous
49 depending on both client and server(s). The client could issue either a
50 synchronous or asynchronous copy and the server could either copy the
51 file data in either mode depending on implementation or other factors.
52 In either case, the tests verify the correct functionality for both
53 cases. The CB_OFFLOAD operation is used by the destination server to
54 report the actual results of the copy when it is done. The client could
55 also actively query the destination server for status on a current
56 asynchronous copy using the OFFLOAD_STATUS operation. Also the client
57 has a mechanism to cancel a given asynchronous copy using the OFF‐
58 LOAD_CANCEL operation.
59
60 Negative testing is included whenever possible since some testing can‐
61 not be done at the protocol level because the copy_file_range system
62 call does some error checking of its own and the NFS client won't even
63 send a COPY_NOTIFY or COPY operation to the server letting the server
64 deal with the error. Negative tests include trying to copy an invalid
65 source range, having an invalid value for either the offset or the
66 length, trying to copy a region on a source file opened as write only,
67 a destination file opened as read only or the file is a non-regular
68 file type.
69
70
71
73 --version
74 show program's version number and exit
75
76 -h, --help
77 show this help message and exit
78
79 -f FILE, --file=FILE
80 File where options are specified besides the system wide file
81 /etc/nfstest, user wide file $HOME/.nfstest or in the current
82 directory .nfstest file
83
84
85 NFS specific options:
86 -s SERVER, --server=SERVER
87 Server name or IP address
88
89 -e EXPORT, --export=EXPORT
90 Exported file system to mount [default: '/']
91
92 --nfsversion=NFSVERSION
93 NFS version, e.g., 3, 4, 4.1, etc. [default: 4.2]
94
95 -m MTPOINT, --mtpoint=MTPOINT
96 Mount point [default: '/mnt/t']
97
98 -p PORT, --port=PORT
99 NFS server port [default: 2049]
100
101 --proto=PROTO
102 NFS protocol name [default: 'tcp']
103
104 --sec=SEC
105 Security flavor [default: 'sys']
106
107 -o MTOPTS, --mtopts=MTOPTS
108 Mount options [default: 'hard,rsize=4096,wsize=4096']
109
110 --datadir=DATADIR
111 Data directory where files are created, directory is created on
112 the mount point [default: '']
113
114
115 Logging options:
116 -v VERBOSE, --verbose=VERBOSE
117 Verbose level for debug messages [default: 'none']
118
119 --tverbose=TVERBOSE
120 Verbose level for test messages [default: '1']
121
122 --createlog
123 Create log file
124
125 --rexeclog
126 Create rexec log files
127
128 --warnings
129 Display warnings
130
131 --tag=TAG
132 Informational tag, it is displayed as an INFO message [default:
133 '']
134
135 --notty
136 Do not use terminal colors on output
137
138
139 Packet trace options:
140 --createtraces
141 Create a packet trace for each test
142
143 --tbsize=TBSIZE
144 Capture buffer size for tcpdump [default: 192k]
145
146 --trcdelay=TRCDELAY
147 Seconds to delay before stopping packet trace [default: 0.0]
148
149 --keeptraces
150 Do not remove any trace files [default: remove trace files if no
151 errors]
152
153 --rmtraces
154 Remove trace files [default: remove trace files if no errors]
155
156 -i INTERFACE, --interface=INTERFACE
157 Device interface [default: automatically selected]
158
159
160 File options:
161 --nfiles=NFILES
162 Number of files to create [default: 2]
163
164 --filesize=FILESIZE
165 File size to use for test files [default: 64k]
166
167 --rsize=RSIZE
168 Read size to use when reading files [default: 4k]
169
170 --wsize=WSIZE
171 Write size to use when writing files [default: 4k]
172
173 --iodelay=IODELAY
174 Seconds to delay I/O operations [default: 0.1]
175
176 --offset-delta=OFFSET_DELTA
177 Read/Write offset delta [default: 4k]
178
179
180 Path options:
181 --sudo=SUDO
182 Full path of binary for sudo [default: '/usr/bin/sudo']
183
184 --tcpdump=TCPDUMP
185 Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']
186
187 --iptables=IPTABLES
188 Full path of binary for iptables [default: '/usr/sbin/iptables']
189
190 --messages=MESSAGES
191 Full path of log messages file [default: '/var/log/messages']
192
193 --tmpdir=TMPDIR
194 Temporary directory [default: '/tmp']
195
196
197 Debug options:
198 --nocleanup
199 Do not cleanup created files
200
201 --bugmsgs=BUGMSGS
202 File containing test messages to mark as bugs if they failed
203
204 --ignore
205 Ignore all bugs given by bugmsgs
206
207 --nomount
208 Do not mount server and run the tests on local disk space
209
210 --basename=BASENAME
211 Base name for all files and logs [default: automatically gener‐
212 ated]
213
214 --nfsdebug=NFSDEBUG
215 Set NFS kernel debug flags and save log messages [default: '']
216
217 --rpcdebug=RPCDEBUG
218 Set RPC kernel debug flags and save log messages [default: '']
219
220 --pktdisp
221 Display main packets related to the given test
222
223
224 Test options:
225 --runtest=RUNTEST
226 Comma separated list of tests to run, if list starts with a '^'
227 then all tests are run except the ones listed [default: 'all']
228
229 --dst-server=DST_SERVER
230 Destination server for inter server side copy [default: none]
231
232 --dst-export=DST_EXPORT
233 Destination export for inter server side copy [default: none]
234
235 --ncopies=NCOPIES
236 Number of concurrent copies to use on intra14 and inter14 tests
237 [default: 4]
238
239 --src-files=SRC_FILES
240 Number of source files to use concurrently on intra15 and
241 inter15 tests [default: 3]
242
243 --dst-files=DST_FILES
244 Number of destination files to use concurrently on intra15 and
245 inter15 tests [default: 2]
246
247 --pre-write=PRE_WRITE
248 Write destination file before copy_file_range [default: 1]
249
250 --locks=LOCKS
251 Lock files [default: 1]
252
254 intra
255 Run all intra server side copy tests: intra01, intra02, intra03,
256 intra04, intra05, intra06, intra07, intra08, intra09, intra10, intra11,
257 intra12, intra13, intra14, intra15
258
259 pintra
260 Run all positive intra server side copy tests: intra01, intra02,
261 intra03, intra04, intra05, intra06, intra07, intra08, intra14, intra15
262
263 nintra
264 Run all negative intra server side copy tests: intra09, intra10,
265 intra11, intra12, intra13
266
267 intra01
268 Verify intra server side COPY succeeds
269
270 intra02
271 Verify intra server side COPY succeeds when using source offset
272
273 intra03
274 Verify intra server side COPY succeeds when using destination offset
275
276 intra04
277 Verify intra server side COPY succeeds when using NULL as source offset
278
279 intra05
280 Verify intra server side COPY succeeds when using NULL as destination
281 offset
282
283 intra06
284 Verify intra server side COPY succeeds when using count = 0
285
286 intra07
287 Verify intra server side COPY succeeds when the source file is opened
288 as read/write
289
290 intra08
291 Verify intra server side COPY succeeds when the destination file is
292 opened as read/write
293
294 intra09
295 Verify intra server side COPY fails when the source file is opened
296 as write only
297
298 intra10
299 Verify intra server side COPY fails when the destination file is opened
300 as read only
301
302 intra11
303 Verify intra server side COPY fails when source offset is beyond the
304 end of the file
305
306 intra12
307 Verify intra server side COPY fails when source offset plus count
308 is beyond the end of the file
309
310 intra13
311 Verify intra server side COPY fails when both source and destination
312 files point to the same file
313
314 intra14
315 Verify intra server side COPY succeeds when using multiple source and
316 destination offsets
317
318 intra15
319 Verify intra server side COPY succeeds when using multiple source and
320 destination files
321
322 inter
323 Run all inter server side copy tests: inter01, inter02, inter03,
324 inter04, inter05, inter06, inter07, inter08, inter09, inter10, inter11,
325 inter12, inter13, inter14, inter15
326
327 pinter
328 Run all positive inter server side copy tests: inter01, inter02,
329 inter03, inter04, inter05, inter06, inter07, inter08, inter13, inter14,
330 inter15
331
332 ninter
333 Run all negative inter server side copy tests: inter09, inter10,
334 inter11, inter12
335
336 inter01
337 Verify inter server side COPY succeeds
338
339 inter02
340 Verify inter server side COPY succeeds when using source offset
341
342 inter03
343 Verify inter server side COPY succeeds when using destination offset
344
345 inter04
346 Verify inter server side COPY succeeds when using NULL as source offset
347
348 inter05
349 Verify inter server side COPY succeeds when using NULL as destination
350 offset
351
352 inter06
353 Verify inter server side COPY succeeds when using count = 0
354
355 inter07
356 Verify inter server side COPY succeeds when the source file is opened
357 as read/write
358
359 inter08
360 Verify inter server side COPY succeeds when the destination file is
361 opened as read/write
362
363 inter09
364 Verify inter server side COPY fails when the source file is opened
365 as write only
366
367 inter10
368 Verify inter server side COPY fails when the destination file is opened
369 as read only
370
371 inter11
372 Verify inter server side COPY fails when source offset is beyond the
373 end of the file
374
375 inter12
376 Verify inter server side COPY fails when source offset plus count
377 is beyond the end of the file
378
379 inter13
380 Verify inter server side COPY succeeds when both source and destination
381 file names are the same
382
383 inter14
384 Verify inter server side COPY succeeds when using multiple source and
385 destination offsets
386
387 inter15
388 Verify inter server side COPY succeeds when using multiple source and
389 destination files
390
391 positive
392 Run all positive server side copy tests: intra01, intra02, intra03,
393 intra04, intra05, intra06, intra07, intra08, intra14, intra15, inter01,
394 inter02, inter03, inter04, inter05, inter06, inter07, inter08, inter13,
395 inter14, inter15
396
397 negative
398 Run all negative server side copy tests: intra09, intra10, intra11,
399 intra12, intra13, inter09, inter10, inter11, inter12
400
402 The only required option is --server
403 $ nfstest_ssc --server 192.168.0.11
404
406 The user id in the local host and the host specified by --dst-server
407 must have access to run commands as root using the 'sudo' command with‐
408 out the need for a password.
409
410 The user id must be able to 'ssh' to remote host without the need for a
411 password.
412
413 Valid only for NFS version 4.2 and above.
414
416 baseobj(3), formatstr(3), nfstest.test_util(3), nfstest_alloc(1),
417 nfstest_cache(1), nfstest_delegation(1), nfstest_dio(1),
418 nfstest_file(1), nfstest_interop(1), nfstest_io(1), nfstest_lock(1),
419 nfstest_pkt(1), nfstest_pnfs(1), nfstest_posix(1), nfstest_sparse(1),
420 nfstest_xid(1), packet.nfs.nfs3_const(3), packet.nfs.nfs4_const(3)
421
422
424 No known bugs.
425
427 Jorge Mora (mora@netapp.com)
428
429
430
431NFStest 2.1.5 14 February 2017 NFSTEST_SSC(1)