Installation guide

Installation is done by root user

It is highly recommended that you execute the installation operations as root user. This will automate the installation of HPC Gateway services and sudoers configuration.
It is still possible to run the installation as non root user, using “hpcgadmin” user. A script will have to be executed as root after the installation.

hpcgadmin user

The installation process requires that hpcgadmin user has been created before the installation with normal account that can be propagated to compute nodes and external nodes. The login shell MUST BE set to bash.

# /usr/sbin/useradd –m –s /bin/bash  hpcgadmin
# /opt/kusu/sbin/cdm-cfmsync –fpu   # Propagation of the user in compute nodes using CDM - your system might use another deployment tool

If /home and/or /opt are mounted directories (NFS, FEFS, SFS, Fiber, etc), ‘hpcgadmin’ user must be propagated to the shared server with the same UID and GID than the head node.

#!/usr/bin/env

Most of HPC Gateway scripts are using the shebang method to get path to python or bash binary. Make sure that /usr/bin/env is available. If not, ask the system administrator to make a link from /usr/bin/env to /bin/env if exists.

$ /usr/bin/env bash
exit

$ /usr/bin/env python
Python 2.7.10 (default, Aug  5 2016, 12:39:06)
[GCC 4.8.3 20140627 [gcc-4_8-branch revision 212064]] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>> exit()

Development packages

HPC Gateway depends on Python 2.7 to be installed. Therefore, first step of the installation is to compile and install python 2.7. To do so, it is required that some development packages are installed on the head node to make sure that python 2.7 can be successfully compiled. At least, following packages must be available:

gcc
zlib-devel
bzip2-devel
openssl-devel
ncurses-devel
sqlite-devel
readline-devel
tk-devel
gdbm-devel
db4-devel
libpcap-devel
xz-devel
php-cli

You can simply install them with this yum command

yum install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel php-cli

This list might not be exhaustive.

There is a script to check the presence of required packages: core/installer/shell/check_pre_requisites.sh

$ cat core/installer/shell/check_pre_requisites.sh
#!/usr/bin/env bash

module_list="zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel"

rpm -qa | sort -u> modules.list

for module in ${module_list}
do
   printf "%-30s : %s\n" "${module}" "$(grep ${module} modules.list)"
done

This is the list of development packages on a system that was known to have compiled python 2.7.

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)

# rpm -qa | grep "devel" | sort -u
GConf2-devel-2.28.0-6.el6.x86_64
ORBit2-devel-2.14.17-3.2.el6_3.x86_64
alsa-lib-devel-1.0.22-3.el6.x86_64
apr-devel-1.3.9-5.el6_2.x86_64
atk-devel-1.30.0-1.el6.x86_64
audit-libs-devel-2.2-2.el6.x86_64
binutils-devel-2.20.51.0.2-5.36.el6.x86_64
blas-devel-3.2.1-4.el6.x86_64
boost-devel-1.41.0-18.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
cairo-devel-1.8.8-3.1.el6.x86_64
check-devel-0.9.8-1.1.el6.x86_64
cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64
db4-devel-4.7.25-18.el6_4.x86_64
dbus-devel-1.2.24-7.el6_3.x86_64
dbus-glib-devel-0.86-6.el6_4.x86_64
elfutils-devel-0.152-1.el6.x86_64
elfutils-libelf-devel-0.152-1.el6.x86_64
evolution-data-server-devel-2.32.3-18.el6.x86_64
expat-devel-2.0.1-11.el6_2.x86_64
fftw-devel-3.2.1-3.1.el6.x86_64
fontconfig-devel-2.8.0-3.el6.x86_64
freetype-devel-2.3.11-14.el6_3.1.x86_64
ganglia-devel-3.6.0-1.p1.x86_64
gdbm-devel-1.8.0-36.el6.x86_64
gettext-devel-0.17-16.el6.x86_64
glib2-devel-2.26.1-3.el6.x86_64
glibc-devel-2.12-1.132.el6.x86_64
gnome-desktop-devel-2.28.2-11.el6.x86_64
gnome-keyring-devel-2.28.2-8.el6_3.x86_64
gnome-vfs2-devel-2.24.2-6.el6.x86_64
gnutls-devel-2.8.5-10.el6_4.2.x86_64
gstreamer-devel-0.10.29-1.el6.x86_64
gtk2-devel-2.20.1-4.el6.x86_64
gvfs-devel-1.4.3-15.el6.x86_64
hal-devel-0.5.14-11.el6.x86_64
intel-comp-l-all-devel-042-16.0.0-042.x86_64
intel-comp-l-ps-devel-042-16.0.0-042.x86_64
intel-comp-l-ps-ss-devel-042-16.0.0-042.x86_64
intel-gdb-gt-devel-7.6.0-042.x86_64
intel-icc-l-all-devel-042-16.0.0-042.x86_64
intel-icc-l-ps-devel-042-16.0.0-042.x86_64
intel-icc-l-ps-ss-devel-042-16.0.0-042.x86_64
intel-ifort-l-ps-devel-042-16.0.0-042.x86_64
intel-ipp-l-mt-devel-042-9.0.0-042.x86_64
intel-ipp-l-ps-st-devel-042-9.0.0-042.x86_64
intel-ipp-l-st-devel-042-9.0.0-042.x86_64
intel-mkl-devel-042-11.3.0-042.x86_64
intel-mkl-gnu-devel-042-11.3.0-042.x86_64
intel-mkl-ps-cluster-devel-042-11.3.0-042.x86_64
intel-mkl-ps-f95-devel-042-11.3.0-042.x86_64
intel-mkl-ps-gnu-devel-042-11.3.0-042.x86_64
intel-mkl-ps-mic-devel-042-11.3.0-042.x86_64
intel-mkl-ps-pgi-devel-042-11.3.0-042.x86_64
intel-mkl-sp2dp-devel-042-11.3.0-042.x86_64
intel-openmp-l-all-devel-042-16.0.0-042.x86_64
intel-openmp-l-ps-devel-042-16.0.0-042.x86_64
intel-openmp-l-ps-ss-devel-042-16.0.0-042.x86_64
intel-openmp-shared-l-all-devel-042-16.0.0-042.x86_64
intel-openmp-shared-l-ps-devel-042-16.0.0-042.x86_64
intel-tbb-devel-042-4.3.4-042.noarch
java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64
java-1.7.0-openjdk-devel-1.7.0.45-2.4.3.3.el6.x86_64
kernel-devel-2.6.32-431.el6.x86_64
keyutils-libs-devel-1.4-4.el6.x86_64
krb5-devel-1.10.3-10.el6_4.6.x86_64
lapack-devel-3.2.1-4.el6.x86_64
libICE-devel-1.0.6-1.el6.x86_64
libIDL-devel-0.8.13-2.1.el6.x86_64
libSM-devel-1.2.1-2.el6.x86_64
libX11-devel-1.5.0-4.el6.x86_64
libXau-devel-1.0.6-4.el6.x86_64
libXcomposite-devel-0.4.3-4.el6.x86_64
libXcursor-devel-1.1.13-6.20130524git8f677eaea.el6.x86_64
libXdamage-devel-1.1.3-4.el6.x86_64
libXext-devel-1.3.1-2.el6.x86_64
libXfixes-devel-5.0-3.el6.x86_64
libXft-devel-2.3.1-2.el6.x86_64
libXi-devel-1.6.1-3.el6.x86_64
libXinerama-devel-1.1.2-2.el6.x86_64
libXmu-devel-1.1.1-2.el6.x86_64
libXp-devel-1.0.0-15.1.el6.x86_64
libXrandr-devel-1.4.0-1.el6.x86_64
libXrender-devel-0.9.7-2.el6.x86_64
libXt-devel-1.1.3-1.el6.x86_64
libXtst-devel-1.2.1-2.el6.x86_64
libXxf86vm-devel-1.1.2-2.el6.x86_64
libacl-devel-2.2.49-6.el6.x86_64
libart_lgpl-devel-2.3.20-5.1.el6.x86_64
libattr-devel-2.4.44-7.el6.x86_64
libbonobo-devel-2.24.2-5.el6.x86_64
libbonoboui-devel-2.24.2-3.el6.x86_64
libcanberra-devel-0.22-1.el6.x86_64
libcap-ng-devel-0.6.4-3.el6_0.1.x86_64
libcgroup-devel-0.40.rc1-5.el6.x86_64
libcom_err-devel-1.41.12-18.el6.x86_64
libcroco-devel-0.6.2-5.el6.x86_64
libcurl-devel-7.19.7-37.el6_4.i686
libcurl-devel-7.19.7-37.el6_4.x86_64
libdrm-devel-2.4.45-2.el6.x86_64
libgcrypt-devel-1.4.5-11.el6_4.x86_64
libgdata-devel-0.6.4-2.el6.x86_64
libglade2-devel-2.6.4-3.1.el6.x86_64
libgnome-devel-2.28.0-11.el6.x86_64
libgnomecanvas-devel-2.26.0-4.el6.x86_64
libgnomeui-devel-2.24.1-4.el6.x86_64
libgpg-error-devel-1.7-4.el6.x86_64
libgsf-devel-1.14.15-5.el6.x86_64
libgweather-devel-2.28.0-5.el6.x86_64
libical-devel-0.43-6.el6.x86_64
libidn-devel-1.18-2.el6.x86_64
libjpeg-turbo-devel-1.2.1-1.el6.x86_64
libmng-devel-1.0.10-4.1.el6.x86_64
libnl-devel-1.1.4-2.el6.i686
libnotify-devel-0.5.0-1.el6.x86_64
libpng-devel-1.2.49-1.el6_2.x86_64
librsvg2-devel-2.26.0-5.el6_1.1.x86_64
libselinux-devel-2.0.94-5.3.el6_4.1.x86_64
libsepol-devel-2.0.41-4.el6.x86_64
libsoup-devel-2.28.2-4.el6.x86_64
libstdc  -devel-4.4.7-4.el6.i686
libstdc  -devel-4.4.7-4.el6.x86_64
libtasn1-devel-2.3-3.el6_2.1.x86_64
libvirt-devel-0.10.2-29.el6.x86_64
libvirt-java-devel-0.4.9-1.el6.noarch
libxcb-devel-1.8.1-1.el6.x86_64
libxml2-devel-2.7.6-14.el6.i686
libxml2-devel-2.7.6-14.el6.x86_64
libxslt-devel-1.1.26-2.el6_3.1.x86_64
mesa-libGL-devel-9.2-0.5.el6.x86_64
mesa-libGLU-devel-9.2-0.5.el6.x86_64
mesa-libGLw-devel-6.5.1-10.el6.x86_64
mpich2-devel-1.2.1-2.3.el6.x86_64
mysql-devel-5.1.71-1.el6.x86_64
ncurses-devel-5.7-3.20090208.el6.x86_64
nspr-devel-4.10.0-1.el6.x86_64
nss-devel-3.15.1-15.el6.x86_64
nss-softokn-devel-3.14.3-9.el6.x86_64
nss-softokn-freebl-devel-3.14.3-9.el6.x86_64
nss-util-devel-3.15.1-3.el6.x86_64
openldap-devel-2.4.23-32.el6_4.1.x86_64
openmotif-devel-2.3.3-6.1.el6_4.x86_64
openssl-devel-1.0.1e-30.el6.8.i686
openssl-devel-1.0.1e-30.el6.8.x86_64
pam-devel-1.1.1-17.el6.x86_64
pango-devel-1.28.1-7.el6_3.x86_64
pcre-devel-7.8-6.el6.x86_64
perl-devel-5.10.1-136.el6.x86_64
pixman-devel-0.26.2-5.el6_4.x86_64
polkit-devel-0.96-5.el6_4.x86_64
popt-devel-1.13-7.el6.x86_64
postgresql-devel-8.4.18-1.el6_4.x86_64
pulseaudio-libs-devel-0.9.21-14.el6_3.x86_64
pycairo-devel-1.8.6-2.1.el6.x86_64
pygobject2-devel-2.20.0-5.el6.x86_64
pygtk2-devel-2.16.0-3.el6.x86_64
python-devel-2.6.6-51.el6.x86_64
qt-devel-4.6.2-26.el6_4.x86_64
qt3-devel-3.3.8b-30.el6.x86_64
readline-devel-6.0-4.el6.x86_64
scalapack-mpich2-devel-2.0.2-1.fcdm.el6.x86_64
scalapack-openmpi-devel-2.0.2-1.fcdm.el6.x86_64
sqlite-devel-3.6.20-1.el6.x86_64
startup-notification-devel-0.10-2.1.el6.x86_64
systemtap-devel-2.3-3.el6.x86_64
tbb-devel-2.2-3.20090809.el6.x86_64
torque-devel-4.2.8-1.cdm.el6.x86_64
unixODBC-devel-2.2.14-12.el6_3.i686
xorg-x11-proto-devel-7.6-25.el6.noarch
zlib-devel-1.2.3-29.el6.i686
zlib-devel-1.2.3-29.el6.x86_64

Resource manager

HPC Gateway is integrated with following resource managers:

  • Torque
  • PBS-Pro
  • SGE
  • Slurm
  • LSF
  • OpenLava

If the resource manager is in place before HPC Gateway installation, the installer will try to detect and configure it during the installation. If it is not available or not found, it is possible to configure it after the HPC Gateway installation using hpcg_cluster_set_scheduler.py command (see Set cluster batch system).

Runlog directory

HPC Gateway uses a runlog directory (by default /home/hpcgadmin/hpcgateway/runlog) to hold batch output files and HPC Gateway system related files. This directory must be shared by the head node and compute nodes of the cluster.

  • By default it is set to /home/hpcgadmin/hpcgateway/runlog and is created during the HPC Gateway installation process
  • If /home is a mounted directory (NFS, FEFS, SFS, Fiber, etc), hpcgadmin user must be propagated to the shared server with the same UID and GID than the head node.

HPC Gateway included Software

The HPC Gateway installer package includes an will deploy the following packages by default into /opt/hpcg/external, regardless of whether they exist on the system already:

  • python = Python-2.7.10.tgz
  • pymongo = pymongo-3.2.10.tar.gz
  • setuptools = setuptools-18.2.tar.gz
  • requests = kennethreitz-requests-v2.8.1-11-gd290a9b.tar.gz
  • java = jdk-8u60-linux-x64.tar.gz
  • mongo = mongodb-linux-x86_64-3.0.6.tgz
  • jetty = jetty-distribution-9.3.2.v20150730.zip
  • dokuwiki = dokuwiki-5422200921b877a379e34cc4e0fee22a.tgz

Disk space

The minimum disk space required for HPC Gateway installation is around 2Gb for the core and minimum 10Gb for the repository:

  • python = 150 MB
  • java = 400 MB
  • mongo = 150 MB
  • jetty = 50 MB
  • dokuwiki = 50 MB
  • torii = 800 MB
  • cluster = 50 MB
  • repo = 10000 MB
  • tmpdir = 2000 MB

The repository (/opt/hpcg/repo by default) will contain the Mongo database that will contain all users activities. It is strongly advised to put this repository in a secure and extensible area.

  1. Login as root
  2. Untar the HPC Gateway package in a directory that is accessible by hpcgadmin user
  3. Change owner of the newly created directory that contain the HPC Gateway installer scripts to hpcgadmin
  4. Go to the newly created directory that contain the HPC Gateway installer scripts
  5. Run hcs.install.sh
$ su -
password:
# cd /tmp
# tar xf /tmp/hpcgateway.0.8.12.hcs.full.unix.tgz

# chown -R hpcgadmin:hpcgadmin  hpcgateway.0.8.12.hcs.full.unix

# cd hpcgateway.0.8.12.hcs.full.unix

# ls -l
total 20
drwxr-xr-x 5 root root 4096 Oct 20 12:14 HPCGInstaller
-rw-r--r-- 1 root root  194 Oct 13 21:13 INSTALL.txt
-rwxr-xr-x 1 root root  735 Oct 23 10:28 hcs.driver.sh
-rwxr-xr-x 1 root root  211 Oct 14 09:36 hcs.install.sh
-rwxr-xr-x 1 root root  214 Oct 14 09:38 hcs.update.sh

# ./hcs.install.sh

... wait for installation is complete ...

2015/11/26 21:05:30 - INFO  - If installation is successful, you can:
2015/11/26 21:05:30 - INFO  -  1- source /opt/hpcg/core/etc/profile.sh
2015/11/26 21:05:30 - INFO  -  2- start HPC Gateway with command hpcg.sh
2015/11/26 21:05:30 - INFO  -  3- Connect HPC Gateway web portal on https://hcs01:8443/torii
2015/11/26 21:05:30 - INFO  -        login = hpcgadmin

The HPC Gateway installation from scratch takes about 10 minutes in up to date systems. During installation, you can follow detailed messages in /opt/hpcg/logs/admin/hpcg_install.log.

# tail -f /opt/hpcg/logs/admin/hpcg_install.log

Here is a sample of full installation output.

At the end of the installation, check if there is no ERROR messages. If installation is successfully completed, the servers will be up and running, and HPC Gateway is available at https://<IP_of_the_server>:8443/torii

Check the status of HPC Gateway servers by typing:

$ source /opt/hpcg/core/etc/profile.sh
$ hpcg.sh -s status
 => Status  mongo                : running [27850]
 => Status  jetty                : running [22000]
 => Status  php                  : running [21256]
 => Status  cluster.rnd01        : running [24204]

Post installation

HPC Gateway is configured to use https protocol. During the installation, SSL certificate is generated in /opt/hpcg/repo/etc/sys/root/hpcgateway.keystore. To remove the SSL security issue when connecting to the portal using https, it is needed to set an authorized certificate that is signed by a valid certificate authority.

Notes:

  • Even though it is not recommended, HPC gateway can still be used with normal http protocol by connecting to http://<IP_of_the_server>:8080/torii

All HPC Gateway administration task must be done by hpcgadmin user. The HPC Gateway environment must be sourced, prior any administration.

$ source /opt/hpcg/core/etc/profile.sh

It is strongly recommended to put this source file into the hpcgadmin .profile.

Here is an example of environment you should get:

$ source /opt/hpcg/core/etc/profile.sh
$ env | grep HPCG_ | sort -u
HPCG_ADMIN=hpcgadmin
HPCG_ADMIN_LOGS=/opt/hpcg/logs/admin
HPCG_HOME=/opt/hpcg
HPCG_JAVA_HOME=/opt/hpcg/external/jdk1.8.0_60
HPCG_JETTY_BASE=/opt/hpcg/core/jetty
HPCG_JETTY_HOME=/opt/hpcg/external/jetty-distribution-9.3.2.v20150730
HPCG_JETTY_HOST=hcs01
HPCG_JETTY_HTTPS=8443
HPCG_JETTY_LOGS=/opt/hpcg/logs/jetty
HPCG_JETTY_PORT=8080
HPCG_LOGS=/opt/hpcg/logs
HPCG_MONGO_HOME=/opt/hpcg/external/mongodb-linux-x86_64-3.0.6
HPCG_MONGO_HOST=hcs01
HPCG_MONGO_LOGS=/opt/hpcg/logs/mongo
HPCG_MONGO_PORT=27017
HPCG_PIDS=/opt/hpcg/live/pids
HPCG_PYTHON_HOME=/opt/hpcg/external/python2.7
HPCG_REPO=/opt/hpcg/repo

Installation structure

Default installation of HPC Gateway is under /opt/hpcg. This location is referred by the environment variable HPCG_HOME. The default structure of HPC Gateway is like:

  • core: contains HPC Gateway core. Usually an update of HPC Gateway only updates this core directory.
  • external: contains all external packages needed by HPC Gateway, like python, java, mongo, jetty, dokuwiki.
  • live: contains files that are automatically generated during the life of HPC Gateway processes.
  • logs: contains logs for all HPC Gateway servers.
  • repo: contains customer information including mongo database and wikis. This directory should never be removed !
$ tree -L 2 ${HPCG_HOME}
/opt/hpcg
|-- core
|   |-- bin
|   |-- cluster
|   |-- doc
|   |-- etc
|   |-- installer
|   |-- jetty
|   |-- mongo
|   |-- sys
|   `-- tsuite
|-- external
|   |-- dokuwiki
|   |-- jdk1.8.0_60
|   |-- jetty-distribution-9.3.2.v20150730
|   |-- mongodb-linux-x86_64-3.0.6
|   |-- python2.7
|   `-- sfway
|-- live
|   |-- clusters
|   `-- pids
|-- logs
|   |-- admin
|   |-- clusters
|   |-- dokuwiki
|   |-- jetty
|   |-- mongo
|   `-- sfway
|-- repo
|   |-- backup
|   |-- data
|   |-- dump
|   |-- etc
|   `-- installer
`-- version

34 directories, 2 files

Servers status

In normal operation, HPC Gateway has 3 main processes:

  • Mongo process to handle Mongo database
  • Jetty process to handle Web server (for HPC Gateway desktop aka torii, Dokuwiki and Cluster Manager)
  • Cluster Agent process to interact with the cluster (file explorer, job submitter, etc …)

In addition, there are:

  • php-cgi processes to serve Dokuwiki
  • sfway processes to manage the Cluster Manager back-end

Check the status of HPC Gateway servers by using hpcg.sh command:

$ source /opt/hpcg/core/etc/profile.sh
$ hpcg.sh -s status
 => Status  mongo                : running [27850]
 => Status  jetty                : running [22000]
 => Status  php                  : running [21256]
 => Status  cluster.rnd01        : running [24204]

One can list all HPC Gateway processes by using the ps command, like (adapt it to your environment):

$ ps -edf | grep "^10020" | grep -v sshd | grep -v "bash" | grep -v "ps" | grep -v "grep"
10020     7751     1  0 Nov26 ?        00:00:00 /usr/bin/php-cgi -b 127.0.0.1:9000
10020     7754  7751  0 Nov26 ?        00:00:03 /usr/bin/php-cgi -b 127.0.0.1:9000
10020     7755  7751  0 Nov26 ?        00:00:01 /usr/bin/php-cgi -b 127.0.0.1:9000
10020    22911     1  2 Nov26 ?        00:31:41 /opt/hpcg/external/mongodb-linux-x86_64-3.0.6/bin/mongod
   --port 27017 --dbpath /opt/hpcg/repo/data/mongo --logpath /opt/hpcg/logs/mongo/mongo.log
10020    24960     1  0 Nov26 ?        00:02:18 /opt/hpcg/external/jdk1.8.0_60/bin/java
   -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7006
   -Djetty.logging.dir=/opt/hpcg/logs/jetty
   -Djetty.home=/opt/hpcg/external/jetty-distribution-9.3.2.v20150730
   -Djetty.base=/opt/hpcg/core/jetty -Djava.io.tmpdir=/tmp
   -jar /opt/hpcg/external/jetty-distribution-9.3.2.v20150730/start.jar
   jetty.http.port=8080 jetty.ssl.port=8443 jetty.state=/opt/hpcg/live/pids/jetty.state
   jetty-logging.xml jetty-started.xml
10020    25095     1  0 Nov26 ?        00:01:50 /opt/hpcg/external/jdk1.8.0_60/bin/java
   -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7007
   -Dtorii.agent.cluster.name=hcs01
   -Djava.util.logging.config.file=/opt/hpcg/repo/etc/logging.hcs01.properties
   -Dtorii.mongo.host.name=hcs01
   -Dtorii.mongo.host.port=27017
   -jar /opt/hpcg/live/clusters/hcs01/lib/cluster-agent-jar-with-dependencies.jar

Servers logs

Log files are located (by default) in /opt/hpcg/logs. Whenever support is requested, send log directories to the support staff.

Log admin

${HPCG_LOGS}/logs/admin contains logs for:

  • installation/updates
  • cron processes
  • server start and stop

Log mongo

${HPCG_LOGS}/logs/mongo contains logs for mongo

Log jetty

${HPCG_LOGS}/logs/jetty contains logs for jetty

Log clusters

${HPCG_LOGS}/logs/clusters contains logs for cluster agents

First connection

Open your favorite browser and connect to: https://<IP_of_the_server>:8443/torii

Note: the development is done using Google Chrome browser. Therefore, we recommend to use this browser. If you see miss behavior using another browser, please consider to try Google Chrome to check if this works, then report the problem to your support staff.

Login with hpcgadmin. The password is the current Unix password that is set to the server node.

Wait few seconds, then the HPC Gateway desktop should be available. If there is a problem to open the desktop, please check the troubleshooting section and contact the support staff.

Then,

  • Open the HPC Gateway menu
  • Select the File Explorer tool
  • Browse the file system (server ⇒ Home)

The home directory of hpcgadmin should be listed.

desktop_fileexplorer.jpg

All HPC Gateway administration task must be done by hpcgadmin user. The HPC Gateway environment must be sourced, prior any administration.

$ source /opt/hpcg/core/etc/profile.sh

It is strongly recommended to put this source file into the hpcgadmin .profile.

Here is an example of environment you should get:

$ source /opt/hpcg/core/etc/profile.sh
$ env | grep HPCG_ | sort -u
HPCG_ADMIN=hpcgadmin
HPCG_ADMIN_LOGS=/opt/hpcg/logs/admin
HPCG_HOME=/opt/hpcg
HPCG_JAVA_HOME=/opt/hpcg/external/jdk1.8.0_60
HPCG_JETTY_BASE=/opt/hpcg/core/jetty
HPCG_JETTY_HOME=/opt/hpcg/external/jetty-distribution-9.3.2.v20150730
HPCG_JETTY_HOST=hcs01
HPCG_JETTY_HTTPS=8443
HPCG_JETTY_LOGS=/opt/hpcg/logs/jetty
HPCG_JETTY_PORT=8080
HPCG_LOGS=/opt/hpcg/logs
HPCG_MONGO_HOME=/opt/hpcg/external/mongodb-linux-x86_64-3.0.6
HPCG_MONGO_HOST=hcs01
HPCG_MONGO_LOGS=/opt/hpcg/logs/mongo
HPCG_MONGO_PORT=27017
HPCG_PIDS=/opt/hpcg/live/pids
HPCG_PYTHON_HOME=/opt/hpcg/external/python2.7
HPCG_REPO=/opt/hpcg/repo

Installation structure

Default installation of HPC Gateway is under /opt/hpcg. This location is referred by the environment variable HPCG_HOME. The default structure of HPC Gateway is like:

  • core: contains HPC Gateway core. Usually an update of HPC Gateway only updates this core directory.
  • external: contains all external packages needed by HPC Gateway, like python, java, mongo, jetty, dokuwiki.
  • live: contains files that are automatically generated during the life of HPC Gateway processes.
  • logs: contains logs for all HPC Gateway servers.
  • repo: contains customer information including mongo database and wikis. This directory should never be removed !
$ tree -L 2 ${HPCG_HOME}
/opt/hpcg
|-- core
|   |-- bin
|   |-- cluster
|   |-- doc
|   |-- etc
|   |-- installer
|   |-- jetty
|   |-- mongo
|   |-- sys
|   `-- tsuite
|-- external
|   |-- dokuwiki
|   |-- jdk1.8.0_60
|   |-- jetty-distribution-9.3.2.v20150730
|   |-- mongodb-linux-x86_64-3.0.6
|   |-- python2.7
|   `-- sfway
|-- live
|   |-- clusters
|   `-- pids
|-- logs
|   |-- admin
|   |-- clusters
|   |-- dokuwiki
|   |-- jetty
|   |-- mongo
|   `-- sfway
|-- repo
|   |-- backup
|   |-- data
|   |-- dump
|   |-- etc
|   `-- installer
`-- version

34 directories, 2 files

Servers status

In normal operation, HPC Gateway has 3 main processes:

  • Mongo process to handle Mongo database
  • Jetty process to handle Web server (for HPC Gateway desktop aka torii, Dokuwiki and Cluster Manager)
  • Cluster Agent process to interact with the cluster (file explorer, job submitter, etc …)

In addition, there are:

  • php-cgi processes to serve Dokuwiki
  • sfway processes to manage the Cluster Manager back-end

Check the status of HPC Gateway servers by using hpcg.sh command:

$ source /opt/hpcg/core/etc/profile.sh
$ hpcg.sh -s status
 => Status  mongo                : running [27850]
 => Status  jetty                : running [22000]
 => Status  php                  : running [21256]
 => Status  cluster.rnd01        : running [24204]

One can list all HPC Gateway processes by using the ps command, like (adapt it to your environment):

$ ps -edf | grep "^10020" | grep -v sshd | grep -v "bash" | grep -v "ps" | grep -v "grep"
10020     7751     1  0 Nov26 ?        00:00:00 /usr/bin/php-cgi -b 127.0.0.1:9000
10020     7754  7751  0 Nov26 ?        00:00:03 /usr/bin/php-cgi -b 127.0.0.1:9000
10020     7755  7751  0 Nov26 ?        00:00:01 /usr/bin/php-cgi -b 127.0.0.1:9000
10020    22911     1  2 Nov26 ?        00:31:41 /opt/hpcg/external/mongodb-linux-x86_64-3.0.6/bin/mongod
   --port 27017 --dbpath /opt/hpcg/repo/data/mongo --logpath /opt/hpcg/logs/mongo/mongo.log
10020    24960     1  0 Nov26 ?        00:02:18 /opt/hpcg/external/jdk1.8.0_60/bin/java
   -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7006
   -Djetty.logging.dir=/opt/hpcg/logs/jetty
   -Djetty.home=/opt/hpcg/external/jetty-distribution-9.3.2.v20150730
   -Djetty.base=/opt/hpcg/core/jetty -Djava.io.tmpdir=/tmp
   -jar /opt/hpcg/external/jetty-distribution-9.3.2.v20150730/start.jar
   jetty.http.port=8080 jetty.ssl.port=8443 jetty.state=/opt/hpcg/live/pids/jetty.state
   jetty-logging.xml jetty-started.xml
10020    25095     1  0 Nov26 ?        00:01:50 /opt/hpcg/external/jdk1.8.0_60/bin/java
   -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7007
   -Dtorii.agent.cluster.name=hcs01
   -Djava.util.logging.config.file=/opt/hpcg/repo/etc/logging.hcs01.properties
   -Dtorii.mongo.host.name=hcs01
   -Dtorii.mongo.host.port=27017
   -jar /opt/hpcg/live/clusters/hcs01/lib/cluster-agent-jar-with-dependencies.jar

Servers logs

Log files are located (by default) in /opt/hpcg/logs. Whenever support is requested, send log directories to the support staff.

Log admin

${HPCG_LOGS}/logs/admin contains logs for:

  • installation/updates
  • cron processes
  • server start and stop

Log mongo

${HPCG_LOGS}/logs/mongo contains logs for mongo

Log jetty

${HPCG_LOGS}/logs/jetty contains logs for jetty

Log clusters

${HPCG_LOGS}/logs/clusters contains logs for cluster agents

First connection

Open your favorite browser and connect to: https://<IP_of_the_server>:8443/torii

Note: the development is done using Google Chrome browser. Therefore, we recommend to use this browser. If you see miss behavior using another browser, please consider to try Google Chrome to check if this works, then report the problem to your support staff.

Login with hpcgadmin. The password is the current Unix password that is set to the server node.

Wait few seconds, then the HPC Gateway desktop should be available. If there is a problem to open the desktop, please check the troubleshooting section and contact the support staff.

Then,

  • Open the HPC Gateway menu
  • Select the File Explorer tool
  • Browse the file system (server ⇒ Home)

The home directory of hpcgadmin should be listed.

desktop_fileexplorer.jpg

Signing certificate procedure

Open your favorite browser and connect to: **<