DPM SL4 64bit

From EGEE-see WIki

Jump to: navigation, search

AEGIS01-PHY-SCL notes on installing and configuring DPM-MySQL server and DPM disk on SL4.5 (64 bit)

In order to verify installation and configuration process of DPM-MySQL server and DPM nodes on SL4 64 bit, we at AEGIS01-PHY-SCL managed to do it successfully with few workarounds and resolved bugs. These notes provide instructions on what we have done. Deployment server was Intel Xeon Dual-Core based, but it should work on other compatible x86_64 architectures as well.

Below are given minimal steps necessary for installing and configuring fully operational DPM-MySQL server and DPM node using YAIM-4.0.0-12 and glite-dm repository.

All additional RPMs mentioned in this guide can be found in AEGIS01-PHY-SCL SL4 repository. All commands are issued as root user.


1) OS Installation

We have chosen custom installation of SL4.5 with only three packet groups: APT, YUM and Compatibility Arch Support. You can use your own kickstart file, of course.


2) Update and consolidation of SL4.5 installation

Default package management tool that SL4.x and YAIM-3.1 or YAIM-4.0 use is yum. In /etc/yum.repos.d/ it is necessary to add the following files to enable additional repositories:

glite-dm.repo

[main]
[glite-dm]
name=gLite Data Management Release Candidate RPMs for SLC4
baseurl=http://glite-dm.web.cern.ch/glite-dm/slc4/$basearch
gpgcheck=0
enabled=1
protect=1

lcg-ca.repo

[CA]
name=CAs
baseurl=http://linuxsoft.cern.ch/LCG-CAs/current
enabled=1

jpackage5.0.repo

[main]
[jpackage17-generic]
name=JPackage 1.7, generic
baseurl=http://mirrors.dotsrc.org/jpackage/1.7/generic/free/
enabled=1
protect=1
    
[jpackage17-generic-nonfree]
name=JPackage 1.7, generic non-free
baseurl=http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/
enabled=1
protect=1
   
[main]
[jpackage5-generic]
name=JPackage 5, generic
baseurl=http://mirrors.dotsrc.org/jpackage/5.0/generic/free/
enabled=1
protect=1

[jpackage5-generic-nonfree]
name=JPackage 5, generic non-free
baseurl=http://mirrors.dotsrc.org/jpackage/5.0/generic/non-free/
enabled=1
protect=1

We suggest that you disable the following repos:

atrpms.repo
dag.repo
sl4x-contrib.repo
sl-rhaps.repo

We also suggest that you enable the following repos:

sl4x.repo
sl4x-errata.repo
sl4x-fastbugs.repo
sl-bugfix-46.repo
sl-fastbugs.repo

Other repos can be removed (or disabled as well). We also added these packages:

yum install rpm-build
yum install gcc
yum install kernel-smp-devel
yum install kernel-devel

After managing repositories, you should update the node, so execute:

yum update

This action will probably upgrade the kernel. If so, you need to verify /boot/grub/grub.conf that the version appropriate for your hardware is used (smp, largesmp, hugemem). Reboot the system.



3) Java Installation

After OS customization, java-1.5 should be installed. To install it, it is necessary to go to SUN's Java web page and download JDK 5.0 Update 13 (latest version update). We used "Linux RPM in self-extracting file" jdk-1_5_0_13-linux-amd64-rpm.bin to instal jdk, but we also had to download "Linux self-extracting file" jdk-1_5_0_13-linux-amd64.bin in order to make java-1.5.0-sun-1.5.0.13-1jpp.x86_64.rpm and java-1.5.0-sun-devel-1.5.0.13-1jpp.x86_64.rpm packages, as suggested in Steve Traylen's guide.

To make and install those two packages, do the following:

rpm --import http://www.jpackage.org/jpackage.asc
rpm -Uvh http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.13-1jpp.nosrc.rpm
mv jdk-1_5_0_13-linux-amd64.bin /usr/src/redhat/SOURCES/
rpmbuild -ba /usr/src/redhat/SPECS/java-1.5.0-sun.spec  
yum install xorg-x11-deprecated-libs
rpm -Uvh /usr/src/redhat/RPMS/x86_64/java-1.5.0-sun-1.5.0.13-1jpp.x86_64.rpm
rpm -Uvh /usr/src/redhat/RPMS/x86_64/java-1.5.0-sun-devel-1.5.0.13-1jpp.x86_64.rpm
chmod u+x jdk-1_5_0_13-linux-amd64-rpm.bin
./jdk-1_5_0_13-linux-amd64-rpm.bin

After this step, java is finally installed, and you can perform:

yum update

4) Adjust services/daemons started at the boot time

Installation of SL4.5 by default sets an excessive amount of services/daemons to be started at boot - it would be both security and performance-wise to disable all the unnecessary ones. It is also recommended to change the default runlevel to 3 in /etc/inittab. We especially suggest that you disable yum auto-update feature, since this may bring trouble when new updates (requiring reconfiguration of WNs) appear, and are installed automatically. At our site we left the following services to start at boot time:

# cd /etc/rc3.d/
# ls S*
/etc/rc3.d/S00microcode_ctl
/etc/rc3.d/S10network
/etc/rc3.d/S12syslog
/etc/rc3.d/S13irqbalance
/etc/rc3.d/S13portmap 
/etc/rc3.d/S14nfslock
/etc/rc3.d/S25netfs
/etc/rc3.d/S26lm_sensors
/etc/rc3.d/S55sshd
/etc/rc3.d/S56rawdevices
/etc/rc3.d/S56xinetd
/etc/rc3.d/S90crond
/etc/rc3.d/S99local

5) Adjust file systems

If you use shared file system, it is necessary to configure new WN to mount it automatically and with proper permissions. Also, if you use scratch space for jobs on WNs, you need to configure it prior to jobs arriving at the new WN. We are mounting /home, /var/cache/yum and /opt/exp_soft file systems from NFS server.



6) NTP configuration

As usual, NTP needs to be configured and verified. This is sufficent (be sure to change relevant IP addresses):

# cat /etc/ntp.conf 
restrict default noquery notrust nomodify
restrict 127.0.0.1
restrict 147.91.84.0 mask 255.255.255.0
restrict 129.132.2.21
server 129.132.2.21
restrict 131.188.3.220
server 131.188.3.220
driftfile /etc/ntp.drift
logfile /var/log/ntp.log
# ls -l /etc/ntp.drift
-rw-r--r--  1 ntp ntp 0 Aug 29 12:02 /etc/ntp.drift

Note the ownership of ntp.drift file. Also note that ntp must be started and enabled to be started at boot time.



7) Certification Authorities

yum install lcg-CA



8) DPM Installation:

In order to successfully install DPM MySQL server, it is necessary to remove installed mysql packages from SL repositories, and to install newer version:

yum remove mysql.i386

From http://glite.phy.bg.ac.yu/GLITE-3/SL4-DPM/ or MySQL download page, download following packages:

MySQL-client-standard-4.1.22-0.rhel4.x86_64.rpm
MySQL-devel-standard-4.1.22-0.rhel4.x86_64.rpm
MySQL-server-standard-4.1.22-0.rhel4.x86_64.rpm
MySQL-shared-standard-4.1.22-0.rhel4.x86_64.rpm
perl-DBD-MySQL-2.9004-3.1.src.rpm

and then install them by:

rpm -Uvh MySQL-client-standard-4.1.22-0.rhel4.x86_64.rpm \
     MySQL-devel-standard-4.1.22-0.rhel4.x86_64.rpm \
     MySQL-server-standard-4.1.22-0.rhel4.x86_64.rpm \
     MySQL-shared-standard-4.1.22-0.rhel4.x86_64.rpm \
     perl-DBD-MySQL-2.9004-3.1.src.rpm

Add DAG repository in /etc/yum.repos.d/dag.repo

[main]
[dag]
name=DAG (http://dag.wieers.com) additional RPMS repository
baseurl=http://linuxsoft.cern.ch/dag/redhat/el4/en/$basearch/dag
gpgkey=http://linuxsoft.cern.ch/cern/slc4X/$basearch/docs/RPM-GPG-KEY-dag
gpgcheck=1
enabled=1

After this, if you are installing DPM server perform:

yum update
yum install glite-SE_dpm_disk glite-SE_dpm_mysql

Or, in order to install only DPM disk:

yum update
yum install glite-SE_dpm_disk

In both cases you need to add more packages:

yum install lcg-info-templates
yum install log4j
yum install bouncycastle
wget http://eticssoft.web.cern.ch/eticssoft/repository/externals/log4cxx/0.9.7/slc4_x86_64_gcc346/log4cxx-0.9.7-1.slc4.x86_64.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/externals/xerces-c/2.7.0/slc4_x86_64_gcc346/xerces-c-2.7.0-1.slc4.x86_64.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.security.util-java/1.3.8/noarch/glite-security-util-java-1.3.8-2.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.security.trustmanager/1.8.11/noarch/glite-security-trustmanager-1.8.11-1.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.stubs-servlet-java/5.0.10/noarch/glite-rgma-stubs-servlet-java-5.0.10-1.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.api-python/5.0.12/noarch/glite-rgma-api-python-5.0.12-3.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.log4j/5.0.2/noarch/glite-rgma-log4j-5.0.2-2.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.command-line/5.0.5/noarch/glite-rgma-command-line-5.0.5-2.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.base/5.0.7/noarch/glite-rgma-base-5.0.7-1.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.api-java/5.0.5/noarch/glite-rgma-api-java-5.0.5-3.noarch.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.api-c/5.0.10/slc4_x86_64_gcc346/glite-rgma-api-c-5.0.10-6.slc4.x86_64.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.api-cpp/5.0.15/slc4_x86_64_gcc346/glite-rgma-api-cpp-5.0.15-5.slc4.x86_64.rpm
wget http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.rgma.log4cpp/5.0.3/slc4_x86_64_gcc346/glite-rgma-log4cpp-5.0.3-2.slc4.x86_64.rpm

rpm -Uvh log4cxx-0.9.7-1.slc4.x86_64.rpm \
    xerces-c-2.7.0-1.slc4.x86_64.rpm \ 
    glite-security-util-java-1.3.8-2.noarch.rpm \ 
    glite-security-trustmanager-1.8.11-1.noarch.rpm \
    glite-rgma-stubs-servlet-java-5.0.10-1.noarch.rpm \
    glite-rgma-api-python-5.0.12-3.noarch.rpm \
    glite-rgma-log4j-5.0.2-2.noarch.rpm \
    glite-rgma-command-line-5.0.5-2.noarch.rpm \
    glite-rgma-base-5.0.7-1.noarch.rpm \
    glite-rgma-api-java-5.0.5-3.noarch.rpm \
    glite-rgma-api-c-5.0.10-6.slc4.x86_64.rpm \
    glite-rgma-api-cpp-5.0.15-5.slc4.x86_64.rpm \
    glite-rgma-log4cpp-5.0.3-2.slc4.x86_64.rpm

9) YAIM/system customization and bug workarounds

mkdir /scratch
chmod 1777 /scratch
cd /opt/lcg
ln -s ../glite/opt/lcg/sbin/ sbin
ln -s ../glite/opt/lcg/libexec/  
cd /opt/lcg/etc/
for i in ../../glite/opt/lcg/etc/* ; do ln -s $i ; done
cd /usr/sbin/
ln -s slapd slapdd

In /opt/glite/yaim/functions/config_DPM_rfio change line 48 from:

cat /etc/sysconfig/rfiod | grep -v -E 'DPNS_HOST|DPM_HOST' > /etc/sysconfig/rfiod

to:

cat /etc/sysconfig/rfiod.templ | grep -v -E 'DPNS_HOST|DPM_HOST' > /etc/sysconfig/rfiod

and line 53 change from:

grep -v RFIO_PORT_RANGE > /etc/sysconfig/rfiod

to:

cp /etc/sysconfig/rfiod /etc/sysconfig/rfiod.tmp
cat /etc/sysconfig/rfiod.tmp | grep -v RFIO_PORT_RANGE > /etc/sysconfig/rfiod
rm /etc/sysconfig/rfiod.tmp

After this, you should perform:

yaim -c -s <path to site-info.def> -n SE_dpm_mysql -n SE_dpm_disk

Note that in order to install only DPM disk you should perform only:

yaim -c -s <path to site-info.def> -n SE_dpm_disk

From http://glite.phy.bg.ac.yu/GLITE-3/SL4-DPM/ download and install:

lcg-info-dynamic-dpm_2.2-2_noarch.rpm
lcg-info-generic-1.0.22-1_sl3.noarch.rpm
lcg-infosites-2.6.2-1.slc4.x86_64.rpm
lcg-schema-1.2.1-1.noarch.rpm

rpm -Uvh lcg-info-dynamic-dpm_2.2-2_noarch.rpm \
      lcg-info-generic-1.0.22-1_sl3.noarch.rpm \
      lcg-infosites-2.6.2-1.slc4.x86_64.rpm \
      lcg-schema-1.2.1-1.noarch.rpm

In /opt/glite/yaim/functions/config_bdii change line 151 from:

${INSTALL_ROOT}/glite/lcg/schema/ldap/SiteInfo.schema

to

${INSTALL_ROOT}/lcg/schema/ldap/SiteInfo.schema

After that do:

cd /opt/glite/lcg/
ln -s ../../../glite/etc/gip/ldif/

In /opt/glite/libexec/glite-info-generic change line 209 from:

wrap => 0);

to

 wrap => 10000);

After this, start configuration again:

yaim -c -s <path to site-info.def> -n SE_dpm_mysql -n SE_dpm_disk

Personal tools