Despite being such a useful feature, it’s surprising how often I see the auto media verify setting disabled across all pools on a customer site. This, I think is a disappointing reflection on the fact that the setting isn’t enabled by default. All default pools that come with NetWorker, and any new pool created does not have this setting turned on.
While we can’t change this setting for the default pools, any new pool can have the setting changed, and that’s a good thing.
So, before I go further, what does it mean? Well, referring to the man page for nsr_pool, we see the description as follows:
auto media verify (read/write, yes/no, choice)
If set to yes, NetWorker verifies data written to volumes from this pool. Data is verified by re-positioning the volume to read a portion of the data previously written to the media and comparing the data read to the original data written. If the data read matches the data written, verification succeeds; otherwise it fails. Media is verified whenever a volume becomes full while saving and it is necessary to continue onto another volume, or when a volume goes idle because all save sets being written to the volume are complete. When a volume fails verification, it is marked full so NetWorker will not select the volume for future saves. The volume remains full until it is recycled or a user marks it not full. If a volume fails verification while attempting to switch volumes, all save sets writing to the volume are terminated.
So, what this means is that at points where a volume in a device is no longer being actively written to – i.e., when it’s either full, or it’s idle because writing has ceased, NetWorker will go back and re-read a chunk of the data to make sure that it matches the original data written. (I’ve always been told this is checksum based, for what it’s worth, not a re-read of data from the client.)
If you’re not quite sure yet what the advantage of this is, it’s that it gives us a little more surety that the backups we’re writing are readable. Since this only occurs at natural pause points anyway, the actual performance impact on the backup process is quite negligible.
If you’re unsure where this setting is within NMC, you can view/set it when appraising the properties for any individual pool. This resembles the following:
So, where should you set this? Should you enable it on all pools?
There’s two schools of thoughts on this. These are:
- Turn it on for all pools for maximum verification.
- Turn it on for all final pools.
In the first pass, the notion is to perform auto media verification at all times, regardless of any other processes that may occur against the data. In the second instance though, the theory is that any pool that you backup to but subsequently clone doesn’t need auto media verification, since a rather complete media verification will be conducted when you clone from the volume previously backed up to.
Where do I stand? I must say I lean more these days towards enabling auto media verification for all pools that are written to, regardless of whether they are subsequently cloned, for one simple reason: there’s a time delay between when a saveset is generated and when it is cloned. Therefore in order to detect saveset failures as soon as possible, I think it’s better to use auto media verification both for the originals and the clones.
Ultimately the choice to enable auto media verification is one that each site has to make, but given the relatively negligible performance impact of enabling auto media verification to me, personally, it’s a no-brainer.