LinearTapeFileSystem / ltfs-backends

LGPL backend correction for LTFS
7 stars 3 forks source link

Unable to compile ltfs-backends centos 7 #9

Closed robertovco3 closed 2 years ago

robertovco3 commented 2 years ago

Hello, I'm having some trouble compiling the backends. I'm currently running CentOS 7.4 and i'm in an environment where we use IBM LTO7 as well as HP LTO7.

I believe I need the ltotape backend installed in order to mount using the HP Ultrium 15000 LTO Drive. This is the backend that the HPE-SOS software package uses, however that package will not get the drives to list in /dev/sg#, resulting in failed mount attempts. The ltfs-2.4-stable is able to list the drives in /dev/sg# but is unable to load the ltotape backend, so I made an attempt to compile it. I've attached the output which results with some errors relating to function ltotape_logsense: ltotape.c:1456:3: error: too few arguments to function 'ltotape_logsense' status = ltotape_logsense (device, LOG_PAGE_TAPE_CAPACITY, logdata, LOGSENSEPAGE);

ltfs-backends-compile-output.txt

Are there options I need to include in the configure command to get around these messages?

Thanks,

piste-jp commented 2 years ago

The sg tape backend included into the ltfs repository supports HP drives.

Please try to run with /dev/sgX listed by ltfs -o device_list

piste-jp commented 2 years ago

There is no activity and no maintenance on the ltfs-backend repository. Because the sg backend into the ltfs repository already support HP drives on the sg driver.

robertovco3 commented 2 years ago

Hello, to clarify, I am looking to utilize the backend ltotape to mount the actual tape which is why I attempted to compile the backend. I am able to list drives:

[root@tape-test ~]# ltfs -o device_list 3e8a LTFS11276W Ignoring unknown configuration directive 'Automatically'. 3e8a LTFS14000I LTFS starting, LTFS version 2.4.4.1 (Prelim), log level 2. 3e8a LTFS14058I LTFS Format Specification version 2.4.0. 3e8a LTFS14104I Launched by "ltfs -o device_list". 3e8a LTFS14105I This binary is built for Linux (x86_64). 3e8a LTFS14106I GCC version is 4.8.5 20150623 (Red Hat 4.8.5-16). 3e8a LTFS17087I Kernel version: Linux version 3.10.0-693.21.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Wed Mar 7 19:03:37 UTC 2018 i386. 3e8a LTFS17089I Distribution: NAME="CentOS Linux". 3e8a LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3e8a LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3e8a LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3e8a LTFS17085I Plugin: Loading "sg" tape backend. 3e8a LTFS30200I Failed to execute SG_IO ioctl, opcode = 12 (38). 3e8a LTFS30206I Cannot open device: inquiry failed (-21700). 3e8a LTFS30200I Failed to execute SG_IO ioctl, opcode = 12 (38). 3e8a LTFS30206I Cannot open device: inquiry failed (-21700). Tape Device list:. Device Name = /dev/sg15 (10.0.2.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0B5, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg13 (12.0.2.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0C9, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg11 (12.0.1.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0E7, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg9 (10.0.1.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0BF, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg5 (10.0.0.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0DD, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg4 (12.0.0.0), Vendor ID = IBM , Product ID = ULTRIUM-HH7 , Serial Number = 11C649B0D3, Product Name =[ULTRIUM-HH7]. Device Name = /dev/sg1 (7.0.1.0), Vendor ID = HP , Product ID = Ultrium 7-SCSI , Serial Number = HUL817AD8D, Product Name =[Ultrium 7-SCSI]. Device Name = /dev/sg0 (7.0.0.0), Vendor ID = HP , Product ID = Ultrium 7-SCSI , Serial Number = HUJ54755U1, Product Name =[Ultrium 7-SCSI].

When attempting to mount the /dev/sg0 device, the output is: [root@tape-test ~]# ltfs -o devname=/dev/sg0 /mnt/ltfs1 3ec3 LTFS11276W Ignoring unknown configuration directive 'Automatically'. 3ec3 LTFS14000I LTFS starting, LTFS version 2.4.4.1 (Prelim), log level 2. 3ec3 LTFS14058I LTFS Format Specification version 2.4.0. 3ec3 LTFS14104I Launched by "ltfs -o devname=/dev/sg0 /mnt/ltfs1". 3ec3 LTFS14105I This binary is built for Linux (x86_64). 3ec3 LTFS14106I GCC version is 4.8.5 20150623 (Red Hat 4.8.5-16). 3ec3 LTFS17087I Kernel version: Linux version 3.10.0-693.21.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Wed Mar 7 19:03:37 UTC 2018 i386. 3ec3 LTFS17089I Distribution: NAME="CentOS Linux". 3ec3 LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3ec3 LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3ec3 LTFS17089I Distribution: CentOS Linux release 7.4.1708 (Core) . 3ec3 LTFS14063I Sync type is "time", Sync time is 300 sec. 3ec3 LTFS17085I Plugin: Loading "sg" tape backend. 3ec3 LTFS17085I Plugin: Loading "unified" iosched backend. 3ec3 LTFS14095I Set the tape device write-anywhere mode to avoid cartridge ejection. 3ec3 LTFS30209I Opening a device through sg-ibmtape driver (/dev/sg0). 3ec3 LTFS30250I Opened the SCSI tape device 7.0.0.0 (/dev/sg0). 3ec3 LTFS30207I Vendor ID is HP . 3ec3 LTFS30208I Product ID is Ultrium 7-SCSI . 3ec3 LTFS30214I Firmware revision is G341. 3ec3 LTFS30215I Drive serial is HUJ54755U1. 3ec3 LTFS30285I The reserved buffer size of /dev/sg0 is 524288. 3ec3 LTFS30294I Setting up timeout values from RSOC. 3ec3 LTFS17160I Maximum device block size is 1048576. 3ec3 LTFS11330I Loading cartridge. 3ec3 LTFS11332I Load successful. 3ec3 LTFS17157I Changing the drive setting to write-anywhere mode. 3ec3 LTFS11005I Mounting the volume. 3ec3 LTFS30216W Length mismatch is detected. (Act = 524288, resid = 0, resid_sense = 57553). 3ec3 LTFS30216W Length mismatch is detected. (Act = 524288, resid = 0, resid_sense = 57553). 3ec3 LTFS12049E Cannot read: backend call failed (-21716). 3ec3 LTFS17039E XML parser: failed to read a block from the medium (-21716). 3ec3 LTFS17037E XML parser: failed to read from XML stream. 3ec3 LTFS17273E XML parser: Detected an I/O error on reading an index from the tape (-21716). 3ec3 LTFS17016E Cannot parse index direct from medium (-21716). 3ec3 LTFS11194W Cannot read index: failed to read and parse XML data (-21716). 3ec3 LTFS11024E Cannot mount volume: read index failed on the index partition. 3ec3 LTFS14013E Cannot mount the volume. 3ec3 LTFS30252I Logical block protection is disabled.

I have done some troubleshooting to work around this but it seems like the ltotape backend will get drives to mount, I had success by over-installing with HPE-SOS-3.5.0-62.x86_64.rpm, which will load ltotape by default but will fail to list /dev/sg#.

piste-jp commented 2 years ago

It looks it is a known HBA issue. Need to recompile with --enable-buggy-ifs.

See https://github.com/LinearTapeFileSystem/ltfs/issues/336

robertovco3 commented 2 years ago

Thank you. Recompiling with the --enable-buggy-ifs and also a driver update of the ATTO ExpressSAS 6Gb SAS HBA to v2.40.0f1 was able to resolve the issue.

piste-jp commented 2 years ago

You can also see the HBA info.

https://github.com/LinearTapeFileSystem/ltfs/wiki/HBA-info