Some of you might know, that the latest thing we Boosters were working on was promoting OpenStack on openSUSE. What is OpenStack? OpenStack is really cool, let’s write something more about it and then I’ll continue with what I wanted to report 😉
Imagine you are running data center. You’ve got tenths or several hundreds of computers (thousands scares me, let’s end with few hundreds top). We geeks have this sort of dreams, right? Everybody wants to be a rock star, fly to the moon and have a private data center or two, right? Now let’s say, that you want to run some services in your data center. How do you decide where to put them? Where to keep your data? Here comes OpenStack to help you create your own virtualization cloud!!!
Let’s get to the
boring exciting details! OpenStack consist from several components. All these components does just what they are supposed to. If you put them together, you will get your own virtualization cloud. But you can leave some of them out or even use just part of the cloud infrastructure. Let’s take a look at some of them.
I will start from the bottom and from the component that sounds most awesome to me. Data storage. Swift can store some data blob somewhere. Where? That is the right question. Swift is designed to provide high availability distributed data storage. How would you make sure that your data are safe no matter of what? Swift uses rings, zones and replicas. Ring is what describes mapping between virtual objects in cloud and their physical location. Data are stored on partitions which can be replicated using replicas. Devices in the ring can be also divided into zones. For example one zone can be my data center in the basement of my house, other zone might be data center at work and let’s say that I have a friend who will let me use data center in his basement as well. Now what is really cool about swift is, that you can specify, that there should be let’s say two replicas of each partition. And whenever there will be some data stored inside, Swift will ensure that these replicas are in different zones by itself! So if you will have an argument with your friend and blow up his house, your data will be still intact! When I grow up and will have some data centers, I will definitely need something like this!
A little side note. Although I was joking a little bit and speaking about data centers, it’s not that abstract concept, you can just replace a data center with a computer. And you will realize that you’ve got four computers at home, two at work and it sucks when one of them breaks up and you can get data out of it. And there is a wide variety of options in between where you can use Swift 😉
Glance is a part of OpenStack that manages virtual disk images. Users can register new images, manage them, read something about them and actually use them. One feature is that it can use Swift as a backend for storing them. And the the cloud needs to access them somehow, right? So Glance is in the middle of two components, providing images for Nova while getting storage space from Swift 😉 But of course, it can be used independently of both.
Nova is, I would dare to say, main part of OpenStack. This part is responsible for actual management of the virtual machines, networks and stuff in the cloud. It can define projects, divide users into them and let them create actual virtual machines in the cloud. But it doesn’t do actual virtualization, rather it uses great tools already available in the system underneath, especially libvirt. As it needs to manage a lot of stuff, Nova itself is divided into multiple components that can be run on several servers and communicate with each other over the network. In the end, all functionality is exposed using HTTP based API. Nova can also provide Amazon EC2 compatible API if you already have some integration already done 😉 As Nova does a lot of things, I will not go into this any deeper details, but instead I will point you to the official page 😉
Horizon or OpenStack dashboard is a web interface that makes it easy to manage your cloud. And as one picture can be more powerful then thousands of words, I wouldn’t describe it much and instead I will point you to the video showing how it works 😉 Pretty awesome, isn’t it?
So as you now know what is OpenStack, what were we Boosters doing with it? My colleagues were cleaning up the packages and repositories and helping with packaging, trying to get dependencies to the Factory. What I have been working on? I was trying to get some parts of it running. As you just read, OpenStack can do many things. And setup is not that easy especially if you don’t know much about Python or Django. So in order to make it easier for the others, we decided to create an OpenStack appliance in SUSE Studio based on openSUSE. I was working on it for some time and I finally got dashboard running. It still needs a lot of testing and there might still be some errors, but if you want to try an early version, here you go 😉 Just a little warning, It wouldn’t work with 512M RAM and less, but if you want to play with virtualization, you’ll need more anyway…