Script Name: lvm_deciphering.pl
Since, This is a perl script run as below
perl lvm_deciphering.pl
#!/usr/bin/perl use strict; my (@vgs,$vg,@output,$line,$type,$maxpvs,$maxppsperpv); my ($activepvs,$ppsize,$total,$factor,$maxdisk); @vgs = `lsvg -o | sort`; print " Max Max \n"; print " PP's PP disk \n"; print " Max Used VG per Size size \n"; print "VG Name Type PV's PV's Factor PV (MB) (MB) \n"; print "-----------------------------------------------------------\n"; foreach $vg (@vgs){ chomp($vg); @output = `lsvg $vg`; $ppsize = $maxpvs = $activepvs = $type = $maxppsperpv = ""; foreach $line (@output){ if ($line =~ /PP SIZE:\s+(\d+)\s+mega.*/) {$ppsize = $1;} if ($line =~ /MAX PVs:\s+(\d+).*/) {$maxpvs = $1;} if ($line =~ /ACTIVE PVs:\s+(\d+).*/) {$activepvs = $1;} if ($line =~ /MAX PPs per PV:\s+(\d+).*/) {$maxppsperpv = $1;} } $total=$maxpvs*$maxppsperpv; $maxdisk=$ppsize*$maxppsperpv; if ($maxpvs == 1024) { $type = "scale"; }elsif (($total >= 22352) && ($total <= 32512)){ $type = "orig"; }elsif (($total >= 87376) && ($total <= 130048)){ $type = "big"; }else{ print "error determining VG type\n"; next; } if ($type eq "orig" || $type eq "big"){ $factor = $maxppsperpv/1016 }else{ $factor = "N/A"; $maxppsperpv = "N/A"; $maxdisk = $ppsize*2097152; } printf "%-12s %-6s %-5s %-5s ",$vg,$type,$maxpvs,$activepvs; printf "%-7s %-7s %-5s %-7s \n",$factor,$maxppsperpv,$ppsize,$maxdisk; }