用于动态分配死逻辑分区资源的装置和方法

文档序号:6381679阅读:130来源:国知局
专利名称:用于动态分配死逻辑分区资源的装置和方法
技术领域
本发明涉及数据处理,特别涉及计算机系统的共享资源分配。
背景技术
自从计算机时代来临,计算机系统已经发展成为极端复杂的器件,其可以以许多不同的配置形式出现。计算机系统典型地包括硬件(例如半导体器件,电路板等)和软件(例如计算机程序)的结合。随着半导体处理和计算机体系结构的发展推动计算机硬件性能越来越高,更加复杂的计算机软件得到发展,来利用硬件更高的性能,使得现在的计算机系统远比几年前更强大。
硬件和软件在特定计算机系统上的结合定义了计算环境。因此不同计算机硬件平台和不同计算机操作系统提供不同的计算环境。近几年来,工程技术人员认识到,通过把计算机系统资源逻辑分区为不同的计算环境,有可能在同一物理计算机系统上提供不同计算环境。IBM开发的iSeries计算机系统就是一个支持逻辑分区的计算机系统的例子。如果需要在iSeris计算机系统上进行逻辑分区,就安装分区管理程序代码(在iSeries术语中称为“系统管理程序(hypervisor)”),其允许在同一平台上定义不同的计算环境。一旦安装了分区管理程序,就能够创建定义不同计算环境的逻辑分区。分区管理程序管理逻辑分区,以在维护由逻辑分区定义的独立计算环境的同时,保证逻辑分区能够在计算机系统中共享所需资源。
包含多个逻辑分区的计算机系统通常要在逻辑分区之间共享资源。例如,具有两个逻辑分区的计算机系统可以定义为分配50%的CPU给每个分区,并分配33%的存储器给第一分区而分配67%的存储器给第二分区。一旦定义了逻辑分区并将共享资源分配给逻辑分区,每个逻辑分区充当独立的计算机系统。这样,在上述具有两个逻辑分区的单个计算机系统的例子中,这两个逻辑分区对所有实用目的来说,都似乎是两个独立而且不同的计算机系统。
逻辑分区是共享资源环境的一个特例,因为计算机系统中的资源可以在分区之间共享。当逻辑分区停止正常工作时,已知的共享资源环境中会产生一个问题。如果逻辑分区开始行为异常,则该逻辑分区有破坏共享资源的可能。为了保护共享资源不被破坏,必须由正在运行的逻辑分区来完全关闭这个死的或者说停止的逻辑分区。在很多共享资源环境中,两个逻辑分区一起组成对,每一个都监控着另一个,以确认另一个逻辑分区仍在正常运行。如果第一逻辑分区检测到第二分区停止正常工作,则第一逻辑分区执行完全关闭第二逻辑分区的功能。这种方案的问题在于,不正常的逻辑分区所占有的资源也被放弃。如果没有办法将死逻辑分区的资源动态分配给活逻辑分区,则在共享资源环境中占有资源的逻辑分区死亡时,计算机产业将继续承受资源的浪费。

发明内容
一种动态资源分配装置和方法,检测逻辑分区死亡时间,并在关闭死逻辑分区后,尝试将死逻辑分区的所有共享资源分配给活逻辑分区。这使得通过把这些资源转移给一个或多个仍然活着的逻辑分区,而在可能的情况下能够利用死逻辑分区的共享资源。以这种方式,共享资源得到最大可能的利用,而不会只是因为共享资源被死逻辑分区占有而浪费这些资源。
通过下面对本发明的优选实施例更具体地描述,本发明的上述及其它方面和优点将变得更加清楚。


下面将结合附图描述本发明的优选实施例,其中相同的标记表示相同的元素,并且图1是按照优选实施例,支持逻辑分区和动态资源分配的计算机装置的方框图;图2是展示全部处理在两个逻辑分区之间的分配的方框图;图3是展示全部存储器在两个逻辑分区之间分配的方框图;图4是现有技术方法处理死逻辑分区的流程图;图5是说明当死逻辑分区关闭时,其占有的50%的处理能力如何被浪费的方框图;图6是说明当死逻辑分区关闭时,其占有的67%的存储器如何被浪费的方框图;
图7是按照优选实施例处理死逻辑分区的方法的流程图;图8是说明当图2中的分区2关闭后,其占有的50%处理能力如何重新分配给分区1的方框图;以及图9是说明当图2中的分区2关闭后,其占有的67%的存储器如何重新分配给分区1的方框图。
具体实施例方式
根据本发明的优选实施例,当逻辑分区死亡时,动态资源分配机制在关闭死逻辑分区后,尝试将死逻辑分区占有的所有资源分配给活逻辑分区。以这种方式,死逻辑分区占有的资源不会因关闭死逻辑分区而浪费。
参照图1,计算机系统100是增强型IBM iSeries计算机系统,其代表能按照优选实施例支持逻辑分区和动态资源分配的一类合适的计算机系统。本领域的技术人员应该明白,本发明的机制和装置同样适用于任何支持逻辑分区的计算机系统。如图1所示,计算机系统100包括一个或多个处理器110、其连接到主存储器120、海量存储器接口130、显示器接口140和网络接口150。这些系统元件通过使用系统总线160互连。海量存储器接口用于将海量存储器件(例如直接存取存储设备155)连接到计算机系统100。一种特定类型的直接存取存储设备是CD RW驱动器,其能够从CD RW 195中读取数据。
主存储器120包含分区管理程序121、死逻辑分区检测器122、死逻辑分区关闭机制123、动态资源分配机制124以及两个逻辑分区125和127。分区管理程序121最好创建主分区125和一个或多个副分区(secondarypartition)127,其都是逻辑分区。主分区125最好包括操作系统126,副分区127也最好包括操作系统128。
操作系统126是业内熟知的多任务操作系统,如OS/400;然而,本领域的技术人员应该明白,本发明的精神和范围并不局限于任何一个操作系统。可以采用任何合适的操作系统。操作系统126是一个复杂的程序,其包含有低级代码,用于管理计算机系统100的资源。一部分资源是处理器110、主存储器120、海量存储器接口130、显示器接口140、网络接口150和系统总线160。每个副分区127中的操作系统128可以与主分区125中的操作系统相同,也可以是完全不同的操作系统。这样,主分区125可以运行OS/400操作系统,而副分区127可以运行OS/400的另一个实例,可能是不同的发布版本,或有不同的环境设置(例如时区)。副分区127中的操作系统128甚至可以不是OS/400,而只要与硬件兼容即可。在这种方式下,逻辑分区能够在同一物理计算机系统上提供完全不同的计算环境。
死逻辑分区检测器122检测逻辑分区125和127之一停止正常运行的时间。一旦死逻辑分区检测器122检测到死逻辑分区,就向动态资源分配机制124通知该逻辑分区已经死亡。虽然图1中只显示了一个死逻辑分区检测器122,但是在优选实施例中每个分区都包括一个死逻辑分区检测器,来监控不同逻辑分区是否正常。这样,对于优选实施例中具有两个逻辑分区的系统,每个逻辑分区具有一个死逻辑分区检测器,以监控另一个逻辑分区是否正常。死逻辑分区检测器122的一个合适的实例就是称为“Heartbeat(心跳)”的计算机程序,这是个开放源代码高度可用程序,可以从www.linux-ha.org下载。Heartbeat以特定时间间隔广播一个信号,以表明该逻辑分区仍在正常操作。如果在特定时间间隔中第一逻辑分区没有接收到来自第二逻辑分区的信号,则第一逻辑分区就知道第二逻辑分区已经死亡。
死逻辑分区关闭机制123用于关闭死逻辑分区。死逻辑分区关闭机制123的一个合适的实例是称为“STONITH”的计算机程序,其代表“Shoot The OtherNode In The Head(射向头中其它节点)”。STONITH是另一个开发源代码高度可用程序,可以从www.linux-ha.org下载。STONITH提供与硬件无关的接口来实现与硬件相关的关闭过程。
在关闭死逻辑分区之后,使用动态资源分配机制124将死逻辑分区占有的资源重新分配给活逻辑分区。当死逻辑分区检测器122向动态资源分配机制124通知一个逻辑分区已经死亡时,动态资源分配机制124就尝试将死逻辑分区的共享资源分配给活逻辑分区。在iSeries计算机系统中,动态资源分配机制124使用Java Toolbox API发送可扩展标记语言(XML)格式的消息给主分区,其在利用死逻辑分区关闭机制123来关闭这个死逻辑分区之后,将来自死逻辑分区的共享资源重新分配给活逻辑分区。以这种方式,死逻辑分区关闭时,其资源不会被浪费,因为这些资源会优选地重新分配给活逻辑分区。
图1中显示分区125和127驻留在主存储器120中。但是,本领域的技术人员应该明白,分区是除了存储器还包括其它资源的逻辑结构。逻辑分区典型地指定了一部分存储器,分配了处理器处理能力以及其它系统资源。这样,主分区125可以定义为包括两个处理器和一部分存储器120,还有一个或多个I/O处理器,其可以提供海量存储器接口130、显示器接口140、网络接口150、或者对其它I/O器件的接口的功能。副分区127可以定义为包括另外三个处理器、另外一部分存储器120、以及一个或多个I/O处理器。图1中的分区象征性地代表逻辑分区,其包括计算机系统100中除了存储器120之外的其它系统资源。还要注意,分割器121、死逻辑分区检测器122、死逻辑分区关闭机制123和动态资源分配机制124最好驻留在主分区125中,但是其也可以驻留在计算机系统100中定义的任意分区中,甚至在通过网络170连接到计算机系统100的另一个计算机系统175上。此外,虽然图1中所示的死逻辑分区检测器122、死逻辑分区关闭机制123和动态资源分配机制124是独立的,优选实施例中特别扩展出一种包括死逻辑分区检测器122和死逻辑分区关闭机制123功能的动态资源分配机制124。
计算机系统100利用了熟知的虚拟地址机制,其使得计算机系统100中的程序的运转好像只是存取单个大存储实体,而不是诸如主存储器120和DASD器件155的多个小存储实体。因此,虽然图中显示分区管理程序121以及分区125和127驻留在主存储器中,本领域的技术人员应该明白,这些项目不必同时全都驻留在主存储器120中。还应指出,这里所用的术语“存储器”泛指计算机系统100的整个虚拟存储器。
处理器110可能由一个或多个微处理器和/或集成电路构成。处理器110执行存储主存储器120中的程序指令。主存储器120存储处理器110可能会存取的程序和数据。当计算机系统100启动时,处理器110最初执行构成分区管理程序121的程序指令,从而初始化逻辑分区中的操作系统。
虽然操作系统100显示为只包含一条系统总线,本领域的技术人员应该明白,本发明可以适用于有多条总线的计算机系统上。此外,优选实施例中使用的接口(在As/400术语中称为输入/输出处理器)各自包括独立的完全编程的微处理器,用于减轻处理器110的计算密集型处理的负担。然而,本领域的技术人员应该明白,本发明同样适用于只使用I/O适配器来执行类似的功能的计算机系统。
显示器接口140用于将一个或多个显示器165直接连接到计算机系统100。这些显示器165可能是非智能(即,哑)终端或者完全可编程工作站,用于让系统管理员和用户同计算机系统100通信。然而要注意,虽然提供了显示器接口140以支持与一个或多个显示器165的通信,计算机系统100并非必然需要显示器165,因为可以通过网络接口150进行所有需要同用户和其它进程进行的交互作用。
网络接口150用于通过网络将其它计算机系统和/或工作站(例如图1中的175)连接到计算机系统100。不管计算机系统100如何连接到其它计算机系统和/或工作站,不管利用当前的模拟和/或数字技术还是通过将来的某种联网机制来建立网络连接170,本发明同样适用。此外,可以使用许多不同的网络协议来实现网络。这些协议是专用的计算机程序,其使得计算机能够通过网络170通信。传输控制协议/网际协议(TCP/IP)是一个合适的网络协议的例子。
在这一点上,重要的是要注意到虽然本发明已经并且将会继续在全功能计算机系统的设备环境(context)中描述,但是本领域的技术人员应该明白,本发明能够作为各种形式的程序产品发布(distribute),不管用于实际发布的计算机可读信号承载(bearing)介质的特定类型,本发明同样适用。合适的信号承载介质的例子包括诸如软盘和CD RW(例如图1中的195)的可记录型介质,以及诸如数字和模拟通信线路的传输型介质。
图2显示了在创建逻辑分区时,如何将计算机系统的全部处理能力分配给逻辑分区。我们假设分区管理程序121用于指定计算机系统的全部处理能力平均划分,50%分配给第一逻辑分区(分区1),50%分配给第二逻辑分区(分区2)。图3显示在创建逻辑分区时,计算机系统的全部存储器如何分配给逻辑分区。我们假设分区管理程序121用于指定计算机系统的全部存储器这样划分33%分配给分区1,67%分配给分区2。注意图2和图3中都在分区间的分割线上标有箭头,这表示这些百分比可以改变与图中所示不同。图2和图3中的特定值作为例子显示,来说明本发明的原理。
图4显示了处理死逻辑分区的现有技术方法400。逻辑分区的状态受到监控(步骤410)。如果逻辑分区没有死亡(步骤420=否),方法400返回步骤410继续监控。如果逻辑分区死亡(步骤420=是),关闭死逻辑分区(步骤430)。
图5和图6图示了关闭死逻辑分区带来的问题。如图5所示,当图4的步骤430死逻辑分区关闭时,因为占有50%处理能力的逻辑分区已经关闭了,分配给死逻辑分区的处理能力被浪费了。同样在图6中,当死逻辑分区关闭时,因为占有67%存储器的逻辑分区已经关闭了,分配给死逻辑分区的存储器被浪费了。
根据图7,方法700显示了图1中的死逻辑分区检测器122和动态资源分配机制124优选执行的步骤。根据优选实施例的方法700监控逻辑分区的状态(步骤710)。如果逻辑分区没有死亡(步骤720=否),方法700返回步骤710继续监控。如果逻辑分区死亡(步骤720=是),关闭死逻辑分区(步骤730)。然后尝试将死逻辑分区占有的资源分配给活逻辑分区(步骤740)。
图8和图9图解了在关闭死逻辑分区之后尝试将死逻辑分区占有的资源分配给活逻辑分区的效果。我们假设步骤730中将分区2占有的资源分配给分区1的尝试成功。结果是分区1此时占有其原来百分比的处理能力加上分区2过去占有的百分比。对这个两分区的例子,如图8所示,结果是分区1现在有全部处理能力的100%。同样的,图9显示分区1现在占有全部存储器的100%。图8和图9图解了本发明同图5和图6所示的现有技术之间的区别。本发明在关闭死逻辑分区后,尽可能将死逻辑分区占有的资源重新分配给活逻辑分区,从而消除了死逻辑分区所占有的资源的浪费。
需要注意图7中的步骤730“尝试”将死逻辑分区占有的资源重新分配给活逻辑分区。这个尝试成功还是失败取决于死逻辑分区的错误的严重程度。在某些情况下,动态资源分配机制不能重新分配死逻辑分区占有的一项或多项资源,但是在优选实施例中,其会尝试将死逻辑分区占有的所有资源重新分配给活逻辑分区。结果是死逻辑分区占有的可以重新分配给活逻辑分区的每一项资源都被重新分配,这样就使因关闭死逻辑分区造成的资源浪费降低到最小。
在这里大量使用了“死逻辑分区”一词。这一术语用于泛指任一个停止正常运行的逻辑分区。故障的类型并不重要。如果故障严重到有理由关闭该逻辑分区,就认为该逻辑分区是死逻辑分区。死逻辑分区可能仍在运行,也可能由于某种阻止该逻辑分区继续执行程序的错误或异常而停止了。优选实施例在关闭死逻辑分区之后,通过把死逻辑分区占有的资源重新分配给活逻辑分区,避免浪费这些资源。
本领域技术人员应该明白,在本发明的范围内许多修改是可能的。因此,尽管参考本发明的优选实施例具体地展示和描述了本发明,但是本领域一般技术人员应该明白,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以对其作各种形式和细节的改变。
权利要求
1.一种装置,包括至少一个处理器;连接到该至少一个处理器的存储器;该装置中定义的第一和第二逻辑分区,其中第一和第二逻辑分区各自占有预先定义的部分共享资源;以及驻留在存储器中并由该至少一个处理器执行的动态资源分配机制,其中,动态资源分配机制在第二逻辑分区停止正常运行时,尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区。
2.如权利要求1所述的装置,其特征在于,动态资源分配机制在尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区之前,执行关闭第二逻辑分区的功能。
3.如权利要求1所述的装置,其特征在于,共享资源包括该存储器。
4.如权利要求1所述的装置,其特征在于,共享资源包括该至少一个处理器。
5.一种装置,包括至少一个处理器;连接到该至少一个处理器的存储器;该装置中定义的第一和第二逻辑分区,其中第一和第二逻辑分区各自占有预先定义的部分共享资源;以及驻留在存储器中并由该至少一个处理器执行的动态资源分配机制,其中动态资源分配机制执行下述子步骤1)如果第二逻辑分区停止正常运行,则关闭第二逻辑分区;以及2)尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区。
6.如权利要求5所述的装置,其特征在于,共享资源包括该存储器。
7.如权利要求5所述的装置,其特征在于,共享资源包括该至少一个处理器。
8.一种用于管理计算机系统中共享资源的计算机实现方法,所述计算机系统包括各自占有预先定义的部分共享资源的第一和第二逻辑分区,该方法包括下述子步骤(A)检测第二逻辑分区停止正常运行的时间;以及(B)尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区。
9.如权利要求8所述的的方法,还包括下述子步骤(C)关闭第二逻辑分区。
10.如权利要求8所述的方法,其特征在于,共享资源包括存储器。
11.如权利要求8所述的方法,其特征在于,共享资源包括至少一个处理器。
12.一种程序产品,包括动态资源分配机制,在第二逻辑分区停止正常运行时,尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区;以及承载动态资源分配机制的计算机可读信号承载介质。
13.如权利要求12所述的程序产品,其特征在于,信号承载介质包括可记录介质。
14.如权利要求12所述的程序产品,其特征在于,信号承载介质包括传输介质。
15.如权利要求12所述的程序产品,其特征在于,动态资源分配机制在尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区之前,执行关闭第二逻辑分区的功能。
16.如权利要求12所述的程序产品,其特征在于,共享资源包括存储器。
17.如权利要求12所述的程序产品,其特征在于,共享资源包括至少一个处理器。
18.一种程序产品,包括(A)动态资源分配机制,执行下述子步骤1)如果第二逻辑分区停止正常运行,则关闭第二逻辑分区;以及2)尝试将第二逻辑分区占有的预先定义的那部分共享资源分配给第一逻辑分区;以及(B)承载动态资源分配机制的计算机可读信号承载介质。
19.如权利要求18所述的程序产品,其特征在于,信号承载介质包括可记录介质。
20.如权利要求18所述的程序产品,其特征在于,信号承载介质包括传输介质。
21.如权利要求18所述的程序产品,其特征在于,共享资源包括存储器。
22.如权利要求18所述的程序产品,其特征在于,共享资源包括至少一个处理器。
全文摘要
一种动态资源分配装置和方法,检测逻辑分区死亡的时间,在关闭死逻辑分区后,尝试将死逻辑分区的所有共享资源分配给活逻辑分区。这使得通过把这些资源转移给一个或多个仍在活着的逻辑分区,死逻辑分区的共享资源在可能的情况下能够得到利用。以这种方式,最大限度地利用了共享资源,而不会只是因为共享资源被死逻辑分区占有而浪费这些资源。
文档编号G06F9/50GK1519720SQ20041000366
公开日2004年8月11日 申请日期2004年2月5日 优先权日2003年2月6日
发明者尼古拉斯·S·哈姆, 迈卡·W·米勒, W 米勒, 尼古拉斯 S 哈姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1