SCDB to Aquilon Migration Guide

Michel Jouvin

This page describes the main steps involved in migrating from SCDB to Aquilon for sites using the template library. This covers the impact on the Pan templates, not the [installation][aquilon_installation] of Aquilon. It is also assumed that the Aquilon database initial configuration has been done: also refer to this documentation for the description of the main site templates expected by Aquilon.

The main focus is the migration of the site configuration from SCDB templates to Aquilon. One major difference between SCDB and Aquilon is that in SCDB all the site and host parameters were described in Pan templates when in Aquilon a significant fraction of these parameters are in the Aquilon database and exported by the Aquilon broker in the generated object template for the host. See Aquilon database configuration documentation to know how to declare your hardware and hosts in Aquilon.

Main site parameters

In SCDB, the main parameters for a site that must be applied to any host are typically in site/global_variables.pan template. Typically, this template can be imported in Aquilon after removing the NETWORK_PARAMS variable if present. Also the recommended directory is site/config rather than site.

After the initial import of SCDB global variables, it is recommended to review the variable definitions that can be replaced by an Aquilon service. This is in particular the case for the variable AII_OSINSTALL_SRV who definition may be moved in the archetype final.pan template and be based on the bootserver service instance used for the host with the following Pan code (note that this makes use of the value() fall-back functionality which was added in Pan 10.7):

variable AII_OSINSTALL_SRV ?= value('/system/services/bootserver/servers/0', undef);

Packages Repositories

Existing repository templates, typically in repository or repository/snapshot, can be imported into Aquilon. The recommended directory is site/repository/snapshot. The variable YUM_SNAPSHOT_NS must be defined to the directory/namespace chosen.

SCDB Sites and Clusters

In SCDB, clusters are used to group together hosts that will share some common configuration information. Sites allow to define configuration information that will be shared by several clusters.

There is no one-to-one matching concept in Aquilon. As explained in Aquilon Concepts, main Aquilon objects used to group hosts are archetypes. Each host is also attached to a (hardware) machine (or a cluster) that can have some configuration attached to the geographical location.

The specific configuration of each host in an archetype will be described by the host personality which can be common to several hosts in the archetype. On the other hand, personalities are defined within an archetype and there is no easy way to share their definitions between archetypes.

As an example, every host running some parts of the grid middleware could be part of an archetype that adds the grid part of the template library to the Pan LOADPATH and define the grid site parameters (what was typically done in site/glite/config.pan in SCDB). Then one personality could be defined for each grid middleware service (CE, SE, WN, BDII…).

SCDB Machine Types

Machine types in SCDB where used to bind a hardware description, an OS configuration and sometimes part of the service. In Aquilon, this information is entered in the Aquilon database using aq command instead of using Pan templates. The Pan templates needed to build the host profile will be generated by Aquilon.

SCDB Personalities and Features

SCDB defines host configuration using templates located in personality and features directories (namespaces) of the template library.

SCDB personality are generally made of two main templates:

  • service.pan: for SCDB personality, this is the main template that mainly includes features. It needs to be replaced by an Aquilon personality object. One important difference between the SCDB personality template and the Aquilon personality object is that the order in which features are included in the Aquilon personality cannot be explicitly defined. As a consequence, if the order is important, it is necessary to create another feature that will include the other features in the appropriate order.
  • config.pan: this template does the configuration specific to the personality, in addition to the included features. It must typically be turned into a new feature.

An Aquilon feature is defined in the Aquilon database but its configuration is described by a Pan template. Most of the features available in the template library or in the site configuration in SCDB can be used directly in Aquilon (by copying the appropriate templates). The feature templates must be placed into a features/$name directory where $name is the feature name. If you have only one archetype or if your features are specific to one archetype, it is recommended to create the feature directory under the archetype directory. If you want to share the features between several archetypes it is also possible to place the feature directory at the top-level of the Aquilon sandbox (outside archetypes).

Note: in Aquilon 1.12.62, features shared between archetypes are not fully supported. Look at GitHub issue for details.