Tape Drives / Robots

To see currently defined drives and robots on a host

# tpconfig -dl

When configuring a new robot/drive from the cli, the device paths can be with 2 separate commands

# /usr/openv/volmgr/bin/goodies/scan


# tpautoconf -t

Whilst Solaris media servers might not be as prevalent today due to the rise of LINUX, it was necessary on these hosts to rebuild the sg driver in order for tape drives to be visible. The steps for rebuilding the sg driver are 


1) Create a copy of the /kernel/drv/st.conf


2) Delete any name="st" class="scsi" target=0 lun=0; entries from the st.conf


2) Move the existing /kernel/drv/sg.conf


3) copy the /etc/devlink.tab file

remove the entries in the devlink.tab between the 


4) in the existing devlink file remove everything between and including the lines which begin with # begin scsa generial devlinks file - create nodes in /dev/sg and # end SCSA devlinks


5) change to the /usr/openv/volmgr/bin/driver directory


6) generate the config files, st.conf, sg.conf and sg.links : ../sg.build all -mt <max_target> -ml <max_lun>


7) unload the sg driver : # rem_drv sg


8) reload the sg driver : # ./sg.install


9) rescan devices : # sgscan tape

When adding a TLD controlled robot, which most of the robots configured within NBU probably are, the command to run will depend on whether the robot is  the robot control host or not. The robotic control host is the host to which the robotic changer is presented. This is the host which will issue all robotic commands to the library such as mount, unmount, inventory etc

To add TLD robot 0 to a host which will be robotic control host on a LINUX host

# tpconfig -add -robot 0 -robtype TLD -robpath /dev/sg/path_to_robotic_control

To add the same robot to a media server which will not be the robotic control host, the robotic control host needs to be specified in the command rather than the robpath from the above command

# tpconfig -add -robot 0 -robtype TLD -cntlhost <host running tldcd>

The robot numbers can be decided by you at the time of adding them


Please note that when adding TLD robotic control to a clustered master you must add the robotic control on both hosts via tpconfig


Once the robot has been added the tape drives can be added. When adding the tape drives it is important that the tape drive path, tape drive serial number and tape drive robot drive number are all correct otherwise the drive cannot be used and will be marked as DOWN by NBU.

Drives can be added automatically via the command with

# tpautoconf –a

This may save you some time when configuring the drives however you may need to subsequently alter the ascii name of the drive to match your standards. This command is helpful if a drive or drives which is to be shared via SSO has already been configured on another host.

Adding a TLD controlled Tape drive to robot 0 on a LINUX host

# tpconfig -add -drive -type hcart2 -path /dev/rmt/13cbn -shared no -drstatus up -robot 0 -robtype tld -asciiname "ROBOT_0_DR_43" -robdrnum 43

The above command will add robot drive 43, with a density of hcart2 to robot 0. This drive will be called “ROBOT_0_DR_43” and the device path is /dev/rmt/13cbn.

Please note that after adding a new robot or new tape drive to a NBU host ltid must be restarted. Ltid can be restarted with

# stopltid

# /usr/openv/volmgr/bin/ltid

The following command updates a drive path on a window's host to that shown {3,0,3,0}. The command also marks the drive as up. Using the -update option to the tpconfig command does not require a restart of the ltid

# tpconfig -update -drive 0 -robot 0 -robtype tld -robdrnum 79 -asciiname "ROBOT_0_DR_79" -drstatus up -path {3,0,3,0}

The robtest command can be used to query a robotic device directory from the host which is the robotic control host

# robtest

This will enable the drives, slots etc on the robotic device to be queried directly. It is also possible to echo the commands into tldtest if a scripted process was required

# echo "s d" | tldtest -r /path_to_robotic_control -dl /path/to/first/drive

# echo “s d” | tldtest -r /dev/sg0

To gather information about the robotic device, the vmchange command can be used to query the robot. If the command has not be run on the robotic control host, the host which is the robotic control host needs to be specified with the -h option. The below command will return information related to TLD robot 0 where LINUX_HOST is the robotic control host

# vmchange -res -robot_info -verbose -rn 0 -rt tld -rh LINUX_HOST

When adding a cleaning cartridge to NBU to enable NBU to carry out the cleaning you must specify the density type as <density>_clean i.e. HCART_CLEAN / HCART3_CLEAN

When adding acs drives via the command line, instead of knowing the robotic drive number, you must know the ACS->LSM->PANEL-DRIVE numbers for the drive. This is the unique identifier for each drive. Adding a ACS controlled Tape drive

# tpconfig -add -drive -type hcart2 -path /dev/rmt/10cbn -shared no -drstatus up -robot 1 -robtype acs -asciiname "ACS_0_0_43" -acs 0 -lsm 1 -panel 1 -drive 13

To delete multiple drives from a host

# tpconfig -multiple_delete -drive 1:3:8:9:10:11

To sync the drives

# tpautoconf -sync

If it possible to remotely configure drives on a media server via the vmoprcmd command, for example if the commands were run from the master server or another host which was listed in the SERVER list on the host.

The following command will delete drive index 1 from the host LINUX_HOST

# vmoprcmd -h LINUX_HOST -devconfig "-delete -drive 1"

This command will remotely update an ACS drive configured on the filer FILER1 with the NDMP control host being CONTROLHOST

# vmoprcmd -h CONTROLHOST -devconfig "-update -drive 13 -type hcart3 -drpath -path nrst9a -asciiname ACS_0_3_1_2_T1D -nh FILER1 -drstatus up"

Once drives and been added or deleted etc remotely via the vmoprcmd command then it is still necessary to restart LTID, which can also be done remotely

# vmoprcmd -h drldnmvcb1 -stopltid​

#  vmoprcmd -h drldnmvcb1 -startltid

To run a full interactive inventory of robot 0, whereby you will be prompted to accept the changes before the EMM is updated

# vmupdate -interactive -rn 0 -rt TLD -full -use_barcode_rules

By dropping the interactive switch the changes will be made automatically without prompting the user to accept them.

To manually eject multiple cartridges from robot 0

# vmchange -multi_eject -w -rh CONTROLHOST -res -ml BARCODE1:BARCODE2:BARCODE3 -rt tld -rn 0 -rh 

# vmchange -multi_eject -w -rh CONTROLHOST -res -ml BARCODE1:BARCODE2:BARCODE3 -rt tld -rn 0 -rh 

When adding TLD robotic control to a clustered master you must add the robotic control on both hosts via tpconfig


VMOPRCMD is a very useful command when working with tape drives and confirming the status of drives. To bring a drive up or down on a particular media server, run the following from the master 

# vmchange -multi_eject -w -rh CONTROLHOST -res -ml BARCODE1:BARCODE2:BARCODE3 -rt tld -rn 0 -rh 

# vmoprcmd -upbyname <drive_name> -h <media_server>

# vmoprcmd -downbyname <drive_name> -h <media_server>

To bring a non SSO'ed drive up or down on the master

# vmoprcmd -SSOupbyname <drive_name>

# vmoprcmd -SSOdownbyname <drive_name>

TO update emm after a drive has been replaced :

# tpautoconf -replace_drive SL8500_1_1_1_11 -path /dev/rmt/11cbn

This may be necessary as the drive serial number could have changed after being replaced for a different unit.