发明内容
本发明的目的是为了在故障信息系统中提供一种服务器集群自治管理,服务部署自我调度的方法,以提高系统的智能化和自动化水平。
本发明具体采用以下技术方案:
一种故障信息系统的服务和服务器智能自治的实现方法,所述方法用于服务器集群自治管理和服务部署自我调度;其特征在于,所述方法包括以下步骤:
(1)定义自治域,即以自治域划分故障信息系统中服务器,在同一个自治域内的服务器,通过自治域标识符来标识自身所属自治域,在同一自治域内的服务器可以交互沟通;
(2)确认自治域内的服务器成员以及成员的专属职责,自治域内服务器包括主服务器和专用服务器,所述主服务器充当服务受理以及服务调度协调者角色,所述专用服务器充当完成某一具体功能的服务器;
(3)在自治域内,主服务器受理服务,根据服务器列表信息,从专用服务器角色中选择对应服务的服务器,将服务拆分成服务数据元语,传递给相应的专用服务器运算并执行;
(4)所述专用服务器运算后向所述主服务器返回运算结果。
在上述步骤(2)中,还进一步包括:当主服务器无法正常工作、即心跳报文异常时,在所述自治域内进行主服务器选举,所述选举遵循以原则:
确认选举范围是在同一个自治域内部进行;
根据管理需求初始化配置服务器参数,(包括对服务器权重值的设置),自治域内只有预设权重值大于0的服务器才能进入候选名单;
服务器间以心跳报文的方式进行权重值通知;
在所有服务器都达成共识的情况下,选出权重值最高的服务器作为主服务器。在上述步骤(3)中,还进一步包括:所述主服务器通过心跳报文获取各专用服务器的状态信息,当相应专用服务器状态不正常时,所述主服务器通过服务器列表中各服务器的状态参数进行比较,根据权重值和CPU综合平均使用率参数(即服务优先值),选取次优服务器完成服务。
另外,在主服务器选举产生之后,非主服务器只与主服务器间保持心跳报文交互,而不与其他非主服务器进行心跳报文交互,此举主要目的是减少通讯过程中不必要的通讯流量。只有在选举主服务器的过程中,非主服务器间才通过心跳报文来进行投票。
以上步骤即实现服务器集群自治管理,服务自我调度。
本方法与传统的服务器集群管理以及服务调度方法相比有如下优点:
(1)实现服务器集群内部的高度自治管理,避免了大量的不必要的人为干预,提高系统的自动化水平;
(2)避免传统双机热备来保证系统中关键节点的稳定运行,本方法通过选举的方式利用系统内现有资源,防止因通讯关键节点异常导致全系统通讯瘫痪;
(3)采用智能服务迁移法,科学高效的利用系统资源,提高系统的智能化水平;
(4)具有扩展性的服务器部署方法,为兼容和扩展留有灵活的空间;
(5)通过本方法提供的部署策略和管理方式,不但提高了系统的性能同时有效的降低了系统的购置和维护成本;
具体实施方式
下面参考图1~2,具体说明本发明的实现方法。
本发明的故障信息系统的服务和服务器智能自治的实现方法,具体如下:
首先,如图3所示,定义系统运行的自治域,在同一个自治域内的服务器,通过自治域标识符来标识自身所属自治域,在同一自治域内的服务器可以交互沟通,自行协同分工。
其次,确认自治域内的服务器成员以及成员的专属职责。自治域内服务器主要有两种成员角色:主服务器和专用服务器。主服务器充当服务受理以及服务调度等协调者角色;专用服务器则主要充当完成某一具体功能的服务器;主服务器与专用服务器间是管理和被管理的关系,主服务器可以是单独的一台服务器也可以是某台权重值较高的专用服务器兼任;选举自治域中的主服务器,区分定义其他专用服务器,采用以下算法实现:
(1)确认选举范围是在同一个自治域内部进行,即部署在同一自治域内的服务器拥有同一识符;
(2)根据初始化配置的服务器参数,选择权重值大于0的服务器进入候选名单;
(3)服务器间以心跳报文的方式进行权重值通知;
(4)在所有服务器都达成共识的情况下,选出权重值最高的服务器作为主服务器;
(5)主服务器一旦选出,出于通讯稳定考虑,不轻易更换主服务器角色,即使自治域内出现权重值更高的服务器;
(6)只有当主服务器无法正常工作(心跳报文异常),自治域内才再进行主服务器选举(即使有权重值更高的服务器加入自治域);
(7)主服务器与专用服务器周期性交互自身运行状态信息;
(8)根据预先人为配置,主服务器记录每台专用服务器的专用功能;
(9)所有自治域内服务器都维护同一张服务器描述列表,其中包括服务器的名称、IP地址信息和角色信息等;
(10)新服务器加入自治域后,通过心跳广播的方式告知域内所有服务器其存在,但只有主服务器回复心跳报文的方式,告知其域内的主服务器地址。
第三,主服务器受理服务,并将服务拆分成服务数据元语(即,根据系统所提供的功能集将服务请求与数据分解成类似CPU指令的短小功能指令,通过主服务器的调度由不同服务器共同协作完成这些功能,服务和数据分解粒度的粗细则根据系统所能提供的功能集大小来进行)。主服务根据服务器描述列表以及专用服务器的状态信息,判断是否将服务请求发送到专用服务器。如果专用服务器状态不佳则选择其他次优服务器来完成该服务,即将服务从专用服务器迁移至其他次优服务器。这里有必要说明,主服务器如何进行调度迁移决策以及次优服务器的选择:
(1)主服务器被选举出来之后,其他服务器都会通过心跳报告周期性的向主服务器发送自身的信息,包括:CPU综合平均使用率、剩余磁盘空间、内存容量、权重值以及自身角色等;
(2)主服务器根据服务器列表信息,从专用服务器角色中选择对应服务的服务器;
(3)主服务器判断专用服务器的CPU综合平均使用率,若专用服务器的CPU综合平均使用率>90%,则选择其他次优服务器来替代专用服务器提供服务。服务器的选择算法如下:权重值在选择过程中占有主导地位,权重值的系数Kw设置为10,CPU的使用率的系数Kcpu设置为-0.1(多核CPU采用综合平均使用率进行计算),磁盘容量以GB为单位,考虑到磁盘容量对于服务器运算能力影响并不明显,作为辅助计算参数,该系数Km设置为0.001,通过以上系数与实际变量结合的计算如下:
Weight:权重值,服务器预设参数之一(每台域内服务器保存一张配置参数表)。该值在自治域创建之初,根据服务器性能以及管理需求对各个域内服务器进行设置,取值范围:0-100,该数值越大则服务器拥有的优先级越高(权重值最大的服务器将在系统运行之后担任主服务器角色);如果在自治域建成之后,有新服务器加入,则根据管理需求配置权重值;
CPURate:CPU使用率(或CPU综合平均使用率),计算方式如下:
CPURate=∑CPUnRate/∑n(n=1…n);
Memo:磁盘容量;
服务优先值(ServicePriVal)计算式如下:
ServicePriVal=Kw*Weight+Kcpu*CPURate+Km*Memo其中,Kw=10,Kcpu=-0.1,Km=0.001。
主服务器根据服务优先值高低来判断次优服务器的选择,服务优先值最高的服务器作为次优服务器来完成服务;
(4)如若多台服务器拥有相等的最高服务优先值,那么优先比较权重值大小,权重值大的选为次优服务器;权重如若依然相等,则继续比较CPU综合平均使用率,CPU综合平均使用率低的为次优服务器。如出现极限情况,即权重值和CPU综合平均使用率以及磁盘容量皆相同,那么将使用主服务器本身提供服务。
第四,根据主服务的调度,主服务将服务数据元语发送到相应服务器上运算并执行。
最后,返回服务结果。
如图1所示,是系统服务自我调度的流程示意图。在图1中包括以下步骤:
①确定系统的自治域范围,即该自治域内的成员,属于同一个自治域的服务器拥有相同的自治域标识符。自治域的成员有:主服务器和专用服务器;
②采用权重值优先算法选举出该自治域内的主服务器,主服务器的主要职责是进行系统服务智能调度;
③主服务器受理服务请求,并检查相应的专用服务器状态,如果专用服务器状态正常,即可以完成服务,则主服务器将拆分后的服务数据元语发送到专用服务器由专用服务器来完成服务;
④如专用服务器状态不正常,主服务器选择次优服务器,即通过服务器列表中各服务器的状态参数进行比较,选出服务优先值最高的服务器进行服务运算。当选出次优服务器之后,服务器传送服务数据元语,由次优服务器来完成服务(次优服务器可包括主服务器本身);
⑤进入服务受理状态轮询,重复③~④;如果②中的主服务器状态发生变化,则重新进行主服务器选举,主服务器选举的过程参见图2;
如图2所示,是自治域内主服务器选举过程的流程示意图。参照图2,按照上述方法所进行自治域内主服务器选举的应用步骤如下:
①在自治域内,主服务器与非主服务器间通过心跳报文来保持通讯状态。域内所有服务器都保持有全域服务器描述列表,并标示出主服务器与非主服务器等角色关系(非主服务器只与主服务器保持心跳关系);
②当发现主服务器心跳报文异常,即无心跳报文或者心跳报文发送间隔超标,则重新进行自治域内主服务器选举(全系统重新上电也需要进行主服务器选举);
③登记候选服务器,即只有权重值大于0的服务器才有权进行主服务器的竞选,而对于权重值为0的服务器,则不得参选;
④所有域内服务器通过心跳报文的方式进行竞选通知,当前自治域内权重值最大的服务器将当选为主服务器,并通过心跳报文的方式告知域内所有服务器(包括权重值为0的服务器)。当主服务器选举产生之后,所有非主服务器都需要记录新的主服务器状态,并接受主服务器的调度数据,开始接收并发送心跳报告到主服务器;
⑤考虑到通讯和应用的稳定,除非主服务器出现异常,否则即使有更高权重值的服务器加入自治域,也不进行选举。新服务器进入域后将向域内所有服务器广播心跳,通知其他服务器其存在,但只有主服务器回复其心跳报文告知其域内的主服务器地址。
综上所述,本发明旨在为故障信息系统提供一种服务器集群自治管理,服务部署智能调度的方法,其方法的具体技术方案由本发明的权利要求所限定。