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 else.
- 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 openstack component.
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 applications.
Some of the greatest features that made OpenStack Grizzly a winner among competition are:
- It's Dashboard
- Object storage
- Snapshot running instances
- Snapshot to new images
- Live Migration
- 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 contact us.
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 feature.