The procedure for upgrading dCache from 1.6 to 1.7
Background
dCache has changed considerably between versions 1.6 and 1.7. Particularly with
respect to the SRM interface. Please see the change log in the dCache
documentation at dCache.org for details. These changes have inevitably led to
many additions to the dCache configuration. This RPM contains a simple script to
enable sites to easily upgrade their version of dCache with the minimum effort.
Fortunately the databases of dCache have largely remained unchanged, important
changes include the billing database which now supports better traceability of
transfers for auditing and the SRM databases which now for the first time
contain persistent information relating to space reservation.
This dCache upgrade includes a considerable number of changes and these include
changes in the structure of inter node communication, and for these reasons I
recommend that sites do not upgrade dCache one node at a time and expect it to
work, the behavior in such circumstances is not defined. For these reasons we
recommend you shut down all dCache nodes until each has been upgraded.
YAIM sites following the YAIM based instructions will automatically see all the
upgrades made to dCache configuration files, sites using the script based
upgrades will have to look into their "template" files for some of the more
advanced configuration options.
Recipe to upgrade
The upgrade must run in three stages, preupgrade, then moving to more modern
RPM's and then a post upgrade stage.
Preupgrade recipe
Run the following commands
/etc/init.d/dcache-pool stop
/etc/init.d/dcache-core stop
/etc/init.d/pnfs stop
On nodes with postgresql installed the following additional commands are needed.
dropdb -U srmdcache billing
dropdb -U srmdcache dcache
dropdb -U srmdcache replicas
createdb -U srmdcache billing
createdb -U srmdcache dcache
createdb -U srmdcache replicas
psql -U srmdcache replicas -f /opt/d-cache/etc/psql_install_replicas.sql
Server Upgrade
Now upgrade the RPM's to the 1.7 release of dCache. This may be done via rpm or
apt or YAIM.
rpm method
rpm -e --nodeps dcache-server
rpm -i http://cvs.dcache.org/repository/apt/sl3.0.5/i386/RPMS.stable/dcache-server-1.7.0-34.noarch.rpm
rpm -e --nodeps dcache-client
rpm -i http://cvs.dcache.org/repository/apt/sl3.0.5/i386/RPMS.stable/dcache-client-1.7.0-31.i586.rpm
Please remember this is from the apt/yum repoitory for dcache so you can browse for your architecture and version of linux
apt-get method
Make sure you have the following line an an apt- source file:
rpm http://cvs.dcache.org/repository/apt $OS/$ARCH $STATUS
The $OS depends on the host operating system for the dCache it can be sl3.0.5 or sl4.4.0.
The $ARCH depends on the host hardware version for the dCache operating system it can be i386 or x86_64.
The $STATUS finally determines the dCache version you will get.
then run the following two commands
apt-get update
apt-get upgrade
Yaim method
For admin nodes runing pnfs-postgres the following command:
/opt/glite/yaim/scripts/install_node ~/site-info.def glite-SE_dcache_admin_postgres
For admin nodes runing pnfs-gdbm the following command:
/opt/glite/yaim/scripts/install_node ~/site-info.def glite-SE_dcache_admin_gdbm
For pool nodes run the following command:
/opt/glite/yaim/scripts/install_node ~/site-info.def glite-SE_dcache_pool
Postupgrade recipe without YAIM
The system should now have the 1.7 release of dCache installed. We now need to
run the configuration upgrade script and start dCache.
sh /opt/d-cache/install/dCacheUpgrade_1_6-1_7.sh
/etc/init.d/pnfs start
/opt/d-cache/install/install.sh
/etc/init.d/dcache-core start
/etc/init.d/dcache-pool start
The script dCacheUpgrade_1_6-1_7.sh is available in the RPM glite-dcache-upgrade-0.0.4-0.noarch.rpm which is available on this web page and from the dCache apt Repository.
Postupgrade recipe with YAIM
The system should now have the 1.7 release of dCache installed. We now need to
upgrade the configuration with YAIM. For the upgrade YAIM needs permission to
delete and recreate your dCache configuration. This is included in the
site-info.def file no other modifications should be needed from when you last
ran YAIM but you must check the below settings.
Please make sure you have the following settings three values set correctly.
# Set to "yes" only if YAIM shall reset the dCache configuration,
# or install DCache for the first time.
# i.e. if you want YAIM to configure dCache - WARNING:
# this may wipe out any dCache parameters previously configured!
# DCACHE_PORT_RANGE="20000,25000"
# RESET_DCACHE_CONFIGURATION=no
RESET_DCACHE_CONFIGURATION=yes
# Set to "yes" only if YAIM shall reset the dCache nameserver,
# Or install DCache for the first time.
# i.e. if you want YAIM to clear the content of dCache - WARNING:
# this may wipe out any dCache files previously stored!
# RESET_DCACHE_PNFS=no
RESET_DCACHE_PNFS=no
# Set to "yes" only if YAIM shall reset the dCache Databases,
# or install DCache for the first time.
# i.e. if you want YAIM to clear the metadata of dCache - WARNING:
# this may wipe out any dCache files names previously stored!
# Leaving your system without any way to reestablish which files
# are stored.
# RESET_DCACHE_RDBMS=no
RESET_DCACHE_RDBMS=no
As is clearly stated above you must not have RESET_DCACHE_RDBMS or
RESET_DCACHE_PNFS set to yes if you wish to preserve your data within dcache on
upgrade. Please set these values as below.
RESET_DCACHE_RDBMS=no
RESET_DCACHE_PNFS=no
Now you have made the necessary changes to your site-info.def file run the
configure process.
For the head-node or the pnfs server node
/opt/glite/yaim/scripts/configure_node ~/site-info.def glite-SE_dcache_admin_postgres
Respectively for the pool nodes
/opt/glite/yaim/scripts/configure_node ~/site-info.def glite-SE_dcache_pool
And now change the three configuration values in YAIM to
RESET_DCACHE_CONFIGURATION=no
So that any by hand modifications you make will not be lost when you rerun YAIM.
For YAIM and script based upgrades.
We should now have a fully upgraded dCache. As with previous releases wait a
5-10 minutes before you send in any bug reports it may be initializing.
|