无代理自动化服务器系统的制作方法_4

文档序号:9828306阅读:来源:国知局
ork implement result)
[0177] 表3.服务器B与服务器A同步的信息
[0178] 1)获取作业上下文信息。接收到来自服务器A的作业上下文信息,读入系统。 (601)
[0179] 2)将该作业以及后继作业存入作业管理DB。因为服务器B将要从作业a开始执 行整个作业流程,所以将作业a及其后的作业流程存入服务器B的作业管理DB,以便管理执 行。(602)
[0180] 3)新建作业管理进程。服务器B创建作业管理的进程。(603)
[0181] 4)与客户端建立连接。从作业上下文信息中获得客户端地址,连接协议,用户名密 码,建立SSH/WMI协议的连接。(604)
[0182] 5)将该作业的"保留"状态取消。(605)如果作业a的状态为"保留",则取消该状 〇
[0183] 6)以输出参数作为该作业的输入参数执行该作业,并同步作业开始执行时间至服 务器A。
[0184] (607)开始执行作业a,同时把管理DB中记录的作业a开始执行的时间发送给服 务器A。
[0185] 7)将该作业的"中断"状态取消,作业继续执行。(606)服务器B向客户端发送指 令,指示作业a继续执行。
[0186] 8)当该作业执行完毕后,同步作业执行结束时间和作业执行结果至服务器A。 (608)作业a执行完毕后,服务器B把管理DB中记录的作业a执行结束的时间和作业a执 行结果发送给服务器A。服务器A接收到来自服务器B关于作业执行的同步信息后,更新自 身的管理DB。
[0187] 参考图8,服务器A接收同步信息直到服务的最后一个作业执行完毕。(800)
[0188] 1)服务器A从服务器B接收作业的执行结束时间和执行结果,更新自身的管理 DB0 (801)
[0189] 2)判断当前接收到的作业是否为服务的最后一个作业,即判断后继作业是否为 空。(802)
[0190] 3)如果是服务的最后一个作业,则把该作业的执行结束时间作为服务的执行结束 时间,并且把服务状态设为执行完毕。(803)如果不是服务的最后一个作业,则继续接收作 业的同步信息。
[0191] 设有三台服务器A和B和C,配置信息如下:
[0192] 服务器 A :lCPU,4Core/CPU,8GMem。主机名 ServerA,IP 地址:192. 168. 0· 101
[0193] UUID :9ADAAB4DDAAB250
[0194] 服务器 B :2CPU,4Core/CPU,16GMem。主机名 ServerB,IP 地址:192. 168. 0· 102
[0195] UUID :B2FCDCFBFCDCBAB5
[0196] 服务器 C :2CPU,4Core/CPU,8GMem。主机名 ServerC,IP 地址:192. 168. 0· 103
[0197] UUID :0638C03038C02093
[0198] 实施例1 :A处于作业执行中,B和C处于无任何额外程序运行的空闲状态。之后 服务器A由于负荷过高,采取负荷分散将作业管理权交给其他服务器。
[0199] 1.服务器A开启检测,得到服务器状态信息表,如表4所示
[0201] 表4.服务器A的状态信息表
[0202] 服务器B和C开启检测,同样得到如上的服务器状态信息表,只是记录顺序和活动 区分略不同,其他字段一样。
[0203] 2.负荷分散,分为两种情况:
[0204] 1)服务器A产生等待队列
[0205] 参考图9,举例来说,服务器A的最大同时执行作业数为5。然而,服务器A的最大 同时执行作业数可以是任意数目,而并不局限于本实施例中具体列举的数目。如图9所示, 服务1~5开始在tl时刻同时启动执行,首先执行al~a5,为简化流程,在本实施例中,每 个作业执行所需时间相同。然而,各个作业执行所需时间可以是不同的,且并不局限于本实 施例。作业al~a5在t2时刻执行结束,并开始执行bl~b5的作业。然而,服务4中b4 开始执行的同时,因为作业的逻辑关系,d4也开始执行,此时由于最大同时执行数为5的限 制,服务5中的b5不得不进入等待队列。因此服务器A在下一个检测时刻,服务器状态信 息表中服务器A记录的负荷信息*等待队列由O变为了 1。
[0206] 服务器A读取本机的服务器状态信息表,发现等待队列中的作业b5,立刻将b5的 状态设为"保留",并转入待移交队列。
[0207] 服务器A读取本机的服务器状态信息表,从备选服务器B和C中挑选移交对象。如 表4所示,虽然服务器C的CPU使用率不高于服务器B的CPU使用率,但服务器B的内存可 用数高于服务器C,则确定把服务器B作为移交对象。
[0208] 服务器A作成作业b5的作业上下文信息,如表5所示。
[0210] 表5.作业b5的上下文信息
[0211] 该表中,前任作业输出参数为paral和para2,后继作业为c5,执行作业b5的客户 端B的IP地址为192. 168. 0. 201,协议种类是SSH,连接的用户名密码是admin/passAdmin。
[0212] 服务器B接收作业b5的上下文信息,把作业b5和作业c5存入服务器B的管理DB 中,随后新建作业管理执行进程,与客户端B建立SSH连接,下发作业b5的脚本连同a5的 输出参数paral和para2给客户端B,同时在管理DB中将b5的"保留"状态取消,b5开始 执行。此时服务器B的管理DB中记录了 b5开始执行的时刻,服务器B把这个更新信息发 送给服务器A。待b5执行结束,服务器B的管理DB又会记录b5结束执行的时刻,服务器B 又把这个更新信息连同b5执行完毕的结果发送给服务器A。服务器A接收到b5的同步信 息,立刻更新自身的管理DB。
[0213] 服务器B执行完作业b5后,继续执行作业c5 (于客户端C),同理同步信息给服务 器A。待c5执行完毕后同样把结束信息同步给服务器A。服务器A收到后判断c5是服务5 的最后一个作业,于是把c5执行结束时间设为服务5的执行结束时间,并且把服务5的状 态设为执行完毕。
[0214] 2)服务器A资源负载过高
[0215] 参考图10,举例来说,服务器A的最大同时执行作业数为5。然而,服务器A的最 大同时执行作业数可以是任意数目,而并不局限于本实施例中具体列举的数目。如图10所 示,服务1~5开始在tl时刻同时启动执行,首先执行al~a5,为简化流程,在本实施例中, 每个作业执行所需时间相同。然而,各个作业执行所需时间可以是不同的,且并不局限于本 实施例。作业al~a5在t2时刻执行结束,并开始执行bl~b5的作业。然而,在bl~b5 开始执行一段时间后的t21时刻,服务器A上新开始执行进程p,进程p为高耗资源进程, 如启动一个虚拟机。故服务器A的CPU和内存的使用率上升至80%,超过用户所设阈值的 75%,需要将服务1~5正在执行的作业bl~b5中选出一个作业,将其管理执行权移交给 其他服务器。
[0216] 对于作业bl~b5,在本实施例中,举例来说,均为相同作业(即执行平台,执行 step数,执行时间相同)。然而,作业bl~b5可以是不同的作业,且并不局限于本实施例。 但b5的后继作业长度为2 (c5, d5),所以确定b5为待移交作业,转入待移交队列。同时将 b5的状态设为"中断",此时服务器A会发送中断指令给客户端B,客户端B中断执行作业 b5〇
[0217] 服务器A读取本机的服务器状态信息表,从备选服务器B和C中挑选移交对象。如 表4所示,虽然服务器C的CPU使用率不高于服务器B的CPU使用率,但服务器B的内存可 用数高于服务器C,则确定把服务器B作为移交对象。根据服务器状态信息表确定服务器B 为移交对象。同时服务器A会把服务器B的认证信息(如IP地址)通知客户端B。
[0218] 如表6所示为示例的服务器A作成作业b5的作业上下文信息。
[0220] 表6.作业b5的上下文信息
[0221] 该表中,前任作业输出参数为空,因为作业b5已然在客户端B中执行,故不需要输 出参数作为b5
[0222] 的输入参数。后继作业为c5和d5,执行作业b5的客户端B的IP地址为 192. 168. 0. 201,协议种类是SSH,连接的用户名密码是admin/passAdmin。
[0223] 服务器B接收作业b5的上下文信息,把作业b5和作业c5和作业d5存入服务器 B的管理DB中,随后新建作业管理执行进程,与客户端B建立SSH连接。服务器B将b5的 "中断"状态取消,同时发送恢复执行的指令给客户端B。因客户端B先前得到来自服务器A 关于移交对象服务器B的信息,所以接受来自服务器B的恢复指令,作业b5继续执行。待 b5执行结束,服务器B的管理DB又会记录b5结束执行的时刻,服务器B又把这个更新信息 连同b5执行完毕的结果发送给服务器A。服务器A接收到b5的同步信息,立刻更新自身的 管理DB。
[0224] 服务器B执行完作业b5后,继续执行作业c5 (于客户端C),作业d5 (于客户端D), 同理同步信息给服务器A。待d5执行完毕后同样把结束信息同步给服务器A。服务器A收 到后判断d5是服务5的最后一个作业,于是把d5执行结束时间设为服务5的执行结束时 间,并且把服务5的状态设为执行完毕。
[0225] 实施例2 :A和B和C均处于作业执行中。之后服务器A由于负荷过高,采取负荷 分散将作业管理权交给服务器B。服务器B在执行剩余作业时又遇到自身负荷过高,继而把 剩余作业再次转交给其他服务器。
[0226] 1.服务器A开启检测,得到服务器状态信息表
[0228] 表7.服务器A的状态信息表
[0229] 服务器B和C开启检测,同样得到如上的服务器状态信息表,只是记录顺序和活动 区分略不同,其他字段一样
[0230] 2.负荷分散,分为两种情况:
[0231] 1)服务器B再次转交的对象为服务器A
[0232] 参考图11、13和14,举例来说,服务器A、B和C的最大同时执行作业数为5。然 而,服务器A、B和C的最大同时执行作业数可以是任意数目,而并不局限于本实施例中具体 列举
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1