Atom feed of this document
  
 

 System architecture

OpenStack Compute contains several main components.

  • The cloud controller represents the global state and interacts with the other components. The API server acts as the web services front end for the cloud controller. The compute controller provides compute server resources and usually also contains the Compute service.

  • The object store is an optional component that provides storage services; you can also instead use OpenStack Object Storage.

  • An auth manager provides authentication and authorization services when used with the Compute system; you can also instead use OpenStack Identity as a separate authentication service.

  • A volume controller provides fast and permanent block-level storage for the compute servers.

  • The network controller provides virtual networks to enable compute servers to interact with each other and with the public network. You can also instead use OpenStack Networking.

  • The scheduler is used to select the most suitable compute controller to host an instance.

Compute uses a messaging-based, shared nothing architecture. All major components exist on multiple servers, including the compute,volume, and network controllers, and the object store or image service. The state of the entire system is stored in a database. The cloud controller communicates with the internal object store using HTTP, but it communicates with the scheduler, network controller, and volume controller using AMQP (advanced message queueing protocol). To avoid blocking a component while waiting for a response, Compute uses asynchronous calls, with a callback that is triggered when a response is received.

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page

loading table of contents...