]> git.proxmox.com Git - proxmox-backup.git/blame - docs/tape-backup.rst
docs: tape: clarify LTO-4/5 support
[proxmox-backup.git] / docs / tape-backup.rst
CommitLineData
225affc9
DM
1.. _tape_backup:
2
5f79dc28
DM
3Tape Backup
4===========
5
d33d1c88 6.. CAUTION:: Tape Backup is a technical preview feature, not meant for
a21f9852 7 production use.
d33d1c88 8
53939bb4
DW
9.. image:: images/screenshots/pbs-gui-tape-changer-overview.png
10 :align: right
11 :alt: Tape Backup: Tape changer overview
12
66d06696
DC
13Proxmox tape backup provides an easy way to store datastore content
14onto magnetic tapes. This increases data safety because you get:
5f79dc28 15
70d00e01
DW
16- an additional copy of the data,
17- on a different media type (tape),
02633961 18- to an additional location (you can move tapes off-site)
5f79dc28 19
66d06696 20In most restore jobs, only data from the last backup job is restored.
70d00e01 21Restore requests further decline, the older the data
0bce2118 22gets. Considering this, tape backup may also help to reduce disk
70d00e01
DW
23usage, because you can safely remove data from disk, once it's archived on
24tape. This is especially true if you need to retain data for several
0bce2118 25years.
54d96866
DM
26
27Tape backups do not provide random access to the stored data. Instead,
70d00e01 28you need to restore the data to disk, before you can access it
02633961 29again. Also, if you store your tapes off-site (using some kind of tape
70d00e01
DW
30vaulting service), you need to bring them back on-site, before you can do any
31restores. So please consider that restoring from tape can take much
32longer than restoring from disk.
5f79dc28
DM
33
34
35Tape Technology Primer
36----------------------
37
70d00e01 38.. _Linear Tape-Open: https://en.wikipedia.org/wiki/Linear_Tape-Open
5f79dc28 39
70d00e01
DW
40As of 2021, the only widely available tape technology standard is
41`Linear Tape-Open`_ (LTO). Different vendors offer LTO Ultrium tape
42drives, auto-loaders, and LTO tape cartridges.
54d96866 43
70d00e01
DW
44There are a few vendors that offer proprietary drives with
45slight advantages in performance and capacity. Nevertheless, they have
66d06696 46significant disadvantages:
54d96866
DM
47
48- proprietary (single vendor)
49- a much higher purchase cost
50
66d06696 51So we currently do not test such drives.
5f79dc28
DM
52
53In general, LTO tapes offer the following advantages:
54
70d00e01 55- Durability (30 year lifespan)
5f79dc28
DM
56- High Capacity (12 TB)
57- Relatively low cost per TB
58- Cold Media
59- Movable (storable inside vault)
60- Multiple vendors (for both media and drives)
53939bb4 61- Built in AES-GCM Encryption engine
d5efa18a 62
02633961
TL
63Note that `Proxmox Backup Server` already stores compressed data, so using the
64tape compression feature has no advantage.
54d96866 65
d5efa18a
DM
66
67Supported Hardware
68------------------
69
ae5b1e18
DC
70Proxmox Backup Server supports `Linear Tape-Open`_ generation 5 (LTO-5)
71or later and has best-effort support for generation 4 (LTO-4). While
72many LTO-4 systems are known to work, some might need firmware updates or
73do not implement necessary features to work with Proxmox Backup Server.
d5efa18a 74
ee9fa953
DM
75Tape changing is carried out using the SCSI Medium Changer protocol,
76so all modern tape libraries should work.
77
78.. Note:: We use a custom user space tape driver written in Rust_. This
79 driver directly communicates with the tape drive using the SCSI
53939bb4
DW
80 generic interface. This may have negative side effects when used with the old
81 Linux kernel tape driver, so you should not use that driver with
ee9fa953 82 Proxmox tape backup.
d5efa18a
DM
83
84
8a192bed
DM
85Drive Performance
86~~~~~~~~~~~~~~~~~
87
70d00e01 88Current LTO-8 tapes provide read/write speeds of up to 360 MB/s. This means,
66d06696 89that it still takes a minimum of 9 hours to completely write or
8a192bed
DM
90read a single tape (even at maximum speed).
91
53939bb4 92The only way to speed that data rate up is to use more than one
70d00e01 93drive. That way, you can run several backup jobs in parallel, or run
8a192bed
DM
94restore jobs while the other dives are used for backups.
95
70d00e01
DW
96Also consider that you first need to read data from your datastore
97(disk). However, a single spinning disk is unable to deliver data at this
66d06696 98rate. We measured a maximum rate of about 60MB/s to 100MB/s in practice,
70d00e01
DW
99so it takes 33 hours to read the 12TB needed to fill up an LTO-8 tape. If you want
100to write to your tape at full speed, please make sure that the source
53939bb4 101datastore is able to deliver that performance (for example, by using SSDs).
baefbc44 102
d5efa18a
DM
103
104Terminology
105-----------
106
10439718
DM
107**Tape Labels:**
108 are used to uniquely identify a tape. You would normally apply a
109 sticky paper label to the front of the cartridge. We additionally
110 store the label text magnetically on the tape (first file on tape).
d5efa18a
DM
111
112.. _Code 39: https://en.wikipedia.org/wiki/Code_39
113
114.. _LTO Ultrium Cartridge Label Specification: https://www.ibm.com/support/pages/ibm-lto-ultrium-cartridge-label-specification
115
8001c82e
DM
116.. _LTO Barcode Generator: lto-barcode/index.html
117
10439718
DM
118**Barcodes:**
119 are a special form of tape labels, which are electronically
120 readable. Most LTO tape robots use an 8 character string encoded as
121 `Code 39`_, as defined in the `LTO Ultrium Cartridge Label
122 Specification`_.
d5efa18a 123
10439718
DM
124 You can either buy such barcode labels from your cartridge vendor,
125 or print them yourself. You can use our `LTO Barcode Generator`_
126 app, if you would like to print them yourself.
d5efa18a 127
10439718
DM
128 .. Note:: Physical labels and the associated adhesive should have an
129 environmental performance to match or exceed the environmental
130 specifications of the cartridge to which it is applied.
d5efa18a 131
10439718
DM
132**Media Pools:**
133 A media pool is a logical container for tapes. A backup job targets
134 one media pool, so a job only uses tapes from that pool. The pool
135 additionally defines how long a backup job can append data to tapes
136 (allocation policy) and how long you want to keep the data
137 (retention policy).
08d8b2a4 138
10439718
DM
139**Media Set:**
140 A group of continuously written tapes (all from the same media pool).
d5efa18a 141
10439718
DM
142**Tape drive:**
143 The device used to read and write data to the tape. There are
144 standalone drives, but drives are usually shipped within tape
145 libraries.
d5efa18a 146
10439718
DM
147**Tape changer:**
148 A device which can change the tapes inside a tape drive (tape
149 robot). They are usually part of a tape library.
d5efa18a
DM
150
151.. _Tape Library: https://en.wikipedia.org/wiki/Tape_library
152
10439718
DM
153`Tape library`_:
154 A storage device that contains one or more tape drives, a number of
155 slots to hold tape cartridges, a barcode reader to identify tape
156 cartridges, and an automated method for loading tapes (a robot).
d5efa18a 157
10439718
DM
158 This is also commonly known as an 'autoloader', 'tape robot' or
159 'tape jukebox'.
8a192bed 160
10439718
DM
161**Inventory:**
162 The inventory stores the list of known tapes (with additional status
163 information).
4cfb1234 164
10439718
DM
165**Catalog:**
166 A media catalog stores information about the media content.
4cfb1234 167
8a192bed 168
70d00e01 169Tape Quick Start
aae5db91 170----------------
8a192bed
DM
171
1721. Configure your tape hardware (drives and changers)
173
1742. Configure one or more media pools
175
70d00e01 1763. Label your tape cartridges
8a192bed
DM
177
1784. Start your first tape backup job ...
baefbc44
DM
179
180
181Configuration
182-------------
183
184Please note that you can configure anything using the graphical user
70d00e01 185interface or the command line interface. Both methods result in the
baefbc44
DM
186same configuration.
187
225affc9 188.. _tape_changer_config:
baefbc44
DM
189
190Tape changers
191~~~~~~~~~~~~~
192
53939bb4
DW
193.. image:: images/screenshots/pbs-gui-tape-changers.png
194 :align: right
195 :alt: Tape Backup: Tape Changers
196
295bae14
TL
197Tape changers (robots) are part of a `Tape Library`_. They contain a number of
198slots to hold tape cartridges, a barcode reader to identify tape cartridges and
199an automated method for loading tapes.
200
201You can skip this step if you are using a standalone drive.
baefbc44 202
70d00e01 203Linux is able to auto detect these devices, and you can get a list
98cdee78
DM
204of available devices using:
205
206.. code-block:: console
baefbc44
DM
207
208 # proxmox-tape changer scan
a174854a
DM
209 ┌─────────────────────────────┬─────────┬──────────────┬────────┐
210 │ path │ vendor │ model │ serial │
211 ╞═════════════════════════════╪═════════╪══════════════╪════════╡
212 │ /dev/tape/by-id/scsi-CC2C52 │ Quantum │ Superloader3 │ CC2C52 │
213 └─────────────────────────────┴─────────┴──────────────┴────────┘
baefbc44 214
70d00e01 215In order to use a device with Proxmox Backup Server, you need to create a
98cdee78
DM
216configuration entry:
217
218.. code-block:: console
baefbc44 219
a174854a 220 # proxmox-tape changer create sl3 --path /dev/tape/by-id/scsi-CC2C52
baefbc44
DM
221
222Where ``sl3`` is an arbitrary name you can choose.
223
70d00e01 224.. Note:: Please use the persistent device path names from inside
baefbc44
DM
225 ``/dev/tape/by-id/``. Names like ``/dev/sg0`` may point to a
226 different device after reboot, and that is not what you want.
227
53939bb4
DW
228.. image:: images/screenshots/pbs-gui-tape-changers-add.png
229 :align: right
230 :alt: Tape Backup: Add a new tape changer
231
232This operation can also be carried out from the GUI, by navigating to the
233**Changers** tab of **Tape Backup** and clicking **Add**.
234
70d00e01 235You can display the final configuration with:
98cdee78
DM
236
237.. code-block:: console
baefbc44 238
04eba29c
DM
239 # proxmox-tape changer config sl3
240 ┌──────┬─────────────────────────────┐
241 │ Name │ Value │
242 ╞══════╪═════════════════════════════╡
243 │ name │ sl3 │
244 ├──────┼─────────────────────────────┤
245 │ path │ /dev/tape/by-id/scsi-CC2C52 │
246 └──────┴─────────────────────────────┘
247
53939bb4
DW
248Or simply list all configured changer devices (as seen in the **Changers** tab
249of the GUI):
98cdee78
DM
250
251.. code-block:: console
04eba29c 252
baefbc44 253 # proxmox-tape changer list
a174854a
DM
254 ┌──────┬─────────────────────────────┬─────────┬──────────────┬────────────┐
255 │ name │ path │ vendor │ model │ serial │
256 ╞══════╪═════════════════════════════╪═════════╪══════════════╪════════════╡
257 │ sl3 │ /dev/tape/by-id/scsi-CC2C52 │ Quantum │ Superloader3 │ CC2C52 │
258 └──────┴─────────────────────────────┴─────────┴──────────────┴────────────┘
baefbc44 259
53939bb4 260The Vendor, Model and Serial number are auto-detected, but only shown
baefbc44
DM
261if the device is online.
262
98cdee78
DM
263To test your setup, please query the status of the changer device with:
264
265.. code-block:: console
a174854a
DM
266
267 # proxmox-tape changer status sl3
268 ┌───────────────┬──────────┬────────────┬─────────────┐
269 │ entry-kind │ entry-id │ changer-id │ loaded-slot │
270 ╞═══════════════╪══════════╪════════════╪═════════════╡
271 │ drive │ 0 │ vtape1 │ 1 │
272 ├───────────────┼──────────┼────────────┼─────────────┤
273 │ slot │ 1 │ │ │
274 ├───────────────┼──────────┼────────────┼─────────────┤
275 │ slot │ 2 │ vtape2 │ │
276 ├───────────────┼──────────┼────────────┼─────────────┤
277 │ ... │ ... │ │ │
278 ├───────────────┼──────────┼────────────┼─────────────┤
279 │ slot │ 16 │ │ │
280 └───────────────┴──────────┴────────────┴─────────────┘
281
0912878e 282Tape libraries usually provide some special import/export slots (also
02633961 283called "mail slots"). Tapes inside those slots are accessible from
0912878e
DM
284outside, making it easy to add/remove tapes to/from the library. Those
285tapes are considered to be "offline", so backup jobs will not use
70d00e01 286them. Those special slots are auto-detected and marked as an
0912878e
DM
287``import-export`` slot in the status command.
288
289It's worth noting that some of the smaller tape libraries don't have
70d00e01
DW
290such slots. While they have something called a "Mail Slot", that slot
291is just a way to grab the tape from the gripper. They are unable
0912878e 292to hold media while the robot does other things. They also do not
5f3b2330 293expose that "Mail Slot" over the SCSI interface, so you won't see them in
0912878e
DM
294the status output.
295
296As a workaround, you can mark some of the normal slots as export
297slot. The software treats those slots like real ``import-export``
53939bb4 298slots, and the media inside those slots are considered to be 'offline'
98cdee78
DM
299(not available for backup):
300
301.. code-block:: console
0912878e
DM
302
303 # proxmox-tape changer update sl3 --export-slots 15,16
304
305After that, you can see those artificial ``import-export`` slots in
98cdee78
DM
306the status output:
307
308.. code-block:: console
0912878e 309
04eba29c 310 # proxmox-tape changer status sl3
0912878e
DM
311 ┌───────────────┬──────────┬────────────┬─────────────┐
312 │ entry-kind │ entry-id │ changer-id │ loaded-slot │
313 ╞═══════════════╪══════════╪════════════╪═════════════╡
314 │ drive │ 0 │ vtape1 │ 1 │
315 ├───────────────┼──────────┼────────────┼─────────────┤
316 │ import-export │ 15 │ │ │
317 ├───────────────┼──────────┼────────────┼─────────────┤
318 │ import-export │ 16 │ │ │
319 ├───────────────┼──────────┼────────────┼─────────────┤
320 │ slot │ 1 │ │ │
321 ├───────────────┼──────────┼────────────┼─────────────┤
322 │ slot │ 2 │ vtape2 │ │
323 ├───────────────┼──────────┼────────────┼─────────────┤
324 │ ... │ ... │ │ │
325 ├───────────────┼──────────┼────────────┼─────────────┤
326 │ slot │ 14 │ │ │
327 └───────────────┴──────────┴────────────┴─────────────┘
a174854a 328
225affc9 329.. _tape_drive_config:
baefbc44
DM
330
331Tape drives
332~~~~~~~~~~~
333
53939bb4
DW
334.. image:: images/screenshots/pbs-gui-tape-drives.png
335 :align: right
336 :alt: Tape Backup: Drive list
337
04eba29c 338Linux is able to auto detect tape drives, and you can get a list
98cdee78
DM
339of available tape drives using:
340
341.. code-block:: console
04eba29c
DM
342
343 # proxmox-tape drive scan
344 ┌────────────────────────────────┬────────┬─────────────┬────────┐
345 │ path │ vendor │ model │ serial │
346 ╞════════════════════════════════╪════════╪═════════════╪════════╡
ee9fa953 347 │ /dev/tape/by-id/scsi-12345-sg │ IBM │ ULT3580-TD4 │ 12345 │
04eba29c
DM
348 └────────────────────────────────┴────────┴─────────────┴────────┘
349
53939bb4
DW
350.. image:: images/screenshots/pbs-gui-tape-drives-add.png
351 :align: right
352 :alt: Tape Backup: Add a tape drive
353
04eba29c 354In order to use that drive with Proxmox, you need to create a
53939bb4
DW
355configuration entry. This can be done through **Tape Backup -> Drives** in the
356GUI or by using the command below:
98cdee78
DM
357
358.. code-block:: console
04eba29c 359
ee9fa953 360 # proxmox-tape drive create mydrive --path /dev/tape/by-id/scsi-12345-sg
04eba29c 361
70d00e01 362.. Note:: Please use the persistent device path names from inside
ee9fa953 363 ``/dev/tape/by-id/``. Names like ``/dev/sg0`` may point to a
04eba29c
DM
364 different device after reboot, and that is not what you want.
365
366If you have a tape library, you also need to set the associated
98cdee78
DM
367changer device:
368
369.. code-block:: console
04eba29c 370
627d0000 371 # proxmox-tape drive update mydrive --changer sl3 --changer-drivenum 0
04eba29c 372
627d0000 373The ``--changer-drivenum`` is only necessary if the tape library
70d00e01 374includes more than one drive (the changer status command lists all
02633961 375drive numbers).
04eba29c 376
70d00e01 377You can display the final configuration with:
98cdee78
DM
378
379.. code-block:: console
04eba29c
DM
380
381 # proxmox-tape drive config mydrive
382 ┌─────────┬────────────────────────────────┐
383 │ Name │ Value │
384 ╞═════════╪════════════════════════════════╡
385 │ name │ mydrive │
386 ├─────────┼────────────────────────────────┤
ee9fa953 387 │ path │ /dev/tape/by-id/scsi-12345-sg │
04eba29c
DM
388 ├─────────┼────────────────────────────────┤
389 │ changer │ sl3 │
390 └─────────┴────────────────────────────────┘
391
627d0000 392.. NOTE:: The ``changer-drivenum`` value 0 is not stored in the
70d00e01 393 configuration, because it is the default.
04eba29c 394
98cdee78
DM
395To list all configured drives use:
396
397.. code-block:: console
04eba29c
DM
398
399 # proxmox-tape drive list
400 ┌──────────┬────────────────────────────────┬─────────┬────────┬─────────────┬────────┐
401 │ name │ path │ changer │ vendor │ model │ serial │
402 ╞══════════╪════════════════════════════════╪═════════╪════════╪═════════════╪════════╡
ee9fa953 403 │ mydrive │ /dev/tape/by-id/scsi-12345-sg │ sl3 │ IBM │ ULT3580-TD4 │ 12345 │
04eba29c
DM
404 └──────────┴────────────────────────────────┴─────────┴────────┴─────────────┴────────┘
405
53939bb4 406The Vendor, Model and Serial number are auto detected and only shown
04eba29c
DM
407if the device is online.
408
98cdee78
DM
409For testing, you can simply query the drive status with:
410
411.. code-block:: console
632756b6
DM
412
413 # proxmox-tape status --drive mydrive
54311a38
DM
414 ┌────────────────┬──────────────────────────┐
415 │ Name │ Value │
416 ╞════════════════╪══════════════════════════╡
417 │ blocksize │ 0 │
418 ├────────────────┼──────────────────────────┤
419 │ density │ LTO4 │
420 ├────────────────┼──────────────────────────┤
421 │ compression │ 1 │
422 ├────────────────┼──────────────────────────┤
423 │ buffer-mode │ 1 │
424 ├────────────────┼──────────────────────────┤
425 │ alert-flags │ (empty) │
426 ├────────────────┼──────────────────────────┤
427 │ file-number │ 0 │
428 ├────────────────┼──────────────────────────┤
429 │ block-number │ 0 │
430 ├────────────────┼──────────────────────────┤
431 │ manufactured │ Fri Dec 13 01:00:00 2019 │
432 ├────────────────┼──────────────────────────┤
433 │ bytes-written │ 501.80 GiB │
434 ├────────────────┼──────────────────────────┤
435 │ bytes-read │ 4.00 MiB │
436 ├────────────────┼──────────────────────────┤
437 │ medium-passes │ 20 │
438 ├────────────────┼──────────────────────────┤
439 │ medium-wearout │ 0.12% │
440 ├────────────────┼──────────────────────────┤
441 │ volume-mounts │ 2 │
442 └────────────────┴──────────────────────────┘
632756b6
DM
443
444.. NOTE:: Blocksize should always be 0 (variable block size
70d00e01 445 mode). This is the default anyway.
632756b6 446
baefbc44 447
225affc9
DM
448.. _tape_media_pool_config:
449
baefbc44
DM
450Media Pools
451~~~~~~~~~~~
452
53939bb4
DW
453.. image:: images/screenshots/pbs-gui-tape-pools.png
454 :align: right
455 :alt: Tape Backup: Media Pools
456
08d8b2a4 457A media pool is a logical container for tapes. A backup job targets
53939bb4 458a single media pool, so a job only uses tapes from that pool.
08d8b2a4
DM
459
460.. topic:: Media Set
461
462 A media set is a group of continuously written tapes, used to split
463 the larger pool into smaller, restorable units. One or more backup
59217472 464 jobs write to a media set, producing an ordered group of
70d00e01
DW
465 tapes. Media sets are identified by a unique ID. That ID and the
466 sequence number are stored on each tape of that set (tape label).
08d8b2a4 467
70d00e01
DW
468 Media sets are the basic unit for restore tasks. This means that you need
469 every tape in the set to restore the media set contents. Data is fully
08d8b2a4
DM
470 deduplicated inside a media set.
471
472
473.. topic:: Media Set Allocation Policy
474
475 The pool additionally defines how long backup jobs can append data
59217472 476 to a media set. The following settings are possible:
08d8b2a4 477
b3bed7e4 478 - Try to use the current media set (``continue``).
08d8b2a4 479
70d00e01 480 This setting produces one large media set. While this is very
59217472 481 space efficient (deduplication, no unused space), it can lead to
70d00e01 482 long restore times, because restore jobs need to read all tapes in the
59217472 483 set.
08d8b2a4 484
70d00e01 485 .. NOTE:: Data is fully deduplicated inside a media set. This
59217472 486 also means that data is randomly distributed over the tapes in
70d00e01
DW
487 the set. Thus, even if you restore a single VM, data may have to be
488 read from all tapes inside the media set.
59217472 489
70d00e01
DW
490 Larger media sets are also more error-prone, because a single
491 damaged tape makes the restore fail.
59217472 492
70d00e01 493 Usage scenario: Mostly used with tape libraries. You manually
59217472
DM
494 trigger new set creation by running a backup job with the
495 ``--export`` option.
496
e84b801c 497 .. NOTE:: Retention period starts with the existence of a newer
02633961 498 media set.
e84b801c 499
b3bed7e4 500 - Always create a new media set (``always``).
59217472 501
70d00e01
DW
502 With this setting, each backup job creates a new media set. This
503 is less space efficient, because the media from the last set
59217472
DM
504 may not be fully written, leaving the remaining space unused.
505
506 The advantage is that this procudes media sets of minimal
70d00e01
DW
507 size. Small sets are easier to handle, can be moved more conveniently
508 to an off-site vault, and can be restored much faster.
59217472 509
e84b801c
DM
510 .. NOTE:: Retention period starts with the creation time of the
511 media set.
512
59217472
DM
513 - Create a new set when the specified Calendar Event triggers.
514
515 .. _systemd.time manpage: https://manpages.debian.org/buster/systemd/systemd.time.7.en.html
516
517 This allows you to specify points in time by using systemd like
518 Calendar Event specifications (see `systemd.time manpage`_).
519
520 For example, the value ``weekly`` (or ``Mon *-*-* 00:00:00``)
521 will create a new set each week.
522
02633961 523 This balances between space efficiency and media count.
08d8b2a4 524
e84b801c
DM
525 .. NOTE:: Retention period starts when the calendar event
526 triggers.
527
08d8b2a4
DM
528 Additionally, the following events may allocate a new media set:
529
59217472 530 - Required tape is offline (and you use a tape library).
08d8b2a4 531
3f4a62de 532 - Current set contains damaged or retired tapes.
08d8b2a4 533
70d00e01 534 - Media pool encryption has changed
6dd05135 535
70d00e01
DW
536 - Database consistency errors, for example, if the inventory does not
537 contain the required media information, or it contains conflicting
538 information (outdated data).
08d8b2a4
DM
539
540.. topic:: Retention Policy
541
e84b801c 542 Defines how long we want to keep the data.
08d8b2a4 543
3838ce33
DM
544 - Always overwrite media.
545
546 - Protect data for the duration specified.
547
548 We use systemd like time spans to specify durations, e.g. ``2
549 weeks`` (see `systemd.time manpage`_).
550
551 - Never overwrite data.
08d8b2a4 552
794b0fe9
DM
553.. topic:: Hardware Encryption
554
70d00e01 555 LTO-4 (or later) tape drives support hardware encryption. If you
794b0fe9
DM
556 configure the media pool to use encryption, all data written to the
557 tapes is encrypted using the configured key.
558
70d00e01
DW
559 This way, unauthorized users cannot read data from the media,
560 for example, if you loose a tape while shipping to an offsite location.
794b0fe9 561
70d00e01 562 .. Note:: If the backup client also encrypts data, data on the tape
794b0fe9
DM
563 will be double encrypted.
564
70d00e01 565 The password protected key is stored on each medium, so that it is
ee9fa953 566 possbible to `restore the key <tape_restore_encryption_key_>`_ using
70d00e01
DW
567 the password. Please make sure to remember the password, in case
568 you need to restore the key.
794b0fe9 569
0bce2118 570
70d00e01
DW
571.. NOTE:: We use global content namespace, meaning we do not store the
572 source datastore name. Because of this, it is impossible to distinguish
573 store1:/vm/100 from store2:/vm/100. Please use different media pools
574 if the sources are from different namespaces with conflicting names
575 (for example, if the sources are from different Proxmox VE clusters).
08d8b2a4 576
53939bb4
DW
577.. image:: images/screenshots/pbs-gui-tape-pools-add.png
578 :align: right
579 :alt: Tape Backup: Add a media pool
08d8b2a4 580
53939bb4
DW
581To create a new media pool, add one from **Tape Backup -> Media Pools** in the
582GUI, or enter the following command:
98cdee78
DM
583
584.. code-block:: console
0bce2118
DM
585
586 // proxmox-tape pool create <name> --drive <string> [OPTIONS]
587
588 # proxmox-tape pool create daily --drive mydrive
589
08d8b2a4 590
53939bb4 591Additional options can be set later, using the update command:
98cdee78
DM
592
593.. code-block:: console
08d8b2a4 594
0bce2118
DM
595 # proxmox-tape pool update daily --allocation daily --retention 7days
596
597
98cdee78
DM
598To list all configured pools use:
599
600.. code-block:: console
0bce2118
DM
601
602 # proxmox-tape pool list
603 ┌───────┬──────────┬────────────┬───────────┬──────────┐
604 │ name │ drive │ allocation │ retention │ template │
605 ╞═══════╪══════════╪════════════╪═══════════╪══════════╡
606 │ daily │ mydrive │ daily │ 7days │ │
607 └───────┴──────────┴────────────┴───────────┴──────────┘
08d8b2a4 608
225affc9 609.. _tape_backup_job_config:
baefbc44 610
9cf45049
DM
611Tape Backup Jobs
612~~~~~~~~~~~~~~~~
613
53939bb4
DW
614.. image:: images/screenshots/pbs-gui-tape-backup-jobs.png
615 :align: right
616 :alt: Tape Backup: Tape Backup Jobs
617
9cf45049 618To automate tape backup, you can configure tape backup jobs which
70d00e01
DW
619write datastore content to a media pool, based on a specific time schedule.
620The required settings are:
9cf45049
DM
621
622- ``store``: The datastore you want to backup
623
624- ``pool``: The media pool - only tape cartridges from that pool are
625 used.
626
627- ``drive``: The tape drive.
628
629- ``schedule``: Job schedule (see :ref:`calendar-event-scheduling`)
630
631For example, to configure a tape backup job for datastore ``vmstore1``
632use:
633
634.. code-block:: console
635
636 # proxmox-tape backup-job create job2 --store vmstore1 \
637 --pool yourpool --drive yourdrive --schedule daily
638
70d00e01 639The backup includes all snapshots from a backup group by default. You can
9cf45049
DM
640set the ``latest-only`` flag to include only the latest snapshots:
641
642.. code-block:: console
643
644 # proxmox-tape backup-job update job2 --latest-only
645
70d00e01 646Backup jobs can use email to send tape request notifications or
9cf45049
DM
647report errors. You can set the notification user with:
648
649.. code-block:: console
650
651 # proxmox-tape backup-job update job2 --notify-user root@pam
652
653.. Note:: The email address is a property of the user (see :ref:`user_mgmt`).
654
655It is sometimes useful to eject the tape from the drive after a
70d00e01 656backup. For a standalone drive, the ``eject-media`` option ejects the
9cf45049
DM
657tape, making sure that the following backup cannot use the tape
658(unless someone manually loads the tape again). For tape libraries,
659this option unloads the tape to a free slot, which provides better
660dust protection than inside a drive:
661
662.. code-block:: console
663
664 # proxmox-tape backup-job update job2 --eject-media
665
70d00e01 666.. Note:: For failed jobs, the tape remains in the drive.
9cf45049 667
70d00e01 668For tape libraries, the ``export-media`` option moves all tapes from
9cf45049 669the media set to an export slot, making sure that the following backup
70d00e01 670cannot use the tapes. An operator can pick up those tapes and move them
9cf45049
DM
671to a vault.
672
673.. code-block:: console
674
675 # proxmox-tape backup-job update job2 --export-media
676
677.. Note:: The ``export-media`` option can be used to force the start
678 of a new media set, because tapes from the current set are no
679 longer online.
680
681It is also possible to run backup jobs manually:
682
683.. code-block:: console
684
685 # proxmox-tape backup-job run job2
686
687To remove a job, please use:
688
689.. code-block:: console
690
691 # proxmox-tape backup-job remove job2
baefbc44 692
53939bb4
DW
693.. image:: images/screenshots/pbs-gui-tape-backup-jobs-add.png
694 :align: right
695 :alt: Tape Backup: Add a backup job
696
697This same functionality also exists in the GUI, under the **Backup Jobs** tab of
698**Tape Backup**, where *Local Datastore* relates to the datastore you want to
699backup and *Media Pool* is the pool to back up to.
700
baefbc44
DM
701
702Administration
703--------------
704
70d00e01 705Many sub-commands of the ``proxmox-tape`` command line tools take a
44ce25e7 706parameter called ``--drive``, which specifies the tape drive you want
70d00e01 707to work on. For convenience, you can set this in an environment
98cdee78
DM
708variable:
709
710.. code-block:: console
44ce25e7
DM
711
712 # export PROXMOX_TAPE_DRIVE=mydrive
713
714You can then omit the ``--drive`` parameter from the command. If the
715drive has an associated changer device, you may also omit the changer
53939bb4 716parameter from commands that need a changer device, for example:
98cdee78
DM
717
718.. code-block:: console
44ce25e7
DM
719
720 # proxmox-tape changer status
721
70d00e01 722should display the changer status of the changer device associated with
44ce25e7
DM
723drive ``mydrive``.
724
725
baefbc44
DM
726Label Tapes
727~~~~~~~~~~~
728
70d00e01
DW
729By default, tape cartridges all look the same, so you need to put a
730label on them for unique identification. First, put a sticky paper
8001c82e
DM
731label with some human readable text on the cartridge.
732
733If you use a `Tape Library`_, you should use an 8 character string
70d00e01
DW
734encoded as `Code 39`_, as defined in the `LTO Ultrium Cartridge Label
735Specification`_. You can either buy such barcode labels from your
736cartridge vendor, or print them yourself. You can use our `LTO Barcode
737Generator`_ app to print them.
8001c82e
DM
738
739Next, you need to write that same label text to the tape, so that the
740software can uniquely identify the tape too.
741
70d00e01 742For a standalone drive, manually insert the new tape cartridge into the
98cdee78
DM
743drive and run:
744
745.. code-block:: console
8001c82e 746
0bce2118
DM
747 # proxmox-tape label --changer-id <label-text> [--pool <pool-name>]
748
749You may omit the ``--pool`` argument to allow the tape to be used by any pool.
8001c82e 750
70d00e01 751.. Note:: For safety reasons, this command fails if the tape contains
02633961 752 any data. If you want to overwrite it anyway, erase the tape first.
8001c82e 753
98cdee78
DM
754You can verify success by reading back the label:
755
756.. code-block:: console
8001c82e 757
0bce2118
DM
758 # proxmox-tape read-label
759 ┌─────────────────┬──────────────────────────────────────┐
760 │ Name │ Value │
761 ╞═════════════════╪══════════════════════════════════════╡
762 │ changer-id │ vtape1 │
763 ├─────────────────┼──────────────────────────────────────┤
764 │ uuid │ 7f42c4dd-9626-4d89-9f2b-c7bc6da7d533 │
765 ├─────────────────┼──────────────────────────────────────┤
766 │ ctime │ Wed Jan 6 09:07:51 2021 │
767 ├─────────────────┼──────────────────────────────────────┤
768 │ pool │ daily │
769 ├─────────────────┼──────────────────────────────────────┤
770 │ media-set-uuid │ 00000000-0000-0000-0000-000000000000 │
771 ├─────────────────┼──────────────────────────────────────┤
772 │ media-set-ctime │ Wed Jan 6 09:07:51 2021 │
773 └─────────────────┴──────────────────────────────────────┘
774
775.. NOTE:: The ``media-set-uuid`` using all zeros indicates an empty
776 tape (not used by any media set).
8001c82e
DM
777
778If you have a tape library, apply the sticky barcode label to the tape
779cartridges first. Then load those empty tapes into the library. You
98cdee78
DM
780can then label all unlabeled tapes with a single command:
781
782.. code-block:: console
8001c82e 783
0bce2118 784 # proxmox-tape barcode-label [--pool <pool-name>]
8001c82e
DM
785
786
baefbc44
DM
787Run Tape Backups
788~~~~~~~~~~~~~~~~
789
53939bb4 790To manually run a backup job click *Run Now* in the GUI or use the command:
98cdee78
DM
791
792.. code-block:: console
9738dd54
DM
793
794 # proxmox-tape backup <store> <pool> [OPTIONS]
795
796The following options are available:
797
798--eject-media Eject media upon job completion.
799
800 It is normally good practice to eject the tape after use. This unmounts the
70d00e01 801 tape from the drive and prevents the tape from getting dusty.
9738dd54
DM
802
803--export-media-set Export media set upon job completion.
804
02633961 805 After a successful backup job, this moves all tapes from the used
9738dd54
DM
806 media set into import-export slots. The operator can then pick up
807 those tapes and move them to a media vault.
808
809
baefbc44
DM
810Restore from Tape
811~~~~~~~~~~~~~~~~~
812
4cfb1234
DM
813Restore is done at media-set granularity, so you first need to find
814out which media set contains the data you want to restore. This
815information is stored in the media catalog. If you do not have media
816catalogs, you need to restore them first. Please note that you need
817the catalog to find your data, but restoring a complete media-set does
818not need media catalogs.
819
70d00e01 820The following command lists the media content (from catalog):
98cdee78
DM
821
822.. code-block:: console
4cfb1234
DM
823
824 # proxmox-tape media content
825 ┌────────────┬──────┬──────────────────────────┬────────┬────────────────────────────────┬──────────────────────────────────────┐
826 │ label-text │ pool │ media-set-name │ seq-nr │ snapshot │ media-set-uuid │
827 ╞════════════╪══════╪══════════════════════════╪════════╪════════════════════════════════╪══════════════════════════════════════╡
828 │ TEST01L8 │ p2 │ Wed Jan 13 13:55:55 2021 │ 0 │ vm/201/2021-01-11T10:43:48Z │ 9da37a55-aac7-4deb-91c6-482b3b675f30 │
829 ├────────────┼──────┼──────────────────────────┼────────┼────────────────────────────────┼──────────────────────────────────────┤
830 │ ... │ ... │ ... │ ... │ ... │ ... │
831 └────────────┴──────┴──────────────────────────┴────────┴────────────────────────────────┴──────────────────────────────────────┘
832
833
834A restore job reads the data from the media set and moves it back to
98cdee78
DM
835data disk (datastore):
836
837.. code-block:: console
4cfb1234
DM
838
839 // proxmox-tape restore <media-set-uuid> <datastore>
840
841 # proxmox-tape restore 9da37a55-aac7-4deb-91c6-482b3b675f30 mystore
842
843
baefbc44
DM
844Update Inventory
845~~~~~~~~~~~~~~~~
846
4cfb1234 847
baefbc44
DM
848Restore Catalog
849~~~~~~~~~~~~~~~
9738dd54 850
4cfb1234 851
794b0fe9
DM
852Encryption Key Management
853~~~~~~~~~~~~~~~~~~~~~~~~~
854
53939bb4
DW
855.. image:: images/screenshots/pbs-gui-tape-crypt-keys.png
856 :align: right
857 :alt: Tape Backup: Encryption Keys
858
859Proxmox Backup Server also provides an interface for handling encryption keys on
860the backup server. Encryption keys can be managed from the **Tape Backup ->
861Encryption Keys** section of the GUI or through the ``proxmox-tape key`` command
862line tool. To create a new encryption key from the command line:
98cdee78
DM
863
864.. code-block:: console
794b0fe9
DM
865
866 # proxmox-tape key create --hint "tape pw 2020"
867 Tape Encryption Key Password: **********
868 Verify Password: **********
869 "14:f8:79:b9:f5:13:e5:dc:bf:b6:f9:88:48:51:81:dc:79:bf:a0:22:68:47:d1:73:35:2d:b6:20:e1:7f:f5:0f"
870
98cdee78
DM
871List existing encryption keys:
872
873.. code-block:: console
794b0fe9
DM
874
875 # proxmox-tape key list
876 ┌───────────────────────────────────────────────────┬───────────────┐
877 │ fingerprint │ hint │
878 ╞═══════════════════════════════════════════════════╪═══════════════╡
879 │ 14:f8:79:b9:f5:13:e5:dc: ... :b6:20:e1:7f:f5:0f │ tape pw 2020 │
880 └───────────────────────────────────────────────────┴───────────────┘
881
98cdee78
DM
882To show encryption key details:
883
884.. code-block:: console
794b0fe9
DM
885
886 # proxmox-tape key show 14:f8:79:b9:f5:13:e5:dc:...:b6:20:e1:7f:f5:0f
887 ┌─────────────┬───────────────────────────────────────────────┐
888 │ Name │ Value │
889 ╞═════════════╪═══════════════════════════════════════════════╡
890 │ kdf │ scrypt │
891 ├─────────────┼───────────────────────────────────────────────┤
892 │ created │ Sat Jan 23 14:47:21 2021 │
893 ├─────────────┼───────────────────────────────────────────────┤
894 │ modified │ Sat Jan 23 14:47:21 2021 │
895 ├─────────────┼───────────────────────────────────────────────┤
896 │ fingerprint │ 14:f8:79:b9:f5:13:e5:dc:...:b6:20:e1:7f:f5:0f │
897 ├─────────────┼───────────────────────────────────────────────┤
898 │ hint │ tape pw 2020 │
899 └─────────────┴───────────────────────────────────────────────┘
900
8ba47929
DM
901The ``paperkey`` subcommand can be used to create a QR encoded
902version of a tape encryption key. The following command sends the output of the
98cdee78
DM
903``paperkey`` command to a text file, for easy printing:
904
905.. code-block:: console
8ba47929
DM
906
907 proxmox-tape key paperkey <fingerprint> --output-format text > qrkey.txt
908
909
225affc9 910.. _tape_restore_encryption_key:
794b0fe9
DM
911
912Restoring Encryption Keys
913^^^^^^^^^^^^^^^^^^^^^^^^^
914
915You can restore the encryption key from the tape, using the password
916used to generate the key. First, load the tape you want to restore
98cdee78
DM
917into the drive. Then run:
918
919.. code-block:: console
794b0fe9
DM
920
921 # proxmox-tape key restore
922 Tepe Encryption Key Password: ***********
923
924If the password is correct, the key will get imported to the
02633961 925database. Further restore jobs automatically use any available key.
794b0fe9 926
4cfb1234 927
9738dd54
DM
928Tape Cleaning
929~~~~~~~~~~~~~
930
70d00e01 931LTO tape drives require regular cleaning. This is done by loading a
9738dd54
DM
932cleaning cartridge into the drive, which is a manual task for
933standalone drives.
934
935For tape libraries, cleaning cartridges are identified using special
936labels starting with letters "CLN". For example, our tape library has a
98cdee78
DM
937cleaning cartridge inside slot 3:
938
939.. code-block:: console
9738dd54
DM
940
941 # proxmox-tape changer status sl3
942 ┌───────────────┬──────────┬────────────┬─────────────┐
943 │ entry-kind │ entry-id │ changer-id │ loaded-slot │
944 ╞═══════════════╪══════════╪════════════╪═════════════╡
945 │ drive │ 0 │ vtape1 │ 1 │
946 ├───────────────┼──────────┼────────────┼─────────────┤
947 │ slot │ 1 │ │ │
948 ├───────────────┼──────────┼────────────┼─────────────┤
949 │ slot │ 2 │ vtape2 │ │
950 ├───────────────┼──────────┼────────────┼─────────────┤
951 │ slot │ 3 │ CLN001CU │ │
952 ├───────────────┼──────────┼────────────┼─────────────┤
953 │ ... │ ... │ │ │
954 └───────────────┴──────────┴────────────┴─────────────┘
955
98cdee78
DM
956To initiate a cleaning operation simply run:
957
958.. code-block:: console
9738dd54
DM
959
960 # proxmox-tape clean
961
962This command does the following:
963
964- find the cleaning tape (in slot 3)
965
70d00e01 966- unload the current media from the drive (back to slot 1)
9738dd54
DM
967
968- load the cleaning tape into the drive
969
970- run drive cleaning operation
971
972- unload the cleaning tape (to slot 3)