What is OPENSTACK and how to use it?
OpenStack is an open source software for building private and public clouds with large pools of
compute, storage and networking resource within a datacenter.
Here, at Assist Software we use OpenStack services for private cloud on our datacenter. There
are four main reasons why we have chosen openstack for our private cloud:
It's open source so we can innovate on the cloud by providing additional features before anyone
Technical , OpenStack is flexible enough to allow us build software products as we imagined it.
Economical, since we do not pay any licence we are not charging our customers for inlicensing.
The fourth reason is a marketing related. We want to be considered as an innovative software
outsourcing company on eastern european market.
Our main goal was to have full control over infrastructure and hardware, and to ensure compatibility
with other public clouds so we can easily deploy the applications we build for our clients to whatever
public cloud is needed.
OpenStack is a very scalable platform. It gives us the tools and the scale to solve all our need to
provide professional applications for our clients.
All resources are managed through a dashboard that gives administrators control while empowering
their users to provision resources through a simple web interface or REST API.
OpenStack relies on the underlying operating system and an hyper-visor. For operating system you
are able to choose between RedHat, Ubuntu or openSUSE, and for hyper-visor you are free to chose
between KVM, ESX, Xen, Hyperv, but KVM has 71% market share.
Currently OpenStack has six main components:
Is the project name for OpenStack compute. Nova resources are accessible via web interface for
sysadmins and users and via API for developers building cloud applications. Using nova, openstack is
able to improve utilization and automation of resoures for greater cost efficiencies.
Is the service that deals with registering, discovering and retrieving virtual machine images. So all
images meta-data can be queried by glance RESTful API.
Is the OpenStack project that provides Catalog, Identity, Token and Policy services for every
Is the code name for OpenStack's Dashboard, which provides a friendly web user interface for almost
all OpenStack services.
Quantum / Neutron
Is another network component of OpenStack. It provides networking as a service between virtual
machine NICs and physical layer of network. The main used plugin with neutron is Open vSwitch
while there are many others like Cisco UCS/Nexus or Linux Bridge.
Is the component of OpenStack that provides infrastructure for managing volumes. A nice feature of
Cinder is that you can use NFS Shares for defining new volume types and use it for mass storage
Some of the greatest features that made OpenStack Grizzly a winner among competition are:
Snapshot running instances
Snapshot to new images
EC2 Compatibility API
S3 Compatibility API
Starting, resizing, stopping and querying virtual machines (“instances”)
Assigning and removing public IP addresses
Attaching and detaching block storage
Adding, modifying and deleting security groups
Show instance consoles
As we can see in the following chart from Google Trends, OpenStack has a much larger community
and tons of related articles where all common issues are described and discussed.
Our private cloud
Further on, I will describe a little about our private cloud solution based on OpenStack.
We have a datacenter based on IBM BladeCenters with IBM HS22 Blade servers. Netwoking is
managed through a core switch from Allied Telesis and the gateway is a freeBSD machine.
We chose to deploy OpenStack using RDO Grizzly release from RedHat on CentOS operating
system. We deployed it using Neutron with OVS and tagged VLANs because VLANs are performing
much better than GRE tunnels, and since now GRE tunels have a small problem on the rdo kernel
that affects tcp offloading performance.
If you plan to deploy OpenStack within an IBM BlandeCenter you have to connect to the BladeCenter
Switch and configure a new Access Group for the network cards you want to transport all VLANs and
assign to that access group VLANs that you intend to configure within
the CONFIG_QUANTUM_OVS_VLAN_RANGE. Also add the VLAN for external connectivity from
Layer 2 switch that the network card is connected. Also make shure that you configure the port where
BladeCenter Switch is connected on the Layer 2 switch as stattic tagged.
If you have any questions regarding OpenStack networking implementation feel free to ask me.
One of the keys of adopting cloud computing is the fact that costumers are not locked in. They have
choice of where they want to deploy. They are able to deploy in a public cloud or in a private cloud, or
sometimes they want to deploy on their personal datacenter.
We are very excited about the growth of the OpenStack community, it's growing in terms of
commitment from all the big vendors like Cisco, Intel, IBM, vmware and so on. This fact solidifies
OpenStack growth and makes it a strong reliable platform for cloud computing.
OpenStack helps us think two steps ahead from where we are today and where we need to be in the