PBS to Tape "wrong media label"

Apr 29, 2025
5
0
1
Wir haben einen PBS mit einem Tape Drive (kein changer), dort habe ich heute alle Tapes gelabelt und dem media pool hinzugefügt.
Bei dem ersten Backup Test erwartet er jetzt immer ein bestimmtes Tape, wie bekomme ich den PBS dazu auf ein beliebiges Tape aus dem Pool was eingelegt ist zu schreiben?

Code:
2025-06-24T12:06:44+02:00: Starting tape backup job 'Datastore1:2weeks-lto-drive1:LTO-Drive-1:2_Backup_To_Tape-DS1'
2025-06-24T12:06:44+02:00: update media online status
2025-06-24T12:06:44+02:00: media set uuid: b0318572-5fe1-4a7d-a9e3-27e0ddaef76b
2025-06-24T12:06:44+02:00: found 2 groups (out of 2 total)
2025-06-24T12:06:44+02:00: latest-only: true (only considering latest snapshots)
2025-06-24T12:06:44+02:00: backup snapshot "vm/100/2025-06-23T22:10:00Z"
2025-06-24T12:06:45+02:00: allocated new writable media 'AC0009L8'
2025-06-24T12:06:45+02:00: Checking for media 'AC0009L8' in drive 'LTO-Drive-1'
2025-06-24T12:06:45+02:00: wrong media label AC0015L8 (984c0d1d-987f-4f70-a6b9-177f78f2b8ea)
2025-06-24T12:06:45+02:00: Please insert media 'AC0009L8' into drive 'LTO-Drive-1'

Unter Next Media scheint er das nächste Tape aus dem Inventar zu erwarten:

1750772351973.png

Eingelegt ist halt AC0015L8 ... und da würde ich jetzt auch gerne drauf schreiben :(

Code:
┌────────────┬───────────────────┬──────────────────────────┬────────┬──────────┬──────────┬─────────┬──────────────────────────────────────┬──────────────────────────────────────┐
│ label-text │ pool              │ media-set-name           │ seq-nr │ status   │ location │ catalog │ uuid                                 │ media-set-uuid                       │
╞════════════╪═══════════════════╪══════════════════════════╪════════╪══════════╪══════════╪═════════╪══════════════════════════════════════╪══════════════════════════════════════╡
│ AC0004L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 089f5976-c75f-483f-b829-9ac9630689b7 │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0013L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 1d9d8dd9-ae82-42ec-8663-6ba61488d845 │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0011L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 22c6996b-e377-4ed3-b801-4d62ff88126f │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0006L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 2ad2316a-0d25-4d7f-9d67-f05cbc36f21c │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0005L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 939c0b19-297c-474b-a581-a894b04050cc │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0015L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ 984c0d1d-987f-4f70-a6b9-177f78f2b8ea │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0007L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ a0b4ea0a-44c2-479c-ae8e-ace57d857d78 │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0010L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ eec1d0e9-e1cd-4eb3-9ccb-aa5ae20fe655 │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0014L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ efe97520-e61c-4da6-a6b1-71531d6c7e22 │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0012L8   │ 2weeks-lto-drive1 │                          │        │ writable │ offline  │      ok │ f93c08b8-dca8-4576-b637-aa338cc9e6fb │                                      │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0009L8   │ 2weeks-lto-drive1 │ Tue Jun 24 12:06:44 2025 │      0 │ full     │ offline  │      ok │ 6f315685-1c36-41b8-8460-2d41e505361a │ b0318572-5fe1-4a7d-a9e3-27e0ddaef76b │
├────────────┼───────────────────┼──────────────────────────┼────────┼──────────┼──────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ AC0003L8   │ 2weeks-lto-drive1 │ Tue Jun 24 15:22:15 2025 │      0 │ writable │ offline  │      ok │ ab88f123-6fef-4e70-b372-c99394000e9d │ ef0b737c-f37f-4f5e-afa4-945c9de9c923 │
└────────────┴───────────────────┴──────────────────────────┴────────┴──────────┴──────────┴─────────┴──────────────────────────────────────┴──────────────────────────────────────┘
 
Bei dem ersten Backup Test erwartet er jetzt immer ein bestimmtes Tape, wie bekomme ich den PBS dazu auf ein beliebiges Tape aus dem Pool was eingelegt ist zu schreiben?
Eingelegt ist halt AC0015L8 ... und da würde ich jetzt auch gerne drauf schreiben :(
das ist nicht vorgesehen.

Im moment wird die reihenfolge der tapes automatisch bestimmt, aber wie bereits gesehen, sagt das web ui bereits vorher welches tape erwartet wird
 
Hmm gibt es einen Grund weshalb das Verhalten so ist? Wieso muss der PBS festlegen welches Tape aus seinem Pool jetzt eingelegt werden soll und wieso kann man das nicht "bearbeiten"?

In der Praxis baut das unnötige Hürden auf, so muss die Person die das Tape entnehmen und ein neues einlegen soll vorher informiert werden welches das ist und kann nicht ein "verfügbares" nehmen was Vor-Ort ist.
 
ein grund ist damit die retention/allocation policy sinnvoll eingehalten werden kann.

je nach dem wie diese policies aussehen kann es zb nicht immer offensichtlich sein welches tape gerade frei ist

wenn dann ein tape eingelegt ist welches nicht beschrieben werden darf muss erst wieder ein anderes eingelegt werden, da ist es aus code Sicht einfacher die Reihenfolge schon vorher festzulegen.

Es ist sicher nicht unmöglich hier was zu machen, aber meistens reicht es aus vor dem einlegen des tapes einen kurzen blick auf das web ui zu werfen um das richtige tape zu nehmen.

falls es wirklich zu mühsam ist kannst du hier natürlich ein feature request aufmachen: https://bugzilla.proxmox.com

jedoch geb ich keine versprechen ab, ob und wann wir das implementieren ;)
 
Was mache ich denn wenn ich 100 Bänder im Bestand habe aber nur einen 20er Wechsler?
Nehmen wir mal an Meine Wochenend-Sicherung braucht 2-3 Bänder.
Ich weiß aber nur (wenn ich vorher in das Gui geschaut habe) was das _nächste_ Band für den Job sein wird, also spätestens für das übernächste Band _könnte_ es sein, dass ein Band aus dem Bestand gebraucht wird was nicht im Wechsler ist ?!
Ist dann die Idee dass ich am Wochenende hinfahre und eines der Bänder in den Wechsler lege was er nun gerade haben will?

Verstehe ich hier irgendwas falsch oder ist das vom Konzept her einfach überhaupt nicht für reale Backup to Tape Szenarien vorgesehen?
Wenn ich jetzt von den Bändern welche als Monats- oder Jahressicherung deklarieren will dann muss ich die auch noch händisch dem Pool entziehen damit
sie nicht vielleicht als nächstes "gebraucht" werden?
Das ist doch alles unnötig kompliziert anstelle einfach die Logik wann welches Band verwendet wird dem Nutzer zu überlassen ...

wenn dann ein tape eingelegt ist welches nicht beschrieben werden darf muss erst wieder ein anderes eingelegt werden, da ist es aus code Sicht einfacher die Reihenfolge schon vorher festzulegen.
Wieso sollte denn ein Tape eingelegt sein was nicht beschrieben werden darf? Entweder ich habe einen Wechsler der mir ein freies Band einlegt was nicht voll und beschreibbar ist oder ich habe nur ein Laufwerk dann muss ich sowieso hingehen und ein "freies" einlegen.
 
Bei einem Laufwerk und einem Szenario , bei dem das gesammte Backup auf ein Band passt ,ist es in der Tat "nur" umständlich. Bei einem Szenario mit einer Library und einem Backup welches auf nur mehrere Bänder passt , so wie im letzten Beitrag beschrieben, ist das in der Praxis kaum händelbar, da man nur das nächste Band kennt, welches PBS benötigt... OK das ist aktuell im PBS so wie es. Aber wie kann man vernünftig mit solchen Szenarien umgehen? Ein Bugzillateport welches vielleicht in einem Jahr beabeitet wird, hilft da nicht weiter. Kann man wenigstens per Skript die eingelegten Bänder täglich einlesen und aus diesen die Band-Reihenfolge für die BackuptoTape Jobs generieren ?
Gruß
Anton
 
Ein Bugzillateport welches vielleicht in einem Jahr beabeitet wird, hilft da nicht weiter.
Was auf jeden jeden Fall 100 % sicher ist: Ohne Bugzilla Eintrag wird nie bearbeitet.

=> Bitte im Bugzilla Enhancement Request alle Fakten sammeln, auch konkrete Anwendungszenarien (aus der Praxis).
 
nur zur info: in einem Wechsler werden zuerst die bänder verwendet die sich im laufwerk befinden (da sie 'on-site' sind)

wenn ich nochmal drüber nachdenke gibt es sogar noch einen weg:

die bänder die man nicht verwenden will, kann man als off-site markieren (tape backup -> inventory -> set location)
bänder die in einem vault sind (also "off-site" werden nie fürs backup in betracht gezogen)

so könnte man auch für einzelne Laufwerke alle anderen als offsite markieren und nur das als on-site markieren welches man verwenden will
 
Man könnte zumindest bei der "ein Laufwerk" Lösung versuchen per Script alle inventarisierten Bänder in eine Dummy Location zu stecken um dann das eine eingelegte Tape zu lesen und "On-site" zu schalten.
So weit hatte ich mich mit der CLI noch nicht befasst aber vermutlich sollte man per cli an die notwendigen Informationen kommen.

Auch nicht schön aber würde vielleicht in der Praxis an Standorten funktionieren wo eine Person ohne PBS zugriff die Bandentnahme machen muss ....
 
Ich finde keine CLI Befehlen mit denen man die "location" der Bänder im Inventory setzen kann, gibt es keine?
ah ja das `proxmox-tape` command kann das (noch) nicht (ein feature request hierzu wäre auch super :) )

es gibt aber immer noch as 'proxmox-backup-debug api' tool um das api generell anzusprechen, der entsprechende aufruf wäre dann:

Code:
proxmox-backup-debug api create /tape/media/move --uuid <Media uuid> --vault-name <vault name>