1NFSTEST_SSC(1)                  nfstest_ssc 1.1                 NFSTEST_SSC(1)
2
3
4

NAME

6       nfstest_ssc - Server side copy tests
7

SYNOPSIS

9       nfstest_ssc --server <server> [options]
10

DESCRIPTION

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

OPTIONS

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

TESTS

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

EXAMPLES

402       The only required option is --server
403       $ nfstest_ssc --server 192.168.0.11
404

NOTES

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

SEE ALSO

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

BUGS

424       No known bugs.
425

AUTHOR

427       Jorge Mora (mora@netapp.com)
428
429
430
431NFStest 2.1.5                  14 February 2017                 NFSTEST_SSC(1)
Impressum