|
|
51CTO旗下网站
|
|
移动端

2.4.2 群集的运行状况策略

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍群集的运行状况策略。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-12 18:22

2.4.2 群集的运行状况策略

Service Fabric 定义了一组运行状况策略规则,来判断实体是否正常运行。在默认情况下,群集采取较严格的规则,只要子项实体中有一个出现不正常事件,则将父项也视为不正常。Service Fabric 的运行状态策略规则分为两种,一种是群集运行状况策略,一种是应用运行状况策略。

1. 群集运行状况策略

群集运行状况策略用于评估群集的运行状况和节点运行状况,可以在群集配置文件中进行定义.如果没有配置,则会使用默认策略(不允许失败)。群集运行状况策略中包含如下几项配置。

(1) ConsiderWaringAsError,指定是否在运行状况评估期间,将警告状态视为错误,在默认情况下为False。

(2) MaxPercentUnhealthyApplications,指定容忍群集中被视为异常应用的最大百分比,例如:群集内有5 个应用,将该值设置为20。如果群集只有一个应用出现异常,群集也会被认为是警告状态;只有出现大于一个应用出现异常时,才会报告群集异常。

(3) MaxPercentUnhealthyNodes,指定容忍群集中被视为异常节点的最大百分比。

(4) ApplicationTypeHealthPolicyMap,应用程序类型的健康状况策略,可以在群集中为特殊性应用程序指定特定的策略。MaxPercentUnhealthyApplications 是针对群集内所有应用程序的策略,而有些情况,需要针对一些特殊应用类型的应用指定不同的策略。例如,普通的应用程序可以有20%的容错率,而管理应用则不允许,这时就可以使用该参数将某一类型的应用程序从全局池中踢出,单独计算容错率。

以下是群集运行状况策略配置示例,如果要定义指定应用类型的策略,需要在pplicationTypeMaxPercentUnhealthyApplications 后面追加相应的应用程序类型名称。

  1. <FabricSettings> 
  2. <Section Name="HealthManager/ClusterHealthPolicy"> 
  3. <Parameter Name="ConsiderWarningAsError" Value="False" /> 
  4. <Parameter Name="MaxPercentUnhealthyApplications" Value="20" /> 
  5. <Parameter Name="MaxPercentUnhealthyNodes" Value="20" /> 
  6. <Parameter Name= "  
  7. ApplicationTypeMaxPercentUnhealthyApplications-ControlApplicationType "  
  8. Value="0" /> 
  9. </Section> 
  10. </FabricSettings> 

2. 应用程序运行状况策略

应用程序运行策略不仅用来配置应用程序的整体运行策略,也可以对指定的服务单独设置相应的运行状况策略。它可以在应用程序中的ApplicationManifest.xml 中进行定义。如果未指定任何策略,Service Fabric 默认会使用最严格的规则。应用程序运行状况策略和群集类似,有以下几项配置。

(1) ConsiderWaringAsError,作用同群集配置类似,默认为False。

(2) MaxPercentUnhealthyDeployedApplications,指定容忍群集中被视为异常应用的最大百分比。

(3) DefaultServiceTypeHealthPolicy,应用程序默认服务的运行状况策略。该策略会替换应用程序中所有服务的默认策略。

(4) ServiceTypeHealthPolicyMap,针对某一个特定的服务设置运行状况策略。该设置将替代指定服务的默认运行状况策略。

3. 服务类型运行状况策略

服务类型运行状况策略,用于评估应用程序中服务的运行状况,该策略配置属于应用程序运行状况策略配置的子项,该策略包含以下内容。

(1) MaxPercentUnhealthyPartitionsPerService,指定容忍服务中分区被视为异常的最大百分比。

(2) MaxPercentUnhealthyReplicasPerPartition,指定容忍服务中副本被视为异常的最大百分比。

(3) MaxPercentUnhealthyServices,指定容忍服务被视为异常的最大百分比。

4. 运行状况评估工作原理

Service fabric 会依据运行状况策略,对群集进行运行状况的评估,用户和自动化服务可以随时评估群集中的任何实体。在运行状况评估过程中,运行状况算法会聚合实体存储的所有运行状况报告,并评估所有的子项。之后会综合本实体和所有子项的所有运行状况信息,评估目前实体的运行报告。

一个实体可以拥有多个运行状况报告,因为可能会有多个组件或者监视器同时对一个实体发送运行状况报告,如图2.4.2-1 所示。一个节点实体,会有多个监视器同时监控网络、CPU 使用率、磁盘I/O。在同一时间,不同的监视器会发送多个运行状况报告,例如,CPU使用率正常、磁盘使用率正常、网络延迟出现错误。运行状况评估会聚合多个运行状况报告,之后依据最差的运行状况报告来判断节点实体运行状况是否健康,如果至少有一个“错误”级别的运行状况报告,则聚合的健康状况就是“错误”。

如果没有任何“错误”级别的运行状况报告,但有一个或者多个“警告”级别的报告,那么聚合的健康状况会取决于ConsiderWarningAsError 设置:如果设置False,则健康状况为“警告”。

当评估完实体后,会对所有的子实体进行评估,对于子项的评估过程也是一样的,当所有的子实体评估完成后,就会聚合所有子实体的健康状况,然后基于运行状况策略聚合子项健康状况分为以下四种情况。

1) 如果所有的子项的状态“正常”,则子项的聚合的健康状况为“正常”。

2) 如果子项具有“正常”状态和“警告”状态,则子项的聚合健康状况取决于ConsiderWarningAsError 设置。

3) 如果具有“错误”状态的子项数量超过允许不正常子项最大百分比,则聚合的健康状态为“错误”。

4) 如果具有“错误”状态的子项数量在允许不正常子项最大百分比之内,则聚合的健康状态为“警告”。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SOA概念、技术与设计

在本书中,Thomas ERL呈现了第一部端对端的教程,提供了从基层开始的面向服务的建模与设计的逐步指导。通过逐步的、清晰生动的、良好的SOA...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊