Динамическое создание разделов

Одним из способов увеличения масштабируемости системы является поддержка ею динамического добавления ресурсов оборудования, например центральных процессоров и памяти. Эта же поддержка может увеличить также доступность системы, если такие ресурсы могут быть заменены без требования перезагрузки системы.

В Windows Server 2003 появилась возможность оперативного добавления памяти, что позволяет серверам с поддержкой динамической памяти использовать ОЗУ по мере ее добавления администратором. В Windows Server 2008 расширена поддержка динамической памяти, и допускается замена памяти.

Участки ОЗУ, в которых возрастает количество исправлений ECC (Error Correcting Code), подвержены риску полного отказа, поэтому на серверах с поддержкой оперативной замены операционная система может прозрачным образом переместить данные из сбойных банков памяти в замещающую их память. При этом сначала перемещаются данные, находящиеся под управлением операционной системы, затем устройства эффективно отключаются посредством перемещения их в состояние низкого энергопотребления, перемещаются оставшиеся в памяти данные, после чего возобновляется подача питания на устройства, чтобы они продолжили работу в обычном режиме.

Windows Server 2008 поддерживает также оперативное добавление и замещение процессоров. Для осуществления оперативного замещения оборудование должно поддерживать концепцию запасных ЦПУ, которые могут быть либо введены в рабочем режиме, либо добавлены динамически, когда существующий ЦПУ генерирует сигналы о сбое, что в настоящее время доступно только в самых современных системах. Планировщик Windows Server 2008 замедляет операции на сбойном ЦПУ и перемещает работу на замещающий процессор, после чего сбойный ЦПУ можно удалить и заменить новым запасным процессором.

В Windows Server 2008 поддержка оперативного добавления процессоров позволяет администраторам модернизировать вычислительные возможности сервера, избегая простоев системы. Однако планировщик и системы ввода-вывода обеспечат доступность нового ЦПУ только тем драйверам устройств и приложениям, которые запрашивают уведомление о появлении ЦПУ через новые интерфейсы API, поскольку некоторые приложения разработаны исходя из предоположения фиксированности числа ЦПУ в рамках сеанса загрузки. Например, приложение может выделить память для массива рабочих очередей, соответствующих каждому ЦПУ, при этом поток использует очередь, связанную с ЦПУ, на котором он выполняется. Если планировшик помещает один из потоков приложения на новый ЦПУ, этот поток будет пытаться сослаться на несуществующую очередь, что может привести к разрушению данных приложения и высокой вероятности аварийного отказа приложения.

Серверные приложения Майкрософт, такие как SQL Server и Exchange Server, выдерживают добавление ЦПУ, так же, как и некоторые основные процессы Windows, включая системный процесс, процесс диспетчера сеансов (%SystemRoot%\System32\Smss.exe,) и процессы размещения универсальных служб (%Systemroot%\System32\Svchost.exe). Другие процессы также могут запрашивать посредством интерфейса Windows API уведомление о появлении нового ЦПУ. При появлении нового ЦПУ Windows уведомляет драйверы устройств о предстоящем появлении процессора, запускает ЦПУ, после чего уведомляет драйверы устройств и приложения, созданные с расчетом на использование преимуществ новых ЦПУ, чтобы они, если это небходимо, размещали структуры данных для отслеживания операций на новом ЦПУ.