1.3.5. Compute - Nova

The Nova service is the heart of the Red Hat OpenStack cloud by providing virtual machines on demand. That is, Nova schedules virtual machines to run on a set of nodes (including virtual servers, logical containers, and GPUs). It does this by defining drivers that interact with underlying virtualization mechanisms, and exposing the functionality to the other OpenStack components.
Nova interacts with Keystone for authentication, Glance for images, and Horizon 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). Nova is designed to scale horizontally on standard hardware, and can download images to launch instances as required.
Nova is composed of the following:
  • openstack-nova-api service, which handles requests and provides access to the Nova services (such as booting an instance).
  • openstack-nova-cert service, which provides the certificate manager.
  • openstack-nova-compute service, which creates and terminates the virtual instances. The service interacts with Hypervisor to bring up new instances, and ensures that the state is maintained in the Nova database.
  • openstack-nova-consoleauth service, which handles console authorization.
  • openstack-nova-network service, which handles Nova network traffic (both private and public access). This service handles such tasks as assigning an IP address to a new virtual instance, and implementing security group rules.
  • openstack-nova-novncproxy service, which provides a VNC proxy for browsers (enabling VNC consoles to access virtual machines started by OpenStack).
  • openstack-nova-scheduler service, which dispatches requests for new virtual machines to the correct node.
  • Apache Qpid server (qpidd service), which provides the AMPQ message queue. This server (also used by Cinder) handles the OpenStack transaction management, including queuing, distribution, security, management, clustering, and federation. Messaging becomes especially important when a Red Hat OpenStack deployment is scaled and its services are running on multiple machines.
  • libvirtd service, which enables the creation of virtual machines (that is, it is the driver for the hypervisor).
  • KVM Linux hypervisor, which creates virtual machines and enables their live migration from node to node.
  • MySQL database, for build-time and run-time infrastructure state.