Showing results for 
Search instead for 
Did you mean: 

Tape usage reporting

Level 6

Netbackup 7104, Windows 2008r2, OpsCenter Analytics 7104


Hello all,

I am trying to compile some reporting on tape usage, so we can better plan moving forward. I'm wanting to look back month-to-month for perhaps the last 6 months to a years to generate some trending, and also to help bolster my argument to lessen our depenedency on tape storage for short-term data. I'm wanting the output to show me how many tapes are used on average for daily data backups with shorter retention, and which ones go offsite for 7 years (our monthly fulls). So far, I've tried the Tapes Written option under Tape Reports in the Netbackup GUI, I've tried the client summary dashboard under Client Reports in OpsCenter (I selected the date range, ran the report, exported to a CSV, and summed the "volume" column), and I have even manually extracted data from the catalog and just counted tapes. I'm getting wildly ranging amounts of data, as well as tape numbers, and I need this to be accurate. I've been beating on this on and off for about 3 days, and when I think I'm getting somewhere, I get stopped by some errant reporting values that make no sense based on the actually quantities of tapes we have been purchasing. For example, in 2012, we were purchasing an average of about 400 tapes per quarter, based on the estimated number of tapes leaving for 7 years, since those 7-year backups slowly diminish the tape supply. But, when I run the number by just counting tapes from the catalog with 7 year retention, I should be seeing approx 400 tapes per quarter headed off site for 7-years, but I am not. On the other hand, other than inventory I havent used yet, and available scratch at Iron Mountain, I don’t have a huge number of tapes just sitting in scratch pool waiting to be used either, so the tapes we have ordered in the past are getting used.

In your experience, what methods have you used to get your most accurate results on tape reporting?


Thank you,




Level 6

To be honest, you are looking for the same type of report I've been waiting to see in OpsCenter, but I don't think it will happen in this product.

The problem you are likely finding is the reports are showing which tapes had data written to them, but not indicating they were full. A single tape could be written multiple times in a week, and is counted every time it is written to, which is not what you are looking for.

I'm assuming you are trying to get a handle on how many tapes you end up sending offsite (which is your true usage count), not just the number of tapes accessed.  For that, you should be using something such as the eject list of tapes from Vault, or the list of tapes that you put in the cases to send to your offsite vendor.  Add those up for whatever timeframe you need and that's your tape usage.

If you need to determine tape usage for tapes remaining in your library, that would probably need to be scripted by taking a snapshot of the tapes in the library on a day-to-day basis and comparing the list of tapes in Scratch status yesterday to those in an allocated status today. 


Level 3

Hi Toddman214,

here a query which might relieve a bit of sorrow :). There is no report which is able to fullfill your or my  request. So what i am dooing for tape capacity purposes is running following query each day and storing the data in a db. It is only showing the actual state and i think this could help after a while to build a reporting based on this counts.

here the query (store it under My Reports and schedule it daily in OpsCenter) :


select cc.friendlyname MasterServer, cc.libraryid Robot,  cc.volumegroupname VolGroup,
sum(cc.AnyPool) AnyPool,
sum(cc.Scratch) Scratch,
sum(cc.NOScratch) Used,
sum(cc.AnyPool + cc.Scratch + cc.NOScratch) Total
    SELECT bb.friendlyname, aa.libraryid, aa.volumepoolname, aa.volumegroupname,
    ( case when aa.VolumePoolName = 'Scratch'  then count( else 0 end)  Scratch,
    ( case when aa.VolumePoolName = 'AnyPool'  then count( else 0 end) AnyPool,
    ( case when aa.VolumePoolName != 'Scratch'  and aa.VolumePoolName != 'AnyPool' then count( else 0 end) NOScratch
    FROM domain_Media aa, domain_MasterServer bb
    where aa.masterserverid =
    and aa.libraryid is not NULL
    and deleted != 1
    group by bb.friendlyname, aa.libraryid, aa.volumepoolname, aa.volumegroupname,
    order by bb.friendlyname
) CC
GROUP by cc.friendlyname, cc.libraryid,  cc.volumegroupname


You might fit the query to your needings (VolumePoolName) and be carefull when you try to calculate percentages.