On Fri, Feb 03, 2017 at 10:20:38AM +0000, Phill Harvey-Smith wrote:
I manage a cluster of machines at the University of Warwick running on
Ubuntu 12.04, and SGE 8.1.3, the SGE root on our head node is in
/export/sge and is NFS shared and then mounted on /usr/sge on the
nodes (including the head). This all works correctly.
However in an attempt to modernize the cluster the decision has been
made to migrate to using Centos 7.2. This bring with it some problems
in that the old binaries (from Ubuntu) are in incompatible with
Centos, mainly it seems due to Ubuntu 12.04 using older versions of
some of the libraries.
I have downloaded and compiled SGE 8.1.9 on the Centos node, but don't
want to install it's binaries in the same directory as the Ubuntu
version as it will almost certainly break the Ubuntu version. So what
I would like to be able to do is to have both versions of the binaries
installed, however the Centos nodes will also need to be a part of the
same cluster as the Ubuntu nodes. I realize that there will be issues
with executable versions when running jobs, but I would at least be
able to verify that the SGE works on the new Centos system ahead of
upgrading the nodes.
Is this doable, and if so what is the best way of doing it.
I almost hate to suggest automount as a solution[1], but this is
*exactly* what it was created for. Autofs maps support limited variable
substitution, including things like kernel version, architecture, OS,
etc. See autofs(5), and the O'Reilly book _Managing NFS and NIS_ for
more details.
Here's the gist, completely untested, so don't actually try to use it:
1. Install your various copies of the SGE binaries to some NFS
server in different, consistently named directories, and NFS export
them. For example:
/some/path/SGE/debian/8.1.3
/some/path/SGE/centos/8.1.3
/some/path/SGE/debian/8.1.9
/some/path/SGE/centos/8.1.9
/some/path/SGE/arch/8.1.9
2. Unfortunately, "Linux distribution" isn't one of the built-in
variables, so you will need to define this on the automounter *clients*.
This will depend entirely on your automountd startup scripts, but you
want to make the startup command look somethink like these, depending on
what the client actually runs..
/usr/sbin/automount -D distro=debian -D sgever=8.1.3
/usr/sbin/automount -D distro=arch -D sgever=8.1.9
/usr/sbin/automount -D distro=centos -D sgever=8.1.9
You could also try using the value of `lsb_release -i -s` to get short
distro names as well.
3. Create auto.master:
#auto.master
/am /etc/auto.sge
4. Create auto.sge:
#auto.sge
sge nfsserver:/some/path/SGE/$distro/$sgever
5. Configure SGE_ROOT to point to "/am/sge", which should magically
point to the right place based on the $distro and $sgever variables.
As I said, this is 100% untested! If it breaks, you get to keep all
the pieces. :)
--
Jesse Becker (Contractor)
_______________________________________________
SGE-discuss mailing list
SGE-discuss@liv.ac.uk
https://arc.liv.ac.uk/mailman/listinfo/sge-discuss