Conventions

2.4 Upgrading Moab

The following instructions will guide you through a 6.1.x, 7.0.x, or 7.1.x to 7.2.0 upgrade. Depending on which version of Moab you are presently running, upgrade instructions may vary, so unless otherwise noted, all instructions assume use of a RHEL operating system; notes for SLES users are added in appropriate places.

Upgrading Moab may require changing the database. Please see the README.database file included in the Moab distribution for specific version information. Also, please see Migrating Your Database to Newer Versions of Moab for specific details on migrating your database.

You might want to test the newest version of Moab on your system (before making the new version live) to verify your policies, scripts, and queues work the way you want them to.

If you are also upgrading TORQUE from an older version (pre-4.0), you may encounter a problem where Moab core files are regularly created in /opt/moab. This can be caused by old TORQUE library files used by Moab that try to authorize with the old TORQUE pbs_iff authorization daemon. You can resolve the problem by removing the old version library files from /usr/local/lib.

To upgrade Moab

  1. Untar the distribution file. For example:
  2. > tar -xzvf moab-7.2.7.linux-x86_64-generic.tar.gz
  3. Navigate to the unpacked directory.
  4. > cd moab-7.2.7
  5. Install the GNU C++ compiler.

  6. > sudo yum install gcc-c++

    For SLES, use zypper install <package names> instead of yum install <package names>.

  7. Create a file called /etc/yum.repos.d/epel.repo and add the following lines.

    [epel]

    name=Extra Packages for Enterprise Linux 6 - x86_64

    mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=x86_64

    failovermethod=priority

    enabled=1

    gpgcheck=1

    gpgkey=http://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

  8. SLES users must add a repository to YaST. The URL of the repository is http://download.opensuse.org/repositories/server:/database/SLE_11_SP2/.

  9. Install the Boost C++ headers and shared development libraries.

  10. > sudo yum install mongodb-devel boost-devel
  11. Configure the installation package.
  12. Use the same configure options as when Moab was installed previously. If you cannot remember which options were used previously, check the config.log file in the directory where the previous version of Moab was installed from.

    For a complete list of configure options, use ./configure --help.

  13. If you use the ODBC, you must upgrade to the 7.2 schema. See Migrating Your Database to Newer Versions of Moab for more information.
  14. Stop Moab.
  15. The Moab server must be stopped before the new version is installed.

     > mschedctl -k
    moab will be shutdown immediately

    While Moab is down, all currently running jobs continue to run on the nodes, the job queue remains intact, and new jobs cannot be submitted to Moab.

  16. Run the make perldeps command to install the necessary perl modules using CPAN. When first running CPAN, you will be asked for configuration information. It is recommended that you choose an automatic configuration. You will be prompted to provide input during module installation; running the make perldeps command with a script is not recommended.
  17. [root]# make
    [root]# make perldeps
  18. Install Moab.
  19. > sudo make install

    Moab should be installed by root. If you cannot install Moab as root, please contact Customer Support.

  20. For SLES users only. If you are using a RHEL operating system, proceed to the next step.
    • If you are using SLES, convert libmongoclient.a to libmongoclient.so.
    • cd /usr/lib64

      mkdir mongo

      cp libmongoclient.a mongo/

      cd mongo/

      ar -x libmongoclient.a

      gcc -shared *.o -o libmongoclient.so

      cp libmongoclient.so ../

    • If you are using SLES, create symbolic links that Moab will recognize to the boost libraries. The following script which is run in the /usr/lib64 directory may be useful.
    • ln -s libboost_date_time.so.1.36.0 libboost_date_time.so.5

      ln -s libboost_filesystem.so.1.36.0 libboost_filesystem.so.5

      ln -s libboost_graph.so.1.36.0 libboost_graph.so.5

      ln -s libboost_iostreams.so.1.36.0 libboost_iostreams.so.5

      ln -s libboost_math_c99.so.1.36.0 libboost_math_c99.so.5

      ln -s libboost_math_c99f.so.1.36.0 libboost_math_c99f.so.5

      ln -s libboost_math_c99l.so.1.36.0 libboost_math_c99l.so.5

      ln -s libboost_math_tr1.so.1.36.0 libboost_math_tr1.so.5

      ln -s libboost_math_tr1f.so.1.36.0 libboost_math_tr1f.so.5

      ln -s libboost_math_tr1l.so.1.36.0 libboost_math_tr1l.so.5

      ln -s libboost_mpi.so.1.36.0 libboost_mpi.so.5

      ln -s libboost_mpi_python.so.1.36.0 libboost_mpi_python.so.5

      ln -s libboost_prg_exec_monitor.so.1.36.0 libboost_prg_exec_monitor.so.5

      ln -s libboost_program_options.so.1.36.0 libboost_program_options.so.5

      ln -s libboost_python.so.1.36.0 libboost_python.so.5

      ln -s libboost_regex.so.1.36.0 libboost_regex.so.5

      ln -s libboost_serialization.so.1.36.0 libboost_serialization.so.5

      ln -s libboost_signals.so.1.36.0 libboost_signals.so.5

      ln -s libboost_system.so.1.36.0 libboost_system.so.5

      ln -s libboost_thread.so.1.36.0 libboost_thread.so.5

      ln -s libboost_unit_test_framework.so.1.36.0 libboost_unit_test_framework.so.5

      ln -s libboost_wave.so.1.36.0 libboost_wave.so.5

      ln -s libboost_wserialization.so.1.36.0 libboost_wserialization.so.5

      ln -s libboost_thread.so.1.36.0 libboost_thread-mt.so.5

  21. Verify the version number is correct before starting the new server version.
  22. > moab --about
     
    Defaults: server=:42559  cfgdir=/opt/moab  vardir=/opt/moab
    Build dir: /home/admin01/dev/moab/
    Build host: node01
    Build date: Tue May 17 16:38:27 MST 2011
    Build args: NA
    Compiled as little endian.
    Version: moab server 7.2.0 (revision 992)
    Copyright 2012 Adaptive Computing Enterprises, Inc., All Rights Reserved
  23. If you are upgrading to Moab 7.2 and use Moab Accounting Manager:
    • If you use the native interface (AMCFG[...] TYPE=native), locate the following entries in the moab.cfg file:
    • AMCFG[mam] QUOTEURL=exec:///$HOME/tools/mam/bank.quote.mam.pl
      AMCFG[mam] RESERVEURL=exec:///$HOME/tools/mam/bank.reserve.mam.pl
      AMCFG[mam] CHARGEURL=exec://$HOME/tools/mam/bank.charge.mam.pl
      AMCFG[mam] DELETEURL=exec:///$HOME/tools/mam/bank.delete.mam.pl
      ...
      AMCFG[mam] RESERVEFAILUREACTION=hold,hold
      AMCFG[mam] CREATEFAILUREACTION=ignore

      Update the paths to the NAMI scripts to reflect the new mam/usage.*.mam.pl URL, add the CREATEURL, UPDATEURL, and PAUSEURL attributes; replace the RESERVEURL attribute and script name with STARTURL and its corresponding path; replace CHARGEURL with ENDURL and its corresponding path; and replace the RESERVEFAILUREACTION attribute with STARTFAILUREACTION. You may also update the CREATEFAILUREACTION attribute to specify how Moab handles different types of create job failures.

      AMCFG[mam] QUOTEURL=exec://$TOOLSDIR/mam/usage.quote.mam.pl
      AMCFG[mam] CREATEURL=exec://$TOOLSDIR/mam/usage.create.mam.pl
      AMCFG[mam] STARTURL=exec://$TOOLSDIR/mam/usage.start.mam.pl
      AMCFG[mam] UPDATEURL=exec://$TOOLSDIR/mam/usage.update.mam.pl
      AMCFG[mam] PAUSEURL=exec://$TOOLSDIR/mam/usage.pause.mam.pl
      AMCFG[mam] ENDURL=exec://$TOOLSDIR/mam/usage.end.mam.pl
      AMCFG[mam] DELETEURL=exec://$TOOLSDIR/mam/usage.delete.mam.pl
      ...
      AMCFG[mam] STARTFAILUREACTION=hold,hold
      AMCFG[mam] CREATEFAILUREACTION=ignore,ignore
    • If you use the gold interface (AMCFG[...] TYPE=GOLD or AMCFG[...] SERVER=gold://...), the interface name has changed to MAM. Modify the AMCFG TYPE or SERVER attribute to reference MAM (AMCFG[...] TYPE=MAM or AMCFG [...] SERVER=mam://...). You must also replace the JOBFAILUREACTION attribute with STARTFAILUREACTION.
    • AMCFG[mam] SERVER=mam://my_accounting_server
      AMCFG[mam] STARTFAILUREACTION=hold,hold
  24. Start Moab.
  25. > moabd