From e7363d1c47981b2fadb86cb3a0ccf0a145d09989 Mon Sep 17 00:00:00 2001 From: mellor Date: Thu, 13 May 2010 16:20:48 +0000 Subject: [PATCH] HPC Integration for AIX git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@6085 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- .../share/xcat/IBMhpc/IBMhpc.postbootscript | 5 +- .../share/xcat/IBMhpc/IBMhpc.postscript | 26 +++- xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_all.bnd | 65 +++++++++ xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_base.bnd | 16 +++ .../share/xcat/IBMhpc/compilers/compilers.bnd | 10 ++ .../xcat/IBMhpc/compilers/compilers_license | 11 +- xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl.bnd | 24 ++++ .../share/xcat/IBMhpc/essl/essl_install | 2 +- xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs.bnd | 6 + .../share/xcat/IBMhpc/gpfs/gpfs_mmsdrfs | 132 +++++++++++++----- .../share/xcat/IBMhpc/gpfs/gpfs_updates | 28 ++-- xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl.bnd | 6 + .../share/xcat/IBMhpc/loadl/loadl_install | 31 ++-- xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd | 20 +++ xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install | 39 +++++- 15 files changed, 351 insertions(+), 70 deletions(-) create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_all.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_base.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl.bnd create mode 100644 xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postbootscript b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postbootscript index 912283ae5..1de4f315f 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postbootscript +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postbootscript @@ -1,11 +1,14 @@ #!/bin/sh -# Sample postbootscript script for installing and configuring HPC software +# Sample Linux postbootscript script for installing and configuring HPC software # for statefull (full-disk install) nodes # Make sure this runs after the otherpkgs postbootscript # ps_dir=/xcatpost +# Run script to set up some basics for all HPC software +$ps_dir/IBMhpc.postscript + # Run script to install gpfs updates $ps_dir/gpfs_updates diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postscript b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postscript index 8d9eacc7d..766149102 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postscript +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc.postscript @@ -1,10 +1,30 @@ #!/bin/sh # Sample postscript script for base OS configuration for all HPC software -# for statefull (full-disk install) nodes -# Make sure this runs before the node reboots after initial install -# for services to be activated +# AIX: +# set network tunables +# +# Linux: for statefull (full-disk install) nodes +# Make sure this runs before the node reboots after initial install +# for services to be activated # +OS=`uname` + +# AIX +if [ $OS = "AIX" ]; then + # Set network tunables + no -p -o tcp_recvspace=524288 + no -p -o tcp_sendspace=524288 + no -p -o udp_recvspace=655360 + no -p -o udp_sendspace=65536 + no -p -o arpqsize=64 + no -p -o rfc1323=1 + no -p -o sb_max=8388608 + chdev -l sys0 -a maxuproc='4096' + exit +fi + +# Linux ps_dir=/xcatpost hpc=/opt/xcat/share/xcat/IBMhpc diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_all.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_all.bnd new file mode 100644 index 000000000..c786fe06d --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_all.bnd @@ -0,0 +1,65 @@ +# GPFS +I:gpfs.msg.en_US +I:gpfs.base +# The gpfs.docs.data lpp contains the man pages for GPFS +# By default, this will not be installed into node images +#I:gpfs.docs.data +# AIX bundle file for LoadLeveler packages +# LoadL +I:LoadL +#I:LoadL.resmgr + +# MetaCluster (checkpoint/restore) +I:mcr.rte +I:mdcr + + +# AIX Bundle file for compiler runtime packages + +I:xlC.rte +I:xlfrte +I:xlfrte.aix53 +I:xlfrte.msg.en_US +I:xlsmp.aix53.rte +I:xlsmp.msg.en_US.rte +I:xlsmp.rte + +# AIX bundle file for ESSL and PESSL packages + +# ESSL +I:essl.rte.up +I:essl.rte.mp +I:essl.rte +I:essl.msg.en_US +#I:essl.msg.En_US +#I:essl.man.en_US +I:essl.loc.license + +# PESSL +I:pessl.rte.up +I:pessl.rte.smp +I:pessl.rte.rs1 +I:pessl.rte.mp +I:pessl.rte.hv +I:pessl.rte.common +I:pessl.rte +I:pessl.msg.en_US +#I:pessl.msg.En_US +#I:pessl.man.en_US +I:pessl.loc.license + +# AIX bundle package list for PE + +# POE +I:ppe.poe +I:ppe.pdb +I:ppe.man +I:ppe.loc.license + +# needed on login node +#I:ppe.hpct + +# LAPI +I:rsct.lapi +#I:rsct.sci + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_base.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_base.bnd new file mode 100644 index 000000000..b096e5894 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/IBMhpc_base.bnd @@ -0,0 +1,16 @@ +# AIX bundle file containing base AIX prereq for all HPC software + +I:bos.adt.debug +I:bos.adt.libm +I:bos.adt.syscalls +I:bos.adt.prof +I:bos.cpr +I:bos.loc.iso.en_US +I:bos.pmapi +I:perfagent.tools +I:sysmgt.sguide.rte +I:Java5 + + +~ + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers.bnd new file mode 100644 index 000000000..339b425d5 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers.bnd @@ -0,0 +1,10 @@ +# AIX Bundle file for compiler runtime packages + +I:xlC.rte +I:xlfrte +I:xlfrte.aix53 +I:xlfrte.msg.en_US +I:xlsmp.aix53.rte +I:xlsmp.msg.en_US.rte +I:xlsmp.rte + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers_license b/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers_license index 1a78fc57a..73da6231f 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers_license +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/compilers/compilers_license @@ -3,18 +3,17 @@ # # Sample script to accept licenses for the IBM vacpp and xlf compilers # For AIX: -# TBD +# do nothing, license accepted with installp -Y flag # For Linux: # Assumes all compiler software has been installed OS=`uname` -cd $installroot/ -vacpp_script=`find opt/ibmcmp/vacpp -name new_install -print` -xlf_script=`find opt/ibmcmp/xlf -name new_install -print` - - if [ $OS != "AIX" ]; then + cd $installroot/ + vacpp_script=`find opt/ibmcmp/vacpp -name new_install -print` + xlf_script=`find opt/ibmcmp/xlf -name new_install -print` + if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then # Being run from a stateful install postscript echo 1 | $vacpp_script diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl.bnd new file mode 100644 index 000000000..94bd8dc0e --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl.bnd @@ -0,0 +1,24 @@ +# AIX bundle file for ESSL and PESSL packages + +# ESSL +I:essl.rte.up +I:essl.rte.mp +I:essl.rte +I:essl.msg.en_US +#I:essl.msg.En_US +#I:essl.man.en_US +I:essl.loc.license + +# PESSL +I:pessl.rte.up +I:pessl.rte.smp +I:pessl.rte.rs1 +I:pessl.rte.mp +I:pessl.rte.hv +I:pessl.rte.common +I:pessl.rte +I:pessl.msg.en_US +#I:pessl.msg.En_US +#I:pessl.man.en_US +I:pessl.loc.license + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl_install b/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl_install index 3a50bebf9..b964cf53f 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl_install +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/essl/essl_install @@ -12,7 +12,7 @@ OS=`uname` INSTALL_DIR='/install' ESSL_DIR=$essldir -if [ -z $ESSL_DIR ]; then +if [ -z "$ESSL_DIR" ]; then # try to default ESSL_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/essl fi diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs.bnd new file mode 100644 index 000000000..9135f5584 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs.bnd @@ -0,0 +1,6 @@ +# GPFS +I:gpfs.msg.en_US +I:gpfs.base +# The gpfs.docs.data lpp contains the man pages for GPFS +# By default, this will not be installed into node images +#I:gpfs.docs.data diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_mmsdrfs b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_mmsdrfs index e42ff17be..7fbf5d298 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_mmsdrfs +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_mmsdrfs @@ -1,11 +1,12 @@ -#!/bin/sh +#!/bin/bash # Run this script to sync the GPFS mmsdrfs file into the node images -# Set the SOURCE, IMAGE, and SERVICE variables appropriately +# Set the SOURCE, TARGETDIR, IMAGE, and SERVICE variables appropriately # Usage: gpfs_mmsdrfs [packimage|liteimage] [syncinstall] -# If packimage or liteimage specified, will run that command for the image -# if rsync updated any destination files +# For Linux, if packimage or liteimage specified, +# will run that command for the image if rsync updated any +# destination files # If syncinstall specified, and if site.install_loc is blank, # sync the /install directory to the SERVICE noderange # if rysnc updated any destination files @@ -19,52 +20,113 @@ #SOURCE=gpfsmgr:/var/mmfs/gen/mmsdrfs SOURCE=/var/mmfs/gen/mmsdrfs -# The images to be updated (list as many as needed) -IMAGE[1]=sles11-ppc64-netboot-service -IMAGE[2]=sles11-ppc64-netboot-compute +# The target directory on the xCAT MN that holds the master copy +TARGETDIR=/install/mmfs/gen # The noderange for service nodes SERVICE=service +# The images to be updated (list as many as needed) +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# EDIT HERE TO SPECIFY IMAGES TO BE UPDATED!!! +# default is to update all images !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +IMAGE[1]=ALL_IMAGES +#IMAGE[1]=sles11-ppc64-netboot-service +#IMAGE[2]=sles11-ppc64-netboot-compute + + + # If $installroot is set, then this script was called from genimage # Ignore all IMAGE variables and only rsync to $installroot -if [ ! -z "$installroot" ]; then - rsync -i -t $SOURCE $installroot/var/mmfs/gen/mmsdrfs - exit +if [[ ! -z "$installroot" ]]; then + OS=`uname` + if [[ "$OS" != "AIX" ]]; then + rsync -i -t $SOURCE $installroot/var/mmfs/gen/mmsdrfs + exit + fi fi -packcmd="" -syncinstall="" -if [ "$1" == "packimage" ] || [ "$1" == "liteimage" ]; then - packcmd=$1 - if [ "$2" == "syncinstall" ]; then + +# rsync the GPFS config file to the MN +# DEVELOPER NOTE: Keep all code above this rsync call as short +# and efficient as possible. +# This script may be frequently called from cron. +if [ ! -d $TARGETDIR ]; then + mkdir -p $TARGETDIR +fi +result=`rsync -i -t $SOURCE $TARGETDIR/mmsdrfs` +r1=`echo $result | cut -c1` +if [ "$r1" == ">" ]; then + OS=`uname` + packcmd="" + syncinstall="" + if [ "$1" == "packimage" ] || [ "$1" == "liteimage" ]; then + packcmd=$1 + fi + if [ "$1" == "syncinstall" ] || [ "$2" == "syncinstall" ]; then + if [ -z "`/opt/xcat/bin/nodels $SERVICE`" ]; then + SERVICE="" + fi installloc=`/opt/xcat/bin/gettab key=installloc site.value` if [ -z "$installloc" ]; then syncinstall="yes" fi fi -fi -updates="" -for syncimage in ${IMAGE[@]}; do - dest=`/opt/xcat/bin/gettab imagename=$syncimage linuximage.rootimgdir` - dest=$dest/rootimg/var/mmfs/gen/mmsdrfs - #echo "rsync cmd: rsync -i -t $SOURCE $dest " - result=`rsync -i -t $SOURCE $dest` - #echo "rsync result=$result" - r1=`echo $result | cut -c1` - if [ "$r1" == ">" ]; then - date - echo "mmsdrfs updated in image $syncimage" - if [ ! -z $packcmd ]; then - updates="yes" - /opt/xcat/sbin/$packcmd $syncimage - fi + if [[ -z "${IMAGE[1]}" || "${IMAGE[1]}" == "ALL_IMAGES" ]]; then + if [ $OS = "AIX" ]; then + imgtable="nimimage" + else + imgtable="linuximage" fi -done + IMAGE=(`tabdump $imgtable | cut -d, -f1 | grep -v '#' | tr -d '"'`) + fi + if [ $OS = "AIX" ]; then + # do AIX stuff + updates="" + for syncimage in ${IMAGE[@]}; do + spot=`/opt/xcat/bin/gettab imagename=$syncimage nimimage.spot` + if [ -n "$spot" ]; then + dest=`lsnim -Z -a location $spot | grep -v '#' | cut -f2 -d':' ` + if [ -n "$dest" ]; then + mkdir -p $dest/lpp/bos/inst_root/var/mmfs/gen + cp $TARGETDIR/mmsdrfs $dest/lpp/bos/inst_root/var/mmfs/gen/mmsdrfs + if [[ -n "$syncinstall" && -n "$SERVICE" ]]; then + /opt/xcat/bin/xdcp $SERVICE $TARGETDIR/mmsdrfs $dest/lpp/bos/inst_root/var/mmfs/gen + fi + fi + fi + shared_root=`/opt/xcat/bin/gettab imagename=$syncimage nimimage.shared_root` + if [ -n "$shared_root" ]; then + dest=`lsnim -Z -a location $shared_root | grep -v '#' | cut -f2 -d':' ` + if [ -n "$dest" ]; then + mkdir -p $dest/var/mmfs/gen + cp $TARGETDIR/mmsdrfs $dest/var/mmfs/gen/mmsdrfs + if [[ -n "$syncinstall" && -n "$SERVICE" ]]; then + /opt/xcat/bin/xdcp $SERVICE $TARGETDIR/mmsdrfs $dest/var/mmfs/gen + fi + fi + fi + done -if [ ! -z "$updates" ] && [ ! -z "$syncinstall" ]; then - xdcp $SERVICE -r /usr/bin/rsync -o '-e ssh -craz' /install/netboot /install/netboot + else # do Linux stuff + updates="" + for syncimage in ${IMAGE[@]}; do + dest=`/opt/xcat/bin/gettab imagename=$syncimage linuximage.rootimgdir` + if [ -n "$dest" ]; then + dest=$dest/rootimg/var/mmfs/gen/mmsdrfs + cp $TARGETDIR/mmsdrfs $dest + if [ -n "$packcmd" ]; then + updates="yes" + /opt/xcat/sbin/$packcmd $syncimage + fi + fi + done + + if [ -n "$updates" ] && [ -n "$syncinstall" ] && [ -n "$SERVICE" ]; then + xdcp $SERVICE -r /usr/bin/rsync -o '-e ssh -craz' /install/netboot /install/netboot + fi + fi fi - diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_updates b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_updates index 4430af2ee..57cefb25e 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_updates +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/gpfs/gpfs_updates @@ -23,6 +23,12 @@ # - create /var/mmfs/etc/nsddevices that simply returns 0 # - add GPFS paths to profile +# Set installroot here ONLY if passed in as an argument +# Don't set otherwise -- may have been set as an ENV var for this script +# or not set at all if this was called as a postscript +if [ -n "$1" ]; then + installroot=$1 +fi OS=`uname` INSTALL_DIR='/install' @@ -62,15 +68,18 @@ fi # This assumes that the node is NOT an NSD server if [ $OS == "AIX" ]; then # Create the script on the node - echo 'return 0' > /var/mmfs/etc/nsddevices - chmod 744 /var/mmfs/etc/nsddevices + mkdir -p $installroot/var/mmfs/etc + echo 'return 0' > $installroot/var/mmfs/etc/nsddevices + chmod 744 $installroot/var/mmfs/etc/nsddevices else # assume Linux if [ $NODESETSTATE == "genimage" ]; then # Create the script in the image + mkdir -p $installroot/var/mmfs/etc echo 'return 0' > $installroot/var/mmfs/etc/nsddevices chmod 744 $installroot/var/mmfs/etc/nsddevices else # Create the script on the node + mkdir -p /var/mmfs/etc echo 'return 0' > /var/mmfs/etc/nsddevices chmod 744 /var/mmfs/etc/nsddevices fi @@ -80,8 +89,8 @@ fi # Add GPFS path to profile if [ $OS == "AIX" ]; then # add to /etc/profile - if ! grep 'mmfs' /etc/profile >& /dev/null; then - echo 'PATH=$PATH:/usr/lpp/mmfs/bin' >> /etc/profile + if ! grep 'mmfs' $installroot/etc/profile > /dev/null 2>&1; then + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' >> $installroot/etc/profile fi else # assume Linux gpfsprofile=/etc/profile.d/gpfs @@ -89,8 +98,8 @@ else # assume Linux gpfsprofile=$installroot$gpfsprofile fi if [ ! -e $gpfsprofile.sh ]; then - echo 'PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh - echo 'PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.sh + echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' > $gpfsprofile.csh # Turn off LANG support since we did not install other msg catalogs echo 'export LC_CTYPE=POSIX' $gpfsprofile.sh echo 'export LC_CTYPE=POSIX' $gpfsprofile.csh @@ -104,11 +113,8 @@ fi # If you are using a shared home directory stored in GPFS, # create the symbolic link # -# GPFSHOME=/gpfs/home -# HOMEDIR=/u -# if [ $NODESETSTATE == "genimage" ]; then -# HOMEDIR=$installroot/$HOMEDIR -# fi +# GPFSHOME=$installroot/gpfs/home +# HOMEDIR=$installroot/u # ln -s $GPFSHOME $HOMEDIR diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl.bnd new file mode 100644 index 000000000..ccfcf2fd1 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl.bnd @@ -0,0 +1,6 @@ +# AIX bundle file for LoadLeveler packages + +#I:LoadL +I:LoadL.resmgr + + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl_install b/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl_install index b4984b6ac..1a64e1dd7 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl_install +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/loadl/loadl_install @@ -4,7 +4,8 @@ # Sample script to accept license and install LoadLeveler resmgr package # and perform additional customizations # For AIX: -# TBD +# add LL path to profile +# create directories for LL log, spool, etc. # For Linux: # @@ -12,11 +13,11 @@ OS=`uname` INSTALL_DIR='/install' LOADL_DIR=$loadldir -aix_loadl_bin=/usr/lpp/LoadL/full/bin +aix_loadl_bin=/usr/lpp/LoadL/resmgr/full/bin linux_loadl_bin=/opt/ibmll/LoadL/resmgr/full/bin linux_loadl_license_script=/opt/ibmll/LoadL/sbin/install_ll -if [ -z $LOADL_DIR ]; then +if [ -z "$LOADL_DIR" ]; then # try to default LOADL_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/loadl fi @@ -54,19 +55,25 @@ if [ $OS != "AIX" ]; then fi # Add LoadLeveler path to profile -if [ $OS == "AIX" ]; then +if [ "$OS" == "AIX" ]; then # add to /etc/profile - if ! grep 'LoadL' /etc/profile >& /dev/null; then - echo 'PATH=$PATH:$aix_loadl_bin' >> /etc/profile + if ! grep 'LoadL' /etc/profile > /dev/null 2>&1 ; then + echo "export PATH=$PATH:$aix_loadl_bin" >> /etc/profile fi + # UNCOMMENT to add to /etc/inittab if not already in image + #if ! grep 'loadl' /etc/inittab ; then + # echo "loadl:2:once:/usr/lpp/LoadL/resmgr/full/bin/llrctl start > /dev/console 2>&1" >> /etc/inittab + #fi + + else # assume Linux loadlprofile=/etc/profile.d/loadl if [ $NODESETSTATE == "genimage" ]; then loadlprofile=$installroot$loadlprofile fi if [ ! -e $loadlprofile.sh ]; then - echo 'PATH=$PATH:$linux_loadl_bin' > $loadlprofile.sh - echo 'PATH=$PATH:$linux_loadl_bin' > $loadlprofile.csh + echo "export PATH=$PATH:$linux_loadl_bin" > $loadlprofile.sh + echo "export PATH=$PATH:$linux_loadl_bin" > $loadlprofile.csh # Turn off LANG support since we did not install other msg catalogs echo 'export LC_CTYPE=POSIX' $loadlprofile.sh echo 'export LC_CTYPE=POSIX' $loadlprofile.csh @@ -106,7 +113,13 @@ chmod 777 $installroot$logdir/core # Owner set to 'loadl' userid, change if using a different userid chown -R loadl:loadl $installroot$logdir/ -if [ -f /etc/LoadL.cfg ] ; then +if [ "$NODESETSTATE" == "genimage" ] && [ -f /etc/LoadL.cfg ] ; then cp /etc/LoadL.cfg $installroot/etc/LoadL.cfg fi + +# UNCOMMENT to Start loadleveler during postscripts +#if [ $NODESETSTATE != "genimage" ]; then +# /usr/lpp/LoadL/resmgr/full/bin/llrctl start +#fi + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd new file mode 100644 index 000000000..1b7f652a0 --- /dev/null +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe.bnd @@ -0,0 +1,20 @@ +# AIX bundle package list for PE + +# POE +I:ppe.poe +I:ppe.pdb +I:ppe.man +I:ppe.loc.license + +# needed on login node +#I:ppe.hpct + +# LAPI +I:rsct.lapi +#I:rsct.sci + +# MetaCluster (checkpoint/restore) +I:mcr.rte +I:mdcr + + diff --git a/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install index 6f7d6de0a..0e0008cc3 100755 --- a/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install +++ b/xCAT-IBMhpc/share/xcat/IBMhpc/pe/pe_install @@ -20,7 +20,7 @@ OS=`uname` INSTALL_DIR='/install' PE_DIR=$pedir -if [ -z $PE_DIR ]; then +if [ -z "$PE_DIR" ]; then # try to default PE_DIR=$INSTALL_DIR/post/otherpkgs/$OSVER/$ARCH/pe fi @@ -94,21 +94,52 @@ if [ ! -f $installroot/etc/PNSD.cfg ]; then echo "log_file_size = 2097152" >> $installroot/etc/PNSD.cfg echo "socket_file = /tmp/PNSD" >> $installroot/etc/PNSD.cfg else + if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e 's/log_file_size = .*/log_file_size = 2097152/g' $installroot/etc/PNSD.cfg > $installroot/etc/PNSD.cfg.new + mv $installroot/etc/PNSD.cfg.new $installroot/etc/PNSD.cfg + else /usr/bin/sed -i 's/log_file_size = .*/log_file_size = 2097152/g' $installroot/etc/PNSD.cfg + fi + stopsrc -s pnsd + startsrc -s pnsd fi # Configure the poe.limits file if [ ! -f $installroot/etc/poe.limits ]; then echo "MP_POE_LAUNCH=all" > $installroot/etc/poe.limits else + if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' $installroot/etc/poe.limits > $installroot/etc/poe.limits.new + mv $installroot/etc/poe.limits.new $installroot/etc/poe.limits + else /usr/bin/sed -i 's/MP_POE_LAUNCH=.*/MP_POE_LAUNCH=all/g' $installroot/etc/poe.limits + fi fi # POE requires rsh to be running -/usr/bin/sed -i 's/disable.*/disable = no/g' $installroot/etc/xinetd.d/rsh -if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then - service xinetd restart +if [ "$OS" == "AIX" ]; then + /usr/bin/sed -e '/\/rshd/s/^#//g' $installroot/etc/inetd.conf > $installroot/etc/inetd.conf.new + mv /etc/inetd.conf.new /etc/inetd.conf + refresh -s inetd +else + /usr/bin/sed -i 's/disable.*/disable = no/g' $installroot/etc/xinetd.d/rsh + if [ $NODESETSTATE == "install" ] || [ $NODESETSTATE == "boot" ]; then + service xinetd restart + fi fi +# The Parallel Debugger on AIX requires a /proc filesystem +if [ "$OS" == "AIX" ]; then + if ! grep "/proc:" /etc/filesystems > /dev/null 2>&1 ; then + echo "/proc: " >> /etc/filesystems + echo " dev = /proc " >> /etc/filesystems + echo " vol = /proc " >> /etc/filesystems + echo " mount = true " >> /etc/filesystems + echo " check = false " >> /etc/filesystems + echo " free = false " >> /etc/filesystems + echo " vfs = procfs " >> /etc/filesystems + fi + mount /proc +fi