kreuzberger
Goto Top

Veeam BuR - Rücksicherung per Powershell

Tach Digitalfreunde,

da ist nun folgende Situation:

Ein Veeam B&R Server wurde abgelöst durch etwas anderes. Der Server ist mit ganz anderer Backup-Software völlig neu aufgesetzt worden. Das System arbeitet bereits so. (Mir ist unbekannt was das für ein System ist, ich hab darauf auch kein Zugriff)

Es gibt aber noch LTO5-Bänder aus dem Veeam mit Datenauslagerungen. Diese Bänder sollen nun wieder rückgesichert werden auf ein SMB-Storage.

Ich habe nun die Möglichkeit, ein mit einem einzelnen LTO5-Laufwerk vorübergehend einen PC mit Server 2022 (Eval., Standard) und Veeam B&R 12 diese Bänder einmalig auszulesen und zu Löschen, damit sie dem neuen Backup-Programm zur Verfügung stellt werden können.

Die Bänder sind nicht Passwortgeschützt, es sind keine VMs oder Systeme gesichert, es sind zu 99% nur dumme Daten. Die Band-Sets sind beschriftet und somit als zusammenhängende Bandsicherungen mit z. B. Band 1 bis 4 identifizierbar.

Hat da jemand / Gibt es da ein PowerShell Script, was es mir ermöglicht ->

  • den Inhalt der Bänder zu erfassen
  • die Bänder auszulesen und in einen frei gewählten Ort zurückzuschreiben
  • die Inhaltsliste aus Veeam wieder zu entfernen
  • fertsch

Bei Retrospect könnte man die Bänder ohne Inhaltserfassung direkt in einem Durchlauf zurücksichern. Genial, wenn das auch mit Veeam ginge.

Bei den Powershell-Script müsste ich angeben können von welchem Band-Laufwerk er auslesen soll,
wohin er die Daten schreiben soll (SMB://Ordner),
und von wie vielen bändern pro Set er die Daten holen soll.

Das wäre eine enorme Erleichterung, wenn es sowas mehr oder weniger unkompliziert bereits fertig vorläge.

Danke
Kreuzberger

Content-Key: 73761515161

Url: https://administrator.de/contentid/73761515161

Printed on: June 26, 2024 at 13:06 o'clock

Member: NordicMike
NordicMike Jun 04, 2024 at 14:31:37 (UTC)
Goto Top
Member: Crusher79
Crusher79 Jun 04, 2024 at 15:01:00 (UTC)
Goto Top
So wie @NordicMike es schon beschrieb.

Ist nix besonderes. Jedes Band ein Objekt. Hier mal mein altes um Bänder in anderen Pool zu verschieben.

Braucht keine UID. Klarname reicht um Bänder oder Pool anzusteuern. Das einfach mit anderen Kommandos kombinieren.

Get-VBRTapeMedium -MediaPool "Free" |  Where-Object {$_.Name -like "Tape*"} | Foreach-Object {Get-VBRTapeMedium -Name $_.Name | Move-VBRTapeMedium -MediaPool "Park"}  
Member: kreuzberger
kreuzberger Jun 04, 2024 at 15:33:55 (UTC)
Goto Top
Danke @Crusher79

wenn ich

einfach

lese wird’s wohl kompliziert. Was macht denn diese Befehlszeile nun eigentlich genau? Wird da erst einmal nur ein Bandinhalt erfasst, oder passiert da noch mehr?

Kreuzberger
Member: Crusher79
Crusher79 Jun 04, 2024 at 16:39:40 (UTC)
Goto Top
Du musst die Pool Namen kennen.

Im Prinzip hast du links dein Menü. Jedes Item in der GUI wird mit PowerShell abgebildet.

Get-VBRTapeMedium -MediaPool "Free"
Holt erstmal alle Bänder in dem Fall aus einen Medien Pool den ich selber "Free" genannt hab.

Where-Object {$_.Name -like "Tape*"}
Veeam vergibt doch normal generische Namen - war früher so. Tape 1, Tape 2, Tape 3, ... Mit den Befehl kann man alle Objekte rausholen, die den Namen tragen.

Warum? Wenn ein Band neu erkannt wird, bekommt es mitunter eine neue Nummer. Offset ist die letzte Nummer. Fliegt z.B. Tape 1 raus, kommt es als Tape 9 wieder.

Man kann die Bezeichnung - wir arbeiten hier OHNE Barcode - frei ändern. Laut meine inneren Monk hab ich einfach dann wieder umbenannt, so dass im Ergebnis Tape 1, Tape 2.... heraus kommt.

Get-VBRTapeMedium -Name $_.Name
Ist etwas doppelt gemoppelt. Den Code hätte man schöner aufbauen können. Im Prinzip wird hier nochmal das Object zum jeweilige Band herbeigholt und via | gepiped.

Move-VBRTapeMedium -MediaPool "Park"}
Hier braucht es kein Bandangabe mehr, da das Objekt zuvor ja genau definiert wurde. Band wird nur logisch von Free in Park verschoben.

Das ist aber alles die Arbeit mit Medien-Pools. Daran kann man anknüpfen und statt es zu schieben XYZ damit machen. Katalogisieren etc. Alles eben halt die Veeam Kommandos so hergeben.


Deine Bemühungen mit dem Restore würden ja hierein münden: https://helpcenter.veeam.com/docs/backup/powershell/start-vbrtapeobjects ...

https://helpcenter.veeam.com/docs/backup/powershell/start-vbrtapeobjects ...

$host = Get-VBRServer -Name target.tech.local

$item = Find-VBRTapeCatalogItem

Start-VBRTapeObjectStorageRestore -Server $host -Path "C:\Backup restore\Azure Blob Container" -CatalogItem $item[3]  

Du hst hier allerdings schon eine Katalogisierung vorliegen. -CatalogItem $item[3] wird dann wiederhergestellt.

Get macht ja nix. Um ein Gefühlt zu bekommen am besten mit schauen die Items auszulesen. Wenn die das beinhalten, was du wiederherstellen willst bist du schon fast fertig. Das Ganze dann mit Start- Kommando anstoßen.

Get ist immer gefahrlos. Hier tut PS nix. Du bekommst Objekte, Listen etc. zurück.

https://helpcenter.veeam.com/docs/backup/powershell/start-vbrtapeobjects ...

Da sind Code Bsp.

Ich hab es selber vor langer Zeit gemacht und kein Veeam + Tape Lib hier!

Auf den Seiten steht schon alles. Musst nur irgendwo anfangen. Am besten von hinten. Das ist Restore. Hast du alles dafür? Ggf. Antwort NEIN - Katalog nicht aufgebaut. Dann geht es damit los.

https://helpcenter.veeam.com/docs/backup/powershell/start-vbrtapecatalog ...

$tape = Get-VBRTapeMedium -Name "00140009","00140010"  
Start-VBRTapeCatalog -Medium $tape

Die Nummer da wären bei mir Tape 1, Tape 2 ....

Danach sind die im Katalog. Eigentlich müsstest du dann schon halb fertig sein! Denn der Recover Befehl will ja einen Katalog oben. Den hast du damit ja für alle Bänder angelegt.

Nun sollte man "einfach" einen Befehl wie oben zum Recovern abfeueren können, der dann auch die Daten findet und an neuen Ort - oder alten - wiederherstellt.

https://helpcenter.veeam.com/docs/backup/vsphere/cataloging_tapes.html?v ...

Das wäre die GUI Variante.

"cataloging" ist das Schlagwort, mit dem du in den PowerShell Bsp. suchen musst. Dann findet man auch wie man eine Katalogisierung anstößst.

Ich hab es wirklich lange nicht gemacht. Scheint aber nur mit vorheriegen Katalog zu gehen. Nur den hat man entweder oder baut ihn neu auf....
Member: Crusher79
Crusher79 Jun 04, 2024 at 16:51:10 (UTC)
Goto Top
@kreuzberger auch wenn mei Bsp. etwas hinkt, ist es eine schön Übung.

Verschieben von Pool A nach Pool B dauert nicht lange. Ist nur logische Zuordnund Du bekommst ein Gefühl dann für den Code

"Tape 1" <- nur 1 Band "Tape*" alle die mit Tape beginnen, wenn man -like verwendet.

Hast du ein Band mal rasch verschoben passt es doch schon! Du hast eine Sache mit einen Band gemacht. Ach ja, was war das? Richtig! Du sollst ja irgendwie Katalog aufbauen mit einen Band. Etwas anderer Befehl und ab dafür.

Nach einen "Get" kannst du auch mal munter ein " | Select * " schreiben. Und schauen was das Objekt so alles beinhaltet. Datum, UID, Namen, XML .....

Get tut nicht weh. Damit bekommst du ein Gefühl dafür!
Member: kreuzberger
kreuzberger Jun 04, 2024 at 17:04:05 (UTC)
Goto Top
@Crusher79

uff, danke erstmal für deine umfangreiche mühe.

ich komme heute erstmal nicht weiter dazu, das umzusetzen. aber spät abends oder morgen werde ich mich da weiter drum kümmern.

danke

kreuzberger
Member: em-pie
em-pie Jun 04, 2024 at 19:05:11 (UTC)
Goto Top
Moin,

Mal ne blöde Frage: warum musst du das mit der Powershell machen?
Steht dir die GUI nicht zur Verfügung?

Du willst den Prozess ja nicht automatisieren, sondern, so höre ich es raus, einmalig durchführen. Mitunter bist du da für diesen Einzelfall schneller.

Und was willst du genau restoren? Alle Versionsstände auf den Bändern? Was ist auf den Tapes eigentlich drauf? Sind da die 2Disk-Container drauf? Wenn du die widerherstellst, hast du mit der neuen Backup-Software auch nichts gewonnen, denn die müsstest du ja auch noch wiederherstellen! Und wenn du die Backups sauber migrieren willst, dann jeden Versionsstand, der auf den Bändern ist und diesen dann mit der neuen Software ebenfalls sichern…
Member: kreuzberger
kreuzberger Jun 04, 2024 at 22:09:41 (UTC)
Goto Top
Hallo @em-pie

danke für dein Interesse.

Mal ne blöde Frage: warum musst du das mit der Powershell machen?
Steht dir die GUI nicht zur Verfügung?

Ja, sie steht mir zur verfügung, unterm Strich ist es aber bei der Menge der Bänder wohl einfacher, wenn man es wie oben beschrieben per script abarbeiten kann.


Und was willst du genau restoren? Alle Versionsstände auf den Bändern? Was ist auf den Tapes eigentlich drauf? Sind da die 2Disk-Container drauf? Wenn du die widerherstellst, hast du mit der neuen Backup-Software auch nichts gewonnen, denn die müsstest du ja auch noch wiederherstellen! Und wenn du die Backups sauber migrieren willst, dann jeden Versionsstand, der auf den Bändern ist und diesen dann mit der neuen Software ebenfalls sichern…

Auf den Bändern sind zu 99% nur ausgelagerte Daten, keine Betriebsysteme etc. Di wurden aus Platzgründen vom Server auf Tape kopiert, und nach dem Softwareweschel nun nicht mehr erreichbar.
Es gibt da auch nicht Generationen von Backups, sondern nur einmal aufgelagerte Daten.

Es gibt eben vor Ort kein Veeam mehr, womit man das rücksichern könnte. Daran hat da eben keiner gedacht.
Es sollen deshalb diese ausgelagerten Archiv-Daten über eine vorübergehend installierte Server 2022 Evel. und Veeam 12 Community Edition nur noch zurückgeholt werden. Das viele geklickt bei so vielen bändern wäre mi aber etwas zu irre, und darum die frage nach dem ggf. fertigen script.

Kreuzberger