Grid Computing On Virtual Machines


 Abstract

We advocate a novel approach to grid computing that is based on a combination of classic” operating system level virtual machines (VMs) and middleware mechanisms to manage VMs in a distributed environment. The abstraction is that of dynamically instantiated and mobile VMs that are a combination of traditional OS processes (the VM monitors) and files (the VM state). We give qualitative arguments that justify our approach in terms of security, isolation, customization, legacy support and resource control, and we show quantitative results that demonstrate the feasibility of our approach from a performance perspective. Finally, we describe the middleware challenges implied by the approach and architecture for grid computing using virtual machines.

 Introduction

The fundamental goal of grid computing is to seamlessly multiplex distributed computational resources of providers among users across wide area networks. In traditional computing environments, resources are multiplexed using the mechanisms found in typical operating systems. For instance, user accounts and time-sharing enable the multiplexing of processors, virtual memory enables the multiplexing of main memory, and file systems multiplex disk storage. These and other traditional multiplexing mechanisms assume that trust and accountability are established by a centralized administration entity. In contrast, multiplexing in a grid environment must span independent administrative domains, and cannot rely on a central authority. The level of abstraction upon which current grid middleware solutions are implemented is that of an operating system user. This approach suffers from the limitations of traditional user account models in crossing administrative domain boundaries. In practice, multiplexing at this level of abstraction makes it difficult to implement the security mechanisms that are necessary to protect the integrity of grid resources from untrusted, legacy codes run on general purpose operating systems by untrusted users. It also greatly complicates the management of accounts and file systems that are not suited for wide-area environments. Unfortunately, most applications need precisely these services. Virtual machines present the image of a dedicated raw machine to each user. This abstraction is very powerful for grid computing because users then become strongly decoupled from
a) the system software of the underlying resource, and
b) other users sharing the resource.
In terms of security, VMs ensure that an untrusted user or application can only compromise their own operating system within a virtual machine, not the computational resource (nor other VMs). In terms of administration, virtual machines allow the configuration of an entire operating system to be independent from that of the computational resource; it is possible to completely represent a VM “guest” machine by its virtual state (e.g. stored in a conventional file) and instantiate it in any VM “host”, independently of the location or the software configuration of the host.
 Why Grid Computing with Classic VMs?
The high-level answer to this question is that classic virtual machines provide a new abstraction layer, with low overhead that offers functionality that greatly simplifies addressing many of the issues of grid computing.
 
Definitions
A modern operating system uses multiprogramming, virtual memory, and file systems to share CPU, memory, and disk resources among multiple processes and users. Each process accesses the physical resources indirectly, through abstractions provided by the operating system. Contemporaneous to the development of these mechanisms was that of another resource-sharing approach, virtual machines. A virtual machine presents the view of a duplicate of the underlying physical machine to the software that runs within it, allowing multiple operating systems to run concurrently and multiplex resources of a computer - processor, memory, disk, and network. Virtual machines can be divided into two main categories: those that virtualize a complete instruction set architecture (ISA-VMs) including both user and system instructions, and those that support an application binary interface (ABI-VMs) with virtualization of system calls. An important class of virtual machines (“classic” VMs) consists of ISA-VMs that support same-ISA execution of entire operating systems. A classic virtual machine abstraction allows for great flexibility in supporting multiple operating systems and is the focus of this paper.
Advantages
Unlike conventional operating systems, classic VMs allow dynamic multiplexing of users onto physical resources at the granularity of a single user per operating system session, thereby supporting per-user VMconfiguration and isolation from other users sharing the same physical resource. In the remainder of this section we focus on a scenario where each dynamic instance of a classic VM is dedicated to a single logical user.
1. Security and isolation
2. Customization
3. Administrator privileges
4. Resource control
5. Performance considerations
The advantages of virtual machines are for naught if they can not deliver sufficient performance. Virtual machine monitors incur performance overheads when applications within a VM execute privileged instructions that must be trapped and emulated. These are typically issued by kernel code of “guest” VMs during system calls, virtual memory handling, context switches and I/O. User-level code within VMMs runs directly on hardware without translation overheads. The overall overhead incurred by VMs thus depends on system characteristics, including the processor’s ISA, the VMM architecture and implementation, and the type of workload running in the system.

Table 1. Macrobenchmark results. User, system and total times are reported for three scenarios: physical machine, VM with state in local disk, VM with state accessed via NFS-based grid virtual file system (PVFS). Overheads are calculated using execution times and the physical machine as reference. In the PVFS scenario, the physical and data servers are located at Northwestern University, while the image server is located at the University of Florida.

Figure 1. Microbenchmark results: slowdown of synthetic test task under presence of background load for twelve different scenarios.

Table 2. Average, standard deviation, minimum and maximum VM startup times. Virtual machine sessions are instantiated using globusrun (Globus 2.0 toolkit) within a LAN. Measurements have been taken across 10 samples. Time (in seconds) is measured as wall-clock execution time from the beginning to the end of the execution of globusrun.

 Middleware challenges

1. Data management
Data management is a key technology for VM-based grid computing, enabling administrative decoupling of computation providers and users. Data management involves: the transfer of VM images so that a user’s virtual machine can be instantiated anywhere and migrated when necessary, and support for location-independent access to user files. With appropriate data management support, computation, state, and user data can reside in different domains.
The components of a virtual machine session are distributed across three different logical entities: image servers, which provide the capability of archiving static VM states; computation servers (or VM hosts), which provide the capability of instantiating dynamic VM images (or VM guests); and data servers, which provide the capability of storing user data. In this scenario, VM state information needs to be transferred from an image server to a VM host (where it is instantiated), and from a data server to the VM guest (where it is processed) as in Figure 2.
High performance data transfers: Fast and simple access to images and user data is critical. Current grid solutions, such as Globus [4, 1] and PBS [3] typically employ file-staging techniques to transfer files between user accounts in the absence of a common file system.

Figure 3. Architecture for a VM-based grid service. In 1- 6, a virtual machine (V4) is dynamically created by middleware front-end F on behalf of user X. This VM is dedicated to a single user. In another scenario, virtual machines V1, V2 are instantiated on P2 on behalf of a service provider S, and are multiplexed across users A, B, C and applications provided by S. The logical user account abstraction decouples access to physical resources (middleware) from access to virtual resources (end-users and services).
In the following we lay out initial software architecture for virtual machine grid computing by describing the life cycle of a VM within it.
1. A user X (or grid middleware F on their behalf) first consults an information service, querying for a VM future (a physical machine able to instantiate a dynamic VM) P that meets their needs.
2. If necessary, X also consults an information service to query for a VM image server I with a base O/S installation that meets their application needs. Alternatively, users may provide VM images of their own (e.g. a customized O/S installation).
3. The middleware then establishes a data session between the physical server P and the image server I to allow for the instantiation of a dynamic VM. This data connection can be established via explicit transfers (e.g. Grid FTP) or via implicit, on-demand transfers (e.g. a grid virtual file system, Figure 2).
4. Once the data session for image I is established, the user can negotiate with the physical machine the startup of a VM instance Vi (e.g. using Globus GRAM or SSH). The virtual machine Vi may start from a preboot (cold) state, or from a post-boot (warm) state stored as part of the image. In addition, upon startup, the VM is assigned an IP address (via DHCP, or by connecting to a virtual network).
5. Once the VM instance Vi is running and on the network, additional data sessions are established. These connect the O/S within Vi to application server A and to the user’s data server D. As previously, these sessions can be realized with explicit or implicit transfers (Figure 2).
6. The application executes in the virtual machine; if it is an interactive application, a handle is provided back to the user (e.g. a login session, or a virtual display session such as VNC)
 
 Conclusions
Classic virtual machines support a grid computing abstraction where computation becomes decoupled from the underlying physical resources. In this model, entire computing environments can be represented as data (a large state) and physical machines can be represented as resources for instantiating data. This abstraction is powerful because it decouples the administration of computing users from the administration of resource providers. This simplifies addressing many issues in grid computing and provides a new layer at which to work. We have presented a qualitative argument for the use of virtual machines in grid computing and quantitative results that demonstrate the feasibility of this idea from a performance perspective. We then illustrated the middleware challenges that must be overcome to build grid computing on top of virtual machine monitors and described how we are addressing those challenges. Finally, we provided a description of our nascent software architecture and its integration with existing middleware to support a VM-based infrastructure for computational grids. The envisioned architecture builds upon virtual machines, applications, data and networks from which necessary resources can be provided to the services layer.

role of grid computing in internet


ABSTRACT


In recent years, numerous organizations have been vying for donated resources for their grid applications. Potential resource donors are inundated with worth- while grid projects such as discovering a cure for AIDS, finding large prime numbers, and searching for extraterrestrial intelligence. We believe that fundamental to the establishment of a grid computing framework where all (not just large organizations) are able to effectively tap into the resources available on the global network is the establishment of trust between grid application developers and resource donors. Resource donors must be able to trust that their security, safety, and privacy policies will be respected by programs that use their systems.
The purpose of this seminar to give the basic overview of Grid computing, in such way that reader will able to understand basic concept of grid computing, principal operation and some of the issues of Grid computing.
Grid computing enables the use and pooling of computer and data resources to solve complex mathematical problems. The technique is the latest development in an evolution that earlier brought forth such advances as distributed computing, the Worldwide Web, and collaborative computing.

GRID COMPUTING:-

Grid computing is form of networking unlike conventional network that focus on communications among devices. It harnesses unused processing cycles of all computers in a network for solving problems too intensive for any stand-alone machine.
Grid computing is a method of harnessing the power of many computers in network to solve problems requiring a large numbers of processing cycles and involving huge amount of data in grid computing pcs, servers and workstations are linked together so that computing capacity is never wasted.
So rather than using a network of computers simply to communicate and transfer data, grid computing taps the unused processor cycles or numerous i.e thousands of computers. It is distributed computing taken to the next evolutionary level .The goal of grid computing is to create the illusion of a simple yet large and powerful self managing virtual computer out of large collection of connected heterogeneous system sharing various combination of resources grid . Computing is a way to enlist large no of machines to work on multipart computational problem such as circuit analysis or mechanical design. It harnesses a diverse array of machines and other resources to rapidelly. Process to solve problem beyond an organization's available capacity. Once a proper infrastructure is in place, a user will have access to a virtual computer that is reliable and adaptable to the users, for this, there must be standard for grid computing that will allow a secure and robust infrastructure to be built. Standards such as Open Grid Services Architecture (OGSA) and tools such as provided by Globus Toolkit provide the necessary framework. Grid computing uses open source protocol and software called Globus. Globus software allows computes to share data, power and software.


BASIC CONCEPT OF GRID COMPUTING

HOW IT WORKS?

The computer is tied to network such as internet, which enables regular people with home pcs to participate in the grid project from anywhere in the world. The pc owners have to download simple software from the projects host site. And the project sites use the software that can divide and distribute the pises of program to thousands of computers for processing. The above system shows a grid computing system that is distributed among the various local domains.
Working:
A grid user have to installed the provided grid s/w on his m/c .m/c is connected with Internet. Internet is most far reaching n/w. The user establishes his identity with a certificate authority. The user has responsibility of keeping his grid secure. Once the user and/or machine are authenticated, the grid software provided to the user for installing on his machine for the purposes of using the grid as well as donating to the grid. This software may be automatically reconfigured by the grid management system to know the communication address of the management nodes in the grid and user or machine identification information. In this way, the installation may be a one click operation. To use the grid, most grid systems require the user to log on to a system using a user ID that is enrolled in the grid. Once logged on, the user can query the grid and submit jobs. The user will usually perform some queries to check to see how busy the grid is, to see how his submitted jobs are progressing, and to look for resources on the grid. Grid systems usually provide command line tools as well as graphical user interfaces (GUIs) for queries. Command line tools are especially useful when the user wants to write a script.
Job submission usually consists of three parts, even if there is only one command required. First, some input data and possibly the executable program or execution script file are sent to the machine to execute the job. Sending the input is called “staging the input data.” Second, the job is executed on the grid machine. The grid software running on the donating machine executes the program in a process on the user’s behalf. Third, the results of the job are sent back to the submitter. When there are a large number of sub jobs, the work required to collect the results and produce the final result is usually accomplished by a single program, usually running on the machine at the point of job submission. The data accessed by the grid jobs may simply be staged in and out by the grid system. Depending on size and no.of jobs, this can be added up to a large amount of data traffic. The user can query the grid system to see how his application and its sub jobs are Progressing.
A job may fail due to a:
1. Programming error: The job stops part way with some program fault.
2. Hardware or power failure: The machine or devices being used stop Working in some way.
3. Communications interruption: A communication path to the machine has
Failed or is overloaded with other data traffic.
3. Excessive slowness: The job might be in an infinite loop or normal job
Progress may be limited by another process running at a higher priority or some other form of contention. Grid applications can be designed to automate the monitoring and recovery of their own sub jobs using functions provided by the grid system software application programming interfaces (APIs).

Grid computing harnesses a diverse array of machines and other resources to rapidly process and solve problems beyond an organization’s available capacity. Academic and government researchers have used it for several years to solve large-scale problems, and the private sector is increasingly adopting the technology. To create innovative products and services, reduce time to market, and enhance Business processes.


Fig .1.Aset of methods describes the connectivity of the original problem cell (opc)

APPLICATION OF GRID COMPUTING:

The grid computing is used to solve the problems which are beyond the scope of single processor, the problems involving the large amount of computations or the analysis of huge amount of data. Right now there are scientific and technical projects such as cancer and other medical research projects that involve the analysis of the inordinate amount of data. Now a days grid computing is used by the sites which are the hosts o the large online games. There are many users on the Internet playing a large online game; there is information of the virtual organization of all the players. Grids are primarily being used today by universities and research lab for project that require high performance computing applications. These projects require a large amount of computer processing power or access to large amount of data.

TYPES OF GRID:-


COMUTATION GRID:

A computational grid is focused on settings aside resources specifically for computing power .In this type of grid most of machines are high performance servers.

SCAVENGING GRID:

A scavenging grid is most commonly used with large numbers of desktop machines. Machines are scavenged for available CPU cycles and other resources.
Owners of desktop machines are usually given control over when their resources are available to participate in the grid.
DATA GRID:
A data grid is responsible for housing and providing access to data across multiple organizations. Users are not concerned with where this data is located as long as they access to the data .A data grid allow to share data, manage the data and manage security.

GLOBUS PROJECT:The Globus project is a joint effort on the part of researchers and developers from around the word that are focused on the concept of grid computing its organized around four main activities:-
1. Research
2. Software tools
3. Test beds
4. Applications

BENEFITS OF GRID COMPUTING

BUSSINESS BENEFITS:

ACCELERATE TIME TO RESULT
• Accelerate time to results:
• Can help improve productivity and collaboration.
• Can help solve problems that were previously unsolvable.

ENABLE COLLABORATION AND PROMOTE OPERATIONAL FLEXIBILITY• Bring together not only IT resources but also people.
• How widely dispersed departments and businesses to create virtual
• Organizations to share data and resources.

EFFICIENTLY SCALE TO MEET VARIABLE BUSINESS DEMANDS
• Create flexible, resilient operational infrastructures.
• Address rapid fluctuations in customer demands needs.
• Instantaneously access compute and data resources to "sense and Respond" to Needs.

INCREASE PRODUCTIVITY:

• Can help give end-users uninhibited access to the computing, data and storage resources they need (when they need them) .
• Can help equip employees to move easily through product dies phases, research Projects and faster than ever.
• Can help you improve optimal utilization of computing capabilities.
• Can help you avoid common pitfalls of over-provisioning and incurring excess costs.
• Can free IT organizations from the burden of administering disparate, Non-integrated systems.
TECHNOLOGY BENIFITS:-


INFRASTRUCTURE OPTIMIZATION:

• Consolidate workload management.
• Reduce cycle times.

INCREASE ACCESS TO DATA AND COLLABORATION:

• Federate data and distribute it globally.
• Support large multi-disciplinary collaboration..
• Enable collaboration across organizations and among businesses.

RESILIENT, HIGHLY AVAILABLE INFRASTRUCTURE:

• Balance work loads.
• Foster business community
• Enable recovery and failure.

CAPABILITY OF GRID COMPUTING:
1. EXPLOITING UNDERUTILIZED RESOURCES:The easiest use of grid computing is to run an existing application on a different machine. The processing resources are not the only ones that may be underutilized. Often, machines may have enormous unused disk drive capacity. Grid computing, more specifically, a data can be used to aggregate this unused storage into a much larger virtual data store, possibly configured to achieve improved performance and reliability over that of any single another function of the grid is to better balance resource utilization.

2. VIRTUAL RESOURCES AND VIRTUAL ORGANIZATION FOR COLLABORATION:
Another important grid computing contribution is to enable and simplify collaboration among a wider audience. Grid computing takes these capabilities to an even wider audience, while offering important standards that enable very heterogeneous systems to work together to form the image of a large virtual computing system offering a variety of virtual resources, The users of the grid can be organized dynamically into a number of virtual organizations, each with different policy requirements. These virtual organizations can share their resources collectively as a larger grid.

3. ACCESS TO ADDITIONAL RESOURCES:

In addition to CPU and storage resources, a grid can provide access to increased quantities of other resources and to special equipment, software, licenses, and other services. The additional resources can be provided in additional numbers and/or capacity.

4. RESOURCE BALANCING:
A grid federates a large number of resources contributed by individual machines into a greater total virtual resource. For applications that are grid enabled, the grid can offer a resource balancing effect by scheduling grid jobs on machines with low utilization. This feature can prove invaluable for handling occasional peak loads of activity in parts of a larger organization. This can happen in two ways: An unexpected peak can be routed to relatively idle machines in the grid. If the grid is already fully utilized, the lowest priority work being performed on the grid can be temporarily suspended or even cancelled and performed again later to make room for the higher priority work.
Without a grid infrastructure, such balancing decisions are difficult to prioritize and execute.
5. MANAGEMENT:
The goal to virtualize the resources on the grid and more uniformly handle heterogeneous systems will create new opportunities to better manage a larger, more disperse IT infrastructure. It will be easier to visualize capacity and utilization, making it easier for IT departments to control expenditures computing resources over a larger organization. The grid offers management of priorities among different projects.
USING A GRID: AN APPLICATION DEVELOPERS PERSPECTIVE:
Grid applications can be categorized in one of the following three categories:
 Application that are not enabled for using multiple processors but can be executed on different machines.
 Applications that are already designed to use the multiple processors of a grid setting.
 Applications that need to be modified or rewritten to better exploit grid.