/skrypty/gpfs/disks.info
# gpfs clusters
# ax0001/ax0002/ax0003/ax0004 = 6A01 (PSYA0001gpfs/PSYK0001gpfs) ; 6A02 (PSYA0002gpfs/PSYK0002gpfs)
# ax0005/ax0006 6A04 (PSYA0003gpfs/PSYK0003gpfs) ; 6A05 (PSYA0004gpfs/PSYK0004gpfs
# test for errors:
# sample_test1.info 6A07 on ax0001 ax0002 ax0003 ax0004 - non existing on all
# sample_test2.info 6A08 on ax0001 ax0002 ax0003 ax0004 - exists on 3 nodes
ax0001;PSYA0001gpfs;75WR9416A01;hdisk6
ax0001;PSYK0001gpfs;75WR9816A01;hdisk1
ax0001;PSYA0002gpfs;75WR9416A02;hdisk2
ax0001;PSYK0002gpfs;75WR9816A02;hdisk3
ax0001;;75WR9416A03;hdisk8
ax0001;;75WR9816A03;hdisk9
ax0001;;75WR9416A08;hdisk4
ax0001;;75WR9816A08;hdisk5
ax0002;PSYA0001gpfs;75WR9416A01;hdisk5
ax0002;PSYK0001gpfs;75WR9816A01;hdisk78
ax0002;PSYA0002gpfs;75WR9416A02;hdisk12
ax0002;PSYK0002gpfs;75WR9816A02;hdisk78
ax0002;;75WR9416A03;hdisk6
ax0002;;75WR9816A03;hdisk7
ax0002;;75WR9416A08;hdisk3
ax0002;;75WR9816A08;hdisk4
ax0003;PSYA0001gpfs;75WR9416A01;hdisk4
ax0003;PSYK0001gpfs;75WR9816A01;hdisk6
ax0003;PSYA0002gpfs;75WR9416A02;hdisk9
ax0003;PSYK0002gpfs;75WR9816A02;hdisk8
ax0003;;75WR9416A03;hdisk2
ax0003;;75WR9816A03;hdisk3
ax0003;;75WR9416A08;hdisk1
ax0003;;75WR9816A08;hdisk5
ax0004;PSYA0001gpfs;75WR9416A01;hdisk66
ax0004;PSYK0001gpfs;75WR9816A01;hdisk33
ax0004;PSYA0002gpfs;75WR9416A02;hdisk67
ax0004;PSYK0002gpfs;75WR9816A02;hdisk32
ax0004;;75WR9416A03;hdisk8
ax0004;;75WR9816A03;hdisk9
ax0005;PSYA0003gpfs;75WR9416A04;hdisk67
ax0005;PSYK0003gpfs;75WR9816A04;hdisk67
ax0005;PSYA0004gpfs;75WR9416A05;hdisk44
ax0005;PSYK0004gpfs;75WR9816A05;hdisk55
ax0005;;75WR9416A06;hdisk44
ax0005;;75WR9816A06;hdisk55
ax0006;PSYA0003gpfs;75WR9416A04;hdisk66
ax0006;PSYK0003gpfs;75WR9816A04;hdisk546
ax0006;PSYA0004gpfs;75WR9416A05;hdisk889
ax0006;PSYK0004gpfs;75WR9816A05;hdisk245
ax0006;;75WR9416A06;hdisk889
ax0006;;75WR9816A06;hdisk245
/skrypty/gpfs/gpfs_adddisk.sh
#!/bin/bash
# Get variables
# User will input: new lunid(s), lpar(s)
# Check if lunid is already present (here - grep list file). Yes - continue, No - exit
# then, get the hdisk number on new lun
# then, get latest nsd name and generate new one
# finally, generate config
# New lunids list - manual input
echo -n "give new lunids (whitespace separated) : "
read LUNID
# LPARS list - manual input
echo -n "give lpars (whitespace separated) : "
read LPARS
# helpful for final config
LPAR_LIST=`echo $LPARS | sed 's/ /,/g'`
LPAR_LIST_REV=`echo $LPARS | awk '{do printf "%s"(NF>1?FS:RS),$NF;while(--NF)}' | sed 's/ /,/g' `
echo "testing variables"
echo "LPARS is $LPARS"
echo "LUNID is $LUNID"
echo "LPAR_LIST is $LPAR_LIST"
echo "LPAR_LIST_REV is $LPAR_LIST_REV"
# Here we use file, but commands will be as follows
# for every lun, ssh to lpar and find it
# for i in LUNID; do
# for GIVEN_LPAR in LPARS; do
# ssh GIVEN_LPAR "lspv -u | grep GIVEN_LUN && echo "$GIVEN_LUN discovered!" || echo "No $GIVEN_LUN discovered - exiting" && exit"
for GIVEN_LUN in `echo $LUNID`; do
for GIVEN_LPAR in `echo $LPARS`; do
# how we will get hdisk
#GPFS_LPAR_HDISK_PRD=`ssh $GPFS_LPAR_1 "lspv -u | grep $LUN_ID | grep 75WR941" | awk '{print $1}'`
#GPFS_NSD_A=`ssh $GPFS_LPAR_1 "lspv -u | grep A.*gpfs" | awk '{print $3}' | tail -1"`
# but now, we use disks.info
HDISK_NEW_LUN_SITE1=`grep "$GIVEN_LPAR" disks.info | grep "$GIVEN_LUN" | grep 75WR941 | awk -F ";" '{print $4}'`
HDISK_NEW_LUN_SITE2=`grep "$GIVEN_LPAR" disks.info | grep "$GIVEN_LUN" | grep 75WR981 | awk -F ";" '{print $4}'`
# site 1
grep "$GIVEN_LPAR" disks.info | grep 75WR941 | grep "$GIVEN_LUN"
if [ $? -eq 0 ]; then
echo "lun $GIVEN_LUN discovered on $GIVEN_LPAR from 75WR941 as $HDISK_NEW_LUN_SITE1"
else
echo "No $GIVEN_LUN discovered on $GIVEN_LPAR !!!"
exit
fi
NSD_LATEST_SITE1=`grep "$GIVEN_LPAR" disks.info | grep gpfs | grep PSYA| awk -F ";" '{print $2}' | tail -1`
gpfs_SITE1[0]=`echo $NSD_LATEST_SITE1 | cut -c1-6`
gpfs_SITE1[1]=`echo $NSD_LATEST_SITE1 | cut -c7-8`
gpfs_SITE1[2]=`echo $NSD_LATEST_SITE1 | cut -c9-12`
((gpfs_SITE1[1]++))
NSD_LATEST_SITE1_INC=`echo ${gpfs_SITE1[0]}${gpfs_SITE1[1]}${gpfs_SITE1[2]}`
echo "Last disk on 1st site is $NSD_LATEST_SITE1; new one we create is $NSD_LATEST_SITE1_INC"
#site 2
grep "$GIVEN_LPAR" disks.info | grep 75WR981 | grep "$GIVEN_LUN"
if [ $? -eq 0 ]; then
echo "lun $GIVEN_LUN discovered on $GIVEN_LPAR from 75WR981 was $HDISK_NEW_LUN_SITE2"
else
echo "No $GIVEN_LUN discovered on $GIVEN_LPAR !!!"
exit
fi
NSD_LATEST_SITE2=`grep "$GIVEN_LPAR" disks.info | grep gpfs | grep PSYK| awk -F ";" '{print $2}' | tail -1`
gpfs_SITE2[0]=`echo $NSD_LATEST_SITE2 | cut -c1-6`
gpfs_SITE2[1]=`echo $NSD_LATEST_SITE2 | cut -c7-8`
gpfs_SITE2[2]=`echo $NSD_LATEST_SITE2 | cut -c9-12`
((gpfs_SITE2[1]++))
NSD_LATEST_SITE2_INC=`echo ${gpfs_SITE2[0]}${gpfs_SITE2[1]}${gpfs_SITE2[2]}`
echo "Last disk on 1st site is $NSD_LATEST_SITE2; new one we create is $NSD_LATEST_SITE2_INC"
# now, let's define output
# get one last variables - lpar list separated by commas + reverse order
echo -e "\n"
# Generate config file
echo -e "%nsd:\tdevice=$HDISK_NEW_LUN_SITE1"
echo -e "\tnsd=$NSD_LATEST_SITE1_INC"
echo -e "\tservers=$LPAR_LIST"
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=1"
echo -e "\tpool=system"
echo -e "%nsd:\tdevice=$HDISK_NEW_LUN_SITE2"
echo -e "\tnsd=$NSD_LATEST_SITE2_INC"
echo -e "\tservers=$LPAR_LIST_REV"
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=2"
echo -e "\tpool=system"
done
done
/skrypty/gpfs/sample_output.info
give new lunids (whitespace separated) : give lpars (whitespace separated) : testing variables
LPARS is ax0001 ax0002 ax0003 ax0004
LUNID is 6A03
LPAR_LIST is ax0001,ax0002,ax0003,ax0004
LPAR_LIST_REV is ax0004,ax0003,ax0002,ax0001
ax0001;;75WR9416A03;hdisk8
lun 6A03 discovered on ax0001 from 75WR941 as hdisk8
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0001;;75WR9816A03;hdisk9
lun 6A03 discovered on ax0001! from 75WR981 as hdisk9
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk8
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk9
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0002;;75WR9416A03;hdisk6
lun 6A03 discovered on ax0002 from 75WR941 as hdisk6
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0002;;75WR9816A03;hdisk7
lun 6A03 discovered on ax0002! from 75WR981 as hdisk7
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk6
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk7
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0003;;75WR9416A03;hdisk2
lun 6A03 discovered on ax0003 from 75WR941 as hdisk2
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0003;;75WR9816A03;hdisk3
lun 6A03 discovered on ax0003! from 75WR981 as hdisk3
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk2
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk3
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0004;;75WR9416A03;hdisk8
lun 6A03 discovered on ax0004 from 75WR941 as hdisk8
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0004;;75WR9816A03;hdisk9
lun 6A03 discovered on ax0004! from 75WR981 as hdisk9
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk8
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk9
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
/skrypty/gpfs/sample_test1.info
give new lunids (whitespace separated) : give lpars (whitespace separated) : testing variables
LPARS is ax0001 ax0002 ax0003 ax0004
LUNID is 6A07
LPAR_LIST is ax0001,ax0002,ax0003,ax0004
LPAR_LIST_REV is ax0004,ax0003,ax0002,ax0001
No 6A07 discovered on ax0001 - exiting
/skrypty/gpfs/sample_test2.info
give new lunids (whitespace separated) : give lpars (whitespace separated) : testing variables
LPARS is ax0001 ax0002 ax0003 ax0004
LUNID is 6A08
LPAR_LIST is ax0001,ax0002,ax0003,ax0004
LPAR_LIST_REV is ax0004,ax0003,ax0002,ax0001
ax0001;;75WR9416A08;hdisk4
lun 6A08 discovered on ax0001 from 75WR941 as hdisk4
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0001;;75WR9816A08;hdisk5
lun 6A08 discovered on ax0001 from 75WR981 was hdisk5
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk4
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk5
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0002;;75WR9416A08;hdisk3
lun 6A08 discovered on ax0002 from 75WR941 as hdisk3
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0002;;75WR9816A08;hdisk4
lun 6A08 discovered on ax0002 from 75WR981 was hdisk4
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk3
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk4
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0003;;75WR9416A08;hdisk1
lun 6A08 discovered on ax0003 from 75WR941 as hdisk1
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
ax0003;;75WR9816A08;hdisk5
lun 6A08 discovered on ax0003 from 75WR981 was hdisk5
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk1
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk5
nsd=PSYK003gpfs
servers=ax0004,ax0003,ax0002,ax0001
usage=metadataOnly
failureGroup=2
pool=system
No 6A08 discovered on ax0004 !!!
/skrypty/gpfs/gpfs_2nodes.sh
#!/bin/bash
# Get variables
# User will input: new lunid(s), lpar(s)
# Check if lunid is already present (here - grep list file). Yes - continue, No - exit
# then, get the hdisk number on new lun
# then, get latest nsd name and generate new one
# finally, generate config
# New lunids list - manual input
echo -n "give new lunids (whitespace separated) : "
read LUNID
# LPARS list - manual input
echo -n "give lpars (whitespace separated) : "
read LPARS
# change string into array and little trick
LPARS_FOR_RR_COUNTER=$((`echo $LPARS | wc -w` -1 ))
LPARS_FOR_RR="$LPARS $LPARS"
ARRAY_LPARS_FOR_RR=($LPARS_FOR_RR)
LPARS_FOR_RR_REV=`echo $LPARS_FOR_RR | awk '{do printf "%s"(NF>1?FS:RS),$NF;while(--NF)}'`
ARRAY_LPARS_FOR_RR_REV=($LPARS_FOR_RR_REV)
echo "LPARS_FOR_RR_COUNTER is $LPARS_FOR_RR_COUNTER"
#function for generating
#function config {
#echo "psiadupa"
#}
function config {
# get hdisk variable
BOXES=(75WR941 75WR981)
SITE=(A K)
HDISK=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep $GIVEN_LUN | grep "${BOXES[$counter]}" | awk -F ";" '{print $4}'`
# test if lun exists
grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep "${BOXES[$counter]}" | grep $GIVEN_LUN
if [ $? -eq 0 ]; then
echo "lun $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" from "${BOXES[$counter]}" as $HDISK"
else
echo "No $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" !!!"
exit
fi
# change name
NSD_LATEST=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep gpfs | grep "${SITE[$counter]}"| awk -F ";" '{print $2}' | tail -1`
gpfs_SITE[0]=`echo $NSD_LATEST | cut -c1-6`
gpfs_SITE[1]=`echo $NSD_LATEST | cut -c7-8`
gpfs_SITE[2]=`echo $NSD_LATEST | cut -c9-12`
((gpfs_SITE[1]++))
NSD_LATEST_INC=`echo ${gpfs_SITE[0]}${gpfs_SITE[1]}${gpfs_SITE[2]}`
echo "Last disk on 1st site is $NSD_LATEST; new one we create is $NSD_LATEST_INC"
# create config
echo -e "%nsd:\tdevice=$HDISK"
echo -e "\tnsd=$NSD_LATEST_INC"
echo -e "\tservers=${ARRAY_LPARS_FOR_RR[$counter]},${ARRAY_LPARS_FOR_RR[$counter+1]}"
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=$((counter+1))"
echo -e "\tpool=system"
}
for GIVEN_LUN in `echo $LUNID`; do
counter=0
until [ $counter = "2" ]; do
# until [ $counter -le $LPARS_FOR_RR_COUNTER ]; do
config
counter=$[counter+1]
done
done
/skrypty/gpfs/gpfs_2nodes.info
give new lunids (whitespace separated) : give lpars (whitespace separated) : LPARS_FOR_RR_COUNTER is 1
ax0005;PSYA0004gpfs;75WR9416A05;hdisk44
lun 6A05 discovered on ax0005 from 75WR941 as hdisk44
Last disk on 1st site is PSYK0004gpfs; new one we create is PSYK005gpfs
%nsd: device=hdisk44
nsd=PSYK005gpfs
servers=ax0005,ax0006
usage=metadataOnly
failureGroup=1
pool=system
ax0006;PSYK0004gpfs;75WR9816A05;hdisk245
lun 6A05 discovered on ax0006 from 75WR981 as hdisk245
Last disk on 1st site is PSYK0004gpfs; new one we create is PSYK005gpfs
%nsd: device=hdisk245
nsd=PSYK005gpfs
servers=ax0006,ax0005
usage=metadataOnly
failureGroup=2
pool=system
/skrypty/gpfs/4nodes_clean.info
%nsd: device=hdisk8
nsd=PSYA003gpfs
servers=ax0001,ax0002,ax0003,ax0004
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk7
nsd=PSYK003gpfs
servers=ax0002,ax0003,ax0004,ax0001
usage=metadataOnly
failureGroup=2
pool=system
%nsd: device=hdisk2
nsd=PSYA003gpfs
servers=ax0003,ax0004,ax0001,ax0002
usage=metadataOnly
failureGroup=1
pool=system
%nsd: device=hdisk9
nsd=PSYK003gpfs
servers=ax0004,ax0001,ax0002,ax0003
usage=metadataOnly
failureGroup=2
pool=system
/skrypty/gpfs/4nodes_clean.sh
#!/bin/bash
# Get variables:
# User input: new lunid(s), lpar(s)
# Check if lunid is already present (here - grep list file). Yes - continue, No - exit
# then, get the hdisk number on new lun
# then, get latest nsd name and generate new one
# finally, generate config
# New lunids list - manual input
#echo -n "give new lunids (whitespace separated) : "
#read LUNID
LUNID=6A03
# LPARS list - manual input
#echo -n "give lpars (whitespace separated) : "
#read LPARS
LPARS="ax0001 ax0002 ax0003 ax0004"
# change string into array and little trick
LPARS_FOR_RR_COUNTER=$((`echo $LPARS | wc -w` -1 ))
LPARS_FOR_RR="$LPARS $LPARS"
ARRAY_LPARS_FOR_RR=($LPARS_FOR_RR)
LPARS_FOR_RR_REV=`echo $LPARS_FOR_RR | awk '{do printf "%s"(NF>1?FS:RS),$NF;while(--NF)}'`
ARRAY_LPARS_FOR_RR_REV=($LPARS_FOR_RR_REV)
function config {
# get hdisk variable
BOXES=(75WR941 75WR981 75WR941 75WR981)
SITE=(A K A K)
FG=(1 2 1 2)
HDISK=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep $GIVEN_LUN | grep "${BOXES[$counter]}" | awk -F ";" '{print $4}'`
# test if lun exists
grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep "${BOXES[$counter]}" | grep $GIVEN_LUN > /dev/null
if [ $? != 0 ]; then
echo "Disk not found - exit"
exit
fi
# new nsd name
NSD_LATEST=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep gpfs | awk -F ";" '{print $2}' | grep "${SITE[$counter]}" | tail -1`
gpfs_SITE[0]=`echo $NSD_LATEST | cut -c1-6`
gpfs_SITE[1]=`echo $NSD_LATEST | cut -c7-8`
gpfs_SITE[2]=`echo $NSD_LATEST | cut -c9-12`
((gpfs_SITE[1]++))
NSD_LATEST_INC=`echo ${gpfs_SITE[0]}${gpfs_SITE[1]}${gpfs_SITE[2]}`
# echo "Last disk on 1st site is $NSD_LATEST; new one we create is $NSD_LATEST_INC"
# create config
echo -e "%nsd:\tdevice=$HDISK"
echo -e "\tnsd=$NSD_LATEST_INC"
echo -e "\tservers=${ARRAY_LPARS_FOR_RR[@]:$counter:4}" | sed 's/ /,/g'
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=${FG[$counter]}"
echo -e "\tpool=system"
}
for GIVEN_LUN in `echo $LUNID`; do
counter=0
until [ $counter = "4" ]; do
config
counter=$[counter+1]
done
done
/skrypty/gpfs/4nodes_rev_rr.sh
#!/bin/bash
# Get variables:
# User input: new lunid(s), lpar(s)
# Check if lunid is already present (here - grep list file). Yes - continue, No - exit
# then, get the hdisk number on new lun
# then, get latest nsd name and generate new one
# finally, generate config
# New lunids list - manual input
#echo -n "give new lunids (whitespace separated) : "
#read LUNID
LUNID=6A03
# LPARS list - manual input
#echo -n "give lpars (whitespace separated) : "
#read LPARS
LPARS="ax0001 ax0002 ax0003 ax0004"
# change string into array and little trick
LPARS_FOR_RR_COUNTER=$((`echo $LPARS | wc -w` -1 ))
LPARS_FOR_RR="$LPARS $LPARS"
ARRAY_LPARS_FOR_RR=($LPARS_FOR_RR)
LPARS_FOR_RR_REV=`echo $LPARS_FOR_RR | awk '{do printf "%s"(NF>1?FS:RS),$NF;while(--NF)}'`
ARRAY_LPARS_FOR_RR_REV=($LPARS_FOR_RR_REV)
echo "LPARS_FOR_RR_COUNTER is $LPARS_FOR_RR_COUNTER"
function config {
#array=`i=2; echo ${LPARS_FOR_RR[$counter+$i]}`
# get hdisk variable
BOXES=(75WR941 75WR981 75WR941 75WR981)
SITE=(A K A K)
FG=(1 2 1 2)
HDISK=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep $GIVEN_LUN | grep "${BOXES[$counter]}" | awk -F ";" '{print $4}'`
# test if lun exists
grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep "${BOXES[$counter]}" | grep $GIVEN_LUN
if [ $? -eq 0 ]; then
echo "lun $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" from "${BOXES[$counter]}" as $HDISK"
else
echo "No $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" !!!"
exit
fi
# new nsd name
NSD_LATEST=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep gpfs | awk -F ";" '{print $2}' | grep "${SITE[$counter]}" | tail -1`
gpfs_SITE[0]=`echo $NSD_LATEST | cut -c1-6`
gpfs_SITE[1]=`echo $NSD_LATEST | cut -c7-8`
gpfs_SITE[2]=`echo $NSD_LATEST | cut -c9-12`
((gpfs_SITE[1]++))
NSD_LATEST_INC=`echo ${gpfs_SITE[0]}${gpfs_SITE[1]}${gpfs_SITE[2]}`
echo "Last disk on 1st site is $NSD_LATEST; new one we create is $NSD_LATEST_INC"
# create config
echo -e "%nsd:\tdevice=$HDISK"
echo -e "\tnsd=$NSD_LATEST_INC"
echo -e "\tservers=${ARRAY_LPARS_FOR_RR[@]:$counter:4}"
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=${FG[$counter]}"
echo -e "\tpool=system"
}
for GIVEN_LUN in `echo $LUNID`; do
counter=0
until [ $counter = "4" ]; do
config
counter=$[counter+1]
done
done
/skrypty/gpfs/4nodes_rr.info
LPARS_FOR_RR_COUNTER is 3
ax0001;;75WR9416A03;hdisk8
lun 6A03 discovered on ax0001 from 75WR941 as hdisk8
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
%nsd: device=hdisk8
nsd=PSYA003gpfs
servers=ax0001 ax0002 ax0003 ax0004
usage=metadataOnly
failureGroup=1
pool=system
ax0002;;75WR9816A03;hdisk7
lun 6A03 discovered on ax0002 from 75WR981 as hdisk7
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk7
nsd=PSYK003gpfs
servers=ax0002 ax0003 ax0004 ax0001
usage=metadataOnly
failureGroup=2
pool=system
ax0003;;75WR9416A03;hdisk2
lun 6A03 discovered on ax0003 from 75WR941 as hdisk2
Last disk on 1st site is PSYA0002gpfs; new one we create is PSYA003gpfs
%nsd: device=hdisk2
nsd=PSYA003gpfs
servers=ax0003 ax0004 ax0001 ax0002
usage=metadataOnly
failureGroup=1
pool=system
ax0004;;75WR9816A03;hdisk9
lun 6A03 discovered on ax0004 from 75WR981 as hdisk9
Last disk on 1st site is PSYK0002gpfs; new one we create is PSYK003gpfs
%nsd: device=hdisk9
nsd=PSYK003gpfs
servers=ax0004 ax0001 ax0002 ax0003
usage=metadataOnly
failureGroup=2
pool=system
/skrypty/gpfs/4nodes_rr.sh
#!/bin/bash
# Get variables:
# User input: new lunid(s), lpar(s)
# Check if lunid is already present (here - grep list file). Yes - continue, No - exit
# then, get the hdisk number on new lun
# then, get latest nsd name and generate new one
# finally, generate config
# New lunids list - manual input
#echo -n "give new lunids (whitespace separated) : "
#read LUNID
LUNID=6A03
# LPARS list - manual input
#echo -n "give lpars (whitespace separated) : "
#read LPARS
LPARS="ax0001 ax0002 ax0003 ax0004"
# change string into array and little trick
LPARS_FOR_RR_COUNTER=$((`echo $LPARS | wc -w` -1 ))
LPARS_FOR_RR="$LPARS $LPARS"
ARRAY_LPARS_FOR_RR=($LPARS_FOR_RR)
LPARS_FOR_RR_REV=`echo $LPARS_FOR_RR | awk '{do printf "%s"(NF>1?FS:RS),$NF;while(--NF)}'`
ARRAY_LPARS_FOR_RR_REV=($LPARS_FOR_RR_REV)
echo "LPARS_FOR_RR_COUNTER is $LPARS_FOR_RR_COUNTER"
function config {
#array=`i=2; echo ${LPARS_FOR_RR[$counter+$i]}`
# get hdisk variable
BOXES=(75WR941 75WR981 75WR941 75WR981)
SITE=(A K A K)
FG=(1 2 1 2)
HDISK=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep $GIVEN_LUN | grep "${BOXES[$counter]}" | awk -F ";" '{print $4}'`
# test if lun exists
grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep "${BOXES[$counter]}" | grep $GIVEN_LUN
if [ $? -eq 0 ]; then
echo "lun $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" from "${BOXES[$counter]}" as $HDISK"
else
echo "No $GIVEN_LUN discovered on "${ARRAY_LPARS_FOR_RR[$counter]}" !!!"
exit
fi
# new nsd name
NSD_LATEST=`grep "${ARRAY_LPARS_FOR_RR[$counter]}" disks.info | grep gpfs | awk -F ";" '{print $2}' | grep "${SITE[$counter]}" | tail -1`
gpfs_SITE[0]=`echo $NSD_LATEST | cut -c1-6`
gpfs_SITE[1]=`echo $NSD_LATEST | cut -c7-8`
gpfs_SITE[2]=`echo $NSD_LATEST | cut -c9-12`
((gpfs_SITE[1]++))
NSD_LATEST_INC=`echo ${gpfs_SITE[0]}${gpfs_SITE[1]}${gpfs_SITE[2]}`
echo "Last disk on 1st site is $NSD_LATEST; new one we create is $NSD_LATEST_INC"
# create config
echo -e "%nsd:\tdevice=$HDISK"
echo -e "\tnsd=$NSD_LATEST_INC"
echo -e "\tservers=${ARRAY_LPARS_FOR_RR[@]:$counter:4}"
echo -e "\tusage=metadataOnly"
echo -e "\tfailureGroup=${FG[$counter]}"
echo -e "\tpool=system"
}
for GIVEN_LUN in `echo $LUNID`; do
counter=0
until [ $counter = "4" ]; do
config
counter=$[counter+1]
done
done