Where Open Source Software Is Used 97
today. An administrator can take put any number of nodes online or take
them offline at any time without interrupting services to end users, which is
exactly what is required for operating a cloud.
The Direct Routing Request Dispatching Technique
This request dispatching approach is similar to the one implemented in
IBM’s NetDispatcher. The virtual IP address is shared by real servers and the
load balancer. The load balancer has an interface configured with the virtual
IP address too, which is used to accept request packets, and it directly routes
the packets to the chosen servers. All the real servers have their non-arp
(address resolution protocol) alias interface configured with the virtual IP
address or redirect packets destined for the virtual IP address to a local
socket, so that real servers can process the packets locally. The load balancer
and the real servers must have one of their interfaces physically linked by a
hub or switch.
When a user accesses a virtual service provided by the server cluster, the
packet destined for the virtual IP address (the IP address for the virtual
server) arrives. The load balancer (Linux Director) examines the packet’s
destination address and port. If they are matched for a virtual service, a real
server is chosen from the cluster by a scheduling algorithm, and the connec-
tion is added into the hash table which records connections. Then, the load
balancer forwards the packet directly to the chosen server. When the incom-
ing packet belongs to this connection and the chosen server can be found in
the hash table, the packet is also routed directly to the server. When the
server receives the forwarded packet, the server finds that the packet is for
the address on its alias interface or for a local socket, so it processes the
request and finally returns the result directly to the user. After a connection
terminates or times out, the connection record is removed from the hash
table. The load balancer simply changes the MAC address of the data frame
to that of the chosen server and retransmits it on the LAN. This is why the
load balancer and each server must be connected directly to one another by
a single uninterrupted segment of a LAN.
Virtualization Applications
Application virtualization describes software technologies that improve
portability, manageability, and compatibility of applications by encapsulat-
ing them from the underlying operating system on which they are exe-
cuted.
30
A virtualized application is redirected at runtime to interface with
Chap3.fm Page 97 Friday, May 22, 2009 11:25 AM
98 Cloud Computing
the virtual operating system and all related resources that are managed by it
rather than an actual, physical implementation of that operating system.
Full application virtualization requires a virtualization layer.
31
The vir-
tualization layer must be installed on a machine to intercept file and registry
operations performed by a virtualized application, where it can transpar-
ently redirect those operations to a virtualized destination. The application
that performs file operations never knows that it is not directly accessing a
physical resource. Using this approach, applications can be made portable
by redirecting their I/O tasks to a single physical file, and traditionally
incompatible applications can be executed side by side.
Using application virtualization allows applications to run in non-
native environments. For example, Wine allows Linux users to run
Microsoft Windows applications from the Linux platform. Virtualization
also helps protect the operating system and isolate other applications from
poorly written or buggy code. With application virtualization, physical
resources can be shared so an implementation uses fewer resources than a
separate virtual machine. Simplified operating system migrations are possi-
ble because administrators are able to maintain a standardized configuration
in the underlying operating system and propagate that configuration across
multiple servers in an organization, regardless of whatever applications may
be used. In the next few sections, we will take a look at some of the more
popular virtualization environments in use today.
VMWare
The VMware virtualization platform is built to virtualize hardware
resources found on an x86-based computer (e.g., the CPU, RAM, hard
disk, and network controller) to create a fully functional virtual machine
that can run its own operating system and applications just like a standard
computer. Each virtual machine is completely encapsulated in order to
eliminate any potential conflicts. VMware virtualization works by inserting
a thin layer of software directly on the computer hardware or on a host
operating system. This layer is actually a monitor called a Hypervisor, and
its task is to allocate hardware resources dynamically and transparently.
Multiple operating systems can run concurrently on a single computer and
share that computer’s hardware. A virtual machine is completely compatible
with all standard x86 operating systems, applications, and device drivers. It
30. http://en.wikipedia.org/wiki/Application_virtualization, retrieved 11 Feb 2009.
31. Amir Husain, “How to Build an Application Virtualization Framework,” http://vdiworks.com/
wp/?p=15, retrieved 11 Feb 2009.
Chap3.fm Page 98 Friday, May 22, 2009 11:25 AM
Where Open Source Software Is Used 99
is possible to run several operating systems and applications simultaneously
on a single computer, and each operating system has access to the physical
resources it needs on demand.
Readers interested in trying virtualization may consider using VMware
ESXi (a free download from the official web site).
32
With ESXi, you can cre-
ate virtual machines quickly and easily. A menu-driven startup and auto-
matic configurations enable you to get virtual machines set up and running
in minutes. You can even import a virtual appliance using the VMware Vir-
tual Appliance Marketplace. For more information on VMware, the reader
is encouraged to visit the official web site.
Xen
Xen is a unique open source technology
33
invented by a team led by Ian
Pratt at the University of Cambridge. Xen was originally developed by the
Systems Research Group at the University of Cambridge Computer Labo-
ratory as part of the XenoServers project, funded by the UK-EPSRC.
XenoServers aimed to provide a public infrastructure for global distributed
computing. Xen plays a key part in that, allowing one to efficiently parti-
tion a single machine to enable multiple independent clients to run their
operating systems and applications in an environment. This environment
provides protection, resource isolation, and accounting. The project web
page contains further information as well as pointers to papers and techni-
cal reports.
34
Using Xen server virtualization, the Xen Hypervisor is installed directly
on the host hardware and exists as a thin layer between the hardware and the
operating system. This abstraction layer allows the host device to run one or
more virtual servers. It isolates hardware from the operating system and its
applications. Xen is licensed under the GNU General Public License
(GPL2) and is available at no charge in both source and object format.
According to the official web site, “Xen is, and always will be, open sourced,
uniting the industry and the Xen ecosystem to speed the adoption of virtu-
alization in the enterprise.”
The Xen Hypervisor supports a wide range of guest operating systems
including Windows, Linux, Solaris, and various versions of the BSD operat-
ing systems. The Xen Hypervisor has an exceptionally lean footprint. The
Xen Hypervisor offers a smaller code base, greater security, and up to 10
32. http://www.vmware.com.
33. http://www.xen.org.
34. http://www.cl.cam.ac.uk/xeno, retrieved 11 Feb 2009.
Chap3.fm Page 99 Friday, May 22, 2009 11:25 AM
100 Cloud Computing
times less overhead than alternative virtualization approaches. That means
that it has extremely low overhead and near-native performance for guests.
Xen reuses existing device drivers (both closed and open source) from Linux,
making device management easy. Xen is robust to device driver failure and
protects both guests and the Hypervisor from faulty or malicious drivers.
Virtual device monitors (which are also known as hypervisors) are often
used on mainframes and large servers seen in data center architectures.
Increasingly, they are being used by Internet service providers (ISPs) to pro-
vide virtual dedicated servers to their customers. Xen support for virtual-
machine live migration from one host to another allows workload balancing
and avoids system downtime. Some of the main advantages of Xen server
virtualization are
Consolidation and increased utilization
The ability to rapidly provision and start a virtual machine
Better ability to dynamically respond to faults by rebooting a vir-
tual machine or moving a virtual machine to a different hardware
platform
The ability to securely separate virtual operating systems on the
same platform
The ability to support legacy software as well as new operating sys-
tem instances on the same computer
Xen may also be used on personal computers configured in a dual-boot
configuration (e.g., those that run Linux but also have Windows installed).
Traditionally, such systems provided the user the option of either running
Windows or Linux, but with Xen it is possible to start Windows and allow
it to run from in a separate Window on the Linux desktop, enabling the
user to run applications from both systems simultaneously.
For operating system development tasks, virtualization has a signifi-
cant additional benefit—running the new system as a guest avoids any
need to reboot the computer whenever a bug is encountered. This pro-
tected or insulated environment is known as a “sandbox,” and such sand-
boxed guest systems are useful in computer security research and
development. In order to study the effects of malware, viruses, and worms
without compromising the host system, developers often prefer to use a
sandbox. Hardware appliance vendors increasingly have begun to ship
Chap3.fm Page 100 Friday, May 22, 2009 11:25 AM
Chapter Summary 101
their products preconfigured with several guest systems. This allows them
to deliver complex solutions that are able to execute various software
applications running on different operating systems.
Xen touts a para-virtualization technology that is widely acknowledged
as the fastest and most secure virtualization software in the industry. Para-
virtualization takes full advantage of the latest Intel and AMD hardware vir-
tualization advancements and has fundamentally altered the way virtualiza-
tion technology is built. Virtual servers and the Hypervisor cooperate to
achieve very high performance for I/O, CPU, and memory virtualization.
According to the Xen User Manual,
35
the Xen system has multiple lay-
ers, the lowest and most privileged of which is Xen itself. Xen can host mul-
tiple guest operating systems. Each operating system is run within a secure
virtual machine environment known as a domain. In order to make effec-
tive use of the available physical CPUs, such domains are scheduled by Xen.
Each guest operating system is responsible for managing its own applica-
tions. This management includes scheduling each application within the
time allotted by Xen to the virtual machine. The primary domain, domain
0, is created automatically when the system boots, and it has special man-
agement privileges. Domain 0 builds other domains and manages their vir-
tual devices. Domain 0 also performs administrative tasks such as
suspending, resuming, and migrating other virtual machines. Within
domain 0, a process called xend is responsible for managing virtual
machines and providing access to their consoles.
3.9 Chapter Summary
In this chapter we discussed what it takes to build a cloud network, evolu-
tion from the managed service provider model to cloud computing and
SaaS and from single-purpose architectures to multipurpose architectures,
the concept and design of data center virtualization, the role and impor-
tance of collaboration, service-oriented architectures as an intermediary step
and the basic approach to data center-based SOAs, and the role of open
source software in data centers and where and how it is used in cloud archi-
tecture. Cloud computing provides an end-to-end, unified solution that
maximizes the ability to address the performance, scalability, virtualization,
and collaboration requirements being driven by todays global business chal-
lenges and opportunities. It should be clear that a properly designed and
35. http://tx.downloads.xensource.com/downloads/docs/user/user.html, retrieved 11 Feb 2009.
Chap3.fm Page 101 Friday, May 22, 2009 11:25 AM
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset