OpenStack consists of several parts and sub-parts. Here’s a list of what they are, and what they do.
Nova is the core of OpenStack. It handles everything around launching, maintaining, terminating, and networking virtual machines. In addition, it also handles storage for those instances.
Nova has several subcomponents. They are:
- nova-api: accepts incoming commands to interact with the OpenStack cloud.
- nova-cert: manages SSL certificates.
- nova-compute: manages the actual virtual machines.
- nova-consoleauth: manages authentication for VNC access to the instances.
- nova-network: manages the OpenStack network system.
- nova-objectstore: provides a very basic object storage system.
- nova-scheduler: schedules actions between nova-api and the proper OpenStack component to fulfil the API request.
- nova-volume: manages storage volumes for instances to attach and use.
Keystone is an authentication framework for OpenStack. It provides the ability to add users to groups (also known as tenants) and to manage permissions between users and groups. Permissions include the ability to launch and terminate instances or to administer everyone’s instance.
Glance provides a catalogue of images. “Images” in this case can be thought of as a virtual machine template. When launching an instance in OpenStack, you choose a template from Glance, such as Ubuntu 12.04 or Centos 5.8, and then OpenStack creates your instance based on that template.
OpenStack would be very difficult to use without a good front-end user interface. Horizon is a web-based interface to OpenStack.
Although not covered in this series, Swift is a very robust object storage system that can manage petabytes of data spread across several servers.