| .\" -*- nroff -*- |
| .\" Copyright 2011 Bart Van Assche <bvanassche@acm.org>. All rights reserved. |
| .\" Permission is granted to copy, distribute and/or modify this document |
| .\" under the terms of the GNU General Public License, version 2 (GPLv2). |
| .TH scstadmin 1 "July 2011" "scstadmin 2.0.0" |
| .SH NAME |
| scstadmin \- administer the configuration of SCST |
| .SH SYNOPSIS |
| .B scstadmin |
| [<OPTION>]* <COMMAND> |
| .SH DESCRIPTION |
| SCST consists of multiple kernel modules: the SCST core, SCST target drivers |
| and SCST device handlers. The state of each of these kernel modules is |
| configurable at runtime. Scstadmin allows query the current state, to modify |
| the current state, to save the current state to a file and to restore the SCST |
| state from a file. The relevant SCST concepts are: |
| .TP |
| .B device |
| An SCST device represents local storage that is exported via SCST. An SCST |
| device is either a local SCSI device (disk, CD-ROM, tape, ...), a block I/O |
| device like a disk or RAID controller or a file on a filesystem. The SCST |
| drivers that control SCST devices are called device handlers. Examples of |
| such device handlers are dev_disk, vdisk_blockio and vdisk_fileio. |
| .TP |
| .B target |
| An SCST target is an interface that allows a remote system to access the |
| storage exported via SCST. Each target is controlled by a target |
| driver. Examples of target drivers are iscsi_scst, qla2x00t, ib_srpt and |
| scst_local. |
| .TP |
| .B ALUA |
| An SCST setup can have multiple storage interfaces. A single SCST server can |
| be equipped with multiple interfaces or two SCST servers can have been set up |
| in a cluster. If there are multiple paths between an initiator and a target |
| system or target cluster then configuring ALUA (Asymmetric Logical Unit |
| Access) will make SCST to tell the initiator which path to use. |
| .SH OPTIONS |
| .PP |
| <OPTION> is one of: |
| .TP |
| .B -debug |
| For commands that modify the SCST state, let scstadmin show which SCST state |
| information would be modified instead of performing these modifications. |
| .TP |
| .B -force |
| Let certain potentially dangerous operations proceed, e.g. closing a device |
| that is still in use or removing an initiator group that is still in use. |
| .TP |
| .B -nonkey |
| When writing a config file or listing attributes, include non-key attributes. |
| .TP |
| .B -noprompt |
| Do not prompt for confirmation before modifying the SCST state. |
| .PP |
| <COMMAND> is one of: |
| .TP |
| .B -h |
| Show usage information. |
| .TP |
| .B -help |
| Identical to -h. |
| .TP |
| .B -config <file> |
| Read and apply the specified configuration file. |
| .TP |
| .B -check_config <file> |
| Verify the syntax of the specified configuration file. |
| .TP |
| .B -write_config <file> |
| Save the current configuration to the specified file. |
| .TP |
| .B -clear_config |
| Remove all configured devices, targets that do not correspond to a physical |
| entity, dynamic target attributes, initiator groups, LUNs and dynamic driver |
| attributes. Disable all targets that correspond to a physical entity and |
| disable all target drivers. Note: static SCST core, target and target driver |
| attributes that have been modified are not reset to their default value unless |
| the corresponding kernel modules are reloaded. |
| .TP |
| .B -list_handler [<handler>] |
| If no device handler name has been specified, show the names of all device |
| handlers supported by the currently loaded kernel modules. If a device handler |
| name has been specified, list the names of the devices that use that device |
| handler. |
| .TP |
| .B -list_device [<device>] |
| If no device name has been specified, show the names of all configured |
| devices. If a device name has been specified, show all attributes of the |
| specified device. |
| .TP |
| .B -list_driver [<driver>] |
| If no target driver name has been specified, list the names of all target |
| drivers supported by the currently loaded kernel modules. If a target driver |
| name has been specified, show the names of all targets that use the specified |
| target driver. |
| .TP |
| .B -list_target [<target>] [-driver <driver>] |
| If no target driver name has been specified, show all target names for all |
| target drivers. If a target driver name has been specified, show all |
| configuration information for the specified target. That information includes |
| the assigned LUNs and information about all initiator groups associated with |
| the target. |
| .TP |
| .B -list_group [<group>] [-driver <driver>] [-target <target>] |
| If either the target driver name or the target name has not been specified, |
| show information about all known target drivers, targets and initiator groups. |
| If a target driver name and target name have been specified, show |
| configuration information for the specified initiator group. |
| .TP |
| .B -list_scst_attr |
| Show name and value of all SCST core attributes. |
| .TP |
| .B -list_hnd_attr <handler> |
| Show name and value of all attributes of the specified device handler, |
| and also the names of all device creation attributes. |
| .TP |
| .B -list_dev_attr <device> |
| Show name and value of all attributes of the specified device. |
| .TP |
| .B -list_drv_attr <driver> |
| Show name and value of all attributes of the specified target driver. |
| .TP |
| .B -list_tgt_attr <target> -driver <driver> |
| Show name and value of all attributes of the specified target. |
| .TP |
| .B -list_grp_attr <group> -target <target> -driver <driver> |
| Show name and value of all attributes of the specified initiator group. |
| .TP |
| .B -list_lun_attr <lun> -driver <driver> -target <target> [-group <group>] |
| Show name and value of all attributes of the specified LUN. The LUN number |
| either refers to a LUN associated with a target or to a LUN associated with |
| an initiator group of a target. |
| .TP |
| .B -list_sessions |
| Show all active sessions for all targets. |
| .TP |
| .B -list_dgrp [<dgrp>] |
| If no device group name has been specified, show all defined ALUA device |
| groups. If a device group name has been specified, show configuration |
| information for that device group only. |
| .TP |
| .B -list_tgrp [<tgrp>] -dev_group <dgrp> |
| If no ALUA target group name has been specified, list the target groups |
| associated with the specified device group. If a target group name has been |
| specified, show configuration information for that target group. |
| .TP |
| .B -list_tgrp_attr <tgrp> -dev_group <dgrp> |
| Show a list with all ALUA attributes of the specified target group. |
| .TP |
| .B -list_ttgt_attr <tgt> -dev_group <dgrp> -tgt_group <tgrp> |
| Show a list with all ALUA attributes of the specified target. |
| .TP |
| .B -set_scst_attr -attributes <p=v,...> |
| Set the value of one or more SCST core attributes. |
| .TP |
| .B -set_hnd_attr <handler> -attributes <p=v,...> |
| Set the value of one or more device handler attributes. |
| .TP |
| .B -set_dev_attr <device> -attributes <p=v,...> |
| Set the value of one or more device attributes. |
| .TP |
| .B -set_drv_attr <driver> -attributes <p=v,...> |
| Set the value of one or more target driver attributes. |
| .TP |
| .B -set_tgt_attr <target> -driver <driver> -attributes <p=v,...> |
| Set the value of one or more target attributes. |
| .TP |
| .B -set_grp_attr <group> -driver <driver> -target <target> -attributes <p=v,...> |
| Set the value of one or more initiator group attributes. |
| .TP |
| .B -set_lun_attr <lun> -driver <driver> -target <target> [-group <group>] -attributes <p=v,...> |
| Set the value of one or more LUN attributes. The LUN number either refers to a |
| LUN associated with a target or to a LUN associated with an initiator group of |
| a target. |
| .TP |
| .B -add_drv_attr <driver> -attributes <p=v,...> |
| Add one or more new attributes to the specified target driver and set these to |
| the specified values. Which attribute names are valid depends on the affected |
| target driver. Adding the same attribute several times will cause multiple |
| values to be defined for that attribute. |
| .TP |
| .B -add_tgt_attr <target> -driver <driver> -attributes <p=v,...> |
| Add one or more new attributes to the specified target and set these to the |
| specified values. Which attribute names are valid depends on the involved |
| target driver. Adding the same attribute several times will cause multiple |
| values to be defined for that attribute. |
| .TP |
| .B -rem_drv_attr <driver> -attributes <p=v,...> |
| Remove an (attribute, value) pair from the specified target driver. |
| .TP |
| .B -rem_tgt_attr <target> -driver <driver> -attributes <p=v,...> |
| Remove an (attribute, value) pair from the specified target. |
| .TP |
| .B -open_dev <device> -handler <handler> -attributes <p=v,...> |
| Create a new SCST device using the specified device handler and attributes. |
| .TP |
| .B -resync_dev <device> |
| Update device size. SCST caches the size of devices controlled by the |
| vdisk_fileio and the vdisk_blockio device handlers. This command will not only |
| cause SCST to update the cached device size but will also cause any logged in |
| initiator to be notified about the capacity change event. |
| .TP |
| .B -close_dev <device> -handler <handler> |
| Remove the specified device from SCST. |
| .TP |
| .B -add_target <target> -driver <driver> |
| Add a target to a target driver. |
| .TP |
| .B -rem_target <target> -driver <driver> |
| Remove a target from a target driver. |
| .TP |
| .B -add_group <group> -driver <driver> -target <target> |
| Add an initiator group to the specified target. |
| .TP |
| .B -rem_group <group> -driver <driver> -target <target> |
| Remove an initiator group from the specified target. |
| .TP |
| .B -add_init <init> -driver <driver> -target <target> -group <group> |
| Add an initiator to an initiator group. <init> is either an explicit initiator |
| name or an initiator name pattern. The wildcard characters '*', '?' and '!' |
| are supported. |
| .TP |
| .B -rem_init <user> -driver <driver> -target <target> -group <group> |
| Remove an initiator name or initiator name pattern from an initiator group. |
| .TP |
| .B -move_init <init> -driver <driver> -target <target> -group <group1> -to <group2> |
| Move an initiator or initiator name pattern from one initiator group to another. |
| .TP |
| .B -clear_inits -driver <driver> -target <target> -group <group> |
| Remove all initiators from an initiator group. |
| .TP |
| .B -add_lun <lun> -driver <driver> -target <target> [-group <group>] \ |
| -device <device> -attributes <p=v,...> |
| Add a LUN to a target or initiator group. |
| .TP |
| .B -rem_lun <lun> -driver <driver> -target <target> [-group <group>] |
| Remove a LUN from a target or initiator group. |
| .TP |
| .B -replace_lun <lun> -driver <driver> -target <target> [-group <group>] \ |
| -device <device> -attributes <p=v,...> |
| Replace the device associated with a LUN by another device. |
| .TP |
| .B -clear_luns -driver <driver> -target <target> [-group <group>] |
| Remove all LUNs from a target or initiator group. |
| .TP |
| .B -enable_target <target> -driver <driver> |
| Enable a target. |
| .TP |
| .B -disable_target <target> -driver <driver> |
| Disable a target. |
| .TP |
| .B -issue_lip [<target>] [-driver <driver>] |
| Issue a LIP (Loop Initialization Protocol, fibre channel) for a specific |
| target or for all drivers and targets. |
| .TP |
| .B -set_tgrp_attr <tgrp> -dev_group <dgrp> -attributes <p=v,...> |
| Set one or more attributes of the specified ALUA target group. |
| .TP |
| .B -set_ttgt_attr <tgt> -dev_group <dgrp> -tgt_group <tgrp> \ |
| -attributes <p=v,...> |
| Set one or more attributes of the specified ALUA target. |
| .SH EXAMPLES |
| .TP |
| .B scstadmin -open_dev disk01 -handler vdisk_fileio -attributes filename=/vdisks/disk01.dsk,read_only |
| Lets SCST open the file /vdisks/disk01.dsk as a disk. |
| .TP |
| .B scstadmin -set_dev_attr disk01 -attributes t10_dev_id=0x2345 |
| Sets the T10 device id of SCST device disk01 |
| .TP |
| .B scstadmin -add_group host01 -driver qla2x00t -target 50:06:0B:00:00:39:71:78 |
| Creates a new initiator group called host01. |
| .TP |
| .B scstadmin -add_lun 1 -driver qla2x00t -target 50:06:0B:00:00:39:71:78 -group host01 -device disk01 -attributes read_only=1 |
| Add a LUN to a group in read-only mode. |
| .TP |
| .B scstadmin -enable_target 50:06:0B:00:00:39:71:78 -driver qla2x00t |
| Enables target mode for the fibre channel HCA port with the specified WWN. |
| .TP |
| .B scstadmin -write_config /etc/scst-new.conf |
| Save the current configuration to the specified file. |
| .SH AUTHORS |
| The scstadmin software has been developed by Mark R. Buechler and also |
| contains contributions from Bart Van Assche. |
| .SH REPORTING BUGS |
| Please send feedback about scstadmin itself or its documentation to the |
| mailing list scst-devel@lists.sourceforge.net. See also |
| https://lists.sourceforge.net/lists/listinfo/scst-devel for more information |
| about this mailing list. |
| .SH FILES |
| /etc/scst.conf |
| .SH "SEE ALSO" |
| scst.conf(5) |