#!/bin/sh
#
# Script to create lab volumes for SA-349
# Prompts for 5 parameters -
# - Disk group to create (ndg)
# - Primary drive 1 (pridrv1)
# - primary drive 2 (pridrv2)
# - Mirror drive 1 (mirdrv1)
# - Mirror drive 2 (mirdrv2)
#
# ckdrv function
ckdrv () {
echo "${which}?"
read newdrive
if [ ! -b /dev/dsk/${newdrive}s2 ] ;
 then
 echo "Please specify a drive that exists, in the format cxtxdx"
 exit 1
fi
echo ${newdrive} specified as ${which} for disk group ${ndg}
echo
}
# End of ckdrv
newdrive=""

echo "Which disk group are you creating?"
read ndg
if [ -z "${ndg}" ] ;
then
 echo "Please specify a disk group name"
 exit 1
fi
echo
#
which="primary drive 1"
ckdrv
pridrv1=${newdrive}
#
which="primary drive 2"
ckdrv
pridrv2=${newdrive}
#
which="mirror drive 1"
ckdrv
mirdrv1=${newdrive}
#
which="mirror drive 2"
ckdrv
mirdrv2=${newdrive}
#
echo "Checking for duplicate drives"
#
if [ ${pridrv1} = ${pridrv2} ] ; then
 echo "Primary volumes are the same - restart"
 exit 1
fi
#
if [ ${mirdrv1} = ${mirdrv2} ] ; then
 echo "Mirror volumes are the same - restart"
 exit 1
fi
#
if [ ${pridrv1} = ${mirdrv1} -o ${pridrv1} = ${mirdrv2} ] ; then
 echo "Primary drive 1 overlaps a mirror drive - restart"
 exit 1
fi
#
if [ ${pridrv2} = ${mirdrv1} -o ${pridrv2} = ${mirdrv2} ] ; then
 echo "Primary drive 2 overlaps a mirror drive - restart"
 exit 1
fi
#
echo
echo Creating $ndg with primaries $pridrv1 $pridrv2 mirrors $mirdrv1 $mirdrv2
echo
echo "Destroying existing any volume manager data on specified drives"
/etc/vx/bin/vxdiskunsetup -C ${pridrv1} ${mirdrv1} ${pridrv2} ${mirdrv2} 
#
echo "Creating disk group ${ndg}"
/etc/vx/bin/vxdisksetup -i ${pridrv1} &
/etc/vx/bin/vxdisksetup -i ${mirdrv1} &
/etc/vx/bin/vxdisksetup -i ${pridrv2} &
/etc/vx/bin/vxdisksetup -i ${mirdrv2} &
wait
vxdg init ${ndg} ${pridrv1} ${mirdrv1} ${pridrv2} ${mirdrv2} 
#
echo "Creating subdisks in disk group ${ndg}"
vxmake -g ${ndg} sd ${pridrv1}-1 disk=${pridrv1} offset=0 len=500m &
vxmake -g ${ndg} sd ${pridrv2}-1 disk=${pridrv2} offset=0 len=500m &
vxmake -g ${ndg} sd ${mirdrv1}-1 disk=${mirdrv1} offset=0 len=500m &
vxmake -g ${ndg} sd ${mirdrv2}-1 disk=${mirdrv2} offset=0 len=500m &
wait
#
#
echo "Creating plexes in disk group ${ndg}"
vxmake -g ${ndg} plex ${ndg}1-01
vxsd -g ${ndg} -U gen assoc ${ndg}1-01 ${pridrv1}-1
vxmake -g ${ndg} plex ${ndg}2-01
vxsd -g ${ndg} -U gen assoc ${ndg}2-01 ${pridrv2}-1
vxmake -g ${ndg} plex ${ndg}1-02
vxsd -g ${ndg} -U gen assoc ${ndg}1-02 ${mirdrv1}-1
vxmake -g ${ndg} plex ${ndg}2-02
vxsd -g ${ndg} -U gen assoc ${ndg}2-02 ${mirdrv2}-1
#
#echo "Creating DRL subdisks in disk group ${ndg}"
#vxmake -g ${ndg} sd ${pridrv1}-drl disk=${pridrv1} offset=500m len=1m &
#vxmake -g ${ndg} sd ${pridrv2}-drl disk=${pridrv2} offset=500m len=1m &
#vxmake -g ${ndg} sd ${mirdrv1}-drl disk=${mirdrv1} offset=500m len=1m &
#vxmake -g ${ndg} sd ${mirdrv2}-drl disk=${mirdrv2} offset=500m len=1m &
#wait
#  
#echo "Adding DRL log plexes to disk group ${ndg}"
#vxsd aslog ${ndg}1-01 ${pridrv1}-drl
#vxsd aslog ${ndg}2-01 ${pridrv2}-drl
#vxsd aslog ${ndg}1-02 ${mirdrv1}-drl
#vxsd aslog ${ndg}2-02 ${mirdrv2}-drl
#
echo "Creating volumes for disk group ${ndg}"
vxmake -g ${ndg} -U gen vol ${ndg}.1 plex=${ndg}1-01,${ndg}1-02
vxmake -g ${ndg} -U gen vol ${ndg}.2 plex=${ndg}2-01,${ndg}2-02
#
echo "Enabling volumes in disk group ${ndg} - This will take a few minutes"
vxvol -g ${ndg} -U gen start ${ndg}.1 &
vxvol -g ${ndg} -U gen start ${ndg}.2 &
wait
vxedit -g ${ndg} set user=root group=sys mode=660 ${ndg}.1
vxedit -g ${ndg} set user=root group=sys mode=660 ${ndg}.2
#
echo "Disk group ${ndg} created."
