A White Paper from the Business Systems Division
The following paper details Microsoft's vision for enhancing Windows NTÖ Server and BackOfficeÖ through clustering to provide greater availability and scalability. Clustering technology, combined with Windows NT Server, will bring data center capabilities and performance to a wider range of customer installations. Windows NT Server clustering will take advantage of the economics of industry-standard hardware and extend the ease of configuration and maintenance in Windows« to clustering.
Introduction
Clustering DefinedTechnology Overview
Why is Clustering Important?
Clustering IllustrationùRetail Industry/Data Availability
Clustering IllustrationùFinancial Services Industry/Scalability
Traditional Architectures for High-AvailabilityMicrosoft Windows NT Server Clusters
Traditional Architectures for Scalability
Cluster Architecture
Cluster Application Servers
Windows NT Server TodayA Two Phased Approach
Microsoft's Vision
Windows NT Server Clusters
Deploying Cluster Technology
Microsoft BackOffice
Cluster Application Development
Future Steps
Microsoft is committed to providing a computing platform for the demands of today's enterprise business applications, as well as anticipating the needs of the most demanding information systems of tomorrow. In order to meet these needs, Microsoft is working with leading technology vendors to develop systems that provide greater availability and scalability through clustering technology.
Many large customers have used clustering technology to provide greater availability and scalability for their high-end mission-critical applications. However, these clustering solutions were complex, difficult to configure, and were built using expensive proprietary hardware. Microsoft, in conjunction with the industry, intends to bring the benefits of clustering technology to the mainstream of client/server computing. Microsoft will deliver on this vision by developing clustering technology for the Microsoft« Windows NTÖ Server-based operating system based on open specifications, industry-standard hardware, and the ease-of-use customers have come to expect from Microsoft products.
Microsoft plans to deliver clustering in two phases. The first phase will allow one server to automatically "fail-over" to another server, creating a high-availability Windows NT Server environment. The second phase will extend clustering by adding dynamic scalability to the availability features offered in phase 1. The first design preview of this architecture is planned for the first half of 1996. Microsoft will also provide tools that allow application developers to create and manage enterprise applications that take advantage of clustering for Windows NT Server.
In broad terms, a cluster is a group of independent systems working together as a single system. A client interacts with a cluster as though it were a single server. Cluster configurations are used to address both availability and scalability.
Availability. When a system in the cluster fails, the cluster software will respond by dispersing the work from the failed system to the remaining systems in the cluster.
Scalability. When the overall load exceeds the capabilities of the systems in the cluster, additional systems may be added to the cluster. Formerly, customers that desired future system expansion capability needed to make up front commitments to expensive, high-end servers that provided space for additional CPUs, drives, and memory. With clustering, customers can add systems as needed to meet overall processing power requirements.
It is estimated that system "downtime" costs U.S. businesses $4.0 billion per year. The average downtime event results in a $140,000 loss in the retail industry and a $450,000 loss in the securities industry. Clustering promises to minimize downtime by providing an architecture that keeps systems running in the event of a single system failure. Clustering also affords organizations the ability to aggregate separate servers into a single computing facility, allowing IT organizations the flexibility to grow installations beyond a single machine.
In a retail operation, the point-of-sales system is the heartbeat of the business. Cashiers require ongoing access to the store's database of products, codes, names, and prices to keep the business logging sales. If the point-of-sale system fails, sales cannot be logged and the operation loses money, customers, as well as its reputation for quality service.
In this case, clustering technology can be utilized to deliver system availability. The clustering solution would allow a pair of servers to access the multi-port storage devices (Disk Array) on which the database resides. In the event of a server failure on Server 1, the backup system (Server 2) is automatically brought online and end users are switched over to the new serverùwithout operator intervention. Thus, downtime is minimized. The fault-tolerant disk technology built into Windows NT Server 3.51 (striping, duplexing, etc.) would protect the disk array, but with the addition of clustering technology, the overall system would remain online.
Figure 1: Retail branch before failure
Figure 2: Retail branch during failure
It has been said, "the two greatest fears of an Chief Information Officer (CIO) are system success and failure." If a system fails, the CIO's staff is inundated with complaints. Conversely, if a system is successful, usage demands may outstrip the needs of the system as it grows. Clustering, as has been discussed, can greatly minimize system downtime. In addition, clustering can also help Information Technology (IT) departments design systems that can grow with the demands of an organization.
For example, in recent years billions of dollars have poured into mutual funds companies. Although this type of growth is positive in financial terms, the technological burden of managing information systems growth can be overwhelming. As a result, Chief Information Officers and their staffs are faced with developing systems that not only meet current systems demand, but also provide for future systems growth. Formerly, the system choices were rather limited: extremely expensive mainframes and minicomputers.
Windows NT Server clustering can provide a competitive advantage for the IT department, allowing faster system deployment, automatic re-tasking, and easier maintenance with smaller staffsùall while using inexpensive PC components. These components, available from multiple sources, not only help ensure competitive pricing but also help ensure parts availability. Consequently, IT departments can expand their hardware as needed without the burden of single supplier shortages.
Clustering technology also gives IT departments greater flexibility. With clustering, multiple servers can be tied together in one system, and additional servers can be integrated into the system as usage requirements dictate. Windows NT Server clustering gives a choice to system architects that they have never enjoyed beforeùavailability and scalability on inexpensive, mainstream platforms.
Figure 3: For increased system performance, clusters will allow customers to scale their information systems incrementally, adding processing power as needed.
Today, several architectures are commonly used for achieving increased availability in computer systems. One traditional hardware structure for achieving high availability is duplicate systems with fully replicated components. The traditional software model for utilizing this hardware is one in which one system runs the application while the other sits idle, acting as a standby to take over when the primary system fails. The drawbacks of this approach include increased hardware costs, with no improvement in system throughput, and the lack of protection from intermittent application failures.
Several different architectures have been used to enhance scalability. One hardware structure for achieving scalability beyond a single processor is the symmetric multiprocessor (SMP) system. In an SMP system, several processors share a global memory and I/O subsystem. The traditional SMP software model, known as the "shared memory model," runs a single copy of the operating system with application processes running as if they were on a single processor system. If non-data-sharing applications are run on a SMP system, the systems will provide high scalability.
At the hardware level, the major drawback to SMP systems is that they encounter physical limitations in bus and memory speed that are expensive to overcome. As microprocessor speeds increase, shared memory multiprocessors become increasingly expensive. Today there are large price "steps" as a customer needs to scale from one processor to 2-4 processors, and especially when scaling beyond 8 processors. Finally, neither the SMP hardware structure nor its traditional software model provide inherent availability benefits over single processor systems.
There is one architecture that has proven itself for availability and scalability in business-critical computing applications: the cluster.
A cluster is a set of loosely coupled, independent computer systems that behave as a single system. Clients see a cluster as if it were a single high-performance, highly reliable server. System managers see a cluster much as they see a single server. Cluster technology is readily adaptable to low cost, industry-standard computer technology and interconnects.
Clustering can take many forms. A cluster may be nothing more than a set of standard desktop personal computers interconnected by an Ethernet. At the high end of the spectrum, the hardware structure may consist of high-performance SMP systems interconnected via a high-performance communications and I/O bus. In both cases, adding processing power is done in small steps by the addition of another commodity system. To a client, the cluster provides the illusion of a single server, or single-system image, even though it may be composed of many systems. Additional systems can be added to the cluster as needed to process more complex or an increasing number of requests from the clients. If one system in a cluster fails, its workload can be automatically dispersed among the surviving systems. Frequently, this is transparent to the client.
Shared Disk Model
Two principal software models are used in clustering today: shared disk and shared nothing. In the shared disk model, software running on any system in the cluster may access any resource (e.g., a disk) connected to any system in the cluster. If two systems need to see the same data, the data must either be read twice from the disk or copied from one system to another. As in an SMP system, the application must synchronize and serialize its access to shared data. Typically a Distributed Lock Manager (DLM) is used to help with this synchronization. A DLM is a service provided to applications to track references to resources throughout the cluster. If more than one system attempts to reference a single resource, the Lock Manager will recognize and resolve the potential conflict. DLM coordination, however, may cause additional message traffic and reduce performance due to the associated serialized access to additional systems. One approach to reducing these problems is the shared nothing software model.
Shared Nothing Model
In the shared nothing software model, each system within the cluster owns a subset of the resources of the cluster. Only one system may own and access a particular resource at a time, although, on a failure, another dynamically determined system may take ownership of the resource. In addition, requests from clients are automatically routed to the system that owns the resource.
For example, if a client request requires access to resources owned by multiple systems, one system is chosen to host the request. The host system analyzes the client request and ships sub-requests to the appropriate systems. Each system executes the sub-request and returns only the required response to the host system. The host system assembles a final response and sends it to the client.
A single system request on the host system describes a high-level function (e.g., a multiple data record retrieve) that generates a great deal of system activity (e.g., multiple disk reads) and the associated traffic does not appear on the cluster interconnect until the final desired data is found. By utilizing an application that is distributed over multiple clustered systems, such as a database, overall system performance is not limited by a single machine's hardware limitations.
The shared disk and shared nothing models can be supported within the same cluster. Some software can most easily exploit the capabilities of the cluster through the shared disk model. This software includes applications and services which require only modest (and read intensive) shared access to data as well as applications or workloads that are very difficult to partition. Applications which require maximum scalability should use the cluster's shared nothing support.
While clusters bring availability and scalability to all server-based software, "cluster-aware" applications can take full advantage of the benefits of a cluster environment. Database server software must be enhanced either to coordinate access to shared data in a shared disk cluster, or to partition a SQL request into a set of sub-requests in a shared nothing cluster. In a shared nothing cluster, the database server may want to take further advantage of the partitioned data by making intelligent, parallel queries for execution across the cluster. The application server software may also be enhanced to detect component failures and initiate fast recovery via cluster APIs.
WindowsáNT Server provides all the components necessary to support mission-critical applications. The system was built on a fully 32-bit microkernel foundation. It is multithreaded, offers preemptive multitasking, and provides memory protection for both applications and the operating system itself. It scales to run on hardware with up to 32 processors, 4 GB of RAM, and 17 million terabytes of disk space. In addition, WindowsáNT Server supports Intel« X86, MIPS« R4x00, DECÖ Alpha AXPÖ, and IBM« PowerPCÖ processors.
To download this document
You may download the complete White Paper on "Windows NT Server Cluster Strategy."(184K)
The document was created in Microsoft Word for Windows 6.0. The file has been compressed into a self-extracting zip file. This means by double-clicking on the above download the file will be copied to your computer's directory/folder. You will have to double-click on the .exe to extract the document. If you do not have Microsoft Word, or a compatible word processing program, you can download a free copy of the Microsoft Word Viewer that runs on the Windows and Windows NT platforms. This will allow you to view and print Word documents without having Microsoft Word on your system.
For information on the Microsoft Word Viewer and to download a free copy of this tool.
Legal Notice
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
⌐ 1995 Microsoft Corporation. All rights reserved.
Microsoft and Windows are registered trademarks, and Windows NT, SQL Server, and BackOffice are trademarks of Microsoft Corporation.
Alpha AXP is a trademark of Digital Equipment Corporation.
DEC is a trademark of Digital Equipment Corporation.
Intel is a registered trademark of Intel Corporation.
IBM is a registered trademark of International Business Machines Corporation.
PowerPC is a trademark of International Business Machines Corporation.
MIPS is a registered trademark of MIPS Computer Systems, Inc.
1195
Part No. 098-63018