'\" t .\" Title: tgtadm .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 01/09/2023 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "TGTADM" "8" "01/09/2023" "[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 only works for LUNs stored on filesystems that support FALLOC_FL_PUNCH_HOLE\&. .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 .\} .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