I am experimenting with a couple of technologies that I soon may have to use at work. So for now, I was thinking about duplicating the environment which I may have to create for my office at home so that I can save sometime.

We're thinking of hosting our websites on our own little datacentre at work. While this is still under discussion, I think this provides an excellent opportunity for me to learn some cloud/virtualization technologies.

So, I have 2 assembled PCs (2nd gen i5 processor, 4GB RAM each, 80GB HDD each) on which I plan to learn on. I'd like to recreate a hosting environment wherein I'd like to be able to host websites, have backups taken, incorporate Load balancing (if necessary). I was thinking along the lines of Openstack. The host OS that I was thinking of using was CentOS or Fedora.

My questions are:

  1. Is it better to install Openstack on top of one of the afore mentioned OS or first have Virtualize the environment with ESxi/Xen and then install Openstack? (I am going to be using all of these technologies for the first time)

  2. Say there is a website which has a MySQL db, in a virtual environment, is it possible to have one VM as the frontend and another VM as the DB server? Does this affect the performance in anyway?

I've downloaded all the necessary documentation from the websites and some tutorials as well and I also have the hardware ready. I'm waiting for some input from this community which might be helpful along the way or some advice from people who've tried this before.

There're a list of lists I've found concerning building your own environment but by far, I found this to be the most interesting.

3 Answers 3


This is a big topic, but I'll try to keep it short.

You could try DevStack, which will get you up and running with less configuration work. If you want to really understand the inner workings of the platform, and since you have the hardware, I would go ahead and install it from scratch on your distro of choice (CentOS and Fedora are fully supported according to the docs - I would suggest reading through them before beginning).

  1. You will be installing a Cloud Controller and at least one Compute Node. The Compute nodes should be physical machines, as the tenants in the cloud will run on the Compute nodes as virtual machines. The other machine can be the controller. Install Linux, then install OpenStack and its prerequisites via yum/other package mgr. You can download pre-configured CirrOS images to register on your cloud and test the cloud API. KVM is the default hypervisor for OpenStack, and it has worked well for me.

  2. It is a common practice to separate the database from the application front end, whether virtual or physical. In most cases, performance will increase due to the decreased activity on both machines (assuming LAN connection 100mb+).

Building a production cloud isn't trivial, and you may even have to wipe your lab machines and start over more than once, but learning the technologies is exciting.

  • Sounds both challenging and exciting. I'm getting the suggested docs. I'll let u know abt the progress. Thanks
    – rahuL
    Nov 30, 2012 at 0:03

My two cents: I'd use Foreman to deploy this, so you can easily burn it and start again whenever you want. Learn Puppet inside-out whatever deployment tool you use - almost all of them are wrappers around Puppet anyway (notable exception is Crowbar which uses Chef). Make sure the hosts' FQDNs contain more than one dot, and that the Foreman server is also the OS controller. Use nova-network not Quantum/Neutron for simplicity. Don't worry about performance in the slightest in a two-machine setup and when you're just learning. HTH!


Its easy, just put open-stack on you hardware, then create instances for web-server and database servers, and you are good to go, and you can scale horizontally as well, if required.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .