tape: improve docu

This commit is contained in:
Dietmar Maurer 2021-01-12 16:37:23 +01:00
parent 6543214dde
commit 0bce2118e7
2 changed files with 57 additions and 22 deletions

View File

@ -1,18 +1,19 @@
Tape Backup Tape Backup
=========== ===========
Our tape backup solution provides a easy way to store datastore Proxmox tape backup provides an easy way to store datastore contents
contents to a tape. This increases data safety because you get: to a magnetic tapes. This increases data safety because you get:
- an additional copy of the data - an additional copy of the data
- to a different media type (tape) - to a different media type (tape)
- to an additional location (you can move tape offsite) - to an additional location (you can move tapes offsite)
Statistics show that 95% of all restore jobs restores the last Statistics show that 95% of all restore jobs restores data from the
backup. Restore requests further declines the older the data gets. last backup. Restore requests further declines the older the data
Considering that, tape backup may also help to reduce disk usage, gets. Considering this, tape backup may also help to reduce disk
because you can safely remove data from disk once archived on tape. usage, because you can safely remove data from disk once archived on
This is especially true if you need to keep data for several years. tape. This is especially true if you need to keep data for several
years.
Tape backups do not provide random access to the stored data. Instead, Tape backups do not provide random access to the stored data. Instead,
you need to restore the data to disk before you can access it you need to restore the data to disk before you can access it
@ -50,8 +51,7 @@ In general, LTO tapes offer the following advantages:
- Multiple vendors (for both media and drives) - Multiple vendors (for both media and drives)
Please note that `Proxmox Backup Server` already stores compressed Please note that `Proxmox Backup Server` already stores compressed
data, so we do not need/use the tape compression feature. Same applies data, so we do not need/use the tape compression feature.
to encryption.
Supported Hardware Supported Hardware
@ -78,9 +78,9 @@ restore jobs while the other dives are used for backups.
Also consider that you need to read data first from your datastore Also consider that you need to read data first from your datastore
(disk). But a single spinning disk is unable to deliver data at this (disk). But a single spinning disk is unable to deliver data at this
rate. We meassured a maximum rate about 100MB/s in practive, so it rate. We meassured a maximum rate about 60MB/s to 100MB/s in practive,
takes 33 hours to read 12TB to fill up a LTO8 tape. So if you want to so it takes 33 hours to read 12TB to fill up a LTO8 tape. If you want
run your tape at full speed, please make sure that the source to run your tape at full speed, please make sure that the source
datastore is able to delive that performance (use SSDs). datastore is able to delive that performance (use SSDs).
@ -438,18 +438,33 @@ one media pool, so a job only uses tapes from that pool.
- Never overwrite data. - Never overwrite data.
.. NOTE:: FIXME: Add note about global content namespace. (We do not store .. NOTE:: FIXME: Add note about global content namespace. (We do not store
the source datastore, so it is impossible to distinguish the source datastore, so it is impossible to distinguish
store1:/vm/100 from store2:/vm/100. Please use different media store1:/vm/100 from store2:/vm/100. Please use different media
pools if the source is from a different name space) pools if the source is from a different name space)
Empty Media Pool The following command creates a new media pool::
^^^^^^^^^^^^^^^^
It is possible to label tapes with no pool assignment. Such tapes may // proxmox-tape pool create <name> --drive <string> [OPTIONS]
be used by any pool. Once used by a pool, media stays in that pool.
# proxmox-tape pool create daily --drive mydrive
Additional option can be set later using the update command::
# proxmox-tape pool update daily --allocation daily --retention 7days
To list all configured pools use::
# proxmox-tape pool list
┌───────┬──────────┬────────────┬───────────┬──────────┐
│ name │ drive │ allocation │ retention │ template │
╞═══════╪══════════╪════════════╪═══════════╪══════════╡
│ daily │ mydrive │ daily │ 7days │ │
└───────┴──────────┴────────────┴───────────┴──────────┘
Tape Jobs Tape Jobs
@ -495,20 +510,40 @@ software can uniquely identify the tape too.
For a standalone drive, manually insert the new tape cartidge into the For a standalone drive, manually insert the new tape cartidge into the
drive and run:: drive and run::
# proxmox-tape label --changer-id <label-text> --drive <drive-name> # proxmox-tape label --changer-id <label-text> [--pool <pool-name>]
You may omit the ``--pool`` argument to allow the tape to be used by any pool.
.. Note:: For safety reasons, this command fails if the tape contain .. Note:: For safety reasons, this command fails if the tape contain
any data. If you want to overwrite it anways, erase the tape first. any data. If you want to overwrite it anways, erase the tape first.
You can verify success by reading back the label:: You can verify success by reading back the label::
# proxmox-tape read-label --drive <drive-name> # proxmox-tape read-label
┌─────────────────┬──────────────────────────────────────┐
│ Name │ Value │
╞═════════════════╪══════════════════════════════════════╡
│ changer-id │ vtape1 │
├─────────────────┼──────────────────────────────────────┤
│ uuid │ 7f42c4dd-9626-4d89-9f2b-c7bc6da7d533 │
├─────────────────┼──────────────────────────────────────┤
│ ctime │ Wed Jan 6 09:07:51 2021 │
├─────────────────┼──────────────────────────────────────┤
│ pool │ daily │
├─────────────────┼──────────────────────────────────────┤
│ media-set-uuid │ 00000000-0000-0000-0000-000000000000 │
├─────────────────┼──────────────────────────────────────┤
│ media-set-ctime │ Wed Jan 6 09:07:51 2021 │
└─────────────────┴──────────────────────────────────────┘
.. NOTE:: The ``media-set-uuid`` using all zeros indicates an empty
tape (not used by any media set).
If you have a tape library, apply the sticky barcode label to the tape If you have a tape library, apply the sticky barcode label to the tape
cartridges first. Then load those empty tapes into the library. You cartridges first. Then load those empty tapes into the library. You
can then label all unlabeled tapes with a single command:: can then label all unlabeled tapes with a single command::
# proxmox-tape barcode-label --drive <drive-name> # proxmox-tape barcode-label [--pool <pool-name>]
Run Tape Backups Run Tape Backups

View File

@ -44,7 +44,7 @@ pub const MEDIA_SET_ALLOCATION_POLICY_FORMAT: ApiStringFormat =
ApiStringFormat::VerifyFn(|s| { MediaSetPolicy::from_str(s)?; Ok(()) }); ApiStringFormat::VerifyFn(|s| { MediaSetPolicy::from_str(s)?; Ok(()) });
pub const MEDIA_SET_ALLOCATION_POLICY_SCHEMA: Schema = StringSchema::new( pub const MEDIA_SET_ALLOCATION_POLICY_SCHEMA: Schema = StringSchema::new(
"Media set allocation policy.") "Media set allocation policy ('continue', 'always', or a calendar event).")
.format(&MEDIA_SET_ALLOCATION_POLICY_FORMAT) .format(&MEDIA_SET_ALLOCATION_POLICY_FORMAT)
.schema(); .schema();
@ -79,7 +79,7 @@ pub const MEDIA_RETENTION_POLICY_FORMAT: ApiStringFormat =
ApiStringFormat::VerifyFn(|s| { RetentionPolicy::from_str(s)?; Ok(()) }); ApiStringFormat::VerifyFn(|s| { RetentionPolicy::from_str(s)?; Ok(()) });
pub const MEDIA_RETENTION_POLICY_SCHEMA: Schema = StringSchema::new( pub const MEDIA_RETENTION_POLICY_SCHEMA: Schema = StringSchema::new(
"Media retention policy.") "Media retention policy ('overwrite', 'keep', or time span).")
.format(&MEDIA_RETENTION_POLICY_FORMAT) .format(&MEDIA_RETENTION_POLICY_FORMAT)
.schema(); .schema();