Hi zxmaus,
Well, the problematic environement is some old AIX versiond (AIX 5.3) Any newer systems (from AIX6.1 and up) there is the
lsmpio
command, which can be asked to tell if a path is in open or closed state. Older systems do not have this. For MPIO, we used SDDPCM back then, but it did not support XIV storages, thus XIV LUNs needed theyr own driver.
The SDDPCM is able to report open/close states, as in the next example:
# pcmpath query device 15
DEV#: 15 DEVICE NAME: hdisk15 TYPE: 2107900 ALGORITHM: Load Balance
SERIAL: 75AT241003F
===========================================================================
Path# Adapter/Path Name State Mode Select Errors
0 fscsi1/path1 CLOSE NORMAL 141 0
1 fscsi0/path0 CLOSE NORMAL 131 0
# pcmpath query device 44
DEV#: 44 DEVICE NAME: hdisk44 TYPE: 2107900 ALGORITHM: Load Balance
SERIAL: 75AT2410114
===========================================================================
Path# Adapter/Path Name State Mode Select Errors
0 fscsi0/path0 OPEN NORMAL 14375551 0
1 fscsi1/path1 OPEN NORMAL 14377624 0
XIV tools do not provide this info.
xiv_devlist -o device,multipath
only tells if paths are in Available state, or not (defined, missing, failed...) But that info is not enough to tell if the hdisk can be removed or not.
Well, there are hundreds of LUN-s and I would need an automated way to report unused disks.
Now, let's see the above 2 hdisks in your way:
# lqueryvg -At -p hdisk15
0516-304 lqueryvg: Unable to find device id hdisk15 in the Device
Configuration Database.
0516-066 lqueryvg: Physical volume is not a volume group member.
Check the physical volume name specified.
#
# lqueryvg -At -p hdisk44
0516-304 lqueryvg: Unable to find device id hdisk44 in the Device
Configuration Database.
0516-1339 lqueryvg: Physical volume contains some 3rd party volume group.
The latter is reporting that the disk is managed by a 3rd party VG - in this case GPFS. But there is no output if the disk is idle or is actually opened by GPFS daemons.
Let's see the readvgda version:
# readvgda /dev/hdisk15
WARNING, invalid LVM record (no _LVM tag)!
WARNING, invalid PV number (0) in the LVM record!
WARNING, invalid PP size (0) in the LVM record!
*****************************************
LVMREC at block 7
*****************************************
lvmid: 0 (0)
vgid: 00000000000000000000000000000000
lvmarea_len: 0
vgda_len: 0
vgda_psn[0]: 0
vgda_psn[1]: 0
reloc_psn: 0
pv_num: 0
pp_size: 0
vgsa_len: 0
vgsa_psn[0]: 0
vgsa_psn[1]: 0
version: 0
vg_type: 0
ltg_shift: 0(128K)
*=============== 1ST VGDA-VGSA: /dev/hdisk15 ===============*
*****************************************
VGSA at block 0
*****************************************
*****************************************
vgsa beg: timestamp 0 (0), 0 (0)
vgsa beg: timestamp Thu Jan 1 01:00:00 NFT:1970
vgsa.pv_missing: 0
vgsa.factor: 0
vgsa.pad2: 0 0 0
vgsa end: timestamp 0 (0), 0 (0)
vgsa end: timestamp Thu Jan 1 01:00:00 NFT:1970
*****************************************
VGDA at block 0
*****************************************
*****************************************
vgh.vg_id: 00000000000000000000000000000000
vgh.numlvs: 0
vgh.maxlvs: 0
vgh.pp_size: 0
vgh.numpvs: 0
vgh.total_vgdas: 0
vgh.vgda_size: 0
vgh.quorum: 0
vgh.auto_varyon: 0
vgh.check_sum: 0
vgh.snapshotvg: 0
vgh.snapshot_copy: 0
vgh.primary_vgid: 00000000000000000000000000000000
vgh.seconadary_vgid: 00000000000000000000000000000000
vgda hdr: timestamp 0 (0), 0 (0)
vgda hdr: timestamp Thu Jan 1 01:00:00 NFT:1970
vgda size read is from vgh is < 0 assuming vgda_size = SML_VGDA_LEN
*****************************************
vgt.concurrency: 0
vgda trl: timestamp 0 (0), 0 (0)
vgda trl: timestamp Thu Jan 1 01:00:00 NFT:1970
# readvgda /dev/hdisk43
WARNING, invalid PV number (0) in the LVM record!
WARNING, invalid PP size (0) in the LVM record!
*****************************************
LVMREC at block 7
*****************************************
lvmid: 1598838349 (5f4c564d)
vgid: 00007d0100007d0100007d0100007d01
lvmarea_len: 0
vgda_len: 0
vgda_psn[0]: 0
vgda_psn[1]: 0
reloc_psn: 0
pv_num: 0
pp_size: 0
vgsa_len: 0
vgsa_psn[0]: 0
vgsa_psn[1]: 0
version: 32001
vg_type: 0
ltg_shift: 0(128K)
*=============== 1ST VGDA-VGSA: /dev/hdisk43 ===============*
*****************************************
VGSA at block 0
*****************************************
*****************************************
vgsa beg: timestamp 0 (0), 0 (0)
vgsa beg: timestamp Thu Jan 1 01:00:00 NFT:1970
vgsa.pv_missing: 0
vgsa.factor: 0
vgsa.pad2: 0 0 0
vgsa end: timestamp 0 (0), 0 (0)
vgsa end: timestamp Thu Jan 1 01:00:00 NFT:1970
*****************************************
VGDA at block 0
*****************************************
*****************************************
vgh.vg_id: 00000000000000000000000000000000
vgh.numlvs: 0
vgh.maxlvs: 0
vgh.pp_size: 0
vgh.numpvs: 0
vgh.total_vgdas: 0
vgh.vgda_size: 0
vgh.quorum: 0
vgh.auto_varyon: 0
vgh.check_sum: 0
vgh.snapshotvg: 0
vgh.snapshot_copy: 0
vgh.primary_vgid: 00000000000000000000000000000000
vgh.seconadary_vgid: 00000000000000000000000000000000
vgda hdr: timestamp 0 (0), 0 (0)
vgda hdr: timestamp Thu Jan 1 01:00:00 NFT:1970
vgda size read is from vgh is < 0 assuming vgda_size = SML_VGDA_LEN
*****************************************
vgt.concurrency: 0
vgda trl: timestamp 0 (0), 0 (0)
vgda trl: timestamp Thu Jan 1 01:00:00 NFT:1970
It seems thad readvgda just tryed it's best to read what might be a VGDA block on the disks, but there is obviously no relevant info. I can not see relevant difference between the outputs from 'in use' and 'not in use' disks. Am I correct this way?
--Trifo