Professional Documents
Culture Documents
ts4300 Tape Library Documentation
ts4300 Tape Library Documentation
ts4300 Tape Library Documentation
IBM
© Copyright IBM Corp. 2023.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Tables of Contents
IBM TS4300 Tape Library 1
Overview 1
What's New in IBM TS4300 Tape Library 2
Introduction 2
Structure and supported library configurations 3
Components 7
Front panel 7
Rear panel 7
Magazines 9
Accessor 10
Power supply 10
User interfaces 10
Supported tape drives 10
Control path drives 12
Mixed drives 12
Drive sled back panels 12
Physical and logical addresses of drives 14
Drive features 14
Media optimization 15
New Media Optimization Wizard 15
Recommended access order (RAO) open function 16
Archive mode unthread 16
Speed matching 16
Channel calibration 17
Data cartridge capacity scaling 17
Power management 17
Encryption 17
Supported tape cartridges 17
Library functions 18
Encryption 18
Library sharing 19
Control path failover, Data path failover, and load balancing 19
Alerts and logging 20
Random and Sequential Logical Library modes 20
Planning 21
Acclimation 21
Environmental specifications 21
Library Layout and Location requirements 23
Power cords 24
Network requirements 28
Host requirements 29
SAS interface 29
Fibre Channel interface 29
Compatible configurations 30
HBA requirements 30
Supported device drivers 30
Application software 30
Optional features 31
Installing 31
Unpacking the Base Module and Expansion Modules 32
Identifying Library Module components 33
Installing a tabletop module 34
Removing inner foam from base module 34
Preparing top and bottom modules 36
Installing modules in a rack 37
Aligning and connecting modules 40
Installing a tape drive 42
Connecting cables 42
Powering on the library 43
The Initial Setup process 44
Initial configuration and customization 44
Labeling and loading tape cartridges 45
Verifying the installation 45
Advanced library configuration 46
Overview 46
Library partitioning 47
Verifying the host connection 47
Registering for support notification 47
Managing 48
The Management GUI 48
The Operator Panel 50
Locating Management functions 51
Default settings 52
Methods of cleaning drives 54
Accessing cartridges 54
Configuring Library Managed Encryption 55
Troubleshooting 56
How the library reports problems 57
Understanding fault indicators 57
Understanding element numbering 57
Using the Unit Identification (UID) LED to locate a failing component 58
Locating faulty Components and Resolving Issues 58
Identifying a failed component 58
Isolating a failed power supply 59
Running library tests 59
Troubleshooting Guide 59
Pre-call checklist 63
Contacting IBM technical support 63
Diagnostic information 64
IBM Tape Diagnostic tool (ITDT) 64
Event codes 64
Main error events 65
Warning error events 69
Configuration Change events 73
Informational events 74
TapeAlert Flags 75
TapeAlert flags supported by the library 75
TapeAlert flags supported by the drive 76
Sense data 79
Drive Error Codes: Single-character display (SCD) 79
SCD dot 80
Status light 80
Upgrading and servicing 80
Internal view of library 81
Adding, removing, or replacing a tape drive 81
Adding or replacing a Base or Expansion Module 83
Adding, removing, or replacing a power supply 87
Replacing a Base or Expansion controller card 88
Installing, removing, or replacing an accessor and spooling mechanism 90
Returning the accessor to the Base Module 94
Removing or replacing a spooling mechanism 95
Removing or replacing a magazine 97
Moving the library modules 98
Reference 98
Minimum firmware levels for common library features 99
Management GUI functions and roles 99
TS4300 Help pages 102
REST API for scalable tape libraries 102
Library Configuration Forms 102
Library information 103
Module and drive information 103
Logical Library information 104
LTO media 104
Data cartridges 105
Cartridge compatibility 106
LTO type M cartridge (M8) 107
Capacity Scaling 107
WORM (Write Once, Read Many) cartridges 107
WORM media 107
Data security on WORM media 108
WORM media errors 108
WORM requirements 108
Cleaning cartridge 108
Cartridge memory chip (LTO-CM) 108
Bar code label 109
Guidelines for bar code labels 110
Write-Protect switch 110
Handling the cartridges 110
Providing training 111
Ensuring proper packaging 111
Proper acclimation and environmental conditions 112
Completing a thorough inspection 112
Handling the cartridge carefully 112
Examples of cartridge problems 113
Inserting a tape cartridge 113
Repositioning or reattaching a leader pin 114
Repositioning a leader pin 114
Reattaching a leader pin 115
Environmental and shipping specifications for LTO tape cartridges 117
Disposing of tape cartridges 118
Ordering media supplies 118
Ordering bar code labels 120
Replacement parts 120
Manual cartridge removal procedure 121
Recommended tools 122
Before you begin 122
Beginning procedure 122
Removing the drive brick from the sled 123
Removing the drive cover 123
Full height drive: Tape spooled off supply reel 124
Half height drive: Tape spooled off supply reel 125
Full height drive: Tape pulled from or broken near leader pin 126
Half height drive: Tape pulled from or broken near leader pin 127
Full height drive: Tape broken in mid-tape 128
Half height drive: Tape broken in mid-tape 129
Full height drive: Tape tangled along tape path 129
Half height drive: Tape tangled along tape path 131
Full height drive: No apparent failure or damage to tape 131
Half height drive: No apparent failure or damage to tape 133
Ending procedure 134
Accessibility 134
Notices 135
Trademarks 136
Terms and conditions for product documentation 137
Homologation statement 137
Electromagnetic compatibility notices 137
Canada Notice 138
European Community and Morocco Notice 138
Germany Notice 138
Japan Electronics and Information Technology Industries Association (JEITA) Notice 138
Japan Voluntary Control Council for Interference (VCCI) Notice 139
Korea Notice 139
People's Republic of China Notice 139
Russia Notice 139
Taiwan Notice 140
United Kingdom Notice 140
United States Federal Communications Commission (FCC) Notice 140
Safety and environmental notices 140
Danger and Caution notices 141
Possible safety hazards 143
Class I laser product 143
Acclimation 21
Performing the safety inspection procedure 144
Rack safety 144
Power Cords 145
Glossary 146
Publications 158
Related publications 158
IBM Tape Device Drivers and Diagnostic Tool User's Guide 159
Introduction 159
Common extended features 160
Path failover and load balancing 160
Supported devices and feature codes 161
Automatic failover 161
Data path failover 161
Control path failover 163
Dynamic load balancing 163
Dynamic Runtime Attributes 164
Data encryption 164
Tape and library requirements 164
Planning for application-managed tape encryption 165
Planning for library-managed tape encryption 165
Encryption feature codes 166
Recommended access order (RAO) open function 166
AIX Tape and Medium Changer device driver 166
Product requirements 166
Installation and configuration instructions 167
Installation procedure 167
Configuring Tape and Medium Changer devices 168
Configuring limitations 168
Deconfiguring tape devices 168
Deconfiguring Medium Changer devices 168
Uninstalling 169
Tape drive, media, and device driver parameters 169
Configuration parameters 169
Media parameters 172
Special files 173
Special files for tape devices 173
Special files for Medium Changer devices 174
Persistent Naming Support 174
Changing the logical name after initial boot 175
Control Path failover support for tape libraries 175
Configuring and unconfiguring path failover support 175
Primary and alternative paths 176
Querying primary and alternative path configurations 176
Configuring and unconfiguring primary and alternative devices 176
Data Path failover and load balancing support for tape drives 176
Installing Data Path failover license key 177
Configuring and unconfiguring path failover support 177
Primary and alternative paths 177
Querying primary and alternative path configuration 177
Configuring and unconfiguring primary and alternative devices 178
System-managed encryption 178
Device driver configuration 178
Querying tape drive configuration 178
Testing data encryption configuration and connectivity 178
Error logging 179
Field support information 179
Problem determination 179
Dump support 179
Device and volume information logging 180
Log file 180
Tape log utility 180
Reservation conflict logging 180
Error logging 181
Error log templates 181
Automatic dump facility 182
Dynamic Runtime Attributes 182
Trace facility 183
Atape System Trace (ATRC) utility 183
Component tracing 183
Atape Component Trace (ACTRC) utility 184
Tape drive service aids 184
Tape drive service aids details 184
Performance considerations 185
Data path 185
Common AIX utilities 186
AIX iostat utility for tape performance 186
Before Support is called 186
Linux Tape and Medium Changer device driver 186
Product requirements 187
Installation and Configuration instructions 187
Conventions used 187
Configuration limitations 187
Components created during installation 188
Installation procedure 188
Updating procedure 188
Querying the installed package 189
Configuring Tape and Medium Changer devices on Intel-compatible systems 189
Configuring Tape and Medium Changer devices on IBM System p models 189
Configuring Tape and Medium Changer devices on IBM System z models 189
Uninstallation procedure 190
Tape drive, media, and device driver parameters 191
Configuration parameters 191
Nonchangeable parameters 191
Changeable parameters 192
Special files 194
Special files for the tape device 194
Special files for the Medium Changer device 195
Persistent naming support 195
Control Path failover support for tape libraries 196
Configuring and unconfiguring path failover support 196
Enabling path failover for the sg interface 197
Primary and alternative paths 197
Querying primary and alternative path configuration 198
Disabling and enabling primary and alternative paths 198
Data Path failover and load balancing support for tape drives 198
Enabling path failover for st and sg interface 199
Primary and alternative paths 199
Querying primary and alternative path configuration 200
Disabling and enabling primary and alternative paths 200
Tape Reserve Type 200
Open source device driver - lin_tape 200
Comparing IBMtape and lin_tape 200
Installation 200
Driver parameters and special device files 201
Taking devices offline and completing maintenance 201
Path failover support 201
lin_taped daemon 201
System-managed encryption 202
Configuring device drivers 202
Querying tape drive configuration 202
Problem determination 203
Tracing driver modules 203
Configuring and running the lin_taped daemon 203
Reservation conflict logging 205
Devices not reported at /proc/scsi/IBMchanger or /proc/scsi/IBMtape 206
Solaris Tape and Medium Changer Device Driver 206
Product requirements 206
Installation and configuration instructions 207
Preventing conflicts with other device drivers 207
Preinstallation considerations 207
Installing and updating IBMtape 208
Configuring IBM tape devices with Fibre Channel and SAS HBAs 211
Configuring limitations 214
Solaris Zones support 214
Configuration parameters 216
Dynamic Runtime Attributes 217
Removing IBMtape 218
Adding or removing devices 218
Unconfiguring tape devices 218
Tapelist Utility Program 219
Special files 219
Device behaviors 220
File naming conventions 220
Persistent Naming Support 221
Control Path failover support for libraries 222
Configuring and deconfiguring Path Failover support 222
Primary and alternative paths 222
Querying primary and alternative path configuration 222
Disabling and enabling primary and alternative paths 223
Data Path failover and load balancing support for tape drives 223
Configuring and deconfiguring Path Failover support 223
Primary and alternative paths 224
Querying primary and alternative path configuration 224
Disabling and enabling primary and alternative paths 224
System-managed encryption 225
Device driver configuration 225
Querying tape drive configuration 225
Testing data encryption configuration and connectivity 225
Field support information 226
Problem determination 226
Functional verification 226
Sense data logging 226
Installation problems 227
Tape monitor daemon (tmd) 227
Tracing facility 227
Dynamic tracing utility 228
Setting the IBM_trace level for static tracing 229
Running the diags_info script 229
iostat command 229
Reservation conflict logging 229
Windows Tape and Medium Changer device driver 230
Product requirements 230
Installation and configuration instructions 230
Windows Server 2019, and 2022 instructions 231
Configuring limitations 233
Persistent Naming Support on Windows Server 2019, and 2022 233
Control Path failover support for tape libraries 233
Configuring and unconfiguring Control Path failover support 233
Querying primary and alternative path configuration 234
Checking disablement of Control Path failover setting 234
Data Path failover support for tape drives 234
Configuring and unconfiguring Data Path failover support 234
Reserve Type if DPF is disabled 234
Querying primary and alternative path configuration 234
Checking disablement of Data Path failover setting 235
Problem determination 235
Windows Server 2016, 2019 and 2022 instructions 235
Reservation conflict logging 235
Max retry busy 236
Checking if Data Path failover is enabled 236
Checking if Control Path failover is enabled 236
Old releases: V6.2.5.2 and prior releases 236
IBM Tape Diagnostic Tool (ITDT) 237
Purpose 237
Accessing ITDT 238
Accessing documentation and software online 238
Supported systems 239
IBM Tape Diagnostic Tool - Standard Edition 239
Installing ITDT - Standard Edition 239
Installing ITDT-SE on AIX operating systems 240
Installing ITDT-SE on Microsoft Windows operating systems 240
Installing ITDT-SE on IBM System i 240
Installing ITDT-SE on other supported operating systems 241
Starting ITDT - Standard Edition 241
Starting ITDT-SE on Solaris operating systems 242
Starting ITDT-SE on Windows operating systems 243
Starting ITDT-SE on i5/OS operating systems 243
Starting ITDT-SE on other supported operating systems 243
Generic Operating System driver with ITDT-SE 244
Standard Edition - known issues and limitations 244
AIX operating systems 244
HP-UX operating systems 244
Linux operating systems 244
Solaris operating systems 245
Windows operating systems 245
i5/OS operating systems 245
All supported operating systems 246
Standard Edition - Start menu commands 246
Standard Edition - Scan menu commands 247
Scan 248
Health Test 249
Dump 251
Firmware Update 251
System Test 252
Eject Cartridge 253
Cleaning Statistics 253
Other Functions 253
Full Write 254
Tape Usage 254
Check LTFS Readiness 255
Library Test 255
Library Media Screening 255
Encryption 256
Configure TCP/IP 257
Return 257
Standard Edition - Tapeutil menu commands 257
[1] Open a Device 258
[2] Close a Device 259
[3] Inquiry 259
[4] Test Unit Ready 259
[5] Reserve Device 259
[6] Release Device 260
[7] Request Sense 260
[8] Log Sense 260
[9] Mode Sense 260
[10] Query Driver Ver. (Version) 260
[11] Display All Paths 260
[12] Query Runtime Info 260
[20] Rewind 260
[21] Forward Space File Marks 261
[22] Backward Space File Marks 261
[23] Forward Space Records 261
[24] Backward Space Records 261
[25] Space to End of Data 261
[26] Read and Write Tests 261
[27] Read or Write Files 262
[28] Erase 262
[29] Load Tape 262
[30] Unload Tape 262
[31] Write File Marks 262
[32] Synchronize Buffers 262
[33] Query/Set Parameter 262
[34] Query/Set Tape Position 263
[35] Query Encryption Status 263
[36] Display Message 263
[37] Report Density Supp (Support) 263
[38] Test Encryp. Path (Test Encryption Key Path/Setup) 263
[39] Configure TCP/IP Port 264
[50] Element Information 264
[51] Position to Element 265
[52] Element Inventory 265
[53] Exchange Medium 265
[54] Move Medium 265
[55] Initialize Element Status 265
[56] Prevent/Allow Medium Removal 265
[57] Initialize Element Status Range 265
[58] Read Device IDs 266
[59] Read Cartridge Location 266
[70] Dump/Force Dump/Dump 266
[71] Firmware Update 266
[101] HDP Discover 266
[102] HDP Initiate Call Home 267
[103] HDP Show Import Export Elements 267
Add device manually 267
Standard Edition - Program options 267
Standard Edition - Tapeutil scripting commands 268
allow 271
devinfo 271
inquiry | inq | inqj 271
logpage | logpagej 271
loop 272
modepage 272
prevent 272
print 273
qryhba | qryhbainfo 273
qrypath 273
qryversion 273
release 273
reqsense 273
reserve 274
scan|scanj 274
sleep 275
tur 275
vpd 276
append 276
bsf 276
bsr 276
channelcalibration 276
chgpart 276
density 277
display 277
erase 277
formattape 277
fdp 277
fdpl 278
fsf 278
fsr 278
getparms 278
idp 278
idpl 279
list 279
load 279
logsense 279
qrypar | qrypart 280
qrylbp 280
qrymon | qrymediaoptimizationneeded 280
qrymov | qrymediaoptimizationversion 280
qrypos 280
qrytcpip 280
qrytemp 281
read 281
readattr 281
resetdrive 281
rmp 281
runtimeinfo | qryruntimeinfo 282
rewind 282
rtest 282
rwtest 282
sdp 282
sdpl 283
seod 283
setparm 283
setpos 284
settcpip 284
sync 285
unload 285
verlbp 285
weof 285
write 285
writeattr 285
wtest 286
audit 286
cartridgelocation 286
elementinfo 286
exchange 286
inventory 287
librarymediaoptimization 287
move 287
position 287
dump 288
ekmtest 288
encryption 288
ucode 288
tapephcp 288
ltfsphcp 289
verify 289
devicestatistics 289
checkltfsreadiness 289
ltfsdefragmentation 290
standardtest 290
fullwrite 290
systemtest 290
tapeusage 291
hdp discover 291
hdp senderror 291
hdp show 291
TS4500 REST over SCSI 291
TS4300: RESTful API 292
Deprecated commands 293
Alternative mount/demount script - sample for Windows 294
Standard Edition scripting commands: known limitations and deviations 295
IBM Tape Diagnostic Tool - Graphical Edition 296
Installing ITDT - Graphical Edition 296
Installing ITDT-GE on Windows operating systems 296
Installing ITDT-GE on Linux operating systems 296
Graphical Edition - known issues and limitations 296
Linux operating systems 297
Windows operating systems 297
All supported operating systems 297
ITDT-GE user interface description 297
Graphical Edition - Scan menu commands 299
Scan 299
Health Test 300
Configure TCP/IP Ports 302
Dump 302
Firmware Update 302
Firmware Update - check for updates 303
Encryption 304
Full Write 304
Tape Usage 305
System Test 306
Library Diagnostic Self-Test 306
Library Media Screening 306
LTFS Readiness Check 307
Manual Inspection Record Entry 307
Graphical Edition - Copy Services 307
Graphical Edition - visualizing log files 308
Graphical Edition - Tapeutil menu commands 308
Open 311
Close 311
Inquiry 312
Test Unit Ready 312
Reserve Device 312
Release Device 312
Request Sense 312
Log Sense 312
Mode Sense 312
Query Driver Version 312
Display All Paths 313
Rewind 313
Forward Space Filemarks 313
Backward Space Filemarks 313
Servo Channel Calibration 313
Forward Space Records 313
Backward Space Records 313
Space to End of Data 314
Read and Write Tests 314
Read or Write Files 315
Erase 315
Load Tape 315
Unload Tape 315
Write Filemarks 315
Synchronize Buffers 316
Query/Set Parameter 316
Query/Set Position 316
Query Encryption Status 316
Display Message 316
Display All Paths 313
Report Density Support 317
Test Encryption Path 317
Element Information 317
Position to Element 317
Element Inventory 318
Exchange Medium 318
Move Medium 318
Initialize Element Status 318
Prevent/Allow Medium Removal 318
Initialize Element Status Range 318
Read Device IDs 318
Read Cartridge Location 319
Configure TCP/IP Ports 319
Dump/Force Dump/Dump 319
Firmware Update 319
Verifying correct attachment of your devices 319
Managing the microcode on the IBM tape drive 320
Notices 320
Terms and conditions for product documentation 321
IBM Tape Device Drivers Programming Reference 322
Introduction 323
Common extended features 324
Tape drive functions and device driver ioctls 324
Media partitioning 324
Data safe (append-only) mode 325
Read Position long/extended form and Locate(16) commands 325
Logical Block Protection 326
Programmable Early Warning (PEW) 326
Log Sense page and subpage 326
Mode Sense page and subpage 326
Verify Tape 327
RAO - Recommended Access Order 327
AIX tape and medium changer device driver 327
Software interface for tape devices 327
Software interface for medium changer devices 328
Special files 328
Special files for tape devices 328
Special files for medium changer devices 329
Opening the special file for I/O 329
The extended open operation 330
Writing to the special file 330
Reading from the special file 331
Reading with the TAPE_SHORT_READ extended parameter 331
Reading with the TAPE_READ_REVERSE extended parameter 331
Closing the special file 331
Device and volume information logging 332
Log file 332
Persistent reservation support and IOCTL operations 333
ODM attributes and configuring persistent reserve support 333
Default device driver host reservation key 333
Preempting and clearing another host reservation 333
Openx() extended parameters 334
AIX tape persistent reserve IOCTLs 334
Atape persistent reserve IOCTLs 336
General IOCTL operations 338
Overview 338
IOCINFO 339
STIOCMD 339
STPASSTHRU 340
SIOC_PASSTHRU_COMMAND 340
SIOC_INQUIRY 340
SIOC_REQSENSE 341
SIOC_RESERVE 342
SIOC_RELEASE 342
SIOC_TEST_UNIT_READY 342
SIOC_LOG_SENSE_PAGE 343
SIOC_LOG_SENSE10_PAGE 343
SIOC_MODE_SENSE_PAGE 344
SIOC_MODE_SENSE_SUBPAGE 344
SIOC_MODE_SELECT_PAGE 345
SIOC_MODE_SELECT_SUBPAGE 345
SIOC_QUERY_OPEN 345
SIOC_INQUIRY_PAGE 346
SIOC_DISABLE_PATH 346
SIOC_ENABLE_PATH 347
SIOC_SET_PATH 347
SIOC_DEVICE_PATHS 347
SIOC_QUERY_PATH 347
SIOC_RESET_PATH and SIOC_CHECK_PATH 349
SIOC_RESET_DEVICE 349
SIOC_DRIVER_INFO 349
Tape IOCTL operations 350
Overview 350
STIOCHGP 352
STIOCTOP 352
STIOCQRYP or STIOCSETP 353
STIOCSYNC 356
STIOCDM 356
STIOCQRYPOS or STIOCSETPOS 357
STIOCQRYSENSE 358
STIOCQRYINQUIRY 358
STIOC_LOG_SENSE 359
STIOC_RECOVER_BUFFER 359
STIOC_LOCATE 360
STIOC_READ_POSITION 360
STIOC_SET_VOLID 361
STIOC_DUMP 361
STIOC_FORCE_DUMP 361
STIOC_READ_DUMP 361
STIOC_LOAD_UCODE 362
STIOC_RESET_DRIVE 362
STIOC_FMR_TAPE 362
MTDEVICE (Obtain device number) 362
STIOC_PREVENT_MEDIUM_REMOVAL 363
STIOC_ALLOW_MEDIUM_REMOVAL 363
STIOC_REPORT_DENSITY_SUPPORT 363
STIOC_GET_DENSITY and STIOC_SET DENSITY 365
STIOC_CANCEL_ERASE 366
GET_ENCRYPTION_STATE 366
SET_ENCRYPTION_STATE 367
SET_DATA_KEY 367
READ_TAPE_POSITION 367
SET_TAPE_POSITION 369
SET_ACTIVE_PARTITION 369
QUERY_PARTITION 370
CREATE_PARTITION 370
ALLOW_DATA_OVERWRITE 372
QUERY_LOGICAL_BLOCK_PROTECTION 372
SET_LOGICAL_BLOCK_PROTECTION 373
STIOC_READ_ATTRIBUTE 373
STIOC_WRITE_ATTRIBUTE 374
VERIFY_TAPE_DATA 374
QUERY_RAO_INFO 375
GENERATE_RAO 376
RECEIVE_RAO 377
QUERY_ARCHIVE_MODE_UNTHREAD 378
SET_ARCHIVE_MODE_UNTHREAD 378
TAPE_LOAD_UNLOAD 378
GET_VHF_DEVICE_STATUS 379
Medium changer IOCTL operations 380
Overview 380
SMCIOC_ELEMENT_INFO 381
SMCIOC_MOVE_MEDIUM 381
SMCIOC_EXCHANGE_MEDIUM 382
SMCIOC_POS_TO_ELEM 382
SMCIOC_INIT_ELEM_STAT 382
SMCIOC_INIT_ELEM_STAT_RANGE 383
SMCIOC_INVENTORY 383
SMCIOC_LOAD_MEDIUM 384
SMCIOC_UNLOAD_MEDIUM 385
SMCIOC_PREVENT_MEDIUM_REMOVAL 385
SMCIOC_ALLOW_MEDIUM_REMOVAL 385
SMCIOC_READ_ELEMENT_DEVIDS 386
SMCIOC_READ_CARTIDGE_LOCATION 387
Return codes 388
Codes for all operations 389
Open error codes 389
Write error codes 389
Read error codes 390
Close error codes 390
IOCTL error codes 390
Linux tape and medium changer device driver 390
Software interface 390
Entry points 391
Medium changer devices 392
General IOCTL operations 392
Overview 392
SIOC_INQUIRY 393
SIOC_REQSENSE 394
SIOC_RESERVE 395
SIOC_RELEASE 395
SIOC_TEST_UNIT_READY 395
SIOC_LOG_SENSE_PAGE, SIOC_LOG_SENSE10_PAGE, and SIOC_ENH_LOG_SENSE 396
SIOC_MODE_SENSE_PAGE and SIOC_MODE_SENSE 397
SIOC_INQUIRY_PAGE 398
SCSI_PASS_THROUGH 398
SIOC_QUERY_PATH 399
SIOC_DEVICE_PATHS 399
SIOC_ENABLE_PATH 400
SIOC_DISABLE_PATH 400
Tape drive IOCTL operations 401
Overview 401
STIOCTOP 402
STIOCQRYP or STIOCSETP 403
STIOCSYNC 405
STIOCDM 405
STIOCQRYPOS 406
STIOCSETPOS 407
STIOCQRYSENSE 407
STIOCQRYINQUIRY 407
STIOC_LOCATE 408
STIOC_READ_POSITION 409
STIOC_RESET_DRIVE 409
STIOC_PREVENT_MEDIUM_REMOVAL 409
STIOC_ALLOW_MEDIUM_REMOVAL 409
STIOC_REPORT_DENSITY_SUPPORT 409
MTDEVICE (Obtain Device Number) 411
STIOC_GET DENSITY and STIOC_SET_DENSITY 411
GET_ENCRYPTION_STATE 412
SET_ENCRYPTION_STATE 413
SET_DATA_KEY 413
STIOC_QUERY_PARTITION 414
STIOC_CREATE_PARTITION 414
STIOC_SET_ACTIVE_PARTITION 416
STIOC_ALLOW_DATA_OVERWRITE 416
STIOC_READ_POSITION_EX 418
STIOC_LOCATE_16 420
STIOC_QUERY_BLK_PROTECTION 420
STIOC_SET_BLK_PROTECTION 420
STIOC_VERIFY_TAPE_DATA 420
STIOC_QUERY_RAO 422
STIOC_GENERATE_RAO 423
STIOC_RECEIVE_RAO 424
STIOC_SET_SPDEV 424
Tape drive compatibility IOCTL operations 425
MTIOCTOP 425
MTIOCGET 425
MTIOCPOS 425
Medium changer IOCTL operations 425
SCSI IOCTL commands 426
SMCIOC_ELEMENT_INFO 426
SMCIOC_MOVE_MEDIUM 426
SMCIOC_EXCHANGE_MEDIUM 427
SMCIOC_POS_TO_ELEM 427
SMCIOC_INIT_ELEM_STAT 427
SMCIOC_INIT_ELEM_STAT_RANGE 428
SMCIOC_INVENTORY 428
SMCIOC_LOAD_MEDIUM 429
SMCIOC_UNLOAD_MEDIUM 429
SMCIOC_PREVENT_MEDIUM_REMOVAL 430
SMCIOC_ALLOW_MEDIUM_REMOVAL 430
SMCIOC_READ_ELEMENT_DEVIDS 430
Return codes 431
General error codes 432
Open error codes 432
Close error codes 432
Read error codes 432
Write error codes 433
IOCTL error codes 433
Windows tape device drivers-edit 433
Windows programming interface 433
User-callable entry points 434
Tape Media Changer driver entry points 434
CreateFile 435
ReadFile 436
WriteFile 436
Write Tapemark 436
SetTapePosition 437
GetTapePosition 437
SetTapeParameters 437
GetTapeParameters 438
PrepareTape 438
EraseTape 439
GetTapeStatus 439
DeviceIoControl 439
Medium Changer IOCTLs 440
IOCTL commands 440
Preempt reservation 441
Vendor-specific (IBM) device IOCTLs for DeviceIoControl 442
IOCTL_TAPE_OBTAIN_SENSE 443
IOCTL_TAPE_OBTAIN_VERSION 443
IOCTL_TAPE_LOG_SELECT 444
IOCTL_TAPE_LOG_SENSE 444
IOCTL_TAPE_LOG_SENSE10 444
IOCTL_ENH_TAPE_LOG_SENSE10 445
IOCTL_TAPE_REPORT_MEDIA_DENSITY 445
IOCTL_TAPE_OBTAIN_MTDEVICE 446
IOCTL_TAPE_GET_DENSITY 446
IOCTL_TAPE_SET_DENSITY 446
IOCTL_TAPE_GET_ENCRYPTION_STATE 447
IOCTL_TAPE_SET_ENCRYPTION_STATE 447
IOCTL_TAPE_SET_DATA_KEY 448
IOCTL_CREATE_PARTITION 448
IOCTL_QUERY_PARTITION 449
IOCTL_SET_ACTIVE_PARTITION 449
IOCTL_QUERY_DATA_SAFE_MODE 449
IOCTL_SET_DATA_SAFE_MODE 450
IOCTL_ALLOW_DATA_OVERWRITE 450
IOCTL_READ_TAPE_POSITION 450
IOCTL_SET_TAPE_POSITION 452
IOCTL_QUERY_LBP 452
IOCTL_SET_LBP 452
IOCTL_SET_PEW_SIZE 453
IOCTL_QUERY_PEW_SIZE 453
IOCTL_VERIFY_TAPE_DATA 454
IOCTL_QUERY_RAO_INFO 454
IOCTL_GENERATE_RAO 454
IOCTL_RECEIVE_RAO 455
IOCTL_CHANGER_OBTAIN_SENSE 456
IOCTL_MODE_SENSE 456
Variable and fixed block read/write processing 457
Event log 457
Notices 459
How to send your comments 460
Terms and conditions for knowledge centers 460
IBM TS4300 Tape Library
Edit online
Welcome to the IBM TS4300 tape library documentation, where you can find information about how to install, maintain, and use the TS4300 tape library.
Overview
The overview of the features and functions of the IBM® TS4300 tape library is useful for high-level evaluation of the product and planning for the implementation of
the product.
Planning
The library requires an environment able to accommodate the appropriate space, power, location, and other technical specifications. Use this section as a reference
for onsite requirements to allow for optimum operation of the library.
Installing
Use this section to follow the procedures to install and configure your library.
Managing
Four user roles are described, and each user role has its specific functions.
Troubleshooting
Use the information in this section to troubleshoot any issues with your library setup and configuration.
Upgrading and servicing
In this section, you can follow the procedures to add, remove, and replace library components.
Reference
This section provides information about the Help pages, REST API, LTO Media, and other reference documentation.
Notices
This information was developed for products and services that are offered in the US. This material might be available from IBM in other languages. However, you
might be required to own a copy of the product or product version in that language in order to access it.
Glossary
This glossary defines the special terms, abbreviations, and acronyms that are used in this publication. If you do not find the term that you are looking for, refer to
the index or to the Dictionary of Computing, 1994.
Publications
The Publications section provides instructions to print selected IBM Documentation topics, and can help you locate other publications that are related to the
libraries and drives.
Getting started
Overview
Planning
Installing
Managing
Common tasks
Upgrading and servicing
Handling the cartridges
Methods of cleaning drives
HBA requirements
More information
Minimum firmware levels for common library features
TS4300 Help pages
REST API for scalable tape libraries
Related publications
IBM TS4300 Tape Library SCSI Reference
IBM Community (Community platform)
IBM Support content (Product support)
IBM Spectrum Archive Single Drive Edition documentation
Redbooks home page
Overview
Edit online
The overview of the features and functions of the IBM® TS4300 tape library is useful for high-level evaluation of the product and planning for the implementation of the
product.
New information
The following section contains updated information for the current edition.
LTO Media
Supported tape drives and supported tape cartridges
Installing table feet
TS4300 Help pages
Event Codes
Replacement parts
Introduction
Edit online
The IBM® TS4300 tape library provides compact, high-capacity, low-cost solutions for simple, unattended data backup. The installation begins with the 3U high Base
Module, with capacity for up to 40 tape cartridges and 3 half-height LTO tape drives, or one full-height and one half-height tape drive.
1Every module can contain a 5-slot I/O station. If a seven module library has an I/O station for each module, the maximum number of slots that can be configured
3 module library
Base Module, Figure 5. 3 module library
and
2 Expansion
Modules
4 module library
Base Module, Figure 6. 4 module library
and
3 Expansion
Modules
5 module library
Base Module, Figure 7. 5 module library
and
4 Expansion
Modules
7 module library
Base Module, Figure 9. 7 module library
and
6 Expansion
Modules
Components
Front panel
Rear panel
Magazines
Accessor
Power supply
Front panel
Edit online
Rear panel
Edit online
8
9
13 12 11 10
Table 1. Rear panel descriptions
Number Item Comments
1 Power supply 1 Standard on Base Module
Optional on Expansion Module (required
if drives are present)
2 Power supply 2 Optional on Base Module and Expansion Modules
3 Tape drive bays Full high drives take up 2 bays and can only be installed in the lower two drive bays.
4 Upper Expansion Module connection port
5 USB port Base Module only
6 Ethernet port B Base Module only (secondary port for service usage)
7 Ethernet port A Base Module only
8 Module alignment mechanism
9 Lower Expansion Module connection port
10 Unit Identifier LED, Blue
11 Controller Error LED, Yellow
12 Controller Health Status LED, Green
13 Product Serial Number, Tag location
The library assigns each slot in a magazine a unique number to indicate its physical location. This numbering is shown on the Cartridges page of the Management GUI.
Important: Ensure that no tapes are in the slots before the I/O Station is enabled or disabled.
The robotic assembly has fingers that enable it to grab tape cartridges and move them to and from the I/O station, storage slots, and drives.
The spooling mechanism has a cable that extracts and retracts based on movement of the robotic assembly. This cable provides communication between the
robotic assembly and the library main board.
The high-speed bar code reader is a part of the Base Module. The bar code reader provides inventory feedback to the host application, Operator Panel display, and
Management GUI by reading cartridge bar code labels. The library stores the customized inventory data in memory. Library firmware supports a 6 or 8 character
volume serial number (VOLSER) on the bar code label on the tape cartridge. It is highly recommended to use bar code labeled cartridges. See Bar code label.
Note: For libraries with S/N 7800K0K and higher, review the Minimum firmware levels for common library features.
Power supply
Edit online
The library provides a single power supply with each library. However, a secondary redundant power supply for the base module can be added. In addition, each
expansion module with drives installed requires a power supply. See Optional features.
Remember: For a single module (expansion or base) having two power supplies, the second power supply is deemed as redundant. However, if two or more modules have
their individual power supply, then there is no redundant power supply.
User interfaces
Edit online
This library has two user interfaces: the Management GUI and the Operator Panel.
The Management GUI - With the Management GUI, you can monitor, configure, and control the library from a web browser. The Management GUI hosts a dedicated,
protected Internet site that displays a graphical representation of the library. For information on network connectivity, see Network connectivity.
The Operator Panel - With the Operator Panel, you can monitor, configure, and control the library from the front panel. Functions are limited to those applicable to
being in front of the library.
a function of many components, such as the host system processor, disk data rate, block size, data compression ratio, SAS bus capabilities, and system or application
software.
2 Cartridge initialization time can vary. See Media optimization for more information.
Remember:
a function of many components, such as the host system processor, disk data rate, block size, data compression ratio, SAS bus capabilities, and system or application
software.
2 Cartridge initialization time can vary. See Media optimization for more information.
Remember:
A control path is the path for SCSI Medium Changer commands that are sent by a server to control a specific logical library. The library has no direct SCSI connection to a
host server. When a software host server communicates with the library, it sends the communication by way of a tape drive. The tape drive is designated as a control path
drive.
Mixed drives
Edit online
All supported generations of LTO tape drives and cartridges can be in the same physical library and within a single module.
This library supports a mixture of LTO drive types in a logical library. Some independent software vendors (ISVs) support mixed drive types within a logical library and
other do not. Some ISVs that support mixed drive types might have restrictions. For details, contact your ISV.
Figure 1 shows examples of methods for mixing LTO drive types in a logical library.
Six indicator LEDs are included on all drive sleds as shown in Figure 1.
The library assigns each tape drive a unique address to indicate its physical location, which is shown in Figure 1. The physical numbering is bottom up on all drives. This
information is shown on the Drives page of the Management GUI.
The library assigns each tape drive a SCSI element address that consists of a value that defines a logical location in the library to the SCSI interface. It is assigned and
used by the application when the host server processes SCSI commands. The SCSI element address for a drive is unique to the location of the drive. It does not vary
based on other drives in the library. See Library partitioning.
Drive features
Edit online
Media optimization
Media optimization is a new feature for the LTO9 tape drive with L9/LZ media.
Media optimization
Edit online
Media optimization is a new feature for the LTO9 tape drive with L9/LZ media.
The increased number of tracks used to write data on tape requires greater precision. Media optimization creates a referenced calibration for each cartridge that enables
the tape drive’s intelligent alignment to optimize data placement. LTO-9 media optimization enhances LTO tape long-term media durability.
Media optimization will be performed on first load of L9/LZ media during initialization.
Recommendation is to perform first load in the location of deployment, which should be in a stable environment that meets the recommended environmental
specification.
Media optimization is a one-time operation that can be completed on any drive in the environment, enabling the media to be used across all tape drives without
further optimization.
Media optimization averages 20 minutes per first load of a cartridge to a tape drive. Although most media optimizations will complete within 30 minutes some
media optimizations may take up to 2 hours.
Interruption of the process is not recommended.
A different mount will not necessarily improve the time to complete the one-time optimization.
An update to software may be required. Contact your software application provider for more details. Customized software, not provided as a standard market product,
may require modification to ensure the software can handle the extended first mount time.
The wizard provides an interactive way to run a bulk new tape initialization with multiple cartridges and drives through the WebGUI.
While the optimization process is running, the library is exclusively reserved for this procedure. No other operations can be started in parallel.
You can start the ‘LTO 9 New Media Optimization’ Wizard by selecting Cartridges > LTO 9 New Media Optimization.
Select Cartridges
The wizard provides a list where cartridges can be selected. After selected, the cartridges will be moved to the ‘Selected Cartridges’ list on the right side of the Wizard
window. Pressing the button “Select All” selects all listed cartridges. Unidentified cartridges are also shown.
1. An ‘X’ icon is shown if the cartridge is LTO 9 but not yet initialized.
2. A green arrow icon is shown if it is already initialized.
3. ‘N/A’ is shown if the state is unknown, due to non-LTO 9 media or not previously loaded to a drive. Note: If a cartridge was never loaded to a drive, the cartridge
generation cannot be recognized without a valid barcode label.
Finish screen
After the selection of the drives, the wizard is now ready to be run. At the ‘Finish Page’, all previously provided data is listed again before the execution can be triggered.
After the user confirms all data as valid, they can start the wizard by pressing “Finish”. The wizard shows the current progress of the single tasks.
While the bulk media optimization is running, the wizard shows the current progress of the single tasks. The following states for the tasks are shown:
A feature of the LTO-9 full-height drives is the ability to accept a list of User Data Segments and reorder those User Data Segments into a recommended access order that
minimizes the locate portion of the time to read those User Data Segments. This sorted list is called a Recommended Access Order (RAO) list. A User Data Segment (UDS)
is defined as a grouping of contiguous logical objects (i.e., logical blocks and filemarks) and is described by partition number, beginning logical object identifier, and ending
logical object identifier.
The RAO implementation in LTO produces the best results for performance enhancement when there is little variability in block size or data compression ratio. When the
variability in compression ratio or block sizes increase, the accuracy of the locate estimates may be reduced and any potential performance enhancements may be
diminished.
The time that is required for an unload depends on how the cartridge has been used during the mount. This is based on the current position and how far from the
beginning of tape (BOT) the media has been moved since mount. For details on unload performance, see Supported tape drives.
Speed matching
Edit online
To improve system performance, the drive uses a technique that is called speed matching to dynamically adjust its native (uncompressed) data rate to the slower data rate
of a server.
With speed matching, the drive operates at different speeds when it is reading or writing the Ultrium 7 or later cartridge format. Native data rates are shown in the table.
Channel calibration
Edit online
System performance is optimized by channel calibration.
System performance is further optimized by a feature that is called channel calibration, in which the drive automatically customizes each read/write data channel to
compensate for variations in such things as the recording channel 's transfer function, the media, and characteristics of the drive head.
The SET CAPACITY SCSI command enables a customer to capacity scale a data cartridge to enable faster random access. As an example, a customer can capacity scale a
data cartridge to 20% of its normal length that improves the average access time by almost a factor of 5. However, it also reduces the native capacity of the tape to 80
GB160 GB300 GB500 GB1.2 TB.
Power management
Edit online
The LTO tape drives feature a power management function. This function controls the drive's electronics so that part of the electronics completely turns OFF when circuit
functions are not needed for the drive's operation.
Encryption
Edit online
The LTO tape drive supports host Application Managed Encryption (AME), with T10 encryption methods.
Data encryption is supported by LTO Ultrium 4 and later data cartridges only.
The encryption-enabled drive contains the necessary hardware and firmware to encrypt and decrypt host tape application data. Encryption policy and encryption keys are
provided by the host application. A drive digital certificate is installed at manufacturing time. Each drive receives a unique serial number and certificate. The T10
Application can validate each drive instance by checking the drive's digital certificate.
For details, see the IBM® Tape Device Drivers Encryption Support documentation, and the IBM LTO Ultrium Tape Drive SCSI Reference documentation.
Data cartridge
WORM (Write Once, Read Many) cartridge
Cleaning cartridge
2When tape is processed in the cartridges, Ultrium tape drives use a linear, serpentine recording format.
3Cartridge initialization time may vary. For more information, see Media optimization.
Library functions
Edit online
The library provides many specific functions, such as random or sequential operating mode, encryption, library sharing, path failover, and alerts and logging.
Encryption
All supported tape drives in this library support encryption.
Library sharing
The library can be configured into one or more logical libraries that can be shared by multiple applications.
Control path failover, Data path failover, and load balancing
The path failover feature ensures the use of a redundant communication path when the primary path fails.
Alerts and logging
The library sends alerts about the library and attached tape drives, and offers audit-logging to track user actions.
Random and Sequential Logical Library modes
A Logical Library can be configured in one of two modes: Random and Sequential.
Encryption
Edit online
All supported tape drives in this library support encryption.
The encryption enabled drive contains the necessary hardware and firmware to encrypt and decrypt host tape application data. Encryption policy and encryption keys are
provided by the host application or host server. A drive digital certificate is installed at manufacturing time. Each drive receives a unique serial number and certificate. The
T10 application might validate each drive instance by checking the drive's digital certificate.
1. Encryption disabled
2. Application Managed Encryption (AME)
3. Library Managed Encryption (LME). LME is a built-in feature that is enabled by using a purchased license. The LME feature can be ordered from the factory, or you
can order it as a field upgrade. To order a feature, contact your IBM Sales Representative or Business Partner. See Optional Features. For configuration details, see
Configuring Library Managed Encryption.
Library sharing
Edit online
The library can be configured into one or more logical libraries that can be shared by multiple applications.
It is advantageous to be able to share a single physical library between heterogeneous or homogeneous applications. However, some applications (and some servers) do
not allow for sharing a library between systems.
The library Management GUI provides two methods for logical library configuration.
Note: When any number of drives are loaded, a warning message appears when the Manage Logical Library (Expert Mode) wizard is accessed.
The second method gives the ability to create configurations that enable the library to process commands from multiple heterogeneous applications (such as an IBM®
System p application and a Windows application) and multiple homogeneous applications (for example, the same application run by several System p servers). See
Advanced library configuration.
Command failures and time outs are costly. You want your library to run smoothly and efficiently. Path failover capabilities allow the IBM® device driver to resend a
command to an alternate path. The alternate path can include another host bus adapter (HBA), Storage Area Network (SAN), or library control path drive. The device driver
initiates error recovery and continues the operation on the alternate path without interrupting the application.
Path failover and load balancing are built-in features that are enabled by using a purchased license. The path failover feature can be ordered from the factory, or you can
order it as a field upgrade. The path failover feature (FC 1682) is activated on the Management GUI. To order features, contact your IBM® Sales Representative or Business
Partner. See Optional features.
Two types of path failover capabilities exist: control path failover (CPF) and data path failover (DPF). Control refers to the command set that controls the library (the SCSI
Medium Changer command set on LUN 1 of the tape drives). Data refers to the command set that carries the customer data to and from the tape drives (the SCSI-3
Stream Commands (SSC) device on LUN 0 of the tape drives). Path failover means the same thing in both. Path failover is where redundancy is in the path from the
application to the intended target (the library accessor or the drive mechanism), the device driver transparently fails over to another path in response to a break in the
active path.
Both types of failover include host-side failover when configured with multiple HBA ports into a switch. But CPF includes target-side failover through the control paths that
are enabled on more than one tape drive. DPF includes target-side failover for the dual-ported tape drives that are supported by the library.
DPF includes load balancing of the HBAs because the channel is a data-intensive path (the control path carries little data, so load balancing is not an issue). The dynamic
load balancing support optimizes resources for devices that have physical connections to multiple HBAs in the same machine. When an application opens a device where
multiple HBA paths are configured, the device driver determines which path has the HBA with the lowest usage and assigns that path to the application. When another
application opens a different device with multiple HBA paths, the device driver again determines the path with the lowest HBA usage and assigns that path to the second
application. The device driver updates the usage on the HBA assigned to the application when the device is closed. Dynamic load balancing uses all HBAs whenever
possible and balances the load between them to optimize the resources in the machine.
Both CPF and DPF require the use of the IBM device driver. They are supported exclusively with products that bear the IBM logo on the operating systems that is indicated
in Table 1.
Table 1 summarizes the differences between CPF, DPF, and load balancing.
For information about using these features, see the IBM Tape Device Drivers Installation and User's Guide (GA32-0565).
TapeAlert Support: The tape library is compatible with TapeAlert technology, which provides error and diagnostic information about the drives and the library to
the host application. The library provides this error and diagnostic information as TapeAlert flags that are reported to the application by the SCSI LOG SENSE
command. See TapeAlert flags.
Email (SMTP - Simple Mail Transfer Protocol) Notifications: The library can configure email notification of library events. The library must have network access to
an SMTP server. See Locating Management functions.
Remote Logging (rsyslog): The library can send syslog (system log) notifications to a configured remote (rsyslog) server. When system events occur, the TS4300
tape library creates a log of these events. With this notification feature configured, the library sends a notification of the event to the syslog server. The syslog server
keeps its own log of system events. (The syslog server is a customer-provided server.) See Locating Management functions.
SNMP Support: The Simple Network Management Protocol (SNMP) allows the library to send alerts over a LAN network to a monitoring server.
Occasionally, the library might encounter situations that you want to know about. These situations can be conditions that affect the library performance, such as an
open door that causes the library to stop. You might also want to log user actions, such as a cartridge move or export that is initiated from the Management GUI.
SNMP messages can alert you of these conditions.
The library provides a standard TCP/IP protocol that is called SNMP to send alerts about conditions over a TCP/IP LAN network to an SNMP monitoring server.
These alerts are called SNMP traps. Using the information that is supplied in each SNMP trap, the monitoring server (together with customer-supplied software) can
alert operations staff of possible problems or operator interventions that occur. Many monitoring servers can be used to send email or pager notifications when they
receive an SNMP alert. See the manual for your network management application.
The monitoring server must be loaded with systems management software that can receive and process the trap. SNMP supports a get and get-response
mechanism for an operator to gather more information about a problem or query the library about its status. Through a monitoring server, the operator enters a
"get" using SNMP to request information about the library. A get-response is the information that is provided in response to the get. This type of support generally
requires an up-to-date library Management Information Base (MIB). The SNMP server's MIB contains units of information that specifically describe an aspect of a
system, such as the system name, hardware number, or communications configuration.
IBM provides the MIBs that are supported by the library. They include
IBM TS4300 MIB
Type of information:
The status of each drive in the library
A list of all cartridges in the library
The last trap or TapeAlert message that was sent by the library.
IBM AUTOMATION QUERY MIB
Type of information:
Library configuration
The library MIBs can be obtained through the SNMP Notifications Settings page on the Management GUI. See Locating Management functions. An operator cannot
change library settings by using SNMP. Settings are changed by using the Management GUI.
SNMP Notification Levels
SNMP provides various levels of notification about specific library events and user actions.
Inactive – No events are sent.
Critical – Only critical events are sent.
+ Warnings – Only critical and warning events are sent.
+ Configuration – Only critical, warning, and configuration events are sent.
+ Information – All events are sent.
Simple Network Management Protocol (SNMP) audit logging provides logging information about specific tape library user actions. To configure SNMP, see Locating
Management functions.
Random Mode
Random Mode is intended to be used by host applications that support SCSI media changer devices. Random Mode is the default.
In Random mode,
The host application chooses the cartridges that are moved to the drive.
I/O slots provide the flexibility for the user to add and remove cartridges and the host application is automatically notified of these changes.
Multiple drives can be assigned to provide parallel processing data operations and redundancy in case of failure.
Sequential Mode
Sequential Mode is intended to be used by host applications that aren’t supporting SCSI media changer devices but need to get another cartridge loaded if the current
cartridge is full.
In Sequential Mode,
The library predefines the sequential order that the cartridges are moved to the drive.
I/O slots are hidden as they aren’t assignable to a logical library with sequential mode enabled.
Only one drive can be assigned to a logical library with sequential mode enabled.
Basic Function - To initiate use of cartridges, the user issues a Move Cartridge command to the drive through the Management GUI. After the load, the host
application can begin data I/O activity. When the host application unloads the drive, the library moves the next cartridge into the drive. This behavior is implicit,
unless otherwise defined by selection of another option.
Loop Option - If a move sequence ends because no more cartridges are available in the current logical library, the sequence starts again by loading the first
cartridge of the logical library. This option can be chosen with or without the Autoload function.
Autoload Option - If enabled, the library loads the first cartridge of the logical library to the Sequential Mode tape drive during library startup after inventory scan is
finished. This option changes the implicit behavior of the Basic function. This option can be chosen with or without the Loop option.
If storage slots are configured to I/O slots after assignment to a Sequential Mode logical library, they are still considered valid available slots and are used for movements.
This option stays until you run the expert wizard again, and then these I/O slots no longer appear in the list of available slots. Finishing the expert wizard then sets the new
slot assignment and these I/O slots can no longer be used for movements.
To enable sequential mode, click the Enable Sequential Mode check box in the Basic Logical Library Wizard or Expert Logical Library Wizard.
Planning
Edit online
The library requires an environment able to accommodate the appropriate space, power, location, and other technical specifications. Use this section as a reference for
onsite requirements to allow for optimum operation of the library.
Acclimation
Server and storage equipment (racks and frames) must be gradually acclimated to the surrounding environment to prevent condensation.
Environmental specifications
Library Layout and Location requirements
Information for planning the installation and layout of your library, including various specifications for optimal performance.
Power cords
Electrical and safety information, and feature codes for purchasing power cords.
Network requirements
The library supports an independent customer network.
Host requirements
The drive is supported by a wide variety of servers, operating systems, and adapters. Many ways to determine the servers and software that supports this drive are
available.
Optional features
Acclimation
Edit online
Server and storage equipment (racks and frames) must be gradually acclimated to the surrounding environment to prevent condensation.
When server and storage equipment (racks and frames) is shipped in a climate where the outside temperature is below the dew point of the destination (indoor location),
there is a possibility that water condensation can form on the cooler inside and outside surfaces of the equipment when the equipment is brought indoors.
Sufficient time must be allowed for the shipped equipment to gradually reach thermal equilibrium with the indoor environment before you remove the shipping bag and
energize the equipment. Follow these guidelines to properly acclimate your equipment:
Leave the system in the shipping bag. If the installation or staging environment allows it, leave the product in the full package to minimize condensation on or within
the equipment.
Allow the packaged product to acclimate for 24 hours.1 If there are visible signs of condensation (either external or internal to the product) after 24 hours,
acclimate the system without the shipping bag for an additional 12 - 24 hours or until no visible condensation remains.
Acclimate the product away from perforated tiles or other direct sources of forced air convection to minimize excessive condensation on or within the equipment.
Note: Condensation is a normal occurrence, especially when you ship equipment in cold-weather climates. All IBM® products are tested and verified to withstand
condensation that is produced under these circumstances. When sufficient time is provided to allow the hardware to gradually acclimate to the indoor environment, there
should be no issues with long-term reliability of the product.
Environmental specifications
Edit online
Table 1 lists the recommended environmental specifications for active operation and when powered off. The Psychrometric Chart shows the allowable and recommended
operating environments. Table 2 provides guidelines for gas and particulate exposure.
Table 1. Equipment environment specifications as measured at the cool air inlet
Product operation (equipment is powered on)
Dry-bulb temperature Humidity range, non-condensing Maximum wet- Maximum dew Maximum Dry-bu
Allowable2 Recommended Maximum rate Allowable Recommended Maximum rate bulb point elevation tempe
3 of change of change temperature5 temperature6
1. Product equipment is removed from the original shipping container and installed but not in use - for example, during repair, maintenance, or upgrade.
2. Derate maximum dry-bulb temperature 1°C/300 m above 900 m (1.8°F/1,000 feet above 3,000 feet).
3. Derate maximum recommended dry-bulb temperature 1°C/300 m above 1,800 m (1.8°F/1,000 feet above 6,000 feet).
4. For 3592 media, changes of up to 40% RH in 5 minutes are allowed as long as the 20% to 80% absolute limits are not exceeded.
5. Applies to LTO drive generations 1 through 8 and to legacy 3592 drives (TS1155 and prior generations).
6. Applies to TS1160 and LTO 9 drives.
7. Applies to LTO drive generations 1 though 8 and to 3592 drives (TS1170 and prior generations).
0.030
0%
=8
/kg da )
RH
w
26 °
Allowable
0.010
%
RH = 20
Recommended
0.000
10 15 20 25 30 35
The chart is shown in SI (metric) units and a barometric pressure of 101.325 kPa (sea level).
The recommended operating environment specifies a long-term operating environment that can result in the greatest reliability and energy efficiency.
The allowable operating environment represents where the equipment has been tested to verify functionality. Due to the stresses that operating in the
allowable envelope can place on the equipment, these envelopes should be used for short-term operation, not continuous operation (for example, in
the case of a cooling failure).
For data centers with airside economizers, the choice of filters to achieve ISO class 8 cleanliness depends on the specific conditions present at that
data center.
The deliquescent relative humidity of the particulate contamination should be more than 60% RH.4
1. ANSI/ISA-S71.04. 1985. Environmental conditions for process measurement and control systems: Airborne contaminants, Instrument Society of America,
Research Triangle Park, NC, 1985.
2. The derivation of the equivalence between the rate of copper corrosion product thickness growth in Å/month and the rate of weight gain assumes that Cu2S and
Cu2O grow in equal proportions.
3. The derivation of the equivalence between the rate of silver corrosion product thickness growth in Å/month and the rate of weight gain assumes that Ag2S is the
only corrosion product.
4. The deliquescent relative humidity of particulate contamination is the relative humidity at which the dust absorbs enough water to become wet and promote ionic
conduction.
5. Surface debris is randomly collected from 10 areas of the data center on a 1.5 cm (0.6 inch) diameter disk of sticky electrically conductive tape on a metal stub. If
examination of the sticky tape in a scanning electron microscope reveals no zinc whiskers, the data center is considered free of zinc whiskers.
For tabletop installation - Tabletop installations (one Base Module) require no additional hardware.
For rackmount installation - If possible, install the Base Module in the middle of the rack to provide space for the allowed three Expansion Modules above it and three
Expansion Modules below it. See Structure and supported library configurations for details.
Security
The equipment must be located so that access to the equipment can be controlled and monitored. Consider all of these recommended security measures when you’re
determining where to locate your tape library.
Library location
You’re responsible for the security of this library, the cartridges that are contained within the library, and shelf-resident cartridges. To prevent unauthorized access
to data, IBM recommends locating the library and all shelf-resident cartridges in an area where access is controlled.
Location requirements
Choose a location that meets the criteria in Table 1.
Table 1. Location requirements
Criteria Definition
Rack requirements Standard 19-inch rack (minimum depth of 1 meter) with an appropriate # of Us (Rack Units) of clearance for the planned module quantity (See
Table 2 for details.)
Minimum Rack Post Spacing: 688.34 mm (27.1 In.)
Maximum Rack Post Spacing: 904.24 mm (35.6 In.)
Rack space 3U for the Base Module and 3U for each Expansion Module
requirements
Power source AC Power Voltage: 100 - 240 VAC
Line Frequency: 50 - 60 Hz
Library is located near AC outlet.
Technical specifications for this library can be referenced in the following tables.
Physical specifications
Figure 2. Depth from front of the bezel to back of the fan on an inserted drive sled
Acoustical specifications
Table 4. Acoustical specifications
Parameter Measurement
Idling acoustical noise sound power level LwAD in Bels (1 Bel = 10 dB) 6.6
Maximum acoustical noise sound power level LwAD in Bels (1 Bel = 10 dB) 6.8
Power cords
To avoid electrical shock, a power cord with a grounded attachment plug is provided. Use only properly grounded outlets.
Table 1 lists the power cord part number, feature code, the country, or region where the power cord is used, and the plug's standard reference. The
last column in the table contains an index number that you can match to a specific receptacle type in Figure 1.
All power cords use an appliance coupler that complies with the International Electrotechnical Commission (IEC) Standard 320, Sheet C13.
If the power cord that you receive does not match your receptacle, contact your local dealer.
Power cords that are used in the United States and Canada are listed by Underwriter's Laboratories (UL), are certified by the Canadian Standards
Association (CSA), and comply with the plug standards of the National Electrical Manufacturers Association (NEMA). For other worldwide geographies,
plug standards are listed in Table 1.
Table 1. Power cords
Description,
Feature Code Plug Standard Index Number
Country or Region
(FC), and Part Reference in Figure 1
Number (P/N)
US/Canada NEMA 5-15P Aruba, Bahamas, Barbados, Bermuda, Bolivia, Brazil, Canada, Cayman Islands, Colombia, Costa Rica, Curacao, 1
Dominican Republic, Ecuador, El Salvador, Guatemala, Guyana, Haiti, Honduras, Jamaica, Japan, Liberia, Mexico,
2.8 m, Netherlands Antilles, Nicaragua, Panama, Peru, Philippines, Saudi Arabia, South Korea, Suriname, Taiwan,
125 V Trinidad Tobago, Venezuela, US
FC 9800
P/N
95P2344
1.8 m,
125 V
FC 9986
P/N
39M5080
US/Canada NEMA 6-15P Aruba, Bahamas, Barbados, Bermuda, Bolivia, Brazil, Canada, Cayman Islands, Costa Rica, Curacao, Dominican 2
Republic, Ecuador, El Salvador, Guatemala, Guyana, Haiti, Honduras, Jamaica, Japan, Liberia, Netherlands
2.8 m, Antilles, Nicaragua, Panama, Peru, Philippines, Suriname, Taiwan, Thailand, Trinidad Tobago, Venezuela, US
250 V
FC 9833
P/N
95P2353
Australia AS 3112 Australia, China, Colombia, New Zealand, Papua New Guinea, Paraguay, Uruguay, Western Samoa 3
NZS 198
2.8 m,
250 V
FC 9831
P/N
95P2352
France, CEE 7 - VII Afghanistan, Algeria, Andorra, Angola, Aruba, Austria, Belgium, Benin, Brazil, Bulgaria, Burkina Faso, Burundi, 4
Germany Cameroon, Central African Republic, Chad, Congo-Brazzaville, Curacao, Czech Republic, Democractic Republic of
Congo, Denmark, Egypt, Finland, France, French Guiana, Germany, Greece, Guinea, Hungary, Iceland, Indonesia,
2.8 m, Iran, Ivory Coast, Jordan, Kenya, Korea, Lebanon, Luxembourg, Macau, Malagasy, Mali, Martinique, Mauritania,
250 V Mauritius, Monaco, Morocco, Mozambique, Netherlands, Netherlands Antilles, New Caledonia, Niger, Norway,
FC 9820 Poland, Portugal, Romania, Russia, Saudi Arabia, Senegal, Spain, Sweden, Sudan, Syria, Togo, Tunisia, Turkey,
P/N Yugoslavia, Zaire, Zimbabwe, Vietnam
95P2345
2.8 m,
250 V
FC 9821
P/N
95P2346
South Africa SABS 164 Bangladesh, Burma, Pakistan, South Africa, Sri Lanka 6
2.8 m,
250 V
FC 9829
P/N
95P2350
2.8 m,
250 V
FC 9828
P/N
95P2349
2.8 m,
250 V
FC 9830
P/N
95P2351
2.8 m,
250 V
FC 9827
P/N
95P2348
Argentina IEC 83-A5 Argentina, Brazil, Colombia, Paraguay, Trinidad Tobago, Uruguay 11
2.8 m,
250 V
FC 9834
P/N
95P2354
2.8 m,
250 V
FC 9840
P/N
95P2355
2.8 m,
125 V
FC 9835
P/N
23R3263
2.8 m,
250 V
FC 9841
P/N
23R6120
2.8 m,
250 V
FC 9845
P/N
23R6124
Rack PDU
FC 9848
P/N
23R6328
* Low Voltage
** High Voltage
Figure 1 shows the plugs that are used by the power cords in Table 1. Match the index number that is beside each plug to the index number in the table.
It is the customer’s responsibility to provide the proper length Ethernet cable for this connectivity.
The base module controller card has two Ethernet ports, which offer primary and redundant customer network connectivity. See Rear panel.
These connections allow remote viewing and management of the library with the Management GUI.
Note: Have your network settings handy to use for entering on the Operator Panel. Your network settings can also be stored as hardcopy on Library Configuration Forms.
The secondary Ethernet port might be used for service. Three models are available for connection:
No Ethernet port - Service personnel can connect a laptop to the customer network to use the Management GUI.
Dedicated secondary Ethernet port - The secondary network port that is dedicated only for service personnel to connect a laptop directly to the library.
Secondary Ethernet port - The secondary network port can be disconnected and service personnel can use it to connect a laptop directly to the library.
IP range selection
For internal communication between modules, the tape library uses an Ethernet connection with an internal IP address range. To prevent any conflict between the internal
IP address range and the external IP addresses, you must select the internal IP range. Choosing the Internal IP address range, and also entering the external IP address
information is part of the initial setup of the library.
Supported browsers
IBM supports higher versions of the browsers if the vendors don’t remove or disable functions that the product relies upon. For browser levels higher than the versions
that are certified with the product, customer support accepts usage-related and defect-related service requests. As with operating system and virtualization
environments, if IBM support can’t re-create the issue in the lab, the client might be asked to re-create the problem on a certified browser version to determine whether a
product defect exists. Defects aren’t accepted for cosmetic differences between browsers or browser versions that don’t affect the functional behavior of the product. If a
problem is identified in the product, defects are accepted. If a problem is identified with the browser, IBM might investigate potential solutions or workarounds that the
client can implement until a permanent solution becomes available.
Host requirements
Edit online
The drive is supported by a wide variety of servers, operating systems, and adapters. Many ways to determine the servers and software that supports this drive are
available.
SAS interface
LTO drives can have a dual port 12 Gbps SAS (Serial Attached SCSI) host interface.The SAS interface speed varies with the generation of the LTO drive. For more
information on SAS speed of different generation drives, see Supported tape drives.
Fibre Channel interface
The fibre channel interface varies with the generation of the drive.
Compatible configurations
For a comprehensive list of compatible configurations, see the IBM® Interoperation Center (SSIC) at http://www-
03.ibm.com/systems/support/storage/ssic/interoperability.wss.
HBA requirements
The library requires attachment to supported SAS or FC HBAs.
Supported device drivers
Device drivers enable the drive to interact with various servers.
Application software
SAS interface
Edit online
LTO drives can have a dual port 12 Gbps SAS (Serial Attached SCSI) host interface.The SAS interface speed varies with the generation of the LTO drive. For more
information on SAS speed of different generation drives, see Supported tape drives.
A drive with a SAS interface can be linked directly to controllers. SAS is a performance improvement over traditional SCSI because SAS enables multiple devices (up to
128) of different sizes and types to be connected simultaneously with thinner and longer cables. Its full-duplex signal transmission supports up to 12.0 Gbps. In addition,
SAS drives can be hot-plugged.
SAS drives auto-negotiate speed. There are no configurable topologies thus no feature switches associated with SAS.
Fibre Channel technology combines the best features of traditional input/output interfaces with the best features of networking interfaces. The technology offers a
transport mechanism for delivering commands, and provides high performance by allowing processing to be done in the hardware.
The Fibre Channel connector is a Small Form-Factor Pluggable (SFP), dual-port, multimode optical transceiver that consists of an industry standard duplex LC-type
connector.
Compatible configurations
Edit online
For a comprehensive list of compatible configurations, see the IBM® Interoperation Center (SSIC) at http://www-
03.ibm.com/systems/support/storage/ssic/interoperability.wss.
1. IBM does not provide application software with the drive. To order software, contact your IBM sales representative, IBM Business Partner, or an independent
software provider.
2. If you attach your drive to a server with non-IBM software, contact your software vendor for a matrix of compatible hardware, software, firmware revisions, and
adapters.
Note: Dependent on the use of Random or Sequential Mode, the drive might require an HBA with multiple LUN supports. Also, multiple LUN supports must be enabled on
the host computer. When multiple LUN supports are not enabled, the host computer can see the tape drive, but not the library.
HBA requirements
Edit online
The library requires attachment to supported SAS or FC HBAs.
The library requires attachment to supported SAS or FC HBAs. See Host connectivity.
Static Sensitive
Check with a system administrator before the host computer is powered off.
For a SAS library, confirm availability or install a SAS HBA that supports multiple LUNs.
For a direct-attach Fibre Channel library, confirm availability of installation of an FC HBA.
For connection of a Fibre Channel library through a compatible switch, verify that sufficient ports are available.
To properly install an IBM® device driver (if required), refer to the IBM Tape Device Drivers Installation and User's Guide. For applications that use other device drivers, see
Application software to determine which drivers to use.
IBM maintains the levels of device drivers and driver documentation for the drive on the web. You can access this material at http://www.ibm.com/support/fixcentral.
Tip: If you do not have Internet access and you need information about device drivers, contact your sales representative.
Remember: The device driver for System i® servers is included in the OS/400® operating system.
Application software
Edit online
Industry-leading compatible software offerings provide storage and tape management software for the LTO tape drives. Supporting software and applications must be
obtained separately from IBM®, IBM Business Partners, or independent software vendors (ISV). For a list of compatible software and additional information, refer to the
ISV Matrix that is available at Independent Software Vendor (ISV) matrix for 3592 and LTO.
Optional features
Edit online
Refer to Table 1 for features that are available for the tape library. To order extra features, contact your IBM® sales representative or Business Partner.
Installing
Edit online
Use this section to follow the procedures to install and configure your library.
Caution: The weight of this part or unit is between 18.1 and 33.6 kg (40 and 74 lb). It takes two persons to safely lift this part or unit. (C009)
Caution: The weight of this part or unit is between 33.6 and 46.3 kg (74 and 102 lb). It takes three persons to safely lift this part or unit. (C010)
Observe local health and safety requirements and guidelines for manual material handling.
Remove all tapes to reduce the weight and to prevent cartridges from falling into the robotics path and damaging the library.
Remove all tape drives to reduce the weight.
Obtain adequate assistance to lift and stabilize the module during installation or removal.
Attention: If the temperature in the room where the library operates varies by 15° C (30° F) from where the module was stored, allow it to acclimate for at least 12 hours
before it is unpacked.
Unpacking a Base Module or Expansion Module
Procedure
1. Before a module is opened or removed from the box, inspect the container for shipping damage.
2. If you notice any damage, report it to the shipping company immediately.
3. Remove the module from the box.
Important: Lift the module out of the box by the long sides, not by the display.
4. Check that all components for assembling the module are in the box. See Identifying Library Module components.
Attention: Do not place a module on either the ends or sides as this action can damage the module.
The TS4300 model 3555 is not shipped with a rack mount kit (IBM FC: 7002) and/or power cord (IBM FC: 9800-9848) unless it is ordered.
Note: Order the power cord that matches the electrical requirements of the country or area. Power cord FC 9848 must be ordered with the rack mount kit if a rack-based
power supply is used.
For SAS libraries, you must provide SAS cabling with the correct configuration for your HBA. For Fibre Channel libraries, you must provide one Fibre Channel cable for each
tape drive. See Optional features.
1. Base Module
2. Power cord (IBM FC: 9800-9848 are not a part of the shipment unless ordered. For more information see, Optional features.)
3. Feet kit
Procedure
1. Remove the Base Module from the box.
2. Put the packing foam which came with the shipment on the table.
3. Place the module top side down over the packing foam on the table.
4. Add feet to the base of the module. See Figure 1.
Attention: Ensure that the table feet does not cover any air holes at the base of the module.
5. Place the module at the required location, with top side up. Ensure that it is level.
6. Open the cover and remove the foam packing from inside the enclosure. See Removing inner foam from base module.
7. Replace the cover.
8. Plug in the power cord and the connecting cables.
Figure 4. The foam packing is removed, and the internal components are shown - Base Module.
Skip this step if you are installing a Base Module only without an Expansion Module.
To move the library top cover plate from the Base Module to an Expansion Module
1. Remove the library top cover plate from the Base Module. See Step 5 in Unpacking the Base Module and Expansion Modules.
2. Install the top cover on the Expansion Module that is installed on the top of the library.
a. Place the Expansion Module on a work table.
b. With the front of the top cover raised approximately 12 cm, engage the rear of the cover at the Expansion Module pivot point at the back of the opening.
c. Lower the front of the top cover until the latches engage on both sides.
To move the library bottom cover plate from the Base Module to an Expansion Module
d. Lower the cover front end by about 10 cm ( 1 ) and pull gently forward ( 2 ) to disengage from the pivot point at the unit center.
b. On the inside of the racks, facing out, mount the connectors at the appropriate height to the right and left rack posts. Mount them in the middle hole of the
height unit (the middle of a height unit is the hole between two wide and neighboring division bars) in both front and back. The four screw holes must align
with the holes on your rack. If they do not, the blocks are not in the correct location. See Figure 2 and Figure 3.
Note: If the connectors are installed incorrectly, the screws on the connectors do not match the holes on the frames. The circles in the graphics highlight the
mismatch.
c. Repeat step b on the right and left rack posts in the rear of the rack.
d. Mount the LH Rackmount rail to the connectors. See Figure 4.
e. Repeat step d with the RH Rackmount Rail.
3. Place the library at the front of the rack on the support angles of the rails and push it into the rack to the back stop.
4. If you are installing multiple modules, verify that this module is installed directly above or below its adjacent module and is contained within the correct 3U volume.
Remove the tape that is covering the alignment pin lock/unlock lever on the rear of each module. The gap between modules must be less than 4 mm.
Aligning the modules ensures that the accessor can move freely between the modules. The library cannot operate unless the alignment mechanisms of the upper modules
are in the locked position, and the alignment mechanism of the lowest module is unlocked.
1. From the front of the library, loosen the screws on each of the modules where they are attached to the rails two full turns.
2. From the back of the library, starting with the bottom pair of modules, align each module with the module below it. Repeat for each pair of modules. Refer to Figure
3.
a. Move the alignment lever of the upper of the pair of modules to the locked or engaged position. If you encounter resistance, adjust the position of the upper
module so the pin in the alignment mechanism moves into the mating hole in the lower module. If you still encounter resistance, check to see if the rack rails
are installed correctly. Check that the hole for the alignment pin is on the left rail (looking from the front) toward the back of the rack. See 1 in Figure 1.
Note: If a blue alignment lever lock is attached to the rear of the module, slide it to the left, then move the alignment lever. The lever lock has an internal
spring, so hold it while the alignment lever is moved, and it automatically springs back into place after the lever is moved. See Figure 2.
3. Verify that the lowest module in the library has its alignment lever is in the unlocked or disengaged position.
1 Locked
2 Unlocked
4. From the front of the library, tighten the Philips screws on each of the modules to secure the modules to the rack.
5. From the back of the library, connect the modules of each pair to its adjacent module by using the expansion interconnect cables ( 1 ) as shown in Figure 6.
Note: The top module's top connector and the bottom module's bottom connector has nothing plugged into them.
Remember:
Connecting cables
Edit online
Procedures to connect Fibre Channel, SAS, USB, and Ethernet cables.
1. Remove the FC port caps if necessary. Attach one end of the FC cable to port 0 on the tape drive.
1. Attach the end of the SAS cable into the connector on the HBA. If you are using a SAS fanout/Interposer cable, the end of the cable with only one connector must
be plugged into the HBA.
2. Connect the drive end of the cable.
If you are using a cable with a single connector on each end, attach the other end into the connector on the tape drive.
If you are using a SAS fanout/Interposer cable, attach one mini-SAS connector into the connector on each tape drive. The unused ends of the SAS
fanout/Interposer cable are single channel and not suitable for use with disk arrays. Use the other ends to connect tape drives, or coil and secure them to the
rack to minimize stress on the connectors.
Important: SAS signal rates require clean connections between the HBA and tape drive. Do not use adapters or converters between the HBA and the tape drive. For
reliable operation, use a SAS cable length of maximum 6 meters for 6 Gbps or slower SAS speed. For 12 Gbps SAS speed, use a SAS cable length of maximum 3 meters.
Connecting USB cables
Two USB ports are on the library, one in the front and one in the rear. USB connections are used by service personnel for diagnostic and service procedures. Attach one
end of the USB cable to your notebook or other device and the other end to the front or rear USB port of the library.
Important: USB cable lengths of more than 3 meters are NOT supported for the front or rear USB ports.
Connecting Ethernet cables
To use the Management GUI, connect an Ethernet cable from the bottom Ethernet port on the Base Module controller to your network. See Rear panel for the location of
the Ethernet ports.
Remember: Ethernet port A (bottom Ethernet port) is the primary port. The second Ethernet port, Port B, is for redundancy.
The wizard guides you through setting the Internal IP range, setting library network configuration, configuring date and time, and setting the administrator PIN. You can
skip items and stop the wizard at any time. After you configure the network settings, you can start the wizard from the Management GUI to complete more configuration
items.
See Figure 1.
When the library starts up for the first time, the initial setup automatically begins.
To check your configuration at any time, go to Configuration > Initial System Setup on the Operator Panel. On the Management GUI, go to Library.
Upon the first login with the user role administrator and password: adm001, you must change your password. Your new password must have these characteristics:
8 characters long
At least one lowercase alphabet character
At least one uppercase alphabet character
At least one numeric character
No more than two consecutive characters
The Initial Configuration Wizard guides you through basic configuration settings.
The library has many features to customize it for your organization. Go to Locating Management functions to customize your library with these features.
Bar code labels are highly recommended in production environments to improve inventory time in the library and ease cartridge-handling processes outside the library.
See Bar code label.
1. Verify library firmware and update if needed: Library > Actions > Update Library Firmware
2. Run Library Verify.
3. Save the configuration settings to a file on your computer from the Management GUI: Settings > Library > Advanced > Save Configuration File.
Having a backup of the library configuration is helpful when the library is recovering from a configuration error or needs service.
Overview
Overview of advanced features such as multipath architecture, multiple logical libraries, and multiple control paths.
Library partitioning
Libraries that contain at least two drives can configure two logical libraries. It is possible to configure up to 21 logical libraries in the library (up to the number of
drives installed).
Overview
Edit online
Overview of advanced features such as multipath architecture, multiple logical libraries, and multiple control paths.
Multipath architecture
The multipath architecture feature of this tape library allows Open Systems applications to share the robotics of the library. See Library sharing.
The library features storage area network (SAN) ready multipath architecture. This architecture allows homogeneous or heterogeneous Open Systems applications to
share the library's robotics without middleware or a dedicated server (host) acting as a library manager. The SAN-ready multipath architecture makes sharing possible by
partitioning the library's storage slots and tape drives into logical libraries. Servers can then run separate applications for each logical library. This partitioning capability
extends the potential centralization of storage that the SAN enables. Partitioning also provides investment protection if your application does not support the mixing of
drive generations and media in the same logical library.
The multipath architecture of this library is designed to provide the capability to share the library robotics. The sharing is accomplished first by partitioning the library into
multiple logical libraries (up to the number of drives installed). Then, each logical library is assigned its own separate and distinct drives, storage slots, and control paths.
Input/output (I/O) slots are shared on a first-come-first-serve basis. This type of partitioning is designed to allow heterogeneous applications to share the library robotics
independent of each other. Cartridges under library control are not shared between logical libraries, nor are they allowed to be moved between logical libraries. An
example of heterogeneous sharing is a Microsoft Windows application that is using the drive and storage slots of one logical library, while a UNIX application uses the drive
and slots of another logical library. See Mixed drives.
In this configuration, the tape drives and cartridges of each logical library are dedicated to that library and are not shared among other libraries and applications.
Commands that are issued by the applications travel to the library through unique control paths or sequential mode processing by the library. So, the data processing for
Department A is confined to the tape drives and cartridges of Logical Library 1. Processing for Department B is confined to the tape drives and cartridges of Logical Library
2, and so forth.
For applications that do not support mixed drive types and media within the same logical library, partitioning the library into multiple logical libraries provides the
capability to keep them separate. For example, you can partition the following tape drives and their media into multiple and separate logical libraries:
LTO 8
LTO 7
LTO 6
This tape library offers an optional control path failover feature. See Library sharing and Control path failover, Data path failover, and load balancing.
Use of the control path failover feature further reduces the possibility of a failure in one control path to cause the entire library to become unavailable.
Library partitioning
Edit online
Libraries that contain at least two drives can configure two logical libraries. It is possible to configure up to 21 logical libraries in the library (up to the number of drives
installed).
Partitioning of libraries
With full-height or half-height physical drives, physical numbering is bottom up for all drives. For example, if you replace a half-height drive in Figure 1, the drives are still
numbered 1-4. If you add a drive in any of the slots in between drives numbered 1 and 4, the physical numbering changes and is still numbered bottom up.
Important: A full-height drive can be installed in a module in the lower two slots only.
SCSI element-addressing
A logical library assigns SCSI element addresses to drives, storage slots, I/O slots, and the accessor. For each element type (drive, storage, I/O), the SCSI element address
can be viewed on the Management GUI.
While SCSI addressing follows the same method as physical location-numbering, this action depends on the Advanced Logical Library configuration.
Drive numbering is from bottom to top. Storage slot-numbering is from left magazine (front to back, bottom to top) to right magazine (back to front, bottom to top). IO slot-
numbering is from bottom to top. Accessor is single number.
Note: When the number of drives in your library are reduced, update the logical library configuration. This action removes all event notifications that indicate a drive is
missing.
Updating the logical library configuration might change the SCSI element addressing.
1. Install the application software and drivers that are compatible with the library. Backup software packages might require extra software or licensing to
communicate with the robotics.
2. Verify the connection between the library and the host by using the host server’s operating system utilities. Or, use the IBM® Tape Diagnostic Tool (ITDT) to verify
the communication between library and host. See IBM Tape Diagnostic tool (ITDT).
Enter your user name and password on the Library Configuration Forms.
Note: Library firmware and tape drive firmware are verified and released together. When the latest firmware is updated, verify that all installed components such as the
tape drive and library are at the latest levels noted on the Support website. Mixing different levels of library and tape drive firmware is not supported and might cause
unpredictable results.
IBM® suggests that you update library and drive firmware when new levels become available. For instructions on updating library and drive firmware, see Update Library
Firmware.
Administrator - This role provides access to the administrator functions on the Management GUI. There is a default administrator password adm001 for the first
login. The administrator password can be changed on the Local Users page.
Monitor - This role allows access to library status information and does not allow access to configuration, maintenance, or operation features. Setting a monitor
password restricts access to status information to only those users who know the monitor password. Passwords for the Monitor role can be set or changed by the
administrator.
Superuser - This role has same access rights as the Administrator role, except the ability to access the Local Users and Remote Authentication (LDAP
Authentication and Kerberos Authentication) pages. In addition, it is possible to do cartridge moves and open magazines and I/O Stations. Passwords for the
Superuser role can be set or changed by the administrator.
Service - This role provides access to the service functions on the Management GUI. Passwords for the Service role can be set or changed by the administrator.
Notes:
Monitor, Superuser, and Service user IDs must be enabled by the library administrator. These accounts are disabled by default.
For a complete description of the menu items available to each user role, see Management GUI functions and roles.
When possible, use the Management GUI as the primary library interface. The web interface provides access to more features, includes online help, and is intuitive to use.
Before the Management GUI can be used, you need to log in and configure the library network settings with the Operator Panel. This action can be done during Initial
Setup. See The Initial Setup process.
Note: Only one person (on Operator Panel or Management GUI) can be logged in to the library at a time. If another person is already logged in when you try to log in, a
dialog box appears asking if you want to log off the other user.
Navigation Dock
Table 2. Navigation Dock
Navigation Dock Icons Element Extra menus
Library Dashboard
Modules and Magazines
Logical Libraries
Events
Settings Library
Network
Notifications
Security
Status icons
The yellow exclamation point Warning icon indicates that user attention is necessary, but that the device can still finish most operations.
The red X Error icon indicates that user intervention is needed and that the device can’t finish some operations.
The Operator Panel has a Power button, an LCD display, six navigation buttons, and five LEDs. To use the Operator Panel, you must use the six navigation buttons
(up/down, left/right, Enter, Back). The Operator Panel is not a touchscreen. See Front panel for the location of the navigation buttons.
Left Pane - Displays the library status (firmware revision, number of modules, number of slots, number of drives, number of errors, number of warnings.
Center Pane - Provides access to operate, configure, and log out of the library and to view more status information (Operation, Configuration, Maintenance, Status).
Bottom Pane - Displays more status information (library status, time/date, IPv4, or IPv6 address). The status pane displays one status information for 10 seconds
and then switches to the next status item.
Status icons
Figure 2. Front panel LEDs
Default settings
The library is set to default settings when first purchased. Many of these settings can be customized.
Methods of cleaning drives
Automatic cleaning of tape drives is disabled by default in the library. However, automatic cleaning of tape drives is recommended for this library. It is also possible
to initiate manual or host cleaning methods.
Accessing cartridges
Each magazine has a button that provides an easy way to open a magazine.
Configuring Library Managed Encryption
Library-Managed Encryption (LME) is a built-in feature that is enabled by using a purchased license.
Default settings
Edit online
The library is set to default settings when first purchased. Many of these settings can be customized.
The head of every tape drive in the tape library must be kept clean to prevent errors that are caused by contamination. To help you keep the drives clean, IBM provides a
cleaning cartridge with the library. The library uses the cleaning cartridge to clean the drive with whatever cleaning method that you choose. In all methods, cleaning is
done after the data cartridge is unloaded from the drive and before the next load.
If you put the cleaning cartridge into a storage slot that is assigned to a logical library, it is visible to any hosts that are associated with that logical library. If you don't want
the cleaning cartridge visible to any hosts, put it into a storage slot that is not assigned to any logical libraries.
It is the operator’s responsibility to monitor cleaning cartridge usage and replace cleaning cartridges as necessary. This tape library provides multiple ways to monitor and
manage cleaning cartridges. If SNMP traps are enabled, a trap is generated when a cleaning cartridge expires. It is also possible to use the Management GUI to monitor
the cleaning cycles that remain on a cleaning cartridge.
Automatic cleaning
Automatic cleaning enables the library to automatically respond to any tape drive's request for cleaning and to begin the cleaning process. The cleaning process is
transparent to any host application that uses the library.
Select Auto Clean to enable the auto cleaning feature. When enabled, the library automatically initiates a cleaning operation when media is unloaded from a drive
that requires cleaning instead of creating a warning event when a drive requires cleaning. For reliable operation, enable Auto Clean for each logical library and
ensure that the library has a valid cleaning cartridge.
It is preferred to put the cleaning cartridge into a storage slot that is not assigned to a logical library. If you put the cleaning cartridge into a storage slot that is
assigned to a logical library, it is visible to any hosts that are associated with that logical library. If you don't want the cleaning cartridge to be visible to any hosts,
put it into a storage slot that is not assigned to any logical libraries.
When a cleaning operation is initiated, the library first attempts to use an unexpired cleaning cartridge from the same logical library as the tape drive. If the logical
library does not contain an unexpired cleaning cartridge, the library attempts to use an unexpired cleaning cartridge from a storage slot that is not assigned to a
logical library. The library does not use a cleaning cartridge from a different logical library. When auto cleaning is enabled, ensure that each logical library has an
unexpired cleaning cartridge. Or, place at least one unexpired cleaning cartridge into a storage slot that is not assigned to a logical library.
After the initial configuration, Auto Clean can be turned on or off by accessing the Logical Library Wizard Expert Mode.
1. Go to Library > Logical Libraries > Actions > Manage Logical Library (Expert Mode).
2. Select the logical library, then click Edit.
3. Click Next to go to the General Settings screen.
4. Check or clear Auto Clean, then click Next on the subsequent screens.
5. If a change was made, click Finish and the Logical Libraries are reconfigured. If no changes were made, click Cancel.
Note: IBM recommends enabling the Auto Clean function on the library. With the Auto Clean function enabled, drive cleaning occurs automatically. The only time
Auto Cleaning must be disabled is when your backup application requires that it has control.
Manual cleaning
Manual cleaning requires that you select a menu option from the Management GUI to clean one or more of the tape drives. Manual cleaning is always supported.
Host cleaning
Host cleaning enables the backup application to define and control the cleaning process. Automatic and manual cleaning use the CLNxxx VOLSER. It is mandatory
to put the cleaning cartridge into a storage slot that is assigned to a logical library. The host needs to "recognize" that the cleaning cartridge is available for use.
Accessing cartridges
Edit online
Each magazine has a button that provides an easy way to open a magazine.
Each module can be configured to have a portion of the right magazine that is designated as an I/O station or this option can be disabled.
To open the I/O station, press the magazine button for less than 3 seconds.
To open the entire magazine, press the magazine button for more than 3 seconds.
Notes:
The LED also provides an indicator of the current state of that magazine.
The LME feature can be ordered from the factory, or you can order it as a field upgrade. To order a feature, contact your IBM® Sales Representative or Business Partner.
See Optional Features.
Access the wizard from the Actions menu with the Manage Encryption option.
Notes: Before you run the Encryption wizard.
Confirm that the Library-Managed Encryption license is activated on the Settings > Library > Licensed Features page.
Verify that the server is available on the network and is configured for use with this library. For information on configuring servers for use with the library, see the
server documentation.
Note: If you plan to use the IBM Security Key Lifecycle Manager (SKLM), go to Related publications for information on setup and configuration.
If Library Encryption settings are cleared and reconfigured, you're required to accept the new certificate on the server when the Library Self-Signed Certificate is
used.
When the wizard finishes, the Library Managed Encryption (KMIP) encryption mode is selectable in the Logical Library Wizard (Expert Mode) on the Library > Logical
Libraries page.
The test consists of two parts. The first part, the drive test, verifies whether the communication between library and drive is working properly. This test is run only on the
drives that are configured to library-managed encryption (LME).
The second part verifies the communication between the library and the encryption key servers. If the secondary ethernet port is enabled and configured, the tests are run
on both ports separately.
Ping
This test checks if the key server can be reached. If ICMP requests are blocked on the server side, this test fails as well. Therefore, the following tests are run
regardless the result of the ping test.
SSL/TLS
This test tries to establish a SSL/TLS connection with the key server. If this test fails, the following tests are skipped because they would also fail. This test is
skipped if SSL/TLS is not enabled.
This test is run only in combination with a KMIP encryption server since SKLM currently does not support login. If this test fails, the following Key Retrieval test is
skipped because it would also fail.
Key Retrieval
This test requests a key from the encryption server. For SKLM servers, a key from the key pool is requested. On other servers, the library acquires a specific
diagnostic key.
Troubleshooting
Edit online
Use the information in this section to troubleshoot any issues with your library setup and configuration.
Attention: This library is designed to operate when installed in a rack with the rack rail kit or on a tabletop. Operating the library without installing it correctly in the rails
might cause errors. Placing any weight on top of the library might also cause errors. Expanded library configurations on tabletops are not supported.
It completes numerous self-tests to monitor the library's temperature, voltage and currents, and standard library operations. These tests monitor the library when the
library is powered ON, and during normal operation when the library is idle.
If the test detects a problem, the library generates a message that identifies which component is likely causing the problem. The library's Error LED and Attention LED
might turn ON to indicate an abnormal state. If the problem is not severe, the Attention LED turns ON and the library continues to operate normally. If the problem is not
recoverable, the Error LED turns on and an error message is displayed on the Operator Panel.
When the library generates an attention event or an error event, support staff can be notified immediately by setting up email event notification or SNMP trap notification.
The type of event that generates email notification or SNMP trap notification can be selected to limit the number of events to a specific priority level.
Customers can frequently resolve a simple problem themselves with the information that is available in Troubleshooting guide. If you do not find the error listed in
Troubleshooting guide, refer to Pre-call checklist.
The library base module has fault LEDs on the front panel. Many of the library components also have fault LEDs. The front display and the Management GUI both provide
fault indicators.
The library also produces warning and error event codes. Error events are more serious than warning events and have greater impact on library function. The event codes
help explain the fault, isolate the components involved, and provide information on how to resolve the issue.
Fault indicators can be found in the following places in the Management GUI:
1. The lower-right status pod on the library dashboard has a fault icon.
A red "X" (error) or a Yellow Triangle (warning) will display if there is a current fault. A numeral will also display to indicate the number of current faults. Click on the
error or warning icon to see the issues, get the component number at fault, and resolve the problem. If there are no faults, no warning or error icon will be
displayed.
2. The graphic display of the library on the right half of the GUI library dashboard will display a warning or error icon on a component that has an issue.
If a module shows a fault on the front, Click the arrow on the library graphic to see a view of the library components in the rear panel and find out which one has the
fault.
Notice that the second drive from the bottom is highlighted in yellow and if the cursor is placed over this drive, a pop-up appears to describe the issue.
3. Error and Warning Events are listed in the library section of the GUI (> Library > Events)
4. Errors and Warnings can also be viewed in the library logs which can be exported using the action menu in the GUI library dashboard
5. Errors and Warnings are found other places in the various GUI Component menus. See the User's Guide and Library Help pages for more details.
When working directly with the library, the front panel LEDs are the first place to notice library faults
When the library generates an attention event or an error event, support staff can be notified immediately by setting up email event notification or SNMP trap notification.
The type of event that generates email notification or SNMP trap notification can be selected to limit the number of events to a specific priority level.
Modules
Slots (storage and I/O)
Drives
Library Controller cards and power supplies are not numbered separately. They are identified by the module in which they reside.
See below for an example of element numbering for a 3 module 21U library. Element ID’s are handled the same for a 48U Library.
Appendix XXXX gives a more detailed description of library numbering systems with more examples.
Note: The Library Front Panel UID and the base module LCC UID are linked. They turn on and off together.
The Front Panel UID helps a user find the library in the front of a rack. The UID’s on the controllers and Drives in the rear of the library help identify a component within a
library. When a component experiences an error, a user with superuser, service or administer privileges can turn on the UID for that component to help physically locate
the component in a complex assortment of IT equipment. UID menus are in the actions button at the top of the library dashboard. See the help pages for instructions on
turning on and off the Unit Identifier LEDs.
The faulty part may be identified by a graphical image or by its Component ID. Warning and error events in the Management GUI will have a troubleshooting button at the
bottom of the screen which provides a solution suggestion to resolve the issue. Warning and error events in the library logs will have a section to describe the suggested
solution. See examples below.
See Image below of Component Identification and troubleshooting help in a Management GUI Warning Event.
See Image below of Component Identification and Solution Suggestion in the library logs.
Note: Many Library Faults will produce an event code, but there are also many that will not. The Troubleshooting Guide below will help resolve issues for various types of
problems, whether they have an event code or not.
1. Management GUI: Activate the UID LEDs from the Library > Actions > Turn Identifier Light On or Off screen. This action illuminates the blue LED on the front and
rear of the Base Module to identify the library that contains the failed module or component.
2. Identify the module within the library that contains the failed component.
a. In the upper left of the Home screen, locate the module that indicates an error.
b. Click or tap the module for information on the failed component.
1. Understanding library fault indicators
c. When the Library has a fault, there are messages and indicators that will alert the user to the problem. The library base module has fault LEDs on the front
panel. Many of the library components also have fault LEDs. The front display and the Management GUI both provide fault indicators. The library also
produces warning and error event codes. Error events are more serious than warning events and have greater impact on library function. The event codes
help explain the fault, isolate the components involved, and provide information on how to resolve the issue. Fault indicators can be found in the following
places in the Management GUI: a) The lower right status pod on the library dashboard has a fault icon. A red "X" (error) or a Yellow Triangle (warning) will
display if there is a current fault. A numeral will also display to indicate the number of current faults. Click on the error or warning icon to see the issues, get
the component number at fault, and resolve the problem. If there are no faults, no warning or error icon will be displayed.
Fault indicators can be found in the following places in the Management GUI:
a) The lower right status pod on the library dashboard has a fault icon. A red "X" (error) or a Yellow Triangle (warning) will display if there is a current fault. A numeral will
also display to indicate the number of current faults. Click on the error or warning icon to see the issues, get the component number at fault, and resolve the problem. If
there are no faults, no warning or error icon will be displayed.
b) The graphic display of the library on the right half of the GUI library dashboard will display a warning or error icon on a component that has an issue.
Section Title1
First paragraph for the section
Section Title2
First paragraph for the second section
On the Management GUI, go to Library > Actions > Tests and choose the library test that you want to run.
Library Verify
Demo Mode
Drive Test
Slot to Slot Exerciser
On the Operator Panel, go to Maintenance > Library Tests to run tests from the Operator Panel.
Demo Mode
Drive Diagnostics
Troubleshooting Guide
Edit online
Refer to this table of symptoms or errors that might occur with the tape library and the installed tape drives.
Single Character Display (SCD) is 1. Review tickets on the Check Event Ticket Log on Management GUI.
shown on drive. 2. Use SCD. See Drive Single Character Display.
The Attention LED is lit but the The library was unable to complete the requested operation with the selected tape cartridge.
Cleaning LED isn’t lit after a
cartridge load. Use cartridges that are compatible with the drive type.
Use the correct type of cartridges for the operation. For example, use a cleaning cartridge for cleaning.
Make sure that you’re using a Universal cleaning cartridge.
The Cleaning LED is lit after a The cleaning cartridge is expired. (A cleaning cartridge expires after 50 cleaning cycles).
cleaning cartridge was used.
Replace the cleaning cartridge.
A particular cartridge sets off the Retry the operation with a different cartridge.
Attention LED and possibly the
Cleaning LED. If the Attention LED is cleared, and then immediately redisplays each time that a particular cartridge is reloaded, that cartridge
must be suspected as defective.
Export the cartridge and load a known good cartridge. In some cases, a cartridge can be worn out, the memory is defective,
or was formatted as a Firmware Upgrade cartridge.
Any cartridge that is suspected of being defective or contaminated must NOT be reused in any drive.
If the bad cartridge is a cleaning cartridge, it might be expired.
SNMP Monitoring system receives Check Event Ticket Log on Management GUI.
trap.
Event is received by email Check Event Ticket Log on Management GUI.
notification.
Cartridge Movement Problems
Follow these instructions for removing tape from the tape drive:
1. Check that the leader pin is attached and properly seated by opening the cartridge door and observing the pin's placement.
See Repositioning a leader pin.
2. Inspect the cartridge case, the cartridge door, and the write-protect switch for damage.
3. Inspect the rear of the cartridge (the part that you load first into the tape load compartment) and ensure that there are no
gaps in the seam of the cartridge case. See 1 in Figure 1 and 4 in Figure 2. If there are gaps, the leader pin might be
dislodged. Go to Repositioning or reattaching a leader pin.
4. Try loading or unloading another tape cartridge.
If it fails, contact your service representative for more problem determination.
If it is successful, discard the cartridge that originally failed.
Notes:
If a damaged or mishandled cartridge is the problem, see Handling the cartridges for instructions about handling the media.
It is possible that your other cartridges might also be damaged.
If your cartridge does not eject properly, contact your service representative.
Tape is stuck in drive. Try the following steps, in this order, to remove the stuck tape.
Note: The tape drive must rewind the tape before it’s ejected. This procedure can take up to ten minutes or more, depending on
how much tape must be rewound. When the tape is rewound, the eject cycle takes fewer than 16 seconds.
The Ready light flashes while the tape rewinds. Wait for the tape to finish rewinding before another operation is attempted.
Important: Inspect the tape cartridge that was stuck. Damage or misplaced labels on the cartridge might cause the load/unload
failure. Discard any tape cartridge that is found to have issues.
Cartridge can’t be removed from 1. Unlock the magazine and extend it to access the storage slot.
storage slot. 2. Grasp the cartridge and remove it from the storage slot. Some tapes need to be inserted and removed several times to
condition them for free movement in and out of the magazine.
3. Check the bar code label and verify that it’s secure to the cartridge.
4. Check the cartridge for damage.
Can’t load the cleaning cartridge. Make sure that you’re using an LTO cleaning cartridge.
Make sure that the cleaning cartridge isn’t expired. A cleaning cartridge expires after 50 cleaning cycles.
User account locked. From the Configuration > User Accounts > Access Recovery page, you can receive a temporary administrator password for login to
the Management GUI that is valid for two hours.
Tape Drive or Media Problems
A cartridge that is recently Media that is moved from one environment to another can cause issues until it acclimates to the new conditions. A cartridge must
imported from a different be acclimated for at least 24 hours before it’s used, particularly if it was stored at a substantially different temperature or level of
environment is causing issues. humidity than the device.
The library displays incorrect bar Verify that the label is properly applied.
codes. Verify that the label isn’t soiled.
Cleaning or data cartridge Check the event log to see which cartridge is incompatible.
incompatible with drive. Make sure that you’re using data and cleaning cartridges that are compatible with the drive and model of your device.
Make sure that you’re using the correct cartridge type for the operation. The device automatically unloads incompatible
cartridges, and the Attention LED flashes.
Export the media.
Connection Problems
Fibre Channel connection Check Drive Status screen to check the link connection for your tape drive.
problems
For each available port, run a drive Wrap Test.
1. Unplug the Fibre Channel cable, then plug in the Fibre Channel wrap tool.
2. Go to Library > Actions > Tests > Drive test and run the Fibre Channel wrap test.
3. If the drive test fails, follow the Pre-call checklist.
4. If the FC Wrap Test passes, continue with the next steps.
Check that the Fibre Channel speed is set to either match the HBA/switch speed or set to Automatic
Verify that cables aren’t damaged.
Verify that cables are securely connected on both ends.
Verify Host Connectivity.
Use ITDT to debug the problem.
SAS connection problems Check Drive Status screen to check the connection for your tape drive.
Can’t connect to the Management Verify that the Ethernet cable is connected to the Base Module’s controller card and to the LAN.
GUI. Verify that the link LED on the RJ45 (LAN) connector is lit when the device is turned on. If the LED isn’t lit, the device isn’t
communicating with the LAN. See your network administrator for help.
Verify that the device is configured with a valid static network address or DHCP is enabled so the device can obtain a network
address. If DHCP is used, write down the device's network address from the Operator Panel login screen. If a valid DHCP
address isn’t available, the library isn’t communicating with the DHCP server. See your network administrator for help.
Enter the library’s IP address into the address bar of a web browser that is connected to the same LAN as the device. If the
Management GUI page doesn’t display, ping the device's IP address. If the ping fails, check that no firewalls or other
obstructions to network traffic exist between the computer with the web browser and the device. See your network
administrator for help.
Can’t connect to Key Management Run the Encryption Connectivity Check or Key Path Diagnostics and review the results message. See Locating Management
Server for LME. functions.
Validate that the server configuration properties file includes support for TLS 1.2. See the encryption server documentation.
If SKLM v2.7 or higher is used and you’re using the Library Self-Signed Certificate. For one time only, you might need to reset
your encryption settings to clear out old versions of the self-signed certificate, reconfigure encryption, then accept the new
self-signed certificate on the encryption server. See Configuring Library Managed Encryption.
Check that your certificate algorithm is supported by your version of the server.
The procedure for SCSI timeouts varies depending on whether timeout is consistent or intermittent, and on your drive configuration.
Follow these steps to troubleshoot a SCSI timeout:
Pre-call checklist
Edit online
If you have questions or problems with the library, complete these steps before a call to IBM technical support is placed.
1. Verify that you exhausted all troubleshooting options. See Troubleshooting Guide.
2. Collect library and drive logs. See Locating Management functions.
3. Verify that the library and drive firmware is at the most recent level. See Locating Management functions.
4. Verify that your device drivers are at the most recent level.
For the current release of IBM® device drivers, see Supported Device Drivers.
For the current release of device drivers by independent software vendors (ISVs), go to the appropriate third-party website.
5. Verify whether your hardware and software configuration is supported. See Host requirements.
6. Check the hardware and connections:
Ensure that the host interface cable connector does not contain bent or recessed pins.
Ensure that all retention screws for the host interface cable and terminator are securely tightened.
Verify the host connection. See Verifying the host connection.
If you still have a problem after these steps are completed, see Contacting IBM technical support.
Important: This tape library is a customer installed unit. The customer is responsible for the setup and maintenance of the tape library. The customer is charged for
service if a service contract is not in place.
Complete the steps in Pre-call checklist before a call is placed to IBM® technical support.
Before IBM technical support is called, the customer is responsible for following published LTO diagnostic procedures, including any needed update to the current
level of firmware.
The IBM Support Center assists with problem determination and can initiate shipment of a replacement part, if needed, to the customer’s location. Transportation
costs, both ways, are paid by IBM. The replacement part becomes the property of the customer in exchange for the failed part, which becomes the property of IBM.
The customer is responsible for packing the failed part into the shipping carton that contained the replacement part. Failure to return the failed part to IBM within
30 days results in a bill sent to the customer for the new list price. The customer is responsible for installing and setting up all replacement parts.
Failure to use the carton in which the replacement part was received, or failure to properly pack the returned part, can result in charges that are incurred for
damage to the failed part during shipment.
Before you call technical support, follow these steps that help you take full advantage of your call.
1. Be prepared to provide
Machine type and Model name
Serial number of the library
Hardware configuration, including firmware versions, drive types, modules
Type of host, operating system version, device driver information, software application, and version, clock speed, RAM, network type, network version
A brief description of the problem, including Event Ticket information. See How the library reports problems.
2. Review all documentation carefully. (Experience demonstrates that most questions are answered in your documentation).
3. Be prepared to explain whether the software or hardware worked properly anytime in the past. Have you changed anything recently?
4. Pinpoint the exact location of your problem, if possible. Note the steps that led to the problem. Can you duplicate the problem or is it a one-time occurrence?
5. Note any host error messages displayed. Write down the exact error message.
6. If possible, call while at your computer, with the library installed and turned on.
Diagnostic information
Edit online
This section provides various diagnostic tools and information.
Runs quick or extended diagnostic tests on tape drives. If the library is online to the server/host where the tool resides, ITDT communicates with the drive through
the library to load and unload a test cartridge, exercising some library functions.
Retrieves firmware memory dumps from tape drives and libraries.
Completes a firmware update on tape drives or libraries. See note about library firmware update.
Tests the performance of the environment by completely writing a cartridge and measuring performance.
Retrieves and displays cartridge information.
Verifies the encryption environment.
Does not require special device drivers.
Is available for most major platforms.
Scans the host interface and finds and displays for selection all IBM LTO devices. The tool does not display non-IBM devices.
The IBM Tape Diagnostic tool (ITDT) is available as a command line utility and a graphical user interface (GUI) version.
The IBM Tape Diagnostic Tool (ITDT) is started by entering the executable file from the directory where the tool is located. The Help feature gives a brief
explanation of each function and shows the syntax.
Note: Be sure that you have the most current version of ITDT if you are updating firmware on a recent drive type. Before ITDT is used, verify that your library host operating
system is at the current released level. This action ensures optimum read/write operations for diagnostic tests.
IBM maintains the current levels of ITDT on the web. Go to http://www.ibm.com/support/fixcentral and follow these steps to access this material.
1. From the Fix Central web page, choose the Select Product tab, select System Storage from the Product Group list.
2. Select Tape Systems from the System Storage list.
3. Select Tape drivers and software from the Tape systems list.
4. Select IBM Tape Diagnostic Tool ITDT from the Tape drivers and software list.
5. Select the appropriate operating system from the Platform list and click Continue.
6. Select the appropriate version from the list.
Additional information about the IBM Tape Diagnostic Tool (ITDT) is included in the IBM® Tape Device Drivers Installation and User's Guide, and can be found on the web at
https://www.ibm.com/docs/en/ts4300-tape-library?topic=guide-tape-diagnostic-tool-itdt.
Event codes
Edit online
Events are used in the library Ticket and Event system to store all types of events with a unique event code and event description.
Events are sent by the library to different recipients like SNMP targets or email notification. These events have a common structure and unique codes for every type of
event.
The event log with the library also includes a date and time stamp for each event. Press the associated time stamp to see the event code and a description of the event.
The date and time format can be changed in the Date/Time Format section in the Management GUI.
mm.dd.yyyy
dd.mm.yyyy
yyyy.mm.dd
Where
Complete the steps in Resolving an error code before you complete the User Action that is listed in the various Event Codes.
2004 The Library Startup process failed. Verify that magazines are closed, cartridges are fully seated, and that no accessor
obstructions exist.
Verify that all modules are powered and any expansion modules are cabled correctly with the
interconnect cable.
Verify that a top and bottom cover is properly installed on the library.
Verify that the module alignment locks (at rear of module) are in the proper position.
If the accessor moves front to back, but not vertically, the accessor shipping lock might be
positioned incorrectly and must be moved to either the fully locked or fully unlocked position.
If the error persists, review library events for information or restart the library.
2005 Cable to accessor is broken. Ensure that the spooling cable is fully seated in the base module and connected correctly to the
accessor assembly.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After any obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2010 Library test failed due to spooling mechanism Ensure that the spooling mechanism is fully seated in the base module and installed correctly to the
defect. accessor assembly.
2012 Multiple bottom covers detected. Remove all bottom covers except for the bottom module in the library.
2013 Multiple top covers detected. Remove all top covers except for the top module in the library.
2014 Bottom cover is missing. Install the bottom cover on the bottom module of the library, also check the module interconnect
cabling and module power cabling. If the base module can’t detect both a top and bottom cover, the
accessor doesn’t move.
2015 Top cover is missing. Install the top cover on the top module of the library. Also, check the module interconnect cabling
and module power cabling. If the base module can’t detect both a top and bottom cover, the
accessor doesn’t move.
2016 Unit to unit not locked. Ensure that the alignment mechanism is engaged in every module that is above another module in
the library.
2017 Communication errors during stack discover Ensure that all modules are powered and have the interconnect cable properly attached.
process. Ensure that the module alignment locks (at the rear of module) are in the correct positions.
2021 Database access error. Restore a configuration backup and run a power cycle.
2022 Drive was hot-removed. Reinsert the removed drive at the same position as it was removed.
2023 Internal Software error. Check for a new system Software version for upgrade.
2024 Unhandled Exception. Check for a new system Software version for upgrade.
2027 Move failed pulling cartridge from slot. Check for labels or cartridge misalignments that can prevent the cartridge from coming out of
the slot or drive.
For proper operation, the accessor must be able to reach the bottom of the library. Verify that
no obstructions exist at the bottom of the library or on the bottom cover of the library in the
path of the accessor.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2028 Move failed inserting cartridge to slot. Check for labels or cartridge misalignments that can prevent the cartridge from coming out of
the slot or drive.
For proper operation, the accessor must be able to reach the bottom of the library. Verify that
no obstructions exist at the bottom of the library or on the bottom cover of the library in the
path of the accessor.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2029 Initialization failure due to accessor front to 1. Check for obstructions in the pathway of the accessor such as a cartridge that is sticking out.
back positioning error. 2. Verify the module alignment and frame alignment. Check whether the accessor is stuck in
lock mechanism.
3. Move the accessor apart from lock mechanism and enable lock mechanism correctly.
2032 Initialization failure due to accessor rotation Check for obstructions in the vertical pathway of the accessor, such as a cartridge that is sitting in
positioning error. the shuttle of the accessor or any other impedance to accessor movement.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2034 Cable to spooling mechanism is broken during Ensure that the spooling mechanism is fully seated in the base module and connected correctly to
initialization. the accessor.
2035 Initialization failure due to accessor gripper Check for obstructions in the vertical pathway of the accessor, such as a cartridge that is sitting in
positioning error. the shuttle of the accessor or any other impedance to accessor movement.
2036 Unintended process termination. Restart or power cycle system.
2037 Accessor firmware version upgrade failed. Restart or power cycle system.
2038 Lost connection to Module. Ensure that all modules are powered and have the interconnect cable properly attached.
Restart or power cycle the system.
2039 Cartridge was left in accessor gripper, unable to Enable I/O station and ensure that empty slots are available in the I/O station.
be moved to any open location. Power-cycle the library.
If still failing, open covers and remove the cartridge manually from gripper.
2040 Library Verify test failed with critical error. An unidentified failure occurred. Contact your IBM service representative.
2041 Library Verify test failed because of unit lock Ensure that the alignment mechanism is engaged in every module that is above another module in
failed. the library.
2042 Library Verify test failed because top cover is Install the top cover on the top module of the library.
missing. Check the module interconnect cabling and module power cabling.
If the base module can’t detect both a top and bottom cover, the accessor doesn’t move.
2043 Library Verify test failed because bottom cover Install the bottom cover on the bottom module of the library.
is missing. Check the module interconnect cabling and module power cabling.
If the base module can’t detect both a top and bottom cover, the accessor doesn’t move.
2045 Library Verify test failed because move media Check for obstructions in the pathway of the accessor such as a cartridge that is sticking out.
test failed. Verify module alignment and frame alignment.
Check if accessor is stuck in lock mechanism, move the accessor apart from lock mechanism
and enable lock mechanism correctly.
2046 Library Verify test failed because drive Remove and reseat the drive canister to ensure that the drive is fully seated.
communication test failed. If the issue persists, reset the drive.
Use the library Management GUI to pull a drive support ticket and check the device analysis
section for help (HPE Library and Tape Tools must be installed to view support ticket).
2047 Library Verify test failed because the bar code Verify that no obstruction is in front of the bar code scanning module on the cartridge table on
scanning test failed. the accessor.
If the error persists replace the accessor.
For proper operation, the accessor must be able to reach the bottom of the library. Verify that
no obstructions are at the bottom of the library or on the bottom cover of the library in the
path of the accessor.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2052 An open magazine was detected in one or more Ensure that all magazines are inserted and properly locked.
modules. Don’t open magazines by using the emergency release while the library is operating and the
accessor is moving.
2053 An open top cover was detected. Ensure that the top cover is inserted and properly locked.
Don’t open top cover by using the emergency release while the library is operating and the
accessor is moving.
2054 An open bottom cover was detected. Ensure that the bottom cover is inserted and properly locked.
Don’t open bottom cover by using the emergency release while the library is operating and
the accessor is moving.
2056 Initialization failure due to picker push pull Check for obstructions in the horizontal pathway of the accessor such as a cartridge that is sticking
positioning error. out or a cable that is impeding progress.
2057 Startup failure due to shipping lock in incorrect 1. Get access to the picker assembly and manually move the shipping lock lever to either locked
position. or unlocked position.
2. After the shipping lock is moved to the one of the correct positions, restart the library.
2061 Move failed pulling cartridge from drive. Check for labels or cartridge misalignments that would prevent the cartridge from coming out of the
drive.
2062 Move failed inserting cartridge to drive. Check for labels or cartridge misalignments that would prevent the cartridge from moving into the
drive.
2063 Move failed positioning picker in front of drive. Check for obstructions in the vertical or horizontal pathway of the accessor. Examples might include
a cartridge that isn’t seated completely in a slot, an accessor isn’t sitting horizontally level, or a
problem with the accessor spooling cable that is impeding progress.
2064 Library test failed with critical error. An unidentified failure occurred. Contact your IBM service representative.
2066 Library startup process failed during inventory Verify that magazines are closed, cartridges are fully seated, and that no accessor
scan. obstructions exist.
Verify that all modules are powered and any expansion modules are cabled correctly with the
interconnect cable.
Verify that a top and bottom cover is properly installed on the library.
Verify that the module alignment locks (at rear of module) are in the proper position.
If the accessor moves front to back, but not vertically, the accessor shipping lock might be
positioned incorrectly and must be moved to either the fully locked or fully unlocked position.
If the error persists, review library events for information or restart the library.
2067 For safety reason, the accessor movement was Ensure that all magazines, top or bottom covers and unit locks are inserted and properly
halted in place. locked.
Don’t open magazines by using the emergency release or remove covers or unit locks while
the library is operating and the accessor is moving.
Ensure that all modules are powered and have the interconnect cable properly attached.
2068 An emergency stop condition was detected in Ensure that all magazines, top or bottom covers and unit locks are inserted and properly
one or more modules and prevented the locked.
accessor from initialization. Insert all open magazines and install all necessary covers and unit locks before the library is
powered on.
Ensure that all modules are powered and have the interconnect cable properly attached.
2069 Initialization failure due to bar code reader Restart the library and if the error persists, replace the accessor assembly.
error.
2070 Inventory scan failed because of Elevator axis Check for obstructions in the vertical pathway of the accessor such as a cartridge that is
problem. sticking out.
Verify module alignment and frame alignment.
For proper operation, the accessor must be able to reach the bottom of the library. Verify that
no obstructions are at the bottom of the library or on the bottom cover of the library in the
path of the accessor.
1. To check for obstructions at the bottom of the library, first power off the library by pressing
Power for 5 seconds and select the Default Park location.
2. When the library is powered off, remove the left magazine of the lowest library module, and
verify that the entire area of the bottom cover is free of any objects that might obstruct the
accessor's path.
3. After obstructions are cleared, replace the magazine, power the library on, and after the
library finishes initialization and inventory, verify that no further critical events were
generated.
2071 Cartridge on picker when trying to scan. Verify that no obstruction is in front of the bar code scanning module on the cartridge table
that is on the accessor.
If the error persists, replace the accessor.
2072 Bottom cover was detected at an incorrect Review the stack assembly and place the covers to the proper position.
position.
2073 Top cover was detected at an incorrect position. Review the stack assembly and place the covers to the proper position.
2074 The library startup failed due to a GPIO error. Restart or power cycle system.
2075 The library startup failed due to an error when Restart or power cycle system.
trying to open the accessor serial port.
2076 I2C bus signals invalid. Remove all drive canisters of the affected chassis and restart the library.
If the problem persists, replace the chassis. If not, add one drive after the other until the
problem comes back.
Replace the last drive that was added before it failed again.
2077 Failed to store Calibration Data to Chassis. Restart or power cycle system.
Note: This is a singular ticket and must be resolved manually.
2078 Incompatible Robotics Assembly without Replace Robotics Assembly with a compatible model with Encoder or upgrade Firmware to a version
Encoder detected that supports Encoder-less control.
2086 Communication failure to the Expansion Module This event is reported if read or write access to I2C port expanders on expansion controller is failing.
controller board I2C port expander component.
Restart the library to see if the error persists.
If the error persists, power off the library and reseat the expansion module controller.
If the error continues to persist, replace the expansion module controller.
2087 Error accessing the backplane flash memory. Restart the library and if the error persists, replace the chassis.
Before the chassis is replaced, ensure that you remove all of your tape cartridges.
If magazines need to be removed to get access to the tape cartridges, first power down the
device and then manually release each magazine. Only one magazine must be opened at a
time.
2089 Incompatible Robotics Assembly Detected An incompatible robotics assembly is detected. The robotics assembly was not powered on to avoid
damage to the library. Power off the library and replace the robotics assembly with a compatible
version.
2092 Locking the Robotics Assembly has failed during Power up the library. In case of robotics failure, error events are reported at power-up. Look for the
power off process proposed solution for these new errors. If no new errors are reported, the 2092 event can be
ignored.
2093 Communication to accessor controller couldn’t Restart the library and if the error persists, replace the accessor assembly.
be established.
2094 An emergency stop condition was detected in Ensure that all magazines, top or bottom covers and unit locks are inserted and properly
one or more modules and prevented the locked.
accessor from running the inventory scan. Insert all open magazines and install all necessary covers and unit locks before powering on
the library.
Ensure that all modules are powered and have the interconnect cable properly attached.
2095 Inventory scan failed because of accessor Check for obstructions in the horizontal pathway of the accessor such as a cartridge that is sticking
positioning problem. out or lying on the accessor table.
2096 Initializing a communication interface on the Restart the library, and if the error persists, replace the library controller.
library controller failed.
2097 Accessor reinitialization failed. Restart the library and if the error persists, replace the accessor assembly.
2100 Robotic move to requested position failed. Check for obstructions in the pathway of the accessor such as a cartridge that is sticking out.
Verify module alignment and frame alignment.
Check if the accessor is stuck in the lock mechanism. Move the accessor away from the lock
mechanism and enable the lock mechanism correctly.
2103 Incorrect stack assembly, too many expansion Ensure that no more than three expansion modules are mounted and connected below or above
modules below main library. main library.
2104 Incorrect stack assembly, too many expansion Ensure that no more than three expansion modules are mounted and connected below or above
modules above main library. main library.
2105 Accessor initialization failed due to horizontal Check for obstructions in the horizontal pathway of the accessor such as a cartridge sticking
positioning problem. out or lying on the accessor's table.
The accessor shipping lock might be positioned incorrectly and must be moved to either the
fully locked or fully unlocked position.
2106 An elevator block was detected and as a result Check for obstructions in the vertical pathway of the robot, such as a cartridge sticking out.
the system was taken offline. Also, verify alignment of the module and the frame.
Follow these steps to check for any obstructions at the bottom of the library or on the bottom
cover of the library:
1. Turn off the library by pressing the front power button for 5 seconds, and select Default
Park location.
2. Remove the left magazine of the lowest library module.
3. Remove any objects from the bottom cover that might obstruct the robot's path.
4. Replace the magazine.
5. Power on the library.
6. After the library finishes initialization and inventory, verify that no further critical
events were generated.
4008 Cleaning tape expired. Discard the cleaning cartridge and retry the cleaning operation with a new cleaning cartridge.
4009 Firmware upgrade of one or multiple The Base Module must be able to communicate with a powered on and connected expansion module to
expansion modules failed. complete the upgrade.
Reseat the expansion controller and check the interconnect cable and power connections.
Retry the firmware upgrade.
4010 Incompatible drive. Remove the incompatible drive. Install only drives that are supported by the library.
4012 Move Cartridge failed due to cartridge issue. View the event details to determine which cartridge was involved.
Verify surrounding events that might point to problems with this media in other move operations.
Remove the media from the library, and physically inspect the media to ensure that no physical
damage exists.
If the media appears to be undamaged, put the media back into the library and retry the move
operation. If the problem persists, retry the operation with a different cartridge in the same drive.
If the problem follows the media, remove the media from use.
If the problem follows the drive, use the library Management GUI to pull a drive support ticket
and check the device analysis section for help.
4014 Library test failed due to a Drive issue. Verify the test parameters, and retry the test.
If the test fails, check the library event log for specific events that are associated with this drive.
Use the Management GUI to pull a drive support ticket and check the device analysis section for
help.
4015 The Power system is degraded. Redundancy Ensure that all power supplies are installed properly (up to two per module), and that each power
is not available. supply is connected to a valid power source.
4016 Back up configuration data to base module Attempt to save the library configuration, power cycle the library, and retry the operation.
failed.
4017 Restore configuration data from Chassis Attempt to save the library configuration, power cycle the library, and retry the operation.
failed.
4019 Drive Firmware bundle upgrade failed. 1. Verify that the firmware file is correct for the drives.
2. Ensure that the drives are in a healthy state with no cartridge in the drive.
3. Retry the operation.
4020 Database was reset due to a problem that If the library was restored to default settings, restore a saved configuration by using a previously
prevented the library from powering up. saved config file.
If no config file exists, then proceed in configuring the library.
4021 Drive was hot-removed while in active status Tape drives must be disabled (powered-off) before they are removed from the Library. In case of hot
as data transfer device. removal, this event is created if the drive was no active LUN master. A similar event is defined with
higher severity (critical) if the drive was LUN master.
4022 Drive in wrong position. A full height drive was installed to a drive bay with even physical number. These positions can be used
only with half height drives because elements of the parting wall are covering the medium load area.
4025 Library test failed due to a cartridge error. Remove the cartridge and inspect it for damage. Retry operation with another cartridge.
4028 Library Test failed due to incompatible Check LTO generation for cartridge and drives. Remove cartridges that aren’t compatible to your tape
cartridge. drives.
4029 Library Test failed - Cartridge bar code Check if Media bar code label is matching LTO generation. Replace the label or remove incompatible
indicates incompatibility with drive. media from your system.
4030 Move cartridge operation failed due to Remove the cartridge and inspect it for damage. Retry operation with another cartridge.
cartridge error.
4041 Library Verify failed because the power Ensure that all power supplies are installed properly (two per module), and that each power supply is
supply redundancy test failed. connected to a valid power source.
4044 One of the Library tests failed because a Verify the source and destination elements and retry the move operation.
source element or destination element isn’t
accessible.
4060 Connection to the KMIP server failed. Verify the username and password and all needed SSL certificates that are needed for connecting
to the KMIP server.
Verify that the KMIP server is reachable within the network.
Verify the IP addresses and host names of the KMIP servers that are entered into the wizard.
If this error happens during the connectivity check, the additional information parameter includes
further error information that is received from the Cryptsoft KMIP library. It also includes the
information if the server wasn't able to ping.
4073 Medium source element empty. Check the source slot visually and rescan the inventory. Additionally, check for valid and readable bar
code label.
4074 Medium source element empty. Check the source slot visually and rescan the inventory. Additionally, check for valid and readable bar
code label.
4075 Cartridge lost while it was extracted from Check the source/destination element and ensure that no obstructions are in the pathway of the
slot/drive. accessor.
4077 Unlocking the right magazine failed. Check if any obstacle is preventing the robot from movement.
Restart the library and retry the operation.
If the error persists, replace the chassis.
If the magazine needs to be removed to get access to the tape cartridges, first power down the
device, and then release the magazine manually. Only one magazine can be open at a time.
4078 Unlocking the left magazine failed. Check if any obstacle is preventing the robot from movement.
Restart the library and retry the operation.
If the error persists, replace the chassis.
If the magazine needs to be removed to get access to the tape cartridges, first power down the
device, and then release the magazine manually. Only one magazine can be open at a time.
4079 Unlocking the I/O station failed. Check if any obstacle is preventing the robot from moving.
Reset the library and retry the operation.
If the error persists, replace the chassis.
If the I/O station needs to be removed to get access to the tape cartridges, first power down the
device, and then release the magazine manually. Only one magazine can be opened at a time.
4080 Library Verify test failed with warning. An unidentified failure occurred. Contact your IBM service representative.
4085 Drive command retries expired. Run a drive read/write test (Library > Actions > Tests > Drive test) with a known working
cartridge.
If the drive test is successful, check in the host for errors that are related with the retries.
If the drive test failed, replace the drive.
4086 Move operation failed. Ensure that the network the library is connected to is operating normally.
Ensure that the library is running the current firmware.
Restart the library.
4089 Auto calibration of one or more modules The library must be re-calibrated.
failed. Adjustment to calibration target Ensure that the library firmware is up-to-date.
failed. This event indicates that one or more of the gray calibration targets on the library magazines
couldn’t be used in calibration.
Inspect the calibration targets in each module and then repeat the auto-calibration routine with
the Management GUI.
4090 Auto calibration of one or more modules The library must be re-calibrated.
failed. Calibration target not found. Ensure that the library firmware is up-to-date.
This event indicates that one or more of the gray calibration targets on the library magazines
could not be used in calibration.
Inspect the calibration targets in each module and then repeat the auto-calibration routine with
the Management GUI.
4091 Auto calibration of one or more modules The library must be re-calibrated.
failed. Adjustment out of range. Ensure that the library firmware is up-to-date.
This event indicates that one or more of the gray calibration targets on the library magazines
could not be used in calibration.
Inspect the calibration targets in each module and then repeat the auto-calibration routine with
the Management GUI.
4093 Could not obtain an IP address from DHCP Check the network configuration settings and check if the DHCP server is reachable.
server. Use the network configuration menu or unplug the network cable and plug it in after a few
seconds to trigger an automatic reconfiguration of the network interface.
4095 Library test failed. Not enough valid Load the cartridges into the library.
cartridges available for testing.
4098 System time synchronization with SNTP Check for valid SNTP server address in Time configuration. If correct, ensure that the server is reachable
failed. from your network and not blocked by a firewall.
4099 An unexpected reset of accessor was Ensure that the spooling cable is fully seated in the base module and connected correctly to the
detected. accessor assembly. If the error recurs, replace the accessor assembly.
4113 Move from drive failed. Check for labels or cartridge misalignments that prevents the cartridge from coming out of the slot or
drive.
4117 Drive disabled because no power supply Remove all affected drives, insert, and power up at least one power supply to the failing module. Wait
available. 10 seconds and put the drives back into the module.
4119 Drive disabled because internal IP address Remove affected drive, wait 10 seconds, and put it back into the module.
unknown. Restart Library stack.
4120 No empty drive available for system test. Make sure that at least one empty drive and one compatible cartridge are available.
4121 No compatible media available for system Make sure that at least one empty drive and one compatible cartridge are in the drive.
test.
4122 No cartridge available for slot to slot Make sure that at least one cartridge and one empty slot are in the library.
exerciser test.
4123 No empty slot available for slot to slot Make sure that at least one cartridge and one empty slot are in the library.
exerciser test.
4124 Drive or media statistics couldn’t be Check for more warning tickets. Replace media if media-related tape alert flags reported.
retrieved when the tape was unloaded.
4126 Cartridge was found in inaccessible slot of Bottom slots from the lowermost unit are inaccessible to the accessor. Place the cartridge in an upper
lowermost unit. slot.
4127 Drive was restarted because of canister Verify that the drive is installed properly in its slot and thumb screws are tightened. If the error persists,
reset. replace the drive.
4128 The expansion module has detected an Ensure that the power supply has a power cord plugged in and is connected to a valid power source.
installed power supply but this power supply Although the power source is not available, this expansion module can still be used for tape storage.
does not provide power. Operation of tape drives is not possible.
4129 Move from drive failed. Check backup application how to allow media removal from drive. If unsuccessful, try the Force Drive
Media Eject option in the Operations menu.
4133 Protection Foam not removed from Base Power down the library.
Module Remove top cover and then remove the protection foam.
Install the top cover again and restart the library.
4135 Drive diagnostic failed. Use another diagnostic tape and run test once more. If still failing, download drive dumps and contact
service.
4136 The base module detected an installed Ensure that the power supply has a power cord plugged in and is connected to a valid power source.
power supply but this power supply doesn’t
provide power.
4137 Diagnostic Tape not removed. Open Magazine or I/O station to remove the diagnostic tape with the OP or Management GUI.
4138 USB over-current detected. The USB port Ensure that the USB device is correctly inserted and that it does not consume more current than
was disabled. specified in manual.
4139 Magazine or I/O Station operation failed. Check whether any obstacle is preventing the accessor from movement.
Restart the library and retry the operation. If the error persists, replace the accessor assembly.
If the magazine needs to be removed to get access to the tape cartridges, first power down the
device and then release the magazine manually. Only one magazine can be open at a time.
4140 Personality mismatch detected. Replace either chassis or library controller to ensure that all parts in the stack are matching the
personality of the main library controller.
4142 Medium destination element full. Ensure that your destination slot or drive is empty and try again.
4144 Unit to unit lock of lowermost module is Ensure that the alignment mechanism isn’t engaged in the lowermost module.
engaged.
4148 Download of one or multiple drive dumps Check status of selected drives and ensure that they are present and finally initialized before
failed downloading dumps.
4150 Sequential Mode move operation failed. Check event details for further information.
4151 Download of drive firmware image Check if the uploaded firmware image is matching your drive type and generation.
completed, but firmware revision did not Ensure that the image file isn’t corrupted.
change after restart. Download a new image from the drive vendor's website if you aren’t sure about file integrity.
4152 KMIP Connection refused. The selected port on the target machine is not open. The connection is refused. Check that the server
application is running on the target machine and the firewall is not blocking the selected port. Contact IT
Personnel to verify the port settings.
4153 KMIP Server does not trust the client Use a client certificate that is signed by a trusted certificate authority (CA) or manually select the
certificate. untrusted certificate on the server side and trust it (not available on all servers).
4154 KMIP Ping to server failed. The target machine could not be reached, so no network connection possible.
Check your IP settings (IP address, Gateway and Netmask) and verify it with your IT personnel.
Check that the Firewall settings on the target machine are correct.
4156 KMIP Handshake failure. The TLS connection could not be established because of Handshake errors during certificate exchange.
Check the certificates on server and client side for valid entries and that they are still valid and
not expired.
Verify that TLS1.2 is enabled on the server.
Check the client and server date/time for current time.
Ask your IT personnel for new and valid certificates.
4157 KMIP Certificate unknown. The server certificate is unknown because its root certificate is missing or not trusted. Run a new
certificate request with your server or certificate authority and import the resulting certificate chain.
4158 KMIP host name lookup failed. The host name on the network could not be found. It does not exist or is misspelled.
4159 KMIP certificate verify failed. The TLS server certificate could not be verified as a valid and trusted certificate.
4160 Connection to SKLM/GKLM server failed Retrieving of IPP encryption key failed because connection to SKLM/GKLM server could not be
established.
Check for availability of server and verify your server settings. Add a secondary fallback server if
possible.
4161 Internal encryption key handshake failed Retrieving IPP encryption key failed because of internal data transfer failure between drive and library.
Verify if the latest drive software is installed. If the failure reoccurs, check the library event log for
specific events associated with this drive.
4162 for z/OS encryption not licensed Disable SKLM/GKLM for z/OS encryption or install appropriate license for Library Managed Encryption.
4163 Drive sled discovery timeout Drive sled discovery timeout, status of Drive sleds not available in time.
Ensure that all modules are powered and have the interconnect cable properly attached.
If this event is seen on multiple modules or after ensuring all interconnect cables are properly
attached, ensure that the network that the base module is connected to is not experiencing
broadcast storms or other abnormal activity.
Reboot or power cycle the system to rediscover the modules.
4164 Inventory has been updated due to an If a move fails due to an unexpected empty or full slot, the slot is rescanned and the inventory is
unexpected empty or full slot. corrected.
4165 Bottom magazine slots in the lowermost unit The installed accessor does not support access to all 40 slots in the lowermost unit. The bottom slots in
are not accessible. the lowermost unit are not accessible, so only 32 slots are available.
Install an accessor that supports access to all 40 slots in the lowermost unit.
4166 Drive self-test diagnostic failed Reset Drive and run the test again. If still failing, download drive dumps and contact service.
4167 Drive primary port diagnostic failed Check whether the wrap test connector is correctly connected to the selected port.
Reset drive and run test again.
If the diagnostic still fails, download drive dumps and contact service.
4168 Drive encryption key path diagnostic failed. Check the SKLM server configuration and your network settings.
If the diagnostic still fails, download the library logs and contact service.
4173 Encryption Key Path diagnostics failed. Check the Key server configuration and your network settings.
If the diagnostic still fails, download the library logs and contact service.
4174 KMIP CA certificate failure. Check whether you provided the correct CA certificate or the CA certificate on the encryption server was
changed.
4175 Failed to create default logical library. Check that no errors occurred during the startup and that at least one drive is present in the library.
Informational events
Edit online
Table 1. Informational Events
Event Code Message Text and Description
9000 A tape alert flag was reported by a drive.
9001 A drive is present but currently disabled.
9002 The library was powered on.
9003 Move Cartridge command was run.
9004 Inventory scan was completed.
9005 The library was powered down from Front Panel.
9006 The network interface was turned on.
TapeAlert flags
Edit online
This section is intended to provide information to the reader about the tape drive by using TapeAlert technology.
All error code and diagnostic information can be accessed from the Management GUI of the library. The drive portion of the Management GUI contains drive error codes.
Therefore, it is not necessary to open the Library to access the buttons on the drive. See Locating Management functions for a complete description of the Management
GUI functions and displays.
TapeAlert is a standard that defines status conditions and problems that are experienced by devices such as tape drives, autoloaders, and libraries. The standard enables
a server to read TapeAlert messages (called flags) from a tape drive with the SCSI bus. The server reads the flags from Log Sense Page 0x2E. Refer to the IBM TS4300
Tape Library SCSI Reference for library and drive TapeAlert Flag information.
This library is compatible with TapeAlert technology, which provides error and diagnostic information about the drives and the library to the server. Because library and
drive firmware might change periodically, the SNMP interface in the library does not require code changes if devices add more TapeAlerts that are not supported today.
However, if this issue occurs the Management Information Block (MIB) is written to minimize impact to the SNMP monitoring station. At the time of this writing, the
TapeAlert flags correctly represent TapeAlerts that are sent. The MIB file must not be taken to mean that all traps that are defined in the MIB are sent by the library or that
they will be sent in the future.
02d Library Hardware W There is a problem with the media changer mechanism. If the problem persists, contact Technical Support.
B
04d Library Hardware C The library has a hardware fault that is not mechanically related or requires a power cycle to recover.
D
Turn the media changer OFF, then ON.
Restart the operation.
If the problem persists, contact Technical Support.
14d Library Place W There is a potential problem with the library mechanism placing a cartridge into a slot.
Retry
No action needs to be taken at this time.
If the problem persists, contact Technical Support.
15d Library Load Retry W There is a potential problem with the drive or the library mechanism loading cartridges, or an incompatible
cartridge.
17d Library I/O C There is a mechanical problem with the library media I/O Station.
Station
19d Library Security W Library security is compromised. The door was opened then closed during operation.
20d Library Security I The library security mode was changed. The library was either put into secure mode, or the library exited the
Mode secure mode. This is for information purposes only. No action is required.
21d Library Offline I The library was manually turned offline and is unavailable for use.
22d Library Drive I A drive inside the library was taken offline. This is for information purposes only. No action is required.
Offline
24d Library Inventory C The library detected an inconsistency in its inventory.
28d Power Supply W A redundant power supply failed inside the library. Check the library users manual for instructions on replacing
the failed power supply.
33d Library Capacity C The total number of volumes exceeds the available number of storage elements. Remove a cartridge from the
Exceeded inventory to recover.
I = Informational suggestion to user
W = Warning. Remedial action is advised. Performance of data might be at risk.
C = Critical immediate remedial action is required.
3 Hard error 03h Set for any unrecoverable read, write, or See the Action Required column for Flag Number Warning Event
positioning error. (This flag is set with flags 4, 5, or 6 in this table.
4, 5, or 6). Ensure that tape drive firmware is at the latest
version. See Minimum firmware levels for common
library features.
4 Media 04h Set for any unrecoverable read, write, or Replace the tape cartridge. Warning Event
positioning error that is due to a faulty
tape cartridge.
5 Read failure 05h Set for any unrecoverable read error If Flag Number 4 is also set, the cartridge is Warning Event
where isolation is uncertain and failure defective. Replace the tape cartridge. If Flag
might be due to a faulty tape cartridge or Number 4 is not set, see Error Code 6 in Drive Error
to faulty drive hardware. Codes: Single-character display (SCD).
6 Write failure 06h Set for any unrecoverable write or If Flag Number 9 is also set, make sure that the Warning Event
positioning error where isolation is write-protect switch is set so that data can be
uncertain and failure might be due to a written to the tape. If Flag Number 4 is also set,
faulty tape cartridge or to faulty drive the cartridge is defective. Replace the tape
hardware. cartridge. If Flag Number 4 is not set, see Error
Code 6 in Drive Error Codes: Single-character
display (SCD).
7 Media life 07h Set when the tape cartridge reaches its 1. Copy the data to another tape cartridge. Warning Event
end of life (EOL). 2. Discard the old (EOL) tape.
8 Not data grade 08h Set when the cartridge is not data-grade. Replace the tape with a data-grade tape. Warning Event
Any data that you write to the tape is at
risk.
9 Write protect 09h Set when the tape drive detects that the Make sure that the cartridge's write-protect switch Warning Event
tape cartridge is write-protected. is set so that the tape drive can write data to the
tape.
10 No removal 0Ah Set when the tape drive receives an Refer to the documentation for your server's Info Event
UNLOAD command after the server operating system.
prevented the tape cartridge from being
removed.
11 Cleaning media 0Bh Set when you load a cleaning cartridge No action is required. Informational message only. Info Event
into the drive.
12 Unsupported 0Ch Set when you load an unsupported Use a supported tape cartridge. Info Event
format cartridge type into the drive or when the
cartridge format is corrupted.
14 Unrecoverable 0Eh Set when the tape is snapped/cut or has a Do not attempt to extract the old tape cartridge. Warning Event
snapped tape mechanical failure. Call the tape drive supplier's help line.
15 Cartridge 0Fh Set when a cartridge memory (CM) failure Replace the tape cartridge. If this error occurs on Warning Event
memory chip is detected on the loaded tape cartridge. multiple cartridges, see Error Code 6 in Drive Error
failure Codes: Single-character display (SCD).
16 Forced eject 10h Set when you manually unload the tape No action is required. Informational message only. Warning Event
cartridge while the drive was reading or
writing.
17 Loaded media is 11h Set when a write attempt is made on a No action is required. Informational message only. Warning Event
Read-only read-only cartridge. The flag is cleared
format when the cartridge is ejected (this flag is
not supported for Ultrium 1 or Ultrium 2).
18 Tape directory is 12h Set when the drive detects that the tape Reread all data from the tape to rebuild the tape Warning Event
corrupted in the directory in the cartridge memory is directory.
cartridge corrupted.
memory
19 Nearing media 13h Set when the tape cartridge is nearing its 1. Copy the data to another tape cartridge. Info Event
life specified end of life. 2. Replace the tape cartridge.
20 Clean now 14h Set when the tape drive detects that it Clean the tape drive. Warning Event
needs cleaning.
21 Clean periodic 15h Set when the drive detects that it needs Clean the tape drive as soon as possible. The drive Warning Event
routine cleaning. can continue to operate, but you must clean the
drive soon.
22 Expired clean 16h Set when the tape drive detects an expired Replace the cleaning cartridge. Warning Event
cleaning cartridge.
23 Invalid cleaning 17h Set when the drive expects a cleaning Use a valid cleaning cartridge. Warning Event
tape cartridge and the loaded cartridge is not a
cleaning cartridge.
60 WORM Medium 3Ch Set when the drive rejects a write Write the data to a WORM tape cartridge or write Warning Event
– Overwrite operation because the rules for allowing the data to a non-WORM tape cartridge.
attempted WORM writes are not met. Data can be
appended only to WORM media.
Overwrites to WORM media are not
allowed.
Refer to the IBM TS4300 Tape Library SCSI Reference for library sense data information. Refer to the IBM LTO Ultrium Tape Drive SCSI Reference for tape drive sense data
information.
In addition, you can use the IBM Tape Diagnostic Tool (ITDT) to further examine data and determine errors. See IBM Tape Diagnostic tool (ITDT).
If you encounter problems while the tape drive is running, refer to How the library reports problems.
The SCD display appears on the inside back of an installed library and can be seen through the front window of an expansion unit. It is seen on the lower center of a full-
height drive. Each drive has a status light and single-character display, that when visible provides drive informational and error conditions. The single-character display
shows either a single character, a dot (in the lower right of the display), or both.
Note: The SCD can be seen through the windows of expansion units, and for full-height drives only. If you have a base unit without expansion units, or if you have half-
height drives, the SCD cannot be seen.
Single-character display (SCD) codes lists the codes for error conditions and informational messages. If multiple errors occur, the code with the highest priority
(represented by the lowest number) displays first. When the error is corrected, the code with the next highest priority displays until no errors remain.
Make note of the SCD error code before a cartridge is removed or the SCD error code is cleared.
If an error occurred with a cartridge in the drive, eject the cartridge from the drive with the library Management GUI (see Locating Management functions).
Attention: If the drive detects a permanent error and displays an error code other than SCD , it automatically runs a drive dump. If you force a drive dump, the existing
dump is overwritten and data can be lost. After you force a drive dump, do not turn OFF the power to the drive or you might lose the dump data.
Table 1. Error codes on the single-character display
Error code Meaning
No error occurred and no action is required. This code displays when diagnostics finish running and no error occurred.
Note: The single-character display is blank during normal operation of the tape drive.
Temperature problem. The tape drive detected that the recommended operating temperature was exceeded.
Power problem. The tape drive detected that the externally supplied power is outside the specified voltage limits (the tape drive is not operating).
Firmware problem. The tape drive determined that a firmware error occurred
Note: Do not force a new dump; the tape drive already created one.
Firmware or hardware problem. The tape drive determined that a firmware or tape drive hardware failure occurred.
Note: Do not force a new dump; the tape drive already created one.
Tape drive hardware problem. The drive determined that a tape path or read/write error occurred.
Notes:
To prevent damage to the drive or tape, the tape drive does not allow a cartridge to be inserted if the current cartridge was successfully ejected.
Do not force a new dump; the tape drive already created one.
Tape drive or media error. The tape drive determined that an error occurred, but it cannot isolate the error to faulty hardware or to the tape cartridge.
Ensure that the tape cartridge is the correct media type. See LTO media.
Ensure tape drive is at the latest firmware version. See Minimum firmware levels for common library features.
Tape drive or media error. The tape drive determined that an error occurred, but it cannot isolate the error to faulty hardware or to the tape cartridge.
Ensure that the tape cartridge is the correct media type. See LTO media.
Interface problem. The tape drive determined that a failure occurred in the tape drive hardware or in the host bus.
Note: The error code clears 10 seconds after the drive detected the error.
Tape drive or library-drive communication error. The tape drive determined that a failure occurred in the tape drive's hardware or in the library-drive
connection.
Degraded operation. The tape drive determined that a problem occurred which degraded the operation of the tape drive, but it did not restrict
continued use. If the problem persists, determine whether the problem is with the drive or the media.
Note: The drive is usable, though the single-character display continues to indicate an error and the status light flashes amber.
The tape drive needs to be cleaned. See Locating Management functions.
Fiber AL_PA conflict. Two drives on fiber loop have the same AL_PA.
Encryption error. Displayed when the drive detects an error that is associated with an encryption operation.
Fiber Port offline. Displayed when the drive fiber port received a port bypass command from another port on the Fibre Channel network.
Fibre Channel error. No light is displayed if the drive fiber port does not detect light.
Write operation to a write protected cartridge was attempted. This action includes any attempt to overwrite a WORM protected tape. Ensure that the
tape cartridge is the correct media type. See LTO media.
The drive is performing media optimization.
SCD dot
Edit online
If a drive dump is present while the drive is in maintenance mode, a single red dot illuminates in the lower right corner of the SCD. To download the drive dump, see
Locating Management functions or IBM Tape Diagnostic tool (ITDT).
The SCD dot turns OFF when you obtain a dump or update the drive firmware.
Note: If the drive dump is stored in ROM memory (SCD dot ON solid), the dump is lost when you turn OFF the power or reset the drive.
Status light
Edit online
The Status light is a light-emitting diode (LED) that provides information about the state of the drive. The light can be green or amber, and (when lit) solid or flashing. Table
1 lists the conditions of the Status light and single-character display (SCD) and provides an explanation of what each condition means.
Power must not be removed from the drive until the microcode update is complete. The drive indicates that the update is complete by resetting and running POST.
Recommended tools
#2 Phillips screwdriver
Small Flat Head or Torx screwdriver
I/O station
Storage slots
Tape drive
4 Controller Card This component is a customer replaceable unit (CRU) and stores the user configuration information or vital product data (VPD).
5 Tape drive The module can contain a half-height or a full-height tape drive. The drive is a customer replaceable unit (CRU), and is designed for
easy removal and replacement.
6 Power supply The power supply is a customer replaceable unit (CRU) and the sole source of power for the module. The module is shipped with
one power supply, but can contain an optional second power supply for redundancy.
7 Robotic lock This component is used to lock down the accessor so it cannot move. This action is done when the module is moved or when the
lever robotic assembly is removed.
8 Finger hole One of two finger holes that are used to lift out the accessor assembly. The other is under the accessor in the photograph.
9 Spooling This component moves the accessor.
mechanism
Warning: Only individuals who are informed about the procedures and risks can replace or upgrade this tape drive assembly. Read all troubleshooting documentation and
procedures before you proceed with repair or upgrade procedures. Hazardous moving parts exist inside this product. Do not insert tools or any portion of your body into
the drive bay openings.
Important: ESD events occurring during tape drive installation or removal may cause SAS link reset on tape drives installed in the library. If this occurs, restart any jobs
that were running on affected SAS links.
1. If you are adding a tape drive, remove a drive bay cover. With a Philips screwdriver, remove one half-height drive bay cover to install one half-height drive, or remove
two drive bays covers to install a full-height tape drive.
Note: A full-height tape drive must be installed in the lowest bay of the module.
2. Align and slowly insert the new tape drive into the drive bay along the alignment rails ( 1 in Figure 2) while the drive assembly is supported. The tape drive must be
flush with the back panel of the library.
3. Tighten the captive thumbscrews ( 1 in Figure 3) with your fingers until the tape drive is secure.
Attention: Support the bottom of the tape drive when it is removed to avoid damaging any of the internal connections.
Reset the list of known drives and modules. See Locating Management functions.
Confirm that the drive is logically removed by checking the Operator Panel or Management GUI.
If replacement drive is not available, install the drive bay cover.
If you are replacing the drive, see Adding a tape drive.
1. Confirm that the library recognizes the new tape drive by checking the Operator Panel or Management GUI. The new drive appears in the module status overview
area on the left side of the screen.
2. Use the Management GUI or Operator Panel to verify that the tape drive has the current firmware. Update the firmware if necessary.
3. Use the Management GUI or Operator Panel to test the drive. See Locating Management functions.
Caution: The weight of this part or unit is between 18.1 and 33.6 kg (40 and 74 lb). It takes two persons to safely lift this part or unit. (C009)
Caution: The weight of this part or unit is between 33.6 and 46.3 kg (74 and 102 lb). It takes three persons to safely lift this part or unit. (C010)
Observe local health and safety requirements and guidelines for manual material handling.
Remove all tapes to reduce the weight and to prevent cartridges from falling into the robotics path and damaging the library.
Remove all tape drives to reduce the weight.
CAUTION:
Parts can be damaged by electrostatic discharge. Keep parts in electrostatic containers until needed. Ensure that you are properly grounded when
static sensitive components are touched.
1. Update the library firmware to the minimum code level of 1.2.1.0-A00 or higher.
2. Save the library configuration. See Saving the configuration.
3. Remove tape cartridges and power off the library. See Removing the magazines and cartridges and Powering off the library.
4. Remove all the components from the module and disconnect the power cords and cables. See Removing the Module cables.
5. Remove the module from the rack. See Removing the Module from a rack.
6. Install the replacement module into the rack. See Installing the Module into a rack.
7. Replace the components and cables. See Replacing the Module components and cables.
8. Connect the power cords, power on the library, and complete Verifying Library Module installation and configuration.
9. Replace the tape cartridges.
You need a T-10 Torx screwdriver to remove the drive bay covers and a small flat head screwdriver. Have several static safe bags available for the boards that are moved to
the replacement chassis.
Ensure that the rack is level side to side and front to back.
Verify that any applications that are using the library are idle.
Attention: If the temperature in the room where the replacement module is installed varies by 15 C (59 F) from the room where it was stored, allow it to acclimate to the
surrounding environment for at least 12 hours before it is unpacked from the shipping container.
Note: Do not do a Save Configuration on a library that is in a failed state. Save the configuration on a working library only.
Note: Completely removing the cables from both ends prevents damaging the expansion interconnect cables during module removal and replacement.
3. Remove any SAS, FC, or Ethernet cables from the module that is replaced.
4. Remove the USB device, if present.
1. Use your fingers to loosen the blue captive thumbscrews on the tape drive.
2. Pull straight back on the tape drive handle while the bottom of the drive is supported to remove it from the module.
Attention: Support the bottom of the tape drive when it is removed to avoid damaging any of the internal connections.
If you are removing a module that has a module immediately above or below it,
1. From the front of the library, use a #2 Phillips screwdriver to loosen the screws two full turns on the module and its adjacent modules.
2. From the back of the library, unlock the alignment mechanisms that connect the module with the adjacent modules.
Note: If a blue alignment lever lock is attached to the rear of the module, slide it to the left, then move the alignment lever. The lever lock has an internal
spring, so hold it while the alignment lever is moved, and it automatically springs back into place after the lever is moved. See Figure 2.
The Base Module has removable top and bottom cover plates. The two covers are identical and the process for removing and installing them is the same for the top and
bottom of the module. See Preparing top and bottom modules for details. While this procedure refers to moving a cover from the Base Module, the information is the same
for moving a cover from an Expansion Module. The covers must be removed only if the failed unit does not have the covers (the cover is on another module).
The replacement module is shipped with a bottom cover plate but not a top cover plate. Move the cover plates as necessary so the replacement module has the cover
plates in the same location as the empty module and the empty module has a bottom cover plate.
1. Replace the controller card. See Replacing a Base or Expansion controller card.
2. Replace the tape drives in the same locations.
If a module was added, you must reset your logical libraries by using the basic logical library wizard. See Locating Management functions to find and run the basic
logical library wizard.
Important: ESD events occurring during power supply installation or removal may cause SAS link reset on tape drives installed in the library. If this occurs, restart any jobs
that were running on affected SAS links.
1. Locate the failed power supply on the rear of the library by the UID LEDs notification, and also by the power supply LEDs. Either the green LED ( 4 ) is lit or both LEDs
are unlit.
2. Unplug the AC power cord ( 3 ) from the power supply you are replacing.
3. Loosen the two blue captive thumbscrews ( 1 ) with your fingers on the power supply.
4. Using the thumbscrews (one on each side), slowly pull the power supply approximately 10 cm (4 inches) from the back of the module.
5. Use one hand to completely remove the power supply from the module, while the other hand is used to support the bottom.
2. If the UID LEDs are still illuminated, deactivate them by using the Operator Panel or Management GUI.
Parts can be damaged by electrostatic discharge. Keep parts in electrostatic containers until needed. Ensure that you are properly grounded
when static sensitive components are touched.
You must power off the library to install or replace this part or damage can occur.
Important: Do not replace both the base chassis and the Base Module controller card with repair components in the same procedure. The firmware does not allow the
library to operate if both components are replaced at the same time. Critical library information is saved in the controller card and within the chassis. When one is
replaced, the data from the original component is transferred to the repair component. If both the base chassis and Base Module controller are replaced, you must power
cycle the library between component replacements.
Note: The base controller card is on the left, and the expansion controller card is on the right.
Table 1. Controller card components
1 Blue captive thumbscrews
2 Upper Expansion Module connection port
3 USB Port
4 Ethernet Port A
5 Ethernet Port B
6 Lower Expansion Module connection port
7 Controller card LEDs, top to bottom
Green Controller Health Status. The flashing LED indicates that the controller is in good health status and properly working.
Yellow Controller Error. This LED turns on if the controller has a hardware issue. In this case, the green LED stops flashing.
Blue Unit Identifier. This LED is a beacon that can be turned on or off through the Management GUI. The LED gives the user an indication that
the controller needs attention. See Identifying a failed component.
1. Unplug the AC power cables from the module that contains the failed controller card.
2. On the module that contains the failed controller card, remove the expansion interconnect cables ( 2 and 6 ) that connect to other modules, if present.
3. Remove the Ethernet cables ( 4 and 5 ) and the USB cable ( 3 ), if present. (An Expansion Module does not have Ethernet or USB ports. See Figure 1).
4. Loosen the two blue captive thumbscrews ( 1 ) on the controller.
5. Using the thumbscrews, slowly remove the controller from the module.
Important: Base and Expansion Module controller cards are keyed to fit in their respective modules only. A Base Module controller card does not fit into an Expansion
Module, and vice versa. If you encounter resistance when the controller card is installed, make sure that you are installing the controller card into the appropriate module.
Preparing to remove the accessor and spooling mechanism from the Base Module
Warning:
When a module is extended from the library - to reduce the risk of personal injury or damage to equipment
Removing the accessor and spooling mechanism from the Base Module
1. Remove the left and right magazines by using the magazine release levers (circled in Figure 1). Push up on the lever, then pull the magazine out.
2. Slide the cartridge carrier toward the center of the accessor to access the robot-locking lever.
3. Standing at the front of the module, unlock the robot by moving the blue lever to the left, then toward you, then to the right.
4. Place your fingers into the large holes on the accessor and pull up slowly.
Note: The accessor offers resistance. Lift the accessor no faster than 12 mm (0.5 inches) per second.
10. Unlock the lever and set aside the accessor. See Figure 2.
Important: If a tape cartridge is still in the cartridge carrier, remove the cartridge by lifting it straight up. You might need to move the cartridge slightly from side to
side.
11. Replace the spooling mechanism. Refer to Removing or replacing a spooling mechanism.
1. Each corner of the accessor has a gear with two protruding pins. Rotate one of the gears on the accessor so that the two pins are aligned horizontally. See Figure 6
2. The accessor is shipped with the robot in the unlocked position. Verify that the replacement unit is locked, then set it on top of the gears.
3. Place the gears of the accessor into the grooves on the inside corners of the module. Confirm that all four of the pins are touching the outside of the grooves.
4. Standing at the right side of the module, remove the end of the spooling cable from the park position.
5. Place the spooling cable into the grooves where it attaches to the accessor and rotate it until it snaps into place. See Figure 7.
6. Unlock the accessor. The accessor drops smoothly. If it does not, check the alignment of the gears.
7. Before the accessor gets to the bottom, lock the robot. Standing at the front of the module, move the blue lever to the left, then away from you, then to the right.
Tip: If the end of the spooling cable drops into the module, unlock the accessor, remove it from the module, return the end of the spooling cable to its cradle, return
the accessor to its previous position in the module, relock the accessor, and repeat the procedure.
If you powered off the library and the accessor did not return to its park position in the Base
Module behind the Operator Panel.
1. Power on the library by pressing Power on the Base Module just below the Operator Panel.
2. Return the accessor to its park position.
3. Power off the library by pressing Power on the Base Module and holding for 5 seconds.
If the accessor is still not in the Base Module, use one of the procedures in the following two sections.
If the accessor is stopped in an Expansion Module that is near the Base Module or is stopped
directly between two modules.
1. Remove the front bezel from the Base Module, the Expansion Module containing the accessor, and modules in between as needed.
2. Insert a small flat head screwdriver into the screwdriver relief on the right rear bearing block of the accessor.
3. Turn the screwdriver to manually operate the accessor gear train and move the accessor into the Base Module.
4. Lock the accessor. Standing at the front of the module, move the blue lever to the left, then away from you, then to the right.
5. Reinstall the bezels that were previously removed.
6. Remove the accessor and spooling mechanism. See Preparing to remove the accessor and spooling mechanism from the Base Module.
7. Install the new accessor and spooling mechanism. See Installing the accessor into the Base Module.
8. Slide the Base Module back into the rack. See After the accessor and spooling mechanism installation.
If the accessor is stopped in an Expansion Module that is not near the Base Module or it cannot
move vertically.
1. Remove the left magazine of the Base Module. See Removing or replacing a magazine. The library must already be powered off. Therefore, you must unlock the
magazine by using the manual release.
2. Disconnect the power supply cables from all of the modules.
3. Using plastic-handled scissors, reach through the left magazine opening of the Base Module and carefully cut the spooling cable.
Note: Make sure that the spooling mechanism is unlocked before you try to pull it out. When the mechanism is unlocked, the cutout behind the mechanism is
covered, and the mechanism cannot slide any further to the center.
6. Pull the spooling mechanism towards the front of the module to remove it.
1. Log in as an administrator.
2. Go to Library > Modules and Magazines.
3. On the Actions menu, click Unlock Magazine.
4. Click Open in the left or right magazine column within the module that contains the magazine to be opened.
5. A message box indicates when the magazine is unlocked.
6. Unlock Magazine screen shows that the magazine is now unlocked.
Note: If not removed, the magazine and the I/O station relock after 30 seconds.
To manually eject the magazine, insert a paper clip or a small flat head screwdriver into the appropriate magazine release hole and gently push the tab in. See Figure 1 and
Figure 2.
Warning:
Product Weight
Caution: The weight of this part or unit is between 18.1 and 33.6 kg (40 and 74 lb). It takes two persons to safely lift this part or unit. (C009)
Caution: The weight of this part or unit is between 33.6 and 46.3 kg (74 and 102 lb). It takes three persons to safely lift this part or unit. (C010)
Observe local health and safety requirements and guidelines for manual material handling.
Remove all tapes to reduce the weight and to prevent cartridges from falling into the robotics path and damaging the library.
Remove all tape drives to reduce the weight.
Obtain adequate assistance to lift and stabilize the module during installation or removal.
Important: Under normal circumstances, when the library is powered off by using the front Power, the robot automatically parks and locks into the Base Module behind
the Operator Panel. If you are given a choice during the power down procedure, choose the default park position. To protect the spooling cable or other sensitive parts, the
accessor must be in the Base Module before any drives are removed from the library.
To move a module within a rack or into a different rack:
For instructions for these steps, see Adding or replacing a Base or Expansion Module and Installing.
Reference
Edit online
This section provides information about the Help pages, REST API, LTO Media, and other reference documentation.
Logical Libraries ✔ ✔ ✔ ✔
Actions ✔ ✔ ✔ ✔
Manage Logical Library (Expert Mode) ✔ ✔ ✔
Manage Logical Library (Basic Mode) ✔ ✔ ✔
Manage KMIP Encryption ✔ ✔ ✔
Manage SKLM for z/OS Encryption ✔ ✔ ✔
Graphical View ✔ ✔ ✔ ✔
Refresh ✔ ✔ ✔ ✔
Collapse All ✔ ✔ ✔ ✔
Events ✔ ✔ ✔
Error and Warning Events ✔ ✔ ✔
Actions ✔ ✔ ✔
Mark All Open Events ✔ ✔ ✔
Inactive
Clear Log ✔ ✔ ✔
Include Inactive Events ✔ ✔ ✔
Service Events ✔
Actions ✔
Clear Log ✔
Informational Events ✔ ✔ ✔
Actions ✔ ✔ ✔
Clear Log ✔ ✔ ✔
Configuration Events ✔ ✔ ✔
Actions ✔ ✔ ✔
Clear Log ✔ ✔ ✔
Show All ✔ ✔ ✔
Drive ✔ ✔ ✔ ✔
Drives and Ports ✔ ✔ ✔ ✔
Actions ✔ ✔ ✔
Modify Port Settings ✔ ✔ ✔
Clean Drive ✔ ✔ ✔
Reset Drive ✔ ✔ ✔
Eject Cartridge from Drive ✔ ✔ ✔
Drive Test ✔ ✔ ✔
Update Drive Firmware ✔ ✔ ✔
Export Service Logs ✔ ✔ ✔
Refresh ✔ ✔ ✔ ✔
Expand All ✔ ✔ ✔ ✔
Cartridges ✔ ✔ ✔ ✔
Cartridges and Slots ✔ ✔ ✔ ✔
Actions ✔ ✔ ✔ ✔
Inventory Library ✔ ✔ ✔
Move Cartridges ✔ ✔ ✔
Graphical View ✔ ✔ ✔
Search Bar ✔ ✔ ✔ ✔
Clear ✔ ✔ ✔ ✔
Access ✔ ✔
Local User ✔
Add User ✔
Actions ✔ ✔
LDAP Authentication ✔ ✔
LDAP Servers ✔ ✔
Add Server ✔
Actions ✔
Modify Server (click ✔
server)
Remove Server (click ✔
server)
LDAP Users ✔ ✔
Add User ✔
Actions ✔
Modify User ✔
Remove User ✔
LDAP User Groups ✔ ✔
Add User Group ✔
Actions ✔
Modify User Group ✔
(click group)
Remove User Group ✔
(click group)
Kerberos Authentication ✔ ✔
Kerberos Servers ✔ ✔
Add Server ✔
Actions ✔
Modify Server (click ✔
Server)
Remove Server (click ✔
Server)
Kerberos Users ✔ ✔
Add User ✔
Actions ✔
Modify User ✔
Remove User ✔
Settings ✔ ✔ ✔ ✔
Library ✔ ✔ ✔
Date and Time ✔ ✔ ✔
Time Zone ✔ ✔ ✔
Date Time Format ✔ ✔ ✔
Set Date Time ✔ ✔ ✔
SNTP ✔ ✔ ✔
Licensed Features ✔ ✔ ✔
Add License Key ✔ ✔ ✔
Licensed Key in Systems ✔ ✔ ✔
Firmware Update ✔ ✔ ✔
Firmware Level ✔ ✔ ✔
Advanced ✔ ✔ ✔
Save Configuration File ✔ ✔ ✔
Restore Configuration File ✔ ✔ ✔
Reset Configuration Only ✔ ✔ ✔
Full Factory Reset ✔ ✔
Reset the list of known Drives and ✔ ✔ ✔
Modules
Initial Configuration Wizard ✔ ✔ ✔
Configuration Wizard Application ✔ ✔ ✔
Auto Calibration ✔ ✔
Network ✔ ✔ ✔
Ethernet ✔ ✔ ✔
General Network Settings ✔ ✔ ✔
Primary Network Port ✔ ✔ ✔
IPv4 ✔ ✔ ✔
Secondary Network Port ✔ ✔ ✔
Reset Internal IP Range (in case of ✔ ✔ ✔
conflict)
Notifications ✔ ✔ ✔
Email ✔ ✔ ✔
Email SMTP Settings ✔ ✔ ✔
SNMP ✔ ✔ ✔
SNMP Settings ✔ ✔ ✔
Remote Logging (rsyslog) ✔ ✔ ✔
Remote Logging ✔ ✔ ✔
Security ✔ ✔ ✔ ✔
Encryption ✔ ✔ ✔ ✔
Actions ✔ ✔ ✔
Manage KMIP ✔ ✔ ✔
Encryption
Manage SKLM for ✔ ✔ ✔
z/OS Encryption
Run Key Path ✔ ✔ ✔
Diagnostics
Security Encryption Status ✔ ✔ ✔ ✔
Refresh ✔ ✔ ✔ ✔
GUI ✔ ✔ ✔
Secure Communications ✔ ✔ ✔
Certificate Settings ✔ ✔ ✔
Create Custom Certificate ✔ ✔ ✔
Backup Custom Certificate ✔ ✔ ✔
Restore Custom Certificate ✔ ✔ ✔
Session Timeout ✔ ✔ ✔
Operator Panel/RMI Session Locking ✔ ✔ ✔
To download and access the IBM Help pages locally, right-click IBM Help, click Save Link As.. or Save Target As.. (depending on your browser) to save the file to your
system. Extract the file, and click index.html to start the interactive demonstration of the TS4300 helps.
Notes:
You can use http://www.7-zip.org/download.html to download a free program to extract the files.
Microsoft Edge and Internet Explorer browsers are supported for viewing the Help pages. Other browsers might not be supported.
To download and access the IBM® REST API locally, right-click REST API, click Save Link As.. or Save Target As.. (depending on your browser) to save the file to your
system.
Update the forms each time that changes are made to the library configuration and store these forms in a secure location. Having the information on these forms are
helpful if a call to IBM® service is necessary.
You can also save library configuration data from the Management GUI. See Locating Management functions.
Library information
Module and drive information
Logical Library information
Library information
Edit online
General Information
Library type TS4300 (MT 3555)
Serial Number
Host name
SNTP server
Encryption License Key
Path Failover License Key
Network Settings
Domain Name
Network Protocol IPv4/IPv6
Max. Link Speed
Method
IP Address
Gateway
DNS1
DNS2
Security Settings
Password Policy
SSL
Certificates
LDAP Server (See also User Accounts)
LDAP Domain
Encryption Settings
Encryption Key Manager Server 1/Port
Encryption Key Manager Server 2/Port
Notification Settings
SMTP Notification Level
SMTP Server/Port
SMTP Security
SMTP Email Address
SNMP Community Name
SNMP Notification Level
SNMP Server/Port 1
SNMP Server/Port 2
Number
Number of Power Supplies
I/O Station Enabled
Drive 1 (bottom slot) Type
-- Serial Number
-- Logical Library Number/Control Path
-- Port Settings (FC only)
Drive 2 (middle slot) Type
-- Serial Number
-- Logical Library Number/Control Path
-- Port Settings (FC only)
Drive 3 (top slot) Type
-- Serial Number
Number
Name
Number of Drives
Number of Slots
Number of I/O Slots
Barcode Label Length Rep to Host
Barcode Label Alignment Rep to Host
Auto Clean
Key Manager Type
LTO7+ Multi-Initiator SCSI Conflict Detection
Sequential Mode
Number
Name
Number of Drives
Number of Slots
Number of I/O Slots
Barcode Label Length Rep to Host
Barcode Label Alignment Rep to Host
Auto Clean
Key Manager Type
LTO7+ Multi-Initiator SCSI Conflict Detection
Sequential Mode
LTO media
Edit online
LTO media is available in various types. Ensure you choose a media type that your drive supports.
Data cartridge
WORM (Write Once, Read Many) cartridge
Cleaning cartridge
To ensure that your IBM Ultrium tape drive conforms to IBM specifications for reliability, use only IBM LTO Ultrium tape cartridges. You can use other LTO-certified data
cartridges, but they might not meet the standards of reliability that are established by IBM. The IBM LTO Ultrium data cartridge cannot be interchanged with the media
used in other IBM non-LTO Ultrium tape products.
Figure 1 shows the IBM LTO Ultrium data cartridge and its components.
1 LTO cartridge memory 4 Write-protect Switch
2 Cartridge door 5 Label area
3 Leader Pin 6 Insertion guide
Data cartridges
Edit online
The generations of IBM® Ultrium data cartridges are identified by color.
When tape is processed in the cartridges, Ultrium tape drives use a linear, serpentine recording format. The native data capacity and recording format of Ultrium data
cartridges is as follows:
Table 2. Cartridge data capacity and recording formats
Type Native Data Capacity Recording Format
Ultrium 9 18 TB (45 TB at 2.5:1 compression) Reads and writes data on 8960 tracks, 32 tracks at a time.
Ultrium 8 12 TB (30 TB at 2.5:1 compression) Reads and writes data on 6656 tracks, 32 tracks at a time.
LTO M8 9 TB (22.5 TB at 2.5:1 compression)* Reads and writes data on 3584 tracks, 32 tracks at a time.
Ultrium 7 6 TB (15 TB at 2.5:1 compression) Reads and writes data on 3584 tracks, 32 tracks at a time.
Ultrium 6 2.5 TB (6.25 TB at 2.5:1 compression) Reads and writes data on 2176 tracks, 16 tracks at a time.
Ultrium 5 1.5 TB (3 TB at 2:1 compression) Reads and writes data on 1280 tracks, 16 tracks at a time.
Ultrium 4 800 GB (1.6 TB at 2:1 compression) Reads and writes data on 896 tracks, 16 tracks at a time.
Ultrium 3 400® GB (800 GB at 2:1 compression) Reads and writes data on 704 tracks, 16 tracks at a time.
Ultrium 2 200 GB (400 GB at 2:1 compression) Reads and writes data on 512 tracks, 8 tracks at a time.
Ultrium 1 100 GB (200 GB at 2:1 compression) Reads and writes data on 384 tracks, 8 tracks at a time.
*In any tape product with M8 cartridges, the minimum LTO8 tape drive firmware version is HB82.
The first set of tracks is written from near the beginning of the tape almost to the end of the tape. The head then repositions to the next set of tracks for the return pass.
This process continues until all tracks are written and the cartridge is full, or until all data is written.
The cartridge door ( 2 in Figure 1) protects the tape from contamination when the cartridge is out of the drive. The tape is attached to a leader pin ( 3 in Figure 1) behind
the door. When the cartridge is inserted into the drive, a threading mechanism pulls the pin (and tape) out of the cartridge, across the drive head, and onto a non-
removable take-up reel. The head can then read or write data from or to the tape.
The write-protect switch ( 4 in Figure 1) prevents data from being written to the tape cartridge. For more information, see Write-Protect switch.
The label area ( 5 in Figure 1) provides a location to place a label. For more information, see Bar code label.
The insertion guide ( 6 in Figure 1) is a large, notched area that prevents the cartridge from being inserted incorrectly.
Cartridge compatibility
The read/write capabilities of Ultrium data cartridges.
LTO type M cartridge (M8)
The LTO program introduced a new capability with LTO8 tape drives: the ability to write 9 TB (native) on a brand new LTO Ultrium 7 cartridge instead of 6 TB (native)
as specified by the LTO7 format.
Capacity Scaling
You can control the capacity of data cartridges to obtain faster seek times.
Cartridge compatibility
Edit online
The read/write capabilities of Ultrium data cartridges.
Such a cartridge is called an LTO7 initialized LTO Type M cartridge. These LTO Type M cartridges are identifiable by using an automation bar code label that ends with the
last 2 characters “M8”.
Only new, unused LTO Ultrium 7 cartridges can be initialized as M8 cartridges. When a cartridge is initialized as M8, it cannot be changed back to L7. Initialized M8
cartridges can be written and read only in an LTO8 tape drive. LTO7 tape drives cannot read initialized M8 cartridges.
M8 cartridges can be purchased as either pre-initialized (also referred to as “labeled and initialized”) M8 data cartridges or uninitialized M8 data cartridges (M8 WORM
cartridges are not supported). For either option, the bar code label is included. However, the uninitialized M8 data cartridge must first be initialized in tape libraries that
support the automatic initialization of uninitialized M8 cartridges while under the control of ISV applications that recognize the “M8” bar code label.
A tape cartridge is initialized when it is first loaded into a compatible tape drive and data is written by the ISV application at the beginning of tape (sometimes referred to
as "labeling a tape" or "writing from BOT"). The tape drive then establishes the density of the media.
If an uninitialized M8 cartridge is not initialized in a tape library that supports uninitialized M8 cartridges, then the cartridge might inadvertently and silently be initialized
at the L7 density (that is, at a 6 TB native capacity) even if the bar code label states “M8”. This action might occur with the usage of a non LTO8 tape drive, a stand-alone
LTO7 tape drive, a stand-alone LTO8 tape drive, earlier LTO8 tape drive firmware, or earlier ISV software that does not recognize that M8 cartridges must be mounted only
in LTO8 tape drives. M8 cartridges that are inadvertently initialized at the L7 density can continue to be read and written in LTO7 and LTO8 tape drives. However, they
remain limited to the 6 TB native capacity.
In any tape product with M8 cartridges, the minimum LTO8 tape drive firmware version is HB82.
Capacity Scaling
Edit online
You can control the capacity of data cartridges to obtain faster seek times.
To control the capacity of the cartridge (for example, to obtain a faster seek time) issue the SCSI command SET CAPACITY. For information about this command, refer to
the IBM Ultrium Tape Drive SCSI Reference.
The LTO Ultrium 4 and later drives enable WORM support when a WORM tape cartridge is loaded into the drive.
WORM media
Data security on WORM media
Certain built-in security measures help ensure that the data that is written on a WORM cartridge does not become compromised.
WORM media errors
Several conditions can cause WORM media errors to occur.
WORM requirements
You can add WORM capability to your IBM® Ultrium tape drive.
WORM media
Edit online
The standard read/write media are incompatible with the WORM feature so a specially formatted WORM tape cartridge is required, see Figure 1. Each WORM cartridge has
a unique, worldwide cartridge identifier (WWCID), which comprises the unique CM chip serial number and the unique tape media serial number. For more information
about how to choose and purchase the appropriate WORM tape cartridges for your tape drive, see Ordering media supplies.
For example:
The format of an Ultrium WORM Tape Cartridge is not the same as the standard read/write media. This unique format prevents a drive that lacks WORM-capable
firmware from writing on a WORM tape cartridge. For LTO 9, native data capacity is 18 TB and compressed data capacity is 45 TB.
When the drive senses a WORM cartridge, the firmware prohibits the changing or altering of user data that is already written on the tape. The firmware notes the
last point on the tape that can be appended.
Information in the servo manufacturer's word (SMW) on the tape must match information from the cartridge memory (CM) module in the cartridge. If it does not
match, a media Error Code posts on the drive's single-character display (SCD).
Inserting a WORM tape cartridge into a drive that is not compatible with WORM causes the cartridge to be treated as an unsupported medium. The drive reports a
media Error Code . Upgrading the drive firmware to the correct code level resolves the problem.
WORM requirements
Edit online
You can add WORM capability to your IBM® Ultrium tape drive.
To add WORM capability to your IBM LTO Ultrium 9 drives, you must use IBM Ultrium 9 WORM tape cartridges (18 TB), or IBM Ultrium 8 tape cartridges (12 TB). See
Ordering media supplies.
Cleaning cartridge
Edit online
A specially labeled IBM® LTO Ultrium Cleaning Cartridge is used to clean the drive head.
The drive itself determines when a head must be cleaned. It alerts you when the single-character display (SCD) flashes a . To clean the head manually, insert a cleaning
cartridge into the tape load compartment. See Figure 1. The drive completes the cleaning automatically. When the cleaning is finished, the drive ejects the cartridge, and
the SCD is blank.
Note: The drive automatically ejects an expired cleaning cartridge without running the cleaning process. Replace the expired cleaning cartridge with a new cleaning
cartridge and insert it into the drive.
The IBM cleaning cartridges are valid for 50 uses. The cartridge's LTO-CM chip tracks the number of times that the cartridge is used.
Important: After 50 uses, the cleaning cartridge expires. It is no longer usable, and must be replaced
The Linear Tape-Open Cartridge Memory (LTO-CM) chip ( 1 in Figure 1) holds information about that specific cartridge, the media in the cartridge and the data on the
media. The LTO-CM enhances the efficiency of the cartridge. For example, the LTO-CM stores the end-of-data location. When the cartridge is inserted and the Write
command is entered, the drive can quickly locate the recording area and begin recording. The LTO-CM also aids in determining the reliability of the cartridge by storing
data about its age, how many times it was loaded, and how many errors it accumulated. When you unload a tape cartridge, the tape drive writes any pertinent information
to the cartridge memory.
The storage capacity of the Generation 9 LTO-CM is 32640 bytes. This capacity is double that of Generations 6, 7, and 8 LTO-CM (16320 bytes), and four times the
capacity of Generations 5 and 4 LTO-CM, which is 8160 bytes. LTO Generations 1, 2, and 3 have an LTO-CM capacity of 4096 bytes.
Note: The LTO Ultrium 9 tape drives do not require bar code labels, but you might choose to use labels for tape cartridge identification purposes. LTO tape drives do not
require tape cartridges to have bar code labels. However, IBM libraries require tape cartridges to have bar code labeled on them for automation and human readability.
Table 1. Bar code label requirements for Ultrium tape
drives and libraries
Ultrium Tape Drive/Library Bar Code Label Requirements
3573 Required
3576 Required
3580 Not required
3581 Required with optional Bar Code Reader
3582 Required
3583 Required
3584 Required
When read by a library's bar code reader, the bar code identifies the cartridge's VOLSER to the library. The bar code also tells the library whether the cartridge is a data
cartridge or cleaning cartridge. In addition, the bar code includes the two-character media-type identifier, see Table 2.
Figure 1 shows a sample bar code label for the LTO Ultrium Tape Cartridge.
Tape cartridges are ordered with the labels included or with custom labels. To order tape cartridges and bar code labels, see Ordering media supplies. The bar code for
usage in IBM® tape libraries must meet predefined specifications. They include (but are not limited to):
Eight uppercase alphanumeric characters, where the last 2 characters refer to the cartridge generation and WORM capability. See Table 2.
Label and printing to be non-glossy.
Nominal narrow line or space width of 0.423 mm (0.017 in.)
Wide to narrow ratio of 2.75:1.
Minimum bar length of 11.1 mm (0.44 in.)
Table 2. Cartridges and VOLSERs compatible with the LTO tape drives
Cartridges VOLSER
Ultrium 9 Data Cartridge xxxxxxL9
Ultrium 9 WORM Cartridge xxxxxxLZ
Ultrium 8 Data Cartridge xxxxxxL8
Ultrium 8 WORM Cartridge xxxxxxLY
LTO M8 Cartridge xxxxxxM8
Ultrium 7 Data Cartridge xxxxxxL7
Ultrium 7 WORM Cartridge xxxxxxLX
Ultrium 6 Data Cartridge xxxxxxL6
Ultrium 6 WORM Cartridge xxxxxxLW
Ultrium 5 Data Cartridge xxxxxxL5
Ultrium 5 WORM Cartridge xxxxxxLV
Ultrium 4 Data Cartridge xxxxxxL4
Ultrium 4 WORM Cartridge xxxxxxLU
Ultrium 3 Data Cartridge xxxxxxL3
Ultrium 3 WORM Cartridge xxxxxxLT
Ultrium 2 Data Cartridge xxxxxxL2
Ultrium 1 Data Cartridge (READ ONLY) xxxxxxL1
LTO Ultrium Cleaning Cartridge CLNxxxLx
*An Ultrium 3 Tape Drive must have a minimum firmware level of 54xx for it to be compatible with the WORM cartridge.
To determine the complete specifications of the bar code and the bar code label, visit the web at http://www.ibm.com/ and enter "IBM LTO Ultrium Cartridge Label
Specification" in the search box. Or contact your IBM sales representative.
When a bar code label is attached to a tape cartridge, place the label only in the recessed label area (see 5 in LTO media). A label that extends outside of the recessed
area can cause loading problems in the drive.
Attention: Do not place any type of mark on the white space at either end of the bar code. A mark in this area might prevent the library from reading the label.
Figure 1. Sample bar code label on the LTO Ultrium Tape Cartridge. The volume serial number (LTO123) and bar code are printed on the label.
Use only IBM-approved bar code labels on cartridges to be used in an IBM® tape library.
Do not reuse a label or reapply a used label over an existing label.
Before you apply a new label, remove the old label by slowly pulling it at a right angle to the cartridge case.
Use peel-clean labels that do not leave a residue after it is removed. If there is glue residue on the cartridge, remove it by gently rubbing it with your finger. Do not
use a sharp object, water, or a chemical to clean the label area.
Examine the label before it is applied to the cartridge. Do not use the label if it has voids or smears in the printed characters or bar code. A library 's inventory
operation takes much longer if the bar code label is not readable.
Remove the label from the label sheet carefully. Do not stretch the label or cause the edges to curl.
Position the label within the recessed label area (see 5 in Figure 1).
With light finger pressure, smooth the label so that no wrinkles or bubbles exist on its surface.
Verify that the label is smooth and parallel, and has no roll-up or roll-over. The label must be flat to within 0.5 mm (0.02 in.) over the length of the label and have no
folds, missing pieces, or smudges.
Do not place other machine-readable labels on other surfaces of the cartridge. They might interfere with the ability of the drive to load the cartridge.
Write-Protect switch
Edit online
The position of the write-protect switch on the tape cartridge determines whether you can write to the tape.
The locked position (solid red). Data cannot be written to the tape.
The unlocked position (black void). Data can be written to the tape.
If possible, use your server's application software to write-protect your cartridges (rather than manually setting the write-protect switch). This setting allows the server's
software to identify a cartridge that no longer contains current data and is eligible to become a scratch (blank) data cartridge. Do not write-protect scratch (blank)
cartridges; the tape drive is not able to write new data to them.
If you must manually set the write-protect switch, slide it left or right to the wanted position.
Attention: Do not insert a damaged tape cartridge into the drive. A damaged cartridge can interfere with the reliability of a drive and might void the warranties of the drive
and the cartridge. Before a tape cartridge is inserted, inspect the cartridge case, cartridge door, and write-protect switch for breaks.
To avoid damage to your tape cartridges and to ensure the continued high reliability of your IBM® LTO Ultrium tape drives, use the following guidelines:
Providing training
Providing training to the users of your tape drive can prolong the life of your tape cartridges.
Ensuring proper packaging
When you ship or store data cartridges, ensure that they are packed securely.
Proper acclimation and environmental conditions
Acclimate a tape cartridge to the operating environment before you use it.
Completing a thorough inspection
Complete a thorough inspection of your tape cartridge before you use it.
Handling the cartridge carefully
Handle tape cartridges carefully.
Examples of cartridge problems
Several examples of cartridge problems.
Providing training
Edit online
Providing training to the users of your tape drive can prolong the life of your tape cartridges.
Post procedures that describe appropriate media handling in places where people gather.
Ensure that anyone who handles tape is properly trained in handling and shipping procedures. This training includes operators, users, programmers, archival
services, and shipping personnel.
Ensure that any service or contract personnel who complete archiving procedures are properly trained in media-handling procedures.
Include media-handling procedures as part of any services contract.
Define and make personnel aware of data recovery procedures.
Never ship a cartridge in a commercial shipping envelope. Always place it in a box or package.
If you ship the cartridge in a cardboard box or a box of a sturdy material, ensure that you
Place the cartridge in polyethylene plastic wrap or bags to protect it from dust, moisture, and other contaminants.
Pack the cartridge snugly; do not allow it to move around.
Double-box the cartridge (place it inside a box, then place that box inside the shipping box) and add padding between the two boxes (see Figure 2).
Check that the leader pin is properly seated (see 2 in Figure 1).
If you suspect that the cartridge was mishandled but it appears usable, copy any data onto a good cartridge immediately for possible data recovery. Discard the
mishandled cartridge.
Review handling and shipping procedures.
The cartridge's case is damaged. There is a high possibility of media damage and potential loss.
Procedure
1. Look for cartridge mishandling.
2. Use the IBM Leader Pin Reattachment Kit (part number 08L9129) to correctly seat the pin (see Repositioning or reattaching a leader pin). Then, immediately use
data recovery procedures to minimize chances of data loss.
3. Review media-handling procedures.
Results
Improper placement of leader pin. See Figure 1.
Procedure
1. Ensure that the drive is powered-on.
2. Ensure that the write-protect switch on the tape cartridge is properly set (see Write-Protect switch).
3. Grasp the cartridge so that the write-protect switch faces you (see 1 in Figure 1).
4. Slide the cartridge into the tape load compartment.
Notes:
a. If the cartridge is already in an ejected position and you want to reinsert it, remove the cartridge, then insert it again.
b. If the cartridge is already loaded and you cycle the power (turn it off, then on), the tape reloads.
c. Do not attempt to load a cartridge when the drive is in Maintenance mode until the drive requests it.
Attention: Use a repaired tape cartridge only to recover data and move it to another cartridge. Continued use of a repaired cartridge might void the warranties of the drive
and the cartridge.
If the leader pin in your cartridge becomes dislodged from its pin-retaining spring clips or detaches from the tape, you must use the IBM® Leader Pin Reattachment Kit
(part number 08L9129) to reposition or reattach it. (Do not reattach the pin if you must remove more than 7 meters (23 feet) of leader tape.) The sections that follow
describe each procedure.
To place the leader pin in its proper position, you need the following tools:
Figure 1. Leader pin in the incorrect and correct positions. The cartridge door is open and the leader pin is visible inside the cartridge.
Figure 2. Placing the dislodged leader pin into the correct position. The cartridge door is open to show the leader pin.
5. To rewind the tape, insert the cartridge manual rewind tool ( 1 in Figure 3) into the cartridge 's hub 2 and turn it clockwise until the tape becomes taut.
Leader pin attach tool (See 1 in Figure 1). A plastic brace that holds the cartridge door open.
Cartridge manual rewind tool (See 2 in Figure 1). A device that fits into the cartridge's hub and enables you to wind the tape into and out of the cartridge.
Pin supplies (See 3 in Figure 1). Leader pins and C-clips.
Attention:
Use only the IBM Leader Pin Reattachment Kit to reattach the leader pin to the tape. Other methods of reattaching the pin damages the tape, the drive, or both.
Use this procedure on your tape cartridge only when the leader pin detaches from the magnetic tape and you must copy the cartridge's data onto another cartridge.
Destroy the damaged cartridge after you copy the data. This procedure might affect the performance of the leader pin during threading and unloading operations.
Touch only the end of the tape. Touching the tape in an area other than the end can damage the tape's surface or edges, which might interfere with read or write
reliability.
To reattach a leader pin with the IBM leader pin reattachment kit:
1. Attach the leader pin attach tool ( 1 in Figure 2) to the cartridge 2 so that the tool's hook 3 latches into the cartridge's door 4 . Pull the tool back to hold the door
open, then slide the tool onto the cartridge. Open the tool's pivot arm 5 .
Figure 2. Attaching the leader pin attach tool to the cartridge. To hold the cartridge door open, hook the tool into the door and pull the tool back.
2. To find the end of the tape inside the cartridge, attach the cartridge manual rewind tool ( 1 in Figure 3) to the cartridge's hub 2 by fitting the tool 's teeth between
the teeth of the hub. Turn the tool clockwise until you see the end of the tape inside the cartridge. Then, slowly turn the rewind tool counterclockwise to bring the
tape edge toward the cartridge door 3 .
3. Continue to turn the rewind tool counterclockwise until approximately 13 cm (5 in.) of tape hangs from the cartridge door. If necessary, grasp the tape and pull
gently to unwind it from the cartridge.
4. Remove the rewind tool by pulling it away from the cartridge. Set the tool and the cartridge aside.
Figure 3. Winding the tape out of the cartridge. Turn the cartridge manual rewind tool clockwise to see the end of the tape, then turn it
counterclockwise to bring the tape to the cartridge door.
5. On the leader pin ( 1 in Figure 4), locate the open side of the C-clip 2 . The C-clip is a small black part that secures the tape 3 to the pin.
6. Remove the C-clip from the leader pin by using your fingers to push the clip away from the pin. Set the pin aside and discard the clip.
Figure 4. Removing the C-clip from the leader pin. Use your fingers to push the C-clip from the leader pin.
11. Close the pivot arm 4 of the leader pin attach tool by swinging it over the leader pin so that the C-clip snaps onto the pin and the tape.
12. Swing the pivot arm open and trim the excess tape 5 so that it is flush with the reattached leader pin 6 .
13. Use your fingers to remove the leader pin from the cavity 3 in the leader pin attach tool.
14. Use the cartridge manual rewind tool to wind the tape back into the cartridge (wind the tape clockwise). Ensure that the leader pin is latched by the pin-retaining
spring clips on each end of the leader pin.
15. Remove the rewind tool.
16. Remove the leader pin attach tool by lifting its end away from the cartridge.
Before you use an LTO tape cartridge, acclimate it to the operating environment for 24 hours or the amount of time necessary to prevent condensation in the drive. The
time varies depending on the environmental extremes to which the cartridge was exposed.
The best storage container for the cartridges (until they are opened) is the original shipping container. The plastic wrapping prevents dirt from accumulating on the
cartridges and partially protects them from humidity changes.
When you ship a cartridge, place it in its jewel case or in a sealed, moisture-proof bag to protect it from moisture, contaminants, and physical damage. Ship the cartridge in
a shipping container that has enough packing material to cushion the cartridge and prevent it from moving within the container.
Table 1 gives the environment for storing and shipping LTO tape cartridges.
Table 1. Environment for storage and shipping the LTO tape cartridges
Environmental Specifications
Environmental Factor Allowable Storage Recommended Storage Shipping
Temperature 16 to 32°C 16 to 25°C -23 to 49°C
(61 to 90°F) (61 to 77°F) (-9 to 120°F)
Under the current rules of the US Environmental Protection Agency (EPA), regulation 40CFR261, the LTO Ultrium Tape Cartridge is classified as non-hazardous waste. As
such, it might be disposed of in the same way as normal office trash. These regulations are amended from time to time, and you must review them at the time of disposal.
If your local, state, country (non-US), or regional regulations are more restrictive than EPA 40CFR261, you must review them before you dispose of a cartridge. Contact
your account representative for information about the materials that are in the cartridge.
If a tape cartridge must be disposed of in a secure manner, you can erase the data on the cartridge with a high-energy ac degausser (use a minimum of 4000 oersted peak
field over the entire space that the cartridge occupies). The tape must make two passes through the field at 90 degree orientation change for each pass to achieve
complete erasure. Some commercial degaussers have two magnetic field regions offset 90 degrees from each other to accomplish complete erasure in one pass for higher
throughput. Degaussing makes the cartridge unusable.
If you burn the cartridge and tape, ensure that the incineration complies with all applicable regulations.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 9 18 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 653.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 9 18 TB Data Cartridge Order as part number xxxxxxx through an IBM-authorized distributor, or online at: http://www-
(black and white labels unattached) 1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 9 18 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 573.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 9 18 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 673.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 8 12 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 552.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 8 12 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 652.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 8 12 TB Data Cartridge Order as part number 01PL340 through an IBM-authorized distributor, or online at: http://www-
(black and white labels unattached) 1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 8 12 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 572.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 8 12 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 672.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto.
20-PACK IBM LTO Ultrium 7 6 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 551.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 7 6 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 651.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 7 6 TB Data Cartridge Order as part number 38L7189 through an IBM-authorized distributor, or online at: http://www-
(black and white labels unattached) 1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 7 6 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 571.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 7 6 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 671.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 6 2.5 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 550.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 6 2.5 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 650.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 6 2.5 TB Data Cartridge Order as part number 35P1902 through an IBM-authorized distributor, or online at: http://www-
(black and white labels unattached) 1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 6 2.5 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 570.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 6 2.5 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 670.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 5 1.5 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 014.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 5 1.5 TB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 015.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 5 1.5 TB Data Cartridge Order as part number 46C2084 through an IBM-authorized distributor, or online at: http://www-
(black and white labels unattached) 1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 5 1.5 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 034.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 5 1.5 TB WORM Tape Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 035.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 4 800 GB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(with attached labels) Machine Type 3589 Model 010.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM LTO Ultrium 4 800 GB Data Cartridge Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
(without labels) Machine Type 3589 Model 011.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
5-PACK IBM LTO Ultrium 4 800 GB Data Cartridge Order as part number 95P4278 through an IBM-authorized distributor.
(black and white labels unattached)
20-PACK IBM Ultrium 4 800 GB WORM Tape Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
Cartridge (with attached labels) Machine Type 3589 Model 032.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
20-PACK IBM Ultrium 4 800 GB WORM Tape Order the cartridge from your IBM Sales Representative or any authorized IBM Business Partner by specifying
Cartridge (without labels) Machine Type 3589 Model 033.
You can also order through an IBM-authorized distributor, or online at: http://www-1.ibm.com/storage/tape/lto
You can order bar code labels directly from the authorized label suppliers in Table 1.
Table 1. Authorized suppliers of custom bar code labels
In America In Europe and Asia
EDP/Colorflex EDP Europe, Ltd.
Broomfield, CO U. K.
U. S. A. Telephone: 44 (0) 1245-322380
Telephone: 800-438-8362 http://www.edpeurope.com/media-label
http://www.tri-optic.com
Dataware Dataware Labels Europe
Houston, TX 77274 Australia
U. S. A. Telephone: (029) 496-1111
Telephone: 800-426-4844 http://www.datawarelabels.com/
http://www.datawarelabels.com/
NetC NetC Europe Ltd
Trumbell, CT U. K.
U. S. A. Telephone: 44 (0) 1823 49 1439
Telephone: 203-372-6382 http://www.netclabels.co.uk
http://www.netcllc.com/ NetC Asia Pacific Pty Ltd
Australia
Telephone: 61 (0) 7 5442 6263
http://www.netclabels.com.au
Replacement parts
Edit online
TS4300 tape library has Tier 1 and Tier 2 CRUs (customer replaceable units). These CRUs are parts of the library that must be added, removed, and replaced by the
customer. Tier 1 CRUs do not require tools for installation while Tier 2 CRUs need tools for installation.
To order parts, contact IBM® Service. See Contacting IBM technical support.
serial numbers.
Attention:
It is recommended that the drive and tape be returned to IBM for removal and recovery.
If the cartridge in the drive is an INPUT tape that contains ACTIVE or 'ONLY COPY' data (no backup), eject commands that are issued at the host fail to unload the
tape, and power-cycling the drive fails to eject the cartridge, make no further attempts to unload this tape. Call Technical Support and open a PMR if one is not
already open, to initiate the process of sending the drive with the loaded cartridge in for recovery.
Recommended tools
Before you begin
Beginning procedure
Full height drive: Tape spooled off supply reel
Half height drive: Tape spooled off supply reel
Full height drive: Tape pulled from or broken near leader pin
Half height drive: Tape pulled from or broken near leader pin
Full height drive: Tape broken in mid-tape
Half height drive: Tape broken in mid-tape
Full height drive: Tape tangled along tape path
Half height drive: Tape tangled along tape path
Full height drive: No apparent failure or damage to tape
Half height drive: No apparent failure or damage to tape
Ending procedure
Recommended tools
Edit online
Procedure
#1 Phillips screwdriver
ESD Kit
Flashlight (optional)
#1 Flathead screwdriver (optional)
Procedure
1. Log in to the Management GUI.
2. Attempt to remove the cartridge with the device power ON and with library manager, a host application, or the Unload button. Press and hold Unload for 12
seconds. This action causes the drive to eject the cartridge when it completes the midtape recovery
3. Ensure that the operator issued the appropriate application commands to complete a rewind and unload of the cartridge. This procedure is to ensure that the stuck
cartridge is not because of a hang condition in the application
4. Attempt to remove the cartridge by power-cycling the drive. Look for the drive to attempt a midtape recovery.
Note: It can take 5 minutes to 1 hour (depending on cartridge type (LTO 5, and so on) and how much of the tape is spooled out of the cartridge) for the cartridge to
rewind and unload.
5. If the cartridge unloads, inform the operator that the cartridge is unloaded. If the cartridge does not unload, repeat steps 2 and 3 before this procedure is
continued.
Note: If the cartridge in the drive is an INPUT tape that contains ACTIVE or 'ONLY COPY' data (there is no backup), eject commands that are issued at the host fail to
unload the tape, and power-cycling the drive fails to eject the cartridge, make no further attempts to unload this tape. Call Technical Support and open a PMR if one
is not already open, to initiate the process of sending the drive with the loaded cartridge in for recovery.
Beginning procedure
Edit online
Procedure
1. Remove the tape drive sled from the library.
2. Place the sled on a clean, sturdy work surface.
It is not necessary to remove the plastic cover or connection card.
Note: Make sure to note where each cable is connected, so they can be connected correctly later.
c. Remove the drive brick from the sled.
Procedure
1. Ground yourself to the drive by using an ESD Kit.
3. Remove the cover of the half height drive by completing these steps:
a. Remove the four cover-mounting screws ( 1 ). Two screws are on each side of the drive.
b. Remove the cover by lifting it up.
4. Inspect the drive to decide which of the following conditions most closely matches the symptom on the drive:
Tape spooled off the supply reel - All the tape appears to be on the take up reel and no tape is on the supply reel (inside the cartridge). Test the drive after the
procedure is completed.
Tape pulled from leader pin (or broken at the front end) - All the tape appears to be on the supply reel (inside the cartridge) and little or no tape appears to be
on the take up reel. The leader block is positioned in the take up reel. Return the drive after the procedure is completed.
Tape broken in mid-tape - Tape appears to be on both the supply reel (inside the cartridge) and take up reel. Test the drive after the procedure is completed.
Tape tangled along tape path - Tape appears to be tangled and damaged but intact. Return the drive after the procedure is completed.
-- OR --
No damage to tape (or no apparent failure) - There appears to be no damage or slack to the tape. Return the drive after the procedure is completed.
Procedure
124 IBM TS4300 Tape Library
1. With the front of the drive facing you, pull an arm's length of tape out of the take up reel from the left side of the drive.
2. From the take up reel, thread tape around the rear of the tape path and over the head and rollers on the left side of the drive.
3. Set the drive on its left side with the head and tape path facing up.
4. Moisten a cotton swab with water and wet approximately 13 mm (0.5 in.) of the tape end and feed it onto the supply reel (inside the cartridge).
5. From the bottom of the drive, insert a 2.5 mm offset hex wrench through the bottom cover access hole and into the reel motor axle.
6. Turn the supply reel clockwise, allowing the moistened tape to adhere to the hub as it winds around the supply reel (inside the cartridge).
7. Continue spooling into the cartridge until the tape is taut and remains within the flanges of the tape guiding rollers. Ensure that you do not stretch the tape.
8. Go to Ending procedure.
Procedure
1. From the takeup reel, pull an arm's length of tape around the rear of the tape path and over the head and rollers on the left side of the drive.
2. Set the drive on its left side with the head and tape path facing up.
3. Ensure that the tape is not twisted. Untwist the tape if required.
4. Moisten a cotton swab with water and wet approximately 13 mm (0.5 in.) of the tape end and feed it onto the supply reel (inside the cartridge).
5. Turn the supply reel ( 4 ) clockwise, allowing the moistened tape to adhere to the hub as it winds around the supply reel (inside the cartridge).
Full height drive: Tape pulled from or broken near leader pin
Edit online
Procedure
1. From the left side of the drive, pull out tape from the take up reel.
Note: If there is more than approximately 0.6 m (2 ft.) of tape on the take up reel, go to Full height drive: Tape broken in mid-tape.
2. If there is less than approximately 0.6 m (2 ft.) of tape on the take up reel, cut off the excess tape as close to the leader pin, as possible.
3. Locate the threader motor worm gear ( 4 ) the rear of the drive. Use your finger to rotate the threader motor worm gear and slowly rotate the threader mechanism
gear ( 6 ) clockwise. This action rotates the threader motor worm gear ( 4 ) clockwise, drawing the tape leader block assembly (LBA) into the cartridge.
4. As the LBA is secured in the cartridge, you hear the LBA retention spring clips click into place. If you do not hear the click, continue rolling until the threader motor
worm gear ( 4 ) stops. The LBA is in the correct position.
Note: Be sure to keep tension on the tape as the LBA is drawn into the cartridge by using a hex wrench as shown in Figure 1.
5. Notice the following mechanisms:
a. Loader mechanism gear ( 8 ) nearest the front of the drive that actuates the cartridge loader mechanism
b. Position of the rotator stub ( 3 ).
c. Front loader motor worm gear ( 1 ). Rotating this gear allows the loader mechanism gear ( 8 ) to turn.
6. Rotate the loader motor worm gear ( 1 ) to turn the loader mechanism gear ( 6 ) counterclockwise. Continue turning until the rotator stub ( 3 ) loses contact with the
lever ( 7 ). This action releases the LBA leader pin.
7. Rotate the threader motor worm gear ( 4 ) to turn the threader mechanism gear ( 6 ) counterclockwise. This action moves the LBA out of the cartridge and past the
read/write head. Stop this rotation when the LBA is near the tape guide roller nearest the rear of the drive ( 1 ).
8. Continue rotating the loader motor worm gear ( 1 ) until the rotate stub ( 3 ) is positioned as shown. Notice that the rotator stub ( 3 ) is nearly aligned with the
cartridge loader tray guide bearing ( 2 ).
9. Remove the cartridge from the cartridge loader tray.
10. Go to Ending procedure.
Half height drive: Tape pulled from or broken near leader pin
Edit online
1 Threader intermediate gear 2 Threader mechanism gear 3 Loader motor worm gear
Procedure
IBM TS4300 Tape Library 127
1. Pull out tape from the takeup reel.
Note: If there is more than approximately 0.6 m (2 ft.) of tape on the takeup reel, go to Half height drive: Tape broken in mid-tape
2. If there is less than approximately 0.6 m (2 ft.) of tape on the takeup reel, cut off the excess tape as close to the leader pin, as possible.
3. Reattach the leader pin to the remaining tape.
4. Locate the threader intermediate gear ( 1 ) near the rear of the drive. You can use your finger to rotate the threader intermediate gear ( 1 ) and slowly rotate the
threader mechanism gear ( 2 ) clockwise. This action draws the tape leader block assembly (LBA) into the cartridge.
5. As the leader pin is secured in the cartridge, you hear the leader pin retention spring clips click into place. If you do not hear the click, continue rolling until the
threader intermediate gear ( 1 ) stops. The LBA is in the correct position.
6. Rotate the loader motor worm gear ( 3 ) clockwise as viewed from the front of the drive until it stops. This action releases the LBA leader pin.
7. Rotate the threader intermediate gear ( 1 ) counterclockwise until the leader block is in front of the read/write head. This action moves the LBA out of the cartridge.
Procedure
1. With the front of the drive facing you, pull an arm's length of tape out of the take up reel from the left side of the drive.
Note: If there is less than approximately 5 cm (2 in.) of tape on the take up reel, go to Full height drive: Tape pulled from or broken near leader pin.
2. From the supply reel inside the cartridge, pull approximately 0.3 m (1 ft.) of tape.
3. From the take up reel, thread tape around the rear of the tape path and over the head rollers on the left side of the drive.
4. Moisten a cotton swab with water, and wet approximately 13 mm (0.5 in.) of the tape end. Overlap the tape ends, loosely mending them together.
5. Set the drive on its left side with the head and tape path facing up.
6. From the bottom of the drive, locate the access hole ( 1 in Figure 1) in the bottom cover. Insert a 2.5 mm offset hex wrench through the bottom cover access hole
and into the reel motor axle. Begin spooling tape back into the cartridge by turning the hex wrench clockwise.
Procedure
1. With the front of the drive facing you, pull an arm's length of tape out of the takeup reel. From the takeup reel, thread tape around the rear of the tape path and over
the head rollers on the left side of the drive.
Note: If there is less than approximately 5 cm (2 in.) of tape on the takeup reel, go to Half height drive: Tape pulled from or broken near leader pin.
2. From the supply reel inside the cartridge, pull approximately 0.3 m (1 ft.) of tape.
3. Ensure that the tape is not twisted. Untwist the tape if required
4. Moisten a cotton swab with water, and wet approximately 13 mm (0.5 in.) of the tape end. Overlap the tape ends, loosely mending them together.
5. Set the drive on its left side with the head and tape path facing up
6. Turn the supply reel ( 4 ) clockwise, carefully guiding the mended portion of the tape to wind around the hub of the supply reel that is located inside the cartridge.
Continue spooling into the cartridge until the tape is taut. The tape must remain within the flanges of the tape guiding rollers. Turn the supply reel ( 4 ) 10 more
turns. Ensure that you do not stretch the tape.
Procedure
1. Carefully pull out excess tape and untangle.
Note: If you find the tape to be broken, go to one of the following appropriate procedures:
Full height drive: Tape spooled off supply reel
Full height drive: Tape pulled from or broken near leader pin
--OR--
3. From the bottom of the drive, locate the access hole ( 1 in Figure 1).
4. Insert a 2.5 mm offset hex wrench through the bottom cover access hole and into the reel motor axle. Begin spooling the tape back into the cartridge by turning the
hex wrench clockwise.
5. Continue spooling into the cartridge until the tape is taut and remains within the flanges of the tape guiding rollers. Ensure that you do not stretch the tape.
6. Locate the threader motor worm gear ( 4 in Figure 2) on the rear of the drive. Use your finger to rotate the treader motor worm gear and slowly rotate the threader
mechanism gear ( 6 in Figure 2) clockwise.
This action rotates the threader motor worm gear ( 4 in Figure 2) clockwise, drawing the LBA into the cartridge.
Procedure
1. Carefully pull out excess tape and untangle.
Note: If you find the tape to be broken, go to one of the following appropriate procedures:
Half height drive: Tape spooled off supply reel
Half height drive: Tape pulled from or broken near leader pin
–OR–
Procedure
1. Set the drive on its left side with the head and tape path facing up.
2. From the bottom of the drive, locate the access hole ( 1 in Figure 1).
3. Insert a 2.5 mm offset hex wrench through the bottom cover access hole and into the reel motor axle. Begin spooling the tape back into the cartridge by turning the
hex wrench clockwise.
4. Continue spooling into the cartridge until the tape is taut and remains within the flanges of the tape guiding rollers. Ensure that you do not stretch the tape.
5. Locate the threader motor worm gear ( 4 in Figure 2) on the rear of the drive. Use your finger to rotate the threader motor worm gear and slowly rotate the threader
mechanism gear ( 6 in Figure 2) clockwise.
This action rotates the threader motor worm gear ( 4 in Figure 2) clockwise, drawing the LBA into the cartridge.
10. Continue rotating the loader motor worm gear ( 1 in Figure 2) until the rotator stub ( 3 in Figure 2) is positioned as shown. Notice that the rotator stub ( 3 in Figure
2) is nearly aligned with the cartridge loader tray guide bearing ( 2 in Figure 2).
11. Remove the cartridge from the cartridge loader tray.
12. Go to Ending procedure.
Procedure
1. Set the drive on its left side with the head and tape path facing up.
Ending procedure
Edit online
Procedure
1. Reassemble the drive brick by reversing the steps in Removing the drive cover.
2. Reassemble the drive sled and reinstall the drive brick by completing these steps:
Plug in the RS-422 cable, the power cable (if applicable), and the signal cable.
Push the drive brick fully into the sled.
Align the two screws holes on each side of the sled with the screw holes on each side of the drive brick. DO NOT TIGHTEN THE SCREWS COMPLETELY.
When the drive and sled are properly aligned, fully tighten the screws.
3. Install the tape drive sled in the library.
4. Power ON the library and wait for the library to finish POST (power on self test), inventory, and mid-tape recovery. This step can take up to 1 hour.
5. If the cartridge does not eject from the drive, move the cartridge from the drive to the I/O station, then discard the cartridge.
Operator Panel: Operation > Move Cartridge from Drive to Home Slot
Management GUI: Drives > Actions > Eject Cartridge from Drive
6. Run Library Verify before normal library operations resume.
7. If necessary, return the failed drive sled to IBM.
Accessibility
Edit online
Accessibility features help a user who has a physical disability, such as restricted mobility or limited vision, to use the HTML version of the customer documentation
successfully.
Features
The major accessibility features for the HTML version of this document are:
You can use screen-reader software and a digital speech synthesizer to hear what is displayed on the screen. The following screen readers are tested: WebKing and
Window-Eyes.
Navigating by keyboard
You can use keys or key combinations to complete operations and initiate many menu actions that are also done through mouse actions. You can navigate the HTML
version of the IBM® TS4300 Tape Library User's Guide help system from the keyboard with the following key combinations:
To traverse to the next link, button, or topic, press Tab inside a frame (page).
To move to the previous topic, press ^ or Shift+Tab.
To scroll all the way up or down, press Home or End.
To print the current page or active frame, press Ctrl+P.
To select, press Enter.
Notices
Edit online
This information was developed for products and services that are offered in the US. This material might be available from IBM in other languages. However, you might be
required to own a copy of the product or product version in that language in order to access it.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products
and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or
service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is
the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license
to these patents. You can send license inquiries, in writing, to:
For license inquiries regarding double-byte character set (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in
writing, to:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some
jurisdictions do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated
in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without
notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any manner serve as an endorsement of those websites. The
materials at those websites are not part of the materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and
other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact:
Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM
International Program License Agreement or any equivalent agreement between us.
The performance data discussed herein is presented as derived under specific operating conditions. Actual results may vary.
The client examples cited are presented for illustrative purposes only. Actual performance results may vary depending on specific configurations and operating conditions.
The performance data and client examples cited are presented for illustrative purposes only. Actual performance results may vary depending on specific configurations
and operating conditions.
Statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only.
All IBM prices shown are IBM's suggested retail prices, are current and are subject to change without notice. Dealer prices may vary.
This information is for planning purposes only. The information herein is subject to change before the products described become available.
This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of
individuals, companies, brands, and products. All of these names are fictitious and any similarity to actual people or business enterprises is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy,
modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs
conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly
tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. The sample programs are provided "AS IS",
without warranty of any kind. IBM shall not be liable for any damages arising out of your use of the sample programs.
Each copy or any portion of these sample programs or any derivative work
must include a copyright notice as follows:
© (your company name) (year).
Portions of this code are derived from IBM Corp. Sample Programs.
© Copyright IBM Corp. _enter the year or years_.
If you are viewing this information softcopy, the photographs and color illustrations may not appear.
Visit the IBM Privacy Policy for additional information on this topic at https://www.ibm.com/privacy/details/us/en/.
Trademarks
A list of trademarks for IBM and other companies.
Terms and conditions for product documentation
Permissions for the use of these publications are granted subject to the following terms and conditions.
Homologation statement
This product may not be certified in your country for connection by any means whatsoever to interfaces of public telecommunications networks. Further
certification may be required by law prior to making any such connection. Contact an IBM representative or reseller for any questions.
Electromagnetic compatibility notices
The following Class A statements apply to IBM products and their features unless designated as electromagnetic compatibility (EMC) Class B in the feature
information.
Safety and environmental notices
Trademarks
Edit online
A list of trademarks for IBM and other companies.
IBM®, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other
product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the web at Copyright and trademark
information at www.ibm.com/legal/copytrade.shtml.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or
other countries.
IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part of the Office of Government Commerce.
Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered
trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
ITIL is a registered trademark, and a registered community trademark of The Minister for the Cabinet Office, and is registered in the U.S. Patent and Trademark Office.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.
Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other countries, or both and is used under license therefrom.
Linear Tape-Open, LTO, the LTO Logo, Ultrium, and the Ultrium logo are trademarks of HP, IBM Corp. and Quantum in the U.S. and other countries.
Visit the IBM Privacy Policy for additional information on this topic at https://www.ibm.com/privacy/details/us/en/.
Applicability
These terms and conditions are in addition to any terms of use for the IBM website.
Personal use
You can reproduce these publications for your personal, noncommercial use provided that all proprietary notices are preserved. You cannot distribute, display, or make
derivative work of these publications, or any portion thereof, without the express consent of IBM.
Commercial use
You can reproduce, distribute, and display these publications solely within your enterprise provided that all proprietary notices are preserved. You cannot make derivative
works of these publications, or reproduce, distribute, or display these publications or any portion thereof outside your enterprise, without the express consent of IBM.
Rights
Except as expressly granted in this permission, no other permissions, licenses, or rights are granted, either express or implied, to the Publications or any information, data,
software or other intellectual property contained therein.
IBM reserves the right to withdraw the permissions that are granted herein whenever, in its discretion, the use of the publications is detrimental to its interest or as
determined by IBM, the above instructions are not being properly followed.
You cannot download, export, or reexport this information except in full compliance with all applicable laws and regulations, including all United States export laws and
regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A
PARTICULAR PURPOSE.
IBM trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other
product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available at http://www.ibm.com/legal/copytrade.shtml.
Homologation statement
Edit online
This product may not be certified in your country for connection by any means whatsoever to interfaces of public telecommunications networks. Further certification may
be required by law prior to making any such connection. Contact an IBM representative or reseller for any questions.
When attaching a monitor to the equipment, you must use the designated monitor cable and any interference suppression devices that are supplied with the monitor.
Canada Notice
European Community and Morocco Notice
Germany Notice
Japan Electronics and Information Technology Industries Association (JEITA) Notice
Japan Voluntary Control Council for Interference (VCCI) Notice
Korea Notice
People's Republic of China Notice
Russia Notice
Canada Notice
Edit online
CAN ICES-3 (A)/NMB-3(A)
This product may cause interference if used in residential areas. Such use must be avoided unless the user takes special measures to reduce electromagnetic emissions to
prevent interference to the reception of radio and television broadcasts.
Warning: This equipment is compliant with Class A of CISPR 32. In a residential environment this equipment may cause radio interference.
Germany Notice
Edit online
Deutschsprachiger EU Hinweis: Hinweis für Geräte der Klasse A EU-Richtlinie zur Elektromagnetischen Verträglichkeit
Dieses Produkt entspricht den Schutzanforderungen der EU-Richtlinie 2014/30/EU zur Angleichung der Rechtsvorschriften über die elektromagnetische Verträglichkeit in
den EU-Mitgliedsstaatenund hält die Grenzwerte der EN 55032 Klasse A ein.
Um dieses sicherzustellen, sind die Geräte wie in den Handbüchern beschrieben zu installieren und zu betreiben. Des Weiteren dürfen auch nur von der IBM empfohlene
Kabel angeschlossen werden. IBM übernimmt keine Verantwortung für die Einhaltung der Schutzanforderungen, wenn das Produkt ohne Zustimmung von IBM verändert
bzw. wenn Erweiterungskomponenten von Fremdherstellern ohne Empfehlung von IBM gesteckt/eingebaut werden.
Deutschland: Einhaltung des Gesetzes über die elektromagnetische Verträglichkeit von Geräten
Dieses Produkt entspricht dem "Gesetz über die elektromagnetische Verträglichkeit von Geräten (EMVG)." Dies ist die Umsetzung der EU-Richtlinie 2014/30/EU in der
Bundesrepublik Deutschland.
Zulassungsbescheinigung laut dem Deutschen Gesetz über die elektromagnetische Verträglichkeit von Geräten (EMVG) (bzw. der EMC Richtlinie 2014/30/EU) für
Geräte der Klasse A
Dieses Gerät ist berechtigt, in Übereinstimmung mit dem Deutschen EMVG das EG-Konformitätszeichen - CE - zu führen.
Generelle Informationen:
Das Gerät erfüllt die Schutzanforderungen nach EN 55024 und EN 55032 Klasse A.
Korea Notice
Edit online
Russia Notice
Edit online
CNS 13438
警告使用者 :
此為甲類資訊技術設備,
於居住環境中使用時,可
能會造成射頻擾動,在此
種情況下,使用者會被要
求採取某些適當的對策。
CNS 15936
警告:為避免電磁干擾,本產品不應安裝或使用於住宅環境。
IBM Taiwan Contact Information:
Properly shielded and grounded cables and connectors must be used in order to meet FCC emission limits. IBM® is not responsible for any radio or television interference
caused by using other than recommended cables and connectors, or by unauthorized changes or modifications to this equipment. Unauthorized changes or modifications
could void the user's authority to operate the equipment.
This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions:
(1) this device might not cause harmful interference, and (2) this device must accept any interference received, including interference that might cause undesired
operation.
Responsible Party:
International Business Machines Corporation
New Orchard Road
Armonk, NY 10504
Contact for FCC compliance information only: fccinfo@us.ibm.com
Most danger or caution notices contain a reference number (Dxxxx or Cxxxx). Use the reference number to check the translation in the IBM Systems Safety Information
(G229-9054) publication included in your ship group.
The sections that follow define each type of safety notice and give examples.
Danger notices
A danger notice calls attention to a situation that is potentially lethal or extremely hazardous to people. A lightning bolt symbol always accompanies a danger notice to
represent a dangerous electrical condition.
To prevent a possible shock from touching two surfaces with different protective ground(earth), use one hand, when possible, to connect or
disconnect signal cables. (D001)
Overloading a branch circuit is potentially a fire hazard and a shock hazard under certain conditions. To avoid these hazards, ensure that your system
electrical requirements do not exceed branch circuit protection requirements. Refer to the information that is provided with your device or the power
rating label for electrical specifications. (D002)
If the receptacle has a metal shell, do not touch the shell until you have completed the voltage and grounding checks. Improper wiring or grounding
could place dangerous voltage on themetal shell. If any of the conditions are not as described, STOP. Ensure the improper voltage or impedance
conditions are corrected before proceeding.(D003)
An electrical outlet that is not correctly wired could place hazardous voltage on the metal parts of the system or the devices that attach to the system.
It is the responsibility of the customer to ensure that the outlet is correctly wired and grounded to prevent an electrical shock.(D004)
When working on or around the system, observe the following precautions:
Electrical voltage and current from power, telephone, and communication cables are hazardous. To avoid a shock hazard:
If IBM supplied a power cord(s), connect power to this unit only with the IBM provided power cord. Do not use the IBM provided power cord for
any other product.
Do not open or service any power supply assembly.
Do not connect or disconnect any cables or perform installation, maintenance, or reconfiguration of this product during an electrical storm.
The product might be equipped with multiple power cords. To remove all hazardous voltages, disconnect all power cords.
For AC power, disconnect all power cords from their AC power source.
For racks with a DC power distribution panel (PDP), disconnect the customer’s DC powersource to the PDP.
When connecting power to the product ensure all power cables are properly connected.
For racks with AC power, connect all power cords to a properly wired and grounded electrical outlet. Ensure that the outlet supplies
proper voltage and phase rotation according to the system rating plate.
For racks with a DC power distribution panel (PDP), connect the customer’s DC power source to the PDP. Ensure that the proper polarity
is used when attaching the DC power and DC power return wiring.
Connect any equipment that will be attached to this product to properly wired outlets.
When possible, use one hand only to connect or disconnect signal cables.
Never turn on any equipment when there is evidence of fire, water, or structural damage.
Do not attempt to switch on power to the machine until all possible unsafe conditions are corrected.
Assume that an electrical safety hazard is present. Perform all continuity, grounding, and power checks specified during the subsystem
installation procedures to ensure that the machine meets safety requirements.
Do not continue with the inspection if any unsafe conditions are present.
Before you open the device covers, unless instructed otherwise in the installation and configuration procedures: Disconnect the attached AC
power cords, turn off the applicable circuit breakers located in the rack power distribution panel (PDP), and disconnect any telecommunications
systems, networks, and modems.
Connect and disconnect cables as described in the following procedures when installing, moving, or opening covers on this product or attached
devices.
To disconnect:
To connect:
Heavy equipment - personal injury or equipment damage might result if mishandled. (D006)
Uninterruptible power supply (UPS) units contain specific hazardous materials. Observe the following precautions if your product contains a UPS:
The UPS contains lethal voltages. All repairs and service must be performed only by an authorized service support representative. There are no
user serviceable parts inside the UPS.
The UPS contains its own energy source (batteries). The output receptacles might carry live voltage even when the UPS is not connected to an
AC supply.
Do not remove or unplug the input cord when the UPS is turned on. This removes the safety ground from the UPS and the equipment connected
to the UPS.
The UPS is heavy because of the electronics and batteries that are required. To avoid injury,observe the following precautions:
Do not attempt to lift the UPS by yourself. Ask another service representative for assistance.
Remove the battery, electronics assembly, or both from the UPS before removing the UPS from the shipping carton or installing or
removing the UPS in the rack.
(D007)
Professional movers are to be used for all relocation activities. Serious injury or death might occur if systems are handled and moved incorrectly.
(D008)
Ensure that your DC mains supply is earthed at the point of generation per IEC 60950-1and ITU-T Recommendation K.27. (D009)
Serious injury or death can occur if loaded lift tool falls over or if a heavy load falls off the lift tool. Always completely lower the lift tool load plate and
properly secure the load on the lift tool before moving or using the lift tool to lift or move an object. (D010)
DANGER
Multiple power cords. The product might be equipped with multiple AC power cords or multiple DC power cables. To remove all hazardous voltages,
disconnect all power cords and power cables. (L003)
Caution notices
A caution notice calls attention to a situation that is potentially hazardous to people because of some existing condition, or to a potentially dangerous situation that might
develop because of some unsafe practice.
The doors and covers to the product are to be closed at all times except for service by trained service personnel. All covers must be replaced and
doors closed at the conclusion of the service operation. (C013)
This product is equipped with a 3-wire (two conductors and ground) power cable and plug. Use this power cable with a properly grounded electrical
outlet to avoid electrical shock. (C018)
This assembly contains mechanical moving parts. Use care when servicing this assembly. (C025)
A caution notice can be accompanied by one of several symbols:
If the symbol
It means...
is...
A generally hazardous condition not represented by other safety symbols.
A hazardous condition due to the use of a laser in the product. Laser symbols are always accompanied by the classification of the laser as defined by
the U. S. Department of Health and Human Services (for example, Class I, Class II, and so forth).
Risk of hand pinching, can trap hands, fingers and cause serious injury. Keep hands clear during operation (L012).
The weight of this part or unit is between 18 and 32 kg (39.7 and 70.5 lb). It takes two persons to safely lift this part or unit. (C009)
Electrical
An electrically charged frame can cause serious electrical shock.
Mechanical
Hazards (for example, a safety cover missing) are potentially harmful to people.
Chemical
Do not use solvents, cleaners, or other chemicals that are not approved for use on this product.
The product might contain a laser assembly that complies with the performance standards set by the US Food and Drug Administration for a Class I laser product. Class I
laser products do not emit hazardous laser radiation. The product has the necessary protective housing and scanning safeguards to ensure that laser radiation is
inaccessible during operation or is within Class I limits. External safety agencies reviewed the product and obtained approvals to the latest standards as they apply.
Acclimation
Edit online
Server and storage equipment (racks and frames) must be gradually acclimated to the surrounding environment to prevent condensation.
When server and storage equipment (racks and frames) is shipped in a climate where the outside temperature is below the dew point of the destination (indoor location),
there is a possibility that water condensation can form on the cooler inside and outside surfaces of the equipment when the equipment is brought indoors.
Sufficient time must be allowed for the shipped equipment to gradually reach thermal equilibrium with the indoor environment before you remove the shipping bag and
energize the equipment. Follow these guidelines to properly acclimate your equipment:
Leave the system in the shipping bag. If the installation or staging environment allows it, leave the product in the full package to minimize condensation on or within
the equipment.
Allow the packaged product to acclimate for 24 hours.1 If there are visible signs of condensation (either external or internal to the product) after 24 hours,
acclimate the system without the shipping bag for an additional 12 - 24 hours or until no visible condensation remains.
Acclimate the product away from perforated tiles or other direct sources of forced air convection to minimize excessive condensation on or within the equipment.
Note: Condensation is a normal occurrence, especially when you ship equipment in cold-weather climates. All IBM® products are tested and verified to withstand
condensation that is produced under these circumstances. When sufficient time is provided to allow the hardware to gradually acclimate to the indoor environment, there
should be no issues with long-term reliability of the product.
1. Stop all activities between the host and the library’s tape drives.
2. Turn off the power to the library by pushing in the Power button on the front of the tape library for 4 seconds.
3. Unplug the library’s power cord from the electrical outlet and the library’s power supply unit.
4. Check the library’s power cords for damage, such as a pinched, cut, or frayed cord.
5. If drives are FC/SAS attached, check the tape drive's FC/SAS cable for damage.
6. Check the top and bottom covers of the library for sharp edges, damage, or alterations that expose its internal parts.
7. Check the top and bottom covers of the library for proper fit. They must be in place and secure.
8. Check the product label at the rear of the library to make sure that it matches the voltage at your outlet.
Rack safety
Edit online
The following general safety information must be used for all rack-mounted devices.
DANGER
Observe the following precautions when working on or around your IT rack system.
Each rack cabinet might have more than one power cord.
For AC powered racks, be sure to disconnect all power cords in the rack cabinet when directed to disconnect power during servicing.
For racks with a DC power distribution panel (PDP), turn off the circuit breaker that controls the power to the system unit(s), or disconnect the customer’s DC
power source, when directed to disconnect power during servicing.
Connect all devices installed in a rack cabinet to power devices installed in the same rack cabinet. Do not plug a power cord from a device installed in one rack
cabinet into a power device installed in a different rack cabinet.
An electrical outlet that is not correctly wired could place hazardous voltage on the metal parts of the system or the devices that attach to the system. It is the
responsibility of the customer to ensure that the outlet is correctly wired and grounded to prevent an electrical shock. (R001 part 1 of 2)
Caution
Do not install a unit in a rack where the internal rack ambient temperatures might exceed the manufacturer's recommended ambient temperature for all your rack-
mounted devices.
Do not install a unit in a rack where the air flow is compromised. Ensure that air flow is not blocked or reduced on any side, front, or back of a unit that is used for air
flow through the unit.
Consideration must be given to the connection of the equipment to the supply circuit so that overloading of the circuits does not compromise the supply wiring or
overcurrent protection. To provide the correct power connection to a rack, refer to the rating labels on the equipment in the rack to determine the total power
requirement of the supply circuit.
(For sliding drawers) Do not pull out or install any drawer or feature if the rack stabilizer brackets are not attached to the rack. Do not pull out more than one drawer
at a time. The rack might become unstable if you pull out more than one drawer at a time.
(For fixed drawers) This drawer is a fixed drawer and must not be moved for servicing unless specified by the manufacturer. Attempting to move the drawer partially
or out of the rack might cause the rack to become unstable or cause the drawer to fall out of the rack. (R001 part 2 of 2)
Removing components from the upper positions in the rack cabinet improves rack stability during relocation. Follow these general guidelines whenever you relocate a
populated rack cabinet within a room or building:
Reduce the weight of the rack cabinet by removing equipment, starting at the top of the rack cabinet. When possible, restore the rack cabinet to the configuration of
the rack cabinet as you received it. If this configuration is not known, you must do the following:
Remove all devices in the 32U position (compliance ID RACK-001) or 22U (compliance ID RR001) and above.
Ensure that the heaviest devices are installed in the bottom of the rack cabinet.
Ensure that there are little-to-no empty U-levels between devices installed in the rack-cabinet below the 32U (compliance ID RACK-001) or 22U (compliance
ID RR001) level, unless the received configuration specifically allowed it.
If the rack cabinet you are relocating is part of a suite of rack cabinets, detach the rack cabinet from the suite.
If the rack cabinet you are relocating was supplied with removable outriggers, they must be reinstalled before the cabinet is relocated.
Inspect the route that you plan to take to eliminate potential hazards.
Verify that the route that you choose can support the weight of the loaded rack cabinet. Refer to the documentation that comes with your rack cabinet for the
weight of a loaded rack cabinet.
Verify that all door openings are at least 760 x 2032 mm (30 x 80 in.).
Ensure that all devices, shelves, drawers, doors, and cables are secure.
Ensure that the four leveling pads are raised to their highest position.
Ensure that no stabilizer bracket is installed on the rack cabinet during movement.
Do not use a ramp that is inclined at more than 10 degrees.
When the rack cabinet is in the new location, complete these steps.
Lower the four leveling pads.
Install stabilizer brackets on the rack cabinet or in an earthquake environment bolt the rack to the floor.
If you removed any devices from the rack cabinet, repopulate the rack cabinet from the lowest position to the highest position.
If a long-distance relocation is required, restore the rack cabinet to the configuration of the rack cabinet as you received it. Pack the rack cabinet in the original
packaging material, or equivalent. Also, lower the leveling pads to raise the casters off the pallet and bolt the rack cabinet to the pallet. (R002)
DANGER
Racks with a total weight of > 227 kg (500 lb.), Use Only Professional Movers! (R003)
Caution
Rack is not intended to serve as an enclosure and does not provide any degrees of protection required of enclosures.
It is intended that equipment installed within this rack will have its own enclosure. (R005)
Tighten the stabilizer brackets until they are flush against the rack. (R006)
Use safe practices when lifting. (R007)
Do not place any object on top of a rack-mounted device unless that rack-mounted device is intended for use as a shelf. (R008)
If the rack is designed to be coupled to another rack only the same model rack should be coupled together with another same model rack. (R009)
Danger
Main Protective Earth (Ground): This symbol is marked on the frame of the rack. The PROTECTIVE EARTHING CONDUCTORS must be terminated at that point. A
recognized or certified closed loop connector (ring terminal) must be used and secured to the frame with a lock washer using a boltor stud. The connector must be
properly sized to be suitable for the bolt or stud, the locking washer, the rating for the conducting wire used, and the considered rating of the breaker. The intent is to
ensure the frame is electrically bonded to the PROTECTIVE EARTHING CONDUCTORS. The hole that the bolt or stud goes into where the terminal connector and the lock
washer contact must be free of any non-conductive material to allow for metal to metal contact. All PROTECTIVE BONDING CONDUCTORS must terminate at this main
Always ensure that a load of 95 kg (210 lb) is inside the bottom of the rack (compliance ID RR001), especially before relocating or servicing units with their Center of
Gravity (CoG) higher than 22U. (R011)
Power Cords
Edit online
For your safety, IBM provides a power cord with a grounded attachment plug to use with this IBM product. To avoid electrical shock, always use the power cord and plug
with a properly grounded outlet.
For units intended to be operated at 115 volts: Use a UL-listed and CSA-certified cord set consisting of a minimum 18 AWG, Type SVT or SJT, three-conductor cord, a
maximum of 15 feet in length and a parallel blade, grounding-type attachment plug rated 15 amperes, 125 volts.
For units intended to be operated at 230 volts (U.S. use): Use a UL-listed and CSA-certified cord set consisting of a minimum 18 AWG, Type SVT or SJT, three-conductor
cord, a maximum of 15 feet in length and a tandem blade, grounding-type attachment plug rated 15 amperes, 250 volts.
For units intended to be operated at 230 volts (outside the U.S.): Use a cord set with a grounding-type attachment plug. The cord set should have the appropriate safety
approvals for the country in which the equipment will be installed.
IBM power cords for a specific country or region are usually available only in that country or region.
Glossary
Edit online
This glossary defines the special terms, abbreviations, and acronyms that are used in this publication. If you do not find the term that you are looking for, refer to the index
or to the Dictionary of Computing, 1994.
Numbers
2:1 compression
The relationship between the quantity of data that can be stored with compression as compared to the quantity of data that can be stored without compression. In
2:1 compression, twice as much data can be stored with compression as can be stored without compression.
2.5:1 compression
The relationship between the quantity of data that can be stored with compression as compared to the quantity of data that can be stored without compression. In
2.5:1 compression, two-and-a-half times as much data can be stored with compression as can be stored without compression.
3U
This library requires 3 units (3U) of rack space.
A
A
Ampere.
AC
Alternating current.
Access method
A technique for moving data between main storage and input or output devices.
Accessor
This component contains the library robot and bar code reader. The accessor moves cartridges to and from the I/O Station, storage slots, and tape drives.
Adapter card
A circuit board that adds function to a computer.
Adj
Adjustment.
Administrator (Admin)
The Admin role has access to all menus. The default password is adm001, and the default PIN is 0000.
AH
Authentication Header. An Internet Protocol intended to guarantee connectionless integrity and data origin authentication of IP datagrams. Further, it can optionally
protect against replay attacks by using the sliding window technique and discarding old packets.
AIX®
Advanced Interactive Executive. IBM®'s implementation of the UNIX operating system. The System p system, among others, uses AIX as its operating system.
Alphanumeric
Pertaining to a character set that contains letters, numerals, and other characters, such as punctuation marks.
Alter
To change.
Ambient temperature
The temperature of air or other media in a designated area, particularly the area that is surrounding equipment.
AME
Application Managed Encryption.
ampere (A)
A unit of measure for electric current that is equivalent to a flow of 1 coulomb per second, or to the current produced by 1 volt applied across a resistance of 1 ohm.
ANSI
American National Standards Institute.
API
Application planning interface. A set of clearly defined methods of communication between various software components.
Application-managed encryption
Tape encryption that is controlled by an application.
Archive
To collect and store files in a designated place.
ASCII
American National Standard Code for Information Interchange. A 7 bit coded character set (8 bits including parity check) that consists of control characters and
graphic characters.
Assigning a device
The establishing of the relationship of a device to a running task, process, job, or program.
Assignment
B
Backup
To make extra copies of documents or software for safekeeping.
Bar code
A code that represents characters by sets of parallel bars of varying thickness and separation, which are read optically by transverse scanning.
Bar code label
Paper bearing a bar code and having an adhesive backing. The bar code label must be affixed to a tape cartridge to enable the library to identify the cartridge and its
volume serial number.
Bar code reader
A laser device that is specialized for scanning and reading bar codes and converting them into either the ASCII or EBCDIC digital character code.
Bezel
Decorative and safety cover.
Bicolored
Having two colors.
bit
Either of the digits 0 or 1 when used in the binary numbering system.
BOM or bill of materials
A list of specific types and amounts of direct materials that are expected to be used to produce a specific job or quantity of output.
Border Gateway Protocol (BGP)
BGP is the core routing protocol of the Internet. It works by maintaining a table of IP networks or 'prefixes' that designate network reachability among autonomous
systems (AS).
BRMS
Backup Recovery and Media Services.
Browser
A client program that initiates requests to a web server and displays the information that the server returns.
Buffer
A routine or storage that is used to compensate for a difference in rate of flow of data or time of occurrence of events, when data is transferred from one device to
another.
Bus
A facility for transferring data between several devices that are located between two end points, only one device able to transmit at a specified moment.
byte
A string that consists of some bits (usually 8) that are treated as a unit and represent a character. A fundamental data unit.
C
CA
Certificate Authority.
CA certification
In cryptography, a certificate from a certificate authority (CA).
Capacity
The amount of data that can be contained on storage media and expressed in bytes of data.
Cartridge manual rewind tool
A device that can be fitted into the reel of a cartridge and used to rewind tape into or out of the cartridge.
Cartridge memory (CM)
Within each data cartridge, an embedded electronics and interface module that can store and retrieve a cartridge's historical usage and other information.
Cartridge storage slot
Individual slot that is located within a magazine that is used to house tape cartridges.
Caution (notice)
A word to call attention to possible personal harm to people. Contrast with attention and danger.
CD
Compact Disc. A disc, usually 4.75 inches in diameter, from which data is read optically by using a laser.
CE
Customer engineer, field engineer, service representative.
Centimeter (cm)
One one-hundredth of a meter (0.01 m). Approximately 0.39 inches.
Channel command
An instruction that directs a data channel, control unit, or device to run an operation or set of operations.
Char
Character.
CHK
Check.
Cleaning cartridge
A tape cartridge that is used to clean the heads of a tape drive. Contrast with data cartridge.
CM
Cartridge Memory. Within each data cartridge, an embedded electronics and interface module that can store and retrieve a cartridge's historical usage and other
information.
CoD
D
Danger (notice)
A word to call attention to possible lethal harm to people. Contrast with attention and caution.
Data
Any representations such as characters or analog quantities to which meaning is or might be assigned.
Data buffer
The storage buffer in the control unit. This buffer is used to increase the data transfer rate between the control unit and the channel.
Data cartridge
A tape cartridge that is dedicated to storing data. Contrast with cleaning cartridge.
Data check
A synchronous or asynchronous indication of a condition that is caused by invalid data or incorrect positioning of data.
DC
Direct current.
DCS
Designated Cleaning Slot.
Degauss
Makes a magnetic tape nonmagnetic by using electrical coils that carry currents that neutralize the magnetism of the tape.
Degausser
A device that makes magnetic tape nonmagnetic.
Degradation
A decrease in quality of output or throughput or an increase in machine error rate.
Degraded
Decreased in quality of output or throughput or increased machine error rate.
Deserialize
To change from serial-by-bit to parallel-by-byte.
Detented
A part that is held in position with a catch or lever.
Device
Any hardware component or peripheral device, such as a tape drive or tape library, that can receive and send data.
Device driver
A file that contains the code that is needed to use an attached device.
DHCPv6
The Dynamic Host Configuration Protocol for IPv6. Although IPv6's stateless address autoconfiguration removes the primary motivation for DHCP in IPv4, DHCPv6
can still be used to statefully assign addresses if the network administrator wants more control over addressing.
DH group
Diffie-Hellman group.
DIAG
Diagnostic section of maintenance information manual.
Differential
See High Voltage Differential (HVD).
Direct-access storage
A storage device in which the access time is independent of the location of the data.
Display contrast
The brightness of the display on the Operator Panel.
DLL
Dynamic Link Library. The Microsoft implementation of the shared library concept. These libraries usually have the file extension dll, ocs (for libraries that contain
activeX controls, or drv (for legacy system drivers).
E
EBCDIC
Extended binary-coded decimal interchange code.
EC
Edge connector. Engineering change.
ECC
Error correction code.
EEB
Ethernet Expansion Blade.
EEPROM
Electrically erasable programmable read-only memory.
EIA
Electronics Industries Association.
EIA unit
A unit of measure, which is established by the Electronic Industries Association, equal to 44.45 millimeters (1.75 inches).
Eject
To remove or force out from within.
EKM
Encryption Key Manager.
Electronic mail
Correspondence in the form of messages that are transmitted between user terminals over a computer network.
Email
See electronic mail.
Encryption
A method of storing data in a format that helps protect data from inadvertent or deliberate compromise. An encryption-enabled drive contains the necessary
hardware and firmware to encrypt and decrypt host tape application data. Encryption policy and encryption keys are provided by the host application or host server.
Encryption key manager (EKM)
A software program that assists IBM-encrypting tape drives in generating, protecting, storing, and maintaining encryption keys that encrypt information that is
written to and decrypt information that is read from tape media.
Entitlement
IBM Entitlement is the official right to receive service and support for your tape library.
EPO
Emergency power off.
EPROM
Erasable programmable read only memory.
EQC
Equipment check.
Equipment check
An asynchronous indication of a malfunction.
Error log
A data set or file in a product or system where error information is stored for later access.
ESD
Electrostatic discharge.
ESP
Encapsulating Security Payload. An Internet Protocol that provides origin authenticity, integrity, and confidentiality protection of a packet. ESP also supports
encryption-only and authentication-only configurations, but encryption without authentication is discouraged because it is insecure.
F
FAT32
FAT stands for File Allocation Table. FAT32 is an extension which means that data is stored in chunks of 32 bits. Any USB flash drive that is used for updating
firmware or exporting logs for the TS4300 library must be in this format.
Fault symptom code (FSC)
A hexadecimal code that is generated by the drive or the control unit microcode in response to a detected subsystem error.
FC
G
g
Gram.
GB
gigabyte.
GBIC
Gigabit Interface Converter.
Gb/s
gigabits/second
Gbit
gigabit
gigabit (Gbit)
1 000 000 000 bits.
gigabyte (GB)
1 000 000 000 bytes.
Gigabit Interface Converter (GBIC)
Converts copper interface to optic interface.
Gnd
Ground.
GUI
Graphical User Interface
H
HBA
Host Bus Adapter.
HD Slot Technology
High-density (HD) slot technology. Allows multiple cartridges to be stored in a tiered architecture.
I
IBM Security Key Lifecycle Manager (SKLM)
IBM's EKM application that assists encrypting tape drives in generating, protecting, storing, and maintaining encryption keys that encrypt information that is written
to and decrypt information that is read from tape media.
IBM Spectrum Archive
Formerly known as Linear Tape File System (LTFS). A file system that works with LTO Generation tape technology to access data stored on an IBM tape cartridge.
IBM Ultrium Tape Drive
Located within the library, a data-storage device that controls the movement of the magnetic tape in an IBM LTO Ultrium Tape Cartridge. The drive houses the
mechanism (drive head) that reads and writes data to the tape.
ID
Identifier.
Identifier (ID)
(1) In programming languages, a lexical unit that names a language object. For example, the names of variables, arrays, records, labels, or procedures. An identifier
usually consists of a letter optionally followed by letters, digits, or other characters. (2) One or more characters that are used to identify or name data element and
possibly to indicate certain properties of that data element. (3) A sequence of bits or characters that identifies a program, device, or system to another program,
device, or system.
IEC
International Electrotechnical Commission.
IKE
Internet Key Exchange that is used in the IPSec protocol.
IML
Initial microprogram load.
Incompatible magazine
This message might display on the Operator Panel during library initialization. It occurs during factory restore or VPD. This message is not a real issue since it takes
time for the library to configure.
Initial microprogram load (IML)
The action of loading a microprogram from external storage to writable control storage.
Initiator
The component that runs a command. The initiator can be the host system or the tape control unit.
INST
Installation.
Interface
A shared boundary. An interface might be a hardware component to link two devices or it might be a portion of storage or registers accessed by two or more
computer programs.
Internet Key Exchange (IKE)
The protocol that is used to set up a security association (SA) in the IPSec protocol suite. See also Security Association (SA).
Internet Protocol Version 4 (IPv4)
See IPv4.
Internet Protocol Version 6 (IPv6)
See IPv6.
Interposer
The part that is used to convert a 68-pin connector to a 50-pin D-shell connector.
Intervention required
Manual action is needed.
INTRO
Introduction.
I/O
Input/output.
I/O Station
Cartridge location that is dedicated for the insertion of cartridges into and the removal of cartridges from the library.
IOP
Input/output processor.
IP
Internet Protocol.
IP address
An identifier for a computer or device on an Internet Protocol (TCP/IP) network. Networks that use the TCP/IP protocol route messages that are based on the IP
address of the destination. See IPv4 and IPv6.
IPL
Initial program load.
IPSec (IP Security)
A set of protocols for securing IPv6 network communications by authentication and encryption.
IP Stack
A TCP/IP protocol stack that manages static IP addresses.
K
Kerberos
Kerberos Authentication is a standard (RFC 1510) third-party authentication protocol that provides end-to-end security for distributed computing environments.
Key Path Diagnostics (KPD)
Key Path Diagnostics is a test tool that provides details to troubleshoot Encryption communication issues.
kilogram (kg)
1000 grams (approximately 2.2 pounds).
km
kilometer. 1000 Meters, Approximately 5/8 mile.
KMIP
Key Management Interoperability Protocol.
L
LAN
Local area network. A computer network within a limited area.
LCB
Library Control Blade.
LCD
See liquid crystal display.
LDAP
Lightweight Directory Access Protocol. This protocol allows the library to use login and password information that is stored on a server to grant access to the library
functions.
LDAPS
Secure LDAP over SSL.
LDI
Library Drive Interface.
LED
Light-emitting diode.
Library certification
In cryptography, a certificate that is provided by the library.
Library-managed encryption
Tape encryption that is controlled by the tape library.
Linear Tape-Open (LTO)
A type of tape storage technology that is developed by the IBM Corporation, Hewlett-Packard, and Quantum. LTO technology is an "open format" technology, which
means that its users have multiple sources of product and media. The "open" nature of LTO technology enables compatibility between different vendors' offerings
by ensuring that vendors comply with verification standards. The LTO technology is implemented in two formats: the Accelis format focuses on fast access; the
Ultrium format focuses on high capacity. The Ultrium format is the preferred format when capacity (rather than fast access) is the key storage consideration. An
Ultrium cartridge has a compressed data capacity of up to 30 TB (2.5:1 compression) and a native data capacity of up to 12 TB.
Liquid crystal display (LCD)
A low-power display technology that is used in computers and other I/O devices.
Loadable
The ability to be loaded.
LME
Library Managed Encryption.
LTO
See Linear Tape-Open.
LTO cartridge memory (LTO-CM)
Within each LTO Ultrium data cartridge, an embedded electronics and interface module that can store and retrieve a cartridge's historical usage and other
information.
LUN
Logical Unit Number.
LVD
SCSI Bus Low Voltage Differential.
M
M8
LTO 8 Type M Cartridge.
MAC address
The Media Access Control address of a computer networking device.
Magnetic tape
A tape with a magnetic surface layer on which data can be stored by magnetic recording.
MIM
Media information message.
mm
Millimeter.
Modifier
That which changes the meaning.
Monitor
The Monitor role is an interchangeable term corresponding to the User role. The Monitor role has viewing privileges to the unit, but is not able to make configuration
changes.
Mount a device
To assign an I/O device with a request to the operator.
MP
Microprocessor.
ms
Millisecond.
MSG
Message.
Multipath
Pertaining to using more than one path.
N
N/A
Not applicable.
Network Address Translation (NAT)
NAT involves rewriting the source or destination addresses of IP packets as they pass through a router or firewall. Most systems that use NAT do so to enable
multiple hosts on a private network to access the Internet over a single public IP address.
NEMA
National Electrical Manufacturers Association.
Node
In a network, a point at which one or more functional units connect channels or data circuits.
NTFS
New Technology File System. The primary file system that is used in Windows.
NTP
Network Time Protocol. This protocol allows the library to set its internal date and time that is based on the date and time of a server.
NVS
Nonvolatile storage. A storage device whose contents are not lost when power is cut off.
P
Parameter
A variable that is given a constant value for a specified application and that might denote the application.
p bit
Parity bit.
PC
Parity check.
PCC
Power® control compartment.
PDF
Portable Document Format.
PE
Parity error. Product engineer.
PFS
Perfect forward secrecy.
Pick
Pertaining to the library to remove, by using a robotic device, a tape cartridge from a storage slot or drive.
Picker
A robotic mechanism that is located inside the library that moves cartridges between the cartridge storage slots and the drive.
PM
Preventive maintenance.
POR
Power-on reset.
Port
A physical connection for communication between the 3590 and the host processor. The 3590 has 2 SCSI ports.
Portable Document Format (PDF)
A standard that is specified by Adobe Systems, Incorporated, for the electronic distribution of documents. PDF files are compact, can be distributed globally (by
way of email, the web, intranets, or CD-ROM), and can be viewed with the Acrobat Reader. Acrobat Reader is software from Adobe Systems that can be downloaded
at no cost from the Adobe Systems home page.
Private key
A cryptographic key that is used to decrypt a message.
PROM
Programmable read only memory.
PS
Power supply.
PTF
Program temporary fix. A single bugfix or group of bugfixes that are distributed in a form ready to install for customers.
PWR
Power.
R
Rack
A unit that houses the components of a storage subsystem, such as the library.
Rackmount kit
A packaged collection of articles that are used to install the rack-mounted version of the library.
RAM
Random access memory.
Random access memory
A storage device into which data is entered and from which data is retrieved in a nonsequential manner.
Random Mode
In Random mode, the library allows the server's (host's) application software to select any data cartridge in any order.
RAS
Reliability, availability, and serviceability.
Record
A collection of related data or words, which are treated as a unit.
Recording density
S
s
Seconds of time.
SAC
Service Action Code. Code that is developed to indicate possible FRU or FRUs to replace to repair the hardware.
SAN
Storage area network.
SAS
Serial Attached SCSI. A computer bus technology and serial communication protocol for direct attached storage devices. SAS is a replacement for parallel SCSI with
higher speeds, but still uses SCSI commands.
Scratch cartridge
A data cartridge that contains no useful data, but can be written to with new data.
SCD
Single Character Display.
SCSI
Small computer system interface.
SE
Single-ended.
Sequential Mode
Sequential Mode is intended to be used by host applications that aren’t supporting SCSI media changer devices but need to get another cartridge loaded if the
current cartridge is full.
Segment
A part.
Sel
Select.
Serial Attached SCSI (SAS)
A drive with a SAS interface can be linked directly to controllers. SAS is a performance improvement over traditional SCSI because SAS enables multiple devices (up
to 128) of different sizes and types to be connected simultaneously with thinner and longer cables. It supports full-duplex signal transmission up to 3 Gb/s. In
addition, SAS drives can be hot-plugged.
Serialize
To change from parallel-by-byte to serial-by-bit.
Serializer
A device that converts a space distribution of simultaneous states, which represents data into a corresponding time sequence of states.
Service
Access to this level is for Service personnel only - Service personnel have access to all menus.
Servo, servos
An adjective for use in qualifying some part or aspect of a servomechanism.
Servomechanism
A feedback control system in which at least one of the system signals represents mechanical motion.
Signature
Fast/Wide SCSI - Uses a 16-bit bus, and supports data rates of up to 20 MBps.
SCSI-1 - Uses an 8-bit bus, and supports data rates of 4 MBps.
SCSI-2 - Same as SCSI-1, but uses a 50-pin connector instead of a 25-pin connector, and supports multiple devices.
Ultra-SCSI - Uses an 8- or 16-bit bus, and supports data rates of 20 or 40 MBps.
Ultra2 SCSI - Uses an 8- or 16-bit bus and supports data rates of 40 or 80 MBps.
Ultra3 SCSI - Uses a 16-bit bus and supports data rates of 80 or 160 MBps.
Ultra160 SCSI - Uses a 16-bit bus and supports data rates of 80 or 160 MBps.
Ultra320 SCSI - Uses a 16-bit bus and supports data rates of 320 MBps.
SMI-S
See Storage Management Initiative Specification (SMI-S).
SMTP
Simple Mail Transfer Protocol. SMTP is a standard for email transmissions across the internet.
SNMP
Simple Network Management Protocol. SNMP is used by network management systems to monitor network-attached devices for conditions that warrant
administrative attention.
SNTP
Simple Network Time Protocol. Used to synchronize the clocks of network-attached devices.
SMW
Servo Manufacturer's Word.
SNS
Sense.
Special feature
A feature that can be ordered to enhance the capability, storage capacity, or performance of a product, but is not essential for its basic work.
SPI
Security Parameters Index.
SR
Service representative, see also CE.
SRAM
Static random access memory.
SS
Status store.
SSH
Secure Shell.
SSL (Secure Sockets Layer)
A set of cryptographic protocols for secure communications on the Internet for such things as web browsing, email, Internet faxing, instant messaging, and other
data transfer. SSL allows applications to communicate across a network in a way that is designed to prevent eavesdropping, tampering, and message forgery.
SSP
Serial SCSI Protocol.
ST
Store.
Standard feature
The significant design elements of a product that are included as part of the fundamental product.
START
Start maintenance.
StartTLS
Secure LDAP communication that uses TLS.
Storage Management Initiative Specification (SMI-S)
A storage standard that is developed and maintained by the Storage Networking Industry Association (SNIA). It is also ratified as an ISO standard. The main
objective of SMI-S is to enable broad interoperable management of heterogeneous storage vendor systems.
Subsystem
A secondary or subordinate system, capable of operating independently of, or asynchronously with, a controlling system.
Superuser
The Superuser role has access to most sections of the library menus.
SUPP
Support.
Sync
Synchronous, synchronize. Occurring with a regular or predictable time relationship.
T
Tachometer, tach
A device that emits pulses that are used to measure/check speed or distance.
Tape cartridge
A container that holds magnetic tape that can be processed without separating it from the container.
Tape void
U
UART
Universal asynchronous receiver/transmitter.
UID
Unit Identification.
UL
Underwriter's Laboratories.
Universal rack connector
A rackmount kit has four universal rack connectors as part of the kit. Each connector has two sides - one side is for round-hole racks, and the other side is for
square-hole racks. The square-hole side might be painted. The connectors are installed from the inside of the rack out, and the rails are hooked onto them. See
Figure 1.
Unload
Prepare the tape cartridge for removal from the drive.
User
The User role is an interchangeable term corresponding to the Monitor role. The User role has viewing privileges to the unit, but is not able to make configuration
changes.
Utilities
Utility programs.
Utility programs
A computer program in general support of the processes of a computer. For instance, a diagnostic program.
UV
Under voltage.
V
VOLSER
Volume serial number.
Volume
A certain portion of data, together with its data carrier, that can be handled conveniently as a unit.
VPD
Vital product data. The information that is contained within the tape drive that requires nonvolatile storage that is used by functional areas of the drive, and
information that is required for manufacturing, RAS, and engineering.
W
Web UI, Web GUI, Web User Interface
Management GUI
Word
A character string that is convenient for some purpose to consider as an entity.
Worldwide Node Name (WWNN)
A unique character string that identifies Fibre Channel Host Bus adapters (HBA).
WORM
Write Once, Read Many.
Write
Write command.
WT
World trade.
WWCID
Worldwide Cartridge Identifier.
X
XR
External register.
XRA
External register address register.
Publications
Edit online
The Publications section provides instructions to print selected IBM Documentation topics, and can help you locate other publications that are related to the libraries and
drives.
1. In the left navigation pane of the IBM Documentation, hover over or highlight the topic that you want to print.
2. Click or select the Open Quick Menu icon that is displayed to the right of the topic title. This icon is a gray circle that contains a downward-pointing arrow. The Quick
Menu is displayed.
3. To print just the active topic, click or select Print this topic. To print the active topic and all its subtopics, click or select Print this topic and subtopics.
Note: The maximum number of pages that can be printed at one time is 100.
4. The Print Preview window opens, displaying the topics to be printed. Scroll to the end of this preview to ensure that all topics display.
5. Select Print from the File drop-down menu.
6. The Print dialog box opens. Use the Name drop-down menu to select the name of the printer you want to use to print the IBM Documentation topics.
7. Select the All radio button in the Print Range box.
8. Select the selected frame radio button in the Print Frames box.
9. Click OK.
Use the following links to locate other publications that are related to the TS4300 drives.
Related publications
This topic lists sources that provide additional information about the IBM® TS4300 Tape Library and its associated products.
Related publications
Edit online
This topic lists sources that provide additional information about the IBM® TS4300 Tape Library and its associated products.
Note: The IBM TS4300 Tape Library is a customer installed unit. The customer is responsible for the setup and maintenance of the tape library. The customer is charged
for service if a service contract isn’t in place.
Related Publications
Refer to the following publications for information. To ensure that you have the current publications, go to https://www-05.ibm.com/e-
business/linkweb/publications/servlet/pbi.wss.
IBM TS4300 Tape Library Getting Started Guide (SC27-4630) provides installation information.
IBM TS4300 Tape Library User's Guide (SC27-4629) provides planning, installation, and maintenance information.
IBM Tape Device Drivers and Diagnostic Tool User's Guide provides instructions for attaching IBM-supported hardware to open-systems operating systems. It
indicates what devices and levels of operating systems are supported. It also gives requirements for adapters, and tells how to configure hosts to use the device
driver. All of the above are with the Ultrium family of devices.
IBM Tape Device Drivers Programming Reference supplies information to application owners who want to integrate their open-systems applications with IBM-
supported Ultrium hardware. The reference contains information about the application programming interfaces (APIs) for each of the various supported operating-
system environments.
IBM Environmental Notices and User Guide (ENUG) (z125-5823), which is at
https://www.ibm.com/support/knowledgecenter/ENVSAF_SHR/envsafetynotice/envsafetynotice_kickoff.htm. This information includes statements on limitations,
product information, product recycling and disposal, battery information, flat panel display, refrigeration and water-cooling systems, external power supplies, and
safety data sheets.
IBM Security Key Lifecycle Manager Knowledge Center, which is at http://www-01.ibm.com/support/knowledgecenter/SSWPVP/welcome?lang=en, contains
information to help you install, configure, and use the IBM Security Key Lifecycle Manager.
IBM Safety Notices, (G229-9054) at https://www-01.ibm.com/support/docview.wss?uid=isg27d40fbeb5e10ceb985256e31007281fa.
The IBM Publications Center at http://www.ibm.com/shop/publications/order. The Publications Center is a worldwide central repository for IBM product
publications and marketing material with a catalog of 70,000 items. Extensive search facilities are provided. Payment options for orders are with credit card (in the
US) or customer number for 20 countries. Many publications are available online in various file formats, and they can all be downloaded by all countries, free of
charge.
Introduction
The IBM® tape and medium changer device drivers are designed specifically to take advantage of the features that are provided by the IBM tape drives and medium
changer devices.
Common extended features
AIX Tape and Medium Changer device driver
Linux Tape and Medium Changer device driver
Solaris Tape and Medium Changer Device Driver
Windows Tape and Medium Changer device driver
IBM Tape Diagnostic Tool (ITDT)
Verifying correct attachment of your devices
Managing the microcode on the IBM tape drive
Notices
Terms and conditions for product documentation
Permissions for the use of these publications are granted subject to the following terms and conditions.
More information
Introduction
Edit online
The IBM® tape and medium changer device drivers are designed specifically to take advantage of the features that are provided by the IBM tape drives and medium
changer devices.
The goal is to give applications access to the functions required for basic tape functions (such as backup and restore) and medium changer operations (such as cartridge
mount and unmount), and to the advanced functions needed by full tape management systems. Whenever possible, the driver is designed to take advantage of the device
features transparent to the application. IBM maintains the levels of device drivers and driver documentation for the drive on the Internet. You can access this material at
http://www.ibm.com/support/fixcentral.
Hardware requirements
The tape drivers and the IBM Tape Diagnostic Tool (ITDT) are developed to support various versions of different platforms. For the latest support, refer to the
Interoperation Center website - http://www.ibm.com/systems/support/storage/config/ssic/.
Note: A single Fibre Channel host bus adapter (HBA) for concurrent tape and disk operations is not recommended. Tape and disk devices require incompatible HBA
settings for reliable operation and optimal performance characteristics. Under stress conditions (high I/O rates for either tape, disk, or both) where disk and tape
subsystems share a common HBA, stability problems are observed. These issues are resolved by separating disk and tape I/O streams onto separate HBAs and by using
Software requirements
Important: If you use a third-party application, consult with your application provider about the compatibility with IBM tape device drivers.
Industry-leading compatible software offerings provide storage and tape management software for the LTO tape drives. Supporting software and applications must be
obtained separately from IBM®, IBM Business Partners, or independent software vendors (ISV). For a list of compatible software and additional information, refer to the
ISV Matrix that is available at Independent Software Vendor (ISV) matrix for 3592 and LTO.
The image illustrates the attachment of various current products to an open systems server.
Purpose
This chapter provides general information about the IBM® device drivers, requirements, and advanced functionality.
Device driver path failover support configures multiple physical paths to the same device within the device driver and provides two basic functions:
1. Automatic failover to an alternate physical path when a permanent error occurs on one path.
2. Dynamic load balancing for tape devices by using multiple host bus adapters (HBA).
Path failover is supported on certain tape products with the latest IBM® device drivers available on the following website - http://www.ibm.com/support/fixcentral.
Instructions for downloading drivers can be found in Accessing documentation and software online. Some devices require a path failover feature code to be installed
before path failover support is enabled in the device driver. Refer to Supported devices and feature codes for a list of supported devices and what path failover feature
code is required for your machine type.
At startup or configuration, the system detects multiple logical devices of the tape drive. Each logical device is a physical path to the same tape drive. A backup and restore
application can open and use only one logical device at a time because they represent the same physical device.
Without path failover support, if a permanent path error occurs (because of an HBA or cable failure, for example), the application fails. It is possible to initiate manual
failover by restarting the application on the alternate logical device, but the application must be restarted from the beginning. A long backup or restore operation might be
in progress when the path error occurred. Sometimes manual failover requires operator intervention to reset the drive because a SCSI Reservation might still exist on the
failing HBA path.
When path failover support is enabled on all logical devices, the device driver configures them internally as a single device with multiple paths. The application can still
open and use only one logical device at a time. If an application opens the primary device and a permanent path error occurs, the device driver initiates failover error
recovery automatically on an alternate path. If successful, the current operation continues on an alternate path without interrupting the application. The data path failover
error recovery first restores the previous device state, SCSI Reservation, and tape position. Then, it tries the failing operation again.
Path failover is supported only for the devices that are listed in Table 1. Path failover includes Control Path failover (CPF) for tape libraries and Data Path failover (DPF) for
tape drives. To use path failover support, some devices require feature codes as listed in Table 1.
Table 1. Supported devices and feature codes
Supported tape library/drive Feature code (FC), if required
TS3500 and TS4500 Standard, no FC required (DPF)
FC 1682 (CPF)
TS4300/LTO FC 1682 (CPF and DPF)
Notes:
1. Path failover is only supported on SAS devices that are attached to Windows and Linux® for Intel/AMD processor-based servers. SAS is not supported on System p
servers (AIX® and Linux).
2. If your device does not support path failover, you must disable this option in the device driver. See the specific platform section for driver default behavior and
enable/disable failover instructions.
Automatic failover
Edit online
The automatic failover support provides error recovery on an alternate path when a permanent error occurs on the primary path. This support is transparent to the running
application. The two types of path failover are Data Path failover (DPF) and Control Path failover (CPF). They are closely related. However, the difference is that DPF is an
automatic failover support for the transfer of data, which provides error recovery for systems that are connected to tape drives. CPF is an automatic failover support for the
transfer of commands to move tape cartridges. Examples of different configurations that can be constructed follow.
The following flowcharts outline the different types of configurations for data path failover (DPF). These configurations are presented in order of best practices as
recommended by IBM.
One path is the primary path and the other three are alternate paths. If [A, p1] is the primary path and if HBA A fails, two valid paths ([B, p1] and [B, p2]) remain. The DPF
tries to switch to one of the available configured paths. Conversely, if the cable to port 1 of the drive fails with [A, p1] as the primary path, two valid paths to the drive [A,
p2] and [B, p2] are still available. Without DPF support, if a permanent path error occurs (because of HBA or cable failover, for example), the application fails. With DPF, if
the permanent failure occurs with this configuration, two valid physical paths for the data are still available for transmitting data. The running application is not affected.
If the path that failed is restored, the device driver claims the path as available and uses it as a valid alternate path in most conditions. This action is dependent on
Operating System and HBA behavior, not the IBM® tape device driver behavior.
This configuration supplies two physical paths to the same device. However, if the port or cable from the device fails, the automatic failover does not work. That
connection is severed and a permanent path error occurs. If, however, the failure was with one of the HBAs or their cables, the automatic data path failover selects the
other HBA. Then, the information continues through the alternate path. An example here is with the connections [A, p1] and [B, p1]. If [A, p1] is the primary path and a
failure occurs with the HBA or HBA cable, then DPF automatically moves the connection to [B, p1] without affecting the application.
This configuration also provides a failover path unless the failure is with the HBA or the HBA’s cable. At which point, the connection is severed and a permanent path error
occurs. Whereas, if the failure occurs on the device side, an alternative path is still available for the information to go through which DPF automatically failovers to.
The following flowcharts outline the different types of configurations for control path failover (CPF). These configurations are presented in order of best practices as
recommended by IBM.
As seen in Figure 1, four available paths are available between the drive and the host system. These paths are
As with DPF, one path is the primary path and the other three are alternate paths. If [A, d1] is the primary path and if HBA A fails, two remaining valid paths ([B, d1] and [B,
d2]) are still available. The CPF attempts to switch to one of the available configured paths. Conversely, if the cable to drive 1 or drive 1 fails with [A, d1] as the primary
path, two valid paths to the drive ([A, d2] and [B, d2]) are available. Without CPF support, if a permanent path error occurs (because of HBA or cable failover, for example),
the application fails. With CPF, if a permanent failure with this configuration occurs, two valid physical paths are available for the data to be transmitted. Also, the running
application is not affected.
If the failed path is restored, the device driver claims the path as available and uses it as a valid alternate path in most conditions. This action is dependent on Operating
System and HBA behavior, not the IBM® tape device driver behavior.
Note: In the operating systems logs, reservation conflict information might appear, which is because of scsi2 reservations that are not cleared. However, the device driver
continues to try any paths that are available to make the reservation conflict transparent to the operating system.
This configuration also provides a failover path unless the failure is with the HBA or the HBA’s cable. At which point, the connection is severed and a permanent path error
occurs. Whereas, if the failure occurs with a drive or a drive’s cable, an alternative path is still available for the information to go through which CPF automatically failovers
to.
The dynamic load balancing support optimizes resources for tape devices that have physical connections to multiple host bus adapters (HBA) in the same machine. When
an application opens a device that has multiple configured HBA paths, the device driver determines which path has the HBA with the lowest usage. Then, it assigns that
path to the application. When another application opens a different device with multiple HBA paths, the device driver again determines the path with the lowest HBA
usage. Then, that path is assigned to the second application. The device driver updates the usage on the HBA assigned to the application when the device is closed.
Dynamic load balancing uses all host bus adapters whenever possible and balance the load between them to optimize the resources in the machine.
For example, consider a machine with two host bus adapters, HBA1 and HBA2, with multiple tape drives attached. Each tape drive is connected to both HBA1 and HBA2.
Initially, there are no tape drives currently in use. When the first application opens a tape drive for use, the device driver assigns the application to use HBA1. When a
second application opens a tape drive for use, the device driver assigns the second application to use HBA2. A third application is assigned to HBA1 and a fourth
application is assigned to HBA2. Two applications are assigned to HBA1 and two applications are assigned to HBA2.
If the first application finishes and closes the device, there is now one application with HBA1 and two applications with HBA2. When the next application opens a tape
drive, it is assigned to HBA1, so again there are two applications with HBA1 and two applications with HBA2. Likewise, if the second application finishes and closes the
The dynamic load balancing support is independent from the automatic failover support. Regardless of the path that is assigned initially for load balancing, if that path
fails, the automatic failover support attempts recovery on the next available path.
There are frequently field issues where customers must know which Initiator is holding a reservation in a drive or preventing the media from being unloaded. Also, they
must correlate which drive special file name is used for the drive (such as rmt2). Sometimes this issue occurs over transport bridges and translators, losing any transport
identifiers to help in this effort. LTO5, 3592 E07 (Jag 4) and later physical tape drives support attributes that are set to the drive dynamically by a host. This function is
called Dynamic Runtime Attributes (DRA).
This feature is enabled by default. The attributes are set in the drive by the host during open, close, device reset, and data path change only. If there is a problem with
sending the attributes to the drive, the error is ignored and not returned to the application.
There is no ioctl in the IBM® tape drivers to retrieve the dynamic runtime attributes but is an upcoming command on ITDT. The attributes can also be retrieved through a
pass through ioctl to issue Read Dynamic Runtime Attributes SCSI command (see applicable IBM Tape Drive SCSI Reference). See the host platform section for any special
information that pertains to the driver that concerns DRA. If there is a question whether your driver level supports DRA, see the fixlist that comes with your driver to see
whether it was added. Updates are also required with the drive firmware.
Data encryption
Edit online
The following three major elements comprise the tape drive encryption solution.
Encryption policy
The method that is used to implement encryption. It includes the rules that govern which volumes are encrypted and the mechanism for key selection. How and
where these rules are set up depends on the operating environment.
The LTO Ultrium 6 and later encryption environment is complex and requires knowledge beyond that of product trained Service Support Representatives (SSRs). The
Encryption function on tape drives (desktop, stand-alone, and within libraries) is configured and managed by the customer. In some instances, SSRs are required to enable
encryption at a hardware level when service access or service password controlled access is required. Customer setup support is by Field Technical Sales Support (FTSS),
customer documentation, and software support for encryption software problems. Customer 'how to' support is also provided with a support line contract.
In the open system environment, there are two methods of encryption management to choose from. These methods differ in where you choose to locate your encryption
key manager application. Your operating environment determines which is the best for you, with the result that key management and the encryption policy engine might
be in any one of the three environmental layers: application layer, system layer, and library layer.
Refer to Planning for application-managed tape encryption for details on the hardware and software requirements for application-managed encryption. For details on
setting up application-managed tape encryption refer to the Tivoli Storage Manager documentation or for information, visit
http://publib.boulder.ibm.com/infocenter/tivihelp/v1r1/index.jsp.
Refer to Planning for library-managed tape encryption for details on the hardware and software requirements for library-managed encryption. For details on setting up
library-managed encryption on encryption-capable tape drives, refer to the IBM Tape Library Operator's Guide for your library.
Note: Contact your IBM® representative for information about encryption on the IBM encryption-capable tape drive.
To run encryption on the encryption-capable tape drive, the following is required.
1. Install, cable, and configure the encryption-capable tape drive (refer your IBM Tape Drive or Library Operator's Guide)
2. Install appropriate IBM tape device driver level (Atape, for example).
3. Set up encryption policies. Refer to the appropriate Tivoli® Storage Manager documentation.
4. Perform write/read operation to test encryption.
5. Verify encryption of the test volume by Autonomic Management Engine (AME): issue QUERY VOLUME FORMAT=DETAILED
Verify that Drive Encryption Key Manager is set to Tivoli Storage Manager.
Note: Contact your IBM® representative for information about encryption on the IBM encryption-capable tape drive.
To complete encryption on the encryption-capable tape drive, the following items are required.
Bulk rekey
For customers with Library-Managed Encryption with 3592 Enterprise tape drives and IBM tape and changer drivers that are running on open systems operating system
(AIX®, HP-UX, Linux®, Solaris, Windows), sample code for completing bulk rekey operations is available. The sample code packages are provided "as-is" with limited
testing, and are provided to give customers guidance on bulk rekey operations.
For UNIX operating systems, a sample script (rekey_unix.sh) is provided and must be used with the tapeutil version that is bundled in the same package. For Windows
operating systems, a sample c program (rekey_win.c) is provided. Both of these sample programs must be used with both the IBM tape and changer drivers. In addition,
data cartridges must be in storage cells, not in I/O station cells or tape drives.
For information and to download the sample code packages, see http://www.ibm.com/support/fixcentral/.
To use system-managed and library-managed encryption, the Transparent LTO Encryption feature codes that are listed in Table 1 are required for the associated IBM®
tape libraries with encryption-capable tape drives. If the drives in use are TS1120 tape drives, this feature code is not required for system-managed or library-managed
encryption. If you are using application-managed encryption, no feature code is required on any encryption-capable tape drives.
A feature of the LTO-9 and later full-height drives is the ability to accept a list of User Data Segments and reorder those User Data Segments into a recommended access
order that minimizes the locate portion of the time to read those User Data Segments. This sorted list is called a Recommended Access Order (RAO) list. A User Data
Segment (UDS) is defined as a grouping of contiguous logical objects (i.e., logical blocks and filemarks) and is described by partition number, beginning logical object
identifier, and ending logical object identifier.
The RAO implementation in LTO produces the best results for performance enhancement when there is little variability in block size or data compression ratio. When the
variability in compression ratio or block sizes increase, the accuracy of the locate estimates may be reduced and any potential performance enhancements may be
diminished.
This chapter describes the IBM® AIX® Enhanced Tape and Medium Changer Device Driver (Atape) for IBM tape devices.
Purpose
The IBM AIX Enhanced Tape and Medium Changer device driver is designed to take advantage of the features that are provided by the IBM tape drives and medium
changer devices. The goal is to give applications access to the functions required for basic tape operations (such as backup and restore) and medium changer operations
(such as mount and unmount the cartridges), and to the advanced functions needed by full tape management systems. Whenever possible, the driver is designed to take
advantage of the device features transparent to the application.
Data flow
The software that is described in this chapter covers the AIX Enhanced Device Driver (Atape device driver) and the interface between the application and the tape device.
For data flow, refer to Figure 1.
Product requirements
Installation and configuration instructions
Tape drive, media, and device driver parameters
Special files
Persistent Naming Support
Control Path failover support for tape libraries
Data Path failover and load balancing support for tape drives
System-managed encryption
Problem determination
Tape drive service aids
Performance considerations
Product requirements
Hardware requirements
Refer to Hardware requirements the latest hardware that is supported by the Atape device driver.
Software requirements
The AIX® Enhanced device driver (Atape device driver) supports AIX 5L Version 5.3 and later releases on IBM® POWER-based AIX servers.
The recommended procedure for installing a new version of the device driver is to uninstall the previous version.
1. At the end of the installation procedure, the installp facility automatically runs the AIX® bosboot command to update the boot record with the newly installed Atape
files. When the bosboot command completes, the following messages are displayed:
0503-292 This update does not fully take effect until after a system reboot.
installp: bosboot process completed.
This message refers to the updates to the boot record only. If the installation summary shows that the Atape driver was installed successfully, it is not necessary to
reboot the machine currently.
If the installation summary shows that the installation failed, you must reboot the machine and attempt to install the Atape driver a second time.
2. During the Atape install, the following entries are entered into the two system files.
/usr/lpp/bosinst/cdfs.optional.list to help the system image backup to DVD/CD media
The entry list in /usr/lpp/bosinst/cdfs.optional.list:
/usr/lib/drivers/Atape
/usr/lib/methods/ucfgAtape
/usr/lib/methods/cfgAtape
/usr/lib/methods/udefAtape
/usr/lib/methods/defAtape
/usr/lib/methods/chgAtape
The entries are removed from the files when Atape is uninstalled.
Attention: The entries might be lost when a user upgrades the AIX file set of bos.sysmgt.sysbr for System Backup and BOS Install Utilities after Atape installation. It is
recommended that the user check whether the entries still exist and add the entries into the files if needed.
Installation procedure
Configuring Tape and Medium Changer devices
Configuring limitations
Deconfiguring tape devices
Deconfiguring Medium Changer devices
Uninstalling
Installation procedure
Edit online
For information on obtaining the latest version of device drivers and the latest documentation, refer to Accessing documentation and software online.
Preinstallation considerations
Before the installation starts, verify the following items:
1. The tape device is properly functioning, properly attached to the server, and is powered up.
2. You logged on to the server on an account that has root authority.
3. You have a command shell window open on the server to run the installation procedure.
4. Make sure that the current path is defined in the command shell PATH variable. This definition can be accomplished in the Korn shell by using the following
command:
5. If the tape device was configured previously by another device driver (not Atape), remove any existing device definitions for it. The following command is an
example: rmdev -l ost1 -d
Installation procedure
Enter the following command to list the currently installed Atape.driver version:
lslpp -l Atape.driver
Enter the following command to install the Atape driver in the current directory. For example
This command installs and commits the Atape driver on the system.
After the driver software is installed and a tape device is connected to the adapter, the device can be configured and made available for use. Access to the device is not
provided until the device is configured.
Note: If the tape device was configured previously by another SCSI device driver, such as OST (Other SCSI Tape), issue the following command to remove the device
definition before the following steps are completed.
rmdev -l [device]
cfgmgr
The command configures all devices automatically (including any new tape or medium changer devices).
Power Off your subsystem and reboot the system to configure it automatically and make available any new tape or medium changer devices on the system.
Configuring limitations
Edit online
The subsequent limitations are applied for the Atape driver that runs on an AIX® host.
Maximum supported number of tape devices 1024
Maximum supported number of HBA ports 32
Maximum supported number of paths for a device (DPF/ CPF) 16/16
Maximum LUN size per target for FC HBA* 4095
Note: *On AIX systems, the maximum LUN number is 4095. Since Atape supports up to 1024 devices, Atape configures a total of 1024 devices by using the range from
LUN 0 - 4095. For instance, a device with LUN 4095 at a SCSI target address can be configured by Atape if the total number of devices on the system is less than 1024.
Every opened tape device uses a certain amount of resources. The user must also consider other resources such as physical memory and virtual space on the system
before you attempt to reach the limits.
Note: In the following examples, replace the letter n with the appropriate number for the chosen device.
Deconfigure the tape device by using one of the following procedures:
1. The first method leaves the tape device that is defined in the configuration database. It is similar to bringing the device offline (not in use).
Enter the following command to bring the /dev/rmtn tape device offline, but leave it defined in the device database.
rmdev -l rmtn
2. The second method brings the tape device offline and removes its definition from the device database.
Enter the following command.
rmdev -l rmtn -d
The device driver is not unloaded from the kernel until the last device is deconfigured.
Note: In the following examples, replace the letter n with the appropriate number for the chosen device.
Deconfigure the medium changer device by using one of the following procedures:
1. The first method leaves the device that is defined in the configuration database. It is similar to bringing the device offline.
Enter the following command to bring the /dev/smcn medium changer device offline, but leave it defined in the device database.
rmdev -l smcn
2. The second method brings the medium changer device offline and removes its definition from the device database.
Enter the following command.
rmdev -l smcn -d
The device driver is not unloaded from the kernel until the last device is deconfigured.
Uninstalling
Edit online
Attention: All devices that use the Atape driver must be closed and cannot be in use when Atape is uninstalled or the uninstall fails.
You can uninstall the Atape device driver by using the smit command menu to uninstall software and selecting Atape.driver or by using the following installp command
installp -u Atape.driver
This chapter describes the parameters that control the operating modes of the AIX® Enhanced Tape and Medium Changer Device Driver.
Configuration parameters
Media parameters
Configuration parameters
Edit online
The operating parameters for the tape drive and device driver are set and changed by configuration parameters. The installation defaults are provided for all parameters
initially. The AIX® smit command is used to set these parameters when a device is configured or to change these parameters. The AIX chdev command is used to change
the configuration parameters.
The configuration parameters are used to set the operating mode of the tape drive and device driver when a device is opened. These parameters can be queried by an
application. Some parameters can be temporarily changed during the open subroutine by an application. But, they are always restored to the configuration values when a
device is closed. The configuration parameters are
Alternate Pathing
Autoloading
Emulate autoloader (359x devices only)
Block size
Buffered mode (359x devices only)
Compression
Fail degraded media (359x devices only)
Logical write protect (359x devices only)
Logging
Maximum size of the log file
New logical name
Read error recovery time (359x devices only)
Record space mode
Reservation key
Reservation support
Reservation type
Retain reservation
Rewind immediate
System encryption
System encryption for Write Commands
Trailer labels
SCSI status busy retry
iostat support for tape
Alternate pathing
This parameter enables or disables the path failover support when a device is configured. See Data Path failover and load balancing support for tape drives for a
description of the path failover and failover support.
Autoloading
This parameter enables the autoloading feature of the device driver. It is used with the autoloading capability of the autoloader, ACF, ACL, or CSL installed on the tape
device.
Note: The autoloading feature is not supported on the IBM® 3584 UltraScalable tape library and the IBM 3583 Ultrium Scalable tape library with more than one IBM 3580
Ultrium tape drive installed.
Note: The autoloading feature is supported only on the following device types and configurations:
IBM 3490E Models C11, C22, E01, E11, F01, and F11
IBM Enterprise Tape System 3590, Models B11, E11, and H11
IBM Magstar® MP 3570 Models B01, C01, B11, and C11
IBM Magstar MP 3570 Models B02, B12, C02, and C12 (configured in split mode only)
IBM 7332 (all models)
The device is used by an application that provides library medium changer support for the IBM 3581 or IBM 3583.
The device is installed in a 3494 Enterprise Tape Library.
The device is used by an application with stack loader support.
The application is MKSYSB.
The tapes that are read were not written with the autoloading feature.
Tapes that are created with AUTOLOAD=YES are not readable in configurations without Atape autoload enabled, or on other UNIX operating systems, or on device
types/models that are different from the backup device type/model.
If the parameter is set to On, then the tape stacker acts as one large virtual tape. During a read, write, or forward space file operation, no end of tape is detected by the
application. When the end of tape is reached, the device driver automatically rewinds and unloads the tape, then loads the next tape. Then, it continues reading or writing
the next tape. The following conditions are required to use this feature:
This feature allows multivolume backups (with commands such as tar) without prompting for a volume change.
Emulate autoloader
This parameter controls how the device driver operates when the ACF on the IBM Enterprise Tape System 3590, the IBM Magstar MP tape device, or the IBM 3490E Model
Fxx is set to Random mode. If this parameter is set to On and the ACF is in Random mode, the device driver emulates an autoloading tape drive. When an unload command
is sent to the device driver to unload a tape, the tape is unloaded, returned to the magazine, and the next tape in the magazine is loaded automatically into the tape drive.
If this parameter is set to Off, the normal unload operation occurs, and the tape remains in the drive.
The emulate autoloader parameter can be used for legacy applications that are written for the IBM 3490E Automated Cartridge Loader (ACL) when the IBM Enterprise
Tape System 3590, the IBM Magstar MP 3570, or the IBM 3490 Model F autoloader is set to Random mode. This parameter eliminates the need to reconfigure the
autoloader of the device Random or Automatic operation.
Block size
This parameter specifies the block size that is used for read and write operations. A value of zero is the variable block size. Any other value is a fixed block size.
The installation default is zero (use variable length) except for the IBM 7332 4-mm Tape Cartridge Autoloader, for which the default is a fixed block size of 1024 bytes.
Buffered mode
When a write command is processed, the data is either stored directly on the physical tape or buffered in the tape device. Buffering can increase the device performance.
Compression
Hardware compression is implemented in the device hardware. This parameter turns the compression feature On and Off. If compression is enabled, then the effective
performance can increase based on the compressibility of the data.
The installation default is Off (do not fail the tape operation if degraded media is detected).
Logging
This parameter turns the volume information logging on and off. If logging is set to On, the statistical information about the device and media is saved in a log file when a
tape is unloaded. If logging is set to Off, the information is not saved. This parameter has no effect on error logging because error logging is always enabled. For
information, refer to Device and volume information logging.
The installation default is Off (do not limit the read error recovery time).
The SCSI mode is the default mode of operation. When a forward or backward space record operation is issued to the driver and a filemark is encountered, the device
driver returns -1 and the errno variable is set to input/output error (EIO). The tape is left positioned after the filemark (the end-of-tape side of the filemark on the forward
space and the beginning-of-tape side of the filemark on the backward space).
The AIX mode returns the same EIO errno value as the SCSI mode when a filemark is encountered except that the tape is left positioned before the filemark (the
beginning-of-tape side of the filemark on the forward space and the end-of-tape side of the filemark on the backward space).
Reservation key
This parameter specifies the SCSI Persistent Reservation key that is used by the device driver when either the Reservation Type parameter is SCSI Persistent Reserve and
the Alternate Pathing parameter is set to no or when the Alternate Pathing parameter is set to Yes.
If the Reservation Key parameter is specified as blank (NULL), then the device driver uses an internal unique key for all devices on the host they are configured on. Another
AIX host that shares devices also have an internal unique key for all devices if the Reservation Key parameter was blank (NULL).
If the default is not used, then the Reservation Key value can be specified as either a 1-8 character ASCII alphanumeric key or a 1-16 hexadecimal key that has the format
0xkey. If fewer than 8 characters are used for an ASCII key (such as host1), the remaining characters are set to 0x00 (NULL). If less than a 16 hexadecimal key is used, the
remaining bytes are set to 0x00.
Note: When a Reservation Key is specified on each host that shares a device, the key must be unique to each host.
Reservation support
The parameter of reserve_support indicates that the Atape driver manages the reservation for the tape device when it is enabled. Atape reserves the tape device in open
and releases it in close, and maintains the reservation in error recovery procedure (ERP).
Note: For the medium changer, this parameter is not applied when the Alternate Pathing (path failover) parameter is set to Yes. The device driver forces the setup to be
disabled and the medium changer is not reserved in open when the Alternate Pathing parameter is set to Yes.
The installation default is Yes.
Reservation type
This parameter specifies the SCSI Reservation type that is used by the device driver, either a SCSI Reserve 6 command or a SCSI Persistent Reserve command.
Retain reservation
When this parameter is set to 1, the device driver does not release the device reservation when the device is closed for the current open. Any subsequent opens and
closes until the STIOCSETP IOCTL is issued with retain_reservation parameter set to 0. The device driver still reserves the device on open to make sure that the previous
reservation is still valid.
Rewind immediate
This parameter turns the immediate bit On and Off in rewind commands. If it is set to On, the rewind tape operation runs faster. However, the next command takes a long
time to finish unless the rewind operation is physically complete. Setting this parameter reduces the amount of time that it takes to close a device for a Rewind on Close
special file.
The installation default is Off (no rewind immediate) except for the IBM 7332 4-mm Tape Cartridge Autoloader, for which the default is On (rewind immediate).
System encryption
This parameter specifies whether System-Managed Encryption must be used. For information, refer to System-managed encryption.
Trailer labels
If this parameter is set to On, then writing a record past the early warning mark on the tape is allowed. The first write operation to detect EOM fails, and the errno variable
is set to ENOSPC. No data is written during the operation. All subsequent write operations are allowed to continue until the physical end of the volume is reached and EIO
is returned.
This parameter can also be selected by using one of three device special files that allow trailer-label processing. The special files are rmtx.40, rmtx.41, and rmtx.60,
where x is the name of the device (for example, rmt0.40).
Media parameters
Edit online
The ability to set or change media parameters is a tape diagnostic and utility function, refer to IBM Tape Diagnostic Tool (ITDT).
The media parameters can be queried and set by ITDT or the tape diagnostic and utility function by using the Query/Set Parameters option in the window.
These parameters cannot be set or changed by the configuration procedures. The media parameters are
Capacity scaling
Logical write protect
Volume ID for logging
Archive mode unthread (AMU)
Capacity scaling
This parameter sets the capacity or logical length of the current tape on IBM® Enterprise Tape System 3590, IBM Enterprise Tape System 3592, or Magstar® MP tape
subsystems. By reducing the capacity of the tape, the tape drive can access data faster at the expense of data capacity.
1. The tape position must be at the start of the tape to change this parameter from its current value.
2. Changing this parameter deletes any existing data on the tape.
3. Attempting to set capacity scaling that is not supported by a device or the current loaded media always returns 100% and cannot be changed. For example, 60 GB
media for the IBM 3592 cannot be capacity scaled and is always 100%.
Associated protect remains only while the current tape is mounted or associated with the tape drive. It is reset when the tape is unloaded or the tape drive is reset.
Persistent protect remains or persists with the tape across mounts until it is reset.
WORM protect also remains with the tape across mounts, but (unlike persistent protect) it cannot be reset on the tape. After a tape is WORM protected, it can never be
written on again.
Note:
1. The tape position must be at the start of the tape to change this parameter from its current value.
2. Attempting to set logical write protect that is not supported by a device or the current loaded media always returns "No" and cannot be changed.
Special files
Edit online
When the driver is installed and a tape device is configured and available for use, access is provided through the special files. These special files, which consist of the
standard AIX® special files for tape devices (with other files unique to the Atape driver), are in the /dev directory.
Each tape device has a set of special files that provides access to the same physical drive but to different types of functions. As shown in Table 1, in addition to the tape
special files, a special file is provided for tape devices that allow access to the medium changer as a separate device.
Note: The asterisk (*) represents a number that is assigned to a particular device (such as rmt0).
For tape drives with attached SCSI medium changer devices, the rmt*.smc special file provides a separate path for commands that are issued to the medium changer.
When this special file is opened, the application can view the medium changer as a separate SCSI device.
Both this special file and the rmt* special file can be opened at the same time. The file descriptor that results from opening the rmt*.smc special file does not support the
following operations.
Read
Write
Open in Diagnostic mode
Commands that are designed for a tape drive
If a tape drive has a SCSI medium changer device that is attached, then all operations (including the medium changer operations) are supported through the interface to
the rmt* special file. For detailed information, refer to Table 1.
1. The Rewind on Close special files write filemarks under certain conditions before rewinding.
2. The Retensions on Open special files rewind the tape on open only. Retensioning is not done because these tape products complete the retension operation
automatically when needed.
3. The Bytes per Inch options are ignored for the tape devices that are supported by this driver. The density selection is automatic.
4. The rmt*.10 file bypasses normal close processing, and the tape is left at the current position.
5. The rmt*.null file is a pseudo device similar to the /dev/null AIX® special file. The input/output control (ioctl) calls can be issued to this file without a real device
that is attached to it, and the device driver returns a successful completion. Read and write system calls return the requested number of bytes. This file can be
used for application development or debugging problems.
6. The rmt*.smc file can be opened independently of the other tape special files.
After the driver is installed and a medium changer device is configured and made available for use, access to the robotic device is provided through the smc* special file in
the /dev directory.
Table 1 shows the attributes of the special file. The asterisk (*) represents a number that is assigned to a particular device (such as smc0). The term smc is used for a SCSI
medium changer device. The smc* special file provides a path for issuing commands to control the medium changer robotic device. For information, refer to Table 1.
Read
Write
Commands that are designed for a tape device
Persistent naming support is used to ensure that attached devices are always configured with the same logical name based on the SCSI ID, LUN ID, and host bus adapter
(HBA), even when the system is rebooted.
When the AIX® operating system is booted, the HBA runs a device discovery and assigns a default logical name to each device found in a sequential order. If there are
three tape drives attached to a parallel SCSI adapter, each with a LUN ID of 0 and a target address of 0, 1, and 2, the HBA initially configures them as Available with the
following logical names.
On the next reboot, if the existing rmt1 target 1 device is powered off or not connected, the HBA initially configures two devices as Available with the following logical
names:
If the previous rmt1 target 1 device is powered on after reboot and the cfgmgr command is run, the HBA configures the device as rmt2 instead of rmt1.
The logical name of a device can be changed after an initial boot and configured. This procedure can be done by using the SMIT menu or the chdev command from a script
or command line.
For example, a default rmt0 logical name for a tape drive can be changed to rmt-0, tape0, or any descriptive name wanted. In this example, if the three tape drives are
changed to rmt-0, rmt-1, and rmt-2, and the system is then rebooted with rmt-1 powered off, the HBA detects that unique names are predefined for the attached devices,
and the HBA uses those names. In this case, the devices configure as follows:
Since rmt-1 is not detected by the HBA but is predefined at the SCSI ID and LUN ID, it remains in the defined state and is not configured for use. But, the next rmt-2 tape
drive configures as the same name at the same location after reboot.
rmt0 changed
Note:
When path failover is enabled, if you change the logical name for either a primary or alternate device, only the individual device name changes.
Follow the naming convention whenever you run mksysb, bosboot:
The prefix name of "rmt" cannot be changed.
A sequence number must be a positive integer. The smallest sequence number is 0.
The prefix name cannot contain non-numerical characters. For example, rmt1_rescu is not an acceptable prefix name.
When a device instance logical name is generated, the SMIT tool automatically assigns the next available sequence number (relative to a specific prefix
name). The next available sequence number is defined as the smallest sequence number for a particular prefix name that is not yet allocated.
Note: The library control path failover feature code must be installed before enabling the path failover support in the Atape device driver. Refer to Automatic failover for
what feature codes might be required for your machine type.
The Atape device driver path failover support configures multiple physical control paths to the same logical library within the device driver. It also provides automatic
failover to an alternate control path when a permanent error occurs on one path. This support is transparent to the running application.
Path failover support is not enabled automatically when the device driver is installed. It must be configured initially on each logical device after installation. When path
failover support is enabled for a logical device, it remains set until the device is deleted or the support is unconfigured. The alternate path failover setting is retained even
To enable or disable the support on a single logical device, use the SMIT menu to Change/Show Characteristics of a Tape Drive, select the logical device to change such as
smc0, smc1, then select Yes or No for Enable Path Failover Support. The support can also be enabled or disabled by using the chdev command, for example,
When the device driver configures a logical device with path failover support enabled, the first device that is configured always becomes the primary path. On SCSI
attached devices, -P is appended to the location field. On Fibre attached devices, -PRI is appended to the location field of the device.
When a second logical device is configured with path failover support enabled for the same physical device, it configures as an alternative path. On SCSI attached devices,
-A is appended to the location field. On Fibre attached devices, -ALT is appended to the location field of the device.
A third logical device is also configured as an alternative path with either -A or -ALT appended, and so on. The device driver supports up to 16 physical paths for a single
device.
The labeling of a logical device as either a primary or alternative path is for information only, to
1. Be able to identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one
logical device is labeled as the primary path for each physical device. However, many (multiple) logical devices can be labeled as an alternative path for the same
devices.
2. Provide information about which logical devices configured on the system have path failover support enabled.
You can see the primary and alternative path configuration for all devices with the lsdev command. Two or more logical devices can be configured for a single physical
device, but the first device that is configured is labeled the primary device. All other logical devices that are configured after the first device are labeled as alternative
devices. To see this information, run the lsdev -Cc tape command and look at the location field in the data. Run the following command,
For example, you can easily determine how many physical devices are configured with path failover support.
Note: Show the primary and alternative path configuration for any device by using tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
Logical devices that are configured as alternative paths can be unconfigured and reconfigured at any time after the initial configuration is run. Unconfiguring an alternative
path device removes that device from the primary device path list, removes the -A or -ALT appended to the location field, and changes the device to the Defined state. The
primary and any other alternative devices are still available.
Likewise, configuring a new alternative path device or reconfiguring an existing one in the Defined state adds that device to the primary device path list, appends -A or -ALT
to the location field, and makes the device available.
Logical devices that are configured as primary paths can also be unconfigured and reconfigured at any time after initial configuration is run. However, the operation is
different for a primary device. When a primary device is unconfigured, the following events occur.
These methods can unconfigure and reconfigure physical devices on the system when device connections or addressing changes are made.
Data Path failover and load balancing support for tape drives
Edit online
Note:
1. Some devices require a path failover feature code that is installed before the path failover support is enabled in the Atape device driver. Refer to Automatic failover
for what feature code might be required for your machine type.
Use the following command line script to query, add, or delete license keys for this feature before the path failover feature is enabled as described below. The key is a 16-
digit hexadecimal value, for example, 1234567890abcdef.
Path failover support is not enabled automatically when the device driver is installed. It must be configured initially on each logical device after installation. When path
failover support is enabled for a logical device, it remains set until the device is deleted or the support is unconfigured. The path failover setting is retained even if the
system is rebooted.
Path failover support can be enabled on all configured devices at one time, or it can be enabled or disabled selectively by logical device. It might be desirable at times to
configure some, but not all, logical paths to a device with the support enabled.
To enable the support globally on all currently configured devices, run the command
/usr/lpp/Atape/instAtape -a
This action unconfigures all devices that have path failover set to No, and reconfigures all devices, setting path failover to Yes.
To enable or disable the support on a single logical device, use the SMIT menu to Change/Show Characteristics of a Tape Drive, then select Yes or No for Enable Path
Failover Support. The support can also be enabled or disabled by using the chdev command, for example:
When the device driver configures a logical device with path failover support enabled, the first device that is configured always becomes the primary path and PRI is
appended to the location field of the device. When a second logical device is configured with path failover support enabled for the same physical device, it configures as an
alternative path and ALT is appended to the location field. A third logical device is configured as the next alternative path with ALT appended, and so on. The device driver
supports up to 16 physical paths for a single device.
For example, if rmt0 is configured first, then rmt1, the lsdev -Cc tape command output is similar to the following command.
rmt0 Available 20-60-01-PRI IBM 3590 Tape Drive and Medium Changer (FCP)
rmt1 Available 30-68-01-ALT IBM 3590 Tape Drive and Medium Changer (FCP)
If rmt1 is configured first, then rmt0, the command output is similar to the following.
rmt0 Available 20-60-01-ALT IBM 3590 Tape Drive and Medium Changer (FCP)
rmt1 Available 30-68-01-PRI IBM 3590 Tape Drive and Medium Changer (FCP)
The labeling of a logical device as either a primary or alternative path is for information only, to
1. Identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one logical device is
labeled the primary path for each physical device. However, many (multiple) logical devices can be labeled as an alternative path for the same devices.
2. Provide information about which logical devices configured on the system have path failover support enabled.
You can see the primary and alternative path configuration for all devices with the lsdev command. Two or more logical devices might be configured for a single physical
device, but the first device that is configured is labeled the primary device. All other logical devices that are configured after the first device are labeled as alternative
devices.
To see this information, run the lsdev -Cc tape command and look at the location field in the data. By running lsdev
-Cc tape | grep PRI, for example, you can easily determine how many physical devices on the RS/6000® or System p (also known as pSeries) server are configured
with path failover support.
Logical devices that are configured as alternative paths can be unconfigured and reconfigured at any time after the initial configuration is run. Unconfiguring an alternative
path device removes that device from the primary device path list, removes the ALT appended to the location field, and changes the device to the Defined state. The
primary and any other alternative devices are still available. Likewise, configuring a new alternative path device or reconfiguring an existing one in the Defined state adds
that device to the primary device path list, appends ALT to the location field, and makes the device available.
Logical devices that are configured as primary paths can also be unconfigured and reconfigured at any time after initial configuration is run. However, the operation is
different for a primary device. When a primary device is unconfigured, the following events occur.
These methods unconfigure and reconfigure physical devices on the system when device connections or addressing changes are made.
System-managed encryption
Edit online
System-managed encryption can be set on a specific tape drive by using the standard SMIT panels to Change/Show Characteristics of a tape device or the command line
chdev command. There are two new attributes added for encryption.
The sys_encryption attribute enables device driver system-managed encryption for a tape drive by setting the value to yes.
The wrt_encryption attribute controls whether the device driver can set the tape drive to encryption enabled for write commands. When set to off, the tape drive uses
encryption for read operations; write operations do not use encryption. When set to on, the tape drive uses encryption for both read/write operations. When set to custom,
the device driver does not modify current tape drive setting. The custom setting is intended for applications that use system-managed encryption to control write
encryption without device driver intervention.
Note: If wrt_encryption is set to on, an application cannot open a tape drive by using the append mode.
Querying the tape drive configuration is a tape diagnostic and utility function. Refer to IBM Tape Diagnostic Tool (ITDT).
This test is a tape diagnostic and utility function. Refer to IBM Tape Diagnostic Tool (ITDT).
Error logging
Edit online
Encryption errors are logged along with other tape operation errors by using the standard TAPE_ERR1 Template “Tape Operation Error” with associated sense data in the
detail data.
An encryption failure is indicated when the asc/ascq in the sense data is EFxx or EExx. Refer to the tape drive hardware reference for information on the asc/ascq being
reported. The asc/ascq can be found in the first column of the second row in detail sense data. For example,
Detail Data
SENSE DATA
0A00 0000 5A08 25FF 0000 00FF FF00 0000 0000 0000 F000 0600 0000 1458 0000 0000
EF11 FF02 D105 0000 0009 0191 0002 0000 0000 0A00 0000 0000 0000 0000 0000 0000
0000 0000 0000 FFFF FF00 0000 FFF0 B7E3 0001 2127 0000 0000 0000 0000 3930 3220
2020 2000 0041 4A00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
When encryption failures require field support or development analysis, the following data must be provided for a problem on a specific tape drive from the machine (rmt1
for example) for the device driver. Tape drive dumps and EKM server logs might be needed in addition to this information.
Problem determination
Edit online
A set of tools is provided with the device driver to determine whether the device driver and the tape device are functioning correctly. The standard AIX® interface is
provided for problem determination.
Dump support
Device and volume information logging
Log file
Tape log utility
Reservation conflict logging
Error logging
Error log templates
Automatic dump facility
Dynamic Runtime Attributes
Trace facility
Atape System Trace (ATRC) utility
Component tracing
Atape Component Trace (ACTRC) utility
Dump support
Edit online
Dump support is provided through the dump entry point in the driver. Refer to appropriate AIX® manuals for a description of how to use the dump devices and how to read
the dump data.
sysdumpdev -l
To establish the rmt1 tape device as a secondary dump device, enter the following command,
sysdumpdev -s /dev/rmt1
To run a dump operation, use the sysdumpstart command. To send the dump data to the secondary dump device, enter the following command:
sysdumpstart -s
sysdumpdev -z
After the dump data is placed on the tape, copy it to a file on the disk before the crash command is used to process it. For example,
An optional logging utility is provided to log the information about the device and the media. The information is extensive for some devices and limited for other devices. If
set to On, the logging facility gathers all available information through the SCSI Log Sense command.
This process is a separate facility from error logging. Error logging is routed to the system error log. Device information logging is sent to a separate file.
Logging
Maximum size of the log file
Volume ID for logging
Refer to Tape drive, media, and device driver parameters for a description of these parameters.
Each time the rewind and unload sequence occurs or the STIOC_LOG_SENSE ioctl command is issued, an entry is added to the log. Each time a new cartridge is loaded,
the values in the device log buffers are reset with the Log Sense command. The log data is gathered on a per-volume basis.
Log file
Edit online
The data is logged in the /usr/adm/ras directory. The file name is dependent on each device; therefore, each device has a separate log. An example of the rmt1 device file
is
/usr/adm/ras/Atape.rmt1.log
The files are in binary format. Each entry has a header followed by the raw Log Sense pages as defined for a particular device.
The first log page is always page 0x00. This page, as defined in the SCSI-2 ANSI specification, contains all pages that the device supports. Page 0x00 is followed by all
pages that are specified in page 0x00. The format of each following page is defined in the SCSI specification and the device manual.
A tape log utility is installed with the tapelog device driver that displays the contents of the log file in ASCII text. The log pages are shown as hexadecimal values in dump
format.
Note:
The contents of the log file are displayed as standard output. To save the log in a file, use the AIX® redirection function. For example,
When the device driver receives a reservation conflict during open or after the device is opened, it logs a reservation conflict in the AIX error log. Before it logs the error,
the device driver issues a Persistent Reserve In command to determine whether a SCSI Persistent Reservation is active on the reserving host to get the reserving host
Where the first xxxxxxxx is the actual reserve key, and the second xxxxxxxx is the reserving host initiator WWPN.
After the reserving host WWPN is initially logged, subsequent reservation conflicts from the same reserving host WWPN are not logged. This action prevents multiple
entries in the error log until either the reserving host WWPN is different from the one initially logged or the device driver reserved the device and another reservation
conflict occurs.
If the Persistent Reserve In command fails, the detail data contains the following entry with the errno from the failing Persistent Reserve In command.
Error logging
Edit online
The device driver provides logging to the AIX® system error log for various errors. The error log can be viewed for specific devices by using the Error Log Analysis utility that
is provided with the tape drive service aids. Refer to Error Log Analysis. The error log can also be viewed by using the smit or the errpt command.
The error log templates the device driver uses follow the same format as the default AIX® tape error log entries. Each error log entry is identified by an error label and
contains detail data that is associated with the type of error. The following items describe the error labels and detail data for the templates that are used for logging tape
device, media, and SCSI adapter-related errors in the AIX system error log.
Error labels
Errors are logged with an associated error label and error ID. The error label indicates the basic type of error.
TAPE_ERR1
Tape media error
TAPE_ERR2
Tape hardware error
TAPE_ERR4
SCSI Adapter detected error
TAPE_ERR5
Unknown error
RECOVERED_ERROR
Temporary tape hardware or media error
SIM_MIM_RECORD_3590
3590 Service/Media Information Message (Log Page X '31')
TAPE_SIM_MIM_RECORD
Tape drive Service/Media Information Message (Log Page X '31')
DEV_DUMP RETRIEVED
Device dump retrieved
TAPE_DRIVE_CLEANING
Tape drive needs cleaning
RESERVE_CONFLICT
Reservation conflict
Detail data
Detail data is logged with the associated error that identifies the cause of the error. Detail data for the SIM_MIM_RECORD_3590 or TAPE_SIM_MIM_RECORD entries
contain the raw data from Log Sense Page 31. Refer to the hardware reference manual for the format of this entry. All other error log entries use the following format for
detail data:
Detail Data
SENSE DATA
aabb xxxx ccdd eeee eeee eeee eeee eeee ffgg hhxx ssss ssss ssss ssss ssss
ssss ssss ssss ssss ssss ....
hh
This byte indicates the type of adapter error that occurred. For parallel SCSI adapters, this byte is the general_card status code as defined in
/usr/include/sys/scsi.h
01 HOST IO BUS ERROR - Host I/O bus error during data transfer.
02 SCSI BUS FAULT - SCSI bus protocol or hardware error.
04 COMMAND TIMEOUT - Command timed out before completion.
08 NO DEVICE RESPONSE - Target did not respond to selection phase.
10 ADAPTER HARDWARE FAILURE - Adapter indicated a hardware failure.
20 ADAPTER SOFTWARE FAILURE - Adapter indicated a microcode failure.
40 FUSE OR TERMINAL PWR - Blown terminator fuse or bad termination.
80 SCSI BUS RESET - Adapter indicated that SCSI bus was reset.
For FCP or SAS adapters, this byte is the adapter_status code as defined in /usr/include/sys/scsi_buf.h
01 HOST IO BUS ERROR - Host I/O bus error during data transfer.
02 TRANSPORT FAULT - Failure in the transport layer.
03 COMMAND TIMEOUT - Command timed out before completion.
04 NO DEVICE RESPONSE - Target did not respond to attempts to select it.
05 ADAPTER HARDWARE FAILURE - Adapter indicated a hardware failure.
06 ADAPTER SOFTWARE FAILURE - Adapter indicated a microcode failure.
07 WW NAME CHANGE - Adapter detected a new worldwide name for the device.
08 FUSE OR TERMINAL PWR - Blown terminator fuse or bad termination.
09 TRANSPORT RESET - Adapter detected an external SCSI bus reset.
0A TRANSPORT BUSY - The transport layer is busy.
0B TRANSPORT DEAD - The transport layer is inoperative.
ss
If byte gg indicates a check condition, the ss byte is the sense data from the device. Refer to the appropriate device reference manual for the specific format and
content of these bytes.
The device driver provides an automatic dump facility for devices that support reading a dump and indicating when a dump is available in device sense data. Whenever a
check condition occurs and the sense data indicates that a dump is available, the device driver reads the dump from the device and stores it in the /var/adm/ras directory.
A maximum of five dumps for each device are stored in this directory as
Atape.rmtx.dump1
Atape.rmtx.dump2
Atape.rmtx.dump3
Field issues can occur where customers must know which initiator on a host is holding a reservation in a drive or preventing the media from being unloaded. Also, they
must correlate which special file name is used for the drive (such as rmt2). Sometimes this issue occurs over transport bridges and translators, thus losing any transport
The feature is enabled by default. The drive attributes on the host are set during the open, close, device reset, and data path change only. So, it does not have impact on
the tape and system performance. The error is ignored and is not returned to application, when the information failed to send. However, a device attribute named as
"host_attributes" is available to disable the DRA feature, when Atape runs with the virtual tape library for which the feature is not supported.
Trace facility
Edit online
The AIX® trace facility is supported for the device driver. The trace event is identified with a hookword. The hookword that is used by the device driver is 326. The trace can
be initiated at any time before an operation on a tape device.
trace -a -j 326
This command starts the trace in the background and collects only the trace events with the 326 hookword (Atape device driver).
trcstop
This command stops the trace after the tape operations are run.
This command formats the trace output into a readable form and places it into a file for viewing.
The atrc trace utility is also installed with the device driver to start, stop, and format a device driver trace. To start the trace, enter the atrc command. To stop and format
the trace, enter the atrc command again. The trace is formatted to an atrc.out AIX® file in the current directory.
Component tracing
Edit online
Later releases of AIX® 5.3 and above support component tracing. Unlike system tracing that must be started and stopped, component tracing by default is on all the time
and runs continually.
To determine whether component tracing is available, run the command ctctrl -q to display a list of supported components with their default settings. You must have root
authority to run this command. Refer to the AIX ctctrl man page for a complete description of the ctctrl command and parameters.
To dump and format the current component trace to a file (for example, actrc.out) into the current directory, run the following commands.
ctctrl -D -c Atape
trcrpt -l Atape -o actrc.out
The Atape component trace can also be retrieved from a system dump. This action eliminates the need to start the Atape system trace before a system dump or to re-
create an AIX system dump when a system trace is not running. The AIX system dump is normally stored in the /var/adm/ras directory as a vmcore.x.BZ file, where x is a
dump number 1, 2, and so on.
To retrieve and format the Atape component trace from a dump file (for example, vmcore.1.BZ) to a file (for example, actrc.dump) into the current directory, run the
following commands.
dmpuncompress /var/adm/ras/vmcore.1.BZ
trcdead -c /var/adm/ras/vmcore.1
trcrpt -l Atape -o actrc.dump
The actrc component trace utility is also installed with the device driver to dump and format the current Atape component trace. To dump and format the component
trace, run the command actrc. The trace is formatted to an actrc.out file in the current directory.
The service aids described in the following sections are accessible through the AIX® diagnostic subsystem by using the AIX diag command and in the Task Selection menu
by selecting IBM Tape Drive Service Aids. Refer to Tape drive service aids details.
Tape drive service aids are also available by using the IBM Tape Diagnostic Tool (ITDT).
The following service aid utilities are installed with the device driver:
Read Dump
This utility transfers the dump data from the device to a file, a diskette, or a tape cartridge.
Microcode Load
This utility downloads microcode to the device from a file or a diskette (AIX® format only).
Note: To download the microcode from a DOS diskette, you must first use the AIX dosread command to transfer the file from the DOS diskette to the AIX file. Then, you
can use the Microcode Load utility to download the AIX file to the tape drive.
To access this utility -
The Microcode Load operation starts, and a window opens when the operation is completed.
Reset Drive
This utility resets the tape drive.
Performance considerations
Edit online
This chapter describes the parameters and issues that can affect the perceived performance of the tape drive. In general, AIX® applications that operate at a file level to
move data between disk storage devices and tape do not use the full capabilities of a high end tape device. The goal of this discussion is to give an overview of the data
path components that are involved in moving data between disk storage devices and tape. The following chapter describes basic techniques and common utilities in a
specific environment that can be used to understand how a device is performing. Performance issues that are encountered by advanced application developers are
beyond the scope of this document.
Refer to the hardware reference for the specific device for performance specifications.
Refer to the application documentation for information on device-specific application configuration.
Refer to the operating system documentation for information on disk storage device striping and other techniques for improving file system performance.
Data path
Common AIX utilities
AIX iostat utility for tape performance
Before Support is called
Data path
Edit online
The simplified model in Figure 1 shows the components that are involved in the data path for moving data at a file level between disk storage devices and tape.
Performance analysis must be approached by determining which component of the data path impacts performance. Typically, a performance problem can be isolated by
looking at one leg of the data path at a time. The goal of this analysis is to confirm that the tape data path is not impacting the performance adversely.
The most commonly reported cause for poor tape performance is the use of small block sizes or the modification of the installation defaults for the tape device.
Note: The device parameters must not be changed from the defaults for most applications.
The following guidelines typically result in good tape path performance for use with AIX® utilities:
1. Hardware compression must be enabled for maximum performance if the data sent to the device is uncompressed.
2. The block_size parameter must be set to variable (block_size=0) and command or application parameters that are specified to a block size appropriate for the
device.
3. Block sizes of 128 KB or greater must be used to improve performance.
In releases of AIX® 5.3 and earlier, the AIX iostat utility supports tape performance statistics in addition to other supported devices (such as disk). To determine whether
the iostat utility supports the configured tape drives, run the command iostat -p. If the configured tape drives are supported, a list of configured tape drives are displayed
with the statistics listed for each drive. Refer to the AIX iostat man page for a complete description of the iostat command and parameters. When the Data Path Failover
feature is used, only the primary path for the tape drive is listed. The statistics apply to both the primary and alternative paths that are used.
System performance tuning is not a support responsibility. If tests indicate that raw tape performance is below specifications, record the exact failing command. Then,
collect the output from the commands in Table 1 before support is contacted.
This chapter describes the IBM® Linux® Tape and Medium Changer device driver (lin_tape).
For tape diagnostic and utility functions, refer to IBM Tape Diagnostic Tool (ITDT).
Purpose
The lin_tape and medium changer device driver is designed to take advantage of the features that are provided by the IBM tape drives and medium changer devices. The
goal is to give applications access to the functions required for basic tape operations (such as backup and restore) and medium changer operations (such as mount and
unmount the cartridges), and also the advanced functions that are needed by full tape management systems. Whenever possible, the driver is designed to take advantage
of the device features transparent to the application.
Data flow
The software that is described in this chapter covers the Linux device driver (lin_tape device driver) and the interface between the application and the tape device.
Product requirements
Edit online
Hardware requirements
For current hardware requirements, refer to the Hardware requirements.
Software requirements
For current software requirements, refer to the Software requirements.
The lin_tape device driver for Linux® is provided in a source rpm package. The utility tools for lin_tape are supplied in binary rpm packages. Refer to Accessing
documentation and software online. They are downloaded with the driver.
The following sections describe installation, configuration, uninstallation, and verification procedures for lin_tape and its utility tools. Refer to Linux documentation for tar
command information and any Linux distribution that support rpm for rpm command information. You must have root authority to proceed with the installation of the
driver. See the README file that can be downloaded with the driver at Fix Central. For information about downloading drivers, see Accessing documentation and software
online.
This file contains the latest driver information and supersedes the information in this publication.
Conventions used
Configuration limitations
Components created during installation
Installation procedure
Updating procedure
Querying the installed package
Configuring Tape and Medium Changer devices on Intel-compatible systems
Configuring Tape and Medium Changer devices on IBM System p models
Configuring Tape and Medium Changer devices on IBM System z models
Uninstallation procedure
Conventions used
Edit online
In subsequent pages, you see file names with x.x.x in them. The x.x.x refers to the version of the driver, which changes as IBM® releases new driver levels. Use the actual
driver version numbers as you complete the instructions.
Commands that you are to type are indicated with a leading ">" character, which indicates the shell prompt.
Note: This procedure is run with tape diagnostic and utility functions. See IBM Tape Diagnostic Tool (ITDT).
Configuration limitations
Edit online
The lin_tape package consists of the device driver and a number of associated files. Components that are created during lin_tape installation (from the rpm package) are
listed in Table 1.
Installation procedure
Edit online
If lin_tape is already installed on your system, refer to the Updating procedure. This section assumes that you are installing the lin_tape device driver onto a system where
it is not currently installed.
If you are installing lin_tape on a system that is running Linux® for S/390® or Linux for zSeries, ensure that the OpenFCP adapter device driver zfcp is loaded in the kernel.
Refer to Configuring Tape and Medium Changer devices on IBM System z models for how to configure and install zfcp.
Make sure that the C/C++ development and kernel development packages are installed on your system. To install the lin_tape driver with all the added value of the
lin_taped daemon, complete the following steps.
1. Download the appropriate level of the source RPM package to a directory of your choice on the Linux kernel for which you want to install it.
2. Run rpmbuild --rebuild <filename>, where: <filename> is the name of the RPM file. A binary RPM package is created for your kernel from the source RPM package.
For example,
Note: For the current lin_tape driver, it is possible to enable path failover for st/sg interfaces. See Enabling path failover for st and sg interface for details. If path
failover is enabled and you want to also enable it for st or sg devices, an extra flag that is named sfmp must be added at this step:
3. Output from the build is printed to your screen. Near the end of the output, a line indicates the file name and location of your binary RPM package. For example, a
line similar to the following is output to your screen.
Wrote: /usr/src/redhat/RPMS/i386/lin_tape-1.x.x.x.0-1.i386.rpm
4. To install the lin_tape driver from the binary package, run >rpm -ivh <filename> For example,
Note: For Ubuntu, run alien -i --scripts <filename> (starting with lin_tape version 3.0.33).
5. To install the lin_taped daemon, download it to your Linux file system and run rpm -ivh on the daemon RPM file. For example,
Note: For Ubuntu, run alien -i --scripts <lin_taped*.rpm>, and then run sudo update-rc.d lin_tape defaults.
Updating procedure
If your current lin_tape device driver was installed from an rpm package previously, you can uninstall the driver first, then install the newer version. For example,
>rpm -e lin_taped
>rpm -e lin_tape
Then, follow the installation procedure in the previous section.
On Ubuntu:
Note: All tape devices that use the lin_tape device driver must be closed and cannot be in use when lin_tape is uninstalled.
The query is supported for the lin_tape device driver rpm package and SLES and RHELonly.
The installed rpm package can be queried by running the following commands to show information that is associated with the package.
To show the states of files in the package, for example, normal, not installed, or replaced -
Physically attach your tape and medium changer devices to your Linux® server.
After the driver software is installed and a tape device is connected to the adapter, the device can be configured and made available for use. Access to the device is not
provided until the device is configured.
If your system is attached to a tape library with the integrated router, before the QLogic driver is installed, set the host type of the router to solaris and make sure that the
logical unit numbers of the control unit, medium changer, and the connected tape drives are contiguous. Otherwise, the QLogic device driver does not recognize all of the
attached devices. To view the LUNs of attached devices, log on to the router and use the fcShowDevs command. If the LUNs are not contiguous, use the
mapCompressDatabase command to delete the invalid LUNs and make the valid LUNs contiguous.
When you run the lin_tape kernel module, it creates special files in the /dev directory.
Follow the same instructions as documented in the previous section. You must configure the Emulex Linux® device driver if you have Fibre Channel tape devices that are
attached to your System p (also known as pSeries) system.
The Fibre Channel topology that is supported for System z® is point-to-point and fabric. Refer to the Linux® on System z Fibre Channel documents for details on the
supported configurations for Fibre Channel device attachment. The Linux Fibre Channel adapter device driver zfcp is available in the kernel that supports zSeries Fibre
Channel Protocol. The zfcp device configuration methods in 2.6 (and higher) and 2.4 kernels are different. For 2.6 kernels and higher, refer to appropriate chapter in the
Linux on System z document entitled Linux on System z: Device Drivers, Features, and Commands.
For 2.4 kernels, there are three ways to load the zfcp device driver to see the attached tape devices.
The zfcp device driver uses the "map" module parameter to recognize a physically attached tape device. map takes the following format,
map="<devno><port scsi-id>:<wwpn><unit-scsi-lun>:<fcp-lun>;...."
Where
devno
The device number of the host bus adapter (16 bits, see /proc/subchannels). It is 0xf1c0 or 0xf1c1 in the previous example.
port scsi-id
Linux internal SCSI ID assigned to the Fibre Channel port of the SCSI target device (32-bit, must not be 0, must be a unique one-to-one mapping for each
worldwide port name. It is 0x1 in the previous example.
wwpn
Worldwide port name that identifies the Fibre Channel port of the SCSI target device (64-bit). It is 0x5005076300402733 in the previous example.
unit scsi-lun
Linux internal SCSI Logical Unit Number (32-bit). It is 0x0 in the previous example.
fcp-lun
Logical Unit Number that is associated with the SCSI target device (64-bit). In the previous example, 0x0000000000000000 is the Logical Unit Number 0,
and 0x0001000000000000 is the Logical Unit Number 1.
For tape attachment, each logical unit number must be associated with a unique devno. If you use the same devno numbers for several logical units, you can ensure
that each <unit-scsi-lun> is unique. After /etc/zfcp.conf is created, run the following commands.
>mk_initrd>zipl
Then restart the system. After it is booted up, your tape device must be shown in /proc/scsi/scsi file.
2. Modify the /etc/modules.conf file to add the zfcp module parameters; then run the depmod –A and modprobe zfcp command.
Note: Do not use this choice together with the first one, otherwise it causes conflicts.
The zfcp map in /etc/modules.conf always takes higher priority than the map in /etc/zfcp.conf.
The following example demonstrates the zfcp configuration in /etc/modules.conf.
The map arguments are the same as the ones listed in for the /etc/zfcp.conf file.
After the /etc/modules.conf file is modified, save and close it. Then, run the following command.
>depmod -A
>modprobe zfcp
This action installs the zfcp device driver and all of its prerequisite kernel modules. Now you can check the file /proc/scsi/scsi to see whether all of the attached
tape devices are shown in this file. If not, then check the Fibre Channel connection, such as the fibre cables, or if the devices are powered on.
Then, run the following commands to install zfcp.
>rmmod zfcp
>modprobe zfcp
3. Run the modprobe zfcp command first, then dynamically add a tape device into the system after you physically attach a Fibre Channel tape device to the switch.
If you physically attach a tape device on the switch and zfcp is already loaded, you do not need to restart the Linux system to add this entry in the /proc/scsi/scsi
file. The zfcp device driver provides an "add_map" proc system entry under the directory /proc/scsi/zfcp to dynamically add the device into the system. For
example, to add two logical units from the example in Step 2 into the system, you can issue the following commands.
> /proc/scsi/zfcp/add_map
> echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi
> echo "scsi add-single-device 1 0 1 1" > /proc/scsi/scsi
The scsi add-single-device takes four parameters, corresponding to the four parameters scsi, Channel, Id, and Lun in the /proc/scsi/scsi file. The value of scsi is 0
for the first devno, 1 for the second devno (if it is different from the first devno), and so on. The value of Channel can start from 0 for each different scsi value. The
value of Id is the one you use for <unit scsi-lun> in the previous mapping. The value of Lun is the logical unit number of the target device, for example, the last
number in the previous mapping. Currently, the zfcp device driver does not support dynamically removing the attached devices. If you must remove the tape
devices from the system, do rmmod zfcp. Then, you can delete the entry in /etc/modules.conf and reload zfcp, or reload zfcp first and dynamically add the devices
that you want. After you finished all the mapping, if you can see all of the attached tape devices in /proc/scsi/scsi, you successfully attached those devices to your
system. Next, you can install the lin_tape device driver. Refer to the Installation procedure section for the instructions on how to install lin_tape.
Uninstallation procedure
Edit online
Note: All tape devices that use the lin_tape driver must be closed and cannot be in use when lin_tape is uninstalled or the uninstall fails.
On SLES and RHEL:
Run the following command to uninstall lin_taped before you uninstall lin_tape:
>rpm -e lin_tape
On Ubuntu:
This chapter describes the parameters that control the operating modes of the IBM® Linux® Tape and Medium Changer device driver.
Configuration parameters
Nonchangeable parameters
Changeable parameters
Configuration parameters
Edit online
The configuration parameters are used to set the operating mode of the tape drive and device driver when a device is opened. The installation defaults are provided for all
parameters initially. These parameters are kept on reopen, but are always restored back to the default values when the lin_tape device driver is reinstalled.
Note: This procedure is completed with tape diagnostic and utility functions. See IBM Tape Diagnostic Tool (ITDT).
The nonchangeable configuration parameters are
Autoloading
Density code
Emulate autoloader
Hook word
Maximum block size
Minimum block size
Medium type
Read SILI bit
Record space mode
Volume ID for logging
Write protect
Barcode length
Block size
Buffered mode
Capacity scaling
Compression
Disable auto drive dump
Disable SIM logging
Dynamic attributes
Logging
Logical write protect
Maximum SCSI transfer length
Read past filemark
Rewind immediate
Trace
Trailer labels
Busy Retry
Nonchangeable parameters
Edit online
The configuration parameters are used to set the operating mode of the tape drive and device driver when a device is opened. The nonchangeable parameters are detailed
as follows.
Autoloading
This parameter enables the autoloading feature of the device driver. It is disabled by default and cannot be changed.
Capacity scaling
Density code
This parameter is the density setting for the currently loaded tape. Some tape devices support multiple densities and report the current setting in this field. It cannot be
changed by the application.
Emulate autoloader
This parameter currently is not supported and is ignored.
Hook word
This parameter is not supported in the lin_tape device driver.
Medium type
This parameter is the media type of the current loaded tape. Some tape devices support multiple media types and different values are reported in this field.
Write protect
This parameter is set to TRUE if the currently mounted tape is logically or physically write protected.
Changeable parameters
Edit online
The configuration parameters are used to set the operating mode of the tape drive and device driver when a device is opened. The changeable parameters are detailed as
follows.
Barcode length
This parameter can be set to change the barcode length for a cartridge. For LTO cartridges the default is 8. It can be changed to 6 for LTO 1 and LTO 2 generation cartridges
only. For 3592 cartridges the default is set at 6. It can be changed to 8. In the /etc/modprobe.conf.local file the following line must be added to reflect the desired change.
Block size
This parameter specifies the block size that is used for read and write operations. A value of zero means a variable block size. Any other value is a fixed block size. The
installation default is zero (variable length block size). Refer to Maximum SCSI transfer length for guidance.
Capacity scaling
This parameter sets the capacity or logical length of the current tape on Enterprise Tape System 3590 or 3592 tape subsystems. By reducing the capacity of the tape, the
tape drive can access data faster at the expense of data capacity. Capacity scaling can be set at 100% for the entire tape (which is the default), or set at 75%, 50%, or
25% of the 3590 tape cartridge and more available capacity scaling for the 3592 standard 300 GB rewritable data cartridge. Capacity scaling remains with the tape across
mounts until it is changed.
Note:
1. The tape position must be at the start of the tape to change this parameter from its current value.
2. Changing this parameter destroys any existing data on the tape.
3. For 3592 media types, capacity scaling is supported only for the standard 300 GB rewritable data cartridge. Attempting to set capacity scaling that is not supported
by a device or the current loaded media always returns 100% and cannot be changed. For example, the 60 GB (Economy Data) cartridge for the IBM® 3592 cannot
be capacity-scaled and is always 100%.
Compression
Hardware compression is implemented in the device hardware. This parameter turns the hardware compression feature On and Off. If compression is enabled, the
effective performance can increase, based on the compressibility of the data.
Dynamic attributes
This parameter determines whether dynamic runtime attributes are attempted on open for supported drives. Default is 1 (on) meaning that the driver automatically
attempts to set dynamic runtime attributes on open. This parameter can be changed to 0 (off) in the configuration file before the lin_tape is loaded. It is recommended to
keep on dynamic attributes unless it produces an unexpected problem in the environment.
1. Associated protect remains only while the current tape is mounted or associated with the tape drive. It is reset when the tape is unloaded or the tape drive is reset.
2. Persistent protect remains or persists with the tape across mounts until it is reset.
3. WORM protect also remains with the tape across mounts, but unlike persistent protect it cannot be reset on the tape. After a tape is WORM protected, it can never
be written on again.
Note: The tape position must be at the start of the tape to change this parameter from its current value.
Rewind immediate
This parameter sets the immediate bit for rewind commands. If it is set to On, the rewind tape operation runs faster, but the next command takes a long time to finish
unless the physical rewind operation is complete. Setting this parameter reduces the amount of time it takes to close a device for a Rewind on Close special file.
Trace
This parameter turns the trace facility On or Off. With the lin_tape version 1.2.2 and later, the lin_tape device driver provides this support. It is set to On by default. If trace
is On and the lin_taped daemon is running, the lin_tape device driver retrieves the trace from the driver if trace level is set to 1 or 2 in the /etc/lin_taped.conf file. The trace
file is saved under the directory /var/log by default. You can specify another directory in /etc/lin_taped.conf file. Refer to Configuring and running the lin_taped daemon for
details.
Trailer labels
If this parameter is set to On, then writing records past the early warning mark on the tape is allowed. The first write operation after detecting the early warning mark fails
and the errno variable is set to ENOSPC. No data is written during the operation. All subsequent write operations are allowed to continue until the physical end of the
volume is reached and errno EIO is returned.
If this parameter is set to Off, then writing records past the early warning mark is not allowed. Errno variable is set to ENOSPC.
Busy Retry
The parameter busy_retry determines how many times to retry a command when the device is busy. Default is 0 (off), and can be set up to 480 in the configuration file
before the lin_tape is loaded.
lin_tape_ignoreOEM
The parameter lin_tape_ignoreOEM stops OEM devices from connecting to the driver. Default is 0 (off), and can be set up to 1 in the configuration file before the lin_tape is
loaded.
Special files
Edit online
After the driver is installed and a device is configured and made available for use, access is provided through the special files. These special files, which consist of the
standard Linux® special files for devices, are in the /dev directory.
Each tape device has a set of special files providing access to the same physical drive but providing different attributes. Table 1 shows the attributes of the special files.
Note: The asterisk (*) in IBMtape* represents a number assigned to a particular device, such as IBMtape0.
For tape drives with attached medium changer devices, the IBMchanger* special file provides a separate path for issuing commands to the medium changer. When this
special file is opened, the application can view the medium changer as a separate device. Both the tape and changer special file can be opened at the same time.
After the driver is installed and a medium changer device is configured and made available for use, access to the robotic device is provided through the IBMchanger
special file in the/dev directory. The asterisk (*) represents a number that is assigned to a particular device, such as IBMchanger0. The term IBMchanger is used for a SCSI
medium changer device. The IBMchanger* special file provides a path for issuing commands to control the medium changer robotic device.
The file descriptor that results from opening the IBMchanger special file does not support the following operations.
Read
Write
Open in Append mode
Commands that are designed for a tape device
Lin_tape Persistent Naming is implemented through the Linux® udev utility. Udev is a service that monitors changes in system hardware configuration and completes
actions that are based on what devices are attached to the Linux system. It can be configured to create symbolic links (persistent names) to a device based on attributes
that a driver exports for that device. The persistent name can then be used as the device name to open and complete IO to a tape drive or medium changer. This action
makes it possible to reference a static name, such as
/dev/lin_tape/by-id/lin_tape4801101
This name is always associated with the same physical device, rather than being required to reference the device name /dev/IBMtape0, which can change names and
become /dev/IBMtape1 after the driver is reinstalled.
Lin_tape exports several attributes that can be used as the basis to create persistent names. These attributes can be reported to the user through udevadm info on recent
Linux kernels, or udevinfo on older Linux kernels. The udevinfo and udevadm are udev management tools. These tools can query the udev database for device information
and properties that are stored in the udev base for help creating udev rules.
Note: Udev, udevinfo, and udevadm are not implemented or maintained by the lin_tape driver. Refer to the man pages for udevadm or udevinfo for details on usage. These
man pages are system specific and supersede all information in this document. For questions on these utilities, you must contact your Linux support representative.
An example is provided on udev for implementing a persistent name. The example must be customized to fit a user’s needs and environment.
ATTRS{serial_num}=="123456789"
ATTRS{ww_node_name}=="0x123456789ABCDEF1"
ATTRS{ww_port_name}=="0x123456789ABCDEF0"
Also, on some kernels an attribute ATTRS{xxx} is replaced by SYSFS{xxx}. Furthermore, some kernels use a '=' (single equal sign) to indicate an attribute match and
also an assignment. Whereas, other kernels use a '==' (double equal sign) for a match and '=' for assignment. Place the attribute from the attribute list into your rules file
exactly as it appears in the attribute list, as described here.
The ww_port_name is in a rules file that assigns a symbolic link to a device that has the listed worldwide port name. The file typically is placed in /etc/udev/rules.d, but
this location might be changed by the udev_rules directive in the /etc/udev/rules.conf file. In this example, a file is created that is called /etc/udev/rules.d/98-
lin_tape.rules and write a single line to the file.
KERNEL=="IBMtape*", ATTRS{ww_port_name}=="0x123456789ABCDEF0",
SYMLINK="lin_tape/by-id/lin_tape4801101"
Assuming that the udev service is running and configured correctly, the user can install or reinstall lin_tape with modprobe, and the symbolic link is created in the
/dev/lin_tape/by-id folder. One line must be added to the 98-lin_tape.rules file for each wanted symbolic link.
With lin_tape version 2.2.0, a parameter, persistent_n_device, is added to support persistent naming of no rewind devices. The default value is 0 (off). To enable this
support, complete the following steps.
1. Modify the 98-lin_tape.rules file to differentiate standard devices and no rewind devices. For example,
lin_taped stop
modprobe -r pfo
4. Add the following line in your /etc/modprobe.conf or /etc/modprobe.conf.local file (or, if you are running RHEL 6 or higher, in your /etc/modprobe.d/lin_tape.conf
file).
modprobe pfo
modprobe lin_tape
Note: Wait at least 10 seconds between step 3 (modprobe -r lin_tape) and step 5 (modprobe lin_tape) in order for udev to correctly configure the devices.
6. Check that the devices are all correctly listed with the following command.
ls -l /dev/lin_tape/by-id/
lin_taped start
Note: The library control path failover feature code must be installed before control path failover support is enabled in the Linux® lin_tape device driver. Refer toAutomatic
failover to determine which feature code is required for your machine type.
The Linux lin_tape device driver control path failover support configures multiple physical control paths to the same logical library within the device driver. It also provides
automatic failover to an alternative control path when a permanent error occurs on one path. This support is transparent to the running application.
Control path failover support is not enabled automatically when the device driver is installed. The Linux® lin_tape device driver provides a driver parameter
alternate_pathing for you to enable the library control path failover. To enable the failover support in the lin_tape device driver software, you must do the following steps
after the lin_tape rpm package is installed:
modprobe -r lin_tape
modprobe -r pfo
3. Add the following line in your /etc/modprobe.conf or /etc/modprobe.conf.local file (or, if you are running RHEL 6 or higher, in your /etc/modprobe.d/lin_tape.conf
file)
modprobe pfo
modprobe lin_tape
You can ignore the Unresolved symbols in /lib/modules/<your kernel name>/drivers/scsi/lin_tape.ko message after the depmod command. You can
check whether the lin_tape driver recognized multiple control paths for your library by reading the /proc/scsi/IBMchanger file.
If your library lists "Primary" or "Alternate" under "FO Path", you successfully enabled the control path failover feature for your library. If "NA" is listed under "FO Path",
then the control path failover is not enabled. After control path failover support is enabled, it remains set until the lin_tape driver is reloaded with the alternate_pathing
driver parameter set to OFF. The path failover setting is retained even if the system is rebooted. If you want to turn off the control path failover feature in the lin_tape
device driver, you can complete the following steps.
1. lin_taped stop
2. Unload the lin_tape driver from the memory.
modprobe -r lin_tape
modprobe -r pfo
modprobe pfo
modprobe lin_tape
Through a collaboration effort that is named join driver, control path failover is supported through the sg interface, by using the latest lin_tape driver version on RHEL over
Intel only.
Note: It is important to review hardware and software requirements before path failover is enabled. See Path failover and load balancing.
To enable it, the lin_tape_as_sfmp parameter must be set at /etc/modprobe.d/lin_tape.conf as follows:
When lin_tape is loaded into kernel memory, the first logical medium changer device that lin_tape sees in the system is the primary path for that medium changer. The
other logical medium changers that lin_tape attached for the same medium changer are configured as alternative paths. The device driver supports up to 16 physical
paths for a single device. The primary and alternative path information can be obtained by the following command.
cat /proc/scsi/IBMchanger
Identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one logical device is
labeled as the primary path for each physical device. However, multiple logical devices can be labeled as an alternative path for the same devices.
Provide information about which logical devices configured on the system have path failover support enabled.
The numbers listed in Table 1 are the ones used for IBMchanger special files at /dev directory (see Special Files for the Medium Changer device). An attempt to open a
device file name not listed at /dev directory will fail. Per file systems handling and due to path removal, usually a device file name is deleted after a device closes or before
a device opens. Using Persistent naming support will maintain device file names listed under ls -l /dev/lin_tape/by-id/.
cat /sys/class/pfo/*/paths
Example output:
There is only one sg device file name per device that uses all the paths for this device.
You can show the primary and alternative path configuration for all devices by reading the /proc/scsi/ IBMchanger file, as explained in Primary and alternative paths.
Note: Show the primary and alternative path configuration for any device with tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
When you load the lin_tape device driver with the alternate_pathing parameter to be ON, by default, all the available paths for a physical device are enabled.
If it is necessary to disable a path and not run path failover (for example, because of maintenance), run commands to disable and then later enable the primary and
alternative paths.
The commands to enable and disable primary and alternative paths are tape diagnostic and utility functions.
Note: See IBM Tape Diagnostic Tool (ITDT).
Data Path failover and load balancing support for tape drives
Edit online
Data path failover support is not enabled automatically when the device driver is installed. The Linux® lin_tape device driver provides a driver parameter alternate_pathing
for you to enable the data path failover.
To enable the failover support in the lin_tape device driver software, you must complete the following steps after the lin_tape rpm package is installed.
If you have IBM® 3592 tape drives, add the following line in your /etc/modprobe.conf or /etc/modprobe.conf.local file (or, if you are running RHEL 6 or higher, in your
/etc/modprobe.d/lin_tape.conf file).
If you have IBM LTO tape drives, the library must have a path failover feature code. The data path failover license keys are needed to enable the failover if you are running
LTO2 drives or if you are running LTO3 drives with old levels of drive code. DPF keys do not need to be added if you are running the latest drive code on LTO3 or higher
drives.
Add the following line in your /etc/modprobe.conf or /etc/modprobe.conf.local file (or, if you are running RHEL 6 or higher, in your /etc/modprobe.d/lin_tape.conf file).
abckdefghijklmnop is an example of a data path failover feature key. If you have multiple libraries and multiple data path failover feature keys, input your keys as
follows.
dpf_keys="key1;key2;..."
>depmod
>modprobe lin_tape (re-load the lin_tape driver into memory)
>lin_taped (re-start lin_taped daemon)
You can ignore the Unresolved symbols in /lib/modules/<your kernel name>/drivers/scsi/lin_tape.ko message after the depmod command. You can
check whether the lin_tape driver recognized multiple paths for your tape drive by reading the /proc/scsi/IBMtape file.
>cat /proc/scsi/IBMtape
If your tape drive lists Primary or Alternate under FO Path, you successfully enabled data path failover feature for your tape drive. If NA is listed under FO Path, the
data path failover is not enabled. After the path failover support is enabled, it remains set until the lin_tape driver is reloaded with the alternate_pathing driver parameter
set to OFF. The path failover setting is retained even if the system is rebooted. If you want to turn off the data path failover feature in the lin_tape device driver, you can run
the following steps.
>lin_taped stop
modprobe -r lin_tape
modprobe -r pfo
modprobe pfo
modprobe lin_tape
>lin_taped start
Through a collaboration effort that is named join driver, control path failover is planned to be supported through st and sg interfaces by using the latest lin_tape driver
version on RHEL over Intel only.
Important: Review hardware and software requirements before path failover is enabled. See Path failover and load balancing.
To enable it, the lin_tape_as_sfmp parameter must be set at /etc/modprobe.d/lin_tape.conf:
When the lin_tape device driver is loaded into kernel memory with path failover support enabled, the first logic device that lin_tape sees always becomes the primary
path. The other logical devices that lin_tape sees are configured as the alternative paths. The device driver supports up to 16 physical paths for a single device.
The primary and alternative path information can be obtained by the following command.
>cat /proc/scsi/IBMtape
Identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one logical device is
labeled the primary path for each physical device. However, many (multiple) logical devices can be labeled as an alternative path for the same device.
Provide information about which logical devices configured on the system have path failover support enabled.
The numbers listed in Table 1 are the ones used for IBMchanger special files at /dev directory (see Special files for the tape device). An attempt to open a device file name
not listed at /dev directory will fail. Per file systems handling and due to path removal, usually a device file name is deleted after a device closes or before a device opens.
Using Persistent naming support will maintain device file names listed under ls -l /dev/lin_tape/by-id/.
When lin_tape_as_sfmp is set, st and sg paths can be queried through pfo paths as follows:
cat /sys/class/pfo/*/paths
Example output:
Only one st and one sg device file name per device can use all the paths for that device.
You can show the primary and alternative path configuration for all devices by reading the /proc/scsi/IBMtape file, as explained in Primary and alternative paths.
Note: Show the primary and alternative path configuration for any device with tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
If it is necessary to disable a path and not run path failover (for example, because of maintenance), run commands to disable and then enable the primary and alternative
paths.
The commands to enable and disable primary and alternative paths are tape diagnostic and utility functions.
Note: See IBM Tape Diagnostic Tool (ITDT).
This parameter causes lin_tape to issue SCSI-3 persistent reserves to a tape drive whenever a reservation is attempted. Persistent reserves are automatically issued if
data path failover is used, and therefore setting the parameter is unnecessary. This parameter can be set only when lin_tape is installed. To set it, add the following line to
/etc/modprobe.conf or /etc/modprobe.conf.local (or, if you are running RHEL 6 or higher, to /etc/modprobe.d/lin_tape.conf):
If alternate pathing is not enabled persistent reserve is not issued automatically, so this parameter is needed only if you want to use persistent reserve with
alternate_pathing disabled.
The lin_tape device driver is the new device driver for the Linux® 2.6 kernels to replace the closed-source driver IBMtape. In most respects, it behaves the same as the
closed-source IBMtape device driver. This section covers significant differences between the IBMtape driver and the lin_tape driver.
Table 1 compares the names for various components of the IBMtape and lin_tape device drivers.
Installation
200 IBM TS4300 Tape Library
Edit online
Installation of the lin_tape driver is the same as for the IBMtape driver, except that IBMtape must be replaced with lin_tape in the installation instructions. Refer to
Installation and Configuration instructions for details.
The lin_tape driver cannot be installed if the IBMtape driver is already installed. If the IBMtape driver is installed, first uninstall the IBMtape driver, and then install the
lin_tape driver. With RHEL4 and SLES10, driver removal also requires a reboot of the server, since the IBMtape driver module is "permanent" in these distributions.
The driver parameters are not changed for the lin_tape driver. However, it is important that the module parameters, such as alternate_pathingand dpf_keys, must now be
applied to the lin_tape module, instead of the IBMtape module. For example, in the /etc/modprobe.conf or /etc/modprobe.conf.local file (or, if you are running RHEL 6 or
higher, the /etc/modprobe.d/lin_tape.conf file), add the following line for LTO library's path failover:
The special device files for the lin_tape driver are the same as for the IBMtape driver. Refer to Special files for the tape device and Special files for the Medium Changer
device for details on special device files.
Input and output must be quiesced and all driver handles must be closed before a lin_tape device is taken offline. It is recommended to remove the lin_tape driver module
and then the HBA driver module before maintenance is done or the physical topology of the tape drive or library environment is changed. Lin_tape can be removed by the
following command at the shell prompt.
lin_taped stop
modprobe -r lin_tape
modprobe -r pfo
Likewise, the HBA module can be removed by the following command, where "HBA_driver" is your specific HBA driver.
rmmod <HBA_driver>
After the maintenance is complete and the environment is ready to issue input and output, the drivers must be reinstalled in reverse order. This procedure is typically done
by
modprobe <HBA_driver>
modprobe pfo
modprobe lin_tape
>lin_taped start
Path failover support in lin_tape is the same. However, with the lin_tape driver, failover support is provided through the lin_taped daemon. If the lin_taped daemon is not
running, neither control path failover nor data path failover is attempted. The lin_taped daemon is started automatically when the lin_tape driver is loaded.
To check whether the lin_taped daemon is running, run the following command.
lin_taped status
This command indicates whether the lin_taped daemon is running. If the /proc/scsi/IBMtape and /proc/scsi/IBMchanger files indicate "NA" for "FO Path", this answer
indicates that failover support for that device is not enabled. If all other settings are correct, but "FO Path" is incorrectly indicating "NA", confirm that the lin_taped daemon
is running.
For details about path failover support, refer to Control Path failover support for tape libraries and Data Path failover and load balancing support for tape drives.
lin_taped daemon
Edit online
System-managed encryption
Edit online
Note: System-managed encryption (SME) on Linux® requires that the lin_taped daemon is running.
The device driver SME settings can be set for all drives at once with the default_sys_encryption_proxy and default_sys_encryption_write module options.
If no options are specified in the registry, the driver uses the default values for the parameters.
The module options can be specified in the /etc/modprobe.conf, /etc/modprobe.conf.local, or /etc/modprobe.d/lin_tape.conf files, the same as other lin_tape module
parameters.
>lin_taped stop
>modprobe -r lin_tape
>modprobe -r pfo
Wait at least 5 seconds
>modprobe pfo
>modprobe lin_tape
>lin_taped start
The default settings are used to initialize the settings for all connected drives.
To modify the settings for individual drives, the settings are sys_encryption_write and sys_encryption_proxy. They have the same definitions and values as the similarly
named "default" parameters, except that the settings apply only to individual drives.
These settings are available as part of the sysfs infrastructure. For each drive, there are two files, named sys_encryption_write and sys_encryption_proxy, in the
/sys/class/lin_tape/{DEVICE}/ directory, where: {DEVICE} is the device name, such as IBMtape0. The contents of these files indicate the current setting for the parameter
for that particular drive. The setting can be changed by writing a different value for the parameter to the file.
For example, to change the sys_encryption_write setting for IBMtape0 to ON (which has a value of 1), enter the following at a command line.
echo 1">/sys/class/lin_tape/IBMtape0/sys_encryption_write
Note: The driver encryption parameters for individual drives are not persistent between loads of the lin_tape driver. If you remove the lin_tape driver, and then reload it,
the individual settings for all drives are the same as the "default" settings in /etc/modprobe.conf, /etc/modprobe.conf.local, or /etc/modprobe.d/lin_tape.conf.
The ibmekm.conf file, which contains the configuration that the EKM servers use, is installed in the /etc/ directory when lin_tape is installed. Instructions for modifying this
file are found within the file itself.
Problem determination
Edit online
A set of tools is provided with the device driver to determine whether the device driver and the tape device are functioning correctly.
By default, the driver prints minimal kernel trace messages to the system log at /var/log/messages. The minimal information includes notification that a device is
recognized or taken offline and also the most serious of error conditions. If a more verbose trace is wanted, the variable /sys/bus/scsi/drivers/lin_tape/lin_tape_debug
must contain the value 1. This procedure can be accomplished in one of two ways -
Then reinstall lin_tape. This action causes the lin_tape_debug variable to be set every time lin_tape is loaded.
Issue the following command from the shell.
This action causes the lin_tape_debug variable to be set only until lin_tape is uninstalled or until the variable is set back to 0.
Starting with lin_tape version 1.2.5, the lin_tape device driver provides an error diagnostic daemon (lin_taped) which provides the following capabilities:
Because lin_taped requires a minimal amount of system resource and because it provides these necessary diagnostic capabilities, IBM® recommends that you leave the
daemon always enabled.
Installing lin_taped
lin_taped is automatically installed at/usr/bin/lin_taped when you install the lin_tape device driver with the rpm or tar package. Refer toInstallation and Configuration
instructions for instructions on installing the lin_tape device driver.
Configuring lin_taped
You can customize the operation of lin_taped by modifying its configuration file, which is at /etc/lin_taped.conf. The daemon reads only the configuration file when it
starts; so if you modify the configuration file, stop the daemon, and restart it so that your modifications are recognized by the daemon.
Tracing:
Three levels of tracing are supported for the lin_taped daemon. lin_taped tracing is a complement to, but is different from, tracing of the kernel module that is described in
Tracing driver modules. The lin_taped tracing levels are defined as follows:
0 With tracing set to 0, lin_taped records minimal tracing.
1 With tracing set to 1, lin_taped records information that is associated with each ioctl called. If a device error occurs and SCSI sense data is obtained
from the device, a subset of that sense data is also recorded. The default setting for tracing.
2 With tracing set to 2, lin_taped records tracing messages for each SCSI command. If a device error occurs and SCSI sense data is obtained form the
device, all sense data is also recorded. This tracing level is used only when a specific problem is being diagnosed due to the potential for huge
amounts of data that is generated.
Set the lin_tapeTrace variable in the /etc/lin_taped.conf file to 0, 1, or 2, depending on what level of tracing you want. If the lin_tapeTrace variable is set to an invalid
number, the lin_taped daemon does not start.
You can change the directory to which the tracing information is written or the default maximum size of the trace file by modifying settings in the lin_taped.conf file. Refer
to the instructions in the lin_taped.conf file for details.
Error logging:
lin_taped records certain error messages from the lin_tape device driver in a file named /var/log/lin_tape.errorlog, by default. Information is written into the file until it is 1
MB in size, by default. After 1 MB of trace information is written, the file is archived (with the Linux ar command) into file lin_tape.a in the same directory. In the archive,
the file name is renamed to lin_tape.errorlog.timestamp, where timestamp reflects the time that the file was archived.
You can change the directory to which the error logging information is written or the default maximum size of the error log file by modifying settings in the lin_taped.conf
file. Refer to the instructions in the lin_taped.conf file for details.
Whenever the lin_taped daemon is running, error logging is enabled if tracing is enabled. Following is an example an error log record.
The first line indicates the tape device special file name and the device serial number, and the timestamp when the error message was recorded. "Scsi Path" is the SCSI
path for this logical unit. It matches the order of the scsi/Channel/Id/Lun information in the /proc/scsi/scsi file. "CDB Command" is the command data block of the SCSI
command. "Status Code" is the returned result from the Linux SCSI middle layer device driver (scsi_mod.o). The 4 bytes represent driver_byte, host_byte, msg_byte, and
status_byte. "Sense Data" is the full SCSI sense data that is returned from the target. "Description" is a person-readable text string that is obtained by parsing the sense
key field of the sense data.
The following circumstances are not logged in the lin_tape.errorlog file:
1. Sense key is 0, and the sense data indicates an overlength or an underlength read, or encountering a file mark or the end of data
2. Sense key is 2, and the ASC/ASCQ indicates that the device is becoming ready
3. Sense key is 6, indicating a unit attention
4. Sense key is 8, and the ASC/ASCQ indicates the end of data
Volume logging:
The lin_tape device driver retrieves the full log sense data from the tape drive whenever the drive reaches a log threshold, or a tape is unloaded from the drive, or the drive
is reset through an application. This data is stored in binary in a file named lin_tape.timestamp.log, where: lin_tapen is the device special file (for example, lin_tape1,
lin_tape2) and timestamp reflects the time that the file was created. Each time log sense data is obtained, it is written to a new file. Use the appropriate tape drive
hardware reference manual to decode the log sense data.
The volume logging data is stored in the /var/log directory by default. You can specify another directory in the /etc/lin_taped.conf file.
There are two configuration parameters in the /etc/lin_taped.conf file that you can tailor to affect the number of log sense files that are kept on your system.
By default, lin_tapeMaxLogSenseFiles is 0 and lin_tapeAutoLogSenseFileOverWrite is 1, which means that every time log sense data is created, it is written to a new file.
If lin_tapeMaxLogSenseFiles is 0, lin_tapeAutoLogSenseFileOverWrite is ignored, and each time log sense data is obtained, it is written to a new file.
If lin_tapeMaxLogSenseFiles is a positive number and lin_tapeAutoLogSenseFileOverWrite is 0, each time log sense data is created, lin_taped writes that data to a file
until lin_tapeMaxLogSenseFiles is created. Then, lin_taped stops creating new files, even if new log sense data is produced.
If lin_tapeMaxLogSenseFiles is a positive number and lin_tapeAutoLogSenseFileOverWrite is 1, each time log sense data is created, lin_taped writes that data to a file
until lin_tapeMaxLogSenseFiles is created. Then, when new log sense data is detected, lin_taped deletes the oldest log sense file and creates a new file with the newest
log sense data. Thus, only the newest data is kept.
If a condition occurs in the drive such that a drive dump is created, lin_taped retrieves the drive dump and saves it in a file named lin_tapex.timestamp.dmp,
wherelin_tapen is the device special file (for example, lin_tape1, lin_tape2) and timestamp reflects the time that the file was created. Each time a drive dump is obtained,
it is written to a new file. The IBM service organization might request that you forward drive dumps to them for analysis.
The drive dumps are stored in the /var/log directory by default. You can specify another directory in the /etc/lin_taped.conf file.
There are two configuration parameters in the /etc/lin_taped.conf file that you can tailor to affect the number of drive dumps that are kept on your system.
By default, lin_tapeMaxDumpFiles is 0 and lin_tapeAutoDriveDumpFileOverWrite is 1, which means that every time a drive dump is obtained, it is written to a new file.
If lin_tapeMaxDumpFiles is 0, lin_tapeAutoDriveDumpFileOverWrite is ignored, and each time a drive dump is obtained, it is written to a new file.
If lin_tapeMaxDumpFiles is a positive number and lin_tapeAutoDriveDumpFileOverWrite is 0, each time a dump is obtained, lin_taped writes that data to a file until
lin_tapeMaxDumpFiles is created. Then, lin_taped stops creating new files, even if new drive dumps are produced.
If lin_tapeMaxDumpFiles is a positive number and lin_tapeAutoDriveDumpFileOverWrite is 1, each time a dump is obtained, lin_taped writes that data to a file until
lin_tapeMaxDumpFiles is created. Then, when a new drive dump is detected, lin_taped deletes the oldest drive dump file and creates a new file with the newest drive
dump data. Thus, only the newest data is kept.
If a condition occurs in the drive such that a drive SIM/MIM data is created, lin_taped retrieves the data and save it in a file named lin_tapex.timestamp.simmim, where
lin_tapen is the device special file (for example, lin_tape1, lin_tape2) and timestamp reflects the time that the file was created. Each time SIM/MIM data is obtained, it is
written to a new file. The IBM service organization might request that you forward SIM/MIM data to them for analysis.
The SIM/MIM data is stored in the /var/log directory by default. You can specify another directory in the /etc/lin_taped.conf file.
There are two configuration parameters in the /etc/lin_taped.conf file that you can tailor to affect the number of SIM/MIM files that are kept on your system.
By default, lin_tapeMaxSimMimDataFiles is 0 and lin_tapeAutoSimMimDataOverWrite is 1, which means that every time SIM/MIM data is obtained, it is written to a new
file.
If lin_tapeMaxSimMimDataFiles is 0, lin_tapeAutoSimMimDataOverWrite is ignored, and each time SIM/MIM data is obtained, it is written to a new file.
If lin_tapeMaxSimMimDataFiles is a positive number and lin_tapeAutoSimMimDataOverWrite is 0, each time SIM/MIM data is obtained, lin_taped writes that data to a file
until lin_tapeMaxSimMimDataFiles is created. Then, lin_taped stops creating new files, even if new SIM/MIM data is created.
If lin_tapeMaxSimMimDataFiles is a positive number and lin_tapeAutoSimMimDataOverWrite is 1, each time SIM/MIM data is obtained, lin_taped writes that data to a file
until lin_tapeMaxSimMimDataFiles is created. Then, when new SIM/MIM data is detected, lin_taped deletes the oldest SIM/MIM file and creates a new file with the
newest SIM/MIM data. Thus, only the newest data is kept.
Selective tracing:
Lin_tape provides facilities by which you can disable and enable tracing, error logging, auto-retrieving drive dumps, and auto-retrieving SIM/MIM data. You can selectively
enable or disable them through an application program, which uses the STIOC_SETP ioctl. These settings persist until the device driver is restarted, or the host system is
rebooted.
trace
This parameter is set to On by default, which enables lin_tape tracing of activities and error logging on a particular tape drive. Set this parameter to off to stop
tracing and error logging.
logging
This parameter is set to On by default and enables logging of log sense data. Setting this flag to Off suppresses volume logging for this device.
disable_sim_logging
This parameter controls the logging of SIM/MIM data for a device. By default it is set to Off, which causes SIM/MIM data to be logged. Set this flag to On to suppress
the logging of SIM/MIM records.
disable_auto_drive_dump
This parameter controls the saving of drive dumps for a device. By default it is set to Off, which causes drive dumps to be saved. Set this flag to On to suppress the
saving of drive dumps.
Running lin_taped:
If you are running the lin_tape device driver, version 1.4.1 or higher, after installing lin_tape lin_taped starts running even if your system does not have a tape device
attached. If you add a new tape device into your Linux system, lin_taped automatically creates a special file under the /dev directory. If you are running the lin_tape device
driver, version 1.3.x or less, lin_taped does not automatically start if there is no tape device attached. After you attach a new tape device, you must start the lin_taped
daemon.
You can start lin_taped from the command line. lin_taped takes zero or more of the parameters as listed in the following command.
Note: If you run rmmod lin_tape command to remove the lin_tape device driver from the running kernel, you must stop the lin_taped daemon first; otherwise you get a
Device or Resource Busy error.
When the device driver receives a reservation conflict on a tape drive command, it logs the conflict to the kernel debug buffer (which is typically echoed to
/var/log/messages). Before the error is logged, the device driver determines whether a SCSI Persistent Reservation is active on the target tape drive. If it is, it gets the
reserving host initiator WWPN (worldwide port name). If successful, the device driver posts the message
to the debug buffer. To prevent multiple identical entries in the error log, subsequent reservation conflicts from the same reserving host WWPN are not logged.
After lin_tape is installed, following the Installation and Configuration instructions, this command shows all tape devices and their device index:
cat /proc/scsi/IBM*
If any or some devices that are expected to show up are not there, confirm that they are attached to Linux SCSI layer by:
cat /proc/scsi/scsi
If the devices do not show up there, review your HBA configuration and device attachment. If they are there, make sure that they are supported devices at SSIC. See
Hardware requirements.
If files /proc/scsi/IBMchanger and /proc/scsi/IBMtape do not exist, review Installation and Configuration instructions, and confirm lin_taped is running by using:
lin_taped status
and also that lin_tape is correctly installed on SLES and RHEL by using:
.
On Ubuntu:
This chapter provides an overview of the IBM® SCSI Tape and Medium Changer Device Driver for Solaris, also known as IBMtape.
Purpose
This device driver product provides attachment for IBM Magnetic Tape and Library System products to Oracle SPARC and x64 Servers running the Solaris operating
system.
It is designed specifically to take advantage of the features that are provided by IBM tape and library systems. It also includes control of the random access medium
changer facility (move, element information, and inventory) present in some devices. The goal is to give applications access to the functions required for basic operations
(such as backup and restore). The goal also includes the advanced functions that are needed by full tape management systems. Whenever possible, the device driver is
designed to take advantage of the IBM tape system features transparent to the application.
Data flow
Both data and commands flow between the application program and the tape subsystem by way of IBMtape. Figure 1 shows the data flow between IBMtape, the
application program, the SCSI adapter device driver, and the IBM tape system.
Product requirements
Installation and configuration instructions
Special files
Persistent Naming Support
Control Path failover support for libraries
Data Path failover and load balancing support for tape drives
System-managed encryption
Problem determination
Product requirements
Edit online
Hardware requirements
Refer to the Hardware requirements for the latest hardware that is supported by the IBMtape device driver.
Note: For IBM® Ultrium drives with the Fibre Channel attachment, the Oracle Solaris operating system requires that the Fibre Channel addressing mode of the drive be set
to hard addressing.
IBM® SCSI Tape Drive and Medium Changer Device Driver for Solaris is an installable kernel module, which is supplied as a standard Solaris software package. When
installed, its package name is IBMtape. The following sections describe installation, removal, configuration, and verification procedures for IBMtape. Refer to the Solaris
documentation for general information about installable packages.
The IBMtape package consists of the device driver and a number of associated files and utilities. For components that are created during IBMtape installation, refer to
Table 1.
Table 1. Solaris: IBMtape components
Component (Note) Description
/etc/ibmekm.conf SME configuration file, working version
/etc/tmd.conf TMD configuration file, working version
/opt/IBMtape Package subdirectory
/opt/IBMtape/diags_info Diagnostic script
/opt/IBMtape/ibmekm.conf SME configuration file, reference version
/opt/IBMtape/tapelist Utility program
/opt/IBMtape/tmd Tape Monitor Daemon (TMD) program
/opt/IBMtape/tmd.conf TMD configuration file, reference version
/opt/IBMtape/IBMtape.conf Configuration file, reference version
/opt/IBMtape/ztapelist Shell script for Solaris zones use
/opt/IBMtape/tapedtrc Dynamic tracing utility program
/usr/kernel/drv/IBMtape Kernel module device driver
/usr/kernel/drv/IBMtape.conf Configuration file, working version
/usr/include/sys/smc.h Medium changer application programming interface (API) header file
/usr/include/sys/st.h Tape drive API header file
/usr/include/sys/svc.h Service aid API header file
/usr/include/sys/oldtape.h Compatibility API header file
Note: When IBMtape is updated, the working copies of IBMtape.conf, tmd.conf, and ibmekm.conf are not overwritten by the package file contents. This action allows
tape drive configuration options to be preserved across IBMtape updates. The reference copies of IBMtape.conf, tmd.conf, and ibmekm.conf are always installed in the
/opt/IBMtape directory.
Examples of installation commands and their results throughout this chapter use a percent sign (%) to indicate the shell prompt.
IBMtape attempts to claim and operate only the devices that are described in Hardware requirements. However, the Solaris operating system includes a SCSI tape device
driver named st, which claims any SCSI-compliant tape drive that it detects, including devices that IBMtape manages. To avoid conflicts between IBMtape and st, you
must prevent st from claiming and attempting to operate IBMtape-owned devices. Likewise, other suppliers’ SCSI tape device drivers that you installed must be prevented
from claiming IBMtape-owned devices.
Note: To prevent more than one device driver from claiming IBMtape-owned devices, IBMtape must be also configured with the HBA correctly. Refer to the section of
Configuring IBM tape devices with Oracle FC and SAS HBAs for the details.
Attention: Failure to prevent more than one device driver from operating the same tape drive might cause system panics or data loss on the tape drive.
The following installation and update steps describe how to prevent conflicts between IBMtape and other SCSI tape device drivers.
Preinstallation considerations
Edit online
Differential SCSI-2 support must exist on the machine before IBMtape is installed. Install and configure one of the supported differential SCSI adapters first, then
return to this section. Refer to the differential SCSI adapter documentation for instructions on installing the adapter and adapter driver.
You must have root authority to install or remove IBMtape.
You can restart the system as part of the IBMtape installation. Take appropriate precautions that this action does not adversely affect users or active processes on
the system.
As a consequence of installing or reinstalling IBMtape, device special file numbers under /dev/rmt might change. These numbers are assigned by Solaris during the
driver attachment process, and the sequencing cannot be specified by the device driver or installer.
Note: At the time of this writing, Solaris IBMtape driver does not yet support LTO 7. Check the Fixlist on FixCentral for updates on LTO 7 support.
Several steps must be taken before IBMtape is installed or updated on your system to ensure correct installation and system integrity.
% ls -l /dev/rmt/*l
lrwxrwxrwx 1 root root 72 Aug 26 15:47 /dev/rmt/5l ->
../../devices/iommu@f,e0000000/sbus@f,e0001000/QLGC,isp@3,10000/st@2,0:l
In the preceding example, /dev/rmt/5l and the related 5m, 5h, are controlled by the st device driver and are associated with the device at SCSI address 2, LUN 0.
Record the device type, /dev/rmt special file number, owning driver, SCSI target address, and LUN. This information is required later in the installation.
For example, suppose that an installation has two non-IBM devices that are owned by st at SCSI addresses 2 and 8. The low-density devices are accessed as
special files /dev/rmt/5l and /dev/rmt/6l. For the equipment listing after the device information is recorded, refer to Table 1.
% ls -l /dev/rmt/*st /dev/rmt/*smc
lrwxrwxrwx 1 root other 46 Aug 26 16:36 /dev/rmt/0st ->
../../devices/pci@6,4000/scsi@3/IBMtape@b,0:st
Note: When the drive is configured with Oracle HBA driver, even though the hardware path shows as st@w10000000c9848d68,0 the device special file still
indicates that the drive is configured with IBMtape driver.
The previous device special file is created by IBMtape. Refer to Special files for detail.
In this example, /dev/rmt/0st (a SCSI tape drive) is controlled by IBMtape and is associated with the device at SCSI address b, LUN 0. The address is reported in
hexadecimal format: The file /dev/rmt/1smc (a SCSI medium changer) is associated with the device at SCSI address b, LUN 1. Record the device type, /dev/rmt
special file number, owning driver, SCSI target address, and LUN. This information is required later in the installation.
For example, suppose that an installation has only an IBMtape-owned device that is installed at SCSI address 8. The device consists of both a tape drive and SCSI
medium changer. The tape drive is accessed as /dev/rmt/2st, and the medium changer as /dev/rmt/3smc. For a similar equipment listing after the device
information is recorded, refer to Table 2.
#name="st" class="scsi"
#target=1 lun=0;
ii. For other non-IBM installed SCSI tape device drivers, remove the drivers if they are not needed. If a driver is for SCSI tape devices only, it is not
needed. If a driver is for both tape and disk devices, follow the suppliers’ instructions to disable its access to all SCSI tape devices.
b. If the system has a mixture of IBMtape-owned devices and other tape drives, follow these steps to configure st and other non-IBM SCSI tape device drivers
so that they control a range of target addresses distinct from the range that IBMtape uses. These steps leave target addresses 7 and 15 unclaimed by all
target device drivers because SCSI adapters typically use one of the two addresses.
i. Edit /kernel/drv/st.conf, and comment out SCSI target entries for addresses 7-15 by placing a number sign (#) in the first column of each target entry.
In the following example, the entries for SCSI address 7 and 8 are commented out. Repeat this operation for all entries in the target address range 7-
15.
#name="st" class="scsi"
#target=7 lun=0;
#name="st" class="scsi"
#target=8 lun=0;
ii. For other non-IBM installed SCSI tape device drivers, follow the suppliers’ instructions to disable their access to all SCSI tape devices in the address
range 7-15.
iii. After the IBMtape package is installed, you must alter its configuration file so it does not use SCSI target addresses in the range 0-7 or address 15.
Now st and other non-IBM SCSI tape device drivers are configured to avoid a conflict with IBMtape.
8. Remove all special file entries under /dev/rmt. This action ensures that stale entries do not exist after the system is restarted. New entries are created when the
system is restarted.
% rm /dev/rmt/*
9. Read the next section of Configuring IBM tape devices with Fibre Channel and SAS HBAs, and follow the instruction requirements for the selected HBA in the host
machine before or after IBMtape is installed.
10. If you are updating the level of IBMtape, remove the currently installed IBMtape package. If this procedure is a new installation of IBMtape, skip this step.
a. Use pkgrm to remove the current level.
% /usr/sbin/pkgrm IBMtape
b. Examine the results from pkgrm. If you see these messages, one or more IBMtape-owned tape drives or tape monitor daemon (TMD) were still in use.
Identify the drives and TMD process ID (pid), and end the processes that are using them. If you cannot identify the processes, you must restart the system to
free the tape drive, then continue with the installation from this point.
...
Device busy
Cannot unload module: IBMtape
Will be unloaded upon reboot.
...
11. Select one of the following methods to install the IBMtape package, depending on the package distribution medium and the location of system resources.
Note: If this procedure is a new installation of IBMtape, IBM devices are not yet attached to the system, pkgadd error messages similar to the following are output.
...
drvconfig: Driver (IBMtape) failed to attach
Warning: Driver (IBMtape) successfully added to system
but failed to attach
## The device driver was unable to detect any supported devices!
## Verify that the device(s) are properly connected and powered on.
## Ensure that the SCSI adapter device driver is installed/configured.
## Then try reinstalling the device driver as follows:
## -enter the command: rem_drv IBMtape
## -enter the command: add_drv -m '* 0666 bin bin' IBMtape
## If problems persist, contact your IBM service representative.
pkgadd: ERROR: postinstall script did not complete successfully
...
Later, after you cabled IBM drives to the system and restarted, the driver attaches normally.
If the distribution medium is a package file in a UNIX file system, complete the following steps. You might obtain a package file by downloading it from the IBM Fix
Central website: http://www.ibm.com/support/fixcentral. For information, see Accessing documentation and software online. This example presumes a package file
named IBMtape.4.0.2.7 in the /tmp directory.
a. If necessary, FTP the package file to the target system. Use binary transfer mode. Place the package file in the target system’s /tmp directory.
b. Use pkgadd to install the driver.
% /usr/sbin/pkgadd -d /tmp/IBMtape.4.0.2.7
12. If your system environment includes a mixture of IBMtape-owned devices and devices that are owned by st or another third-party SCSI tape device driver, you must
first modify the configuration files for the non-IBM device drivers and restrict them to target addresses in the range 0-6.
Edit IBMtape.conf, in /usr/kernel/drv, and comment out entries for SCSI target addresses 0-7 and 15. Place a number sign (#) in the first column of each line that
makes up the entries. In the following example, the entries for address 0, LUN 0 and address 0, LUN 1 are commented out. Repeat the operation for all stanzas in
the address range 0-7 and address 15. Each SCSI target address has a stanza for both LUN 0 and LUN 1.
#name="IBMtape" class="scsi"
#target=0 lun=0
#block_size=0
#buffering=1
#immediate=0
#trailer=0
#sili=0;
In SAN environment, the Fibre Channel HBA driver can map the SCSI target address out of the range 15 and LUN over the number 1. You create a new entry with
the mapped SCSI target in IBMtape.conf. In the following example, the IBM tape device is mapped to the SCSI target 32 and LUN 15.
name="IBMtape" class="scsi"
target=32 lun=15
block_size=0
buffering=1
immediate=0
trailer=0
sili=0;
Alternatively, you can modify the configuration file or use the utility that is provided by the Fibre Channel HBA driver to persistently bind the tape device to the
expected SCSI target address.
13. Shut down the system. One common method to complete a shutdown is shown here but use your installation’s normal procedures.
% ls -l /dev/rmt/*l
% ls -l /dev/rmt/*st /dev/rmt/*smc
Compare the SCSI addresses obtained from ls with the readdressed SCSI targets you recorded. Write the new device special file numbers and owning driver next to
the matching new SCSI addresses.
For example, suppose that an installation previously had two non-IBM devices that are owned by st at SCSI addresses 2-8. An IBM device with tape drive and
medium changer is added. To prevent conflicts between IBMtape and st, the non-IBM devices are all placed at addresses in the range 0-6. The new IBM device is
addressed in the range 8-14. Depending on the addresses that are chosen after installation is completed and device information is recorded, refer to Table 5 for the
possible equipment listing entries.
Table 5. Solaris Device Driver - IBMtape - equipment listing example 4
DEVICE Old special file Old driver SCSI address/LUN (Old) SCSI address/LUN (New) New driver New special file (Note)
QIC /dev/rmt/5l st 2/0 2/0 st /dev/rmt/0l
QIC /dev/rmt/6l st 8/0 0/0 st /dev/rmt/1l
3590-B11 drive - - - 8/0 IBMtape /dev/rmt/2st
3590-B11 changer - - - 8/1 IBMtape /dev/rmt /3smc
Note: Based on the listing, you can see that the tape drive accessed previously as /dev/rmt/5 is now accessed as /dev/rmt/0, the new medium changer is
accessible as /dev/rmt/3smc.
18. Complete validation of "configuration conflict" to avoid the device that is configured with more than one device driver.
a. List the device special files in /dev/rmt and check if any unexpected device special file is created by non-IBMtape driver.
b. Verify whether same SCSI address or WWNN is pointed to different device special files owned by the different device driver. For example, a same tape drive
is configured by st driver with the special file of /dev/rmt/0 and by IBMtape driver with /dev/rmt/15st at the same SCSI address (target 0 and LUN 0).
c. Run the system command or other utility to verify whether the device can be opened by using both device special file names.
With the device special files in above example, load the cartridge in the drive and run # mt -f /dev/rmt/* stat command
Configuring IBM tape devices with Fibre Channel and SAS HBAs
Edit online
Users might experience difficulty when an IBM® tape device is attached to an IBM tape driver on a fibre network. The following sections describe how to configure IBM
tape devices with QLogic, Emulex, Oracle, Brocade, and AMCC Fibre Channel HBAs.
1. Run the QLogic SANSurfer Control FX utility to find and record the mapped target and LUN of the tape device.
2. Remove the comment at the beginning of the entry for the QLogic HBA in the /usr/kernel/drv/IBMtape.conf file.
For example, the following command opens the entry for QLogic QLA2462 running QLogic HBA driver qla2300.
3. Update the entry for the device in the IBMtape.conf file, if necessary. The current entry in the IBMtape.conf file is added to target 255 with LUN 0 and 1.
For instance, the following command adds an entry for a mapped device with target 200 and LUN 3.
# /opt/IBMtape/tmd -s
# rem_drv IBMtape
# add_drv -m '* 0666 bin bin' IBMtape
# /opt/IBMtape/tmd
To configure an IBM tape device with a QLogic FC HBA running with Oracle branded QLogic FC HBA driver (qlc), refer to the section Configuring IBM tape devices with
Oracle FC and SAS HBAs.
1. Run the Emulex HBAnyware utility to find and record the mapped target and LUN of the tape device.
2. For lpfc.6.30g or later, update the parameters setting in /kernel/drv/lpfc.conf and reboot the system.
If IBMtape driver is used as a tape driver, change the parameter for IBMtape.
target-tape="IBMtape
If IBMtape driver is used as a changer driver, modify the setting for IBMtape.
target-tapechanger="IBMtape"
3. Remove the comment at the beginning of the entry for the Emulex HBA in /usr/kernel/drv/IBMtape.conf:
If this action fails to configure the changer, you might need to add the entries for LUN 0 and 1.
4. Update the entry for the device in the IBMtape.conf file, if necessary. The current entry in IBMtape.conf adds target 255 with LUN 0 and 1.
For instance, the following command adds an entry for a mapped device with target 200 and LUN 3.
# /opt/IBMtape/tmd -s
# rem_drv IBMtape
# add_drv -m '* 0666 bin bin' IBMtape
# /opt/IBMtape/tmd
To configure an IBM tape device with an Emulex FC HBA running with Oracle branded Emulex FC HBA (emlxs) driver, refer to the section Configuring IBM tape devices with
Oracle FC and SAS HBAs.
Run # cfgadm -c configure device to configure the tape device with the HBA if needed.
4. Install the IBMtape tape driver by running the # pkgadd -d IBMtape command.
5. Enter the following appropriate lines in /etc/driver_aliases:
Where: 01 and 08 stand for the type of tape drive and medium changer and XXX is the product ID string in the standard inquiry data. For example, ULT3580-TD7 is
the product ID of the IBM LTO7 drive. The following entry is added in the file for the IBM LTO7 drive.
IBMtape "scsiclass,01.vIBM.pULT3580-TD7"
The following is a list of the entries for the supported IBM tape devices.
IBMtape "scsiclass,01.vIBM.pULT3580-TD4"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD4"
IBMtape "scsiclass,01.vIBM.pULT3580-HH4"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH4"
IBMtape "scsiclass,01.vIBM.pULT3580-TD5"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD5"
IBMtape "scsiclass,01.vIBM.pULT3580-HH5"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH5"
IBMtape "scsiclass,01.vIBM.pULT3580-TD6"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD6"
IBMtape "scsiclass,01.vIBM.pULT3580-HH6"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH6"
IBMtape "scsiclass,01.vIBM.pULT3580-TD7"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD7"
IBMtape "scsiclass,01.vIBM.pULT3580-HH7"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH7"
IBMtape "scsiclass,01.vIBM.pULT3580-TD8"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD8"
IBMtape "scsiclass,01.vIBM.pULT3580-HH8"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH8"
IBMtape "scsiclass,01.vIBM.p03592J1A"
IBMtape "scsiclass,01.vIBM.p03592E05"
IBMtape "scsiclass,01.vIBM.p03592E06"
IBMtape "scsiclass,01.vIBM.p03592E07"
IBMtape "scsiclass,01.vIBM.p03592E08"
IBMtape "scsiclass,01.vIBM.p0359255F"
IBMtape "scsiclass,08.vIBM.p03584L32"
IBMtape "scsiclass,08.vIBM.p03584L22"
IBMtape "scsiclass,08.vIBM.pULT3582-TL"
IBMtape "scsiclass,08.vIBM.pULT3583-TL"
IBMtape "scsiclass,08.vIBM.pULT3581-TA"
IBMtape "scsiclass,08.vIBM.pULT3581-TA2"
IBMtape "scsiclass,08.vIBM.p03590B11"
IBMtape "scsiclass,08.vIBM.p03590E11"
IBMtape "scsiclass,08.vIBM.p03590H11"
IBMtape "scsiclass,08.vIBM.p3576-MTL"
IBMtape "scsiclass,08.vIBM.p3573-TL"
IBMtape "scsiclass,08.vIBM.p3572-L1U"
IBMtape "scsiclass,08.vIBM.p3572-TL"
IBMtape "scsiclass,08.vIBM.p3577-TL"
CmdTaskAttr=1;
lun_throttle=1;
tape-device="IBMtape";
tape-changer="IBMtape";
5. Update the entry for the device in IBMtape.conf if necessary. The current entry in IBMtape.conf adds target 255 with LUN 0 and 1. For instance, use the following
command to add an entry for a mapped device with a target 200 and LUN 3.
# /opt/IBMtape/tmd -s
# rem_drv IBMtape
# add_drv -m '* 0666 bin bin' IBMtape
# /opt/IBMtape/tmd
Where: 01 and 08 stand for the type of tape drive and medium changer and XXX is the product ID string in the standard inquiry data. For example, ULT3580-TD7 is
the product ID of the IBM LTO7 drive. The following entry is added in the file for the IBM LTO7 drive,
IBMtape "scsiclass,01.vIBM.pULT3580-TD7"
The following is a list of the entries for the supported IBM tape devices.
IBMtape "scsiclass,01.vIBM.pULT3580-TD4"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD4"
IBMtape "scsiclass,01.vIBM.pULT3580-HH4"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH4"
IBMtape "scsiclass,01.vIBM.pULT3580-TD5"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD5"
IBMtape "scsiclass,01.vIBM.pULT3580-HH5"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH5"
IBMtape "scsiclass,01.vIBM.pULT3580-TD6"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD6"
IBMtape "scsiclass,01.vIBM.pULT3580-HH6"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH6"
IBMtape "scsiclass,01.vIBM.pULT3580-TD7"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD7"
IBMtape "scsiclass,01.vIBM.pULT3580-HH7"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH7"
IBMtape "scsiclass,01.vIBM.pULT3580-TD8"
IBMtape "scsiclass,01.vIBM.pULTRIUM-TD8"
IBMtape "scsiclass,01.vIBM.pULT3580-HH8"
IBMtape "scsiclass,01.vIBM.pULTRIUM-HH8"
IBMtape "scsiclass,01.vIBM.p03592E05"
IBMtape "scsiclass,01.vIBM.p03592E06"
IBMtape "scsiclass,01.vIBM.p03592E07"
IBMtape "scsiclass,01.vIBM.p03592E08"
IBMtape "scsiclass,01.vIBM.p0359255F"
IBMtape "scsiclass,08.vIBM.p03584L32"
IBMtape "scsiclass,08.vIBM.p03584L22"
IBMtape "scsiclass,08.vIBM.pULT3582-TL"
IBMtape "scsiclass,08.vIBM.pULT3583-TL"
IBMtape "scsiclass,08.vIBM.pULT3581-TA"
IBMtape "scsiclass,08.vIBM.pULT3581-TA2"
IBMtape "scsiclass,08.vIBM.p03590B11"
IBMtape "scsiclass,08.vIBM.p03590E11"
IBMtape "scsiclass,08.vIBM.p03590H11"
IBMtape "scsiclass,08.vIBM.p3576-MTL"
IBMtape "scsiclass,08.vIBM.p3573-TL"
IBMtape "scsiclass,08.vIBM.p3572-L1U"
IBMtape "scsiclass,08.vIBM.p3572-TL"
IBMtape "scsiclass,08.vIBM.p3577-TL"
Note: The entry is also added running the # update_drv command on Solaris 8 (patch 111804-03 is required), Solaris 9, and later versions of the operating system.
For example,
Configuring limitations
Edit online
The subsequent limitations are applied for the IBMtape driver that runs on a Solaris host.
Maximum supported number of tape devices 1024
Maximum supported number of HBA ports 56
Maximum supported number of paths for a device (DPF/ CPF) 16/16
Maximum LUN size per target for FC HBA 256 (Oracle, QLogic, Brocade FC HBAs)
The Solaris Zones partitioning technology on Solaris 10 is used to virtualize operating system services and provide an isolated and secure environment for running
applications. Every Solaris system contains a global zone with ID 0, where the IBMtape driver is installed. Zones that are hosted by a global zone are known as non-global
zones, which have their own node name, virtual network interface, and storage assignment.
The IBMtape driver supports the Solaris Zones environment. To install IBMtape on the system with the virtualized zones, run the pkgadd system command from the global
zone.
#pkgadd -G -d IBMtape.x.x.x.x
The IBMtape installation script installs the driver in the global zone and installs some of IBMtape utilities that run a non-root user in all zones.
Since the tape devices in non-global zones are configured from the global zone, a script program that is called ztapelist was developed to help the user display the IBM®
tape devices. And, it dynamically assigns or removes IBM tape devices in non-global zones without the non-global zone reboot requirement. The utility (available in
IBMtape 4.1.5.2 or later) is installed on Solaris 10 and runs in the global zone only.
Synopsis
Do you wish to continue to remove the devices from this zone? [y/n]: n
Do you wish to continue to remove the devices from other zone? [y/n]: y
ID NAME STATUS PATH
0 global running /
1 camshaft running /zones/zone1
2 softail running /zones/zone2
When devices controlled by IBMtape are used, certain device characteristics, such as the default block size, can be controlled through the device driver configuration file.
The IBMtape configuration file is named IBMtape.conf. The working copy of this file is in the /usr/kernel/drv directory.
During installation of IBMtape, the working copy of IBMtape.conf is preserved, if it exists. During removal of IBMtape, the working copy of IBMtape.conf is not deleted.
These conventions allow configuration settings to remain across updates of IBMtape. A reference copy of IBMtape.conf with factory default settings is always installed in
the /opt/IBMtape directory.
Note: IBM® requires that the Solaris native SCSI tape device driver `st is configured so that it does not attempt to support SCSI targets that are controlled by IBMtape.
Refer to Preventing conflicts with other device drivers for information about multiple driver access to a device.
Attention: Failure to prevent more than one device driver from operating the same tape drive can cause system panics or data loss on the tape drive.
Configuration settings are applied only at start time, or when IBMtape is unloaded manually from, then reloaded into, memory. If you change configuration settings in
IBMtape.conf, you can make the changes effective by restarting the system. As an alternative to restarting, ensure that no IBMtape-owned devices are in use, then issue
the following command.
Default settings in IBMtape.conf can be overridden for a particular device (and only while the device is kept open) with the ioctl application programming interface (API) of
the device driver. The parameter settings that are made through the API revert to the default values in IBMtape.conf the next time the device is opened. Refer to the IBM
Tape Device Drivers: Programming Reference for information about changing configuration parameters under program control.
IBMtape.conf contains one stanza for each SCSI target address/LUN pair that is owned by IBMtape. The reference IBMtape.conf file that is supplied with the package
contains a stanza for every possible SCSI target and LUN combination that is supported by IBM tape systems.
The following example shows the stanza for target 0, LUN 0, with IBMtape's default configuration parameter values. The parameter immediate is disabled, which means
that SCSI commands Write FM, Locate, Load-Unload, Erase, and Rewind complete before status is returned.
name="IBMtape" class="scsi"
target=0 lun=0
block_size=0
buffering=1
immediate=0
trailer=0
sili=0;
The following example shows the stanza for target 0, LUN 0, with IBMtape's default configuration parameter values and the rewind immediate mode set On. This action
causes the SCSI rewind command to return control to the application program before the command completes on the tape drive.
name="IBMtape" class="scsi"
target=0 lun=0
block_size=0
buffering=1
rew_immediate=1
trailer=0
sili=0;
The name variable identifies IBMtape as the device driver, and class identifies the type of device that is supported as SCSI.
The target and the lun variables determine the target address and LUN of IBM devices that are controlled by that stanza. On systems with multiple SCSI adapters, a single
target/LUN stanza controls the configuration settings for all devices that are addressed with that target address and LUN. Thus, two or more supported IBM devices on the
system that have the same target and LUN settings but are attached to different SCSI buses are all affected by the configuration parameters of the single stanza with that
target address and LUN.
After installation of the IBMtape package is complete, you can eliminate unnecessary probing for devices by commenting out unused target/LUN pairs. In this example,
the stanzas for target 0, LUN 0 and target 0, LUN 1 are commented out. Those address/LUN combinations are not probed. This action saves time during a restart or manual
reload of IBMtape. However, if an IBM device is addressed at target 0, LUN 0 or target 0, LUN 1, it is not detected.
#name="IBMtape" class="scsi"
#target=0 lun=0
#block_size=0
#buffering=1
#immediate=0
#trailer=0
#sili=0;
#name="IBMtape" class="scsi"
#target=0 lun=1
#block_size=0
#buffering=1
#immediate=0
#trailer=0
#sili=0;
The remaining five configuration parameters specifically affect the behavior of the IBM device or devices that are associated with that stanza (target and LUN). All of these
parameters are specific to tape drive device operation only and have no effect on medium changer device behavior. The default configuration parameters are adequate for
most purposes. However, the values in the configuration file can be modified to suit the specific requirements of the application or the user.
Modifying a value in the configuration file determines the value of the parameter at device open time. When the device is open, the value of a parameter can be altered
with an ioctl function call. But the change is effective only while the device remains open. Working configuration parameters revert to the default values (established by
Table 1 lists and describes the set of configuration parameters that are recognized by the IBMtape device driver.
This parameter determines whether dynamic runtime attributes are attempted on open for supported drives. Default is 1 (On) meaning that the driver automatically
attempts to set dynamic runtime attributes on open. This action can be changed to 0 (Off) in the configuration file before the IBMtape is loaded. It is recommended to
keep dynamic runtime attributes On unless it produces an unexpected problem in the environment.
The dynamic runtime attributes setting is retained even if the system is rebooted. Follow the steps to enable or disable the Dynamic Runtime Attributes parameter.
1. To enable the support on all currently configured devices, add the entry Dynamic_Runtime_Attribute =1 at the beginning of the IBMtape.conf file.
2. Stop the TMD (tape monitor daemon) running on the system and unload the IBMtape driver module from the current kernel.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
3. Reload the IBMtape driver module in the kernel and start the daemon.
1. To disable the support on all currently configured devices, add the entry Dynamic_Runtime_Attribute = 0 at the beginning of the IBMtape.conf file.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
3. Reload the IBMtape driver module in the kernel and start the daemon.
Removing IBMtape
Edit online
All active processes that use IBM® devices that are supported by the IBM SCSI Tape and Medium Changer Device Driver for Solaris must be stopped for the removal
procedure to complete successfully.
Use the pkgrm command to remove the IBMtape package from the system.
% /usr/sbin/pkgrm IBMtape
To add support for a new IBM® tape system or to remove support for a previously attached IBM tape system, complete the following steps.
1. Edit the IBMtape.conf file in the /usr/kernel/drv directory to reflect the change in IBM device support. Either add a stanza to provide support for a device that is to
be added, or remove (comment out) a stanza for a device that is no longer supported.
2. When support for a new device is added, ensure that the target and LUN values in the configuration file stanza match the target and LUN settings of the IBM device.
Refer to Configuration parameters for information about the IBMtape.conf configuration file.
3. Shut down and power Off the host system.
4. Plug the new device into the SCSI bus or unplug the existing device from the bus. Pay particular attention to correct SCSI cabling and termination.
5. Power On and start the host system.
Note:
a. It is possible to reinitialize the IBMtape device driver without restarting the system. This procedure is done by first unloading the device driver, then reloading
the device driver into kernel memory.
b. For the version of IBMtape.4.0.9.2 and later, the TMD daemon must be stopped. Run the /opt/IBMtape/tmd -s command to unload the IBMtape driver from
the kernel. Running the /opt/IBMtape/tmd command restarts the daemon afterward to reload the device driver.
The commands to unload the device driver are
When the IBMtape device driver is reloaded, it reads the IBMtape.conf file and acknowledge changes that are made in the file. This method can be used to modify
configuration parameters.
Note: It is suggested that the host system and all devices that are attached to the SCSI bus be powered Off before devices are added or removed from the SCSI bus.
Hot plugging SCSI devices can cause hardware damage and disruption of reliable system operation
In some special situations, the user cannot modify IBMtape.conf to unconfigure some tape devices with IBMtape driver. This issue occurs when more than one device is
configured with the same target address, or the tape devices are attached on the FC or SAS HBA running with Oracle HBA driver.
In IBMtape.4.1.9.2 and later, a configuration parameter defined exclude_dev_list is introduced to allow users to exclude some devices from the configuration with
IBMtape.
exclude_dev_list=”sn1,sn2,sn3,...” ;
Where: sn is the serial number of the excluded device, 10-characters long for LTO drive, 12-characters long for 359x drive and 16-characters long for changer.
/opt/IBMtape/tapelist -l
2. Reinstall IBMtape driver or reboot the system to allow IBMtape to update the configuration.
A Tapelist Utility Program that is called tapelist is installed in the /opt/IBMtape directory as part of the IBMtape package. The tapelist utility provides the user a listing of
tape, medium changer, and SAN data gateway devices that are configured with the IBMtape driver. It also displays the information of HBA with IBM® tape drive
attachment and the status of load balancing. The following is an example of a Tapelist Utility Program output.
# tapelist
Instance : 697
Special File : /dev/rmt/6st
Device : 03592E05(e/e)
Serial Number : 000001300168
TGT/LUN : 7/0
Ucode : 04C4
World Wide NN : 5005076302000127
World Wide PN : 5005076302400127
Dev Phy Path : /devices/pci@1f,2000/QLGC,qla@1/IBMtape@7,0:st
Path Type : N/A
# tapelist -t
hba_index hba_inst hba_driver reg_count usage_count HBA Path
--------- -------- ----------- ----------- ----------- --------------------------–
0 0 qla2300 4 1 /devices/pci@4,2000/fibre-channel@1
1 2 lpfc 4 2 /devices/pci@6,2000/pci@1/fibre-channel@4
2 3 lpfc 1 0 /devices/pci@6,2000/pci@1/fibre-channel@5
A new feature is added in tapelist to display the drive information in the library that is running /opt/IBMtape/tapelist -L.
# tapelist -L
Addr Inst# Special File Device Serial No TGT/LUN Ucode World Wide NN World Wide PN
----- ----- ------------- ------------- --–-------------- ------- ----- ------------–-- ------------–--
Library (/dev/rmt/5smc) Info:
2894 /dev/rmt/5smc 03584L22 0000000T003904E5 3/1 806c N/A N/A
274 2893 /dev/rmt/13st 03592E05(e/e) 000001365066 3/0 1D10 500507630019F016 500507630059F016
276 2914 /dev/rmt/14st 03592E06(e/e) 000001326803 14/0 2444 500507630019F019 500507630059F019
-l Print for all of the configured devices with the column headers in long list
-L Display the tape drives information in the tape library
(IBMtape supported Libraries ONLY)
-c Don't print column headers in long list for all of the configured devices
-t Display HBA information and current load balancing status
-f Print the list for a particular file only
-A List the tape devices by HBA
-a Print out the info of all of FC HBAs
-h Help menu
Running tapelist without any options displays the device information line by line for all of the configured devices.
Special files
Edit online
After the IBMtape driver is installed, a set of special files is available for completing input/output (I/O) operations to each supported device. The device special file names
that are created by the IBMtape device driver are similar to the SCSI tape special files used on Solaris systems.
Issuing the ls -la /dev/rmt command gives useful information about these device special files. The following example shows entries that are returned by this command
for a single IBM® tape subsystem. This listing is system-dependent, so entries vary slightly in format, depending on the operating system and SCSI adapter support.
Entries might be included for other devices that are not supported by the IBMtape device driver.
These entries show the device hierarchy that is established to support I/O for an IBM SCSI tape system. The attachment path of the device special files spans from the
system board, through the S-bus, to the Oracle F/W SCSI adapter (supported by the QLGC, isp SCSI adapter device driver), to the IBM device at SCSI target 2 and LUN 0
(supported by the IBMtape device driver). All nine of these special files are associated with the same IBM device (device number 0).
Device behaviors
File naming conventions
Device behaviors
Edit online
Certain device behaviors are determined by which special file in the set is opened for device access. The smc special file controls only the medium changer portion of the
device and accepts only medium changer operations by way of the ioctl entry point. The smc special file does not support the read and write entry points. Only one st type
special file for a particular device can be opened at any one time. The smc special file can be opened concurrently with any one of the st special files.
The IBMtape device driver decides which types of special files to create during installation, which is based on the IBM® device type that is configured. For the IBM 3490E
Magnetic Tape Subsystem, only the eight st type special files are created. For other IBM tape drives, all nine special files that are shown previously are created. For IBM
tape libraries and autoloaders, only a single smc special file is created.
With the information from the previous command, issuing the ls -la /devices/iommu@f,e0000000/sbus@f,e0001000/QLGC,isp@3,10000 command presents further
information about the same special files, as shown in the following example. Again, the actual path information that is specified in the command varies from system to
system.
These entries show the major and minor numbers that are associated with each special file. Here, the major number is 109 and identifies to the system that the IBMtape
device driver is in support of these special files. Major numbers are assigned by the system at the time the driver is installed and vary from system to system. The nine
different minor numbers are specific to the special file names. They are used by the device driver to determine which special file was used to access the device and control
the device behavior accordingly. For example, the minor number 1696 indicates to the driver that the device was opened by way of the smc special file. For information on
device special files and major and minor numbers, consult the Solaris mtio man pages.
Table 1 shows the special file naming convention and the associated device attributes recognized by the IBMtape device driver.
1. The BSD (b) device special file modifies close behavior for non-rewind devices. If the device is opened for no rewind on close in non-BSD mode, and if the last
command before the device was closed was a read, then the tape is positioned after the filemark immediately following the last block read. If the device is
opened for no rewind on close in BSD mode, and if the last command before the device was closed was a read, the tape is left positioned exactly where it was
following the last block read. If the device is opened for rewind on close the BSD mode is not relevant.
2. The no rewind on close (n) device special file does not rewind the tape during a close operation. Otherwise, the tape is rewound when the device is closed. If the
last operation before the device was closed was a write or write filemark, then enough filemarks is written so that two filemarks follow the data.
For the non-rewind special files, the tapes are positioned between the trailing filemarks before closing. If the device is then reopened and more data is written, it
is separated by a single filemark from the previous data.
3. The compression (c) device special file determines whether the tape device uses built-in hardware compression while data is stored on the tape. The compression
mode of the device can also be set to the wanted state programmatically through the STIOC_SET_PARM ioctl, regardless of the default compression mode that is
established by the special file that is originally used to open the device.
4. The smc special file is created only for IBM® tape systems that provide medium changer capability. For IBM tape libraries and autoloaders, the smc special file is
the only file that is created because the IBMtape device driver supports only the medium changer portion. It does not support the tape drive portion of these
devices. For the IBM 3490E Magnetic Tape System, there is no smc special file created.
5. Only one st special file can be opened at one time. The smc special file can be opened by itself or with one of the st type files. The smc special file accepts only
medium changer commands. Tape drive commands that are issued to the medium changer fail, with errno set to 22, invalid argument.
Aside from the normal configuration with the medium changer that answers as a distinct target/LUN pair, some supported devices can be configured with a
nonstandard integrated medium changer that reports at the same target and LUN as the tape drive. In such a case, both st and smc special files accept a limited
subset of medium changer commands. If you want to use this nonstandard mode, consult the appropriate hardware reference to determine whether the drive
supports such a configuration.
The device special file names are created by the IBMtape driver in the order that the tape devices are presented by the Solaris system. Each device special file name is
maintained with the same logical name across reboots, even when an existing device is powered off or not connected.
However, the logical names of devices can be changed because of the swapping of connecting cables, HBA mapping changes, tape device driver updates, or other reasons.
The user can rename the logical name by editing the /etc/devlink.tab system file for the persistent name binding and reloading the IBMtape driver as follows.
1. Before the persistent name binding, make sure that the IBM® tape devices are configured at the different target and LUN addresses if the devices are attached on
more than one HBA.
The Ultrium 3 tape drive is connected to two Emulex HBAs with the same address of target 3 and LUN 0 through a switch in the following example. You must use the
HBA utility, follow HBA vendor instructions, or both to persistently bind the tape devices at the different mapped target and LUN.
# tapelist -l
Inst# Special File Device Serial No TGT/LUN Device Physical Path
------ -------------- ------------- ------------ -------- -------------------------------------
454 /dev/rmt/2st ULT3580-TD3 1210003557 3/0 /devices/pci@6,2000/pci@1/fibre-channel@5/IBMtape@3,0
582 /dev/rmt/8st ULT3580-TD3 1210003557 3/0 /devices/pci@1f,2000/pci@1/fibre-channel@5/IBMtape@3,0
The tape drive is mapped at target 3, LUN 0 on HBA 1 and target 24, LUN 0 on HBA 2 after device persistent binding.
# tapelist -l
Inst# Special File Device Serial No TGT/LUN Device Physical Path
------ --------------- ----------- --------- ---------- ----------------------------------------
454 /dev/rmt/4st ULT3580-TD3 1210003557 3/0 /devices/pci@6,2000/pci@1/fibre-channel@5/IBMtape@3,0
1136 /dev/rmt/7st ULT3580-TD3 1210003557 24/0 /devices/pci@1f,2000/pci@1/fibre-channel@5/IBMtape@18,0
Note: Device persistent binding is not provided on Oracle HBAs, so this persistent name approach cannot be used with the same physical drive that is attached to
multiple Oracle HBA ports.
2. Start persistent name binding. In this example, the user renames 4st and 7st to 10st and 11st.
a. Create the entry for persistent naming. Determine the target address from the Device Physical Path in the output of tapelist -l and add the planned device
special file name in the entry. Here, 4st and 7st drives are at 3,0 (target 3, LUN 0) and 18,0 (target 24 (0x18), LUN 0) at the device physical paths of
/devices/pci@6,2000/pci@1/fibre-channel@5/IBMtape@3,0 and /devices/pci@1f,2000/pci@1/fibre-channel@5/IBMtape@18,0. Add the address and
device file name into the entries:
type=ddi_byte:tape;addr=3,0; rmt/10\M0
type=ddi_byte:tape;addr=18,0; rmt/11\M0
Note:
i. A tab is entered between addr=3,0; and rmt/10\M0.
ii. The 0 in the entry is the zero in M0.
iii. To avoid conflicts with the current device special files assigned by the system automatically, be sure to assign a higher number for the persistent
name.
iv. The address is w500507630059f007,0 for the tape drive on the Oracle HBA with the path of
/devices/pci@1,0/pci1022,7450@1/pci1077,141@1/fp@0,0/tape@w500507630059f007,0.
Control path failover (CPF) support is enabled automatically by default when the IBMtape device driver is installed on Solaris system. The Solaris IBMtape device driver
provides a driver configuration parameter failover for you to enable or disable the library control path failover support. To enable the CPF support for all of the paths, no
action is required. To disable the CPF support for all of the paths or a particular path, use the following steps.
1. To disable CPF support for all the paths, add and set the failover parameter to off at the beginning of IBMtape.conf file in the directory of /usr/kernel/drv.
2. To disable a particular path, add and set the failover parameter to Off in the path entry in IBMtape.conf file. For example, name="IBMtape" class="scsi"
target=3 lun=1 failover=0;
3. Stop the TMD (tape monitor daemon) from running on the system and unload the IBMtape driver module from the current kernel.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
4. Reload the IBMtape driver module in the kernel and start the daemon.
# /opt/IBMtape/tmd
When the device driver configures a logical device with path failover support enabled, the first device that is configured always becomes the primary path. When a second
or more logical device is configured with path failover support enabled for the same physical device, it configures as an alternative path. The device driver supports up to
16 physical paths for single a device.
The primary and alternative path information can be obtained in the field of "Path Type" running the /opt/IBMtape/tapelist command output and is similar to the example
in Table 1.
Table 1. Solaris: Example of Control Path failover support command output
#tapelist -1
Inst# Special File Device Serial No TGT/LUN Ucode WWNN WWPN Device Physical Path Path Type
-------------------------------------------------------------------------------------------------------------
686 /dev/rmt/12smc 03584L32 0000000T0039 1/1 402j N/A N/A /devices/pci@If,2000/QLGC,qla@1/IBMtape@1,1 Primary
688 /dev/rmt/14smc 03584L32 0000000T0039 2/1 402j N/A N/A /devices/pci@If,2000/QLGC,qla@1/IBMtape@2,1 Alt_path_1
694 /dev/rmt/26smc 03584L32 0000000T0039 5/1 402j N/A N/A /devices/pci@If,2000/QLGC,qla@1/IBMtape@5,1 Alt_path_2
The labeling of a logical device as either a primary or alternative path is for information only; it is used to
1. Identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one logical device is
labeled the primary path for each physical device. However, multiple logical devices can be labeled as an alternative path for the same devices.
2. Provide information about which logical devices that are configured on the system have path failover enabled.
You can display the primary and alternative path configuration for all devices with the tapelist utility.
Note: Display the primary and alternative path configuration for any device by using tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
When you install the IBMtape device driver, by default all the available paths for a physical device are enabled.
Note: Display the primary and alternative path configuration for any device by using tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
Data Path failover and load balancing support for tape drives
Edit online
Note: The tape drive failover feature code must be installed before the DPF for IBM® Ultrium tape drive is enabled in the Solaris IBMtape device driver. Refer to Automatic
failover to determine which feature code is required for your machine type.
Path failover support for tape drives is enabled automatically when the device driver with the version of IBMtape.4.2.1.0 or later is installed. It is disabled by default at the
previous version. When path failover support is enabled for a logical device, it remains set until the device is deleted or the support is deconfigured. The path failover
setting is retained even if the system is rebooted. Path failover support can be enabled on all configured devices at one time, or it can be enabled or disabled selectively by
logical device. It might be desirable at times to configure some, but not all, logical paths to a device with the support enabled. Follow the steps to enable the DPF support:
1. To enable the support globally on all currently configured devices, add an entry of dpf_support=1 at the beginning of the IBMtape.conf file, such as
dpf_support=1;
2. Or, to enable a particular path, add the parameter dpf_support and turn it on in the path entry in the IBMtape.conf file. For example,
3. For the IBM® Ultrium tape drive, you must enter the DPF feature keys in the parameter dpf_keys at the beginning of the IBMtape.conf file in the directory
/usr/kernel/drv. For example,
Note:
a. The parameter dpf_keys is in the format “key1, key2, key3, ...... ”. Each key is 16 characters long with a comma "," and a space " ". The IBMtape driver
supports up to 36 dpf keys.
b. DPF keys do not need to be added in IBMtape.conf if you are running the latest drive code on Ultrium 3 and Ultrium 4 drives.
4. Stop the TMD (tape monitor daemon) running on the system and unload the IBMtape driver module from the current kernel.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
5. Reload the IBMtape driver module in the kernel and start the daemon.
This action deconfigures all devices to add the parameter dpf_support=0 in the IBMtape.conf file, and reboot the system or deconfigure and reconfigure all devices. For
example,
1. To disable the support globally on all currently configured devices, add the entry dpf_support=1 at the beginning of the IBMtape.conf file.
# dpf_support=0;
2. Stop the TMD (tape monitor daemon) from running on the system and unload the IBMtape driver module from the current kernel.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
3. Reload the IBMtape driver module in the kernel and start the daemon.
1. To enable the support globally on all currently configured devices, add an entry dpf_support=1 at the beginning of the IBMtape.conf file, such as
dpf_support=1;
2. To disable a particular path, add the parameter dpf_support and turn it off in the path entry in the IBMtape.conf file. For example,
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
4. Reload the IBMtape driver module in the kernel and start the daemon.
When the device driver configures a logical device with path failover support enabled, the first device that is configured always becomes the primary path. When a second
logical device is configured with path failover support enabled for the same physical device, it configures as an alternative path. A third logical device is configured as the
next alternative path, and so on. The device driver supports up to 16 physical paths for a single device.
For example, if 0st (port 0 of 3592) is configured first, then 5st (port 1), 18st (port 1), and 21st (port 0) to the two HBAs through a switch (here, WWPN
5005076302400127 from port 0 and 5005076302800127 from port 1), the /opt/IBMtape/tapelist command output is similar to the example in Table 1.
1. Be able to identify the actual number of physical devices that are configured on the system and a specific logical device that is associated with them. Only one
logical device is labeled the primary path for each physical device. However, many (multiple) logical devices might be labeled as an alternative path for the same
devices.
2. Provide information about which logical devices configured on the system have path failover support enabled.
You can display the primary and alternative path configuration for all devices with the tapelist utility.
Note: Display the primary and alternative path configuration for any device by using tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
When you enter the parameter dpf_support in the IBMtape.conf file and install the IBMtape device driver, all the available paths for a physical device are enabled.
1. Add the parameter of dpf_support and turn it off in the path entry in IBMtape.conf file. For example,
2. Stop the TMD (tape monitor daemon) from running on the system and unload the IBMtape driver module from the current kernel.
3. Reload the IBMtape driver module in the kernel and start the daemon.
To enable a path from a disabled state, you can run the following steps.
1. Add the parameter of dpf_support and turn it off in the path entry in IBMtape.conf file. For example,
2. Stop the TMD (tape monitor daemon) from running on the system and unload the IBMtape driver module from the current kernel.
# /opt/IBMtape/tmd -s
# /usr/sbin/rem_drv IBMtape
3. Reload the IBMtape driver module in the kernel and start the daemon.
System-managed encryption
Edit online
System-Managed Encryption can be set on global or a specific tape drive in IBMtape.conf in /usr/kernel/drv. There are two new configuration parameters added for
encryption.
The sys_encryption_proxy parameter enables device driver system-managed encryption for a tape drive by setting the value to ON (default set).
The sys_encryption_write parameter controls if the device driver can set the tape drive to encryption enabled for write commands. When set to OFF, the tape drive uses
encryption for read operations; write operations do not use encryption. When set to ON, the tape drive uses encryption for both read/write operations. When set to
CUSTOM, the device driver does not modify current tape drive setting. The custom setting is intended for applications by using system-managed encryption to control
write encryption without device driver intervention. The parameter is set to “CUSTOM” by default.
Note: If sys_encryption_write is set to ON, an application cannot open a tape drive by using the append mode.
To make a global setting to enable SME in IBMtape.conf:
name="IBMtape"
class="scsi"
target=0
lun=0
block_size=0
buffering=1
immediate=0
trailer=0
sili=0
sys_encryption_write=1;
name="IBMtape"
class="scsi"
target=0
lun=0
block_size=0
buffering=1
immediate=0
trailer=0
sili=0
sys_encryption_proxy=0;
Querying tape drive configuration is a tape diagnostic and utility function. Refer to IBM Tape Diagnostic Tool (ITDT).
A data encryption test is available to validate the ibmekm.conf file server entries and test tape drive to server connectivity operations.
This test is a tape diagnostic and utility function. Refer to IBM Tape Diagnostic Tool (ITDT).
When encryption failures require field support or development analysis, run the /opt/IBMtape/diags_info script to generate a file of diags.out. Tape drive dumps and EKM
server logs might be needed in addition to this information.
Problem determination
Edit online
The following sections describe the service and diagnostic aids that are part of the IBM® SCSI Tape and Medium Changer Device Driver for Solaris package. Procedures for
verifying correct installation of the device, basic problem determination guidelines, and outlines of the utility program included with the IBMtape package are included.
Functional verification
Sense data logging
Installation problems
Tape monitor daemon (tmd)
Tracing facility
Dynamic tracing utility
Setting the IBM_trace level for static tracing
Running the diags_info script
iostat command
Reservation conflict logging
Functional verification
Edit online
If you wish to verify that the installation of the IBM® SCSI Tape and Medium Changer Device Driver for Solaris package was successful, follow these steps.
/usr/bin/pkginfo IBMtape
system IBMtape
IBM SCSI Tape & Medium Changer Device Driver x.x.x.x where x.x.x.x is the version of the device driver.
2. To verify that device driver support for a specific IBM tape system that is attached to the system is functioning correctly, enter the following command.
/opt/IBMtape/tapelist -f /dev/rmt/nst
substituting for n the number that is associated with the device special file assigned to the IBM tape system that you want to check. Listing the contents of the
/dev/rmt directory (by using the ls command) can be helpful in determining the correct special file name. For medium changer devices, the special file name
/dev/rmt/nsmc must be used.
The following information is displayed.
3. To verify that the IBMtape device driver is loaded in kernel memory, enter the following command.
165 f5f10000 15c0s 109 1 IBMtape (IBM SCSI Tape/Medium Changer DD)
The first five fields that are shown probably do not match your specific output. The fields indicate the ID, load address, size, major number, and revision for the IBMtape
device driver and vary from machine to machine
Installation problems
Edit online
If you are experiencing problems with installation of the IBM® SCSI Tape and Medium Changer Device Driver for Solaris package, the following information might help. If
you cannot solve the problems after the following is checked, contact the appropriate IBM service representative.
it indicates that the IBMtape device driver was not loaded because it did not detect the presence of any supported IBM devices on the SCSI bus. Verify that SCSI
adapter device driver support is installed and configured correctly. Verify that the IBM tape subsystem is connected properly to the SCSI bus, which is powered On,
and online. It is not necessary for the tape drive to have a cartridge that is loaded to be recognized by the IBMtape device driver.
If you cannot open an IBM device, verify that you are using the correct special file. The IBM tape special files are of the form *st* in the /dev/rmt directory. The IBM
medium changer special files are of the form *smc in the /dev/rmt directory. Ensure that the Solaris native tape device driver (st) is not contending for the same IBM
device. Consult the st.conf file in the /kernel/drv directory and comment out conflicting stanzas.
The Tape Monitor Daemon is introduced in the version of IBMtape.4.0.9.2 or later. It is designed to run concurrently with the IBMtape driver. It automatically retrieves and
stores the IBM® tape drive diagnostic information (drive dump) into the /var/opt/IBMtape directory. The daemon is automatically started when the driver is installed, even
when no tape device is attached on the system. An entry name="IBMtape"
parent="pseudo" instance=16383; is also entered into the configuration file of /usr/kernel/drv/IBMtape.conf automatically for the daemon during the IBMtape
driver installation.
The following options can be used to configure the tape monitor daemon, running it on the command line. Most options can also be specified in the /etc/tmd.conf
configuration file. However, the command line options override any configuration file options.
The file name of dump presents some useful information. An example of the dump file is
IBMtape.000001300148.2004-04-09-14:54:14.dump.gz
Here, 000001300148 represents the serial number of the tape device, 2004-04-09-14:54:14 is the time stamp for the dump retrieval.
A message is also logged in the syslog file of /var/adm/messages after a drive dump is retrieved by tmd. For example,
Tracing facility
Edit online
IBMtape incorporates a tracing facility that is useful for completing problem determination. The tracing facility logs diagnostic information to /var/adm/messages based
on the control variable IBM_trace. Refer to Setting the IBM_trace level for static tracing for instructions on how to set the trace value.
IBM_trace values range from 0-13 and result in posted messages as shown in Table 1. Postings are cumulative, so trace level 3 also posts items for levels 2, 1, and 0. A
trace value of 2 or 3 is suitable for most normal production environments, with little or no degradation of throughput. IBM_trace values of 4 and higher increasingly
degrade performance and generally is used only when directed by IBM® support personnel.
The following shows trace level 2 output, with system date and time stamps removed. Device instance 390 is opened on the first line. The device minor number 12450 is
decoded and shows that the SCSI medium changer (smc) special file was opened.
The second line decodes selected fields from the sense data that follows it. The decoded information shows that sense data was generated during a Move Medium
command. Looking up the decoded Sense Key/ASC/ASCQ combination in the 3590 hardware reference, we find that the command failed because the move from location
was empty. The actual sense data follows the decoded fields.
Note: Solaris, rather than printing multiple 16-byte lines of hexadecimal zeros, prints only the first such line, followed by a repeat count.
IBMtape(390) _open: 374 Inst 390, Minor 12450 (smc), Flags 0x5,
TL 2/0/0, 4.0.2.8
IBMtape(390) check_sense: cmd 0xa5(move_medium), key/asc/ascq 0x5/3b/e,
defer 0, retry 0, rc 22
IBMtape(390) 03590B11 SENSE DATA:
IBMtape(390) 70 0 5 0 0 0 0 58 0 0 0 0 3b e ff 2
IBMtape(390) 0 20 1 40 a 9 1 0 0 0 0 0 0 0 a5 0
IBMtape(390) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
last message repeated 1 time
IBMtape(390) 0 0 0 0 0 0 0 0 36 33 39 20 20 20 20 0
IBMtape(390) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
IBMtape(390) _close: Inst 390, Minor 12450 (smc), Flags 0x5, exit(0)
In the next example, the device open line shows that a tape drive (drv) device special file was opened. The sense data for device instance 292 was generated during a
space operation. The Sense Key/ASC/ASCQ shows that a filemark was encountered during the space.
IBMtape(292) _open: 554 Inst 292, Minor 9412 (drv), Flags 0x5,
TL 2/0/0, 4.0.2.8
IBMtape(292) check_sense: cmd 0x11(space), key/asc/ascq 0x0/0/1,
defer 0, retry 0, rc 5
IBMtape(292) 03570B02 SENSE DATA:
IBMtape(292) f0 0 80 0 0 0 1 48 0 0 0 0 0 1 ff a
IBMtape(292) c4 b1 0 20 0 5 1 91 0 34 0 0 0 0 11 0
IBMtape(292) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6
IBMtape(292) 6f 28 0 ad 73 32 0 0 0 0 0 0 0 0 0 0
IBMtape(292) 0 0 0 0 0 0 20 0 31 42 41 20 20 20 20 0
IBMtape(292) _close: Inst 292, Minor 9412 (drv), Flags 0x5, exit(0)
Finally, the sense data for device instance 230, a tape drive, occurred during a test unit ready and indicates that no tape is loaded in the drive.
IBMtape(230) _open: 728 Inst 230, Minor 7366 (drv), Flags 0x5,
TL 2/0/0, 4.0.2.8
IBMtape(230) check_sense: cmd 0x0(test_unit_ready),
key/asc/ascq 0x2/3a/0, defer 0, retry 0, rc 5
IBMtape(230) 03570B02 SENSE DATA:
IBMtape(230) 70 0 2 0 0 0 0 48 0 0 0 0 3a 0 ff 2
IBMtape(230) c4 8 0 30 0 6 1 40 0 0 0 0 0 0 0 0
IBMtape(230) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
last message repeated 1 time
IBMtape(230) 0 0 0 0 0 0 0 0 31 42 41 20 20 20 20 0
IBMtape(230) _close: Inst 230, Minor 7366 (drv), Flags 0x5, exit(0)
You can match an instance number with its corresponding device special file in two steps.
2. List long the contents of /dev/rmt and search for the path name you found in the previous step.
In this example, /dev/rmt/8st, /dev/rmt/8stb, and so on, are symbolic links to the device special files that are associated with device instance 292.
A dynamic tracing utility named tapedtrc is introduced in the IBMtape.4.1.6.0 or later driver. It is used to dynamically set, reset, start, stop, and query IBMtape tracing at
any time for debugging use. The program is in the/opt/IBMtape directory, with the tracing level set to 0 by default.
/opt/IBMtape/tapedtrc [option]
options:
[set] - Set IBMtape trace level and/or start the tracing
The user can still enable or disable static IBMtape tracing and set the IBM® trace level in /etc/system or run the adb system command. The host is required to reboot to
enable or disable the tracing when the trace level is set in /etc/system. The IBMtape driver must be loaded in the kernel. If the tracing is enabled or disabled by using the
adb command, the tracing starts or stops at the next device open.
The default value for IBM_trace is zero (0). You can define another IBM_trace value by placing an entry in /etc/system so that IBM_trace is set at each restart. For example,
this entry in /etc/system sets IBM_trace to 2 at each restart.
set IBMtape:IBM_trace = 2
When IBM_trace is set in /etc/system, it affects tracing during driver loading, initialization, and operation.
You can also set or modify the IBM_trace value manually in an adb session. Because the driver must already be loaded and initialized before this method is used, the trace
value that is set is active only during driver operation.
In this sample session, ksh> is a shell prompt, and adb> is the adb session prompt. Commands that you enter are in boldface. Explanatory comments follow number
signs (#) or exclamation and number sign pairs (!#). Text lines without a prefix are adb session responses to commands.
#
# Start adb session and set session prompt.
ksh> adb -P "adb> " -k -w /dev/ksyms /dev/mem
physmem 7c5e
!#
!# Set default for input values to base 10.
adb> a$d
radix=10 base ten
!#
!# Display current IBM_tape value as unsigned decimal integer.
adb> IBM_trace/u
IBM_trace:
IBM_trace: 0
!#
!# Set new IBM_trace value.
!# adb will confirm the old and new values.
adb> IBM_trace/w 2
IBM_trace: 0 = 2
!#
!# Quit session.
adb> $q
#
# Back to the shell.
ksh>
Run the diags_info script in the /opt/IBMtape directory. This script detects the problems on the configuration files, gathers important system HBAs, and configuration
information. The script must be run as root. If not run as root, the information must be labeled as such, but the value of the information is degraded when run as a non-
root user.
To facilitate capture of data, the script places information in a file that is called diags.out in the directory where the script is. Send the output file to the location identified
by your IBM® service representative.
iostat command
Edit online
IBMtape driver supports the iostat system command, which reports I/O statistics for the supported tape drives in IBMtape.4.1.2.7 and later versions. Refer to man (1M)
iostat for the command usage.
1. The information is logged when the drive is reserved with a Persistent Reservation.
2. The information is logged when the drive is reserved with an SCSI-2 Reserve.
3. The information is logged when the drive is reserved but the host reservation information is not available.
Note: To disable reservation conflict logging, add the entry log_reserve = 0 at the beginning of IBMtape.conf, then reload the Tape Monitor Daemon and the driver.
This chapter describes the hardware requirements, software requirements, and installation notes for the Microsoft Windows device drivers for IBM® tape devices.
Purpose
The Windows tape and medium changer device driver is designed to take advantage of the features that are provided by the IBM tape drives and medium changer devices.
The goal is to give applications access to the functions required for basic tape operations (such as backup and restore) and medium changer operations (such as mount
and unmount the cartridges), and to the advanced functions needed by full tape management systems. Whenever possible, the driver is designed to take advantage of the
device features transparent to the application
Data flow
The software that is described here covers the Windows device driver and the interface between the application and the tape device.
Product requirements
Installation and configuration instructions
Persistent Naming Support on Windows Server 2019, and 2022
Control Path failover support for tape libraries
Data Path failover support for tape drives
Problem determination
Old releases: V6.2.5.2 and prior releases
Product requirements
Edit online
Hardware requirements
Refer to the Hardware requirements for the latest hardware that is supported by the IBM® tape device driver.
Software requirements
For current software requirements, refer to the Software requirements.
Note: Limited support for customers who have Microsoft Windows Server 2016 extended support from Microsoft only.
This section includes instructions for installing and configuring the Windows tape and medium changer device driver on Windows Server 2019 and 2022.
The recommended procedure for installing a new version of the device driver is to uninstall the previous version (see Uninstalling the device drivers).
This section describes how to install, remove, and uninstall the Windows tape and medium changer device drivers on Windows Server 2019, and 2022.
Installation overview
The installation process consists of the following steps:
Installation procedures
These procedures make the following assumptions:
No other driver is installed that claims the tape and medium changer devices.
If you are updating the device driver from a Microsoft certified version to an uncertified version, you must first uninstall the certified driver. Refer to Uninstalling the
device drivers.
The host bus adapter is installed, configured properly, and is running supported microcode and driver levels.
Device drivers are installed with Windows Server 2019, with V6.2.6.8 or later; or Windows Server 2022, with V7.0.1.1 or later.
Note: The latest driver level to include support for Windows Server 2016 is V7.0.0.8
Different registry keys are created to configure different parameters. They can be at System\CurrentControlSet\Services\ and the subkeys are created depending on
the Windows Server version. With Windows 2016, they are:
ibmcg2k16
ibmtp2k16
ibmtpbs2k16
With Windows 2019 or Windows 2022 , subkeys are the same, they are:
ibmcgbs
ibmtpbs
Refer to this list when in doubt of the registry key's name and instructions that involve modifying the registry. Caution and a backup are advised due to the registry's
nature.
Drivers are identified by the following conventions, where nnnn refers to a version of the driver. If there is more than one version, use the current one.
Windows Server 2019 for extended 64-bit architectures (Intel EM64T and AMD64),
IBMTape.x64_w19_nnnn.zip
1. Log on as Administrator.
2. Download the appropriate driver. Refer toAccessing documentation and software online.
3. Extract the driver package to a hard disk drive directory of your choice, other than the root directory.
4. Ensure that the tape and medium changer devices are connected to your host bus adapter and configured properly by locating the devices in Device Manager.
5. Double-click either install_exclusive.exe or install_nonexclusive.exe.
install_exclusive.exe The driver issues automatic reserves on open. It also prevents multiple open handles from the host to a drive from existing at the same
time, as is required by applications such as Tivoli® Storage Manager. This driver is also required for the failover feature to work as it uses persistent
reservation (by default).
install_nonexclusive.exe The driver permits open handles from the host to a drive to exist at the same time, as is required by applications such as Microsoft
Data Protection Manager (DPM).
All drivers that are released by IBM went through a complete test to ensure that they are stable and conform to specified requirements.
7. To verify that the tape and medium changer devices and drivers are installed correctly, follow the instructions in Verifying correct attachment of your devices.
1. Right-click My Computer, select Manage to open the Computer Management Console, and click Device Manager.
2. Right-click the device that you want to uninstall and select Uninstall .... If you want to disable the device without uninstalling it, you can select Disable.
3. You are prompted to confirm the uninstallation. Click OK.
4. In Device Manager, under System devices, right-click Changer Bus Enumerator and select Uninstall.
5. In Device Manager, under System devices, right-click Tape Bus Enumerator and select Uninstall.
Configuring limitations
Edit online
The driver limitation for the supported number of tape devices is 1024. Every installed device uses a certain amount of resources. The user must also consider other
resources, such as physical memory and virtual space on the system before you attempt to reach the limits. Also, be aware of Microsoft limitations. One known article is
http://support.microsoft.com/kb/310072 (ID: 310072). Be aware of any Windows specific version limitations.
The Windows tape driver has an option for enabling device object names that persist across restarts of the operating system. For example, if your tape drive has the name
\.\tape4801101 and the persistent naming option is used, then \\.\tape4801101 is reserved for use by that device after an operating system restart.
1. Add a DWORD value to the registry called PersistentNaming and assign it a value 1
On Windows Server 2016: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ibmtp2k16
On Windows Server 2019 and Windows Server 2022 : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ibmtp
.
2. Restart your system. Then, the system writes information to the registry to associate the Worldwide Node Name from Inquiry p. 0x83 with the persistent name used
by the operating system.
If the Worldwide Node Name is unavailable, or the drive is a virtual (that is, emulated) drive, then the device serial number is used rather than the Worldwide
Node Name.
If the PersistentNaming option is not specified in the registry, then your devices might not be able to claim the same device name after restart or driver
initialization.
Alternately, you can use the Windows Device Manager to examine the device number to determine that persistent naming is enabled on your host. Persistent names
contain tape device numbers that are based at 4801101 (which is the decimal equivalent of hexadecimal 0x49424D and ASCII "IBM®").
If two physical paths exist to a drive and different Windows device names are required (which happens, for example, when two different HBAs are connected to the drive
and Data Path failover is disabled), the first discovered path claims the persistent device name. Any subsequent paths that connect to the same device receive names
according to the order in which they are discovered by the Windows Device Manager.
Note: Persistent naming is not set by default. For disabling it, set the PersistentNaming value to 0 and restart the system.
To take advantage of Windows Control Path failover (CPF) support, the appropriate feature code must be installed. Refer toAutomatic failover for what feature code might
be required for your machine type.
Control Path failover is enabled automatically when the device driver is installed by default (install_exclusive.exe). It can be disabled from installation with the -f CLI
option. Or, it can be disabled or reenabled for the entire set of attached medium changers by modifying the registry.
To check whether the control path failover is enabled in the device driver and show the primary and alternative paths, use the tape diagnostic and utility tool.
Note: Show the primary and alternative path configuration for any device with tape diagnostic and utility functions. Refer to IBM Tape Diagnostic Tool (ITDT).
If you disabled the control path failover in the device driver’s setting by double-clicking the DisableCPF.reg file and rebooting your system, you can go into the registry by
issuing the Windows regedit command to confirm that CPF is disabled. Look for a line like
This line indicates that CPF is disabled in the driver. This setting takes effect only after your system is rebooted.
To take advantage of Windows Data Path failover (DPF) support, the appropriate feature code must be installed. Refer to Automatic failover for what feature code might be
required for your machine type.
Data Path failover is enabled automatically when the device driver is installed by default (install_exclusive.exe). It can be disabled from installation with the -f CLI option.
Or, it can be disabled or reenabled for the entire set of attached drives or medium changers by modifying the registry.
For latest LTO generation 3 code and later LTO generation tape drives, a license key feature for the library hardware is required.
Note: For LTO generation 3 or lower, or for tape drives that require a data path license key on the host side to enable DPF, the device driver looks for a file that is called
%system_root%:\IBM_DPF.txt for the key. %system_root% is the drive letter where Windows is installed, typically C (for example, C:\IBM_DPF.txt). The file contains the
key on a single line, with no spaces and no other text on the line. If multiple keys are required, place each key in the file on its own line. The driver looks for this file at
initialization. If the file contains a valid DPF license key, the DPF feature is enabled and any eligible devices have multi-path support.
If DPF is disabled, SCSI-2 reserve is used by default to handle the reservation on tape drives. If Persistent Reserve is wanted rather than SCSI-2 reserve,
ReserveTypePersistent.reg enables it (ReserveTypeRegular.reg disables it and then SCSI-2 reserve is used). Or,-p CLI option installation (only if -f was used to disable DPF)
enables Persistent Reserve from installation.
Note: If DPF is not disabled, Persistent Reserve is used.
To check whether the data path failover is enabled in the device driver and show the primary and alternative paths, you can use the tape diagnostic and utility tool.
If you disabled the data path failover in device driver’s setting by double-clicking the DisableDPF.reg file and rebooting your system, you can go into the registry by issuing
the Windows regedit command to confirm that DPF is disabled. Look for a line
This line indicates that DPF is disabled in the driver. This setting takes effect only after your system is rebooted.
Problem determination
Edit online
There is a debug version of the device driver that can be used if you encounter problems. The debug version of the driver issues DbgPrint messages at various places
during device driver execution. To capture these messages, you must start a debugger or use a tool like Debug View from Sysinternals Suite, available from
http://technet.microsoft.com/sysinternals/.
When the device driver receives a reservation conflict during open or after the device is opened, it logs a reservation conflict in the Windows eventlog. Before the error is
logged, the device driver issues a Persistent Reserve In command. This action determines whether a SCSI Persistent Reservation is active on the reserving host to get the
reserving host initiator WWPN (worldwide port name). If successful, the device driver logs this information as follows.
Where kkkkkkkk is the actual reserve key and xxxxxxxx is the reserving host initiator WWPN.
After initially logging the reserving host WWPN, subsequent reservation conflicts from the same reserving host WWPN are not logged. This action prevents multiple entries
in the error log until the reserving host WWPN is different from the one initially logged. Or, the device driver reserved the device and then another reservation conflict
occurs.
1. Add a DWORD value to the registry called MAXBusyRetry and assign it a value between 1 and 480 at:
On Windows Server 2016: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibmtp2k16
On Windows Server 2019 and Windows Server 2022: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibmtp
2. Reboot your system. Then, when a device gets the device busy error, the command is retried up to MAXBusyRetry times.
If the tape diagnostic utility is not available, you can confirm that Data Path failover is enabled by installing the Debug version of the device driver. Refer to Problem
determination or Old releases: V6.2.5.2 and prior releases. While the Debug device driver is installing, look for the message: tape.CreateTapeDeviceObject: DPF
INSTALLED.
If the tape diagnostic utility is not available, you can confirm that Control Path failover is enabled by installing the Debug version of the device driver. Refer to Problem
determination or Old releases: V6.2.5.2 and prior releases. While the Debug device driver is installing, look for the message: FtlValidateCpfKey and confirm that the
status is True.
The last driver level to include support for Windows 2003 is V6.2.1.7.
The last driver level to include support for Windows 2008 is V6.2.5.2.
Subsequent levels include support for Windows Server 2012; support for Windows Server 2016, starting with level 6.2.6.0; and support for Windows Server 2019, starting
with level 6.2.6.8.
1. Refer to Installation and configuration instructions. The same installation instructions for Windows Server 2019 apply to Windows Server 2012 and Windows Server
2008.
Purpose
Accessing ITDT
Accessing documentation and software online
IBM maintains the latest levels of System Storage® tape drive and library device drivers and documentation on the Internet. Fix Central is a portal where you can
download the latest version of drivers for most of the IBM tape products. In this download area, you find menus that can guide you to find what you need.
Supported systems
IBM Tape Diagnostic Tool - Standard Edition
IBM Tape Diagnostic Tool - Graphical Edition
Purpose
Edit online
Both versions provide the user with a single diagnostic program for tapeutil applications. Both SE and GE contain tapeutil functions with SE also providing scripting
capability.
Note: The term tapeutil is a synonym for the tool that is delivered with the device driver. For example, this tool is named tapeutil on UNIX operating systems; it is named
ntutil on Microsoft Windows operating systems.
ITDT supports IBM tape and library devices claimed by the IBM Tape Device Driver and devices that use the generic Operating System driver. By default the IBM Tape
Device Driver is used but only if the IBM Tape Device Driver is not installed or the device is not claimed by the IBM Tape Device Driver. The generic Operating System driver
is used when available.
The available advanced operations that are provided by the IBM Tape Diagnostic Tool are completed on tape drives and tape libraries. By using this function, you can
complete maintenance tasks and run diagnostic tasks to determine tape drive issues. This action reduces product downtime and increases productivity.
Scan the system to discover all supported tape and library devices.
Run a connection test (scan).
This test is used to verify that all devices are attached properly.
ITDT-SE provides the most important functions of the previous tapeutil tools. As an extension of the current tapeutil variants, the set of operations and functions available
with ITDT-SE is identical across all supported operating systems (unless a function is not available on a particular system).
Dedicated device drivers for tapes and libraries can be installed on the target system and an application is installed that uses the tape/library devices. When this
configuration exists, ITDT-SE can coexist with the application so that when the application disables the device internally, ITDT-SE can run the diagnostic tests on that
device.
Accessing ITDT
Edit online
IBM maintains the latest levels of the ITDT tool chain and documentation on the Internet at http://www.ibm.com/support/fixcentral.
One option to access ITDT is through Accessing documentation and software online. When an IBM driver is downloaded, there is a corequisite to download ITDT.
This portal gives access to the download area where the following procedure guides you to the correct download:
For details on supported tape attachment, refer to the System Storage Interoperation Center website - http://www.ibm.com/systems/support/storage/config/ssic/.
Information concerning supported Fibre Channel host bus adapters (HBAs) and associated HBA device drivers, firmware, and BIOS levels can be obtained from the
System Storage Interoperation Center website - http://www.ibm.com/systems/support/storage/config/ssic/.
The IBM_Tape_Driver_IUG.pdf file contains the current version of the IBM Tape Device Drivers: Installation and User's Guide, which can be found here: http://www-
01.ibm.com/support/docview.wss?rs=577&iud=ssglS7002972. You can also use the links that are located under Related Information to get quick access to the
download section for the tape device drivers.
The IBM_Tape_Driver_PROGREF.pdf file contains the current version of the IBM Tape Device Drivers: Programming Reference, which can be found here: http://www-
01.ibm.com/support/docview.wss?uid=ssg1S7003032.
For the current information for the device driver you are using, consult the readme file (not files) included in the download of your device driver.
Use the links listed below for quick access to the download section for every tape Device Driver platform.
AIX. Path: Storage Systems > Tape Systems > Tape device drivers and software > Tape device drivers > AIX, or http://www-
933.ibm.com/support/fixcentral/swg/selectFixes?
parent=ibm~ST~Tapedevicedriversandsoftware&product=ibm/Storage_Tape/Tape+device+drivers&release=1.0&platform=AIX&function=all.
Linux. Path: Storage Systems > Tape Systems > Tape device drivers and software > Tape device drivers > Linux, or http://www-
933.ibm.com/support/fixcentral/swg/selectFixes?
parent=ibm~ST~Tapedevicedriversandsoftware&product=ibm/Storage_Tape/Tape+device+drivers&release=1.0&platform=Linux&function=all.
Solaris. Path: Storage Systems > Tape Systems > Tape device drivers and software > Tape device drivers > Solaris, or http://www-
933.ibm.com/support/fixcentral/swg/selectFixes?
parent=ibm~ST~Tapedevicedriversandsoftware&product=ibm/Storage_Tape/Tape+device+drivers&release=1.0&platform=Solaris&function=all.
Windows. Path: Storage Systems > Tape Systems > Tape device drivers and software > Tape device drivers > Windows, or http://www-
933.ibm.com/support/fixcentral/swg/selectFixes?
parent=ibm~ST~Tapedevicedriversandsoftware&product=ibm/Storage_Tape/Tape+device+drivers&release=1.0&platform=Windows&function=all.
Windows WHQL. Path: Storage Systems > Tape Systems > Tape device drivers and software > Tape device drivers > Windows WHQL, or http://www-
933.ibm.com/support/fixcentral/swg/selectFixes?
parent=ibm~ST~Tapedevicedriversandsoftware&product=ibm/Storage_Tape/Tape+device+drivers&release=1.0&platform=Windows+WHQL&function=all.
Supported systems
Edit online
ITDT is developed to support various versions of different platforms and tape products. For the latest support, refer to Introduction and Inter-operation Center website
product support at http://www.ibm.com/systems/support/storage/config/ssic/.
This section describes the installation procedures for the Standard Edition of ITDT in various operating systems.
In a System Managed Encryption setup, the Encryption test [E] always exits with NO DRIVER SPECIAL FILE when ITDT-SE is started with -force-generic-dd.
ITDT-SE on AIX® operating systems has two installation modes and can be installed by one of the following methods.
Or
smitty install
2. Installation independently.
a. Download install_itdt_se_<OS>_<version> to a directory of your choice.
install_itdt_se_Aix_<version> is for AIX® operating systems.
b. Run the following command to make install_itdt_se_<OS>_<version> executable.
install_itdt_se_Aix_<version>
Or
./install_itdt_se_Aix_<version>
Note: ITDT-SE can be used only by a user with root access rights.
To install ITDT-SE on Windows Windows operating systems, complete the following steps.
Note: ITDT-SE can be used only by a user with administrator rights.
install_itdt_se_WindowsX86_64_<version>.exe
After successful installation, the ITDT program is located in the following folder: /home/ITDT.
To install ITDT-SE on other supported operating systems, complete the following steps.
Note: ITDT-SE can be used only by a user with root access rights, except for the Mac OS, which requires the user to have the minimum of read/write access to the device
file.
install_itdt_se_<OS>_<version>
or
./install_itdt_se_<OS>_<version>
This section describes the startup procedures for the Standard Edition of ITDT in various operating systems.
1. If the IBM® Tape Device Driver is not used, if it is not installed, or you want to be able to run -force-generic-dd, configure the sgen driver.
A script sgen_solaris_conf.sh is included in the ITDT-SE package. This script allows you to configure the sgen generic SCSI driver that is shipped with Solaris.
ITDT-SE requires that the sgen device driver is configured so that the devices you want to work with can be found.
Note: For system security reasons, always reset the sgen device driver settings after you finish working with ITDT-SE, by using the sgen_solaris_conf.sh script.
To configure the sgen driver, start the sgen_solaris_conf.sh script with root access.
The following command-line options are available on the SGEN driver configuration screen:
1. Check driver: This option checks if the driver /kernel/drv/sgen is available.
2. List driver settings: This option shows the current activated devices.
3. New driver configuration: This option shows the screen that is used to create a new driver configuration (see Step 2).
4. Stop sgen driver: This option stops the driver (that is, rem_drv sgen).
5. Start sgen driver: This option stops and starts the sgen driver.
6. Exit program: This option closes the shell script.
2. Enter option 3 to create a new driver configuration.
The following command-line options are available on the New Configuration screen. Use these options to configure the sgen driver:
Note: For Fibre Channel Host Bus Adapters (HBAs), special handling is required. Attached devices must be configured with their WWPN in the sgen.conf file. This task
must be done manually. It is not completed by using the sgen_solaris_conf.sh script.
The following code is an example how to add those devices:
If you have finished the editing, the sgen driver has to be restarted.
Please enter "update_drv sgen".
The Read Attribute command is 16-byte CDB. On Solaris 10, IBMtape can detect what maximum CDB length is supported from HBA attributes and set the supported
CDB. For Solaris 9, CDB16 must be enabled for ITDT-SE to work correctly. This procedure can be done by adding the entry of
cdb16_support=1
/usr/kernel/drv/IBMtape.conf
./itdt
Press Enter to scroll the license screens forward or b followed by Enter to go back.
Type i if you agree to the terms of license or q followed by Enter to quit the application.
During the initial program start, the input and output directories are created.
Input directory: default directory for firmware files during Firmware Update
Output directory: directory that contains the result files, dump files, and log files after tests are run
At first program start, the license text is displayed and the input and output directories are created. Start ITDT by running the following command from the directory
"ITDT" that was created during the installation (confirm to run with administrator rights):
itdt.exe
Press Enter to scroll the license screens forward or b followed by Enter to go back.
Type i, if you agree to the terms of license or q followed by Enter to quit the application.
ITDT-SE does not create any registry entries or make changes outside the installation directory.
During installation a subdirectory "ITDT" was created which contains the ITDT program file and 2 subdirectories initially:
When the program is run for the first time, two more subdirectories are created in the "ITDT" folder:
To remove ITDT from your system, erase the ITDT directory. Any log and dump files in the subdirectories are also erased when you do so.
To use ITDT-SE to update firmware or pull dumps from a tape drive inside a tape library, make sure that the drives are varied online in STANDALONE MODE by completing
the following steps.
1. Issue the command WRKMLBSTS. Identify the library and drives you want to work with. Note their names (for example, TAPMLB01, TAP01, TAP02).
2. Deallocate the corresponding drives by using option 6.
3. Vary OFF the TAPMLB by using option 2.
4. Enter the following command:
Identify the drives that were noted in Step 1 (for example, TAPMLB01, TAP01, TAP02) and vary them ON by using option 1.
QSH
cd /home/ITDT
./itdt
8. Update Firmware and pull dumps. See Firmware Update and Dump.
9. When firmware updates and dumps are complete, enter the following command:
10. Vary off the TAPs that you worked with by using option 2.
11. Issue the command WRKMLBSTS. Identify the library and drives you worked with.
12. Vary on the TAPMLB by using option 1.
13. Press F5 to refresh the screen. The TAPs belonging to the TAPMLB shows up.
14. Allocate the TAPs back to the TAPMLB by using option 4 or 5.
./itdt
Press Enter to scroll the license screens forward or b followed by Enter to go back.
Type i, if you agree to the terms of license or q followed by Enter to quit the application.
Input directory: default directory for firmware files during Firmware Update
Output directory: directory that contains the result files, dump files, and log files after tests are run
When the IBM Tape Device Driver cannot be used, ITDT-SE can be forced to use generic Operating System driver devices with the parameter -force-generic-dd.
This section describes the known issues and limitations of the ITDT-SE program.
For FC and SAS devices, ID and LUN greater than 999 are not displayed; they are shown as ###.
When logged in through telnet, backspace might not work - an escape sequence is inserted and the input is ignored after Enter is pressed.
Verify that the following patches are installed before ITDT-SE is started.
Note: ITDT-SE is emulated by Aries (a binary emulator that transparently emulates 32-bit and 64-bit HP-UX PA-RISC applications on HP-UX IA-64 machines).
On HP-UX11.iV3 systems, tape libraries that are operated through the drive's control path (no control path failover) might disappear from the Device List after a [F]
Firmware Update on the controlling drive. It is recommended to complete repeated [S] Scan operations to make the library reappear in the device list.
Rescan might take 6-8 minutes, depending on the numbers of host adapters and devices attached.
If the IBM® Tape Device Driver is not installed on Solaris 10, tape devices might not be found during scan although they are configured in sgen.conf. When this event
occurs, complete the following steps to configure the devices:
1. Check the current driver bindings for IBM tape drives and changers by entering the following commands:
2. Modify the /etc/driver_alias file to comment all lines not starting with sgen and containing identification of your drives and changers. Examples:
3. Check that the configured drives are not configured for st driver by entering the following command:
# cfgadm -al
If the tape drive is claimed by st device driver, an entry with cxx:rmt/y, is displayed, for example:
5. Check that the drives and changers are now configured with the following command:
# cfgadm -al
# cfgadm -al
After a firmware update, devices might disappear. This issue is a known Windows problem.
When applications are turned on Windows while ITDT-SE is running, an extra ESC character might appear on the input line. When this issue occurs, the input is ignored
after Enter is pressed.
If you are using Adaptec SCSI Host Bus adapters, ensure that you are using the latest Adaptec Host Bus Adapter Drivers instead of the drivers that are shipped with the
Windows operating system.
On Microsoft Windows systems where the maximum transfer size is limited to less than 64 kB, the Dump and Firmware Update operations do not work.
The Tape Drive must be varied online. If the tape drive is operated through a tape library, the library must be varied offline. See Starting ITDT-SE on i5/OS operating
systems for details.
IO adapters without a dedicated IOP do not support commands with 16 bytes. These adapters are called IOP-less and can be identified with the command;
WRKHDWRSC *STG. Adapters where the CMBxxx and DCxxx resource names are the same (like both 5774) are IOP-less. If it is IOP, then the CMBxxx is a different type
from the DCxxx.
Therefore, the following ITDT commands and test sequences can fail on IOP-less adapters attached devices.
The [U] Tapeutil option is not available for i5/OS with this release as all the underlying operations require the IBM® Tape Device Driver to be installed.
FC 5912 SAS HBA support is only for POWER6 and V6R1 configurations that are attached to LTO Gen 4 HH tape drives (No support for LTO 3 HH SAS).
This section describes the known issues and limitations of the ITDT-SE program on all other supported operating systems.
Prevent/Allow Medium Removal is missing as a Tape Drive option. But, it can still be completed by using the [56] Prevent/Allow Medium Removal option for tape libraries
while the tape device is opened.
When the Tab key is pressed as an input string for field data, the user interface is corrupted.
Make sure that field input does not start with a number followed by space and extra text. This input is interpreted as an entry to a specific row in the field. To avoid this
issue, use an underscore character ( _ ) instead of the space character.
Command timeout
There is no instant operation termination upon SCSI command timeout; for example, when the SCSI cable is unplugged after POST A is started.
When a command timeout condition occurs, ITDT might still continue to complete more operations (like unmounting the cartridge) instead of instantly terminating with a
timeout condition.
[H] Help
Help starts and displays the available online help.
[U] Tapeutil
Opens the screen for the Tapeutil operation commands. These commands are the standardized tapeutil functions with most of the options available that were
available with the previous tapeutil functions (refer to Standard Edition - Tapeutil menu commands).
[P] Preferences
Opens the dialog where default program settings can be defined and altered.
When ITDT-SE is used after S is entered on the start screen, the Scan function starts and displays the first device list screen.
To select a device, enter a number from the leftmost column, then click Enter.
Entering the M command returns to the Start Screen menu. Entering the V command toggles between displaying the physical device address and the driver name.
This screen contains the S, T, D, F, Y, J, and A commands. Entering the O command displays the second device list screen. The second screen contains the W, U, K, L, I, E,
C, and R commands.
S - Scan
T - Health Test
D - Dump
F - Firmware Update
Y - System Test
J - Eject Cartridge
W - Full Write
U - Tape Usage
K - Check LTFS Readiness
L - Library Test
I - Library Media Screening
E - Encryption
C - Configure TCP/IP
R - Return
Scan
Health Test
Dump
Firmware Update
System Test
Eject Cartridge
The Eject Cartridge [J] function unloads a cartridge from a tape drive.
Cleaning Statistics
Other Functions
Full Write
Tape Usage
Check LTFS Readiness
Library Test
Library Media Screening
Encryption
Configure TCP/IP
Return
Scan
Edit online
The Scan function [S] is used to discover all supported tape and library devices that are attached to the computer system so that they can be selected for the subsequent
ITDT-SE operations. The scan function also serves as a connection test that can be used to verify correct attachment of the devices.
Make sure that no other program is accessing the devices that are used by ITDT-SE. For example, stop the backup jobs that are accessing the devices when ITDT-SE is
used, or if not sure, stop the entire backup application.
After ITDT-SE is started, type S followed by Enter to activate the scan function.
Depending on the operating system and the number of attached drives, the scan can take several minutes. See Standard Edition - known issues and limitations for details.
During the scan operation, a bar in the lower left edge of the screen shows that the scan operation is still in progress.
When the scan is finished, the first device list screen is displayed.
Scrollable data is indicated by "VVVVVVVVV" in the bottom border of the table. To view the non-displayed entries, type + and press Enter.
Note: For fast down scrolling, type + followed by a space and the number of lines to scroll down, then press Enter. Alternately, type N and press Enter to scroll down one
page.
To scroll back, use - instead of +.
Note: For fast up (backward) scrolling, type - followed by a space and the number of lines to scroll up. Press Enter, or type P and press Enter to scroll up one page.
If no devices appear or if devices are missing in the list, make sure that
file /kernel/drv/sgen.conf
ITDT-SE uses the IBM Tape Device Driver for its operations. If no IBM Tape Device Driver is installed, the generic device driver for the operating system is used instead. On
Microsoft Windows, any Tape Device Driver that is installed is used.
If you must bypass the IBM Tape Device Driver for diagnostic purposes, start ITDT-SE with the following command.
itdt -force-generic-dd
Note: For operating system-specific information on how to use this command, see the corresponding Initial Startup sections.
When the wanted device is displayed, select the device for test. Only one device can be selected at a time.
Health Test
Edit online
The Health Test function [T] checks if the tape device is defective and outputs a pass/fail result.
Attention: The health test function erases user data on the cartridge that is used for the test.
For the library or autoloader test, the Library Test [L] must be selected.
Note:
To complete the test function, it is recommended that a new or rarely used cartridge is used. Scaled (capacity-reduced) cartridges must not be used to test the device.
To test tape drives within a library, the library must be in online mode.
1. Start ITDT-SE, then type S and press Enter to scan for the devices.
2. Select the device that you want to test by entering its number and press Enter.
3. Type T followed by Enter to activate the test.
If no cartridge is inserted, ITDT-SE prompts to insert a cartridge. Either insert a cartridge and press Enter or stop the test by entering C followed by Enter.
Note: If ITDT-SE detects data on the cartridge, the Device Test screen displays a message (as shown in Figure 1.
During the test, the program shows a progress indicator in the form of a bar of number signs (#) ( 1 ) that shows the progress of a single subtest and also a description of
that subtest. The user might stop the test by selecting the [A]Abort option (exception: POST A).
During the test, a progress indicator ( 1 ) is shown on the test screen. Messages from the test steps are shown in the Status field ( 2 ).
1. Initialize Device
2. Read Thermal Sensor (might get skipped)
3. Mount Medium
4. [Medium Qualification] - only if the previous step indicated this requirement
5. Load/Write/Unload/Read/Verify
6. POST A
7. Performance Test (run 2 times if first run failed with performance failure)
8. Unmount Medium
9. Read Thermal Sensor (might get skipped)
10. Get FSC
11. Get Logs
The test can be stopped by typing A followed by Enter at any time except during the POST test, which is not interruptible.
Note: It might take some time until the test stops.
If you want to use other ITDT-SE functions, type R followed by Enter to return to the first device list screen. Otherwise, type Q followed by Enter to exit the program.
Dump
Edit online
1. Start ITDT-SE, then type S and press Enter to scan for the devices.
2. Select the device that you want to retrieve a dump from by entering its number and pressing Enter.
3. Type D and press Enter to start the dump retrieval for the selected device. The ongoing dump process is completed (it takes less than 1 minute).
Figure 1. Dump
When the dump process is completed on a tape library or autoloader other than the 3584/TS3500/TS4500, the Dump function stores 1 log file in the output folder of the
program (*.blz). For the 3584/TS3500/TS4500, a dump file (*.a) is stored in the output folder.
Note: When the Dump function is completed for tape libraries or autoloaders other than the 3584/TS3500/TS4500, the log file contains only Log Sense and Mode Sense
pages, while a Drive or 3584/TS3500/TS4500 dump contains much more diagnostic information.
Retrieve the files from the ITDT-SE output subdirectory that was created during the installation. The following are examples of the directory:
If you want to use other ITDT-SE functions, type R followed by Enter to return to the device list; otherwise, type Q followed by Enter to exit the program.
Firmware Update
Edit online
The Firmware Update [F] upgrades the firmware of tape drives and tape libraries.
Note: See supported operating systems for information on how to update the firmware on TS4500 tape libraries.
The following site is available for the latest firmware files: http://www.ibm.com/systems/support/storage/tape
Download the files to the ITDT-SE input subdirectory that was created during the installation. The following are examples of the directory:
1. Start ITDT-SE, then type S and press Enter to scan for the devices.
2. Select the device that you want to update by typing the number of the device and pressing Enter.
3. Type F and press Enter to display the Firmware Update screen.
4. To select the needed firmware update, complete one of the following steps:
If the downloaded firmware file is listed in the Content field of the Firmware Update screen, type the corresponding line number and press Enter.
If the firmware file is stored in a directory other than FW Dir, type F followed by a space and the fully qualified path to the directory that contains the
firmware file, then press Enter.
For example, enter the following to change the firmware directory (UNIX):
f /home/user/firmware
If no files are displayed in the Content field, check the Dir OK field on the right side of the screen. It indicates true if the directory exists, false otherwise.
If the content of the displayed FW Dir changed, type D and press Enter to refresh the directory content.
Note: The selected file name is reset to the first item (#0) after the Refresh function is used.
If the displayed directory contains more files than the files shown, type + and press Enter to scroll down the list. For fast down scrolling type + followed by a
space and the number of lines to scroll down then press Enter. To scroll back, use - instead of +.
Scrollable data is indicated by "VVVVVVVVVVVVVVVVV".
5. After the firmware file is selected, type C and press Enter to continue.
6. Before the firmware update is started, make sure the file that is displayed in the FW File field is the correct file.
If the correct file is displayed, proceed to the next step.
If the correct file is not displayed, type C and press Enter to change the selected firmware file. Go to Step 4.
Note: The selected file name is reset to the first item in the list when you return to that dialog from the Start Update dialog.
7. If you decide to run the firmware update, type S and press Enter to start the firmware update.
During the firmware update, a firmware update progress screen is displayed.
Note: If ITDT-SE detects FIPS-certified drive firmware, it displays a warning dialog. Before you continue, ensure that you use FIPS-certified firmware to update the
drive.
8. After completion, the Status field on the lower right side indicates PASSED if the firmware was updated successfully and FAILED otherwise.
Type R and press Enter to return to the Device List.
System Test
Edit online
The System Test [Y] is a short test that completes the following steps:
Reveals system performance bottlenecks. Compressible data throughput values can reveal bandwidth limitations that are caused by the system, cabling, or HBA.
Measures performance variations across the different block sizes to find the ideal block size for the system configuration.
The System Test runs only on tape drives, not on autoloaders or libraries. To complete a System Test on tape drives within a library, the library must be in online mode.
1. Start ITDT-SE, type S, and press Enter to scan for the devices.
2. Type Y and press Enter to start the System Test.
ITDT-SE then switches to the System Test screen. If no cartridge is inserted, ITDT-SE prompts to insert a cartridge. Either insert a cartridge and press Enter or stop
the test by typing C followed by Enter.
Note: If ITDT-SE detects data on the cartridge, it shows the System Test screen, and displays the following message.
"Compressible = Yes" means that the data written was just zeros so that the data is compressed by the drive with a maximum compression ratio. "Compressible =
No" means that a data pattern was written that the drive almost cannot compress at all. If the compression ratio is 1, the drive was not able to compress the data
(equivalent to 1:1 compression ratio). If the compression ratio is 94.0, the drive was able to do 94:1 compression, meaning that 94 bytes in the original data is
compressed to 1 byte on the medium. 100.0 means 100 bytes is compressed down to 1 byte on the medium.
The System Test can be stopped by typing A followed by Enter at any time.
Note: It can take some time until the System Test stops.
If you want to use other ITDT-SE functions, type R followed by Enter to return to the device list. Otherwise, press Q followed by Enter to exit the program.
Eject Cartridge
Edit online
The Eject Cartridge [J] function unloads a cartridge from a tape drive.
1. Start ITDT-SE, then type S and press Enter to scan for the devices.
2. Select the device that you want to unload a cartridge from by entering its number and pressing Enter.
3. Type J and press Enter to unload a cartridge.
Cleaning Statistics
Edit online
Cleaning Statistics [A] retrieves statistical data about cleaning actions. Some devices do not support this function.
1. Start ITDT-SE, type S, and press Enter to scan for the devices.
2. Select the device that you want to retrieve cleaning statistics from by entering its number and pressing Enter.
3. Type A and press Enter to start the cleaning statistics retrieval for the selected device.
Other Functions
Edit online
Other Functions [O] - type O followed by Enter to display a screen with the following commands:
W - Full Write
U - Tape Usage
K - Check LTFS Readiness
L - Library Test
I - Library Media Screening
E - Encryption
C - Configure TCP/IP
R - Return
The Full Write [W] function writes the entire cartridge with a specified block size either with compressible or incompressible data and output performance data.
Attention: The Full Write function erases data on the cartridge that is used for the test.
Note:
1. The Full Write function takes approximately 2 hours when incompressible data is written, less time for compressible data.
2. The Full Write function runs only on tape drives, not on autoloaders or libraries.
Demonstrate that the drive can write the full amount of data on a cartridge.
Identify system issues with compression.
Drive data compression is always turned on during the full write. When run with compressible data, the output shows the compression rate. If the compression rate
is higher than 1.0 but the system does not appear to be able to compress data on the cartridge, check the device driver and software settings to see whether they
disable compression.
1. After ITDT-SE is started, type S followed by Enter to activate the device scan.
2. Select the device that you want to write to by entering its number and press Enter.
3. Type W and press Enter to start the full write.
ITDT-SE then switches to the Full Write screen. If no cartridge is inserted, ITDT-SE prompts to insert a cartridge. Either insert a cartridge and press Enter or stop the
test by typing C followed by Enter.
Note: If ITDT-SE detects data on the cartridge, it shows the Full Write screen, and displays the following message:
Type Y followed by Enter to continue the test if you are sure that data on the cartridge can be overwritten. If you are unsure, type N followed by Enter to stop the
test.
4. The system prompts for entry of a transfer size between 32 KB and the maximum block size that is supported by the system (maximum value is 8 MiB). This action
is a check for the type of supported block size that is completed. Enter the appropriate values for your system.
Note: Values of 16 KB and 32 KB are not tested in cases where the capability of a system supports higher block sizes.
5. Select the type of data to write, either [C] Compressible or [I] Incompressible.
During the full write, the program shows a progress indicator in form of a bar of number signs (#) that shows the progress of the full write.
The full write can be stopped by typing A followed by Enter at any time.
Note: It can take some time until the full write stops.
If all write operations are finished, ITDT-SE shows a screen that displays the compression ratio ( 1 ) and the write performance (shown in 2 as the Data Rate) for
the selected block size. If an error occurred during the full write, data is only written partially.
"Compressible = Yes" means that the data written was just zeros so that the data is compressed by the drive with a maximum compression ratio. "Compressible =
No" means that a data pattern was written that the drive almost cannot compress at all. If the compression ratio is 1, the drive was not able to compress the data
(equivalent to 1:1 compression ratio). If the compression ratio is 94.0, the drive was able to do 94:1 compression, meaning that 94 bytes in the original data is
compressed to 1 byte on the medium. 100.0 means 100 bytes is compressed down to 1 byte on the medium.
If you want to use other ITDT-SE functions, type R followed by Enter to return to option 4 the device list. Otherwise, type Q followed by Enter to exit the program.
Tape Usage
Edit online
The Tape Usage [U] function retrieves statistical data and error counters from a cartridge.
During the get logs operation, the program shows a progress indicator in form of a bar of number signs (#) that shows the progress of a single suboperation and a
description of that operation.
When all suboperations are finished, ITDT-SE shows a Tape Usage completion screen. The Status field on the lower right side indicates PASSED if the log retrieval
completed successfully and ABORTED otherwise.
The Check LTFS Readiness test analyzes the operating system and tape drive environment to ensure that the IBM® linear tape file system can be installed. This test checks
the operating system version, the tape device driver version, the tape drive firmware, and the LTFS HBA requirements.
Note: The tape drive firmware must be at least version: C7RC (for LTO 5), C974 (for LTO 6), and 36A5 (for TS1140 and TS1150). The LTFS Readiness Check requires an
empty data cartridge. The maximum transfer size is detected at the beginning of the test. If it is under 512kB, a warning is displayed. If it is under 256kB, the test fails.
The LTFS Readiness Check can return with result FAILED and one of the following error codes.
Library Test
Edit online
The Library Test [L] starts and monitors the library-internal self-test. This test runs only on libraries and autoloaders, not on tape drives.
1. Start ITDT-SE, type S, and press Enter to scan for the devices.
2. Type O and press Enter to display the second device list screen.
3. On the second device list screen, type L and press Enter to start the Library Test.
A Device Test screen is displayed and a functionality test on the tape library is completed.
The Library Test can be stopped by typing A followed by Enter at any time.
Note: It can take some time until the Library Test stops.
If you want to use other ITDT-SE functions, type R followed by Enter to return to the device list; otherwise press Q followed by Enter to exit the program.
First, the test tries to read dump files from each drive that is installed from the library. After that, the customer must select one drive for loading the cartridges.
All cartridges of the I/O and storage slots are moved - one after the other - from their source to the selected drive. A dump is taken and moved back to the source address.
In the result screen, the dumps taken and the count of dumps are displayed.
Encryption
Edit online
The Encryption [E] function is used to verify whether data on the cartridge was written encrypted. It reads both decrypted and raw data from the cartridge into two
separate files on disk. The user can then verify that the data differs to ensure that encryption worked.
The Encryption function is supported only on encryption enabled drives. It requires that an encryption infrastructure, including the Encryption Key Manager (EKM), is
properly set up. An encrypted data cartridge must be used.
System Managed: IBM® tape device driver must be installed and in use by ITDT to read decrypted data
Library Managed
Application Managed: Only raw encrypted data is read (result file *.ENC)
Note: On i5/OS, media changers and media changer operations are not supported by this release of ITDT-SE. To test a tape drive inside a library, the tape drive must be
varied online and the tape library must be varied offline (see Starting ITDT-SE on i5/OS operating systems for details). As the library is varied offline, the Encryption
function does not deliver decrypted data in a Library Managed Encryption environment.
1. After ITDT-SE is started, type S followed by Enter to activate the device scan.
2. Select the device that you want to test by entering its number and press Enter.
3. Type E and press Enter to start the encryption test. ITDT-SE then switches to the Encryption Verification screen. On this screen, the system requires the entry of the
number of the start record and the amount of data (in KB) to be read.
4. Type S followed by a space and the start record number, then press Enter to enter the start record number. Type L followed by a blank and the data length, then
press Enter to enter the data length, maximum 100000 KB.
5. If you entered the values correctly, press Enter to start the encryption.
During the encryption, the program shows a progress indicator in form of a bar of number signs (#) that shows the progress of a single subtest and information
about that subtest.
The Encryption function can be stopped by typing A followed by Enter at any time.
Note: It can take some time before the Encryption function stops.
If all encryption operations are finished, ITDT-SE shows a screen that displays the Status field on the lower left side that indicates PASSED if the encrypted test completed
successfully and ABORTED otherwise.
The screen also shows the output files that were generated during the Encryption function:
END OF MEDIUM End of medium that is encountered before the specified amount of data was read
END OF DATA End of data that is encountered before the specified amount of data was read
READ FAILED
ENCRYPTION ERROR
INVALID PARAMETER User entered data length of 0 kB
FILE IO ERROR The hard drive that ITDT is installed on might have run out of space.
If you want to use other ITDT-SE functions, type R followed by Enter to return to the device list. Otherwise, type Q followed by Enter to exit the program.
Configure TCP/IP
Edit online
Configure TCP/IP [C] configures the ethernet port settings of LTO 5, TS1140, and later drives. For those drives, the current settings are read and displayed and can be
changed.
Note: LTO drives have one port and TS1140 and later drives have two ports that can be configured. Configuring the ethernet ports must not be done in a TS3500/TS4500.
Although the ports can be configured, it is ineffective.
1. Start ITDT-SE, type S, and press Enter to scan for the devices.
2. Select a device from the list (just the ones that are listed are supported) by entering the number, then press Enter.
3. Type O and press Enter to display the second device list screen.
4. On the second device list screen, type C and press Enter to open the Configure TCP/IP screen.
ITDT-SE switches to the Configure TCP/IP screen and reads the data configuration of port 1. To toggle between port 1 and 2, type P and press Enter.
Each parameter can be set by entering the number (1 - 5) and a following value. If you want to enable DHCP, enter '1 1' and press Enter. The value of the DHCP field is
refreshed with the value entered.
The values for both ports are applied to the drive by entering A and pressing Enter. ITDT-SE configures the drive and the current active addresses are shown in the field:
Active IP Addresses. Regular field values:
If you want to use other ITDT-SE functions, type R, then press Enter to return to the device list. Or, press Q and Enter to exit the program.
Return
Edit online
Return [R] - type R followed by Enter to go back to the first device list screen.
When the user runs the U command on the ITDT-SE start screen, the Tapeutil operation screen is displayed.
Note: On any screen, to start a command, press the shortkey displayed in brackets [ ], followed by Enter.
Note: Always use the Read Only mode when you are working with write-protected media.
The combination of open cmd with parameter -force-generic-dd is not supported.
/dev/smcX
Linux /dev/IBMtapeX
/dev/IBMchangerX
Microsoft Windows \\.\tape0
\\.\changer0
Oracle Solaris /dev/rmtXsmc
/dev/smc/Xchng
HP-UX /dev/rmt/Xmnb
/dev/rmt/Xchng
Apple Mac - <host><bus><target><lun> H<host>-B<bus>-T<target>-L<lun>
tapeX
changerX
IBM 'i' - - Device Name; for example, TAP01
Example for Linux (IBM Tape Driver devices):
./itdt scan
Scanning SCSI Bus ...
#0 /dev/IBMchanger2 - [3573-TL]-[C.50] S/N:00L4U78D6118_LL0 H3-B0-T5-L1 (IBM-Device)
#1 /dev/IBMtape3 - [ULT3580-TD5]-[BBNE] S/N:1168001104 H3-B0-T5-L0
Changer: 00L4U78D6118_LL0 (IBM-Device)
Exit with code: 0
To open the tape device by using the IBM Tape Device Driver, use the /dev/IBMtape3 as device file name. By using H3-B0-T5-L0 or 3 0 5 0 as the device name, it is opened
with the generic Operating System device driver.
[3] Inquiry
Edit online
When you select the Test Unit Ready (TUR) command [4], ITDT issues the Test Unit Ready ioctl command.
When you select the Reserve Device command [5], ITDT issues a reserve command for the device.
When you select the Release Device command [6], ITDT issues a release command for the device.
[20] Rewind
260 IBM TS4300 Tape Library
Edit online
When you select the Rewind command [20], ITDT issues the ioctl rewind command for the device.
When you select the Forward Space File Marks command [21]:
1. You are prompted for the number of file marks to space forward.
2. ITDT issues (extrinsic) ioctl command.
When you select the Backward Space File Marks command [22]:
When you select the Space to End of Data (EOD) command [25], ITDT issues the (extrinsic) ioctl command.
When you select the Read and Write Tests command [26]:
You are prompted for block size (If you press Enter, the default block size is 10240 bytes).
Note: If the block size is zero, variable mode is used. With a fixed block size, a data amount of (block size * blocks) is transferred with a single operation. This
process can get rejected if the total amount exceeds the transfer size the system can handle.
You are prompted for the number of blocks per read/write (If you press Enter, the default number of blocks is 20).
You are prompted for the number of repetitions (If you press Enter, the default number of repetitions is 1).
ITDT runs the selected test. Then, it displays the transfer size and block size that is used for this test, the number of records read/written, and the total bytes transferred.
You are prompted to specify the file name of the source file (for Write test) or the destination file (for Read test).
You are prompted for the number of records to be read.
Read File from Tape: ITDT reads a file from tape and stores data into a file with the specified file name.
Write File to Tape: ITDT reads data from file with the specified file name and writes data to tape.
ITDT displays the number of records read/written, the transfer size, and the total bytes transferred.
[28] Erase
Edit online
When you select the Erase command [28], ITDT issues the (extrinsic) ioctl command to erase the cartridge.
When you select the Load Tape command [29], ITDT issues the load tape command.
When you select the Unload Tape command [30], ITDT issues the unload tape command.
When you select the Synchronize Buffers command [32], ITDT issues the ioctl command.
Not all drives have a display. The 3592 drive is the only one that has display message capability. It is the only one with a display that is more than one character long. Eight
is the limit of the characters on a display screen.
When you select the Test Encryption Key Path/Setup command [38]:
Note: Not supported for the HP-UX operating system.
1. ITDT prints status message that server configuration and connections are tested
2. ITDT issues the Encryption Diagnostics ioctl command, Ping Diag
3. ITDT prints number of servers available or error message
4. ITDT issues the Encryption Diagnostics ioctl command, Basic Encryption Diag
For LTO 5, TS1140, and later drives, the ethernet port settings can be configured with the Configure TCP/IP Port command. The Configure TCP/IP Port command
displays the current settings:
You can change any of the settings by stepping through each parameter - press Enter. To change a parameter, enter the new value, then press Enter. All data is sent to the
drive and the following screen display is shown:
Note: Because earlier drive generations do not have an ethernet port, the Configure TCP/IP Port command is rejected for these devices with the following message:
1. You are prompted to select (1) for Prevent Removal, or (0) for Allow Removal.
When you select the Initialize Element Status Range command [57]:
When you select the Read Device IDs command [58], ITDT retrieves the device ID information for all available drives and displays the information. Type n followed by
Enter to show the next page.
1. ITDT displays the default input directory where the firmware files must be stored. The following are examples of the directory:
Example input directory (Windows): c:\itdt\input
Example input directory (UNIX): /home/user/itdt/input
2. You are prompted to specify a different input directory if required, or to press Enter to keep the standard ITDT directory.
3. You are prompted to specify the firmware file name and press Enter to start.
4. ITDT runs firmware update and displays progress status and result.
Note: See See supported operating systems for information on how to update the firmware on a TS4500 tape library.
The following site is available for the latest firmware files: http://www.ibm.com/storage/lto.
Discover the configuration of the HD-P system of all attached libraries - just TS3500/TS4500. The function scans the host for attached TS3500/TS4500 devices and uses
their data to discover the HD-P system.
If it is successful, it delivers two maps that represents the logical and physical HD-P environment.
The logical map is a representation of the libraries, where a “1” is the indicator for a connection and a “-1” of no connection.
Command Result
+-----------------------------------------------------------------------------+
| Shuttle Call System discover..... |
| Scanning devices..... |
| .....DeviceFileName:/dev/smc1 SN:0000013AAA160404 |
| |
| Discovering Libraries...... |
| .....Passed |
On the Start screen, press the [A] key followed by Enter to add a drive and a changer manually. In a dialog box, the tape device and the associated changer device can be
defined. Supported formats are: devicename and H B T L. For a standalone tape drive the changer device is not required.
A default tape device is set and stepping through the device names the values can be altered.
When Enter is pressed, those drives which are accessible are opened. The manually added devices are shown in the same way as they are shown after an ITDT Scan
command.
For problem determination and customization, ITDT is providing the following command line options.
-h –help
Prints help information
-version
Displays the version of ITDT,
used configuration files and creation dates.
-force-generic-dd
the usage of the generic Operating System driver
(not using the IBM Tape Device driver) will be forced.
-LP logpath
Use 'logpath' as logging path (default: output)
-L logfile
Use 'logfile' for log messages (default: metro.log)
-LL Errors|Warnings|Information|Debug
Set log level (default: Error)
-R resultdir
Use 'resultdir' as result file path (default: output)
-settings
Change default values of ITDT configuration parameters.
-start deviceaddress
-end deviceaddress
Set range for device scan function, devicename and H B T L is supported.
Scripting is enabled with the 4.0 release of ITDT SE. ITDT-SE provides compatibility with earlier versions for existing tapeutil scripts. While some legacy commands exist,
they are not documented in their entirety as they are phased out over time. New scripts must always use the scripts that are listed in this guide, the Common Command
set (CS). Also, existing scripts must be modified for forward compatibility with ITDT.
You can find a list of commands, on each command you find the command, a description, parameter list, and which platforms are supported. Some commands have
numbers after them. The numbers mean that a corresponding menu command is in Standard Edition - Tapeutil menu commands.
Note: "filename" is a device special file for the drive/changer or the device address (host bus target lun). For a complete list of the file name or address syntax, refer the
section "Special Files" on each platform or go to Device file names - device addressing.
The Open Mode flag is supported on all platforms. If the flag is not set, the device is opened in read/write mode. More parameters that might be required for opening the
device are automatically detected and set.
-w mode
Open mode, by default Read/Write.
Valid modes are:
1 = Read/Write
2 = Read Only
3 = Write Only
4 = Append
Note: Always use the Read Only mode when you are working with write-protected media.
The new command set enables legacy commands on every platform, even if that is not previously supported by Tapeutil. The output follows current Tapeutil conventions.
But, if different output displays for a single command on various platforms, the output is implemented according to the AIX® output as the primary scripting platform.
Tapeutil allows undocumented abbreviations for some of the commands. For example, it was possible to shorten “inquiry” to “inq” or “inqu” or “inqui”. The following
command abbreviations are supported by ITDT-SE too: inq(uiry), req(sense), pos(ition), ele(mentinfo), inv(entory), devid(s), cartridge(location). Deprecated commands are
listed at Deprecated commands. Also, there is a list of unsupported commands and known exceptions at Standard Edition scripting commands: known limitations and
deviations.
General commands
allow
devinfo
inquiry | inq | inqj
logpage | logpagej
loop
modepage
prevent
print
qrypath
qryversion
release
reqsense
reserve
scan|scanj
sleep
tur
vpd
Tape commands
append
bsf
bsr
channelcalibration
chgpart
density
display
erase
formattape
fdp
fdpl
fsf
fsr
getparms
idp
idpl
list
load
logsense
qrypar | qrypart
qrylbp
audit
cartridgelocation
elementinfo
exchange
inventory
librarymediaoptimization
move
position
dump
ekmtest
encryption
ucode
tapephcp
ltfsphcp
verify
devicestatistics
checkltfsreadiness
ltfsdefragmentation
standardtest
fullwrite
systemtest
tapeusage
HD-P commands
hdp discover
hdp senderror
hdp show
allow
devinfo
inquiry | inq | inqj
logpage | logpagej
loop
modepage
prevent
print
qryhba | qryhbainfo
qrypath
qryversion
release
reqsense
reserve
scan|scanj
sleep
tur
vpd
append
bsf
bsr
(Deprecated: unlock, -o rem) Allow medium removal for tape or changer devices (unlock door). The counter command for this is prevent.
Parameters:
None
devinfo
Edit online
(Deprecated: -o gdi) Show device information (device type, sub type and block size)
Parameters:
None
inquiry or inq command identifies the device and returns the output in hexadecimal format. inqj command is similar to inquiry or inq command but generates the
output in JSON format.
Parameters:
logpage | logpagej
Edit online
(Deprecated: -o log) This subcommand issues the SCSI Log Sense command to the device for the specified page and displays the log sense data. The generated output is
in hexadecimal format. logpagej command is similar to logpage command but generates the output in JSON format.
Parameters:
loop
Edit online
This subcommand loops all subsequent subcommands continuously or a number of times if the Count parameter is specified. Also refer to the sleep subcommand.
Parameters:
loop [Count]
modepage
Edit online
(Deprecated: -o mod) This subcommand issues the SCSI Mode Sense command to the device for the specified page and displays the mode sense data.
Parameters:
prevent
Edit online
(Deprecated: -o lck, lock) Prevent medium removal for tape or changer devices (lock door). The counter command for this command is allow.
Parameters:
print
Edit online
This subcommand prints the associated text to standard output. It can be used at any time to display the progress of the subcommands.
Parameters:
print Text
qryhba | qryhbainfo
Edit online
The qryhba|qryhbainfo command issues a set of unique properties like HBA vendor, HBA type, and driver version for the current host bus adapter. The number of
properties displayed depends on the operating system and HBA vendor.
Parameters:
None
qrypath
Edit online
(Deprecated: -o phs, path, checkpath) This subcommand displays information about the device and SCSI paths, such as logical parent, SCSI IDs, and the status of the
SCSI paths for the primary path and all alternate paths that are configured.
Parameters:
None
Note: ITDT shows the entire path information for all the commands.
Supported platforms: All
qryversion
Edit online
(Deprecated: -o drv) This subcommand prints out the current version of the IBM® device driver.
Parameters:
None
release
Edit online
(Deprecated: -o rel) This subcommand explicitly releases a device and makes it available for other hosts by issuing the SCSI Release command.
Parameters:
None
reqsense
Edit online
Parameters:
None
reserve
Edit online
(Deprecated: -o res) This subcommand explicitly reserves a device by issuing the SCSI Reserve command.
Parameters:
None
scan|scanj
Edit online
scan command scans the system for connected tape and changer devices, and displays the list of connected devices. For each detected device following information will
be reported. scanj command is similar to scan command but generates the output in JSON format.
Parameters:
[-force-generic-dd]
[-o formatstring]
[-start=device]
[-end=device]
[-exclude=device]
[-showallpaths]
By using the optional parameter -force-generic-dd, the usage of the generic Operating System driver (not with the IBM® Tape Device Driver) is forced.
With the parameters -start, -end, and -exclude, the scan can be limited to only a particular HBA or target ID range (partial scan). It starts at -start=device to search for
supported devices until -end=device is reached. Devices that are specified with -exclude are skipped during the scan. Multiple excluded devices must be separated by
colons. Supported formats are devicename and H B T L.
The format string controls the output and specifies how the connected devices must be reported. It can include any alphanumeric character. The default format string is
“"#%# %D -
[%P]-[%F] S/N:%S H%H-B%B-T%T-L%L".
%D device name
%V vendor name
%P product name
%F firmware version
%S serial number
%H host adapter
%B bus number
%T target id
%L logical unit
%h host adapter as hexadecimal value
%b bus number as hexadecimal value
%t target id as hexadecimal value
%l logical unit as hexadecimal value
%I interface type
%# enumeration number
%C serial number of associated changer device
Any combination of the identifiers that are listed here are supported.
An integer that is placed between a % sign and the format command acts as a minimum field width specifier. A negative value uses right text alignment.
The option -showallpaths forces ITDT to display all available data paths that are detected during the device scan. The default device serial number-based filtering is not
performed.
sleep
Edit online
Sleep for the specified number of seconds before running the next subcommand.
Parameters:
sleep [Seconds]
tur
Edit online
(Deprecated: -o tur) This subcommand issues the SCSI Test Unit Ready command to the device.
Parameters:
None
This subcommand displays Vital Product Data (VPD) that are part of the Inquiry command data and outputs Manufacturer, Product Identification and Revision Level.
Parameters:
None
append
Edit online
Opens the device in append mode. The file access permission is Write Only.
Parameters:
None
Supported platforms: All, but on Windows this open mode is not supported by the IBM® Tape Device Driver. On HP-UX this open mode is remapped to r/w by the IBM Tape
Device Driver.
bsf
Edit online
(Deprecated: -o bsf) This subcommand backward spaces Count filemarks. The tape is positioned on the beginning of the last block of the previous file. An optional Count
can be specified. The default is 1.
Parameters:
bsf [Count]
bsr
Edit online
(Deprecated: -o bsr) This subcommand backward spaces Count records. An optional count can be specified. The default is 1.
Parameters:
bsr [Count]
channelcalibration
Edit online
This subcommand issues a self diagnostic command for drive servo channel calibration. The channel calibration returns PASSED or FAILED regarding the result of the
command.
Parameters:
None
chgpart
Edit online
This subcommand changes the current active tape partition to a new partition specified by Number. Optionally, a Blockid can also be specified. If Blockid is omitted, the
tape is positioned at the start of the new partition. Otherwise, the tape is positioned at the Blockid specified.
density
Edit online
(Deprecated: -o gdn / -o rds) This subcommand issues the SCSI Report Density Support command for all supported media and for the current media loaded in the drive,
and displays the results. If the drive is not loaded, the current media density is not reported.
Parameters:
None
display
Edit online
(Deprecated: -o msg) This subcommand displays a message on the display panel of the tape device. Up to 16 characters can be used for the message. If the message is
longer than eight characters, the display alternates between the first eight characters and the remainder of the message.
Parameters:
erase
Edit online
(Deprecated: -o era) This subcommand writes EOD at the current position and erases the tape from EOD to the end of current partition.
Parameters:
[-short]
Note: The erase command triggers a long erase of the cartridge that sets EOD to the current position. Then, it writes the Data Set Separator (DSS) pattern from the new
EOD to the end of the current partition. This process overwrites any data that is on the cartridge after the current logical position. To remove the entire cartridge, the user
must remove all partitions (use the rmp command for LTO 5, TS1140, and newer drives). Then, issue the rewind command before the erase command.
Examples:
formattape
Edit online
Parameters:
fdp
This subcommand creates fdp (fixed data partitions) wrap wise. The default size for LTO 5 of partition 0 in this case is 1425 GB and the size of partition 1 is 37.5 GB. It also
works for TS1140 but the size depends on the used cartridge. Supported by LTO 5, TS1140, and later.
Parameters:
None
fdpl
Edit online
This subcommand creates fdp (fixed data partitions) longitudinal. The command is valid only for TS1140 and later drives and creates partitions 0 and 1 on the cartridge.
The size depends on the used cartridge.
Parameters:
None
fsf
Edit online
(Deprecated: -o fsf) This subcommand forward spaces count filemarks. The tape is positioned on the first block of the next file. An optional count can be specified. The
default is 1.
Parameters:
fsf [Count]
fsr
Edit online
(Deprecated: -o fsr) This subcommand forward spaces count records. An optional count can be specified. The default is 1.
Parameters:
fsr [Count]
getparms
Edit online
(Deprecated: -o parms / status / -o gpa) Get and show drive, media and driver parameters.
Parameters:
None
idp
Edit online
This subcommand creates initiator defined partitions (IDP) wrap wise on tape. The parameter pSize0 is used to specify the size of partition 0 and the parameter pSize1 is
used to specify the size of partition 1. One of pSize0 or pSize1 must have a value that is entered in hex matching 37.5 * n with (1 <= n <= 38) to specify the wanted size of
that partition. The other parameter of pSize0 or pSize1 must have the value 0xFFFF to specify that the remaining capacity is used for that partition. If 0xFFFF is not used
for one of the parameters, pSize0 or pSize1, the drive might reject the command | unless pSize0 and pSize1 exactly match predefined allowable values.
For TS1140 and later drives (not LTO), the parameters pSize2 and pSize3 are valid and they follow the same rules as described earlier.
Parameters:
Example Call:
idpl
Edit online
This subcommand creates initiator defined partitions (IDP) longitudinal wise on tape. The parameter pSize0 is used to specify the size of partition 0 and the parameter
pSize1 is used to specify the size of partition 1. One of pSize0 or pSize1 must have a value that is entered in hex matching 37.5 * n with (1 <= n <= 38) to specify the
wanted size of that partition. The other parameter of pSize0 or pSize1 must have the value 0xFFFF to specify that the remaining capacity is used for that partition. If
0xFFFF is not used for one of the parameters, pSize0 or pSize1, the drive might reject the command | unless pSize0 and pSize1 exactly match predefined allowable values.
For TS1140 and later drives (not LTO), the parameters pSize2 and pSize3 are valid and they follow the same rules as described earlier.
For example: If you want a 37.5 GB partition (the minimum size partition) in partition 0 and the remainder in partition 1, then set pSize 0 to 0x26 and pSize1 to 0xFFFF.
This action results in a volume with a 37.5 GB sized partition 0 and a 1425 GB sized partition 1.
Parameters:
Example Call:
list
Edit online
This subcommand displays the content of a tape. The output lists filemarks and the size of each record found on the tape until the end of data is reached. The output that
is generated from this subcommand can be large depending on the amount of data on the tape and must usually be redirected to a file.
Parameters:
load
Edit online
(Deprecated: -o lod) This subcommand issues a SCSI Load command to load a tape. The subcommand loops all subsequent subcommands continuously or a number of
times if the Count parameter is specified. Also refer to the sleep subcommand.
Parameters:
logsense
Edit online
Parameters:
None
qrypar | qrypart
Edit online
Parameters:
None
qrylbp
Edit online
Parameters:
None
qrymon | qrymediaoptimizationneeded
Edit online
Issuing the qrymon command prompts ITDT to run a query on the media auxiliary memory (MAM) of the cartridge and check whether media optimization is needed.
Parameters:
None
qrymov | qrymediaoptimizationversion
Edit online
Issuing the qrymov command prompts ITDT to run a query on the media auxiliary memory (MAM) of the cartridge and display the version of media optimization.
Parameters:
None
qrypos
Edit online
Parameters:
None
qrytcpip
Edit online
This subcommand outputs the current drive TCP/IP configuration. Only supported with LTO 5, TS1140, and later drives. Outputs adapter and TCP/IP address information
for IPv4 and IPv6 with address, port and subnet mask. For example:
Parameters:
None
qrytemp
Edit online
Reads the thermal sensor values of a tape drive and writes the following output:
Parameters:
None
read
Edit online
This subcommand reads a file, or a specified number of records, from the tape to the destination file name specified with the -d flag. If the optional count parameter is
used, only the number of records that are specified with the -c flag are read unless a filemark is encountered before the number of specified records. If the count
parameter is not used, all records up to the next filemark on tape are read.
Parameters:
readattr
Edit online
This subcommand reads a Medium Auxiliary Memory (MAM) attribute from a cartridge to the destination file name that is specified with the -d flag. The partition
parameter -p is a number in the range 0 - 3. The attribute parameter -a is the hexadecimal value of the identifier. All three parameters are required.
Parameters:
resetdrive
Edit online
This subcommand issues a Send Diagnostic command (Reset Drive subcommand) to reset the device.
Parameters:
None
rmp
Edit online
Remove partitioning.
Parameters:
runtimeinfo | qryruntimeinfo
Edit online
This subcommand is used to query the dynamic runtime information. Dynamic runtime information allows an initiator to set dynamic runtime attributes (DRA) about itself
into a device server. The device server then associates those attributes to the I_T_L nexus and uses the information and associations for enhanced data collection and
debugging.
Parameters:
None
rewind
Edit online
Parameters:
None
rtest
Edit online
(Deprecated: -o rea) This subcommand runs a read test by reading a random data pattern from the tape and verifying that it matches the written data. The rtest
subcommand can be used after the wtest subcommand to verify the data. An optional block size, count, and repetition can be specified with the -b, -c, and -r flags,
respectively. If the block size is fixed, then the count specifies the number of blocks to read on each repetition. If the block size is zero (variable), then the count specifies
the number of bytes to read on each repetition. The default is a block size of 10240, a count of 20 blocks, and a repetition of 1.
Parameters:
rwtest
Edit online
This subcommand runs a read and write test by writing a random data pattern on the tape, reading it, and verifying that it matches the written data. An optional block size,
count, and repetition can be specified with the -b, -c, and -r flags, respectively. If the block size is fixed, then the count specifies the number of blocks to write on each
repetition. A single transfer transmits (block size * count) bytes. The operation is rejected if the total amount exceeds the transfer size the system is capable of. If the
block size is zero (variable), then the count specifies the number of bytes to write on each repetition. The default is a block size of 10240 bytes, a count of 20 blocks, and a
repetition of 1.
In SCSI Generic mode, the actual transfer size equals to blocksize. In IBM Device Driver mode, the transfer size is blocksize * blocks per read/write. In either case, the
blocksize must be equal to or less than the maximum Host Bus Adapter supported transfer size. The maximum supported transfer size for SCSI Generic is 1048576 Bytes
and for IBM Device Driver is 500 MB.
Parameters:
sdp
Edit online
Parameters:
sdpl
Edit online
Parameters:
sdpl count
For TS1140 and later drives values 0 and 1 are valid.
Using the value 0 as the parameter creates partition 0 only
and the value 1 as the parameter creates partitions 0 and 1.
The sizes of the partitions depends on the cartridge
used in drive.
seod
Edit online
Parameters:
None
setparm
Edit online
(Deprecated: -o spa / volid / compress / nocompress / sili / nosili / autoload / noautoload / retain / noretain)
ITDT-SE uses the new setparm option that corresponds to the current interactive mode options.
Supported platforms: All, but only a subset of the parameters is supported by the platform's device drivers.
Table 1. Supported platforms
Linux Windows AIX Solaris HP-UX
setparm autoload X
setparm autodump X
setparm blocksize X X X X X
setparm buffering X X X X
setparm capacity X X3 X X X
setparm compression X X X X X
setparm datasafemode¹ X X X X X
setparm immediate X X X X
setparm readpastfilemark X
setparm recordspacemode X
setparm sili X X X
setparm simmim X
setparm skipsync² X X X X X
1. The datasafemode can be set to YES or NO when no cartridge is loaded. When a cartridge is loaded, the datasafemode can be set only to YES.
2. Depending on the support of the device.
3. Only supported by 3592.
setpos
Edit online
(Deprecated: -o spo / asf) This subcommand issues the SCSI Locate command to the device to set the tape position. If the optional Blockid parameter is specified, the
tape position is set to the Blockid. Otherwise, if the Blockid parameter is omitted, the tape position is set to the last position saved by using the qrypos subcommand.
Parameters:
setpos [Blockid]
settcpip
Edit online
This subcommand sets the drive ethernet port TCP/IP settings for LTO 5, TS1140, and later drives. Either a static IPv4 or IPv6 address can be set or DHCP enabled.
Example DHCP:
IPv4 or IPv6 addresses are entered in the syntax a.b.c.d:/subnet_mask_length where a, b, c, and d are values with 1 to 3 digits. If the optional parameter
subnet_mask_length is not specified, the current setting is kept.
169.254.0.3 IPv4:
9.155.27.46 IPv4:
9.155.27.14
Parameters:
dhcp, address[/subnet_mask_length]
Note: With the current firmware level, the device can be reached (ping, FTP) only within the same subnet. For example, the sample is configured with a static IP address
(9.155.27.14) and DHCP enabled. The drive can be pinged only within the same subnet (9.155.27.xxx). Both IP addresses (9.155.27.14 and the DCP address
9.155.27.46) are active and can be used.
(Deprecated: -o syn) This subcommand synchronizes buffers/flushes the tape buffers to tape.
Parameters:
None
unload
Edit online
(Deprecated: -o off / offline / rewoffl) This subcommand rewinds and unloads the tape.
Parameters:
verlbp
Edit online
This subcommand verifies logical block protection written blocks. The verification length can be set with parameter value filemarks count or with EOD.
Parameters:
weof
Edit online
(Deprecated: -o eof / eof) These subcommands write count filemarks. An optional count can be specified. The default is 1.
Parameters:
weof [Count]
Note: The weof parameter [count] is optional, if it is not supplied, one filemark is written.
Supported platforms: All
write
Edit online
This subcommand writes the source file specified with the -s flag on the tape. In case the parameter 'raw' is specified, the blocksize specified in setparm (setparm
blocksize) is used instead of the default blocksize of 64 kB. The parameter count specifies the amount of blocks which should be written.
Parameters:
writeattr
Edit online
This subcommand writes a Medium Auxiliary Memory (MAM) attribute from a cartridge from the source file name that is specified with the -s flag. The partition parameter
-p is a number in the range 0 - 3. The attribute parameter -a is the hexadecimal value of the identifier. All three parameters are required.
wtest
Edit online
(Deprecated: -o wri) This subcommand runs a write test by writing a random data pattern on the tape. The rtest subcommand can be used after the wtest subcommand
to verify the data that was written. An optional block size, count, and repetition can be specified with the -b, -c, and -r flags, respectively. If the block size is fixed, the
count specifies the number of blocks to write on each repetition. If the block size is zero (variable), the count specifies the number of bytes to write on each repetition. The
default is a block size of 10240, a count of 20 blocks, and a repetition of 1.
Parameters:
audit
Edit online
(Deprecated: -o aud / -o ier) This subcommand with no parameters issues the SCSI Initialize Element Status command to the device. Using the optional parameters
Address and Count issues the SCSI Initialize Element Status With Range command to the device. The Address parameter specifies the starting element address and the
Count parameter, if used, specifies the number of elements to initialize. If Count is omitted, it defaults to 1.
Parameters:
cartridgelocation
Edit online
This subcommand with no parameters issues the SCSI Read Element Status command to the device to report all slots with the cartridge location information. Using the
optional parameters Slot and Count issues the SCSI Read Element Status to the device for a specific starting Slot address and optionally the Count specifies the number of
slots to return. If Count is omitted, it defaults to 1.
Parameters:
elementinfo
Edit online
(Deprecated: -o ele) This subcommand displays element information (number and address) of each element type.
Parameters:
None
exchange
Edit online
(Deprecated: -o exh) This subcommand issues the SCSI Exchange Medium command to the device by using the Source, Dest1, and Dest2 addresses specified. This
command runs the equivalent function of two Move Medium commands. The first moves the cartridge from the element address that is specified by the Dest1 parameter
to the element address specified by the Dest2 parameter. The second moves the cartridge from the element address that is specified by the Source parameter to the
element address specified by the Dest1 parameter.
Parameters:
inventory
Edit online
(Deprecated: -o inv) This subcommand with no parameters issues the SCSI Read Element Status command for each element type and displays the element status
information. If the optional -i parameter is used, then only the import/export element status information is returned. If the optional -v parameter is used, then only the
element status information for the specified Volid if found is returned.
Parameters:
librarymediaoptimization
Edit online
Starting with LTO-9 the LTO tape drive will perform a media characterization/optimization process for each initially loaded cartridge.
Regarding the longer lasting optimization time, cartridges should be optimized proactively in the target environment.
The%librarymediaoptimization; subcommand for medium changers offers the option to identify uninitialized cartridges in a logical tape library and load cartridges
in the desired tape drive(s) for optimization.
This subcommand with no parameters determines all tape drives and storage slots available in a logical tape library and use those for media optimization.
With the optional -start number parameter, the first storage element address can be specified used for and with optional parameter -slots numberofslots, the numbers of
slots can be limited.
The optional parameter-drives numberofdrives specifies the numbers of drives and with the optional parameter -drivelist identifiers, a defined list of drives is used -
identifiers is a comma separated list containing the drive element address or the drive serial number.
Parameters:
move
Edit online
(Deprecated: -o mov) This subcommand issues the SCSI Move Medium command by using the source and destination addresses specified. The element addresses can be
obtained with the elementinfo subcommand.
Parameters:
position
Edit online
(Deprecated: -o pos) This subcommand issues the SCSI Position to Element command by using the destination specified.
Parameters:
position Dest
(Deprecated: -o sdp) This subcommand forces a dump of the tape drive and stores the dumps before and after the force dump in the ITDT-SE output folder with the ITDT-
SE naming convention (serialnumber.a.gz and serialnumber.b.gz).
Parameters:
None
ekmtest
Edit online
Parameters:
None
encryption
Edit online
Query tape drive encryption settings and display the encryption state.
Parameters:
None
ucode
Edit online
(Deprecated: -o dmc) This subcommand downloads microcode to the device. The Filename is a file that contains the ucode.
The TS4300 (3555) tape library does not support code update with SCSI commands. ITDT integrated RESTFul API functions to support code update by using the HTTPS
connection of the library. The process is similar to the regular code update sequence, but in addition the user must enter credentials during the code update sequence.
Parameters:
tapephcp
Edit online
Creates a physical copy of a tape cartridge. The created cartridge has the same physical layout and contents as the origin cartridge. The amount of transferred data and
the current data transfer rate is displayed every 3-5 minutes. Tapephcp is supported for LTO and 3592 tape drives and can therefore be used for data migration. A
tapephcp command that is issued to copy data from a 3592 drive to an LTO drive or from an LTO Gen 4 to an LTO Gen 3 works, if the amount of used data from the source
device is equal or less than the capacity of the destination device.
Parameters:
Source and destination can either a special device file name, or a tape image file name. The special device file format is identical to the format specified in chapter 3.19
parameter “-f device”.
Examples: Tape to Tape copy with the IBM® tape driver
To ensure maximum performance for tape to tape copy actions, tapephcp allocates a read buffer of 2500 MB (assuming the maximum system block size is 1 MB). If the
system does not provide this buffer, the operation is aborted with MEMORY ALLOCATION FAILED. The value for memory allocation can be changed with an integer value
for the parameter cqs (Command Queue Size). The cqs value must be multiplied with the maximum supported system blocksize to determine the size of memory that is
allocated by ITDT. Supported copy operations are from tape to tape, from image file to tape, and from tape to image file. On UNIX operating systems, a warning to check
the file size limit is shown before an image file is created, if the maximum file size is below 2 GB.
ltfsphcp
Edit online
Creates a physical copy of an LTFS formatted cartridge. Ltfsphcp is based on tapephcp. The LTFS specified parameters volumeuuid and VCI are adjusted during this copy
operation. The created cartridge has the same physical layout as the origin cartridge. Expect the volumeuuid to be identical to the contents of the two cartridges. The
amount of transferred data and the current data transfer rate is displayed every 3-5 minutes. When ltfsphcp is used with a non-LTFS formatted cartridge, the behavior of
ltfsphcp is identical to tapephcp.
Parameters:
Source and destination can either a special device file name, or a tape image file name. The special device file format is identical to the format specified in chapter 3.19
parameter “-f device”.
Examples:
To ensure maximum performance for tape to tape copy actions, ltfsphcp allocates a read buffer of 2500 MB (assuming the maximum system block size is 1 MB). If the
system does not provide this buffer, the operation is aborted with MEMORY ALLOCATION FAILED. The value for memory allocation can be changed with an integer value
for the parameter cqs (Command Queue Size). The cqs value must be multiplied with the maximum supported system blocksize to determine the size of memory that is
allocated by ITDT. Supported copy operations are from tape to tape, from image file to tape, and from tape to image file. On UNIX operating systems, a warning to check
the file size limit is shown before an image file is created, if the maximum file size is below 2 GB.
For LTFS formatted cartridges, the volume identifier can be changed for a physical target with the parameter VOL1. The value must be alphanumeric with a minimum of 1
and a maximum of 6 characters.
verify
Edit online
Verifies the physical contents of two cartridges. The physical data layout and the binary data are compared.
Parameters:
Source and destination can either a special device file name, or a tape image file name. The special device file format is identical to the format specified in chapter 3.19
parameter -f.
Examples:
devicestatistics
Edit online
This command collects relevant device parameters from several log pages and inquiry data and prints out in a table.
checkltfsreadiness
Edit online
The LTFS Readiness Check analyzes the Operating System and tape drive environment to ensure that the IBM® Linear Tape file system can be installed. This test checks
the Operating System version, the tape device driver version, the tape drive firmware, and the LTFS HBA requirements. LTFS Readiness Check requires an empty data
cartridge.
None
ltfsdefragmentation
Edit online
On an LTFS formatted cartridge, the physical data records for a single file can be fragmented across the entire media. When such a file is accessed, a long response time
might result. The tape drive must locate to different cartridge positions to retrieve the entire contents the file. If the first data records of a file are stored at the end of the
tape and the other records are stored at the beginning of the media, the tape drive must run several times intensive seek operations to fulfill the complete file retrieval.
This subcommand creates a copy of the cartridge with unfragmented content.
As an initial step, ITDT stores the complete content of the source tape media in a Tape Image file that is on an HDD. Using this Tape Image file and the ITDT image file
backend driver for LTFS, LTFS is able to mount the previously created Tape Image file as a read-only volume. As the final step, the data is defragmented by copying the
files from the mounted Tape Image file to the mounted destination cartridge. This algorithm avoids any seek operations on the physical tape device. The seek operations
are completed on the temporary ITDT image file that is on a hard disk. The source and destination tape device are accessed at maximum media speed. The
defragmentation of a cartridge can take up to 6 hours.
Parameters:
Prerequirements: IBM LTFS SDE Version 2.2 (Build 4700 or later) and sufficient free hard disk space for temporary Tape Image file
Example:
standardtest
Edit online
The Test function (Scan Menu Command [T]) checks if the tape device is defective and outputs a pass/fail result. This test requires a loaded cartridge.
Parameters:
standardtest [-forcedataoverwrite]
fullwrite
Edit online
The fullwrite command runs the ITDT full write test (Scan Menu Command [F]). Issuing a fullwrite command writes the entire cartridge with a given block size
either with compressible or incompressible data and output performance data. This test requires a loaded cartridge.
Parameters:
By using the optional parameters, such as -compressible, -incompressible, -1.5compressible, -2.5compressible, -5.0compressible and
-100compressible, a data pattern with a predefined compressible ratio could be selected.
Remember:
systemtest
Edit online
The System Test is a short test that runs the following actions.
Reveals system performance bottlenecks. Compressible data throughput values can reveal bandwidth limitations that are caused by the system or cabling or HBA.
Measures performance variations across the different block sizes to find the ideal block size for the system configuration.
systemtest [-forcedataoverwrite]
tapeusage
Edit online
Parameters:
None
hdp discover
Edit online
Discovers the HD-P system and presents the logical and physical HD-P environment. The logical map is an n x n representation of the libraries, where a “1” is the indicator
for a connection and a “-1” of no connection. In case the command is called without any device files, all attached TS3500/TS4500 are used.
Parameters:
hdp senderror
Edit online
Issues a Test Call Home function. In case the command is called without any device file, all attached TS3500/TS4500 are used.
Parameters:
hdp show
Edit online
Shows the extended HD-P Import Export Elements. In case the command is called without any device file, all attached TS3500/TS4500 are used.
Parameters:
The TS4500 supports a SCSI in band method for sending REST API commands and receiving HTTP responses that use SCSI Write Buffer and Read Buffer commands.
The method is called REST over SCSI or RoS, for short. ITDT handles the RoS calls.
Syntax:
Parameters:
Use ‘ros’ for prettified output, ‘rosraw’ for raw mode (no indents, line breaks, Unicode filtering)
For a detailed URL endpoint definition, refer to the TS4500 RESTful documentation: https://www.ibm.com/docs/en/ts4500-tape-library/1.8.0.3?topic=reference-rest-
over-scsi-api.
Example:
GET /v1/logs/[filename]/export
GET /v1/library/saveConfig
store the content in a file. The file name is printed at the end.
Examples:
Notes:
1. 1. The IBM® Tape Device Driver is sensitive to not ready conditions that can prevent the usage of RoS commands. For this reason, the generic operating system
driver is recommended with RoS. For details, see Generic Operating System driver with ITDT-SE.
2. The Microsoft Windows command prompt does not support a single quotation mark (') to send a string to an application. Every special character must be escaped.
Example:
The TS4300 REST API is a simple application planning interface (API) to manage the 3U scalable tape libraries remotely over an HTTPS interface. This API is requested
and needed for manufacturing and for automated test and monitoring systems.
Syntax:
Parameters:
https-address
Login credentials in JSON format
HTTP-Method: GET | PATCH | POST
url-endpoint
[JSON data]
https-address
The IP address of the library.
Admin Security
User Security
Service Security
The user/password that is used to log in. Additionally, for some product variants in case of service level login the service password (service_password) and the
administrator password (password) must be sent. In case the administrator password is not required the ‘service_password’ must be set through the normal password
field. Parameter:
'{"username":"administrator”,
"password":"password”
[“service_password”:””servicepassword”]}'
http-method
The method for a dedicated request: GET, PUT, POST
url-endpoint
Valid URLs in combination with the http method. If the parameter is required, it can be passed with ? and &.
For a detailed URL endpoint definition, refer to the TS4300 RESTful documentation:
https://www.ibm.com/support/knowledgecenter/STAKKZ/ts4300_kc/con_3U_REST_overview.html.
JSON data
Some commands need extra data in JSON format like ‘serialnumber change’.
Example:
Notes:
Deprecated commands
Edit online
The following is a list of commands that are currently available in this version of ITDT. However, in a future release the following commands and some alternate calls of the
Common Command Scripting set are no longer available and the scripts that contain these commands must be changed. The scripts that use the deprecated commands
General commands
-o dis / disablepath
-o ena / enablepath
fuser
kill
passthru
resetpath
Tape commands
bsfm
-o chk
fsfm
-o grs
-o gmi
qryinquiry
qrysense
-o ret
setblk
-o gds
getrecsize
setrecsize
-o dvc
mount
demount
fmrtape
-o fdp
reset
-o qmc
The script (load.drive.cmd) issues a mount/umount command to the specified library. If the drive is empty, a cartridge is moved from the first available storage slot to the
drive. If the drive contains a cartridge, the cartridge is moved to the previous storage location.
Requirements:
load-drive.cmd:
@ECHO OFF
IF [%1]==[] (
echo.
echo Usage load-drive.cmd drivername^|hbtl [drivenumber]
echo.
echo drivername is the drivername assigned by the IBM device driver
echo example:load-drive.cmd \\.\Changer0
echo.
echo hbtl is the associated SCSI address h=host, b=bus, T=target id and l=lun
echo example: load-drive.cmd "3 0 2 1"
echo.
goto :EOF
)
set driveNumber=1
IF not [%2]==[] set driveNumber=%2
echo Loading/Unload Cartridge Drive:%driveNumber%
:checkline
set name=%1 %2
if "%name%"=="Drive Address" (
set /a count+=1
set currentTag=%name%
set driveAddress=%3
)
if "%name%"=="Media Present" (
rem echo full drive addr:%driveAddress% slot addr:%slotAddress%
action:%action% source:%sourceAddress% Tag:%currentTag%
if "%name%"=="Source Element" (
if "%count%"=="%driveNumber%" if "%currentTag%"=="Drive Address"
if "%action%"=="unload" (
set destination=%5
)
)
if "%name%"=="Slot Address" (
set currentTag=%name%
set slotAddress=%4
)
GOTO:EOF
:moveMedium
echo %action% move media from %sourceAddress% to destination %destination%
itdt -f %~1 move %sourceAddress% %destination%
del inventory.txt
GOTO:EOF
The scripting commands idp, sdp, fdp, and qrypart are currently only supported by LTO 5, TS1140, and later drives.
When scripting, one must be aware of the following general deviations to the legacy tapeutil scripting command set.
The Verbose Mode parameter is ignored for the ITDT-SE implementation; instead always the full information is printed.
For some operations, the sense data length is limited to 32 bytes - this length is required by the ITDT test sequences.
The list command does not work on Linux® variants where the reported maximum SCSI transfer size is larger than the size the system can actually transfer.
Because ITDT-SE opens the device read/write by default in scripting mode, the WORM mode cannot be deactivated in scripting mode. Use the Tapeutil interactive mode
instead to deactivate the WORM mode.
15. setpos - logical versus physical position, only set logical position as on AIX
16. HPUX: -o gpo -t 1|2 --> parameter -t1|2 (logical, physical) is not supported.
17. density - output all information on all platforms
18. setparm (new) - work around the inability to set all parameters on all platforms except the undocumented HP-UX release
19. getparms (new) - retrieve all parameters on all platforms, independent of flag set
20. qryinquiry - output the same as on AIX
21. logsense - does not output header with device/serial/volid, example:
22. erase - does not work on i5/OS because of operating system limitation.
23. Using -w x parameter without the necessary open leads to a core at least on Solaris.
To install ITDT-GE on Windows, download the executable file install_ITDT_GE_<version>.exe on a directory of your choice.
ITDT-GE installer automatically uninstalls any previous version before the current one is installed.
For the graphical user interface (GUI), a minimum screen resolution of 1024*768 pixels is required.
To install ITDT-GE on Linux, download the executable file install_ITDT_GE_<version>.bin to a directory of your choice.
The ITDT-GE installer automatically uninstalls any previous version before the current one is installed.
For the graphical user interface (GUI) a minimum screen resolution of 1024*768 pixels is required. The supported Linux® operating systems for ITDT-GE are
Linux Distributions with Kernel 2.6, glibc 2.2.5 and later (64-bit x64).
It is recommended to not operate Security Enhanced Linux® (SELinux) in enforcing mode while ITDT-GE is running.
On Red Hat Enterprise Linux 4 and 5 and SuSE Enterprise Linux 10, starting the online help might cause an error message Problems opening link / Unable to
open web browser on {0}. Workarounds are to issue the commands
a) ln -s /usr/bin/firefox /usr/local/bin/mozilla
or
b) export MOZILLA_FIVE_HOME=/usr/lib/firefox<version>
Replace with the appropriate path to your installed Firefox version before ITDT-GE is started.
Gnome desktop
If you are using the Gnome desktop, be sure to log in to the desktop session as root to use ITDT-GE to prevent device access issues.
Linux GTK
ITDT-GE requires GTK3+ to run since version 9.4.0. On Linux systems with GTK2, ITDT can be installed or updated but does not start afterward.
On Microsoft Windows systems where the maximum transfer size is limited to less than 64 kB, the Dump and Firmware update operations do not work.
Performance issues
If you are using Adaptec SCSI Host Bus Adapters, ensure that you are using the latest Adaptec Host Bus Adapter Drivers instead of the drivers that are shipped with the
Windows operating system.
Command timeout
There is no instant operation termination upon SCSI command timeout. For example, when the SCSI cable is unplugged after POST A is started.
When a command timeout condition occurs, ITDT might still continue to run more operations (like unmounting the cartridge) instead of instantly terminating with a
timeout condition.
$ su -
$ /opt/ibm/itdt-ge/itdt-ge
The User Settings dialog box displays the first time that the program is run, allowing the entry of user specifications: User name, company name, output path, and log
level.
The Output Path defines the location where the test reports and dumps are saved. The Windows default output path is
or
C:\Users\<username>\.itdt-ge\output
where <username> is the Windows user login name. The Linux default output path is
/root/.itdt-ge/output
The Log Level must not be changed unless requested to do so by the IBM® Support Center. It is recommended that this information be provided to allow for further
analysis of test results.
Main menu ( 1 on Figure 3)- in upper left (File, Window, Help) The following main program menu items are available:
Test Lab ( 3 on Figure 3) - Located from center to right side (Contains running and previously run tests)
Status Information ( 4 on Figure 3) - Located below the Test Lab (Contains summary results of tests)
The following toolbar buttons for the device operations are available.
Click the Scan menu item in the Control Center to display the list of tape devices found. When the scan is complete, select one device in the Test Lab by clicking the
corresponding check box. Click the arrow next to the Scan menu item to add a device manually.
Test
Click the arrow next to the Test menu item to select an extended test.
Dump
Click the arrow next to the Dump menu item to select more log options.
Update
Click the Update menu item to start the firmware update. Click the arrow next to the Update menu item to select Online update options.
Config
Click the TCP/IP Port menu item to configure the TCP/IP port.
For each device on which the operation is started, a tab displays on the right panel (Test Lab area). The tab contains the operation information and status. Only one
operation can be run at a time with ITDT-GE. The benefit in using tabs even for the single operation mode is that you get a history of operations as for each consecutive
operation, a separate tab is opened.
Scan
Health Test
Configure TCP/IP Ports
Dump
Firmware Update
Firmware Update - check for updates
Encryption
Full Write
Tape Usage
System Test
Library Diagnostic Self-Test
Library Media Screening
LTFS Readiness Check
Manual Inspection Record Entry
Scan
IBM TS4300 Tape Library 299
Edit online
Figure 1. Scan
The scan function is used to discover all supported tape and library devices that are attached to the computer system. Then, they can be selected for the subsequent
ITDT-GE operations. The scan function also serves as a connection test that can be used to verify correct attachment of the devices.
Note: When Scan is pressed for the first time, a dialog box is displayed that warns the user to stop all backup jobs.
When the scan is finished, the device list is displayed in the Control Center area.
A scroll bar is available to show all the devices. When the device you want is displayed, select the device for test. Only one device can be selected.
Windows: \\.\tape0
Linux: /dev/IBMtape0
H1-B0-T3-L0 or 1 0 3 0
Partial Scan
Partial Scan is used instead of Scan in cases when only a particular HBA or target ID range is used for device-discovering. The scan starts at "First device to scan" and
checks for supported devices until "Last device to scan" is reached. Devices that are specified within "Exclude from scan" are skipped during the scan. If "First device to
scan", "Last device to scan", or "Exclude from Scan" is not specified, ITDT performs a regular scan.
Partial Scan supports the device name and HBTL addressing schema.
Windows: \\.\tape0
Linux: /dev/IBMtape0
H1-B0-T3-L0 or 1 0 3 0
Health Test
Edit online
Figure 1. Test
Attention:
1. The test functionality erases user data on the cartridge that is used for the test.
2. The test can take from 15 minutes up to 2 hours.
3. The test runs only on tape drives, not on autoloaders or libraries.
To start the Health Test function, it is recommended that a new or rarely used cartridge is used. Scaled (capacity-reduced) cartridges must not be used to test the device.
To test tape drives within a library, the library must be in online mode.
After the device is selected, start the Health Test function by selecting the Health Test menu item.
Note: It can take some time until the Health Test function stops.
Note: Information can be found in the .json/.blz files. See the Log files section ( 1 ).
The test sequence contains the following steps:
1. Initialize Drive
2. Read Thermal Sensor
3. Mount Medium
4. [Medium Qualification] – only if previous step indicated requirement
5. Load/Write/Unload/Read/Verify
6. POST A
7. Performance Test (run 2 times if first run failed with performance failure)
8. Unmount Medium
9. Read Thermal Sensor
For LTO 5, TS1140, and later drives, the ethernet port settings can be configured with the Configure TCP/IP Port command. The Configure TCP/IP Port command
displays the current settings:
After you click Apply, the new values are set and the updated values display.
Note: Because earlier drive generations do not have an ethernet port, the Configure TCP/IP Ports command is rejected for these devices with the following message:
Dump
Edit online
After the device you want to dump is selected, start the Dump function by selecting Dump > Dump from the actions toolbar.
When the dump process is run on a tape library or autoloader other than the 3584/TS3500/TS4500, the Dump function stores 1 log file in the output folder of the program
(*.blz). For the 3584/TS3500/TS4500, a dump file (*.a) is stored in the output folder. Both files start with the serial number of the device ( 1 ).
Note: When the Dump function is run for tape libraries or autoloaders other than the 3584/TS3500/TS4500, the log file contains Log Sense and Mode Sense pages only. A
Drive or 3584/TS3500/TS4500 dump contains more diagnostic information. ( 2 )
Firmware Update
The Firmware Update upgrades the firmware of tape drives and tape libraries.
Note: See supported operating systems for information on how to update the firmware on a TS4500 tape library.
The following site is available for the latest firmware files: http://www.ibm.com/storage/lto
The firmware update usually takes 3-5 minutes, but it can take up to 45 minutes for libraries.
Note: If ITDT-GE detects a FIPS-certified drive firmware, it shows a warning dialog message. Before you continue, ensure that you use a FIPS-certified firmware to update
the drive.
ITDT-GE can Check for Device Updates for IBM® tape drives and IBM tape libraries. You can choose to select either one device or all devices by selecting the
corresponding option from the drop down menu under Update in the ITDT Control Center.
The program connects to IBM FixCentral and identify updates for the devices. If the connection cannot be established or another problem occurred, the problem
description is shown at the bottom of "FixCentral" Test Tab.
In the sample above, the drive has two FixCentral components. Each component has several items; such as code files and textual meta information.
The code files (binary files) have a "+" in the icon to distinguish and can be downloaded either by double-clicking or by using the right mouse button. The text files (for
example, readme files) can be viewed in the same way. A separate Test Tab is opened and the information shown.
GREEN: the code level is newer than the one of the drive.
RED: the code level is older than the one of the drive.
BLUE: the code level is the same as the one of the drive.
For automation drives (drives in a library), both devices are used. A code level for an automation drive is directly linked to a code level of a library.
Figure 1. Encryption
Note: The test that is shown on the graphic was run on a non-encrypted device and is showing a failure.
The Encryption function is used to verify whether data on the cartridge is written encrypted. It reads both decrypted and raw data from the cartridge into two separate
files on disk. The user can then verify that the data differs to ensure that encryption worked.
The Encryption function is only supported on encryption enabled drives and requires an encryption infrastructure, including the Encryption Key Manager (EKM) to be
properly set up.
1. After the device you want to test is selected, start the encryption function by selecting Test > Encryption Verification from the actions toolbar.
2. ITDT-GE then shows the Encryption Verification screen. On this screen, the system requires the entry of the number of the start record and the amount of data (in
KB) to be read.
3. Enter the required values and click OK to start the encryption.
The Encryption function can be stopped by clicking Abort.
Note: It can take some time until the Encryption function stops.
Full Write
Edit online
The Full Write function writes the entire cartridge with a specified block size either with compressible or incompressible data and output performance data.
Attention:
1. The Full Write function erases data on the cartridge that is used for the test.
2. The Full Write function takes approximately 2 hours when incompressible data is written, less time for compressible data.
3. The Full Write function runs only on tape drives, not on autoloaders or libraries.
Demonstrate that the drive can write the full amount of data on a cartridge.
Reveal system performance bottlenecks.
Full Write runs the test with incompressible data first, then runs the test with compressible data. If no difference in overall performance is observed, a bandwidth
limitation might be caused by the system or cabling or HBA.
To run a full write on tape drives within a library, the library must be in online mode.
1. After the device you want to write to is selected, start the Full Write function by selecting Test > Full Write from the actions toolbar.
2. Click OK to start the full write.
3. ITDT-GE then shows the Full Write screen. If no cartridge is inserted, ITDT-GE prompts you to insert a cartridge. Either insert a cartridge and click OK or stop by
clicking Abort.
Note: If ITDT-GE detects data on the cartridge, it shows the following message.
4. The system prompts for entry of a transfer size between 16 KB and the maximum block size that is supported by the system. Maximum value is 512 KB. Select the
appropriate value for your system.
5. Select the type of data to write, either [C] Compressible or [I] Incompressible.
The full write can be stopped by clicking Abort.
Note: It can take some time until the full write actually stops.
"Compressible = Yes" means that the data written was just zeros so that the data can be compressed by the drive with a maximum compression ratio.
"Compressible = No" means that a data pattern was written that the drive almost cannot compress at all. If the compression ratio is 1, the drive was not able to
compress the data (equivalent to 1:1 compression ratio). If the compression ratio is 94.0, the drive was able to do 94:1 compression. It means that 94 bytes in the
original data was compressed to 1 byte on the medium. 100.0 means 100 bytes is compressed down to 1 byte on the medium.
If all write operations are finished, ITDT-GE shows the performance statistics for the selected block size that is written on the cartridge, in the Status Information
area. If an error occurred during the full write, data is only partially written.
Tape Usage
Edit online
The Tape Usage function retrieves statistical data and error counters from a cartridge.
1. After the device you want to test is selected, start the Tape Usage function by selecting Dump > Tape Usage Log from the actions toolbar.
System Test
Edit online
The System Test is a short test that runs the following tests:
Reveals system performance bottlenecks. Compressible data throughput values can reveal bandwidth limitations that are caused by the system or cabling or HBA.
Measures performance variations across the different block sizes to find the ideal block size for the system configuration.
The System Test runs only on tape drives, not on autoloaders or libraries. To run a System Test on tape drives within a library, the library must be in online mode.
After the device you want to test is selected, start the System Test function by selecting Test > System Test from the actions toolbar.
ITDT-GE then shows the System Test screen. If no cartridge is inserted, ITDT-GE prompts you to insert a cartridge. Either insert a cartridge and click OK or stop by clicking
Abort.
Note: If ITDT-GE detects data on the cartridge, it shows the following message -
Click Yes to continue the test if you are sure that data on the cartridge can be overwritten. If you are unsure, click No to stop the test.
1. System Test determines the amount of data to write for each supported blocksize (a percentage of the cartridge is written for each blocksize).
2. The test determines the maximum supported blocksize of the system.
3. System Test writes the amount of data with all supported block sizes in powers of two down to 64 KB (values of 16 KB and 32 KB are not tested in cases where the
capability of a system supports higher block sizes). It begins with the maximum supported blocksize that is detected before, first with incompressible, next with
compressible data. Then, it shows performance data and a progress screen.
4. At the end of the test, a summary information is shown.
The Library Self-Test starts and monitors the library-internal self-test. This test runs only on libraries and autoloaders, not on tape drives.
After the device you want to test is selected, start the Library Self-Test function by selecting Test > Library Diagnostic Self-Test from the actions toolbar.
At the end of the test, the results are shown in the Status Information area.
The Automated Library Media Screening test generates dumps for each drive and cartridge within a library. It runs only on libraries (except TS3500/TS4500) and auto-
loaders, not on tape drives.
First, the test tries to read dump files from each drive that is installed from the library. Then, you can select one drive for loading the cartridges.
The LTFS Readiness Check analyzes the Operating System and tape drive environment to ensure that the IBM® Linear Tape File system can be installed. For extended
information, refer to Check LTFS Readiness.
A manual inspection record can be generated if the device does not show in the device list. This test is intended for devices that are not recognized or have a technical
problem that cannot be determined by ITDT-GE.
If a tape drive cannot be identified by using a device scan, the user can manually create a test record for the drive. The system prompts the user to run the SCSI/FC Wrap
test for the drive (see the service manual for the drive). The results of the wrap test can be entered along with extra inspection information. The results are saved into
binary and text output files that have the same format as the output files generated by the test.
1. From the Main Program menu, select File > Manual Record.
2. Enter the required information to complete the items in the screen.
a. Enter the device serial number.
b. Enter the content of the Message Display.
c. Optionally, enter any information text.
3. After all information is entered, click OK.
The information is stored in a binary file (which can be used for further analysis), and in a human-readable text file. Both files are stored in the ITDT-GE output
folder.
With Copy and Migration Services, tape content can either be copied or moved
On UNIX operating systems, a warning to check the file size limit is shown before an image file is created, if the maximum file size is below 2 GB.
The tool offers different use cases like copying data or migrating data from one generation to another. That is, data can be copied from a Gen4 cartridge to a Gen5
cartridge. Even migration from an LTO to IBM® Enterprise Tape Systems is supported. For an LTFS environment, the data can be copied or moved with the LTFS Physical
copy that adjusts the LTFS parameter on the target to be unique. Such a copy can be used in the same LTFS environment as the source. To ensure maximum performance
for tape to tape copy actions, ITDT allocates a read buffer that calculates to 2500 multiplied by the maximum supported system blocksize. If the system does not provide
this buffer, the operation is aborted with MEMORY ALLOCATION FAILED. An infinite progress bar indicates the ongoing copy procedure. A dialog box confirms the
completion.
Verify
Verifies the physical contents of two cartridges. The physical data layout and the binary data are compared.
Usage
By opening the "Copy Services" perspective, the user can run a 'Scan...' to discover attached devices.
A cartridge can be loaded or unloaded by double-clicking or pressing the right mouse button on the drive that is used for the copy tasks. When a cartridge is loaded, the
cartridge Serial Number or the VOLSER in a library environment is shown. If a cartridge or an image file is selected on the left, it can be used as "Source" by pushing Select
Source. After the 'Source" is selected, the target can be chosen. To select the target, either a different cartridge in a different drive or the image file folder can be selected.
By pressing Select Target, the target is set on the right.
If the source and the target are selected, the Copy Services or a verification can be started regarding the used Mode: Tape Physical Copy, LTFS Physical Copy, or Verify.
ITDT-GE offers the opportunity to visualize the content of DUMP and ITDT log files (BLOB files).
Dump files can be retrieved with ITDT or any other tool that supports this function.
Dump files that are generated by ITDT have the suffix ".a" or ".b".
BLOB files are generated during the run of an ITDT test sequence, such as "Standard Test".
BLOB files have the suffix ".blz".
Both file types can be opened and visualized with ITDT-GE.
Two views are available for presenting the data - each at a separate panel.
The Event List shows the events of this file on the left side. An event is a group of information and consists of 1 to n Elements shown on the right. By selecting one
event list entry on the left, the corresponding data (event elements) is shown on the right.
The Report panel offers the opportunity to generate a sublist of the available 'Event List' entries.
After the initial startup, ITDT-GE shows three figures under the top menu. After the Tapeutil option is selected, the following page opens.
On the left, the Tapeutil Control Center tree contains all Tapeutil commands for tape drives and tape libraries.
The commands from the General Commands and Service Aid Commands categories are duplicated into the two sections (to make the GUI navigation easier). After one
category is expanded, the related commands open that allows users to select the command.
When the user presses Execute, the Results output is placed below the Parameter section:
The Open command has a Scan … button in the Parameter view. Pressing Scan... runs a scan on the host and shows the attached devices in the Result View at the bottom.
This information is helpful to identify the right Device Name for the open function field Device Name.
This screen layout stays within the Tapeutil perspective until the program is closed. Outputs of subsequent operations are added to the Results field. Commands that fail
are indicated with a red cross in the Status area. Commands that succeed are indicated with a green check mark. The status area can be cleared by pressing Clear.
General commands
Open
Close
Inquiry
Test Unit Ready
Reserve Device
Release Device
Request Sense
Log Sense
Mode Sense
Query Driver Version
Display All Paths
Rewind
Forward Space Filemarks
Backward Space Filemarks
Servo Channel Calibration
Forward Space Records
Backward Space Records
Space to End of Data
Read and Write Tests
Read or Write Files
Erase
Load Tape
Unload Tape
Write Filemarks
Synchronize Buffers
Query/Set Parameter
Query/Set Position
Query Encryption Status
Display Message
Display All Paths
Report Density Support
Test Encryption Path
Element Information
Position to Element
Element Inventory
Exchange Medium
Note: When a command is issued in Tapeutil mode for ITDT GE, Execute must be pressed before the action takes place.
Open
Close
Inquiry
Test Unit Ready
Reserve Device
Release Device
Request Sense
Log Sense
Mode Sense
Query Driver Version
Display All Paths
Rewind
Forward Space Filemarks
Backward Space Filemarks
Servo Channel Calibration
Forward Space Records
Backward Space Records
Space to End of Data
Read and Write Tests
Read or Write Files
Erase
Load Tape
Unload Tape
Write Filemarks
Synchronize Buffers
Query/Set Parameter
Query/Set Position
Query Encryption Status
Display Message
Report Density Support
Test Encryption Path
Element Information
Position to Element
Element Inventory
Exchange Medium
Move Medium
Initialize Element Status
Prevent/Allow Medium Removal
Initialize Element Status Range
Read Device IDs
Read Cartridge Location
Configure TCP/IP Ports
Dump/Force Dump/Dump
Firmware Update
Open
Edit online
Note: Always use the Read Only mode when you are working with write-protected media.
Close
Edit online
Inquiry
Edit online
When you select the Test Unit Ready (TUR) command, ITDT issues the Test Unit Ready ioctl command.
Reserve Device
Edit online
When you select the Reserve Device command, ITDT issues a reserve command for the device.
Release Device
Edit online
When you select the Release Device command, ITDT issues a release command for the device.
Request Sense
Edit online
Log Sense
Edit online
Mode Sense
Edit online
Rewind
Edit online
When you select the Rewind command, ITDT issues the ioctl rewind command for the device.
1. ITDT issues the self diagnostic command for drive servo channel calibration.
2. The channel calibration returns PASSED or FAILED regarding the result of the command.
When you select the Space to End of Data (EOD) command, ITDT issues the (extrinsic) ioctl command.
When you select the Read and Write Tests command, ITDT runs the following functions (Read and Write Test, Read Only Test, and Write Only Test). Three parameter
fields have default values already in them. Next, a Test menu that gives you the option of Read Data from Tape, Write Data to Tape, and Read/Write/Verify.
Note: The default is a block size of 10240 bytes, a count of 20 blocks, and a repetition of 1. If the block size is zero, variable mode is used. With a fixed block size, a data
amount of (block size * blocks) is transferred with a single operation. This operation might get rejected if the total amount exceeds the transfer size of the system.
In SCSI Generic mode, the actual transfer size equals to blocksize. In IBM Device Driver mode, the transfer size is blocksize * blocks per read/write. In either case, the
blocksize must be equal to or less than the maximum Host Bus Adapter supported transfer size. The maximum supported transfer size for SCSI Generic is 1048576 Bytes
and for IBM Device Driver is 500 MB.
When Read or Write Files is selected, a box under File Name: is where the path and name of the file is entered. Under that is a box named Number of records to read (0
for entire file). The default amount in the box is 100. Next, a menu bar under Test: gives you the choice of Read File from Tape or Write File to Tape. Once the Test is
selected, Browse appears next to the File Name box to allow browsing for the needed file. When you select the Read or Write Files command, ITDT runs the following
functions:
Read steps:
1. Prompts if to read a file from tape
2. You are prompted for destination file name
3. You are prompted for number of records to read (If you press Enter, the entire file is read.)
4. Prints the file name to be opened
5. Opens the file (r/w with large file support, 666 umask)
6. Issues Query Parameters ioctl command, if it fails, quit
7. Sets blocksize to maximum, variable blocksize mode
8. Calculates the number of blocks to read.
9. Prints number of records to read.
10. ITDT read from tape.
11. Writes to file, stop if data count is not equal to data count requested.
12. If more data to read, go to Step 10.
13. Prints statistics.
Write steps:
1. Prompts if to write a file to tape.
2. You are prompted for the source file name.
3. Prints the file name to be opened.
4. Opens the file (r/o with large file support).
5. Issues Query Parameters ioctl command, if it fails, quits.
6. Sets blocksize to maximum, variable blocksize mode
7. Prints write statement.
8. Reads from file.
9. Writes to tape, stop if data counts written is not equal to data count requested.
10. Prints statistics.
Erase
Edit online
When you select the Erase command, ITDT issues the (extrinsic) ioctl command.
Load Tape
Edit online
Unload Tape
Edit online
Write Filemarks
Edit online
When you select the Synchronize Buffers command, ITDT issues the ioctl command.
Query/Set Parameter
Edit online
Query/Set Position
Edit online
1. ITDT prints the current position and requests the new position.
Note: ITDT does not distinguish between logical and physical position. It shows the current position and queries for the one to set, then sets the new position.
2. Enter the block id for where the tape must go. This block id must be entered in decimal. When the tape is set, the block id is printed in decimal with hexadecimal in
parentheses.
3. ITDT issues the Set Position ioctl and returns the pass or fail results.
4. ITDT prints decoded logical position details.
5. ITDT issues Query Physical Position ioctl command.
6. ITDT prints decoded physical position details.
7. You are prompted for position to set (logical or physical) or to stop.
8. You are prompted for the block id in decimal or hexadecimal.
9. ITDT prints a summary.
10. ITDT issues the Set Position ioctl command.
11. Repeat steps 2 - 5.
Display Message
Edit online
1. ITDT provides Parameter boxes in which you can enter 1 or 2 messages up to 8 characters.
Note: Display Message works only on drives that have a display pane, the 3590 and 3592 drives.
2. In the Type: menu, select which message (0 or 1) you want shown and if you want it to flash. There is also an alternate (alt) selection that alternates between
messages.
3. ITDT issues the ioctl command.
4. ITDT prints the displayed message.
1. ITDT prints status message that server configuration and connections are tested.
2. ITDT issues the Encryption Diagnostics ioctl command, Ping Diag.
3. ITDT prints number of servers available or error message.
4. ITDT issues the Encryption Diagnostics ioctl command, Basic Encryption Diag.
5. ITDT prints completion code or error message.
6. ITDT issues the Encryption Diagnostics ioctl command, Full Encryption Diag.
7. ITDT prints completion code or error message.
Element Information
Edit online
Position to Element
Edit online
1. In the Parameter boxes, the Transport element address must be entered, in decimal (picker).
2. Insert the Destination element address in decimal.
3. ITDT issues the ioctl command.
Exchange Medium
Edit online
Move Medium
Edit online
1. Insert source element address into the Source element address box in Decimal.
2. Insert the first destination element address in decimal in the First destination element address box.
3. Insert the second destination element address in decimal in the Second destination element address box.
4. ITDT issues the ioctl command.
For LTO 5, TS1140, and later drives, the ethernet port settings can be configured with the Configure TCP/IP Port command. The Configure TCP/IP Port command
displays the current settings:
After you click Apply, the new values are set and the updated values display.
Note: Because earlier drive generations do not have an ethernet port, the Configure TCP/IP Ports command is rejected for these devices with the following message:
Dump/Force Dump/Dump
Edit online
Firmware Update
Edit online
When you select the Firmware Update command, browse to the microcode file to be used. ITDT runs the firmware update and displays progress status and result.
The following site is available for the latest firmware files: http://www.ibm.com/support/fixcentral/. Select System Storage > Tape Systems > Tape autoloaders and
libraries or Tape drives.
Before you start to use your devices for production work with your applications, or if you encounter difficulties with your devices, you might want to verify that the
hardware, connections, and device drivers are working together properly. Before you can do this verification, you must do the following procedure -
Platform-specific help
There is a problem determination section for each platform.
Microcode is computer software that is stored in nonvolatile storage on your tape device or library hardware. It controls the operation of your hardware. When your tape
device or library hardware was manufactured, a microcode load was installed and shipped with your device.
If you are having trouble with your hardware, IBM® service personnel ask what level of microcode you have on your hardware. If they believe that you need a new level of
microcode, they might instruct you to install a newer level of microcode on your hardware. They can provide you with updated microcode.
You can query the current level of microcode by issuing commands on the front panel of your hardware. Consult the appropriate hardware reference manual for specific
instructions on querying your microcode level.
If your device is connected to a host system that has device or library support, you can also query the last 4 digits of the current level of microcode with software. Refer to
IBM Tape Diagnostic Tool (ITDT). The unit must be powered On, configured properly, and ready. For information, refer to the appropriate chapter in this document (based
on the operating system/platform) for details on how to have the device ready.
The following instructions are a guide to install another version of microcode on a tape drive.
1. Ensure that the tape drive is connected to a host system and that the tape device driver is powered-On and configured properly with no tape cartridge in the drive.
Follow the instructions in Verifying correct attachment of your devices to ensure that the drive is configured properly and ready.
2. Open ITDT and follow the instructions for downloading microcode. These instructions are in both the SE and the GE versions. In SE, it is available in all sections;
scan menu under Firmware update, the tape utility (71) section, and the scripting (ucode) command.
Notices
Edit online
References in this publication to IBM® products, programs, or services do not imply that IBM intends to make these available in all countries (or regions) in which IBM
operates.
Any references to an IBM program or other IBM product in this publication is not intended to state or imply that only IBM’s program or other product may be used. Any
functionally equivalent program that does not infringe any of IBM’s intellectual property rights may be used instead of the IBM product. Evaluation and verification of
operation in conjunction with other products, except those expressly designed by IBM, is the user’s responsibility.
IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these
patents. You may send license inquiries, in writing, to:
For license inquiries regarding double-byte character set (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in
writing, to:
The following paragraph does not apply to the United Kingdom or any other country (or region) where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. Some states
(or regions) do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement cannot apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes are incorporated in
new editions of the publication. IBM may make improvements and/or changes in the products and/or programs described in this publication at any time without notice.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.
The ITDT-SE and ITDT-GE software uses Henry Spencer's regular expression library that is subject to the following copyright notice:
"Copyright 1992, 1993, 1994, 1997 Henry Spencer. All rights reserved. This software is not subject to any license of the American Telephone and Telegraph Company or
of the Regents of the University of California.
Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it, subject to the following restrictions:
1. The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it.
2. The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the
documentation.
3. Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must
appear in the documentation.
4. This notice cannot be removed or altered.
Trademarks
The following terms are trademarks of International Business Machines Corporation in the United States, other countries (or regions), or both:
AIX® IBMLink RS/6000® System z®
AIX 5L Magstar® S/390® Tivoli®
FICON® Micro Channel StorageSmart TotalStorage™
HyperFactor® Netfinity System i® Virtualization Engine
i5/OS POWER5 System p xSeries
iSeries ProtecTIER® System Storage® z9
IBM pSeries System x zSeries
Adobe and Acrobat are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
Intel, Itanium, and Pentium are trademarks of Intel Corporation in the United States, other countries (or regions), or both.
Java™ and all Java-based trademarks are trademarks of Oracle, Inc. in the United States, other countries, or both.
Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and Windows 2000 are trademarks of Microsoft Corporation in the United States, other countries (or regions), or both.
UNIX is a registered trademark of The Open Group in the United States and other countries (or regions).
Other company, product, and service names may be trademarks or service marks of others.
Visit the IBM Privacy Policy for additional information on this topic at https://www.ibm.com/privacy/details/us/en/.
Applicability
Personal use
You can reproduce these publications for your personal, noncommercial use provided that all proprietary notices are preserved. You cannot distribute, display, or make
derivative work of these publications, or any portion thereof, without the express consent of IBM.
Commercial use
You can reproduce, distribute, and display these publications solely within your enterprise provided that all proprietary notices are preserved. You cannot make derivative
works of these publications, or reproduce, distribute, or display these publications or any portion thereof outside your enterprise, without the express consent of IBM.
Rights
Except as expressly granted in this permission, no other permissions, licenses, or rights are granted, either express or implied, to the Publications or any information, data,
software or other intellectual property contained therein.
IBM reserves the right to withdraw the permissions that are granted herein whenever, in its discretion, the use of the publications is detrimental to its interest or as
determined by IBM, the above instructions are not being properly followed.
You cannot download, export, or reexport this information except in full compliance with all applicable laws and regulations, including all United States export laws and
regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A
PARTICULAR PURPOSE.
IBM trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other
product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available at http://www.ibm.com/legal/copytrade.shtml.
Introduction
These publications and URLs provide user information about writing for applications to interfaces for IBM® tape drives, medium changers, and library device drivers.
Common extended features
AIX tape and medium changer device driver
Linux tape and medium changer device driver
Windows tape device drivers-edit
Notices
How to send your comments
Your feedback is important in helping to provide the most accurate and highest quality information.
Terms and conditions for knowledge centers
Permissions for the use of these publications are granted subject to the following terms and conditions.
Programming Reference
Introduction
Common extended features
AIX tape and medium changer device driver
Linux tape and medium changer device driver
Windows tape device drivers-edit
More information
Introduction
Edit online
These publications and URLs provide user information about writing for applications to interfaces for IBM® tape drives, medium changers, and library device drivers.
Purpose
The IBM tape and medium changer device drivers are designed specifically to take advantage of the features that are provided by the IBM tape drives and medium
changer devices. The goal is to give applications access to the functions required for basic tape functions (such as backup and restore) and medium changer operations
(such as cartridge mount and unmount), and to the advanced functions needed by full tape management systems. Whenever possible, the driver is designed to take
advantage of the device features transparent to the application.
The most current information on hardware and software requirements for IBM tape and medium changer device drivers can be found in the individual platform readme
files or with the subsequent links.
Hardware requirements
The tape drivers and the IBM Tape Diagnostic Tool (ITDT) are developed to support various versions of different platforms. For the latest support, refer to the
Interoperation Center website - http://www.ibm.com/systems/support/storage/config/ssic/.
Note: A single Fibre Channel host bus adapter (HBA) for concurrent tape and disk operations is not recommended. Tape and disk devices require incompatible HBA
settings for reliable operation and optimal performance characteristics. Under stress conditions (high I/O rates for either tape, disk, or both) where disk and tape
subsystems share a common HBA, stability problems are observed. These issues are resolved by separating disk and tape I/O streams onto separate HBAs and by using
SAN zoning to minimize contention. IBM is focused on assuring server/storage configuration interoperability. It is strongly recommended that your overall implementation
plan includes provisions for separating disk and tape workloads.
For information about this issue, see the following Redbook, section 4.1.3 in http://www.redbooks.ibm.com/abstracts/sg246502.html?Open.
Software requirements
If you use a third-party application, consult with your application provider about the compatibility with IBM tape device drivers.
For detailed driver requirements for each operating system, refer to the appropriate chapter.
Related information
Reference material, including the Adobe pdf version of this publication, is available at http://www-01.ibm.com/support/docview.wss?uid=ssg1S7003032.
A companion publication that covers installation and user aspects for the device drivers is IBM Tape Device Drivers: Installation and Users Guide, GC27-2130-00, at
http://www-01.ibm.com/support/docview.wss?uid=ssg1S7002972.
AIX®
The following URL points to information about IBM System p (also known as pSeries) servers: http://www-1.ibm.com/servers/eserver/pseries.
Linux
The following URLs relate to Linux® distributions: http://www.redhat.com and http://www.suse.com.
Microsoft Windows
The following URL relates to Microsoft Windows systems: http://www.microsoft.com .
Additional information
The following publication contains information that is related to the IBM tape drive, medium changer, and library device drivers: American National Standards Institute
Small Computer System Interface X3T9.2/86-109 X3.180, X3B5/91-173C, X3B5/91-305, X3.131-199X Revision 10H, and X3T9.9/91-11 Revision 1.
Beginning with the TS1140 (JAG 4), TS2250, and TS2350 (LTO 5) generation of tape drives, functions are supported that previous generations of LTO and JAG tape drives
do not support. The device drivers provide ioctls that applications can use for these functions. Refer to the appropriate platform section for the specific ioctls and data
structures that are not included in this section.
Media Partitioning
Supported tape drives: LTO 5 and JAG 4 and later models
Verify Tape
Supported tape drives: LTO5 and JAG 2 and later models
Media partitioning
Edit online
There are two types of partitioning: Wrap-wise partitioning and Longitudinal partitioning (maximum 2 partitions).
The ioctls the device drivers provide for tape partitioning are
Query Partition
The Query Partition ioctl returns the partition information for the current media in the tape drive. It also returns the current active partition the tape drive is using for the
media.
Note: If the Create Partition ioctl fails, then the Query Partition ioctl does not return the correct partition information. To get the correct information, the application must
unload and reload the tape again.
Create Partition
The Create Partition ioctl is used to format the current media in the tape driver to either 1 or 2 partitions. When two partitions are created, the FDP, SDP, or IDP partition
type is specified by the application. The tape must be positioned at the beginning of tape (partition 0 logical block id 0) before this ioctl is used or the ioctl fails.
If the number_of_partitions field to create in the ioctl structure is one partition, all other fields are ignored and not used. The tape drive formats the media by using its
default partitioning type and size for a single partition.
When the type field in the ioctl structure is set to either FDP or SDP, the size_unit and size fields in the ioctl structure are not used. When the type field in the ioctl structure
is set to IDP, the size_unit and size fields are used to specify the size for each partition. One of the two partition sizes for either partition 0 or 1 must be specified as 0xFFFF
to use the remaining capacity. The other partition is created by using the size_unit and size field for the partition.
The Set Active Partition ioctl is used to position the tape drive to a specific partition. It becomes the current active partition for subsequent commands and a specific
logical bock id in the partition. To position to the beginning of the partition, the logical_block_id field in the ioctl structure must be set to 0.
Data safe (append-only) mode sets the drive into a logical WORM mode so any non-WORM tape when loaded is handled similarly to a WORM tape. After data or filemarks
are written to the tape, it cannot normally be overwritten. New data or filemarks can be appended only at the end of previously written data. Data safe mode applies only
to drive operation. When a non-WORM tape is unloaded, it does not change and is still a non-WORM tape.
Conditions exist when the drive is in data safe mode an application might want to explicitly overwrite previously written data by issuing a write, write filemark, or erase
command. These commands are referred to as write type commands. An application might also want to explicitly partition the tape with the Create Partition ioctl that
issues a format command. The drive supports a new Allow Data Overwrite SCSI command for this purpose.
The ioctls that the device drivers provide for data safe mode are
All platform device drivers except Windows added a data safe mode parameter to existing ioctls that are used to query or set tape drive parameters. The Windows device
driver added two new ioctls to query or set data safe mode.
A query ioctl returns the current drive mode, either data safe mode off (normal mode) or data safe mode on. A set ioctl sets the drive to either data safe mode off (normal
mode) or data safe mode on. Data safe mode can be set whether a tape is loaded in the drive or not. Data safe mode can be set back to normal mode only when a tape is
not currently loaded in the drive.
The Allow Data Overwrite ioctl is used to allow previously written data on the tape to be overwritten when data safe mode is enabled on the drive, for a subsequent write
type command, or to allow a format command with the Create Partition ioctl.
To allow a subsequent write type command, the tape position must be set to the correct partition and logical block address within the partition before the ioctl is used.
The partition_number and logical_block_id fields in the ioctl structure must be set to that partition and logical block ID. The allow_format_overwrite field in the ioctl
structure must be set to 0.
To allow a subsequent Create Partition ioctl to format the tape, the allow_format_overwrite field in the ioctl structure must be set to 1. The partition_number and
logical_block_id fields are not used. But, the tape must be at the beginning of tape (partition 0 logical block id 0) before the Create Partition ioctl is issued.
LTO 5 and later supports new forms of the existing Read Position command in addition to the current short form. The short form continues to return 4-byte fields in 20
bytes of return data. The long form returns 8-byte fields in 32 bytes of return data with the current position information for the logical block id and logical filemark. The
extended form returns 8-byte fields in 32 bytes of return data with the current position information for the logical block id and buffer status. The format of return data in
the Read Position command is specified by using a service action field in the Read Position SCSI CDB.
LTO 5 and later also supports the Locate(16) command that uses 8-byte fields. This command can either position the tape to a logical block id or a logical filemark by
setting the dest_type field in the Locate(16) SCSI CDB. After the locate command completes, the tape is positioned at the BOP side of the tape.
The Read Tape Position ioctl returns the Read Position command data in either the short, long, or extended form. The form to be returned is specified by setting the
data_format field in the ioctl structure.
The Set Tape Position ioctl issues a Locate(16) command to position the tape in the current active partition to either a logical block id or logical filemark. The
logical_id_type field in the ioctl structure specifies either a logical block or logical filemark.
The lbp_capable field indicates that the drive has the logical block protection (LBP) capability or not. The lbp_method field is shown if LBP is enabled and what the
protection method is. The LBP information length is shown in the lbp_info_length field. The fields of lbp_w, lbp_r, and rbdp present that the protection information
is included in write, read, or recover buffer data. The rbdp field is not supported for the LTO drive.
The lbp_capable field is ignored in this ioctl by the tape driver. If the lbp_method field is 0 (LBP_DISABLE), all other fields are ignored and not used. When the
lbp_method field is set to a valid non-zero method, all other fields are used to specify the setup for LBP.
With the tape parameter, the application is allowed to request the tape drive to create a zone that is called the programmable early warning zone (PEWZ) in front of Early
Warning (EW).
This parameter establishes the programmable early warning zone size. It is a 2-byte numerical value that specifies how many MB before the standard end-of-medium
early warning zone to place the programmable early warning indicator. If the value is set to a positive integer, a user application is warned that the tape is running out of
space when the tape head reaches the PEW location. If pew is set to 0, then there is no early warning zone and the user is notified only at the standard early warning
location.
This ioctl of the SIOC_LOG_SENSE10_PAGE issues a Log Sense(10) command and returns log sense data for a specific page and subpage. This ioctl command is
enhanced to add a subpage variable from the log sense page. It returns a log sense page or subpage from the device. The wanted page is selected by specifying the
page_code or subpage_code in the structure. Optionally, a specific parm pointer, also known as a parm code, and the number of parameter bytes can be specified with the
command.
Verify Tape
Edit online
The ioctl of VERIFY_DATA_TAPE issues the VERIFY command to cause data to be read from the tape and passed through the drive’s error detection and correction
hardware. This action determines whether data can be recovered from the tape. Also, whether the protection information is present and validates correctly on logical
block on the medium. The driver returns a failure or success signal if the VERIFY SCSI command is completed in a Good SCSI status. The Verify command is supported
on all LTO libraries. Verify to EOD (ETD) or verify by filemark (VBF) is supported on drives that support Logical Block Protection (LBP).
The 3592 E07 implements a function that is called Recommended Access Order. This function provides the capability to improve multiple block recall and retrieval times.
It provides an application with the optimized order in which a list of blocks must be recalled to minimize the required total time period.
An application uses the GRAO command to request that the drive generate a recommended access order for the User Data Segments that are sent in this command. After
a GRAO command completes, use the RRAO command to receive the results.
QUERY_RAO_INFO IOCTL
The IOCTL queries the maximum number and size of User Data Segments (UDS) that are supported from tape drive and driver for the wanted uds_type: with or without
geometry, the geometry can be used to build a representation of the physical layout of the UDS on tape.. The application calls this IOCTL before the GENERATE_RAO and
RECEIVE_RAO IOCTLs are issued. The return in this IOCTL is to be used by the application to limit the number of UDS requested in calls to the GENERATE_RAO IOCTL.
GENERATE_RAO
The IOCTL is called to send a GRAO list (UDS's descriptors list) to request the drive to generate a Recommending Access Order list. The process method to create a RAO
list is either 1 or 2. 1 does not reorder the UDS's list, but does calculate the estimated locate time for each UDS in the list, and 2 reorders the UDS's list and calculates the
estimated locate time for each UDS in its resultant position. The type of UDS is either with or without the geometry. The uds_number must be not larger than
max_host_uds_number returned in the QUERY_RAO_INFO IOCTL. A UDS descriptor has a name, partition number and beginning and ending logical object identifiers.
RECEIVE_RAO
After a GENERATE_RAO IOCTL is completed, the application calls the RECEIVE_RAO IOCTL to receive a recommended access order of UDS from the drive. The
application must allocate to the buffer an accurate size to receive the list.
The grao list, for the generate_rao and receive_rao structures, is in the following format when lists are sent or received. The structures for the headers and UDS segments
are not provided by the device driver but is the responsibility of the calling application. It is defined in the IBM Enterprise Tape System 3592 SCSI Reference.
-- List Header
-- UDS Segment Descriptor (first)
......
-- UDS Segment Descriptor (last)
This chapter provides an introduction to the IBM® AIX® Enhanced Tape and Medium Changer Device Driver (Atape) programming interface to IBM TotalStorage™ (formally
Magstar®) and System Storage® tape and medium changer devices.
Open
This entry point is driven by open, openx, and creat subroutines.
Write
This entry point is driven by write, writev, writex, and writevx subroutines.
Read
This entry point is driven by read, readv, readx, and readvx subroutines.
Close
This entry point is driven explicitly by the close subroutine and implicitly by the operating system at program termination.
ioctl
This entry point provides a set of tape and SCSI-specific functions. It allows AIX applications to access and control the features and attributes of the tape device
programmatically. For the medium changer devices, it also provides a set of medium changer functions that is accessed through the tape device special files or
independently through an extra special file for the medium changer only.
Dump
This entry point allows the use of the AIX dump facility with the driver.
The standard set of AIX device management commands is available. The chdev, rmdev, mkdev, and lsdev commands are used to bring the device online or change the
attributes that determine the status of the tape device.
The AIX® tape and medium changer device driver provides the following AIX entry points for the medium changer devices.
Open
This entry point is driven by open and openx subroutines.
Close
This entry point is driven explicitly by the close subroutine and implicitly by the operating system at program termination.
IOCTL
This entry point provides a set of medium changer and SCSI-specific functions. It allows AIX applications to access and control the features and attributes of the
tape system robotic device programmatically.
The standard set of AIX device management commands is available. The chdev, rmdev, mkdev, and lsdev commands are used to bring the device online or change the
attributes that determine the status of the tape system robotic device.
Special files
Edit online
After the driver is installed and a tape device is configured and made available for use, access is provided through the special files. These special files, which consist of the
standard AIX® special files for tape devices (with other files unique to the Atape driver), are in the /dev directory.
Each tape device has a set of special files that provides access to the same physical drive but to different types of functions. In addition to the tape special files, a special
file is provided to tape devices that allow access to the medium changer as a separate device. See Table 1. The asterisk (*) represents a number that is assigned to a
particular device (such as rmt0).
1. The Rewind on Close special files for the Ultrium tape drives write filemarks under certain conditions before rewinding. See Opening the special file for I/O.
2. The Retension on Open special files rewind the tape on open only. Retensioning is not completed because these tape products run the retension operation
automatically when needed.
3. The Bytes per Inch options are ignored for the tape devices that this driver supports. The density selection is automatic.
4. The rmt*.10 file bypasses normal close processing, and the tape is left at the current position.
5. The rmt*.null file is a pseudo device similar to the /dev/null AIX® special file. The IOCTL calls can be issued to this file without a real device that is attached to it, and
the device driver returns a successful completion. Read and write system calls return the requested number of bytes. This file can be used for application
development or debugging problems.
6. The rmt*.smc file can be opened independently of the other tape special files.
For tape drives with attached SCSI medium changer devices, the rmt*.smc special file provides a separate path for issuing commands to the medium changer. When this
special file is opened, the application can view the medium changer as a separate SCSI device.
This special file and the rmt* special file can be opened at the same time. The file descriptor that results from opening the rmt*.smc special file does not support the
following operations.
Read
Write
Open in diagnostic mode
Commands that are designed for a tape device
If a tape drive has an attached SCSI medium changer device, all operations (including the medium changer operations) are supported through the interface to the rmt*
special file.
After the driver is installed and a medium changer device is configured and made available for use, access to the robotic device is provided through the smc* special file in
the /dev directory.
Table 1 shows the attributes of the special file. The asterisk (*) represents a number that is assigned to a particular device (such as smc0). The term smc is used for a SCSI
medium changer device. The smc* special file provides a path for issuing commands to control the medium changer robotic device.
Read
Write
Commands that are designed for a tape device
Several options are available when a file is opened for access. These options, which are known as O_FLAGS, affect the characteristics of the opened tape device or the
result of the open operation. The Open command is
tapefd=open("/dev/rmt0",O_FLAGS);
smcfd=open("/dev/smc0",O_FLAGS);
O_RDONLY
This flag allows only operations that do not change the content of the tape. The flag is ignored if it is used to open the smc special files.
O_RDWR
This flag allows complete access to the tape. The flag is ignored if it is used to open the smc special files.
O_WRONLY
This flag does not allow the tape to be read. All other operations are allowed. The flag is ignored if it is used to open the smc special files.
O_APPEND
When the tape drive is opened with this flag, the driver rewinds the tape. Then, it seeks to the first two consecutive filemarks, and places the initial tape position
between them. This status is the same if the tape was previously opened with a No Rewind on Close special file. This process can take several minutes for a full
tape. The flag is ignored if it is used to open the smc special files.
This flag must be used with the O_WRONLY flag to append data to the end of the current data on the tape. The O_RDONLY or O_RDWR flag is illegal in combination
with the O_APPEND flag.
Note: This flag cannot be used with the Retension on Open special files, such as rmx.2.
If the open system call fails, the errno value contains the error code. See Return codes for a description of the errno values.
An extended open operation is also supported on the device. This operation allows special types of processing during the opening and subsequent closing of the tape
device. The Extended Open command is
tapefd=openx("/dev/rmt0",O_FLAGS,NULL,E_FLAGS);
smcfd=openx("/dev/smc0",O_FLAGS,NULL,E_FLAGS);
The O_FLAGS parameter provides the same options that are described in Opening the special file for I/O. The third parameter is always NULL. The E_FLAGS parameter
provides the extended options. The E_FLAGS values can be combined during an open operation or they can be used with an OR operation.
SC_RETAIN_RESERVATION
This flag prevents the SCSI Release command from being sent during a close operation.
SC_FORCED_OPEN
The flag forces the release of any current reservation on the device by an initiator. The reservation can either be a SCSI Reserve or SCSI Persistent Reserve.
SC_KILL_OPEN
This flag kills all currently open processes and then exits the open with errno EINPROGRESS returned.
SC_PR_SHARED_REGISTER
This flag overrides the configuration reservation type attribute whether it was set to reserve_6 or persistent. It sets the device driver to use Persistent Reserve
while the device is open until closed. The configuration reservation type attribute is not changed and the next open without using this flag uses the configuration
reservation type. The device driver also registers the host reservation key on the device. This flag can be used with the other extended flags.
SC_DIAGNOSTIC
The device is opened in diagnostic mode, and no SCSI commands are sent to the device during an open operation or a close operation. All operations (such as
reserve and mode select) must be processed by the application.
SC_NO_RESERVE
This flag prevents the SCSI Reserve command from being sent during an open operation.
SC_PASSTHRU
No SCSI commands are sent to the device during an open operation or a close operation. All operations (such as reserve the device, release the device, and set the
tape parameters) must be processed explicitly by the application. This flag is the same as the SC_DIAGNOSTIC flag. The exception is that a SCSI Test Unit Unit
Ready command is issued to the device during an open operation to clear any unit attentions.
SC_FEL
This flag turns on the forced error logging in the tape device for read and write operations.
SC_NO_ERRORLOG
This flag turns off the AIX® error logging for all read, write, or IOCTL operations.
SC_TMCP
This flag allows up to eight processes to concurrently open a device when the device is already open by another process. There is no restriction for medium changer
IOCTL commands that can be issued when this flag is used. However, for tape devices only a limited set of IOCTL commands can be issued. If an IOCTL command
cannot be used with this flag, then errno EINVAL is returned.
If another process already has the device open with this flag, the open fails, and the errno is set to EAGAIN.
If the open system call fails, the errno value contains the error code. See Return codes for a description of the errno values.
Several subroutines allow writing data to a tape. The basic write command is
The writev, writex, and writevx subroutines are also supported. Any values that are passed in the ext field with the extended write operation are ignored.
Several subroutines allow reading data from a tape. The basic read command is
The read operation returns the number of bytes read during the operation. It can be less than the value in numbytes. If the block size is fixed (block_size≠0), the numbytes
value must be a multiple of the block size. If the count is less than zero, the errno value contains the error code that is returned from the driver.
If the block size is variable, then the value that is specified in numbytes is read. If the blocks read are smaller than requested, the block is returned up to the maximum
size of one block. If the blocks read are greater than requested, an error occurs with the error set to ENOMEM.
Reading a filemark returns a value of zero and positions the tape after the filemark. Continuous reading (after EOM is reached) results in a value of zero and no further
change in the tape position.
For normal read operations, if the block size is set to variable (0) and the amount of data in a block on the tape is more than the number of bytes requested in the call, an
ENOMEM error is returned. An application can read fewer bytes without an error by using the readx or readvx subroutine and specifying the TAPE_SHORT_READ extended
parameter.
The TAPE_READ_REVERSE extended read parameter reads data from the tape in the reverse direction. The order of the data that is returned in the buffer for each block
that is read from the tape is the same as if it were read in the forward direction. However, the last block that is written is the first block in the buffer. This parameter can be
used with both fixed and variable block sizes. The TAPE_SHORT_READ extended parameter can be used with this parameter, if the block size is set to variable (0).
Use this parameter with the readx or readvx subroutine that specifies the TAPE_READ_REVERSE extended parameter.
Closing a special file is a simple process. The file descriptor that is returned by the Open command is used to close the command.
rc=close(tapefd);
rc=close(smcfd);
The return code from the close operation must be checked by the application. If the return code is not zero, the errno value is set during a close operation to indicate that a
problem occurred while the special file was closing. The close subroutine tries to run as many operations as possible even if there are failures during portions of the close
operation. If the device driver cannot terminate the file correctly with filemarks, it tries to close the connection. If the close operation fails, consider the device closed and
try another open operation to continue processing the tape. After a close failure, assume that either the data or the tape is inconsistent.
For tape drives, the result of a close operation depends on the special file that was used during the open operation and the tape operation that was run while it was
opened. The SCSI commands are issued according to the following logic.
If the last tape operation was NOT a READ, WRITE, or WRITE FILEMARK command
If special file is Rewind on Close (Example: /dev/rmt0)
Rewind tape
If special file is a No-Rewind on Close (Example: /dev/rmt0.1)
No commands are issued, tape remains at the current position
The device driver provides a logging facility that saves information about the device and the media. The information is extensive for some devices and limited for other
devices. If this feature is set to On, either by configuration or the STIOCSETP IOCTL, the device driver logging facility gathers all available information through the SCSI
Log Sense command.
This process is separate from error logging. Error logging is routed to the system error log. Device information logging is sent to a separate file.
Logging
Maximum size of the log file
Volume ID for logging
See the IBM® TotalStorage™ and System Storage® Tape Device Drivers: Installation and User’s Guide for a description of these parameters.
Each time an Unload command or the STIOC_LOG_SENSE IOCTL command is issued, the log sense data is collected, and an entry is added to the log. Each time a new
cartridge is loaded, the log sense data in the tape device is reset so that the log data is gathered on a per-volume basis.
Log file
Log file
Edit online
The data is logged in the /usr/adm/ras directory. The file name is dependent on each device so each device has a separate log. An example of the rmt1 device file is
/usr/adm/ras/Atape.rmt1.log
The files are in binary format. Each entry has a header followed by the raw Log Sense pages as defined for a particular device.
The first log page is always page 0x00. This page, as defined in the SCSI-2 ANSI specification, contains all the pages that are supported by the device. Page 0x00 is
followed by all the pages that are specified in page 0x00. The format of each following page is defined in the SCSI specification and the device manual.
The format of the file is defined by the data structure. The logfile_header is followed by max_log_size (or a fewer number of entries for each file). The log_record_header
is followed by a log entry.
struct logfile_header
{
char owner[16]; /* module that created the file */
time_t when; /* time when file created */
unsigned long count; /* number of entries in file */
unsigned long first; /* first entry number in wrap queue */
unsigned long max; /* maximum entries allowed before wrap */
unsigned long size; /* size of entry (bytes), entry size is fixed */
};
struct log_record_header
{
time_t when; /* time when log entry made */
ushort type; /* log entry type */
#define LOGDEMOUNT 1 /* demount log entry */
#define LOGSENSE 2 /* log sense ioctl entry */
#define LOGOVERFLOW 3 /* log overflow entry */
char device_type[8]; /* device type that made entry */
char volid[16]; /* volume ID of entry */
char serial[12]; /* serial number of device */
reserved[12];
};
struct log_page_header
{
char code; /* page code */
char res; /* reserved */
unsigned short len; /* length of data in page after header */
};
Two new ODM attributes are added for PR (Persistent Reservation) support:
reserve_type
reserve_key
The reserve type attribute determines the type of reservation that the device driver uses for the device. The values can be reserve_6, which is the default for the device
driver or persistent. This attribute can be set by either using the AIX SMIT menu to Change/Show Characteristics of a Tape Drive or from a command line with the AIX®
command
The reserve_key attribute is used to optionally set a user-defined host reservation key for the device when the reserve_type is set to persistent. The default for this
attribute is blank (NULL). The default uses a device driver unique host reservation key that is generated for the device. This attribute can be set by either using the AIX
SMIT menu to Change/Show Characteristics of a Tape Drive or from a command line with the AIX command
The key value can be specified as a 1-8 character ASCII alphanumeric key or a 1-16 hexadecimal key that has the format 0xkey. If fewer than 8 characters are used for an
ASCII key such as hostA, the remaining characters are set to 0x00 (NULL).
Note: If the Data Path Failover (DPF) feature is enabled for a logical device by setting the alternate_pathing attribute to yes, the configuration reserve_type attribute is not
used and the device driver uses persistent reservation. Either the user-defined reserve_key value or if not defined the default device driver host reservation key is used.
If a user-defined host reservation key is not specified, then the device driver uses a unique static host reservation key for the device. This key is generated when the first
device is configured and the device driver is initially loaded into kernel memory. The key is 16 hexadecimal digits in the format 0xApppppppssssssss, where ppppppp is
the configuration process id that loaded the device driver. Also, ssssssss is the 32-bit value of the TOD clock when the device driver was loaded. When any device is
configured and the reserve_key value is NULL, then the device driver sets the reserve_key value to this default internally for the device.
The following openx( ) extended parameters are provided for managing device driver reserve during open processing and release during close processing. These
parameters apply to either SCSI-2 Reserve 6 or Persistent Reserve. The SC_PASSTHRU parameter applies only to the Atape device driver and is defined in
/usr/include/sys/Atape.h. All other parameters are AIX® system parameters that are defined in /usr/include/sys/scsi.h. AIX base tape device drivers might not support all
of these parameters.
SC_PASSTHRU
SC_DIAGNOSTIC
SC_NO_RESERVE
SC_RETAIN_RESERVATION
SC_PR_SHARED_REGISTER
SC_FORCED_OPEN
The SC_PASSTHRU parameter bypasses all commands that are normally issued on open and close by the device driver. In addition to bypassing the device driver that
reserves on open and releases the device on close, all other open commands except test unit ready such as mode selects and rewind on close (if applicable) are also
bypassed. A test unit ready is still issued on open to clear any pending unit attentions from the device. This is the only difference in using the SC_DIAGNOSTIC parameter.
The SC_DIAGNOSTIC parameter bypasses all commands that are normally issued on open and close by the device driver. In addition to bypassing the device driver that
reserves on open and releases the device on close, all other open commands such test unit ready, mode selects, and rewind on close (if applicable) are also bypassed.
The SC_NO_RESERVE parameter bypasses the device driver that issues a reserve on open only. All other normal open device driver commands are still issued such as test
unit ready and mode selects.
The SC_RETAIN_RESERVATION parameter bypasses the device driver that issues a release on close only. All other normal close device driver commands are still issued
such as rewind (if applicable).
The SC_PR_SHARED_REGISTER parameter sets the device driver reserve_type to persistent and overrides the configuration reserve_type attribute whether it was set to
reserve_6 or persistent. A subsequent reserve on the current open by the device driver (if applicable) uses Persistent Reserve. The reserve_type is only changed for the
current open. The next open without using this parameter uses the configuration reserve_type. In addition to setting the reserve_type to persistent, the device driver
registers the host reservation key on the device. This parameter can also be used with the extended parameters.
The SC_FORCED_OPEN parameter first clears either a SCSI-2 Reserve 6 or a Persistent Reservation if one currently exists on the device from another host. The device
driver open processing then continues according to the type of open. This parameter can also be used with the extended parameters.
The Atape device driver supports the AIX® common tape Persistent Reserve IOCTLs for application programs to manage their own Persistent Reserve support. The
IOCTLs are defined in the header file /usr/include/sys/tape.h.
The following two IOCTLs return Persistent Reserve information by using the SCSI Persistent Reserve In command.
STPRES_READKEYS
STPRES_READRES
The following four IOCTLs complete Persistent Reserve functions by using the SCSI Persistent Reserve Out command.
STPRES_CLEAR
STPRES_PREEMPT
STPRES_PREEMPT_ABORT
STPRES_REGISTER
Except for the STPRES_REGISTER IOCTL, the other three IOCTLs require that the host reservation key is registered on the device first. This action can be done by either
issuing the STPRES_REGISTER IOCTL before the IOCTLs are issued or by opening the device with the SC_PR_SHARED_REGISTER parameter.
The STPRES_READKEYS IOCTL issues the persistent reserve in command with the read keys service action. The following structure is the argument for this IOCTL.
struct st_pres_in {
ushort version;
ushort allocation_length;
uint generation;
ushort returned_length;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
uchar *reservation_info;
}
The allocation_length is the maximum number of bytes of key values that are returned in the reservation_info buffer. The returned_length value indicates how
many bytes of key values that device reported in the parameter data. Also, it shows the list of key values that are returned by the device up to allocation_length
The SYPRES_READRES IOCTL issues the persistent reserve in command with the read reservations service action. The STPRES_READRES IOCTL uses the same
following IOCTL structure as the STPRES_READKEYS IOCTL.
struct st_pres_in {
ushort version;
ushort allocation_length;
uint generation;
ushort returned_length;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
uchar *reservation_info;
}
The allocation length is the maximum number of bytes of reservation descriptors that are returned in the reservation info buffer. The returned_length value indicates
how many bytes of reservation descriptor values that device reported in the parameter data. Also, it shows the list of reservation descriptor values that are returned by the
device up to allocation_length bytes. If the returned_length is greater than the allocation_length, then the application did not provide an
allocation_length large enough for all of the reservation descriptors the device registered. The device driver does not consider it an error.
The STPRES_CLEAR IOCTL issues the persistent reserve out command with the clear service action. The following structure is the argument for this IOCTL.
struct st_pres_clear {
ushort version;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
}
The STPRES_CLEAR IOCTL clears a persistent reservation and all persistent reservation registrations on the device.
The STPRES_PREEMPT IOCTL issues the persistent reserve out command with the preempt service action. The following structure is the argument for this IOCTL.
struct st_pres_preempt {
ushort version;
unsigned long long preempt_key;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
}
The STPRES_PREEMPT IOCTL preempts a persistent reservation or registration. The preempt_key contains the value of the registration key of the initiator that is to be
preempted. The determination of whether it is the persistent reservation or registration that is preempted is made by the device. If the initiator corresponding to the
preempt_key is associated with the reservation that is preempted, then the reservation is preempted and any matching registrations are removed. If the initiator
corresponding to the preempt_key is not associated with the reservation that is preempted, then any matching registrations are removed. The SPC2 standard states that
if a valid request for a preempt service action fails, it can be because of the condition in which another initiator has left the device. The suggested recourse in this case is
for the preempting initiator to issue a logical unit reset and retry the preempting service action.
The STPRES_PREEMPT_ABORT IOCTL issues the persistent reserve out command with the preempt and abort service action. The STPRES_PREEMPT_ABORT IOCTL
uses the same argument structure as the STPRES_PREEMPT IOCTL.
struct st_pres_preempt {
ushort version;
unsigned long long preempt_key;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
}
The STPRES_PREEMPT_ABORT IOCTL preempts a persistent reservation or registration and abort all outstanding commands from the initiators corresponding to the
preempt_key registration key value. The preempt_key contains the value of the registration key of the initiator for which the preempt and abort is to apply. The
determination of whether it is the persistent reservation or registration that is to be preempted is made by the device. If the initiator corresponding to the preempt_key is
associated with the reservation that is preempted, then the reservation is preempted and any matching registrations are removed. If the initiator corresponding to the
preempt_key is not associated with the reservation that is preempted, then any matching registrations are removed. Regardless of whether the preempted initiator holds
the reservation, all outstanding commands from all initiators corresponding to the preempt_key are aborted.
The STPRES_REGISTER IOCTL issues the persistent reserve out command with the register service action. The following structure is the argument for this IOCTL.
struct st_pres_register {
ushort version;
uchar scsi_status;
uchar sense_key;
uchar scsi_asc;
uchar scsi_ascq;
}
The STPRES_REGISTER IOCTL registers the current host persistent reserve registration key value with the device. The STPRES_REGISTER IOCTL is only supported if the
device is opened with a reserve_type set to persistent, otherwise an error of EACCESS is returned. The intended use of this IOCTL is to allow a preempted host to regain
access to a shared device without requiring that the device is closed and reopened.
If a persistent reserve IOCTL fails, the return code is set to -1 and the errno value is set to one of the following.
The Atape device driver provides Persistent Reserve IOCTLs for application programs to manage their own Persistent Reserve support. These IOCTLs are defined in the
header file /usr/include/sys/Atape_pr.h.
The following IOCTLs return Persistent Reserve information by using the SCSI Persistent Reserve In command.
STIOC_READ_RESERVEKEYS
STIOC_READ_RESERVATIONS
STIOC_READ_RESERVE_FULL_STATUS
The following IOCTLs complete Persistent Reserve functions by using the SCSI Persistent Reserve Out command.
STIOC_REGISTER_KEY
STIOC_REMOVE_REGISTRATION
STIOC_CLEAR_ALL_REGISTRATIONS
STIOC_PREEMPT_RESERVATION
STIOC_PREEMPT_ABORT
STIOC_CREATE_PERSISTENT_RESERVE
The following IOCTLs are modified to handle both SCSI-2 Reserve 6 and Persistent Reserve based on the current reserve_type setting.
SIOC_RESERVE
SIOC_RELEASE
The STIOC_READ_RESERVEKEYS IOCTL returns the reservation keys from the device. The argument for this IOCTL is the address of a read_keys structure. If the
reserve_key_list pointer is NULL, then only the generation and length fields are returned. This action allows an application to first obtain the length of the reserve_key_list
and malloc a return buffer before the IOCTL is issued with a reserve_key_list pointer to that buffer. If the return length is 0, then no reservation keys are registered with
the device.
struct read_keys
{
uint generation; /* counter for PERSISTENT RESERVE OUT requests */
uint length; /* number of bytes in the Reservation Key list */
ullong *reserve_key_list; /* list of reservation keys */
};
The STIOC_READ_RESERVATIONS IOCTL returns the current reservations from the device if any exist. The argument for this IOCTL is the address of a read_reserves
structure. If the reserve_list pointer is NULL, then only the generation and length fields are returned. This action allows an application to first obtain the length of the
reserve_list and malloc a return buffer before the IOCTL is issued with a reserve_list pointer to that buffer. If the return length is 0, then no reservations currently exist on
the device.
struct reserve_descriptor
{
ullong key; /* reservation key */
uint scope_spec_addr; /* scope-specific address */
uchar reserved;
uint scope:4, /* persistent reservation scope */
type:4; /* reservation type */
ushort ext_length; /* extent length */
};
struct read_reserves
{
uint generation; /* counter for PERSISTENT RESERVE OUT requests */
uint length; /* number of bytes in the Reservation list */
struct reserve_descriptor* reserve_list; /* list of reservation key descriptors */
};
The STIOC_READ_RESERVE_FULL_STATUS IOCTL returns extended information for all reservation keys and reservations from the device if any exist. The argument for
this IOCTL is the address of a read_full_status structure. If the status_list pointer is NULL, then only the generation and length fields are returned. This action allows an
application to first obtain the length of the status_list and malloc a return buffer before the IOCTL is issued with a status_list pointer to that buffer. If the return length is 0,
then no reservation keys or reservations currently exist on the device.
struct transport_id
{
uint format_code:2,
rsvd:2,
protocol_id:4;
};
struct fcp_transport_id
struct scsi_transport_id
{
uint format_code:2,
rsvd:2,
protocol_id:4;
char reserved1[1];
ushort scsi_address;
ushort obsolete;
ushort target_port_id;
char reserved2[16];
};
struct sas_transport_id
{
uint format_code:2,
rsvd:2,
protocol_id:4;
char reserved1[3];
ullong sas_address;
char reserved2[12];
};
struct status_descriptor
{
ullong key; /* reservation key */
char reserved1[4];
uint rsvd:5,
spc2_r:1, /* future use for SCSI-2 reserve */
all_tg_pt:1, /* all target ports */
r_holder:1; /* reservation holder */
uint scope:4, /* persistent reservation scope */
type:4; /* reservation type */
char reserved2[4];
ushort target_port_id; /* relative target port id */
uint descriptor_length; /* additional descriptor length */
union {
struct transport_id transport_id; /* transport ID */
struct fcp_transport_id fcp_id; /* FCP transport ID */
struct sas_transport_id sas_id; /* SAS transport ID */
struct scsi_transport_id scsi_id; /* SCSI transport ID */
};
};
struct read_full_status
{
uint generation; /* counter for PERSISTENT RESERVE OUT requests */
uint length; /* number of bytes for total status descriptors */
struct status_descriptor *status_list; /* list of reserve status descriptors */
};
The STIOC_REGISTER_KEY IOCTL registers a host reservation key on the device. The argument for this IOCTL is the address of an unsigned long key that can be 1 - 16
hexadecimal digits. If the key value is 0, then the device driver registers the configuration reserve key on the device. This key is either a user-specified host key or the
device driver default host key.
If the host has a current persistent reservation on the device and the key is different from the current reservation key, the reservation is retained and the host reservation
key is changed to the new key.
The STIOC_REMOVE_REGISTRATION IOCTL removes the host reservation key and reservation if one exists from the device. There is no argument for this IOCTL. The
SIOC_RELEASE IOCTL can also be used to complete the same function.
The STIOC_CLEAR_ALL_REGISTRATIONS IOCTL clears all reservation keys and reservations on the device (if any exist) for the same host and any other host. There is no
argument for this IOCTL.
The STIOC_PREEMPT_RESERVATION IOCTL registers a host reservation key on the device and then preempts the reservation that is held by another host if one exists.
Or, it creates a new persistent reservation by using the host reservation key. The argument for this IOCTL is the address of an unsigned long key that can be 1 - 16
hexadecimal digits. If the key value is 0, then the device driver registers the configuration reserve key on the device. This key is either a user-specified host key or the
device driver default host key.
The STIOC_PREEMPT_ABORT IOCTL registers a host reservation key on the device, preempts the reservation that is held by another host, and clears the task that is set
for the preempted initiator if one exists. Or, it creates a new persistent reservation by using the host reservation key. The argument for this IOCTL is the address of an
unsigned long key that can be 1 - 16 hexadecimal digits. If the key value is 0, then the device driver registers the configuration reserve key on the device. This key is either
a user-specified host key or the device driver default host key.
The STIOC_CREATE_PERSISTENT_RESERVE IOCTL creates a persistent reservation on the device by using the host reservation key that was registered with the
STIOC_REGISTER_KEY IOCTL. There is no argument for this IOCTL. The SIOC_RESERVE IOCTL can also be used to complete the same function.
The SIOC_RESERVE IOCTL reserves the device. If the reserve_type is set to reserve_6, the device driver issues a SCSI Reserve 6 command. If the reserve_type is set to
persistent, the device driver first registers the current host reservation key and then creates a persistent reservation. The current host reservation key can be either the
configuration key for the device or a key that was registered previously with the STIOC_REGISTER_KEY IOCTL.
The SIOC_RELEASE IOCTL releases the device. If the reserve_type is set to reserve_6, the device driver issues a SCSI Release 6 command. If the reserve_type is set to
persistent, the device driver removes the host reservation key and reservation if one exists from the device.
This chapter describes the IOCTL commands that provide control and access to the tape and medium changer devices. These commands are available for all tape and
medium changer devices. They can be issued to any rmt*, rmt*.smc, or smc* special file.
Overview
Overview
Edit online
IOCINFO
Return device information.
STIOCMD
Issue the AIX Pass-through command.
STPASSTHRU
Issue the AIX Pass-through command.
SIOC_PASSTHRU_COMMAND
Issue the Atape Pass-through command.
SIOC_INQUIRY
Return inquiry data.
SIOC_REQSENSE
Return sense data.
SIOC_RESERVE
Reserve the device.
SIOC_RELEASE
Release the device.
SIOC_TEST_UNIT_READY
Issue a SCSI Test Unit Ready command.
SIOC_LOG_SENSE_PAGE
Return log sense data for a specific page.
SIOC_LOG_SENSE10_PAGE
Return log sense data for a specific page and Subpage.
SIOC_MODE_SENSE_PAGE
Return mode sense data for a specific page.
SIOC_MODE_SENSE_SUBPAGE
Return mode sense data for a specific page and subpage.
SIOC_MODE_SENSE
Return whole mode sense data include header, block descriptor, and page for a specific page.
SIOC_MODE_SELECT_PAGE
Set mode sense data for a specific page.
SIOC_MODE_SELECT_SUBPAGE
Set mode sense data for a specific page and subpage.
SIOC_INQUIRY_PAGE
Return inquiry data for a specific page.
SIOC_DISABLE_PATH
Manually disable (fence) a SCSI path for a device.
SIOC_ENABLE_PATH
Enable a manually disabled (fenced) SCSI path for a device.
SIOC_SET_PATH
Explicitly set the current path that is used by the device driver.
SIOC_QUERY_PATH
Query device and path information for the primary and first alternate SCSI path for a device. This IOCTL is obsolete but still supported. The SIOC_DEVICE_PATHS
IOCTL can be used instead of this IOCTL.
SIOC_DEVICE_PATHS
Query device and path information for the primary and all alternate SCSI paths for the device.
SIOC_RESET_PATH
Issue an Inquiry command on each SCSI path that is not manually disabled (fenced) and enable the path if the Inquiry command succeeds.
SIOC_CHECK_PATH
These IOCTL commands and their associated structures are defined by including the /usr/include/sys/Atape.h header file in the C program by using the functions.
IOCINFO
STIOCMD
STPASSTHRU
SIOC_PASSTHRU_COMMAND
SIOC_INQUIRY
SIOC_REQSENSE
SIOC_RESERVE
SIOC_RELEASE
SIOC_TEST_UNIT_READY
SIOC_LOG_SENSE_PAGE
SIOC_LOG_SENSE10_PAGE
SIOC_MODE_SENSE_PAGE
SIOC_MODE_SENSE_SUBPAGE
SIOC_MODE_SELECT_PAGE
SIOC_MODE_SELECT_SUBPAGE
SIOC_QUERY_OPEN
SIOC_INQUIRY_PAGE
SIOC_DISABLE_PATH
SIOC_ENABLE_PATH
SIOC_SET_PATH
SIOC_DEVICE_PATHS
SIOC_QUERY_PATH
SIOC_RESET_PATH and SIOC_CHECK_PATH
SIOC_RESET_DEVICE
SIOC_DRIVER_INFO
IOCINFO
Edit online
This IOCTL command provides access to information about the tape or medium changer device. It is a standard AIX® IOCTL function.
#include <sys/devinfo.h>
#include <sys/Atape.h>
struct devinfo info;
An example of the output data structure for a tape drive rmt* special file is
info.devtype=DD_SCTAPE
info.devsubtype=ATAPE_3590
info.un.scmt.type=DT_STREAM
info.un.scmt.blksize=tape block size (0=variable)
An example of the output data structure for an integrated medium changer rmt*.smc special file is
info.devtype=DD_MEDIUM_CHANGER;
info.devsubtype=ATAPE_3590;
An example of the output data structure for an independent medium changer smc* special file is
info.devtype=DD_MEDIUM_CHANGER;
info.devsubtype=ATAPE_7337;
See the Atape.h header file for the defined devsubstype values.
STIOCMD
Edit online
This IOCTL is supported on both SCSI adapter attached devices and FCP adapter attached devices. For FCP adapter devices, the returned adapter_status field is converted
from the FCP codes that are defined in /usr/include/sys/scsi_buf.h to the SCSI codes defined in /usr/include/sys/scsi.h, if possible. This action is to provide downward
compatibility with existing applications that use the STIOCMD IOCTL for SCSI attached devices.
Note: There is no interaction by the device driver with this command. The error handling and logging functions are disabled. If the command results in a check condition,
the application must issue a Request Sense command to clear any contingent allegiance with the device.
An example of the STIOCMD command is
/* issue inquiry */
sciocmd.scsi_cdb[0]=0x12;
sciocmd.timeout_value=200; /* SECONDS */
sciocmd.command_length=6;
sciocmd.buffer=(char *)&inqdata;
sciocmd.data_length=sizeof(struct inquiry_data);
sciocmd.scsi_cdb[4]=sizeof(struct inquiry_data);
sciocmd.flags=B_READ;
STPASSTHRU
Edit online
This IOCTL command issues the AIX Pass-through command that is supported by base AIX® tape device drivers. The IOCTL command and structure are defined in the
header files /usr/include/sys/scsi.h and /usr/include/sys/tape.h. Refer to AIX documentation for information about using the command.
SIOC_PASSTHRU_COMMAND
Edit online
This IOCTL command issues the Atape device driver Pass-through command. The data structure that is used on this IOCTL is
struct scsi_passthru_cmd {
uchar command_length; /* Length of SCSI command 6, 10, 12 or 16 */
uchar scsi_cdb[16]; /* SCSI command descriptor block */
uint timeout_value; /* Timeout in seconds or 0 for command default */
uint buffer_length; /* Length of data buffer or 0 */
char *buffer; /* Pointer to data buffer or NULL */
uint number_bytes; /* Number of bytes transfered to/from buffer */
uchar sense_length; /* Number of valid sense bytes */
uchar sense[MAXSENSE]; /* Sense data when sense length > 0 */
uint trace_length; /* Number bytes in buffer to trace, 0 for none */
char read_data_command; /* Input flag, set it to 1 for read type cmds */
char reserved[27];
};
The arg parameter for the IOCTL is the address of a scsi_passthru_cmd structure.
The device driver issues the SCSI command by using the command_length and scsi_cdb fields. If the command receives data from the device (such as SCSI Inquiry), then
the application must also set the buffer_length and buffer pointer for the return data along with the read_data_command set to 1. For commands that send data to the
device (such as SCSI Mode Select), the buffer_length and pointer is set for the send data and the read_data_command set to 0. If the command has no data transfer, the
buffer length is set to 0 and buffer pointer that is set to NULL.
The specified timeout_value field is used if not 0. If 0, then the device driver assigns its internal timeout value that is based on the SCSI command.
The trace_length field is normally used only for debug. It specifies the number of bytes on a data transfer type command that is traced when the AIX® Atape device driver
trace is running.
If the SCSI command fails, then the IOCTL returns -1 and errno value is set for the failing command. If the device returned sense data for the failure, then the
sense_length is set to the number of sense bytes returned in the sense field. If there was no sense data for the failure, the sense_length is 0.
If the SCSI command transfers data either to or from the device, then the number_bytes fields indicate how many bytes were transferred.
SIOC_INQUIRY
340 IBM TS4300 Tape Library
Edit online
This IOCTL command collects the inquiry data from the device.
struct inquiry_data
{
uint qual:3, /* peripheral qualifier */
type:5; /* device type */
uint rm:1, /* removable medium */
mod:7; /* device type modifier */
uint iso:2, /* ISO version */
ecma:3, /* ECMA version */
ansi:3; /* ANSI version */
uint aenc:1, /* asynchronous event notification */
trmiop:1, /* terminate I/O process message */
:2, /* reserved */
rdf:4; /* response data format */
uchar len; /* additional length */
uchar resvd1; /* reserved */
uint :4, /* reserved */
mchngr:1, /* Medium Changer mode (SCSI-3 only) */
:3; /* reserved */
uint reladr:1, /* relative addressing */
wbus32:1, /* 32-bit wide data transfers */
wbus16:1, /* 16-bit wide data transfers */
sync:1, /* synchronous data transfers */
linked:1, /* linked commands */
:1, /* reserved */
cmdque:1, /* command queueing */
sftre:1; /* soft reset */
uchar vid[8]; /* vendor ID */
uchar pid[16]; /* product ID */
uchar revision[4]; /* product revision level */
uchar vendor1[20]; /* vendor specific */
uchar resvd2[40]; /* reserved */
uchar vendor2[31]; /* vendor specific (padded to 127) */
};
#include <sys/Atape.h>
SIOC_REQSENSE
Edit online
This IOCTL command returns the device sense data. If the last command resulted in an input/output error (EIO), the sense data is returned for the error. Otherwise, a new
sense command is issued to the device.
struct request_sense
{
uint valid:1, /* sense data is valid */
err_code:7; /* error code */
uchar segnum; /* segment number */
uint fm:1, /* filemark detected */
eom:1, /* end of medium */
ili:1, /* incorrect length indicator */
resvd1:1, /* reserved */
key:4; /* sense key */
signed int info; /* information bytes */
uchar addlen; /* additional sense length */
uint cmdinfo; /* command specific information */
uchar asc; /* additional sense code */
uchar ascq; /* additional sense code qualifier */
uchar fru; /* field replaceable unit code */
uint sksv:1, /* sense key specific valid */
cd:1, /* control/data */
resvd2:2, /* reserved */
bpv:1, /* bit pointer valid */
sim:3; /* system information message */
uchar field[2]; /* field pointer */
uchar vendor[109]; /* vendor specific (padded to 127) */
};
#include <sys/Atape.h>
SIOC_RESERVE
Edit online
This IOCTL command reserves the device to the device driver. The specific SCSI command that is issued to the device depends on the current reservation type that is used
by the device driver, either a SCSI Reserve or Persistent Reserve.
#include <sys/Atape.h>
SIOC_RELEASE
Edit online
This IOCTL command releases the current device driver reservation on the device. The specific SCSI command that is issued to the device depends on the current
reservation type that is used by the device driver, either a SCSI Reserve or Persistent Reserve.
#include <sys/Atape.h>
SIOC_TEST_UNIT_READY
Edit online
This IOCTL command issues the SCSI Test Unit Ready command to the device.
#include <sys/Atape.h>
SIOC_LOG_SENSE_PAGE
Edit online
This IOCTL command returns a log sense page from the device. The page is selected by specifying the page_code in the log_sense_page structure. Optionally, a specific
parm pointer, also known as a parm code, and the number of parameter bytes can be specified with the command.
To obtain the entire log page, the len and parm_pointer fields are set to zero. To obtain the entire log page that starts at a specific parameter code, set the parm_pointer
field to the wanted code and the len field to zero. To obtain a specific number of parameter bytes, set the parm_pointer field to the wanted code. Then, set the len field to
the number of parameter bytes plus the size of the log page header (4 bytes). The first 4 bytes of returned data are always the log page header.
See the appropriate device manual to determine the supported log pages and content.
struct log_sense_page
{
char page_code;
unsigned short len;
unsigned short parm_pointer;
char data[LOGSENSEPAGE];
};
#include <sys/Atape.h>
SIOC_LOG_SENSE10_PAGE
Edit online
This IOCTL command is enhanced to add a subpage variable from SIOC_LOG_SENSE_PAGE. It returns a log sense page or subpage from the device. The page is selected
by specifying the page_code or subpage_code in the log_sense10_page structure. Optionally, a specific parm pointer, also known as a parm code, and the number of
parameter bytes can be specified with the command.
To obtain the entire log page, the len and parm_pointer fields are set to zero. To obtain the entire log page that starts at a specific parameter code, set the parm_pointer
field to the wanted code and the len field to zero. To obtain a specific number of parameter bytes, set the parm_pointer field to the wanted code. Then, set the len field to
the number of parameter bytes plus the size of the log page header (4 bytes). The first 4 bytes of returned data are always the log page header. See the appropriate device
manual to determine the supported log pages and content.
#include <sys/Atape.h>
logdata10.page_code = page;
logdata10.subpage_code = subpage;
logdata10.len = len;
logdata10.parm_pointer = parm;
page_header = (struct log_page_header *)logdata10.data;
SIOC_MODE_SENSE_PAGE
Edit online
This IOCTL command returns a mode sense page from the device. The page is selected by specifying the page_code in the mode_sense_page structure.
See the appropriate device manual to determine the supported mode pages and content.
struct mode_sense_page
{
char page_code;
char data[MODESENSEPAGE];
};
#include <sys/Atape.h>
SIOC_MODE_SENSE_SUBPAGE
Edit online
This IOCTL command returns the whole mode sense data, including header, block descriptor, and page code for a specific page or subpage from the device. The wanted
page or subpage is inputted by specifying the page_code and subpage_code in the mode_sense structure.
#include <sys/Atape.h>
SIOC_MODE_SELECT_PAGE
Edit online
This IOCTL command sets device parameters in a specific mode page. The wanted page is selected by specifying the page_code in the mode_sense_page structure. See
the appropriate device manual to determine the supported mode pages and parameters that can be modified. The arg parameter for the IOCTL is the address of a
mode_sense_page structure.
struct mode_sense_page
{
uchar page_code; /* mode sense page code */
char data[MODESENSEPAGE];
};
This data structure is also used for the SIOC_MODE_SENSE_PAGE IOCTL. The application must issue the SIOC_MODE_SENSE_PAGE IOCTL, and modify the wanted
bytes in the returned mode_sense_page structure data field. Then, it issues this IOCTL with the modified fields in the structure.
SIOC_MODE_SELECT_SUBPAGE
Edit online
This IOCTL command sets device parameters in a specific mode page and subpage. The wanted page and subpage are selected by specifying the page_code and
subpage_page in the mode_sense_subpage structure. See the appropriate device manual to determine the supported mode pages, subpages, and parameters that can be
modified. The arg parameter for the IOCTL is the address of a mode_sense_subpage structure.
struct mode_sense_subpage
{
uchar page_code; /* mode sense page code */
uchar subpage_code; /* mode sense subpage code */
uint reserved:7,
sp_bit:1; /* mode select save page bit */
char data[MODESENSEPAGE];
};
This data structure is also used for the SIOC_MODE_SENSE_SUBPAGE IOCTL. The application must issue the SIOC_MODE_SENSE_SUBPAGE IOCTL, and modify the
wanted bytes in the returned mode_sense_subpage structure data field. Then, it issues this IOCTL with the modified fields in the structure. If the device supports setting
the sp bit for the mode page to 1, then the sp_bit field can be set to 0 or 1. If the device does not support the sp bit, then the sp_bit field must be set to 0.
SIOC_QUERY_OPEN
This IOCTL command returns the ID of the process that currently has a device open. There is no associated data structure. The arg parameter specifies the address of an
int for the return process ID.
If the application opened the device by using the extended open parameter SC_TMCP, the process ID is returned for any other process that has the device open currently.
Or, zero is returned if the device is not currently open. If the application opened the device without the extended open parameter SC_TMCP, the process ID of the current
application is returned.
#include <sys/Atape.h>
return errno;
}
SIOC_INQUIRY_PAGE
Edit online
This IOCTL command returns an inquiry page from the device. The page is selected by specifying the page_code in the inquiry_page structure.
See the appropriate device manual to determine the supported inquiry pages and content.
struct inquiry_page
{
char page_code;
char data[INQUIRYPAGE];
};
#include <sys/Atape.h>
SIOC_DISABLE_PATH
Edit online
This IOCTL command manually disables (fences) the device driver from using either the primary or an alternate SCSI path to a device until the SIOC_ENABLE_PATH
command is issued for the same path that is manually disabled. The arg parameter on the IOCTL command specifies the path to be disabled. The primary path is path 1,
the first alternate path 2, the second alternate path 3, and so on. This command can be used concurrently when the device is already open by another process by using the
openx() extended parameter SC_TMCP.
This IOCTL command is valid only if the device has one or more alternate paths configured. Otherwise, the IOCTL command fails with errno set to EINVAL. The
SIOC_DEVICE_PATHS IOCTL command can be used to determine the paths that are enabled or manually disabled.
#include <sys/Atape.h>
This IOCTL command enables a manually disabled (fenced) path to a device that is disabled by SIOC_DISABLE_PATH IOCTL. The arg parameter on the IOCTL command
specifies the path to be enabled. The primary path is path 1, the first alternate path 2, the second alternate path 3, and so on. This command can be used concurrently
when the device is already open by another process by using the openx() extended parameter SC_TMCP.
The SIOC_DEVICE_PATHS IOCTL command can be used to determine the paths that are enabled or manually disabled.
SIOC_SET_PATH
Edit online
This IOCTL command explicitly sets the current path to a device that the device driver uses. The arg parameter on the IOCTL command specifies the path to be set to the
current path. The primary path is path 1, the first alternate path 2, the second alternate path 3, and so on. This command can be used concurrently when the device is
already open by another process by using the openx() extended parameter SC_TMCP.
The SIOC_DEVICE_PATHS IOCTL command can be used to determine the current path the device driver is using for the device.
SIOC_DEVICE_PATHS
Edit online
This IOCTL command returns a device_paths structure. The number of paths are configured to a device and a device_path_t path structure for each configured path. The
device, HBA, and path information for the primary path are configured along with all alternate SCSI paths. This IOCTL command must be used instead of the
SIOC_QUERY_PATH IOCTL that is obsolete. This command can be used concurrently when the device is already open by another process by using the openx() extended
parameter SC_TMCP.
struct device_path_t {
char name[15]; /* logical device name */
char parent[15]; /* logical parent name */
uchar id_valid; /* obsolete and not set */
uchar id; /* SCSI target address of device */
uchar lun; /* SCSI logical unit of device */
uchar bus; /* SCSI bus for device */
uchar fcp_id_valid; /* FCP scsi/lun id fields vaild */
unsigned long long fcp_scsi_id; /* FCP SCSI id of device */
unsigned long long fcp_lun_id; /* FCP logical unit of device */
unsigned long long fcp_ww_name; /* FCP world wide name */
uchar enabled; /* path enabled */
uchar drive_port_valid; /* drive port field valid */
uchar drive_port; /* drive port number */
uchar fenced; /* path fenced by disable ioctl */
uchar current_path; /* Current path assignment */
uchar dynamic_tracking; /* FCP Dynamic tracking enabled */
unsigned long long fcp_node_name; /* FCP node name */
char type[16]; /* Device type and model */
char serial[16]; /* Device serial number */
uchar sas_id_valid; /* FCP scsi/lun id fields vaild */
char cpname[15]; /* logical name of control path drive */
uchar last_path; /* Last failure path */
char reserved[4];
};
struct device_paths {
int number_paths; /* number of paths configured */
struct device_path_t path[MAX_SCSI_PATH];
};
The arg parameter for the IOCTL is the address of a device_paths structure.
The current_path in the return structures is set to the current path the device uses for the device. If this IOCTL is issued to a medium changer smc logical driver, the
cpname has the logical rmt name that is the control path drive for each smc logical path.
SIOC_QUERY_PATH
Edit online
This IOCTL command returns information about the device and SCSI paths, such as logical parent, SCSI IDs, and status of the SCSI paths.
Note: This IOCTL is obsolete but still supported. The SIOC_DEVICE_PATHS IOCTL must be used instead.
The data structure is
struct scsi_path {
char primary_name[15]; /* Primary logical device name */
char primary_parent[15]; /* Primary SCSI parent name */
#include <sys/Atape.h>
int sioc_query_path(void)
{
struct scsi_path path;
return errno;
}
printf("\n");
if (path->alternate_configured)
printf("Primary Path Information:\n");
printf(" Logical Device................. %s\n",path->primary_name);
printf(" SCSI Parent.................... %s\n",path->primary_parent);
if (path->primary_fcp_id_valid)
{
if (path->primary_id_valid)
{
printf(" Target ID...................... %d\n",path->primary_id);
printf(" Logical Unit................... %d\n",path->primary_lun);
printf(" SCSI Bus....................... %d\n",path->primary_bus);
}
printf(" FCP SCSI ID.................... 0x%llx\n",path->primary_fcp_scsi_id);
printf(" FCP Logical Unit............... 0x%llx\n",path->primary_fcp_lun_id);
printf(" FCP World Wide Name............ 0x%llx\n",path->primary_fcp_ww_name);
}
else
{
printf(" Target ID...................... %d\n",path->primary_id);
printf(" Logical Unit................... %d\n",path->primary_lun);
}
if (path->primary_drive_port_valid)
printf(" Drive Port Number.............. %d\n",path->primary_drive_port);
if (path->primary_enabled)
printf(" Path Enabled................... Yes\n");
else
printf(" Path Enabled................... No \n");
if (path->primary_fenced)
printf(" Path Manually Disabled......... Yes\n");
else
printf(" Path Manually Disabled......... No \n");
if (!path->alternate_configured)
printf(" Alternate Path Configured...... No\n");
else
}
}
Both of these IOCTL commands check all SCSI paths to a device that are not manually disabled by the SIOC_DISABLE_PATH IOCTL. It is done by issuing a SCSI Inquiry
command on each path to verify communication. If the command succeeds, then the path is enabled. If it fails, the path is disabled and is not used by the device driver.
This command can be used concurrently when the device is already open by another process by using the openx() extended parameter SC_TMCP.
This IOCTL command returns the same data structure as the SIOC_QUERY_PATH IOCTL command with the updated path information for the primary and first alternate
path. See the SIOC_QUERY_PATH IOCTL command for a description of the data structure and output information. If more than one alternate path is configured for the
device, then the SIOC_DEVICE_PATHS IOCTL must be used to determine the paths that are enabled.
#include <sys/Atape.h>
int sioc_reset_path(void)
{
struct scsi_path path;
return errno;
}
SIOC_RESET_DEVICE
Edit online
This IOCTL command issues a SCSI target reset to the device if parallel SCSI is attached or a SCSI lun reset if FCP/SAS is attached to the device. This IOCTL command can
be used to clear a SCSI Reservation that is active on the device. This command can be used concurrently when the device is already open by another process by using the
openx() extended parameter SC_TMCP.
There is no argument for this IOCTL and the arg parameter is ignored.
SIOC_DRIVER_INFO
Edit online
This command returns the information about the currently installed Atape driver.
The following data structure is filled out and returned by the driver.
#include <sys/Atape.h>
int sioc_driver_info()
{
struct driver_info dd_info;
The device driver supports the tape IOCTL commands available with the base AIX® operating system. In addition, it supports a set of expanded tape IOCTL commands
that give applications access to extra features and functions of the tape drives.
Overview
Overview
Edit online
STIOCHGP
Set the block size.
STIOCTOP
Complete the IOCTL tape operation.
STIOCQRYP
Query the tape device, device driver, and media parameters.
STIOCSETP
Change the tape device, device driver, and media parameters.
STIOCSYNC
Synchronize the tape buffers with the tape.
STIOCDM
Display the message on the display panel.
STIOCQRYPOS
Query the tape position and the buffered data.
STIOCSETPOS
Set the tape position.
STIOCQRYSENSE
Query the sense data from the tape device.
STIOCQRYINQUIRY
Return the inquiry data.
STIOC_LOG_SENSE
Return the log sense data.
STIOC_RECOVER_BUFFER
Recover the buffered data from the tape device.
STIOC_LOCATE
Locate to the tape position.
STIOC_READ_POSITION
Read the current tape position.
STIOC_SET_VOLID
Set the volume name for the current mounted tape. The name is used for tape volume logging only.
STIOC_DUMP
Force and read a dump from the device.
STIOC_FORCE_DUMP
Force a dump on the device.
STIOC_READ_DUMP
These IOCTL commands and their associated structures are defined in the /usr/include/sys/Atape.h header file, which is included in the corresponding C program that
uses the functions.
STIOCHGP
STIOCTOP
STIOCQRYP or STIOCSETP
STIOCSYNC
STIOCDM
STIOCQRYPOS or STIOCSETPOS
STIOCQRYSENSE
STIOCQRYINQUIRY
STIOC_LOG_SENSE
STIOC_RECOVER_BUFFER
STIOC_LOCATE
STIOC_READ_POSITION
STIOCHGP
Edit online
This IOCTL command sets the current block size. A block size of zero is a variable block. Any other value is a fixed block.
#include <sys/Atape.h>
stchgp.st_blksize = 512;
if (ioctl(tapefd,STIOCHGP,&stchgp)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOCTOP
Edit online
This IOCTL command runs basic tape operations. The st_count variable is used for many of its operations. Normal error recovery applies to these operations. The device
driver can issue several tries to complete them.
For all space operations, the tape position finishes on the end-of-tape side of the record or filemark for forward movement and on the beginning-of-tape side of the record
or filemark for backward movement. The only exception occurs for forward and backward space record operations over a filemark if the device is configured for the AIX®
record space mode.
struct stop
{
short st_op; /* operations defined below */
daddr_t st_count; /* how many of them to do (if applicable) */
};
STOFFL
Unload the tape. The st_count parameter does not apply.
STREW
STERASEGAP
Erase the gap that was written to the tape. The st_count parameter does not apply.
STRETEN
Start the rewind operation. The tape devices run the retension operation automatically when needed.
STWEOF
Write the st_count number of filemarks.
STWEOF_IMM
Write the st_count number of filemarks with the immediate bit set.
This action issues a write filemark command to the device with the immediate bit set in the SCSI CDB. The device returns immediate status and the IOCTL also
returns immediately. Unlike the STWEOF st_op, any buffered write data are not flushed to tape before the filemarks are written. This action can improve the time
that it takes for a write filemark command to complete.
STFSF
Space forward the st_count number of filemarks.
STRSF
Space backward the st_count number of filemarks.
STFSR
Space forward the st_count number of records.
STRSR
Space backward the st_count number of records.
STTUR
Issue the Test Unit Ready command. The st_count parameter does not apply.
STLOAD
Issue the SCSI Load command. The st_count parameter does not apply. The operation of the SCSI Load command varies depending on the type of device. See the
appropriate hardware reference manual.
STSEOD
Space forward to the end of the data. The st_count parameter does not apply. This operation is supported except on the IBM® 3490E tape devices.
STFSSF
Space forward to the first st_count number of contiguous filemarks.
STRSSF
Space backward to the first st_count number of contiguous filemarks.
STEJECT
Unload the tape. The st_count parameter does not apply.
STINSRT
Issue the SCSI Load command. The st_count parameter does not apply.
Note: If zero is used for operations that require the count parameter, the command is not issued to the device, and the device driver returns a successful completion.
An example of the STIOCTOP command is
#include <sys/Atape.h>
stop.st_op=STWEOF;
stop.st_count=3;
if (ioctl(tapefd,STIOCTOP,&stop)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOCQRYP or STIOCSETP
Edit online
The STIOCQRYP IOCTL command allows the program to query the tape device, device driver, and media parameters. The STIOCSETP IOCTL command allows the
program to change the tape device, device driver, and media parameters. Before the STIOCSETP IOCTL command is issued, use the STIOCQRYP IOCTL command to
query and fill the fields of the data structure that you do not want to change. Then, issue the STIOCSETP command to change the selected fields.
Changing certain fields (such as buffered_mode) impacts performance. If the buffered_mode field is false, then each record that is written to the tape is transferred to the
tape immediately. This operation guarantees that each record is on the tape, but it impacts performance.
STIOCQRYP parameters that cannot be changed with the STIOCSETP IOCTL command
The following parameters that are returned by the STIOCQRYP IOCTL command cannot be changed by the STIOCSETP IOCTL command.
trace
This parameter is the current setting of the AIX® system tracing for channel 0. All Atape device driver events are traced in channel 0 with other kernel events. If set
to On, device driver tracing is active.
write_protect
If the currently mounted tape is write-protected, this field is set to TRUE. Otherwise, it is set to FALSE.
min_blksize
This parameter is the minimum block size for the device. The driver sets this field by issuing the SCSI Read Block Limits command.
max_blksize
This parameter is the maximum block size for the device. The driver sets this field by issuing the SCSI Read Block Limits command.
max_scsi_xfer
This parameter is the maximum transfer size of the parent SCSI adapter for the device.
acf_mode
If the tape device has the ACF installed, this parameter returns the current mode of the ACF. Otherwise, the value of ACF_NONE is returned. The ACF mode can be
set from the operator panel on the tape device.
alt_pathing
This parameter is the configuration setting for path failover support. If the path failover support is enabled, this parameter is set to TRUE.
medium_type
This parameter is the media type of the current loaded tape. Some tape devices support multiple media types and report different values in this field. See the
documentation for the specific tape device to determine the possible values.
density_code
This parameter is the density setting for the current loaded tape. Some tape devices support multiple densities and report the current setting in this field. See the
documentation for the specific tape device to determine the possible values.
reserve_type
This parameter is the configuration setting for the reservation type that the device driver uses when the device is reserved, either a SCSI Reserve 6 command or a
SCSI Persistent Reserve command.
reserve_key
This parameter is the reservation key the device driver uses with SCSI Persistent Reserve. If a configuration reservation key was specified, then this key can be
either a 1-8 ASCII character key or a 1-16 hexadecimal key. If a configuration key was not specified, then the reservation key is a 16 hexadecimal key that the
device driver generates.
blksize
This parameter specifies the effective block size for the tape device.
autoload
This parameter turns the autoload feature On and Off in the device driver. If set to On, the cartridge loader is treated as a large virtual tape.
buffered_mode
This parameter turns the buffered mode write On and Off.
compression
This parameter turns the hardware compression On and Off.
trailer_labels
If this parameter is set to On, writing a record past the early warning mark on the tape is allowed. The first write operation to detect EOM returns the ENOSPC error
code. This write operation does not complete successfully. All subsequent write operations are allowed to continue despite the check conditions that result from
EOM. When the end of the physical volume is reached, EIO is returned. This parameter can be used before EOM or after EOM is reached.
rewind_immediate
This parameter turns the immediate bit On and Off in rewind commands. If set to On, the STREW tape operation runs faster. However, the next command takes a
long time to finish unless the rewind operation is physically complete.
logging
This parameter turns the volume logging On and Off. If set to On, the volume log data is collected and saved in the tape log file when the Rewind and Unload
command is issued to the tape drive.
volid
This parameter is the volume ID of the current loaded tape. If it is not set, the device driver initializes the volid to UNKNOWN. If logging is active, the parameter is
used to identify the volume in the tape log file entry. It is reset to UNKNOWN when the tape is unloaded.
emulate_autoloader
This parameter turns the emulate autoloader feature On and Off.
record_space_mode
This parameter specifies how the device driver operates when a forward or backward space record operation encounters a filemark. The two modes of operation
are SCSI and AIX.
logical_write_protect
This parameter sets or resets the logical write protect of the current tape.
Note: The tape position must be at the beginning of the tape to change this parameter from its current value.
capacity_scaling and capacity_scaling_value
On a set operation, if the capacity_scaling parameter is set to SCALE_VALUE then the capacity_scaling_value parameter is used to set the tape capacity. Otherwise,
one of the other defined values for the capacity_scaling parameter is used.
Note:
1. The tape position must be at the beginning of the tape to change this parameter from its current value.
2. Changing this parameter destroys any existing data on the tape.
retain_reservation
When this parameter if set to 1, the device driver does not release the device reservation when the device is closed for the current open and any subsequent opens
and closes until the STIOCSETP IOCTL is issued with retain_reservation parameter set to 0. The device driver still reserves the device on open to make sure that
the previous reservation is still valid.
data_safe_mode
This parameter queries the current drive setting for data safe (append-only) mode. Also, on a set operation it changes the current data safe mode setting on the
drive. On a set operation, a parameter value of zero sets the drive to normal (non-data safe) mode and a value of 1 sets the drive to data safe mode.
disable_sim_logging
This parameter turns the automatic logging of tape SIM/MIM data On and Off. By default, the device driver reads Log Sense Page X'31' automatically when device
sense data indicates that data is available. The data is saved in the AIX error log. Reading Log Sense Page X'31' clears the current SIM/MIM data.
Setting this bit disables the device driver from reading the Log Sense Page so an application can read and manage its own SIM/MIM data. The SIM/MIM data is
saved in the AIX error log if an application reads the data with the SIOC_LOG_SENSE_PAGE or STIOC_LOG_SENSE IOCTLs.
read_sili_bit
This parameter turns the Suppress Incorrect Length Indication (SILI) bit On and Off for variable length read commands. The device driver sets this bit when the
device is configured, if it detects that the adapter can support this setting. When this bit is Off, variable length read commands results in a SCSI check condition if
less data is read than the read system call requested. This action can have a significant impact on read performance.
struct stchgp_s
{
int blksize; /* new block size */
boolean trace; /* TRUE=trace on */
uint hkwrd; /* trace hook word */
int sync_count; /* obsolete - not used */
boolean autoload; /* on/off autoload feature */
boolean buffered_mode; /* on/off buffered mode */
boolean compression; /* on/off compression */
boolean trailer_labels; /* on/off allow writing after EOM */
boolean rewind_immediate; /* on/off immediate rewinds */
boolean bus_domination; /* obsolete - not used */
boolean logging; /* volume logging */
boolean write_protect; /* write_protected media */
uint min_blksize; /* minimum block size */
uint max_blksize; /* maximum block size */
uint max_scsi_xfer; /* maximum scsi tranfer len */
char volid[16]; /* volume id */
uchar acf_mode; /* automatic cartridge facility mode */
#define ACF_NONE 0
#define ACF_MANUAL 1
#define ACF_SYSTEM 2
#define ACF_AUTOMATIC 3
#define ACF_ACCUMULATE 4
#define ACF_RANDOM 5
uchar record_space_mode; /* fsr/bsr space mode */
#define SCSI_SPACE_MODE 1
#define AIX_SPACE_MODE 2
uchar logical_write_protect; /* logical write protect */
#define NO_PROTECT 0
#define ASSOCIATED_PROTECT 1
#define PERSISTENT_PROTECT 2
#define WORM_PROTECT 3
uchar capacity_scaling; /* capacity scaling */
#define SCALE_100 0
#define SCALE_75 1
#define SCALE_50 2
#define SCALE_25 3
#define SCALE_VALUE 4 /* use capacity_scaling_value below */
uchar retain_reservation; /* retain reservation */
uchar alt_pathing; /* alternate pathing active */
boolean emulate_autoloader; /* emulate autoloader in random mode */
uchar medium_type; /* tape medium type */
uchar density_code; /* tape density code */
boolean disable_sim_logging; /* disable sim/mim error logging */
boolean read_sili_bit; /* SILI bit setting for read commands*/
uchar capacity_scaling_value; /* capacity scaling provided value */
uchar reserve_type; /* reservation type */
#define RESERVE6_RESERVE 0 /* SCSI Reserve 6 type */
#define PERSISTENT_RESERVE 1 /* persistent reservation type */
uchar reserve_key[8]; /* persistent reservation key */
uchar data_safe_mode; /* data safe mode */
ushort pew_size; /* programmable early warning size */
uchar reserved[9];
};
pew_size
When a WRITE or WRITE FILE MARK (WFM) command writes data or filemark upon first reaching the PEWZ, Atape driver sets ENOSPC for Write and WFM to
indicate that the current position reaches the PEWZ. After PEWZ is reached and before Early Warning is reached, all further writes and WFMs are allowed. The
TRAILER parameter and the current design for LEOM (Logical End of Medium/Partition, or Early Warning Zone) and PEOM (Physical End of Medium/Partition) have
no effect on the driver behavior in PEWZ.
#include <sys/Atape.h>
struct stchgp_s stchgp;
STIOCSYNC
Edit online
This input/output control (IOCTL) command flushes the tape buffers to the tape immediately.
if (ioctl(tapefd,STIOCSYNC,NULL)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOCDM
Edit online
This IOCTL command displays and manipulates one or two messages on the message display. The message that is sent with this call does not always remain on the
display. It depends on the current state of the tape device.
#define MAXMSGLEN 8
struct stdm_s
{
char dm_func; /* function code */
/* function selection */
#define DMSTATUSMSG 0x00 /* general status message */
#define DMDVMSG 0x20 /* demount/verify message */
#define DMMIMMED 0x40 /* mount with immediate action indicator*/
#define DMDEMIMMED 0xE0 /* demount/mount with immediate action */
/* message control */
#include <sys/Atape.h>
struct stdm_s stdm;
stdm.dm_func=DMSTATUSMSG|DMMSG0;
bcopy("SSD",stdm.dm_msg0,8);
if (ioctl(tapefd,STIOCDM,&stdm)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOCQRYPOS or STIOCSETPOS
Edit online
The STIOCQRYPOS IOCTL command queries the position on the tape. The STIOCSETPOS IOCTL command sets the position on the tape. Only the block_type and curpos
fields are used during a set operation. The tape position is defined as where the next read or write operation occurs. The query function can be used independently or with
the set function. Also, the set function can be used independently or with the query function.
The block_type field is set to QP_LOGICAL when a SCSI logical blockid format is wanted. During a query operation, the curpos field is set to a simple unsigned int.
On IBM® 3490 tape drives only, the block_type field can be set to QP_PHYSICAL. Setting this block_type on any other device is ignored and defaults to QP_LOGICAL. After
a set operation, the position is at the logical block that is indicated by the curpos field. If the block_type field is set to QP_PHYSICAL, the curpos field that is returned is a
vendor-specific blockid format from the tape device. When QP_PHYSICAL is used for a query operation, the curpos field is used only in a subsequent set operation with
QP_PHYSICAL. This function completes a high speed locate operation. Whenever possible, use QP_PHYSICAL because it is faster. This advantage is obtained only when
the set operation uses the curpos field from the QP_PHYSICAL query.
After a query operation, the lbot field indicates the last block of the data that was transferred physically to the tape. If the application writes 12 (0 - 11) blocks and lbot
equals 8, then three blocks are in the tape buffer. This field is valid only if the last command was a write command. This field does not reflect the number of application
write operations. A write operation can translate into multiple blocks. It reflects tape blocks as indicated by the block size. If an attempt is made to obtain this information
and the last command is not a write command, the value of LBOT_UNKNOWN is returned.
The driver sets the bot field to TRUE if the tape position is at the beginning of the tape. Otherwise, it is set to FALSE. The driver sets the eot field to TRUE if the tape is
positioned between the early warning and the physical end of the tape. Otherwise, it is set to FALSE.
The number of blocks and number of bytes currently in the tape device buffers is returned in the num_blocks and num_bytes fields. The bcu and bycu settings indicate
whether these fields contain valid data. The block ID of the next block of data that transferred to or from the physical tape is returned in the tapepos field.
The partition number field that is returned is the current partition of the loaded tape.
#include <sys/Atape.h>
struct stpos_s stpos;
stpos.block_type=QP_PHYSICAL;
if (ioctl(tapefd,STIOCQRYPOS,&stpos)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
oldposition=stpos.curpos;
.
.
STIOCQRYSENSE
Edit online
This IOCTL command returns the last sense data that is collected from the tape device, or it issues a new Request Sense command and returns the collected data. If
LASTERROR is requested, the sense data is valid only if the last tape operation has an error that issued a sense command to the device. If the sense data is valid, the
IOCTL command completes successfully and the len field is set to a value greater than zero.
The residual_count field contains the residual count from the last operation.
#include <sys/Atape.h>
struct stsense_s stsense;
stsense.sense_type=LASTERROR;
#define MEDIUM_ERROR 0x03
if (ioctl(tapefd,STIOCQRYSENSE,&stsense)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
if ((stsense.sense[2]&0x0F)==MEDIUM_ERROR)
{
printf("We're in trouble now!");
exit(SENSE_KEY(&stsense.sense));
}
STIOCQRYINQUIRY
Edit online
This IOCTL command returns the inquiry data from the device. The data is divided into standard and vendor-specific portions.
BYTE b1;
/* macros for accessing fields of byte 2 */
#define RMB(x) ((x->b1 & 0x80)>>7) /* removable media bit */
#define FIXED 0
#define REMOVABLE 1
#define device_type_qualifier(x) (x->b1 & 0x7F) /* vendor specific */
BYTE b3;
/* macros for accessing fields of byte 4 */
#define AENC(x) ((x->b3 & 0x80)>>7) /* asynchronous event notification */
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define TrmIOP(x) ((x->b3 & 0x40)>>6) /* support terminate I/O process message? */
#define Response_Data_Format(x) (x->b3 & 0x0F)
#define SCSI1INQ 0 /* SCSI-1 standard inquiry data format */
#define CCSINQ 1 /* CCS standard inquiry data format */
#define SCSI2INQ 2 /* SCSI-2 standard inquiry data format */
BYTE b7;
/* macros for accessing fields of byte 7 */
#define RelAdr(x) ((x->b7 & 0x80)>>7) /* the following fields are true or false */
#define WBus32(x) ((x->b7 & 0x40)>>6)
#define WBus16(x) ((x->b7 & 0x20)>>5)
#define Sync(x) ((x->b7 & 0x10)>>4)
#define Linked(x) ((x->b7 & 0x08)>>3)
#define CmdQue(x) ((x->b7 & 0x02)>>1)
#define SftRe(x) ((x->b7 & 0x01)
char vendor_identification[8];
char product_identification[16];
char product_revision_level[4];
};
struct st_inquiry
{
struct inq_data_s standard;
BYTE vendor_specific[255-sizeof(struct inq_data_s)];
};
STIOC_LOG_SENSE
Edit online
This IOCTL command returns the log sense data from the device. If volume logging is set to On, the log sense data is saved in the tape log file.
struct log_sense
{
struct log_record_header header;
char data[MAXLOGSENSE];
}
if (ioctl(tapefd,STIOC_LOG_SENSE,&logdata)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOC_RECOVER_BUFFER
Edit online
Each STIOC_RECOVER_BUFFER IOCTL call returns one block of data from the device. This ioctl command can be issued multiple times to completely recover all the
buffered data from the device.
After the IOCTL command is completed, the ret_len field contains the number of bytes returned in the application buffer for the block. If no blocks are in the tape device
buffer, then the ret_len value is set to zero.
struct buffer_data
{
char *buffer;
int bufsize;
int ret_len;
};
if (ioctl(tapefd,STIOC_RECOVER_BUFFER,&bufdata)<0)
{
printf("IOCTL failure. errno=%d",errno);
}
else
{
printf("Returned bytes=%d",bufdata.ret_len);
}
STIOC_LOCATE
Edit online
This IOCTL command causes the tape to be positioned at the specified block ID. The block ID used for the command must be obtained with the STIOC_READ_POSITION
command.
#include <sys/Atape.h>
STIOC_READ_POSITION
Edit online
This IOCTL command returns the block ID of the current position of the tape. The block ID returned from this command can be used with the STIOC_LOCATE command to
set the position of the tape.
#include <sys/Atape.h>
STIOC_SET_VOLID
Edit online
This IOCTL command sets the volume name for the currently mounted tape. The volume name is used by the device driver for tape volume logging only and is not written
or stored on the tape. The volume name is reset to unknown whenever an unload command is issued to unload the current tape. The volume name can be queried and set
by using the STIOCQRYP and STIOCSETP IOCTLs.
The argument that is used for this command is a character pointer to a buffer that contains the name of the volume to be set.
STIOC_DUMP
Edit online
This IOCTL command forces a dump on the tape device, then stores the dump to either a host-specified file or in the /var/adm/ras system directory. The device driver
stores up to three dumps in this directory. The first dump that is created is named Atape.rmtx.dump1, where x is the device number, for example, rmt0. The second and
third dumps are dump2 and dump3. After a third dump file is created, the next dump starts at dump1 again and overlays the previous dump1 file.
The argument that is used for this command is NULL to dump to the system directory. Or, it is a character pointer to a buffer that contains the path and file name for the
dump file. The dump can also be stored on a diskette by specifying /dev/rfd0 for the name.
STIOC_FORCE_DUMP
Edit online
This IOCTL command forces a dump on the tape device. The dump can be retrieved from the device by using the STIOC_READ_DUMP IOCTL.
STIOC_READ_DUMP
Edit online
This IOCTL command reads a dump from the tape device. Then, it stores the dump to either a host specified file or in the /var/adm/ras system directory. The device driver
stores up to three dumps in this directory. The first dump that is created is named Atape.rmtx.dump1, where x is the device number, for example rmt0. The second and
third dumps are dump2 and dump3. After a third dump file is created, the next dump starts at dump1 again and overlays the previous dump1 file.
Dumps are either generated internally by the tape drive or can be forced by using the STIOC_FORCE_DUMP IOCTL.
STIOC_LOAD_UCODE
Edit online
This IOCTL command downloads microcode to the device. The argument that is used for this command is a character pointer to a buffer that contains the path and file
name of the microcode. Microcode can also be loaded from a diskette by specifying /dev/rfd0 for the name.
STIOC_RESET_DRIVE
Edit online
This IOCTL command issues a SCSI Send Diagnostic command to reset the tape drive. There are no arguments for this IOCTL command.
exit(errno);
}
STIOC_FMR_TAPE
Edit online
This IOCTL command creates an FMR tape. The tape is created with the current microcode loaded in the tape device.
This IOCTL command obtains the device number that is used for communicating with the IBM® TotalStorage™ Enterprise library 3494.
int device;
if (ioctl(tapefd,MTDEVICE,&device)<0)
{
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOC_PREVENT_MEDIUM_REMOVAL
Edit online
This IOCTL command prevents an operator from removing medium from the device until the STIOC_ALLOW_MEDIUM_REMOVAL command is issued or the device is
reset.
#include <sys/Atape.h>
STIOC_ALLOW_MEDIUM_REMOVAL
Edit online
This IOCTL command allows an operator to remove medium from the device. This command is used normally after an STIOC_PREVENT_MEDIUM_REMOVAL command to
restore the device to the default state.
#include <sys/Atape.h>
STIOC_REPORT_DENSITY_SUPPORT
Edit online
This IOCTL command issues the SCSI Report Density Support command to the tape device and returns either all supported densities or supported densities for the
currently mounted media. The media field specifies which type of report is requested. The number_reports field is returned by the device driver and indicates how many
density reports in the reports array field were returned.
The data structures that are used with this IOCTL are
struct report_density_support
{
uchar media; /* report all or current media as defined above */
ushort number_reports; /* number of density reports returned in array */
struct density_report reports[MAX_DENSITY_REPORTS];
};
#include <sys/Atape.h>
int stioc_report_density_support(void)
{
int i;
struct report_density_support density;
density.media = ALL_MEDIA_DENSITY;
if (density.reports[i].wrtok)
printf(" Write OK..............Yes\n");
else
printf(" Write OK..............No\n");
if (density.reports[i].dup)
printf(" Duplicate.............Yes\n");
else
printf(" Duplicate.............No\n");
if (density.reports[i].deflt)
printf(" Default...............Yes\n");
else
printf(" Default............... No\n");
density.media = CURRENT_MEDIA_DENSITY;
if (density.reports[i].wrtok)
printf(" Write OK..............Yes\n");
else
printf(" Write OK..............No\n");
if (density.reports[i].dup)
if (density.reports[i].deflt)
printf(" Default...............Yes\n");
else
printf(" Default...............No\n");
return errno;
}
The STIOC_GET_DENSITY IOCTL is used to query the current write density format settings on the tape drive. The current density code from the drive Mode Sense header,
the Read/Write Control Mode page default density, and pending density are returned.
The STIOC_SET_DENSITY IOCTL is used to set a new write density format on the tape drive by using the default and pending density fields. The density code field is not
used and ignored on this IOCTL. The application can specify a new write density for the current loaded tape only or as a default for all tapes. Refer to the examples.
The application must get the current density settings first before the current settings are modified. If the application specifies a new density for the current loaded tape
only, then the application must issue another Set Density IOCTL after the current tape is unloaded and the next tape is loaded to either the default maximum density or a
new density. This action ensures the tape drive uses the correct density. If the application specifies a new default density for all tapes, the setting remains in effect until
changed by another set density IOCTL or the tape drive is closed by the application.
struct density_data_t
{
char density_code; /* mode sense header density code */
char default_density; /* default write density */
char pending_density; /* pending write density */
char reserved[9];
};
Note:
1. The IOCTLs are only supported on tape drives that can write multiple density formats. Refer to the Hardware Reference for the specific tape drive to determine
whether multiple write densities are supported. If the tape drive does not support the IOCTLs, errno EINVAL is returned.
2. The device driver always sets the default maximum write density for the tape drive on every open system call. Any previous STIOC_SET_DENSITY IOCTL values
from the last open are not used.
3. If the tape drive detects an invalid density code or cannot complete the operation on the STIOC_SET_DENSITY IOCTL, the errno is returned. Then, the current drive
density settings before the IOCTL are restored.
4. The struct density_data_t defined in the header file is used for both IOCTLs. The density_code field is not used and ignored on the STIOC_SET_DENSITY
IOCTL.
Examples
struct density_data_t data;
/* set 3592 J1A density format for current loaded tape only */
data.default_density = 0x7F;
data.pending_density = 0x51;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
/* unload tape */
/* load next tape */
/* set 3592 E05 density format for current loaded tape only */
data.default_density = 0x7F;
data.pending_density = 0x52;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
/* unload tape */
/* load next tape */
/* set default maximum density for current loaded tape */
data.default_density = 0;
data.pending_density = 0;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
The STIOC_CANCEL_ERASE IOCTL is used to cancel an erase operation currently in progress. This action happens when an application issued the STIOCTOP IOCTL with
the st_op field that specifies STERASE_IMM. The application that issued the erase and is waiting for it to complete then returns immediately with errno ECANCELLED. This
IOCTL always returns 0 whether an erase immediate operation is in progress or not.
This IOCTL can be issued only when the openx() extended parameter SC_TMCP is used to open the device. It happens when the application that issued the erase still has
the device currently open. There is no argument for this IOCTL and the arg parameter is ignored.
GET_ENCRYPTION_STATE
Edit online
This IOCTL command queries the drive's encryption method and state. The data structure that is used for this IOCTL is for all of the supported operating systems.
struct encryption_status {
uchar encryption_capable; /* (1)Set this field as a boolean based on the
capability of the drive */
uchar encryption_method; /* (2)Set this field to one of the
#defines METHOD_* below */
#define METHOD_NONE 0 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_LIBRARY 1 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_SYSTEM 2 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_APPLICATION 3 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_CUSTOM 4 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_UNKNOWN 5 /* Only used in GET_ENCRYPTION_STATE */
uchar[13] reserved;
};
default:
printf("encryption method.......Error\n");
}
switch(encryption_status_t.encryption_state)
{
case STATE_OFF:
printf("encryption state........OFF\n");
break;
case STATE_ON:
printf("encryption state........ON\n");
break;
case STATE_NA:
default:
printf("encryption state......Error\n");
}
}
return rc;
}
SET_ENCRYPTION_STATE
Edit online
This IOCTL command allows set encryption state only for application-managed encryption. On unload, some of the drive settings can be reset to default. To set the
encryption state, the application must issue this IOCTL after a tape is loaded and at BOP.
The data structure used for this IOCTL is the same as the one for GET_ENCRYPTION_STATE. An example of the SET_ENCRYPTION_STATE command is
if(option == 0)
encryption_status_t.encryption_state = STATE_OFF;
else if(option == 1)
encryption_status_t.encryption_state = STATE_ON;
else
{
printf("Invalid parameter.\n");
return -EINVAL;
}
return rc;
}
SET_DATA_KEY
Edit online
This IOCTL command allows set the data key only for application-managed encryption. The data structure that is used for this IOCTL is for all of the supported operating
systems.
struct data_key
{
uchar[12 data_key_index;
uchar data_key_index_length;
uchar[15] reserved1;
uchar[32] data_key;
uchar[48] reserved2;
};
int set_datakey(void)
{
int rc = 0;
struct data_key encryption_data_key_t;
READ_TAPE_POSITION
Edit online
The READ_TAPE_POSITION IOCTL is used to return Read Position command data in either the short, long, or extended form. The type of data to return is specified by
setting the data_format field to either RP_SHORT_FORM, RP_LONG_FORM, or RP_EXTENDED_FORM.
struct short_data_format {
uint bop:1, /* beginning of partition */
eop:1, /* end of partition */
locu:1, /* 1 means num_buffer_logical_obj field is
unknown */
bycu:1, /* 1 means the num_buffer_bytes field is
unknown */
rsvd :1,
lolu:1, /* 1 means the first and last logical
obj position fields are unknown */
perr: 1, /* 1 means the position fields have
overflowed and can not be reported
*/
bpew :1; /* beyond programmable early warning
*/
uchar active_partition; /* current active partition */
char reserved[2];
uint first_logical_obj_position; /* current logical object position */
uint last_logical_obj_position; /* next logical object to be transferred
to tape */
uint num_buffer_logical_obj; /* number of logical objects in buffer */
uint num_buffer_bytes; /* number of bytes in buffer */
char reserved1;
};
struct long_data_format {
uint bop:1, /* beginning of partition */
eop:1, /* end of partition */
rsvd1:2,
mpu:1, /* 1 means the logical file id field
in unknown */
lonu:1, /* 1 means either the partition number
or logical obj number field
are unknown */
rsvd2:1,
bpew :1; /* beyond programmable early
warning */
char reserved[6];
uchar active_partition; /* current active partition */
ullong logical_obj_number; /* current logical object
position */
ullong logical_file_id; /* number of filemarks from bop
and current logical position */
ullong obsolete;
};
struct extended_data_format {
uint bop:1, /* beginning of partition */
eop:1, /* end of partition */
locu:1, /* 1 means num_buffer_logical_obj field
is unknown */
bycu:1, /* 1 means the num_buffer_bytes field
is unknown */
rsvd :1,
lolu:1, /* 1 means the first and last logical obj
position fields are unknown */
perr: 1, /* 1 means the position fields have
overflowed and can not be reported */
bpew :1; /* beyond programmable early warning */
uchar active_partition; /* current active partition */
ushort additional_length;
uint num_buffer_logical_obj; /* number of logical objects in buffer */
ullong first_logical_obj_position; /* current logical object position */
ullong last_logical_obj_position; /* next logical object to be transferred
to tape */
ullong num_buffer_bytes; /* number of bytes in buffer */
char reserved;
};
struct read_tape_position{
uchar data_format; /* Specifies the return data format either short,
long or extended as defined above */
union
{
struct short_data_format rp_short;
struct long_data_format rp_long;
struct extended_data_format rp_extended;
char reserved[64];
} rp_data;
};
#include <sys/Atape.h>
if (rpos.rp_data.rp_long.mpu)
printf(" Logical File ID ............ UNKNOWN \n");
else
printf(" Logical File ID ............ %llu \n",
rpos.rp_data.rp_long.logical_file_id);
SET_TAPE_POSITION
Edit online
The SET_TAPE_POSITION IOCTL is used to position the tape in the current active partition to either a logical block id or logical filemark. The logical_id_type field in the
IOCTL structure specifies either a logical block or logical filemark.
struct set_tape_position{
uchar logical_id_type; /* Block or file as defined above */
ullong logical_id; /* logical object or logical file to position to */
char reserved[32];
};
#include <sys/Atape.h>
SET_ACTIVE_PARTITION
Edit online
The SET_ACTIVE_PARTITION IOCTL is used to position the tape to a specific partition. Then, it becomes the current active partition for subsequent commands and a
specific logical bock id in the partition. To position to the beginning of the partition, the logical_block_id field is set to 0.
struct set_active_partition {
uchar partition_number; /* Partition number 0-n to change to */
ullong logical_block_id; /* Blockid to locate to within partition */
char reserved[32];
};
#include <sys/Atape.h>
QUERY_PARTITION
Edit online
The QUERY_PARTITION IOCTL is used to return partition information for the tape drive and the current media in the tape drive. It includes the current active partition the
tape drive is using for the media. The number_of partitions field is the current number of partitions on the media and the max_partitions is the maximum partitions that
the tape drive supports. The size_unit field can be either one of the defined values or another value such as 8. It is used with the size array field value for each partition to
specify the actual size partition sizes. The partition_method field is either Wrap-wise Partitioning or Longitudinal Partitioning. Refer to CREATE_PARTITION for details.
struct query_partition {
uchar max_partitions; /* Max number of supported partitions */
uchar active_partition; /* current active partition on tape */
uchar number_of_partitions; /* Number of partitions from 1 to max */
uchar size_unit; /* Size unit of partition sizes below */
ushort size[MAX_PARTITIONS]; /* Array of partition sizes in size units */
/* for each partition, 0 to (number - 1) */
uchar partition_method; /* partitioning type */
char reserved [31];
};
#include <sys/Atape.h>
CREATE_PARTITION
Edit online
The CREATE_PARTITION IOCTL is used to format the current media in the tape drive into 1 or more partitions. The number of partitions to create is specified in the
number_of_partitions field. When more than one partition is created, the type field specifies the type of partitioning, either FDP, SDP, or IDP. The tape must be positioned
at the beginning of tape (partition 0 logical block id 0) before this IOCTL is used.
If the number_of_partitions field to create in the IOCTL structure is one partition, all other fields are ignored and not used. The tape drive formats the media by using its
default partitioning type and size for a single partition.
There are two partition types: Wrap-wise Partitioning (Figure 1) optimized for streaming performance, and Longitudinal Partitioning (Figure 2) optimized for random access
performance. Media is always partitioned into 1 by default. Or, more than one partition where the data partition always exists as partition 0 and other extra index partition
1 to n can exist.
A WORM media cannot be partitioned and the Format Medium commands are rejected. Attempts to scale a partitioned media is accepted. However, only if you use the
correct FORMAT field setting, as part of scaling the volume is set to a single data partition cartridge.
The following chart lists the maximum number of partitions that the tape drive supports.
Table 1. Number of supported partitions
Drive type Maximum number of supported partitions
LTO 5 (TS2250 and TS2350) and later 2 in Wrap-wise Partitioning
3592 E07 (TS 1140) 4 in Wrap-wise Partitioning
2 in Longitudinal Partitioning
The data structure that is used with this IOCTL is
struct tape_partition {
uchar type; /* Type of tape partition to create */
uchar number_of_partitions; /* Number of partitions to create */
uchar size_unit; /* IDP size unit of partition sizes below */
ushort size[MAX_PARTITIONS]; /* Array of partition sizes in size units */
/* for each partition,0 to (number - 1) */
uchar partition_method; /* partitioning type */
char reserved [31];
};
#include <sys/Atape.h>
The ALLOW_DATA_OVERWRITE IOCTL is used to set the drive to allow a subsequent data write type command at the current position. Or, it allows a
CREATE_PARTITION IOCTL when data safe (append-only) mode is enabled.
For a subsequent write type command, the allow_format_overwrite field must be set to 0. The partition_number and logical_block_id fields must be set to the current
partition and position within the partition where the overwrite occurs.
For a subsequent CREATE_PARTITION IOCTL, the allow_format_overwrite field must be set to 1. The partiton_number and logical_block_id fields are not used. However,
the tape must be at the beginning of tape (partition 0 logical block id 0) before the CREATE_PARTITION IOCTL is issued.
struct allow_data_overwrite{
uchar partition_number; /* Partition number 0-n to overwrite */
ullong logical_block_id; /* Blockid to overwrite to within partition */
uchar allow_format_overwrite; /* allow format if in data safe mode */
char reserved[32];
};
#include <sys/Atape.h>
/* get current tape position for a subsequent write type command and */
/* set the allow_data_overwrite fields with the current position for the next
write type command */
rpos.data_format = RP_LONG_FORM;
if (ioctl (fd, READ_TAPE_POSITION, &rpos) <0)
retun errno;
data_overwrite.partition_number = rpos.rp_data.rp_long.active_partition;
data_overwrite.logical_block_id = rpos.rp_data.rp_long.logical_obj_number;
data_overwrite.allow_format_overwrite = 0;
ioctl (fd, ALLOW_DATA_OVERWRITE, &data_overrite;);
data_overwrite.allow_format_overwrite = 1;
ioctl (fd, ALLOW_DATA_OVERWRITE, &data_overwrite);
QUERY_LOGICAL_BLOCK_PROTECTION
Edit online
The IOCTL queries whether the drive can support this feature, what Logical Block Protection (LBP) method is used, and where the protection information is included.
The lbp_capable field indicates whether the drive has logical block protection capability. The lbp_method field displays if LBP is enabled and what the protection method
is. The LBP information length is shown in the lbp_info_length field. The fields of lbp_w, lbp_r, and rbdp present that the protection information is included in write, read,
or recover buffer data.
struct logical_block_protection
{
uchar lbp_capable; /* [OUTPUT] the capability of lbp for QUERY ioctl only */
uchar lbp_method; /* lbp method used for QUERY [OUTPUT]and SET [INPUT] ioctls */
#define LBP_DISABLE 0x00
#define REED_SOLOMON_CRC 0x01
uchar lbp_info_length; /* lbp info length for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar lbp_w; /* protection info included in write data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar lbp_r; /* protection info included in read data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar rbdp; /* protection info included in recover buffer data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar reserved[26];
};
#include <sys/Atape.h>
SET_LOGICAL_BLOCK_PROTECTION
Edit online
The IOCTL enables or disables Logical Block Protection, sets up what method is used, and where the protection information is included.
The lbp_capable field is ignored in this IOCTL by the Atape driver. If the lbp_method field is 0 (LBP_DISABLE), all other fields are ignored and not used. When the
lbp_method field is set to a valid non-zero method, all other fields are used to specify the setup for LBP.
struct logical_block_protection
{
uchar lbp_capable; /* [OUTPUT] the capability of lbp for QUERY ioctl only */
uchar lbp_method; /* lbp method used for QUERY [OUTPUT] and SET [INPUT] ioctls */
#define LBP_DISABLE 0x00
#define REED_SOLOMON_CRC 0x01
uchar lbp_info_length; /* lbp info length for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar lbp_w; /* protection info included in write data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar lbp_r; /* protection info included in read data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar rbdp; /* protection info included in recover buffer data */
/* a boolean for QUERY [OUTPUT] and SET [INPUT] ioctls */
uchar reserved[26];
};
#include <sys/Atape.h>
int rc;
struct logical_block_protection lbp_protect;
if (rc)
printf ("Set Logical Block Protection Fails (rc %d)",rc);
else
printf ("Set Logical Block Protection Succeeds");
Note:
1. The drive always expects a CRC attached with a data block when LBP is enabled for lbp_r and lbp_w. Without the CRC bytes attachment, the drive fails the Read
and Write command. To prevent the CRC block transfer between the drive and application, the maximum block size limit must be determined by application. Call
the STIOCQRYP IOCTL and get the system maximum block size limit. Call the Read Block Limits command to get the drive maximum block size limit. Then, use the
minimum of the two limits.
2. When a unit attention with a power-on and device reset (Sense key/Asc-Ascq x6/x2900) occurs, the LBP enable bits (lbp_w, lbp_r, and rbdp) are reset to OFF by
default. Atape tape driver returns EIO for an IOCTL call in this situation. Once the application determines it is a reset unit attention in the sense data, it responses to
query LBP setup and reissues this IOCTL to set up LBP properly.
3. The LBP setting is controlled by the application and not the device driver. If an application enables LBP, it must also disable LBP when it closes the drive, as this
action is not done by the device driver.
STIOC_READ_ATTRIBUTE
Edit online
#include <sys/Atape.h>
int rc,attr_len;
struct read_attribute rd_attr;
memset(&rd_attr,0,sizeof(struct read_attribute));
rd_attr.service_action=0x00;
rd_attr.partition_number=1;
rd_attr.first_attr_id=0x800;
if (rc)
printf ("Read Attribute failed (rc %d)",rc);
else
{
printf ("Read Attribute Succeeds!");
dump_bytes (rd_attr.data, min(MAX_ATTR_LEN, rd_attr.attr_data_len),
"Attribute Data");
}
STIOC_WRITE_ATTRIBUTE
Edit online
The IOCTL sets the attributes in medium auxiliary memory at a specific partition.
struct write_attribute
{
uchar write_cache; /* [IN] WTC - Write-through cache */
uchar partition_number; /* [IN] the partition which the attribute is belonged to */
uint parm_list_len; /* [IN] parameter list length */
uchar reserved[10];
char data[MAX_ATTR_LEN]; /* [IN] write attributes data */
} ;
#include <sys/Atape.h>
int rc;
struct write_attribute wr_attr;
memset(&wr_attr,0,sizeof(struct write_attribute));
wr_attr.write_cache=0;
wr_attr.parm_list_len=0x11;
wr_attr.data[3]=0x0D;
wr_attr.data[4]=0x08;
wr_attr.data[6]=0x01;
wr_attr.data[8]=0x08;
wr_attr.data[9]='I';
wr_attr.data[10]='B';
wr_attr.data[11]='M';
wr_attr.data[12]=' ';
wr_attr.data[13]='T';
wr_attr.data[14]='E';
wr_attr.data[15]='S';
wr_attr.data[16]='T';
if (rc)
printf ("Write Attribute failed (rc %d)",rc);
else
printf ("Write Attribute Succeeds");
VERIFY_TAPE_DATA
374 IBM TS4300 Tape Library
Edit online
The IOCTL issues a VERIFY command. This command causes data to be read from the tape and passed through the drive’s error detection and correction hardware. This
action determines whether it can be recovered from the tape, whether the protection information is present, and validates correctly on logical block on the medium. The
driver returns the IOCTL a failure or a success if the VERIFY SCSI command is completed in a Good SCSI status.
Note:
1. When an application sets the VBF method, it considers the driver’s close operation in which the driver can write filemarks in its close, which the application did not
explicitly request. For example, some drivers write two consecutive filemarks that mark the end of data on the tape in its close, if the last tape operation was a
WRITE command.
2. Per the user's or application's request, Atape driver sets the block size in the field of Block Length in mode block descriptor for Read and Write commands. Then, it
maintains this block size setting in a whole open. For instance, the tape driver sets a zero in the Block Length field for the variable block size. This act causes the
missing of an overlength condition on a SILI Read. Block Length must be set to a non-zero value.
Before Fixed bit is set to ON with VTE or VBF ON in Verify IOCTL, the application is requested to set the block size in mode block descriptor. Then, the drive uses it
to verify the length of each logical block. For example, a 256 KB length is set in Block Length field to verify the data. The setup overrides the early setting from IBM®
tape driver.
When the application completes the Verify IOCTL call, the original block size setting must be restored for Read and Write commands, the application either issues
set block size IOCTL. Or, it closes the drive immediately and reopens the drive for the next tape operation. It is recommended to reopen the drive for the next tape
operation. Otherwise, it causes next Read and Write command misbehavior.
3. To support DPF for Verify command with FIXED bit on, it is requested to issue an IBM tape driver to set blksize in STIOCSETP IOCTL. IBM tape driver sets the block
length in mode block descriptor same as the block size and save the block size in kernel memory. The driver restores the block length before it tries the Verify SCSI
command again. Otherwise, it causes the Verify command to fail.
4. The IOCTL can be returned longer than the timeout when DPF occurs.
struct verify_data
{
uint : 2, /* reserved */
vte: 1, /* [IN] verify to end-of-data */
vlbpm: 1, /* [IN] verify logical block protection info */
vbf: 1, /* [IN] verify by filemarks */
immed: 1, /* [IN] return SCSI status immediately */
bytcmp: 1, /* No use currently */
fixed: 1; /* [IN] set Fixed bit to verify the length of each logical block */
uchar reseved[15];
uint verify_length; /* [IN] amount of data to be verified */
} ;
An example of the VERIFY_TAPE_DATA command is to verify all of logical block from the current position to end of data. It includes a verification that each logical block
uses the logical block protection method that is specified in the Control Data Protection mode page, when vte is set to 1 with vlbpm on.
#include <sys/Atape.h>
int rc;
struct verify_data vrf_data;
memset(&vrf_data,0,sizeof(struct verify_data));
vrf_data.vte=1;
vrf_data.vlbpm=1;
vrf_data.vbf=0;
vrf_data.immed=0;
vrf_data.fixed=0;
vrf_data.verify_length=0;
if (rc)
printf ("Verify Tape Data failed (rc %d)",rc);
else printf
("Verify Tape Data Succeeded!");
QUERY_RAO_INFO
Edit online
The IOCTL is used to query the maximum number and size of User Data Segments (UDS) that are supported from tape drive and driver for the wanted uds_type. The
application calls this IOCTL before the GENERATE_RAO and RECEIVE_RAO IOCTLs are issued. The application uses the return data to limit the number of UDS requested
in the GENERATE_RAO IOCTL.
struct query_rao_info {
char uds_type; /* [IN] 0: UDS_WITHOUT_GEOMETRY */
/* 1: UDS_WITH_GEOMETRY */
char reserved[7];
ushort max_uds_number; /* [OUT] Max UDS number supported from drive */
ushort max_uds_size; /* [OUT] Max single UDS size supported from drive in byte */
ushort max_host_uds_number; /* [OUT] Max UDS number supported from driver */
}
int rc;
struct query_rao_info qrao;
bzero(&qrao,sizeof(struct query_rao_info));
qrao.uds_type=uds_type;
rc=ioctl(fd,QUERY_RAO_INFO,&qrao);
if (rc)
printf("QUERY_RAO_INFO fails with rc %d\n",rc);
else
{
max_host_uds_num=qrao.max_host_uds_number;
max_uds_size=qrao.max_uds_size;
}
return rc;
GENERATE_RAO
Edit online
The IOCTL is called to send a GRAO list to request the drive to generate a Recommending Access Order list.
The process method is either 1 or 2 to create a RAO list, and the type of UDS is either with or without the geometry. The uds_number must be not larger than
max_host_uds_number in the QUERY_RAO_INFO IOCTL. The application allocates a memory with grao_list_leng (uds_number * sizeof(struct
grao_uds_desc) +8) for the pointer of grao_list. 8 bytes is the size that is needed for the header portion on of the return data.
struct generate_rao {
char process; /* [IN] Requested process to generate RAO list */
/* 0: no reorder UDS and no calculate locate time */
/* (not currently supported by the drive) */
/* 1: no reorder UDS but calculate locate time */
/* 2: reorder UDS and calculate locate time */
char uds_type; /* [IN] 0: UDS_WITHOUT_GEOMETRY */
/* 1: UDS_WITH_GEOMETRY */
char reserved1[2];
uint grao_list_leng; /* [IN] The data length is allocated for GRAO list. */
char *grao_list; /* [IN] the pointer is allocated to the size of grao_list_leng */
/* (uds_number * sizeof(struct grao_uds_desc)
/* +sizeof(struct grao_list_header)) */
/* and contains the data of GRAO parameter list. */
/* The uds number isn't larger than max_host_uds_number */
/* in QUERY_RAO ioctl. */
char reserved2[8];
}
The grao list is in the format and the parameter data can be generated by using the structures that are defined here.
-- List Header
-- UDS Segment Descriptor (first)
......
-- UDS Segment Descriptor (last)
struct grao_list_header {
uchar reserved[4];
uint addl_data; /* additional data */
}
struct grao_uds_desc {
ushort desc_leng; /* descriptor length */
char reserved[3];
char uds_name[10]; /* uds name given by application */
char partition; /* Partition number 0-n to overwrite */
ullong beginning_loi; /* Beginning logical object ID */
ullong ending_loi; /* Ending logical object ID */
}
#include<sys/Atape.h>
int rc;
struct generate_rao grao;
bzero(&grao,sizeof(struct generate_rao));
grao.process=2;
grao.uds_type=uds_type;
grao.grao_list_leng=max_host_uds_num * sizeof(struct grao_uds_desc)
+ sizeof(struct grao_list_header);
if (!(grao.grao_list=malloc(grao.grao_list_leng)))
{
perror("Failure allocating memory");
return (errno);
rc=ioctl(fd,GENERATE_RAO,&grao);
if (rc)
printf("GENERATE_RAO fails with rc %d\n",rc);
else
printf("GENERATE_RAO succeeds\n");
free(grao.grao_list);
return rc;
RECEIVE_RAO
Edit online
After a GENERATE_RAO IOCTL is completed, the application calls the RECEIVE_RAO IOCTL to receive a recommended access order of UDS from the drive. To avoid a
system crash, it is important that the application allocates a large enough block of memory for the *rrao_list pointer and notifies the driver of the allocated size. It is done
by indicating the size of the buffer in bytes to the rrao_list_leng variable as an input to the receive_rao_list structure.
struct receive_rao_list {
uint rrao_list_offset; /* [IN] The offset of receive RAO list to */
/* begin returning data */
uint rrao_list_leng; /* [IN/OUT] number byte of data length */
/* [IN] The data length is allocated for RRAO */
/* list by application the length is */
/* (max_uds_size * uds_number + */
/* sizeof(struct rrao_list_header) */
/* max_uds_size is reported in */
/* sizeof(struct rrao_list_header) */
/* uds_number is the total UDS number */
/* requested from application in */
/* GENERATE_RAO ioctl */
/* [OUT] the data length is actual returned */
/* in RRAO list from the driver */
char *rrao_list; /* [IN/OUT] the data pointer of RRAO list */
char reserved[8];
};
List Header
......
int rc;
struct receive_rao_list rrao;
bzero(&rrao,sizeof(struct receive_rao_list));
rrao.rrao_list_offset=0;
rrao.rrao_list_leng=max_host_uds_num * max_uds_size + 8;
/* 8 is the header of rrao list */
if (!(rrao.rrao_list=malloc(rrao.rrao_list_leng)))
{
perror("Failure allocating memory");
return (errno);
}
memset(rrao.rrao_list, 0, rrao.rrao_list_leng);
rc=ioctl(fd,RECEIVE_RAO,&rrao);
if (rc)
pintf("RECEIVE_RAO fails with rc %d\n",rc);
else
printf("rrao_list_leng %d\n",rrao.rrao_list_leng);
free(rrao.rrao_list);
return rc;
This ioctl reports the feature of Archive Mode Unthread enable or disable in the tape drive.
struct archive_mode_unthread
{
uchar amu_enable;
uchar reserve[7];
} archive_mode_unthread
#include <sys/Atape.h>
int rc;
struct archive_mode_unthread qamu;
bzero(&qamu,sizeof(struct archive_mode_unthread));
rc = ioctl(fd,QUERY_ARCHIVE_MODE_UNTHREAD,&qamu);
if (rc)
printf("QUERY_ARCHIVE_MODE_UNTHREAD fails with rc %d\n",rc);
else
printf("amu_enable %d \n", qamu.amu_enable);
return rc;
SET_ARCHIVE_MODE_UNTHREAD
Edit online
This ioctl is used to enable or disable the feature of Archive Mode Unthread in the tape drive.
struct archive_mode_unthread
{
uchar amu_enable;
uchar reserve[7];
} archive_mode_unthread;
#include <sys/Atape.h>
int rc;
struct archive_mode_unthread set_amu;
set_amu.amu_enable=ENABLE;
rc=ioctl(fd,SET_ARCHIVE_MODE_UNTHREAD,&set_amu);
if (rc)
printf("SET_ARCHIVE_MODE_UNTHREAD fails with rc %d\n",rc);
else
printf("SET_ARCHIVE_MODE_UNTHREAD succeeds \n");
return rc;
TAPE_LOAD_UNLOAD
Edit online
This ioctl is called to complete the various behaviors of tape cartridge loading. When Archive Mode Unthread is enabled, the variable of RETEN can be used to set the new
unthread method in this new load command. See Table 1 for interaction with other variables.
Table 1. Behavior for the combinations of the retention, load, hold variables
Volume
Hold Load* Retention Description
position
U, M, I, or T 0 0 0 Unload the cartridge from the drive. Upon completion of the command, MAM is not
accessible. If the cartridge is already unloaded, GOOD Status is returned.
U, M, or I 0 0 1 Unload the cartridge from the drive. Upon completion of the command, MAM is not
accessible. If the cartridge is already unloaded, GOOD Status is returned.
T 0 0 1 Run an archive mode Unthread (see SET_ARCHIVE_MODE_UNTHREAD) and then unload the
cartridge from the drive. Upon completion of the command, MAM is not accessible.
U, M, or I 0 1 - Load the cartridge and become READY.
T 0 1 - The logical position is set to logical block 0 of partition 0 (BOP 0) (Not equivalent to a Rewind
command as the active partition is set to partition 0).
U, M, I, or T 1 - 1 The cartridge is moved to the seated position with MAM accessible and the tape not threaded.
U, M, or I 1 - 1 The cartridge is moved to the seated position with MAM accessible and the tape not threaded.
T 1 - 1 An archive mode Unthread (see SET_ARCHIVE_MODE_UNTHREAD) is completed and then
the cartridge is moved to the seated position with MAM accessible and the tape not threaded.
struct tape_load_unload
{
uchar immediate; /* [IN] immediate return a SCSI status */
uchar hold; /* [IN] request MAM accessible and volume not for access */
uchar eot; /* [IN] end of tape, no use and always 0 now */
uchar retention; /* [IN] archive mode unthread */
uchar load; /* [IN] perform a load or unload */
char reserved[11];
};
#include <sys/Atape.h>
int rc;
struct tape_load_unload load_unload;
printf("Tape Load Unload Command....\n");
printf ("Enter immediate : ");
gets (buf);
load_unload.immediate = atoi(buf);
printf ("Enter hold : ");
gets (buf);
load_unload.hold = atoi(buf);
printf ("Enter retention : ");
gets (buf);
load_unload.retention = atoi(buf);
printf ("Enter load : ");
gets (buf);
load_unload.load = atoi(buf);
printf ("\n");
rc = ioctl(fd, TAPE_LOAD_UNLOAD, &load_unload);
if (rc)
printf ("Tape Load Unload Command Fails (rc %d)",rc);
else
printf ("Tape Load Unload Command Succeeds");
return rc;
GET_VHF_DEVICE_STATUS
Edit online
The device drivers provide application a friendly interface GET_VHF_DEVICE_STATUS to report the tape drive and medium statuses. (VHF is short Very High Frequency).
struct get_vhf_device_status
{
uchar pamr; /* [OUT] prevent/allow medium removal */
uchar hiu; /* [OUT] host initialed unload */
uchar macc; /* [OUT] medium auxiliary memory (MAM) accessible */
uchar cmpr; /* [OUT] data compress is enabled */
uchar wrtp; /* [OUT] volume is physically write protected when mprsnt is on */
uchar crqst; /* [OUT] cleaning requested */
uchar crqrd; /* [OUT] cleaning required */
uchar dinit; /* [OUT] this VHF data valid or invalid */
uchar inxtn; /* [OUT] device is transitioning to another state */
uchar rsvd1;
uchar raa; /* [OUT] robotic access allowed */
uchar mprsnt; /* [OUT] medium present */
uchar rsvd2;
uchar mstd; /* [OUT] medium seated */
uchar mthrd; /* [OUT] medium threaded */
uchar mounted; /* [OUT] medium is mounted */
uchar dev_act; /* [OUT] the current activity of the device below */
/* 00h No DT device activity
01h Cleaning operation in progress
02h Medium is being loaded
03h Medium is being unloaded
04h Other medium activity
05h Reading from medium
06h Writing to medium
07h Locating medium
08h Rewinding medium
09h Erasing medium
0Ah Formatting medium
0Bh Calibrating medium
0Ch Other DT device activity
0Dh Microcode update in progress
0Eh Reading encrypted from medium
0Fh Writing encrypted to medium */
Note: IBM tape drivers reports the data from the tape drive. The device drivers still return no error on this ioctl when the tape drive returns a good SCSI status even though
VHF data is invalid, so the application must determine if the data is valid before to use it. The variable of dinit indicates this VHF data valid or invalid. The variable of wrtp
shows a volume is physically write protected only when mprsnt is ON.
An example of the GET_VHF_DEVICE_STATUS command is
#include <sys/Atape.h>
int rc;
struct get_vhf_device_status qvhf;
bzero(&qvhf,sizeof(struct get_vhf_device_status));
rc = ioctl(fd,GET_VHF_DEVICE_STATUS,&qvhf);
if (rc)
printf("GET_VHF_DEVICE_STATUS fails with rc %d\n",rc);
else
printf ("GET_VHF_DEVICE_STATUS Command Succeeds");
return rc;
This chapter describes the set of IOCTL commands that provides control and access to the SCSI medium changer functions. These IOCTL operations can be issued to the
tape special file (such as rmt0), through a separate special file (such as rmt0.smc) that was created during the configuration process, or a separate special file (such as
smc0), to access the medium changer.
When an application opens a /dev/rmt special file that is assigned to a drive that has access to a medium changer, these IOCTL operations are also available. The interface
to the /dev/rmt*.smc special file provides the application access to a separate medium changer device. When this special file is open, the medium changer is treated as a
separate device. While /dev/rmt*.smc is open, access to the IOCTL operations is restricted to /dev/rmt*.smc and any attempt to access them through /dev/rmt* fails.
Overview
Overview
Edit online
SMCIOC_ELEMENT_INFO
Obtain the device element information.
SMCIOC_MOVE_MEDIUM
Move a cartridge from one element to another element.
SMCIOC_EXCHANGE_MEDIUM
Exchange a cartridge in an element with another cartridge.
SMCIOC_POS_TO_ELEM
Move the robot to an element.
SMCIOC_INIT_ELEM_STAT
Issue the SCSI Initialize Element Status command.
SMCIOC_INIT_ELEM_STAT_RANGE
Issue the SCSI Initialize Element Status with Range command.
SMCIOC_INVENTORY
Return the information about the four element types.
SMCIOC_LOAD_MEDIUM
Load a cartridge from a slot into the drive.
SMCIOC_UNLOAD_MEDIUM
Unload a cartridge from the drive and return it to a slot.
SMCIOC_PREVENT_MEDIUM_REMOVAL
Prevent medium removal by the operator.
SMCIOC_ALLOW_MEDIUM_REMOVAL
Allow medium removal by the operator.
SMCIOC_READ_ELEMENT_DEVIDS
Return the device ID element descriptors for drive elements.
SMCIOC_READ_CARTIDGE_LOCATION
Returns the cartridge location information for storage elements in the library.
SMCIOC_ELEMENT_INFO
SMCIOC_MOVE_MEDIUM
SMCIOC_EXCHANGE_MEDIUM
SMCIOC_POS_TO_ELEM
SMCIOC_INIT_ELEM_STAT
SMCIOC_INIT_ELEM_STAT_RANGE
SMCIOC_INVENTORY
SMCIOC_LOAD_MEDIUM
SMCIOC_UNLOAD_MEDIUM
SMCIOC_PREVENT_MEDIUM_REMOVAL
SMCIOC_ALLOW_MEDIUM_REMOVAL
SMCIOC_READ_ELEMENT_DEVIDS
SMCIOC_READ_CARTIDGE_LOCATION
SMCIOC_ELEMENT_INFO
Edit online
struct element_info
{
ushort robot_addr; /* first robot address */
ushort robots; /* number of medium transport elements */
ushort slot_addr; /* first medium storage element address */
ushort slots; /* number of medium storage elements */
ushort ie_addr; /* first import/export element address */
ushort ie_stations; /* number of import/export elements */
ushort drive_addr; /* first data-transfer element address */
ushort drives; /* number of data-transfer elements */
};
#include <sys/Atape.h>
SMCIOC_MOVE_MEDIUM
Edit online
This IOCTL command moves a cartridge from one element to another element.
struct move_medium
{
ushort robot; /* robot address */
ushort source; /* move from location */
ushort destination; /* move to location */
char invert; /* invert before placement bit */
};
#include <sys/Atape.h>
move_medium.robot = 0;
move_medium.invert = 0;
move_medium.source = source;
move_medium.destination = dest;
SMCIOC_EXCHANGE_MEDIUM
Edit online
This IOCTL command exchanges a cartridge in an element with another cartridge. This command is equivalent to two SCSI Move Medium commands. The first moves the
cartridge from the source element to the destination1 element. The second moves the cartridge that was previously in the destination1 element to the destination2
element. The destination2 element can be the same as the source element.
struct exchange_medium
{
ushort robot; /* robot address */
ushort source; /* source address for exchange */
ushort destination1; /* first destination address for exchange */
ushort destination2; /* second destination address for exchange */
char invert1; /* invert before placement into destination1 */
char invert2; /* invert before placement into destination2 */
};
#include <sys/Atape.h>
exchange_medium.robot = 0;
exchange_medium.invert1 = 0;
exchange_medium.invert2 = 0;
exchange_medium.source = 32; /* slot 32 */
exchange_medium.destination1 = 16; /* drive address 16 */
exchange_medium.destination2 = 35; /* slot 35 */
SMCIOC_POS_TO_ELEM
Edit online
struct pos_to_elem
{
ushort robot; /* robot address */
ushort destination; /* move to location */
char invert; /* invert before placement bit */
};
#include <sys/Atape.h>
char buf[10];
struct pos_to_elem pos_to_elem;
pos_to_elem.robot = 0;
pos_to_elem.invert = 0;
pos_to_elem.destination = dest;
SMCIOC_INIT_ELEM_STAT
This IOCTL command instructs the medium changer robotic device to issue the SCSI Initialize Element Status command.
#include <sys/Atape.h>
SMCIOC_INIT_ELEM_STAT_RANGE
Edit online
This IOCTL command issues the SCSI Initialize Element Status with Range command. It is used to audit specific elements in a library by specifying the starting element
address and number of elements. Use the SMCIOC_INIT_ELEM_STAT IOCTL to audit all elements.
struct element_range
{
ushort element_address; /* starting element address */
ushort number_elements; /* number of elements */
}
#include <sys/Atape.h>
/* audit slots 32 to 36 */
elements.element_address = 32;
elements.number_elements = 5;
SMCIOC_INVENTORY
Edit online
This IOCTL command returns information about the four element types. The software application processes the input data (the number of elements about which it
requires information). Then, it allocates a buffer large enough to hold the output for each element type.
struct element_status
{
ushort address; /* element address */
uint :2, /* reserved */
inenab:1, /* media into changer's scope */
exenab:1, /* media out of changer's scope */
access:1, /* robot access allowed */
except:1, /* abnormal element state */
impexp:1, /* import/export placed by operator or robot */
full:1; /* element contains medium */
uchar resvd1; /* reserved */
uchar asc; /* additional sense code */
uchar ascq; /* additional sense code qualifier */
uint notbus:1, /* element not on same bus as robot */
:1, /* reserved */
idvalid:1, /* element address valid */
luvalid:1, /* logical unit valid */
:1, /* reserved */
lun:3; /* logical unit number */
uchar scsi; /* SCSI bus address */
uchar resvd2; /* reserved */
uint svalid:1, /* element address valid */
invert:1, /* medium inverted */
:6; /* reserved */
ushort source; /* source storage element address */
uchar volume[36]; /* primary volume tag */
uchar resvd3[4]; /* reserved */
struct inventory
{
struct element_status *robot_status; /* medium transport element pages */
struct element_status *slot_status; /* medium storage element pages */
struct element_status *ie_status; /* import/export element pages */
struct element_status *drive_status; /* data-transfer element pages */
};
#include <sys/Atape.h>
ushort i;
struct element_status robot_status[1];
struct element_status slot_status[20];
struct element_status ie_status[1];
struct element_status drive_status[1];
struct inventory inventory;
bzero((caddr_t)robot_status,sizeof(struct element_status));
for (i=0;i<20;i++)
bzero((caddr_t)(&slot_status[i]),sizeof(struct element_status));
bzero((caddr_t)ie_status,sizeof(struct element_status));
bzero((caddr_t)drive_status,sizeof(struct element_status));
smcioc_element_info();
inventory.robot_status = robot_status;
inventory.slot_status = slot_status;
inventory.ie_status = ie_status;
inventory.drive_status = drive_status;
SMCIOC_LOAD_MEDIUM
Edit online
This IOCTL command loads a tape from a specific slot into the drive. Or, it loads from the first full slot into the drive if the slot address is specified as zero.
SMCIOC_UNLOAD_MEDIUM
Edit online
This IOCTL command moves a tape from the drive and returns it to a specific slot. Or, it moves a tape to the first empty slot in the magazine if the slot address is specified
as zero. If the IOCTL is issued to the /dev/rmt special file, the tape is automatically rewound and unloaded from the drive first.
#include <sys/Atape.h>
SMCIOC_PREVENT_MEDIUM_REMOVAL
Edit online
This IOCTL command prevents an operator from removing medium from the device until the SMCIOC_ALLOW_MEDIUM_REMOVAL command is issued or the device is
reset.
#include <sys/Atape.h>
SMCIOC_ALLOW_MEDIUM_REMOVAL
Edit online
This IOCTL command allows an operator to remove medium from the device. This command is used normally after an SMCIOC_PREVENT_MEDIUM_REMOVAL command
to restore the device to the default state.
#include <sys/Atape.h>
This IOCTL command issues the SCSI Read Element Status command with the device ID (DVCID) bit set and returns the element descriptors for the data transfer
elements. The element_address field specifies the starting address of the first data transfer element. The number_elements field specifies the number of elements to
return. The application must allocate a return buffer large enough for the number_elements specified in the input structure.
struct read_element_devids
{
ushort element_address; /* starting element address */
ushort number_elements; /* number of elements */
struct element_devid *drive_devid; /* data transfer element pages */
};
struct element_devid
{
ushort address; /* element address */
uint :4, /* reserved */
access:1, /* robot access allowed */
except:1, /* abnormal element state */
:1, /* reserved */
full:1; /* element contains medium */
uchar resvd1; /* reserved */
uchar asc; /* additional sense code */
uchar ascq; /* additional sense code qualifier */
uint notbus:1, /* element not on same bus as robot */
:1, /* reserved */
idvalid:1, /* element address valid */
luvalid:1, /* logical unit valid */
:1, /* reserved */
lun:3; /* logical unit number */
uchar scsi; /* scsi bus address */
uchar resvd2; /* reserved */
uint svalid:1, /* element address valid */
invert:1, /* medium inverted */
:6; /* reserved */
ushort source; /* source storage element address */
uint :4, /* reserved */
code_set:4; /* code set X'2' is all ASCII identifier */
uint :4, /* reserved */
ident_type:4; /* identifier type */
uchar resvd3; /* reserved */
uchar ident_len; /* identifier length */
uchar identifier[36]; /* device identification */
};
#include <sys/Atape.h>
int smcioc_read_element_devids()
{
int i;
struct element_devid *elem_devid, *elemp;
struct read_element_devids devids;
struct element_info element_info;
if (element_info.drives)
{
elem_devid = malloc(element_info.drives * sizeof(struct element_devid));
if (elem_devid == NULL)
{
errno = ENOMEM;
return errno;
}
bzero((caddr_t)elem_devid,element_info.drives * sizeof(struct element_devid));
devids.drive_devid = elem_devid;
devids.element_address = element_info.drive_addr;
devids.number_elements = element_info.drives;
elemp = elem_devid;
for (i = 0; i < element_info.drives; i++, elemp++)
{
printf("\nDrive Address %d\n",elemp->address);
if (elemp->except)
printf(" Drive State .................... Abnormal\n");
free(elem_devid);
return errno;
}
SMCIOC_READ_CARTIDGE_LOCATION
Edit online
The SMCIOC_READ_CARTIDGE_LOCATION IOCTL is used to return the cartridge location information for storage elements in the library. The element_address field
specifies the starting element address to return. The number_elements field specifies how many storage elements are returned. The data field is a pointer to the buffer for
return data. The buffer must be large enough for the number of elements that are returned. If the storage element contains a cartridge, then the ASCII identifier field in
return data specifies the location of the cartridge.
Note: This IOCTL is supported only on the TS3500 (3584) library.
The data structures that are used with this IOCTL are
struct cartridge_location_data
{
ushort address; /* element address */
uint :4, /* reserved */
access:1, /* robot access allowed */
except:1, /* abnormal element state */
:1, /* reserved */
full:1; /* element contains medium */
uchar resvd1; /* reserved */
uchar asc; /* additional sense code */
uchar ascq; /* additional sense code qualifier */
uchar resvd2[3]; /* reserved */
uint svalid:1, /* element address valid */
invert:1, /* medium inverted */
:6; /* reserved */
ushort source; /* source storage element address */
uchar volume[36]; /* primary volume tag */
uint :4, /* reserved */
code_set:4; /* code set X'2' is all ASCII identifier */
uint :4, /* reserved */
ident_type:4; /* identifier type */
uchar resvd3; /* reserved */
uchar ident_len; /* identifier length */
uchar identifier[24]; /* slot identification */
};
struct read_cartridge_location
{
ushort element_address; /* starting element address */
#include <sys/Atape.h>
int i;
struct cartridge_location_data *data, *elemp;
struct read_cartridge_location cart_location;
struct element_info element_info;
if (element_info.slots == 0)
return 0;
elemp = data;
for (i = 0; i < element_info.slots; i++, elemp++)
{
if (elemp->address == 0
) continue;
} free(data);
return 0;
Return codes
Edit online
This chapter describes the return codes that the device driver generates when an error occurs during an operation. The standard errno values are in the AIX®
/usr/include/sys/errno.h header file.
If the return code is input/output error (EIO), the application can issue the STIOCQRYSENSE IOCTL command with the LASTERROR option. Or, it can issue the
SIOC_REQSENSE IOCTL command to analyze the sense data and determine why the error occurred.
[EACCES]
Data encryption access denied.
[EBADF]
A bad file descriptor was passed to the device.
[EBUSY]
An excessive busy state was encountered in the device.
[EFAULT]
A memory failure occurred due to an invalid pointer or address.
[EMEDIA]
An unrecoverable media error was detected in the device.
[ENOMEM]
Insufficient memory was available for an internal memory operation.
[ENOTREADY]
The device was not ready for operation, or a tape was not in the drive.
[ENXIO]
The device was not configured and is not receiving requests.
[EPERM]
The process does not have permission to complete the wanted function.
[ETIMEDOUT]
A command that is timed out in the device.
[ENOCONNECT]
The device did not respond to selection.
[ECONNREFUSED]
The device driver detected that the device vital product data (VPD) changed. The device must be unconfigured in AIX® and reconfigured to correct the condition.
[EAGAIN]
The device was opened before the open operation.
[EBADF]
A write operation was attempted on a device that was opened with the O_RDONLY flag.
[EBUSY]
The device was reserved by another initiator, or an excessive busy state was encountered.
[EINVAL]
The operation that is requested has invalid parameters or an invalid combination of parameters, or the device is rejecting open commands.
[ENOTREADY]
If the device was not opened with the O_NONBLOCK or O_NDELAY flag, then the drive is not ready for operation, or a tape is not in the drive. If a nonblocking flag
was used, then the drive is not ready for operation.
[EWRPROTECT]
An open operation with the O_RDWR or O_WRONLY flag was attempted on a write-protected tape.
[EIO]
An I/O error occurred that indicates a failure to operate the device. Perform the failure analysis.
[EINPROGRESS]
This errno is returned when the extended open flag SC_KILL_OPEN is used to kill all processes that currently have the device opened.
[EINVAL]
The operation that is requested has invalid parameters or an invalid combination of parameters.
The number of bytes requested in the write operation was not a multiple of the block size for a fixed block transfer.
The number of bytes requested in the write operation was greater than the maximum block size allowed by the device for variable block transfers.
[ENOSPC]
A write operation failed because it reached the early warning mark or the programmable early warning zone (PEWZ) while it was in label-processing mode. This
return code is returned only once when the early warning or the programmable early warning zone (PEWZ) is reached.
[ENXIO]
A write operation was attempted after the device reached the logical end of the medium.
[EWRPROTECT]
A write operation was attempted on a write-protected tape.
[EBADF]
A read operation was attempted on a device opened with the O_WRONLY flag.
[EINVAL]
The operation that is requested has invalid parameters or an invalid combination of parameters.
The number of bytes requested in the read operation was not a multiple of the block size for a fixed block transfer.
The number of bytes requested in the read operation was greater than the maximum size allowed by the device for variable block transfers.
[ENOMEM]
The number of bytes requested in the read operation of a variable block record was less than the size of the block. This error is known as an overlength condition.
[EIO]
An I/O error occurred during the operation. Perform the failure analysis.
[ENOTREADY]
A command that is issued during close, such as a rewind command, failed because the device was not ready.
[EINVAL]
The operation that is requested has invalid parameters or an invalid combination of parameters.
This error code also results if the IOCTL is not supported for the device.
[EWRPROTECT]
An operation that modifies the media was attempted on a write-protected tape or a device opened with the O_RDONLY flag.
[EIO]
An I/O error occurred during the operation. Perform the failure analysis.
[ECANCELLED]
The STIOCTOP IOCTL with the st_op field that specifies STERASE_IMM was canceled by another process that issued the STIOC_CANCEL_ERASE IOCTL.
IBM® supplies a tape drive and medium changer device driver for the Linux® platform called IBMtape. IBM also supplies an open source device driver for Linux called
lin_tape. Both IBMtape and lin_tape have the same programming reference as documented in this manual.
Software interface
General IOCTL operations
Tape drive IOCTL operations
Tape drive compatibility IOCTL operations
Medium changer IOCTL operations
Return codes
Software interface
Edit online
Entry points
Medium changer devices
open
close
read
write
ioctl
open
This entry point is driven by the open system call.
The programmer can access IBMtape devices with one of 3 access modes: write only, read only, or read and write.
IBMtape also support the append open flag. When the open function is called with the append flag set to TRUE, IBMtape attempts to rewind and seek two consecutive
filemarks and place the initial tape position between them. Open append fails [errno: EIO] if no tape is loaded or two consecutive filemarks are not on the loaded tape.
Open append does not automatically imply write access. Therefore, an access mode must accompany the append flag during the open operation.
The open function issues a SCSI reserve command to the target device. If the reserve command fails, open fails and errno EBUSY is returned.
close
This entry point is driven explicitly by the close system call and implicitly by the operating system at application program termination.
For non-rewinding special files, such as /dev/IBMtape0n, if the last command before the close function was a successful write, IBMtape writes two consecutive filemarks
that marks the end of data. It then sets the tape position between the two consecutive filemarks. If the last command before the close function successfully wrote one
filemark, then one extra filemark is written that marks the end of data. Then, the tape position is set between the two consecutive filemarks.
For non-rewinding special files, if the last tape command before the close function is write, but the write fails with sense key 6 (Unit Attention) and ASC/ASCQ 29/00
(Power On, Reset, or Bus Device Reset Occurred) or sense key 6 and ASC/ASCQ 28/00 (Not Ready to Ready Transition, Medium May Have Changed), IBMtape does not
write two consecutive tape file marks that mark the end of data during close processing. If the last tape command before the close function is write one file mark and that
command fails with one of the above two errors, IBMtape does not write one extra file mark that marks the end of data during close processing.
For rewind devices, such as /dev/IBMtape0, if the last command before the close function was a successful write, IBMtape writes two consecutive filemarks that mark the
end of data and issues a rewind command. If the last command before the close function successfully wrote one filemark, one extra filemark is written marking the end of
data, and the rewind command is issued. If the write filemark command fails, no rewind command is issued.
The application writers must be aware that a Unit Attention sense data that is presented means that the tape medium might be in an indeterminate condition, and no
assumptions can be made about current tape positioning or whether the medium that was previously in the drive is still in the drive. IBM® suggests that after a Unit
Attention is presented, the tape special file be closed and reopened, label processing/verification be run (to determine that the correct medium is mounted), and explicit
commands be run to locate to the wanted location. Extra processing might also be needed for particular applications.
If an SIOC_RESERVE ioctl was issued from an application before close, the close function does not release the device; otherwise, it issues the SCSI release command. In
both situations, the close function attempts to deallocate all resources that are allocated for the device. If, for some reason, IBMtape is not able to close, an error code is
returned.
Note: The return code for close must always be checked. If close is unsuccessful, retry is recommended.
read
This entry point is driven by the read system call. The read operation can be completed when a tape is loaded in the device.
IBMtape supports two modes of read operation. If the read_past_filemark flag is set to TRUE (with the STIOCSETP input/output control [IOCTL]), then when a read
operation encounters a filemark, it returns the number of bytes read before it encounters the filemark and sets the tape position after the filemark. If the
read_past_filemark flag is set to FALSE (by default or with STIOCSETP IOCTL), then when a read operation encounters a filemark, if data was read, the read function
returns the number of bytes read, and positions the tape before the filemark. If no data was read, then read returns 0 bytes read and positions the tape after the filemark.
If the read function reaches end of the data on the tape, input/output error (EIO) is returned and ASC, ASCQ keys (obtained by request sense IOCTLs) indicate the end of
data. IBMtape also conforms to all SCSI standard read operation rules, such as fixed block versus variable block.
write
This entry point is driven by the write system call. The write operation can be completed when a tape is loaded in the device.
IBMtape supports early warning processing. When the trailer_labels flag is set to TRUE (by default or with STIOCSETP IOCTL call), IBMtape fails with errno ENOSPACE
only when a write operation first encounters the early warning zone for end of tape. After the ENOSPACE error code is returned, IBMtape suppresses all warning messages
from the device that is generated by subsequent write commands, effectively allowing write and write filemark commands in the early warning zone. When physical end
of tape is reached, error code EIO is returned, and the ASC and ASCQ keys (obtained by the request sense IOCTL) confirm the end of physical medium condition. When the
trailer_labels flag is set to FALSE (with STIOCSETP IOCTL call), IBMtape returns the ENOSPACE errno when any write command is attempted in the early warning zone.
ioctl
This entry point provides a set of drive SCSI-specific functions. It allows Linux applications to access and control the features and attributes of the drive device
programmatically.
IBMtape supports the following Linux® entry points for the medium changer devices.
open
close
ioctl
open
This entry point is driven by the open system call. The open function attempts a SCSI reserve command to the target device. If the reserve command fails, open fails with
errno EBUSY.
close
This entry point is driven explicitly by the close system call and implicitly by the operating system at program termination. If an SIOC_RESERVE IOCTL was issued from an
application before close, the close function does not release the device. Otherwise, it issues the SCSI release command. In both situations, the close function attempts to
deallocate all resources that are allocated for the device. If, for some reason, IBMtape is not able to close, an error code is returned.
ioctl
This entry point provides a set of medium changer and SCSI-specific functions. It allows Linux applications to access and control the features and attributes of the robotic
device programmatically.
This chapter describes the IOCTL commands that provide access and control to the tape and medium changer devices.
These commands are available for all tape and medium changer devices. They can be issued to any one of the IBMtape special files.
Overview
Overview
Edit online
SIOC_INQUIRY
Return the inquiry data.
SIOC_REQSENSE
Return the sense data.
SIOC_RESERVE
Reserve the device.
SIOC_RELEASE
Release the device.
SIOC_TEST_UNIT_READY
Issue the SCSI Test Unit Ready command.
SIOC_LOG_SENSE_PAGE
Return the log sense data.
SIOC_LOG_SENSE10_PAGE
Return the log sense data by using a 10-byte CDB with optional subpage.
SIOC_ENH_LOG_SENSE
Return the page data with a requested length from the application if no kernel memory restriction exists.
SIOC_MODE_SENSE_PAGE
Return the mode sense data.
SIOC_MODE_SENSE
Return the mode sense data with optional subpage.
SIOC_INQUIRY_PAGE
Return the inquiry data for a specific page.
SIOC_PASS_THROUGH
Pass through custom built SCSI commands.
SIOC_QUERY_PATH
Return the primary path and information for the first alternate path.
SIOC_DEVICE_PATHS
Return the primary path and information for all the alternate paths.
SIOC_ENABLE_PATH
Enable a path from the disabled state.
These IOCTL commands and their associated structures are defined in the IBM_tape.h header file, which can be found in /usr/include/sys after IBMtape is installed. The
IBM_tape.h header file must be included in the corresponding C programs that call functions that are provided by IBMtape.
All IOCTL commands require a file descriptor of an open file. Use the open command to open a device and obtain a valid file descriptor.
SIOC_INQUIRY
SIOC_REQSENSE
SIOC_RESERVE
SIOC_RELEASE
SIOC_TEST_UNIT_READY
SIOC_LOG_SENSE_PAGE, SIOC_LOG_SENSE10_PAGE, and SIOC_ENH_LOG_SENSE
SIOC_MODE_SENSE_PAGE and SIOC_MODE_SENSE
SIOC_INQUIRY_PAGE
SCSI_PASS_THROUGH
SIOC_QUERY_PATH
SIOC_DEVICE_PATHS
SIOC_ENABLE_PATH
SIOC_DISABLE_PATH
SIOC_INQUIRY
Edit online
This IOCTL command collects the inquiry data from the device.
struct inquiry_data {
uint qual :3, /* peripheral qualifier */
type :5; /* device type */
uint rm :1, /* removable medium */
mod :7; /* device type modifier */
uint iso :2, /* ISO version */
ecma :3, /* EMCA version */
ansi :3; /* ANSI version */
uint aenc :1, /* asynchronous event notification */
trmiop :1, /* terminate I/O process message */
:2, /* reserved */
rdf :4; /* response data format */
unchar len; /* additional length */
unchar resvd1; /* reserved */
uint :4, /* reserved */
mchngr :1, /* medium changer mode (SCSI-3 only) */
:3; /* reserved */
uint reladr :1, /* relative addressing */
wbus32 :1, /* 32-bit wide data transfers */
wbus16 :1, /* 16-bit wide data transfers */
sync :1, /* synchronous data transfers */
linked :1, /* linked commands */
:1, /* reserved */
cmdque :1, /* command queueing */
sftre :1; /* soft reset */
unchar vid[8]; /* vendor ID */
unchar pid[16]; /* product ID */
unchar revision[4]; /* product revision level */
unchar vendor1[20]; /* vendor specific */
unchar resvd2[40]; /* reserve */
unchar vendor2[31]; /* vendor specific (padded to 127) */
};
#include <sys/IBM_tape.h>
char vid[9];
char pid[17];
char revision[5];
struct inquiry_data inqdata;
printf("Issuing inquiry...\n");
memset(&inqdata, 0, sizeof(struct inquiry_data));
if (!ioctl (fd, SIOC_INQUIRY, &inqdata)) {
printf ("The SIOC_INQUIRY ioctl succeeded\n");
printf ("\nThe inquiry data is:\n");
/*-
* Just a dump byte won't work because of the compiler
* bit field mapping
-*/
/* print out structure data field */
printf("\nInquiry Data:\n");
printf("Peripheral Qualifer-----------------0x%02x\n", inqdata.qual);
printf("Peripheral Device Type--------------0x%02x\n", inqdata.type);
printf("Removal Medium Bit------------------%d\n", inqdata.rm);
printf("Device Type Modifier----------------0x%02x\n", inqdata.mod);
printf("ISO version-------------------------0x%02x\n", inqdata.iso);
printf("ECMA version------------------------0x%02x\n", inqdata.ecma);
printf("ANSI version------------------------0x%02x\n", inqdata.ansi);
SIOC_REQSENSE
Edit online
This IOCTL command returns the device sense data. If the last command resulted in an error, then the sense data is returned for the error. Otherwise, a new sense
command is issued to the device.
struct request_sense {
uint valid :1, /* sense data is valid */
err_code :7; /* error code */
unchar segnum; /* segment number */
uint fm :1, /* filemark detected */
eom :1, /* end of medium */
ili :1, /* incorrect length indicator */
resvd1 :1, /* reserved */
key :4; /* sense key */
int info; /* information bytes */
unchar addlen; /* additional sense length */
uint cmdinfo; /* command specific information */
unchar asc; /* additional sense code */
unchar ascq; /* additional sense code qualifier */
unchar fru; /* field replaceable unit code */
uint sksv :1, /* sense key specific valid */
cd :1, /* control/data */
resvd2 :2, /* reserved */
bpv :1, /* bit pointer valid */
sim :3; /* system information message */
unchar field[2]; /* field pointer */
unchar vendor[109]; /* vendor specific (padded to 127) */
};
#include <sys/IBM_tape.h>
SIOC_RESERVE
Edit online
This IOCTL command explicitly reserves the device and prevents it from being released after a close operation.
The IOCTL command can be used for applications that require multiple open and close processing in a host-sharing environment.
#include <sys/IBM_tape.h>
if (!ioctl (fd, SIOC_RESERVE, NULL)) {
printf ("The SIOC_RESERVE ioctl succeeded\n");
}
else {
perror ("The SIOC_RESERVE ioctl failed");
sioc_request_sense();
}
SIOC_RELEASE
Edit online
This IOCTL command explicitly releases the device and allows other hosts to access it. The IOCTL command is used with the SIOC_RESERVE IOCTL command for
applications that require multiple open and close processing in a host-sharing environment.
#include <sys/IBM_tape.h>
if (!ioctl (fd, SIOC_RELEASE, NULL)) {
printf ("The SIOC_RELEASE ioctl succeeded\n");
}
else {
perror ("The SIOC_RELEASE ioctl failed");
sioc_request_sense();
}
SIOC_TEST_UNIT_READY
Edit online
This IOCTL command issues the SCSI Test Unit Ready command to the device.
#include <sys/IBM_tape.h>
if (!ioctl (fd, SIOC_TEST_UNIT_READY, NULL)) {
printf ("The SIOC_TEST_UNIT_READY ioctl succeeded\n");
}
else {
perror ("The SIOC_TEST_UNIT_READY ioctl failed");
These IOCTL commands return log sense data from the device. The differences between the three is
SIOC_LOG_SENSE_PAGE allows the user to retrieve a particular log page up to length LOGSENSEPAGE.
SIOC_LOG_SENSE10_PAGE allows for a subpage to be returned up to length LOGSENSEPAGE.
SIOC_ENH_LOG_SENSE returns the page data with a requested length from application if no kernel memory restriction exists.
For both SIOC_LOG_SENSE_PAGE and SIOC_LOG_SENSE10_PAGE, to obtain the entire log page, the len and parm_pointer fields must be set to zero. To obtain the
entire log page that starts at a specific parameter code, set the parm_pointer field to the wanted code and the len field to zero. To obtain a specific number of parameter
bytes, set the parm_pointer field to the wanted code. Then, set the len field to the number of parameter bytes plus the size of the log page header (4 bytes). The first 4
bytes of returned data are always the log page header. In the Enhanced log sense page (SIOC_ENH_LOG_SENSE), the length cannot be set to zero as it indicates the
allocated memory size that char *logdatap is pointing to. The minimum number for this value is 4, as it returns the first 4 bytes that is the log page header. See the
appropriate device manual to determine the supported log pages and content.
struct log_sense_page {
unchar page_code;
unsigned short len;
unsigned short parm_pointer;
char data[LOGSENSEPAGE];
};
struct log_sense10_page {
unchar page_code;
unchar subpage_code;
unchar reserved[2];
unsigned short len;
unsigned short parm_pointer;
char data[LOGSENSEPAGE];
};
struct enh_log_sense {
uchar page_code; /* [IN] Log sense page */
uchar subpage_code; /* [IN] Log sense sub-page */
uchar page_control; /* [IN] Page control */
uchar reserved[5];
unsigned short len; /* [IN] specific allocation length for logdatap */
/* by application */
/* [OUT] the length of return data at */
/* logdatap from driver */
unsigned short parm_pointer; /* [IN] specific parameter number at */
/* which the data begins */
char *logdatap; /* [IN] the pointer for log sense data allocated*/
/* by application */
/* [OUT] log sense data returned from driver */
};
The first two IOCTLs are identical, except if a specific subpage is wanted, log_sense10_page must be used and subpage_code must be assigned by the user
application.
#include <sys/IBM_tape.h>
struct log_sense_page log_page;
int temp;
/* get log page 0, list of log pages */
log_page.page_code = 0x00;
log_page.len = 0;
log_page.parm_pointer = 0;
if (!ioctl (fd, SIOC_LOG_SENSE_PAGE, &log_page)) {
printf ("The SIOC_LOG_SENSE_PAGE ioctl succeeded\n");
dump_bytes(log_page.data, LOGSENSEPAGE);
}
else {
perror ("The SIOC_LOG_SENSE_PAGE ioctl failed");
sioc_request_sense();
}
/* get fraction of volume traversed */
log_page.page_code = 0x38;
log_page.len = 0;
log_page.parm_pointer = 0x000F;
if (!ioctl (fd, SIOC_LOG_SENSE_PAGE, &log_page)) {
temp = log_page.data[sizeof(log_page_header) + 4)];
printf ("The SIOC_LOG_SENSE_PAGE ioctl succeeded\n");
printf ("Fractional Part of Volume Traversed %x\n",temp);
}
else {
perror ("The SIOC_LOG_SENSE_PAGE ioctl failed");
sioc_request_sense();
}
#define LOG_PAGE_HEADER 4
if(enh_log_page.logdatap == NULL){
printf ("Unable to malloc LOG_PAGE_HEADER. Closing\n");
exit(-1);
}
enh_log_page.len = length;
enh_log_page.logdatap = malloc(length);
if(enh_log_page.logdatap==NULL) {
printf("Unable to malloc enh_log_page big size %d\n", length);
if(length > 1024) {
enh_log_page.logdatap = malloc(1024);
enh_log_page.len = 1024;
if(enh_log_page.logdatap == NULL) {
printf("Unable to malloc enh_log_page 1024 size\n");
exit(-1);
}
}
}
This IOCTL command returns a mode sense page from the device. The desired page is selected by specifying the page_code in the mode_sense_page structure. See the
appropriate device manual to determine the supported mode pages and content.
struct mode_sense_page {
unchar page_code;
char data[MAX_MDSNS_LEN];
};
struct mode_sense {
unchar page_code;
unchar subpage_code;
unchar reserved[6];
unchar cmd_code;
char data[MAX_MDSNS_LEN];
};
The IOCTLs are identical, except that if a specific subpage is desired, mode_sense must be used and subpage_code must be assigned by the user application. Under the
current implementation, cmd_code is not assigned by the user and must be left with a value 0.
An example of the SIOC_MODE_SENSE_PAGE command is
#include <sys/IBM_tape.h>
struct mode_sense_page mode_page;
/* get medium changer mode */
mode_page.page_code = 0x20;
if (!ioctl (fd, SIOC_MODE_SENSE_PAGE, &mode_page)) {
SIOC_INQUIRY_PAGE
Edit online
This IOCTL command returns an inquiry page from the device. The desired page is selected by specifying the page_code in the inquiry_page structure. See the appropriate
device manual to determine the supported inquiry pages and content.
struct inquiry_page {
char page_code;
char data[INQUIRYPAGE];
};
#include <sys/IBM_tape.h>
struct inquiry_page inq_page;
/* get inquiry page x83 */
inq_page.page_code = 0x83;
if (!ioctl (fd, SIOC_INQUIRY_PAGE, &inq_page)) {
printf ("The SIOC_INQUIRY_PAGE ioctl succeeded\n");
dump_bytes(inq_page.data, INQUIRYPAGE);
}
else {
perror ("The SIOC_INQUIRY_PAGE ioctl failed");
sioc_request_sense();
}
SCSI_PASS_THROUGH
Edit online
This IOCTL command passes the built command data block structure with I/O buffer pointers to the lower SCSI layer. Status is returned from the lower SCSI layer to the
caller with the ASC and ASCQ values and SenseKey fields. The ASC and ASCQ and sense key fields are valid only when the SenseDataValid field is true.
SCSI_DATA_OUT indicates sending data out of the initiator (host bus adapter), also known as write mode. SCSI_DATA_IN indicates receiving data into the initiator (host
bus adapter), also known as read mode. SCSI_DATA_NONE indicates that no data is transferred.
#include <sys/IBM_tape.h>
SCSIPassThrough PassThrough;
memset(&PassThrough, 0, sizeof(SCSIPassThrough);
/* Issue test unit ready command */
PassThrough.CDB[0] = 0x00;
PassThrough.CommandLength = 6;
PassThrough.DataDirection = SCSI_DATA_NONE;
if (!ioctl (fd, SCSI_PASS_THROUGH, &PassThrough)) {
printf ("The SCSI_PASS_THROUGH ioctl succeeded\n");
if((PassThrough.TargetStatus == STATUS_SUCCESS) &&
(PassThrough.MessageStatus == STATUS_SUCCESS) &&
else {
printf(" Test Unit Ready failed\n");
if(PassThrough.SenseDataValid)
printf("Sense Key %02x, ASC %02x, ASCQ %02x\n",
PassThrough.SenseKey, PassThrough.ASC,
PassThrough.ASCQ);
}
}
else {
perror ("The SIOC SCSI_PASS_THROUGH ioctl failed");
sioc_request_sense();
}
SIOC_QUERY_PATH
Edit online
This IOCTL command returns the primary path and the first alternate path information for a physical device.
struct scsi_path
{
char primary_name[30]; /* primary logical device name */
char primary_parent[30]; /* primary SCSI parent name, "Host" name */
unchar primary_id; /* primary target address of device, "Id" value*/
unchar primary_lun; /* primary logical unit of device, "lun" value */
unchar primary_bus; /* primary SCSI bus for device, "Channel" value*/
unsigned long long primary_fcp_scsi_id; /* not supported */
unsigned long long primary_fcp_lun_id; /* not supported */
unsigned long long primary_fcp_ww_name; /* not supported */
unchar primary_enabled; /* primary path enabled */
unchar primary_id_valid; /* primary id/lun/bus fields valid */
unchar primary_fcp_id_valid; /* not supported */
unchar alternate_configured; /* alternate path configured */
char alternate_name[30]; /* alternate logical device name */
char alternate_parent[30]; /* alternate SCSI parent name */
unchar alternate_id; /* alternate target address of device */
unchar alternate_lun; /* alternate logical unit of device */
unchar alternate_bus; /* alternate SCSI bus for device */
unsigned long long alternate_fcp_scsi_id; /* not supported */
unsigned long long alternate_fcp_lun_id; /* not supported */
unsigned long long alternate_fcp_ww_name; /* not supported */
unchar alternate_enabled; /* alternate path enabled */
unchar alternate_id_valid; /* alternate id/lun/bus fields valid */
unchar alternate_fcp_id_valid; /* not supported */
unchar primary_drive_port_valid; /* not supported */
unchar primary_drive_port; /* not supported */
unchar alternate_drive_port_valid; /* not supported */
unchar alternate_drive_port; /* not supported */
unchar primary_fenced; /* primary fenced by disable path ioctl */
unchar alternate_fenced; /* alternate fenced by disable path ioctl */
unchar primary_host; /* primary host bus adapter id */
unchar alternate_host; /* alternate host bus adapter id */
char reserved[56];
};
#include <sys/IBM_tape.h>
struct scsi_path path;
memset(&path, 0, sizeof(struct scsi_path));
printf("Querying SCSI paths...\n");
rc = ioctl(fd, SIOC_QUERY_PATH, &path);
if(rc == 0)
show_path(&path);
SIOC_DEVICE_PATHS
Edit online
This IOCTL command returns the primary path and all of the alternate paths information for a physical device. This IOCTL supports only the 3592 tape drives. The data
structure for this IOCTL command is
struct device_path_t
{
char name[30]; /* logical device name */
char parent[30]; /* logical parent name */
unchar id_valid; /* SCSI id/lun/bus fields valid */
unchar id; /* SCSI target address of device */
unchar lun; /* SCSI logical unit of device */
unchar bus; /* SCSI bus for device */
unchar fcp_id_valid; /* not supported */
struct device_paths
{
int number_paths; /* number of paths configured */
struct device_path_t path[MAX_SCSI_PATH];
};
#include <sys/IBM_tape.h>
struct device_paths device_path;
memset(%device_path, 0, sizeof(struct device_paths));
printf("Querying device paths...\n");
rc = ioctl(fd, SIOC_DEVICE_PATHS, &device_path);
if(rc == 0)
{
printf("\n");
for (i=0; i < device_path.number_paths; i++)
{
if (i == 0)
printf("Primary Path Number 1\n");
else
printf("Alternate Path Number %d\n", i+1);
printf(" Logical Device............ %s\n",device_path.path[i].name);
printf(" Host Bus Adapter.......... %s\n",device_path.path[i].parent);
if (device_path.path[i].id_valid)
{
printf(" SCSI Host ID.............. %d\n",device_path.path[i].host);
printf(" SCSI Channel.............. %d\n",device_path.path[i].bus);
printf(" Target ID................. %d\n",device_path.path[i].id);
printf(" Logical Unit.............. %d\n",device_path.path[i].lun);
}
if (device_path.path[i].enabled)
printf(" Path Enabled................... Yes\n");
else
printf(" Path Enabled................... No \n");
if (device_path.path[i].fenced)
printf(" Path Manually Disabled......... Yes\n");
else
printf(" Path Manually Disabled......... No \n");
printf("\n");
}
SIOC_ENABLE_PATH
Edit online
This IOCTL enables the path that is specified by the path number. This command supports only the 3592 tape drives.
#include <sys/IBM_tape.h>
if (path == PRIMARY_SCSI_PATH)
printf("Enabling primary SCSI path 1...\n");
else
printf("Enabling alternate SCSI path %d...\n",path);
SIOC_DISABLE_PATH
Edit online
This IOCTL disables the path that is specified by the path number. This command supports only the 3592 tape drives.
#include <sys/IBM_tape.h>
if (path == PRIMARY_SCSI_PATH)
printf("Disabling primary SCSI path 1...\n");
else
The device driver supports the set of tape IOCTL commands that is available with the base Linux® operating system. In addition, a set of expanded tape IOCTL commands
gives applications access to extra features and functions of the tape drives.
Overview
Overview
Edit online
STIOCTOP
Run the basic tape operations.
STIOCQRYP
Query the tape device, device driver, and media parameters.
STIOCSETP
Change the tape device, device driver, and media parameters.
STIOCSYNC
Synchronize the tape buffers with the tape.
STIOCDM
Displays and manipulates one or two messages.
STIOCQRYPOS
Query the tape position and the buffered data.
STIOCSETPOS
Set the tape position.
STIOCQRYSENSE
Query the sense data from the tape device.
STIOCQRYINQUIRY
Return the inquiry data.
STIOC_LOCATE
Locate to a certain tape position.
STIOC_READ_POSITION
Read the current tape position.
STIOC_RESET_DRIVE
Issue a SCSI Send Diagnostic command to reset the tape drive.
STIOC_PREVENT_MEDIUM_REMOVAL
Prevent medium removal by an operator.
STIOC_ALLOW_MEDIUM_REMOVAL
Allow medium removal by an operator.
STIOC_REPORT_DENSITY_SUPPORT
Return supported densities from the tape device.
MTDEVICE
Returns the device number that is used for communicating with an Enterprise Tape Library 3494.
STIOC_GET_DENSITY
Query the current write density format settings on the tape drive. The current density code from the drive Mode Sense header, the Read/Write Control Mode page
default density, and the pending density are returned.
STIOC_SET_DENSITY
Set a new write density format on the tape drive by using the default and pending density fields. The application can specify a new write density for the currently
loaded tape only. Or, it can specify a new write density as a default for all tapes.
GET_ENCRYPTION_STATE
This IOCTL can be used for application, system, and library-managed encryption. It allows only a query of the encryption status.
SET_ENCRYPTION_STATE
This IOCTL can be used only for application-managed encryption. It sets the encryption state for application-managed encryption.
SET_DATA_KEY
This IOCTL can be used only for application-managed encryption. It sets the data key for application-managed encryption.
STIOC_QUERY_PARTITION
This IOCTL queries for partition information on applicable tapes. It displays maximum number of possible partitions, number of partitions currently on tape, the
active partition, the size unit (bytes, kilobytes, and so on), and the sizes of each partition.
STIOC_CREATE_PARTITION
This IOCTL creates partitions on applicable tapes. The user is allowed to specify the number and type of partitions and the size of each partition.
STIOC_SET_ACTIVE_PARTITION
This IOCTL allows the user to set the partition on which to complete tape operations.
STIOC_ALLOW_DATA_OVERWRITE
This IOCTL allows tape data to be overwritten when in data safe mode.
STIOC_READ_POSITION_EX
This IOCTL reads the tape position and includes support for the long and extended formats.
STIOC_LOCATE_16
This IOCTL sets the tape position by using a long tape format.
STIOC_QUERY_BLK_PROTECTION
These IOCTL commands and their associated structures are defined in the IBM_tape.h header file that can be found in the lin_tape source rpm package. This header must
be included in the corresponding C program by using the IOCTL commands.
STIOCTOP
STIOCQRYP or STIOCSETP
STIOCSYNC
STIOCDM
STIOCQRYPOS
STIOCSETPOS
STIOCQRYSENSE
STIOCQRYINQUIRY
STIOC_LOCATE
STIOC_READ_POSITION
STIOC_RESET_DRIVE
STIOC_PREVENT_MEDIUM_REMOVAL
STIOC_ALLOW_MEDIUM_REMOVAL
STIOC_REPORT_DENSITY_SUPPORT
MTDEVICE (Obtain Device Number)
STIOC_GET DENSITY and STIOC_SET_DENSITY
GET_ENCRYPTION_STATE
SET_ENCRYPTION_STATE
SET_DATA_KEY
STIOC_QUERY_PARTITION
STIOC_CREATE_PARTITION
STIOC_SET_ACTIVE_PARTITION
STIOC_ALLOW_DATA_OVERWRITE
STIOC_READ_POSITION_EX
STIOC_LOCATE_16
STIOC_QUERY_BLK_PROTECTION
STIOC_SET_BLK_PROTECTION
STIOC_VERIFY_TAPE_DATA
STIOC_QUERY_RAO
STIOC_GENERATE_RAO
STIOC_RECEIVE_RAO
STIOC_SET_SPDEV
STIOCTOP
Edit online
This IOCTL command runs basic tape operations. The st_count variable is used for many of its operations. Normal error recovery applies to these operations. The device
driver can issue several tries to complete them. For all forward movement space operations, the tape position finishes on the end-of-tape side of the record or filemark,
and on the beginning-of-tape side of the record or filemark for backward movement.
struct stop {
short st_op; /* operations defined below */
daddr_t st_count; /* how many of them to do (if applicable) */
};
STOFFL
Unload the tape. The st_count parameter does not apply.
STREW
Rewind the tape. The st_count parameter does not apply.
STERASE
Erase the entire tape. The st_count parameter does not apply.
STRETEN
Run the rewind operation. The tape devices run the retension operation automatically when needed.
STWEOF
Write st_count number of filemarks.
Note: If zero is used for operations that require the st_count parameter, then the command is not issued to the device. The device driver returns a successful completion.
An example of the STIOCTOP command is
#include <sys/IBM_tape.h>
STIOCQRYP or STIOCSETP
Edit online
The STIOCQRYP command allows the program to query the tape device, device driver, and the media parameters. The STIOCSETP command allows the program to
change the tape device, the device driver, and the media parameters.
Before the STIOCSETP command is issued, use the STIOCQRYP command to query and fill the fields of the data structure you do not want to change. Then, issue the
STIOCSETP command to change the selected fields. Changing certain fields, such as buffered_mode, impacts performance. If the buffered_mode field is FALSE, each
record that is written to the tape is immediately transferred to the tape. This operation guarantees that each record is on the tape, but it impacts performance.
Unchangeable parameters
The following parameters that are returned by the STIOCQRYP command cannot be changed by the STIOCSETP command.
hkwrd
This parameter is accepted but ignored.
logical_write_protect
This parameter sets the type of logical write protection for the tape that is loaded in the drive.
write_protect
If the currently mounted tape is write protected, this field is set to TRUE. Otherwise, it is set to FALSE.
min_blksize
This parameter is the minimum block size for the device. The driver gets this field by issuing the SCSI Read Block Limits command to the device.
max_blksize
This parameter is the maximum block size for the device. The driver gets this field by issuing the SCSI Read Block Limits command to the device.
retain_reservation
This parameter is accepted but ignored.
medium_type
This parameter is the media type of the currently loaded tape. Some tape devices support multiple media types and report different values in this field. See the
hardware reference guide for the specific tape device to determine the possible values.
capacity_scaling
This parameter sets the capacity or logical length of the current tape. By reducing the capacity of the tape, the tape drive can access data faster. Capacity Scaling is
not currently supported in IBMtape.
density_code
This parameter is the density setting for the currently loaded tape. Some tape devices support multiple densities and report the current setting in this field. See the
hardware reference guide for the specific tape device to determine the possible values.
volid
This field is always set to zero.
emulate_autoloader
This parameter is accepted but ignored.
record_space_mode
Only SCSI_SPACE_MODE is supported.
read_sili_bit
This parameter is accepted but ignored. SILI bit is not supported due to Linux® system environment limitations.
trace
This parameter turns the trace for the tape device On or Off.
blksize
This parameter specifies the new effective block size for the tape device. Use 0 for variable block mode.
compression
This parameter turns the hardware compression On or Off.
max_scsi_xfer
This parameter is the maximum transfer size that is allowed per SCSI command. In the IBMtape driver 3.0.3 or lower level, this value is 256 KB (262144 bytes) by
default and changeable through the STIOCSETP IOCTL. In the IBMtape driver 3.0.5 or above and the open source driver lin_tape, this parameter is not changeable
any more. It is determined by the maximum transfer size of the Host Bus Adapter that the tape drive is attached to.
trailer_labels
If this parameter is set to On, then writing a record past the early warning mark on the tape is allowed. Only the first write operation that detects the early warning
mark returns the ENOSPC error code. All subsequent write operations are allowed to continue despite the check conditions that result from writing in the early
warning zone (which are suppressed). When the end of the physical volume is reached, EIO is returned.
If this parameter is set to Off, the first write in the early warning zone fails, the ENOSPC error code is returned, and subsequent write operations fail.
rewind_immediate
This parameter turns the immediate bit On or Off for subsequent rewind commands. If it is set to On, then the STREW tape operation runs faster. However, the next
tape command can take longer to finish because the actual physical rewind operation must complete before the next tape command can start.
logging
This parameter turns the volume logging for the tape device On or Off.
disable_sim_logging
If this parameter is Off, the SIM/MIM data is automatically retrieved by the IBMtape device driver whenever it is available in the tape device.
disable_auto_drive_dump
If this parameter is Off, the drive dump is automatically retrieved by the IBMtape device driver whenever a drive dump is in the tape device. It can also be set for all
devices at modprobe configuration by adding disable_auto_drive_dump=1.
logical_write_protect
This parameter sets the type of logical write protection for the tape that is loaded in the drive. See the hardware reference guide for the specific device for different
types of logical write protect.
capacity_scaling
This field can be changed only when the tape is positioned at the beginning of the tape. When a change is accepted, IBMtape rescales the tape capacity by
formatting the loaded tape. See the IBM Enterprise Tape System 3592 SCSI Reference for the specific device for different types of capacity scaling.
IBM® 3592 tape cartridges have two formats available, the 300 GB format and the 60 GB Fast Access format. The format of a cartridge can be queried under
program control by issuing the STIOCQRYP IOCTL and checking the returned value of capacity_scaling_value (in hex).
If the capacity_scaling_value is 0x00, your 3592 tape cartridge is in 300 GB format. If the capacity_scaling_value is 0x35, your tape cartridge is in 60 GB Fast
Access format. If the capacity_scaling_value is some other value, your tape cartridge format is undefined. (IBM can later define other supported cartridge formats.
If so, they are documented in later versions of the IBM TotalStorage™ Enterprise Tape System 3592 SCSI Reference).
If you want to change your cartridge format, you can use the STIOCSETP IOCTL to change the capacity scaling value of your cartridge.
Warning: All data on the cartridge is lost when the format is changed.
If you want to set it to the 300 GB format, set capacity_scaling_value to 0x00 and capacity_scaling to SCALE_VALUE. If you want to set it to the 60 GB Fast Access
format, set capacity_scaling_value to 0x35 and capacity_scaling to SCALE_VALUE. Setting capacity_scaling to SCALE_VALUE is required.
Note: All data on the tape is deleted and is not recoverable.
read_past_file_mark
This parameter changes the behavior of the read function when a filemark is encountered. If the read_past_filemark flag is TRUE when a read operation encounters
a file mark, IBMtape returns the number of bytes read before the filemark is encountered and sets the tape position at the EOT side of the file mark.
If the read_past_filemark flag is FALSE (by default) when a read operation encounters a filemark, if data was read, the read function returns the number of bytes
read, and positions the tape at the BOT side of the filemark. If no data was read, the read returns 0 bytes and positions the tape at the EOT side of the filemark.
limit_read_recov
If this flag is TRUE, automatic recovery from read errors is limited to 5 seconds. If it is FALSE, the default is restored and the tape drive takes an arbitrary amount of
time for read error recovery.
limit_write_recov
If this flag is TRUE, automatic recovery from write errors is limited to 5 seconds. If it is FALSE, the default is restored and the tape drive takes an arbitrary amount of
time for write error recovery.
data_safe_mode
If this flag is TRUE, data_safe_mode is set in the drive. This action prevents data on the tape from being overwritten to avoid accidental data loss. If the value is
FALSE, data_safe_mode is turned off.
pews
This parameter establishes the programmable early warning zone size. It is a 2-byte numerical value that specifies how many MB before the standard end-of-
medium early warning zone to place the programmable early warning indicator. If this value is set to a positive integer, a user application is warned that the tape is
running out of space when the tape head reaches the PEW location. If pews is set to 0, then there no early warning zone occurs and the user is notified only at the
standard early warning location.
struct stchgp_s {
int blksize; /* new block size */
boolean trace; /* TRUE = message trace on */
uint hkwrd; /* trace hook word */
int sync_count; /* obsolete - not used */
boolean autoload; /* on/off autoload feature */
boolean buffered_mode; /* on/off buffered mode */
boolean compression; /* on/off compression */
boolean trailer_labels; /* on/off allow writing after EOM */
boolean rewind_immediate; /* on/off immediate rewinds */
boolean bus_domination; /* obsolete - not used */
boolean logging; /* enable or disable volume logging */
#include <sys/IBM_tape.h>
struct stchgp_s stchgp;
/* get current parameters */
if (ioctl(tapefd,STIOCQRYP,&stchgp)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
/* set new parameters */
stchgp.rewind_immediate=1;
stchgp.trailer_labels=1;
if (ioctl(tapefd,STIOCSETP,&stchgp)) {
printf("IOCTL failure. errno=%d",errno);
exit(errno);
}
STIOCSYNC
Edit online
This IOCTL command immediately flushes the tape buffers to the tape. There are no arguments for this IOCTL command.
#include <sys/IBM_tape.h>
if (ioctl(tapefd,STIOCSYNC,NULL)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
STIOCDM
Edit online
This IOCTL command shows and manipulates one or two messages on the message display. The message that is sent with this call does not always remain on the display.
It depends on the current state of the tape device. Refer to the IBM® 3590 manuals for a description of the message display functions.
#define MAXMSGLEN 8
struct stdm_s
#include <sys/IBM_tape.h>
struct stdm_s stdm;
memset(&stdm, 0, sizeof(struct stdm_s));
stdm.dm_func = DMSTATUSMSG|DMMSG0;
bcopy("SSG", stdm.dm_msg0, 8);
if(ioctl(tapefd, STIOCDM, &stdm)<0)
{
printf("IOCTL failure, errno = %d", errno);
exit(errno);
}
STIOCQRYPOS
Edit online
This command queries the tape position. Tape position is defined as the location where the next read or write operation occurs. The query function can be used
independently of, or with, the STIOCSETPOS IOCTL command.
A write filemark of count 0 is always issued to the drive, which flushes all data from the buffers to the tape media. After the write filemark finishes, the query is issued.
After a query operation, the curpos field is set to an unsigned integer that represents the current position.
The eot field is set to TRUE if the tape is positioned between the early warning and the physical end of the tape. Otherwise, it is set to FALSE.
The lbot field is valid only if the last command was a write command. If a query is issued and the last command was not a write, lbot contains the value LBOT_UNKNOWN.
Note: lbot indicates the last block of data that is transferred to the tape.
The number of blocks and number of bytes currently in the tape device buffers is returned in the num_blocks and num_bytes fields.
The bot field is set to TRUE if the tape position is at the beginning of the tape. Otherwise, it is set to FALSE.
The returned partition_number field is the current partition of the loaded tape.
The block ID of the next block of data to be transferred to or from the physical tape is returned in the tapepos field.
#include <sys/IBM_tape.h>
struct stpos_s stpos;
stpos.block_type=QP_PHYSICAL;
if (ioctl(tapefd,STIOCQRYPOS,&stpos)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
oldposition=stpos.curpos;
This IOCTL command issues a high speed locate operation to the position specified on the tape. It uses the same position data structure that is described for
STIOCQRYPOS, however, only the block_type and curpos fields are used during a set operation. STIOCSETPOS can be used independently of or with STIOCQRYPOS.
The block_type must be set to either QP_PHYSICAL or QP_LOGICAL. However, there is no difference in how IBMtape processes the request.
#include <sys/IBM_tape.h>
struct stpos_s stpos;
stpos.block_type=QP_LOGICAL;
if (ioctl(tapefd,STIOCQRYPOS,&stpos)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
oldposition=stpos.curpos;
stpos.curpos=oldposition;
stpos.block_type=QP_LOGICAL;
if (ioctl(tapefd,STIOCSETPOS,&stpos)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
STIOCQRYSENSE
Edit online
This IOCTL command returns the last sense data that is collected from the tape device. Or, it issues a new Request Sense command and returns the collected data. If
sense_type equals LASTERROR, then the sense data is valid only if the last tape operation had an error that caused a sense command to be issued to the device. If the
sense data is valid, then the IOCTL command finishes successfully, and the len field is set to a value greater than zero. The residual_count field contains the residual count
from the last operation.
#include <sys/IBM_tape.h>
struct stsense_s stsense;
stsense.sense_type=LASTERROR;
#define MEDIUM_ERROR 0x03
if (ioctl(tapefd,STIOCQRYSENSE,&stsense)) {
printf("ioctl failure. errno=%d",errno);
exit(errno);
}
if ((stsense.sense[2]&0x0F)==MEDIUM_ERROR) {
printf("We're in trouble now!");
exit(SENSE_KEY(&stsense.sense));
}
STIOCQRYINQUIRY
Edit online
This IOCTL command returns the inquiry data from the device. The data is divided into standard and vendor-specific portions.
STIOC_LOCATE
Edit online
This IOCTL command causes the tape to be positioned at the specified block ID. The block ID used for the command must be obtained by using the
STIOC_READ_POSITION command.
#include <sys/IBM_tape.h>
unsigned int current_blockid;
This IOCTL command returns the block ID of the current position of the tape. The block ID returned from this command can be used with the STIOC_LOCATE command to
set the position of the tape.
#include <sys/IBM_tape.h>
unsigned int current_blockid;
/* read current tape position */
if (ioctl(tapefd,STIOC_READ_POSITION,¤t_blockid)) {
printf("ioctl failure. errno=%d\n",errno);
exit(1);
}
/* restore current tape position */
if (ioctl(tapefd,STIOC_LOCATE,current_blockid)) {
printf("ioctl failure.errno=%d\n",errno);
exit(1);
}
STIOC_RESET_DRIVE
Edit online
This IOCTL command issues a SCSI Send Diagnostic command to reset the tape drive. There are no arguments for this IOCTL command.
STIOC_PREVENT_MEDIUM_REMOVAL
Edit online
This IOCTL command prevents an operator from removing media from the device until the STIOC_ALLOW_MEDIUM_REMOVAL command is issued or the device is reset.
#include <sys/IBM_tape.h>
if (!ioctl (tapefd, STIOC_PREVENT_MEDIUM_REMOVAL, NULL))
printf ("The STIOC_PREVENT_MEDIUM_REMOVAL ioctl succeeded\n");
else {
perror ("The STIOC_PREVENT_MEDIUM_REMOVAL ioctl failed");
smcioc_request_sense();
}
STIOC_ALLOW_MEDIUM_REMOVAL
Edit online
This IOCTL command allows an operator to remove media from the device. This command is normally used after the STIOC_PREVENT_MEDIUM_REMOVAL command to
restore the device to the default state.
#include <sys/IBM_tape.h>
if (!ioctl (tapefd, STIOC_ALLOW_MEDIUM_REMOVAL, NULL))
printf ("The STIOC_ALLOW_MEDIUM_REMOVAL ioctl succeeded\n");
else {
perror ("The STIOC_ALLOW_MEDIUM_REMOVAL ioctl failed");
smcioc_request_sense();
}
STIOC_REPORT_DENSITY_SUPPORT
This IOCTL command issues the SCSI Report Density Support command to the tape device. It returns either ALL supported densities or only supported densities for the
currently mounted media. The media field specifies which type of report is requested. The number_reports field is returned by the device driver and indicates how many
density reports in the reports array field were returned.
struct density_report {
unchar primary_density_code; /* primary density code */
unchar secondary_density_code; /* secondary density code */
uint wrtok :1, /* write ok, device can write this format */
dup :1, /* zero if density only reported once */
deflt :1, /* current density is default format */
:5; /* reserved */
char reserved[2]; /* reserved */
uint bits_per_mm :24; /* bits per mm */
ushort media_width; /* media width in millimeters */
ushort tracks; /* tracks */
uint capacity; /* capacity in megabytes */
char assigning_org[8]; /* assigning organization in ASCII */
char density_name[8]; /* density name in ASCII */
char description[20]; /* description in ASCII */
};
struct report_density_support {
unchar media; /* report all or current media as defined above */
ushort number_reports; /* number of density reports returned in array */
struct density_report reports[MAX_DENSITY_REPORTS];
};
#include <sys/IBM_tape.h>
int stioc_report_density_support(void)
{
int i;
struct report_density_support density;
printf("Issuing Report Density Support for ALL supported media...\n");
density.media = ALL_MEDIA_DENSITY;
if (ioctl(fd, STIOC_REPORT_DENSITY_SUPPORT, &density) != 0)
return errno;
printf("Total number of densities reported:
%d\n",density.number_reports);
for (i = 0; i<density.number_reports; i++) {
printf("\n");
printf(" Density Name................. %0.8s\n",
density.reports[i].density_name);
printf(" Assigning Organization....... %0.8s\n",
density.reports[i].assigning_org);
printf(" Density Name................. %0.8s\n",
density.reports[i].density_name);
printf(" Description.................. %0.20s\n",
density.reports[i].description);
printf(" Primary Density Code......... %02X\n",
density.reports[i].primary_density_code);
printf(" Secondary Density Code....... %02X\n",
density.reports[i].secondary_density_code);
if (density.reports[i].wrtok)
printf(" Write OK..................... Yes\n");
else
printf(" Write OK..................... No\n");
if (density.reports[i].dup)
printf(" Duplicate.................... Yes\n");
else
printf(" Duplicate.................... No\n");
if (density.reports[i].deflt)
printf(" Default...................... Yes\n");
else
printf(" Default...................... No\n");
printf(" Bits per MM.................. %d\n",
density.reports[i].bits_per_mm);
printf(" Media Width (millimeters).... %d\n",
density.reports[i].media_width);
printf(" Tracks....................... %d\n",
density.reports[i].tracks);
printf(" Capacity (megabytes)......... %d\n",
density.reports[i].capacity);
if (opcode) {
printf ("\nHit enter> to continue?");
getchar();
}
}
printf("\nIssuing Report Density Support for CURRENT media...\n");
density.media = CURRENT_MEDIA_DENSITY;
if (ioctl(fd, STIOC_REPORT_DENSITY_SUPPORT, &density) != 0)
return errno;
for (i = 0; i<density.number_reports; i++) {
printf("\n");
printf(" Density Name................. %0.8s\n",
density.reports[i].density_name);
printf(" Assigning Organization....... %0.8s\n",
density.reports[i].assigning_org);
printf(" Description.................. %0.20s\n",
density.reports[i].description);
This IOCTL command obtains the device number that is used for communicating with a 3494 library.
int device;
if(ioctl(tapefd, MTDEVICE, &device)<0)
{
printf("IOCTL failure, errno = %d\n", errno);
exit(errno);
}
printf("Device number is %X\n", device);
The STIOC_GET_DENSITY IOCTL is used to query the current write density format settings on the tape drive. The current density code from the drive Mode Sense header,
the Read/Write Control Mode page default density and pending density are returned.
The STIOC_SET_DENSITY IOCTL is used to set a new write density format on the tape drive by using the default and pending density fields. The density code field is not
used and ignored on this IOCTL. The application can specify a new write density for the current loaded tape only or as a default for all tapes. Refer to the examples below.
The application must get the current density settings first before the current settings are modified. If the application specifies a new density for the current loaded tape
only, then the application must issue another set density IOCTL after the current tape is unloaded and the next tape is loaded to either the default maximum density or a
new density to ensure the tape drive uses the correct density. If the application specifies a new default density for all tapes, the setting remains in effect until changed by
another set density IOCTL or the tape drive is closed by the application.
struct density_data_t
{
char density_code; /* mode sense header density code */
char default_density; /* default write density */
char pending_density; /* pending write density */
char reserved[9];
};
Note:
1. These IOCTLs are supported only on tape drives that can write multiple density formats. Refer to the Hardware Reference for the specific tape drive to determine
whether multiple write densities are supported. If the tape drive does not support these IOCTLs, errno EINVAL is returned.
2. The device driver always sets the default maximum write density for the tape drive on every open system call. Any previous STIOC_SET_DENSITY IOCTL values
from the last open are not used.
3. If the tape drive detects an invalid density code or cannot run the operation on the STIOC_SET_DENSITY IOCTL, the errno is returned and the current drive density
settings before the IOCTL are restored.
4. The struct density_data_t defined in the header file is used for both IOCTLs. The density_code field is not used and ignored on the STIOC_SET_DENSITY IOCTL.
Examples
struct density_data_t data;
/* set 3592 J1A density format for current loaded tape only */
data.default_density = 0x7F;
data.pending_density = 0x51;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
/* unload tape */
/* load next tape */
/* set 3592 E05 density format for current loaded tape only */
data.default_density = 0x7F;
data.pending_density = 0x52;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
/* unload tape */
/* load next tape */
/* set default maximum density for current loaded tape */
data.default_density = 0;
data.pending_density = 0;
rc = ioctl(fd, STIOC_SET_DENSITY, %data);
GET_ENCRYPTION_STATE
Edit online
This IOCTL command queries the drive's encryption method and state. The data structure that is used for this IOCTL is as follows on all of the supported operating
systems
struct encryption_status
{
uchar encryption_capable; /* (1)Set this field as a boolean based on the
capability of the drive */
uchar encryption_method; /* (2)Set this field to one of the following */
#define METHOD_NONE 0 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_LIBRARY 1 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_SYSTEM 2 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_APPLICATION 3 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_CUSTOM 4 /* Only used in GET_ENCRYPTION_STATE */
#define METHOD_UNKNOWN 5 /* Only used in GET_ENCRYPTION_STATE */
default:
printf("encrption method.......Error\n");
}
switch(encryption_status_t.encryption_state)
{
case STATE_OFF:
printf("encryption state........OFF\n");
break;
case STATE_ON:
printf("encryption state........ON\n");
break;
case STATE_NA:
printf("encryption state........NA\n");
break;
default:
printf("encryption state......Error\n");
}
}
return rc;
}
SET_ENCRYPTION_STATE
Edit online
This IOCTL command allows setting the encryption state only for application-managed encryption. On unload, some drive settings might be reset to default. To set the
encryption state, the application must issue this IOCTL after a tape is loaded and at BOP.
The data structure that is used for this IOCTL is the same as the one for GET_ENCRYPTION_STATE. An example of the SET_ENCRYPTION_STATE command is
if(option == 0)
encryption_status_t.encryption_state = STATE_OFF;
else if(option == 1)
encryption_status_t.encryption_state = STATE_ON;
else
{
printf("Invalid parameter.\n");
return -EINVAL;
}
return rc;
}
SET_DATA_KEY
Edit online
This IOCTL command allows the data key to be set only for application-managed encryption. The data structure that is used for this IOCTL is as follows on all of the
supported operating systems.
struct data_key
{
uchar[12] data_key_index;
uchar data_key_index_length;
uchar[15] reserved1;
uchar[32] data_key;
uchar[48] reserved2;
};
int set_datakey(void)
{
int rc = 0;
struct data_key encryption_data_key_t;
STIOC_QUERY_PARTITION
Edit online
This IOCTL queries and displays information for tapes that support partitioning. The data structure that is used for this IOCTL is
For example, 0 refers to 10^0 = 1, the most basic unit, which is bytes. All sizes that are reported are in bytes. 3 refers to 10^3, or kilobytes. Size is an array of the size of
the partitions on tape, one array element per partition, in size_units.
An example of the STIOC_QUERY_PARTITION IOCTL is
int stioc_query_partition()
{
struct query_partition qry;
int rc = 0, i = 0;
if(rc) {
printf("Query partition failed: %d\n", rc);
goto EXIT_LABEL;
} /* if */
EXIT_LABEL:
return rc;
} /* stioc_query_partition() */
STIOC_CREATE_PARTITION
Edit online
This IOCTL creates partitions on tapes that support partitioning. The data structure that is used for this IOCTL is
Type is the type of partition, whether IDP_PARTITION (initiator defined partition), SDP_PARTITION (select data partition), or FDP_PARTITION (fixed data partition). The
behavior of these options is described in the SCSI reference for your tape drive.
int stioc_create_partition()
{
int rc = 0, i = 0, char_cap = 0, short_cap = 0;
struct tape_partition crt;
crt.type = atoi(input);
crt.number_of_partitions = atoi(input);
printf("Issuing IOCTL...\n");
rc = ioctl(fd, STIOC_CREATE_PARTITION, &crt);
if(rc) {
printf("Create partition failed: %d\n", rc);
goto EXIT_LABEL;
} /* if */
EXIT_LABEL:
STIOC_SET_ACTIVE_PARTITION
Edit online
This IOCTL allows the user to specify the partition on which to run subsequent tape operations. The data structure that is used for this IOCTL is
struct set_active_partition {
unchar partition_number;
unsigned long long logical_block_id;
char reserved[32];
};
int stioc_set_partition()
{
int rc = 0;
struct set_active_partition set;
char* input = NULL;
printf("Issuing IOCTL...\n");
rc = ioctl(fd, STIOC_SET_ACTIVE_PARTITION, &set);
if(rc) {
printf("Set partition failed: %d\n", rc);
goto EXIT_LABEL;
} /* if */
EXIT_LABEL:
if(input) free(input);
return rc;
} /* stioc_set_partition() */
STIOC_ALLOW_DATA_OVERWRITE
Edit online
This IOCTL allows data on the tape to be overwritten when in data safe mode. The data structure that is used for this IOCTL is
struct allow_data_overwrite {
unchar partition_number;
unsigned long long logical_block_id;
unchar allow_format_overwrite;
char reserved[32];
};
partition_number is the number of the drive partition on which to allow the overwrite.
logical_block_id is the block that you want to overwrite.
allow_format_overwrite, if set to TRUE, instructs the tape drive to allow a format of the tape and accept the CREATE_PARTITION ioctl.
int stioc_allow_overwrite()
{
ado.allow_format_overwrite = atoi(&input[0]);
switch(ado.allow_format_overwrite) {
case 0:
memset(input, '\0', DEF_BUF_SIZE / 4);
while((input[0] < '0' || input[0] > '9')
&& (input[0] < 'a' || input[0] > 'f')) {
brk = FALSE;
printf("Enter partition in hex (< 0 to cancel): 0x");
fgets(input, DEF_BUF_SIZE / 4, stdin);
while(strlen(input) &&
isspace(input[strlen(input) - 1]))
input[strlen(input) - 1] = '\0';
if(!strlen(input)) continue;
} /* while */
ado.partition_number = char_to_hex(input);
while(strlen(input) &&
isspace(input[strlen(input) - 1]))
input[strlen(input) - 1] = '\0';
if(!strlen(input)) continue;
} /* while */
ado.logical_block_id = char_to_hex(input);
break;
case 1:
printf("Issuing IOCTL...\n");
rc = ioctl(fd, STIOC_ALLOW_DATA_OVERWRITE, &ado);
if(rc) {
printf("Allow data overwrite failed: %d\n", rc);
goto EXIT_LABEL;
} /* if */
EXIT_LABEL:
if(input) free(input);
return rc;
} /* stioc_allow_overwrite() */
STIOC_READ_POSITION_EX
Edit online
This IOCTL returns tape position with support for the short, long, and extended formats. The definitions and data structures that are used for this IOCTL follow. See the
READ_POSITION section of your tape drive’s SCSI documentation for details on the short_data_format, long_data_format, and extended_data_format structures.
struct short_data_format {
#if defined __LITTLE_ENDIAN
unchar bpew : 1;
unchar perr : 1;
unchar lolu : 1;
unchar rsvd : 1;
unchar bycu : 1;
unchar locu : 1;
unchar eop : 1;
unchar bop : 1;
#elif defined __BIG_ENDIAN
unchar bop : 1;
unchar eop : 1;
unchar locu : 1;
unchar bycu : 1;unchar rsvd : 1;
unchar lolu : 1;
unchar perr : 1;
unchar bpew : 1;
#else
error
#endif
unchar active_partition;
char reserved[2];
unchar first_logical_obj_position[4];
unchar last_logical_obj_position[4];
unchar num_buffer_logical_obj[4];
unchar num_buffer_bytes[4];
char reserved1;
};
struct long_data_format {
#if defined __LITTLE_ENDIAN
unchar bpew : 1;
unchar rsvd2 : 1;
unchar lonu : 1;
unchar mpu : 1;
unchar rsvd1 : 2;
unchar eop : 1;
unchar bop : 1;
#elif defined __BIG_ENDIAN
unchar bop : 1;
unchar eop : 1;
unchar rsvd1 : 2;
unchar mpu : 1;
unchar lonu : 1;
unchar rsvd2 : 1;
unchar bpew : 1;
#else
error
#endif
char reserved[6];
unchar active_partition;
unchar logical_obj_number[8];
unchar logical_file_id[8];
unchar obsolete[8];
};
struct extended_data_format {
#if defined __LITTLE_ENDIAN
unchar bpew : 1;
unchar perr : 1;
struct read_tape_position {
unchar data_format;
union {
struct short_data_format rp_short;
struct long_data_format rp_long;
struct extended_data_format rp_extended;
} rp_data;
};
data_format is the format in which you want to receive your data, as defined here. It can take the value RP_SHORT_FORM, RP_LONG_FORM, or RP_EXTENDED_FORM.
When the IOCTL finishes, data is returned to the corresponding structure within the rp_data union.
An example of the use of the STIOC_READ_POSITION_EX IOCTL is
int stioc_read_position_ex(void)
{
int rc = 0;
char* input = NULL;
struct read_tape_position rp = {0};
switch(atoi(input)) {
case 1:
rp.data_format = RP_SHORT_FORM;
break;
case 2:
rp.data_format = RP_LONG_FORM;
break;
case 3:
rp.data_format = RP_EXTENDED_FORM;
break;
default:
rc = EINVAL;
goto EXIT_LABEL;
} /* switch */
if(rc) {
printf("Cannot get position: %d\n", rc = errno);
goto EXIT_LABEL;
} /* if */
print_read_position_ex(&rp);
STIOC_LOCATE_16
Edit online
This IOCTL sets the tape position by using the long tape format. The definitions and structure that are used for this IOCTL are
struct set_tape_position {
unchar logical_id_type;
unsigned long long logical_id;
char reserved[32];
};
logical_id_type can take the values LOGICAL_ID_BLOCK_TYPE or LOGICAL_ID_FILE_TYPE. The values specify whether the tape head is located to the block with
the specified logical_id or to the file with the specified logical_id. An example on how to use the STIOC_LOCATE_16 IOCTL follows. The snippet assumes the declaration
of global variables filetype and blockid.
int stioc_locate_16(void)
{
int rc = 0;
struct set_tape_position pos;
pos.logical_id_type = filetype;
pos.logical_id = (long long) blockid;
STIOC_QUERY_BLK_PROTECTION
Edit online
This IOCTL queries capability and status of the drive's Logical Block Protection. The structures and defines are
struct logical_block_protection {
unchar lbp_capable;
unchar lbp_method;
unchar lbp_info_length;
unchar lbp_w;
unchar lbp_r;
unchar rbdp;
unchar reserved[26];
};
The lbp_capable is set to True if the drive supports logical block protection, or False otherwise.
A lbp_method method of LBP_DISABLE indicates that the logical block protection feature is turned off. A value of REED_SOLOMON_CRC indicates that logical block
protection is used, with a Reed-Solomon cyclical redundancy check algorithm to run the block protection.
The lbp_w indicates that logical block protection is run for write commands. The lbp_r indicates that logical block protection is run for read commands. The rbdp
indicates that logical block protection is run for recover buffer data. To use this IOCTL, issue the following call.
STIOC_SET_BLK_PROTECTION
Edit online
This IOCTL sets status of the drive's Logical Block Protection. All fields are configurable except lbp_capable and reserved. The structures and defines are the same as for
STIOC_QUERY_BLK_PROTECTION. To use this IOCTL, issue the following call.
STIOC_VERIFY_TAPE_DATA
This IOCTL instructs the tape drive to scan the data on its current tape to check for errors. The structure is defined as follows.
struct verify_data {
vte instructs the drive to verify from the current tape head position to end of data.
vlbpm instructs the drive to verify that the logical block protection method that is specified in the Control Data Protection mode page is used for each block.
If vbf is set, then the verify_length field contains the number of filemarks to be traversed, rather than the number of blocks or bytes.
immed specifies that status is to be returned immediately after the command descriptor block is validated. Otherwise, the command does not return status until the entire
operation finishes.
bytcmp is set to 0.
fixed indicates a fixed-block length, and that verify_length is interpreted as blocks rather than bytes.
verify_length specifies the length to verify in files, blocks or bytes, depending on the values of the vbf and fixed fields. If vte is set to 1, verify_length is ignored.
int stioc_verify()
{
int rc = 0, i = 0, cont = TRUE, len = 0;
char* input = NULL;
struct verify_data* vfy = NULL;
struct {
char* desc;
int idx;
} table[] = {
{"Verify to EOD", VFY_VTE},
{"Verify Logical Block Protection", VFY_VLBPM},
{"Verify by Filemarks", VFY_VBF},
{"Return immediately", VFY_IMMED},
{"Fixed", VFY_FIXED},
{NULL, 0}
};
printf("\n");
for(i = 0; table[i].desc; i++) {
while(tolower(input[0]) != 'y' && tolower(input[0]) != 'n') {
printf("%s (y/n/c to cancel)? ", table[i].desc);
fgets(input, DEF_BUF_SIZE / 16, stdin);
if(tolower(input[0]) == 'c') {
rc = 0;
goto EXIT_LABEL;
} /* if */
} /* while */
if(tolower(input[0]) == 'y') {
switch(table[i].idx) {
case VFY_VTE: vfy->vte = 1; break;
case VFY_VLBPM: vfy->vlbpm = 1; break;
case VFY_VBF: vfy->vbf = 1; break;
case VFY_IMMED: vfy->immed = 1; break;
if(!vfy->vte) {
while(cont) {
cont = FALSE;
if(!strlen(input)) {
cont = TRUE;
continue;
} /* if */
if(tolower(input[0]) == 'c') {
rc = 0;
goto EXIT_LABEL;
} /* if */
} /* while */
len = atoi(input);
vfy->verify_length[0] = (len >> 16) & 0xFF;
vfy->verify_length[1] = (len >> 8) & 0xFF;
vfy->verify_length[2] = len & 0xFF;
} /* if */
EXIT_LABEL:
if(input) free(input);
if(vfy) free(vfy);
return rc;
} /* stioc_verify() */
STIOC_QUERY_RAO
Edit online
The IOCTL is used to query the maximum number and size of User Data Segments (UDS) that are supported from tape drive and driver for the wanted uds_type.
The application calls this IOCTL before the STIOC_GENERATE_RAO and STIOC_RECEIVE_RAO IOCTLs are issued. The application uses the return data to limit the
number of UDS requested in the GENERATE_RAO IOCTL.
The structure that is defined for this IOCTL is
struct query_rao_info{
char uds_type; /* [IN] 0: UDS_WITHOUT_GEOMETRY */
/* 1: UDS_WITH_GEOMETRY */
char reserved[7];
ushort max_uds_number; /* [OUT] Max UDS number supported from drive */
ushort max_uds_size; /* [OUT] Max single UDS size supported from */
/* drive in byte */
ushort max_host_uds_number;/* [OUT] Max UDS number supported from driver */
};
#include <sys/IBMtape.h>
int rc;
struct query_rao_info stQueryRao;
stQueryRao.uds_type = uds_type;
if(rc)
printf(“STIOC_QUERY_RAO fails with rc: %d\n”, rc);
else{
max_host_uds_num = stQueryRao.max_host_uds_number;
max_uds_size = stQueryRao.max_uds_size;
}
return rc;
The IOCTL is called to send a GRAO list to request that the drive generate a Recommended Access Order list. The process method is either 1 or 2 to create a RAO list, and
the type of UDS is either with or without the geometry. The uds_number must be not larger than max_host_uds_number in the STIOC_QUERY_RAO IOCTL. The
application allocates a block of memory with grao_list_leng (uds_number*sizeof(struct
grao_uds_desc)+8) for the pointer of grao_list.
struct generate_rao {
char process; /* [IN] Requested process to generate RAO list */
/* 0: no reorder UDS and no calculate */
/* locate time(not currently supported */
/* by the drive) */
/* 1: no reorder UDS but calculate locate */
/* time */
/* 2: reorder UDS and calculate locate time*/
char uds_type; /* [IN]0: UDS_WITHOUT_GEOMETRY */
/* 1: UDS_WITH_GEOMETRY */
char reserved1[2];
uint grao_list_leng; /* [IN] The data length is allocated for GRAO */
/* list */
char *grao_list; /* [IN] the pointer is allocated to the size */
/* of grao_list_leng (uds_number */
/* * sizeof(struct grao_uds_desc) */
/* + sizeof(struct grao_list_header)) */
/* and contains the data of GRAO */
/* parameter list. The uds number is */
/* less than max_host_uds_number in */
/* QUERY_RAO ioctl. */
char reserved2[8];
};
The grao list header and UDS segments make up the parameter data and are to be put in the following order.
-- List Header
-- UDS Segment Descriptor (first)
......
-- UDS Segment Descriptor (last)
The device driver does not supply the header or UDS segment Descriptor structures. That structure is to be supplied by the application.
struct grao_list_header{
unchar reserved[4];
char addl_data[4]; /* additional data */
} ;
struct grao_uds_desc{
unchar desc_leng[2]; /* descriptor length */
char reserved[3];
char uds_name[10]; /* uds name given by application */
unchar partition; /* Partition number 0-n to overwrite */
unchar beginning_loi[8] ; /* Beginning logical object ID */
unchar ending_loi[8]; /* Ending logical object ID */
};
A sample of STIOC_GENERATE_RAO is
#include<sys/IBM_tape.h>
int rc;
struct generate_rao grao;
bzero(&grao,sizeof(struct generate_rao));
grao.process=2;
grao.uds_type=uds_type;
grao.grao_list_leng=max_host_uds_num * sizeof(struct grao_uds_desc)
+ sizeof(struct grao_list_header);
if(!(grao.grao_list=malloc(grao.grao_list_leng)))
{
perror("Failure allocating memory");
return (errno);
}
memset(grao.grao_list, 0, grao.grao_list_leng);
rc=ioctl(fd,GENERATE_RAO,&grao);
if (rc)
printf("GENERATE_RAO fails with rc%d\n",rc);
else
printf("GENERATE_RAO succeeds\n");
free(grao.grao_list);
return rc;
After a STIOC_GENERATE_RAO IOCTL is completed, the application calls the STIOC_RECEIVE_RAO IOCTL to receive a recommended access order of UDS from the
drive. To avoid a system crash, it is important that the application allocates a large enough block of memory for the *rrao_list pointer and notifies the driver of the allocated
size. It is done by indicating the size of the buffer in bytes to the rrao_list_leng variable as an input to the receive_rao_list structure.
struct receive_rao_list {
uint rrao_list_offset; /* [IN] The offset of receive RAO list to */
/* begin returning data */
uint rrao_list_leng; /* [IN/OUT] number byte of data length */
/* [IN] The data length is allocated for RRAO */
/* list by application the length is */
/* (max_uds_size * uds_number + */
/* sizeof(struct rrao_list_header) */
/* max_uds_size is reported in */
/* sizeof(struct rrao_list_header) */
/* uds_number is the total UDS number */
/* requested from application in */
/* GENERATE_RAO ioctl */
/* [OUT] the data length is actual returned */
/* in RRAO list from the driver */
char *rrao_list; /* [IN/OUT] the data pointer of RRAO list */
char reserved[8];
};
#include <sys/IBMtape.h>
int rc;
struct receive_rao_list rrao;
bzero(&rrao,sizeof(struct receive_rao_list));
rrao.rrao_list_offset=0;
rrao.rrao_list_leng= max_host_uds_num * max_uds_size + 8;
/* 8 is the header of rrao list */
if (!(rrao.rrao_list=malloc(rrao.rrao_list_leng)))
{
perror("Failure allocating memory");
return (errno);
}
memset(rrao.rrao_list, 0, rrao.rrao_list_leng);
rc=ioctl(fd,STIOC_RECEIVE_RAO,&rrao);
if (rc)
printf("STIOC_RECEIVE_RAO fails with rc %d\n",rc);
else
printf("rrao_list_leng %d\n",rrao.rrao_list_leng);
free(rrao.rrao_list);
return rc;
STIOC_SET_SPDEV
Edit online
With the latest lin_tape versions, the IBMSpecial device is created. It allows the use of ioctls for preemption purposes. Applications must use it cautiously and manage
persistent reservation properly.
This ioctl is for usage through IBMSpecial open handle only. It sets the drive that processes the command requests, and to do so it needs the serial number of the drive as
input. If /dev/IBMSpecial is not created, it is not supported.
#define DD_MAX_DEVICE_SERIAL 36
struct sp_dev{
char device_serial[DD_MAX_DEVICE_SERIAL];
};
#include <sys/IBM_tape.h>
struct sp_dev spd;
setDriveSN(spd.device_serial);
if (!ioctl (fd, STIOC_SET_SPDEV, &spd)) {
printf ("The STIOC_SET_SPDEV ioctl succeeded\n");
}
else {
When the STIOC_SET_SPDEV ioctl succeeds, it is possible to send any of these ioctls to the drive previously set and identified by serial number:
STIOC_READ_RESERVEKEYS, STIOC_READ_RESERVATIONS, STIOC_REGISTER_KEY, STIOC_REMOVE_REGISTRATION, STIOC_CLEAR_ALL_REGSITRATION.
The following IOCTL commands help provide compatibility for previously compiled programs. Where practical, such programs must be recompiled to use the preferred
IOCTL commands in the IBMtape device driver.
MTIOCTOP
MTIOCGET
MTIOCPOS
MTIOCTOP
Edit online
This IOCTL command is similar in function to the st MTIOCTOP command. It is provided as a convenience for precompiled programs that call that IOCTL command. Refer
to /usr/include/sys/mtio.h or /usr/include/linux/mtio.h for information on the MTIOCTOP command.
MTIOCGET
Edit online
This IOCTL command is similar in function to the st MTIOCGET command. It is provided as a convenience for precompiled programs that call that IOCTL command. Refer
to /usr/include/sys/mtio.h or /usr/include/linux/mtio.h for information on the MTIOCGET command.
MTIOCPOS
Edit online
This IOCTL command is similar in function to the st MTIOCPOS command. It is provided as a convenience for precompiled programs that call that IOCTL command. Refer
to /usr/include/sys/mtio.h or /usr/include/linux/mtio.h for information on the MTIOCPOS command.
This chapter describes the IOCTL commands that provide access and control of the SCSI medium changer functions. These IOCTL operations can be issued to the medium
changer special file, such as IBMchanger0.
SMCIOC_ELEMENT_INFO
Obtain the device element information.
SMCIOC_MOVE_MEDIUM
Move a cartridge from one element to another element.
SMCIOC_EXCHANGE_MEDIUM
Exchange a cartridge in an element with another cartridge.
SMCIOC_POS_TO_ELEM
Move the robot to an element.
SMCIOC_INIT_ELEM_STAT
Issue the SCSI Initialize Element Status command.
SMCIOC_INIT_ELEM_STAT_RANGE
Issue the SCSI Initialize Element Status with Range command.
SMCIOC_INVENTORY
Return the information about the four element types.
SMCIOC_LOAD_MEDIUM
Load a cartridge from a slot into the drive.
SMCIOC_UNLOAD_MEDIUM
Unload a cartridge from the drive and return it to a slot.
SMCIOC_PREVENT_MEDIUM_REMOVAL
Prevent medium removal by the operator.
SMCIOC_ALLOW_MEDIUM_REMOVAL
Allow medium removal by the operator.
These IOCTL commands and their associated structures are defined in the IBM_tape.h header file, which can be found in /usr/include/sys after IBMtape is installed. The
IBM_tape.h header file is included in the corresponding C program by using the functions.
SMCIOC_ELEMENT_INFO
SMCIOC_MOVE_MEDIUM
SMCIOC_EXCHANGE_MEDIUM
SMCIOC_POS_TO_ELEM
SMCIOC_INIT_ELEM_STAT
SMCIOC_INIT_ELEM_STAT_RANGE
SMCIOC_INVENTORY
SMCIOC_LOAD_MEDIUM
SMCIOC_UNLOAD_MEDIUM
SMCIOC_PREVENT_MEDIUM_REMOVAL
SMCIOC_ALLOW_MEDIUM_REMOVAL
SMCIOC_READ_ELEMENT_DEVIDS
SMCIOC_ELEMENT_INFO
Edit online
struct element_info {
ushort robot_addr; /* first robot address */
ushort robots; /* number of medium transport elements */
ushort slot_addr; /* first medium storage element address */
ushort slots; /* number of medium storage elements */
ushort ie_addr; /* first import/export element address */
ushort ie_stations; /* number of import/export elements */
ushort drive_addr; /* first data-transfer element address */
ushort drives; /* number of data-transfer elements */
};
#include <sys/IBM_tape.h>
struct element_info element_info;
if (!ioctl (smcfd, SMCIOC_ELEMENT_INFO, &element_info)) {
printf ("The SMCIOC_ELEMENT_INFO ioctl succeeded\n");
printf ("\nThe element information data is:\n");
dump_bytes ((unchar *) &element_info, sizeof (struct element_info));
}
else {
perror ("The SMCIOC_ELEMENT_INFO ioctl failed");
smcioc_request_sense();
}
SMCIOC_MOVE_MEDIUM
Edit online
This IOCTL command moves a cartridge from one element to another element.
struct move_medium {
ushort robot; /* robot address */
ushort source; /* move from location */
ushort destination; /* move to location */
char invert; /* invert before placement bit */
};
#include <sys/IBM_tape.h>
struct move_medium move_medium;
move_medium.robot = 0;
move_medium.invert = 0;
move_medium.source = source;
SMCIOC_EXCHANGE_MEDIUM
Edit online
This IOCTL command exchanges a cartridge in an element with another cartridge. This command is equivalent to two SCSI Move Medium commands. The first moves the
cartridge from the source element to the destination1 element. The second moves the cartridge that was previously in the destination1 element to the destination 2
element. This function is available only in the IBM® 3584 UltraScalable tape library. The destination2 element can be the same as the source element.
struct exchange_medium {
ushort robot; /* robot address */
ushort source; /* source address for exchange */
ushort destination1; /* first destination address for exchange */
ushort destination2; /* second destination address for exchange */
char invert1; /* invert before placement into destination1 */
char invert2; /* invert before placement into destination2 */
};
#include <sys/IBM_tape.h>
struct exchange_medium exchange_medium;
exchange_medium.robot = 0;
exchange_medium.invert1 = 0;
exchange_medium.invert2 = 0;
exchange_medium.source = 32; /* slot 32 */
exchange_medium.destination1 = 16; /* drive address 16 */
exchange_medium.destination2 = 35; /* slot 35 */
SMCIOC_POS_TO_ELEM
Edit online
struct pos_to_elem {
ushort robot; /* robot address */
ushort destination; /* move to location */
char invert; /* invert before placement bit */
};
#include <sys/IBM_tape.h>
struct pos_to_elem pos_to_elem;
pos_to_elem.robot = 0;
pos_to_elem.invert = 0;
pos_to_elem.destination = dest;
if (!ioctl (smcfd, SMCIOC_POS_TO_ELEM, &pos_to_elem))
printf ("The SMCIOC_POS_TO_ELEM ioctl succeeded\n");
else {
perror ("The SMCIOC_POS_TO_ELEM ioctl failed");
smcioc_request_sense();
}
SMCIOC_INIT_ELEM_STAT
Edit online
This IOCTL command instructs the medium changer robotic device to issue the SCSI Initialize Element Status command.
#include <sys/IBM_tape.h>
if (!ioctl (smcfd, SMCIOC_INIT_ELEM_STAT, NULL))
printf ("The SMCIOC_INIT_ELEM_STAT ioctl succeeded\n");
else {
perror ("The SMCIOC_INIT_ELEM_STAT ioctl failed");
smcioc_request_sense();
}
SMCIOC_INIT_ELEM_STAT_RANGE
Edit online
This IOCTL command issues the SCSI Initialize Element Status with Range command and audits specific elements in a library by specifying the starting element
address and number of elements. Use the SMCIOC_INIT_ELEM_STAT IOCTL to audit all elements.
struct element_range {
ushort element_address; /* starting element address */
ushort number_elements; /* number of elements */
}
#include <sys/IBM_tape.h>
struct element_range elements;
/* audit slots 32 to 36 */
elements.element_address = 32;
elements.number_elements = 5;
if (!ioctl (smcfd, SMCIOC_INIT_ELEM_STAT_RANGE, &elements))
printf ("The SMCIOC_INIT_ELEM_STAT_RANGE ioctl succeeded\n");
else {
perror ("The SMCIOC_INIT_ELEM_STAT_RANGE ioctl failed");
smcioc_request_sense();
}
Note: Use the SMCIOG_INVENTORY IOCTL command to obtain the current version after this IOCTL command is issued.
SMCIOC_INVENTORY
Edit online
This IOCTL command returns the information about the four element types. The software application processes the input data (the number of elements about which it
requires information). Then, it allocates a buffer large enough to hold the output for each element type.
struct element_status {
ushort address; /* element address */
uint :2, /* reserved */
inenab :1, /* media into changer's scope */
exenab :1, /* media out of changer's scope */
access :1, /* robot access allowed */
except :1, /* abnormal element state */
impexp :1, /* import/export placed by operator or robot */
full :1; /* element contains medium */
unchar resvd1; /* reserved */
unchar asc; /* additional sense code */
unchar ascq; /* additional sense code qualifier */
uint notbus :1, /* element not on same bus as robot */
:1, /* reserved */
idvalid :1, /* element address valid */
luvalid :1, /* logical unit valid */
:1, /* reserved */
lun :3; /* logical unit number */
unchar scsi; /* SCSI bus address */
unchar resvd2; /* reserved */
uint svalid :1, /* element address valid */
invert :1, /* medium inverted */
:6; /* reserved */
ushort source; /* source storage element address */
unchar volume[36]; /* primary volume tag */
unchar resvd3[4]; /* reserved */
};
struct inventory {
struct element_status *robot_status; /* medium transport elem pgs */
struct element_status *slot_status; /* medium storage elem pgs */
struct element_status *ie_status; /* import/export elem pgs */
struct element_status *drive_status; /* data-transfer elem pgs */
};
#include <sys/IBM_tape.h>
ushort i;
SMCIOC_LOAD_MEDIUM
Edit online
This IOCTL command loads a tape from a specific slot into the drive. Or, it loads from the first full slot into the drive if the slot address is specified as zero.
#include <sys/IBM_tape.h>
/* load cartridge from slot 3 */
if (ioctl (tapefd, SMCIOC_LOAD_MEDIUM,3)) {
printf ("IOCTL failure. errno=%d\n",errno);
exit(1);
}
/* load first cartridge from magazine */
if (ioctl (tapefd, SMCIOC_LOAD_MEDIUM,0)) {
printf ("IOCTL failure. errno=%d\n",errno);
exit(1);
}
SMCIOC_UNLOAD_MEDIUM
Edit online
This IOCTL command moves a tape from the drive and returns it to a specific slot. Or, it moves a tape to the first empty slot in the magazine if the slot address is specified
as zero. An unload/offline command must be sent to the tape first, otherwise, this IOCTL command fails with errno EIO.
#include <sys/IBM_tape.h>
/* unload cartridge to slot 3 */
if (ioctl (tapefd, SMCIOC_UNLOAD_MEDIUM,3)) {
printf ("IOCTL failure. errno=%d\n",errno);
exit(1);
}
/* unload cartridge to first empty slot in magazine */
SMCIOC_PREVENT_MEDIUM_REMOVAL
Edit online
This IOCTL command prevents an operator from removing medium from the device until the SMCIOC_ALLOW_MEDIUM_REMOVAL command is issued or the device is
reset. There is no associated data structure.
#include <sys/IBM_tape.h>
if (!ioctl (smcfd, SMCIOC_PREVENT_MEDIUM_REMOVAL, NULL))
printf ("The SMCIOC_PREVENT_MEDIUM_REMOVAL ioctl succeeded\n");
else {
perror ("The SMCIOC_PREVENT_MEDIUM_REMOVAL ioctl failed");
smcioc_request_sense();
}
SMCIOC_ALLOW_MEDIUM_REMOVAL
Edit online
This IOCTL command allows an operator to remove medium from the device. This command is normally used after an SMCIOC_PREVENT_MEDIUM_REMOVAL command
to restore the device to the default state. There is no associated data structure.
#include <sys/IBM_tape.h>
if (!ioctl (smcfd, SMCIOC_ALLOW_MEDIUM_REMOVAL, NULL))
printf ("The SMCIOC_ALLOW_MEDIUM_REMOVAL ioctl succeeded\n");
else {
perror ("The SMCIOC_ALLOW_MEDIUM_REMOVAL ioctl failed");
smcioc_request_sense();
}
SMCIOC_READ_ELEMENT_DEVIDS
Edit online
This IOCTL command issues the SCSI Read Element Status command with the device ID(DVCID) bit set and returns the element descriptors for the data transfer
elements. The element_address field specifies the starting address of the first data transfer element. The number_elements field specifies the number of elements to
return. The application must allocate a return buffer large enough for the number of elements that are specified in the input structure.
struct read_element_devids {
ushort element_address; /* starting element address */
ushort number_elements; /* number of elements */
struct element_devid *drive_devid; /* data transfer element pages */
};
struct element_devid {
ushort address; /* element address */
uint :4, /* reserved */
access :1, /* robot access allowed */
except :1, /* abnormal element state */
:1, /* reserved */
full :1; /* element contains medium */
unchar resvd1; /* reserved */
unchar asc; /* additional sense code */
unchar ascq; /* additional sense code qualifier */
uint notbus :1, /* element not on same bus as robot */
:1, /* reserved */
idvalid :1, /* element address valid */
luvalid :1, /* logical unit valid */
:1, /* reserved */
lun :3; /* logical unit number */
unchar scsi; /* scsi bus address */
unchar resvd2; /* reserved */
uint svalid :1, /* element address valid */
invert :1, /* medium inverted */
:6; /* reserved */
ushort source; /* source storage element address */
uint :4, /* reserved */
code_set :4; /* code set X'2' is all ASCII identifier*/
uint :4, /* reserved */
#include <sys/IBM_tape.h>
int smcioc_read_element_devids() {
int i;
struct element_devid *elem_devid, *elemp;
struct read_element_devids devids;
struct element_info element_info;
if (ioctl(fd, SMCIOC_ELEMENT_INFO, &element_info)) return errno;
if (element_info.drives) {
elem_devid = malloc(element_info.drives
* sizeof(struct element_devid));
if (elem_devid == NULL) {
errno = ENOMEM;
return errno;
}
bzero((caddr_t)elem_devid,element_info.drives
* sizeof(struct element_devid));
devids.drive_devid = elem_devid;
devids.element_address = element_info.drive_addr;
devids.number_elements = element_info.drives;
printf("Reading element device ids?\n");
if (ioctl (fd, SMCIOC_READ_ELEMENT_DEVIDS, &devids)) {
free(elem_devid);
return errno;
}
elemp = elem_devid;
for (i = 0; i<element_info.drives; i++, elemp++) {
printf("\nDrive Address %d\n",elemp->address);
if (elemp->except)
printf(" Drive State .................... Abnormal\n");
else
printf(" Drive State .................... Normal\n");
if (elemp->asc == 0x81 && elemp->ascq ==0x00)
printf(" ASC/ASCQ ....................... %02X%02X (Drive Present)\n",
elemp->asc,elemp->ascq);
else if (elemp->asc == 0x82 && elemp->ascq ==0x00)
printf(" ASC/ASCQ ....................... %02X%02X (Drive Not Present)\n",
elemp->asc,elemp->ascq);
else
printf(" ASC/ASCQ ....................... %02X%02X\n",
elemp->asc,elemp->ascq);
if (elemp->full)
printf(" Media Present .................. Yes\n");
else
printf(" Media Present .................. No\n");
if (elemp->access)
printf(" Robot Access Allowed ........... Yes\n");
else
printf(" Robot Access Allowed ........... No\n");
if (elemp->svalid)
printf(" Source Element Address ......... %d\n",
elemp->source);
else
printf(" Source Element Address Valid .....No\n");
if (elemp->invert)
printf(" Media Inverted ................. Yes\n");
else
printf(" Media Inverted ................. No\n");
if (elemp->notbus)
printf(" Same Bus as Medium Changer ..... No\n");
else
printf(" Same Bus as Medium Changer ..... Yes\n");
if (elemp->idvalid)
printf(" SCSI Bus Address ............... %d\n",elemp->scsi);
else
printf(" SCSI Bus Address Valid ......... No\n");
if (elemp->luvalid)
printf(" Logical Unit Number ............ %d\n",elemp->lun);
else
printf(" Logical Unit Number Valid ...... No\n");
printf(" Device ID ...................... %0.36s\n",
elemp->identifier);
}
else {
printf("\nNo drives found in element information\n");
}
free(elem_devid);
return errno;
}
Return codes
Edit online
Note: For error code EIO, an application can retrieve more information from the device itself. Issue the STIOCQRYSENSE IOCTL command when the sense_type equals
LASTERROR, or the SIOC_REQSENSE IOCTL command, to retrieve sense data. Then, analyze the sense data by using the appropriate hardware or SCSI reference for that
device.
An open operation with the O_RDWR or O_WRONLY flag was attempted on a write-protected tape.
A write operation was attempted on a device that was opened with the O_RDONLY flag.
The number of bytes requested in the read operation of a variable block record was less than the size of the block. This error is known as an
overlength condition.
Insufficient memory was available for an internal memory operation.
[EPERM] A read operation was attempted on a device that was opened with the O_WRONLY flag.
The operation that is requested has invalid parameters or an invalid combination of parameters.
The number of bytes requested in the write operation was not a multiple of the block size for a fixed block transfer.
The number of bytes requested in the write operation was greater than the maximum block size allowed by the device for variable block
transfers.
[EIO] The physical end of the medium was detected, or it is a general error that indicates a failure to write to the device. Perform failure analysis.
[ENOMEM] Insufficient memory was available for an internal memory operation.
[ENOSPC] A write operation failed because it reached the early warning mark. This error code is returned only one time when the early warning is reached and
trailer_labels is set to true. A write operation was attempted after the device reached the logical end of the medium and trailer_labels were set to
false.
[EPERM] A write operation was attempted on a write protected tape.
The programming interface conforms to the standard Microsoft Windows Server 2003, Windows Server 2008, and Windows Server 2012 tape device drivers interface. It is
detailed in the Microsoft Developer Network (MSDN) Software Development Kit (SDK) and Driver Development Kit (DDK). Common documentation for these similar
devices are indicated by 200x.
ibmtpxxx.sys, which supports the IBM® TotalStorage™ or Magstar® tape drives, where
ibmtp2k3.sys, ibmtpbs2k3.sys, ibmtpft2k3.sys are used for Windows Server 2003
ibmtp2k8.sys, ibmtpbs2k8.sys, ibmtpft2k8.sys are used for Windows Server 2008
ibmtp2k12.sys, ibmtpbs2k12.sys, ibmtpft2k12.sys are used for Windows Server 2012
The programming interface conforms to the standard Microsoft Windows 200x tape device driver interface. It is detailed in the Microsoft Developer Network (MSDN)
Software Development Kit (SDK), and Driver Development Kit (DDK).
The following user-callable tape driver entry points are supported under ibmtpxxx.sys.
CreateFile
CloseHandle
DeviceIoControl
EraseTape
GetTapeParameters
GetTapePosition
GetTapeStatus
PrepareTape
ReadFile
SetTapeParameters
SetTapePosition
WriteFile
WriteTapemark
If the Removable Storage Manager is stopped, then the following user-callable tape media changer driver entry points are supported under ibmcgxxx.sys:
CreateFile
CloseHandle
DeviceIoControl
Users who want to write application programs to issue commands to IBM® TotalStorage™ device drivers must obtain a license to the MSDN and the Microsoft Visual C++
Compiler. Users also need access to IBM hardware reference manuals for IBM TotalStorage devices.
Programs that access the IBM TotalStorage device driver must complete the following steps:
#include <ntddscsi.h>
#include <ntddchgr.h>
#include <ntddtape.h> /* Modified as indicated below */
CreateFile
ReadFile
WriteFile
Write Tapemark
SetTapePosition
GetTapePosition
SetTapeParameters
GetTapeParameters
PrepareTape
EraseTape
GetTapeStatus
DeviceIoControl
CreateFile
Edit online
The CreateFile entry point is called to make the driver and device ready for input/output (I/O). Installing the driver in non-exclusive mode allows several handles to the
same TotalStorage device. If the driver was installed in exclusive mode, by default only one active handle is allowed to a given TotalStorage device. However, if more than
one handle is needed for the same device, the dwCreationDisposition parameter can be set to OPEN_ALWAYS in CreateFile() function to create an extra handle. By using
this flag the resulting handle has limited functions. The driver allows the following IOCTLs only:
IOCTL_STORAGE_PERSISTENT_RESERVE_IN
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT
IOCTL_SCSI_PASS_THROUGH_DIRECT with Cdb[0] set to INQUIRY (0x12)
The following code fragment illustrates a call to the CreateFile routine:
/*
** Open for reading/writing on LUN0,
** where the device special file name is in the form of tapex and
** x is the logical device 0 to n - can be determined from Registry
**
** Open for media mover operations on LUN1,
** where the device special file name is in the form of
** changerx and x is the logical device 0 to n - can be determined from Registry
ddHandle0 = CreateFile(
"\\\\.\\tape0",
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
ddHandle1 = CreateFile(
"\\\\.\\changer0",
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
/* Print msg if open failed for handle 0 or 1 */
if(ddHandlen == INVALID_HANDLE_VALUE)
{
printf("open failed for LUNn\n");
printf("System Error = %d\n",GetLastError());
exit (-1);
}
The CloseHandle entry point is called to stop I/O to the driver and device. The following code fragment illustrates a call to the CloseHandle routine:
BOOL rc;
rc = CloseHandle(
ddHandle0
);
where ddHandle0 is the open file handle returned by the CreateFile call.
ReadFile
Edit online
The ReadFile entry point is called to read data from tape. The caller provides a buffer address and length, and the driver returns data from the tape to the buffer. The
amount of data that is returned never exceeds the length parameter.
See Variable and fixed block read/write processing for a full discussion of the read/write processing feature.
BOOL rc;
rc = ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nBufferSize,
LPDWORD lpBytesRead,
LPOVERLAPPED lpOverlapped
);
if(rc)
{
if (*lpBytesRead > 0)
printf("Read %d bytes\n", *lpBytesRead);
else
printf("Read found file mark\n");
}
else
{
printf("Error on read\n");
printf("System Error = %d\n",GetLastError());
exit (-1);
}
Where hFile is the open file handle, lpBuffer is the address of a buffer in which to place the data, nBufferSize is the number of bytes to be read, and lpBytesRead
is the number of bytes read.
WriteFile
Edit online
The WriteFile entry point is called to write data to the tape. The caller provides the address and length of the buffer to be written to tape. The physical limitations of the
drive can cause the write to fail. One example is attempting to write past the physical end of the tape.
See Variable and fixed block read/write processing for a full discussion of the read/write processing feature.
BOOL rc;
rc = WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nBufferSize,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
if (!rc)
{
printf("Error on write\n");
printf("System Error = %d\n",GetLastError());
exit (-1);
}
Where hFile is the open file handle, lpBuffer is the buffer address, and nBufferSize is the size of the buffer in bytes.
If the function succeeds, the return value rc is nonzero. The application also verifies that all the requested data was written by examining the lpNumberOfBytesWritten
parameter. See Write Tapemark for details on committing data on the media.
Write Tapemark
Application writers who are using the WriteFile entry point to write data to tape must understand that the tape device buffers data in its memory and writes that data to
the media as those device buffers fill. Thus, a WriteFile call might return a successful return code, but the data might not be on the media yet. Calling the WriteTapemark
entry point and receiving a good return code, however, ensures that data is committed to tape media properly if all previous WriteFile calls were successful. However,
applications that write large amounts of data to tape might not want to wait until writing a tapemark to know whether previous data was written to the media properly. For
example:
WriteTapemark(
HANDLE hDevice,
DWORD dwTapemarkType,
DWORD dwTapemarkCount,
BOOL bImmediate
);
TAPE_FILEMARKS
The WriteTapemark entry point might also be called with the dwTapemarkCount parameter set to 0 and the bImmediate parameter that is set to FALSE. This action
commits any uncommitted data that is written by previous WriteFile calls (since the last call to WriteTapemark) to the media. If no error is returned by the WriteFile calls
and the WriteTapemark call, the application can assume that all data is committed to the media successfully.
SetTapePosition
Edit online
The SetTapePosition entry point is called to seek to a particular block of media data. For example:
SetTapePosition(
HANDLE hDevice,
DWORD dwPositionMethod,
DWORD dwPartition,
DWORD dwOffsetLow,
DWORD dwOffsetHigh,
BOOL bImmediate
);
For Magstar® devices, the following types of tapemarks and immediate values are supported.
GetTapePosition
Edit online
The GetTapePosition entry point is called to retrieve the current tape position. For example:
GetTapePosition(
HANDLE hDevice,
DWORD dwPositionType,
LPDWORD lpdwPartition,
LPDWORD lpdwOffsetLow,
LPDWORD lpdwOffsetHigh
);
TAPE_ABSOLUTE_POSITION or TAPE_LOGICAL_POSITION might be specified but only the absolute position is returned.
SetTapeParameters
Edit online
The SetTapeParameters entry point is called to either specify the block size of a tape or set tape device data compression. The data structures are
SetTapeParameters(
HANDLE hDevice,
DWORD dwOperation,
LPVOID lpParameters
);
dwOperation is the type of information to set (SET_TAPE_MEDIA_INFORMATION or SET_TAPE_DRIVE_INFORMATION). For SET_TAPE_DRIVE_INFORMATION, only
compression is changeable.
lpParameters is the address of either a TAPE_SET_MEDIA_PARAMETERS or a TAPE_SET_DRIVE_PARAMETERS data structure that contains the parameters.
GetTapeParameters
Edit online
The GetTapeParameters entry point is called to get information that describes the tape or the tape drive.
DWORD rc;
rc = GetTapeParameters(
HANDLE hDevice,
DWORD dwOperation,
LPDWORD lpdwSize,
LPVOID lpParameters
);
if (rc)
{
printf("Error on GetTapeParameters\n");
printf("System Error = %d\n",GetLastError());
exit (-1);
}
Where hDevice is the open file handle, dwOperation is the type of information requested (GET_TAPE_MEDIA_INFORMATION or GET_TAPE_DRIVE_INFORMATION),
and lpParameters is the address of the returned data parameter structure.
PrepareTape
Edit online
The PrepareTape entry point is called to prepare the tape for access or removal. For example,
PrepareTape(
HANDLE hDevice,
DWORD dwOperation,
BOOL bImmediate
);
EraseTape
Edit online
The EraseTape entry point is called to erase all or a part of a tape. The erase is completed from the current location. For example:
EraseTape(
HANDLE hDevice,
DWORD dwEraseType,
BOOL bImmediate
);
GetTapeStatus
Edit online
The GetTapeStatus entry point is called to determine whether the tape device is ready to process tape commands. For example,
GetTapeStatus(
HANDLE hDevice
);
hDevice is the handle to the device for which to get the device status.
DeviceIoControl
Edit online
The DeviceIoControl function is described in the Microsoft Developer Network (MSDN) Software Developer Kit(SDK) and Device Driver Developer Kit (DDK).
The DeviceIoControl function sends a control code directly to a specified device driver, causing the corresponding device to complete the specified operation.
BOOL DeviceIoControl(
HANDLE hDevice, // handle to device of interest
DWORD dwIoControlCode, // control code of operation to perform
LPVOID lpInBuffer, // pointer to buffer to supply input data
DWORD nInBufferSize, // size of input buffer
LPVOID lpOutBuffer, // pointer to buffer to receive output data
DWORD nOutBufferSize, // size of output buffer
LPDWORD lpBytesReturned, // pointer to variable to receive output byte count
LPOVERLAPPED lpOverlapped // pointer to overlapped structure for \
asynchronous operation
);
Following is a list of the supported dwIoControlCode codes that are described in the MSDN DDK and used through the DeviceIoControl API.
IOCTL_SCSI_PASS_THROUGH
Tape and medium changer.
IOCTL_SCSI_PASS_THROUGH_DIRECT
Tape and medium changer.
IOCTL_STORAGE_RESERVE
Tape and medium changer.
IOCTL_STORAGE_RELEASE
Tape and medium changer.
IOCTL_STORAGE_PERSISTENT_RESERVE_IN
Tape and medium changer.
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT
Tape and medium changer.
IOCTL_CHANGER_EXCHANGE_MEDIUM
Medium changer not all changers.
IOCTL_CHANGER_GET_ELEMENT_STATUS
Medium changer if bar code Reader then VolTags supported.
IOCTL_CHANGER_GET_PARAMETERS
An example of the use of SCSI Pass Through is contained in the sample code SPTI.C in the DDK.
The function call DeviceIoControl is described in the SDK and examples of its use are shown in the DDK.
The Removable Storage Manager (RSM) must be stopped to use these ioctl commands. RSM can be stopped from Computer Management (Local) > Services and
Applications > Services > Removable Storage.
IOCTL commands
IOCTL commands
Edit online
Not all source or destination addresses, exchanges, moves, or operations are allowed for a particular IBM® Medium Changer. The user must issue an
IOCTL_CHANGER_GET_PARAMETER to determine the type of operations that are allowed by a specific changer device. Further information on allowable commands for a
particular changer can be found in the IBM hardware reference for that device. It is recommended that the user have a copy of the hardware reference before any
applications for the changer device are constructed.
IOCTL_CHANGER_EXCHANGE_MEDIUM
The media from the source element is moved to the first destination element. The medium that previously occupied the first destination element is moved to the second
destination element (the second destination element might be the same as the source) by sending an ExchangeMedium (0xA6) SCSI command to the device. The input
data is a structure of CHANGER_EXCHANGE_MEDIUM. This command is not supported by all devices.
IOCTL_CHANGER_GET_ELEMENT_STATUS
Returns the status of all elements or of a specified number of elements of a particular type by sending a ReadElementStatus (0xB8) SCSI command to the device. The
input and output data is a structure of CHANGER_ELEMENT_STATUS.
IOCTL_CHANGER_GET_PARAMETERS
Returns the capabilities of the changer. The output data is in a structure of GET_CHANGER_PARAMETERS.
IOCTL_CHANGER_GET_PRODUCT_DATA
Returns the product data for the changer. The output data is in a structure of CHANGER_PRODUCT_DATA.
IOCTL_CHANGER_GET_STATUS
Returns the status of the changer by sending a TestUnitReady (0x00) SCSI command to the device.
IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS
Initializes the status of all elements or a range of a particular element by sending an InitializeElementStatus (0x07) or IntializeElementStatusWithRange (0xE7) SCSI
command to the device. The input data is a structure of CHANGER_INITIALIZE_ELEMENT_STATUS.
IOCTL_CHANGER_MOVE_MEDIUM
Moves a piece of media from a source to a destination by sending a MoveMedia (0xA5) SCSI command to the device. The input data is a structure of
CHANGER_MOVE_MEDIUM.
IOCTL_CHANGER_REINITIALIZE_TRANSPORT
IOCTL_CHANGER_SET_ACCESS
Sets the access state of the changers IE port by sending a PrevenAllowMediumRemoval (0x1E) SCSI command to the device. The input data is a structure of
CHANGER_SET_ACCESS.
IOCTL_CHANGER_SET_POSITION
Sets the changers robotic transport to a specified address by sending a PositionToElemen (0x2B) SCSI command to the device. The input data is a structure of
CHANGER_SET_POSITION.
Preempt reservation
Edit online
A reservation can be preempted by issuing the appropriate IOCTL. The current reservation key is needed to successfully preempt the reservation. The current reservation
key can be queried by issuing an IOCTL_STORAGE_PERSISTENT_RESERVE_IN IOCTL:
PERSISTENT_RESERVE_COMMAND prcmd = { 0 };
PPRI_RESERVATION_LIST prsl = NULL;
ULONG AdditionalLength = 0;
DWORD BytesReturned = 0;
INT iStatus = 0, i, j;
prcmd.Size = sizeof(PERSISTENT_RESERVE_COMMAND);
prcmd.PR_IN.ServiceAction = RESERVATION_ACTION_READ_KEYS;
prcmd.PR_IN.AllocationLength = sizeof(PRI_REGISTRATION_LIST);
iStatus = DeviceIoControl(tape,
IOCTL_STORAGE_PERSISTENT_RESERVE_IN,
&prcmd,
prcmd.Size,
bufDataRead,
AdditionalLength,
&BytesReturned,
NULL);
if (0 == iStatus) {
free(bufDataRead);
return FALSE;
}
prsl = (PPRI_RESERVATION_LIST)bufDataRead;
if (0 == i) {
AdditionalLength = (ULONG)((prsl->AdditionalLength[0] & 0xff) << 12);
AdditionalLength |= (ULONG)((prsl->AdditionalLength[1] & 0xff) << 8);
AdditionalLength |= (ULONG)((prsl->AdditionalLength[2] & 0xff) << 4);
AdditionalLength |= (ULONG) (prsl->AdditionalLength[3] & 0xff);
AdditionalLength += sizeof(PRI_RESERVATION_LIST);
prcmd.PR_IN.AllocationLength = AdditionalLength;
} else if (1 == i) {
for (j = 0; (j * sizeof(PRI_RESERVATION_DESCRIPTOR)
+ sizeof(PRI_RESERVATION_LIST))<= AdditionalLength; j++) {
printf("\nReservation 0x%08x%08x being examined at
descriptor index %d.\n",
((LARGE_INTEGER*)(prsl->Reservations[j].ReservationKey))
->HighPart,
((LARGE_INTEGER*)(prsl->Reservations[j].ReservationKey))
->LowPart,
j);
}
}
}
When the reservation key is known, it can be preempted, meaning a new host can be the reservation holder, thus being able to interact with the target as needed.
PRI_RESERVATION_DESCRIPTOR reservation = { 0 };
PERSISTENT_RESERVE_COMMAND prcmd = { 0 };
PRO_PARAMETER_LIST prolist = { 0 };
DWORD BytesReturned = 0;
INT iStatus = 0;
UCHAR bufDataRead[sizeof(PERSISTENT_RESERVE_COMMAND)
+ sizeof(PRO_PARAMETER_LIST)] = { 0 };
prcmd.PR_OUT.ParameterList[1] = 0x18;
prcmd.PR_OUT.ServiceAction = 0x3;
prcmd.PR_OUT.Type = 0x3;
query_reserve(tape, &reservation);
iStatus = DeviceIoControl(tape,
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT,
bufDataRead,
sizeof(bufDataRead),
bufDataRead,
sizeof(bufDataRead),
&BytesReturned,
NULL);
The query_reserve function can be implemented as explained earlier. Finally, if the reservation needs to be preempted on a different system than the original reservation
holder, the OPEN_ALWAYS flag comes in handy. It allows the user to query the target's serial number, then queries the reservation key, and preempts the reservation.
Caution is advised when preempting reservations due to inherent risk of data loss if done incorrectly. Applications must make sure that they are clearing or preempting the
appropriate reservation.
The following descriptions are of the IBM® vendor-specific ioctl requests for tape and changer.
/*
This macro is defined in ntddk.h and devioctl.h
#define CTL_CODE(DeviceType, Function, Method, Access) \
(((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
*/
The following ioctl commands are supported by the ibmtp.sys driver through DeviceIoControl.
IOCTL_TAPE_OBTAIN_SENSE
IOCTL_TAPE_OBTAIN_VERSION
IOCTL_TAPE_OBTAIN_SENSE
Edit online
Issue this command after an error occurs to obtain sense information that is associated with the most recent error. To guarantee that the application can obtain sense
information that is associated with an error, the application must issue this command before other commands to the device are issued. Subsequent operations (other than
IOCTL_TAPE_OBTAIN_SENSE) reset the sense data field before the operation is run.
The following output structure is completed by the IOCTL_TAPE_OBTAIN_SENSE command that is passed by the caller.
DWORD cb;
TAPE_OBTAIN_SENSE sense_data;
DeviceIoControl(hDevice,
IOCTL_TAPE_OBTAIN_SENSE,
NULL,
0,
&sense_data,
(long)sizeof(TAPE_OBTAIN_SENSE),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_OBTAIN_VERSION
Edit online
Issue this command to obtain the version of the device driver. It is in the form of a null terminated string.
#define MAX_DRIVER_VERSIONID_LENGTH 12
DWORD cb;
TAPE_OBTAIN_VERSION code_version;
DeviceIoControl(hDevice,
IOCTL_TAPE_OBTAIN_VERSION,
NULL,
0,
&code_version,
(long)sizeof(TAPE_OBTAIN_VERSION),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_LOG_SELECT
Edit online
This command resets all log pages that can be reset on the device to their default values. This IOCTL is only for the tape path.
DWORD cb;
DeviceIoControl(hDevice,
IOCTL_TAPE_LOG_SELECT,
NULL,
0,
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_LOG_SENSE
Edit online
Issue this command to obtain the log data of the requested log page from IBM® Magstar® tape device. The data that is returned is formatted according to the IBM Magstar
hardware reference.
#define MAX_LOG_SENSE 1024 // Maximum number of bytes the command will return
typedef struct _TAPE_LOG_SENSE_PARAMETERS{
UCHAR PageCode; // The requested log page code
UCHAR PC; // PC = 0 for maximum values, 1 for current value, 3 for power-on values
UCHAR PageLength[2]; /* Length of returned data, filled in by the command */
UCHAR LogData[MAX_LOG_SENSE]; /* Log data, filled in by the command */
} TAPE_LOG_SENSE_PARAMETERS, *PTAPE_LOG_SENSE_PARAMETERS;
DWORD cb;
TAPE_LOG_SENSE_PARAMETERS logsense;
logsense.PageCode=0;
logsense.PC = 1;
DeviceIoControl(hDevice,
IOCTL_TAPE_LOG_SENSE,
&logsense,
(long)sizeof(TAPE_LOG_SENSE_PARAMETERS,
&logsense,
(long)sizeof(TAPE_LOG_SENSE_PARAMETERS,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_LOG_SENSE10
Edit online
Issue this command to obtain the log data of the requested log page/subpage from IBM® Magstar® tape device. The data returned is formatted according to the IBM
Magstar hardware reference. This IOCTL is only for the tape path.
#define MAX_LOG_SENSE 1024 // Maximum number of bytes the command will return
typedef struct _TAPE_LOG_SENSE_PARAMETERS_WITH_SUBPAGE{
UCHAR PageCode; /* [IN] Log sense page */
UCHAR SubPageCode; /* [IN] Log sense subpage */
UCHAR PC; /* [IN] PC bit to be consistent with
previous Log Sense IOCTL */
UCHAR reserved[2]; /* unused */
ULONG PageLength; /* [OUT] number of valid bytes in data
DWORD cb;
TAPE_LOG_SENSE_PARAMETERS_WITH_SUBPAGE logsense;
logsense.PageCode=0x10;
logsense.PageCode=0x01;
logsense.PC = 1;
DeviceIoControl(hDevice,
IOCTL_TAPE_LOG_SENSE10,
&logsense, (long)sizeof(TAPE_LOG_SENSE_PARAMETERS_WITH_SUBPAGE,
&logsense, (long)sizeof(TAPE_LOG_SENSE_PARAMETERS_WITH_SUBPAGE,
&cb, (LPOVERLAPPED) NULL);
IOCTL_ENH_TAPE_LOG_SENSE10
Edit online
Issue this command to obtain the log data of the requested log page/subpage from IBM® TotalStorage™ tape device. The data that is returned is formatted according to
the IBM TotalStorage hardware reference. This IOCTL is only for the tape path and is enhanced so the application can set the page length and provide the buffer enough to
get the data back. The following input/output structure is used by the IOCTL_ENH_TAPE_LOG_SENSE10 command.
DWORD cb;
char *logsense;
int pageLength = 256;
long lsize = sizeof(ENH_TAPE_LOG_SENSE_PARAMETERS_WITH_SUBPAGE) - sizeof
(CHAR) /*LogData[1]*/ + pageLength
IOCTL_TAPE_REPORT_MEDIA_DENSITY
Edit online
Issue this command to obtain the media density information on the loaded media in the drive. If there is no media load, the command fails. This IOCTL is only for the tape
path.
typedef struct_TAPE_REPORT_DENSITY{
ULONG PrimaryDensityCode; /* Primary Density Code */
ULONG SecondaryDensityCode; /* Secondary Density Code */
BOOLEAN WriteOk; /* 0 = does not support writing in this format */
/* 1 = support writing in this format */
ULONG BitsPerMM; /* Bits Per mm */
ULONG MediaWidth; /* Media Width */
ULONG Tracks; /* Tracks */
ULONG Capacity; /* Capacity in MegaBytes */
} TAPE_REPORT_DENSITY, *PTAPE_REPORT_DENSITY;
DWORD cb;
TAPE_REPORT_DENSITY tape_reportden;
DeviceIoControl (hDevice,
IOCTL_TAPE_OBTAIN_MTDEVICE
Edit online
Issue this command to obtain the device number of a 3590 TotalStorage™ device in an IBM® 3494 Enterprise Tape Library. An error is returned if it is issued against a 3570
drive.
int *rc_ptr
DWORD cb;
TAPE_OBTAIN_MTDEVICE mt_device;
*rc_ptr = DeviceIoControl(gp->ddHandle0,
IOCTL_TAPE_OBTAIN_MTDEVICE,
NULL,
0,
&mt_device,
(long)sizeof(TAPE_OBTAIN_MTDEVICE),
&cb,
(LPOVERLAPPED) NULL);
if(*rc_ptr)
printf(fp, "\nntutil MTDevice Info : %x\n\n", mt_device);
else
/* Error handling code */
IOCTL_TAPE_GET_DENSITY
Edit online
#define IOCTL_TAPE_GET_DENSITY \
CTL_CODE(IOCTL_TAPE_BASE, 0x000c, METHOD_BUFFERED, \
FILE_READ_ACCESS | FILE_WRITE_ACCESS).
The IOCTL reports density for supported devices by using the following structure.
rc = DeviceIoControl(hDevice,
IOCTL_TAPE_GET_DENSITY,
NULL,
0,
&tape_density,
sizeof(TAPE_DENSITY),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_SET_DENSITY
Edit online
#define IOCTL_TAPE_SET_DENSITY \
CTL_CODE(IOCTL_TAPE_BASE, 0x000d, METHOD_BUFFERED, \
FILE_READ_ACCESS | FILE_WRITE_ACCESS)
The IOCTL sets density for supported devices by using the following structure.
ucDensityCode is ignored. ucDefaultDensity and ucPendingDensity are set by using the tape drive’s mode page 0x25. Caution must be taken when this IOCTL is
issued. An incorrect tape density might lead to data corruption.
TAPE_DENSITY tape_density;
rc = DeviceIoControl(hDevice,
IOCTL_TAPE_SET_DENSITY,
&tape_density,
sizeof(TAPE_DENSITY),
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_GET_ENCRYPTION_STATE
Edit online
This IOCTL command queries the drive's encryption method and state.
The IOCTL gets encryption states for supported devices by using the following structure.
ENCRYPTION_STATUS scEncryptStat;
DeviceIoControl(hDevice,
IOCTL_TAPE_GET_ENCRYPTION_STATE,
&scEncryptStat,
sizeof(ENCRYPTION_STATUS),
&scEncryptStat,
sizeof(ENCRYPTION_STATUS),
,&cb
(LPOVERLAPPED) NULL);
IOCTL_TAPE_SET_ENCRYPTION_STATE
Edit online
ENCRYPTION_STATUS scEncryptStat;
DeviceIoControl(hDevice,
IOCTL_TAPE_SET_ENCRYPTION_STATE,
&scEncryptStat,
sizeof(ENCRYPTION_STATUS),
,&scEncryptStat
sizeof(ENCRYPTION_STATUS),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_TAPE_SET_DATA_KEY
Edit online
This IOCTL command is used to set the data key only for application-managed encryption.
The IOCTL sets data keys for supported devices by using the following structure.
#define DATA_KEY_INDEX_LENGTH 12
#define DATA_KEY_RESERVED1_LENGTH 15
#define DATA_KEY_LENGTH 32
#define DATA_KEY_RESERVED2_LENGTH 48
typedef struct _DATA_KEY
{
UCHAR aucDataKeyIndex[DATA_KEY_INDEX_LENGTH];
UCHAR ucDataKeyIndexLength;
UCHAR aucReserved1[DATA_KEY_RESERVED1_LENGTH];
UCHAR aucDataKey[DATA_KEY_LENGTH];
UCHAR aucReserved2[DATA_KEY_RESERVED2_LENGTH];
} DATA_KEY, *PDATA_KEY;
DATA_KEY scDataKey;
/* fill in your data key and data key length, then issue DeviceIoControl */
DeviceIoControl(hDevice,
IOCTL_TAPE_SET_DATA_KEY,
&scDataKey,
sizeof(DATA_KEY),
&scDataKey,
sizeof(DATA_KEY),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_CREATE_PARTITION
Edit online
This command is used to create one or more partitions on the tape. The tape must be at BOT (partition 0 logical block id 0) before the command is issued or it fails. The
application must either issue this IOCTL_CREATE_PARTITION after a tape is initially loaded or issue the IOCTL_SET_ACTIVE_PARTITION with the partition_number and
logical_clock_id fields that are set to 0 first.
IOCTL_QUERY_PARTITION
Edit online
This command returns partition information for the current loaded tape.
DWORD cb;
QUERY_PARTITION tape_query_partition;
DeviceIoControl(gp->ddHandle0,
IOCTL_QUERY_PARTITION,
NULL,
0,
&tape_query_partition,
(long)sizeof(QUERY_PARTITION),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_SET_ACTIVE_PARTITION
Edit online
This command is used to set the current active partition that is used on tape and locate to a specific logical block id within the partition. If the logical block id is 0, the tape
is positioned at BOP. If the partition number specified is 0 along with a logical block id 0, the tape is positioned at both BOP and BOT.
DWORD cb;
SET_ACTIVE_PARTITION set_partition;
...
DeviceIoControl(gp->ddHandle0,
IOCTL_SET_ACTIVE_PARTITION,
&set_partition,
(long)sizeof(SET_ACTIVE_PARTITION),
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_QUERY_DATA_SAFE_MODE
Edit online
DWORD cb;
DATA_SAFE_MODE tapeDataSafeMode;
DeviceIoControl(gp->ddHandle0,
IOCTL_QUERY_DATA_SAFE_MODE,
NULL,
0,
&tapeDataSafeMode,
(long)sizeof(DATA_SAFE_MODE),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_SET_DATA_SAFE_MODE
Edit online
The structure that is used to enable or disable Data Safe Mode is the same as IOCTL_QUERY_DATA_SAFE_MODE.
IOCTL_ALLOW_DATA_OVERWRITE
Edit online
This command allows previously written data on the tape to be overwritten. This action happens when append only mode is enabled on the drive with either a write type
command or a format command is allowed on the IOCTL_CREATE_PARTITION. Before this IOCTL is issued, the application must locate to the partition number and
logical block id within the partition where the data overwrite or format occurs.
ALLOW_DATA_OVERWRITE tapeAllowDataOverwrite;
...
DeviceIoControl(gp->ddHandle0,
IOCTL_ALLOW_DATA_OVERWRITE,
&tapeAllowDataOverwrite,
(long)sizeof(ALLOW_DATA_OVERWRITE),
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_READ_TAPE_POSITION
This command returns Position data in either the short, long, or extended form. The type of data to return is specified by setting the data_format field to either
RP_SHORT_FORM, RP_LONG_FORM, or RP_EXTENDED_FORM.
The data structures that are used with this IOCTL are
DWORD cb;
READ_TAPE_POSITION tapePosition;
*rc_ptr = DeviceIoControl(gp->ddHandle0,
IOCTL_READ_TAPE_POSITION,
&tapePosition,
(long)sizeof(READ_TAPE_POSITION),
&tapePosition,
(long)sizeof(READ_TAPE_POSITION),
IOCTL_SET_TAPE_POSITION
Edit online
This command is used to position the tape in the current active partition to either a logical block id or logical filemark. The logical_id_type field in the IOCTL structure
specifies either a logical block or logical filemark.
DWORD cb;
SET_TAPE_POSITION tapePosition;
*rc_ptr = DeviceIoControl(gp->ddHandle0,
IOCTL_SET_TAPE_POSITION_LOCATE16,
&tapePosition,
(long)sizeof(SET_TAPE_POSITION)
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_QUERY_LBP
Edit online
This command returns logical block protection information. The following output structure is completed by the IOCTL_QUERY_LBP command.
*rc_ptr = DeviceIoControl(gp->ddHandle0,
IOCTL_QUERY_LBP,
NULL,
0,
&tape_query_LBP,
(long)sizeof(LOGICAL_BLOCK_PROTECTION),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_SET_LBP
Edit online
This command sets logical block protection information. The following input structure is sent to the IOCTL_SET_LBP command.
*rc_ptr = DeviceIoControl(gp->ddHandle0,
IOCTL_SET_LBP,
&tape_set_LBP,
(long)sizeof(LOGICAL_BLOCK_PROTECTION),
NULL,
0,
&cb,
LPOVERLAPPED) NULL);
IOCTL_SET_PEW_SIZE
Edit online
#define IOCTL_SET_PEW_SIZE
CTL_CODE(IOCTL_TAPE_BASE, 0x082C, METHOD_BUFFERED, FILE_READ_ACCESS )
DWORD cb;
PEW_SIZE pew_size;
...
DeviceIoControl(gp->ddHandle0,
IOCTL_SET_PEW_SIZE,
&pew_size, (long)sizeof(PEW_SIZE),
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_QUERY_PEW_SIZE
Edit online
#define IOCTL_QUERY_PEW_SIZE
CTL_CODE(IOCTL_TAPE_BASE, 0x082B, METHOD_BUFFERED, FILE_READ_ACCESS )
DWORD cb;
PEW_SIZE pew_size;
...
DeviceIoControl(gp->ddHandle0,
IOCTL_QUERY_PEW_SIZE,
NULL,
0,
&pew_size,
(long)sizeof(PEW_SIZE),
&cb,
(LPOVERLAPPED) NULL);
This command is used to verify tape data. It uses the drive's error detection and correction hardware to determine whether it can be recovered from the tape. It also
checks whether the protection information is present and validates correctly on logical block on the medium. It returns a failure or a success.
#define IOCTL_VERIFY_TAPE_DATA
CTL_CODE(IOCTL_TAPE_BASE, 0x082A, METHOD_BUFFERED, FILE_READ_ACCESS )
DWORD cb;
VERIFY_DATA verify_data;
...
DeviceIoControl(gp->ddHandle0,
IOCTL_VERIFY_TAPE_DATA,
&verify_data,
sizeof(VERIFY_DATA),
NULL,
0,
&cb,
(LPOVERLAPPED) NULL);
IOCTL_QUERY_RAO_INFO
Edit online
This command is used to query the maximum UDS number and UDS size before the Recommended Access Order list is generated and received (TS1140 or later). The
structure for the IOCTL_QUERY_RAO_INFO command is
#define UDS_WITHOUT_GEOMETRY 0
#define UDS_WITH_GEOMETRY 1
QUERY_RAO_INFO qRAO;
...
qRAO.uds_type = udstype; //UDS_WITHOUT_GEOMETRY or UDS_WITH_GEOMETRY
*rc_ptr = DeviceIoControl(hDevice,
IOCTL_QUERY_RAO_INFO,&
qRAO,
sizeof(QUERY_RAO_INFO),
&qRAO,
sizeof(QUERY_RAO_INFO),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_GENERATE_RAO
Edit online
This command is used to generate a Recommended Access Order list (TS1140 or later). The UDS list is required as input. Use USD_DESCRIPTOR to build this list. The
structure for the IOCTL_GENERATE_RAO command is
#define UDS_WITHOUT_GEOMETRY 0
#define UDS_WITH_GEOMETRY 1
} GENERATE_RAO, *PGENERATE_RAO;
# UDS_SIZE 32
# HEADER_SIZE 8
char *pGRAO;
...
long lGRAOsize = sizeof(GENERATE_RAO)-sizeof(CHAR)/*grao_list[1]
*/ + udsamount*UDS_SIZE + HEADER_SIZE;
pGRAO = malloc (lGRAOsize);
...
((PGRAO)pGRAO)->process = process;
((PGRAO)pGRAO)->uds_type = udstype;
((PGRAO)pGRAO)->grao_list_length = udsamount*UDS_SIZE + HEADER_SIZE;
...
((PGRAO_LIST_HEADER)((PGRAO)pGRAO)->grao_list)->addl_data = ((PGRAO)pGRAO)->
grao_list_length - HEADER_SIZE;
PopulateUDS ( (PGRAO_LIST_HEADER)(((PGRAO)pGRAO)->grao_list)+HEADER_SIZE, udsamount);
*rc_ptr = DeviceIoControl(hDevice,
IOCTL_GENERATE_RAO,
pGRAO,
lGRAOsize,
NULL,
0,
&cb,
LPOVERLAPPED) NULL);
IOCTL_RECEIVE_RAO
Edit online
This command is used to receive the generated Recommended Access Order list (TS1140 and later).
# HEADER_SIZE 8
...
char pRRAO;
...
long lRRAOsize=sizeof(RECEIVE_RAO_LIST)-sizeof(CHAR)/*rrao_list[1]
IOCTL_CHANGER_OBTAIN_SENSE
Edit online
Issue this command after an error occurs to obtain sense information that is associated with the most recent error. To guarantee that the application can obtain sense
information that is associated with an error, the application must issue this command before other commands are issued to the device. Subsequent operations (other than
IOCTL_CHANGER_OBTAIN_SENSE) reset the sense data field before the operation is run.
The following output structure is completed by the IOCTL_CHANGER_OBTAIN_SENSE command that is passed by the caller.
DWORD cb;
CHANGER_OBTAIN_SENSE sense_data;
DeviceIoControl(hDevice,
IOCTL_CHANGER_OBTAIN_SENSE,
NULL,
0,
&sense_data,
(long)sizeof(CHANGER_OBTAIN_SENSE),
&cb,
(LPOVERLAPPED) NULL);
IOCTL_MODE_SENSE
Edit online
DWORD cb;
MODE_SENSE_PARAMETERS mode_sense;
In Windows 200x, tape APIs can be configured to manipulate tapes that use either fixed block size or variable block size.
If variable block size is wanted, the block size must be set to zero. The SetTapeParameters function must be called specifying the SET_TAPE_MEDIA_INFORMATION
operation. The function requires the use of a TAPE_SET_MEDIA_PARAMETERS structure. The BlockSize member of the structure must be set to the wanted block size. Any
block size other than 0 sets the media parameters to fixed block size. The size of the block is equal to the BlockSize member.
In fixed block mode, the size of all data buffers used for reading and writing must be a multiple of the block size. To determine the fixed block size, the GetTapeParameters
function must be used. Specifying the GET_TAPE_MEDIA_INFORMATION operation yields a TAPE_GET_MEDIA_PARAMETERS structure. The BlockSize member of this
structure reports the block size of the tape. The size of buffers that are used in read and write operations must be a multiple of the block size. This mode allows multiple
blocks to be transferred in a single operation. In fixed block mode, transfer of odd block sizes (for example, 999 bytes) is not supported.
When reading or writing variable sized blocks, the operation cannot exceed the maximum transfer length of the Host Bus Adapter. This length is the length of each transfer
page (typically 4 K) times the number of transfer pages (if set to 16, the maximum transfer length for variable sized transfers is 64 K). This number can be modified by
changing the scatter-gather variable in the system registry, but this action is not recommended because it uses up scarce system resources.
Reading a tape that contains variable sized blocks can be accomplished even without knowing what size the blocks are. If a buffer is large enough to read the data in a
block, then the data is read without any errors. If the buffer is larger than a block, then only data in a single block is read and the tape is advanced to the next block.
The size of the block is returned by the read operation in the *pBytesRead parameter. If a data buffer is too small to contain all of the data in a block, then a couple of
things occur. First, the data buffer contains data from the tape, but the read operation fails and GetLastError returns ERROR_MORE_DATA. This error value indicates that
more data is in the block to be read. Second, the tape is advanced to the next block. To reread the previous block, the tape must be repositioned to the wanted block and a
larger buffer must be specified. It is best to specify as large a buffer as possible so that this issue does not occur.
If a tape contains fixed size blocks, but the tape media parameters are set to variable block size, then no assumptions are made regarding the size of the blocks on the
tape. Each read operation behaves as described. The sizes of the blocks on the tape are treated as variable, but happen to be the same size. If a tape has variable size
blocks, but the tape media parameters are set to fixed block size, then the size of all blocks on the tape are expected to be the same fixed size. Reading a block of a tape in
this situation fails and GetLastError returns ERROR_INVALID_BLOCK_LENGTH. The only exception is if the block size in the media parameters is the same as the size of
the variable block and the size of the read buffer happens to be a multiple of the size of the variable block.
If ReadFile encounters a tapemark, the data up to the tapemark is read and the function fails. (The GetLastError function returns an error code that indicates that a
tapemark was encountered.) The tape is positioned past the tapemark, and an application can call ReadFile again to continue reading.
Event log
Edit online
The Magstar® or ibmtpxxx, ibmcgxxx, and Magchgr device drivers log certain data to the Event Log when exceptions are encountered.
To interpret this event data, the user must be familiar with the following components:
Several bytes of "Event Detail" data are logged under Source = Magstar or Magchgr (for Windows NT), or under Source = ibmtpxxx or ibmcgxxx (for Windows 2000;
Windows Server 2003, Windows Server 2008, and Windows Server 2012).
The description for Event ID (0) in Source (MagStar or ibmtpxxx) was not found. It contains the following insertion strings: \Device\Tapex.
The description for Event ID (x) in Source (MagChgr) was not found.
The user must view the event data in Word format to properly decode the data.
Table 1 and Table 2 indicate the hexadecimal offsets, names, and definitions for Magstar or ibmtpxxx and ibmcgxxx event data. Magchgr event data has a unique format
that appears later in this chapter.
Notices
Edit online
References in this publication to IBM® products, programs, or services do not imply that IBM intends to make these available in all countries (or regions) in which IBM
operates.
Any references to an IBM program or other IBM product in this publication is not intended to state or imply that only IBM’s program or other product may be used. Any
functionally equivalent program that does not infringe any of IBM’s intellectual property rights may be used instead of the IBM product. Evaluation and verification of
operation in conjunction with other products, except those expressly designed by IBM, is the user’s responsibility.
IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these
patents. You may send license inquiries, in writing, to:
For license inquiries regarding double-byte character set (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in
writing, to:
The following paragraph does not apply to the United Kingdom or any other country (or region) where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. Some states
(or regions) do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement cannot apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes are incorporated in
new editions of the publication. IBM may make improvements and/or changes in the products and/or programs described in this publication at any time without notice.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.
"Copyright 1992, 1993, 1994, 1997 Henry Spencer. All rights reserved. This software is not subject to any license of the American Telephone and Telegraph Company or
of the Regents of the University of California.
Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it, subject to the following restrictions:
1. The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it.
2. The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the
documentation.
3. Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must
appear in the documentation.
4. This notice cannot be removed or altered.
Trademarks
The following terms are trademarks of International Business Machines Corporation in the United States, other countries (or regions), or both:
AIX® IBMLink RS/6000® System z®
AIX 5L Magstar® S/390® Tivoli®
FICON® Micro Channel StorageSmart TotalStorage™
HyperFactor® Netfinity System i® Virtualization Engine
i5/OS POWER5 System p xSeries
iSeries ProtecTIER® System Storage® z9
IBM pSeries System x zSeries
Adobe and Acrobat are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
Intel, Itanium, and Pentium are trademarks of Intel Corporation in the United States, other countries (or regions), or both.
Java™ and all Java-based trademarks are trademarks of Oracle, Inc. in the United States, other countries, or both.
Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and Windows 2000 are trademarks of Microsoft Corporation in the United States, other countries (or regions), or both.
UNIX is a registered trademark of The Open Group in the United States and other countries (or regions).
Other company, product, and service names may be trademarks or service marks of others.
To submit any comments about this publication or any other IBM storage product documentation:
Send your comments by email to ibmkc@us.ibm.com. Be sure to include the following information:
Exact publication title and version
Page, table, or illustration numbers that you are commenting on
A detailed description of any information that should be changed
Visit the IBM Privacy Policy for additional information on this topic at https://www.ibm.com/privacy/details/us/en/.
Applicability
These terms and conditions are in addition to any terms of use for the IBM website.
Personal use
You can reproduce these publications for your personal, noncommercial use provided that all proprietary notices are preserved. You cannot distribute, display, or make
derivative work of these publications, or any portion thereof, without the express consent of IBM.
Rights
Except as expressly granted in this permission, no other permissions, licenses, or rights are granted, either express or implied, to the Publications or any information, data,
software or other intellectual property contained therein.
IBM reserves the right to withdraw the permissions that are granted herein whenever, in its discretion, the use of the publications is detrimental to its interest or, as
determined by IBM, the above instructions are not being properly followed.
You cannot download, export, or reexport this information except in full compliance with all applicable laws and regulations, including all United States export laws and
regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A
PARTICULAR PURPOSE.
IBM trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other
product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available at http://www.ibm.com/legal/copytrade.shtml.