Chapter 8. OpenStack Compute Service Installation
8.1. Compute Service Overview
The Compute service is the heart 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 exposing the functionality to the other OpenStack components.
Compute interacts with the Identity service for authentication, Image service for images, and the Dashboard service for the user and administrative interface. Access to images is limited by project and by user; quotas are limited per project (for example, the number of instances). The Compute service is designed to scale horizontally on standard hardware, and can download images to launch instances as required.
Table 8.1. Ways to Segregate the Cloud
| Concept | Description |
|---|---|
|
Regions
|
Each service cataloged in the Identity service is identified by its region, which typically represents a geographical location, and its endpoint. In a cloud with multiple Compute deployments, regions allow for the discrete separation of services, and are a robust way to share some infrastructure between Compute installations, while allowing for a high degree of failure tolerance.
|
|
Cells
|
A cloud's Compute hosts can be partitioned into groups called cells (to handle large deployments or geographically separate installations). Cells are configured in a tree. The top-level cell ('API cell') runs the
nova-api service, but no nova-compute services. In contrast, each child cell runs all of the other typical nova-* services found in a regular installation, except for the nova-api service. Each cell has its own message queue and database service, and also runs nova-cells, which manages the communication between the API cell and its child cells.
This means that:
|
|
Host Aggregates and Availability Zones
|
A single Compute deployment can be partitioned into logical groups (for example, into multiple groups of hosts that share common resources like storage and network, or which have a special property such as trusted computing hardware).
If the user is:
Aggregates, or zones, can be used to:
|
Table 8.2. Compute Service components
| Component | Description |
|---|---|
|
openstack-nova-api
|
Handles requests and provides access to the Compute services (such as booting an instance).
|
|
openstack-nova-cert
|
Provides the certificate manager.
|
|
openstack-nova-compute
|
Creates and terminates virtual instances. Interacts with the Hypervisor to bring up new instances, and ensures that the state is maintained in the Compute database.
|
|
openstack-nova-conductor
|
Provides database-access support for Compute nodes (thereby reducing security risks).
|
|
openstack-nova-consoleauth
|
Handles console authentication.
|
|
openstack-nova-network
|
Handles Compute network traffic (both private and public access). Handles such tasks as assigning an IP address to a new virtual instance, and implementing security group rules.
|
|
openstack-nova-novncproxy
|
Provides a VNC proxy for browsers (enabling VNC consoles to access virtual machines).
|
|
openstack-nova-scheduler
|
Dispatches requests for new virtual machines to the correct node.
|
|
RabbitMQ server (
rabbitmq-server)
|
Provides the AMQP message queue. This server (also used by Block Storage) handles the OpenStack transaction management, including queuing, distribution, security, management, clustering, and federation. Messaging becomes especially important when an OpenStack deployment is scaled and its services are running on multiple machines.
|
|
libvirtd
|
The driver for the hypervisor. Enables the creation of virtual machines.
|
|
KVM Linux hypervisor
|
Creates virtual machines and enables their live migration from node to node.
|
|
Database
|
Provides build-time and run-time infrastructure state.
|