3d3769830b
tape/helpers/snapshot_reader: sort chunks by inode (per index)
...
sort the chunks we want to backup to tape by inode, to gain some
speed on spinning disks. this is done per index, not globally.
costs a bit memory, but not too much, about 16 bytes per chunk which
would mean ~4MiB for a 1TiB index with 4MiB chunks.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-06-28 12:16:14 +02:00
e5950360ca
tape/drive: improve tape device locking behaviour
...
by implementing a custom error type that is either 'TimeOut' or
'Other'.
In the api, check in the worker loop for exactly 'TimeOut' errors and continue only
then. All other errors lead to a aborted task.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-06-02 17:08:00 +02:00
0bca966ec5
fix typo: s/dies/does/
2021-05-31 11:01:15 +02:00
84737fb33f
lto/sg_tape/encryption: remove non lto-4 supported byte
...
from the SspDataEncryptionCapabilityPage
it seems we do not need it, since the EXTDECC flag is only used for
determining if the drive is capable to be configured via
ADI (Automation/Drive Interface) which we do not use at all.
this makes the call work with LTO-4 again
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-31 10:58:38 +02:00
d19010481d
tape/test: repair tests after changing 'start_write_session'
...
i added a parameter and forgot to adapt the tests
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-14 10:01:54 +02:00
e953029e8f
api2/tape/backup: add 'force-media-set' parameter to manual backup
...
so that a user can force a new media set, e.g. if he uses the
allocation policy 'continue', but wants to manually start a new
media-set.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-14 08:58:33 +02:00
13f435caab
tape/inventory: add completion helper for tape snapshots
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-11 12:56:55 +02:00
1bff50afea
tape locate_file: fix off by one error
2021-05-11 12:37:04 +02:00
2d5d264f99
tape/pool_writer: do not unwrap on channel send
...
if the reader thread is already gone here, we panic here, resulting in
a nondescript error message, so simply ignore/warn in that case and
return gracefully
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-11 09:07:45 +02:00
3e234af16e
tape: improve inline docs for READ POSITION LONG
2021-05-06 11:45:40 +02:00
bbbf662d20
tape: use LOCATE(16) SCSI command
...
Turns out this works on LTO4 and newer.
2021-05-06 10:51:59 +02:00
2e41dbe828
tape/media_catalog: add helpers to look for snapshot/chunk files
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-06 07:58:03 +02:00
56d36ca439
tape/drive: add 'move_to_file' to TapeDriver trait
...
so that we can directly move to a specified file on the tape
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-05-06 07:55:08 +02:00
5e169f387c
tape: add read_medium_configuration_page() to detect WORM media
...
And use it inside format_media().
2021-04-27 11:37:03 +02:00
73cef112eb
tape: remove MediumType struct, which is only valid on IBM drives
...
HP drives do not return this information.
Note: This breaks format on WORM media, because we have not way
to detect WOREM media (how?).
2021-04-27 09:58:27 +02:00
8e898895cc
tape: do not query density_code in SgTape::new()
...
Because this can fail with NoSense/MediumChanged and other informational
Sense codes.
2021-04-23 09:56:44 +02:00
4be6beab6f
tape: format_media - implement special case for WORM media
2021-04-23 08:33:13 +02:00
a3b4b5b50e
tape: define and use MediumType enum
2021-04-23 07:54:42 +02:00
33b8d7e5e8
tape: use loaded media_type in format_media (instead of drive_density)
...
Required to format LTO4 media loaded in LTO5 drive).
Also contains some SCSI code cleanups.
2021-04-23 07:27:30 +02:00
b9e0fcbdcd
tape: implement report_desnity
2021-04-22 13:54:31 +02:00
a7188b3a75
tape: fix FORMAT for LTO-4 drives
...
FORMAT requires LTO-5 or newer, so we do a rewind/erase if FORMAT fails.
2021-04-22 11:44:49 +02:00
71e83e1b1f
tape/changer/sg_pt_changer: read whole descriptor size for each entry
...
Some changer seem to append more data than we expect, but correctly
annotates that size in the subheader.
For each descriptor entry, read as much as the size given in the
subheader (or until the end of the reader), else our position in
the reader is wrong for the next entry, and we will parse
incorrect data.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2021-04-21 14:07:41 +02:00
4bf2ab1109
cleanup: remove debug println
2021-04-14 10:39:29 +02:00
2631e57d20
fix regression tests
2021-04-13 14:02:37 +02:00
90461b76fb
TapeRead: add skip_data()
2021-04-13 13:32:45 +02:00
6a15cce540
tape: SgTapeReader::read_block - disable reading beyond EOF
2021-04-13 11:46:30 +02:00
f281b8d3a9
tape: cleanup MediaCatalog on tape reuse
2021-04-13 11:46:30 +02:00
ce5327badc
tape: fix regression tests
2021-04-12 14:08:05 +02:00
318b310638
tape: improve EOT error handling
2021-04-12 13:27:34 +02:00
109ccd300f
cleanup: move tape SCSI code to src/tape/drive/lto/sg_tape/
2021-04-09 11:34:45 +02:00
c560cfddca
tape: read_drive_status - ignore media changed sense info
2021-04-09 09:46:19 +02:00
8204d9b095
tape: avoid unneccessary SCSI request in Drop
2021-04-08 11:26:08 +02:00
fad95a334a
tape: clear encryption key after backup (for security reasons)
2021-04-08 10:37:49 +02:00
973e985d73
cleanup: remove unused linux tape driver code
2021-04-08 10:15:52 +02:00
15d1435789
tape: add vendor, product and revision to LtoDriveAndMediaStatus
2021-04-08 08:34:46 +02:00
80ea23e1b9
tape: pmt - implement options command
2021-04-08 08:34:45 +02:00
5d6379f8db
tape: implement locate_file without LOCATE(10)
2021-04-08 08:34:45 +02:00
566b946f9b
tape: pmt - re-implement lock/unlock command
2021-04-08 07:28:30 +02:00
7f7459677d
tape: pmt - re-implement fsr/bsr
2021-04-08 07:28:30 +02:00
0892a512bc
tape: correctly set/display drive option
2021-04-08 07:28:30 +02:00
7b11a8098d
tape: make sure there is a filemark at the end of the tape
2021-04-08 07:28:30 +02:00
8b2c6f5dbc
tape: make fsf/bsf driver specific
...
Because the virtual tape driver behaves different than LTO drives.
2021-04-08 07:28:30 +02:00
d26985a600
tape: fix LEOM handling
2021-04-08 07:28:30 +02:00
e29f456efc
tape: implement format/erase
2021-04-08 07:28:30 +02:00
a79082a0dd
tape: implement LTO userspace driver
2021-04-08 07:28:30 +02:00
1336ae8249
tape: introduce trait BlockWrite
2021-04-08 07:28:30 +02:00
0db5712493
tape: introduce trait BlockRead
2021-04-08 07:28:30 +02:00
cf1e117fc7
sgutils2: use enum for ScsiError
...
This avoids string allocation when we return SenseInfo.
2021-03-27 15:57:48 +01:00
11f5d59396
tape: page-align BlockHeader so that we can use it with SG_IO
2021-03-27 15:36:35 +01:00
2843ba9017
avoid compiler warning
2021-03-25 12:25:23 +01:00