OpenStack is a set of software tools for managing and building cloud computing platforms for private and public clouds. It’s a free and open source software cloud computing platform.
The three components that make modular architecture for OpenStack are
- OpenStack Compute: For managing large networks of the virtual machine
- OpenStack Object Storage: A storage system that provides support for both block storage and object storage
- Image Service: The delivery service provides discovery and registration for virtual disk images
OpenStack offers services like
- Keystone: Provides authorization and authentication for users
- Glance: Manages images in different formats
- Cinder: Provides persistent block storage
- Neutron: Enables users to create and attach interfaces to networks
- Nova: Provides instances on user’s demand
- Swift: Storage platform integrated directly into applications
- Ceilometer: Openstack for billing
- Heat: Allows automated infrastructure deployment
In OpenStack, a tenant is referred for the group of users while role indicates the authorization level of the user.
Hypervisor is a piece of computer software or hardware that creates and run virtual machines. A system on which one or more virtual machines is defined is referred as host machine. The types of hypervisor that supports OpenStack are
- Xen and HyperV
OpenStack provides two classes of block storage,
- Ephemeral Storage: It is associated with a single unique instance. Based on the instance, the size is defined. When the instance associated with it is terminated, data on ephemeral storage ceases to exist
- Volume Storage: This storage is not dependent on any particular instance and is persistent. Volumes are user created and within Quota
The basic functions of Identity Service is
- User Management: It tracks the users and their permissions
- Service Catalog: It provides a catalog of available services with their API endpoints
- Users: It is a digital representation of a person, service or system who uses OpenStack cloud services
- Tenants: A container used to group or isolate resource or identity objects. Depending on service operator a tenant may map to a customer, account, organization or project
- Roles: A role includes a set of rights and privileges. A role determines what operations a user is permitted to perform in a given tenant
The networking options used in OpenStack are
- Flat Network Manager: IP addresses for VM instances are fetched from the subnet, and then injected into the image on launch
- Flat DHCP Network Manager: IP addresses for VM instances are fetched from the subnet specified by the network administrator
- VLAN Network Manager: Compute creates a VLAN and bridge; DHCP server is started for each VLAN to pass out IP addresses to VM instances.
For handling persistent storage for virtual machines, OpenStack provides the service referred as Cinder. There are multiple backends for cinder. The one that is utilized by default is LVM, called Cinder-Volumes.