Server Profile Packaging Guide

Software Installation Guide Table of Contents

Introduction

Integrated Manager for Lustre software is delivered as a series of RPMs. Because storage servers sometimes require additional packages (such as drivers) or customized packages (such as custom Lustre builds), a mechanism is included whereby these packages can be included in a Integrated Manager for Lustre software installation.

Server Profiles

A server profile is metadata describing the packaging and deployment options for a class of storage servers. Where repos contain collections of packages, server profiles contain the instruction for the packages to be deployed to a particular class of servers.

Creating a Server Profile

A server profile is simply a JSON file defining various options. For example, the JSON below is the default profile for a managed storage server:

{
  "ui_name": "Managed Storage Server",
  "managed": true,
  "worker": false,
  "name": "base_managed_rh7",
  "initial_state": "managed",
  "ntp": true,
  "corosync": false,
  "corosync2": true,
  "pacemaker": true,
  "ui_description": "A storage server suitable for creating new HA-enabled filesystem targets",
  "packages": [
    "python2-iml-agent-management",
    "kernel-devel-lustre",
    "pcs",
    "fence-agents",
    "fence-agents-virsh",
    "lustre-resource-agents",
    "lustre-ldiskfs-zfs"
  ],
  "repolist": ["base", "lustre-server"],
  "validation": [
    {
      "test": "distro_version < 8 and distro_version >= 7",
      "description": "The profile is designed for version 7 of EL"
    }
  ]
}

Installing a server profile

  1. Copy your profile to the IML management server, e.g. copy myprofile.json to /tmp/
  2. Register your profile using chroma-config profile register /tmp/myprofile.json
  3. Remove myprofile.json, as it has now been loaded into the database.

Setting a server profile as the default

You may wish to make a custom server profile the default, if all storage servers managed by the installation should be of that type.

To make a named storage profile the default, enter this command on the IML management server:

 chroma-config profile default <profile name>

Yum Repo

A server repo is a standard yum .repo file. It can contain one or more yum repositories.

[lustre-client-latest]
name=Lustre Client - latest
baseurl=https://downloads.whamcloud.com/public/lustre/lustre-latest/el7/client/
enabled=1
gpgcheck=0
repo_gpgcheck=0

To install custom repos, they can be installed in the standard location (/usr/share/chroma-manager/) and then have chroma-config scan for it.

chroma-config repos scan

Alternatively, the repo can be installed elsewhere on the manager and then imported from there:

chroma-config repos register /path/to/example.repo

Locally Hosted Yum Repo

To facilitate hosting local repos there is a process to install, create, and register a repo given a tarball of rpms. The tarball can be compressed with any compression type that can be auto detected with GNU tar.

chroma-config repos install reponame /path/to/example.tar.bz2

Example: deploying a custom build of Lustre and some additional drivers

For this example, we will create a custom profile for a managed server with custom packages.

Provided by the customer:

Created during this example:

Assuming that this profile is for use with Acme storage servers, our customer profile might be called acme_storage. The following creates the local repositories containing the customers extra driver rpms and custom lustre rpms.

chroma-config repos install acme acme-1.0.0.tar.xz
chroma-config repos install acme-lustre-server custom-lustre-server.tar.gz

The following uses the above created repos in a custom profile.

{
  "name": "acme_storage",
  "repos": ["base", "acme", "acme-lustre-server"],
  "packages": [
    "python2-iml-agent-management",
    "lustre-ldiskfs-zfs",
    "acme-core",
    "acme-scsi"
  ],
  "ui_name": "Acme storage server",
  "ui_description": "A storage server using Acme SCSI drivers, using Acme Lustre extensions",
  "managed": true
}

The above profile can then be registered.

chroma-config profile register acme.profile

Copyright (c) 2019 DDN. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.

Top of page