68431d8b9f6ff5a36a42187c0cd85c6d2c987520
[mirror/scst/.git] / iscsi-scst / README_in-tree
1 iSCSI SCST target driver
2 ========================
3
4 ISCSI-SCST is a deeply reworked fork of iSCSI Enterprise Target (IET)
5 (http://iscsitarget.sourceforge.net). Reasons of the fork were:
6
7  - To be able to use full power of SCST core.
8
9  - To fix all the problems, corner cases issues and iSCSI standard
10    violations which IET has.
11
12 See more info at http://iscsi-scst.sourceforge.net.
13
14 Usage
15 -----
16
17 See in http://iscsi-scst.sourceforge.net/iscsi-scst-howto.txt how to
18 configure iSCSI-SCST.
19
20 In 2.0.0 usage of iscsi-scstd.conf as well as iscsi-scst-adm utility is
21 obsolete. Use the sysfs interface facilities instead.
22
23 It is recommended to use TEST UNIT READY ("tur") command to check if
24 iSCSI-SCST target is alive in MPIO configurations.
25
26 IMPORTANT: In the procfs build all LUN information (access control)
27 =========  MUST be configured BEFORE iscsi-scstd started!
28
29 Also see SCST README file how to tune for the best performance.
30
31 CAUTION: Working of target and initiator on the same host isn't fully
32 =======  supported. See SCST README file for details.
33
34
35 Sysfs interface
36 ---------------
37
38 Starting from 2.0.0 iSCSI-SCST has sysfs interface. You can switch to it
39 by running "make disable_proc". To switch back to the procfs interface
40 you should run "make enable_proc". The procfs interface from version
41 2.0.0 is obsolete and will be removed in one of the next versions.
42
43 Root of SCST sysfs interface is /sys/kernel/scst_tgt. Root of iSCSI-SCST
44 is /sys/kernel/scst_tgt/targets/iscsi. It has the following entries:
45
46  - None, one or more subdirectories for targets with name equal to names
47    of the corresponding targets.
48
49  - IncomingUser[num] - optional one or more attributes containing user
50    name and password for incoming discovery user name. Not exist by
51    default and can be added through "mgmt" entry, see below.
52
53  - OutgoingUser - optional attribute containing user name and password
54    for outgoing discovery user name. Not exist by default and can be
55    added through "mgmt" entry, see below.
56
57  - iSNSServer - contains name or IP address of iSNS server with optional
58    "AccessControl" attribute, which allows to enable iSNS access
59    control. Empty by default.
60
61  - enabled - using this attribute you can enable or disable iSCSI-SCST
62    accept new connections. It allows to finish configuring global
63    iSCSI-SCST attributes before it starts accepting new connections. 0
64    by default.
65
66  - open_state - read-only attribute, which allows to see if the user
67    space part of iSCSI-SCST connected to the kernel part.
68
69  - trace_level - allows to enable and disable various tracing
70    facilities. See content of this file for help how to use it.
71
72  - version - read-only attribute, which allows to see version of
73    iSCSI-SCST and enabled optional features.
74
75  - mgmt - main management entry, which allows to configure iSCSI-SCST.
76    Namely, add/delete targets as well as add/delete optional global and
77    per-target attributes. See content of this file for help how to use
78    it.
79
80 Each iSCSI-SCST sysfs file (attribute) can contain in the last line mark
81 "[key]". It is automatically added mark used to allow scstadmin to see
82 which attributes it should save in the config file. You can ignore it.
83
84 Each target subdirectory contains the following entries:
85
86  - ini_groups - subdirectory defining initiator groups for this target,
87    used to define per-initiator access control. See SCST core README for
88    more details.
89
90  - luns - subdirectory defining LUNs of this target. See SCST core
91    README for more details.
92
93  - sessions - subdirectory containing connected to this target sessions.
94
95  - IncomingUser[num] - optional one or more attributes containing user
96    name and password for incoming user name. Not exist by default and can
97    be added through the "mgmt" entry, see above.
98
99  - OutgoingUser - optional attribute containing user name and password
100    for outgoing user name. Not exist by default and can be added through
101    the "mgmt" entry, see above.
102
103  - Entries defining default iSCSI parameters values used during iSCSI
104    parameters negotiation. Only entries which can be changed or make
105    sense are listed there.
106
107  - QueuedCommands - defines maximum number of commands queued to any
108    session of this target. Default is 32 commands.
109
110  - RspTimeout - defines the maximum time in seconds a command can wait for
111    response from initiator, otherwise the corresponding connection will
112    be closed. For performance reasons it is implemented as a timer,
113    which once in RspTimeout time checks the oldest command waiting for
114    response and, if it's older than RspTimeout, then it closes the
115    connection. Hence, a stalled connection will be closed in time
116    between RspTimeout and 2*RspTimeout. Default is 30 seconds.
117
118  - NopInInterval - defines interval between NOP-In requests, which the
119    target will send on idle connections to check if the initiator is
120    still alive. If there is no NOP-Out reply from the initiator in
121    RspTimeout time, the corresponding connection will be closed. Default
122    is 30 seconds. If it's set to 0, then NOP-In requests are disabled.
123
124  - enabled - using this attribute you can enable or disable iSCSI-SCST
125    accept new connections to this target. It allows to finish
126    configuring it before it starts accepting new connections. 0 by
127    default.
128
129  - rel_tgt_id - allows to read or write SCSI Relative Target Port
130    Identifier attribute. This identifier is used to identify SCSI Target
131    Ports by some SCSI commands, mainly by Persistent Reservations
132    commands. This identifier must be unique among all SCST targets, but
133    for convenience SCST allows disabled targets to have not unique
134    rel_tgt_id. In this case SCST will not allow to enable this target
135    until rel_tgt_id becomes unique. This attribute initialized unique by
136    SCST by default.
137
138  - tid - TID of this target.
139
140 Subdirectory "sessions" contains one subdirectory for each connected
141 session with name equal to name of the connected initiator.
142
143 Each session subdirectory contains the following entries:
144
145  - One subdirectory for each TCP connection in this session. ISCSI-SCST
146    supports 1 connection per session, but the session subdirectory can
147    contain several connections: one active and other being closed.
148
149  - Entries defining negotiated iSCSI parameters. Only parameters which
150    can be changed or make sense are listed there.
151
152  - initiator_name - contains initiator name
153
154  - sid - contains SID of this session
155
156  - reinstating - contains reinstatement state of this session
157
158  - force_close - write-only attribute, which allows to force close this
159    session. This is the only writable session attribute.
160
161  - active_commands - contains number of active, i.e. not yet or being
162    executed, SCSI commands in this session.
163
164  - commands - contains overall number of SCSI commands in this session.
165
166 Each connection subdirectory contains the following entries:
167
168  - cid - contains CID of this connection.
169
170  - ip - contains IP address of the connected initiator.
171
172  - state - contains processing state of this connection.
173
174 Below is a sample script, which configures 1 virtual disk "disk1" using
175 /disk1 image and one target iqn.2006-10.net.vlnb:tgt with all default
176 parameters:
177
178 #!/bin/bash
179
180 modprobe scst
181 modprobe scst_vdisk
182
183 echo "add_device disk1 filename=/disk1; nv_cache=1" >/sys/kernel/scst_tgt/handlers/vdisk_fileio/mgmt
184
185 service iscsi-scst start
186
187 echo "add_target iqn.2006-10.net.vlnb:tgt" >/sys/kernel/scst_tgt/targets/iscsi/mgmt
188 echo "add disk1 0" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt/luns/mgmt
189
190 echo 1 >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt/enabled
191 echo 1 >/sys/kernel/scst_tgt/targets/iscsi/enabled
192
193 Below is more advanced sample script, which configures more virtual
194 devices of various types, including virtual CDROM and 2 targets, one
195 with all default parameters, another one with some not default
196 parameters, incoming and outgoing user names for CHAP authentification,
197 and special permissions for initiator iqn.2005-03.org.open-iscsi:cacdcd2520,
198 which will see another set of devices. Also this sample configures CHAP
199 authentication for discovery sessions and iSNS server with access control.
200
201 #!/bin/bash
202
203 modprobe scst
204 modprobe scst_vdisk
205
206 echo "add_device disk1 filename=/disk1; nv_cache=1" >/sys/kernel/scst_tgt/handlers/vdisk_fileio/mgmt
207 echo "add_device disk2 filename=/disk2; blocksize=4096; nv_cache=1" >/sys/kernel/scst_tgt/handlers/vdisk_fileio/mgmt
208 echo "add_device blockio filename=/dev/sda5" >/sys/kernel/scst_tgt/handlers/vdisk_blockio/mgmt
209 echo "add_device nullio" >/sys/kernel/scst_tgt/handlers/vdisk_nullio/mgmt
210 echo "add_device cdrom" >/sys/kernel/scst_tgt/handlers/vcdrom/mgmt
211
212 service iscsi-scst start
213
214 echo "192.168.1.16 AccessControl" >/sys/kernel/scst_tgt/targets/iscsi/iSNSServer
215 echo "add_attribute IncomingUser joeD 12charsecret" >/sys/kernel/scst_tgt/targets/iscsi/mgmt
216 echo "add_attribute OutgoingUser jackD 12charsecret1" >/sys/kernel/scst_tgt/targets/iscsi/mgmt
217
218 echo "add_target iqn.2006-10.net.vlnb:tgt" >/sys/kernel/scst_tgt/targets/iscsi/mgmt
219
220 echo "add disk1 0" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt/luns/mgmt
221 echo "add cdrom 1" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt/luns/mgmt
222
223 echo "add_target iqn.2006-10.net.vlnb:tgt1" >/sys/kernel/scst_tgt/targets/iscsi/mgmt
224 echo "add_target_attribute iqn.2006-10.net.vlnb:tgt1 IncomingUser1 joe2 12charsecret2" >/sys/kernel/scst_tgt/targets/iscsi/mgmt             
225 echo "add_target_attribute iqn.2006-10.net.vlnb:tgt1 IncomingUser joe 12charsecret" >/sys/kernel/scst_tgt/targets/iscsi/mgmt                
226 echo "add_target_attribute iqn.2006-10.net.vlnb:tgt1 OutgoingUser jim1 12charpasswd" >/sys/kernel/scst_tgt/targets/iscsi/mgmt               
227 echo "No" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/InitialR2T                                                          
228 echo "Yes" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/ImmediateData                                                      
229 echo "8192" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/MaxRecvDataSegmentLength                                          
230 echo "8192" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/MaxXmitDataSegmentLength                                          
231 echo "131072" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/MaxBurstLength                                                  
232 echo "32768" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/FirstBurstLength                                                 
233 echo "1" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/MaxOutstandingR2T                                                    
234 echo "CRC32C,None" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/HeaderDigest                                               
235 echo "CRC32C,None" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/DataDigest                                                 
236 echo "32" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/QueuedCommands                                                      
237
238 echo "add disk2 0" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/luns/mgmt
239 echo "add nullio 26" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/luns/mgmt
240
241 echo "create special_ini" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/ini_groups/mgmt
242 echo "add blockio 0 read_only=1" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/ini_groups/special_ini/luns/mgmt
243 echo "add iqn.2005-03.org.open-iscsi:cacdcd2520" >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/ini_groups/special_ini/initiators/mgmt
244
245 echo 1 >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt/enabled
246 echo 1 >/sys/kernel/scst_tgt/targets/iscsi/iqn.2006-10.net.vlnb:tgt1/enabled
247
248 echo 1 >/sys/kernel/scst_tgt/targets/iscsi/enabled
249
250 The resulting overall SCST sysfs hierarchy with an initiator connected to
251 both iSCSI-SCST targets will look like:
252
253 /sys/kernel/scst_tgt
254 |-- devices
255 |   |-- blockio
256 |   |   |-- blocksize
257 |   |   |-- exported
258 |   |   |   `-- export0 -> ../../../targets/iscsi/iqn.2006-10.net.vlnb:tgt1/ini_groups/special_ini/luns/0
259 |   |   |-- filename
260 |   |   |-- handler -> ../../handlers/vdisk_blockio
261 |   |   |-- read_only
262 |   |   |-- removable
263 |   |   |-- resync_size
264 |   |   |-- size_mb
265 |   |   |-- t10_dev_id
266 |   |   |-- threads_num
267 |   |   |-- threads_pool_type
268 |   |   |-- type
269 |   |   `-- usn
270 |   |-- cdrom
271 |   |   |-- exported
272 |   |   |   `-- export0 -> ../../../targets/iscsi/iqn.2006-10.net.vlnb:tgt/luns/1
273 |   |   |-- filename
274 |   |   |-- handler -> ../../handlers/vcdrom
275 |   |   |-- size_mb
276 |   |   |-- t10_dev_id
277 |   |   |-- threads_num
278 |   |   |-- threads_pool_type
279 |   |   |-- type
280 |   |   `-- usn
281 |   |-- disk1
282 |   |   |-- blocksize
283 |   |   |-- exported
284 |   |   |   `-- export0 -> ../../../targets/iscsi/iqn.2006-10.net.vlnb:tgt/luns/0
285 |   |   |-- filename
286 |   |   |-- handler -> ../../handlers/vdisk_fileio
287 |   |   |-- nv_cache
288 |   |   |-- o_direct
289 |   |   |-- read_only
290 |   |   |-- removable
291 |   |   |-- resync_size
292 |   |   |-- size_mb
293 |   |   |-- t10_dev_id
294 |   |   |-- type
295 |   |   |-- usn
296 |   |   `-- write_through
297 |   |-- disk2
298 |   |   |-- blocksize
299 |   |   |-- exported
300 |   |   |   `-- export0 -> ../../../targets/iscsi/iqn.2006-10.net.vlnb:tgt1/luns/0
301 |   |   |-- filename
302 |   |   |-- handler -> ../../handlers/vdisk_fileio
303 |   |   |-- nv_cache
304 |   |   |-- o_direct
305 |   |   |-- read_only
306 |   |   |-- removable
307 |   |   |-- resync_size
308 |   |   |-- size_mb
309 |   |   |-- t10_dev_id
310 |   |   |-- threads_num
311 |   |   |-- threads_pool_type
312 |   |   |-- threads_num
313 |   |   |-- threads_pool_type
314 |   |   |-- type
315 |   |   |-- usn
316 |   |   `-- write_through
317 |   `-- nullio
318 |       |-- blocksize
319 |       |-- exported
320 |       |   `-- export0 -> ../../../targets/iscsi/iqn.2006-10.net.vlnb:tgt1/luns/26
321 |       |-- handler -> ../../handlers/vdisk_nullio
322 |       |-- read_only
323 |       |-- removable
324 |       |-- size_mb
325 |       |-- t10_dev_id
326 |       |-- threads_num
327 |       |-- threads_pool_type
328 |       |-- type
329 |       `-- usn
330 |-- handlers
331 |   |-- vcdrom
332 |   |   |-- cdrom -> ../../devices/cdrom
333 |   |   |-- mgmt
334 |   |   |-- trace_level
335 |   |   `-- type
336 |   |-- vdisk_blockio
337 |   |   |-- blockio -> ../../devices/blockio
338 |   |   |-- mgmt
339 |   |   |-- trace_level
340 |   |   `-- type
341 |   |-- vdisk_fileio
342 |   |   |-- disk1 -> ../../devices/disk1
343 |   |   |-- disk2 -> ../../devices/disk2
344 |   |   |-- mgmt
345 |   |   |-- trace_level
346 |   |   `-- type
347 |   `-- vdisk_nullio
348 |       |-- mgmt
349 |       |-- nullio -> ../../devices/nullio
350 |       |-- trace_level
351 |       `-- type
352 |-- sgv
353 |   |-- global_stats
354 |   |-- sgv
355 |   |   `-- stats
356 |   |-- sgv-clust
357 |   |   `-- stats
358 |   `-- sgv-dma
359 |       `-- stats
360 |-- targets
361 |   `-- iscsi
362 |       |-- IncomingUser
363 |       |-- OutgoingUser
364 |       |-- enabled
365 |       |-- iSNSServer
366 |       |-- iqn.2006-10.net.vlnb:tgt
367 |       |   |-- DataDigest
368 |       |   |-- FirstBurstLength
369 |       |   |-- HeaderDigest
370 |       |   |-- ImmediateData
371 |       |   |-- InitialR2T
372 |       |   |-- MaxBurstLength
373 |       |   |-- MaxOutstandingR2T
374 |       |   |-- MaxRecvDataSegmentLength
375 |       |   |-- MaxXmitDataSegmentLength
376 |       |   |-- NopInInterval
377 |       |   |-- QueuedCommands
378 |       |   |-- RspTimeout
379 |       |   |-- enabled
380 |       |   |-- ini_groups
381 |       |   |   `-- mgmt
382 |       |   |-- luns
383 |       |   |   |-- 0
384 |       |   |   |   |-- device -> ../../../../../devices/disk1
385 |       |   |   |   `-- read_only
386 |       |   |   |-- 1
387 |       |   |   |   |-- device -> ../../../../../devices/cdrom
388 |       |   |   |   `-- read_only
389 |       |   |   `-- mgmt
390 |       |   |-- rel_tgt_id
391 |       |   |-- sessions
392 |       |   |   `-- iqn.2005-03.org.open-iscsi:cacdcd2520
393 |       |   |       |-- 10.170.75.2
394 |       |   |       |   |-- cid
395 |       |   |       |   |-- ip
396 |       |   |       |   `-- state
397 |       |   |       |-- DataDigest
398 |       |   |       |-- FirstBurstLength
399 |       |   |       |-- HeaderDigest
400 |       |   |       |-- ImmediateData
401 |       |   |       |-- InitialR2T
402 |       |   |       |-- MaxBurstLength
403 |       |   |       |-- MaxOutstandingR2T
404 |       |   |       |-- MaxRecvDataSegmentLength
405 |       |   |       |-- MaxXmitDataSegmentLength
406 |       |   |       |-- active_commands
407 |       |   |       |-- commands
408 |       |   |       |-- force_close
409 |       |   |       |-- initiator_name
410 |       |   |       |-- luns -> ../../luns
411 |       |   |       |-- reinstating
412 |       |   |       `-- sid
413 |       |   `-- tid
414 |       |-- iqn.2006-10.net.vlnb:tgt1
415 |       |   |-- DataDigest
416 |       |   |-- FirstBurstLength
417 |       |   |-- HeaderDigest
418 |       |   |-- ImmediateData
419 |       |   |-- IncomingUser
420 |       |   |-- IncomingUser1
421 |       |   |-- InitialR2T
422 |       |   |-- MaxBurstLength
423 |       |   |-- MaxOutstandingR2T
424 |       |   |-- MaxRecvDataSegmentLength
425 |       |   |-- MaxXmitDataSegmentLength
426 |       |   |-- OutgoingUser
427 |       |   |-- NopInInterval
428 |       |   |-- QueuedCommands
429 |       |   |-- RspTimeout
430 |       |   |-- enabled
431 |       |   |-- ini_groups
432 |       |   |   |-- mgmt
433 |       |   |   `-- special_ini
434 |       |   |       |-- initiators
435 |       |   |       |   |-- iqn.2005-03.org.open-iscsi:cacdcd2520
436 |       |   |       |   `-- mgmt
437 |       |   |       `-- luns
438 |       |   |           |-- 0
439 |       |   |           |   |-- device -> ../../../../../../../devices/blockio
440 |       |   |           |   `-- read_only
441 |       |   |           `-- mgmt
442 |       |   |-- luns
443 |       |   |   |-- 0
444 |       |   |   |   |-- device -> ../../../../../devices/disk2
445 |       |   |   |   `-- read_only
446 |       |   |   |-- 26
447 |       |   |   |   |-- device -> ../../../../../devices/nullio
448 |       |   |   |   `-- read_only
449 |       |   |   `-- mgmt
450 |       |   |-- rel_tgt_id
451 |       |   |-- sessions
452 |       |   |   `-- iqn.2005-03.org.open-iscsi:cacdcd2520
453 |       |   |       |-- 10.170.75.2
454 |       |   |       |   |-- cid
455 |       |   |       |   |-- ip
456 |       |   |       |   `-- state
457 |       |   |       |-- DataDigest
458 |       |   |       |-- FirstBurstLength
459 |       |   |       |-- HeaderDigest
460 |       |   |       |-- ImmediateData
461 |       |   |       |-- InitialR2T
462 |       |   |       |-- MaxBurstLength
463 |       |   |       |-- MaxOutstandingR2T
464 |       |   |       |-- MaxRecvDataSegmentLength
465 |       |   |       |-- MaxXmitDataSegmentLength
466 |       |   |       |-- active_commands
467 |       |   |       |-- commands
468 |       |   |       |-- force_close
469 |       |   |       |-- initiator_name
470 |       |   |       |-- luns -> ../../ini_groups/special_ini/luns
471 |       |   |       |-- reinstating
472 |       |   |       `-- sid
473 |       |   `-- tid
474 |       |-- mgmt
475 |       |-- open_state
476 |       |-- trace_level
477 |       `-- version
478 |-- threads
479 |-- trace_level
480 `-- version
481
482
483 Troubleshooting
484 ---------------
485
486 If you have any problems, start troubleshooting from looking at the
487 kernel and system logs. In the kernel log iSCSI-SCST and SCST core send
488 their messages, in the system log iscsi-scstd sends its messages. In
489 most Linux distributions both those logs are put to /var/log/messages
490 file.
491
492 Then, it might be helpful to increase level of logging. For kernel
493 modules you should make the debug build by enabling CONFIG_SCST_DEBUG.
494
495 If after looking on the logs the reason of your problem is still unclear
496 for you, report to SCST mailing list scst-devel@lists.sourceforge.net.
497
498
499 Work if target's backstorage or link is too slow
500 ------------------------------------------------
501
502 In some cases you can experience I/O stalls or see in the kernel log
503 abort or reset messages. It can happen under high I/O load, when your
504 target's backstorage gets overloaded, or working over a slow link, when
505 the link can't serve all the queued commands on time,
506
507 To workaround it you can reduce QueuedCommands parameter for the
508 corresponding target to some lower value, like 8 (default is 32).
509
510 Also see SCST README file for more details about that issue and ways to
511 prevent it.
512
513
514 Performance advices
515 -------------------
516
517 1. If you use Windows XP or Windows 2003+ as initiators, you should
518 consider to decrease TcpAckFrequency parameter to 1. See
519 http://support.microsoft.com/kb/328890/ or google for "TcpAckFrequency"
520 for more details.
521
522 2. See how to get the maximum throughput from iSCSI, for instance, at
523 http://virtualgeek.typepad.com/virtual_geek/2009/01/a-multivendor-post-to-help-our-mutual-iscsi-customers-using-vmware.html.
524 It's about VMware, but its recommendations apply to other environments
525 as well.
526
527 3. ISCSI initiators built in pre-CentOS/RHEL 5 reported to have some
528 performance problems. If you use it, it is strongly advised to upgrade.
529
530 4. Pay attention to have io_grouping_type option set correctly. See SCST
531 core's README for more details.
532
533 5. If you are going to use your target in an VM environment, for
534 instance as a shared storage with VMware, make sure all your VMs
535 connected to the target via *separate* sessions, i.e. each VM has own
536 connection to the target, not all VMs connected using a single
537 connection. You can check it using SCST proc or sysfs interface. If you
538 miss it, you can greatly loose performance of parallel access to your
539 target from different VMs.
540
541 6. Many dual port network adapters are not able to transfer data
542 simultaneousy on both ports, i.e. they transfer data via both ports on
543 the same speed as via any single port. Thus, using such adapters in MPIO
544 configuration can't improve performance. To allow MPIO to have double
545 performance you should either use separate network adapters, or find a
546 dual-port adapter capable to to transfer data simultaneousy on both
547 ports. You can check it by running 2 iperf's through both ports in
548 parallel.
549
550
551 Compilation options
552 -------------------
553
554 There are the following compilation options, that could be commented
555 in/out in the kernel's module Makefile:
556
557  - CONFIG_SCST_DEBUG - turns on some debugging code, including some logging.
558    Makes the driver considerably bigger and slower, producing large amount of
559    log data.
560
561  - CONFIG_SCST_TRACING - turns on ability to log events. Makes the driver
562    considerably bigger and leads to some performance loss.
563
564  - CONFIG_SCST_EXTRACHECKS - adds extra validity checks in the various places.
565
566  - CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES - simulates digest failures in
567    random places.
568
569
570 Credits
571 -------
572
573 Thanks to:
574
575  * Ming Zhang <blackmagic02881@gmail.com> for fixes
576
577  * Krzysztof Blaszkowski <kb@sysmikro.com.pl> for many fixes
578
579  * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> for comments and help in
580    debugging
581
582  * Tomasz Chmielewski <mangoo@wpkg.org> for testing and suggestions
583
584  * Bart Van Assche <bart.vanassche@gmail.com> for a lot of help
585
586 Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net