Skip to contentSkip to conversation

Listing physical volumes in a volume group

linux-lvm Steeve McCauley 3 participants 4 messages Aug 3, 2007 – Aug 7, 2007

lore
Share & tools
lore
#0 lore raw

I would like to know if there is a canonical way to list the physical volumes in a volume group, specifically to extract the uuid for those PVs in a bash script. I am able to do something along the lines of,

PVS=$(vgdisplay -vv 2>&1 | grep "PV UUID" | awk '{print $3}') PVUUID=$(pvs -o pv_uuid --noheadings /dev/sdx | awk '{print $1}')

and then look for PVUUID in the list of PVS.

for uuid in $PVS; do
[ "$uuid" != "$PVUUID" ] && continue
...
done

but this relies on the output format of 'vgdisplay -vv' and I want to be sure that I will always get the expected result.

Thanks,

steeve

Signature · 2 lines
Steeve McCauley
:wq
#1 lore raw

Hi,

this will not help for using in script ?
(comma separated list of PVS & PV UUID in VG)

vgs --separator , --noheadings -o pv_name,pv_uuid <vgname>

Milan
--
[email protected]

Quoted 22 lines · Steeve McCauley

I would like to know if there is a canonical way to list the physical volumes in a volume group, specifically to extract the uuid for those PVs in a bash script. I am able to do something along the lines of,

PVS=$(vgdisplay -vv 2>&1 | grep "PV UUID" | awk '{print $3}') PVUUID=$(pvs -o pv_uuid --noheadings /dev/sdx | awk '{print $1}')

and then look for PVUUID in the list of PVS.

for uuid in $PVS; do
[ "$uuid" != "$PVUUID" ] && continue
...
done

but this relies on the output format of 'vgdisplay -vv' and I want to be sure that I will always get the expected result.

Thanks,

steeve

#2 lore raw

Milan,

Ah, I didn't realise one could use the pv_ column names with the vgs utility.

That's much better.

Thanks,

steeve

Quoted 41 lines · Milan Broz

Hi,

this will not help for using in script ?
(comma separated list of PVS & PV UUID in VG)

vgs --separator , --noheadings -o pv_name,pv_uuid <vgname>

Milan
--
[email protected]

Quoted 15 lines · Steeve McCauley

I would like to know if there is a canonical way to list the physical volumes in a volume group, specifically to extract the uuid for those PVs in a bash script. I am able to do something along the lines of,

PVS=$(vgdisplay -vv 2>&1 | grep "PV UUID" | awk '{print $3}') PVUUID=$(pvs -o pv_uuid --noheadings /dev/sdx | awk '{print $1}')

and then look for PVUUID in the list of PVS.

for uuid in $PVS; do
[ "$uuid" != "$PVUUID" ] && continue
...
done

Quoted 7 lines

but this relies on the output format of 'vgdisplay -vv' and I want to be sure that I will always get the expected result.

Thanks,

steeve

_______________________________________________
linux-lvm mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

Signature · 8 lines
Steeve McCauley
Director of Research and Development
Rackable Systems
407 McGill Street, Suite 1002
Montreal, Quebec, H2Y 2G3 (Canada)
Tel: 514-288-3343
http://www.rackable.com
:wq
#3 lore raw
Quoted 2 lines · Steeve McCauley

Ah, I didn't realise one could use the pv_ column names with the vgs utility.

pvs, vgs, and lvs simply set up different defaults before entering the same reporting engine. One such default is what prefix to add to column names that are supplied without any prefix. If you request -o name, vgs would turn that into 'vg_name' whereas pvs would turn it into 'pv_name', for example.

Use '-o help' (in sufficiently recent versions) to see the list of fields.

Alasdair

Signature · 1 line
[email protected]