'\" t
.\" Title: tgtadm
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 09/05/2024
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "TGTADM" "8" "09/05/2024" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
tgtadm \- Linux SCSI Target Administration Utility
.SH "SYNOPSIS"
.HP \w'\fBtgtadm\ [OPTIONS]\&.\&.\&.\fR\ 'u
\fBtgtadm [OPTIONS]\&.\&.\&.\fR [\-C\ \-\-control\-port\ ] [\-L\ \-\-lld\ ] [\-o\ \-\-op\ ] [\-m\ \-\-mode\ ] [\-t\ \-\-tid\ ] [\-T\ \-\-targetname\ ] [\-y\ \-\-blocksize\ ] [\-Y\ \-\-device\-type\ ] [\-l\ \-\-lun\ ] [\-b\ \-\-backing\-store\ ] [\-f\ \-\-bsoflags\ {direct|sync}] [\-S\ \-\-bsopts\ {backing\-store\ opt\ string}] [\-E\ \-\-bstype\ ] [\-I\ \-\-initiator\-address\ ] [\-Q\ \-\-initiator\-name\ ] [\-n\ \-\-name\ ] [\-v\ \-\-value\ ] [\-P\ \-\-params\ ] [\-F\ \-\-force] [\-h\ \-\-help]
.SH "DESCRIPTION"
.PP
tgtadm is used to monitor and modify everything about Linux SCSI target software: targets, volumes, etc\&.
.SH "OPTIONS"
.PP
\fB\-C, \-\-control\-port \fR
.RS 4
It is possible to run multiple concurrent instances of tgtd on a host\&. This argument is used to control which instance the tgtadm command will operate on\&.
.RE
.PP
\fB\-y, \-\-blocksize \fR
.RS 4
Block devices are created with a default block size of 512 bytes\&. This argument can be used to create block devices with different block sizes\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op new \e
\-\-tid \-\-lun \e
\-b \-\-blocksize=4096
.fi
.if n \{\
.RE
.\}
.PP
\fB\-Y, \-\-device\-type \fR
.RS 4
When creating a LUN, this parameter specifies the type of device to create\&. Default is disk\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Possible device\-types are:
disk : emulate a disk device
tape : emulate a tape reader
ssc : same as tape
cd : emulate a DVD drive
changer : emulate a media changer device
pt : passthrough type to export a /dev/sg device
.fi
.if n \{\
.RE
.\}
.PP
\fB\-E, \-\-bstype \fR
.RS 4
When creating a LUN, this parameter specifies the type of backend storage to to use\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Possible backend types are:
rdwr : Use normal file I/O\&. This is the default for disk devices
aio : Use Asynchronous I/O
rbd : Use Ceph\*(Aqs distributed\-storage RADOS Block Device
sg : Special backend type for passthrough devices
ssc : Special backend type for tape emulation
.fi
.if n \{\
.RE
.\}
.PP
\fB\-\-lld \-\-op new \-\-mode target \-\-tid \-\-targetname \fR
.RS 4
Add a new target with and \&.
.RE
.PP
\fB\-\-lld \-\-op delete \-\-mode target \-\-tid \fR
.RS 4
Delete specific target with \&. The target must have no active I_T nexus\&.
.RE
.PP
\fB\-\-lld \-\-op delete \-\-force \-\-mode target \-\-tid \fR
.RS 4
Delete specific target forcibly with \&.
.RE
.PP
\fB\-\-lld \-\-op show \-\-mode target\fR
.RS 4
Show all the targets\&.
.RE
.PP
\fB\-\-lld \-\-op show \-\-mode target \-\-tid \fR
.RS 4
Show target parameters of a target with \&.
.RE
.PP
\fB\-\-lld \-\-op new \-\-mode logicalunit \-\-tid \-\-lun \-\-backing\-store \-\-bsopts=\fR
.RS 4
Add a new logical unit with to specific target with \&. The logical unit is offered to the initiators\&. must be block device files (including LVM and RAID devices) or regular files, or an RBD image or snapshot name for \-\-bstype rbd\&. lun0 is reserved for a special device automatically created\&.
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
If tgt is compiled with the bs_rbd backing store for
Ceph RBD images (see tgtadm \-\-mode system \-\-op show to
verify), set up a target mapping the rbd image named
"rbdimage", and pass options to bs_rbd:
tgtadm \-\-lld iscsi \-\-op new \-\-mode logicalunit \-\-tid 1 \e
\-\-lun 1 \-\-bstype=rbd \-\-backing\-store=rbdimage \e
\-\-bsopts="conf=/etc/ceph/ceph\&.conf;id=tgt"
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fB\-\-lld \-\-op delete \-\-mode logicalunit \-\-tid \-\-lun \fR
.RS 4
Delete specific logical unit with that the target with has\&.
.RE
.PP
\fB\-\-lld \-\-op bind \-\-mode target \-\-tid \-\-initiator\-address \fR
.RS 4
Add the address to the access lists of the target with \&. Initiators with the address can access to the target\&. \*(AqALL\*(Aq is a special address to allow all initiators to access to a target\&.
.RE
.PP
\fB\-\-lld \-\-op bind \-\-mode target \-\-tid \-\-initiator\-name \fR
.RS 4
Add the initiator\*(Aqs name to the access lists of the target with \&. Initiators with the names can access to the target\&.
.RE
.PP
\fB\-\-lld \-\-op unbind \-\-mode target \-\-tid \-\-initiator\-address \fR
.RS 4
Delete the address from the access lists of the target with \&.
.RE
.PP
\fB\-\-lld \-\-op unbind \-\-mode target \-\-tid \-\-initiator\-name \fR
.RS 4
Delete the initiator\*(Aqs name from the access lists of the target with \&.
.RE
.PP
\fB\-\-lld \-\-op update \-\-mode target \-\-tid \-\-name= \-\-value=\fR
.RS 4
Change the value of of the target with to \&.
.RE
.PP
\fB\-\-lld \-\-op update \-\-mode target \-\-tid \-\-params parameter=value<,\&.\&.\&.>\fR
.RS 4
Sets/changes the value of one or more target parameters\&.
.RE
.PP
\fB\-\-lld \-\-op update \-\-mode logicalunit \-\-tid \-\-lun \-\-params parameter=value<,\&.\&.\&.>\fR
.RS 4
Sets/changes the value of one or more logical unit parameters\&.
.RE
.PP
\fB\-\-lld \-\-op start \-\-mode lld\fR
.RS 4
Start the specified lld without restarting the tgtd process\&. Can be used to initialize lld driver in case required modules were loaded after tgtd was already executed\&.
.RE
.PP
\fB\-\-help\fR
.RS 4
Display a list of available options and exits\&.
.RE
.SH "LUN PARAMETERS"
.PP
These parameters are only applicable for "\-\-mode logicalunit"\&.
.PP
\fBvendor_id=\fR
.RS 4
This parameter sets the Vendor Identification string that a LUN will report in INQURY data\&.
.RE
.PP
\fBproduct_id=\fR
.RS 4
This parameter sets the Product Identification string that a LUN will report in INQURY data\&.
.RE
.PP
\fBproduct_rev=\fR
.RS 4
This parameter sets the Product Revision string that a LUN will report in INQURY data\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \e
\-\-tid \-\-lun \e
\-\-params vendor_id=TGTD,product_id=VirtualHD,product_rev=0103
.fi
.if n \{\
.RE
.\}
.PP
\fBremovable=<0|1>\fR
.RS 4
This can be used to override/change the default setting for the removable flag\&. Disk devices default to non\-removable while DVD and TAPE devices default to removable\&.
.RE
.PP
\fBsense_format=<0|1>\fR
.RS 4
This flag controls the format of sense data that the device will return\&. 0 = Clasic sense format, 1 = Support descriptor format\&.
.RE
.PP
\fBonline=<0|1>\fR
.RS 4
This controls whether a device is online or not\&.
.sp
Devices default to be online when created but can be brought offline using this parameter\&. Behaviour of offline devices depend on device type\&. An MMC/DVD device that is offline will report that there is no disk in the unit but the actual MMC/DVD unit itself can still be communicated with\&. All other device types will fail all I/O with a sense code of Not Ready\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \e
\-\-tid 1 \-\-lun 1 \e
\-\-params removable=1,sense_format=1,online=1
.fi
.if n \{\
.RE
.\}
.PP
\fBmode_page=\fR
.RS 4
This parameter is used to set specific mode pages for the device and the mode page contents\&. Most devices default to reasonable default mode pages automatically when the LUN is created, but this allows special settings\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Examples:
Create mode page \*(Aq2\*(Aq, subpage 0 and 14 bytes of data\&.
This is Disconnect\-Reconnect mode page\&.
tgtadm \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \e
\-\-params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0
Create mode page \*(Aq10\*(Aq, subpage 0 and 10 bytes of data\&.
This is Control Extension mode page\&.
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \e
\-\-params mode_page=10:0:10:2:0:0:0:0:0:0:0:2:0
Create mode page \*(Aq0x1c\*(Aq, subpage 0 and 10 bytes of data\&.
This is Informational Exceptions Control mode page\&.
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \e
\-\-params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0
.fi
.if n \{\
.RE
.\}
.PP
\fBreadonly=<0|1>\fR
.RS 4
This sets the read\-only flag of a LUN\&. A read\-only LUN will refuse any attempts to write data to it\&.
.sp
This parameter only applies to DISK devices\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 1 \e
\-\-params readonly=1
.fi
.if n \{\
.RE
.\}
.PP
\fBthin_provisioning=<0|1>\fR
.RS 4
This controls the provisioning for the LUN\&. A thin\-provisioned LUN is represented as a sparse file\&. TGTD supports provisioning type 2 for sparse files\&. When initiators use the SCSI UNMAP command TGTD will release the affected areas back to the filesystem using FALLOC_FL_PUNCH_HOLE\&.
.sp
This parameter only applies to DISK devices\&.
.sp
Thin\-provisioning works for LUNs stored on filesystems that support FALLOC_FL_PUNCH_HOLE\&.
.sp
When using thin\-provisioning option with a block device such a SSD or ZVOL, UNMAP SCSI command discards the region from the block device\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 1 \e
\-\-params thin_provisioning=1
.fi
.if n \{\
.RE
.\}
.PP
\fBrotation_rate=\fR
.RS 4
This sets the reported rotation rate in RPM of the LUN to the initiator\&. Some operating systems assume a SSD type disk when this parameter is zero\&.
.sp
This parameter only applies to DISK devices\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 1 \e
\-\-params rotation_rate=0
.fi
.if n \{\
.RE
.\}
.SH "SMC SPECIFIC LUN PARAMETERS"
.PP
These parameters are only applicable for luns that are of type "changer" i\&.e\&. the media changer device for a DVD Jukebox or a Virtual Tape Library\&.
.PP
\fBelement_type=<1|2|3|4>\fR
.RS 4
This controls which type of element a certain slot in the jukebox/vtl is\&.
.sp
.if n \{\
.RS 4
.\}
.nf
Slot types:
1 \-> Medium Transport (picker arm)
2 \-> Storage Element
3 \-> Import/Export Element
4 \-> Data Transfer device (CD drive, tape drive, MO drive etc)
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBaddress=<1\-65535>\fR
.RS 4
This is used to create/operate on a single slot\&. Address specifies the slot on which to perform the operation\&.
.RE
.PP
\fBstart_address=<1\-65535>,quantity=<1\-\-65535>\fR
.RS 4
This is used to create/operate on an entire range of slots at once\&. Start_address specifies the first address to operate on and quantity specifies the number of consequtive slots\&.
.RE
.PP
\fBsides=<1|2>\fR
.RS 4
When creating storage elements, i\&.e\&. "element_type=2", this parameter specifies if the media has 1 or two sides to hold data\&.
.RE
.PP
\fBclear_slot=<1>\fR
.RS 4
This option is used to clear a storage element and remove any media that may be present\&. Once this command completes the storage element will show up as "Empty"\&.
.RE
.PP
\fBbarcode=\fR
.RS 4
This is used to assign a barcode to an element\&. Barcodes are limited to 10 characters in tgtd\&.
.RE
.PP
\fBvolume_tag=\fR
.RS 4
This is used to assign a volume tag to SMC storage elements\&. If no volume tag is specified tgtd will use fall back to the barcode\&. The volume tag can be up to 32 characters\&.
.RE
.PP
\fBmedia_home=\fR
.RS 4
This parameter specifies a directory where all virtual media for the dvd/tape device elements are stored\&.
.sp
To assign a media image file to a storage element slot, you assign "barcode" to be the name of the image file in the "media_home" directory\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example: How to create a DVD jukebox with eight disk trays and
two empty DVD\-R disks\&.
# Create a target
tgtadm \-\-lld iscsi \-\-mode target \-\-op new \-\-tid 1 \-\-targetname iqn\&.2007\-03:virtual\-dvd:`hostname`
# Create a DVD drive and give it a nice name
# The dvd starts out without a backing store file, i\&.e\&. no disk loaded
tgtadm \-\-op new \-\-mode logicalunit \-\-tid 1 \-\-lun 1 \-\-device\-type cd
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 1 \-\-params vendor_id=STGT_DVD,product_id=DVD101,product_rev=0010,scsi_sn=STGTDVD01,removable=1
# We need a backend store file for the media changer
if [ ! \-f $HOME/smc ]; then
dd if=/dev/zero of=$HOME/smc bs=1k count=1
fi
# Create the SMC device and give it a nice name
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op new \-\-tid 1 \-\-lun 2 \-\-backing\-store $HOME/smc \-\-device\-type changer
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params vendor_id=STK,product_id=L700,product_rev=0010,scsi_sn=XYZZY_0,removable=1
# Add a Data Transfer devices (1 drive)
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=4,start_address=1,quantity=1
# Specify that the DVD above (LUN 1) is the data transfer device we created
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=4,address=1,tid=1,lun=1
# Medium Transport Elements (robot arm / picker)
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=1,start_address=16,quantity=1
# define path to virtual media
VTL=${HOME}/vtl
mkdir \-p ${VTL}
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params media_home=${VTL}
# Storage Elements \- 8 starting at addr 1024
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=2,start_address=1024,quantity=8
# Add \*(Aqmedia\*(Aq to slots 1 and 2 and leave the other 6 slots empty
# slot 1
# Create empty writeable virtual DVD\-R media
tgtimg \-\-op new \-\-device\-type cd \-\-type dvd+r \-\-file ${VTL}/DISK_001
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=2,address=1024,barcode=DISK_001,volume_tag="A blank disk",sides=1
# slot 2
tgtimg \-\-op new \-\-device\-type cd \-\-type dvd+r \-\-file ${VTL}/DISK_002
tgtadm \-\-lld iscsi \-\-mode logicalunit \-\-op update \-\-tid 1 \-\-lun 2 \-\-params element_type=2,address=1025,barcode=DISK_002,volume_tag="My second blank disk",sides=1
# Allow ALL initiators to connect to this target
tgtadm \-\-lld iscsi \-\-mode target \-\-op bind \-\-tid 1 \-\-initiator\-address ALL
# Show all our good work\&.
tgtadm \-\-lld iscsi \-\-mode target \-\-op show
.fi
.if n \{\
.RE
.\}
.SH "PASSTHROUGH DEVICES"
.PP
In addition to device emulation TGTD also supports utilizing existing SG devices on the host and exporting these through a special passthrough device type\&.
.PP
\fB\-\-bstype=sg\fR
.RS 4
This specifies that an SG devices is used\&.
.RE
.PP
\fB\-\-device\-type=pt\fR
.RS 4
This specifies that passthrough device type is used\&.
.RE
.PP
\fB\-\-backing\-store=\fR
.RS 4
This specifies which device to export through TGTD\&.
.RE
.PP
\fB\-\-bsoflags={direct|sync}\fR
.RS 4
This argument is used when creating a LUN to specify extra flags to use when opening the backing file\&. O_DIRECT is specified by "direct" and O_SYNC by "sync"\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
Make /dev/sg4 available to initiators connecting to TGTD\&.
tgtadm \-\-lld iscsi \-\-op new \-\-mode logicalunit \-\-tid 1 \-\-lun 1 \-\-bstype=sg \-\-device\-type=pt \-\-backing\-store=/dev/sg4
Example:
Open the backing file with O_SYNC\&.
tgtadm \-\-lld iscsi \-\-op new \-\-mode logicalunit \-\-tid 1 \-\-lun 1 \-\-bsoflags="sync" \-\-backing\-store=/data/100m_image\&.raw
.fi
.if n \{\
.RE
.\}
.SH "HEADER DIGEST AND DATA DIGEST"
.PP
Header and data digests can be set on a per target parameter\&. TGTD supports two modes, None and CRC32C\&. When the digest is set to None, TDTD will negotiate that digests will not be used, and when CRC32C is set, TGTD will force the connection to use digest\&.
.SS "Viewing the current settings"
.PP
This command is used to view the current settings for header/data digest\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-op show \-\-mode target \-\-tid 1
\&.\&.\&.
HeaderDigest=None
DataDigest=None
\&.\&.\&.
.fi
.if n \{\
.RE
.\}
.SS "Setting digest"
.sp
.if n \{\
.RS 4
.\}
.nf
Set header digest to CRC32C:
tgtadm \-\-op update \-\-mode target \-\-tid 1 \-n HeaderDigest \-v CRC32C
Set data digest to None:
tgtadm \-\-op update \-\-mode target \-\-tid 1 \-n DataDigest \-v None
.fi
.if n \{\
.RE
.\}
.SH "CHAP AUTHENTICATION"
.PP
CHAP authentication is supported to require authentication before an initiator is allowed to log in and access devices\&.
.PP
CHAP main\-phase authentication is set on the target level\&. To set up CHAP authentication we first need to create an account and its associated password, then we bind the account to one or more targets\&.
.SS "Setting CHAP on a target"
.PP
These two commands create a user account and binds it to target 1\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op new \-\-mode account \-\-user ronnie \-\-password password
tgtadm \-\-lld iscsi \-\-op bind \-\-mode account \-\-tid 1 \-\-user ronnie
.fi
.if n \{\
.RE
.\}
.SS "List all accounts"
.PP
This command is used to list all accounts that have been created\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op show \-\-mode account
Account list:
ronnie
.fi
.if n \{\
.RE
.\}
.SS "Show if a target requires authentication"
.PP
When listing the targets, each target that has authantication enabled will contain a listing of all accoutns bound to that target\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op show \-\-mode target
Target 1: iqn\&.ronnie\&.test
\&.\&.\&.
Account information:
ronnie
\&.\&.\&.
.fi
.if n \{\
.RE
.\}
.SH "NOP\-OUT PROBES"
.PP
TGTD can send NOP\-OUT probes to connected initiators to determine when an initiator is dead and then automatically clear and tear down the TCP connection\&. This can either be set as a global default from the tgtd command\-line or it can be set for individual targets using the tgtadm command\&.
.SS "Check the current NOP\-OUT setting"
.PP
The tgtadm command is used to view the current setting for if/when to send NOP\-OUT probes to connected initiators\&.
.PP
If the target is configured to send NOP\-OUT probes this will show up as two parameter lines in the target printout\&. If the target is not configured to send NOP\-OUT these lines will not be printed at all\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op show \-\-mode target
Target 1: iqn\&.ronnie\&.test
System information:
Driver: iscsi
State: ready
Nop interval: 5
Nop count: 5
I_T nexus information:
.fi
.if n \{\
.RE
.\}
.SS "Setting NOP\-OUT for a target"
.PP
The tgtadm command is used to change the NOP\-OUT settings\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-op update \-\-mode target \-\-tid 1 \-n nop_count \-v 5
tgtadm \-\-op update \-\-mode target \-\-tid 1 \-n nop_interval \-v 5
.fi
.if n \{\
.RE
.\}
.SH "ISCSI PORTALS"
.PP
iSCSI portals can be viewed, added and removed at runtime\&.
.SS "List portals"
.PP
This command is used to list the current iSCSI portals defined on the target:
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op show \-\-mode portal
Portal: 10\&.1\&.1\&.101:3260,1
Portal: 127\&.0\&.0\&.1:3260,1
.fi
.if n \{\
.RE
.\}
.SS "Add portal"
.PP
This command is used to add a portal to the target :
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op new \-\-mode portal \-\-param portal=10\&.1\&.1\&.101:3260
.fi
.if n \{\
.RE
.\}
.SS "Remove portal"
.PP
This command is used to remove a portal from the target :
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op delete \-\-mode portal \-\-param portal=10\&.1\&.1\&.101:3260
.fi
.if n \{\
.RE
.\}
.SH "ISCSI CONNECTIONS"
.PP
iSCSI connections can be viewed and forced closed at runtime\&.
.SS "List all active connections for a target"
.PP
This command is used to list the all the active iSCSI connections to the target with connection id, initiator name and ip address for the initiator :
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op show \-\-mode conn \-\-tid 1
Session: 2
Connection: 0
Initiator: iqn\&.2008\-11\&.org\&.linux\-kvm:
IP Address: 127\&.0\&.0\&.1
.fi
.if n \{\
.RE
.\}
.SS "Close an existing connection"
.PP
This command is used to close an iSCSI connection\&. Note that forcibly closing iSCSI connections can lead to data\-loss\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-op delete \-\-mode conn \-\-tid 1 \-\-sid 2 \-\-cid 0
.fi
.if n \{\
.RE
.\}
.SH "ONLINE/OFFLINE STATUS"
.PP
Tgtd LUNs can be in online or offline status\&. LUNs that are Offline behave slightly different depending on the device type\&. Offline devices behave as if there is no media available and any operations that access media will fail with an check\-condition error\&.
.PP
Devices can not be set to Offline mode while there are "PREVENT ALLOW MEDIUM REMOVAL" locks on the device\&. Similarly media in Online devices can not be software ejected while there are such locks on the device (the \*(Aqeject\*(Aq command will fail)\&.
.SS "Show Online/Offline status"
.PP
Finding the Online/Offline status of a LUN is done through the tgtd command\&. If "Prevent removal" is "Yes" this indicates that an application holds a "prevent media removal" lock on the device\&.
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-lld iscsi \-\-mode target \-\-op show
\&.\&.\&.
LUN: 2
Type: cd/dvd
SCSI ID: IET 00010002
SCSI SN: beaf12
Size: 3432 MB, Block size: 1
Online: Yes
Removable media: Yes
Prevent removal: Yes
\&.\&.\&.
.fi
.if n \{\
.RE
.\}
.SS "Changing a LUN to Offline"
.PP
A LUN is changed to Offline status using the tgtadm command\&. When devices are set Offline these devices will behave as if there is no media loaded into the drive\&.
.PP
Change a LUN to become offline\&. (no disk in the drive)
.sp
.if n \{\
.RS 4
.\}
.nf
tgtadm \-\-tid 1 \-\-lun 2 \-\-op update \-\-mode logicalunit \-P Online=No
.fi
.if n \{\
.RE
.\}
.SH "ISNS PARAMETERS"
.PP
iSNS configuration for a target is by using the tgtadm command\&.
.PP
\fBiSNSServerIP\fR
.RS 4
This specifies the IP address of the iSNS server\&. TGTD only supprots one iSNS server\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-op update \-\-mode sys \-\-name iSNSServerIP \-\-value 192\&.168\&.11\&.133
.fi
.if n \{\
.RE
.\}
.PP
\fBiSNS\fR
.RS 4
This setting enables(on)/disables(off) iSNS\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-op update \-\-mode sys \-\-name iSNS \-\-value On
.fi
.if n \{\
.RE
.\}
.PP
\fBiSNSServerPort\fR
.RS 4
This setting specifies the port to use for iSNS\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-op update \-\-mode sys \-\-name iSNSServerPort \-\-value 3205
.fi
.if n \{\
.RE
.\}
.PP
\fBiSNSAccessControl\fR
.RS 4
Enable/disable access control for iSNS\&.
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
Example:
tgtadm \-\-op update \-\-mode sys \-\-name iSNSAccessControl \-\-value Off
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.PP
tgtd(8), tgt\-admin(8), tgtimg(8), tgt\-setup\-lun(8)\&.
\m[blue]\fB\%https://github.com/fujita/tgt\fR\m[]
.SH "REPORTING BUGS"
.PP
Report bugs to