Eucalyptus
Elastic Utility Computing Architecture for linking Your Programs to useful Bae (Eucalyptus) is an open-source software infrastructure Used to compute the flexible, practical cloud computing of a cluster or workstation cluster. Originally a research project at the University of California at Santa Barbara Computer Science School, it has now been commercialized and developed into Eucalyptus BAE Inc. However, Eucalyptus is still being maintained and developed as an Open-source project. Eucalyptus BAE also builds additional products based on open source Eucalyptus, and it also provides support services.
Whether it's source code or package installation, Eucalyptus is easy to install in most of today's linux® releases. It provides the following advanced features:
interface compatibility with EC2 and S3 (SOAP interface and REST interface). Almost any existing tools that use these interfaces will be able to collaborate with Eucalyptus based clouds. Supports the running of VMS running on Xen hypervisor or KVM. Future versions are also expected to support other types of VMS, such as VMware. A cloud management tool for system management and user settlement. The ability to configure multiple clusters with separate private internal network addresses into a single cloud.
Schema
The Eucalyptus contains five major components that collaborate to provide the required cloud services together. These components communicate securely with each other using WS SOAP Message delivery.
Cloud Controller (CLC) in the Eucalyptus cloud, which is the main controller component, is responsible for managing the entire system. It is the main entry point for all users and administrators into the Eucalyptus cloud. All clients communicate with the CLC only through a SOAP-or REST-based API. The CLC is responsible for passing requests to the correct components, collecting them, and sending responses from those components back to the client. This is the external "window" of the Eucalyptus cloud. This controller component within the Cluster Controller (CC) Eucalyptus is responsible for managing the entire virtual instance network. Requests are sent to CC via a SOAP-or REST-based interface. CC maintains all information about the Node Controller running within the system and is responsible for controlling the lifecycle of these instances. It routes requests to open virtual instances to Node Controller with available resources. Node Controller (NC) It controls the host operating system and the corresponding hypervisor (Xen or recent KVM, which will soon support VMWare). You must run an instance of NC on each machine that hosts the actual virtual instance (instantiated from the request from CC). Walrus (W) This controller component manages access to storage services within Eucalyptus. Requests are passed to Walrus via a SOAP-or REST-based interface. This storage service within the Storage Controller (SC) Eucalyptus implements Amazon's S3 interface. SC works jointly with Walrus to store and access virtual machine images, kernel images, RAM disk images, and user data. The VM images can be public or private, and are initially stored in a compressed and encrypted format. These images are decrypted only if a node needs to start a new instance and request access to the image.
A Eucalyptus cloud installation can aggregate and manage resources from one or more clusters. A cluster is a group of machines connected to the same LAN. In a cluster, you can have one or more NC instances, and each instance manages the instantiation and termination of the virtual instance.
In a single cluster installation, as shown in Figure 3, there will be at least two machines: one machine running CC, SC and CLC, and the other machine running NC. This configuration is intended primarily for testing purposes and for rapid configuration purposes. By combining everything into one machine, it can be further simplified, but the machine needs to be very robust to do so.
Figure 3. A single cluster Eucalyptus installation topology
In a multiple-cluster installation, you can place individual components (CC, SC, NC, and CLC) on a separate machine. If you want to use it to perform significant tasks, doing so is an ideal way to configure the Eucalyptus cloud. Multi-cluster installations can significantly improve performance by selecting machines that match the type of controller that is running on them. For example, you can select a machine with a super fast CPU to run the CLC. The result of multiple clusters is the increase in availability, the spread of load and resources across clusters. The concept of clustering is similar to the concept of a usability area within Amazon EC2. Resources can be allocated across multiple availability areas, so failures within one zone do not affect the entire application. Figure 4 shows an example.
Figure 4. Topology of a multiple-cluster Eucalyptus installation
Before you install and apply Eucalyptus to your infrastructure, you need to consider your hardware requirements. While it's possible to run everything on a laptop for trial purposes, multiple clusters are a better choice for a real deployment scenario. As listed below are some instructions from the Ubuntu administrator for hardware configuration. These guidelines can be widely used in any Linux release (not just Ubuntu).
The following metrics are recommended configurations for machines running CC, CLC, Walrus, or SC.
Hardware Minimum Recommended CPU1 GHz2 x 2GHz memory MB2 GB hard disk 5400rpm ide7200rpm SATA disk space GB200 GB networking Mbps1000 Mbps
Machines running NC need to be more powerful because they will run each virtual instance. They also require sufficient disk space to store the images needed to start the instance. These machines running NC are preferably multi-core, with at least 4 GB of memory, and use a high-speed disk drive. Some of the recommended indicators are as follows.
Hardware minimum recommended CPUVT extended vt,64-bit, multi-core memory 1 GB4 GB disk 5400rpm ide7200rpm SATA or SCSI disk space GB100 GB networking Mbps1000 Mbps
Availability and Installation
When I was writing this article, the latest version of Eucalyptus was 1.6. You can experience Eucalyptus immediately by using Ucalyptus public Cloud (EPC), which is hosted by the project. EPC has a limited resource, so there are limits to the number of instances that can be enabled and the amount of storage that can be used. However, it is still a good way to experience Eucalyptus and understand the environment.
Eucalyptus can be installed from source code or from a package for a specific Linux release. Installing from source code is a bit more complex, but it can work on almost all the latest Linux versions. Package installation, while simple, is only available for Redhat and Debian based distributions. For more detailed installation instructions, refer to the Eucalyptus Administrator's Guide. The easiest way to install Eucalyptus is to install the latest version of the Ubuntu Linux release Karmic Koalad and take full advantage of the Ubuntu Enterprise Cloud, which provides complete support for running a Eucalyptus based cloud.
Eucalyptus and Ubuntu Enterprise Cloud
Ubuntu Enterprise Cloud (UEC) is a new open Source Initiative, presented by Ubuntu, designed to further simplify the deployment, configuration, and use of the Eucalyptus based cloud infrastructure. UEC simplifies the following:
creates a public cloud that can run Eucalyptus on Amazon's EC2 infrastructure to create a private cloud that runs on top of the infrastructure within the data center behind the firewall
This is by far the easiest way to install and try to use Eucalyptus. Just download the CD server version and install it wherever you want. UEC is also the first open source project that allows you to easily create cloud services in your local environment and then leverage the power of cloud computing.
The benefits of Eucalyptus
Eucalyptus is an excellent architectural cloud service environment that can be used to create a public cloud on Amazon's EC2 infrastructure, or to create a private cloud in your data center, or even a notebook computer. If you are considering using cloud computing within your team or organization, then Eucalyptus is a great way to consider using the Taoyun service platform. It provides some of the following benefits.
Open source and development Eucalyptus was created to facilitate communication and research in the cloud computing platform. It provides free use in the form of source code, which makes it easy for you to see its essence through its surface, or to create an extension of the platform for your own needs. The pace of development is fast. Features and improvements are continually added to the Eucalyptus. The outstanding Community Eucalyptus has a distinguished community of enthusiastic and knowledgeable users who are willing to share their insights with others for free. Their forums are a great way to get support and interact with other Eucalyptus users. Public cloud Eucalyptus can easily be installed and run as a public cloud on Amazon's EC2 framework. Private cloud Eucalyptus can be installed in a data center behind a firewall as a private cloud running over your infrastructure. This allows you to gain overall control over security and the environment. Portability benefits from the compatibility of Eucalyptus with Amazon's EC2 API and the flexibility of Eucalyptus to migrate applications from one cloud to another easily. You can even create mixed clouds to use both public and private clouds. After a good test Eucalyptus is now part of the Ubuntu Enterprise Cloud and is a component of thousands of Ubuntu servers worldwide. The scale of this test will soon consolidate the stability of the Eucalyptus platform. Business Support if you need to exceed the faster support that the forum can provide, there is also business support for Eucalyptus based clouds.
Concluding
In this article, you learned about the infrastructure as a Service (IaaS) cloud computing environment. You also explored open source Eucalyptus projects that can be used to create public or private cloud infrastructures.
Part 2nd of this series will focus on the Platform as a Service (PaaS) cloud environment and Appscale, an open source project to run Google app Engine applications.