动态硬件分区简介
在服务器运行时更改服务器的硬件配置称为 动态硬件分区。 如果要在支持动态硬件分区的服务器上运行设备驱动程序,驱动程序必须支持对服务器硬件配置的动态更改。
硬件可分区服务器是可以配置为一个或多个隔离硬件分区的服务器。 每个硬件分区运行操作系统的独立实例。 可以在适用于服务器应用程序的任意配置中将服务器的每个硬件资源分配给每个不同的硬件分区。 分配给特定硬件分区的硬件资源与服务器中的其他硬件分区隔离。
硬件分区由一个或多个 分区单元组成。 分区单元是可以分配给硬件分区的最小硬件单元。 分区单元可以是处理器、内存模块或 I/O 主机网桥。 通常,处理器和内存模块插入可单独打开或关闭电源的插槽中。
硬件可分区服务器可以是以下两种类型之一: 静态分区 或 动态分区。 在可静态分区服务器上,在服务器运行时,无法更改分配给每个硬件分区的分区单元的配置。 若要更改配置,必须关闭并重启服务器计算机。 Microsoft Windows Server 2000 及更高版本的 Windows Server 操作系统支持静态可分区服务器。
在可动态分区服务器上,可以在服务器运行时更改分配给每个硬件分区的分区单元的配置。 这称为 动态硬件分区。 如果硬件分区上运行的操作系统支持动态硬件分区,则可以在不重启操作系统的情况下添加、替换或删除分区单元。 根据操作系统的功能,可以执行以下一个或多个动态硬件分区操作:
热替换
将分区单元替换为服务器计算机中已存在的相同替换分区单元。 热替换操作是一个操作,它不同于热删除操作后跟热添加操作。
Windows Server 2003 Service Pack 1 (SP1) 支持基于 x86、基于 x64 和基于 Itanium 的服务器上的内存模块的热添加操作。 Windows Server 2003 SP1 不支持热删除或热替换操作。
从 Windows Server 2008 开始,操作系统支持处理器、内存模块和 I/O 主机桥的热添加操作,以及基于 x64 和基于 Itanium 的服务器计算机上的处理器和内存模块的热替换操作。 操作系统还支持对基于 x86 的服务器计算机上的内存模块执行热添加操作。 操作系统不支持热删除操作。
下表汇总了每个版本的 Windows Server 中包含的动态硬件分区支持。
带有 SP1 的 Windows Server 2003 | 基于 x86 的服务器上的 Windows Server 2008 及更高版本的 Windows Server | 基于 x64 和基于 Itanium 的服务器上的 Windows Server 2008 及更高版本的 Windows Server | |
---|---|---|---|
热添加 |
内存模块 |
内存模块 |
处理器、内存模块、I/O 主机桥 |
热删除 |
|||
热替换 |
处理器、内存模块 |
建议在开发设备驱动程序时考虑以下准则:
应了解动态硬件分区,因为有关服务器计算机硬件配置的某些假设在可动态分区的服务器上无效。 不设计为适应动态硬件分区的设备驱动程序可能会导致数据损坏,或导致操作系统生成 bug 检查(如果它们在可动态分区的服务器上运行)。
即使未为服务器计算机开发设备驱动程序,也应考虑为动态硬件分区确定的 关键问题 。
应查看并更新为运行 Windows Server 2008 及更高版本的 Windows Server 的服务器开发的所有设备驱动程序。 设备驱动程序可以注册到操作系统,以便收到硬件配置更改的通知。 当设备驱动程序收到有关硬件配置更改的通知时,他们可以根据需要响应更改,以实现安全和最佳操作。 这可确保驱动程序在可动态分区服务器上正常运行。
你为 Windows XP 和 Windows 更高版本开发的驱动程序,这些驱动程序正确参与 资源重新均衡 ,并且不对处理器数量、处理器关联掩码或物理内存量做出任何假设,它们将继续在可动态分区的服务器上正常运行。
大多数现有用户模式应用程序应继续在动态可分区服务器上运行,而无需进行任何修改。 但是,如果应用程序为每个处理器分配线程或根据可用的物理内存量执行内存分配,则应用程序可以向操作系统注册,以便收到硬件配置更改的通知。 当应用程序收到有关硬件配置更改的通知时,它可以相应地调整其资源分配。