Components of OpenStack
OpenStack is a large open-source project, and there are many separate components in this project. In this blog post, I explain the main components of OpenStack.
Nova: As the most basic and, at the same time, the most complex component of OpenStack, Nova communicates with virtualization tools and manages the creation, management, and removal of virtual machines via API. Nova component runs in the background on Linux servers, helping virtualization technologies such as KVM, Vmware, Xen and Hyper-v, Linux container technologies such as LXC and LXD, and other OpenStack components to performing their tasks. The identity service (Keystone) for authentication interacts extensively with services such as the image service (Glance), which is used to create instances (virtual servers created in OpenStack) and Horizon Dashboard, a panel service for end-users.
Swift: Swift, the object storage component of OpenStack, is a scalable and distributed storage system. You can store your files, videos, images, virtual machine backups, and other unstructured data in Swift. With the help of the Swift API, you can send or receive data over HTTP. Swift ensures that it stores the copies when storing the data, thus preventing data loss by using the copied versions when a problem occurs in the servers.
Cinder: It is the block storage service of OpenStack, providing virtual storage for virtual machines in the system. These virtual storage areas are kept separate from the servers to protect data even when the server is deleted. Users can add or expand new disk space to virtual machines running on the Horizon interface.
Glance: Glance, the image service of OpenStack, provides the management of disk images. These images are used as templates for newly installed servers. Glance also receives backups of servers, and it can create new servers with received copies. It can back up different types of storage but generally uses OpenStack Object Storage. Glance service supports raw, aki, ami, ari, iso, qcow2, vhd, vdi, vmdk, ovf image formats.
Keystone: It is the authentication and authorization system of OpenStack. All OpenStack components use Keystone service to query which users are authorized to use the cloud services. The Keystone unit supports many methods, including user name and password information or token-based authentication, to verify credentials. It can be integrated with systems like LDAP.
Horizon: The Horizon service provides a web-based user interface for many operations. This interface makes it easy to create instances, security settings, network settings, etc.
Neutron: It is the network service within OpenStack. It enables the management of the virtual network structure in the cloud (such as subnets, routers, firewalls, VPNs). With Neutron, users can create their networks and connect different networks.
Ceilometer: It allows the collection of data generated by OpenStack services. These data can be used for processes such as customer invoicing and system monitoring.