claimed on ioscan
fuser -c shows clean
drd is insists the disk is busy
DRD crashed causing the issue.
Don’t want to reboot that is an admission of defeat.
ERROR: Analysis of file system creation fails.
– Analysis of target fails.
– Analysis of the configuration with disk “/dev/disk/disk143” fails.
– The analysis step for creation of an inactive system image failed.
– The default DRD mount point “/var/opt/drd/mnts/sysimage_001/” cannot be used due to the following error(s):
– The mount point /var/opt/drd/mnts/sysimage_001/ is not an empty directory as required.
* Analyzing For System Image Cloning failed with 1 error.
* DRD operation failed, contents of /var/opt/drd/tmp copied to /var/opt/drd/save.
======= 08/13/18 06:39:16 EDT END Clone System Image failed with 1 error. (user=hcladmin) (jobid=ohonq001)
cd /var/opt/drd/mnts/
rm -rf *
scsimgr clear_kmstat -D /dev/rdisk/disk143
scsimgr: Cleared the Kmetric data successfully
DRD nirvana.
If this solution helped you consider making a donation to support the site:
Tags: drd, hpux 11.31, LVM, scsimgr
On LVM 1.0 Volume group, the task is no downtime storage migration. Hitachi to Pure Solid State storage. Mirror/UX required. Disks are almostthe same size: dbrestore:root > diskinfo /dev/rdisk/disk42 SCSI describe of /dev/rdisk/disk42: vendor: HITACHI product id: OPEN-V type: direct access size: 16777216 Kbytes bytes per sector: 512 dbrestore:root > diskinfo /dev/rdisk/disk52 SCSI describe of /dev/rdisk/disk52: vendor: PURE product id: FlashArray type: direct access size: 10485760 Kbytes bytes per sector: 512 pvcreate /dev/rdisk/disk52 vgextend /dev/vgtest /dev/disk/disk52 Before state: dbrestore:root > vgdisplay -v vgtest --- Volume groups --- VG Name /dev/vgtest VG Write Access read/write VG Status available Max LV 255 Cur LV 1 Open LV 1 Max PV 16 Cur PV 2 Act PV 2 Max PE per PV 4095 VGDA 4 PE Size (Mbytes) 4 Total PE 6654 Alloc PE 1024 Free PE 5630 Total PVG 0 Total Spare PVs 0 Total Spare PVs in use 0 VG Version 1.0 VG Max Size 262080m VG Max Extents 65520 --- Logical volumes --- LV Name /dev/vgtest/lvtest LV Status available/syncd LV Size (Mbytes) 4096 Current LE 1024 Allocated PE 1024 Used PV 1 --- Physical volumes --- PV Name /dev/disk/disk42 PV Status available Total PE 4095 Free PE 4095 Autoswitch On Proactive Polling On PV Name /dev/disk/disk52 PV Status available Total PE 2559 Free PE 1535 Autoswitch On Proactive Polling On dbrestore:root > ioscan -NfnCdisk /dev/disk/disk42 Class I H/W Path Driver S/W State H/W Type Description =================================================================== disk 42 64000/0xfa00/0x21 esdisk CLAIMED DEVICE HITACHI OPEN-V /dev/disk/disk42 /dev/rdisk/disk42 dbrestore:root > ioscan -NfnCdisk /dev/disk/disk52 Class I H/W Path Driver S/W State H/W Type Description =================================================================== disk 52 64000/0xfa00/0x35 esdisk CLAIMED DEVICE PURE FlashArray /dev/disk/disk52 /dev/rdisk/disk52 dbrestore:root > bdf | grep test /dev/vgtest/lvtest 4194304 19544 3913845 0% /test dbrestore:root > lvdisplay -v /dev/vgtest/lvtest --- Logical volumes --- LV Name /dev/vgtest/lvtest VG Name /dev/vgtest LV Permission read/write LV Status available/syncd Mirror copies 0 Consistency Recovery MWC Schedule parallel LV Size (Mbytes) 4096 Current LE 1024 Allocated PE 1024 Stripes 0 Stripe Size (Kbytes) 0 Bad block on Allocation strict IO Timeout (Seconds) default --- Distribution of logical volume --- PV Name LE on PV PE on PV /dev/disk/disk42 1024 1024 --- Logical extents --- LE PV1 PE1 Status 1 00000 /dev/disk/disk42 00000 current 00001 /dev/disk/disk42 00001 current 00002 /dev/disk/disk42 00002 current ... 01022 /dev/disk/disk42 01022 current 01023 /dev/disk/disk42 01023 current dbrestore:root > lvextend -m 1 /dev/vgtest/lvtest /dev/disk/disk52 The newly allocated mirrors are now being synchronized.This operation will take some time. Please wait .... Logical volume "/dev/vgtest/lvtest" has been successfully extended. Volume Group configuration for /dev/vgtest has been saved in /etc/lvmconf/vgtest.conf dbrestore:root > lvdisplay -v /dev/vgtest/lvtest --- Logical volumes --- LV Name /dev/vgtest/lvtest VG Name /dev/vgtest LV Permission read/write LV Status available/syncd Mirror copies 1 Consistency Recovery MWC Schedule parallel LV Size (Mbytes) 4096 Current LE 1024 Allocated PE 2048 Stripes 0 Stripe Size (Kbytes) 0 Bad block on Allocation strict IO Timeout (Seconds) default --- Distribution of logical volume --- PV Name LE on PV PE on PV /dev/disk/disk42 1024 1024 /dev/disk/disk52 1024 1024 --- Logical extents --- LE PV1 PE1 Status 1 PV2 PE2 Status 2 00000 /dev/disk/disk42 00000 current /dev/disk/disk52 00000 current 00001 /dev/disk/disk42 00001 current /dev/disk/disk52 00001 current 00002 /dev/disk/disk42 00002 current /dev/disk/disk52 00002 current ... 01023 /dev/disk/disk42 01023 current /dev/disk/disk52 01023 current dbrestore:root > bdf | grep test /dev/vgtest/lvtest 4194304 19544 3913845 0% /test dbrestore:root > lvreduce -m 0 /dev/vgtest/lvtest /dev/disk/disk42 Logical volume "/dev/vgtest/lvtest" has been successfully reduced. Volume Group configuration for /dev/vgtest has been saved in /etc/lvmconf/vgtest.conf dbrestore:root > bdf | grep test /dev/vgtest/lvtest 4194304 19544 3913845 0% /test dbrestore:root > lvdisplay -v /dev/vgtest/lvtest --- Logical volumes --- LV Name /dev/vgtest/lvtest VG Name /dev/vgtest LV Permission read/write LV Status available/syncd Mirror copies 0 Consistency Recovery MWC Schedule parallel LV Size (Mbytes) 4096 Current LE 1024 Allocated PE 1024 Stripes 0 Stripe Size (Kbytes) 0 Bad block on Allocation strict IO Timeout (Seconds) default --- Distribution of logical volume --- PV Name LE on PV PE on PV /dev/disk/disk52 1024 1024 --- Logical extents --- LE PV1 PE1 Status 1 00000 /dev/disk/disk52 00000 current 00001 /dev/disk/disk52 00001 current ... 01023 /dev/disk/disk52 01023 current dbrestore:root > bdf | grep test /dev/vgtest/lvtest 4194304 19544 3913845 0% /test dbrestore:root >
Thanks to Veerappan Dhandapani of HCL Technologies for bringing me this problem
You have 50 GB free in the volume group.
You try to extend the logical volume and you cant.
Basics:
1) bdf is the tool for measuring filesystem size not logical volume size
2)lvdisplay is the tool for measuring logical volume size.
Steps:
1) Extend the logical volume. That is why the previous two number points are important. In process after extending the logical volume size the lv size and file system size are not equal
2) Extend the file system.
root@mybox# vgdisplay -v vgdata | grep -i “Free PE”
Free PE 1784
Free PE 511
Free PE 0
Free PE 0
Free PE 0
Free PE 0
Free PE 1273
Free PE 0
root@mybox# lvdisplay /dev/vgdata/lv_prod_datastaging
— Logical volumes —
LV Name /dev/vgdata/lv_prod_datastaging
VG Name /dev/vgdata
LV Permission read/write
LV Status available/syncd
Mirror copies 0
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 245760
Current LE 7680
Allocated PE 7680
Stripes 0
Stripe Size (Kbytes) 0
Bad block on
Allocation PVG-strict
IO Timeout (Seconds) default
root@mybox# lvextend -L 278528 /dev/vgdata/lv_prod_datastaging
lvextend: Not enough free physical extents available.
The problem here is the allocation policy.
lvchange -C n -s n /dev/vgdata/lv_prod_datastaging
See the man page for details. -C is for contiguous -s is for strict allocation.
We changed both to n(o).
Off camera we extended the logcal volume
lvdisplay /dev/vgdata/lv_prod_datastaging
— Logical volumes —
LV Name /dev/vgdata/lv_prod_datastaging
VG Name /dev/vgdata
LV Permission read/write
LV Status available/syncd
Mirror copies 0
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 302848
Current LE 9464
Allocated PE 9464
Stripes 0
Stripe Size (Kbytes) 0
Bad block on
Allocation non-strict
IO Timeout (Seconds) default
We get the size from the logical volume size to feed into the Online JFS extend command so we do not have to do math.
fsadm -F vxfs -b 302848m /prod/datastaging
bdfmegs is Bill Hassell’s new and improved bdf
/var/adm/bin/bdfmegs /prod/datastaging
File-System Mbytes Used Avail %Used Mounted on
/dev/vgdata/lv_prod_datastaging 310.1g 215.7g 94.0g 70% /prod/datastaging
Tags: bdf, fsadm, logical volume manager, lvchange, LVM, no math fsadm, onlin JFS, strict allocation change
I recently encountered a volume group that was part legacy devices, part dsf agile.
root@protterdbsvr1:/root/shuffle> vgdisplay -v vgprotter
--- Volume groups ---
VG Name /dev/vgprotter
VG Write Access read/write
VG Status available
Max LV 2047
Cur LV 15
Open LV 15
Cur Snapshot LV 0
Max PV 2048
Cur PV 11
Act PV 11
Max PE per PV 65536
VGDA 22
PE Size (Mbytes) 16
Unshare unit size (Kbytes) 1024
Total PE 48004
Alloc PE 46765
Current pre-allocated PE 0
Free PE 1239
Total PVG 0
Total Spare PVs 0
Total Spare PVs in use 0
VG Version 2.2
VG Max Size 1t
VG Max Extents 65536
Cur Snapshot Capacity 0p
Max Snapshot Capacity 1t
--- Logical volumes ---
LV Name /dev/vgprotter/sqlbin
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqladmin
LV Status available/syncd
LV Size (Mbytes) 4000
Current LE 250
Allocated PE 250
Used PV 1
LV Name /dev/vgprotter/sqlctrl1
LV Status available/syncd
LV Size (Mbytes) 512
Current LE 32
Allocated PE 32
Used PV 1
LV Name /dev/vgprotter/sqlctrl2
LV Status available/syncd
LV Size (Mbytes) 512
Current LE 32
Allocated PE 32
Used PV 1
LV Name /dev/vgprotter/sqldata1
LV Status available/syncd
LV Size (Mbytes) 550000
Current LE 34375
Allocated PE 34375
Used PV 10
LV Name /dev/vgprotter/sqldiag
LV Status available/syncd
LV Size (Mbytes) 4000
Current LE 250
Allocated PE 250
Used PV 1
LV Name /dev/vgprotter/sqlexport
LV Status available/syncd
LV Size (Mbytes) 70000
Current LE 4375
Allocated PE 4375
Used PV 5
LV Name /dev/vgprotter/sqlindex1
LV Status available/syncd
LV Size (Mbytes) 30000
Current LE 1875
Allocated PE 1875
Used PV 1
LV Name /dev/vgprotter/sqlredo1
LV Status available/syncd
LV Size (Mbytes) 10000
Current LE 625
Allocated PE 625
Used PV 1
LV Name /dev/vgprotter/sqlredo2
LV Status available/syncd
LV Size (Mbytes) 10000
Current LE 625
Allocated PE 625
Used PV 1
LV Name /dev/vgprotter/sqlsystem
LV Status available/syncd
LV Size (Mbytes) 7200
Current LE 450
Allocated PE 450
Used PV 1
LV Name /dev/vgprotter/sqltemp
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqltools
LV Status available/syncd
LV Size (Mbytes) 1008
Current LE 63
Allocated PE 63
Used PV 1
LV Name /dev/vgprotter/sqlundo
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqlusers
LV Status available/syncd
LV Size (Mbytes) 1008
Current LE 63
Allocated PE 63
Used PV 1
--- Physical volumes ---
PV Name /dev/dsk/c3t1d6
PV Name /dev/dsk/c5t1d6 Alternate Link
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/dsk/c3t1d7
PV Name /dev/dsk/c5t1d7 Alternate Link
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/dsk/c3t2d0
PV Name /dev/dsk/c5t2d0 Alternate Link
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/dsk/c3t2d1
PV Name /dev/dsk/c5t2d1 Alternate Link
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/dsk/c3t2d2
PV Name /dev/dsk/c5t2d2 Alternate Link
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk220
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk221
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk222
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk223
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk224
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk225
PV Status available
Total PE 4364
Free PE 1239
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On The issue is that two different technologies, alternate link and native multipathing are in use in the same volume group. The volume group was working but might have maintenance issues down the road. Plus I personally found it darn confusing. PV Name /dev/dsk/c3t2d2
PV Name /dev/dsk/c5t2d2 Alternate Link
The fix:
vgextend vgprotter /dev/disk/disk53
echo $?
0
vgreduce vgprotter /dev/dsk/c3t2d2
echo $?
0
vgreduce vgprotter /dev/dsk/c5t2d2
echo $?
0
We check the return code to make sure the operation was a success. Repeat for each legacy device.
No downtime though for prodcution systems I recommend working with a change request under your organizations policy.
What id looks like after we are done:
root@
protterdbsvr1:/root> vgdisplay -v vgprotter
--- Volume groups ---
VG Name /dev/vgprotter
VG Write Access read/write
VG Status available
Max LV 2047
Cur LV 15
Open LV 15
Cur Snapshot LV 0
Max PV 2048
Cur PV 11
Act PV 11
Max PE per PV 65536
VGDA 22
PE Size (Mbytes) 16
Unshare unit size (Kbytes) 1024
Total PE 48004
Alloc PE 46765
Current pre-allocated PE 0
Free PE 1239
Total PVG 0
Total Spare PVs 0
Total Spare PVs in use 0
VG Version 2.2
VG Max Size 1t
VG Max Extents 65536
Cur Snapshot Capacity 0p
Max Snapshot Capacity 1t
--- Logical volumes ---
LV Name /dev/vgprotter/sqlbin
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqladmin
LV Status available/syncd
LV Size (Mbytes) 4000
Current LE 250
Allocated PE 250
Used PV 1
LV Name /dev/vgprotter/sqlctrl1
LV Status available/syncd
LV Size (Mbytes) 512
Current LE 32
Allocated PE 32
Used PV 1
LV Name /dev/vgprotter/sqlctrl2
LV Status available/syncd
LV Size (Mbytes) 512
Current LE 32
Allocated PE 32
Used PV 1
LV Name /dev/vgprotter/sqldata1
LV Status available/syncd
LV Size (Mbytes) 550000
Current LE 34375
Allocated PE 34375
Used PV 10
LV Name /dev/vgprotter/sqldiag
LV Status available/syncd
LV Size (Mbytes) 4000
Current LE 250
Allocated PE 250
Used PV 1
LV Name /dev/vgprotter/sqlexport
LV Status available/syncd
LV Size (Mbytes) 70000
Current LE 4375
Allocated PE 4375
Used PV 5
LV Name /dev/vgprotter/sqlindex1
LV Status available/syncd
LV Size (Mbytes) 30000
Current LE 1875
Allocated PE 1875
Used PV 1
LV Name /dev/vgprotter/sqlredo1
LV Status available/syncd
LV Size (Mbytes) 10000
Current LE 625
Allocated PE 625
Used PV 1
LV Name /dev/vgprotter/sqlredo2
LV Status available/syncd
LV Size (Mbytes) 10000
Current LE 625
Allocated PE 625
Used PV 1
LV Name /dev/vgprotter/sqlsystem
LV Status available/syncd
LV Size (Mbytes) 7200
Current LE 450
Allocated PE 450
Used PV 1
LV Name /dev/vgprotter/sqltemp
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqltools
LV Status available/syncd
LV Size (Mbytes) 1008
Current LE 63
Allocated PE 63
Used PV 1
LV Name /dev/vgprotter/sqlundo
LV Status available/syncd
LV Size (Mbytes) 20000
Current LE 1250
Allocated PE 1250
Used PV 1
LV Name /dev/vgprotter/sqlusers
LV Status available/syncd
LV Size (Mbytes) 1008
Current LE 63
Allocated PE 63
Used PV 1
--- Physical volumes ---
PV Name /dev/disk/disk220
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk221
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk222
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk223
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk224
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk225
PV Status available
Total PE 4364
Free PE 1239
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk57
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk56
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk55
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk54
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
PV Name /dev/disk/disk53
PV Status available
Total PE 4364
Free PE 0
Current pre-allocated PE 0
Autoswitch On
Proactive Polling On
Tags: agile dsr, how to fix mixed agile/legacy volume group with no dowtime, hpux, legacy device, LVM, volume group
Create a partition description file
(Need to update the EFI and HPSP size below according to the other root disk partition’s size)
This examples is where the new disk is disk85. Applies only to HP-UX 11.31 with VxVM as boot drive manager.
# vi /tmp/efipart
3
EFI 500MB
HPUX 100%
HPSP 400MB
Use the idisk(1M) command to partition the disk according to this file
# idisk -wf /tmp/efipart /dev/rdisk/disk85
Write EFI info to the EFI partition on the disk
# mkboot -e -l /dev/rdisk/disk85
Confirm the AUTO file entry is intact It should be “boot vmunix”
# efi_cp -d /dev/rdisk/disk85_p1 -u /EFI/HPUX/AUTO /tmp/efi; cat /tmp/efi
If found any difference, edit /tmp/efi file as below to update the entry “boot vmunix”
#echo “boot vmunix ” > /tmp/efi
Update auto file
#efi_cp -d /dev/rdisk/disk85_p1 /tmp/efi /EFI/HPUX/AUTO
Confirm the AUTO file entry again, It should be “boot vmunix”
# efi_cp -d /dev/rdisk/disk85_p1 -u /EFI/HPUX/AUTO /tmp/efi; cat /tmp/efi
Initialize the disk as VXVM boot disk
#### vxdisksetup -iB disk85_p2 ((lives in etc vx bin slashes removed due to Word Press error))
Add the disk to the existing rootdg
# vxdg -g rootdg adddisk rootdisk02=disk85_p2
Write Volume Manager volume information to the LABEL file:
# /opt/VRTS/bin/vxbootsetup rootdisk02
Display the LIF and Volume Manager label information:
# vxvmboot -v /dev/rdisk/disk85
Check the Mirror status ( Each volume should be with two plex )
$ vxprint –htg rootdg |egrep –i “^v|^pl”
Tags: Capacity Planning, high capacity volume group, HP-UX, LVM, software mirror
This errror is created by Ignite replication of an hpvm system. The following checks device integrity and cleans up errors created by Ignite replication.
hpvmcreate: ERROR (jdeautp1): Incorrect backing device type.
First check for errors with this script (I may check this in at some point)
#!/usr/bin/sh
#
# Unofficial quick and dirty passthru DSF check script
#
# It walks all /dev/pt/* files and tries to find corresponding /dev/rdisk
# or /dev/rtape files. If they are foudn their minor numbers are compared.
#
# @(#) pt_check.sh v1.1 – stanm@wtec
#
for i in $(ls /dev/pt/*)
do
# ll $i
shortname=${i##*_}
printf “checking $shortname”
minor1=$(ll $i|awk ‘{print $6}’)
# echo minor1=$minor ($i)
if [ -c /dev/rdisk/$shortname ]; then
minor2=$(ll /dev/rdisk/$shortname|awk ‘{print $6}’)
# echo minor2=$minor2 ($/dev/rdisk/$shortname)
if [[ “x$minor1” = “x$minor2″ ]]; then
printf ” – OK\n”
else
printf ” – Minor numbers are probably incorrect\n”
printf “minor1=$minor1 ($i) vs ”
printf “minor2=$minor2 (/dev/rdisk/$shortname)\n”
fi
else
# could be tape
if [ -c /dev/rtape/${shortname}_BEST ]; then
minor2=$(ll /dev/rtape/${shortname}_BEST|awk ‘{print $6}’)
if [[ “x$minor1” = “x$minor2″ ]]; then
printf ” – OK\n”
else
printf ” – Minor numbers are probably incorrect\n”
printf “minor1=$minor1 ($i) vs ”
printf “minor2=$minor2 (/dev/rtape/${shortname}_BEST)\n”
fi
else
printf ” – /dev/rdisk/$shortname or /dev/rtape/${shortname}_BEST not found – check skipped\n”
fi
fi
done
Output indicating problems:
checking disk11 – Minor numbers are probably incorrect
minor1=0x000005 (/dev/pt/pt_disk11) vs minor2=0x000008 (/dev/rdisk/disk11)
checking disk12 – Minor numbers are probably incorrect
minor1=0x000006 (/dev/pt/pt_disk12) vs minor2=0x000009 (/dev/rdisk/disk12)
checking disk13 – Minor numbers are probably incorrect
minor1=0x000007 (/dev/pt/pt_disk13) vs minor2=0x00000a (/dev/rdisk/disk13)
checking disk14 – Minor numbers are probably incorrect
minor1=0x000008 (/dev/pt/pt_disk14) vs minor2=0x00000b (/dev/rdisk/disk14)
checking disk15 – Minor numbers are probably incorrect
minor1=0x000009 (/dev/pt/pt_disk15) vs minor2=0x00000c (/dev/rdisk/disk15)
checking disk17 – OK
checking disk18 – /dev/rdisk/disk18 or /dev/rtape/disk18_BEST not found – check skipped
checking disk19 – Minor numbers are probably incorrect
minor1=0x000017 (/dev/pt/pt_disk19) vs minor2=0x000013 (/dev/rdisk/disk19)
checking disk2 – OK
checking disk22 – Minor numbers are probably incorrect
minor1=0x000018 (/dev/pt/pt_disk22) vs minor2=0x000014 (/dev/rdisk/disk22)
checking disk23 – Minor numbers are probably incorrect
minor1=0x000019 (/dev/pt/pt_disk23) vs minor2=0x000015 (/dev/rdisk/disk23)
checking disk3 – OK
checking disk5 – OK
checking disk8 – /dev/rdisk/disk8 or /dev/rtape/disk8_BEST not found – check skipped
checking disk9 – /dev/rdisk/disk9 or /dev/rtape/disk9_BEST not found – check skipped
Correction procedure:
cd /var/opt/hpvm/common/
rm -f hpvm_devinit
cd /dev/pt
ls
rm -f *
hpvmdevmgmt -I
Consider this a necessary procedure to clean up after ignite replication
Tags: forums.itrc.hp.com, high capacity volume group, HP-UX, hpux, hpvm, ia64, Ignite-UX, LVM
This tool is called syslayout.sh
It works on superdome and rp8420 systems. It requires the EMC utility inq be installed on the system or it simply will not work.
You can provide new translation tables for i/o layout and get it to work on other platforms. It might work on the host for a blade system. It will not under any circumstances work on an hpvm guest.
Translation tables:
super.translate.dat
—data—
sprotte@mngp01:/home/sprotte $ cat super.translate.dat
11:8:SD64B
10:9:SD64B
9:10:SD64B
8:12:SD64B
7:13:SD64B
6:14:SD64B
5:6:SD64B
4:5:SD64B
3:4:SD64B
2:2:SD64B
1:1:SD64B
0:0:SD64B
1:8:rp8420
2:10:rp8420
3:12:rp8420
4:14:rp8420
5:6:rp8420
6:4:rp8420
7:2:rp8420
8:1:rp8420
—end data—-
router.macadd.dat
This file is specific to your vlan and router configuration. It uses linkloop to confirm network connectivity. This portion of the final script can be commented out. the data below is altered due to corporate security concerns.
—data—
sprotte@mngp01:/home/sprotte $ cat router.macadd.dat
192.168.128.1:0x00000c07ac0a:vlan4:HP-UX Production
192.165.138.1:0x00000c07ac8a:vlan118: Peoplesoft
192.170.12.1:0X001ae24a1d00:vlan30: Replica Network
—end data—
The script:
—begin script—
DF=”super.translate.dat”
MA=”router.macadd.dat”
typeset MYDIR=/var/tmp/syslayout
typeset MYPAGE=mypage
typeset MYDATA=mydata
typeset IDX_HTML=syslayout.html
writehtml (){
while [ $# -gt 0 ]
do
echo “<td>${1}</td>” >> ${IDX_HTML}
shift
done
echo “<tr>” >> ${IDX_HTML}
}
cat -<<!EOF > ${IDX_HTML}
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<title>Dana IT Unix System documentation</title>
<BODY>
<TABLE style=”WIDTH: 100%; COLOR: rgb(0,0,0); TEXT-ALIGN: left” cellSpacing=2
cellPadding=2 border=0>
<TBODY>
<TR>
<td width=”200″><img
style=”border-width: 0px; margin: 0px; padding: 0px;” alt=”Dana”
src=”dana_logo.jpg”> </td>
<td style=”font-weight: bold;”><big><big>Dana
IT
Unix:
Documentation</big></big></td>
<TD style=”VERTICAL-ALIGN: top; TEXT-ALIGN: center” colSpan=7><BIG
style=”FONT-FAMILY: helvetica,arial,sans-serif”><BIG>Dana IT system I/O Layout.</BIG></BIG><BR></TD></TR>
!EOF
# colum layout # Path slot MAC Address lan ipaddress vlan linkstatus
sysname=$(uname -n)
this_cell=$(vparstatus -p $sysname -v |awk ‘/Boot processor/ {print $4}’ |awk -F’\.’ ‘{print $1}’)
# echo $this_cell
this_par=$(parstatus -c 0 |awk ‘/cell’$this_cell’/ {print $9}’)
nparname=$(/usr/sbin/parstatus -P |awk “/^$this_par/ {if(pname == 1) {print}};/Partition Name/ {pname=1}”|awk ‘/’$this_par’ / {print $6}’)
#echo “Diag nparname: ${nparname}”
complexname=$(/usr/sbin/parstatus -X |awk “/Complex Name/”)
cellind=”cell${this_par}”
nparinfo=$(/usr/sbin/parstatus -P |awk “/^$this_par/ {if(pname == 1) {print}};/Partition Name/ {pname=1}”)
# model needs to be determineed
OS=$(uname -r)
if [ “$OS” = “B.11.31” ]
then
mod=$(model | awk ‘{ print $5 }’)
else
mod=$(model | awk -F/ ‘{ print $3}’)
fi
hn=$(hostname)
this_cell=$(vparstatus -p ${hn} -v |awk ‘/Boot processor/ {print $4}’ |awk -F’\.’ ‘{print $1}’)
echo $this_cell
this_par=$(parstatus -c 0 |awk ‘/cell’$this_cell’/ {print $9}’)
/usr/sbin/parstatus -P |awk “/cell/ {if(pname == 1) {print}};/Partition Name/ {pname=1}”|awk ‘/’$this_par’ / {print $6}’
hn=$(hostname)
lhn=”${hn}.dana.com”
echo “Host name: ${lhn}”
writehtml “Host name:” ${lhn}
echo “Model number is: $mod”
writehtml “Model number:” ${mod}
#echo “<td>$complexname</td><td>$nparname</td><tr>” >> ${IDX_HTML}
writehtml “${complexname}” ${nparname}
echo “Model number is: $mod”
pbootpath=$(parstatus -p 0 -V |awk -F: ‘/Primary Boot Path/ {print $2}’)
echo “Primary boot path: ${pbootpath}”
writehtml “Primary boot path:” ${pbootpath}
#echo “<td>$complexname</td><td>$nparnam</td><tr>” >> ${IDX_HTML}
# echo “<td>Path</td><td>slot</td><td>MAC Address</td><td>lan</td><td>IP Address</td><td>vlan</td><td>Link Status</td><tr>” >> ${IDX_HTML}
writehtml Path slot MAC_Address lan IP_Address vlan Link_Status
#echo “$nparinfo”
# echo “Path slot MAC lan check ip”
# 2/0/5/1/0/6/1 4 0x002264E4948B lan1 10.8.128.162
echo “Path slot MAC Address lan ipaddress vlan linkstatus”
/usr/sbin/ioscan -fnk | awk ‘/^lan/ {print $3}’ |while read -r path
do
ip=””;
echo $path | sed ‘s/\// /g’ | read p1 p2 p3 p4 p5 p6 p7
macaddy=$(lanscan | awk ‘{if($1 == “‘${path}'”) print $2}’)
lanid=$(lanscan | awk ‘{if($1 == “‘${path}'”) print $5}’)
plan=$(lanscan | awk ‘{if($1 == “‘${path}'”) print $3}’)
lchk=$(/usr/sbin/linkloop -i $plan $macaddy 2>/dev/null | grep “OK”)
# If linkloop produces postive results then see if there is an ip address
ip=”IP not set”
if [ -n “$lchk” ]
then
# echo “lchk not null. running ifconfig command”
ip=$(/usr/sbin/ifconfig $lanid | grep netmask | awk ‘{print $2}’)
fi
# roll through the router table and see if you can establish
# linkloop with the gateway
DRMAC=”No link..”
DVLAN=”Not found”
#while [[ “$value” != “val1” || “$value” != “val2” || “$value” != “val3” ]]
while read -r DL
do
rmacaddy=$(echo $DL | awk -F: ‘{print $2}’)
rvlan=$(echo $DL | awk -F: ‘{print $3}’)
rlchk=$(/usr/sbin/linkloop -i $plan $rmacaddy 2>/dev/null | grep “OK”)
if [ -n “$rlchk” ]
then
# echo “rlchk not null. setting vlan information.”
DRMAC=${rmacaddy}
DVLAN=${rvlan}
break;
fi
done < $MA
# echo “${path} ${p7} ${macaddy} ${lanid} ${lchk} ${ip} ”
#p1=$(echo $path | awk -F/ ‘{print $1}’);
#p2=$(echo $path | awk -F/ ‘{print $2}’);
#p3=$(echo $path | awk -F/ ‘{print $3}’);
#p4=$(echo $path | awk -F/ ‘{print $4}’);
#p5=$(echo $path | awk -F/ ‘{print $5}’);
#p6=$(echo $path | awk -F/ ‘{print $6}’);
#p7=$(echo $path | awk -F/ ‘{print $7}’);
portpath=$(echo $path | awk -F/ ‘{print $3}’)
actualport=$(awk -F: ‘{if($2 == “‘${portpath}'” && $3 == “‘$mod'”) print $1}’ ${DF})
# echo “Actual path: ${p1} ${p2} ${p3} ${p4} ${p5} ${p6} ${p7} ${actualport} ${ip} ${macaddy} ${lanid} ${ip}”
echo “${path} ${actualport} ${macaddy} ${lanid} ${ip} ${DVLAN} ${DRMAC}”
# echo “<td>${path}</td><td>${actualport}</td><td>${macaddy}</td><td>${lanid}</td><td>${ip}</td><td>${DVLAN}</td><td>${DRMAC}</td><tr>” >> ${IDX_HTML}
writehtml ${path} ${actualport} ${macaddy} ${lanid} ${ip} ${DVLAN} ${DRMAC}
done
echo “Fiber Channel….”
# echo “<td>Fiber Channel….</td><tr>” >> ${IDX_HTML}
writehtml “Fiber Channel”
echo “PATH slot Device… Status spd Hardware address”
# echo “<td>PATH</td><td>slot</td><td>Device</td><td>Status</td><td>speed</td><td>Hardware address</td><tr>” >> ${IDX_HTML}
writehtml PATH slot Device Status speed Hardware address
#/usr/sbin/ioscan -fnCfc | grep fcd | awk ‘{print $3}’ |while read -r path
/usr/sbin/ioscan -fnk | awk ‘/^fc / {hw=$3;getline;print hw,$1}’ |while read -r hw devfile
do
# echo “diag ${hw} dev file … ${devfile}”
port=$(echo $hw | awk -F/ ‘{print $3}’)
OSTAT=$(fcmsutil $devfile | awk ‘/ONLINE/ {print $4}’)
LSPD=$(fcmsutil $devfile | awk ‘/Link Speed/ {print $4}’)
WWN=$(fcmsutil $devfile | awk ‘/N_Port Port World Wide Name/ {print $7}’)
# OSTAT=$(fcmsutil /dev/fcd1 | awk ‘/ONLINE/ {print $4}’)
# LSPD=$(fcmsutil /dev/fcd1 | awk ‘/Link Speed/ {print $4}’)
# WWN=$(fcmsutil /dev/fcd1 | awk ‘/N_Port Port World Wide Name/ {print $7}’)
actualport=$(awk -F: ‘{if($2 == “‘${port}'” && $3 == “‘$mod'”) print $1}’ ${DF})
echo “$hw ${actualport} $devfile ${OSTAT} ${LSPD} ${WWN}”
#echo “<td>$hw</td><td>${actualport}</td> <td>$devfile</td><td>${OSTAT}</td><td>${LSPD}</td> <td>${WWN}</td><tr>” >> ${IDX_HTML}
writehtml ${hw} ${actualport} ${devfile} ${OSTAT} ${LSPD} ${WWN}
done
#awk -F: ‘{printf(“%8s %5s %4s\n”,$1,$3,$4)}’ steve
#2/0/5/1/0/6/0
#2/0/5/1/0/6/1
cat -<< !EOF >> ${IDX_HTML}
<TR></TR></TBODY></TABLE></BODY></HTML>
!EOF
chmod a+r ${IDX_HTML}
# Added to copy the data file to my home directory for diagnosis.
cp syslayout.html /home/sprotte
chmod a+r /home/sprotte/syslayout.html
—end script—
Your mileage may vary. You will have to customize this script.
There is html based output.
Tags: Capacity Planning, Ignite, LVM, superdome
This was written by a former colleague. It is better than anything else I have seen. SEP
Mirroring a Boot Disk with LVM on HP-UX 11i for HP Integrity
Servers
The following diagram shows the disk layout of a boot disk. The disk
contains a Master Boot Record (MBR) and Extensible Firmware
Interface (EFI) partition tables that point to each of the partitions. The
idisk
command is used to create the partitions (see idisk (1M)).
Figure 6-5 Example LVM Disk Layout on HP Integrity Server
Before starting the procedure, make sure that add-on product HP
MirrorDisk/UX (B5403BA) is installed. This product is an extra-cost
product available on the HP-UX 11i application release media. For
example:
swlist -l fileset | grep -i mirror
LVM.LVM-MIRROR-RUN B.11.22 LVM Mirror
Step 1.
file.
Partition the disk using the idisk command and a partition description
a.
Create a partition description file. For example:
vi /tmp/idf
In this example the partition description file contains:
3
EFI 500MB
HPUX 100%
HPSP 400MB
NOTE
an EFI partition, an HP-UX partition, and an HP Service partition.
Boot disks of earlier HP Integrity Servers may have an EFI partition
of only 100MB and may not contain the HPSP partition.
The values in the example represent a boot disk with three partitions:
b.
Partition the disk using idisk and your partition description file:
idisk -f /tmp/idf -w /dev/rdsk/c3t1d0
c.
To verify you can run:
idisk /dev/rdsk/c3t1d0
Step 2.
the partitions. For example:
Use the insf command with the -e option to create the device files for all
insf -e -H 0/18/1/2/0.0.1.0
You should now have eight device files for this disk:
/dev/[r]dsk/c?t?d?
(This refers to the entire disk)
/dev/[r]dsk/c?t?d?s1
(This refers to the EFI partition)
/dev/[r]dsk/c?t?d?s2
(This will be the HP-UX partition)
/dev/[r]dsk/c?t?d?s3
(This refers to the Service partition)
Step 3.
disk:
Use pvcreate to make the HP-UX partition of the disk an LVMmanaged
pvcreate -B /dev/rdsk/c3t1d0s2
Step 4.
Add the disk to vg00:
vgextend vg00 /dev/dsk/c3t1d0s2
Step 5.
Place the boot files on the disk using mkboot:
mkboot -e -l /dev/rdsk/c3t1d0
Step 6.
Copy any autoboot file from the original boot disk to this one.
a.
partition to the current directory. Make sure to use the device file
with the
Use efi_cp to copy the AUTO file from the original boot disk’s EFIs1 suffix, as it refers to the EFI partition:
efi_cp -d /dev/rdsk/cntndns1 -u /efi/hpux/auto ./AUTO
b.
partition:
Copy the file from the current directory into the new disk’s EFI
efi_cp -d /dev/rdsk/c3t1d0s1 ./AUTO /efi/hpux/auto
Step 7.
volume group onto the desired physical volume. The logical volumes
must be extended in the same order that they are configured on the
original boot disk. Use the
determine the list of logical volumes and their order. For example:
Use the lvextend command to mirror each logical volume in the rootpvdisplay command with the -v option to
pvdisplay -v /dev/dsk/c0t0d0s2 | grep ’current.*0000$’
00000 current /dev/vg00/lvol1 00000
00038 current /dev/vg00/lvol2 00000
00550 current /dev/vg00/lvol3 00000
00583 current /dev/vg00/lvol4 00000
00608 current /dev/vg00/lvol5 00000
00611 current /dev/vg00/lvol6 00000
00923 current /dev/vg00/lvol7 00000
01252 current /dev/vg00/lvol8 00000
In this example, mirror the logical volumes as follows:
lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lv0l4 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c3t1d0s2
lvextend -m 1 /dev/vg00/lvol8 /dev/dsk/c3t1d0s2
If
lvextend fails with following message:
“m”: Illegal option
then HP MirrorDisk/UX is not installed.
Step 8.
Update the root volume group information:
lvlnboot -R /dev/vg00
Step 9.
disk and that the boot, root, and swap logical volumes appear to be on
both disks:
Display the BDRA. Verify that the mirrored disk is displayed as a boot
lvlnboot –v
Step 10.
Specify the mirror disk as the alternate boot path in nonvolatile memory:
setboot -a path_to_disk
Step 11.
text editor:
Add a line to /stand/bootconf for the new boot disk using vi or another
vi /stand/bootconf
l /dev/dsk/c3t1d0s2
where
l denotes LVM.
Tags: forums.itrc.hp.com, high capacity volume group, ia64, Ignite-UX, integrity, LVM, software mirror, superdome, system migration
This is our first case study. The events leading up to it occur between 1998 and 2002. It is a real life case study based on my experience. For legal reasons, I can not identify the organization. It is a charity that raises now around $100 million, 92% of funds raised go to actual charitable work. 8% is overhead. IT infrastructure is overhead, even though it is critical to actually raising funds.
From 1991-2005 I worked at this charity in IT, first as a programmer analyst, then as a dba, finally becoming the backup Unix Admin in 1998 and the full time Unix Admin in 2000. The organization ran its legacy fund raising systems on a pair of D class HP-UX systems. The back end database was Software AG adabas. The user fund raising community wanted to have an sql like ability to look into the database and run queries. they wanted flexible use of strategic data. An attempt was made in early 1997 to install a sql front end, but it did not provide acceptable results.
An internal study was done and it was decided in late 1997 to migrate legacy systems to a web based front end, with Oracle as the back end database, Oracle Application Server using forms and reports to build applications. Initially no plan was made to migrate to stronger hardware, due to the assurance from Oracle that their software would run on the existing infrastructure.
By 2000 it was obvious that this was not true. Though the database server itself ran acceptably, there was not sufficient memory or disk capacity to run the application server. So I was asked to prepare a plan to migrate legacy systems. Here were the guidelines:
Overall, I thought this was a solid foundation. Some of the points were made by management, some were suggested by me.
The following basic technical requirements were developed:
Deployment Diagram
Other Relevant facts on the decision making process.
Three vendors were picked to provide proposals. All ended up recommending HP-9000 L2000(later renamed rp5450) servers. Here are the highlights:
How it went:
Note: This document was designed entirely using the wordpress interface and a Linux system. The diagram was created with a free Linux alternative to visio called dia. The tool is in evaluation, and might be replaced. Still a pretty good start. Cost to produce this environment in licensing fees?: Zero dollars.
Tags: Capacity Planning, forums.itrc.hp.com, HP-UX, Ignite, Ignite-UX, LVM, migration, patches, system migration
Quick and Dirty Example here.
In our last example, we created a volume group vg03. It had thee disk, we expanded it to 4 because we planned proper capacity.
Our volume group now consists of 4 disks.
We are asked to create an approximately 10 GB files system in this SAN based volume group.
vgdisplay /dev/vg03
vgdisplay -v /dev/vg03
< Insert vgdisplay example here>
HP vgdisplay documentation link (Note this tends to change. I can’t help it if HP breaks the links)
This will show an empty volume group as we have not created any logical volumes
pvdisplay /dev/dsk/c10d0t1
… repeat for other disks …
<Insert pvdisplay examples here>
Make sure nothing is on them.
Turns out 10 GB will fit quite nicely on a single disk. Since this is a SAN based disk, we need not worry here about raid configuration. If you are hosting an oracle rdbms, you should make sure the SAN admin sets up data, index and rollback as raid 1 or raid 10 to insure good performance.
lvcreate /dev/vg03
# Creates an empty logical volume on vg03. Uses default naming.
You can also do it this way if you like names.
lvcreate /dev/vg03 -n mydata
lvextend -L 10240 /dev/vg03/mydata /dev/dsk/c10t0d1
# This command creates an approximately 1024 MB logical volume and defines the disk it goes on. Always define the disk. Don’t let LVM or SAM decide where your data is going to go. Plan in advance. Note that LVM for Linux which is a feature port and not a binary recompile does let you define size 10 GB or 10240 MB. Still waiting for that feature on LVM for HP-UX.
newfs -F vxfs -o largefiles /dev/vg03/rmydata
# Why largefiles? Databases are big and the default limit on a file size in a file system is 2 GB. That is too small. I almost always set up my file systems these days for largefiles unless the file system itself is less than 2 GB
# Create a mount point.
mkdir /mydata
# mount it.
mount /dev/vg03/mydata /mydata
# This does not set an optimal JFS logging and recovery options, but that is a different article
bdf
# See if its there and the right capacity.
Next article: Edit /etc/fstab and set permanent mount options.
NOTE: This article needs to be checked and have vgdisplay and pvdisplay and other examples inserted into it.
Tags: forums.itrc.hp.com, high capacity volume group, HP-UX, hpux, largefiles, lvcreate, LVM, newfs