|
Cloud Computing with Enomalism
Continuing with our focus on Cloud Computing, this month we deploy a Cloud Computing infrastructure with a web-based graphical client. This makes using the setup a breeze
Anindya Roy
Sunday, February 01, 2009
Continuing with our focus on Cloud Computing, this month we deploy a Cloud
Computing infrastructure with a web-based graphical client. This makes using the
setup a breeze.
Last month we talked about deploying an EC2 compatible cloud computing
infrastructure using Eucalyptus. The deployment of Eucalyptus was tedious but
easy due to the Rocks ISOs. But the only problem with Eucalyptus is that the
client for using it is Amazon's EC2 which is completely command line based and
as a result difficult to run.
So, this time we decided to deploy a Cloud Computing infrastructure which has
a neat web based graphical client, which can make usage of the setup pretty
simple. We selected Enomalism for the same. I cannot guarantee a complete
graphical usage due to some bugs and you might still need to use the command
line, but if you compare it against Eucalyptus, it's far more easier to use. The
other good thing is that if you plan to do a production class deployment with
Enomalism, you can first try out the free version and if you like it but are too
bothered by the management and troubleshooting part of it, you may buy the paid
support from Enomalism. But before we begin, let me warn you that deployment is
not going to be a cakewalk this time.
Prerequisites
There are a couple of things which you have to first identify and arrange before
we can start with the deployment. The first is the base OS on top of which you
want to run Enomalism. One can technically install it on any Linux distro.
However, the preferred distros for installing Enomalism are Fedora 9, CentOS 5.2
and RedHat 5.2.
We first tried installing it on top of a Fedora Box but due to some problem
with the Xen available on Fedora 9 repository, we shifted to CentOS 5.2, where
Enomalism installation worked perfectly. The second thing you need in place is
to have a couple of servers/machines with hardware virtualization support and
identify a machine as the master node which will have the database and the repo
directory on it. All other machines will connect to the master node. In our
setup we used a 24 Core Dunnington server as the master node and a couple of
Core 2 Duo machines as other nodes.
Step 1: Installing the Master Node
First do a base installation of CentOS 5.2 on all machines. I would recommend a
64-bit installation. Once the installation is done, identify one machine as the
master node and configure it first. The master node should have a good amount of
RAM and hard drive space because all of your virtual machines and the Enomalism
database is going to reside on that.
Now download and import two sets of public keys from the enomalism repository
and import them to your system by running following commands:
#wget
http://downloads.sourceforge.net/enomalism/enomalism.public
#wget
http://downloads.sourceforge.net/enomalism/enomalism001.pubkey.asc
# rpm --import enomalism.public
#rpm --import enomalism001.pubkey.asc
Once done, download libvirt 0.4.1 and libvirt-python 0.4.1 for CentOS 5.x for
x64 by running the following commands:
#wget
http://downloads.sourceforge.net/enomalism/libvirt-0.4.1-1.CentOS5.x86_64.rpm?modtime=1205833130&big_mirror=0
#wget
http://downloads.sourceforge.net/enomalism/libvirt-python-0.4.1-1.Cen
tOS5.x86_64.rpm?modtime=1205833291&big_mirror=0
But don't install it at this point, because if you do so you will not be able
to install Xen on this machine due to dependency troubles.
Now download Enomalism build for Python 2.4 (as CentOS 5.2 doesn't have Python
2.5) from http://tinyurl.com/enomalism2 and install it using yum so that all
dependencies for enomalism can be take care automatically. You can do so by
running the following command from the location where you just downloaded
enomalism rpm:
# yum install Enomalism2-2.1.1-3595-noarch-py24.rpm
Now this is the time to install Xen, Qemu and KVM on these machines.
Enomalism supports all these hypervisors. You can install them by running the
following commands:
#yum install yum install kernel-xen xen kvm kmod-kvm
qemu
# ln –s /usr/bin/qemu-kvm /usr/bin/kvm
Now install lib-virt 01.4.1 by running the following command from the
location where you have downloaded the libvirt and libvirt-python packages:
#yum install libvirt-0.4.1-1.CentOS5.x86_64.rpm
libvirt-python-0.4.1-1.CentOS5.x86_64.rpm
This entire procedure forms part of the first step and it is going to be same
for both nodes and the master server.
Step 2: Configuring SQL
Now you have to run MySQL on the master computer, configure it and create the
Enomalism database on it. First run mysqld by running:
# /etc/init.d/mysqld start
Then provide a password to the root user of MySql by running the following
command. Let's assume, we give a password “pass@word”:
# mysqladmin password pass@word
Now run the following command to make sure MySql starts automatically
whenever the machine boots:
# chkconfig mysqld on
Now you have to create the database in MySql for enomalism. To do so go to
/opt/enomalism2/scripts and run:
#./init-db.sh pass@ord enomalism2 pass@word
This command will create at database named enomalism2 and a MySql user called
enomalism2, give the user a password which is again pass@word. It will create
the required tables and fill values to it.
Downloading appliances
To create a virtual machine on top of your Enomalism cloud, the easiest
thing which you can do is just download a virtual appliance from enomalism
repository and use it to create virtual machines. To do so, go to
“Repository ” tab, then click on the “Remote Appliances”. It will list all
the appliances available in Enomalism's repo. Select the appliance and click
on the 'Add' button to start the download.Provisioning a new VM
Once you have downloaded a couple of appliances from the remote repository,
you can start creating virtual appliances. To do so, first go to the
“Virtual Infrastructure” and click o the default cluster link at the right
side of the window. Once you do that, you will be able to see all the
physical machines (nodes) available in your cloud.
 |
Now select any physical machine on which you want to create a virtual
machine. And click on the star icon (which says Toggle Machine details) at
the left side of the machine name. This will open the details of the
machine. Now click on “Provision a new VM on this machine” option. A window
will open, give a name to the VM, select the appliance from the first drop
down menu. And select the hypervisor which you want to use from the second
drop down menu and click on 'Create' button. After a few moments you will
see this new virtual machine in your cluster. Now you can toggle its detail
and click on the 'Start' button to boot the virtual machine. If you want to
change the machine vitals such as Max VCPU, RAM, VNC port, HDD image etc,
you can click on the 'Edit VM XML Definition' and change the settings into
the XML file. Once done, click on 'Update' and your machine will be created.
Bug Fix
Sometimes, after creating a virtual machine, you might find difficulty
booting it. Enomally has a bug which sometimes prevents the VMs to boot
directly through the web interface. The work around for this bug is pretty
simple. All you have to do is to copy the XML file from the 'Edit VM XML
Definition' window and save it to a text file. Let's call the file test.xml.
Once done, go to the terminal and run the command #virsh create /test.xml.
And the machine will boot. Now if you go back to the web interface, you will
find the status of the machine as Power ON. You can even manage and modify
the VM from the interface now. |
Page(s) 1 2
|