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

文档序号:9828306阅读:来源:国知局
每次检测值的平均值, 作业队列和执行队列每隔10分钟检测更新一次。
[0104] 2)将获得的本服务器的状态信息存入本地数据库表(202)
[0105] 在管理模块的服务与作业管理DB中建立一张服务器状态信息表,将上一步所取 得的本服务器状态信息存入该表。每一次获得新的信息都会覆盖旧有信息。
[0106] 3)检测同一局域网的其他服务器并读取其他服务器的状态信息(203)
[0107] 检测同一网域,与其他服务器通过SSH或者WMI协议建立连接(SSH和WMI协议是 Linux/Unix和Windows操作系统固有的组件),通过远程连接读取其他服务器在服务器状 态信息表里记录的本服务器状态信息(主机UUID,主机IP地址,主机名,活动区分,负荷信 息,更新时间)。其中主机UUID是唯一区分主机的标识信息,活动区分意为该主机是否处于 开启状态,负荷信息包括CPU使用率,内存使用率,等待队列,执行队列四个。更新时间表示 最近一次以上信息更新的时间。
[0108] 其中主机UUID第一次读取到信息(即建立一条记录)以后就不再做更新,同理主 机CPU和主机内存也只做一次读取,因为该信息均为静态信息。主机IP地址和主机名以及 活动区分每隔24小时读取更新一次,因为该信息相对静止。CPU和/或内存使用率以及作 业队列执行队列则每隔10分钟读取更新一次。
[0109] 4)将获得的其他服务器的状态信息存入本地数据库表(204)
[0110] 将上一步所取得的其他服务器的状态信息存入步骤2)所建立的表。每一次获得 新的信息都会覆盖旧有信息。
[0111] 2.执行服务和作业(图3)
[0112] 参考图3,该过程是服务和作业管理模块管理在客户端上执行作业过程。
[0113] 管理模块(3100)中有服务和作业管理DB (3110),脚本池(3120),作业调度模块 (3130)。服务由多个作业按照一定顺序关系串联或者并联构成,每个作业都有挂接的脚本 或者命令,脚本或者命令的信息放置于脚本池。作业调度模块从服务和作业管理DB以及脚 本池中获得作业执行所必要的信息,与客户端(3200)通过SSH或者WMI协议建立连接,并 把脚本和命令信息(3210)通过连接下发客户端,客户端接收到来自作业调度模块的指令 后立刻建立一个作业执行进程(3220),执行下发过来的脚本和命令。客户端执行结束之后 将结束信号发送给作业调度模块,获得作业调度模块的反馈后撤销作业执行进程,同时删 除脚本,从而完成一个作业的执行。
[0114] 3.判断本服务器负荷状况(400)
[0115] 参考图4,该过程根据本服务器检测到的负荷信息来决定是否需要负荷分散,并且 确定需要负荷分散的作业对象。
[0116] 1)读取本服务器的负荷信息(401)
[0117] 每隔10分钟读取一次服务器状态信息表中关于本服务器的负荷信息。
[0118] 2)判断等待队列中是否有作业(402)
[0119] 根据获得的负荷信息中的等待队列数,如果等待队列数不为零,则表明等待队列 中有作业存在,需要将这些作业的管理权移交给别的服务器执行。反之则表明没有作业处 于等待,返回至下一次读取服务器负荷信息(401)
[0120] 3)将等待队列中的所有作业转入待移交作业队列并将作业状态设为"保留"(403)
[0121] 如果等待队列中有作业存在,则将所有作业都转入待移交队列,同时把作业的状 态设为"保留"。作业的"保留"状态意味着尚未被执行的作业即使到了执行时间也不会被 执行,服务执行在该作业的这一步暂停。
[0122] 4)判断CPU或者内存使用率超过阈值(404)
[0123] 根据获得的负荷信息中的CPU和内存的使用率,如果CPU或者内存的使用率超过 预设的阈值,则表明本服务器目前负荷过大,需要立刻将执行中的作业的管理权移交以保 证当前作业的顺利执行。反之则表明目前服务器负荷正常,不需要负荷分散。
[0124] 5)将执行中的一个作业转入待移交作业队列并将作业状态设为"中断"(405)
[0125] 如果系统负荷过高,则需要将当前执行中的一个作业转入移交队列,同时把作业 的状态设为"中断"。该作业为当前众多并行执行的作业中选取的一个最有"移交价值"的 作业。选取的标准有两个:作业重要程度,后继作业的长度。作业的"中断"状态意味着执 行途中的作业被暂停,等待状态的改变以继续执行。
[0126] 作业的重要程度:
[0127] 从作业的各种属性以及作业执行的时间段,频率来综合考量其重要程度,重要程 度越高,"移交价值"也越高。
[0128] 优先顺序:
[0129] 客户端执行平台为Linux大于客户端执行平台为Windows
[0130] 脚本step数大大于脚本step数小
[0131] 作业执行时间为核心工作时间大于作业执行时间为非核心工作时间
[0132] 作业执行频率,年执行大于月执行大于周执行大于日执行
[0133] 后继作业的长度:
[0134] 从该作业后面的作业队列数来判断,队列数越长,该作业的"移交价值"就越高。
[0135] 4.实施负荷分散(500)
[0136] 参考图5,该过程将待移交队列里的作业的管理权分散至其他服务器。
[0137] 1)读取待移交队列里的作业(501)
[0138] 读取(400)里所得到的待移交队列里的作业
[0139] 2)查询服务器状态信息表以确定移交的目标服务器B(502)
[0140] 查询本服务器上的服务器状态信息表,选择性能最为强大,负荷最小的服务器 (记为服务器B)。选择标准有两个:性能,负荷值。
[0141] 性能:CPU个数,核数,主频,物理内存总数
[0142] 负荷:CPU和内存的使用率,等待队列,执行队列
[0143] 比较方法:确认执行队列中的作业个数,选取执行中的作业个数小于最大数5且 数字最小的服务器。当执行中作业个数一样时,则计算服务器的空余处理能力,公式为: [0144] CPU处理能力:CPU个数*核数*主频* (ι-CPU使用率)
[0145] 内存处理能力:物理内存总数*(1_物理内存使用率)
[0146] 鉴于无代理自动化服务器在客户端执行作业对内存要求较高,优先比较内存处理 能力。
[0147] 3)将需要移交的作业的上下文信息发送给服务器B (503)
[0148] 参考如下表2,作业上下文信息包括
[0149] 1)移交源信息 1-IP 地址(IP Address of original host)
[0150] 2)移交源信息 2_ 主机名(Name of original host)
[0151] 3)待移交作业(Job need shift)
[0152] 4)前任作业输出参数(Output of predecessor)
[0153] 5)后继作业(List of successor)
[0154] 6)控制信息 I-客户端 IP 地址(IP Address of implement client)
[0155] 7)控制信息 2-协议种类(Protocol of connection)
[0156] 8)控制信息 3_ 访问的用户名 / 密码(Username/password of connection)
[0157]
[0158] 表2.作业上下文信息
[0159] 参考图7,该步骤的具体流程如子流程服务器A移交管理权(700)所示
[0160] 1)读取待移交队列中的一个作业(701),记为作业a
[0161] 2)根据该作业的状态分为两条处理路线:作业状态为"保留"(702),作业状态为 "中断"(703)。
[0162] 3)作业状态为"保留"时,从作业管理DB中获取该作业的前任作业(704)。作业 管理DB记录着该服务器上所有服务与作业的信息和状态。
[0163] 4)判断前任作业是否空(706)。
[0164] 5)如果前任作业为空,获取服务的输入参数(708)。前任作业为空意味着作业a 是该服务的第一个作业,作业a的输入参数就是服务的输入参数,则获取服务的输入参数 作为作业a的输入参数。如果前任作业不为空(707),则获取前任作业的输出参数,作为作 业a的输入参数。因为作业a最初是来自于等待队列,其前任作业必然处于完成状态,因此 前任作业已经产生了输出参数。
[0165] 6)作业状态为"中断"时,将管理权的变更通知作业a的客户端(705)。因为作业 在客户端执行途中被中断,管理权转变之后由服务器B恢复作业在客户端的执行,客户端 需要知道这一转变才能够正确接收来自服务器B的指令。
[0166] 7)从作业管理DB中获取所有后继作业的信息(709)。作业a及其所有后继作业 的管理权都将移交,以切实减轻服务器A的负荷。
[0167] 8)将上述上下文信息传递给目标服务器(710),记为服务器B。移交源信息包含服 务器A的IP地址和服务器A的主机名,这个信息需要告知服务器B以便服务器B恢复作业 执行后与服务器A作信息同步。待移交作业,前任作业输出参数,后继作业保证了服务器B 能够顺利执行作业a及其之后作业。控制信息包含客户端的IP地址,协议种类,以及连接 用的用户名密码,服务器B接管作业管理权之后根据这些信息与客户端建立连接。
[0168] 9)循环读取下一个待移交的作业(711)。
[0169] 5.作业继续执行并同步结果(600)
[0170] 参考图6,服务器B接收到来自服务器A的作业上下文信息,新起管理进程以恢复 作业在客户端的执行,并且将作业执行结果和服务器A进行同步。
[0171] 参考如下表3,同步的信息包含
[0172] 1)作业名(Job name)
[0173] 2)作业开始执行时间(Work start time)
[0174] 3)作业结束执行时间(Work end time)
[0175] 4)作业执行结果(W
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1