we have a customer that has the following backup infrastructure:
-physical machine functioning as Veeam backup server & vSphere vCenter server; also attached via 10Gbit to a NAS (working as primary repository) & has a simple tape drive attached (via SAS)
-daily incremental backups of 23 VMs to an SMB share on the NAS (the NAS replicates this backup repository to another off-site NAS)
-jobs are timed to start from 17:15 through ~17:40 and are finished at around 19:00, latest
-active full backup of all jobs on Friday
The customer needs an additional daily tape job that copies the whole current/last backup chain to the tape that is currently inserted in the tape drive.
Regardless the content of the tape and whether it has been used before on that Veeam server: The daily tape job needs to make sure that the whole current backup chain of all backup jobs is written to that tape. And even if that tape has been used before on a day inside the current backup chain and may have valid restore points for that job, it is paramount that the job will rewrite the WHOLE backup chain.
While testing this (with one tape for now and without ejecting), we created a new tape job that is scheduled to start at 20:00 (when all primary backups are finished) from Sunday to Thursday (Friday & Saturday aren't necessary).
We created a new Media Pool called "daily backups":
"Add tapes from Free media pool automatically when more tapes required" is CHECKED.
"Create new media set for every backup session" is CHECKED.
"Do not protect data (cyclically overwrite tapes as required" is CHECKED.
The tape job:
Is set to use the jobs, not the repository.
"one or more source backup jobs have multiple backup chains already created. Should only the latest chain, or all existing chains be sent to tape upon the first job run?" --> was set to "Latest"
Full Backup uses Media Pool "daily backups"
"Archive incremental backups to tape" is CHECKED & also uses the "daily backups" Media Pool
Options--> Advanced Settings --> "Advanced "Process latest full backup chain only" is CHECKED
"Export current media set upon completion" is NOT CHECKED (!)
While testing this we experienced the problem that the tape job will only write the new incrementals to the tape and not the whole backup chain anew. So we added a before-run script:
- Code: Select all
Get-VBRTapeDrive | Move-VBRTapeMedium -MediaPool Free -Confirm:$false
Which has the effect that the whole tape is "new" and Veeam successfully rewrites the whole chain to the tape, regardless if we are still in the incremental line.
So far so good.
The next phase would be the following:
-the tape job ejects the tape after its run (which didn't work at first because of a lock failure --> driver wasn't installed in non-exclusive; now it ejects succesfully)
-the admin removes the tape from the drive the next morning and sends it to the bank
-the admin inserts a new tape --> this new tape should again get the whole current chain up to and including the last AFB in the next run at 20:00 and eject afterwards
-rinse and repeat
I added the following code to the before-run script:
- Code: Select all
Get-VBRTapeLibrary | Start-VBRTapeInventory
This has the effect that the inserted tape is made "known" to Veeam so that it can be used (for new tapes that were never "manually" inventoried, so as to automate it all a bit more)
Veeam only writes the last incrementals to the new tape, not the whole current chain.
Now, why is Veeam doing this?
Do I have to automatically move all offline tapes into a to-be-configured vault (called "Bank")?
Do I have to check "Export current media set upon job completion"? But then again, when every job instance creates a new media set regardless, why does it somehow continue a different media set? Or am I completely misunderstanding something here?
Again: The aim is to convince Veeam to always write the whole current chain of the linked jobs to the current inserted tape. Not only the incrementals since.
Thanks for your suggestions.