Upgrading SeisComP

You will …

  • Upgrade a SeisComP system

  • Migrate a SeisComP3 system to a newer SeisComP version

Pre-requisites for this tutorial:

  • Tutorial on installation and SeisComP previously installed

Afterwards/Results/Outcomes:

  • Upgraded SeisComP

Time range estimate:

  • 60 minutes


Background

SeisComP has developed over time. In order to distinguish the developments release versions, names, numbers and patch numbers are used:

  • Release version: major changes in module groups, functionality, concepts, data model. Example: SeisComp3 is SeisComP in version 3.0 in comparison to version 2.5 the GUIs were introduced.

  • Release name: major changes in functionality, concepts, data model. Example: with SeisComP3-Seattle the new user friendly configuration GUI scconfig was introduced.

  • Release number: changes in data model version and/or major changes in applications and optimizations. The numbers include the year and the day of the year of the software release. Example: Jakarta-2018.327

  • Patch number: optimizations of applications without changes in the data model version.

Applications can only connect to a messaging system that runs with a database in an equal or lower data model version. Therefore, the SeisComP system which operates the messaging system is always updated last. Example: A distributed system includes a processing system with the messaging system and database and a GUI work station connected to the processing system:

  1. Upgrade the GUI work station

  2. Upgrade the processing system, take actions to upgrade the database version.

Note

Always stop all SeisComP modules before upgrading:

seiscomp stop

Package download

Get the latest or older SeisComP release packages from gempa GmbH or from the SeisComP package downloader 3.

Documentation of changes

The important novelties, optimizations and changes that are available after upgrading are documented in the change log. It is recommend to read the change log before taking further actions. The details can be found in the file

$SEISCOMP_ROOT/share/doc/seiscomp/CHANGELOG

The change log can also be accessed from the Docs panel in scconfig.

Note

New features are regularly advertised and described in detail on the News website of gempa GmbH 1 and on the SeisComP forum 2.

Upgrade to a higher release number

When installing a new SeisComP release upgrading the database may be required. More actions are required when upgrading from SeisComP3 to SeisComP in version 4. The database version will be tested and the required actions will be shown when executing:

seiscomp update-config

or when pressing the Update Configuration button in scconfig. An upgrade from version SeisComP3 jakarta-2017.334 to jakarta-2018.327 will give:

* starting kernel modules
  spread is already running
  starting scmaster
  * configure scmaster
    * check database write access ... OK
    * database schema version is 0.10
    * last migration version is 0.11
    * migration to the current version is required. apply the following
      scripts in exactly the given order:
      * /home/sysop/seiscomp/share/db/migrations/mysql/0_10_to_0_11.sql
  error: updating configuration for scmaster failed

The shown migration scripts can be used directly with the mysql command:

seiscomp stop
mysql -u sysop -p -D seiscomp -e 'source /home/sysop/seiscomp/share/db/migrations/mysql/0_10_to_0_11.sql;'
seiscomp update-config
seiscomp start

Using the migration scripts provides a more user friendly way than copying the lines of mysql code from the changelog. In later versions we might add the option to automatically run the migrations.

Warning

Upgrading the database make take some time. Do no interrupt the process! During this time, the SeisComP messaging system is unavailable causing a downtime of the system.

Migrate from SeisComP3 to version 4

SeisComP in version has some major differences to SeisComP3 which require adjustments. The main differences are in the directories of the SeisComP installation and the messaging system.

Files and directories

With SeisComP3 all the default installation typically required all modules and configurations in the directories

  • seiscomp3/ , typically $HOME/seiscomp3 or /opt/seiscomp3/

  • $HOME/.seiscomp3/

As of SeisComP in version 4 the directories are:

  • seiscomp/ , typically $HOME/seiscomp/ or /opt/seiscomp/

  • $HOME/.seiscomp/

All configuration files must be migrated to the new structures. This includes:

  • Configurations and inventory in seiscomp3/:

    • seiscomp3/etc/*.cfg

    • seiscomp3/etc/inventory/

    • seiscomp3/etc/keys/

  • Configurations in $HOME/.seiscomp3/

  • Logs in $HOME/.seiscomp3/log (optional)

  • All user-defined files and directories in seiscomp3/share/

  • All user-defined seedlink and other templates in seiscomp3/share/templates/

  • The waveform archive and other archives typically in seiscomp3/var/lib/

  • User-defined files and directories in other places.

    Warning

    Spread, arclink and arclinkproxy are not part of SeisComP anymore. Some default and description files have changed. Therefore, do not migrate:

    • any default configuration, description and init files. Better enable the desired daemon modules again.

      seiscomp/bin/seiscomp enable [module]
      
    • any file related to spread, arclink and arclinkproxy.

Configurations containing absolute paths, e.g. /home/sysop/seiscomp3/share/scautoloc/grid_custom.conf, must be adjusted. Better use internal SeisComP variables such as @DATADIR@ instead of seiscomp3/share.

System variables

The system environment variables must be updated, e.g. in $HOME/.bashrc. Remove or uncomment the lines $HOME/.bashrc referring to the depreciated SeisComP3 version execute

seiscomp/bin/seiscomp print env >> $HOME/.bashrc
source $HOME/.bashrc

Pipelines

When using pipelines or alias modules, create and enable the alias module names again, e.g.

seiscomp alias create [alias] [module]
seiscomp enable [alias]

Migrate the module and bindings configurations of the alias modules including all related additional files which are referred to in the configurations.

Database

After adjusting the structure and variables, check if the database requires an upgrade as well.

Messaging system

One of the main changes SeisComP3 to SeisComP in version 4.0 is the messaging system. Spread does not exist anymore and only scmaster is started initially for the messaging system. scmaster allows to operate several queues in parallel with different databases. This flexibility comes with additional parameters which require configuration. Migrate the legacy database parameters and configure the new one:

  1. Setup the messaging queues to the configuration of scmaster.

    • Add new queue or stay with the default queues.

      Note

      The default queue is production used by default by all modules connected to the messaging system. When removing this queue, another queue must exist and the queue name must be configured for all modules in the connection parameters. See below for an example.

    • Add the required plugins, currently only dbstore is supported. Example for a queue named production:

      queues.production.plugins = dbstore
      
    • Add message groups to the list of default groups, e.g.

      queues.production.groups = L1PICK, L1LOCATION
      

      These groups will be available for all other connected modules in addition to the default groups.

    • Add the interface name, currently only dbstore is supported. Example for a queue names production

      queues.production.processors.messages = dbstore
      
    • Add the database parameters which can be used from the legacy configuration. E.g.

      queues.production.processors.messages.dbstore.driver = mysql
      queues.production.processors.messages.dbstore.read = sysop:sysop@localhost/seiscomp3
      queues.production.processors.messages.dbstore.write = sysop:sysop@localhost/seiscomp3
      

      Note

      The name of the database can be freely chosen. The example assumes that the database named seiscomp3 exists already and that it shall be continued to be used with the new SeisComP.

    • Add the names of the queues to the queues parameter.

  2. Configure the connection parameters of all modules connecting to the messaging system. As in SeisComP3 the connection server is localhost. The queue is added to the host by “/”. The default queue is production, e.g.

    connection.server = localhost/production
    

    Note

    If production shall be used, then no configuration is required.

Crontab and system daemon

Finally, adjust the system daemon startup script and crontab entries. For crontab use:

crontab -e