In fact, at first glance, the mainframe and grid computing appear antithetical. The mainframe emphasizes maximizing the use of a single computer's resources (scale up), while grid computing emphasizes using massive numbers of PCs in parallel (scale out).
However, there is a role for the mainframe in grid computing, where large-scale data processing or existing mission critical applications are involved. In these cases, leveraging the data serving power of the mainframe and the capacity flexibility of the grid makes for an attractive combination of power and flexibility.
Such a fusion requires little of the grid, but does ask the mainframe to add grid-computing software that allows a mainframe to serve as one among many nodes in the grid, invisible to the application. What is required for this mainframe/grid computing fusion to work, and where is it most effective?
Basics: What is grid computing?
Grid computing uses many networked computers (typically linked via the Internet) to form a virtual computer. It typically takes advantage of unused resources on PCs and smaller-sized servers to devote to applications that allow a high degree of parallelism in computation. Grid software placed on computers makes them appear as one system to the application. If data handling and systems management grid software is added, it can appear as one system to the database or system administrator as well. Note that, conceptually at least, mainframes can participate in the grid.
The grid computing market is becoming large and is fast-growing. Upwards of 1,500 organizations now have begun to implement grids, with implementation typically more than 50% complete.
Using the mainframe in a grid
The mainframe's ability to support large numbers of virtual machines, and Linux, allows it to appear as a tens of Linux servers to the grid software, and to the applications using the grid. By overlaying grid software such as Globus Toolkit 2.2 (or the upcoming GTK3) on the mainframe as on Linux workstations and servers, grid computing can make the mainframe appear as just another set of nodes in the grid.
There are three obvious uses of the mainframe in such a grid:
1. The mainframe can be used to improve grid robustness. Not only is the mainframe itself highly robust, and therefore a good place to place critical portions of the application and its processing; failover between virtual machines on one system is typically faster than failover between servers in a grid, especially remote failover, so downtime is drastically reduced.
2. The mainframe can be used as a development site and testbed. That is, the mainframe can mimic the behavior of a grid's many nodes within one system, isolated from the rest of the grid, while users are developing and testing a grid application.
3. The mainframe can be used to access mainframe applications and data running on z/OS (in other words, the enterprise's mission-critical applications and data) from within the grid.
The grid computing effort is fundamentally open source, and centered around the open source Globus Toolkit developed by the Globus Project, driven primarily by academic users. As a close relative to clustering, Globus plus other standards-based software such as X.509 (messaging) and LDAP (directories), as well as clustering technologies such as schedulers, load balancers, and resource allocators, can be inserted on Linux and various Unix flavors. For the application written for the grid, the Globus Toolkit provides C, Java, and other interfaces on the server side, and Java interfaces (provided by the Java Community Grid) on the client side.
The Globus Project in coordination with the Global Grid Forum is working on GTK3, which is based on the Open Grid Services Infrastructure (OGSI) and therefore allows grid Web services and a grid SOA (services-oriented architecture). Other efforts are adding such features as cross-vendor systems management and security to the grid infrastructure.
Thus, to implement a basic grid including a mainframe, it is sufficient to add Globus Toolkit software to a mainframe partitioned into virtual machines running Linux, as well as to other computers in the grid. Beyond this, enterprises need additional infrastructure software such as the IBM Grid Toolbox provides, and services to help implement the grid given an enterprise's existing mainframes and other computers.
Note that a standard implementation of a grid will often begin by providing the basics of an "information grid", with some sort of storage sharing across the grid. To achieve a full "information grid" with transactions multiplexed across the entire grid today, however, requires either the Oracle approach of "everything stored in Oracle Database" (that is, all user files, documents, and graphics in multiple data stores accessed by multiple instances of Oracle Database) or an EII (Enterprise Information Integration) tool that creates a global metadata repository to clarify relationships between data in different data stores -- but does not require massive data importation to Oracle.
There are many solutions today for deciding when to scale up and when to scale out, but grid computing plus the mainframe may offer the broadest solution of any -- once the bugs have been ironed out.
A grid effort that includes the mainframe can focus on some significant targets of opportunity:
Thus, the mainframe is not the pathway to the grid, nor its dominant member, but rather a means to improve and expand the grid. And yet, because grid computing may very well be an architecture of choice over the long run, down the line the mainframe may play a much larger role: as a means of allowing business-critical applications and data to be shared more easily across the enterprise's entire network.
About the author: Wayne Kernochan is president of Infostructure Associates, LLC, a Lexington, Mass.-based analyst firm.