sa(4) driver changes available for test
Kenneth D. Merry
ken at FreeBSD.ORG
Tue Feb 17 18:36:54 UTC 2015
On Sat, Feb 14, 2015 at 18:22:43 -0500, Dan Langille wrote:
>
> > On Feb 13, 2015, at 7:32 PM, Kenneth D. Merry <ken at freebsd.org> wrote:
> >
> >
> > I have a fairly large set of changes to the sa(4) driver and mt(1) driver
> > that I'm planning to commit in the near future.
> >
> > A description of the changes is here and below in this message.
> >
> > If you have tape hardware and the inclination, I'd appreciate testing and
> > feedback.
>
> I have a DLT 8000 and an SDLT 220.
>
> I don't have anything running current, but I have a spare machine which I could use for testing.
>
> Do you see any value is tests with that hardware? I'd be testing it via Bacula.
>
> disclosure: I'm the sysutils/bacula-* maintainer and a Bacula committer.
>
Actually, yes. Bacula is a bit tricky to configure, so your trying it out
would be helpful if you have the time.
In looking at the manuals for both the SDLT 220 and the DLT 8000, they both
claim to support long position information for the SCSI READ POSITION
command.
You can see what I'm talking about by doing:
mt eod
mt status
On my DDS-4 tape drive, this shows:
# mt -f /dev/nsa3 status
Drive: sa3: <SEAGATE DAT 06240-XXX 8071> Serial Number: HJ00YWY
---------------------------------
Mode Density Blocksize bpi Compression
Current: 0x26:DDS-4 1024 bytes 97000 enabled (DCLZ)
---------------------------------
Current Driver State: at rest.
---------------------------------
Partition: 0 Calc File Number: -1 Calc Record Number: -1
Residual: 0 Reported File Number: -1 Reported Record Number: -1
Flags: None
But on an LTO-5, which will give long position information, I get:
[root at doc ~]# mt status
Drive: sa0: <IBM ULTRIUM-HH5 E4J1>
---------------------------------
Mode Density Blocksize bpi Compression
Current: 0x58:LTO-5 variable 384607 enabled (0x1)
---------------------------------
Current Driver State: at rest.
---------------------------------
Partition: 0 Calc File Number: 2 Calc Record Number: -1
Residual: 0 Reported File Number: 2 Reported Record Number: 32373
Flags: None
That, in combination with the changes I made to the position information
code in the driver, mean that even the old MTIOCGET ioctl should return an
accurate file number at end of data. e.g., on the LTO-5:
[root at doc ~]# mt ostatus
Mode Density Blocksize bpi Compression
Current: 0x58:LTO-5 variable 384607 0x1
---------available modes---------
0: 0x58:LTO-5 variable 384607 0x1
1: 0x58:LTO-5 variable 384607 0x1
2: 0x58:LTO-5 variable 384607 0x1
3: 0x58:LTO-5 variable 384607 0x1
---------------------------------
Current Driver State: at rest.
---------------------------------
File Number: 2 Record Number: -1 Residual Count -1
So the thing to try, in addition to just making sure that Bacula continues
to work properly, is to try setting this for the tape drive in
bacula-sd.conf:
Hardware End of Medium = yes
It looks like the Bacula tape program (btape) has a test mode, and it would
be good to run through the tests on one of the tape drives and see whether
they work, and whether the results are different before and after the
changes. I'm not sure how to enable the test mode.
> I'll let the other Bacula devs know about this. They deal with the hardware. I work on PostgreSQL.
>
Thanks! If there are additional features they would like out of the tape
driver, I'm happy to talk about it. (Or help if they'd like to use the new
status reporting ioctl, MTIOCEXTGET or any of the other new ioctls.)
Ken
--
Kenneth Merry
ken at FreeBSD.ORG
More information about the freebsd-scsi
mailing list