High Availability and Scalability Collection

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

High Availability and Scalability Collection

In a competitive environment, enterprises are required to have computer systems that are both highly available and easily scalable. High availability is essential to both customer satisfaction and employee productivity. Scalability is vital in responding to spikes in business and supporting the rapid rollout of new products and services.

The following technologies provide for high availability and scalability in a Microsoft Windows Server 2003 environment:

  • Clustering Technologies

  • Resource and Memory Management Technologies

High availability is the ability to provide user access to a service or application for a high percentage of scheduled time by attempting to reduce unscheduled outages and mitigate the impact of scheduled downtime for particular servers. A solution is highly available if it meets the organization’s scheduled uptime goals. Included in the Windows Server 2003 family of operating systems are two technologies used to improve availability, server clusters and Network Load Balancing.

Scalability is the ability to increase or decrease computing capacity almost instantly, while delivering on value. Scalability is delivered through two methods: scale up and scale out. Typically, both scale up and scale out technologies are employed by organizations to address the capacity needs of Web applications, databases, and business applications. The scaling method used, scale out or scale up, depends on the types of applications being used and on the type of functionality needed. The scale up technologies included in the 32-bit versions of Windows Server 2003, Enterprise Edition, and Windows Server 2003, Datacenter Edition, are: 4-gigabyte tuning (4GT), Physical Address Extension (PAE) X86, and Windows System Resource Manager. Available in all versions of the Windows Server 2003 family of products is Network Load Balancing, which can be used to not only improve availability, but also as a scale out solution.

High availability and scale up and scale out technologies are designed to respond to the changing requirements demanded of today’s enterprise, regardless of where changes occur in the architecture. Whether it is handling Web site traffic, query processing, or large-scale database applications, high availability and scaling flexibility provide support for the most demanding Information Technology (IT) environments. By using these technologies, administrators can provide a highly available IT infrastructure that can incrementally scale as needed, without having to over-buy computing power.

Notes

  • Although not currently described in this Technical Reference, Windows Server 2003, Enterprise Edition, and Windows Server 2003, Datacenter Edition, also support Cache Coherent Non-Uniform Memory Architecture (ccNUMA) and Large Symmetric Multiprocessing (Large SMP). These two scale up technologies enhance and optimize processing in large multi-CPU servers.

  • Also not discussed in this collection of technologies, the 64-bit versions of Windows Server 2003 provide scale up capabilities as well. Because of the inherent capabilities of the 64-bit operating system, the scale up technologies described in this collection are not required on the 64-bit versions of the Windows Server 2003 family.

Clustering Technologies

Availability is the percentage of time that a system is available for users. Availability is increased by reducing the amount of time that a system is down for any reason, such as maintenance, upgrades, or recovery from a failure. Server clusters and Network Load Balancing can improve availability by removing the physical server as a single point of failure. A server cluster is a group of independent computer systems that work together as a single system. If one of the servers in the cluster becomes unavailable, another server in the cluster can automatically replace the unavailable server and continue to provide users access to the system.

Network Load Balancing combines up to 32 servers running any product in the Windows Server 2003 family into a single cluster. Each server can run an identical set of processes and applications. If one of the servers becomes unavailable, network requests can automatically be redirected to other servers in the Network Load Balancing cluster thus eliminating any loss of system availability.

Note

  • Maintaining highly available systems requires not only good choices in technology, but careful attention to design and operational practices. Implementing server clusters and Network Load Balancing will not ensure high availability. Many other factors, not covered in this technical reference, must also be considered and addressed.

Resource and Memory Management Technologies

Scaling up refers to incrementally adding system hardware resources (processors and memory) to increase overall system performance. Two of the resource and memory management technologies described in this technical reference used for scaling up, 4-gigabyte tuning (4GT) and Physical Address Extension (PAE) X86, are key components of the scale up capabilities. Further, Windows System Resource Manager provides for the effective management of the powerful servers used in scale up scenarios. Windows System Resource Manager makes it possible to assign, manage, and guarantee system resources for applications. Windows System Resource Manager also provides resource utilization statistics.

Note

  • Not only must the hardware and operating system be able to effectively scale up, but to gain the benefits of scale up capability, applications must be designed to scale up as well.

Clustering Technologies

The two clustering technologies described here are server clusters and Network Load Balancing. Both of these technologies provide a means for two or more computers to work together to provide a higher level of availability than can be obtained by using a single computer.

A brief description of these technologies is provided in the following sections.

For more information about clustering technologies, see “Clustering Technologies.”

Server Clusters

A server cluster is a group of independent computer systems running Microsoft Windows Server 2003, Enterprise Edition, or Microsoft Windows Server 2003, Datacenter Edition, and working together as a single system to ensure that critical applications and resources remain available to clients. The servers in a cluster remain in constant communication through the exchange of periodic messages. If one of the servers becomes unavailable as a result of failure or maintenance, another server immediately begins providing service (a process known as failover). Server clusters also allow users and administrators to access and manage the servers as a single system rather than as separate computers.

Network Load Balancing

Network Load Balancing improves availability by clustering multiple servers running identical services and applications. The servers in the cluster can concurrently respond to different client requests, even multiple requests from the same client. Similar to server clusters, the servers in a Network Load Balancing cluster remain in constant communication through the exchange of periodic messages. If one of the servers becomes unavailable, the other servers in the cluster can continue to respond to client requests with no loss of availability. For more information about Network Load Balancing, see “Network Load Balancing Technical Reference.”

Resource and Memory Management Technologies

4GT and PAE X86 increase the amount of RAM available to applications. Windows System Resource Manager makes it possible to assign, manage, and guarantee system resources for applications. Windows System Resource Manager also provides resource utilization statistics.

A brief description of these technologies is provided in the following sections.

For more information about scale up technologies, see “Resource and Memory Management Technologies.”

Notes

  • Although not currently described in this Technical Reference, Windows Server 2003, Enterprise Edition, and Windows Server 2003, Datacenter Edition, also support Cache Coherent Non-Uniform Memory Architecture (ccNUMA) and Large Symmetric Multiprocessing (Large SMP). These two scale up technologies enhance and optimize processing in large multi-CPU servers.

  • Also not discussed in this collection of technologies, the 64-bit versions of Windows Server 2003 provide scale up capabilities as well. Because of the inherent capabilities of the 64-bit operating system, the scale up technologies described in this collection are not required on the 64-bit versions of the Windows Server 2003 operating system.

4-gigabyte Tuning (4GT)

Additional RAM is often added to servers as they are scaled up to meet increasing demands. Applications can benefit from accessing this additional memory. 4GT can make more of the computer’s RAM available to applications by making less virtual memory available to the operating system. 4GT allows applications to address 3 gigabytes (GB) of virtual memory instead of the 2 GB normally allocated for user mode processes. This is a 50 percent increase in virtual memory for the applications, allowing more data to be cached and potentially increasing performance. For more information about 4GT, see “4GT Technical Reference.”

Physical Address Extension (PAE) X86

As even more physical memory is added to servers, the operating system must be specifically enabled to access any memory beyond 4 GB. PAE X86 provides access to this additional memory. PAE X86 allows software that uses the Address Windowing Extensions (AWE) API set and runs on computers with more than 4 GB of physical memory to map more physical memory into the application’s virtual address space. Applications not using the AWE API set can also benefit from PAE X86 because the operating system uses the larger physical memory to reduce paging and thus increase performance. For more information about PAE X86, see PAE X86 Technical Reference.”

Windows System Resource Manager

Windows System Resource Manager (WSRM) is a tool used to manage server resources such as processor cycles and memory utilization. Using policies, Windows System Resource Manager allocates specific amounts of resources to applications or processes. These policies allow system administrators to set usage limits based on a percentage of available CPU resources as well as set affinities between managed applications and certain CPUs in the case of multi-processor servers. For more information about Windows System Resource Manager, see “Windows System Resource Manager Technical Reference.”

High Availability and Scalability Scenarios

Each of the technologies described in this collection can be used in multiple ways for multiple scenarios. However, certain technologies are better suited for particular situations, as described in the following sections.

Additional deployment scenarios for 4GT, PAE X86, Windows System Resource Manager, and Network Load Balancing are described in the Technical Reference section for each technology.

High availability

Applications servicing customers as well as line-of-business applications such as databases, messaging servers, enterprise resource planning (ERP) applications and core file and print services are central to a company’s operations and profitability. It is essential that these applications remain highly available. While both server clusters and Network Load Balancing can be used to improve the availability of many of these applications, each technology is better suited for certain scenarios. Server clusters are particularly valuable for messaging applications, database applications, and file and print services. Network Load Balancing is most commonly used with Web and File Transfer Protocol (FTP) servers, proxy servers and firewall services, such as computers running Microsoft Internet Security and Acceleration (ISA) Server, virtual private network (VPN) servers, servers running Windows Media technologies player, and terminal servers.

Scale up

Many of the same applications requiring high availability also present the need for scalability. Applications such as transaction processing applications and databases are architected to perform best on a single, monolithic server requiring scale up capabilities. The scale up technologies 4GT, PAE X86, and Windows System Resource Manager, are typically used in server consolidation scenarios and other enterprise systems that make use of these large servers with large amounts of memory and multiple CPUs. Some examples of scale up usage models include:

  • Back-end database systems that drive ERP

  • Customer relationship management (CRM) applications

  • Decision support and data mining

Scale out

Scale out scenarios are ones in which applications are architected for distributed processing or that might need incremental hardware additions. Scale out scenarios also require the ability for centralized management of multiple servers. The same applications that can benefit from improved availability using Network Load Balancing can also often be scaled out with Network Load Balancing as well. As described earlier, these are Web and File Transfer Protocol (FTP) servers, proxy servers and firewall services, such as computers running Internet Security and Acceleration (ISA) Server, virtual private network (VPN) servers, servers running Windows Media technologies player, and terminal servers.