Hands On: Building a Private Cloud using Open Source Solutions Part 1: Setting up Cloud Infrastructure using Eucalyptus Open Cloud Platform
In this series, I'll blog mainly on our experiences with open source technologies encountered in the course of setting up a fully functional private cloud, using open source technologies, inside Infosys SETLabs, Bangalore. I'll take you through analysis, deployment details and problems encountered while using technologies ranging from Distributed FileSharing Systems to Open Source Cloud Computing Infrastructure Solutions.
For ease of explanation I've divided this blog into parts:
Setting up Cloud Infrastructure using Eucalyptus Open Cloud Platform
Building Images with different flavors
Hadoop on Eucalyptus
1. Setting up Cloud Infrastructure using Eucalyptus Open Cloud Platform
The private cloud that we planned to setup was to be completely based on open source solutions. Any enhancements, tools that are to be used for supporting the solution are also open source. While using open source has its huge advantages like ease of avaliablity, ability to freely modify the code to fit your purpose and ofcourse "cost"
; it doesn't come gift wrapped with detailed documentation or support.
So I'll take you in detail on our approach:
a. Setting up the base environment:
Networking
Infosys has a strong and vast intranet spread over multiple continents. This provided a strong networking foundation to our endeavor, taking care of issues like i.p address allocation, bandwidth, security(only upto an extent)etc. We wanted the private cloud to be a part of this intranet(ie: instances accessible to intranet users; installation, mantainence etc can be done remotely etc.) but then there was to be a layer of authorization required to work on the cloud. Just being a part of the intranet shouldn't give you access to the private cloud. Eucalyptus managment console took care of this part very well. Eucalyptus manages user authentication based on ticket generation. Only users with registered tickets can use the cloud infrastructure.
Operating System and Hypervisior
Xen was the primary choice for hypervisior layer mainly because that was the only one that Eucalyptus supported at the time(Eucalyptus 1.5 supports both xen and kvm). CentOS is a community-supported, freely-available operating system based on Red Hat Enterprise Linux. It provides a free enterprise class computing platform and maintains 100% binary compatibility with its upstream distribution. The main catch point was that it came bundled with xen. So with a single installation we had our job cut by half. We had the base set to begin Eucalyptus installation.
b. Installing Eucalyptus Open Cloud Platform
A lot has already been said about Eucalyptus: 1, 2, 3. So I'll just skip over that part and go directly to the deployment part.
Installing
The source can be downloaded directly from their site(Eucalyptus has started providing binary installables for popular distributions which makes the job much simpler. But we stuck to the source installation so that the full power of open source like applying patches, upgradation etc could be tapped.). The installation documents provided are pretty straight forward.
But certain assumptions are made in those documents, like unrestricted access to the internet from terminal, absence of firewalls etc. But one of the factors that needs to be considered while setting up a private cloud is that access to the internet may prove to be a security breach. So we planned to setup the whole infrastructure from machines with limited or no access to the internet. The solution that we found was to manually download the packages required and host it on a local Apache server and make the installation point to our server instead of the internet.
Configuration
Networking Mode: Due to the fact that we were deploying Eucalyptus on the Infosys Intranet, we decided to use the SYSTEM Networking mode. In this mode Eucalyptus relys on an external DHCP server for address allocation. So an instance created using Eucalyptus will aquire i.p address like any other machine from the DNS server.
Turning Firewall Off: Firewall configuration present in CentOS didn't allow the Eucalyptus services to be visible outside. So I followed janispike's blog, to turn firewall off.
Adding Nodes: Nodes were added using the command
$EUCALYPTUS/usr/sbin/euca_conf -nodes "<nodehost1> ... <nodehostN>" $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf$EUCALYPTUS/usr/sbin/euca_sync_key -c $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
Now the Eucalyptus Cloud is setup and ready for use. In the next section I'll talk about Creating Images to be hosted on Eucalyptus.



Comments
Please link to [Eucalyptus Open Cloud Platform
] -->
http://open.eucalyptus.com/
Posted by: TTA | May 25, 2009 05:30 AM
Now, this is fascinating. The power of Cloud Computing is not limited to big players like Microsoft or Amazon. This is a very subtle dimension of Clouting (Cloud Computing)...
Small start-ups/education hubs/network of dedicated consumers like medical stores, accounting firms, etc can be covered in private clouds.
I don't know how much feasible that would be, but a big idea brings in great feasiblity to its derived ideas as well.
Data security can also be ensured as these hubs can be covered like an intranet and because their data is isolated from the Internet, it is more safe.
Posted by: Krishnakumar Iyer | May 28, 2009 07:09 AM
We have implemented a eucalyptus cloud in our test environment to use for hosting websites and it has worked very well.
Our goal is to use Eucalyptus for our file server and mail server.
Posted by: gmbarnett | June 2, 2009 05:31 PM
I am trying to set up a private cloud using EUCALYPTUS open source. I downloaded the required files as per the document. But the end part of install document is confusing like prerequesting. Is all prerequest a must? If you know any sample cloud, please share the site address. That will help me to understand.
Posted by: Sivakumar Kuppusamy | July 1, 2009 02:13 PM