Understanding OpenStack
Cloud computing is a buzzword today in the Information Technology (IT) industry. It is a technology wherein the computing resources—hardware and software, are pooled together into a remote repository (a cloud) and offered as a service to users located worldwide. The benefits of cloud computing have been compelling many organizations to move onto or adopt it. A cloud can be deployed in various ways: Infrastructure as a service (IaaS), Platform as a service (PaaS), Software as a service (SaaS) etc. Deployment of a cloud is no more a complex task with the tools like OpenNebula, Eucalyptus, Microsoft Azure, VMware vsphere, OpenStack etc. Here we will learn about OpenStack.
What is OpenStack?
OpenStack is an open source set of tools to deploy a cloud. Managed by Open Stack foundation, it is a software which we can use to build Infrastructure as a Service (IaaS) platforms—public as well as a private cloud. It helps to deploy interoperable cloud services like Virtual Machine (VM) and other instances, book more storage space, restart or re-image servers, read and write files to storage, create cloud applications etc. This helps to avoid vendor lock-in, enabling easy horizontal scaling of services (Adding and removing instances instantly). The software also displays all the components like multi-vendor hardware and networking resources in a cloud.
Users can manage OpenStack based cloud through a web-based dashboard, command-line or RESTful web services.
(The following depiction is of OpenStack Dashboard)
How has it evolved?
Initially, in 2010 it began as a project between the NASA and a private company. The project is now patronized and used by many organizations and its large community of users. Due to its large user base who can contribute to the open source OpenStack, it is regularly updated with new components. CloudStack, Eucalyptus, AWS etc. are competitors of OpenStack.
Where can OpenStack be used?
OpenStack is cloud management tool. It can be used to establish a new cloud and manage it. It is used by cloud service providers (CSP) in their data center. Organizations can also use it to manage their private cloud. It can be used in software development and testing. Virtualization is achieved by OpenStack.
How is the architecture of OpenStack?
The dashboard displays all the resources in the deployed cloud. We use various components (their API) to create instances. You can also use the OpenStack command-line client on Linux and macOS to execute commands that make API calls.
What are the components of OpenStack?
OpenStack has about 24 components or tools that are helpful in implementing a cloud. However, only the following components are the important ones.
Note: These can be used from the software GUI. Each component has its own command line client as well, so you can use those components by firing commands in their respective command line client.
- Nova. It is a computing engine that is used to create, delete or suspend a VM (an instance). You can use the following commands in its command line client to (We will illustrate commands fired in RHEL):
Install the command line client packageList instances to get the server nameUse the server <wakefieldserver> to create a snapshot
Get details of your image to check its status
To launch an instance from your image (image ID, flavour ID, and network ID)
- Swift. It is a storage system for objects and files. You can create new objects and files in a container, delete them from a container and even manipulate the container itself. The Objects and files are made redundant- they are written onto multiple disk drives on different servers. OpenStack ensures data redundancy and integrity across a cluster. If files or the objects are accidentally lost due to the server or hard drive failure, OpenStack automatically recovers its content from other nodes in the cluster. Swift eases the scaling of resources. Apart from accessing swift from OpenStack GUI, you can use it by firing the following basic commands in its command line client to:Install the command line client packageCreate a container
List all containers
Enable the user <username> to read [write] objects in the container. Users have roles on accounts. You can set access control lists (ACLs) at the container level and support lists for read and write access.
Upload an object to a container
Download an object from a container
Check the status of the object
- Cinder. It is a block storage system which lets us create, attach or detach block-level storage devices (volumes) to instances. Use the following basic commands in cinder’s command line client to:Install the cinder’s command line client packageMigrate a volume. Note that, the volume is not to be in use and it shouldn’t have snapshots.
Create a <new_volume>
Attach a volume to an instance. Use nova
Resize a volume.
Delete a volume.
- Neutron. It is a system for network configuration and management in cloud deployment. Following are some basic commands to use Neutron efficiently.Install the neutron’s command line client packageInstall the neutron’s command line client packageCreate a network
Create a subnet
Create a router
Create a port with specific IP address
- Apache versus NGINX – Which Open Source Web Server Software you should choose - April 30, 2018
- Understanding OpenStack - April 30, 2018
- Here is everything you need to know about BlockChain - April 17, 2018