After getting a virtual tape drive working I tried setting up a tape changer with three drives. Here is the script I use for it, part of the tgt-core-test script supplied in the git tree: #!/bin/bash ############################################################################### # Set up SBC HDD device ############################################################################### TID=1 # Create Target ID 1.. tgtadm --lld iscsi --mode target --op new --tid $TID \ -T iqn.2008-09.com.example:server.tape sleep ############################################################################### # Set up SMC Medium Changer ############################################################################### LUN=1 if [ ! -f $HOME/smc ]; then dd if=/dev/zero of=$HOME/smc bs=1k count=1 fi tgtadm --lld iscsi --mode logicalunit --op new --tid $TID --lun $LUN \ -b $HOME/smc --device-type=changer #### Set up mode pages #### # From smc3-06.pdf # Page 0x02: Disconnect/Reconnect SPC-3 # Page 0x0a: Control SPC-3 # Page 0x18: Protocol Specific LUN SPC-3 # Page 0x19: Protocol Specific Port SPC-3 # Page 0x1a: Power Condition SPC-3 # Page 0x1c: Informational Exceptions Control SPC-3 # Page 0x1d: Element Address Assignment SMC-3 7.3.4 # Page 0x1e: Transport Geometry Parameters SMC-3 7.3.5 # Page 0x1f: Device Capabilities SMC-3 7.3.2 # Page 0x1f/Subpage 0x41: Extended Device Capabilities SMC-3 7.3.3 # Dummy 'page 0' tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0:0:0 # Disconnect/Reconnect tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0 # Power Condition tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0x1a:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 # Informational Exceptions Control Mode Page tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0 # Element Address Assignment - Setup afterwards. tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0x1d:0:0x12:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 # Transport Geometry Parameters tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0x1e:0:2:0:0 # Device Capabilities tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params mode_page=0x1f:0:0x12:0x0f:7:0x0f:0x0f:0x0f:0x0f:0:0:0:0:0x0f:0x0f:0x0f:0x0f:0:0:0:0 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params vendor_id=STK,product_id=L700,product_rev=0010,scsi_sn=XYZZY_0,removable=1 ## Add Data Transfer devices (3 drives) # Define slot address for devices. tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=4,start_address=1,quantity=3 # Now define which device at each address. tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=4,address=1,tid=1,lun=2 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=4,address=2,tid=1,lun=3 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=4,address=3,tid=1,lun=4 # Medium Transport Elements (robot arm / picker) tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=1,start_address=16,quantity=1 ## Storage Elements - 8 starting at addr 1024 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=2,start_address=1024,quantity=8 # Add 'media' to slots tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=2,address=1024,barcode=00000001,sides=1 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=2,address=1025,barcode=00000002,sides=1 # Import/Export Elements - 5 starting at addr 32 tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params element_type=3,start_address=32,quantity=5 # define path to virtual media tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params media_home=/root/tapes # Dump the list of configured slots to syslog... tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \ --params dump=1 # Allow ALL initiators to connect to this target tgtadm --lld iscsi --mode target --op bind --tid $TID -I ALL # Show all our good work. tgtadm --lld iscsi --mode target --op show What happens is that after logging in I get the controller on LUN 0 and the changer on LUN 1: Target 1: iqn.2008-09.com.example:server.tape System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: deadbeaf1:0 SCSI SN: beaf10 Size: 0 MB Online: Yes Removable media: No Backing store: No backing store LUN: 1 Type: changer SCSI ID: deadbeaf1:1 SCSI SN: XYZZY_0 Size: 0 MB Online: Yes Removable media: Yes Backing store: /root/smc Account information: ACL information: ALL And an inventory using mtx -f /dev/sg3 status gives: Storage Changer /dev/sg3:3 Drives, 13 Slots ( 5 Import/Export ) Data Transfer Element 0:Empty Data Transfer Element 1:Empty Data Transfer Element 2:Empty Storage Element 1:Full :VolumeTag=00000001 Storage Element 2:Full :VolumeTag=00000002 Storage Element 3:Empty:VolumeTag= Storage Element 4:Empty:VolumeTag= Storage Element 5:Empty:VolumeTag= Storage Element 6:Empty:VolumeTag= Storage Element 7:Empty:VolumeTag= Storage Element 8:Empty:VolumeTag= Storage Element 9 IMPORT/EXPORT:Empty:VolumeTag= Storage Element 10 IMPORT/EXPORT:Empty:VolumeTag= Storage Element 11 IMPORT/EXPORT:Empty:VolumeTag= Storage Element 12 IMPORT/EXPORT:Empty:VolumeTag= Storage Element 13 IMPORT/EXPORT:Empty:VolumeTag= I can move tapes between the storage elements, not to a data transfer element. Also the data transfer elements don't appear after iscsi login as tape drives, only the empty controller and the changer: scsi 4:0:0:0: RAID IET Controller 0001 PQ: 0 ANSI: 5 scsi 4:0:0:0: Attached scsi generic sg2 type 12 scsi 4:0:0:1: Medium Changer STK L700 0010 PQ: 0 ANSI: 5 scsi 4:0:0:1: Attached scsi generic sg3 type 8 scsi5 : iSCSI Initiator over TCP/IP scsi 5:0:0:0: RAID IET Controller 0001 PQ: 0 ANSI: 5 scsi 5:0:0:0: Attached scsi generic sg2 type 12 scsi 5:0:0:1: Medium Changer STK L700 0010 PQ: 0 ANSI: 5 scsi 5:0:0:1: Attached scsi generic sg3 type 8 Am I doing something wrong here, or do I want to much for the moment (ie things are not implemented yet). Thanks, Albert -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html |