RE: st driver doesn't seem to grok LTO partitioning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If you need help with anything please let me know I'd be more than happy to contribute (with testing and a review if you want). I have a system with an older LTO-3 tape drive that I can use any time (it doesn’t support partitioning so if nothing else I can make sure partitioning attempts fail gracefully). I may be able to beg, borrow, or steal access to an LTO 5 or 6 drive though to help out in testing.

Kai, for the source of the HPE EverStore software should be available here:

http://h20564.www2.hpe.com/hpsc/swd/public/readIndex?sp4ts.oid=5111617

Select something like RHEL7 server from the dropdown on the page that loads click on the + in front of "Software - Storage (4)". If you click on the first product listed then click on select (at the next screen you will unfortunately need to create a HP Passport account) and then you need to give a lot of personal information when you get the option to download the source make sure you change the pulldown above the download buttons to standard download. The version 3.0 source is about 1.2Mb in size (GPL version 2.1).

This seems to be the relevant code from the driver though (the same download has the ibm tape driver as well). You'll need to look at the following:

ltotape.c - ltotape_readposition to determine the current partition
ltotape.c - ltotape_locate - to move to a position on tape (includes setting the partition and has a special flag for changing partitions between the two it supports if required)
ltotape.c - ltotape_format - for creating and destroying partitions
ltotape.c - ltotape_remaining_capacity - will get you the remaining and maximum capacity for the partitions

When you look at those functions you'll see TC_FORMAT_TYPE referenced this is the enum referred it is in src/libltfs/tape_ops.h:

typedef enum {
        TC_FORMAT_DEFAULT   = 0x00,   /* Make 1 partition medium */
        TC_FORMAT_PARTITION = 0x01,   /* Make 2 partition medium */
        TC_FORMAT_DEST_PART = 0x02,   /* Destroy all data and make 2 partition medium */
        TC_FORMAT_MAX       = 0x03
} TC_FORMAT_TYPE;    /* Space command operations */

The driver at that download looks like it only supports two partitions though and if you go looking around the code (grep for partition) some LTO drives (probably older ones) look like they may be partition aware but may not actually support partitions, see this comment:

ltotape_platform.c:      * For an LTO drive, need to determine whether it is partition-capable or only partition-aware:

So you may need to check for firmware that is partition aware but not partition capable.

The IBM LTO SCSI reference is nice and long and it looks like you can either make SET CAPACITY calls on the currently mounted medium to set the sizes and then format the medium it also refers to the medium partition mode page in terms of changing the partitioning of the tape.
��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux