written 6.2 years ago by | • modified 6.2 years ago |
Open Stack is a free and open-source cloud-computing software platform. Users primarily deploy it as an infrastructure-as-a-service (IaaS).
The technology consists of a group of interrelated projects that control pools of processing, storage, and networking resources throughout a data center—which users manage through a web-based dashboard, through command-line tools, or through a RESTful API. OpenStack.org released it under the terms of the Apache License.
OpenStack is represented by three core open source projects (as shown in figure): Nova (compute), Swift (object storage), and Glance (VM repository). Nova, or OpenStack Compute, provides the management of VM instances across a network of servers. Its application programming interfaces (APIs) provide compute orchestration for an approach that attempts to be agnostic not only of physical hardware but also of hypervisors. Note that Nova provides not only an OpenStack API for management but an Amazon EC2-compatible API for those comfortable with that interface. Nova supports proprietary hypervisors for organizations that use them, but more importantly, it supports hypervisors like Xen and Kernel Virtual Machine (KVM) as well as operating system virtualization such as Linux® Containers. For development purposes, you can also use emulation solutions like QEMU.
Swift,or OpenStack Object Storage, is a project that provides scalable and redundant storage clusters using standard servers with commodity hard disks. Swift does not represent a file system but instead implements a more traditional object storage system for long-term storage of primarily static data (one key usage model is static VM images). Swift has no centralized controller, which improves and overall scalability. It internally manages replication (without redundant array of independent disks) across the cluster to improve reliability.
Glance,or OpenStack Image Service, provides a repository for virtual disk images that Nova can use (with the option of being stored within Swift). Glance provides an API for the registration of disk images in addition to their discovery and delivery through a simple Representational State Transfer (REST) interface. Glance is largely agnostic of the virtual disk image format, supporting a large variety of standards, including VDI (VirtualBox), VHD (Microsoft® Hyper-V®), QCOW2 (QEMU/KVM), VMDK/OVF (VMware), and raw. Glance also provides disk image checksums for integrity, version control (and other metadata), as well as virtual disk verification and audit/debug logs.
Components of OpenStack:
OpenStack is made up of many different moving parts. Because of its open nature, anyone can add additional components to OpenStack to help it to meet their needs.
But the OpenStack community has collaboratively identified nine key components that are a part of the "core" of OpenStack, which are distributed as a part of any OpenStack system and officially maintained by the OpenStack community.
Nova is the primary computing engine behind OpenStack. It is used for deploying and managing large numbers of virtual machines and other instances to handle computing tasks.
Swift is a storage system for objects and files. Rather than the traditional idea of a referring to files by their location on a disk drive, developers can instead refer to a unique identifier referring to the file or piece of information and let OpenStack decide where to store this information.
This makes scaling easy, as developers don’t have the worry about the capacity on a single system behind the software. It also allows the system, rather than the developer, to worry about how best to make sure that data is backed up in case of the failure of a machine or network connection.
Cinder is a block storage component, which is more analogous to the traditional notion of a computer being able to access specific locations on a disk drive. This more traditional way of accessing files might be important in scenarios in which data access speed is the most important consideration.
Neutron provides the networking capability for OpenStack. It helps to ensure that each of the components of an OpenStack deployment can communicate with one another quickly and efficiently.
Horizon is the dashboard behind OpenStack. It is the only graphical interface to OpenStack, so for users wanting to give OpenStack a try, this may be the first component they actually “see.”
Developers can access all of the components of OpenStack individually through an application programming interface (API), but the dashboard provides system administrators a look at what is going on in the cloud, and to manage it as needed.
Keystone provides identity services for OpenStack. It is essentially a central list of all of the users of the OpenStack cloud, mapped against all of the services provided by the cloud which they have permission to use. It provides multiple means of access, meaning developers can easily map their existing user access methods against Keystone.
Glance provides image services to OpenStack. In this case, "images" refers to images (or virtual copies) of hard disks. Glance allows these images to be used as templates when deploying new virtual machine instances.
Ceilometer provides telemetry services, which allow the cloud to provide billing services to individual users of the cloud. It also keeps a verifiable count of each user’s system usage of each of the various components of an OpenStack cloud. Think metering and usage reporting.
Modes of operation :
open stack can mainly operate in two modes i.e. single host mode and multi host mode. the operation is called multi host mode ,if a copy of the network is run on each of the compute nodes and the nodes areused as the internet gateway by the instances that are running on individual node.
A single node installation installs all components like nova, keystone, cinder, etc. in one single node. Multinode installation installs diferent components along various node. For example keystone and cinder in one node, neutron in another and 2 novas in 2 diferent servers. Generally speaking a single node setup of OpenStack is used for testing ,purposes. It is not designed for production and thus most would strongly discourage such implementation. environment.
A multi-node setup on the other hand is what most (if not all) production environments run on. Given the various components of OpenStack having all components on one node can significantly affect performance as you are limited to whatever resources that one node may have. Multi-Node not only provides a solution for this, but it is also highly scalable in the sense that if you require more compute power all you have to do is add more compute nodes (same with swift for storage, etc.). Additionally, having various nodes for various components can offer a failover in the case of one of your nodes suffers downtime.