]>
Commit | Line | Data |
---|---|---|
225affc9 DM |
1 | .. _tape_backup: |
2 | ||
5f79dc28 DM |
3 | Tape 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 |
13 | Proxmox tape backup provides an easy way to store datastore content |
14 | onto 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 | 20 | In most restore jobs, only data from the last backup job is restored. |
70d00e01 | 21 | Restore requests further decline, the older the data |
0bce2118 | 22 | gets. Considering this, tape backup may also help to reduce disk |
70d00e01 DW |
23 | usage, because you can safely remove data from disk, once it's archived on |
24 | tape. This is especially true if you need to retain data for several | |
0bce2118 | 25 | years. |
54d96866 DM |
26 | |
27 | Tape backups do not provide random access to the stored data. Instead, | |
70d00e01 | 28 | you need to restore the data to disk, before you can access it |
02633961 | 29 | again. Also, if you store your tapes off-site (using some kind of tape |
70d00e01 DW |
30 | vaulting service), you need to bring them back on-site, before you can do any |
31 | restores. So please consider that restoring from tape can take much | |
32 | longer than restoring from disk. | |
5f79dc28 DM |
33 | |
34 | ||
35 | Tape Technology Primer | |
36 | ---------------------- | |
37 | ||
70d00e01 | 38 | .. _Linear Tape-Open: https://en.wikipedia.org/wiki/Linear_Tape-Open |
5f79dc28 | 39 | |
70d00e01 DW |
40 | As of 2021, the only widely available tape technology standard is |
41 | `Linear Tape-Open`_ (LTO). Different vendors offer LTO Ultrium tape | |
42 | drives, auto-loaders, and LTO tape cartridges. | |
54d96866 | 43 | |
70d00e01 DW |
44 | There are a few vendors that offer proprietary drives with |
45 | slight advantages in performance and capacity. Nevertheless, they have | |
66d06696 | 46 | significant disadvantages: |
54d96866 DM |
47 | |
48 | - proprietary (single vendor) | |
49 | - a much higher purchase cost | |
50 | ||
66d06696 | 51 | So we currently do not test such drives. |
5f79dc28 DM |
52 | |
53 | In 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 |
63 | Note that `Proxmox Backup Server` already stores compressed data, so using the |
64 | tape compression feature has no advantage. | |
54d96866 | 65 | |
d5efa18a DM |
66 | |
67 | Supported Hardware | |
68 | ------------------ | |
69 | ||
ae5b1e18 DC |
70 | Proxmox Backup Server supports `Linear Tape-Open`_ generation 5 (LTO-5) |
71 | or later and has best-effort support for generation 4 (LTO-4). While | |
72 | many LTO-4 systems are known to work, some might need firmware updates or | |
73 | do not implement necessary features to work with Proxmox Backup Server. | |
d5efa18a | 74 | |
ee9fa953 DM |
75 | Tape changing is carried out using the SCSI Medium Changer protocol, |
76 | so 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 |
85 | Drive Performance |
86 | ~~~~~~~~~~~~~~~~~ | |
87 | ||
70d00e01 | 88 | Current LTO-8 tapes provide read/write speeds of up to 360 MB/s. This means, |
66d06696 | 89 | that it still takes a minimum of 9 hours to completely write or |
8a192bed DM |
90 | read a single tape (even at maximum speed). |
91 | ||
53939bb4 | 92 | The only way to speed that data rate up is to use more than one |
70d00e01 | 93 | drive. That way, you can run several backup jobs in parallel, or run |
8a192bed DM |
94 | restore jobs while the other dives are used for backups. |
95 | ||
70d00e01 DW |
96 | Also 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 | 98 | rate. We measured a maximum rate of about 60MB/s to 100MB/s in practice, |
70d00e01 DW |
99 | so it takes 33 hours to read the 12TB needed to fill up an LTO-8 tape. If you want |
100 | to write to your tape at full speed, please make sure that the source | |
53939bb4 | 101 | datastore is able to deliver that performance (for example, by using SSDs). |
baefbc44 | 102 | |
d5efa18a DM |
103 | |
104 | Terminology | |
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 | 169 | Tape Quick Start |
aae5db91 | 170 | ---------------- |
8a192bed DM |
171 | |
172 | 1. Configure your tape hardware (drives and changers) | |
173 | ||
174 | 2. Configure one or more media pools | |
175 | ||
70d00e01 | 176 | 3. Label your tape cartridges |
8a192bed DM |
177 | |
178 | 4. Start your first tape backup job ... | |
baefbc44 DM |
179 | |
180 | ||
181 | Configuration | |
182 | ------------- | |
183 | ||
184 | Please note that you can configure anything using the graphical user | |
70d00e01 | 185 | interface or the command line interface. Both methods result in the |
baefbc44 DM |
186 | same configuration. |
187 | ||
225affc9 | 188 | .. _tape_changer_config: |
baefbc44 DM |
189 | |
190 | Tape 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 |
197 | Tape changers (robots) are part of a `Tape Library`_. They contain a number of |
198 | slots to hold tape cartridges, a barcode reader to identify tape cartridges and | |
199 | an automated method for loading tapes. | |
200 | ||
201 | You can skip this step if you are using a standalone drive. | |
baefbc44 | 202 | |
70d00e01 | 203 | Linux is able to auto detect these devices, and you can get a list |
98cdee78 DM |
204 | of 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 | 215 | In order to use a device with Proxmox Backup Server, you need to create a |
98cdee78 DM |
216 | configuration 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 | |
222 | Where ``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 | ||
232 | This operation can also be carried out from the GUI, by navigating to the | |
233 | **Changers** tab of **Tape Backup** and clicking **Add**. | |
234 | ||
70d00e01 | 235 | You 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 |
248 | Or simply list all configured changer devices (as seen in the **Changers** tab |
249 | of 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 | 260 | The Vendor, Model and Serial number are auto-detected, but only shown |
baefbc44 DM |
261 | if the device is online. |
262 | ||
98cdee78 DM |
263 | To 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 | 282 | Tape libraries usually provide some special import/export slots (also |
02633961 | 283 | called "mail slots"). Tapes inside those slots are accessible from |
0912878e DM |
284 | outside, making it easy to add/remove tapes to/from the library. Those |
285 | tapes are considered to be "offline", so backup jobs will not use | |
70d00e01 | 286 | them. Those special slots are auto-detected and marked as an |
0912878e DM |
287 | ``import-export`` slot in the status command. |
288 | ||
289 | It's worth noting that some of the smaller tape libraries don't have | |
70d00e01 DW |
290 | such slots. While they have something called a "Mail Slot", that slot |
291 | is just a way to grab the tape from the gripper. They are unable | |
0912878e | 292 | to hold media while the robot does other things. They also do not |
5f3b2330 | 293 | expose that "Mail Slot" over the SCSI interface, so you won't see them in |
0912878e DM |
294 | the status output. |
295 | ||
296 | As a workaround, you can mark some of the normal slots as export | |
297 | slot. The software treats those slots like real ``import-export`` | |
53939bb4 | 298 | slots, 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 | ||
305 | After that, you can see those artificial ``import-export`` slots in | |
98cdee78 DM |
306 | the 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 | |
331 | Tape 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 | 338 | Linux is able to auto detect tape drives, and you can get a list |
98cdee78 DM |
339 | of 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 | 354 | In order to use that drive with Proxmox, you need to create a |
53939bb4 DW |
355 | configuration entry. This can be done through **Tape Backup -> Drives** in the |
356 | GUI 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 | ||
366 | If you have a tape library, you also need to set the associated | |
98cdee78 DM |
367 | changer device: |
368 | ||
369 | .. code-block:: console | |
04eba29c | 370 | |
627d0000 | 371 | # proxmox-tape drive update mydrive --changer sl3 --changer-drivenum 0 |
04eba29c | 372 | |
627d0000 | 373 | The ``--changer-drivenum`` is only necessary if the tape library |
70d00e01 | 374 | includes more than one drive (the changer status command lists all |
02633961 | 375 | drive numbers). |
04eba29c | 376 | |
70d00e01 | 377 | You 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 |
395 | To 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 | 406 | The Vendor, Model and Serial number are auto detected and only shown |
04eba29c DM |
407 | if the device is online. |
408 | ||
98cdee78 DM |
409 | For 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 |
450 | Media 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 | 457 | A media pool is a logical container for tapes. A backup job targets |
53939bb4 | 458 | a 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 |
581 | To create a new media pool, add one from **Tape Backup -> Media Pools** in the |
582 | GUI, 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 | 591 | Additional 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 |
598 | To 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 |
611 | Tape 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 | 618 | To automate tape backup, you can configure tape backup jobs which |
70d00e01 DW |
619 | write datastore content to a media pool, based on a specific time schedule. |
620 | The 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 | ||
631 | For example, to configure a tape backup job for datastore ``vmstore1`` | |
632 | use: | |
633 | ||
634 | .. code-block:: console | |
635 | ||
636 | # proxmox-tape backup-job create job2 --store vmstore1 \ | |
637 | --pool yourpool --drive yourdrive --schedule daily | |
638 | ||
70d00e01 | 639 | The backup includes all snapshots from a backup group by default. You can |
9cf45049 DM |
640 | set 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 | 646 | Backup jobs can use email to send tape request notifications or |
9cf45049 DM |
647 | report 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 | ||
655 | It is sometimes useful to eject the tape from the drive after a | |
70d00e01 | 656 | backup. For a standalone drive, the ``eject-media`` option ejects the |
9cf45049 DM |
657 | tape, making sure that the following backup cannot use the tape |
658 | (unless someone manually loads the tape again). For tape libraries, | |
659 | this option unloads the tape to a free slot, which provides better | |
660 | dust 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 | 668 | For tape libraries, the ``export-media`` option moves all tapes from |
9cf45049 | 669 | the media set to an export slot, making sure that the following backup |
70d00e01 | 670 | cannot use the tapes. An operator can pick up those tapes and move them |
9cf45049 DM |
671 | to 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 | ||
681 | It is also possible to run backup jobs manually: | |
682 | ||
683 | .. code-block:: console | |
684 | ||
685 | # proxmox-tape backup-job run job2 | |
686 | ||
687 | To 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 | ||
697 | This 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 | |
699 | backup and *Media Pool* is the pool to back up to. | |
700 | ||
baefbc44 DM |
701 | |
702 | Administration | |
703 | -------------- | |
704 | ||
70d00e01 | 705 | Many sub-commands of the ``proxmox-tape`` command line tools take a |
44ce25e7 | 706 | parameter called ``--drive``, which specifies the tape drive you want |
70d00e01 | 707 | to work on. For convenience, you can set this in an environment |
98cdee78 DM |
708 | variable: |
709 | ||
710 | .. code-block:: console | |
44ce25e7 DM |
711 | |
712 | # export PROXMOX_TAPE_DRIVE=mydrive | |
713 | ||
714 | You can then omit the ``--drive`` parameter from the command. If the | |
715 | drive has an associated changer device, you may also omit the changer | |
53939bb4 | 716 | parameter 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 | 722 | should display the changer status of the changer device associated with |
44ce25e7 DM |
723 | drive ``mydrive``. |
724 | ||
725 | ||
baefbc44 DM |
726 | Label Tapes |
727 | ~~~~~~~~~~~ | |
728 | ||
70d00e01 DW |
729 | By default, tape cartridges all look the same, so you need to put a |
730 | label on them for unique identification. First, put a sticky paper | |
8001c82e DM |
731 | label with some human readable text on the cartridge. |
732 | ||
733 | If you use a `Tape Library`_, you should use an 8 character string | |
70d00e01 DW |
734 | encoded as `Code 39`_, as defined in the `LTO Ultrium Cartridge Label |
735 | Specification`_. You can either buy such barcode labels from your | |
736 | cartridge vendor, or print them yourself. You can use our `LTO Barcode | |
737 | Generator`_ app to print them. | |
8001c82e DM |
738 | |
739 | Next, you need to write that same label text to the tape, so that the | |
740 | software can uniquely identify the tape too. | |
741 | ||
70d00e01 | 742 | For a standalone drive, manually insert the new tape cartridge into the |
98cdee78 DM |
743 | drive and run: |
744 | ||
745 | .. code-block:: console | |
8001c82e | 746 | |
0bce2118 DM |
747 | # proxmox-tape label --changer-id <label-text> [--pool <pool-name>] |
748 | ||
749 | You 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 |
754 | You 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 | |
778 | If you have a tape library, apply the sticky barcode label to the tape | |
779 | cartridges first. Then load those empty tapes into the library. You | |
98cdee78 DM |
780 | can 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 |
787 | Run Tape Backups |
788 | ~~~~~~~~~~~~~~~~ | |
789 | ||
53939bb4 | 790 | To 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 | ||
796 | The 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 |
810 | Restore from Tape |
811 | ~~~~~~~~~~~~~~~~~ | |
812 | ||
4cfb1234 DM |
813 | Restore is done at media-set granularity, so you first need to find |
814 | out which media set contains the data you want to restore. This | |
815 | information is stored in the media catalog. If you do not have media | |
816 | catalogs, you need to restore them first. Please note that you need | |
817 | the catalog to find your data, but restoring a complete media-set does | |
818 | not need media catalogs. | |
819 | ||
70d00e01 | 820 | The 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 | ||
834 | A restore job reads the data from the media set and moves it back to | |
98cdee78 DM |
835 | data 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 |
844 | Update Inventory |
845 | ~~~~~~~~~~~~~~~~ | |
846 | ||
4cfb1234 | 847 | |
baefbc44 DM |
848 | Restore Catalog |
849 | ~~~~~~~~~~~~~~~ | |
9738dd54 | 850 | |
4cfb1234 | 851 | |
794b0fe9 DM |
852 | Encryption 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 | ||
859 | Proxmox Backup Server also provides an interface for handling encryption keys on | |
860 | the backup server. Encryption keys can be managed from the **Tape Backup -> | |
861 | Encryption Keys** section of the GUI or through the ``proxmox-tape key`` command | |
862 | line 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 |
871 | List 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 |
882 | To 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 |
901 | The ``paperkey`` subcommand can be used to create a QR encoded |
902 | version 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 | |
912 | Restoring Encryption Keys | |
913 | ^^^^^^^^^^^^^^^^^^^^^^^^^ | |
914 | ||
915 | You can restore the encryption key from the tape, using the password | |
916 | used to generate the key. First, load the tape you want to restore | |
98cdee78 DM |
917 | into the drive. Then run: |
918 | ||
919 | .. code-block:: console | |
794b0fe9 DM |
920 | |
921 | # proxmox-tape key restore | |
922 | Tepe Encryption Key Password: *********** | |
923 | ||
924 | If the password is correct, the key will get imported to the | |
02633961 | 925 | database. Further restore jobs automatically use any available key. |
794b0fe9 | 926 | |
4cfb1234 | 927 | |
9738dd54 DM |
928 | Tape Cleaning |
929 | ~~~~~~~~~~~~~ | |
930 | ||
70d00e01 | 931 | LTO tape drives require regular cleaning. This is done by loading a |
9738dd54 DM |
932 | cleaning cartridge into the drive, which is a manual task for |
933 | standalone drives. | |
934 | ||
935 | For tape libraries, cleaning cartridges are identified using special | |
936 | labels starting with letters "CLN". For example, our tape library has a | |
98cdee78 DM |
937 | cleaning 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 |
956 | To initiate a cleaning operation simply run: |
957 | ||
958 | .. code-block:: console | |
9738dd54 DM |
959 | |
960 | # proxmox-tape clean | |
961 | ||
962 | This 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) |