Extracting Resource Allocation Data for Chargeback in a HP Virtual Server Environment for HP Integrity Servers
gwlmreport config | awk -v RS="" '{printf "%s %s %s
%s\n",$1,$3,$6,$9}' | grep "
^Workload " | awk '{printf "%s %s %s\n", $2, $3, $4}' | grep -v
"Other" > $WKLDS
FILE
# filter workloads to leafs
for w in `cat $WKLDSFILE | grep Whole | awk '{print $1}'`; do
cat $WKLDSFILE | grep -v Whole | \
awk ' BEGIN {WM=0} \
{if (match($2,"'$w'")) {WM=1; printf "%s %s
%s\n",$1,$3,"'$w'"}} \
END {if (WM==0) {printf "%s Whole %s\n","'$w'","'$w'"}}'
done > $WKLDSFLTRD
# for each workload, identify host type using mxnode
for w in `cat $WKLDSFLTRD | awk '{print $1}' | sort -u`; do
h=`cat $WKLDSFLTRD | grep $w | awk '{print $3}'`
cat $WKLDSFLTRD | awk '{if (match("'$w'",$1)) {printf "%s
%s %s ", $1,$2
,$3}}'
mxnode -ld $h | grep -E "^Device type|^Device
subtype|^CMPLX_PARTLABEL"\
| awk -v FS=":" 'BEGIN {ISC=0} \
{if (match($2,"nPar|vPar")) {ISC=1; printf
"%s ",$2} \
if (match($1,"CMPLX_PARTLABEL")) {printf
"%s ",$2}}\
END {if (ISC==0) {printf "physical-
server"}}'
printf "\n"
done
rm $WKLDSFILE $WKLDSFLTRD
CMS #
This script produces the following output:
CMS # ./wkldphys.sh
Generating historical config report.
Please be patient. This may take several minutes.
finance-va02cm gWLM-created va02cm.zko.hp.com physical-server
legacy01 Whole legacy01 physical-server
legacy02 Whole legacy02 physical-server
legacy03 Whole legacy03 physical-server
sales-va02cm gWLM-created va02cm.zko.hp.com physical-server
va00np00.zko.hp.com Whole va00np00.zko.hp.com nPar va00-
cplx_USE4452HL6.va00np00 (par0)
va00np10.zko.hp.com Whole va00np10.zko.hp.com nPar va00-
cplx_USE4452HL6.va00np10 (par1)
vmhpux1 VM va01sv.zko.hp.com physical-server
vmhpux2 VM va01sv.zko.hp.com physical-server
vmlin1 VM va01sv.zko.hp.com physical-server
vmwin1 VM va01sv.zko.hp.com physical-server
CMS #
In this example, all but two of the workloads are running on noncomplex physical servers. The
remaining two workloads are nPars that share the same complex.
42