CSCS offers an Infrastructure as a Service (IaaS) on the CASTOR facility and a cloud object storage service, based on OpenStack Swift.

CASTOR

The CASTOR facility is based on Red Hat OpenStack Platform V 16 (TRAIN) which allows to control large pools of compute, storage, and networking resources throughout the datacenter, managed through a dashboard or via the OpenStack API.

Red Hat OpenStack Platform provides the foundation to build a private or public Infrastructure-as-a-Service (IaaS) cloud on top of Red Hat Enterprise Linux. It offers a highly scalable, fault-tolerant platform for the development of cloud-enabled workloads.

Red Hat OpenStack Platform is packaged so that available physical hardware can be turned into a private, public, or hybrid cloud platform that includes:

  • Fully distributed object storage
  • Persistent block-level storage
  • Virtual machine provisioning engine and image storage
  • Authentication and authorization mechanisms
  • Integrated networking
  • Web browser-based interface accessible to users and administrators

OpenStack consists of several independent parts, named the OpenStack services. All services authenticate through a common Identity service. Individual services interact with each other through public APIs, except where privileged administrator commands are necessary.

CASTOR Service Components Diagram

RHEL_OSP_arch_347192_1015_JCS_01_Interface-Overview

  1. Dashboard (horizon): Web browser-based dashboard that you use to manage OpenStack services
  2. Identity (keystone): Centralized service for authentication and authorization of OpenStack services and for managing users, projects, and roles
  3. OpenStack Networking (neutron): Provides connectivity between the interfaces of OpenStack services
  4. Block Storage (cinder) Manages persistent block storage volumes for virtual machines
  5. Compute (nova): Manages and provisions virtual machines running on hypervisor nodes
  6. Image (glance): Registry service that you use to store resources such as virtual machine images and volume snapshots
  7. Object Storage (swift): Allows users to store and retrieve files and arbitrary data
  8. Telemetry (ceilometer): Provides measurements of cloud resources
  9. Orchestration (heat) Template-based orchestration engine that supports automatic creation of resource stacks

Access to CASTOR

Users can access CASTOR OpenStack via the web-based user interface implemented by the Horizon Dashboard, via command-line clients and by issuing API requests through tools like browser plug-ins or curl. For applications, several SDKs are available. Ultimately, all these access methods issue REST API calls to the various OpenStack services.

OpenStack CLI Access via Virtual Environment:

 $ virtualenv openstack_cli
$ source openstack_cli/bin/activate
$ pip install -U pip setuptools
$ pip install -U python-openstackclient lxml oauthlib python-swiftclient
$ cd openstack_cli
$ git clone https://github.com/eth-cscs/openstack
$ source openstack/cli/castor-cli-otp.env

Follow the procedure and provide your credentials (Username, Password and OTP) and then select the OpenStack project you wish to join.

You are now ready to submit openstack commands:

openstack server list
openstack quota show
...

System Description

The CASTOR facility includes several system components which can be summarized here below:

  • 1 x Director Server Node
  • 3 x Controller Server Nodes
  • 3 x CEPH Storage Server Nodes
  • 4 x SWIFT Object Storage Server Nodes
  • 29 x Compute Server Nodes

Block Storage

The block storage used by the VMs on CASTOR is currently based on Ceph.

Backups

Backups of volumes are created and restored manually by users and currently it's not an automated process. Backups can be created from the Horizon GUI (choose a volume and issue "Create Backup") or by command line. Meanwhile active volumes are stored on Ceph, backups are stored on Swift and on tape.