用于在多节点系统中提供节点分离的方法和系统.pdf

上传人:Y94****206 文档编号:649793 上传时间:2018-03-01 格式:PDF 页数:19 大小:993.47KB
返回 下载 相关 举报
摘要
申请专利号:

CN200610153833.7

申请日:

2006.09.13

公开号:

CN1975695A

公开日:

2007.06.06

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 12/00申请日:20060913授权公告日:20090506终止日期:20100913|||授权|||实质审查的生效|||公开

IPC分类号:

G06F12/00(2006.01); G06F11/00(2006.01); G06F15/16(2006.01)

主分类号:

G06F12/00

申请人:

国际商业机器公司;

发明人:

布兰登·J·埃利森; 埃里克·R·克恩; 威廉·B·施瓦茨; 亚当·L·索德伦德

地址:

美国纽约阿芒克

优先权:

2005.11.30 US 11/290,071

专利代理机构:

北京市金杜律师事务所

代理人:

朱海波

PDF下载: PDF下载
内容摘要

在多节点系统中,可以动态地分离节点(例如响应于错误情形)而不影响操作系统或其他节点。将待分离节点处的正在使用的存储器的内容复制到另一节点,并对存储器映射进行更新以使得这种复制对于使用该存储器的组件透明。此外,程序化地锁定要复制到的存储器位置,以防止将该存储器位置分配给存储器请求者。

权利要求书

1.  一种用于在多节点系统中提供节点分离的程序化的方法,包括步骤:
由所述多节点系统的一个特定节点的中断处理器来检测中断;
进入所述中断处理器以处理所述中断;以及
在确定所述中断表明需要从所述多节点系统中分离所述特定节点后,执行步骤:
在一个具有可用存储器的不同的节点处透明地接管所述特定节点的正在使用的存储器,从而将对所述正在使用的存储器的后续引用透明地解析给所述一个不同的节点;以及
随后,在不退出所述中断处理器的情况下从所述多节点系统中分离所述特定节点。

2.
  根据权利要求1所述的方法,其中所述透明地接管的步骤进一步包括步骤:
将所述正在使用的存储器的内容复制到所述一个不同的节点;
创建所述特定节点处的所述正在使用的存储器的位置与所述不同的节点处的所复制的内容的新位置之间的映射,其中所述映射使得可以对所述的后续引用进行透明的解析;
将所述特定节点处的未使用的存储器标记为不可用;以及
将所述不同的节点处的新位置标记为不可用。

3.
  根据权利要求2所述的方法,其中所述复制步骤、所述创建步骤、所述标记未使用的存储器的步骤以及所述标记新位置的步骤由在所述多节点系统的操作系统控制下执行的存储控制器后台程序来完成。

4.
  根据权利要求3所述的方法,其中由所述中断处理器响应于所述确定步骤而用信号通知所述存储控制器后台程序启动。

5.
  根据权利要求4所述的方法,其中所述透明地接管的步骤还包括步骤:
响应于用信号通知所述存储控制器后台程序而退出所述中断处理器,直到接收到表明所述存储控制器后台程序已经结束所述复制步骤、所述创建步骤、所述标记未使用的存储器的步骤以及所述标记新位置的步骤的新的中断为止;
再次进入所述中断处理器以处理所述新的中断,其中对所述新的中断的处理包括不退出所述中断处理器。

6.
  根据权利要求5所述的方法,其中所述退出步骤允许所述操作系统继续访问所述正在使用的存储器。

7.
  根据权利要求4所述的方法,其中使用共享存储器将所述信号从所述中断处理器传递给所述存储控制器后台程序。

8.
  根据权利要求3所述的方法,其中在结束所述复制步骤、所述创建步骤、所述标记未使用的存储器的步骤以及所述标记新位置的步骤后,所述存储控制器用信号通知所述中断处理器。

9.
  根据权利要求1所述的方法,其中将所述特定节点配置为防止所检测到的中断从所述特定节点传播到所述多个节点中的其他节点。

10.
  根据权利要求9所述的方法,其中通过在所述特定节点的加电过程期间设置与所述特定节点相关联的控制域来防止所述传播。

11.
  一种用于在多节点系统中提供节点分离的系统,包括:
多节点系统,其包括多个互连的节点,其中每个节点具有与其相关联的用于检测和处理中断的中断处理器;
用于通过与一个特定节点相关联的中断处理器来检测中断的装置;
用于进入所述中断处理器以处理所述中断的装置;以及
用于响应于确定所述中断表明需要从所述多节点系统中分离所述特定节点而非破坏性地分离所述节点的装置,进一步包括:
用于将所述特定节点的正在使用的存储器的内容复制到具有可用存储器的一个不同的节点的装置;
用于创建所述特定节点处的所述正在使用的存储器的位置与所述不同的节点处的所复制的内容的新位置之间的映射的装置,其中所述映射使得可以对所述正在使用的存储器的后续引用进行透明的解析;
用于将所述特定节点处的未使用的存储器标记为不可用的装置;
用于将所述不同的节点处的新位置标记为不可用的装置;
用于随后在不退出所述中断处理器的情况下从所述多节点系统中分离所述特定节点的装置。

说明书

用于在多节点系统中提供节点分离的方法和系统
技术领域
本发明一般地涉及计算机系统,并且更特别地涉及多节点系统中的节点的动态分离。
背景技术
多节点系统是多个节点互连的系统。多节点系统的一个例子是来自国际商业机器公司(IBM)的xSeries7 eServerJ x440。(xSeries是IBM的注册商标,并且eServe是IBM的商标)。多节点系统提供大量的冗余和处理能力,并因此改善系统的可用性、性能和可扩展性。
多节点系统可以包括例如4个互连节点,其中每个节点包括8个处理器,从而整个系统有效地提供32个处理器。每个节点典型地贡献可在各互连节点之间共享的存储器资源。
多节点系统通常采用系统管理中断体系结构,在此称为系统管理中断或SMI。当将中断矢量写入到SMI寄存器时,产生SMI中断。随后,该中断由SMI中断处理器处理。
发明内容
在一个方面中,本发明提供了多节点系统中的节点分离,包括:由多节点系统的一个特定节点的中断处理器来检测中断;以及进入中断处理器以处理中断。在确定该中断表明要从多节点系统中分离该特定节点后,该方面还包括:在一个具有可用存储器的不同的节点处透明地接管(host)该特定节点的正在使用的存储器,从而将对该正在使用的存储器的后续引用透明地解析给该不同的节点;以及随后,在不退出中断处理器的情况下从多节点系统中分离该特定节点。
在该方面中,该透明地接管的步骤优选地进一步包括步骤:将正在使用的存储器的内容复制到该不同的节点;创建该特定节点处的正在使用的存储器的位置与该不同的节点处的所复制的内容的新位置之间的映射,其中该映射使得可以对后续引用进行透明的解析;将该特定节点处的未使用的存储器标记为不可用;以及将该不同的节点处的新位置标记为不可用。
在另一方面中,本发明提供了包括多个互连的节点的多节点系统中的节点分离,其中每个节点具有与其相关联的用于检测和处理中断的中断处理器。该方面优选地包括:由与一个特定节点相关联的中断处理器来检测中断;进入中断处理器以处理该中断;以及响应于确定该中断表明需要从多节点系统中分离该特定节点而非破坏性地分离该节点。
在该方面中,该非破坏性的分离进一步包括:将该特定节点的正在使用的存储器的内容复制到具有可用存储器的一个不同的节点;创建该特定节点处的正在使用的存储器的位置与该不同的节点处的所复制的内容的新位置之间的映射,其中该映射使得可以对对该正在使用的存储器的后续引用进行透明的解析;将该特定节点处的未使用的存储器标记为不可用;将该不同的节点处的新位置标记为不可用;以及随后,在不退出中断处理器的情况下从多节点系统中分离该特定节点。
前述内容是一个概要,并因此必然包含了简化、广义性和对细节的省略,因此,本领域的普通技术人员将意识到,该概要只是说明性的,并且并非旨在以任何方式进行限制。在以下阐明的非限制性详细描述中,如所附权利要求所限定的本发明的其他方面、创造性特征和优点将变得明显。
下面将参考以下附图对本发明进行描述,其中在整个说明书中,相同的参考标号表示相同的单元。
附图说明
图1说明了多节点系统。
图2和图3提供了描述在实现本发明的优选实施例时可以使用的逻辑的流程图;并且
图4(包括图4A-图4C)说明了示出可以如何在多节点系统的不同节点上透明地接管来自已分离的节点的存储器内容的示例性场景。
具体实施方式
优选实施例针对在多节点环境中(例如响应于错误情形)动态地分离一个或多个节点。采用在此公开的技术,可以将节点分离而不会对操作系统或其他节点产生不利的影响。这种节点分离操作可以称为热分离,也就是说,其动态地发生,同时整个系统继续运行。例如,可以由于节点发生故障而执行节点分离。多节点系统的每个节点贡献可在任意特定时间点上被其他节点共享的存储器。如果当前存储于被分离的节点的存储器中的内容恰好在节点分离期间消失,则系统将很有可能因此而崩溃。此外,丢失存储器内容有可能导致不可预测的结果。为避免这种不期望的情形,将被分离的节点的正在使用的存储器的内容复制到另一节点,并对存储器映射进行更新以使得这种复制对于操作系统透明以便进行后续的存储器访问。此外,程序化地锁定要复制到的存储器位置,以防止意外地覆盖该复制。
图1说明了包括两个节点100、150的多节点系统。如前所述,这些节点中的每个节点可以包括多个处理器。在图1中以参考标号105、155示出这些处理器。在图1中将由每个节点贡献的存储器描述为主存储器125、175以及备用存储器135、185。每个节点中的存储控制器130、180在节点的存储器与节点100、150的其他组件之间提供了接口。
所谓的北桥组件115、170可以存在于每个节点中。北桥组件存在于通常称为北桥、南桥的芯片组体系结构中。在这种体系结构中,北桥组件通过总线(见图1中的参考标号108、158)与处理器105、155进行通信并典型地控制与存储器、高级图形、高速缓存以及外围组件互连(PCI)总线的交互。总线108、158通常称为前侧总线。图1中未示出的南桥通常负责输入/输出(I/O)功能,诸如串行端口I/O、音频、通用串行总线(USB),等等。
本发明的实施例不限于这种北桥、南桥芯片组,并且因此图1中的描述应当解释为说明性而非限制性的。
可扩展性芯片120、165包括一个或多个控制域,并且被优选实施例调整为使得信息可以在多节点系统的节点100、150之间传送(下面将对此进行详细描述)。
多节点系统的每个节点还包括SMI中断处理器110、160。如前所述,当产生SMI中断时,这些SMI中断由SMI中断处理器处理。
现有技术的多节点系统的一个缺点是,不存在关闭单一节点而不关闭操作系统和多节点系统中的其他节点的方法。例如,会导致特定节点应当被从多节点系统中分离(即停止参与到该多节点系统中)的多种错误情况中的任意错误情况都有可能发生在该特定节点处。这些错误情况包括(仅作为说明)检测到该节点过热或者检测到该节点正经历存储器泄漏。由于仅属于单独的一个节点的情况而关闭整个多节点系统的缺点包括降低系统可用性和减小系统吞吐量。
只要任意一个节点接收到SMI中断,现有技术的多节点系统就在所有节点处同步地进入系统管理模式或SMM。在这种模式下,当SMI中断处理器评估中断以尝试确定其原因的同时,所有节点处的常规处理都会停止。如果错误是灾难性的,则SMI处理器将典型地产生机器检查,强制性地对所有节点进行重新引导。然而,在很多情况下,引起中断的事件不必影响其他节点。在这些情况下,对这些节点进行重新引导不必要地浪费了实现和资源。
本发明的优选实施例使得节点处的SMI中断处理器能够独立地操作,从而能够以非破坏性的方式从多节点系统中分离个别的节点。采用在此公开的技术,待分离的节点的处理器在该节点的SMI中断处理器的控制下进入系统管理模式,同时其他节点上的处理器继续常规的操作。特别地,在对被分离节点进行分离之后,其他节点可以继续运转,并且可以将被分离节点处的正在使用的存储器资源透明地映射到不同的存储器位置,使得执行组件不会失去对来自被分离的节点的存储器内容的访问途径。
现有技术的多节点系统中的SMI中断典型地通过将节点连接在一起的互连传播到每个节点的SMI处理器。因此,在这些系统中,影响一个节点的SMI中断会影响所有节点,使得它们全都停止常规的处理并进入它们的中断处理器。这是低效的并且有可能对整个系统产生不期望的影响。如前所述,优选实施例调整节点中的可扩展性芯片,以禁止SMI中断在这些节点之间传播,从而提供了针对SMI中断处理的节点独立性。因此,由本发明提供的热分离操作可以是孤立的,以便分离单一的节点。
现在参考图2,其中提供了流程图,以说明在实现优选实施例时可以使用的逻辑。如在图2的方框200处所示,在可扩展性芯片中设置控制域,该控制域禁止SMI中断在节点之间传播。优选地,在对节点进行加电时设置该控制域。随后,该节点等待对SMI中断的检测(方框205)。
当一个节点检测到已经产生SMI中断时(方框210),仅该检测节点的中断处理器会参与进来。一旦被调用(方框215),该SMI中断处理器就评估该中断以确定该中断是否表明该节点需要从系统中分离(方框220)。
如果方框220中的测试具有肯定的结果,则在方框225处,中断处理器优选地使用共享存储器结构向在此称为后台程序(daemon)的在操作系统的控制下运行的存储控制器发送消息。该消息通知该后台程序该节点将要分离。在该节点用信号通知该后台程序之后,该节点随后退出其SMI中断处理器(方框230),并且该后台程序处理节点分离操作(如以下参考图3所讨论的)。
一旦该后台程序已经结束,其就产生对本地节点的另一SMI中断。被分离节点在方框210处检测到该中断,并且在方框215处再次进入该中断处理器。这一次,方框220中的测试具有否定的结果,并且处理继续到方框235,方框235进行测试以观察该中断是否为来自后台程序的、用信号通知被分离节点该后台程序已经结束分离处理的“后台程序结束”信号。
如果方框235中的测试具有肯定的结果,则控制到达方框240,其中被分离节点的SMI中断处理器不进行进一步处理,并且特别地,不会退出。因此,有效地从系统中移除了该节点(尽管如以下参考图3所讨论的,该节点的存储器的内容在所复制到的位置上仍然可用)。
尽管可以正确地将很多SMI中断隔离到单一节点,但仍然可以存在其他的场景,其中一个节点产生一个应当在各节点之间传播以防止系统进行错误操作的SMI中断。为考虑节点检测到一个应当在各节点之间传播的SMI中断的场景,优选实施例实现了现在将参考图2B而描述的逻辑。当方框235中(以及方框220的现有技术测试中)的测试具有否定的结果(即所检测到的中断不是来自后台程序的信号,并且不是节点分离中断)时,控制到达方框245。方框245测试这是否是应当传播到其他互连的节点的中断。
如果方框245处的测试具有否定的结果,则在方框210处检测到的中断是需要由本地节点只采用不构成在此公开的发明概念的一部分的技术来处理的中断(方框250)。在完成该处理之后,控制返回到方框205以等待该节点处的下一次SMI中断。
当控制到达方框255时,已经检测到需要从本地节点传播到其他互连的节点的中断。因此,在方框255中,(再次)启用SMI中断传播。这优选地包括重新设置可扩展性芯片中的控制域并对其他节点的SMI中断处理器用来与该节点进行通信的共享存储器区域进行初始化。随后,本地节点强制性地使软SMI中断情况发生(方框260)。触发该中断使得在方框210处检测到的中断从本地节点传播到互连的节点。作为结果,这些节点中的每个节点将检测到该中断并随后进入它们的SMI中断处理器。这些SMI中断处理器将向共享存储器区域查询中断的原因,并且随后会根据它们的配置采取适当的措施。结束对该中断的处理的每个节点将状态记录在共享存储器区域中以表明对该中断的处理已结束。如在方框265中所示,本地节点也可以采取措施以本地地处理该SMI中断。
随后,本地节点监控共享存储器区域(方框270)以确定其他互连的节点是否已经结束它们对所传播的中断的处理。如果所有节点都已经结束该处理,则方框275处的测试具有肯定的结果,并且控制优选地返回到方框200,其中本地节点再次禁用SMI中断传播并等待后续中断。否则,当方框275处的测试具有否定的结果时,在方框270处,本地节点继续监控共享存储器区域。
现在转向图3,此时将描述在节点分离期间实现后台程序的处理时可以使用的逻辑,其中被分离节点的当前使用的存储器将由不同的节点接管。使用后台程序来执行分离处理使得本地(即被分离的)节点减少了在其中断处理器中耗费的时间。(作为替代,被分离节点的SMI中断处理器可以执行图3中示出的处理。然而,有可能发生的情况是,在发生存储器复制操作的同时,操作系统有可能需要访问被分离节点的存储器,并且如果该节点的SMI中断处理器执行了存储器复制,则该存储器对于操作系统将不可用,原因是该节点处于其中断处理器中。这将很有可能使系统关闭,或使系统闲置,这两种情况都是不期望的。)
当后台程序检测到节点已经用信号通知其执行节点分离(方框300)时,其确定在被分离节点处当前有多少存储器正在使用(方框305)。随后,该后台程序在多节点系统中的其他节点上搜索可用的存储器(方框310)。优选地,这包括查询记录哪些存储器当前对多节点系统可用的存储器地图(memory map)。(参考图4A,其中针对假设的场景以图形方式说明了存储器地图。)随后,将被分离节点处正在使用的存储器复制到一个或多个其他节点上的可用存储器(方框315)。随后,在方框320中,后台程序创建在被分离节点上的原始存储器位置与一个或多个其他节点上的被复制到的存储器位置之间进行相关的映射(例如表或其他数据结构),使得能够将使用原始存储器位置的存储器访问透明地重定向到新的存储器位置。采用这种映射,由于新的存储器位置被映射在同一地址空间中,因此操作系统不会发现数据位置的任何改变。(也就是说,当请求来自原来由被分离节点提供的特定地址的存储器内容时,该映射使得能够以对于请求者透明的方式找到这些内容的当前位置。)
随后,将存储器地图修改(方框325)为将被分离节点上的所有当前未使用的存储器位置标记为不可用,并且(方框330)将一个或多个其他节点上的被复制到的位置标记为不可用。(参考图4C,其针对假设的场景说明了该处理的结果。)在优选实施例中,该处理包括调整本领域的普通技术人员熟知的高级配置和电源接口(ACPI)表以表明已经将存储器从系统中移除,并且该处理包括随后对物理存储器进行重新映射。(这还可以称为描述动态的ACPI存储器空洞。术语“ACPI空洞”是指表明哪些存储器对操作系统不可用的ACPI结构空间中的结构。)
最终,后台程序产生软SMI中断(方框335),从而用信号通知被分离节点该后台程序已经结束其用于对节点进行分离的操作(即存储器复制和重新映射操作已结束。)随后,该后台程序退出图3的处理。
图4A-图4C说明了示出如何可以在多节点系统的不同节点上透明地接管来自已分离的节点的存储器内容的示例性场景。该示例采用了用于双节点系统的存储器地图,但是对本领域的普通技术人员来说,显然在此公开的启示对于包括多于两个节点的多节点系统同样适用。
在图4A中,节点1贡献了地址为地址512M至地址1G的存储器。见参考标号400。在该示例性场景中,当节点1需要被分离时,当前使用的存储器包括地址768M至地址896M,这是一个128M的块。节点2贡献了地址为地址0M至地址512M的存储器,并且当节点1需要被分离时,来自节点2的当前使用的存储器包括地址0M至地址128M以及地址256M至地址384M。参见参考标号410和420。
在该示例性场景中,后台程序确定是否可以将来自节点1的所有当前使用的存储器复制到节点2的存储器的从地址128M至地址256M的连续块。因此,图4B说明了已经将来自节点1的当前使用的存储器复制到节点2的该存储器。见参考标号430。(还有可能发生的情况是,没有足够大的连续块可用于该复制存储器。在此情况下,可以将来自节点1的存储器复制到多个位置,并且随后,存储器地图会反映这些位置以使得可以透明地访问所复制的存储器内容。)图4B还说明,在物理地移动来自被分离节点的存储器内容之后,现在没有任何来自该节点的存储器(在本例中示出为地址512M至地址1G)是正在使用的。
图4C示出了用于该示例性场景的最终的存储器地图,其具有操作系统所观察到的可用或不可用的存储器。如以上参考方框325所讨论的,在分离操作期间,将当前可用的(即未使用的)所有被分离节点的存储器标记为不可用或被锁定。(这防止了其他节点尝试使用已经随着被分离节点而被移除的存储器。)对于作为分离的结果而被锁定的地址位置,见参考标号440和460。操作系统继续看到先前由节点1贡献的地址768M至地址896M是正在使用的。见参考标号450。然而,由后台程序在存储器复制操作(如参考方框315-320所讨论的)期间创建的映射透明地将引用解析给这些位置,从而作为替代,使用的是复制到节点2的地址128M至地址256M的内容。因此,操作系统所观察到的存储器地图具有被标记为锁定(并且因此不可用于分配给请求者)的节点2的地址128M至地址256M。见参考标号430。
本领域的普通技术人员将意识到,可以将本发明的实施例提供为方法、系统以及/或者包括计算机可读程序代码的计算机程序产品。因此,本发明可以采取完全软件的实施例、完全硬件的实施例或者结合软硬件方面的实施例的形式。在优选实施例中,本发明以软件实现,该软件包括(但不限于)固件、驻留软件、微代码,等等。
此外,本发明的实施例可以采取可从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该介质提供由计算机或任意指令执行系统使用或结合计算机或任意指令执行系统而使用的程序代码。出于本说明书的目的,计算机可用介质或计算机可读介质可以是包含、存储、传送、传播或传输由指令执行系统、设备或装置使用或结合指令执行系统、设备或装置而使用的程序的任意设备。
该介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或者设备或装置)或传播媒体。计算机可读介质的例子包括半导体或固态存储器,磁带,可擦除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘,以及光盘。光盘的当前例子包括压缩光盘-只读存储器(CD-ROM)、可读写压缩光盘(CD-R/W)以及DVD(数字视频光盘)。
尽管已经描述了本发明的优选实施例,但一旦本领域的普通技术人员理解了基本的发明概念,他们就可以想到这些实施例中的另外的变型和修改。因此,所附权利要求应当解释为包括优选实施例以及处于本发明的本质和范围内的所有这些变型和修改。此外,应当理解,在权利要求中使用“一”或“一个”并非旨在将本发明的实施例限制为单数的一个以此方式引入的任意单元。

用于在多节点系统中提供节点分离的方法和系统.pdf_第1页
第1页 / 共19页
用于在多节点系统中提供节点分离的方法和系统.pdf_第2页
第2页 / 共19页
用于在多节点系统中提供节点分离的方法和系统.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《用于在多节点系统中提供节点分离的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于在多节点系统中提供节点分离的方法和系统.pdf(19页珍藏版)》请在专利查询网上搜索。

在多节点系统中,可以动态地分离节点(例如响应于错误情形)而不影响操作系统或其他节点。将待分离节点处的正在使用的存储器的内容复制到另一节点,并对存储器映射进行更新以使得这种复制对于使用该存储器的组件透明。此外,程序化地锁定要复制到的存储器位置,以防止将该存储器位置分配给存储器请求者。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1