Open source and cloud computing – the best of both worlds. Interested? Read on then…
Ever felt like creating your own little private cloud on your desktop or laptop? Or, just wanted to explore what the cloud software really does? If you think there’s too much cost involved for these initiatives, think again, because open source is there to the rescue!
There are quite a few open source products that can help you get your first real feel of the cloud. However that doesn’t mean that you are limited in scope by using open source cloud technologies; in fact many large organizations today are adopting open source-based cloud environment for building their own in-house environments. There are many case studies and white papers available about this subject.
Okay, so what would one need to build an in-house cloud? I list six here.
1. Operating system (OS)
You need to select your operating system. This selection is often influenced by the choice of the cloud software and hypervisor that you select according to your requirements. Among the popular operating systems are: Ubuntu, Red Hat Enterprise Linux (RHEL), CentOS, SUSE Linux Enterprise Server (SLES), openSUSE, Debian, and Fedora.
2. Open source software to build private and public cloud
This software is the building block of your cloud environment. Let’s look at some of the commonly used software:
- One of the most popular open source packages for building cloud computing infrastructures.
- Interface is compatible with Amazon EC2.
- Includes Walrus, a cloud storage application compatible with Amazon Simple Storage Service (Amazon S3).
- Operating systems supported are Ubuntu, RHEL, CentOS, SLES, openSUSE, Debian and Fedora.
- Hypervisors are VMware, Xen, and KVM.
- Supports private cloud construction and the idea of hybrid clouds.
- Operating systems are OpenNebula, which is included in Debian wheezy, Ubuntu Natty.
- Hypervisors are Xen, KVM, and VMware.
Xen Cloud Platform (XCP)
- XCP 1.0 is the first full release of the Xen Cloud Platform.
- Includes Xen hypervisor.
- Supported guest operating systems are RedHat, Debian, CentOS, SUSE.
- Focuses on automatic, rapid deployment, monitoring, and high-availability.
- Supported operating systems are Debian, Ubuntu, CentOS, SuSE, and Fedora
- Hypervisors are VMware, Xen, KVM, and Linux-VServer
- Compatible with Amazon APIs.
- Supported operating systems are RedHat, Debian, and Ubuntu
- Hypervisor are Xen and KVM.
Details of how to actually plan and build your cloud using several of these technologies are listed in the “Resources” section near the end of this blog entry.
The following table lists various open source hypervisors that you may employ for your cloud environment:
|Name||Host CPU||Host OS||Guest OS||License|
|OpenVZ||Intel x86, AMD64, IA-64, PowerPC 64, SPARC/64||Linux||Various Linux distributions||GPL|
|Xen||X86, x86-64, IA-64||NetBSD, Linux, Solaris||FreeBSD, NetBSD, Linux, Solaris, Windows XP and 2003 Server||GPL|
|KVM||Intel/AMD processor with x86 virtualization, IA64, PowerPC||Linux||Linux, Windows, FreeBSD, Solaris||GPL|
|Linux-VServer||x86, AMD64, IA-64, Alpha, PowerPC/64, PA-RISC/64, SPARC/64, ARM, MIPS||Linux||Various Linux distributions||GPL|
|LXC||Intelx86, AMD64, IA-64, PowerPC 64, SPARC/64||Linux||Various Linux distributions||GPL|
|User Mode Linux||x86, x86-64, PowerPC||Linux||Linux||GPL|
|Sun xVM Server||x86-64, SPARC||None||Windows XP, 2003 Server (x86-64 only), Linux, Solaris||GPL|
Use an Intel x86 system that is VT-enabled. In most cases, you would need two physical machines:
- One (usually referred to as front end) to run the cloud software
- The other (usually referred to as node) for provisioning the virtual images meant for users
However, some environments will even allow you to run both front end and node on a single physical machine, if you want to have a limited capability setup.
5. Virtual networking
To optimize network communication among virtual machines (VMs), you need a virtual switch. The most commonly used open source virtual switch is known as Open vSwitch. It is the default switch in the Xen Cloud Platform and also supports Xen, XenServer, and KVM. Recently it is also integrated into other open source cloud platforms like Open Nebula and Open QRM.
6. Infrastructure management
For infrastructure management:
- The oVirt package, developed by Red Hat, is a web-based management console.
- VirtManager, also developed by Red Hat, is GTK-based and presents a much more graphically rich display (for live performance and resource utilization).
Open source offerings: various possibilities
- Infrastructure as a service (IaaS): Vanilla Linux images (for example Red Hat, SUSE, Ubuntu, Debian) with basic utilities
- Platform as a service (PaaS):
- Programming environment: Java and C/C++ compilers, Perl, Python, and others
- Database: MySQL
- Web: Apache
- Portal: JBoss
- Software as a service (SaaS):
- ERP: OpenERP, OFBiz
After your private cloud setup is in place, you can think of turning that into a hybrid cloud by interfacing with public clouds, such as Amazon EC2. That step opens up a whole new world of opportunities. Products such as Eucalyptus and OpenNebula support this feature.
Here’s a sample solution approach that you may follow for your cloud journey:
Example architectural elements
Two sample architectural elements of the commonly used open source cloud software are shown in the following figures.
Open Source at IBM
You might be wondering how IBM with all its own Cloud offerings fit into the Open Source scenario! To start with, IBM contributes to many open source emerging technology projects through communities including Apache and Eclipse. Infact, IBM recently announced joining the OpenStack Foundation as Platinum-level sponsor along with AT&T, Canonical, HP, Nebula, Rackspace, Red Hat and SUSE. IBM is also supporting the Open Cloud manifesto – a Cloud computing ecosystem that promotes openness of standards and technologies.
IBM and Amazon Web Services
IBM and Amazon Web Services have teamed up to provide several IBM platform technologies that you can use on Amazon EC2. You can get started by bringing your own IBM licenses to Amazon EC2 or by leveraging the Amazon EC2 running IBM service. More details available here. You can also browse through the list of Amazon Machine Images (AMIs) that are available for IBM products.
Note: Because of advancement in product releases, there may be further updates to the information provided here. Please check the respective product documentation for the most current information.