iscsiadm - open-iscsi administration utility
iscsiadm -m discoverydb [
-hV] [
-d
debug_level] [
-P printlevel] [
-I iface
-t type -p ip:port
[
-lD] ] | [ [
-p ip:port -t type] [
-o
operation] [
-n name] [
-v value]
[
-lD] ]
iscsiadm -m discovery [
-hV] [
-d debug_level]
[
-P printlevel] [
-I iface] [
-t type]
[
-p ip:port] [
-l]
iscsiadm -m node [
-hV] [
-d debug_level]
[
-P printlevel] [
-L all,manual,automatic,onboot]
[
-W] [
-U all,manual,automatic,onboot] [
-S] [
[
-T
targetname -p ip:port -I
iface] [
-l|
-u|
-R|
-s] ] [ [
-o
operation] [
-n name] [
-v value] [
-p
ip:port] ]
iscsiadm -m session [
-hV] [
-d debug_level]
[
-P printlevel] [
-r sessionid|
sysfsdir
[
-R] [
-u|
-s|
-o new] ]
iscsiadm -m iface [
-hV] [
-d debug_level]
[
-P printlevel] [
-I ifacename |
-H
hostno|MAC] [ [
-o operation] [
-n name]
[
-v value] ] [
-C ping [
-a
ip] [
-b packetsize] [
-c count] [
-i
interval] ]
iscsiadm -m fw [
-d debug_level] [
-l]
[
-W] [
-n name] [
-v value]
iscsiadm -m host [
-P printlevel] [
-H
hostno|MAC] [ [
-C chap [
-x chap_tbl_idx] ]
| [
-C flashnode [
-A portal_type] [
-x
flashnode_idx] ] | [
-C stats] ] [ [
-o
operation] [
-n name] [
-v value] ]
iscsiadm -k priority
The iscsiadm utility is a command-line tool allowing discovery and login to
iSCSI targets, as well as access and management of the open-iscsi database.
Open-iscsi does not use the term
node as defined by the iSCSI RFC, where
a node is a single iSCSI initiator or target. Open-iscsi uses the term
node to refer to a portal on a target.
For
session mode, a session id (
sid) is used. The
sid of a
session can be found by running
iscsiadm -m session -P 1. The session
id and sysfs path are not currently persistent and is partially determined by
when the session is setup.
Many of the node and discovery operations require that the iSCSI daemon (iscsid)
be running. If running on a system that uses systemd, the daemon may start up
automatically, if enabled, when needed.
Open-iscsi has two groups of files it needs to store or get access to, while
running: the
HOMEDIR and the
DBROOT. The following describes
them:
- Home Directory
- The home directory for open-iscsi is /etc/iscsi.
This is where it keeps it's configuration file ( iscsid.conf) and
it's initiator name file ( initiatorname.iscsi).
- Database Root Directory
- The database root directory for open-iscsi is
/etc/iscsi. This is where it keeps its flat database files, such as it's
list of nodes (see below).
-
-a, --ip=ipaddr
-
ipaddr can be IPv4 or IPv6.
- This option is only valid for ping submode.
-
-A, --portal_type=[ipv4|ipv6]
- Specify the portal type for the new flash node entry to be
created.
- This option is only valid for flashnode submode of
host mode and only with new operation.
-
-b,
--packetsize=packetsize
- Specify the ping packetsize.
- This option is only valid for ping submode.
-
-c, --count=count
-
count specifies the number of ping iterations.
- This option is only valid for ping submode.
-
-C, --submode=op
- Specify the submode for mode. op must be name of
submode.
- Currently iscsiadm supports ping as a submode for
iface. For example:
- iscsiadm -m iface -I ifacename -C ping -a ipaddr -b
packetsize -c count -i interval
- For host, it supports chap, flashnode
and stats as submodes. For example:
- iscsiadm -m host -H hostno -C chap -x chap_tbl_idx -o
operation
- iscsiadm -m host -H hostno -C flashnode -x flashnode_idx -o
operation
- iscsiadm -m host -H hostno -C stats
-
-d, --debug=debug_level
- print debugging information. Valid values for
debug_level are 0 to 8.
-
-h, --help
- display help text and exit
-
-H, --host=[hostno|MAC]
- The host argument specifies the SCSI host to use for
the operation. It can be the scsi host number assigned to the host by the
kernel's scsi layer, or the MAC address of a scsi host.
-
-i, --interval=interval
-
interval specifies the delay between two ping
iterations.
- This option is only valid for ping submode.
-
-I, --interface=[iface]
- The interface argument specifies the iSCSI interface
to use for the operation. iSCSI interfaces ( iface) are defined in
/etc/iscsi/ifaces. For hardware iSCSI (e.g. qla4xxx) the iface
configuration must have the hardware address ( iface.hwaddress =
port's MAC address) and the driver/transport_name (
iface.transport_name). The iface's name is then the filename
of the iface configuration. For software iSCSI, the iface configuration
must have either the hardware address ( iface.hwaddress), or the
network layer's interface name ( iface.net_ifacename), and it must
have the driver/transport_name.
- The available drivers/iscsi_transports are tcp
(software iSCSI over TCP/IP), iser (software iSCSI over
InfiniBand), qla4xxx (Qlogic 4XXXX and 82XXX HBAs), cxgb3i
and cxgb4i (Chelsio T3 and T4 adapters), bnx2i (QLogic
Netextreme II adapters), be2iscsi (Emulex 10G adapter), qedi
(QLogic QEDI 25/40/100Gb adapter), and ocs (Emulex One Connect
storage). Some of these are considered experimental, as they are not fully
tested.
- The hwaddress is the MAC address or for software
iSCSI it may be the special value default which directs the
initiator to not bind the session to a specific hardware resource and
instead allow the network or InfiniBand layer to decide what to do. There
is no need to create an iface configuration with the default behavior. If
you do not specify an iface, then the default behavior is
used.
- As mentioned above there is a special iface name
default. There are others which do not bind the session to a
specific card, but instead bind the session to the transport: iser,
cxgb3i, cxgb4i, and bnx2i.
- In discovery mode multiple interfaces can be
specified by passing in multiple -I/--interface instances. For
example:
-
sh# iscsiadm -m discoverydb -t st -p ip:port -I
iface0 -I iface2 --discover
- Will direct iscsiadm to setup the node db to create records
which will create sessions through the two interfaces passed in.
- In node mode, only a single interface is supported
in each call to iscsiadm.
- This option is valid for discovery, node and
iface modes.
-
-k, --killiscsid=[priority]
- Currently priority must be zero. This will
immediately stop all iscsid operations and shutdown iscsid. It does not
logout any sessions. Running this command is the same as doing killall
iscsid. Neither should normally be used, because if iscsid is doing
error recovery or if there is an error while iscsid is not running, the
system may not be able to recover. This command and iscsid's SIGTERM
handling are experimental.
-
-D, --discover
- Discover targets using the discovery record with the
recid matching the the discovery type and portal passed in. If
there is no matching record, it will be created using the iscsid.conf
discovery settings. This must be passed in to discoverydb mode to
instruct iscsiadm to perform discovery.
- This option is only valid for SendTargets discovery
mode.
-
-l, --login
- For node and fw modes, login to a specified
record. For discovery mode, login to all discovered targets.
- This option is only valid for discovery,
node, and fw modes. For fw mode only, name and
value pairs can optionally be passed in, so that those values get
used for the sessions created. In this case, no op is needed, since
update is assumed.
-
-L,
--loginall=[all|manual|automatic|onboot]
- For node mode, login to all sessions with the node
or conn startup values passed in or all running session, except ones
marked onboot, if all is passed in.
- This option is only valid for node mode (it is valid
but not functional for session mode).
-
-W, ---no_wait
- In node, discovery, or fw (firmware)
mode, do not wait for a response from the target(s). This means that
success will be returned if the command is able to send the login
requests, whether or not they succeed. In this case, it will be up to the
caller to poll for success (i.e. session creation).
-
-m, --mode op
- specify the mode. op must be one of
discovery, discoverydb, node, fw, host,
iface or session.
- If no other options are specified: for discovery,
discoverydb and node mode, all of their respective records
are displayed; for session mode, all active sessions and
connections are displayed; for fw mode, all boot firmware values
are displayed; for host mode, all iSCSI hosts are displayed; and
for iface mode, all interfaces setup in /etc/iscsi/ifaces are
displayed.
-
-n, --name=name
- In node mode, specify a field name in a
record. In flashnode submode of host mode, specify name of
the flash node parameter.
- For use with the update operator.
-
-o, --op=op
- Specifies a database operator op. op must be
one of new, delete, update, show or
nonpersistent.
- For iface mode, apply and applyall are
also applicable.
- For flashnode submode of host mode,
login and logout are also applicable.
- This option is valid for all modes except fw. Delete
should not be used on a running session. If it is iscsiadm will stop the
session and then delete the record.
- An op of new creates a new database record
for a given object. In node mode, the recid is the target
name and portal (IP:port). In iface mode, the recid is the
iface name. In discovery mode, the recid is the portal and
discovery type.
- In session mode, the new operation logs in a
new session using the same node database and iface information as the
specified session.
- In discovery mode, if the recid and
new operation is passed in, but the --discover argument is
not passed in, then iscsiadm will only create a discovery record (it will
not perform discovery). If the --discover argument is passed in
with the portal and discovery type, then iscsiadm will create the
discovery record if needed, and it will create records for portals
returned by the target that do not yet have a node DB record.
- Setting op to delete deletes the specified
recid. In discovery mode, if iscsiadm is performing
discovery, it will delete records for portals that are no longer
returned.
- Setting op to update will update the
recid with name to the specified value. In discovery
mode, if iscsiadm is performing discovery the recid, name
and value arguments are not needed. The update operation will
operate on the portals returned by the target, and will update the node
records with information from the configuration file and command
line.
- The op value of show is the default behaviour
for node, discovery and iface mode. It is also used
when there are no commands passed into session mode and a running
sid is passed in. If name and value are passed in,
they are currently ignored in show mode.
- An op value of nonpersistent instructs
iscsiadm to not manipulate the node DB.
- An op value of apply will cause the network
settings to take effect on the specified iface.
- An op value of applyall will cause the
network settings to take effect on all the ifaces whose MAC address or
host number matches that of the specific host.
- An op value of login will log into the
specified flash node entry.
- An op value of logout does the logout from
the given flash node entry.
-
-p, --portal=ip[:port]
- Use target portal with IP address ip and port
port. If port is not passed in the default value
of 3260 is used.
- IPv6 addresses can be specified as
[ddd.ddd.ddd.ddd]:port or ddd.ddd.ddd.ddd.
- Hostnames can also be used for the ip
argument.
- This option is only valid for discovery, or for
node operations with the new operator.
- This should be used along with --target in
node mode, to specify what the open-iscsi documents refer to as a
node or node record. Note: open-iscsi's use of the word node, does not
match the iSCSI RFC's iSCSI Node term.
-
-P, --print=printlevel
- If in node mode print nodes in tree format. If in
session mode print sessions in tree format. If in discovery
mode print the nodes in tree format.
-
-T, --targetname=targetname
- Use target targetname.
- This should be used along with --portal in
node mode, to specify what the open-iscsi documents refer to as a
node or node record. Note: open-iscsi's use of the word node, does not
match the iSCSI RFC's iSCSI Node term.
-
-r, --sid=sid | sysfsdir
- Use session ID sid. The session ID of a session can
be found from running iscsiadm in session mode with the --info
argument.
- Instead of a session ID, a sysfs path containing the
session can be used. For example using one of the following:
/sys/devices/platform/hostH/sessionS/targetH:B:I/H:B:I:L,
/sys/devices/platform/hostH/sessionS/targetH:B:I, or
/sys/devices/platform/hostH/sessionS, for the sysfsdir argument
would result in the session with session ID S to be used.
-
sid | sysfsdir is only required for session
mode.
-
-R, --rescan
- In session mode, if sid is also passed in,
rescan the session. If no sid has been passed in rescan all running
sessions.
- In node mode, rescan a session running through the
target, portal, iface tuple passed in.
-
-s, --stats
- Display session statistics. This option when used with
host mode, displays host statistics.
-
-S, --show
- When displaying records, do not hide masked values, such as
the CHAP secret (password).
- This option is only valid for node and
session mode.
-
-t, --type=type
-
type must be sendtargets (or abbreviated as
st), slp, isns or fw. Currently only
sendtargets, fw, and iSNS are supported, see the
DISCOVERY TYPES section.
- This option is only valid for discovery mode.
-
-u, --logout
- Logout for the specified record.
- This option is only valid for node and
session mode.
-
-U,
--logoutall=[all,manual,automatic|onboot]
- Logout of all sessions with the node or conn startup values
passed in or all running sessions, except ones marked onboot, if
all is passed in.
- This option is only valid for node mode (it is valid
but not functional for session mode).
-
-v, --value=value
- Specify a value for use with the update
operator, or for firmware login mode.
- This option is only valid for node mode and
flashnode submode of host mode.
-
-V, --version
- Display version and exit.
-
-x, --index=index
- Specify the index of the entity to operate on.
- This option is only valid for chap and
flashnode submodes of host mode.
iSCSI defines 3 discovery types:
SendTargets,
SLP, and
iSNS.
A special discovery type called
fw (for firmware) is also supported, for
discovering firmware interfaces, and populating the interface database in the
process.
- SendTargets
- A native iSCSI protocol which allows each iSCSI target to
send a list of available targets to the initiator.
- SLP
- Optionally an iSCSI target can use the Service Location
Protocol (SLP) to announce the available targets. The initiator can either
implement SLP queries directly or can use a separate tool to acquire the
information about available targets.
- iSNS
- iSNS (Internet Storage Name Service) records information
about storage volumes within a larger network. To utilize iSNS, pass the
address and optionally the port of the iSNS server to do discovery
to.
- fw
- Firmware mode. Several NICs and systems contain a mini
iSCSI initiator which can be used for boot. To get the values used for
boot the fw option can be used. Doing fw discovery does not
store persistent records in the node or discovery DB, because the values
are stored in the system's or NIC's resource.
- Performing fw discovery will print the portals, like
with other discovery methods. To see other settings like CHAP values and
initiator settings, like you would in node mode, run iscsiadm -m
fw.
Note that the
SLP implementation is under development and currently is
not supported.
On success 0 is returned. On error one of the return codes below will be
returned.
Commands that operate on multiple objects (sessions, records, etc),
iscsiadm/iscsistart will return the first error that is encountered.
iscsiadm/iscsistart will attempt to execute the operation on the objects it
can. If no objects are found ISCSI_ERR_NO_OBJS_FOUND is returned.
- 0
- ISCSI_SUCCESS - command executed successfully.
- 1
- ISCSI_ERR - generic error code.
- 2
- ISCSI_ERR_SESS_NOT_FOUND - session could not be found.
- 3
- ISCSI_ERR_NOMEM - could not allocate resource for
operation.
- 4
- ISCSI_ERR_TRANS - connect problem caused operation to
fail.
- 5
- ISCSI_ERR_LOGIN - generic iSCSI login failure.
- 6
- ISCSI_ERR_IDBM - error accessing/managing iSCSI DB.
- 7
- ISCSI_ERR_INVAL - invalid argument.
- 8
- ISCSI_ERR_TRANS_TIMEOUT - connection timer expired while
trying to connect.
- 9
- ISCSI_ERR_INTERNAL - generic internal iscsid/kernel
failure.
- 10
- ISCSI_ERR_LOGOUT - iSCSI logout failed.
- 11
- ISCSI_ERR_PDU_TIMEOUT - iSCSI PDU timed out.
- 12
- ISCSI_ERR_TRANS_NOT_FOUND - iSCSI transport module not
loaded in kernel or iscsid.
- 13
- ISCSI_ERR_ACCESS - did not have proper OS permissions to
access iscsid or execute iscsiadm command.
- 14
- ISCSI_ERR_TRANS_CAPS - transport module did not support
operation.
- 15
- ISCSI_ERR_SESS_EXISTS - session is logged in.
- 16
- ISCSI_ERR_INVALID_MGMT_REQ - invalid IPC MGMT request.
- 17
- ISCSI_ERR_ISNS_UNAVAILABLE - iSNS service is not
supported.
- 18
- ISCSI_ERR_ISCSID_COMM_ERR - a read/write to iscsid
failed.
- 19
- ISCSI_ERR_FATAL_LOGIN - fatal iSCSI login error.
- 20
- ISCSI_ERR_ISCSID_NOTCONN - could not connect to
iscsid.
- 21
- ISCSI_ERR_NO_OBJS_FOUND - no
records/targets/sessions/portals found to execute operation on.
- 22
- ISCSI_ERR_SYSFS_LOOKUP - could not lookup object in
sysfs.
- 23
- ISCSI_ERR_HOST_NOT_FOUND - could not lookup host.
- 24
- ISCSI_ERR_LOGIN_AUTH_FAILED - login failed due to
authorization failure.
- 25
- ISCSI_ERR_ISNS_QUERY - iSNS query failure.
- 26
- ISCSI_ERR_ISNS_REG_FAILED - iSNS
registration/deregistration failed.
- 27
- ISCSI_ERR_OP_NOT_SUPP - operation not support
- 28
- ISCSI_ERR_BUSY - device or resource in use
- 29
- ISCSI_ERR_AGAIN - operation failed, but retrying later may
succeed
- 30
- ISCSI_ERR_UNKNOWN_DISCOVERY_TYPE - unknown discovery
type
- 31
- ISCSI_ERR_CHILD_TERMINATED - child process terminated
- 32
- ISCSI_ERR_SESSION_NOT_CONNECTED - session likely not
connected
Discover targets at a given IP address:
-
sh# iscsiadm --mode discoverydb --type sendtargets
--portal 192.168.1.10 --discover
Login, must use a node record id found by the discovery:
-
sh# iscsiadm --mode node --targetname
iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
Logout:
-
sh# iscsiadm --mode node --targetname
iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
List node records:
-
sh# iscsiadm --mode node
Display all data for a given node record:
-
sh# iscsiadm --mode node --targetname
iqn.2001-05.com.doe:test --portal 192.168.1.1:3260
List all sessions:
-
sh# iscsiadm --mode session
List all sessions in tree format:
-
sh# iscsiadm --mode session --print
- /etc/iscsi/iscsid.conf
- The configuration file read by iscsid and
iscsiadm on startup.
- /etc/iscsi/initiatorname.iscsi
- The file containing the iSCSI InitiatorName and
InitiatorAlias read by iscsid and iscsiadm on startup.
- /etc/iscsi/nodes/
- This directory contains the nodes with their targets.
- /etc/iscsi/send_targets
- This directory contains the portals.
iscsid(8)
Open-iSCSI project <
http://www.open-iscsi.com/>
Alex Aizman <
[email protected]>
Dmitry Yusupov <
[email protected]>