What Does OpenStack Offer To You?

It’s free and open source!

It offers a free alternative to VMware. The license costs for VMware are quite large if you are running a big cluster. OpenStack on the other hand is free, open sourced solution. Of course there are some costs; hardware, electricity, administration, OS licence if you decide to run it on RHEL.

You don’t have to take every component that comes with OpenStack. For example you can leave Swift out of your environment if you don’t need storage. OpenStack being open source means you can modify it how you want based on how it fits to your purposes. This also means that you don’t have to wait for your vendor to fix something small in the software that would come in the next update, which can cost money when you can do it yourself.

OpenStack’s Swift is quite versatile. It can be installed on a single server, which uses only one hard drive, but it is at best when installed on multiple servers.

Adding and removing storage nodes is fast and easy. Add the node to the storage ring configuration and re-balance it. Swift starts automatically replicating the stored files to the new node. Replication is done with rsync, fast and efficient software.

Recently PayPal replaced their 80 000 VMware servers with OpenStack. Their main reason was speed, as mentioned earlier it can take months for vendor to release a fix for something small. Full article and reasons can be found here. Another PayPal’s reason was scalability. They get sudden spikes of traffic and OpenStack can help and deploy new virtual machines to balance the load

My Take on Creating Windows Server 2008 R2 Image for OpenStack

I started to follow this guide http://networkstatic.net/building-a-windows-image-for-openstack/ since it felt like the best one found from the Google.

At first I had problems with finding a KVM-supported virtual machine. My laptop supports Intel VT-x, so I knew it should be possible. At first I tried Virtualbox, which I already had installed on this laptop, but after some testing, I found out that VirtualBox doesn’t have support for nested virtual machines. The request for this has been open for 4 years! After this I tried my Ubuntu VM on ESXi environment, but it wasn’t enabled there either. Lastly, I solved the problem with VMware Player. Luckily the engineers at VMware had decided to built the support for nested virtualization in their products.

The next problem I faced was with the VNC connection to the Windows Server. For some reason it decided to show only a small area of the Windows Server, which can be seen from the picture below. The map network drive box is cut off at the side and the bottom. This caused some problems, since you couldn’t really see much of the screen. I managed to install the Red Hat VirtIO ethernet drivers, so the Internet would work on it. I also enabled remote desktop connection and disabled the firewall.

Uploading to Glance was easy and there weren’t any problems with it. The OpenStack environment is running on Folsom release.

At first I tested the image with tiny flavor: 512MB RAM, 1 VCPU, 0GB Root Disk, 0GB Ephemeral Disk. It booted up fine and once a floating IP was assigned to it, you could use RDP and connect to it. This flavor doesn’t give you much to do since it only holds the 15GB base image and half of that is used by the Windows Server itself.

After this I tested 2nd flavor: 2GB RAM, 1 VCPU, 10GB Root Disk, 20GB Ephemeral Disk. This flavor gave me an error instantly. It took me a little while to realize that the base image I created had 15GB disk. There is no way it can fit on the 10GB root disk on 2nd flavor. Kind of a newbie mistake, but we learn from our mistakes, right? If you give a bigger root disk than the base image, you need to expand the base image or create a new drive from the unused space.

Windows Server shows the ephemeral disk as offline at first, so you have to put it online first. Then you have to initialize it and then format and assign a drive letter for it. Then it’s ready to use.

The only problem I have is that the Volumes can’t be attached to the Windows instance. OpenStack suggests /dev/vdc/ as a mounting path, and since it’s a path that is used on Linux machines, it won’t work with Windows. Using some other name doesn’t work either, e.g. “F:”.

My only problem has been solved with a single command. After the command below, the Windows Server could see the empty, offline volume that was attached via CLI. Attaching a volume to Windows instance doesn’t work on Horizon, it errors out instantly.

nova volume-attach <server> <volume> <device>