HP-UX 11 - disk errors

HP-UX moses B.11.00 A 9000/889

Disk showing errors which is part of VG /dev/vg00. Contains /usr, /var, and /opt. Have a spare drive with nothing on it.

Can we do a disk to disk copy (dd command), shutdown, and then set the scsi ID so the disk we just created is now seen by the system as the old drive with no problems with logical volumes?

I don't really see any reason why that would not work provided that the disks are identical.

But what you're supposed to do is use vgextend to add the spare disk into the volume group. Then use pvmove to move the stuff off the questionable disk onto the new disk. And then, perhaps, vgreduce to drop the old disk out of the group.

I would need a real good reason to use the first technique before I would use the second. However, I never tried either one.

i thought it was only volume groups that can not be reduced. or was that only logical groups?

i really wanna say its the VG that is a static. IE: you can add and swap disks but you cant make it smaller w/ out removeing it and recreateing it.

mmmmmm makes me go back to my aix documention. i know its not hp-ux but its the only other os i have that uses a "smarter disk management system"

Thanks. We had HP support on the line ( they didn't like our idea of using dd ) and when we went to do what they wanted ( boot single user - vgcfgrestore , vgchange...) they didn't hear us when we mentioned the backups were on done with Legato networker to a SUN server w/jukebox. They had us in single user with no connection to the other server. When we told them this (before anything was actually done) their response was "Oops".

Then they come back with a way of moving the data without being in single user but using pvmove (as Perderabo suggested ). Worked great for /usr but /opt and /var didn't work. Both died with i/o errors (must be where the bad blocks on the disk were at).

So we go to restore /var and /opt....networker can't find the tape volumes! Makes it look like the system had not had a full backup for over a year! (still looking into that one!)

So, we ended up creating two new logical volumes, mounting them as /newvar and /newopt and doing cpio from the old to the new....so far it's only had a few problems with certain files (we are hoping they aren't needed or if they are to copy from a dev box with the same OS/version).

Sure wish we had a real HP-UX god(dess) here - ours was let go in the last RIF (although she didn't mind as she just had twins).

time like these are always bad times to find out backup stratigies failed. ;/

sorry to hear about that one. but i think it happens to everyone.

glad to see tho for the most part your up and running again.

(kinda reminds me of the 72 stright hours i put in a few months ago) lets just say delarium passes around 36 hours, and madness takes controll. everytime i went home to goto sleep i got a call with in 2 hours for soemthing else so i had to come back.

Our company has created a procedure for creating a backup root disk called BROOT. All new boxes are put into production with this functionality.

It was meant for an add'l recovery disk for VG00, but it can be used to copy from one disk to another, when you might ever upgrade a Disk to a larger one.

Here is the script. We have a script that creates this script, but this can be edited and reused. This should give you something to work with.

I didn't write this, but it is very good for this type of work

root:/usr/localcw/opt/broot
# cat vgbroot.script
#!/usr/bin/ksh
exec >/usr/localcw/opt/broot/vgbroot.output 2>&1
mkdir /broot
mkdir /dev/vgbroot
mknod /dev/vgbroot/group c 64 0x030000

pvcreate -fB /dev/rdsk/c0t2d0
mkboot /dev/rdsk/c0t2d0
mkboot -a "hpux -lq" /dev/rdsk/c0t2d0
lifcp /dev/dsk/c0t2d0:AUTO -

vgcreate /dev/vgbroot /dev/dsk/c0t2d0
lvcreate -s y -C y -r n -n bstand vgbroot
lvextend -L 1 /dev/vgbroot/bstand /dev/dsk/c0t2d0
lvextend -L 300 /dev/vgbroot/bstand
lvlnboot -r /dev/vgbroot/bstand /dev/vgbroot
lvlnboot -v

umount /broot/bstand
lvcreate -s y -C y -r n -n bswap vgbroot
lvextend -L 1 /dev/vgbroot/bswap /dev/dsk/c0t2d0
lvextend -L 1000 /dev/vgbroot/bswap
lvlnboot -s /dev/vgbroot/bswap /dev/vgbroot
lvlnboot -v
grep -q "/dev/vgbroot/bswap swap swap pri=0 0 0 0" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bswap swap swap pri=0 0 0 0" >> /etc/fstab
fi

umount /broot/bswap
lvcreate -s y -C y -r n -n broot vgbroot
lvextend -L 1 /dev/vgbroot/broot /dev/dsk/c0t2d0
lvextend -L 252 /dev/vgbroot/broot
lvlnboot -r /dev/vgbroot/broot /dev/vgbroot
lvlnboot -v

umount /broot/broot
lvcreate -s y -C y -n bopt vgbroot
lvextend -L 1 /dev/vgbroot/bopt /dev/dsk/c0t2d0
lvextend -L 1200 /dev/vgbroot/bopt
mkdir /broot/bopt
newfs /dev/vgbroot/rbopt
mount /dev/vgbroot/bopt /broot/bopt
grep -q "/dev/vgbroot/bopt /broot/bopt vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bopt /broot/bopt vxfs delaylog 0 2" >> /etc/fstab
fi

umount /broot/bopt
lvcreate -s y -C y -n busr vgbroot
lvextend -L 1 /dev/vgbroot/busr /dev/dsk/c0t2d0
lvextend -L 1200 /dev/vgbroot/busr
mkdir /broot/busr
newfs /dev/vgbroot/rbusr
mount /dev/vgbroot/busr /broot/busr
grep -q "/dev/vgbroot/busr /broot/busr vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/busr /broot/busr vxfs delaylog 0 2" >> /etc/fstab
fi

umount /broot/busr
lvcreate -s y -C y -n bvar vgbroot
lvextend -L 1 /dev/vgbroot/bvar /dev/dsk/c0t2d0
lvextend -L 1600 /dev/vgbroot/bvar
mkdir /broot/bvar
newfs /dev/vgbroot/rbvar
mount /dev/vgbroot/bvar /broot/bvar
grep -q "/dev/vgbroot/bvar /broot/bvar vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bvar /broot/bvar vxfs delaylog 0 2" >> /etc/fstab
fi

umount /broot/bvar
lvcreate -s y -C y -n bopenv vgbroot
lvextend -L 1 /dev/vgbroot/bopenv /dev/dsk/c0t2d0
lvextend -L 2000 /dev/vgbroot/bopenv
mkdir /broot/bopenv
newfs /dev/vgbroot/rbopenv
mount /dev/vgbroot/bopenv /broot/bopenv
grep -q "/dev/vgbroot/bopenv /broot/bopenv vxfs delaylog 0 2" /etc/fstab
if (( $? != 0 ))
then
print "/dev/vgbroot/bopenv /broot/bopenv vxfs delaylog 0 2" >> /etc/fstab
fi

umount /broot/bopenv
# The following sequence of coding was modified by Peter Gunawan
# on 5/19/2001
lvlnboot -b /dev/vgbroot/bstand
lvlnboot -r /dev/vgbroot/broot
lvlnboot -s /dev/vgbroot/bswap
lvlnboot -v /dev/vgbroot

vgcfgbackup vgbroot
cp /etc/fstab /etc/fstab.19042002
grep -v ^/dev/vgbroot /etc/fstab >/tmp/fstab
cp /tmp/fstab /etc/fstab
echo "-------- dd copy completed - psg"