Dietmar Maurer
a3b4b5b50e
tape: define and use MediumType enum
2021-04-23 07:54:42 +02:00
Dietmar Maurer
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
Dietmar Maurer
b9e0fcbdcd
tape: implement report_desnity
2021-04-22 13:54:31 +02:00
Dietmar Maurer
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
Dietmar Maurer
b6c06dce9d
http proxy: implement read_connect_response()
...
Limit memory usage in case we get strange data from proxy.
2021-04-22 10:06:14 +02:00
Dietmar Maurer and Thomas Lamprecht
9104152a83
HttpsConnector: add proxy support
2021-04-21 15:29:17 +02:00
Dietmar Maurer and Thomas Lamprecht
02a58862dd
HttpsConnector: code cleanup
2021-04-21 15:29:17 +02:00
Dietmar Maurer and Thomas Lamprecht
26153589ba
new http client implementation SimpleHttp (avoid static HTTP_CLIENT)
...
This one will have proxy support.
2021-04-21 15:29:17 +02:00
Dietmar Maurer and Thomas Lamprecht
17b3e4451f
MaybeTlsStream: implement poll_write_vectored()
...
This is just an performance optimization.
2021-04-21 15:29:17 +02:00
Dietmar Maurer and Thomas Lamprecht
a2072cc346
http: rename EitherStream to MaybeTlsStream
...
And rename the enum values. Added an additional enum called Proxied.
The enum in now more specialized, but we only use it for the http client anyways.
2021-04-21 15:29:17 +02:00
Dietmar Maurer
28570d19a6
tape restore: avoid multiple stat calls for same chunk
2021-04-16 13:17:17 +02:00
Dietmar Maurer
1369bcdbba
tape restore: verify if all chunks exist
2021-04-16 12:20:44 +02:00
Dietmar Maurer
5e4d81e957
tape restore: simplify log (list datastores on single line)
2021-04-16 11:35:05 +02:00
Dietmar Maurer
0f4721f305
tape restore: fix datastore locking
2021-04-16 09:09:05 +02:00
Dietmar Maurer
80acdd71fa
tape: do not try to backup unfinished backups
2021-04-15 10:24:14 +02:00
Dietmar Maurer
7afb98a912
docs: fix tape.cfg format description
2021-04-14 14:30:20 +02:00
Dietmar Maurer
3847008e1b
docs: pmt - remove old linux driver options
2021-04-14 14:26:39 +02:00
Dietmar Maurer
f6ed2eff47
docs: move tape config/syntax to appendix
2021-04-14 14:25:10 +02:00
Dietmar Maurer
54311a38c6
docs: update proxmox-tape status output
2021-04-14 14:03:45 +02:00
Dietmar Maurer
10439718e2
docs: use defininition list for tape Terminology
...
To avoid those strange line breaks in Field list labels.
2021-04-14 13:25:29 +02:00
Dietmar Maurer
4bf2ab1109
cleanup: remove debug println
2021-04-14 10:39:29 +02:00
Dietmar Maurer
2631e57d20
fix regression tests
2021-04-13 14:02:37 +02:00
Dietmar Maurer
90461b76fb
TapeRead: add skip_data()
2021-04-13 13:32:45 +02:00
Dietmar Maurer
6a15cce540
tape: SgTapeReader::read_block - disable reading beyond EOF
2021-04-13 11:46:30 +02:00
Dietmar Maurer
f281b8d3a9
tape: cleanup MediaCatalog on tape reuse
2021-04-13 11:46:30 +02:00
Dietmar Maurer
ce5327badc
tape: fix regression tests
2021-04-12 14:08:05 +02:00
Dietmar Maurer
318b310638
tape: improve EOT error handling
2021-04-12 13:27:34 +02:00
Dietmar Maurer
164ad7b706
sgutils2: use thiserror to derive Error
2021-04-12 13:27:34 +02:00
Dietmar Maurer
109ccd300f
cleanup: move tape SCSI code to src/tape/drive/lto/sg_tape/
2021-04-09 11:34:45 +02:00
Dietmar Maurer
c560cfddca
tape: read_drive_status - ignore media changed sense info
2021-04-09 09:46:19 +02:00
Dietmar Maurer
44f6bb019c
sgutils2: implement scsi_request_sense()
2021-04-09 09:46:19 +02:00
Dietmar Maurer
1a23132262
tape: add TapeDensity::Unknown
2021-04-08 12:23:54 +02:00
Dietmar Maurer
48c4193f7c
ui: update tape DriveStatus for new driver
2021-04-08 12:04:14 +02:00
Dietmar Maurer
8204d9b095
tape: avoid unneccessary SCSI request in Drop
2021-04-08 11:26:08 +02:00
Dietmar Maurer
fad95a334a
tape: clear encryption key after backup (for security reasons)
2021-04-08 10:37:49 +02:00
Dietmar Maurer
973e985d73
cleanup: remove unused linux tape driver code
2021-04-08 10:15:52 +02:00
Dietmar Maurer
ee9fa953de
docs: Mention our new user space tape driver, adopt device path names
2021-04-08 09:50:09 +02:00
Dietmar Maurer
09acf0a70d
do not depend on mt-st and mtx
...
We now use our own driver, so those tools are no longer required.
2021-04-08 09:48:47 +02:00
Dietmar Maurer
15d1435789
tape: add vendor, product and revision to LtoDriveAndMediaStatus
2021-04-08 08:34:46 +02:00
Dietmar Maurer
80ea23e1b9
tape: pmt - implement options command
2021-04-08 08:34:45 +02:00
Dietmar Maurer
5d6379f8db
tape: implement locate_file without LOCATE(10)
2021-04-08 08:34:45 +02:00
Dietmar Maurer
566b946f9b
tape: pmt - re-implement lock/unlock command
2021-04-08 07:28:30 +02:00
Dietmar Maurer
7f7459677d
tape: pmt - re-implement fsr/bsr
2021-04-08 07:28:30 +02:00
Dietmar Maurer
0892a512bc
tape: correctly set/display drive option
2021-04-08 07:28:30 +02:00
Dietmar Maurer
b717871d2a
sgutils2: add scsi_mode_sense helper
2021-04-08 07:28:30 +02:00
Dietmar Maurer
7b11a8098d
tape: make sure there is a filemark at the end of the tape
2021-04-08 07:28:30 +02:00
Dietmar Maurer
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
Dietmar Maurer
d26985a600
tape: fix LEOM handling
2021-04-08 07:28:30 +02:00
Dietmar Maurer
e29f456efc
tape: implement format/erase
2021-04-08 07:28:30 +02:00
Dietmar Maurer
a79082a0dd
tape: implement LTO userspace driver
2021-04-08 07:28:30 +02:00
Dietmar Maurer
1336ae8249
tape: introduce trait BlockWrite
2021-04-08 07:28:30 +02:00
Dietmar Maurer
0db5712493
tape: introduce trait BlockRead
2021-04-08 07:28:30 +02:00
Dietmar Maurer
cf1e117fc7
sgutils2: use enum for ScsiError
...
This avoids string allocation when we return SenseInfo.
2021-03-27 15:57:48 +01:00
Dietmar Maurer
03eac20b87
SgRaw: add do_in_command()
2021-03-27 15:38:08 +01:00
Dietmar Maurer
11f5d59396
tape: page-align BlockHeader so that we can use it with SG_IO
2021-03-27 15:36:35 +01:00
Dietmar Maurer
6f63c29306
Cargo.toml: fix: set version to 1.0.12
2021-03-26 14:14:12 +01:00
Dietmar Maurer
c0e365fd49
bump version to 1.0.12-1
2021-03-26 14:09:30 +01:00
Dietmar Maurer
c553407e98
tape: add --scan option for catalog restore
2021-03-25 13:08:34 +01:00
Dietmar Maurer
4830de408b
tape: avoid writing catalogs for empty backup tasks
2021-03-25 12:50:40 +01:00
Dietmar Maurer
7f78528308
OnlineHelpInfo.js: new link for client-repository
2021-03-25 12:26:57 +01:00
Dietmar Maurer
2843ba9017
avoid compiler warning
2021-03-25 12:25:23 +01:00
Dietmar Maurer
589c4dad9e
tape: add fsf/bsf to TapeDriver trait
2021-03-25 10:10:16 +01:00
Dietmar Maurer
870681013a
tape: fix catalog restore
...
We need to rewind the tape if fast_catalog_restore() fail ...
2021-03-24 10:09:23 +01:00
Dietmar Maurer
c046739461
tape: fix MediaPool regression tests
2021-03-24 09:44:30 +01:00
Dietmar Maurer
8b1289f3e4
tape: skip catalog archives in restore
2021-03-24 09:33:39 +01:00
Dietmar Maurer
074503f288
tape: implement fast catalog restore
2021-03-24 08:40:34 +01:00
Dietmar Maurer
c6f55139f8
tape: impl. MediaCatalog::parse_catalog_header
...
This is just an optimization, avoiding to read the catalog into memory.
We also expose create_temporary_database_file() now (will be
used for catalog restore).
2021-03-24 06:32:59 +01:00
Dietmar Maurer
20cc25d749
tape: add TapeDriver::move_to_last_file
2021-03-24 06:32:59 +01:00
Dietmar Maurer
30316192b3
tape: improve locking (lock media-sets)
...
- new helper: lock_media_set()
- MediaPool: lock media set
- Expose Inventory::new() to avoid double loading
- do not lock pool on restore (only lock media-set)
- change pool lock name to ".pool-{name}"
2021-03-24 06:32:59 +01:00
Dietmar Maurer
e93263be1e
taoe: implement MediaCatalog::destroy_unrelated_catalog() helper
2021-03-22 12:03:11 +01:00
Dietmar Maurer
2ab2ca9c24
tape: add MediaPool::lock_unassigned_media_pool() helper
2021-03-19 10:13:38 +01:00
Dietmar Maurer
eac1beef3c
tape: cleanup PoolWriter - factor out common code
2021-03-19 08:56:14 +01:00
Dietmar Maurer
166a48f903
tape: cleanup - split PoolWriter into several files
2021-03-19 08:19:13 +01:00
Dietmar Maurer
82775c4764
tape: make sure we only commit/write valid catalogs
2021-03-19 07:50:32 +01:00
Dietmar Maurer
88bc9635aa
tape: store media_uuid in PoolWriterState
...
This is mainly a cleanup, avoiding to access the catalog_set to get the uuid.
2021-03-19 07:33:59 +01:00
Dietmar Maurer
1037f2bc2d
tape: cleanup - rename CatalogBuilder to CatalogSet
2021-03-19 07:22:54 +01:00
Dietmar Maurer
32b75d36a8
tape: backup media catalogs
2021-03-19 06:58:46 +01:00
Dietmar Maurer
237314ad0d
tape: improve catalog consistency checks
...
Try to check if we read the correct catalog by verifying uuid, media_set_uuid
and seq_nr.
Note: this changes the catalog format again.
2021-03-18 08:43:55 +01:00
Dietmar Maurer
6ee3035523
tape: define magic number for catalog archives
2021-03-17 13:35:23 +01:00
Dietmar Maurer
b627ebbf40
tape: improve catalog parser
2021-03-17 11:29:23 +01:00
Dietmar Maurer
ef4bdf6b8b
tape: proxmox-tape media content - add 'store' attribute
2021-03-17 11:17:54 +01:00
Dietmar Maurer
54722acada
tape: store datastore name in tape archives and media catalog
...
So that we can store multiple datastores on a single media set.
Deduplication is now per datastore (not per media set).
2021-03-17 11:08:51 +01:00
Dietmar Maurer
0e2bf3aa1d
SnapshotReader: add self.datastore_name() helper
2021-03-17 10:16:34 +01:00
Dietmar Maurer
365126efa9
tape: PoolWriter - remove unnecessary move_to_eom
2021-03-17 10:16:34 +01:00
Dietmar Maurer
03d4c9217d
update OnlineHelpInfo.js
2021-03-17 10:16:34 +01:00
Dietmar Maurer
776dabfb2e
tape: use MB/s for backup speed (to match drive speed specification)
2021-03-16 08:51:49 +01:00
Dietmar Maurer
5c4755ad08
tape: speedup backup by doing read/write in parallel
2021-03-16 08:51:49 +01:00
Dietmar Maurer
e8913fea12
tape: write_chunk_archive - do not consume partially written chunk at EOT
...
So that it is re-written to the next tape.
2021-03-12 07:14:50 +01:00
Dietmar Maurer
2c10410b0d
tape: improve backup task log
2021-03-11 08:43:13 +01:00
Dietmar Maurer
5ef4c7bcd3
tape: fix scsi volume_statistics and cartridge_memory for quantum drives
2021-03-10 14:13:48 +01:00
Dietmar Maurer
6396bace3d
tape: improve backup task log (show percentage)
2021-03-10 10:59:13 +01:00
Dietmar Maurer
713a128adf
tape: improve backup task log format
2021-03-10 09:54:51 +01:00
Dietmar Maurer
affc224aca
tape: read_tape_mam - pass correct allocation len
2021-03-10 09:24:38 +01:00
Dietmar Maurer
6f82d32977
tape: cleanup - remove wrong inline comment
2021-03-10 08:11:51 +01:00
Dietmar Maurer
1057b1f5a5
tape: lock artificial "__UNASSIGNED__" pool to avoid races
2021-03-09 10:00:26 +01:00
Dietmar Maurer
af76234112
tape: improve MediaPool allocation by sorting tapes by ctime and label_text
2021-03-09 08:33:21 +01:00
Dietmar Maurer
9bcdade85f
ui: remove cartridge memory panel (show window after butten press instead)
2021-03-08 12:52:06 +01:00
Dietmar Maurer
b0156179b9
ui: fix date rendering in drive status
2021-03-08 11:30:12 +01:00
Dietmar Maurer
3f4a62de2f
docs: fix note about global media pool namespace
2021-03-08 10:56:28 +01:00
Dietmar Maurer
fd641b99c3
ui: add online help to drive/changer status
2021-03-08 09:47:44 +01:00