This is an excerpt from the bestselling book
Oracle Grid &
Real Application Clusters. To get immediate access to the code depot
of working RAC scripts, buy it
the publisher and save more than 30%.
of Oracle Grid
Over the last decade, Grid technologies have emerged out of
research and development institutions in both academia and industry. In the
early 1990?s, work in meta-computing and related fields involved the development
of custom solutions to Grid Computing problems. From 1997 onward, the open
source Global Toolkit Version 2 (GT2) emerged as the de-facto standard for Grid
Computing. GT2 initiative defined protocols, APIs and services used in grid
GT2 creation was a remarkable event, as it pioneered the
creation of interoperable grid systems and helped to develop many grid
programming tools. Many standards evolved in due course, notably the GridFTP
data transfer protocol and elements of Grid Security Infrastructure. However,
these standards were neither formal nor subject to public review.
In 2002, Open Grid Services Architecture (OGSA) standard emerged as a consensus
standard. This became a true community standard with multiple implementations,
including OGSA based Global Tool Kit 3.0. OGSA now provides a foundation and
framework wherein one can define a wide range of interoperable, portable
Now, many researchers and industry supporters believe that the formation of OGSA
technical specifications will give enough impetus for the formation of expanding
the set of interoperable services and systems that address scalability issues,
increased degree of virtualization, extensive sharing and increased quality
services. With participation of key IT industry leaders, the grid concept is
being applied toward solving more and more projects, and also there will be more
sharing and virtualization in the future.
Oracle Grid vs. Cluster Computing
The Grid is not a Cluster. The key distinction between
clusters and grids lies mainly in the way the resources are managed. In the case
of clusters, the resource allocation is performed by a centralized resource
manager and all nodes cooperatively work together as a single unified resource.
The result of such aggregation is to present a single system image (SSI).
Clusters are generally built for a specific purpose, for instance to host a
parallel database server, or for hosting an application server. In the case of
Grids, each node has its own resource manager and does not aim for providing a
single system view. They, in turn, provide a pool of resources for a variety of
users and applications. We also notice that the autonomous resources in Grid can
span across single or multiple organizations.
In a way, Grid encompasses a bigger framework and provides wider and loosely
coupled aggregation of servers and other related resources.
Grid?s architecture employs specialized scheduling software that identifies
available resources and allocates tasks for processing accordingly. Requests for
resources are processed wherever it is most efficient or wherever a specific
function resides. Computers or nodes located in the grid are able to act
independently without centralized control, handling requests as they are made
and scheduling others. If one set of resources isn't available, they will simply
Grid Goals and Objectives
The main attraction for using the Grid paradigm is to run an
existing application on a different machine or group of machines. The machine on
which the application is normally run might be unusually busy due to an unusual
peak in activity. The job could be run on an idle machine elsewhere on the grid.
In order for this to occur, the application must be executable remotely and
without undue overhead. The remote machine must meet any special hardware,
software, or resource requirements imposed by the application.
If the applications are grid-enabled, they can be moved to under-utilized
machines during such peaks. Some grid implementations can migrate the partially
completed jobs. In general, a grid can provide a consistent way to balance the
loads on a wider federation of resources.
Utilization of Parallel CPU Activity
Many of the modern applications are written with algorithms to exploit the CPU
power across many hosts or servers. Grids with networks of multiple servers
provide a very good opportunity for these parallel applications to exploit the
multiple processors. A CPU intensive grid application can be thought of as a
collection of many smaller sub-jobs, each executing on a different machine in
the grid. To the extent that these sub-jobs do not need to communicate with each
other, the more scalable the application becomes.