CN101553791B - 用于替换核心系统硬件的驱动程序模型 - Google Patents
用于替换核心系统硬件的驱动程序模型 Download PDFInfo
- Publication number
- CN101553791B CN101553791B CN200780042958.5A CN200780042958A CN101553791B CN 101553791 B CN101553791 B CN 101553791B CN 200780042958 A CN200780042958 A CN 200780042958A CN 101553791 B CN101553791 B CN 101553791B
- Authority
- CN
- China
- Prior art keywords
- driver
- pur
- operating system
- memory block
- local operating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了用于替换分区单元的各装置和方法。公开了基于指定多个回调的驱动程序模型的通用和平台专用驱动程序。这些驱动程序使得能够替换分区单元而不必针对每一平台重新编译计算设备的固件和/或软件。该多个回调提供对在操作系统服务不可用时安全使用的多个功能的访问。该多个回调包括,但不限于,初始化、转储和转移处理器状态回调。这些方法使用这些驱动程序来替换分区单元。较佳地,分区单元使用利用平台专用能力的平台专用分区单元替换(PUR)驱动程序来替换。
Description
背景
微处理器是能够为诸如台式计算机、膝上型计算机、服务器计算机、蜂窝电话、激光打印机等计算设备执行处理和控制功能的电子设备。通常,微处理器包括小型塑料或陶瓷封装,其包含并保护包括复杂的集成电路的一小片半导体材料。连接到集成电路的引线被附连到从封装伸出的引脚,从而允许该集成电路连接到其它电子设备和电路。微处理器通常被插入到或以其它方式附连到包含其它电子设备的电路板。
虽然微处理器集成电路通常只包括一个计算单元,即一个处理器,但在微处理器集成电路中可能包括多个处理器。通常被称为“核”的多个处理器被包括在同一片半导体材料中并连接到微处理器封装引脚。具有多个核增加微处理器的计算能力。例如,具有四个核的微处理器可提供几乎与四个单核微处理器等量的计算能力。
在传统计算设备中已越来越多地使用多个微处理器和多核微处理器。传统计算设备只能够运行操作系统的一个实例。即使是包含多核微处理器、多个微处理器或多个多核微处理器的传统计算设备也只能够运行操作系统的一个实例。然而,利用多核微处理器所提供的增加的计算能力允许用较少的计算设备来执行先前由多个计算设备来执行的计算功能。
例如,服务器是连接到网络的、向连接到该网络的其它实体提供服务或一组服务的计算设备。包括32个传统计算设备的服务器,即,32路(32way)服务器,可由各自具有四个核的八个微处理器组成。进一步考虑该概念,如果每一单独的核都比32个计算设备中的一个强大8倍,则该32路服务器的能力可由该四核微处理器来提供。这一四核服务器的一明显的优点是计算资源冗余与传统服务器所提供的相比更承担得起。此外,减少微处理器的数量降低服务器的成本,减少为服务器供电所需的能量以及服务器所需的维护量。
使用“分区”来更好地利用多核微处理器的计算能力是可能的。分区是计算设备中能够运行操作系统的独立实例(即,局部操作系统)的一组电可隔离电子设备,例如,处理器、存储器等。可分区计算设备是可被分成各分区并由此能够运行多个局部操作系统的计算设备。可分区服务器是作为可分区计算设备并由此能够运行多个局部操作系统的服务器。可分区服务器的分区也可被称为“逻辑服务器”。即,对于网络上的其它实体而言,逻辑服务器表现为独立的服务器,即使它不是。还可能将多个服务器(逻辑或其他类型)组装成“服务器群集”。服务器群集是如提供服务或一组服务的单元那样工作的多个服务器。
使用多核微处理器的优点正引导“服务器合并”的趋势。服务器合并是用较少的服务器(例如,一个服务器)来替换多个服务器(例如,服务群集中的)的过程。替换多个服务器的服务器通常包含等于或超过该多个服务器的能力的计算能力。虽然降低了成本,减少了能量和维护,但服务器合并具有孤注一掷的后果。服务器合并可能增加服务器故障的影响。例如,如果惯于在多个服务器上运行的多个应用程序全都在同一服务器上运行,并且该服务器发生故障,则影响可能影响到所有应用程序。在最差的情况下,这意味着应用程序停机时间。为针对这一影响进行保护,许多高端服务器(即,具有大量计算能力的服务器)将其能力的一部分应用于可靠性特征。
一种这样的可靠性特征是“故障切换”能力。故障切换是第一实体较佳地在该第一实体完全发生故障之前将该第一实体所包含的信息传递到类似的第二实体上的能力。已经开发了供传统服务器(即,基于传统计算设备的服务器)以受控和有序的方式来执行故障切换以确保在从发生故障的服务器转换到替换服务器期间没有数据丢失并且没有正在运行的进程被中断的技术。
为创建与传统服务器一样稳健和可靠的多核微处理器服务器,在处理器级操作的类似技术是有用的。较佳地,这些技术能够在多个“平台”上运行。平台是提供较高级软件在其上操作并且其他硬件、固件和软件可被添加到其中的框架的硬件、固件和软件的组合。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在用于帮助确定所要求保护的主题的范围。
公开了用于替换计算设备和驱动程序中的分区单元的驱动程序模型以及使用基于该驱动程序模型的驱动程序的方法。该驱动程序模型采用多个回调来访问在操作系统服务不可用时安全使用的多个功能。该多个回调包括,但不限于,初始化、转储(memory transfer)和转移处理器状态回调。
使用驱动程序允许计算设备替换分区单元而不必针对特定平台重新编译该计算设备的服务处理器(SP)固件和/或局部操作系统软件。较佳地,分区单元使用基于驱动程序模型的平台专用分区单元替换(PUR)驱动程序来替换。
在一个说明性实现中,在初始化期间,分区的局部操作系统:注册可以是通用或平台专用的PUR驱动程序;加载该PUR驱动程序;执行初始化回调;以及从该PUR驱动程序接收上下文信息(即,上下文)。在被动迁移阶段期间,局部操作系统定址(map)发生故障的存储器块并对每一个存储器块执行转储回调。PUR驱动程序使用计算设备的平台专用硬件(例如,服务处理器)来较佳地以对该计算设备的平台优化的方式来转移存储内容。在主动迁移阶段期间,计算设备被静止并且局部操作系统定址发生故障的块并对每一个存储器块和上下文执行转储回调。SP使用驱动程序来转移存储内容。回调使用SP来原子地重定址(remap)存储器块并且取消对计算设备的静止。在清理阶段期间,SP使用移除回调来移除发生故障的分区单元并且局部操作系统移除PUR驱动程序。
附图说明
当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发明的上述方面和许多附加的优点,附图中:
图1是能够支持分区单元替换的示例性计算设备的框图;
图2是包含多个分区单元以及无关联的一个分区单元的示例性分区的框图;
图3是图2所示的、被重新配置成包括先前无关联的分区单元的示例性分区的框图;
图4是示例性分区单元的框图;
图5是示例性发生故障的存储器块和示例性替换存储器块的框图;
图6A-E包括用于使用基于驱动程序模型的驱动程序来替换分区单元的示例性过程的功能流程图。
详细描述
服务器是连接到网络的、向例如计算设备等连接到该网络的其它实体提供服务或一组服务的计算设备。例如,网页服务器提供响应于网页请求来返回网页的服务。其它示例性服务器是为特定用户返回电子邮件消息的电子邮件服务器、返回来自视频归档的视频剪辑的视频服务器等。示例性服务器包含微处理器、存储器控制器以及由该存储器控制器控制的存储器块。存储器控制器以及由该存储器控制器控制的存储器块通常被称为单元,即存储单元。
本领域的技术人员可以理解,存储器块是可以例如由起始地址和大小来指定的连续的存储器段。存储器块可从一个或多个存储器页中形成。存储器页是从主存储器复制到大容量存储中(例如,复制到盘上)并且按需从大容量存储重新加载回到主存储器中的固定大小的存储器段。将存储器块中的页复制到大容量存储被称为“页调出”存储器。将存储器块中的页从大容量存储重新加载回到主存储器中被称为“页调入”存储器。一般而言,在主存储器和大容量存储之间转移存储器页被称为“分页”。存储器控制器以及由该存储器控制器控制的存储器块通常被称为单元,即存储单元。
服务器还可以包含其他微处理器、存储器控制器、存储器块以及诸如中断处理器等其它电子设备。因此,只包含微处理器和存储单元的服务器应被解释为是示例性的而非限制性的。
如同许多类型的计算设备一样,服务器的操作由被称为操作系统的软件程序来控制。传统计算设备只能够运行操作系统的一个实例。因此,传统服务器(即,基于一个或多个传统计算设备的服务器)执行操作系统的副本(即,该操作系统的实例)中所包含的指令。例如,包括32个传统计算设备的服务器(即,32路服务器)可由八个微处理器组成,每一个微处理器都具有四个核并且仍运行一个操作系统。减少微处理器的数量降低服务器的成本,减少为服务器供电所需的能量以及服务器所需的维护量。
分区使得更好地利用多核微处理器的计算能力成为可能。分区是计算设备中能够运行操作系统的独立实例(即,局部操作系统)的一组电可隔离电子设备,例如,处理器、存储器等。可分区计算设备是可被分成各分区并且由此能够运行多个局部操作系统的计算设备。可分区服务器是作为可分区计算设备并由此能够运行多个局部操作系统的服务器。可分区服务器的分区也可被称为“逻辑服务器”。因此,一个可分区服务器可包含多个逻辑服务器。多个服务器(逻辑或其它类型)可被组装成如提供服务或一组服务的单元那样工作的“服务器群集”。
较佳地,分区是动态的。即,分区单元在对服务器提供的服务具有极小影响或没有影响的情况下被分配给分区或从这些分区中移除。能够被分区的服务器是可分区服务器。包括可分区服务器的服务器系统(即,系统)是可分区系统。可分区系统提供了被分配给分区的分区单元和电子设备的数量和配置方面的灵活性,并使得支持“服务器合并”更容易并且更经济。
服务器合并是用较少的服务器或可能甚至只用一个服务器来替换多个服务器的过程。作为服务器合并的结果的示例性服务器通常包含等于或超过该服务器所替换的多个服务器的能力的计算能力。服务器合并可能增加服务器故障的影响。例如,想象惯于在多个服务器上运行的多个应用程序全都在该一个服务器上运行。如果该服务器发生故障,则影响可能影响到所有应用程序并甚至使应用程序停机。
传统服务器通过将服务器的计算能力的一部分应用于诸如“故障切换”能力等可靠性特征来这对这一影响进行保护。已经开发了供传统服务器以受控和有序的方式来执行故障切换以确保在从发生故障的服务器转换到替换服务器期间没有数据丢失并且没有正在运行的进程被中断的技术。因为传统服务器通过网络彼此连接并因此不是紧密地绑定在一起,所以工作被分为小片断并跨服务器共享,即,被分组化。这使得替换发生故障的服务器变得容易,因为发生故障的服务器的工作分组可以在故障切换期间重新路由。注意,为了实现故障切换,必须存在不止一个可用的传统服务器。即,发生故障的传统服务器需要能够接受来自该发生故障的传统服务器的数据的另一类似的传统服务器。
因为可分区服务器可包含能够比通过网络绑定在一起的传统服务器更容易地通信的多个逻辑服务器,所以可分区服务器具有比一组传统服务器更容易且更经济地提供可靠性的潜力。用于使用可分区服务器中的分区来操作的受控且有序的故障切换的过程帮助实现可分区服务器可提供的可靠性。
通过在需要故障切换时通知每一个高级软件应用程序来使得可分区服务器更加可靠是不切实际的。使高级软件应用程序能够响应这一通知将需要修改每一个应用程序的计算机代码以适应故障切换。即使通知应用程序也可能不足以在没有用于替换正在运行的服务器的一部分的机制的情况下提供故障切换。相反,在故障切换中只涉及最底层软件并且允许较上层软件(例如,应用程序)如同未发生硬件变化那样工作是更加实际且有利的。
有序、低级、可分区服务器故障切换的实现涉及全局管理实体以及一个或多个局部操作系统。全局管理实体的示例是服务处理器(SP)和主板管理控制器(BMC)。SP是管理诸如存储器控制器和微处理器等附连到电路板或主板的电子设备的专用微处理器或微控制器。BMC也是嵌在主板上的专用微控制器。除管理电子设备之外,BMC监视来自内置到计算系统中的传感器的输入,以报告诸如温度、冷却风扇速度、供电模式、操作系统状态等参数并对其作出响应。其它电子设备可履行全局管理实体的角色。因此,SP或BMC作为全局管理实体的使用应被解释为是示例性的而非限制性的。
局部操作系统是在一个分区上运行的操作系统的实例。分区单元被分配给特定分区以确保该分区单元中的设备无法与其它分区中的设备共享,从而确保故障将对于单个分区隔离。这一分区单元可指示哪些物理地址是由给定存储器控制器来服务的,并由此将这些物理存储器地址映射到存储器控制器以及包含该存储器控制器的物理分区单元。引导并操作分区可能需要不止一个分区单元。未使用的或发生故障的分区单元可被电隔离。电隔离分区单元类似于从一组传统服务器中移除服务器且优点在于分区单元可被动态地重新分配给不同分区。
在以上讨论中,除非另外注明,否则分区单元包括单个核和单个存储单元。然而,分区单元可包括不止一个核、存储单元、中断处理器和/或提供计算服务和/或支持的其它设备。因此,对包括核和存储器控制器的分区单元的使用应被解释为是示例性的而非限制性的。管理(例如,添加或替换)可分区服务器中的分区单元允许以受控且有序的方式来执行故障切换以确保该可分区服务器与传统服务器一样稳健和可靠。
用于实现能够支持分区以及分区单元添加和/或替换的可分区服务器的示例性计算设备由图1所示的框图来示出。图1所示的示例性计算设备100包括服务处理器(SP)102,其连接到存储SP固件104和路由表106的存储器。较佳地,SP固件104是独立于操作系统的。因此,SP固件104不是操作系统而是独立于操作系统的系统管理应用程序的库。通常,系统管理应用程序提供命令和命令集、命令行界面、可以是基于web的图形界面和/或网络管理协议界面等。计算设备100还包括连接到存储器块A 110的处理器A 108、连接到存储器块B 114的处理器B 112、连接到存储器块C 118的处理器C 116、以及连接到存储器块D 122的处理器D 120。处理器108、112、116和120中的每一个都包含被指定为0、1、2和3的四个核。由SP固件104控制的SP 102使用路由表106来管理处理器108、112、126、120以及存储器块110、114、118和122。计算设备100还包括I/O(输入/输出)电路124、大容量存储电路126、通信电路128、环境电路130和电源132。计算设备100使用I/O电路124来与I/O设备进行通信。计算设备100使用大容量存储电路126来与内部或外部地连接的大容量存储设备交互。计算设备100使用通信电路128来通常通过网络与外部设备进行通信。计算设备100使用环境电路130来控制诸如冷却风扇、热传感器、湿度传感器等环境设备。电源132为计算设备100供电。例如,如果SP 102被BMC替换,则BMC可以与环境电路130和电源132进行通信并更精确地对其进行控制。
如图1所示并在以上描述的的示例性计算设备100等计算设备支持分区单元的替换。分区单元的替换可以通过将图2所示的框图与图3所示的框图进行比较来理解。图2和图3所示的两个框图包括相同的四个分区单元。每一个分区单元都包括处理器和存储器块:处理器A 202,其连接到存储器块204;处理器B 206,其连接到存储器块208;处理器C 210,其连接到存储器块212;以及处理器D 214,其连接到存储器块216。虽然图2和图3中的框图示出了相同的四个分区单元,但图2所示的分区200a与图3所示的分区200b相比包括一组不同的分区单元。
图2所示的分区200a包括:处理器A 202和存储器块204;处理器B 206和存储器块208;以及处理器C 210和存储器块212。在图2中,包括处理器D214和存储器块216的分区单元未包括在分区200a中。与图2所示的分区200a相比,图3所示的分区200b已被改变成包括一组不同的分区单元,即,一组不同的处理器和存储器块。图3所示的分区200b包括:处理器B 206和存储器块208;处理器C 210和存储器块212;以及处理器D 214和存储器块216。在图3中,包括处理器A 202和存储器块204的分区单元未被包括在分区200b中,然而包括处理器D 214和存储器块216的分区单元被包括在图2所示的分区200a中。实际上,包括处理器D 214和存储器块216的分区单元替换包括处理器A 202和存储器块204的分区单元。这一替换在例如处理器A 202和/或存储器块204发生故障的情况下是合乎需要的。
虽然诸如处理器A 202和存储器块204等单个处理器和单个存储器块可构成分区单元,但分区单元可具有其它形式。具有不同形式的示例性分区单元的详细视图在图4中示出。在图4A中,如同图1一样,示例性分区单元400包括连接到存储器控制器404的处理器402,其包含四个核:0、1、2和3,存储器控制器404连接到两个存储器块,即,存储器块A 406和存储器块B 410。处理器402与控制存储器块A 406和存储器块B 410的存储器控制器404进行通信。其他分区单元可包含表示除了处理器、存储器控制器和存储器块之外的物理设备的其他逻辑设备,或者可只包含单个处理器或单个存储器控制器。因此,分区单元400应被解释为是示例性的而非限制性的。
典型分区单元中的逻辑设备能够向局部操作系统通知设备的状态。作为替换或除此之外,控制分区单元的局部操作系统可使用预测分析来评估逻辑设备的状态并确定逻辑设备是否可能发生故障并由此可以是供替换的候选。虽然诸如系统管理员等人可作为日常维护的一部分来检查设备状态,但使得硬件自己向局部操作系统通知即将发生的故障是优选的。在某些情况下,将处理器从一个模型升级到另一个模型或向系统添加处理器和/或存储器是合乎需要的。虽然系统管理员可执行这些功能,但通过使用显式编程的指令或由利用分区、分区单元和硬件的能力来报告状态的周期性定时指令来自动化这样的替换和添加是优选的。
诸如图4所示的分区单元400等分区单元可出于各种原因而发生故障。例如,分区单元可能由于诸如图4所示的处理器402等处理器发生故障而发生故障。分区单元也可能由于诸如图4所示的存储器块406等存储器块发生故障而发生故障。当处理器、存储器块或分区单元中的其他项目发生故障时,期望替换发生故障的项目。虽然上述讨论集中于检测并替换发生故障的存储器块,但此处所描述的技术可应用于检测并替换分区单元中的其他发生故障的项目。因此,发生故障的存储器块的检测和替换应被解释为是示例性的而非限制性的。
如果一存储器块发生故障,则用等效存储器块来替换该存储器块是优选的。示例性发生故障的存储器块和等效示例性替换存储器块在图5中示出。在图5中,发生故障的存储器块500包括一组存储器单元504,其包含数据,例如,数字1、2、3和4。该组存储器单元504中的存储器单元可以使用局部物理地址502来引用并且也可使用全局物理地址506来引用。局部物理地址502使用地址1000和1001,而全局物理地址506使用地址5和6。发生故障的存储器块500可由替换存储器块510来替换。替换存储器块510包括一组存储器单元514,其能够包含来自发生故障的存储器块500的数据,即,数字1、2、3和4。如同发生故障的存储器块一样,替换存储器块514中的存储器单元组514中的存储器单元可使用局部物理地址512来引用,并且也可使用全局物理地址516来引用。局部物理地址512使用地址2000和2001,而全局物理地址516使用地址7和8。在典型的替换序列中,发生故障的存储器块500的存储器单元组504中的数据被复制到替换存储器块510的存储单元器组514中。发生故障的存储器块500的局部物理地址502(即,1000和1001)被重新映射到替换存储器块510的局部物理地址512。在替换分区单元时,执行存储器块的“原子”更新(即,替换)是优选的。在存储器块的原子更新期间,如果访问正在更新的存储器块,则独占地使用发生故障的存储器块的地址或者独占地使用替换存储器块的地址。即,对存储器单元504的数据访问是从局部物理地址502或者局部物理地址512独占地做出的。
较佳地,全局管理实体使得局部操作系统能够原子地替换分区单元的存储单元中的存储器块。可使用“OS”驱动程序(即,局部操作系统中可用的驱动程序)来为分区单元替换提供某一级别的支持。对于特定存储器替换功能而言,全局管理实体能够使用固件和OS驱动程序。如将在以下详细描述的,在存储器替换过程期间固件和OS驱动程序有时无法运行。因此,在此期间,全局管理实体无法依赖OS驱动程序来执行替换存储器块所需的特定功能。为了执行固件和OS驱动程序无法执行的存储器替换功能,需要被设计成在此期间运行的驱动程序。另外,OS驱动程序可能无法执行在存储器替换过程期间所需的每一个功能。例如,目标存储器与备用存储器的最终对换(此时备用分区单元采用目标分区单元的物理地址)是平台专用操作。该最终对换是在局部操作系统的域之外执行的硬件配置,并由此无法由OS驱动程序来执行。
因为全局管理实体和局部操作系统各自具有其自己的存储器空间,所以需要全局管理实体与局部操作系统之间的传达数据的道路,即,数据管道。特殊设计的驱动程序可提供局部操作系统和全局管理实体之间的数据管道,从而使得该驱动程序能够在整个存储器替换过程中操作并由此支持分区单元替换(PUR)。这一驱动程序的示例是PUR驱动程序。较佳地,PUR驱动程序基于PUR驱动程序模型以抽象出存储器替换功能的细节。本领域的技术人员可以理解,使用基于驱动程序模型的驱动程序使得替换软件和/或固件(即,用于执行替换的软件和/或固件)能够在来自多个厂商的设备上正确地运行而不修改用于执行替换的软件和/或固件。因此,为了支持发生故障的分区单元(例如,存储器)的替换,使用驱动程序模型来抽象出用备用分区单元来替换发生故障的分区单元的细节是优选的。
通用PUR驱动程序(即,跨多个平台操作的PUR驱动程序)可提供足够的性能。通过使用平台专用PUR驱动程序(即,针对特定硬件平台特别编写的PUR驱动程序),PUR驱动程序模型使得替换软件和/或固件能够在每一个特定硬件平台上更高效且有效地运行。例如,使用通用PUR驱动程序的转储可能通过使用逐字节复制技术来复制存储器块来执行。使用平台专用PUR驱动程序的转储可通过使用直接存储器存取(DMA)技术,或通常比逐字节复制技术快得多且高效得多的其他平台专用技术来执行。
示例性PUR驱动程序模型包括一组回调例程的规约。实现PUR驱动程序模型的PUR驱动程序以与针对其编写该PUR驱动程序的平台兼容的方式实现这些回调例程中的每一个。这一实现允许将PUR驱动程序插入到实现分区单元替换过程的固件和/或软件中。该固件和/或软件然后使用这些回调例程来最优地执行由回调来调用的功能。固件和/或软件通过回调来将“上下文”传递给局部操作系统。上下文是包含关于特定替换实例的信息(即,上下文信息)的数据结构。局部操作系统本身并不使用上下文。相反,局部操作系统可在其他回调中将上下文传回到固件和/或驱动程序。以此方式,固件和/或软件和驱动程序能够确定哪个特定替换实例正被执行。如果只有一个替换操作正在执行,则这一上下文更加方便,但如果存在同时执行的不止一个替换操作,则这一上下文变得更有必要。
使用基于驱动程序模型的驱动程序提供了避免为每一个操作系统定制固件的方式。如本领域的技术人员可以理解的,驱动程序模型定义名称、输入和输出以及或许回调的其他数据。针对每一平台的驱动程序较佳地以利用每一平台的能力的方式来实现回调。例如,示例性平台可具有加速将存储内容从一个块复制到另一个块的过程的特殊转储能力。在针对该平台编写的驱动程序中,可实现涉及将存储内容从一个存储器块复制到不同的存储器块的回调以便利用该平台的加速的转储能力。
图6A是提供用于使用基于驱动程序模型的驱动程序来替换分区单元的示例性过程的顶层视图的功能流程图。该过程包括四个子例程。该过程在第一个子例程600,即,初始化处开始。回调机制能够在大多数局部操作系统服务不可用时操作,因为在初始化期间,驱动程序接收在大多数局部操作系统服务不可用时“安全”使用的一系列功能。安全功能在不通过例如触发中断来干扰替换过程的情况下执行。局部操作系统可例如使用涉及访问盘驱动器和触发中断的分页来分配存储器。因此,必须提供以非分页的方式(即,不分页到盘驱动器)来分配存储器的安全功能。
该过程中的后两个子例程涉及替换存储器的被动和主动迁移。被动和主动迁移两者的目的是在不关闭或显著地干扰正在运行的高级应用程序的情况下将尽可能多的信息从发生故障的分区单元转移到替换分区单元。例如,通常多个存储器块被分配给应用程序。在应用程序修改一存储器块时,设置一标志以指示该存储器块已被修改。如果存储器块未被修改,则该存储器块的标志保持未设置。通常,并非所有分配的存储器块都由应用程序来修改。只要存储器块未被修改,该存储器块的内容就可在不中断应用程序的情况下被动升级到替换存储器块。
继续参考图6A,在初始化完成之后,控制行进至子例程620,即,被动迁移。在被动迁移完成之后,控制行进至子例程640,即,主动迁移。在主动迁移完成之后,控制行进至子例程660,即,清理。在清理完成之后,该过程结束。
图6B是适于用作图6A所示的初始化子例程600的示例性子例程的功能流程图。该子例程在框602处开始,在那里局部操作系统(即,OS)注册平台专用分区单元替换驱动程序(PUR驱动程序)。在框604,OS加载PUR驱动程序。在框606,OS做出初始化回调。在框608,OS从PUR驱动程序接收上下文信息。在框608后,该子例程结束。
图6C是适于用作图6A所示的被动迁移子例程620的示例性子例程的功能流程图。该子例程在框622处开始,在那里局部操作系统(即,OS)定址发生故障的存储器块。本领域的技术人员和其他人将会认识到,定址发生故障的存储器块是通过在该OS的存储器块的地图中标记该发生故障的存储块的位置来标识发生故障的存储器块的过程。如上所述,存储器块可从一个或多个存储器页中形成。定址发生故障的存储器块也可通过定址形成发生故障的存储器块的存储器页来实现。因此,定址发生故障的存储器块应被解释为是示例性的而非限制性的。在框624,OS对每一个块和上下文做出转储回调。在被动迁移期间,只转移尚未被修改的存储器块,即,其修改标志尚未被设置的存储器块。转储可通过对形成存储器块的存储器页分页来实现。在框626,PUR驱动程序使用SP来转移存储内容。在框626后,该子例程结束。对于PUR驱动程序而言使用其他全局系统硬件(例如,DMA引擎)来转移存储内容也是可能的。因此,PUR驱动程序对SP的使用应被解释为是示例性的而非限制性的。
图6D是适于用作图6A所示的主动迁移子例程640的示例性子例程的功能流程图。该子例程在框642处开始,在那里静止系统,例如,局部操作系统。术语“静止”指的是将系统置于相对非活动状态。当系统被静止时,停止中断以阻止I/O设备和其他处理器触发中断并防止存储器修改。较佳地,局部操作系统选择控制处理器,即,将控制静止活动的处理器。控制处理器执行实现系统静止和主动迁移的一组指令。存在用于选择控制处理器的各种算法。例如,没有正被替换的、具有最小数字的最不忙碌的处理器可被选为控制处理器。静止系统提供了用于原子替换的安全环境。
继续参考图6D,在框644,OS定址发生故障的块。在框646,OS对每一个块和上下文做出转储回调。在框648,SP使用PUR驱动程序来转移存储内容。回想,如上所述,在被动迁移期间只转移尚未被修改的存储器块,即,其修改标志尚未被设置的存储器块。在主动迁移期间,转移的存储器块是其余存储器块,即,其修改标志已被设置的存储器块。较佳地,在被动和主动迁移两者期间执行的转储使用加速复制存储内容的过程的平台专用转储能力。在框650,回调使用SP来原子地重定址存储器。在框650处执行的存储器的重定址使得备用分区单元中的存储器一旦得到响应就响应与原始分区单元中的存储器相同的局部操作系统物理地址。实际上,执行其中从局部操作系统的观点来看备用分区单元取代了原始分区单元的“对换”。也可对处理器执行这一对换。
继续参考图6D,在框652,取消对系统的静止。取消对系统的静止基本上是静止系统的逆操作。即,系统以受控的方式并大致按静止过程的相反次序恢复到正常活动状态。在框652后,该子例程结束。
图6E是适于用作图6A所示的清理子例程660的示例性子例程的功能流程图。该子例程在框662处开始,在那里SP使用回调来移除发生故障的分区单元,即,包含发生故障的存储单元的分区单元。在框664,OS卸载PUR驱动程序。在框664后,该子例程结束,从而结束了图6A所示的示例性过程。
虽然上述驱动程序模型以及图6A-E所示的并且也在上文中描述的用于使用该驱动程序模型的过程涉及替换存储器块(即,块),但在驱动程序模型中具有允许处理器状态转移或用于其他类型的设备(例如,中断控制器)的状态转移的回调也是可能的。例如,在需要操纵发生故障的处理器的物理APIC ID的情况下可能需要用于处理器的回调。同样,虽然上述示例性驱动程序模型只涉及存储器替换,但驱动程序模型还可帮助将存储器添加到分区。
尽管示出和描述了各说明性实施例,但是可以认识到,可在其中作出各种改变而不背离本发明的精神和范围。例如,虽然以上所示和所述各说明性实施例涉及检测并替换发生故障的存储器块,但类似的技术也可应用于检测并替换发生故障的分区单元中的其他类型的发生故障的项目。
Claims (18)
1.一种在包括多个逻辑分区单元和全局系统硬件的计算系统中的采用分区单元替换PUR驱动程序来替换逻辑分区单元的方法,所述方法包括:
初始化所述PUR驱动程序以供局部操作系统用来用替换逻辑分区单元来替换所述逻辑分区单元,所述PUR驱动程序在局部操作系统和全局系统硬件之间提供数据管道;
采用所述PUR驱动程序来使用全局系统硬件将数据从将被替换的逻辑分区单元转移到所述替换逻辑分区单元;以及
重新定址所述替换逻辑分区单元,以便以和被替换的逻辑分区单元之前响应的方式相同的方式,来响应于来自局部操作系统的物理地址。
2.如权利要求1所述的方法,其特征在于,所述PUR驱动程序是平台专用驱动程序。
3.如权利要求1所述的方法,其特征在于,采用所述PUR驱动程序来将数据从将被替换的逻辑分区单元转移到所述替换逻辑分区单元包括被动和主动迁移。
4.如权利要求3所述的方法,其特征在于,被动迁移包括:
经由所述局部操作系统将所述将被替换的逻辑分区单元中的未使用的存储器块映射到所述替换逻辑分区单元中的存储器块;以及
经由所述局部操作系统在定址了相应的块时对相应的块和上下文执行转储回调。
5.如权利要求1所述的方法,其特征在于,全局系统硬件包括服务处理器。
6.如权利要求1所述的方法,其特征在于,所述PUR驱动程序基于包括多个回调的PUR驱动程序模型。
7.如权利要求6所述的方法,其特征在于,所述多个回调包括用于初始化逻辑分区单元的替换的初始化回调。
8.如权利要求7所述的方法,其特征在于,所述初始化回调被配置成返回上下文。
9.如权利要求6所述的方法,其特征在于,所述多个回调包括用于被动转移存储内容的被动转储回调。
10.如权利要求6所述的方法,其特征在于,所述多个回调包括用于主动转移存储内容的主动转储回调。
11.如权利要求6所述的方法,其特征在于,所述多个回调包括用于替换逻辑分区单元的逻辑分区单元移除回调。
12.如权利要求6所述的方法,其特征在于,所述PUR驱动程序是通用驱动程序。
13.如权利要求6所述的方法,其特征在于,所述PUR驱动程序是平台专用驱动程序。
14.如权利要求6所述的方法,其特征在于,所述多个回调包括转储回调。
15.如权利要求6所述的方法,其特征在于,所述多个回调包括转移处理器状态回调。
16.如权利要求1所述的方法,其特征在于,初始化所述PUR驱动程序以供局部操作系统使用包括:
经由所述局部操作系统注册所述PUR驱动程序;以及
经由所述局部操作系统加载所述PUR驱动程序。
17.如权利要求1所述的方法,其特征在于,初始化所述PUR驱动程序以供局部操作系统使用包括:
经由所述局部操作系统执行初始化回调;以及
由所述局部操作系统从所述PUR驱动程序获取上下文信息。
18.如权利要求16所述的方法,其特征在于,所述PUR驱动程序是平台专用驱动程序。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86681506P | 2006-11-21 | 2006-11-21 | |
US86682106P | 2006-11-21 | 2006-11-21 | |
US86681706P | 2006-11-21 | 2006-11-21 | |
US60/866,817 | 2006-11-21 | ||
US60/866,815 | 2006-11-21 | ||
US60/866,821 | 2006-11-21 | ||
US11/675,243 US8473460B2 (en) | 2006-11-21 | 2007-02-15 | Driver model for replacing core system hardware |
US11/675,243 | 2007-02-15 | ||
PCT/US2007/085184 WO2008064198A1 (en) | 2006-11-21 | 2007-11-20 | Driver model for replacing core system hardware |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101553791A CN101553791A (zh) | 2009-10-07 |
CN101553791B true CN101553791B (zh) | 2013-03-13 |
Family
ID=41124162
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780042958.5A Active CN101553791B (zh) | 2006-11-21 | 2007-11-20 | 用于替换核心系统硬件的驱动程序模型 |
CN2007800429602A Expired - Fee Related CN101542433B (zh) | 2006-11-21 | 2007-11-20 | 系统处理器的透明替换 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800429602A Expired - Fee Related CN101542433B (zh) | 2006-11-21 | 2007-11-20 | 系统处理器的透明替换 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101553791B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7934121B2 (en) | 2006-11-21 | 2011-04-26 | Microsoft Corporation | Transparent replacement of a system processor |
US8086906B2 (en) | 2007-02-15 | 2011-12-27 | Microsoft Corporation | Correlating hardware devices between local operating system and global management entity |
JP6031212B2 (ja) * | 2013-03-28 | 2016-11-24 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | ブレードデバイスを備えるパーティションのオペレーティングシステムによって用いられるブレードデバイスのメモリの特定 |
DE112013006769T5 (de) * | 2013-03-29 | 2015-11-26 | Mitsubishi Electric Corp. | Erzeugungsprogramm für Ablaufprogramm-Komponenten und Vorrichtung zur Erzeugung von Ablaufprogramm-Komponenten |
EP3274814A4 (en) * | 2015-03-23 | 2019-04-03 | Intel Corporation | EMBODIMENT CONFORMITY METHOD AND APPARATUS |
CN106997315B (zh) * | 2016-01-25 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598174B1 (en) * | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085862B2 (en) * | 2003-03-13 | 2006-08-01 | International Business Machines Corporation | Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition |
-
2007
- 2007-11-20 CN CN200780042958.5A patent/CN101553791B/zh active Active
- 2007-11-20 CN CN2007800429602A patent/CN101542433B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598174B1 (en) * | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
Also Published As
Publication number | Publication date |
---|---|
CN101553791A (zh) | 2009-10-07 |
CN101542433B (zh) | 2012-11-28 |
CN101542433A (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101553791B (zh) | 用于替换核心系统硬件的驱动程序模型 | |
CN102622329B (zh) | 多核计算机中的远程核操作 | |
US7877358B2 (en) | Replacing system hardware | |
US8745441B2 (en) | Processor replacement | |
CN101118503B (zh) | 再分配处理环境的物理处理器的方法和系统 | |
US8473460B2 (en) | Driver model for replacing core system hardware | |
CN100580631C (zh) | 用于替换故障物理处理器的方法和装置 | |
US9916215B2 (en) | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines | |
CN101171572A (zh) | 在具有动态逻辑分区的计算环境中管理计算机存储器 | |
CN102801806A (zh) | 一种云计算系统及云计算资源管理方法 | |
EP2645635B1 (en) | Cluster monitor, method for monitoring a cluster, and computer-readable recording medium | |
CN104969200A (zh) | 具有故障冗余的分布式高速缓存一致性目录 | |
CN102597972A (zh) | 虚拟计算机系统、区域管理方法及程序 | |
CN101971144A (zh) | 受系统资源影响的阶段式停机 | |
US8478956B2 (en) | Computing system and method controlling memory of computing system | |
JP4715311B2 (ja) | Smpライセンス情報を有する情報処理装置 | |
CN101359320B (zh) | 多处理器系统中的单元兼容性 | |
CN101542432A (zh) | 替换系统硬件 | |
CN102662857A (zh) | 用于对于存储进行虚拟化的设备和方法 | |
US20080307190A1 (en) | System and Method for Improved Virtual Real Memory | |
JP5664348B2 (ja) | 仮想マシンシステム、仮想マシンサーバ、仮想マシン運用方法、及び仮想マシン運用プログラム | |
CN102662695A (zh) | 一种系统启动的方法及装置 | |
CN103995731A (zh) | 一种管理中心部署方法和虚拟装置 | |
CN103034551A (zh) | 切换资料库管理系统的资料库备援系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150508 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150508 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |