Installation Notes: DRMS
Related:
Pre-requisites
- JSOC wiki's DRMS Setup page
- Requirements:
- reserved disk space for SUMS disk cache
- PostgreSQL (eSDO: running 8.1.4) (make sure postmaster is running)
- JSOC software tree from CVS (look at CVS Initialization)
CVS Initialization
- JSCO wiki's CVS Initialization page
- Create JSOC CVS structure:
- select a directory to be your JSOC working directory, referred to as $JSOCDIR here (note capital letters - using new JSOC tree, not older jsoc tree).
- % mkdir $JSOCDIR
- either run .setJSOCenv or set JSOCROOT, JSOCMACHINE, CVS_RSH, and CVSROOT as described in the script
- Getting JSOC_MACHINE variable by hand for eSDO server msslxx:
- bash$ OS=`uname -s`
- bash$ CPU=`uname -m
- since OS equals 'Linux' and CPU equals 'i686', set JSOC_MACHINE to linux_ia32
- final eSDO setup (added to .bash_profile):
- $JSOCROOT: $JSOCDIR
- $JSOC_MACHINE: linux_ia32
- $CVS_RSH: ssh
- $CVSROOT: :ext:sunroom.stanford.edu:/home/cvsuser/cvsroot
- Check DRMS software out of JSOC CVS - use "JSOC" tree (approximately 10 MB)
- Set up commandline CVS access to sunroom.solarport.edu (contact JSOC)
- Get software from JSOC CVS GUI
- ssh to JSOC machine and checkout jsoc directory from CVS: cd cvs, cvs checkout jsoc (can tar / gzip down to 8 M)
- See CVS Initialization page for instructions on updates to CVS
- See instructions for JSOC tree at JSOC File Struct page
Configuration / Compilation Notes
- Note: icc C / C++ compiler installed, but compilation throws errors with "SIG_BLOCK". Specify compiler = gcc in make_basic.mk instead.
- Note: ifort FORTRAN compiler not installed. Specify F77 = f77 in make_basic.mk instead.
Configuration: Non-root installation of PSQL
Changes made to JSOC files for eSDO server at MSSL
Original |
Customized |
*Affected file(s) |
PGIPATH = /usr/include/pgsql |
PGIPATH = /disk/d2/griduser/pgsql/include |
make_basic.mk |
-lpq |
-L/disk/d2/griduser/pgsql/lib -Wl,-E,-rpath=/disk/d2/griduser/pgsql/lib -lpq |
make_basic.mk, Rules.mk |
Note: -lpq change occurs in the following locations:
- $JSOCDIR/make_basic.mk - $(SERVEREXE):
- $JSOCDIR/make_basic.mk - $(MODEXE):
- $JSOCDIR/base/sums/apps/Rules.mk - LL_TGT_$(d)
- $JSOCDIR/proj/datacapture/apps/Rules.mk - $(EXE_$(d))
- $JSOCDIR/proj/lev0/apps/Rules.mk - $(SUMEXE_$(d))
Note: change
-L/home/production/cvs/jsoc/lib/saved/$(JSOC_MACHINE) to
-L$(JSOCROOT)/lib/$(JSOC_MACHINE) in the following locations:
- proj/datacapture/apps/Rules.mk - $(EXE_$(d))
- proj/lev0/apps/Rules.mk - $(SUMEXE_$(d))
Compilation with gcc:
- % ./configure
- % make -j 4
Result:
FAIL with error
/disk/d2/griduser/JSOC/build/ccd-gcc -g -o proj/dsdsmigr/apps/sum_pe_svc proj/dsdsmigr/apps/sum_pe_svc.o base/drms/libs/main/c/libjsoc_main.a base/drms/libs/api/server/libdrmsserver.a base/libs/db/server/libdbserver.a base/sums/libs/api/libsumsapi.a base/libs/threads/libthreadutil.a base/libs/ricecomp/libricecomp.a base/libs/cmdparams/libcmdparams.a base/libs/misc/libmisc.a base/libs/dstruct/libdstruct.a base/libs/timeio/libtimeio.a base/sums/libs/pg/libsumspg.a -L/disk/d2/griduser/pgsql/lib -Wl,-E,-rpath=/disk/d2/griduser/pgsql/lib -lpq -lz -lcrypto -lpthread -lm
/usr/bin/ld: cannot find -lhmicomp_egse
collect2: ld returned 1 exit status
make[1]: * [proj/lev0/apps/ingest_lev0] Error 1
make[1]: * Waiting for unfinished jobs....
/usr/bin/ld: cannot find -lhmicomp_egse
collect2: ld returned 1 exit status
make[1]: * [proj/datacapture/apps/soc_pipe_scp] Error 1
/usr/bin/ld: cannot find -lhmicomp_egse
collect2: ld returned 1 exit status
make[1]: * [proj/datacapture/apps/ingest_tlm] Error 1
make: * [_linux_ia32] Error 2
Note: Root installation, permanent licence of Intel ICC Pro compiler with MKL bundled exists, but gcc was used for compilation. See
InstallICC for icc installation notes.
Set up DRMS
DRMS tables in postgres
Follow instructions to create new database user at
http://jsoc.stanford.edu/trac/wiki/NewDrmsUser
. 3 steps: 1) add new user to postgres db, 2) run masterlists to create namespace, 3) set up defause session namespace.
Create admin schema
Do once:
- % psql jsoc -U postgres
- jsoc=# create schema admin;
- jsoc=# grant usage on schema admin to public;
- jsoc=# create table admin.ns (name text not null, nsgrp text not null, owner text not null);
- jsoc=# grant select on admin.ns to public;
- jsoc=# create table admin.sessionns (username text not null, sessionns text not null);
- jsoc=# grant select on admin.sessionns to public;
Create new db user
Do 1 to n times:
- jsoc=# create role mssl_eca;
- jsoc=# alter user mssl_eca with password '*******';
- jsoc=# grant jsoc to mssl_eca;
Run masterlists
Do 1 to n times:
*
% masterlists dbuser=mssl_eca JSOC_DBHOST=msslxx JSOC_DBNAME=jsoc namespace=mssl_eca nsgrp=user (Success!)
Set up default session namespace
Do 1 to n times:
- % psql jsoc -U postgres
- jsoc=# insert into admin.sessionns values ('mssl_eca', 'mssl_eca'); Success!
Set up SUMS
Create SUMS tables in postgres
Run scripts create_tables.sql, sum_file.sql, and sum_group.sql in $JSOCDIR/cvs/jsoc/src/base/sum/Postgres (creates tables listed in
DRMSSetup):
- % psql jsoc -f create_tables.sql
- % psql jsoc -f sum_file.sql
- % psql jsoc -f sum_group.sql
Set up SUMS disk cache
See
http://jsoc.stanford.edu/trac/wiki/DRMSSetup
. SUMS directory area must be owned by use "production" in group "SOI" with permissions mask 8354.
On msslxx: users production and griduser are in SOI with mask 2775. SUMS directory currently /full/path/to/3/production.
Integrate Local DRMS / SUMS with JSOC DRMS / SUMS
--
ElizabethAuden - 17 Jul 2007