-------------------------------------------------------------
Upgrading the Red Hat Cluster suite from the previous version
-------------------------------------------------------------

This document describes how to upgrade a Red Hat Cluster from version
1.03 (as shipped in etch) to version 2.0.

The upgrade procedure consists of stopping the cluster, removing the old
cluster suite, adding node IDs to the cluster.conf, install and booting
a new kernel, and finally installing the new cluster suite packages.

The upgrade procedure is as follows:

* Stop client access to the clustered services.

* On each cluster node:

  1. Stop all applications using the cluster infrastructure, like the
     shared storage

  2. Stop the rgmanager, if installed: 

     killall clurgmgr
    
  3. Umount all gfs shares:
     
     umount -a -t gfs

     if a gfs share is still blocked by another process, run

     lsof -n | grep <mountpoint> 

     to identify the process in order to terminate it.


  4. Stop the cluster lvm daemon:

     /etc/init.d/clvm stop


  5. Stop fencing:

     /etc/init.d/fence stop


  6. Stop the cluster manager:

     /etc/init.d/cman stop


  7. Stop the cluster configuration service:

     /etc/init.d/ccs stop


  8. Remove the old Red Hat Cluster software:

	 dpkg --purge ccs libccs-dev cman libcman1 libcman-dev libdlm1 \
       libdlm-dev fence gfs-tools gnbd-client gnbd-server gulm libgulm1 \
       libgulm-dev libiddev-dev libmagma1 libmagma-dev magma-plugin-gulm \
       magma-plugin-sm redhat-cluster-source

     Note: not all packages might be installed, just ignore the warnings
     dpkg will issue about it.


  9. Update the cluster.conf file to contain nodeids:

     Open the file /etc/cluster/cluster.conf in your favorite editor.
     In each <clusternode> element, insert nodeid="number" after
     name="name". This should look this way:

     [...]
     <clusternode name="node1" nodeid="1">
     [...]

     Note: the nodeid parameter was optional in the old Red Had Cluster
     suite, but is now mandatory. If you have already nodeid parameters
     in your cluster.conf, skip this step.

     After saving your changes to the cluster.conf file, copy it to all 
     the other nodes in the cluster.


  10. Update the kernel, and reboot the Node in order to activate the
      new kernel. You might of course  upgrade the other parts of the 
      system before rebooting.


  11. Install the new version of the Red Hat Cluster suite:

      apt-get install redhat-cluster-suite redhat-cluster-modules

      Note: existing GFS version 1 filesystems are fully supported.
      The new GFS2 filesystem format is not production-ready and usage 
      is recommended only for experimental setups.
  

TODO
----
- custom kernels: patch required
- GULM: 
  * cluster.conf changes
  * filesystem locking table changes
  * handling changes
- double-check with real upgrade 

