Dynamic Hardware Partitioning
Applies To: Windows Server 2008
In Windows Server 2008 for Itanium-Based Systems and the 64-bit edition of Windows Server 2008 Datacenter, you now have the ability to add or replace processors and/or memory in a server while the system is running. This ability is supported by a feature called dynamic hardware partitioning. Before we can understand how dynamic hardware partitioning works and how it can improve the availability of your server hardware, let's start by defining some terminology:
A hardware partitionable server is one that has the ability to create one or more isolated hardware partitions. Each hardware partition is assigned its own processors, memory, and I/O host bridges that are independent from all other hardware partitions. Each hardware partition can run an independent instance of the operating system.
The smallest unit of systems resources a hardware partitionable server supports. Most commonly, a partition unit consists of different types of system resources, such as a grouping of processors, memory and IO. Alternatively a partition unit may consist of a single type of resource, for example, a partition unit that consists of only memory, or only processors. More than one partition unit may be required to boot a partition. On a dynamically partitionable server, the configuration of partition units that are assigned to a hardware partition can be changed while the system is running. Partition units can be added or replaced without restarting the instance of the operating system that is running on the hardware partition.
This is the action of adding a partition unit to a running hardware partition.
This is the action of replacing a partition unit with an identical replacement partition unit that is already present in the system.
On a statically partitionable server, the configuration of partition units that are assigned to each hardware partition cannot be changed while the system is running. To change the configuration, the system must be powered down and restarted. Windows Server 2000 and later versions of Windows Server support statically partitionable servers. On a dynamically partitionable server, the configuration of partition units that are assigned to a hardware partition can be changed while the system is running. Partition units can be added or replaced without restarting the instance of the operating system that is running on the hardware partition.
The following figure shows an example of a hardware partitionable server.
In this example, the server has a total of 12 partition units: 4 processor modules, 4 memory modules, and 4 I/O host bridge modules. Each of these partition units is assigned to one of three hardware partitions. Each hardware partition is completely isolated from the other hardware partitions. The service processor is responsible for the configuration of the hardware partitions. It controls the mapping of the partition units to the hardware partitions and creates isolation between the hardware partitions.
In Windows Server 2008, processors and memory are modeled as Plug and Play devices. This allows device drivers and applications to register for Plug and Play notifications so that they can be notified when processors or memory are added. This also allows processor and memory devices to be started after the operating system has booted. I/O host bridges have been modeled as Plug and Play devices since Windows 2000.
When a new processor is added to a running hardware partition, Windows Server 2008 initiates a system-wide resource rebalance. This allows device drivers to be able to take full advantage of the new processor.
The sequence of notifications that a device driver can receive when a new processor is added is as follows:
Notification that a new processor has been started. This notification is sent synchronously before the operating system begins scheduling threads on the new processor. A device driver must register to receive this notification that a new processor has been started.
Plug and Play notification that a processor device has been added. This notification is sent asynchronously after the operating system begins scheduling threads on the new processor. A device driver must register for Plug and Play notifications to receive this notification.
Query stop device, stop device, and start device Plug and Play requests for resource rebalancing. A device driver always receives these Plug and Play requests unless the driver is not a Plug and Play driver.
What is Supported in Windows Server 2008?
Windows Server 2008 for Itanium-Based Systems and the 64-bit edition of supports the following:
- Hot add of processors, memory, and I/O host bridges
Hot add of memory was previously supported in Windows Server 2003 SP1.
- Hot replace of processors and memory
Windows Server 2008 does not support hot remove.
Benefits of Dynamic Hardware Partitioning
Increased Reliability, Availability, and Serviceability
While hardware support for the hot addition and replacement of key system components such as memory and processors has been available on high-end server systems for several years, the increasing use of mid-range, increasingly powerful servers has made mid-range servers more business critical. The ability to hot add and replace hardware in these servers will improve issues of reliability, availability, and serviceability (RAS). For example, if a processor starts to show signs of failure, such as an increasing number of corrected errors or thermal events, you can swap it with another processor without the need to reboot the computer. This is similar to using a hot spare disk in a redundant array of independent disks level 5 (RAID-5) configuration.
Improved Resource Management
Most existing applications should continue to run without modification on a server that supports dynamic hardware partitioning. Applications that allocate per-processor threads or that perform memory allocations that are based on the amount of available physical memory, can register to be notified of changes to the hardware configuration so that they can adjust their resource allocation accordingly. Spare computational resources in a hardware partitionable server can be added to a partition that has saturated one or more of its resources (i.e., memory, processors, or IO) due to a high workload. For example, if the load on partition 1 is increasing whilst there are spare resources, you can add processors and/or memory from the spare to partition 1 to better handle the increasing workload.
Capacity on Demand
With dynamic hardware partitioning, you now have the ability to increase the capacity of your servers as the workload increases. For example, if you initially purchased a system with 8 processors but were only licensed for the use of 4 processors based on your initial capacity needs, you could later license and hot add your additional processors as your workload increased.
Implications for NUMA
Dynamic partitionable systems can be Cache Coherent Non Uniform Memory Access (cc:-NUMA) designs. However, the System Resource Affinity Table (SRAT) is a static table that is updated and read by the Windows operating system only at boot time. Therefore, the SRAT will be updated with information about the new hardware the first time the system reboots after hardware is added. Windows Server 2008 will not make use of the System Locality Distance Information Table (SLIT) to update locality information dynamically.