Chapter 2. Software

The Red Hat OpenStack Platform IaaS cloud works as a collection of interacting services that control compute, storage, and networking resources. You can manage the cloud with a web-based dashboard or command-line clients to control, provision, and automate OpenStack resources. OpenStack also has an extensive API that is also available to all cloud users.

The following diagram provides a high-level overview of the OpenStack core services and their relationship with each other.

OpenStack component relationships

The following table describes each component in the diagram and provides links for the component documentation section.

Table 2.1. Core services

 ServiceCodeDescription

One

Dashboard

horizon

Web browser-based dashboard that you use to manage OpenStack services.

Two

Identity

keystone

Centralized service for authentication and authorization of OpenStack services and for managing users, projects, and roles.

Three

OpenStack Networking

neutron

Provides connectivity between the interfaces of OpenStack services.

Three

Load balancing service

octavia

Provides load-balancing services for the cloud.

Four

Block Storage

cinder

Manages persistent block storage volumes for virtual machines.

Five

Compute

nova

Manages and provisions virtual machines that run on hypervisor nodes.

Six

Image

glance

Registry service to store resources such as virtual machine images and volume snapshots.

Seven

Object Storage

swift

Stores and retrieves files and arbitrary data.

Eight

Telemetry

ceilometer

Provides measurements of cloud resources.

Nine

Orchestration

heat

Template-based orchestration engine that supports automatic creation of resource stacks.

Each OpenStack service contains a functional group of Linux services and other components. For example, the glance-api and glance-registry Linux services, with a MariaDB database, implement the Image service.

2.1. Components

This section describes each of the OpenStack components:

  • OpenStack Dashboard (horizon)

    OpenStack Dashboard is a graphical user interface that you can use to create and launch instances, manage networking, and set access control.

    The Dashboard service includes the Project, Admin, and Settings default dashboards. It has a modular design to interface with other products such as billing, monitoring, and additional management tools.

  • OpenStack Identity (keystone)

    OpenStack Identity provides user authentication and authorization to all OpenStack components. Identity supports multiple authentication mechanisms, including username and password credentials, token-based systems, and AWS-style log-ins.

  • OpenStack Networking (neutron)

    OpenStack Networking handles creation and management of a virtual networking infrastructure in the OpenStack cloud. Infrastructure elements include networks, subnets, and routers.

  • Load-balancing service (octavia)

    The OpenStack Load-balancing service (octavia) provides a Load Balancing-as-a-Service (LBaaS) implementation for Red Hat OpenStack Platform director installations. To achieve load balancing, octavia supports enabling multiple provider drivers. The reference provider driver (Amphora provider driver) is an open-source, scalable, and highly available load balancing provider. It accomplishes its delivery of load balancing services by managing a fleet of virtual machines—collectively known as amphorae—which it spins up on demand.

  • OpenStack Block Storage (cinder)

    OpenStack Block Storage provides persistent block storage management for virtual hard drives. You can use Block Storage to create and delete block devices, and to manage attachment of block devices to servers.

  • OpenStack Compute (nova)

    OpenStack Compute serves as the core of the OpenStack cloud by providing virtual machines on demand. Compute schedules virtual machines to run on a set of nodes by defining drivers that interact with underlying virtualization mechanisms, and by exposing the functionality to the other OpenStack components.

  • OpenStack Image Service (glance)

    OpenStack Image acts as a registry for virtual disk images. Users can add new images or take a snapshot of an existing server for immediate storage. You can use the snapshots for backup or as templates for new servers.

  • OpenStack Object Storage (swift)

    Object Storage provides an HTTP-accessible storage system for large amounts of data, including static entities such as videos, images, email messages, files, or VM images. Objects are stored as binaries on the underlying file system along with metadata stored in the extended attributes of each file.

  • OpenStack Telemetry (ceilometer)

    OpenStack Telemetry provides user-level usage data for OpenStack-based clouds. You can use the data for customer billing, system monitoring, or alerts. Telemetry can collect data from notifications sent by existing OpenStack components such as Compute usage events, or by polling OpenStack infrastructure resources such as libvirt.

  • OpenStack Orchestration (heat)

    OpenStack Orchestration provides templates to create and manage cloud resources such as storage, networking, instances, or applications. Use templates to create stacks, which are collections of resources.

  • OpenStack Data Processing (sahara)

    OpenStack Data Processing enables the provisioning and management of Hadoop clusters on OpenStack. Hadoop stores and analyzes large amounts of unstructured and structured data in clusters.

  • OpenStack Bare Metal Provisioning (ironic)

    Use OpenStack Bare Metal Provisioning to provision physical or bare metal machines for a variety of hardware vendors with hardware-specific drivers. Bare Metal Provisioning integrates with the Compute service to provision the bare metal machines in the same way that virtual machines are provisioned, and provides a solution for the bare-metal-to-trusted-tenant use case.

  • OpenStack Shared File Systems service (manila)

    OpenStack Shared File Systems service provides shared file systems that Compute instances can use. The basic resources of the Shared File Systems are shares, snapshots, and share networks.

  • OpenStack DNS-as-a-Service (designate)

    Note

    This feature is deprecated in Red Hat OpenStack Platform 15, and therefore is not fully supported by Red Hat.

    DNSaaS includes a REST API for domain and record management. It is multi-tenanted and integrates with OpenStack Identity Service (keystone) for authentication. DNSaaS includes a framework for integration with Compute (nova) and OpenStack Networking (neutron) notifications, which provides auto-generated DNS records. DNSaaS includes integration support for PowerDNS and Bind9.

  • OpenStack Key Manager service (barbican)

    OpenStack Key Manager service is a REST API designed for the secure storage, provisioning, and management of secrets such as passwords, encryption keys, and X.509 Certificates. This includes keying material such as Symmetric Keys, Asymmetric Keys, Certificates, and raw binary data.

  • Red Hat OpenStack Platform director

    The Red Hat OpenStack Platform director is a toolset for installing and managing a complete OpenStack environment. It is based primarily on the OpenStack project TripleO, which is an abbreviation for "OpenStack-On-OpenStack". This project takes advantage of OpenStack components to install a fully-operational OpenStack environment. It includes new OpenStack components that provision and control bare metal systems to use as OpenStack nodes. It provides a simple method for installing a complete Red Hat OpenStack Platform environment. The Red Hat OpenStack Platform director uses two main concepts: an undercloud and an overcloud. The undercloud installs and configures the overcloud.

  • OpenStack High Availability

    To keep your OpenStack environment up and running efficiently, you can use the director to create configurations that offer high availability and load balancing across all major services in Red Hat OpenStack Platform.

  • OpenStack Operational Tools

    Red Hat OpenStack Platform comes with an optional suite of tools, such as Centralized Logging, Availability Monitoring, and Performance Monitoring. You can use these tools to maintain your OpenStack environment.

2.2. Integration

You can integrate Red Hat OpenStack Platform with the following third-party software: Tested and Approved Software.

2.3. Installation summary

Red Hat supports the installation of Red Hat OpenStack Platform using the following methods:

  • Red Hat OpenStack Platform director: Recommended for enterprise deployments. For more information, see Red Hat OpenStack Platform Director Installation and Usage.
  • packstack: packstack is a deployment that consists of a public network and a private network on one machine, hosting one CirrOS-image instance, with an attached storage volume. Installed OpenStack services include: Block Storage, Compute, Dashboard, Identity, Image, OpenStack Networking, Object Storage, and Telemetry. Packstack is a command-line utility that rapidly deploys Red Hat OpenStack Platform.

    Note

    Packstack deployments are intended only for POC-type testing environments and are not suitable for production. By default, the public network is only routable from the OpenStack host.

    For more information, see Evaluating OpenStack: Single-Node Deployment.

For a comparison of these installation options, see Installing and Managing Red Hat OpenStack Platform.

2.4. Subscriptions

To install Red Hat OpenStack Platform, you must register all systems in the OpenStack environment with Red Hat Subscription Manager, and subscribe to the required channels. The guides listed below detail the channels and repositories you must subscribe to before you deploy Red Hat OpenStack Platform.