mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 01:01:27 +00:00
See also https://github.com/bvanassche/scst/pull/20. [ bvanassche: left out qla2x00t-32gbit changes and changed patch description ] git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8920 d57e44dd-8a1f-0410-8b47-8ef2f437770f
267 lines
6.1 KiB
Plaintext
267 lines
6.1 KiB
Plaintext
SCST Configuration/Administration scripts. Here you'll find scstadmin which reads
|
|
a configuration file /etc/scst.conf, or one if your choosing. With it you can manually
|
|
or automatically configure every aspect of SCST including enabling/disabling target mode
|
|
on your target SCSI controller. The old directory contains scst_db which uses a mysql
|
|
backend database to configure SCST but doesn't handle all the things scstadmin handles.
|
|
The perl module SCST::SCST is very generic and tries to handle error checking as well.
|
|
|
|
The init script was written for debian but should work on most distributions.
|
|
|
|
|
|
scstadmin.sysfs scstadmin version that supports sysfs.
|
|
scst-1.0.0 This is the SCST Perl module to be used with SCST compiled
|
|
for sysfs.
|
|
|
|
scstadmin Script which can accept operations on a command line or from
|
|
a configuration file. See scst.conf. For command help,
|
|
#> scstadmin
|
|
|
|
scst.conf Configuration file for scst script. Usually stored
|
|
in /etc.
|
|
|
|
examples Configuration examples.
|
|
|
|
init.d/scst Init script to start SCST on boot which uses scstadmin.
|
|
|
|
|
|
INSTALLING
|
|
----------
|
|
|
|
Now do the normal:
|
|
|
|
make
|
|
make install
|
|
|
|
This installs scstadmin, the init.d script and the perl module. If you want SCST to
|
|
startup and configure automatically upon boot, enable SCST using your favorite
|
|
SysV init editor.
|
|
|
|
NOTE: The init.d startup & shutdown scripts now depend on lsb-core. Ensure you have
|
|
lsb-core installed or 'make install' will fail. Make sure /usr/lib/lsb/install_initd
|
|
exists.
|
|
|
|
|
|
GETTING HELP
|
|
------------
|
|
|
|
To see the scstadmin command line options, type:
|
|
|
|
scstadmin --help
|
|
|
|
|
|
CONVERTING FROM PROCFS (scst version 1.x)
|
|
-----------------------------------------
|
|
|
|
The new scstadmin uses a different configuration file format. However,
|
|
scstadmin will convert your old configuration file for you. No special
|
|
arguments are required, simply:
|
|
|
|
scstadmin -config <old config file>
|
|
|
|
Take note of warnings issued by scstadmin. Manually fix configuration
|
|
errors using scstadmin. Once you're satisfied your running configuration is
|
|
what you expect, save it by typing:
|
|
|
|
scstadmin -write_config <new config file>
|
|
|
|
Be sure to review this new configuration file to ensure it matches.
|
|
|
|
|
|
CREATING A CONFIGURATION FROM SCRATCH
|
|
-------------------------------------
|
|
|
|
* DEVICES *
|
|
|
|
Devices are defined by their handler. Commonly used handlers are dev_disk,
|
|
dev_cdrom, vdisk_fileio, vdisk_blockio and vcdrom.
|
|
|
|
To list all the available handlers, type:
|
|
|
|
scstadmin -list_handler
|
|
|
|
Physical devices used for passthrough handlers like dev_disk and dev_cdrom
|
|
are defined by their H:C:I:L :
|
|
|
|
HANDLER dev_disk {
|
|
DEVICE 1:0:0:0
|
|
}
|
|
|
|
HANDLER dev_cdrom {
|
|
DEVICE 2:0:0:0
|
|
}
|
|
|
|
Virtual devices are opened through special CREATE attributes. For example, a
|
|
virtual disk named "disk1" pointing to a disk partition /dev/hda1 would be look
|
|
like:
|
|
|
|
HANDLER vdisk_fileio {
|
|
DEVICE disk1 {
|
|
filename /dev/hda1
|
|
}
|
|
}
|
|
|
|
To list all the available CREATE attributes for a given handler, type:
|
|
|
|
scstadmin -list_hnd_attr <handler>
|
|
|
|
* ASSIGNING DEVICES TO TARGET AND INITIATORS *
|
|
|
|
Now we can assign the device to a target driver. To get a list of available
|
|
drivers, type:
|
|
|
|
scstadmin -list_driver
|
|
|
|
To list all available targets, type:
|
|
|
|
scstadmin -list_target
|
|
|
|
Now we can build our configuration assigning disk1 to LUN 0 for all initiators:
|
|
|
|
TARGET_DRIVER qla2x00t {
|
|
TARGET 25:00:00:f0:98:87:92:f3 {
|
|
LUN 0 disk1
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|
|
NOTE: We added the attribute "enabled" and set it to "1". Without this attribute
|
|
set to 1, this target will be disabled and no initiators have access to its
|
|
LUNs.
|
|
|
|
This assigns disk1 to LUN 0 using default attributes. To list all available LUN
|
|
CREATE attributes, type:
|
|
|
|
scstadmin -list_tgt_attr <target> -driver <driver>
|
|
|
|
An example would be to use the CREATE attribute "read_only" to force the LUN to
|
|
be read-only:
|
|
|
|
TARGET_DRIVER qla2x00t {
|
|
TARGET 25:00:00:f0:98:87:92:f3 {
|
|
LUN 0 disk1 {
|
|
read_only 1
|
|
}
|
|
|
|
# Assign LUN 1 to passthrough device 1:0:0:0
|
|
LUN 1 1:0:0:0
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|
|
Since LUNs 0 and 1 will now be available to all targets, we may want to
|
|
establish groups to restrict which LUNs are available to which initiators.
|
|
To do that, we use the GROUP clause within the TARGET clause:
|
|
|
|
TARGET_DRIVER qla2x00t {
|
|
TARGET 25:00:00:f0:98:87:92:f3 {
|
|
GROUP production {
|
|
LUN 0 disk1 {
|
|
read_only 1
|
|
}
|
|
|
|
INITIATOR 25:00:00:f0:99:87:94:a3
|
|
}
|
|
|
|
GROUP development {
|
|
LUN 0 1:0:0:0
|
|
INITIATOR 25:00:00:f0:99:87:94:a4
|
|
}
|
|
|
|
# Allow a CDROM device to be LUN 1 for all initiators
|
|
LUN 1 2:0:0:0
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|
|
For drivers which support virtual targets, like iSCSI, scstadmin will simply
|
|
create them on the fly:
|
|
|
|
TARGET_DRIVER iscsi {
|
|
enabled 1
|
|
|
|
IncomingUser "joe 12charsecret"
|
|
|
|
TARGET iqn.2006-10.net.vlnb:tgt {
|
|
IncomingUser "joe 12charsecret"
|
|
|
|
LUN 0 disk1
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|
|
Notice we included a new attribute "IncomingUser" This is a dynamic attribute
|
|
which allows an initiator to scan for LUNs, if added at the driver level, and
|
|
attach to LUNs if added at the target level. To retrieve a list of available
|
|
driver dynamic attributes, type:
|
|
|
|
scstadmin -list_drv_attr <driver>
|
|
|
|
To retrieve a list of available target dynamic attributes, type:
|
|
|
|
scstadmin -list_tgt_attr <target> -driver <driver>
|
|
|
|
Other attributes called non-key attributes may also be defined, assuming they
|
|
are writable. These can be listed using any of the above -list commands using
|
|
the extra -nonkey option:
|
|
|
|
scstadmin -list_tgt_attr <target> -driver <driver> -nonkey
|
|
|
|
* EXAMPLE CONFIGURATION *
|
|
|
|
A complete configuration using the above examples would look like:
|
|
|
|
HANDLER dev_disk {
|
|
DEVICE 1:0:0:0
|
|
}
|
|
|
|
HANDLER dev_cdrom {
|
|
DEVICE 2:0:0:0
|
|
}
|
|
|
|
HANDLER vdisk_fileio {
|
|
DEVICE disk1 {
|
|
filename /dev/hda1
|
|
}
|
|
}
|
|
|
|
TARGET_DRIVER qla2x00t {
|
|
TARGET 25:00:00:f0:98:87:92:f3 {
|
|
GROUP production {
|
|
LUN 0 disk1 {
|
|
read_only 1
|
|
}
|
|
|
|
INITIATOR 25:00:00:f0:99:87:94:a3
|
|
}
|
|
|
|
GROUP development {
|
|
LUN 0 1:0:0:0
|
|
INITIATOR 25:00:00:f0:99:87:94:a4
|
|
}
|
|
|
|
# Allow a CDROM device to be LUN 1 for all initiators
|
|
LUN 1 2:0:0:0
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|
|
TARGET_DRIVER iscsi {
|
|
enabled 1
|
|
|
|
IncomingUser "joe 12charsecret"
|
|
|
|
TARGET iqn.2006-10.net.vlnb:tgt {
|
|
IncomingUser "joe 12charsecret"
|
|
|
|
LUN 0 disk1
|
|
|
|
enabled 1
|
|
}
|
|
}
|
|
|