原 文:http://publibfp.dhe.ibm.com/epubs/pdf/e0z3n110.pdf P40
作 者:JESSIE YU,HORST SINRAM,KARLA ARNDT
适宜读者:(一年及以上主机经验)
背景知识:(z/OS、WLM、XES、XCF相关知识)
IBM z/OS V2R2基于健康检测路由技术的动态工作负载路由增强功能,通过检疫隔离一台有“跛子”(有病但还没有死掉)服务器,并重新将工作负载路由到健康的后台服务器,从而降低由于中间件服务器的健康问题对于业务造成的影响。
图1. z/OS HBR总览结构图
在过去,独立的子系统已经做了很多重要的工作来避免暴雨排水管的应用场景,在这样的场景中,一台不健康的服务器不会处理任何工作,这样就导致许多处理能力被空置出来,如果仅仅基于考虑处理能力来路由工作负载,会将更多的负载吸引到一台坏掉的服务器上。基于以上问题所做的改进,现在的HBR进入更深一步的研究,提供了一个更加宽泛的解决方案,可以快速并智能地动态路由耦合系统的工作负载,从而避免了不健康或是没有响应的服务器。
你可以在耦合系统中建立动态工作负载路由,通过使用工作负载管理(WLM)服务获取信息,并根据需要将工作负载发送到哪个系统或是服务器地址空间的建议采取行动。WLM会返回一个适合工作的服务器列表,包括一个相对权重表明发送到各自服务器请求的相对数量。通过IWM4SRSC和IWMSRSRS两项先进的服务,你可以设定FUNCTION=SPECIFIC来返回权重值,这些值基于像CPU使用率、目标达成率、异常事务率等因素。
这些服务返回的建议可以通过各个服务返回的服务器健康值来进一步优化。当服务器的健康值小于100(最优健康值)降低路由建议的权重。使用服务器的健康值允许服务器将健康状态反馈给WLM,这样那些不是很健康的服务器得到相对较少的工作。例如,IBM DB2数据分发设备和耦合系统分发器可以使用这些服务影响工作负载的路由。
WLM健康服务
在z/OS V2R2之前,提供WLM健康服务的程序模块仅仅是一个组件,通常是服务器自身将健康情况提供给一个既定的地址空间。在z/OS V2R2我们介绍了相互指责的概念,允许多个内部和外部组件上报服务器的健康状况。例如,加强的IWM4HLTH服务使得多个报告者都可以上报一台服务器的健康状况,确定它们自身并对它们的健康评级给出原因。来自不同报告者的健康评级被独立跟踪,对于工作负载路由,当前所有健康评级最低的将起作用。
XCF报告耦合系统成员的健康状况
大多数中间件产品开发跨系统耦合设备(XCF)和跨系统扩展服务(XES),这些服务的开发者已经可以检测问题,由此使他们成为该项最新指责功能的绝佳候选人。
例如,XCF信号被子系统、z/OS内部组件还有与耦合系统通信的供应商产品广泛使用。一个XCF组成员可以向其他组成员发送接收消息。每一条消息占用一定缓存,直到它被接收方处理后才会被释放。但是如果接收方无法快速处理接收的消息,溢出缓存的条件就会触发,影响接收系统、发送系统,甚至有可能整个耦合系统。XCF已经检测到这个条件并采取了适当的措施解决它。但是现在的z/OS V2R2,XCF也可以使用加强的IWM4HLTH服务来降低与患病成员对应的地址空间的健康值。如果在这个地址空间里有多个成员,XCF会将该地址空间的所有成员的健康值取平均分上报给WLM。
XCF根据被主体成员使用的XCF服务返回的数据确定一个地址空间的健康分,对于各项服务,XCF考虑以下因素:
- 相关用户的退出程序是否已暂停
- 工作队列的深度
- 暂停的持续时间
- 最近的进展如何
当XCF检查出问题,它会从该地址空间的健康值中扣除一些分值,问题持续时间越久,XCF扣除的分值越多,只有当健康值有变动,XCF才会唤醒IWM4HLTH服务。
XES报告连接器的健康状况
XES服务允许子系统、系统产品,还有运行在并行耦合系统上的授权应用通过使用耦合设备(CF)结构体实现数据共享。一个应用必须第一时间连到结构体上,实现对结构体数据的读写。
一些CF结构体相关的处理过程,比如结构体的重建和用户同步点,都需要协调该CF结构体的所有连接器的处理流程。每个事件XES都会与连接器通信,期待得到响应。如果连接器未能及时地做出响应,处理过程会在等待响应的时候中止。拖延期间结构体不可用,这就会导致耦合系统会大范围患上类似疾病。XES已经与这些中止连接器进行了通信,并检测到了中止的条件。
如今的z/OS V2R2,XES也可以使用加强的IWM4HLTH服务来降低与患病连接器对应的地址空间的健康值。如果在该地址空间里有多个连接器,XES会将该地址空间里的所有连接器的健康分取平均设为健康值。只有当健康值有变动,XES才会唤醒IWM4HLTH服务。
一个连接器可能有多个未处理的监控事件的响应,每一个未处理的响应由一个监控块所呈现,并且根据该响应未处理的时间来确定它自己的健康分,而与连接器相关的所有监控块的最低分即是该连接器的得分。
WLM的IWM4QHLT服务允许应用回溯一台或多台服务器的健康信息,返回每个提供者当下和最近的健康评级,补充了获取服务器健康信息的多元化方法。
服务器健康系统集成了运行时诊断(RTD)和预测性故障分析(PFA)
运行时诊断是一个实时诊断工具,你可以在考虑到你的系统存在问题时使用它。它提供了八种分析类型的诊断信息,并在z/OS V2R2中加强了对于外部服务器健康问题的诊断。
在z/OS V2R2上,当你发出f hzr,analyze命令,运行诊断会唤醒IWM4QHLT服务。如果任何一台服务器当前的健康值低于100,它会将SERVERHEALTH事件连同它发现的任何其他事件显示在输出里。
作为附加的功能,当预测性故障分析(PFA)确定检查到的当前值太低了,一些PFA检查会唤醒运行时诊断服务。当有任何一台服务器的当前健康值低于100时,运行时诊断服务会将最新的SERVERHEALTH事件返回给PFA,该事件也会被放到PFA检查的异常报告里。
在z/OS V2R2最新的HBR功能里,XCF和XES会将暂停的成员和中止的连接器报告给WLM。WLM根据这些最新的健康数据将相对较低的权重值赋给患病的服务器,相应地可以帮助像耦合系统分配器这样的路由器通过使用WLM权重,将工作负载路由给健康的服务器,从而远离患病的服务器。除此之外,运维人员也可以使用运行时诊断服务的结果来查看哪台服务器患病了,谁设置了它们的健康值,还有它们被设置的原因。这些新的HBR功能只是用来改善动态负载路由决策所提出的解决方案中的几种,我们也将继续提出更多新的解决方案来提升系统弹性,敬请期待!
译者:李晓阳
邮箱:bjlxyliATcn.ibm.com(替换AT为@)
内容声明:本文仅代表作者的个人观点,与IBM立场、策略和观点无关。文中专业名词因翻译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。如果您对我们的话题感兴趣,请通过电子邮箱联系我们。