Veritas-bu

[Veritas-bu] Relocating data on volumes.

2002-12-03 19:31:10
Subject: [Veritas-bu] Relocating data on volumes.
From: vaxzilla AT jarai DOT org (Brian Chase)
Date: Tue, 3 Dec 2002 16:31:10 -0800 (PDT)
On Tue, 3 Dec 2002, Brian Chase wrote:

> I've a tape that contains images with an infinite retention period; it
> has been placed in a FROZEN state due to a media write error.  The tape
> seems to read fine, but I'd like to get the good images off of it and
> onto another tape.  Is there a convenient way to move the images from
> the bad volume onto another good volume in the same volume pool?

Oh goodness, what a load of $%!* it is to do this under NetBackup.
It seems to be possible using the bpduplicate and bpexpdate commands,
but it looks like one has to be very careful as there are a number of
pitfalls.

For one, which I found as a rather unpleasant surprise, NetBackup only
allows for only a single duplicate[1].  So, in the case above, if I've
got an offsite duplicate of images on my FROZEN tape, I can't make
another duplicate of those images as a "first step" of moving the data
off the frozen tape without deleting the references to the offsite copy.

Secondly, if you specify the destination volume pool to be the same as
the one in which the source volume resides, you risk throwing NetBackup
into a deadlock state in the case that it attempts to move data from the
source tape onto itself[2].  I don't think this is possible if the
source tape is in the FROZEN state, but I still find it ridiculous that
the software developers at VERITAS allowed such a trivially avoidable
deadlock to exist (especialy since they've bothered to document it!)

Thirdly, although bpduplicate does allow you to duplicate a whole tape,
there's the possibility that it will be duplicated to tape with
unrelated images on it, and possibly it will be split across more than
one tape.  Which, for the process of duplication in general, is not at
all a problem.  It does muck things up if you need to move a volume's
data to a temporary pool and then back.  As a result, you have to track
the individual backup images to make this work.

So, as best as I can determine, given that you want to move the data
off volume "001234" in volume pool "POOL_A" onto some other volume(s)
also in "POOL_A", the steps required are something along the lines of
the following:

   1. Generate a list of backup images on volume 001234.
   2. Duplicate these images to a temporary volume pool.
   3. Mark the duplicated images as the primary copy.
   4. Delete (expire) the backup images from the bad volume.
   5. Remove the bad tape from POOL_A.
   6. Duplicate the backup images from the temporary volume pool to POOL_A.
   7. Mark the duplicated images in POOL_A as the primary copy.
   8. Delete the backup images from the temporary volume pool.

GAH!!!!!

Also, the above won't work for any of the images for which there exists
an offsite copy of the image.  In that case you're probably better off
just recalling the offsite tape(s) and duplicating from that data.
Unfortunately, that causes me to pay a retrieval fee to our offsite
facility. Otherwise, you'll have to expire the offsite images before you
can do the above duplication fandango.  Doing that would be a bad idea.

God forbid I ever say anything nice about Tivoli's TSM, but at least
with it, the above operation only requires you to type in the command
"MOVE DATA 001234" to the administrative client.  It did all the other
necessary housekeeping for you.

-brian.

[1] VERITAS NetBackup DataCenter 3.4 Systems Administrator's Guide: UNIX,
    p.436.
[2] VERITAS NetBackup DataCenter 3.4 Systems Administrator's Guide: UNIX,
    p.438, the -dp option description.



<Prev in Thread] Current Thread [Next in Thread>