What is a Cloud Controller

asked 2015-01-21 10:46:06 -0500

120Peter gravatar image

I try to understand what a cloud controller is. Reading documentation I understand that "cloud controller" is not an entity. But different independet services. Is that correct?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-01-21 11:57:30 -0500

updated 2015-01-21 12:04:58 -0500

Cloud controller is one or more nodes, that control the cloud operations. In contrast to cloud worker nodes(e.g. compute nodes), cloud controller maintains a high level view of the cloud resources and provides unified point for cloud management. All of the user's request(e.g. launch an instance) firstly, goes into cloud controller node and then according to the request, it sends to the other nodes(e.g. compute, storage or network nodes) to complete the operation.

In most non-production openstack environment, one controller node is enough. But to acheive better high availability, two or more cloud controller can be deployed.

Generally, openstack Cloud Controller comprises of the following services:

  • Database Service(MySQL): Stores cloud data
  • Messaging Queue Service(RabbitMQ): Provides message passing mechansim for cloud nodes
  • Authentication Service(Keystone): Provides authentication and autherization service
  • API Endpoints(nova-api, glance-api, ...): Provides unified access point for cloud services(e.g. network, storage, compute)
  • Scheduler(nova-scheduler, cinder-scheduler, ...): Provides workload scheduling service
  • Dashboard(Horizon): Provides web-based management dashboard

As this figure shows, cloud controller is a seperate entity in every openstack deployment(except hyper-converged deployment architecture used by Piston).

edit flag offensive delete link more


Thank you for your answer. In that case, when we install (for example) cinder, the cinder API end-point should NOT be on the same server(s) as the rest of cinder services, but on the "controller" node. Is that correct?

120Peter gravatar image120Peter ( 2015-01-22 03:58:16 -0500 )edit

Yes, Both cinder-api and cinder-scheduler should be installed on the controller node. But cinder-volume can be install on the other node(s) to serve virtual disks. It is also possible to configure your cinder-volume node to use different type of storage backends(e.g. LVM, Gluster, NFS, ...).

Mzoorikh gravatar imageMzoorikh ( 2015-01-22 15:27:15 -0500 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2015-01-21 10:46:06 -0500

Seen: 1,585 times

Last updated: Jan 21 '15